ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【体系结构】第2章 数据表示、寻址方式与指令系统

2022-05-08 18:31:22  阅读:159  来源: 互联网

标签:舍入 指令系统 数据表示 地址 寻址 指令 OPC 码长


一、指令集架构

1、数据来源

  • 累加器、堆栈、寄存器和存储单元

2、指令集架构的三种类型

  • 面向累加器结构:累加器是唯一的暂存器
  • 面向堆栈结构
  • 面向寄存器结构:也称为面向通用寄存器架构(GPR),所有操作数均需命名,且显式表示
    • 寄存器-寄存器(RR结构)
    • 寄存器-存储器(RM结构)

3、指令指定操作数方式

  • 显式: 用指令字中的操作数字段给出
  • 隐式: 使用事先约定好的存储单元

二、寻址方式

1、寻址方式

  • 处理器根据指令中给出的地址信息来寻找有效地址的方式,包括指令的寻址和指令中数据的寻址
    • 指令寻址:顺序+非顺序
    • 数据寻址:根据数据的来源采取不同的寻址方式

2、数据存放顺序

  • 大端位序:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端
  • 小端位序:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端

3、数据存放位置——对齐

  • 字节编址,按字访问

  • 从任意位置开始存贮和访问——不同长度的字节数据可存放在任何位置

    • 优点:不浪费存贮空间;
    • 缺点:访问一个变量或存贮单位可能要花2个存贮周期,因为有可能跨越2个存贮单元
  • 从地址的整倍数位置开始访问(对齐)

    • 双字(8个字节)-地址末3位为000: 0 开始的地址数
    • 单字(4个字节)-地址末2位为00: 0,4 开始的地址数
    • 半字(2个字节)-地址末位为0: 0,2,4,6 开始的地址数

4、地址组织方式

  • 独立编址:通用寄存器、主存储器和输入输出设备均独立编址
  • 混合编址:所有存储设备统一编址

5、寻址方式

  • 立即数寻址方式

    • 用于数据比较短且为源操作数
  • 面向寄存器的寻址方式
    OPC R
    OPC R,R
    OPC R,R,R
    OPC R,M

  • 面向主存储器的寻址方式
    OPC M
    OPC M,M
    OPC M,M,M

  • 面向堆栈的寻址方式:
    OPC
    OPC M

三、定位方式

1、程序的三种地址

  • 符号地址:用符号表示的地址,类似于高级语言中的变量
  • 逻辑地址:指令中给出的地址
  • 物理地址:内存的实际地址

2、程序定位

  • 把指令和数据中的逻辑地址(相对地址)转换成主存储器的物理地址(绝对地址)的过程。

3、程序定位方式

  • 直接定位方式:编写程序时,或编译时,就已经知道该程序应该占用的主存物理空间

  • 静态定位方式

    • 前提条件:要求程序本身是可以重定位的

    • 程序在运行之前,在装入主存储器的过程中集中一次完成地址变换

  • 动态定位方式

    • 在程序执行寻址时进行重定位,访问地址时,通过地址变换机构改变为内存地址,用户程序原封不动的装入内存,运行时再完成地址的定位工作

    • 动态重定位需要硬件的支持

    • 常用方法:基址寻址、页式、段式、段页式管理

四、数据表示

1、数据类型>数据结构>数据表示

  • 数据类型:指一组数据值的集合,还定义了可作用于这个集合上的操作集
  • 数据表示用硬件实现的数据类型
  • 其他:用数据结构实现。

2、整数表示

  • 原码、反码、补码
  • 移码:补码符号位取反,或,补码+偏移量bias
  • BCD码:每四位二进制数表示一位十进制数

3、定点数表示

  • 小数点固定地位于实数所有数字中间的某个位置。

4、浮点数表示

4-1 浮点数的格式

  • 符号S\(~~~~\)阶码(指数)E \(~~~~\)尾数(有效数字位)1.M

  • 符号S:$~~$1为负数,0为正数
  • 尾数1.M: \(~~\)用原码,规格化原码尾数的最高位恒为1,该1在尾数中不表示出来,计算式在前面自动加1
  • 阶码E:\(~~\)是2的幂,用移码表示(+偏移量)
  • 为了处理负指数的情况,实际的阶码E按要求需要加上一个偏置(Bias)值。单精度是 127,双精度是 1023。产生指数的取值范围是:单精度为 -126~+127,双精度为 -1022 ~ +1023。

  • 单精度: 32位=1 + 8 + 23
  • 双精度: 64位=1 + 11 + 52

4-2 规格化浮点数实例

  • 实数 -9.625,二进制1001.101,用规范的浮点数表达应为 1.001101×23

  • 9.625 是负数,符号段为 1。指数为 3,所以指数段为 3+127=130,即二进制的 10000010。有效数字省略掉小数点左侧的 1 之后为 001101,然后在右侧用零补齐。因此所得的最终结果为


4-3 非规格化浮点数

  • 当指数段 E 全为 0 时,所表示的数就是非规格化形式。在这种情况下有效数字的值 不包含隐含的开头的1,即(.M)

  • 非规格化值有两个用途:
    • 提供了一种表示数值 0 的方法
    • 表示那些非常接近于 0.0 的数。此方案被称为逐渐下溢

5、舍入规则

  • 向偶数舍入:两个相同接近的首选偶数
    • Round(1.4)=1
    • Round(1.5)=2
    • Round(0.5)=0
  • 向上舍入(向正无穷舍入)
    • ceil(1.324)=2
  • 向下舍入(向负无穷舍入)
    • floor(1.324)=1
    • floor(-1.324)=-2
  • 向0舍入:截断

例题

  • 向偶数舍入,保留两位

  • 二进制(b)中,末位为0,为偶数,末位为1,为奇数

  • 1、b(10.00011)=b(10.00)

  • 2、b(10.00100)=b(10.00)

  • 3、b(10.01100)=b(10.10)

小数部分后三位,范围在000~111,中间值为100(4),而题目为011,所以向近的舍入,011离000近,所以变成b(10.00000),保留两位,即b(10.00) 
小数部分后三位,100,为中间值,向偶数舍入,向偶数舍入,而小数点第2位为0,是偶数,所以保持不变。
小数部分后三位,100,为中间值,在b(10.01)和b(10.10)中间,而小数部分前两位为01,奇数,所以向偶数靠近,选b(10.10)

6、向量数据表示

  • 向量:指具有n个数据的数组,所有数据的性质相同
  • 向量数据通常用基地址,长度和位移量三个参量表示,其中对于指令,操作向量的起始地址=基址+位移量,操作向量有效长度=向量长度-位移量

  • 其中X,Y,Z各区段表示寄存器号,分别表示源向量A,B和结果向量的位移量,而A,B,C各区段分别存放源向量A,B和结果向量C的基地址及长度。

7、堆栈表示

8、阵列数据表示

五、指令系统设计原理和优化

1、指令格式 操作码 操作数

2、指令系统的优化——指令码的优化、地址码的优化

3、操作码优化

  • 操作码的信息源熵:信息源所包含的平均最短信息量

\[H=-ΣP_i ·log_2P_i \]

其中\(P_i\)是第i个信息源的使用频度。

  • 信息冗余量

\[k=1- \frac{H}{操作码实际平均长度} \]

3-1、等长编码

  • 根据指令的条数确定编码的长度,每种指令的编码长度一样。

  • 现设一台模型机,共有7种不同的指令,使用频度如表所示。

  • 信息源熵:0.401.32+0.301.74+0.152.74+0.054.32+0.044.64+0.035.06+0.03*5.06=2.17
  • 信息冗余量:1-2.17/3=0.28

3-2、哈夫曼编码

  • 利用哈夫曼压缩思想对操作码进行编码

  • 方法:使用频度从小到大排序;编号:左1右0
  • 平均码长$=\sum P_iI_i= $ 0.401+0.302+0.153+0.055+0.045+0.035+0.03*5=2.20(位)
  • 冗余度 K=1-2.17/2.20≈1.36%
  • 哈夫曼编码
    • 最优的变长码
    • 码长变化大,不利于实现

3-3、扩展编码

  • 限定几种码长,频度高的码点用短码表示,反之用长码表示。
  • 码长表示法,用短横线前后的数字表示短码和长码的码长;
    • 如4-8-12,表示编码的长度有三种分别是4位,8位,12位。
  • 码点表示法,用斜线前后的数字表示短码码点的和长码码点的个数,
    • 如15/15/15,表示有三种码长,各种码长的码点个数都是15位

  • 例:已知频度序列为0.1,0.1,0.15,0.15,0.2,0.3,求Huffman编码、等长扩展3/3/3码、定长编码三者的平均码长、信息冗余量。

3-4、最优编码

  • 短码都不能是长码的前缀

3-5、练习:

  • 经统计,某机器14条指令的使用频度分别为:0.01, 0.15, 0.12, 0.03, 0.02, 0.04, 0.02, 0.04, 0.01, 0.13, 0.15, 0.14, 0.11, 0.03,请写出平均码长最短的扩展编码

4、地址码的优化

  • 用一个较短的地址码表示一个比较大的逻辑地址空间

  • 采用基址、变址、相对、等多种寻址方式,以缩短地址码的长度

六、指令集的发展和改进

1、一种指令集结构中的指令要支持哪些类型的操作?—— 两种截然不同的方向:

  • CISC(Complex Instruction Set Computer,复杂指令集计算机)
  • RISC(Reduced Instruction Set Computing,精简指令集计算机)

2、CISC

  • 冯·诺依曼结构也称普林斯顿结构
  • CISC代表:Intel X86

3、RISC

  • 也称哈佛结构
  • RISC代表:IBM power架构;ARM架构

  • 目前,x86处理器占据了超过90%的个人电脑市场,以ARM为代表的RISC产品则同样占据了超过90%的移动计算市场。

4、RISC主要特征

  • 只使用频度高的指令,减少指令种类
  • 扩大通用寄存器数目,面向寄存器的寻址方式,采用LOAD-STORE架构
  • 分开的存取指令数据,引入多级Cache
  • 充分提高流水线效率(用各种技术减少相关阻塞)
  • 采用硬逻辑控制方式(少数采用微程序设计)
  • 采用优化编译技术,很好支持高级语言

5、RISC的关键技术

  • 重叠寄存器窗口技术
  • 延迟转移技术
    • 在RISC处理机中,指令一般采用流水线方式工作。取指令和执行指令并行进行。然而,在遇到转移指令时,流水线就可能断流。

    • 增加空指令、交换

  • 优化编译技术
    • 为了使RISC处理机中的指令流水线高效率地工作,尽量不断流。优化编译器必须分析程序的数据流和控制流,当发现指令流有断流可能时,要调整指令序列。

  • 采用硬联控制与微程序固件相结合的技术

标签:舍入,指令系统,数据表示,地址,寻址,指令,OPC,码长
来源: https://www.cnblogs.com/qq1740656345/p/16243868.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有