计算机体系结构 C2 数据表示、寻址方式与指令系统

C2 数据表示、寻址方式与指令系统

1 数据表示

  • 数据表示

    • 定义:机器硬件能直接识别和引用的数据类型

    • 条件:相应的运算指令和运算硬件(处理部件)

    • 分类:基本数据表示、高级数据表示、自定义数据表示

    • 目标:缩小高级语言和机器语言间的语义差别;提高性能/价格;节省处理时间和存储空间

    • 实现:最小的存储空间、最简单的存取算法

      tips:数据表示是数据类型的子集

      数据表示的确定实质上是软、硬件的取舍问题

  • 数据结构

    • 目标:最大限度满足应用要求、最简化的方法实现
    • 实现:通过数据表示和软件映象相结合方法实现
  • 数据表示&数据结构

    数据表示 数据结构
    实现 由硬件实现的数据类型 由软件实现的数据类型
    是软硬件的界面 是软硬件的界面
  • 高级数据表示

    • 自定义数据表示

      • 带标识符的数据表示(对高级程序员透明)

        优点 缺点
        简化指令系统和程序设计 使程序所占用的主存空间增加
        简化编译程序 降低指令的执行速度
        便于一致性校验 必须用专门的指令完成标识符的初始化
        能由硬件自动完成数据类型的变换
        支持数据库系统的实现与数据类型无关的要求
        为软件调试和应用软件开发提供支持
      • 数据描述符(描述复杂和多维的结构类型)

      • 带标识符与数据描述符的区别

        • 标识符是和每一个数据相连的,合存在一个存储单元中,描述单个数据的类型特征
        • 描述符是个数据分开放的
    • 向量数组数据表示

    • 堆栈数据表示

      • 有利于编译和子程序调用
      • 有丰富的堆栈操作类指令且功能很强
      • 有力的支持高级语言程序的编译、逆波兰表达式
      • 有力的支持子程序的嵌套和递归调用
  • 引入数据表示的原则

    • 看系统的效率是否提高、是否减少了 实现时间和所需的存储空间
    • 看引入数据表示后,其通用性和利用率是否高
  • 浮点数尾数下溢处理方法

    • 截断法
    • 舍入法
    • 恒置“1”法
    • 查表舍入法

2 寻址方式

  • 寻址方式:指令按什么方式寻找(访问)到所需的操作数或信息的
  • 寻找操作数及其地址的技术成为寻址技术
  • 编址方式
    • 定义:对各种存储设备进行编码的方法
    • 编址单位:字编址、字节编址、位编址 、块编址
  • 字节编址
    • 优点:有利于符 处理
    • 缺点:地址信息浪费、存储器空间浪费、读写逻辑复杂、大端与小端问题
  • 寻址方式分析
    • 面向主存
    • 面向通用寄存器
    • 面向堆栈
  • 寻址方式种类
    • 寄存器寻址
    • 立即寻址
    • 直接寻址
    • 间接寻址
    • 相对寻址
    • 变址寻址
    • 寄存器间接寻址
    • 自增自减寻址
    • 比例寻址
  • 逻辑地址与主存物理地址
    • 逻辑地址是程序员编写程序时使用的地址
    • 物理地址是程序在主存中的实际地址
    • 映射实际上是压缩
  • 定位方式(重定位)
    • 程序需要定位的主要原因
      • 程序的独立性
      • 程序的模块化设计
      • 数据结构在程序运行过程中,其大小往往是变化的
      • 有些程序本身很大,大于分配给它的主存物理空间
    • 主要的定位方式
      • 直接定位方式(程序装入主存之前,指令和数据的主存已经确定)
      • 静态定位(程序装入主存的过程中进行地址变换,确定 指令和数据的地址)
      • 动态定位(在程序执行过程中,当访问到相应的指令或数据时才进行地址变换)

3 指令系统的设计和优化

  • 指令系统是从程序设计者看到的机器的主要属性,是软硬件分界面的一个主要标志

  • 指令系统的设计主要包括指令功能指令格式的设计

  • 指令类型:

    • 非特权型:供应用程序员用,也可供系统程序员使用,包括算术逻辑运算、浮点运算…
    • 特权型:供系统程序员,用户无权使用,包括启动I/O、停机等待、存储管理保护…
  • 指令系统设计的基本原则—>如何支持编译系统能高效、简易地将源程序翻译成目标代码

    • 规整性
    • 对称性
    • 独立性和全能性
    • 正交性
    • 可组合性
    • 可扩充性
  • 指令的组成—–>操作码+地址码

    • 操作码
      1. 操作种类:加、减、乘、除、数据传送、移位、转移、输入输出
      2. 操作数描述
    • 地址码
      1. 地址:直接地址、间接地址、立即数、寄存器编 、变址寄存器编
      2. 地址的附加信息:偏移量、块长度、跳距
      3. 寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址
  • 指令操作码的优化

    • 操作码的三种编码方法

      • 固定长度

      • Huffman编码(又叫最小概率合并法)

      • 扩展编码

        三种编码方法对比 固定长度 Huffman编码 扩展编码
        规整性 不好 折衷
        解码 简单 复杂 折衷
        占用空间 折衷
    • 操作码的优化表示

      • 信息源熵:
        H = ∑ p i l o g 2 p i H=-sum p_ilog_2p_i H=/span>pi/span>log2/span>pi/span>

      • 信息冗余量:
        操 作 码 的 实 际 平 均 长 度 H 操 作 码 的 实 际 平 均 长 度 frac {操作码的实际平均长度-H}{操作码的实际平均长度} /span>H/span>

    • Huffman编码

      例1

      假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中岀现的概率如下表,计算采用 Huffman编码法的操作码平均长度,并计算固定长操作码和 Huffman操作码的信息冗余量。

      指令 I1 I2 I3 I4 I5 I6 I7
      概率 0.45 0.30 0.15 0.05 0.03 0.01 0.01

      解:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OC4WsDeS-1625152669956)(C:UsersAdministratorAppDataRoamingTyporatypora-user-imagesimage-20210626150051230.png)]
      操 作 码 平 均 长 度 = 0.45 1 + 0.3 2 + 0.15 3 + 0.05 4 + 0.03 5 + 0.01 6 + 0.01 6 = 1.97 操作码平均长度=0.45*1+0.3*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=1.97 =0.45/span>1+0.3/span>2+0.15/span>3+0.05/span>4+0.03/span>5+0.01/span>6+0.01/span>6=1.97

      熵 H = ( 0.45 l o g 2 0.45 + 0.30 l o g 2 0.30 + + 0.01 l o g 2 0.01 ) = 1.95 熵H=-(0.45*log_20.45+0.30*log_20.30+cdots+0.01*log_20.01)=1.95 H=/span>(0.45/span>log2/span>0.45+0.30/span>log2/span>0.30+/span>+0.01/span>log2/span>0.01)=1.95

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月1日
下一篇 2021年6月1日

相关推荐