网站大量收购独家精品文档,联系QQ:2885784924

(第3章 CPU内核结构.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(第3章 CPU内核结构

第3章 TMS320LF240 x的CPU功能模块和时钟模块 本章介绍CPU模块和时钟模块。 3.1 CPU功能模块 CPU模块包括:输入定标移位器、中央算术逻辑单元(CALU)和乘法器等。CPU模块的功能结构如图3.1 3.1.1 输入定标移位器 该单元将来自程序/数据存储器的16位数据调整为32位数据送到中央算术逻辑单元(CALU)。因此,输入定标移位器的16位输入与数据总线相连, 32位输出与CALU单元相连。 输入定标移位器对输入数据进行0-15位左移。左移时,输出的最低有效位(LSB)为0,最高有效位(MSB)根据状态寄存器ST1的SXM位(符号扩展方式)的值来决定是否进行符号扩展。当SXM=1时,则高位进行符号扩展;当SXM=0时,则高位填0。 移位的次数由包含在指令中的常量或临时寄存器(TREG)中的值来指定。 3.1.2 乘法器 16×16位的硬件乘法器,单个机器周期内产生一个32位的有符号或无符号乘积。 除了执行无符号乘法指令(MPYU)外,所有的乘法指令均执行有符号的乘法操作,即相乘的两个数都作为二进制的补码数,而运算结果为一个32位的二进制的补码数。 乘法器接收的两个乘数,一个来自16位的临时寄存器(TREG),另一个通过数据读总线(DRDB)取自数据存储器,或通过程序读总线(PRDB)取自程序 存储器。 两个输入值相乘后,32位的乘积结果保存在32位的乘积寄存器(PREG)中。 PREG的输出连接到乘积定标移位器,通过乘积定标移位器,乘积结果可以从PREG传到CALU或数据存储器。乘积定标移位器对乘积采用4种乘积移位方式,如表3.1所示。 移位方式由状态寄存器ST1的乘积移位方式位(PM)指定,对于执行乘法/累加操作。 表3.1 乘积定标移位器的乘积移位方式 PM 移位 作用和意义 00 无移位 乘积送CALU或数据写总线,不移位 01 左移1位 移去二进制补码乘法产生的额外符号位,产生Q31格式的乘积 10 左移4位 当与一个13位的常数相乘时,移去在16?13位(常数)二进制补码产生的额外的4位符号位,产生Q31格式的乘积 11 右移6位 对乘积结果定标,以使得运行128次的乘积累加而累加器不会溢出 3.1.3 中央算术逻辑单元 中央算术逻辑单元(CALU)实现大部分算术和逻辑运算功能,大多数功能只需一个时钟周期,这些运算功能包括:加、减、布尔运算、位测试以及移位和循环功能。 由于CALU可以执行布尔运算,因此使得控制器具有位操作功能。CALU的移位和循环在累加器中完成。CALU是一个独立的算术单元,它和后面介绍的辅助寄存器算术单元(ARAU)在程序执行时,是完全不同的两个模块。 一旦操作在CALU中被执行,运算结果会被传送到累加器中,在累加器中再实现如移位等附加操作。 CALU有两个输入,一个由累加器提供,另一个由乘积寄存器(PREG)或数据定标移位器的输出提供。当CALU执行完一次操作后将结果送至32位累加器,由累加器对其结果进行移位。累加器的输出送到32位输出数据定标移位器 经过输出数据定标移位器,累加器的高、低16位字可分别被移位或存入数据寄存器。 CALU的溢出饱和方式可以由状态寄存器ST0(的溢出模式(OVM)位来使能或禁止。 根据CALU和累加器的状态,CALU可执行各种分支指令。这些指令可以根据这些状态位有意义的结合, 有条件地执行。为了溢出管理,这些条件包括OV(根据溢出跳转)和EQ(根据累加器是否为0跳转)等。另外,BACC(跳到累加器的地址)指令可以跳转到由累加器所指定的地址;不影响累加器的位测试指令(BIT和BITT)允许对数据存储器中的一个指定位进行测试。 对绝大多数的指令,状态寄存器ST1的第10位符号扩展位(SXM)决定了在CALU计算时是否使用符号扩展。 SXM=0,符号扩展无效, SXM=1,符号扩展有效。 3.1.4 累加器(ACC) 当CALU中的运算完成后,其结果就被送至累加器,并在累加器中执行单一的移位或循环操作。 累加器的高位和低位字中的任意一个可以被送至输出数据定标移位器,在此定标移位后,再保存于数据存储器。与累加器有关的状态位和转移指令: 1.进位标志位C ST1的第9位。下述情况之一将影响进位标志位C。 (1)加到累加器或从累加器减 当C=0,减结果产生借位时或加结果未产生进位时。 当C=1,加结果产生进位时或减结果未产生借位时。 (2)将累加器数值移1位或循环移1位 在左环移或循环左移的过程中,累加器的最高有效位被送至C位。在右环移或循环右移的过程中,累加器的最低有效位被送至C位。 2.溢出方式标志位OVM ST0的第11位。OVM位决定ACC如何反

文档评论(0)

qrpu4527 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档