dsp怎么使spark 累加器器a的地址加1

TMS320C54x系列DSP的CPU与外设——第2章 TMS320C54x DSP体系结构总体介绍 - 湘厦人 - 博客园
第2章 TMS320C54x DSP体系结构总体介绍
  本章介绍TMS320C54x DSP体系结构的概况,包括中央处理单元(CPU)、存在器和片内外设。
  C54x DSP采用了高级的改进哈佛结构,用8条总线达到最大的处理能力。其独立的程序和数据空间允许同时对程序指令和数据进行访问,提供了高度的并行性。例如,在单周期内可以完成3个读操作和1个写操作,并行存储指令和专用指令充分利用了这种结构。另外,数据可以在数据空间和程序空间之间传送。这种并行支持一套功能强大的在单机器周期内完成的算术、逻辑和位操作运算。另外,C54x DSP包含有中断管理、重复操作和函数调用的控制机制。图2-1所示为C54x DSP功能框图,它包含了主要的模块和总线结构。
2.1 总线结构
&&&&& C54x DSP结构主要是围绕8条16位总线而建立的(1条程序存储器总线、3条数据存储器总线和4条地址总线)。
程序总线(PB)传送从程序存储器读取的指令码和立即数。
3条数据总线(CB、DB和EB)连接各个组成部分,例如CPU、数据地址产生逻辑、程序地址产生逻辑、片内外设和数据存储器。
CB和DB传送从数据存储器读出的操作数。
EB传送要写入存储器的数据。
4条地址总线(PAB、CAB、DAB和EAB)传送指令执行所需要的地址。
  C54x DSP可以利用两个辅助寄存器算术单元(ARAU0和ARAU1)在单周期内产生最多两个数据存储器地址。
  PB能够把存储在程序空间的数据操作数(比如系数表)传送到乘法器和加法器做乘/累加操作,或者在执行数据移动指令(如MVPD和READA)时将数据传到数据空间的某个目的地。这种传送能力再加上对偶读操作的特点,可以支持单周期内执行3操作数的指令,如FIRS指令。
&&&&& C54x DSP还有一条访问片内外设的片内双向总线,这条总线通过CPU接口中的总线变换器连到DB和EB上。使用这条总线的访问过程要求两个或更多个周期来读和写,这取决于外设的结构。表2-1总结了各种不同访问所使用的总线的情况。
2.2 内部存储器组织
&&&&& C54x DSP存储器组织成3个独立可选的空间:程序空间、数据空间和I/O空间。用户可以将DARAM或SARAM设置成数据存储器或程序/数据存储器。C54x DSP还有26个CPU寄存器加上外设寄存器映射到数据存储器空间。
2.2.1 片内ROM
&&&&& 片内ROM是程序存储器空间的一部分,在某些情况下,也可以是数据存储器空间的一部分。
&&&&& 在大多数器件中,ROM包含一个引导装入程序,可以用来对更快的片内RAM或片外RAM进行引导。在ROM容量比较大的器件中,ROM中的一部分可以被同时映射到数据和程序空间。
2.2.2 片内双存取RAM(DARAM)
&&&&&&& 因为每块DARAM在单周期可以存取两次,所以CPU或外设,例如缓冲串口(BSP)和主机接口(HPI),可以在同一个周期对同一个DARAM地址进行读和写操作。DARAM总是映射到数据空间,主要是用来存储数据。它也可以映射到程序空间,用来存储程序代码。
2.2.3 片内单存取RAM(SARAM)
&&&&& 每一块SARAM块在单机器周期内只能进行一次读访问或写访问。SARAM总是映射到数据空间,主要是用来存储数据。它也可以映射到程序空间,用来存储程序代码。
2.2.4 片内双向共享RAM
&&&&& 带有多CPU核的器件中包含了双向共享RAM块,允许两个CPU核同时访问程序空间。
2.2.5 片内存储器保护
&&&&& C54x可屏蔽的存储器保护选项可以保护片内存储器中的内容。不是所有的C54x DSP都提供存储器保护这个特性。
2.2.6 存储器映射寄存器
&&&&& 数据存储器中包含有CPU和片内外设中的存储器映射寄存器。这些寄存器位于数据0页,可以方便地对它们进行访问。存储器映射的访问方式便于现场转换时存取器,也便于在累加器和其它寄存器间传送信息。
2.3 中央处理单元(CPU)
&&&&& 所有的C54x器件的CPU都是相同的,它包括:
40-bit arithmetic logic unit (ALU)
Two 40-bit accumulators
Barrel shifter
17 & 17-bit multiplier
40-bit adder
Compare, select, and store unit (CSSU)
Data address generation unit
Program address generation unit
2.3.1 算术逻辑运算单元(ALU)
&&&&& C54x有一个40位算术逻辑运算单元(ALU)和两个40位累加器(累加器A和B),可进行二进制补码算术运算。ALU还可以进行布尔操作。ALU的输入数据有以下来源:
16-bit immediate value
16-bit word from data memory
16-bit value in the temporary register, T
Two 16-bit words from data memory
32-bit word from data memory
40-bit word from either accumulator
&&&&& ALU也可以用作两个16位的ALU,可同时完成两个16位操作。
2.3.2 累加器
&&&&& 累加器A和B存储来自ALU或乘法器/加法器的结果。它们也可以给ALU提供第二个输入。累加器A可以作为选举法器/加法器的一个输入,每一个累加器可分成如下3部分:
Guard bits (bits 39&32)
High-order word (bits 31&16)
Low-order word (bits 15&0)
&&&&& C54x器件提供了相关的指令,可以在数据存储器里存储保护位、累加器高位和低位字,可以传送32位累加器字进出数据存储器。每一个累加器可以暂存另一个累加器的内容。
2.3.3 桶形移位器
&&&&& C54x DSP桶形移位器有一个40位输入端连到累加器或数据存储器(用CB或DB),有一个40位输出连到ALU或数据存储器(用EB)。桶形移位器可以对输入数据进行0~31位的左移和0~16位的右移操作。所要求的移位数要定义在指令的移位计数字段、状态寄存器ST1中的移位计数字段(ASM)或暂存寄存器T中(当T被指定为一个移位计数寄存器时)。
&&&&& 桶形移位器和指数编码器(是一个硬件部件,用来计算累加器的指数值)可以在单周期内对累加器中的值进行标准化操作。
2.3.4 算法器/加法器单元
&&&&& 乘法器/加法器单元可以在单指令周期内完成一个17位$\times$17位的二进制补码乘法运算和40位加法。快速的片内乘法器允许C54x有效地进行诸如相关、卷积和滤波等操作。另外,在单指令周期内,乘法器和ALU共同执行的乘/累加(MAC)运算与ALU的操作可以并行。
2.3.5 比较、选择和存储单元(CSSU)
&&&&& 比较、选择和存储单元(CSSU)在累加器的高低字之间比较最大值 ,它允许状态寄存器ST0中的检测/控制标志位(TC)和转换寄存器(TRN)保持其转换历史,并且选择累加器中较大的字节存入数据存储器。CSSU以最优的片内硬件加速Viterbi蝶式运算。
2.4 数据寻址
&&&&& C54x DSP提供了如下7种基本数据寻址方式:
立即数寻址:用指令指定一个固定值 。
绝对寻址:用指令指定一个固定地址。
累加器寻址:用累加器A访问程序存储器的一个单元作数据。
直接寻址:用指令的7位来指定一个地址的低7位,这7位和数据页指针(DP)或堆栈指针(SP)一起决定实际的存在器地址。
间接寻址:用辅助寄存器访问存储器地址。
存储器映射寄存器寻址:用存在器映射寄存器(如何理解呢?),不改变当前DP值 或SP值。
堆栈寻址:管理系统堆栈中增加和消除某些项的操。
&&&&& 在运行直接、间接或存储器映射寄存器寻址的指令期间,数据地址产生逻辑(DAGEN)计算数据存储器操作数的地址。
2.5 程序存储器寻址
&&&&& C54x DSP器件中的程序存储器通常是用程序计数器(PC)寻址。但是,某些指令也可用绝对寻址来访问存在程序存储器中的数据项。PC由程序地址产生逻辑(PAGEN)装载,常用来取单独的指令。比较典型的是在读取顺序指令时,PAGEN增加PC的值 。但是,由于某些指令或操作的结果,PAGEN也可以给PC装载不按顺序的值。这些引起PC值不连续的操作包括跳转、调用、返回、条件操作、单指令重复、多指令重复、复位和中断。对于调用和中断,当前的PC值被存到堆栈里,堆栈由堆栈指针(SP)指示。当被调函数或中断服务程序完成时,通过一条返回指令,被保存的PC值从堆栈中恢复。
2.6 流水线操作
&&&&& 一条指令流水线包括一条指令执行过程中出现的一系列操作步骤。C54x DSP流水线有6段&&预取、取指、译码、访问、读取和执行,每一段都可以执行一个独立的操作。最典型的情况是流水线被一系列指令完全占满,每一条指令处于6段中的一段。当PC中出现了不连续的情况,例如在跳转、调用或返回期间,流水线中的一段或多段可能被暂时闲置。
2.7 片内外设
&&&&& 所有C54x器件有相同的CPU,但是连接的外设不同。C54x器件有以下片内外设可供选择:
2.7.1 通用的I/O引脚
&&&&& C54x器件提供了可以通过软件控制进行读或写的通用I/O引脚。所有C54x器件都支持两个通用的I/O(GPIO)引脚。
$ \overline {BIO} $&&A general input upon which conditional instructions can be based.
XF&&An external flag output that can be driven low or high under software control.
2.7.2 软件可编程等待状态寄存器
&&&&& 软件可程序等待状产生器可将外部总线周期延长到7个机器周期(部分器件是14个机器周期),以便与慢速的片外存在器和I/O设备接口。在访问片外存在器时,无论是对32K字的程序存储器和数据存储块的访问,还是对64K字的I/O空间的访问,都可在软件等待状态寄存器(SWWSR)中设置0~7个等待状态。
2.7.3 可编程的块切换逻辑
&&&&& 在程序存在器或数据存储器中,当存取越过了存在块的边界时,可编程块切换逻辑可以自动地插入一个周期。同样,当存取从程序存储器跳到数据存储器,或者存取从某些器件的程序存储器的某一页跳到另一页时,也会插入一个周期。这个附加周期可防止总线竞争,它使得存储器在其它器件驱动总线之前,先释放掉总线。块切换逻辑可控制的存储块的大小是由存储开关控制寄存器(BSCR)确定的。
2.7.4 硬件定时器
&&&&& C54x器件有16位的定时电路及4位的预标定器。定时计数器每个CLKOUT周期减1。一旦定时计数器减到0,就产生一个定时中断。可通过专用的状态位的设置使定时器停止、重启、复位或无效。
2.7.5 时钟产生器
&&&&& C54x器件上有两种基本的时钟产生器选项:内部振荡器或锁相环(PLL)电路。在第一个选项中,CPU的时钟是通过将X2/CLKIN输入时钟除以系数1、2或4产生的。第二个选项中采用了一个PLL电路来产生CPU时钟,该时钟是输入时钟的倍频信号。
2.7.6 直接存储器访问(DMA)控制
&&&&& 直接存储器访问 (DMA)控制器可在存储嚣中的多个点之间传输数据,而不影响CPU的操作。DMA操作允许在CPU操作的背之下,进行数据移入和移出内部程序/数据存储器、片内外设或外部存储器的操作。DMA有6个独立可编程的通道,支持6个不同的DMA操作现场。
2.7.7 主机接口(HPI)
&&&&& 主机接口(HPI)是可以与一个主机进行连接的并行口。通过C54x片内既能被主机访问又能被C54x器件访问的存储器,可在C54x和主机之间交换信息。C54x器件中有3种基本的HPI选项:8位标准HPI、8位增强HPI或16位增强HPI。表2-3列出了配备HPI的C54x器件的情况。
2.8 串行口
&&&&& The serial ports on the C54x DSP vary by device, and are represented by four types: synchronous, buffered, multichannel buffered (McBSP), and timedivision multiplexed (TDM). See Table 2&4 for the& umber of each type on the various C54x devices. The sections that follow provide an introduction to the four types of serial ports. For more details about these ports, see Chapter 9, Serial Ports. For detailed information about the McBSPs, see TMS320C54x DSP Enhanced Peripherals Reference Guide (SPRU302).
2.8.1 同步串口
&&&&& 同步串口是调整、全双工串口,可提供串行器之间的直接通信,例如编解码器、A/D转换器和其它踵系统。当C54器件中有多个同步串口时,这些串口是相同的但相互独立。每个两步串口最高可以1/4的机器周期(CLKOUT)速率运行。同步串口发送器和接收器是双缓冲的,它们分别被可屏蔽的外部中断信号控制。数据可以以字节或字为单位组成帧。
2.8.2 缓冲串口(BSP)
&&&&& 缓冲串口(BSP)是同步串口增加了一个自动缓冲的部件,它的时钟可达CLKOUT的速率。这种全双工、双缓冲的串口可提供灵活可变的数据流长度。自动缓冲部件支持高速传输,减少中断服务的开销。
2.8.3 多通道缓冲串口(McBSP)
&&&&& 多通道缓冲串口是一种增强型的缓冲串口,它具有以下一些特点&&缓冲数据寄存器、全双工通信、独立的接收和发送时钟及帧同步。另外McBSP还有一些增强功能&&内部可编程时钟和帧产生器、多通道模式和通用I/O。
2.8.4 时分复用(TDM)串口
&&&&& 时分复用(TMDM)串口是同步增加了数据时分复用功能,它最多可以和7个带有TDM串口的其它C54x器件连接。TDM串口既可被设置为同步操作也可被设置为TDM操作。通常用于多处理器的应用中。
2.9 外部总线接口
&&&&& C54x DSP最多可寻址64K字数据存储器、64K字程序存储器(某些器件最多达8M字)和64字16位的并行I/O口。对外部存储器或I/O口的访问通过外部接口进行。空间选择信号$\overline {DS}$、$\overline {PS}$和$\overline {IS}$可以用来选择不同的物理空间。
&&&&& 接口中有外部准备就绪输入信号和软件产生的等待状态,它们可使处理器与多种不同速度的存储器和I/O设备连接。接口中的HOLD模式允许外部器件控制C54x DSP的总结,在这种情况下,一个外部器件可以访问程序、数据和I/O空间里的资源。
&&&&& 大多数C54x DSP指令都可访问外部存储器,但是访问I/O口需要特殊的指令PORTR和PORTW。
2.10 IEEE 1149.1扫描逻辑标准
&&&&& The IEEE Standard 1149.1 scanning-logic circuitry is used for emulation and testing purposes only. This logic provides the boundary scan to and from the interfacing devices. Also, it can be used to test pin-to-pin continuity as well as to perform operational tests on devices peripheral to the C54xE DSP. The IEEE Standard 1149.1 scanning logic is interfaced to internal scanning-logic circuitry that has access to all of the on-chip resources. Thus, the C54x DSP can perform on-board emulation using the IEEE Standard 1149.1 serial scan pins and the emulation-dedicated pins. For more information, see Appendix A, Design Considerations for Using XDS510 Emulator.使用DSP28335如何在一个指令周期完成乘加运算 - C2000(TM) 32位实时 MCU - 德州仪器在线技术支持社区
使用DSP28335如何在一个指令周期完成乘加运算
发表于1年前
<input type="hidden" id="hGroupID" value="38"
我看书上说现代DSP内置MAC硬核,可以在一个时钟周期完成取数相乘并累加。&/p>
&p>实验如下,例如c=a*b+c;&/p>
&p>&a href=&/cfs-file.ashx/__key/communityserver-discussions-components-files/56/7140.1.png&>&img src=&/resized-image.ashx/__size/550x0/__key/communityserver-discussions-components-files/56/7140.1.png& border=&0& alt=& &>&/a>&/p>
&p>反汇编如下&/p>
&p>&a href=&/cfs-file.ashx/__key/communityserver-discussions-components-files/56/07548.2.png&>&img src=&/resized-image.ashx/__size/550x0/__key/communityserver-discussions-components-files/56/07548.2.png& border=&0& alt=& &>&/a>&/p>
&p>可以看到有七句汇编,先用2个周期取ab值,1个周期相乘,1个周期取c值,1个周期想加,然后空1个周期(不懂这里为什么会出来一个NOP指令,同求解释),再1个周期赋值,与CCS内置的计时器吻合,都是七个时钟周期。&/p>
&p>我想知道怎么样可以在一个时钟周期完成c=a*b+c这句指令,是CCS优化的问题吗?&/p>&div style=&clear:&>&/div>" />
使用DSP28335如何在一个指令周期完成乘加运算
此问题已被解答
All Replies
我看书上说现代DSP内置MAC硬核,可以在一个时钟周期完成取数相乘并累加。
实验如下,例如c=a*b+c;
反汇编如下
可以看到有七句汇编,先用2个周期取ab值,1个周期相乘,1个周期取c值,1个周期想加,然后空1个周期(不懂这里为什么会出来一个NOP指令,同求解释),再1个周期赋值,与CCS内置的计时器吻合,都是七个时钟周期。
我想知道怎么样可以在一个时钟周期完成c=a*b+c这句指令,是CCS优化的问题吗?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
榜眼30270分
首先,浮点运算没有浮点乗加指令。其次,定点的乗加指令是将乘积与累加器相加,而不是你理解的这样。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
榜眼23907分
C28有直接的乘加汇编指令,一个系统周期就可以执行完。
&你可以参照SPRU430E,这个应用文档,比如里面有一条指令,
IMPYAL 就可以执行,但是前提是必须所有程序用汇编写,并且指令原型是乘加ACC 以及P T寄存器中的值
IMPYAL &P,XT,loc32
Add the unsigned content of the P register, ignoring the product shift mode(PM), to the ACC register. Multiply the signed 32-bit content of the XTregister by the signed 32-bit content of the location pointed to by the &loc32&addressing mode. The product shift mode (PM) then determines which partof the lower 38 bits of the 64-bit result are stored in the P register:
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
搞清楚了 谢谢
You have posted to a forum that requires a moderator to approve posts before they are publicly available.当前位置: >>
1、填空题 1、用于对 I/O 空间进行操作的两条指令是 PORTR 和_PORTW___。 2、累加器 A 分为 AH、AL 和__AG_三部分。 3、指令“RPT #15”使它的下一条指令重复执行__16__次。 4、命令文件中,通常“PAGE _0_”定为程序存储器。 5、条件指令中的条件 AEQ 表示___累加器 A 等于 0_____。 6、IFR 的任何一位的 1 都
代表一个未响应的中断,要清除一个中断,可以给 IFR 的相应位 写_1__。 7、Q15 格式对应的 S 表示法为__S0.15___。 8、存储器映象寄存器寻址可用于间接寻址,在这种间接寻址方式中,指令执行后,当前辅 助寄存器中高 9 位为___全 0_______。 9、指令“LD A,16,A”中的 16 表示_左_移 16 位。 10、指令“STM #1,A”对 A 对采用的是_存储器映象寄存器_____寻址。 2、填空题 1、指令 MVPD pmad,Smem 对存储单元 pmad 的寻址方式是绝对寻址_。 2、在命名段语句“ y .usect “y1”,3 ” 中,y1 是_段名__。 3、条件指令中的条件 BEGT 表示___累加器 B 大于等于 0____。 4、ST1 中的 INTM 置__1_,可以屏蔽可屏蔽中断。 5、Q0 格式表示一个_整_数。 6、在定点整数乘法编程时,应事先将小数方式位 FRCT 置__0___。 7、向 I/O 空间输出数据的指令是_PORTW____。 8、存储器映象寄存器寻址可用于直接寻址,在这种直接寻址方式中,利用指令中数据存储 器地址的__低 7_位访问 MMR。 9 、 在 汇 编 语 言 程 序 中 , 如 果 要 定 义 一 个 系 数 0.707, 可 以 写 成 ____word 00___。 10、指令 PSHD 的功能是__把一个数据存储器操作数压入堆栈 _____。 3、填空题 1、直接寻址方式中,当 CPL=__0_时,数据存储器地址的低 7 位与 DP 中的 9 位字段相连组 成 16 位的数据存储器地址。 2、命令文件中,每一个 PAGE 代表一个完全独立的地址空间。通常“PAGE _1_”定为数据 存储器。如果没有规定 PAGE,则链接器就当作“PAGE _0_” 。 3、条件指令中的条件 AOV 表示____累加器溢出____。 4、硬件复位后,IPTR 位全为__1__。 5、十进制小数 0.25 的 Q15 格式定点数为_2000H_。 6、指令 ADD A,-4,B 是将累加 B_右_移 4 位后加到累加器 A。 7、从 I/O 空间读入数据的指令是_PORTR____。 8、命令文件中,PAGE 指定存储器空间页面,最多__255___个。 9、Q10 格式的 16 位定点数有__5__个整数位。 4、填空题 ⑴重复执行单条指令的最大次数为__65536___。 ⑵访问不同页的同一单元(dma 值相同)的区别在于__地址高 9 位___的值不同。 ⑶对硬件初始化,复位输入信号至少必须保持__5__个 CLKOUT 周期的低电平。 ⑷当 C54x 响应复位时,CPU 终止当前的程序,并强迫程序计数器 PC 置成__FF80H___。 ⑸如果没有利用 MEMORY 和 SECTIONS 命令,链接器就按__缺省算法__来定位输出段。 ⑹如果汇编语言程序中无段命令,那么汇编器把程序中的内容都汇编到___.text__段。 ⑺TMS320C54x DSP 有__6_级流水线。 ⑻含有 29 个字的循环缓冲器必须从最低___5__位为 0 的地址开始。 ⑼C54x 可以利用两个辅助寄存器算术运算单元,在每个周期内产生__两___个数据存储器 的地址。 ⑽TMS320C54x 内部有____4__种总线。 5、填空题 1、’C54x 内部采用的是_程序_空间和___数据__空间分开的哈佛结构,允许同时取_指令_ 和取____操作数_____。 2、’C54x 的存储器空间分成 3 个可单独选择的空间:_程序__空间、__数据_空间和__I/0_ 空间。 3、’C54x 有三个状态和控制寄存器:__状态寄存器 0(ST0)___、__状态寄存器 1(ST1) __和_____处理器方式状态寄存器 PMST____。 4、某一中断号为 10H,若 IPTR=001H,则该中断的中断向量地址为_00C0H__。 5 、 在 汇 编 语 言 程 序 中 , 如 果 要 定 义 一 个 系 数 0.707, 可 以 写 成 ___.word 00___。 6、在进行小数乘法之前,应当用指令___SSBX FRCT___将 FRCT 置为__1___。 7、双操作数寻址方式,只能使用_间接_寻址方式,且辅助寄存器只能使用__AR2~AR5_。 8、在 MEMORY 伪指令中,PAGE 选项用于指定存储器空间页面。PAGE 0 为__程序__存 储器,PAGE 1 为__数据__存储器。如果不指定 PAGE,链接器默认指定__PAGE0___。 9、’C54x 有两个__40_位的累加器。 6、填空题 1、’C54x 改进的哈佛结构允许在__程序_空间和__数据__空间之间相互传送数据。 2、’C54x 片内有__8__条总线,包括__1__条程序总线、___3__条数据总线和__4___条地址 总线。 3、若 MP/MC=0,则片内 ROM 映象在__程序__空间;若 OVLY=0,则片内 RAM 只映象在__数据 __空间;若 DROM=0,则片内 ROM 不映象到___数据__空间。 4、’C54xDSP 是___16___位的定点 DSP。 5、Q8 格式的 16 位定点数有__1_个符号位、__8__个小数位和__7__个整数位。 6、在进行整数乘法之前,应当用指令__RSBX FRCT__将 FRCT 置为__0_。 7、’C54x 采用__四_级流水线操作,DSP 执行一条指令,需要通过__取值___、__译码___、 ___取操作数_和____执行___四个阶段。 7、填空题 1、DSP 芯片的结构特点主要有改进的哈佛结构、______________、______________、多处 理单元、特殊的 DSP 指令等。 2、TMS320C54x 片内有 8 条 16 位主总线,它们是 1 条程序总线、______________、 ______________。 3、TMS320C54x 有 3 个 16 位寄存器作为状态和控制寄存器,它们是______________、 _______________和____________________________。 4 、 MEMORY 的作用是 _______________________________________________________, SECTIONS 的作用是___________________________________________________________。 5、若 TMS320C54x 外部中断 0 产生中断,中断向量指针为 0FBH,则中断向量地址为 ____________。 8、填空题 1. OVLY= , 则片内 RAM 只安排到数据存储空间。 DROM= , 则部分片内 ROM 安排到数据空间。 2. ST1 的 CPL= 表示选用堆栈指针(SP)的直接寻址方式。 ST1 的 C16= 表 示 ALU 工作在双精度算术运算方式。 3 . 设 计 DSP 应 用 系 统 时 , 选 择 合 适 的 DSP 芯 片 需 考 虑 的 3 个 最 主 要 的 因 素 是 、 、 。 4.链接器对段的处理主要通过 和 两个命令完成。 5 .若 TMS320C54 外部中断 2 产生中断,中断向量地址指针为 0F4H, 则中断向量地址 为 。 9、 填空题 1、C54xDSP 共有____条总线,包括____条程序存储器总线、____条数据存储器总线和____ 条地址总线。 2、C54x 中有两类 RAM:_________RAM 和________RAM。 3、C54x 的状态位 OVLY=_____时,片内 RAM 安排到程序和数据空间;OVLY=_______时,片 内 RAM 只安排到数据空间。 4 、复位后, IPTR=________ ,所以,硬件复位后总是从 ________ 开始执行程序。除硬件 __________外,其他的中断向量,只要改变________的值,就可以重新安排它们的地址。 5、C54x 有一个_____级深度的指令流水线。 6、C54x 有 2 个受软件控制的通用 I/O 引脚,即______和______。 7、对于可屏蔽中断,只有满足以下条件才能响应: (1)____________最高。 (2)状态寄存 器 ST1 中的 INTM 位为_______。 (3)中断屏蔽寄存器 IMR 中的相应位为_________。 8、 具有软件可编程 PLL 的 DSP 器件可以选用以下两种时钟方式中的一种, 即 (1) __________ 方式。 (2)__________方式。 10、填空题 1、若处理器方式寄存器 PMST 的值设为 01A0h,而中断矢量为 TINT0,那么在中断响应 时,程序计数器指针 PC 的值是: ;2、 ‘C5402 片内有 8 条 16 位总线,其中两条读数据总线 CB、DB; CB 的作用是 DB 作用是 3、TI 公司的 TMS320C54x 芯片采用流水线结构,完成一条指令可分为 六个阶段。 4、程序地址发生器的组成有: 6 个部分。 5、 在数据存储器中开辟一段循环缓冲区, 缓冲区大小为 128。 应设置缓冲区大小寄存器 (BK) ; 。 的内容为:;缓冲区首地址为:; ,未初始化伪指令 。 。6、 段定义伪指令中已初始化伪指令有 有 7、可屏蔽中断被应答的条件为:1、选择题 1、C54x 采用(A)级流水线结构。 A、四级 B、三级 C、二级 D、六级 2、C54x 的累加器是(D)位的。 A、8 位 B、16 位 C、32 位 D、40 位 3、在每个机器周期内,允许对同一 DARAM 块寻址(B) A、1 次 B、2 次 C、3 次 D、4 次 4、若(B),则部分片内 ROM 安排到数据空间。 A、DROM=0 B、DROM=1 C、MP/MC=0 D、MP/MC=1 5、设累加器 A=FF H,执行带移位的指令“STH A,8,TEMP”后,数据存储 单元 TEMP 中的结果为(D) A、4321H B、FF43H C、1234H D、2112H 6、若 AR3 的值为 0310H,循环缓冲区起始地址为 0300H,BK=31。经过*AR3+%寻址后 AR3 的值为(B) A、0310H B、0311H C、0312H D、0314H 7、在“.bss x,2”中,( C) A、符号 x 是标号,数字 2 是存储单元中存放的数据 B、符号 x 是标号,数字 2 表示.bss 段中保留 2 个存储单元 C、符号 x 对应于保留的存储空间第一个字的变量名称,数字 2 表示.bss 段中保留 2 个存储 单元 D、符号 x 对应于保留的存储空间第一个字的变量名称,数字 2 是存储单元中存放的数据 8、用于将一段程序重复执行指定次数的指令是(A) A、RPTB B、RPT C、RPTZ D、MVPD 9、以下寻址方式中,属于倒序寻址的是(D) A、*ARx(lk) B、*ARx+0% C、*ARx(lk)% D、*ARx+0B 10、对于定点数(B) A、Q 越大,数值范围越大,精度越高。 B、Q 越大,数值范围越小,精度越高。 C、Q 越大,数值范围越小,精度越低。 D、Q 越大,数值范围越大,精度越低。 2、选择题 1、关于 C54x 的结构,下面说法正确的是(B) A、采用冯?诺依曼结构和多总线结构 B、采用哈佛结构和多总线结构 C、采用哈佛结构和单总线结构 D、采用冯?诺依曼结构和单总线结构 2、C54x 具有一个(A)的并行乘法器。 A、17 位×17 位 B、16 位×16 位 C、32 位×32 位 D、40 位×40 位 3、设累加器 B=00 H,执行指令“STL B,x” 后,数据存储单元 x 中的结果为 (C) A、0043H B、4321H C、1234H D、3400H 4、从 I/O 空间输入一个数据的指令是( C) A、PORTW B、LD C、PORTR D、MOV 5、下面寻址方式中,采用循环寻址的是( C ) A、*ARx B、*ARx+0 C、*ARx+% D、*(lk) 6、以下说法正确的是( A) A、.text 段通常包括可执行代码,.data 段通常包含初始化数据 B、.sect 段为未初始化变量保留存储空间 C、.bss 段通常用于存放常量 D、.usect 段通常包括可执行代码或初始化数据 7、以下的( B)指令能将累加器清零后重复执行下一条指令。 A、RPT B、RPTZ C、BANZ D、RPTB 8、当 CPU 接收到可屏蔽中断请求时,IFR 相应的位置 1。下面( C )方法不能清除中断标 志。 A、C54x 复位 B、中断得到处理 C、将 0 写到 IFR 中的相应位 D、用相应的中断号来执行 INTR 指令 9、 INT 0 的中断号是 10H,若 IPTR=001H,则 INT 0 的中断向量地址为(C ) A、00D0H B、00E0H C、00C0H D ) D、00F0H10、以下寻址方式中,属于倒序寻址的是( A、*ARx(lk) C、*ARx(lk)% B、*ARx+0% D、*ARx+0B3、选择题 1、C54x 有( B )个累加器。 A、1 个 B、2 个 C、3 个 D、4 个 2、若( A ),则片内 RAM 安排到程序和数据空间。 A、OVLY=1 B、OVLY=0 C、MP/MC=1 D、MP/MC=0 3、指令“STL B,y”用于保存累加器 B 的( C ) A、BG B、BH C、BL D、BH 和 BL 4、双数据存储器操作数间接寻址所用辅助寄存器只能是( A ) A、AR2、AR3、AR4、AR5 B、AR0、AR1、AR2 C、AR2、AR3 D、AR4、AR5 5、若循环缓冲区长度 BK=10,循环缓冲区起始地址为 100H,指令“LD *+AR1(8)%, A”执行前 AR1=100H,则指令执行后 AR1 的值为( C ) A、100H B、118H C、108H D、128H 6、用于定义目标系统的存储器空间的伪指令是( B ) A、SECTIONS B、MEMORY C、.text D、.data 7、如果一个条件指令包含有三个条件,那么( D ) A、只要任意一个条件满足时指令就能执行。 B、只要第一个条件满足时指令就能执行。 C、只要任意两个条件满足时指令就能执行。 D、只有在所有条件都满足时指令才能执行。 8、以下的( B )指令能将累加器清零后重复执行下一条指令。 A、RPTB、RPTZC、BANZD、RPTB D )9、以下寻址方式中,属于倒序寻址的是( A、*ARx(lk) B、*ARx+0%C、*ARx(lk)% D、*ARx+0B 10、十进制小数 0.625 的 Q12 格式定点数为( C ) A、0800H B、0900H C、0A00H D、0B00H 4、选择题 1、在每个机器周期内,允许对同一 DARAM 块寻址( B ) A、1 次 B、2 次 C、3 次 D、4 次 2、若 AR3 的值为 0310H,循环缓冲区起始地址为 0300H,BK=31。经过*AR3+%寻址后 AR3 的值为( ) A、0310H B、0311H C、0312H D、0314H 3、从 I/O 空间输入一个数据的指令是( C ) A、PORTW B、LD C、PORTR D、MOV 4、以下的( B )指令能将累加器清零后重复执行下一条指令。 A、RPT B、RPTZ C、BANZ D、RPTB 5、指令“STL B,y”用于保存累加器 B 的( ) A、BG B、BH C、BL D、BH 和 BL 6、用于定义目标系统的存储器空间的伪指令是( ) A、SECTIONS B、MEMORY C、.text D、.data 7、以下寻址方式中,属于倒序寻址的是( A、*ARx(lk) B、*ARx+0% ) D、*ARx+0BC、*ARx(lk)%8、 INT 0 的中断号是 10H,若 IPTR=001H,则 INT 0 的中断向量地址为( ) A、00D0H B、00E0H C、00C0H D、00F0H 9、C54x 有( )个累加器。 A、1 个 B、2 个 C、3 个 D、4 个 10、以下的( )指令能将累加器清零后重复执行下一条指令。 A、RPT B、RPTZ C、BANZ D、RPTB 1、判断题 1、C54x 片内只读存储器(ROM)只能配置为程序存储器。( × ) 2、OVLY=1 时,片内 RAM 安排到程序和数据空间。( ) 3、直接寻址方式中,若 CPL=0,则数据存储器地址的低 7 位与 SP 的 16 位地址相加形成 16 位的数据存储器地址。( × ) 4、.data 段通常用于存放程序代码。( × ) 5、对于带延迟的分支转移,是先将紧跟在分支转移指令后面的一条双字指令或两条单条指 令执行后再进行分支转移。( ) 2、判断题 1、片内 RAM 既可以配置为数据存储器,也可以配置为程序存储器。( × ) 2、DROM=1,则片内 ROM 不安排到数据空间。( ) 3、指令“STM #x,AR2”对 AR2 的寻址是存储器映象寄存器寻址。( × ) 4、 “.bss y,5”表示变量 y 中的值是 5。( × ) 5、在命令文件中,origin 指定存储区的起始地址,可以简写为 org 或 o。( ) 6、BANZ 指令将累加器清零后重复执行下一条指令。( ) 7、中断向量地址由 PMST 中的中断向量指针 IPTR 和中断向量号左移两位后组成。( 8、硬件复位后中断向量表的起始地址为 0080H。( ) 9、十进制小数 5.625 的 Q12 格式定点数为 23040。( ))10、硬件中断指由外部中断口信号触发的外部硬件中断。 ( ) 3、判断题 1、C54xDSP 可以在数据总线与程序总线之间相互传送数据。( ) 2、C54x 的存储器空间分成两个可单独选择的空间:程序和数据空间。( ) 3、指令“PORTW *AR2,PA”对 PA 的寻址方式是间接寻址。( ) 4、 “x .usect “vector”,2 ”中 x 是段名。( ) 5、在命令文件中,length 指定存储区的长度,可以简写为 len 或 l。( ) 6、指令 BANZ 的功能是:如果当前辅助寄存器不等于 0,就用指令中给出的地址加载 PC。( ) 7、C54x 每个中断向量占用 4 个 16 位指令字地址。( ) 8、当向 C54x 堆栈中压入数据时,堆栈从高地址向低地址增长。( ) 9、含有 29 个字的循环缓冲器必须从最低 6 位为 0 的地址开始。( ) 10、数值 1.125 最佳的表示方法是 Q15。( ) 4、判断题 ⑴ AR1、AR2 不能用作双数据存储器操作数寻址的辅助寄存器。( ) ⑵ 时钟发生器从 DIV 工作方式转到 PLL 方式时,CLKOUT 立即用作 C54x 的时钟。 ( ) ⑶ 依具体指令的不同,对部分外围电路寄存器寻址时,有的只需要 1 个机器周期。( ) ⑷ C548 和 C549 中的数据空间可扩展到 128 页,每页 64K。( ) ⑸ C54x 采用 6 级流水线。( ) ⑹ 硬件中断仅指由外部中断口信号触发的外部硬件中断。( ) ⑺ 单条指令中的多个(2~3)条件是“或”的关系。( ) ⑻ 大多数 C54x 程序是不需要对其流水线冲突问题特别关注的,只有某些 MMR 写操作才 需要注意。( ) ⑼ 解决流水线冲突的办法就是在写操作指令的后面插入若干条 NOP 指令。( ) ⑽ 累加器A和B的作用相同,没有差别,可以互换使用。 ( )1、简答题 1、在循环寻址方式中,如何确定循环缓冲区的起始地址?如循环缓冲区大小为 32,其起始 地址必须从哪里开始? 2、叙述块重复操作操作指令 RPTB 的使用。6、 NMI 是可屏蔽中断。()7、硬件复位时,IPTR=1FFH。( ) 8、十进制小数 0.4 的 Q15 格式定点数为 14107。( ) 9、 累加器A和B的作用相同,没有差别,可以互换使用( 10、在一个条件指令中的多个条件是“与”的关系。( )) 。 2、简答题 1、请描述 TMS320C54x 的总线结构。 2、叙述块重复操作操作指令 RPTB 的使用。 3、简答题 1、当 TMS320C54xCPU 接收到可屏蔽的硬件中断时,满足哪些条件才能响应中断? 2、叙述块重复操作操作指令 RPTB 的使用。 4、简答题 1、TMS320C54x 有哪几种基本的数据寻址方式?以 DP 和 SP 为基地址的直接寻址方式, 其实际地址是如何生成的? 2、按指令功能,C54x 指令系统分成哪几类? 3、CPU 响应可屏蔽中断有哪些条件? y ? 4、中断处理一般过程是什么? 5、简述 DSP 用线性缓冲区法实现 z (延时一个采样周期)的方法。 6、DSP 采用多处理单元结构有何好处? 5、简答题 1. 简述 DSP 芯片的 5 个主要特点。 2.简述段伪指令的作用,段定义伪指令有哪些? 3.简述 DSP 用循环缓冲区法实现 z 的方法。 4.直接寻址有两种方式,它们是什么?如何控制?当 SP=2000H,DP=2,偏移地址为 25H 时,分别寻址的是哪个存储空间的哪个地址单元? 5.什么是子地址寻址技术?采用子地址寻址技术有什么好处? 6、TMS320C54x 有几个状态和控制寄存器?它们的功能是什么? 6、简答题 1、TMS320C54x 提供了哪些基本的寻址方式,说明他们各自可以访问哪个存储空间。 2、DSP 如何与不同速度的片外存储器及其他外设进行数据交换? 3、试写出将程序存储器从地址单元 1000h 到 1080h 区间段的内容复制到数据存储空间从 2000h 开始的连续地址空间中。 4、CPU 对外扩程序存储器、数据存储器和 I/O 设备进行访问时产生哪些控制信号,分别是 什么状态? 5、汇编语言语句中操作数前面可以带有哪些前缀,他们的含义是什么??1 ?1?a xi ?15i i一、指出下段程序将执行多少次循环 。 ( STM #5,AR1次 ) STM loop: ? ? *AR1+ ? ?#10,AR0CMPR LT,AR1 BC loop,TC二、试设计一个段名为 MYSTACK 的有 11 个单元的堆栈,并为堆栈指针赋初值。 三、阅读程序.title &F2.ASM& .mmregs .def .bss xn b0 PA0 PA1 COEF: .word .word .word .word .word .word .word .text start: SSBX STM RPT MVPD STM STM STM STM LD PORTR FIR2: RPTZ A, #6 1*******32768/10 FRCT #b0, #6 table, #xn+6, #b0+6, .usect .usect .set .set .data start y , 1 &xn&,7 &b0&,7 0 1AR1 *AR1+ AR2 AR3#7, BK #-1,AR0 #xn, PA1, DP @xn MAC STH PORTW BD PORTR .end*AR2+0%, *AR3+0%, A A, @y @y, PA0 FIR2 PA1,*AR2+0%

我要回帖

更多关于 spark 自定义累加器 的文章

 

随机推荐