DSP 第二章 TMS320C54x硬件结构与工作原理—CPU.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:44 大小:1.4MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

DSP 第二章 TMS320C54x硬件结构与工作原理—CPU.ppt

DSP第二章TMS320C54x硬件结构与工作原理—CPU.ppt

预览

免费试读已结束,剩余 34 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2024年10月3日星期四1)多总线结构2)40位算术逻辑单元(ALU)3)17×17位并行乘法器4)比较、选择和存储单元(CSSU)5)指数编码器6)两个地址发生器7)数据总线8)总线寻址空间9)三种存储器空间10)单指令循环和块循环11)区分的存储块移动指令12)32位长操作数指令13)可编程等待状态发生器和可编程的存储单元转换TMS320C54xDSP的内部硬件组成图第二节C54x芯片的CPU结构TMS320VC5416CPU结构框图CPU结构1.算术逻辑运算单元ALU的输入:ALU有两个输入端,X输入端的数据来源于移位寄存器的输出(32位或16位数据存储器操作数以及累加器中的数值,经移位寄存器移位后输出)或来自数据总线DB的数据存储器操作数。Y输入端的数据来源于累加器A中的数据,或累加器B中的数据,或来自数据总线CB的数据存储器操作数,或来自T寄存器中的数据。当一个16位数据存储器操作数加到40位ALU的输入端时,若状态寄存器ST1的SXM=0,则高位添0,若SXM=1,则符号位扩展。ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算溢出处理:ALU的饱和逻辑可以处理溢出。当发生溢出、且状态寄存器ST1的OVM=1时,则用32位最大正数007FFFFFFFh(正向溢出)或最大负数FF80000000h(负向溢出)加载累加器。溢出发生后,相应的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令。也可用SAT指令对累加器进行饱和处理而不必考虑OVM值。若OVM=0,直接将结果回到累加器。ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算2.累加器A和B作用结构与位置A和B的异同加载与存储中的移位保存累加器的内容:用户可以利用STH、STL、STLM和SACCD等指令或者用并行存储指令,将累加器的内容存放到数据存储器中。在存储前,有时需要对累加器的内容进行移位操作。右移时,AG和BG中的各数据位分别移至AH和BH;左移时,AL和BL中的各数据分别移至AH和BH,低位添0。例如:累加器A=FF43211234h,求执行带移位的STH和STL指令后,数据存储单元的TEMP中的结果。STHA,8,TEMP;A中的内容左移8;位后高位字存入TEMP,;TEMP=2112hSTHA,-8,TEMP;A中的内容右移8位后;高位字存入TEMP,;TEMP=FF43hSTLA,8,TEMP;A中的内容左移8位后低位;字存入TEMP,TEMP=3400hSTLA,-8,TEMP;A中的内容右移8位后低位;字存入TEMP,TEMP=2112h3.桶形移位器的功能什么是定标移位处理的作用归一化的作用为何要扩展符号位什么是定标移位处理的作用归一化的作用为何要扩展符号位包括在ALU运算前:对来自数据存储器的操作数或者累加器的值进行定标;对累加器的值进行算术或逻辑移位;对累加器归一化处理;对累加器的值存储到数据存储器之前进行定标。例如:ADDA,-4,B;累加器A右移4位;后加到累加器BADDA,ASM,B;累加器A按ASM规定的移位数移位后加到累加器BNORMA;按T寄存器中的数值对累加器归一化【例】ADDA,-8,B:累加器A右移8位;后加到累加器B4.乘法器/加法器结构功能什么是舍入处理饱和处理的优点数据流向乘法器能够执行:无符号数乘法(每个16位操作数前面加一个0);有符号数乘法(每个16位操作数都符号位扩展成17位有符号数);无符号数(16位操作数前面加一个0)与有符号数(16位操作数符号扩展成17位有符号数)相乘运算。乘法器工作在小数相乘方式(状态寄存器ST1中的FRCT位=1)时,乘法结果左移1位,以消除多余的符号位。结构功能什么是舍入处理数据流向结构功能什么是舍入处理数据流向结构功能什么是舍入处理数据流向TMS320C54x中有大量的乘法/累加运算,输入依具体指令决定的。例如:MPY#1221H,A;表达式:A=1221H*T,说明T寄存器值和操作数相乘;MPYAB;表达式:B=T*A(32-16),说明T寄存器值和累加器高位相乘;MAC#1221H,A;表达式:A=1221H*T+A;说明T寄存器值和操作数相乘后加到累加器A;MACR#1221H,A;表达式:A=md(1221H*T+A);说明T寄存器值和操作数相乘后加到累加器A(带舍入);MACP*AR1,pmad,A;表达式:A=(*AR1)*pmad+A;说明数据