- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机体系结构 周学海 xhzhou@ustc.edu.cn 0551-3601558 中国科学技术大学计算机系 第2章 指令集结构设计 2.1 指令集结构分类2.2 寻址方式2.3指令格式2.4 操作数的类型、表示和大小2.5指令集功能设计2.6 编译技术与计算机体系结构2.7 DLX指令集结构 指令集设计 指令集结构: 我们必须说明那些东西? 指令格式或编码方式。即如何编码? 操作数和操作结果的存放位置 存放位置? 多少个显式操作数? 存储器操作数如何定位? 哪些操作数可以或不可以放到存储器中? 数据类型和大小 支持哪些操作 下一条指令地址 jumps, conditions, branches fetch-decode-execute is implicit! 2.1 ISA 的基本分类 累加器型(Accumulator) (1 register): 1 address add A acc ? acc + mem[A] 1+x address addx A acc ? acc + mem[A + x] 堆栈型(Stack): 0 address add tos ? tos + next 通用寄存器型(General Purpose Register): 2 address add A B EA[A] ? EA[A] + EA[B] 3 address add A B C EA[A] ? EA[B] + EA[C] Load/Store: 3 address add Ra Rb Rc Ra ? Rb + Rc load Ra Rb Ra ? mem[Rb] store Ra Rb mem[Rb] ? Ra 比较指令条数 通用寄存器型占主导地位 通用寄存器的分类 分类原则: ALU指令到底是两地址指令还是三地址指令 ALU指令中有多少个操作数可以用存储器寻址,即有多少个存储器操作数 常见的三种通用寄存器型指令集结构的优缺点 2.2 寻址技术 1980年以来几乎所有机器的存储器都是按字节编址的 ISA设计要关注两个问题: 8bits-字节, 16bits-半字,32bits -字, 64bits -双字 如何读32位字,两种方案 每次一个字节,四次完成 每次一个字,一次完成 问题: (1)如何将字节地址映射到字地址 (2)一个字是否可以存放在任何字节边界上 即尾端(Endian)和对齐问题 尾端问题 little endian, big endian, 在一个字内部的字节顺序问题,如地址xxx00指定了一个字(int), 存储器中从xxx00处连续存放ffff0000, 则有两种方式: Little endian 方式下xxx00位置是字的最低字节,整数值为0000ffff, Intel 80x86, DEC Vax, DEC Alpha (Windows NT) Big endian 方式下xxx00位置是字的最高字节,整数值为ffff0000, IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA 对齐问题 对一个s字节的对象访问,地址为A,如果A mod s =0 那么它就是边界对齐的。 边界对齐的原因是存储器本身读写的要求,存储器本身读写通常就是边界对齐的,对于不是边界对齐的访问可能要导致存储器的两次访问,然后再拼接出所需要的数。 寻址方式 各种寻址方式的使用情况? (忽略寄存器直接寻址) 偏移量字段大小的使用情况 立即数大小? 寻址方式小结 2.3 指令格式 指令格式选择策略 指令格式 MIPS 寻址方式/指令格式 2.4 操作数的类型、表示和大小 操作数类型和操作数表示也是软硬件的主要界面之一。 操作数类型:是面向应用、面向软件系统所处理的各种数据结构。 整型、浮点型、字符、字符串、向量类型等、十进制 类型由操作码确定或数据附加硬件解释的标记,一般采用由操作码确定 操作数的表示:硬件结构能够识别,指令系统可以直接调用的结构 整型:原码、反码、补码 浮点:IEEE 754标准 十进制:BCD码,二进制十进制表示 操作数的大小 2.5 指令集结构的功能设计 CISC计算机指令集结构的功能设计 RISC计算机指令结构的功能设计 控制类指令 典型操作类型 (ISA到底应该支持哪些操作) ISA对操作类型的选择 需考虑的因素:速度、价格和灵活性 基本要求:指令系统的完整性、规整性、高效率和兼容性 完整性设计:具备基本指令种类 兼容性:系列机 高效率:指令执行速度快、使用频度高 规整性 让所有运算部件都能对称、均匀的在所有数据存储单元之间进行操作。 对所有
文档评论(0)