组成原理基础杂记(下)

299 阅读7分钟

计算机的运算方法

符号与原码表示法

  • 机器字长与无符号数:无符号数八位为0255(有符号-127127),16为0~65535
  • 有符号数的源码表示法,第一位为符号位,0正数1负数,数值位为绝对值,故原码表示又称为带符号的绝对值表示。
    • +0.1011->0,1011 -1100->1,1100
  • 小数:+0.1101 -> 0.1101 -0.1101->1-(-0.1101)->1.1101

image.png

补码表示法

  • 负数+“模”=该负数的补数
  • 负小数的补码=符号位为1+原码每位取反再加一
  • 0的反码补码都为0 image.png image.png

补码加法

减法的机器实现困难,故做加法时,将数转为补码做运算,结果不变

定点数浮点数

  • 定点数:小数点固定在某一位置(绝对值小于一的纯小数/纯整数)
  • 浮点数:小数点的位置可以浮动的数,可以通过乘10的次幂来移动小数点位置但值不变

浮点表示

N=S*r^j: S尾数,j阶码,r基数(2,4,8,16)
计算机中规定浮点数的尾数用纯小数形式,且尾数最高位为1的浮点数,称为规格化数,其精度最高 image.png

指令系统

相关概念

image.png 上图为指令的一般格式

  • 操作码:指令要完成度操作,位数反应机器允许的指令条数
    • 长度固定:集中放再指令字的一个字段(用于指令字长较长的中大型计算机和超小型计算机)
    • 长度可变:分散在指令字的不同字段(用于字长短的微型计算机)
  • 指令字长:取决于操作码长度,操作数地址长度,操作数地址个数
    • 指令字长固定:指令字长=机器字长=存储字长
    • 指令字长可变:字长位字节倍数-单子长指令,多字长指令
  • 指令周期:取出一条指令并执行这条指令的时间
  • 寻址方式:确定本条指令的操作数地址,下一条要执行指令的指令地址

扩展操作码技术

操作码的位数随地址数的减少而增加。
在设计操作码不固定的系统时,尽量考虑安排指令使用频度,高的指令使用短操作码,频度低的使用长操作码,可以缩短经常使用的指令的译码时间。
具体内容暂时引用ppt...

  • 三地址指令可以有四位操作码,16个情况可以分为n个三地址指令操作码和16-n个扩展码
  • 扩展码前四位操作码为扩展码,共有1-n种,后四位每个16种则二地址指令可以有16(16-n)个
  • 也可以后四位再留下扩展码来进一步扩展一地址指令和0地址指令 image.png

寻址方式

  • 指令寻址
    • 顺序寻址:(PC)1->PC
    • 跳跃 image.png

数据寻址

image.png

  • 立即寻址:
    • 形式地址A位操作数
    • 指令执行阶段不访存
    • A的位数限制了立即数的范围
  • 直接寻址
    • EA = A ,有效地址由形式地址直接给出
    • 执行阶段访问一次存储器
    • A的位数决定乐该指令操作数的寻址范围
    • 操作数的地址不宜修改(必须修改A)
  • 隐式寻址
    • 操作数地址隐含在操作马车或者某个寄存器中
    • 指令字中少了一个地址字段,可缩短指令字长
  • 间接寻址
    • EA-(A):A指出EA所在存储单元地址,有效地址由形式地址间接提供
    • 执行时两次访存
    • 可扩大寻址范围
  • 寄存器寻址
    • EA=Ri 有效地址即为寄存器编号
    • 执行阶段不访存,只访问寄存器,速度快
    • 寄存器个数有限,可缩短指令字长
  • 寄存器间接寻址
    • 有效地址在寄存器中,操作数在存储器,执行阶段访问
  • 基址寻址
    • EA=(BR)+A BR为基址寄存器
    • 可扩大操作数寻址范围,因为基址寄存器的位数可以大于形式地址A的位数
    • 在程序的执行过程中BR内容不变,形式地址A可变
  • 变址寻址
    • EA=(IX)+A IX为变址寄存器(专用),通用寄存器也可以作为变址寄存器
    • 可扩大寻址范围
  • 相对寻址
    • EA=(PC)+A A是相对于当前指令的位移量
    • 广泛用于转移指令
    • A的位数决定操作数的寻址范围
  • 堆栈寻址
    • 指令字中没有形式地址码,是0地址指令

RISC与CISC

RISC:精简指令系统计算机
COSC:复杂指令系统计算机

RISC特点

  • 选用使用频度较高的一些 简单指令以及一些很有用又不复杂 的指令,让复杂指令的功能由频度高的简单指令的组合来实现。
  • 指令长度固定,指令格式种类少,寻址方式少
  • 只有LOAD/STORE指令访存
  • CPU由多个通用寄存器
  • 采用流水技术,一个时钟周期内完成一条指令
  • 采用组合逻辑实现控制器
  • 采用优化的编译程序

比较

  • RISC更能充分利用VLSI芯片的面积
  • RISC更能提高计算机运算速度
    • 指令数,指令格式,寻址方式少
    • 通用寄存器多
    • 采用寄存器窗口重叠技术;
    • 采用组合逻辑;便于实现指令流水。
  • RISC便于设计,可降低成本,提高可靠性
  • RISC有效支持高级语言
  • RISC不易实现指令兼容系统

CPU

指令流水

  • 指为了提高处理器执行指令的效率(缩短指令周期),吧一条指令分为多个需要不同电路完成的细小步骤,每个步骤由专门的电路并行完成。
  • 影响流水效率的因素
    • 结构相关:不同指令争用同一功能部件产生资源冲突
    • 数据相关:不同指令因重叠操作,改变操作的读写访问顺序;发生在几条相邻指令间,共用一个存储单元或者寄存器时。(为了防止读脏数据而导致的指令暂停)
    • 控制相关:一条指令要等前一条指令做出转移方向的决定后才能进入流水线。

中断

  • 中断:指计算机允许期间,出现意外情况需要主机干预时,使得CPU中断当前正在执行的程序而转取执行相应的中断程序。完毕后又返回原来被中断的程序继续执行。
  • 中断隐指令:在机器指令系统中没有的指令,他是CPU在终端周期内由硬件自动完成的一条指令。
    • 作用:保护程序断点/寻找服务程序入口地址/硬件关中断等
  • 中断矢量地址:存储中断向量的存储单元地址,中断服务例行程序入口地址的地址。
  • 中断流程
    • 保护现场
    • 中断服务
    • 恢复现场
    • 中断返回
  • 中断频闭字:一个16位二进制码,越大则优先级越高。如果硬件排队中高屏蔽字中断后进入则CPU进行高优先级的程序运行再返回。如果当前程序位最高优先级则CPU运行完先回到无服务再进入新的服务。 image.png

控制单元

image.png

  • 整体:控制存储器(控存)是微程序控制单元的核心部件,用来存放全部的微程序。
  • CMAR:控存地址寄存器,用来存放需要读出的微指令地址
  • CMDR:控存数据寄存器,存放从控存读出的微指令
  • 顺序逻辑:用来控制微指令序列的;
    • 控制形成下一条微指令的地址,其输入与微地址形成部件(与指令寄存器相连),微指令的下地址字段以及外来的标志有关。