包括所有的load和store指令、立即数指令、分支指令、寄存器跳转JR指令.pptVIP

包括所有的load和store指令、立即数指令、分支指令、寄存器跳转JR指令.ppt

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

区别不同指令集结构的主要因素 CPU中用来存储操作数的存储单元的类型 CPU中用来存储操作数的存储单元的主要类型 堆栈 累加器 通用寄存器组 将指令集结构分为三种类型(接下页) 2.1 指令集结构的分类 堆栈结构 累加器结构 通用寄存器结构 根据操作数的来源不同,又可进一步分为: 寄存器-存储器结构(RM结构) (操作数可以来自存储器 ) 寄存器-寄存器结构(RR结构) (所有操作数都是来自通用寄存器组) 也称为load-store结构,这个名称强调:只有load指令和store指令能够访问存储器。 2.1 指令集结构的分类 对于不同类型的指令集结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。 显式给出:用指令字中的操作数字段给出 隐式给出:使用事先约定好的存储单元 4种指令集结构的操作数的位置以及结果的去向 (图见下页) 2.1 指令集结构的分类 例: 表达式C=A+B在4种类型指令集结构上的代码。 假设:A、B、C均保存在存储器单元中,并且不能 破坏A和B的值。 2.1 指令集结构的分类 2.1 指令集结构的分类 通用寄存器结构 现代指令集结构的主流 在灵活性和提高性能方面有明显的优势 跟其他的CPU内部缓冲单元一样,寄存器的访问 速度比存储器快,相当于ALU提速了。 相对于存储器地址来说,寄存器进行寻址用更少的地址位,从而有效地减少程序的目标代码的大小。 对编译器而言,能更加容易、有效地分配和使用寄存器。 寄存器可以用来存放中间变量,从而减少对存储器的访问,加快程序的执行速度; 2.1 指令集结构的分类 根据ALU指令的操作数的两个特征对通用寄存器型指 令集结构进一步细分 特征1:ALU指令的操作数个数 3个操作数的指令 两个源操作数、一个目的操作数 2个操作数的指令 其中一个操作数既作为源操作数,又作为目的操作数。 特征2:ALU指令中存储器操作数的个数 可以是0~3中的某一个,为0表示没有存储器操作数。 (例子见下页) 2.1 指令集结构的分类 通用寄存器型指令集结构进一步细分为3种类型 寄存器-寄存器型(RR型) 寄存器-存储器型(RM型) 存储器-存储器型(MM型) 3种通用寄存器型指令集结构的优缺点 下页表中(m,n)表示指令的n个操作数中有m个存 储器操作数。 一种指令集结构如何确定所要访问的数据的地址? 在通用寄存器指令集结构中,一般利用寻址方式指明指令中的操作数是一个常数、一个寄存器操作数,抑或是一个存储器操作数 对存储器操作来说,由寻址方式确定的实际的存储器地址称为有效地址 当前的指令集结构中所采用的一些操作数寻址方式 ?:赋值操作 Mem:存储器 Regs:寄存器组 方括号:表示内容 Mem[ ]:存储器的内容,Regs[ ]:寄存器的内容,#立即数 Mem[Regs[R1]]:以R1中的内容作为地址的存储器单元中的内容 (各种具体实例见下页) 2.2 寻址方式 关于寻址方式的几点说明 采用多种寻址方式可以显著地减少程序的指令条数,但可能增加计算机的实现复杂度以及指令的CPI。 一般来说,一个指令集结构会根据应用需求选择上表中的几种,可能是子集,也可能是超集。例如,表中没有包含的PC相对寻址 有效地址=func(PC,R,#) 自增,自减寻址可用于一维数组循环处理,缩放寻址可用于二维数组循环处理,只有当所要访问的数据元素在存储器中相邻,而且每个被访问的数据项的大小均为d(如,d=4B=1W=32bit 或d=8B=DW=64bit)时,这些寻址方式才有意义 2.2 寻址方式 2.2 寻址方式 偏移寻址中,如何确定偏移量的最大取值范围? (即,在偏移寻址的设计中,用多少位来表示偏移量) 寄存器-寄存器型指令集结构的机器上(MIPS) ◆ 运行SPECint92基准程序集 (compress、espresso、eqntott、gcc、li) ◆ 运行SPECfp92基准程序集 (dudoc、ear、hydro2d、mdljdp2、su2cor) ◆ x轴的标记是对偏移量大小进行log2(·)运算所 得,也就是偏移量字段的位数。 2.2 寻址方式 从该图可以看出: 程序所使用的偏移量大小分布十分广泛; 较小的偏移量和较大的偏移量均占有相当大的比例; 将偏移量字段的大小设置为12~16位。这种长度可以支持上述75%~99%基于偏移寻址方式的数据访问中偏移量大小的表示。 2.2 寻址方式 立即数寻址方式 立即数寻址方式的使用频度 在一种Load/Store型指令集结构上,一些指令使用

文档评论(0)

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

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

1亿VIP精品文档

相关文档