计算机组成原理——部分速成总结存档

这篇用来存档 基本并不能帮助大家速成 只是博主复习时用来巩固时用的(假装大家都看不见)

教材:《计算机组成原理》唐朔飞版

内容:第四章到第八章不完全总结

 

chapter 4

存储器

存储器的层次结构:缓存-主存 提高速度 主存地址 实地址 物理地址

                             主存-辅存 提高容量 虚拟存储器 虚地址 逻辑地址

 

2^地址线 * 数据线 =存储容量

半导体存储器芯片的译码驱动方式:线选法 重合法

动态RAM刷新:

  1. 1.       集中刷新

在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读、写操作。存在“死时间

  1. 2.       分散刷新

对每行存储单元的刷新分散到每个存储周期内完成,不存在读写操作死时间,但存取周期长了,整个系统速度降低了

  1. 3.       异步刷新

是两种方式的结合 既可缩短死时间,又充分利用最大刷新间隔为2ms的特点。

 

 

 

 

海明码:2^k >=n+k+1

              K=3                     1 3 5 7   2 3 6 7   4 5 6 7

              K=4                      3 5 7 9 11      3 6 7 10 11     5 6 7       9 10 11

 

Cache-主存地址映射

直接映射:有固定的映射关系,某一主存块只能固定映射到某一缓存块

              优点:实现简单,只要利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中

              缺点:不够灵活。

全相联映射:某一主存块可以映射到任一缓存块

              优点:方式灵活 命中率更高 缩小了块冲突率

              缺点:逻辑电路甚多 成本较高

组相联映射:是直接映射和全相联映射的一中折中。某一主存块能映射到某一缓存组中的任一块

              性能及复杂度介于直接映射和全相联映射之间。

 

 

 

chapter 5

I/O设备与主机信息传送的控制方式

程序查询方式:CPU启动I/O设备后便不断查询I/O设备是否已做好准备。启动I/O设备,CPU便不断查询I/O设备的状态,若查得I/O设备未准备就绪,就继续查询;若查得I/O设备准备就绪,就将数据从I/O接口送至CPU,再由CPU送至主存,一个字一个字地传送,直至全部结束,CPU回到原现行程序。

特点:

  1. 只要一启动I/O设备,CPU便不断查询I/O设备的准备情况,从而终止了原程序的进行,反复查询过程进入“原地踏步
  2. CPU和I/O设备串行工作,CPU效率低

 

 

程序中断方式:启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,当I/O设备准备就绪并向CPU发出中断请求后才给予响应。处理完中断后返回原程序断点处,继续执行原程序

特点:

  1. 不必不断查询I/O设备准备情况,没有“踏步”现象
  2. 中断了现行程序
  3. CPU执行程序和I/O设备准备同时进行,CPU和I/O并行工作(部分)。
  4. 相比程序查询方式提高了CPU利用率

(硬件需增加相应电路,软件必须编制中断服务程序)

过程:

  1. 中断请求、中断判优、中断响应、中断服务(保护现场、中断服务、恢复现场、中断返回)、中断返回
  2. (宏观上CPU与I/O并行工作,微观上CPU中断现行程序为I/O服务)
  3. INTR中断请求触发器           MASR中断屏蔽触发器 

D设备准备就绪           EINT允许中断触发器(开中断、关中断)

 

DMA方式:主存与I/O设备之间有一条数据通路,无需调用中断服务程序,若CPU和DMA同时访存,总是把总线占有权给DMA,DMA窃取或挪用一个存取周期。

特点:

  1. 主存与I/O设备之间有一条数据通路
  2. 不中断现行程序,省去了保护现场和恢复现场
  3. 周期挪用/周期窃取
  4. CPU和I/O并行工作
  5. 相比程序查询方式和程序中断方式更提高了CPU利用率

 

DMA与主存交换数据的三种方法(优缺点?):

  1. 停止CPU访问主存
  2. 周期挪用
  3. DMA与CPU交替访问

 

DMA的数据传送过程:

预处理 数据传送 后处理

 

DMA接口类型:

选择型 多路型

 

DMA与程序中断方式比较:

 

 

chapter 6

无符号数和有符号数,定点表示和浮点表示

X=0时,[+0]原=0,0000      [-0]原=1,0000  [+0][-0]

              [+0]补=0,0000      [-0]补=0,0000  [+0][-0]

              [+0]反=0,0000      [-0]反=1,1111  [+0][-0]

              [+0]移=1,0000      [-0]移=1,0000  [+0][-0]

补码或移码唯一

原码小数点(小数)或逗号(整数)前永远是符号位

[y]补求[-y]补连同符号位,每位取反,末位加一

移码:补码符号位取反

 

IEEE754: 短实数 符号位1 阶码8 位数23 总位数32

 

 

定点运算

有符号数的移位:算术移位              无符号数的移位:逻辑移位

现代计算机使用补码加减法

补码加减法(符号位也做运算,由于模2,溢出丢掉即可):

[A]补+[B]补=[A+B]补          [A-B]补= [A]补+[-B]补  (记得溢出判断)

补码:参与加减的两个数符号相同但与结果符号不同,则溢出

变形补码:结果的符号位不用则溢出,高位为真正的符号

原码一位乘:逻辑移位、移位次数判断结束、n次加法和n次移位

原码两位乘:算术移位、移位次数判断结束、n/2+1次加法和n/2次移位(n为偶)

补码乘法(booth算法,被乘数和乘数符号均任意的情况):

原码乘符号位单独处理,补码乘符号位自然形成

 

chapter 7

指令的一般格式

操作码:长度固定(集中放在指令字的一个字段内,用于指令字较长的情况)、

长度不固定(分散在指令字的不同字段中,增加译码和分析的难度)、

扩展操作码(位数随地址数减少而增加)

扩展操作码:

 

 

 

 

地址码(通常是形式地址而不是有效地址):两个源操作数、结果、下一条指令

四地址:四次访存、A1(OP)A2 →A3

三地址:四次访存、A1(OP)A2 →A3、PC代替A4

二地址:四次访存(若结果存于ACC则三次访存)、A1(OP)A2 →A1、结果存于A1

一地址:两次访存、ACC(OP)A1→ACC、ACC代替原A1

零地址:无地址码

 

指令字长:取决于操作码长度、操作数地址的长度、操作数地址的个数

指令字长固定:指令字长=存储字长

指令字长可变:按字节的倍数变化

 

寻址方式

寻址方式:确定本条指令地址的数据地址、确定下一条将要执行的指令地址,包括指令寻址数据寻址

指令寻址:顺序寻址、跳跃寻址

数据寻址:

  1. 立即寻址:形式地址A内放操作数(立即数)、指令执行阶段不访存、A的位数限制了立即数的范围
  2. 直接寻址:形式地址内放有效地址、执行阶段只访存一次、操作数的地址不易修改(必须修改A)
  3. 隐含寻址:操作数的地址隐含在操作码中(例如MUL被乘数在AX或AL中)、指令字中少了一个地    址字段所以可以缩短指令字长
  4. 间接寻址:有效地址由形式地址间接提供、指令执行阶段访存两次以上、指令执行时间变长、扩大寻址范围、便于编制程序
  5. 寄存器寻址:有效地址即为寄存器编号、执行阶段不访存 只访问寄存器 执行速度快、寄存器个数有限 可缩短指令字长
  6. 寄存器间接寻址:有效地址在寄存器中 操作数在存储器中 执行阶段访存、便于编制循环程序
  7. 基址寻址
    •   采用专用的寄存器做基址寄存器(隐式):扩大寻址范围、便于程序搬家、BR内容由操作系统或管理程序确定、程序执行过程中BR中内容不变,A的内容可变
    •   采用通用的寄存器做基址寄存器(显式):用户指定哪个寄存器做基址寄存器、基址寄存器的内容由操作系统决定、在程序执行过程中R0内容不变,形式地址A可变
  8. 变址寻址:IX为变址寄存器(通用寄存器也可以作为变址寄存器)、可扩大寻址范围、IX内容由用户给定、程序执行过程中IX内容可变、形式地址A不变、便于处理数组问题
  9. 相对寻址:A是相对于当前指令的位移量(可正可负,补码)、A的位数决定操作数的寻址范围、程序浮动、广泛用于转移指令     

     

     

     

     

  10. 堆栈寻址

     

     

     

RISC的特点

 

 

chapter 8

CPU的结构(ALU、CU、寄存器、中断系统)

CPU功能指令控制(控制程序的顺序执行)、操作控制(产生完成每条指令所需的控制命令)时间控制(对各种操作加以时间上的控制)、数据加工(对数据进行算术运算和逻辑运算)、处理中断

CPU的寄存器

  1. 用户可见寄存器(通用寄存器、数据寄存器、地址寄存器、条件码寄存器)
  2. 控制和状态寄存器(控制:PC→MAR→M→MDR→IR,PC可见 状态:状态寄存器放条件码  PSW寄存器放程序状态字)

CU控制单元:产生全部指令的微操作命令部件(两种方法:组合逻辑设计方法(硬连线逻辑)、微程序设计方法(存储逻辑))

指令周期

指令周期=取指周期(取指、分析)+间址周期+执行周期(执行)+中断周期

指令流水

 

 

为什么要用指令流水?提高细粒度并行性,开发系统的并行性,提高机器速度——小圆想的,错了不挨打

指令的二级流水:如果指令的执行阶段不访问主存,就可以利用这段时间取下一条指令,使得取下一条指令的操作和执行当前指令的操作同时进行,这就是两条指令的重叠

指令预取:由指令部件取出一条指令,并将它暂存起来,如果执行部件空闲,就将暂存的指令传给执行部件执行。与此同时,指令部件又可取出下一条指令并暂存起来。

 

如果取值和执行阶段时间上完全重叠,指令周期减半,速度提高一倍。影响效率加倍的因素

  1. 指令执行时间一般大于取指时间。
  2. 当遇到条件转移指令时,下一条指令是不可知的。(用猜测法解决)

 

影响流水线性能的因素?(看书上的例子)

  1. 结构相关:不同指令争用同一功能部件产生的,也称资源相关

    解决?

    a)       后推法:流水线在完成前一条指令对数据的存储器访问时,暂停(一个时钟周期)取后一条指令的操作

    b)      指令存储器和数据存储器分开,以免取指令和取操作数同时进行时互相冲突

    c)       指令预取技术,适用于访存周期短的情况

  1. 数据相关:各条指令因重叠操作,可能改变对数据的读写访问顺序

    解决?

    a)       后推法:遇到数据相关时,就停顿后继指令的运行,直至前面指令的结果已经生成

    b)      定向技术(旁路技术、相关专用通路技术):不必等某条指令的执行结果送回到寄存器后,再从寄存器中取出该结果,作为下一条指令的源操作数,而是直接将执行结果送到其他指令所需要的地方放。

  1. 控制相关:由转移指令引起

    解决?(了解

    尽早判别法,转移预测法,加快和提前生成条件码,提高猜准率

 

数据相关分类

 

 

流水线性能指标:吞吐率、加速比、效率

 

流水线中的多发技术:

1.  超标量技术:每个时钟周期内同时并发多条独立指令,即以并行操作方式将两条或两条以上指令编译并执行

要求配置多个功能部件,要求通过编译优化技术把可并行的指令搭配起来,硬件不能调整指令执行顺序

2.       超流水技术:将一些流水线寄存器插入到流水线段中,好比将流水线再分段。使得一个时钟周期内一个功能部件使用多次

硬件不能调整指令的执行顺序,靠编译程序解决优化问题

3.       超长指令字技术:由编译程序在编译时挖掘出指令间潜在的并行性后,把多条能并行操作的指令组合成具有多个操作码字段的超长指令

采用多个处理部件。对优化编译器的要求高,对Cache容量要求大。

 

中断系统

 

 

 

中断系统
[Zhōngduàn xìtǒng]
Interrupt System
 
posted @ 2020-01-26 17:53  Jiahui_Zhan  阅读(1983)  评论(0编辑  收藏  举报