文章目录

  • 数据类型
    • 数据表示:哪些数据类型可以全部用硬件表示
      • 浮点数
      • 自定义数据表示
    • 数据结构:哪些数据类型用软件实现
  • 指令
    • 指令按操作数存放方法进行分类:
    • 操作码:
    • 操作数:
    • 寻址(待更新。。。。)
    • 寻址技术之----编址方式
      • 编址单位
      • 数据存储方法
      • 编址地址的起始地址要求:
      • 大端数据与小端数据问题
      • 编址空间组织方式
    • 指令的优化(待更新。。。。)
      • 优化方式
        • 扩展编码方法
    • 习题:

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


数据类型

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

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

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

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

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

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

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

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


浮点数


自定义数据表示

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

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

  • 采用标识符的优点:
    简化指令系统,由硬件自动实现一致性检查和数据类型转换

  • 问题:
    数据和指令长度可能不一致----解决方法:1. 将数据和指令分别存储在两个存储器上 2.指令长向数字长靠拢 关于指令和数据的分开存储和混合存储参考博文:指令和数据混合存储与分开存储的比较
    指令的执行速度时间降低 ----- 因为执行时要对每个标识符进行解释

    硬件复杂度增加

    增加了数据区域的存储空间

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


描述符:
对于复杂数据结构连续存放的数据,没有必要让每个数据都带标识符
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编码方法,有以下问题:

所以需要扩展编码的方式,由固定长操作码和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

习题:











计算机体系结构---第二章---指令系统相关推荐

  1. 计算机体系结构 第二章 计算机指令集结构设计 操作码的平均长度、指令地址分配

    1.指令系统 2.寻址技术 3.指令集操作分类 CISC 弊端: 指令集过于庞杂. 使用微程序技术降低了机器的处理速度. 指令系统过于庞大. 完善的中断控制导致动作繁多,设计复杂,研制周期长. 给芯片 ...

  2. 计算机系统结构第二章课件,计算机系统结构第二章new解析课件

    计算机系统结构第二章new解析课件 计算机系统结构 第二章 数据表示与指令系统 阿迪达斯三条纹标志是由阿迪达斯的创办人阿迪·达斯勒设计的,三条纹的阿迪达斯标志代表山区,指出实现挑战.成就未来和不断达成 ...

  3. 计算机组成原理-第二章 数据表示与运算

    计算机组成原理-第二章 数据表示与运算 一.数据的表示 1.数值型数据的表示(重点难点) 1.1数值型数据的表示--进位制 1.2数值型数据表示-码制 1.3数值型数据的表示--定点数 1.4数值型数 ...

  4. 计算机的定点运算器原理,计算机组成原理第二章第10讲定点运算器的组成.ppt

    <计算机组成原理第二章第10讲定点运算器的组成.ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第二章第10讲定点运算器的组成.ppt(20页珍藏版)>请在装配图网上搜 ...

  5. 计算机组成原理第二章数据,计算机组成原理第二章数据在计算机中的表示

    计算机组成原理第二章数据在计算机中的表示 (91页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 第二章 数据在计算机中的表示 n 概述 ...

  6. 计算机组成原理第二章测试题,计算机组成原理第二章习题答案.doc

    计算机组成原理第二章习题答案 第2章?习题及解答 2-2?? 将下列十进制表示成二进制浮点规格化的数(尾数取12位,包括一位符号位:阶取4位,包括一位符号位),并写出它的原码.反码.补码三和阶移尾补四 ...

  7. [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法

    首先是Windows10 + Visual Studio 2019 搭建OpenGL环境可以查看如下链接: 萌新向!!!Windows10 + Visual Studio 2019 搭建OpenGL环 ...

  8. 计算机组成原理组间串行进位,计算机组成原理第二章课件.ppt

    <计算机组成原理第二章课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机组成原理第二章课件.ppt>文档请在天天文库搜索. 1.2.5 ...

  9. 计算机组成原理乘法运算说明过程,计算机组成原理第二章 第8讲 定点乘法运算...

    计算机组成原理第二章 第8讲 定点乘法运算 (34页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 定点乘法运算,,2.3 定点乘法运算,2 ...

最新文章

  1. linux虚拟网络设备--内核网桥的实现分析(六)
  2. WPF中实现文件夹对话框(OpenFileDialog in WPF)
  3. AE After Effect 如何分段渲染
  4. 牛客-139 I. Substring(后缀数组 or 后缀自动机)
  5. leetcode 372. Super Pow | 372. 超级次方(快速幂)
  6. 【两种解法】Quadtrees UVA - 297(隐式建树+显式建树)
  7. 记录一次查询log的经历
  8. java内存:堆、栈、常量池、方法区
  9. java 观察者模式示例_观察者设计模式示例
  10. android uinput 按键_android 使用uinput模拟输入设备的方法
  11. ②你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  12. apachemod_wsgidjango部署多个项目
  13. 一个合格的CloudNative应用:程序当开源软件编写,应用配置外置
  14. mysql b 树 锁_mysql索引B+树、MVCC、锁一文搞懂
  15. redis rua解决库存问题_库存秒杀问题-redis解决方案- 接口限流
  16. QQ音乐限制专辑重复购买 此前已取消人气榜等非作品类排名
  17. 转载:数据库应用开发工具Toad使用笔记
  18. 基于51单片机MAX6675 MAX1241的热电偶测温电机驱动系统proteus仿真 程序设计
  19. 添加rviz插件解决gaol3dtool插件缺失问题
  20. 硬脆材料划片机的工艺参数研究

热门文章

  1. 小米盒子老是服务器无响应,教你解决小米盒子黑屏死机等故障解决办法!
  2. 像素纵横比基础知识(正方形像素,非正方形像素)
  3. 20172318 2017-2018-2 《程序设计与数据结构》实验4报告
  4. Javascript - ExtJs - 组件 - 分页
  5. POJ_1062_(dijkstra)
  6. Cocos2dx学习笔记(1) Ref类型数据 垃圾回收机制
  7. GBin1专题之Web热点秀#15
  8. C# + .net下使用serialPort做串口开发 1
  9. SPField的几种name的释疑
  10. JavaScript from C#(入门篇)