计算机体系结构 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=pilog2pi

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

    • Huffman编码

      例1👇

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

      指令I1I2I3I4I5I6I7
      概率0.450.300.150.050.030.010.01

      解:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OC4WsDeS-1625152669956)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-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.451+0.32+0.153+0.054+0.035+0.016+0.016=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=(0.45log20.45+0.30log20.30++0.01log20.01)=1.95

      信 息 冗 余 量 = 操 作 码 平 均 长 度 − H 操 作 码 平 均 长 度 = 0.02 1.97 = 1.015 % 信息冗余量=\frac {操作码平均长度-H}{操作码平均长度}=\frac {0.02}{1.97}=1.015\% =H=1.970.02=1.015%

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lOvwPfxv-1625152669958)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210626152028661.png)]

  • 指令字格式的优化

    • 基础:初步设计的指令集

    • 目标:减少指令长度,提高指令性能

    • 优化原则:

      • 采用高概率优先思想,对高频率指令,缩短指令长度,提高效率
      • 地址码长度富裕时,采用不同的寻址方式或不同的地址制,增加功能
      • 地址码长度紧张时,采用特定的寻址方式或增加指令字长,满足功能
    • 地址码个数选择:零地址、一地址、二地址、三地址、二地址寄存器型

      地址数目程序的长度程序存储量程序执行速度适用场合
      三地址最短最大一般向量矩阵运算为主
      二地址较短很大很低一般不采用
      一地址较长较大较快连续运算(累加),硬件结构简单
      零地址最长最小最低嵌套,递归,变量较多
      二地址寄存器型一般最小最快一般商用处理机使用
    • 缩短地址码长度的方法

      • 用一个短地址码表示一个大地址空间
      • 用间址寻址方式缩短地址码长度方法
      • 用变址寻址方式缩短地址码长度
      • 用寄存器间接寻址方式缩短地址码长度

4 指令系统的发展和改进

  • 优化指令系统设计的3个阶段:

    • CISC--------复杂指令系统计算机
    • RISC--------精简指令系统计算机
    • VLIW-------超长指令字

    关键在软硬件的功能分配,系统的综合性能时间与空间;执行、编译、编写时间

  • CISC方向发展与改进指令系统

    • 面向目标程序的优化实现改进
    • 面向高级语言的优化实现改进
    • 面向操作系统的优化实现改进
  • CISC的主要特点

    • 指令系统庞大,指令功能复杂,指令格式、寻址方式多
    • 绝大多数指令需要多个机器周期完成
    • 各种指令都可访问存储器
    • 采用微程序控制
    • 有专用寄存器
    • 难以用优化编译技术生成高效的目标代码程序
  • CISC存在的问题

    • 指令系统庞大,指令功能复杂,指令格式、寻址方式多
    • 执行速度慢
    • 难以优化编译,编译程序复杂
    • 80%的指令在20%的运行时间使用二八法则
    • 无法并行
    • 无法兼容
  • 为什么CISC指令系统复杂?

    • 减少语义差距
    • 减少存储空间,提高速度
    • 为了向上兼容
  • RISC方向发展与改进指令系统

  • RISC的主要特点/设计原则

    • 减少了CPI,RISC的速度要比CISC块3倍左右,关键是RISC的CPI减少了
    • 采用硬布线控制逻辑
    • 减少指令和寻址方式的种类,使用频度很高的指令
    • 使用固定的指令格式
    • 所有指令在一个机器周期完成
    • 扩大通用寄存器个数
    • 采用LOAD/STORE结构
    • 指令执行过程中设置多级流水线等
    • 十分强调优化编译技术的作用
    • RISC设计思想也可以用于CISC中
  • RISC结构采用的基本技术

    • 采用硬联实现和微程序固件实现相结合的技术
    • 在CPU中设置数量较大的寄存器组,并采用重叠寄存器窗口的技术
    • 指令的执行采用流水和延迟转移技术
    • 采用认真设计和优化编译系统设计的技术
  • RISC技术优点

    • 简化指令系统设计
    • 提高机器的执行速度和效率
    • 降低 设计成本,提高系统可靠性
    • 提供直接支持高级语言的能力,简化编译程序的设计
  • RISC技术的不足

    • 指令少,加重汇编程序员的负担
    • 浮点运算和虚拟存储器支持不足
    • 编译程序难写
  • CISC与RISC的对比

    功能CISCRISC
    指令系统复杂、庞大简单、精确
    指令条数>200<100
    指令格式>4<4
    寻址方式>4<4
    指令字长不固定32bit
    可访存指令不加限制只有LOAD/STORE
    各种指令使用频率相差太大相差不大
    各种指令执行时间相差太大绝大多数一周期完成
    优化编译系统很难较容易
    程序源代码长度
    控制逻辑实现方式绝大多数微程序控制绝大多数位硬连线控制

    |
    | 可访存指令 | 不加限制 | 只有LOAD/STORE |
    | 各种指令使用频率 | 相差太大 | 相差不大 |
    | 各种指令执行时间 | 相差太大 | 绝大多数一周期完成 |
    | 优化编译系统 | 很难 | 较容易 |
    | 程序源代码长度 | 短 | 长 |
    | 控制逻辑实现方式 | 绝大多数微程序控制 | 绝大多数位硬连线控制 |

软件体系结构描述语言:C2 学校教务系统中教师补课子系统有如下一些基本假设: 本系统中有三个基本对象:教师、学生和教务员。 补课基本流程如下: 教师(teacher)分别向学生(student)与教务员(dean)发出补课请求makeupClassRequest()、并提供一个教师期望的补课时间与地点的集合preferSetTeacher(time, address),提出一个教师不期望的补课时间与地点集合excludeSetTeacher(time, address)供学生选择。同时,教师向学生与教务员发出请求获取学生与教务员期望的补课时间地点集合getPerferSet(),获取不喜欢的时间地点集合getExcludeSet(),获取教师所提供的期望补课时间地点集合之外的时间地点集合addPreferSet(), 学生与教务员收到教师的补课请求以及相应的参数后,根据自身的情况以及学校课室的使用情况,结合教师所提供的preferSetTeacher(time, address)、excludeSetTeacher(time, address),①从preferSetTeacher(time, address)集合中选取出合适的元组组成学生自己所期望的补课时间与地点集合preferSet(time,address)。②增加不在excludeSetTeacher(time, address)的时间与地点集合excludeSet(time, address)。最后将preferSet(time,address)与excludeSet(time, address)发回给教师。 教师接收到学生与教务员返回的集合excludeSet(time, address)后,与excludeSet(time, address)进行“并”(or)计算。接收到preferRes(time, address)后,与原有的preferSet(time, address)进行“交”(and)计算,然后再与excludeSet(time, address)进行差(subtraction)运算。 教师最后从preferSetTeacher(time, address)集合中选择一个元组作为补课的时间与地点,并通知学生与教务处。 要求: 画出该系统基于C2风格的体系结构图 利用C2语言描述出教师构件 利用C2语言描述出学生构件 种用C2语言设计出本系结构中的连接件 描述出软件体系结构并设计出一个体系结构的实例,在这个实例中,教师是张三,有学生有a,b,c三人,教务员是李四。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Da雪满弓刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值