计算机组成原理第五章 中央处理器

文章目录

         

5.1 CPU的功能和基本结构

5.1.1 CPU的基本功能

中央处理器(CPU)包括运算器和控制器
控制器扶额协调并控制计算机各个部件执行程序的指令序列,包括取指令、分析指令和执行指令
运算器负责对数据进行加工

CPU功能包括

  1. 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制
  2. 操作控制:管理并产生指令的操作信号,送往相应部件,从而控制这些部件按照指令的要求进行动作
  3. 时间控制:对各种操作加以时间上的控制,为每条指令按照时间顺序提供应有的控制信号
  4. 数据加工:对数据进行算术和逻辑运算
  5. 中断处理:对异常情况和特殊请求进行处理

5.1.2 CPU的基本结构

运算器

运算器接受从控制器送来的命令并执行相应的动作,对数据进行加工和处理
主要由算术逻辑单元ALU暂存寄存器累加寄存器(ACC)通用寄存器组程序状态字寄存器PSW移位器计数器CT等组成

  1. 算术逻辑单元ALU(核心):主要功能是进行算术/逻辑运算
  2. 暂存寄存器:暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏原有内容。暂存寄存器对应用程序员是透明的
  3. 累加寄存器:是一个通用寄存器,用于暂时存放ALU运算的结果,可以作为加法运算的一个输入端
  4. 通用寄存器组:例如AX、BX等,用于存放操作数、各种地址信息等
  5. 程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息。例如溢出标志OF、符号标志SF、零标志ZF、进位标志CF等
  6. 移位器:进行移位运算
  7. 计数器:控制乘法、除法运算的操作步数

控制器

控制器的基本功能:执行指令,每条指令的执行由控制器发出的一组微操作实现
控制器实现上有:硬布线微程序控制器两种

控制器包括:程序计数器PC指令寄存器IR指令译码器存储器地址寄存器MAR存储器数据寄存器MDR时序系统微操作信号发生器

  1. 程序计数器PC:用于指出下一条指令在主存中的存放位置,CPU会根据PC的内容去主存中取指令,PC有自增功能
  2. 指令寄存器IR:保存当前正在执行的那条指令
  3. 指令译码器:对操作码进行译码,向控制器提供特定的操作信号
  4. 存储器地址寄存器MAR:存放将要访问的主存单元的地址
  5. 存储器数据寄存器MDR:存放向主存写入的信息或从主存读出的信息
  6. 时序系统:产生各种时序信号,由统一时钟CLOCK分频得到
  7. 微信号操作发生器:根据IR、PSW及时序信号,产生各种控制信号
  1. 所谓的n位CPU中,n指的是数据总线的数量
  2. CPU的寄存器中,指令寄存器IR,MAR,MDR对用户是透明的
  3. 在一条无条件跳转指令的指令周期中,PC的值被修改2次。(取指令后PC+1,跳转后PC修改

 根据课后题总结:

  1. 程序计数器的内容为指令在主存中的地址,所以程序计数器的位数与存储器地址的位数相等,而存储器地址取决于存取器的容量。
  2. 通用寄存器用于存放操作数和各种地址信息等,其位数与机器字长相等,因此便于操作控制。
  3. 通用寄存器用供用户自由编程,可以存放数据和地址。而指令寄存器是专门用于存放指令的寄存器,不能由通用寄存器代替。
  4. 指令包括操作码和地址码字段,但指令译码器仅对操作码字段进行译码,借以确定指令的操作功能。
  5. 地址译码器是主存等存储器的部分,其作用是根据输入的地址码唯一选定一个存储单元,它不是CPU的组成部分。而MAR,IR,PC都是CPU的组成成分。
  6. 程序计数器存放的是欲执行指令的地址,程序计数器决定程序的执行顺序
  7. 程序状态字寄存器对用户不透明。
  8. 间址周期结束后,CPU内寄存器MDR的内容为操作数地址
  9. 6f274e1c4f90430981fd44b86d0760f4.png

cdefab79a54b450e8e42809acb71b443.png

根据课后题总结的知识点:

  1. 条件转移指令执行时所依据的条件来自标志寄存器,条件转移指令执行时需要对标指寄存器的内容进行测试,判断是否满足转移条件。
  2. 数据总线的位数与处理器的位数相同,他表示CPU一次能处理的数据的位数,即CPU的位数。n位CPU中n就是指数据总线的线数。
  3. 转移指令时,PC的值不总是修改为转移指令的目标地址。转移指令时需要判别转移是否成功,若成功则PC修改为转移指令的目标地址,否则下一条指令的地址仍为PC自增后的地址。
  4. 程序计数器的内容为指令在主存中的地址。所以其位数=存储器地址的位数。
  5. 通用寄存器的位数与机器字长相等。
  6. 指令译码仅对操作码字段进行译码。

5.2 指令执行过程

5.2.1 指令周期

CPU从主存中取出一条指令并执行的时间称为指令周期,不同指令的指令周期可能不同。
指令周期通常用若干个机器周期来表示,每个机器周期又包含若干个时钟周期(CPU操作的最基本单位)

每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。

对于无条件跳转指令JMP X,执行阶段不需要访问主存,只包含取指(包括取指和分析)阶段和执行阶段,因此其指令周期只包括取指周期和执行周期
对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存,取出操作数。因此还需要包括间址周期,间址周期介于取指和执行周期之间

61abf03405be4ca2ae3caf39548050ac.png

CPU采用中断方式实现主机和I/O设备的信息交换时,每条指令结尾,都需要发送中断查询信号,如果有中断请求,则CPU进入中断相应阶段,又称中断周期。此时一个完整的指令周期包括:取指、间址、执行和中断周期
上述四个工作周期都有CPU访存操作,访存目的不同

  1. 取指周期:取指令
  2. 间址周期:取有效地址
  3. 执行周期:取操作数
  4. 中断周期:保存程序断点

为了区别不同工作周期,在CPU内设置4个标志触发器FE、IND、EX和INT,分别对应取指、间址、执行和中断周期,1表示有效。

  1. FE : 取指。
  2. IND :间址。
  3. EX :执行。
  4. INT :中断周期。

67cdc7c5fd604c388f4c12d9a0b78e8d.png

 中断周期中的进栈操作是将SP减1,这和传统意义上的进栈操作相反,原因是计算机堆栈中都是向低地址增加,所以进栈操作是减1而不是加1。

5.2.2 指令周期的数据流

数据流是根据指令要求依次访问的数据序列。在执行指令的不同阶段、以及对于不同指令,数据流往往不同

1. 取指周期数据流

取指周期的任务:根据PC的内容,从主存中取出指令代码,放在IR中

d4ba5e3123754c51b7a989798f1801de.heic
dbc3f8546f404213b30e8c27eaf173b5.png

  1. PC->MAR->地址总线->主存
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR->IR
  4. CU发出控制信号->PC+1

2. 间址周期数据流

间址周期的任务:取操作数有效地址。将指令中的地址码送到MAR并发送至地址总线,之后CU向存储器发读命令,获取有效地址存到MDR

7dc509ada979486ab366e13afc727acb.heic
aba1b7c3665843dfa2ab2569813c851f.png

  1. Ad(IR)->MAR->地址总线->主存
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR(存放有效地址)

3. 执行周期数据流

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

4. 中断周期

任务:处理中断请求。
假设程序断点存入堆栈中,用SP指示栈顶位置,进栈操作先修改栈顶指针,后存入数据

a67ef2b8a5744625b66cbf8b4293dfcd.heic
f7ca2e075f484b80a2e544b76edf6812.png

  1. CU控制将SP-1,SP->MAR->地址总线->主存
  2. CU发出写命令->控制总线->主存
  3. PC->MDR->数据总线->主存(程序断点存入主存)
  4. CU将中断服务程序的入口地址->PC

5.2.3 指令执行方案

一个指令周期通常需要包括几个时间段(执行步骤),每个步骤完成指令的一部分工呢个,几个依次执行的步骤完成这条指令的全部功能
出于性能和硬件成本等考虑,可以有以下三种方案安排指令的执行步骤

1. 单指令周期

对所有指令都选用相同的执行时间来完成,每条指令都在固定的时钟周期内完成
指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。

这种方式下,指令周期取决于执行时间最长的指令的执行时间。对于那些本可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。

2. 多指令周期

对不同类型的指令选用不同的执行方案
指令之间串行执行。
可以选用不同个数的时钟周期来完成不同指令的执行过程,指令需要多少个时钟周期执行就分配多少个时钟周期,不要求所有指令占用相同的执行时间

需要更复杂的硬件设计

3. 指令流水方案

指令之间可以并行执行

6fb7218f8afc491ea5eb283bf8141887.png

根据课后题总结的知识点: 

  1. 时钟周期也称为节拍或T周期,他是CPU操作的最基本的单位。
  2. CU周期也称为机器周期,一个机器周期包含若干时钟周期。
  3. 存取周期是指存储器进行两次独立的存储操作(连续两次的读或写操作)所需的最小间隔时间。
  4. 指令周期是指CPU从主存取出一条指令加上执行这条指令的时间,而间指周期不是必须的。
  5. 取值操作是自动进行的,控制器不需要得到相应的指令。
  6. 指令周期的第一个机器周期是取指周期,即从主存中取出指令字。
  7. 不同长度的指令,其取指操作可能是不同的。列如:双字指令,三字指令与单字指令的取指操作是不同的。
  8. 存储器本身无法区分存储单元中存放的是指令还是数据。而在控制器的控制下,计算机在不同的阶段对存储器进行读/写操作时,取出的代码也就有不同的用处。而在取指阶段读出的二进制代码为指令,在执行阶段读出的二进制代码则可能为数据;运算器和数据通路显然不能区分。
  9. 指令字长取决于操作码的长度,操作数地址的长度和操作数地址的个数,与机器字长没有必然的联系。
  10. 为了硬件设计方便,指令字长一般取字节或存储字长的整数倍。
  11. 指令字长一般都取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要两次访存,取指周期=机器周期的2倍。若指令字长=存储字长,则取指周期=机器周期

5.3 数据通路的功能和基本结构

5.3.1 数据通路的功能

数据在功能部件之间传输的路径称为数据通路,包括数据通路上流经的部件:如ALU,通用寄存器,状态寄存器,异常和中断处理逻辑等。数据通路描述了从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,这些都需要加以控制。


数据通路由控制部件控制,控制部件根据指令功能的不同,生成对数据通路的控制信号
数据通路的功能是:实现CPU内部的运算器和寄存器、以及寄存器和寄存器之间的数据交换

5.3.2 数据通路的基本结构

数据通路的基本结构主要由以下几种

  1. CPU内部单总线方式:将所有寄存器的输入、输出端连接到一条公共通路上。结构简单,但数据传输存在较多冲突,性能较低
  2. CPU内部三总线方式:将所有寄存器输入输出端连接到多条公共通路上
  3. 专用数据通路方式:根据指令执行过程中数据和地址的流动方向安排线路,避免使用共享总线,性能高,但硬件量大
  1. (21 408) 数据通路包含ALU等组合逻辑元件、寄存器等时序逻辑元件、用于异常事件检测和相应的电路。数据通路中的数据流动路径由控制信号进行控制

1. 寄存器之间的数据传送

寄存器之间的数据传送可以通过CPU内部总线完成

80b7b743ce2d42baa97a347249a677a7.png

2. 主存与CPU之间的数据传送

d360e896f3794806aadc06465742fd51.png

3. 执行算术或逻辑运算

6c78d7f6729049a3ad0a29f25afedd67.png

  1. 单周期处理器中所有指令的指令周期都为一个时钟周期。
  2. 单周期指令不能采用单总线方式数据通路。因为单总线方式内,一个时钟只允许一次操作,无法完成指令的所有操作。在一个时钟周期内,控制信号不会发生变化

 指令执行过程中数据所经过的路径,包括路径上的部件,称为数据通路。ALU,通用寄存器。状态寄存器,Cache,MMU,浮点运算逻辑,异常和中断处理逻辑都属于数据通路的一部分。

5.4 控制器的功能和工作原理

  1. 取指令操作是控制器固有的功能,不需要在操作码控制下进行

5.4.1 控制器的结构和功能

fa073d1ce2264828beb173c9283341e6.heic
控制器是计算机系统的指挥中心,功能主要:

  1. 从主存中取出一条指令,并指出下一条指令在主存中的位置
  2. 对指令进行译码或测试,产生相应的操作控制信号
  3. 指挥并控制CPU、主存、IO设备之间的数据流动方向

根据控制器产生微操作控制信号方式的不同,控制器可以分为硬布线控制器和微程序控制器。两类控制器的PC和IR相同,但确定和表示指令执行步骤的方法以及给出控制各部件运行所需的控制信号的方案不同

5.4.2 硬布线控制器

c433bf196cd6488a832801276d2bc7e9.png
71107a0e7e884b209452acb2b499aa79.png
硬布线控制器的特点:

  1. 指令越多,实现和设计就越复杂,因此一般用于RISC(精简指令集系统)
  2. 扩充指令时,控制器的设计需要大改,因此扩充指令比较困难
  3. 使用纯硬件实现,执行速度很快。微操作控制信号由组合逻辑电路即时产生

5.4.3 微程序控制器

思想:将每条机器指令编写成一个微程序,每个微程序包括若干微指令,每条微指令对应一个或几个微操作命令。这些微程序可以存储到一个控制存储器中。

一些基本术语:

  1. 微命令和微操作:一条机器指令可以分解为一个微操作序列,这些微操作是计算机中最基本的,不可再分解的操作。控制部件向执行部件发出的各种控制命令称为微命令,它是构成控制序列的最小单位。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。微命令有相容性和互斥性之分。相容性微命令是指那些可以同时产生,共同完成某一些微操作的微命令。而互斥性命令是指在机器中不允许同时出现的微命令。相容性和互斥都是相对的,一个微命令可以和一些微命令相容,和一些微命令相斥。
  2. 微指令:若干微命令的集合。存放微指令的控制存储器的单元地址称为微地址。通常包括:操作控制字段(又称微操作码字段,用于产生某一步操作所需的各种操作控制信号)和顺序控制字段(又称微地址码字段,用于产控制产生下一条要执行的微指令地址)
  3. 微地址:存放微指令的控制存储器的单元地址称为微地址。
  4. 微周期:从控制存储器中读取一条微指令并执行所需的时间。
  5. 主存储器和控制存储器。主存储器用于存放程序和数据,在CPU外部,用RAM实现,控制存储器(CM)用于存放微程序,在CPU内容,用ROM实现。
  6. 程序与微程序:程序是指令的有序集合,用于完成特定的功能;微程序是微指令的有序集合,一条指令的功能一般由一段微程序来实

区分以下寄存器: 

  1. 地址寄存器(MAR):用于存放主存的读/写地址。
  2. 微地址寄存器(CMAR和uPC):用于存放控制存储器的读/写微指令地址。
  3. 指令寄存器(IR):用于存放从主存中读出的指令。
  4. 微指令寄存器(CMDR和uIR):用于存放从控制存储器中读出的微指令。

 f3cf81f673c04ee5826b1c738b4930b6.png

b9a67a1632944818b144da58c57c6bb8.png

微程序控制器组成和工作过程:

  1. e2691e95eabc45cdb8a7a1bceca59bf7.png控制存储器:
  2. 微指令寄存器:
  3. 微地址形成部件:
  4. 微地址寄存器:
  5. 0c95afd9537d4fcc90e7eb7cc4e5de7e.png

微程序控制器的工作过程:

c1872006868447e2a295a58a09d06373.png

 微程序的编码方式:

  1. 直接编码(直接控制)方式f164a3d2b54942d28c0ab8c383c92d8f.png
  2. 字段直接编码方式7369c41c54454daab97a4c5ecfdbecf2.png
  3. 字段间接编码方式5a2fa8d1eb8144618af8337f5d86b6ee.png

0453db9300e54a6ea680ff84758d9831.png

微指令的地址形成方式: 

  1. 直接由微指令的下地址指出。0997271274674e76bfdb2f324a995281.png
  2. 根据机器指令的操作码形成。fc2d258f7e7f40c384378668e2c645d3.png

断定法/下地址字段法:下址字段指明下一条要执行的微指令地址。当一条微指令被取出时,下址字段送入μAR。相当于每一条微指令都具有转移微指令的功能  

还有以下几种:

3a6436faeee04b05aecc1ea05b19bf21.png

2d417cebe2894ead851fb97471827669.png

a668ead0a1bd4bf18be513b0d080a939.png

         

fc6c1ea4666d478b971396ddd4712be6.png

微指令的格式:

水平型微指令:一条微指令定义多个可并行的微命令。

水平型微指令和垂直型微指令的比较如下: 

bfa2e59ecdc44609b3ea0c6442d8aae1.png

  1. (14 408) 某计算机采用微程序控制器,采用32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是:
    微指令数量:32*4=128条,加上2条取指的微指令,130条,那么需要8位

6e45f228cecc4f7482f415cd59d196e1.png
5aaf67bd06d0475190ab1e885aee80b9.png

  1. 微程序控制器中,形成微程序入口地址的是:机器指令的操作码字段
  2. 微程序控制存储器属于CPU的一部分
  3. 微程序控制器速度比硬布线控制器速度慢,主要是因为:增加了从控制存储器读微指令的时间
  4. 一条微指令存放在控制器的一个控制存储单元中
  5. 微程序控制器的时序系统比硬布线控制器的时序系统简单
  6. 带中断的计算机系统共有101种操作,采用微程序控制方式时,控制存储器中至少有101+1(取指令)+1(中断处理)个微程序
  7. 通常情况下,一个微程序的周期对应一个指令周期

5.4.3 微指令的设计

912f0da2fd2a4c55bc09a3deded25068.png

  1. 水平型微指令,位数长,编写出来的微程序较短
  1. (12 408) 字段直接编码方式,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有:3+2+4+3+3 = 15位

2b98744ad88f467a860d11e0099b897c.png

5.4.4 微程序控制单元的设计

df27854c117146399a0bfb18f2c6cafe.png
4b588966d04e49fbbba6148473615a46.png
87a021fa95e44037a6c87ef1bfe06244.png

根据课后题总结的知识点: 

  1.  取指令操作是公共操作,每条指令都需要进行,与具体的指令无关,所以不需要操作码的控制。
  2. CU的输入信号的来源:1.经指令译码器产生的指令信息。2.时序系统产生的机器周期信号和节拍信号3.来自执行单元的反馈信息即标志。前两者是主要因素。
  3. 微比硬慢的原因:增加了从控制存储器读取微指令的时间。
  4. 微,通常控制存储器采用ROM组成。微指令计数器决定的是微指令的执行顺序。
  5. 微程序控制器的时序系统比较简单。
  6. 微:控制部件向执行部件发出的控制信号称为:微命令。微命令执行的操作称为微操作。微指令是指若干微命令的集合,若干微指令的有序集合称为微程序。
  7. 一组实现一定功能的微命令的组合构成一条微指令,有序的微指令序列构成一段微程序,微程序的作用是实现一条对应的机器指令。
  8. 水平型指令执行几种并行的基本操作,垂直型指令只能定义并执行一种基本操作。
  9. 兼容性微命令指那些可以同时产生,共同完成某些微操作的微命令。
  10. 一台数字计算机基本上可以划分为两大部分:控制部件和执行部件。控制器就是控制部件。而运算器,存储器,外围设备相对控制器来说就是执行部件。

5.5 异常和中断机制

5.5.1 异常和中断的基本概念

异常(内中断):CPU内部产生的意外事件
中断(外中断):CPU外部的设备向CPU发送的中断请求称为中断。通常用于信息输入或输出

中断和异常本质上一样,但有两个重要不同点:

5.5.2 异常和中断的分类

1. 异常的分类

异常由CPU内部产生,分为硬故障中断和程序性异常。
硬故障中断:硬件连线出现异常引起。例如存储器校验错误,总线错误
程序性中断:又称软件中断,是在CPU内部因为执行指令而引起的异常。例如整除以0,溢出,断点,单步跟踪,非法指令,栈溢出,地址越界,却页等。

按照异常的发生原因,返回方式的不同,异常可以分为故障、自陷和终止

故障和自陷属于程序性中断。终止和外中断属于硬件中断

1)故障(Fault

引起故障的指令启动后、执行结束前被检测到的异常事件。
例如指令译码出现非法操作码、取数据发生“缺页/缺段”等
某些故障可以解决(缺页故障),某些必须终止执行(整除以0)

2)自陷(Trap

又称陷阱或陷入,是预先安排好的一种“异常”事件。通常在程序中用特殊指令或设置控制标志来人为设置陷阱

注意:当自陷指令是转移指令时,并不是返回到下一条指令执行,而是返回到转移目标指令执行

3)终止(Abort

执行指令过程中出现使计算机无法继续执行的硬件故障,例如控制器出错、存储器校验错误等。

和故障、自陷不同,终止不是由特定指令产生的,而是随机发生的

2. 中断的分类

中断是指来自CPU外部,与CPU执行的指令无关的事件引发的中断,包括IO设备发出的I/O中断、或者某些特殊事件(用户输入)

外部IO设备通过特定的中断请求信号线向CPU发送中断请求,CPU执行完一条指令就检查中断请求信号线,如果检测到中断请求,就进入中断响应周期

中断分为可屏蔽中断和不可屏蔽中断

5.5.3 异常和中断响应过程

CPU对异常和中断响应的过程可分为:关中断、保存断点和程序状态、识别异常和中断、转移到相应的处理程序


10 408 单级中断系统中,中断服务程序内的执行顺序:

67f626556c1345149ea76ab8fece5a3e.png

  1. 主存故障引起的中断属于:硬件中断
  2. Cache缺失无需异常处理程序进行处理
  3. 自陷处理完成后返回到陷阱指令的下一条指令执行
  4. (12 408) 中断处理和子程序调用都需要压栈保护现场,中断处理程序需要保存断点(PC)和程序状态字寄存器的内容(PSW),子程序调用只需要保存PC内容

根据课后题总结的知识点: 

  1. 异常事件在当前指令执行过程中进行检测,中断请求则在当前指令执行后进行检测。
  2. 指令执行结构出现的异常是程序性中断(软件中断)。
  3. CPU检测到异常事件后所做的处理和检测到中断请求后所做的处理基本是相同的,但有些地方不同。

5.6 指令流水线

5.6.1 指令流水线的基本概念

可以从两方面提高处理机的并行性:

8f357fa7fcb642d69313ad880dec0c6f.png

1. 指令流水的定义

1afbfdfdc77a4d1ca860f6e55c312231.png

2. 流水线的表示方法

4f837607682b48c0afbaa2782900fa88.png

3. 流水线的性能指标

 18c8a076a2324f93b10c21dfa6dff366.png65d08024e0844b53aade8cdb7ceef7f7.png

 a34b844fad0e4c98b5d9eb9277a17c2d.png

5.6.2 流水线的基本实现(五段式流水线

1aeefa3ddd854474bc1ed0961423058d.png
考试中常见的五类指令:运算类、LOAD、STORE、条件转移指令、无条件转移指令

运算类指令执行过程

dc64e47147444bc3bcc35fd5db1294f9.png

LOAD指令执行过程

2b5119699a1449858995c89bfdad9236.png

STORE指令执行过程

7c422bdd00cc4b0e9dca5ffebe50fc5d.png

条件转移指令执行过程

条件转移指令通常采用相对寻址
bac5fa71f062450281468a55b79edba9.png

无条件转移指令执行过程

281584e007a64f489c1e2593cad6939a.png

5.6.3 指令流水线的影响因素

结构相关(资源冲突(互斥

多条指令在同一时刻竞争同一资源形成的冲突

e3a20e3fa2584f66a11cdbec9156f315.png

数据相关(同步

等前一条指令执行完才能执行后一条指令的情况

47ae56744f2645c0951c704d8f0df3d7.png9de74905f352496099cfe3b3c1fee80e.png

b897e865b3ae4fefa54f4f17aa8bf514.png1600977757cc44bbab808a2c3e619fc7.png

解决方法
2. 数据旁路技术
3. 编译优化:调整指令执行顺序

控制相关

流水线遇到转移指令和其他改变PC值的指令而造成断流,引起控制相关

8363c5b4a9914d09bb1dd6d0ea12c616.png

5.6.4 流水线的分类

258bd4b53bf944728664a87a8b9acad4.png
0d99534a6cb1414495949584276e7243.png

5.6.5 流水线的多发技术

超标量流水线技术
又称动态多发射技术,本质是空间换时间
80538f85368c4b19b3990a7990fd7ec4.png
36b895f1a2b64dfbb420aef758af6724.png
超长指令字技术。
又称静态多发射技术
5e339b093c9e4b1c9e006601bae00ed3.png

5.7 多处理器的基本概念

5.7.1 SISD、SIMD、MIMD基本概念

1. 单指令流单数据流结构(SISD

特性:

  1. 各指令序列只能并发执行,不能并行,每条指令处理一两个数据
  2. 不是 数据级并行技术

硬件组成:

  1. 一个处理器+一个主存储器
  2. 若采用指令流水线,需要设置多个功能部件,采用多模块交叉存储器。

2. 单指令流多数据流结构(SIMD

特性:

  1. 各指令序列只能并发执行,不能并行,但每条指令可同时处理很多个具有相同特征的数据。
  2. 是一种 数据级并行技术。

硬件组成:

  1. 一个指令控制部件(CU)+多个处理单元/执行单元(如ALU)+多个局部存储器+一个主存储器
  2. 每个执行单元有各自的寄存器组,局部寄存器,地址寄存器
  3. 不同执行单元执行同一条指令,处理不同的数据。

向量处理器是SIMD的变体,是实现直接操作一维数组指令集的CPU

3. 多指令流单数据流结构(MISD

实际中不存在这样的计算机

4. 多指令流多数据流结构(MIMD

特性:

  1. 各指令序列并行执行,分别处理多个不同的数据。
  2. 是一种 线程级并行, 甚至是线程级以上并行技术。

进一步分类:

        多处理器系统:

                特性:

                        1.个处理器之间,可以通过LOAD/STORE指令,访问同一个主存储器,可通过主存相互传递数据

                 硬件组成:

                        1.一台计算机,内含多个处理器+一个主存储器

                        2.多个处理器共享单一的物理地址空间                     

        多计算机系统:

                特性:

                        1.各个计算机之间,不能通过LOAD/STORE指令直接访问对方的存储器,只能通过“消息传递”相互传送数据

                硬件组成:

                        1.多台计算机组成,因此拥有多个处理器+多个主存储器

                        2.每台计算机拥有各自的私有存储器,物理地址空间相互独立。   

MIMD分为多计算机系统(消息传递MIMD)和多处理器系统(SMP、共享存储MIMD)

61df0fa9d1da4c71a82949e2a9228fa2.png

SIMD是并行程度更高的线程级并行或线程级以上并行计算模式

 向量处理机(SIMD思想的进阶应用)

        特性:

                1.一条指令的处理对象是“向量”。

                2.擅长对向量型数据并行计算,浮点数运算,常被用于超级计算机中,处理科学研究中巨大运算量

        硬件组成:

                1.多个处理单元,多组“向量寄存器”。

                2.主存储器应采用“多个端口同时读取”的交叉多模块存储器。

                3.主存储器大小限定了机器的解题规模,因此要有大容量的,集中式的主存。

  1. (22 408) 关于并行处理技术:多核处理器属于MIMD结构;向量处理器属于SMID结构;SMP中所有处理器共享单一物理地址空间

 硬件多线程的基本概念:

细粒度多线程:

粗粒度多线程:

同时多线程(SMT):

Intel处理器中的超线程(Hyper-threading)就是同时多线程SMT,即在一个单处理器或单个核中设置了两套线程状态部件,共享高速缓存和功能部件。

5914e2bcaf924ef79849886bd85be1d7.png

 多核处理器的基本概念:

166db030e4334efeb80ca69217508e96.png

 共享内存多处理器的基本概念:

 28c9a1a6342f41ba9e1dad18ccb70242.png

 20a646ef33ca4cee89ad33588e9c37d7.png

 多核处理器:MIMD结构

向量处理器:SIMD结构

408真题

(12 408)

77542d3a94264992a516c3b44a15208d.jpeg

(13 408)

dee7f5859cde4927ade25c18529539f8.jpeg
(14 408)

aaa39f6141dc49b7b318bd80b63dacc8.jpeg
(15 408)

  1. 50ef32aab7324d5a917592397853172b.png
  2. 垂直型微指令:一条微指令只能定义一个微命令,由操作码字段规定具体功能。8b97c1a74a6e4a39b954af09602c498f.png
  3. 混合型微指令:6cbfdb9e2e314437804afa3a0f34f32d.png 
  4. 异常是CPU执行一条指令时,由CPU在其内部检测到的,与正在执行的指令相关的同步事件;
  5. 中断是一种典型的由外部设备触发的,与当前正在执行的指令无关的异步事件。
  6. 对异常和中断处理过程由操作系统(和驱动程序)完成。
  7. 可屏蔽中断通过INTR向CPU发送中断请求。CPU可以通过在中断控制器中设置相应的屏蔽字来屏蔽或者不屏蔽。被屏蔽的中断请求不被送到CPU
  8. 不可屏蔽中断通过NMI向CPU发出的中断请求。通常是非常紧急的硬件故障,例如掉电等。这类信号不可以被屏蔽,以让CPU快速处理这类紧急事件
  9. 关中断:禁止响应新的中断。通常通设置“中断允许触发器”来实现,IF=1为开中断,IF=0表示关中断
  10. 保存断点和程序状态:保存断点和PSWR,一般存在栈中
  11. 识别异常或中断类型、转移到相应处理程序(识别中断源形成中断服务程序入口地址,送入PC
  12. 保护现场
  13. 中断事件处理
  14. 恢复现场
  15. 开中断
  16. 中断返回
  17. 时间上的并行技术:将一个任务分解为几个不同的子阶段,每个阶段在不同的功能部件上并行执行,使得可以在同一时刻执行多个任务,提升系统性能。这种方法称流水线技术
  18. 空间上的并行技术:一个处理机内设置多个执行相同任务的功能部件,让这些部件并行工作。这样的处理机称为超标量处理机
  19. 吞吐率:单位时间内流水线完成的任务数量,或者输出结果的数量
    d39eb3a240df4be6b05ee44076128403.png
  20. 加速比:完成同样的任务,不使用流水线和使用流水线所用时间之比
    e45f395bca2b47cea57ea1fdeb9453ca.png
  21. 效率:流水线的设备利用率
    448d6bbc5f3a4767ae676823216752f0.png
  22. 注意访存阶段是空段
  23. 注意,RISC(精简)处理器只有LOAD和STORE指令才能访问主存
  24. 注意写回阶段WB为空段
  25. 注意,将PC目标值写回PC的操作在M段,而不是WB段
  26. 注意,将PC目标值写回PC的操作在EX段,而不是WB段
  27. 暂存寄存器(锁存器):方便将每个阶段的耗时取成一样的
  28. Cache分为指令Cache和数据Cache:使得IF和M阶段用到的硬件部件不同,可以并行工作
  29. 是传统的串行计算机结构
  30. 通常仅包含一个处理器和一个存储器
  31. 处理器在一段时间内只执行一条指令
  32. 有些SISD计算机采用流水线方式,需要设置多个功能部件,采用多模块交叉方式组织存储器
  33. 一个指令流同时对多个数据流进行处理(数据级并行技术
  34. SIMD计算机通常由一个指令控制部件、多个处理单元组成。
  35. 每个处理单元有自己的地址寄存器,因此不同单元指令同一指令,处理的是不同的数据
  36. SIMD在使用for循环处理数组时最有效;使用case或switch时效率最低
  37. 同时执行多条指令,分别处理不同的数据
  38. 多计算机系统中每个计算机节点都有各自的存储器,具有独立的主存地址空间,不能通过存取指令来访问不同节点的私有存储器,而要通过消息传递进行数据传送
  39. SMP/共享存储MIMD有共享的单一地址空间,通过存取指令来访问系统中的所有存储器
  • 汇编相关
  • 补码表示,算术移位
  • 指令流水
  • 频率和时钟周期、工作周期
  • 突发传送:传一次地址,存储器准备数据,总线传送数据
  • 多体并行存储器
  • Cache缺失,需要访存放入cache,再通过cache执行
  • 编址单位计算
  • 转移地址 PC自增
  • 指令流水、数据相关、控制冒险
  • CPU单总线结构
  • 数据通路
  • b0af51f579bf403d990529f5d9997c31.jpeg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值