0%

计算机组成原理

王道考研2020版
计算机组成原理(唐朔飞)

第二章 数据的表达与运算

浮点数表示

阶符,阶码;数符,尾数
阶码:常用补码或移码表示的定点整数
尾数:常用原码或补码表示的定点小数

规格化浮点数的特点

  • 规格化的原码尾数,最高数值位一定是1
  • 规格化的补码尾数,符号位与最高数值位一定相反
    规格化浮点数的特点

    IEEE 754标准

  • 移码的定义:移码=真值+偏置值
  • 阶码用移码表示,尾数用原码表示
  • 阶码全0和全1用作特殊用途
  • 数符;阶码部分;位数部分

移位运算

算数移位

算数移位总结
移位过程中符号位保持不变

逻辑移位

  • 右移:高位补0,低位舍弃
  • 左移:低位补0,高位舍弃
  • 可以把其看作是对“无符号数”的算数移位

循环移位

分为带进位位的和不带进位位的

总结

定点数移位运算

溢出

关于定点数

上溢:大于机器所能表达的最大正数
下溢:小于机器所能表达的最小负数

关于规格化浮点数

规格化浮点数的溢出

第三章 存储系统

存储系统概述

概念

控制存储器,用来存放实现全部指令系统的所有微程序,是一种只读型存储器。
控制存储器的字长=微指令字的长度
微指令周期:通常指读出一条微指令并执行微指令的时间总和
存取时间:从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间
存储周期:CPU连续启动两次独立的存取操作所需间隔的最短时间

随机存储器

按照能否长时间保存信息分为SRAM和DRAM

SRAM(静态随机存储器)

基本上只用于CPU内部的一级缓存和内置的二级缓存,用做高速存储器Cache

  • 存储元是双稳态触发器
  • 存取速度快
  • 集成度低、功耗较大
  • 用来组成高速缓冲存储器

$\overline{WE}$ :允许写信号

$\overline{CS}$ :片选信号

$\overline{WE}$ = 0,$\overline{CS}$ = 0 允许进行写操作

$\overline{WE}$ = 1,$\overline{CS}$ = 0 允许进行读操作

$\overline{CS}$ = 1 未选中单元

$\overline{MREQ}$ ,表示CPU的访问信号,只有在需要访问主存时,译码器才能工作

地址译码器

地址译码的两种方式:单译码方式、双译码方式
单译码方式,如,地址输入线n=4,经地址译码器译码可得$2^4=16$个状态,对应16个字地址

双译码方式,地址译码器分成X向和Y向两个译码器。

DRAM(动态随机存储器)

多用于容量较大的主存储器。

  • 利用存储元电路中栅极电容来存储信息
  • 存取速度比SRAM慢
  • 与SRAM相比容易集成、价位低、容量大、功耗低
  • 用来组成大容量主存系统

因为DRAM是电容,所以需要刷新周期刷新方式

  • 集中刷新:规定在一个刷新周期内,对全部存储单元集中逐行刷新,停止读写操作。优点,主存利用率高,控制简单;缺点,刷新周期集中,不能使用存储器,因而形成一段死区
  • 分散刷新:每行存储单元的刷新分散到每个存取周期内完成。优点,时序控制简单,主存没有长的死区;缺点,主存利用率不高,速度大约降低一半
  • 异步刷新:是前两种方式的结合

SRAM与DRAM

SRAM与DRAM的特点

只读存储器

掩膜式只读存储器

出厂时写入,无法改变内容
优点:可靠性、集成性高
缺点:灵活性差

PROM(一次可编程只读存储器)

EPROM(可擦除可编程只读存储器)

分为两种:紫外线擦除、电擦除
EPROM不能取代RAM,因为其

  • 编程次数有限
  • 写入时间过长

闪速存储器(Flash Memory)

有其它存储器的优点

  • EPROM:价格便宜、集成度高
  • E2PROM:电可擦除重写且速度快

固态硬盘(SSD)

读写速度快、低功耗
缺点:价格较高

高速缓冲存储器

命中率

设Nc 为访问Cache的总命中次数,Nm为访问主存的总次数

命中率h=$\frac{N_c}{N_c+N_m}$

Cache地址映像

直接映像

可定义为:
$b = B mod 2^c$

b为Cache的字块号
B为主存的字块号
c为Cache块号编址长度
缺点:不够灵活,只能对应唯一一个Cache字块,即使Cache其它字块均为空

全相联映像

允许主存中的每一个字块映像到Cache存储器的任何一个字块位置上,也允许利用某种替换策略从已被占满的Cache存储器中选择任一字块替换出去,即
Cache的$2^c$块与主存的$2^{c+t}$块相对应,主存的$2^c$块可以放入Cache的任一块中。

组相联映像

组间为直接映像,组内为全相联映像

Cache替换算法

先进先出算法FIFO、最近最久未使用算法LRU

Cache性能分析

命中率

设Nc 为访问Cache的总命中次数,Nm为访问主存的总次数

命中率H=$\frac{N_c}{N_c+N_m}$

$T=H*T_c+(1-H)*T_m$

$T_c$ :Cache访问周期

$T_m$ :主存储器的访问周期

T:Cache系统的等效访问周期
H:Cache的命中率

Cache的一致性问题

写直达法:必须将数据同时写入Cache和内存
写回法:只有当需要将该数据所在块替换出Cache时,才需要将修改过的Cache块整块写回内存。

第四章 指令系统

概念

指令地址段给出的地址不能直接用来访问主存储器,这种地址称为形式地址。形式地址经过一定的计算才能得到有效地址,有效地址通过与所在段的段地址综合,可以得到直接访问主存储器的物理地址
有效地址即为段内偏移地址,又称为偏移地址。

三个字长

机器字长:CPU一次能处理的二进制数据的位数
指令字长:一个指令字中包含二进制代码的位数
存储字长: 一个存储单元存储二进制代码的长度
这些长度都是字节的整数倍。

不同长度的指令

单字长指令:指令字长=机器字长
半字长指令:指令字长为机器字长的一半
双字长指令:
边界对齐:起始地址是字长(在按字节编址的情况下按字节算)的整数倍

寻址方式

数据存放

按字节编址、按字编址和按字地址寻址的区别

数据存放

指令寻址

查找指令的位置。
下一条欲执行指令的指令地址始终由程序计数器PC给出,有两种方式:
顺序寻址:(PC)+1$\rightarrow$ PC
跳跃寻址:由转移指令指出。核心思路,由转移指令修改PC
指令寻址

数据寻址

确定本条指令的操作数地址
数据寻址
寻址特征用来表示隐含寻址、立即寻址等

立即寻址

立即寻址

直接寻址

直接寻址

间接寻址

间接寻址

寄存器寻址

寄存器寻址

寄存器间接寻址

寄存器间接寻址

隐含寻址

隐含寻址

偏移寻址

有效地址的产生需要加法运算

基址寻址

基址寻址

基址寄存器存放基地址,形式地址存放偏移量。

变址寻址

变址寻址
变址寻址

相对寻址

相对寻址
基址寻址和相对寻址很容易实现程序浮动
依靠变址寻址自增自减的功能实现循环程序和数组问题

堆栈寻址

堆栈寻址

指令格式

二地址指令

操作数的物理位置,二地址指令可归结为三种类型:

  • 存储器-存储器(ss)型指令:参与操作的数都放在内存里,从内存某

          单元中取操作数,操作结果存放至内存另一单元中。
          因此机器执行这种指令需要多次访问内存。
    
  • 寄存器-寄存器(rr)型指令:需要多个通用寄存器或个别专用寄存

           器,从寄存器中取操作数,把操作结果放到另一寄存器中。
           机器执行这种指令的速度很快,不需要访问内存。
    
  • 寄存器-存储器(rs)型指令:执行此类指令,既要访问内存单元,

           又要访问寄存器
    

CISC和RISC

CISC(复杂指令系统计算机)
RISC(精简指令系统计算机)
CISC和RISC
RISC与CISC比较
RISC指令种类和寻址方式较少

第五章 中央处理器

CPU的功能和基本结构

CPU的功能

控制器:指令控制、操作控制、时间控制
运算器:数据加工
CPU的功能

CPU的组成

运算器

主要由算术逻辑运算单元(ALU)、累加寄存器、数据缓冲寄存器和状态寄存器等组成的。

控制器

提供控制信号

CPU中的主要寄存器

通用寄存器

通用寄存器如累加寄存器(ACC)、AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等

专用寄存器

程序计数器(PC)
指令寄存器(IR)
地址寄存器(AR)
数据缓冲寄存器(DR)
状态条件寄存器(PSW)

控制器的功能和组成

指令周期的数据流

概念

指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。常由若干个机器周期表示
机器周期:又叫CPU周期。内存中读取一个指令字所需要的最短时间来规定机器周期。因为访问主存的时间等价于一次总线传送所使用的时间,因此,在PC中将机器周期称为总线周期。一个机器周期包含若干时钟周期
时钟周期:又称节拍、T周期或CPU时钟周期,是CPU操作的最基本单位,一个节拍的宽度取决于CPU完成一次微操作所需要的时间。
使用机器周期、节拍和脉冲的三级时序系统中
一个指令周期包含若干机器周期,一个机器周期包含若干节拍,一个节拍包含一个或多个工作脉冲
在PC中
一个指令周期包含若干机器周期,一个机器周期包含若干时钟周期。时钟周期对应节拍。

周期之间的关系
周期之间的关系

指令周期的流程

指令周期的流程

取指周期

取指令

取指周期

间址周期

取有效地址
间址周期

执行周期

执行周期的根本任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。

中断周期

中断周期

指令执行方案

单指令周期、多指令周期、流水线方案
指令执行方案

数据通路

数据在功能部件之间传送的路径
整体图

内部总线:指同一部件,如CPU内部连接各寄存器及运算部分之间的总线

CPU内部单总线方式

CPU内部单总线方式

专用数据通路方式

取指周期
取指周期

例题

例题
例题
例题
例题
例题
例题
例题
例题
例题
例题
例题

控制器

操作控制器的功能:从主存取出指令,完成指令操作码译码,并产生有关操作控制信号,以解释执行该指令

控制器的结构与功能

控制器的结构与功能
控制器的结构与功能

控制单元的输入输出

控制单元的输入输出

硬布线控制器

硬布线控制器

工作原理

微操作控制信号由组合逻辑电路根据当前指令的译码信号、时序信号和反馈信号,即时产生。因此又称为组合逻辑控制器
硬布线控制器

(*)CPU的控制方式

CPU的控制方式:产生不同微操作命令序列所用的时序控制方式

同步控制方式

整个系统所有的控制信号均来自一个统一的时钟信号
同步控制方式
每个机器周期长度固定
优点是控制电路简单
缺点是运行速度慢

异步控制方式

不存在基准时标信号
各部件按自身固有的速度工作,通过应答方式进行联络
优点是运行速度快
缺点是控制电路比较复杂

联合控制方式

大部分采用同步控制,小部分采用异步控制的方法

安排微操作时序

原则

原则

取指周期

取指周期
取指周期

间址周期

间址周期

执行周期

执行周期

中断周期

中断周期
中断周期

组合逻辑设计

列出操作时间表
写出微操作命令的最简表达式
画出逻辑图

微程序控制器

(*)概念

概念

工作原理

事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令

微程序的基本思想

微命令:微操作的控制信号,例如ALU$\rightarrow$PC
微操作:微命令的执行过程
微命令是微操作的控制信号,由控制器发出;微操作是收到微命令后所执行的具体操作,由执行部件实现。
1机器指令$\leftarrow$ 1微程序
1微程序$\leftarrow$ n微指令
1微指令$\leftarrow$ n微命令
1微命令$\leftarrow$ n微操作
相容性微命令:可以同时产生、同时完成某一些微操作的微命令
互斥性微命令:在机器中不允许同时出现的微命令
微程序的基本思想
微程序的基本思想

微程序控制器的基本结构

微程序控制器的基本结构

控制存储器

控制存储器

微指令的格式

微指令的格式

水平型微指令

一次能定义并执行多个并行操作。
优点:微程序短,执行速度快
缺点:微指令长,编写微程序较麻烦

从编码方式来看直接编码、字段直接编码、字段间接编码和混合编码都属于水平型微指令。

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

直接编码(直接控制)方式/直接表示法

直接表示法
优点:简单、直观,执行速度快,操作并行性好
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大

(*)字段直接编码方式/编码表示法

编码表示法
优点:可以缩短微指令字长
缺点:要通过译码电路后再发出微命令。因此比直接编码方式慢
例题:
例题

字段间接编码方式

字段间接编码方式
优点:可进一步缩短微指令字长
缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段

垂直型微指令

类似机器指令操作码的方式,由微操作码字段规定微指令的功能
优点:微指令短、简单、规整,便于编写微程序
缺点:微程序长,执行速度慢,工作效率低

混合型微指令

在垂直型的基础上增加一些不太复杂的并行操作
微指令较短,仍便于编写;微程序也不长,执行速度加快

微指令的地址形成方式

微指令的下地址字段指出

微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式

根据机器指令的操作码形成

当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成

断定方式

断定方式

微程序控制单元的设计

微程序控制单元的设计
微程序控制单元的设计
微程序控制单元的设计

微程序设计分类

微程序设计分类

微指令控制器与硬布线控制器的对比

微指令控制器与硬布线控制器的对比

第六章 总线

总线仲裁

决定哪个总线主设备将在下次得到总线使用权的过程被称为总线仲裁。

集中仲裁方式

工作流程

  • 主设备发出请求信号
  • 若多个主设备同时需要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备使用
  • 获得总线使用权的主设备开始传送数据

链式查询方式

链式查询方式

计数器定时查询方式

计数器定时查询方式

独立请求方式

独立请求方式

汇总

汇总

分布仲裁方式

分布仲裁方式

总线定时

总线定时:指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则
总线定时

总线传输的四个阶段

总线传输的四个阶段

同步通信(同步定时方式)

系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系

  • 优点:传输速度快;总线控制逻辑简单
  • 缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差
  • 同步通信适用于总线长度较短及总线所接部件的存取时间比较接近的系统

同步通信
同步通信

异步通信(异步定时方式)

依靠传送双方相互制约的“握手”信号来实现定时控制

  • 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合
  • 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢

异步通信
异步通信
例题:
例题

半同步通信

半同步通信

分离式通信

分离式通信

总线标准

第七章 IO

IO端口及其编址

独立编址方式

外设的地址码与主存地址无关,把外设接口寄存器的地址称为端口。
指令的地址码字段指出的是输入输出设备的设备代码或寄存器编号(端口),由外设地址译码器接受并译码
优点:不占内存空间
缺点:需要专用的指令

统一编址方式

优点:不需要专用的指令,从而减少了指令系统的指令数
缺点:占用了内存空间

IO方式

程序直接控制方式(程序查询方式)

优点:接口设计简单、设备量少
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待。而且在一段时间内只能和一台外设交换信息,效率大大降低

程序中断方式

只有IO设备准备就绪并向CPU发出中断请求时才予以响应。

工作流程

中断请求

中断源向CPU发送中断请求信号
为了记录中断事件并去区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR
中断请求分类

中断判优

中断判优
中断判优

CPU响应中断的条件

CPU响应中断必须满足已下3个条件:

  • 中断源有中断请求
  • CPU允许中断即开中断
  • 一条指令执行完毕,没有更紧迫的任务
中断处理过程
中断隐指令

中断隐指令
软件查询法:用软件编程的办法寻找入口地址。
硬件向量法
中断向量:中断服务程序的入口地址
中断向量地址:内存中存放中断服务程序入口地址的地址,也就是中断服务例行程序入口地址的指示器

中断服务程序
  • 保存现场和屏蔽字
  • 开中断:允许更高级中断请求得到响应,实现中断嵌套
  • 执行中断服务程序
  • 关中断:保证在恢复现场和屏蔽字时不被中断
  • 恢复现场和屏蔽字
  • 开中断、中断返回
多重中断和中断屏蔽技术

单重中断和多重中断
理解屏蔽字需要了解多重中断中的屏蔽技术
中断屏蔽技术
中断屏蔽技术
例题
例题

DMA方式

主存和IO设备之间有一条直接数据通路,当主存和IO设备交换信息时,无需调用中断服务程序。

传送方式

  • 停止CPU访问方式
  • DMA与CPU交替访存:适合于CPU的工作周期比主存存取周期长的情况
  • 周期挪用(周期窃取):适合于IO设备的读写周期大于主存周期的情况
    传送方式

DMA与中断方式

DMA与中断方式

通道控制

带有通道的4级连接方式是主机—通道—设备控制器—IO设备
一台计算机可以有多条通道,一条通道总线可以来连接多个设备控制器,一个设备控制器可控制多个同类的设备,只要这些设备是轮流工作的。

通道的种类

字节多路通道
  • 字节
  • 包含多个子通道,每个通道服务于一个设备。连接大量的低速设备
  • 每个设备分时占用一个很短的时间片
选择通道
  • 数据块

  • 可以连接多个设备,但某段时间内只能选择其中一个设备进行工作

  • 用于连接高速外部设备,如磁盘

  • 缺点是设备申请使用通道的等待时间较长

成组多路通道
  • 结合选择通道和字节多路通道
  • 有多个子通道,可以所有子通道分时共享总通道,也可以成组方式高速传输数据
字节多路通道与成组多路通道
字节多路通道 成组多路通道
允许多个路同时操作,而且允许他们同时进行传输型操作 允许多个设备同时工作,但只允许一个设备进行传输型操作,其他设备进行控制型操作
字节,一个设备传送一个字节后,可以为另一个设备传送 数据块,必须一个设备传送完一个数据块才能为其他设备传送