[工学]CPU结构与指令集.ppt

  1. 1、本文档共135页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]CPU结构与指令集

2.1.1中央处理单元(CPU)结构 2.1.2 CPU数据通道与控制 小端终结方式(Little-Endian)下,数据的高有效位字节存放在地址高位字节,低有效位放在地址低位字节,与Intel公司的数据存放惯例相同 大端终结方式(Big-Endian)则相反,与Motorola公司的数据存放惯例相同 大小端位由DSP的LENDIAN管脚设置 C6000DSP 汇编指令分类 溢出问题 如果运算结果超出目的操作数字长所能表示的范围,造成运算结果的高位丢失,使保存的运算结果不正确,称为溢出。通常有3种办法解决溢出问题 (1)用较长的字长来存放运算结果:16?32可行,32?40耗时 (2)用带饱和的加减运算指令做补码数加减运算:保证符号不变,并且给出提示位 (3)对整个系统乘一个小于1的比例因子:实际中最常用 所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。 Q格式:小数点位于第 n 位之右侧,称为Qn 格式 定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据 x 的形式为 x = x0.x1x2…xn ( 其中x0为符号位,x1~xn是数值的有效部分,也称为尾数, x1为最高有效位 ),则在计算机中的表示形式为: 定点整数是纯整数,约定的小数点位置在有效数值部分最低位之后。若数据 x 的形式为 x = x0 x1x2…xn ( 其中x0为符号位,x1~xn 是尾数, xn 为最低有效位 ),则在计算机中的表示形式为: 1.逻辑运算指令: AND、OR、XOR 、NEG (求补码) 2.移位指令 : 算术左移指令SHL、算术右移指令SHR、逻辑右移(无符号扩展右移)指令SHRU、带饱和的算术左移指令SSHL。 SHR src2, src1, dst (src1的低6位指定右移位数) 3.位操作指令 :寄存器控制中常用 位域清零/置位指令CLR/SET; 带符号扩展与无符号扩展的位域提取指令EXT/EXTU LMBD指令,寻找src2中与src1最低位(LSB)相同的最高位位置 NORM指令,检测有多少个冗余的符号位 4.比较及判别类指令:循环条件判断时用 CMPEQ/CMPGT(U)/CMPLT(U)指令用于比较两个有/无符号数的相等、大于、小于,若为真,则目的寄存器置1;反之,目的寄存器置0。 MV: 通用寄存器之间传送数据 MVC: 用于在通用寄存器与控制寄存器之间传送数据,此条指令只能使用.S2功能单元 MVK: 用于把16位常数送入通用寄存器 MVKH/MVKLH MVKL 结合生成32位常量 用标号label表示目标地址的转移指令 B (.S) label 用寄存器表示目标地址的转移指令 B .S2 src2 从可屏蔽中断寄存器取目标地址的转移指令 B .S2 IRP 从不可屏蔽中断寄存器取目标地址的转移指令 B .S2 NRP 转移指令有5个指令周期的延迟间隙。转移指令后的 5个指令执行包全部进入CPU流水线,并相继执行。 Implementation of Sum of Products (SOP) Implementation of Sum of Products (SOP) Multiply (MPY) Multiply (.M unit) Addition (.?) Add (.L unit) Register File - A Specifying Register Names Specifying Register Names Loading the Pointer Rn Loading the Pointer Rn Loading the Pointer Rn LDH, MVKL and MVKH Creating a loop What are the steps for creating a loop 1. Create a label to branch to 2. Add a branch instruction, B. Which unit is used by the B instruction? 3. Create a loop counter. 4. Decrement the loop counter 5. Make the branch conditional 5. Make the branch conditional 5. Make the branch conditional More on the Branch Instruct

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档