计算机组成与结构大纲

1. 冯诺依曼计算机的基本工作方式

采用存储程序方案,按地址访问并顺序执行指令。

冯·诺依曼机的基本工作方式是控制流驱动方式

冯诺依曼计算机的特点

  1. 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成
  2. 指令和数据以同等地位存放于存储器内,并可按地址寻访。
  3. 指令和数据均用二进制表示
  4. 指令由操作码和地址码组成,地址码用来表示操作数在存储器中的位置,操作码表示操作的性质
  5. 指令在存储器内按顺序存放
  6. 机器以计算器为中心,输入输出设备与存储器的数据传送通过运算器完成

image-20200901184009044

2. 进制数之间的转换和比较

十进制:基数为10,逢10进1。在十进制中,一共使用10个不同的数字符号,这些符号处于不同位置时,其权值各不相同。

二进制:基数为2,逢2进1。在二进制中,使用0和1两种符号。 

八进制:基数为8,逢8进1。八进制使用8种不同的符号,它们与二进制的转换关系为: 

0:000、 1:001、 2:010、3:011、4:100、5:101、6:110、7:111 

十六进制:基数为16,逢16进1。十六进制使用16种不同的符号,它们与二进制的转换关系为:

0:0000、1:0001、2:0010、3:0011、4:0100、5:0101、6:0110、7:0111、

8:1000、9:1001、A:1010、B:1011、C:1100、D:1101、E:1110、F:1111 

3. 定点数运算溢出问题

仅当两个同号数相加或者两个异号数相减时,才有可能发生溢出的情况

判断溢出方法:

  1. 当符号相同的两数相加时,如果结果的符号与加数(或被加数)不相同,则为溢出
  2. 当任意符号两数相加时,如果C = Cf,运算结果正确
    • C 为数值最高位的进位
    • Cf 为符号位的进位
  3. 采用双符号位fs2、fs1。正数的双符号位为00,负数的双符号位位11。符号位参与运算,当结果的两个符号位fs1和fs2不相同时,为溢出

4. IEEE754单精度浮点表示范围(整数、小数)

IEEE 单精度格式具有 24 位有效数字精度,并总共占用 32 位。

image-20200902140133336

image-20200902140226404

5. MAR、MDR、PC的作用和位数

  • MDR定义:全称memory data register主存数据寄存器
  • MAR定义:全称memory address register主存地址寄存器。  
  • MDR 和MAR作用:
    计算机中的主存数据寄存器(MDR),与主存地址寄存器(MAR)帮助完成CPU和主存储器之间的通信
    • MAR用来保存数据被传输到的位置的地址或者数据来源位置的地址
    • MDR保存要被写入地址单元或者从地址单元读出的数据。

PC程序计数器(用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址)

MAR的位数给出了主存中有几个小房间,而MDR的位数给出了每个小房间的大小是多少。

eg:MAR10位,MDR8位,则主存总共2^10 * 8bit。PC的长度由内存指令存储器的地址线位数决定。

6. XX位微机

这里的多少位微机指的是机器的字长,字长是计算机运算部件一次能处理的二进制数据的位数,字长愈长,计算机的处理能力就愈强,它是衡量计算机性能的一个非常重要的技术指标。

7. 算数位移与逻辑位移的区别

算数位移

  • 有符号数的位移

逻辑位移

  • 无符号数的位移
    • 低位添 0,高位移丢
    • 高位添 0,地位移丢
1
2
3
		01010011				10110010
逻辑左移 10100110 逻辑右移 01011001
算数左移 00100110 算数右移 11011001

8. ALU的作用

算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。

ALU 算术逻辑单元(Arithmetic&logical Unit)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由”And Gate”(与门) 和”Or Gate”(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。

9. 原码乘法、补码乘法、双符号Booth算法

原码乘法

image-20200902155330727

补码乘法

image-20200902155445180

双符号Booth算法

image-20200902155532028

10. 计算原码、补码

  • 原码:符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值

    1
    2
    3
    [+1]原 = 0000 0001

    [-1]原 = 1000 0001
  • 反码:

    • 正数的反码是其本身
    • 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
    1
    2
    3
    [+1] = [00000001]原 = [00000001]反

    [-1] = [10000001]原 = [11111110]反
  • 补码:

    • 正数的补码就是其本身
    • 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
    1
    2
    3
    [+1] = [00000001]原 = [00000001]反 = [00000001]补

    [-1] = [10000001]原 = [11111110]反 = [11111111]补

对于正数,原码 = 补码 = 反码

对于负数 ,符号位为 1,其 数值部分

  • 补码:原码除符号位外每位取反,末位加 1
  • 反码:原码除符号位外每位取反

11. 定点位表示的整数、小数范围

image-20200902155741429

12. CACHE的映射

主存与cache的地址映射方式有全相联方式、直接方式和组相联方式三种。

直接映射(directmapping):

将一个主存块存储到唯一的一个Cache行。

多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
cache的行号i和主存的块号j有如下函数关系:i=j mod m  (m为cache中的总行数)

  • 优点:硬件简单,容易实现
  • 缺点:命中率低, Cache的存储空间利用率低

image-20200902160039629

全相联映射(fullyassociative mapping):

可以将一个主存块存储到任意一个Cache行。

  • 优点:命中率较高,Cache的存储空间利用率高
  • 缺点:线路复杂,成本高,速度低

image-20200902160506288

组相联映射(setassociative mapping):

可以将一个主存块存储到唯一的一个Cache组中任意一个行。

将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v 组号q=j mod u

组间采用直接映射,组内为全相联
硬件较简单,速度较快,命中率较高

image-20200902160325545

13. DRAM的刷新

定时刷新的原因:由于存储单元的访问是随机的,有可能某些存储单元长期得不到访问,不进行存储器的读/写操作,其存储单元内的原信息将会慢慢消失,为此,必须采用定时刷新的方法,它规定在一定的时间内,对动态RAM的全部基本单元电路必作一次刷新,一般取2ms,即刷新周期(再生周期)。

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

  • 分散刷新
    分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成。其中,把机器的存取周期tc分成两段,前半段tM用来读/写或维持信息,后半段tR用来刷新。

  • 异步刷新
    既可以缩短“死时间”,又充分利用最大刷新间隔为2ms的特点,具体操作为:在2ms内对128行各刷新一遍

    即每隔15.6μs刷新一行(2000μs/128≈15.6μs),而每行刷新的时间仍为0.5μs。这样,刷新一行只能停止一个存取周期,但对每行来说,刷新间隔时间仍为2ms,而死时间为0.5μs。(相对每一段来说,是集中式刷新,相对整体来说,是分散式刷新)

    如果将DRAM的刷新安排在CPU对指令的译码阶段,由于这个阶段CPU不访问存储器,所以这种方案既克服了分散刷新需独占0.5μs用于刷新,使存取周期加长且降低系统速度的缺点,又不会出现集中刷新的访存“死区”问题,从根本上上提高了整机的工作效率。

14. 存储器芯片容器和引脚的关系

容量(Q)与地址线数目(N)满足关系式:Q=2N。

image-20200902225848230

15. 三级存储体系

计算机的存储体系中,“三级存储”指的是:高速缓冲存储器、主存储器、辅助存储器

三级存储的用途:

  • 高速缓冲存储器用来改善主存储器与中央处理器的速度匹配问题
  • 辅助存储器用于扩大存储空间。
  1. 寄存器:寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)
  2. Cache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(DynamicRandomAccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(StaticRandomAccessMemory静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。
  3. 内存:内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。断电后数据会丢失。
  4. 外存:外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。

16. 存储器扩展(字、位扩展)

当芯片字长与主存相同,而容量不足时,就需要用几片存储器芯片组成组成容量较大的存储器,称为字扩展。

​ 字扩展:每个单元位数不变,总的单元个数增加。

​ Eg:用Intel2114(1K4)芯片,组成4K4的存储器。

image-20200902231616201

当芯片的容量和主存容量相同,而位数不足时,就要对位数进行扩展,称为位扩展。

​ 位扩展:不增加存储器的单元数,只是进行单元位数的扩展(加大字长)。

​ Eg:用4K×2位的RAM存储芯片构成4K×8位的存储器

image-20200902231639829

当芯片的单元数和单元的数据位均不满足存储器的要求时需要进行字和位的同时扩展。

​ 字位扩展:按位扩展和字扩展的方法分别在位方向和字方向进行扩展。

​ Eg:用Intel2114芯片组成4K×8位存储器

​ 需用8片2114芯片构成4K×8位存储器。(48)÷(14)

image-20200902231754523

17. 闪存的概念

闪存是一种不挥发性(Non-Volatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

体积小 能耗低 速度快 寿命长 兼容性好 非易失性

18. 虚拟存储器概念、工作过程

虚拟存储器是一种存储管理技术,用以完成用小的内存实现假想的特大存储器。但是虚拟存储器的容量并不是无限是以牺牲CPU工作时间以及内、外存交换时间为代价的。

工作过程:

  • ①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
  • ②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
  • ③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
  • ④从地址变换表读出与逻辑组号a对应的物理组号a。
  • ⑤从物理组号a和组内字节地址b得到物理地址。
  • ⑥根据物理地址从主存中存取必要的信息。

虚拟存储器的定义

  • 是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
  • 虚拟存储管理下
  • 内存逻辑容量由内存容量和外存容量之和所决定
  • 运行速度接近于内存速度
  • 每位的成本却接近于外存。

虚拟存储器的实现

  • 允许将一个作业分多次调入内存。
  • 若采用连续分配方式,需申请足够空间,再分多次装入,造成内存资源浪费,并不能从逻辑上扩大内存容量。
  • 虚拟的实现建立在离散分配存储管理基础上
  • 方式:请求分页/请求分段系统
  • 细节:分页/段机构、中断机构、地址变换机构、软件支持

虚拟存储器的特征

  • 多次性:一个作业被分成多次调入内存运行
  • 对换性:允许在作业的运行过程中进行换进、换出。(进程整体对换不算虚拟)
  • 最终体现虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

19. 间址周期是哪一个时间段

一般一个完整的指令周期包括取址周期,间址周期,执行周期,中断周期.

间指周期:取操作数的有效地址的时间

20. 存储周期、时钟周期、CPU周期、机器周期、指令周期

  • 指令周期:从主存中取出并执行一条指令所需完整时间;
  • 机器周期(CPU周期):完成一个基本操作所需时间,基本操作包括:取值、间址、执行、中断等
  • 时钟周期:机器节拍,主频的倒数
  • 存取周期:存储器进行两次独立存储器操作所需最小的时间间隔。

指令周期 > 机器周期(CPU周期)> 时钟周期

21. 流水线的思想、概念

思想:宏观并行,微观串行

概念:指在程序执行时,多条指令重叠进行操作的一种任务分解技术,把一个程序分解成若干个子程序,不同于程序由不同执行机构负责执行,而这些执行机构可以并行工作。

image-20200902170101701

22. 寻址方式、特点

  1. 隐含寻址

    操作数隐含的由累加器给出。(即某指令由固定的操作数,不需要给出)

  2. 立即寻址

    指令中直接给出相应的操作数。

    image-20200902170803793

  3. 寄存器间接寻址

    指令中给出寄存器号R,R中存放操作数的有效地址
    E=( R ),S=(E)=(( R ))

    image-20200902171036026

  4. 寄存器直接寻址

    指令中给出寄存器号R,操作数存放在R中
    E=R,S=(E)=( R )

    image-20200902171107790

  5. 直接寻址

    指令中给出操作数的有效地址
    E=A,S=(E)=(A)

    image-20200902171253367

  6. 间接寻址

    指令中给出存放有效地址E的存储单元地址。
    E=(A),S=(E)=((A))
    理论上讲可以多次间接寻址,但大多数计算机只允许一次(由于A的寻址范围不足以覆盖整个存储空间)

    image-20200902171335907

  7. 相对寻址

    指令中给出相对于PC的偏移量A
    E=(PC)+A,S=(E)=((PC)+A)

    image-20200902171440659

  8. 基址寻址

    指令中给出相对于基址寄存器R的偏移量
    E=( R )+A,S=(E)=(( R )+A)

    image-20200902171536866

  9. 变址寻址

    指令中给出相对变址寄存器R的偏移量
    E=( R )+A,S=(E)=(( R )+A)

    注:A是个带符号数,一般用补码表示,若A的位数与R不一致,需要带符号填充。

    image-20200902182838726

23. 指令、指令系统、为什么引入指令系统

  • 指令:要计算机执行某种操作的命令。
  • 指令系统:所有机器指令的集合。
  • 为什么引入:避免了用户与二进制代码直接接触。

24. 指令的格式(单地址、单字长、固定长度、变长)

  • 单地址:指令中只给出一个地址,该地址既是操作数地址也是操作的存储地址。
  • 单字长:指令长度等于机器字长度。
  • 固定长度:指操作码的长度和位置固定,通常放在指令最前面的一个字段。(OPcode确定,指令长度就确定)
  • 变长:指操作码的长度可变,利用某些指令中地址段位数的减少,扩展操作码的位数。可变长度操作码的编码原则是:使用频度高的指令尽可能分配较短的操作码,使用频度低的指令尽可能分配较长的操作码,并且较短的操作码不能是较长的操作码的前缀。(仅OPcode无法确定整个指令长度)

为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:

  1. 操作码(OP),具体说明了操作的性质及功能
  2. 第一操作数的地址A1
  3. 第二操作数的地址A2​
  4. 操作结果存放地址A3
  5. 下一条将要执行指令的地址A4​

由上可得,一条指令包括两种信息:操作码,地址码

  • 字长:计算机在单位时间内(同一时间)能一次处理一组二进制数的位数,决定了计算机的运算精度和一次处理能力。其中包含了CPU、寄存器、Data bus等能够一次传输数据的能力
  • 字节:1Byte=8bit
  • 地址码长度(操作数):地址码的位数,存储器可以按字长存储单元或字节存储单元编址,地址码的位数可以寻2^N个存储单元地址。所以地址码长度决定了指令的直接寻址能力。
  • 指令长度:操作码长度+操作数地址码长度+操作数地址个数。指令长度和字长没有固定的联系

1. 定长指令编码格式

这是最简单的一种编码方法。操作码字段的位数和位置固定,为能够表示整个指令系统中的全部指令,指令的操作码字段应当具有足够的位数。
设指令系统共有m条指令,指令中操作码字段的位数为N位,则满足 m<=2^N

image-20200902183813559

上图为IBM370机的指令格式

2. 变长编码指令格式

变长编码的操作码字段位数是不固定的,且分散地放在指令字的不同位置上。

image-20200902183949935

上图为PDP-11机的指令格式图

25. 指令的字段分配方法(单地址、二地址和三地址)

26. 控制器的组成、功能、执行指令的步骤

控制器的组成:

程序计数器、指令寄存器、指令步骤标记线路提供控制信号的部件

  1. 程序计数器PC:存放指令地址,有+1或接收新值功能。
  2. 指令寄存器IP:存放指令内容:操作码与操作数地址。主脉冲源与启停控制线路,按需要给出主脉冲信号。
  3. 指令执行步骤标记线路:指明每条指令的执行步骤。
  4. 控制信号记忆或产生线路:给出计算机各功能部件协同运行所需要的控制信号

控制器的功能:

控制指令执行,控制各部件协调运行,为各部件提供控制信号

image-20200902190215277

27. 微指令的格式

  1. 水平型微指令

    一次能定义并执行多个并行操作

  2. 垂直型微指令

    类似机器指令操作码的方式

    由微操作码字段规定微指令的功能

两种格式相比较:

  1. 水平型并行操作能力强,灵活性强
  2. 水平型数目少,速度快
  3. 水平型用较短的微程序结构换取较长的微指令结构
  4. 水平型微指令比机器指令差别大

28. 微指令的地址形成方式

  • 由硬件产生微程序入口地址
  • 第一条微指令地址由专门硬件产生
  • 中断周期由硬件产生中断周期微程序首地址

image-20200902190822749

29. 微程序控制器(微程序,微指令,微操作,微命令)

image-20200902191022274

30. 常见指令(ADD、SUB、LOAD等)微操作,即CPU中常见数据通路

  • IR:指令寄存器,其功能是存放当前正在执行的指令
  • PC:程序计数器,其功能是存放当前欲执行的指令地址,并可自动计数形成下一条指令地址
  • ALU:算术逻辑运算单元,为运算器核心部件,其功能是进行算术和逻辑运算
  • ACC:累加器,是运算器中既能存放运算前的操作数,又能存放运算结果后的寄存器
  • MAR:存储器地址寄存器,在主存中用来欲访问的存储单元的地址
  • MDR:存储器数据缓冲寄存器,在主存中用来存放某从某单元读出,或要写入某存储单元的数据

31. 微指令和指令的关系

  1. 一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。因此,一条机器指令的功能是若干条微指令组成的序列来实现的。简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。

  2. 从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器(它是微程序控制器的一部分。微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三部分组成。其中,微指令寄存器又分为微地址寄存器和微命令寄存器两部分)有关,与此相关也有相对应的硬设备。

  3. 从一般指令的微程序执行流程图可以看出。每个CPU周期就对于一条微指令。这就告诉我们怎么设计微程序,也将使得我们进一步体验到机器指令很微指令的关系。

  4. 验到机器指令很微指令的关系。