计算机体系结构---第二章---指令系统


注:本文部分内容选自网易云课堂的北京邮电大学网课,推荐


数据类型

  1. e.g. 文件 表 图 树 队列。。。。
  2. 数据表示和数据结构是数据类型的子集

数据表示:哪些数据类型可以全部用硬件表示

  1. 指:计算机硬件能够直接识别,可以被指令系统直接调用的数据类型,硬件实现也比较容易的数据类型。
    e.g. 定点数、逻辑数、浮点数、字符、字符串、堆栈、向量、十进制数

  2. 每一条指令都有相应的指令与之对应,并有硬件加以支持

确定哪些数据类型用数据表示的原则:

  • 时间性能
  • 空间性能
  • CPU利用率

e.g. 用顶点数据表示浮点运算,指令多cpu与主存的通信量增大,时间加长;浮点数运算虽然硬件复杂度增加,但是浮点数据利用率高时间快

对于很复杂的数据类型,用数据表示硬件的代价很大,so软硬件相结合的方法最好

在这里插入图片描述
在这里插入图片描述




浮点数
  1. 在这里插入图片描述
    在这里插入图片描述
自定义数据表示

因为高级语言中,编译器要根据数据的不同类型生成不同的指令,为简化指令系统,提出在机器语言一级有数据自己定义属性。

标志符:
描述一个数据
指用于标识数据类型,例如负数、几机制、浮点型等;
由编译器建立,对用户透明,对系统程序员不透明

下图反映的是代标识符和不带标识符所占空间的比较
一般紫色>橘色,紫色:指令集字缩短,减少的存储空间; 橘色:存储字长加长,增加的存储空间
因为指令条数>>字加长位数,紫<橘

在这里插入图片描述
描述符:
对于复杂数据结构连续存放的数据,没有必要让每个数据都带标识符
e.g. 例如矩阵、向量

描述一组数据,CF:标识符只表示一个数据
数据描述符中包含数据的各种标志位、长度、数据地址。能够使整个向量、矩阵、多维数组运算

优缺点和标志符相同

在这里插入图片描述

存储空间

数据结构:哪些数据类型用软件实现

e.g. 串,队,列,栈,阵列,链表,树,图



指令

组成;操作码&地址码
指令总是有一个操作码+0-n个操作数组成
在这里插入图片描述

指令按操作数存放方法进行分类:

在这里插入图片描述

  1. 堆栈型机器——CPU中存储操作数的单元是堆栈的机器。
  2. 累加型机器——CPU中存储操作数的单元是累加器的机器。
  3. 通用寄存器型机器——CPU中存储操作数的单元是通用寄存器的机器。

不同类型对应的机器型号不同
在这里插入图片描述

其中通用寄存器有:
在这里插入图片描述
所以指令可以有多种表示:
在这里插入图片描述

操作码:

  • 指令的操作种类
  • 所用操作数的数据类型:if采用自定义数据表示法,不用指出类型,只要知道种类就行

操作数:

  • 操作数地址
  • 地址附加信息:偏移量,块长度,跳距
  • 寻址方式

寻址(待更新。。。。)

大多数指令都有操作数,从哪里得到这些操作数,就需要寻址

  • 立即寻址
  • 直接寻址
  • 寄存器寻址
  • 变址寻址
  • 基址变址寻址
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述



寻址技术之----编址方式

在寻址之前就要编址
解释:编址就是对各种存储设备进行编码
设备:
ATT: 堆栈是一种存储设备但是他不用编址
在这里插入图片描述

在这里插入图片描述

编址单位
  • 字编址
    实现最容易:每个编制单位与设备的访问单位一致
    每读完一条指令,程序计数器+1,每读完一个数据,地址计数器+1
    缺点:没有对非数值计算提供支持,非数值要求按字节编址

  • 字节编址
    应用最普遍
    优点:编址单位和信息的基本单位一致,有利于符号处理(ASCII码按字节)
    缺点:访问字长为一个字节太窄了,通常主存储器的字长是4个字节以上,地址信息浪费,存储器空间浪费

  • 位编址
    优缺点同字节编址一致
    应用:STAR-100
    优缺点同字节编址,BUT地址信息浪费更大(e.g. 处理机字长64位,则一个地址末6位全为0,一个字节末3位为0,则访问一个字要占64个地址编码,一个字节要8个地址编码)



在这里插入图片描述

数据存储方法

在这里插入图片描述

优点:不浪费存储器资源

缺点:存储器读写复杂;存储器工作速度降低(因为除了访问一个字节之外,访问双字、单字、半字时要话费2个存储空间)


ATT : 最重要的是存储器访问时间


在这里插入图片描述

优点:存储器读写复简单;存储器工作速度块(因为除了访问一个字节之外,访问双字、单字、半字时要是1个存储空间)

缺点:浪费存储器资源


折中方案:使用最普遍
在这里插入图片描述

优点:保证无论双字单字都能在1个周期内完成

缺点:有浪费存储器资源,但优于第二种;读写仍然比较复杂

编址地址的起始地址要求:

在这里插入图片描述

大端数据与小端数据问题

究竟是左端最大还是右端最大

按字节编址的存储器中,从右边开始编址:软件人员的习惯;从左边编址:硬件人员的习惯。
x86采用的是按右边编址
在这里插入图片描述



编址空间组织方式

在这里插入图片描述

  • 三个零地址空间: 每种设备都是从0开始编址的

|通用寄存器|单一的直接寻址  ---- 存储容量小,访问速度快  | 字编址   ---  编址长度与访问的长度相同 ||--|--|--||主存储器  |多种寻址方式 --- 存储容量大,地址码长度长,为了避免主存中直接表示地址码的单元过长,用多种寻址方式 |多种编址方式 --- 编址单位一般与访问长度不同||输入输出设备|直接寻址,有的也用寄存器间接寻址方式--- 数量介于主存和寄存器之间,地址码长度介于主存和寄存器之间 |多种编址方式 --- 输入输出设备差异较大,有的设备需要十几个地址码|
RISC;只有访问操作在3类存储设备中都能进行,而运算位移测试操作只能在通用寄存器中进行
CISC:all操作都能在3类设备上进行

  • 2个零地址空间
    地址高端部分— 输入输出设备,低端地址— 主存储器
    缺点:指令执行过程复杂---- 所有访问主存储器的指令都要进行是否访问输入输出设备的判断
    优点:简化指令系统

    RISC:只有LOAD,STORE指令能访问主存储器,all运算操作都要在寄存器中进行。而访问输入输出通常操作简单,寻址方式单一因此RISC不适合2个零地址空间
    CISC:访问输入输出设备单一,不需要联合在一起(主存+输入输出)

  • 一个零地址空间
    all 设备统一编址,地址低端是通用寄存器,高端是输入输出设备

  • 隐含编址
    堆栈,cache,特殊的寄存器,data是先进先出的方式不用编址

指令的优化(待更新。。。。)

目标:1. 节省程序的存储空间 2. 指令格式要尽量规整 3. 不能降低指令的执行速度

优化方式
  • 定长编码
    • 优点:公平规整,译码简单
    • 缺点:浪费信息,操作码总长度增加
  • 不定长编码(哈夫曼编码)
    • 优先性
    • 优点:平均码长最短,信息冗余最小
    • 计算题:与扩展编码对比
      扩展编码a-b:先扩展a位,再扩展
  • 扩展编码法:2者耦合:对于优先性大的,码长尽量小,且相对均匀
扩展编码方法

ATT:平均最短码长有负号(这里少写了)
在这里插入图片描述
如果直接就用HUffman编码方法,有以下问题:
2. 不等长编码
所以需要扩展编码的方式,由固定长操作码和Huffman编码相结合

扩展编码的思想:

  1. 哈夫曼又称为前缀编码 ,因为短码不能是长码的前缀
  2. 高频率的用短码,低频率的用长码
  3. 哈夫曼编码不唯一

等长编码:
4-8-12扩展法:有采用15/15/15扩展;8/64/512扩展
在这里插入图片描述

ATT:
15-15-15:就是每次变低位的,高位为1111
8-64-512:扩展每4个里面的后3位

同理:3-6-9
在这里插入图片描述

2-4扩展法:
在这里插入图片描述

不等长编码:
4-6-10;8-31-16

习题:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值