产品中心PRDUCTS
技术支持RECRUITMENT
第六讲中央处理单元dsp数字信号处理器dsp原理及应用教材课程
2026-08-20 04:23:31

’C54x的I/O存储器:输入、输出指令,控制线DSP技术及应用(II)
’C54x’C54x使用使用4040位的算术逻辑运算单元和位的算术逻辑运算单元和22个个4040位累加器,可位累加器,可
’’C54xC54x的大多数算术逻辑运算指令都是单周期指令,其运的大多数算术逻辑运算指令都是单周期指令,其运
算结果通常自动送入目的累加器算结果通常自动送入目的累加器AA或或BB。但在执行存储器到。但在执行存储器到
存储器的算术逻辑运算指令时(如存储器的算术逻辑运算指令时(如ADDMADDM、、ANDMANDM、、ORMORM
和和XORMXORM),其运算结果则存入指令指定的目的存储器。),其运算结果则存入指令指定的目的存储器。
根据输入源的不同,根据输入源的不同,ALUALU采用不同的输入方式。采用不同的输入方式。
当当1616位数据存储器操作数通过数据总线位数据存储器操作数通过数据总线DBDB或或CBCB输入时输入时,,
ALUALU将采用两种方式对操作数进行预处理将采用两种方式对操作数进行预处理。。
①①若数据存储器若数据存储器的的1616位位操作数在低操作数在低1616位时位时,,则则
②②若数据存储器若数据存储器的的1616位位操作数在高操作数在高1616位时位时,,则则
ALUALU的输出为的输出为4040位运算结果位运算结果,,通常被送至累加器通常被送至累加器AA或或BB。。
ALUALU的饱和逻辑可以对运算结果进行溢出处理。当发生的饱和逻辑可以对运算结果进行溢出处理。当发生
溢出时,将运算结果调整为最大正数(正向溢出)或最小负溢出时,将运算结果调整为最大正数(正向溢出)或最小负
①①若若OVM=OVM=00,,则对则对ALUALU的运算结果不作任何调整的运算结果不作任何调整,,直直
②②若若OVM= OVM=11,,则对 则对ALU ALU的运行结果进行调整 的运行结果进行调整。。
当正向溢出时 当正向溢出时,,将将32 32位最大正数 位最大正数00 00 77FFFFFFFH FFFFFFFH装入累加 装入累加
当负向溢出时,将 当负向溢出时,将32 32位最小负数 位最小负数FF FF 80000000 80000000HH装入累加 装入累加
③③状态寄存器 状态寄存器ST ST00中与目标累加器相关的溢出标志 中与目标累加器相关的溢出标志OVA OVA或或
ALU ALU有一个与运算结果有关的进位位 有一个与运算结果有关的进位位CC,位于 ,位于ST0 ST0的的11 11位。 位。
进位位 进位位C C受大多数 受大多数ALU ALU操作指令的影响,包括算术操作、循 操作指令的影响,包括算术操作、循
③③ 可作为分支 可作为分支、 、调用 调用、、返回和条件操作的执行 返回和条件操作的执行
注意: 注意:①①进位位 进位位CC不受装载累加器操作 不受装载累加器操作、、逻辑操作 逻辑操作、、
② ②可通过寄存器操作指令 可通过寄存器操作指令RSBX RSBX和和SSBX SSBX对对
若要将 若要将ST1 ST1中的 中的C16 C16置位,则 置位,则ALU ALU进行双 进行双16 16位算术运算, 位算术运算,
即在一个机器周期内完成两个 即在一个机器周期内完成两个16 16位数的算术运算,进行两次 位数的算术运算,进行两次
16 16位加法或两次 位加法或两次16 16位减法运算。 位减法运算。
TC TC—— ——测试 测试//控制标志 控制标志,,位于 位于ST ST00的的12 12位; 位;
ZA/ZB ZA/ZB—— ——累加器结果为 累加器结果为00标志位 标志位。。
’C54x ’C54x芯片有两个独立的 芯片有两个独立的40 40位累加器 位累加器AA和和BB,可以 ,可以
作为 作为ALU ALU或或MAC MAC的目标寄存器,存放运算结果,也 的目标寄存器,存放运算结果,也
可以作为 可以作为ALU ALU或或MAC MAC的一个输入。 的一个输入。
在执行并行指令( 在执行并行指令(LDMAC LDMAC)和一些特殊指令 )和一些特殊指令
((MIN MIN和和MAX MAX)时,两个累加器中的一个用于装载 )时,两个累加器中的一个用于装载
保护位: 保护位:AG AG、、BG BG 39 39~~32 32,,作为算术计算时的数据位余量 作为算术计算时的数据位余量,,
令令,,可以把累加器中的内容保存到数据存储器中 可以把累加器中的内容保存到数据存储器中。。
①① 使用 使用STH STH、、SACCD SACCD和并行存储指令存储累加器内容 和并行存储指令存储累加器内容
先先将累加器内容移位 将累加器内容移位,,再将高 再将高16 16位存入存储器 位存入存储器。。
先 先将累加器内容移位 将累加器内容移位,,再将低 再将低16 16位存入存储器 位存入存储器。。
注意: 注意:①① 移位操作是在存储累加器内容的过程中 移位操作是在存储累加器内容的过程中
②② 移位操作是在移位寄存器中完成的 移位操作是在移位寄存器中完成的,,累累
’C54x ’C54x的的40 40位桶形移位寄存器主要用于累加器或数 位桶形移位寄存器主要用于累加器或数
据区操作数的定标。它能将输入数据进行 据区操作数的定标。它能将输入数据进行0~31 0~31位的 位的
左移和 左移和0~16 0~16位的右移。所移动的位数可由 位的右移。所移动的位数可由ST1 ST1中的 中的
通过多路选择器 通过多路选择器MUX MUX来选择输入信号 来选择输入信号。。
主要 主要用于格式化操作 用于格式化操作,,为输入的数据定标 为输入的数据定标。 。
①①在进行 在进行ALU ALU运算之前 运算之前,,对输入数据进行数据定标; 对输入数据进行数据定标;
④④在累加器的内容存入数据存储器之前 在累加器的内容存入数据存储器之前,,对存储数 对存储数
根据 根据SXM SXM位控制操作数进行符号位的扩展 位控制操作数进行符号位的扩展。。
若操作数为无符号数 若操作数为无符号数,,则则不考虑 不考虑SXM SXM位位,,不执行符号位 不执行符号位
根据 根据指令中的移位数 指令中的移位数,,控制操作数进行移位操作 控制操作数进行移位操作。。移位 移位
数用二进制补码表示 数用二进制补码表示,,正值时完成左移 正值时完成左移,,负值时完成右移 负值时完成右移。。
①①55位位立即数 立即数, ,取值范围: 取值范围:--16 16~~15 15;;
③③暂存器 暂存器TT中的低 中的低66位数值 位数值,,取值范围: 取值范围:--16 16~~31 31。。
这种移位操作能使 这种移位操作能使CPU CPU完成数据的定标 完成数据的定标、、位提取 位提取、、扩展 扩展
NORM NORM AA ;按 ;按TT的数值对 的数值对AA进行归一化 进行归一化
桶形移位寄存器和指数译码器可以将累加器中的数值在一 桶形移位寄存器和指数译码器可以将累加器中的数值在一
①① 先用 先用EXP EXP AA指令 指令,,求得它的指数为 求得它的指数为13 13HH,,存放在 存放在TT寄寄
② ② 然后再执行 然后再执行NORM NORM AA指令 指令,,可在单个周期内将原来的 可在单个周期内将原来的
定点数转换成浮点数 定点数转换成浮点数,,参见书 参见书55..10 10节给出解释 节给出解释))
((33)) 控制操作数完成带测试位的移位 控制操作数完成带测试位的移位
根据 根据ROLTC ROLTC指令 指令,,控制操作数完成带测试位的循环左移 控制操作数完成带测试位的循环左移。。
MSW/LSW MSW/LSW单元根据 单元根据CSSU CSSU信号 信号,,选择移位后的信号锁存 选择移位后的信号锁存,,
’C54x ’C54x的乘法 的乘法--累加单元 累加单元MAC MAC是由乘法器、加法器、符号 是由乘法器、加法器、符号
控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器几 控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器几
MAC MAC单元具有强大的乘法 单元具有强大的乘法--累加运算功能,可在一个流 累加运算功能,可在一个流
水线周期内完成 水线次乘法运算和 次乘法运算和11次加法运算。在数字滤波 次加法运算。在数字滤波