- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
区别不同指令集结构的主要因素 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 指令集结构的分类 通用寄存器结构 现代指令集结构的主流 在灵活性和提高性能方面有明显的优势 跟其他的CPU内部存储单元一样,寄存器的访问 速度比存储器快。 对编译器而言,能更加容易、有效地分配和使用 寄存器。 寄存器可以用来存放变量。 (1)减少对存储器的访问,加快程序的执行速度; (因为寄存器比存储器快) 2.1 指令集结构的分类 (2)用更少的地址位(相对于存储器地址来说)来对寄 存器进行寻址,从而有效地减少程序的目标代码的 大小。 根据ALU指令的操作数的两个特征对通用寄存器型指 令集结构进一步细分 ALU指令的操作数个数 3个操作数的指令 两个源操作数、一个目的操作数 2个操作数的指令 其中一个操作数既作为源操作数,又作为目的操作数。 2.1 指令集结构的分类 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。 2.2 寻址方式 2.2 寻址方式 偏移量的取值范围 在load-store结构的机器(Alpha)上运行SPEC CPU2000基准程序 2.2 寻址方式 从该图可以看出: 程序所使用的偏移量大小分布十分广泛 主要是因为在存储器中所保存的数据并不是十分 集中,需要使用不同的偏移量才能对其进行访问。 较小的偏移量和较大的偏移量均占有相当大 的比例 2.2 寻址方式 立即数寻址方式 立即数寻址方式的使用频度 2.2 寻址方式 立即数的取值范围 2.2 寻址方式 最常用的是较小的立即数; 有时也会用到较大的立即数(主要是用于地址计算)。 在指令集结构设计中,至少要将立即数的大小设置 为8~16位。 在VAX机(支持32位立即数)上做过类似的统计,结果 表明20%~25%的立即数超过16位。 指令集结构的功能设计 确定软、硬件功能分配,即确定哪些基本功能应该由硬件实现,哪些功能由软件实现比较合适。 在确定哪些基本功能用硬件来实现时,主要考虑3个因素:速度、成本、灵活性 硬件实现的特点 速度快、成本高、灵活性差 软件实现的特点 速度慢、价格便宜、灵活性好 2.3 指令集结构的功能设计 对指令集的基本要求 完整性、规整性、高效率、兼容性 完整性:在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够用。 要求指令集功能齐全、使用方便 下表为许多指令集结构都包含的一些指令类型 前4类属于通用计算机系统的基本指令 对于最后4种类型的操作,不同
文档评论(0)