版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字信号处理器DSP
器件及应用第2章TMS320C2000DSP的硬件结构TMS320C2000结构特点先进的增强型哈佛总线结构,为处理器内部的并行操作提供3对/6条总线32位中央算术逻辑单元CALU配以输入/输出通道上的移位定标器,在装载操作数的同时完成输入数据的移位定标,存储运算结果的过程中也将自动完成移位定标16X16位硬件乘法器MUL和乘积比例移位器,配合CALU能够完成单周期的乘加操作辅助寄存器算术单元ARAU,在CALU运算的同时提供对操作数地址的运算合理的片内存储器配置和片内外设资源配置2.1TMS320C2000总线结构程序地址总线PAB:提供读/写程序存储器单元的地址程序读总线PRDB:实现从程序存储器单元到CPU的传输(程序指令代码、立即操作数及表信息)数据读地址总线DRAB:提供读数据存储器单元的地址数据读总线DRDB:提供数据传送通道,把源操作数从数据存储器或程序存储器传送到(读入)CPU(如中央算逻单元CALU、硬件乘法器和辅助寄存器算术单元ARAU等)数据写地址总线DWAB :提供写数据存储器单元的地址数据写总线DWEB:提供数据传送通道,把目标操作数(或运算结果)从CPU(如中央算逻单元CALU、硬件乘法器和辅助寄存器算术单元ARAU等)传送到(写出)数据存储器或程序存储器单元C2000总线结构框图数据读写总线分开使CPU对操作数的读、写可以在单周期内完成程序总线和数据总线的分开使程序指令访问和数据访问同步并行进行应用:将取指、数据读、数据写分成3个不同的空间,这样在1个时钟周期内可访问指令代码、进行数据读、保存运算结果3个不同的操作,前提是程序代码和读/写片内数据存储器不在同一区块上;又由于ARAU与CPU的其它运算部件可并行运作,在同一周期内将产生出新的地址C2000总线结构的特点注意在这里要指出的是,片内双存取存储器B0、B1、B2在一个周期内可执行两次操作,这意味着合理安排读写操作数的位置和程序代码的位置将得到最高的性能
由于’C2xx具有丰富的片内存储资源,为了减小对外引脚和体积,将3套内部总线合并为1套外部扩展总线,分离的程序和数据空间在外存储器中通过1套地址/数据总线分时复用,因此同时使用外部扩展程序/数据存储器会降低’C2xxDSP的性能。注意 程序指令代码一般置于ROM/Flash中,优先(特别是中间数据尽可能)使用B0、B1、B2,操作数和结果可考虑SARAM。顺便指出,若使用慢速外围扩展,应使用软件等待状态发生器,以减少硬件开销。推荐2.2TMS320C2000CPU结构所有的TMS320C2xx系列DSP都具有同样的CPU结构,这典型的CPU包含如下部件:32位中央算术逻辑单元CALU32位累加器ACC用于CALU的输入/输出定标移位器16X16位硬件乘法器(32位结果)乘积比例移位器数据地址产生逻辑,含8个辅助寄存器和辅助寄存器算术单元ARAU程序地址产生逻辑运算部件‘C2000CPU运算部件结构示意图思考1CALU运算宽度是32bit,数据总线宽度是16bit,下述运算如何实现?16bitACCL16bit操作数16bitACCH+????????????不同宽度的如何对齐运算?输入移位定标InputShifter32位的输入数据定标移位器把来自存储器的16位数据左移0~16位与32位的CALU对齐。为了进行数据的比例运算和逻辑操作,这种对齐是必要的。作为程序或数据空间与CALU之间数据通路的一部分,输入定标移位器的操作不须额外的时钟周期开销。
2.2.1输入定标部分对于输入移位定标,应该清楚的问题数据来源移位方式填充方式移位位数应用实例 输入移位器(InputShifter)的16位输入是:(1)数据读总线(DRDB),该输入值来自于 存放指令操作数的数据存储单元。(2)程序读总线(PRDB),该输入值为指令` 菜作数给出的常数值。输入移位器的输入经移位后的32位输出,和CALU已经对齐,作为CALU运算的一个输入量。移位方式如下:(1)属左移方式:左移时,最低位(LSB)以0填充,而没有用到的高位则根据状态寄存器ST1中的符号扩展模式位(SXM)的设置情况决定填入0或是进行符号扩展。当SXM=0,不作符号扩展,此时未用到的高位(MSB)填入0;当SXM=1,作符号扩展,此时由输入数据的最高位扩展到未用到的高位(MSB)上。输入移位器的输出(2)移位次数确定:该输入移位器可作0—16位的左移操作,次数N可在指令中以常数的方式确定,也可以由T寄存器的低4位给出。而后者,由于T寄存器的值随时可以修改(动态确定),因此更能适应系统的性能要求。SXM=0输入移位器移位实例SXM=1输入移位器移位实例借助于16X16位的硬件乘法器,TMS320C2xx系列DSP可以在一个周期内完成带符号数或无符号数的乘法运算。硬件乘法器包括4个部件:T寄存器(TREG)、乘法器、P寄存器(PREG)和乘积移位器(ProductShifter):T寄存器(TREG):用途很广,除存放乘法需要的一个输入值外,也可作为输入移位器的移位次数计数,T寄存器可直接加载。
2.2.2乘法部分C2000的乘法部件A×B?ABA×B乘法器:
16位X16位,结果32位,单周期完。其中,一个16位输入值为T寄存器内容,T寄存器在乘法实现之前预先加载。另一个16位输入值为来自于数据存储器的直接/间接寻址的操作数,或来自于程序存储器的立即操作数。32位乘积结果置于P寄存器。乘法器P寄存器(PREG):
保存32位乘积结果,也可预先加载而提供乘累加指令的初值以免由于初值的不确定而出现混乱。输出时其值被复制到乘积移位器。乘积移位器(ProductShifter):
通过定标移位把32位乘积送进CALU去累加,或保存到数据存储器中(高、低16位分别保存)。乘积移位器有4种移位模式,由状态寄存器ST1中的乘积移位模式位(PM)的设置情况决定。
P寄存器中央算术逻辑部件为CPU中使用次数最多的运算部件,包括:中央算逻单元(CALU)累加器(ACC)输出移位器(OutputShifter)
2.2.3中央算术逻辑部件中央算术逻辑部件示意图中央算术逻辑单元(CALU)完成各种算术运算和逻辑操作,大多数指令可在单周期内完成。分4种操作:16位加法运算16位减法运算布尔代数逻辑操作位操作(位测试、移位和循环移位,其中移位和循环移位由ACC完成)CALU的输入为ACC和一个操作数,该数可来自输入移位器(Inputshifter)或乘积移位器(Productshifter),由不同指令选取CALU的输出直送ACC,再通过输出移位器送数据存储器保存CALU中的大多运算受符号扩展模式位SXM的影响,当SMX=0,进行无符号数运算操作;当SMX=1,进行有符号数运算操作,要作符号扩展累加器ACC存储CALU结果,可分为:高16位部分(ACCH)低16位部分(ACCL)在ACC中可完成移位和循环移位(包含进位位)的位操作,以实现数据的定标或逻辑位的测试控制与ACC关联的状态位(1)进位位(C):当CALU进行加法或减法时,若相加不产生进位(例外:高16位加指令若相加不产生进位则不影响C)或相减产生借位,则C被复位(C=0);若相加产生进位或相减不产生借位(例外:高16位减指令若相减不产生借位则不影响C),则C被置位(C=1)另外,ACC作位操作时,左移或循环左移,ACC的最高位进入C,且循环左移时C进入ACC的最低位;右移或循环右移,ACC的最低位进入C,且循环右移时C进入ACC的最高位(2)溢出模式位(OVM):决定ACC进行运算时产生溢出的方式。当OVM=0,正常溢出;当OVM=1时,极值溢出(正溢出为7FFFFFFFh;负溢出为80000000h)。(3)溢出标志位(OV):运算时若累加器不产生溢出则清零(OV=0),若产生溢出(不管是正溢出还是负溢出)则置位(OV=1)。(4)测试/控制标志位(TC):根据测试指令及被测位的值设置TC为0或1。与ACC关联的状态位(续)
输出移位器的32位输入接累加器的32位输出,而其16位输出接到写数据总线。该移位器拷贝累加器的32位值,然后对其左移,移位时高位丢弃,低位补0;具体移位数由指令指定,可移动0-7位。用SACH指令可保存ACC高位字,用SACL指令可保存ACC低位字。移位不单独占用周期。
输出移位器OutputShifter0000000011110000111100001010000100001111000011110000101000010000OutputShifter0000000011110000111100001010000100111100001111000010100001000000单周期乘加的实现CDA×BEX=E+(A×B)C×D2.2.4‘C2000ARAU结构CPU还有一个与中央算术逻辑单元(CALU)无关的算术单元,这就是辅助寄存器算术单元(ARAU)。ARAU的主要功能是与CALU中进行的操作并行地实现对8个辅助寄存器(AR7-AR0)的算术运算。8个辅助寄存器(AR7-AR0)提供了灵活而有效的间接寻址,指令通过当前辅助寄存器中的16位地址可以访问64KB数据存储器空间的任意单元。8个辅助寄存器1个当前辅助寄存器当前ARi存储单元AR0指令字ARn存储预读存储单元地址预写存储单元地址1、ARi±12、ARi±AR0(正反向进位)3、ARi±短立即数4、ARi与AR0的比较辅助寄存器指针ARP状态寄存器中有两个专用的3位分别用作辅助寄存器指针ARP和辅助寄存器指针缓冲器ARB。ARP用于选择8个辅助寄存器之一,ARP=0选择AR0,ARP=1选择AR1,...,ARP=7选择AR7;被ARP选择的辅助寄存器成为当前辅助寄存器。ARP可通过指令直接加载或修改,也可通过间接寻址指令的辅助操作修改或加载。ARB为ARP的缓冲寄存器,它总是复制当前ARP的值,其用途主要是为了避免状态寄存器进、出软堆栈时破坏ARP。ARAU的输出 有3条通道: 当需保存某个辅助寄存器(ARi)值时接通数据写总线(DWEB); 当指令从数据存储器读数据时接通数据地址读总线(DRAB); 当指令要向数据存储器写数据时接通数据地址写总线(DWAB)。ARAU运算ARAU对ARi进行运算以产生指令要求的地址,其运算包括如下内容:(1)对辅助寄存器线性增量或减量:+/-1或+/-AR0或反向进位+/-AR0(2)对辅助寄存器加一常数或减去一个常数,该常数为8位常数(3)把AR0的内容与当前AR进行比较,结果影响TC标志(通过DWEB修改状态寄存器的TC位)通常ARAU在流水线的译码阶段(指定操作的指令正在被译码时)进行它的算术运算,这就能在下条指令译码之前产生地址。有一例外情况是,处理NORM指令时,在流水线的执行阶段修改辅助寄存器和/或ARPARAU其它用途辅助寄存器除用作产生数据存储器地址外,还有其它用途:(1)通过CMPR指令,使辅助寄存器支持条件分支、调用和返回。(2)当作通用寄存器或计数器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车抵押贷款居间担保合同
- 网络电商平台加盟合同范本
- 机械部件外协加工协议
- 房产质押贷款协议
- 2024年电子商务安全性论文
- 代理补充协议书格式
- 房屋装潢施工协议案例
- 劳动合同终止后的社保转移
- 标准建设工程借款合同范本
- 私人物品交易合同模板
- 人教版七年级数学上册期中测试卷-附带有答案
- 道路旅客运输企业双体系建设的政策法规与标准培训
- DB3714-T 0004-2021 肉种鸭强制换羽技术规程
- 2024年湖北省工业建筑集团招聘笔试参考题库含答案解析
- 树立信心主题班会课件1
- 危险化学品从业人员安全培训考试试卷及答案
- 临床医学中的病患随访与健康教育
- 量子天线技术初探
- 汽车租赁服务投标方案
- 山东省济南市2023-2024学年三年级上学期期中数学试卷
- 2023~2024学年度上期高中2022级期中联考数学参考答案及评分标准
评论
0/150
提交评论