2 计算机指令集结构设计.pptVIP

  • 8
  • 0
  • 约8.97千字
  • 约 51页
  • 2017-12-26 发布于河北
  • 举报
2 计算机指令集结构设计

第二章 计算机指令集结构设计 指令集即指令系统,指机器所具有的全部指令的集合,它反映了计算机所拥有的基本功能。 指令集结构设计主要是确定它的指令格式、类型、操作数以及对操作数的访问方式。 2.3.1 CISC指令集结构的功能设计 1.面向目标程序增强指令功能(提高性能最直接方法) 提高运算型指令功能 如增加实现开方、三角函数等功能的指令等。 提高数据传送指令功能 如设置成组传送数据的指令以支持向量和矩阵运算。 增强程序控制指令功能 如设置多种转移指令和子程序控制指令。 数据表示:计算机硬件能够直接识别、指令集可以直接调用的数据类型。 所有数据类型中最常用、相对比较简单、用硬件实现比较容易的几种。 如:整数、布尔数、浮点数、字符、字符串等。 数据结构:由软件进行处理和实现的各种数据类型。 研究这些数据类型的逻辑结构与物理结构之间的关系,并给出相应的算法。 1、表示操作数类型的方法 由指令中的操作码指定操作数的类型。 带标志符的数据表示。给数据加上标识,由数据本身给出操作数类型。 优点:简化指令集,可由硬件自动实现一致性检查和类型转换,缩小了机器语言与高级语言的语义差距,简化编译器等。 缺点:由于需要在执行过程中动态检测标志符,动态开销比较大,所以采用这种方案的机器很少见。 2、操作数的大小:操作数的位数或字节数。 主要的大小:字节(8位)、半字(16位)、字(32位)、双字(64位) 字符:用ASCII码表示,为一个字节大小。 整数:几乎都用二进制补码表示,其大小可以是字节、半字或单字。 浮点操作数:单精度浮点数(1个字)、双精度浮点数(双字)。 十进制操作数类型 压缩十进制或二进制编码十进制(BCD码) 非压缩十进制:将十进制数直接用字符串来表示。 1、指令由两部分组成:操作码、地址码 操作码:通常包括两部分,即指令的操作类型和所用操作数的数据类型。 地址码:通常包括三部分内容,即操作数的地址、地址的附加信息和寻址方式。 2、指令格式的设计 确定指令字的编码方式,包括操作码字段和地址 码字段的编码和表示方式。 操作码的表示方法: 固定长度的操作码 保证操作码的译码速度。 Huffman编码法 减少操作码的平均位数,但所获得的编码是变长的,不规整,不利于硬件处理。 Huffman扩展编码 例1:某计算机有10条指令,它们的使用频率分别为 0.30, 0.20, 0.16, 0.09, 0.08, 0.07, 0.04, 0.03, 0.02, 0.01 用霍夫曼编码对它们的操作码进行编码,并计算平均代码长度。 地址码在指令中所占的长度最长,其编码长度主要与地址码的个数、操作数所存放的存储设备、存储设备的寻址空间大小、编址方式、寻址方式等有关。 本节主要讨论的问题: ◆ 寻址方式的表示方法 ◆ 缩短地址码长度的方法 将寻址方式编码于操作码中,由操作码描述相应操作的寻址方式。 适合:处理机采用load-store结构,寻址方式只有很 少几种。 设置专门的地址描述符,由地址描述符表示相应操作数的寻址方式。 适合:处理机具有多种寻址方式,且指令有多个操 作数。 目前计算机系统中的主存储器容量通常都很大,而且普遍采用虚拟存储器结构,要求指令中给出的地址码是一个虚拟地址(逻辑地址),其长度比实际主存储器的容量所要求的长度要长得多。 例如,目前一般计算机系统中的虚拟地址空间为4GB左右,因此,要求一个地址码实际长度为32位左右。对于多地址指令系统,这是无法容忍的,需采取措施缩短地址码长度。 用间址寻址方式缩短地址码长度 在主存储器的低端开辟出一个专门用来存放地址的区域,表示存储器低端部分的地址所需要的地址码长度可以很短,而一个存储字的长度通常与一个逻辑地址码的长度相当。 用变址寻址方式缩短地址码长度 把较长的基地址放在变址寄存器中,在指令中的地址码中只需给出比较短的地址偏移量。 用寄存器间接地址方式缩短地址码长度 存储器地址放在寄存器R中,地址码中给出该寄存器地址。 指令集的3种编码格式 变长编码格式、定长编码格式、混合型编码格式 变长编码格式 当指令集的寻址方式和操作种类很多时,这种编码格式是最好的。 用最少的二进制位来表示目标代码。 可能会使各条指令的字长和执行时间相差很大。 (2)RISC设计原则 选取使用频率最高的指令,并补充一些最有用的指令,如支持OS和高级语言实现的指令; 每条指令的功能应尽可能简单,并在一个机器周期内完成(Load和Store指令除外); 采用简单而又统一的指令格式,减少寻址方式;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档