计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

这篇具有很好参考价值的文章主要介绍了计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. CPU的功能和基本结构

1.1 CPU的组成

CPU由运算器控制器组成。

注意:n位CPU,指机器字长为n,表示一次能够处理的二进制位数。自然与数据总线相等
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

1.1.1 运算器的基本组成

功能:对数据进行加工

  1. 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
  2. 算术逻辑单元(ALU):主要功能是进行算术/逻辑运算
  3. 累加寄存器(ACC):它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
  4. 乘商寄存器(MQ)
  5. 程序状态字寄存器(PSW):保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成
  6. 移位器:对运算结果进行移位运算。
  7. 计数器:控制乘除运算的操作步数。
  • 注意:
  1. 通用寄存器位数取决于机器字长
  2. 通用寄存器与ALU的连接有两种:
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
    1. 采用内部总线则ALU的一个输入端口输出端口要设置暂存寄存器,若采用专用数据通道的方式则ALU端口要设置多路选择器或者三态门
    2. 内部总线的CPU,其ALU的输出端口会接一个暂存寄存器,实际中,这个暂存寄存器常常由移位寄存器充当,移位寄存器的后面又接着一个三态门(具体见图)。
      计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

1.2.2 控制器的基本组成

功能:取指令、分析指令并产生一系列微操作控制信号

  1. 程序计数器PC
  2. 指令寄存器IR
  3. 指令译码器
  4. 地址寄存器MAR
  5. 数据寄存器MDR
  6. 时序系统
  7. 微操作信号发生器

注意:

  1. PC是在执行指令过程中修改的。其中,非条件则在取指周期末,条件则可能在执行周期末
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  2. PC的位数取决于存储器容量, 和MAR一样

1.2.3 CPU的总图

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 程序员可见的寄存器:
    1. PC
    2. PSW
    3. 通用寄存器
    4. ACC
  2. 程序员不可见寄存器:
    1. MAR
    2. MDR
    3. IR
    4. 暂存寄存器

2. 指令执行过程

2.1 指令周期

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 时钟周期—>机器周期—>指令周期
  2. 时钟周期是CPU操作最基本的单位。
  3. 时钟周期又叫CPU时钟周期、节拍、T周期【注意:CPU周期是指机器周期,CPU时钟周期是指时钟周期
  4. 每个指令周期包含的机器周期数可以不同,而每个机器周期包含的时钟周期数也可以不同。故,不同指令的指令周期可能不同
    通常【注意是通常】]把通过一次总线事务访问一次主存或I/O【即存取周期】的时间定为一个机器周期。这样是为了方便指令流水,实际上,每个机器周期包含的节拍可以不一样。
    存储字长等于指令字长时,取指周期作为机器周期。
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

2.2 指令的执行流程

* 一个完整的指令周期由4个机器周期组成:
	1. 取指周期(最后一步分析指令)
	2. 间址周期 (若为间接寻址)
	3. 执行周期(取操作数)
	4. 中断周期(指令结束前,检查中断)

注意:

  1. 执行指令过程 != 执行周期
    一般说控制器就是取指令、执行指令。其中的指取令指取指周期,执行指令指剩余的间址周期、执行周期、中断周期。
  2. 指令和数据均以二进制放在内存中,CPU根据指令周期的不同阶段来区分指令和数据。

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 以上四个过程都访问了主存,只是目的不一样。
    1. 取指周期为了取指令
    2. 间址周期为了取操作数的有效地址
    3. 执行周期为了取操作数
    4. 中断周期为了将断点信息保存到主存的堆栈中
  2. 计算机根据指令周期的不同阶段来区分从存储器取出的是指令还是数据。比如,取值周期取出的是指令,执行周期取出的是数据。
  3. 取指周期、执行周期必有,间址周期和中断周期可能有可能没有
    取指周期完后,检测地址码的数据地址采用间址寻址、或寄存器间接寻址,若是则进入间址周期。
    执行周期完后 = 一条指令执行完后,会判断是否有中断请求,有则进入中断周期。
  4. 指令的取指操作是否相同—取决于指令长度,若指令长度相同,则取指操作相同。
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  5. 指令的间址操作是否相同—取决于寻址方式和几次间址
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

2.2.1 取指周期

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 进行访存操作时,是MAR先通过地址总线将地址给存储器。然后, CU再通过控制总线发出读写信号,最后将数据放入MDR.
  2. PC在取指周期结束周期+“1”
  3. 指令总是根据PC从主存中读出。即便是转移指令,也是通过修改PC实现的。
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

2.2.2 间址周期(取操作数的有效地址)

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:间址周期是取操作数的有效地址,而不是操作数。

2.2.3 执行周期

不同的指令,执行情况肯定不同,因此执行周期没有统一的流向。

2.2.4 中断周期

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:和读操作一样,读写控制在MAR和MDR之间。

2.3 指令执行方案

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

3. 运算器的数据通路

数据在功能部件之间传送的路径称为数据通路。其功能是实现运算器和寄存器以及寄存器之间的数据交换。

数据通路描述了数据从什么地方来,经过了哪些功能部件,最后传送到哪里。

* 数据通路的基本结构
	1. 专用数据通路方式:每个流动端都连接线,避免共享,性能高,但是硬件量大。
	2. 总线数据通路方式:容易数据冲突
		1. 单总线
		2. 双总线
		3. 多总线

3.1 基于CPU内部单总线的数据通路

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. MDRinE,E是指外部总线,MDRin没有E指内部总线

写操作序列的几个注意点:

  1. 取值周期
    1. PC将值给MAR后立即自加。 (PC)+1->PCM(MAR)->MAR放在一起,且读写信号在该行
    2. 记得写第四步指令译码
  2. 间址周期
    1. 将数放读入MDR后,只需要其放入ALU一端的暂存寄存器中,不需要将其放回到原寄存器中。
    2. 需要将操作数放在ALU两端,若只有一端有暂存寄存器,则将间接寻址的数放入暂存寄存器即可,另一个不动。
      若两端都有暂存寄存器,则需要将另一个数也放入暂存寄存器中。
    3. 若一端为形式地址=有效地址,则(X) + Ad(IR) -> ...
      计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  3. 执行周期
    1. ALU上有控制信号

注意:运算时,若只知道一个操作数,另一个操作数默认在ACC中。此时,在执行周期中,需要将运算完后的数据放回到ACC中

变址寻址方式:

  1. 先需要根据变址寄存器和形式地址找到数据的有效地址(需要用到地址加法器)
  2. 再读取数据。
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

最少节拍问题与立即寻址问题

  1. 最少节拍:先考虑分为几个事件,单独写出所有事件,再一个为基准,其他的逐条插入进来。考虑两点:
    1. 是否占用CPU内部总线
    2. 是否冲突
      计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  2. 立即寻址问题:立即数表示Ad(IR)
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

微程序控制器需要增加的微操作:(CMDR代替cIR,没有cIR)

  1. 虽然一条指令对应一个微程序,但是由于取指令是公用的微程序。因此,一条指令的执行涉及到两个微程序的运行。
  2. 相对于硬布线控制器每两个指令操作中间要增加一个微操作。类似于链表,指明下一条微指令的地址
  3. 微程序之间,后面的微程序地址由指令的操作码字段译码得到
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

4. 控制器

控制器功能:

  1. 取指令
  2. 执行指令:根据指令得到一系列有序的微操作控制信号,通过微操作控制信号去执行指令。

根据控制器产生微操作控制信号【微操作不是指微程序,硬布线和微程序都有】的方式不同,设计控制器中CU有2种方案:

  1. 硬布线控制器(采用纯硬件,即组合逻辑的方式)
    1. 缺点:
      1. 指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统)
      2. 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难
    2. 优点:
      1. 由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。
  2. 微程序控制器(采用软件和硬件结合的方式)
    1. 缺点:
      1. 速度慢
    2. 优点:
      1. 容易扩充指令,较容易实现,适用于CISC系统(复杂指令集系统)

4.1 硬布线控制器

4.1.1 硬布线控制器的组成

硬布线控制器中,每条指令由多个机器周期组成,而每个机器周期都由多个节拍组成。
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

硬布线控制器是由3个输入信号产生微操作控制信号:

① 指令译码器产生的指令译码信号
② 时序系统产生的节拍信号
③ 来自执行单元的反馈信号=标志信号

产生并输出一系列有序的微操作控制信号。

注意:

  1. ①②③中①②最重要
  2. CU还接受来自控制总线的控制信号,比如中断请求、DMA请求等,但这些与产生微操作控制信号无关。

4.1.2 CPU控制方式

CPU如何依次执行一个确定的微操作序列?

  1. 同步控制:系统有一个统一的时钟
    1. 优点:电路简单
    2. 缺点:运行速度慢
  2. 异步控制:没有统一时钟,各部件按照自身速度工作
    1. 优点:运行速度快
    2. 缺点:电路复杂
  3. 联合方式:大部分采用同步控制,小部分采用异步控制

4.2 微程序控制器

4.2.1 微程序控制器的组成

微程序控制器采用存储逻辑实现,也就是把微操作控制信号代码化,即微指令(微指令产生微操作控制信号),然后把微指令组成的微程序存入控制寄存器CM中。这就是微程序控制器。

其思想是:为每条指令设计一个微程序。每个微程序包含若干微指令,每条微指令对应若干微命令
而硬布线控制的每条指令包含若干机器周期,每个机器周期包含若干个微操作。

注意:

  1. 微程序控制器中采用微命令概念,而微命令执行的操作微操作
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  2. 指令 vs 微指令:
    1. 指令是对程序执行步骤的描述;
    2. 而微指令是对指令执行步骤的描述。
  3. 主存 vs 控制寄存器:
    1. 主存用于存放指令数据;在CPU外;用DRAM实现
    2. CM用于存放微指令;在CPU内;用ROM实现
  4. MAR vs CMAR(微地址寄存器):
    1. 地址寄存器:用于存放对主存的读写地址
    2. 微地址寄存器:用于存放对控制寄存器的读写地址
  5. MDR vs CMDR:
    1. 数据寄存器:用于存放从写入主存/从主存中读出的数据
    2. 微数据寄存器:从控制寄存器中读出的数据。
  6. 指令和微指令结构一样,都是两个字段:操作码、地址码
  7. 微程序控制器中将取指令操作统一编写成一个微程序。因此,若指令系统中有n中机器指令,则控制寄存器中的微程序数至少是n+1
    若带中断,则还需+1,即n + 2
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

其执行过程:
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

4.2.2 微指令的设计

4.2.2.1 微指令的格式

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 一条水平型微指令能定义多个可并行的微命令;而一条垂直型微指令能定义一个微命令
  2. 无论是上面哪种格式的微指令。一条微指令都存放在控制器的一个控制存储器单元中。
4.2.2.2 微指令的编码方式

指:对水平型微指令操作码字段的多个微操作进行编码。

有3种方式:
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

例题:

  1. 直接编码:
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

    注意:一条微指令都存放在控制器的一个控制存储器单元中。

  2. 字段直接编码 【注意:每个字段需要留1个状态表示不操作
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
4.2.2.3 微指令的地址方式

后序微指令地址的形成主要有如下几类:
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

例题:
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

4.3 硬布线控制器 vs 微程序控制器

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

微程序的目标:提高速度、灵活性,减少指令长度

5. 指令流水线

5.1 指令流水线的基本概念

注意:CISC可以采用指令流水线技术和非流水线技术,但是,RISC必须采用流水线技术。所以,默认定长指令。

5.1.1 指令流水的定义

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

假设指令周期分为3个阶段: 取指令、分析指令、执行指令。则该指令连续执行的方式主要有如下3种:
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 稳定时的流水线与并行执行的吞吐率相同。
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  2. 段时间不相等时情况
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  3. 流水线的数据通路(默认以完整的5段流水)
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

5.1.2 指令流水的特点

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

指令流水中机器周期:功能部件最长的 + 缓冲寄存器时间
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

5.1.3 指令流水的2种表示方式

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

5.1.4 流水线的性能指标

* 流水线的性能指标
	1. 吞吐率
	2. 加速比
	3. 效率

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

计算流水线带宽的例题:
计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

5.2 指令流水线影响因素

5.2.1 影响流水线的因素

* 影响流水线的因素
	1. 结构相关(资源冲突/冒险)
	2. 数据相关(数据冲突/冒险)
	3. 控制相关(控制冲突/冒险)

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:

  1. 转移指令和修改PC值的指令都可能引起控制相关。类似于判断、循环、函数调用、递归等涉及跳转的
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」
  2. 数据冲突有:和写有关都可能冲突— RAW(写后读)WAR(读后写)WAW(写后写)
    但是,流水线按序流动时,只可能出现RAW(写后读)冲突
    非顺序, 则以上3中都有可能
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

5.3 流水线的多发技术

* 流水线的多发技术
	1. 超标量流水线技术(多核CPU,空间并行)
	2. 超流水线技术
	3. 超长指令字

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

注意:超标量流水线技术必须是多核CPU,从而实现一个时钟周期内多次使用一个功能部件。其使用了多个重复的功能部件动态调整技术,从而提高指令执行的并行性。

例题:

  1. 采用度为4的超标量流水线CPU,指其一个时钟周期内能发出4条指令。
    计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

5.4 指令流水综合例题

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」


计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

6. 几个常考指令

6.1 运算类指令

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

6.2 LOAD指令

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

6.3 STORE指令

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

6.4 条件转移类指令

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

6.5 无条件转移类指令

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

6.6 例题

计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」文章来源地址https://www.toymoban.com/news/detail-509761.html

7. 补充

1. 程序员可见的寄存器:
	1. PSW
	2. 通用寄存器
	3. PC
2. 程序员不可见的寄存器:
	1. IR
	2. MAR
	3. MDR
	4. 暂存寄存器

3. 控制器里面:
	1. CU
	2. MAR
	3. MDR
	4. IR
	5. PC
	6. 指令译码电路  (只对操作码进行译码,而不是整个指令)
	7. 微程序信号发生器
	8. 时序电路

4. 运算器里面:
	1. ALU
	2. ACC
	3. MQ
	4. 通用寄存器
	5. PSW
	6. 移位器:对运算结果进行移位运算。
	7. 计数器:控制乘除运算的操作步数。

5. 条件转移指令:
	1. 执行时所依据的条件来自:标志寄存器
	2. 实现跳转来自:程序计算器PC

6. n位CPU指__(地址总线/数据总线/控制总线)位数。
	答:数据总线。表示CPU一次处理数据的位数。

7. 判断:转移指令时,PC的值总是修改为转移指令的目标地址。
	错。因为需要判断跳转是否成功,即条件是否成立。若不成功则顺序执行。

8. PC的位数 = MAR的位数 ->取决于存储器的容量

9. 通用寄存器的位数取决于___(指令长度/机器字长/存储器的容量)
	答:机器字长。因为通用寄存器可以存放数据和地址,所以其位数尽可能的大。

10. 判断:通用寄存器可以替代指令寄存器。
	错误。指令寄存器是专门存放指令的寄存器。
		
11. 指令译码是对___(整条指令/操作码/地址码)进行译码
	答:操作码

12. CPU取分指令和数据的依据是()‘
	A. 指令操作码的译码结果		B. 指令周期的不同阶段
	选B。计算机根据指令周期的不同阶段来区分从存储器取出的是指令还是数据,取值周期取出的是指令,执行周期取出的是数据。
	而指令操作码的译码结果用于区分该指令属于哪类指令。

13. 采用DMA方式传送数据时,每传送一个数据就要占( )
	A. 指令周期		B. 时钟周期		C. 机器周期		D. 存取周期
	选D。A,B,C都是指令中的概念,而存取周期指存储器进行连续两次独立的存储器操作(连续两次读或写操作)所需要的最小时间间隔。

14. 判:指令总是根据程序计算器从主存中读出。     正确。因为,转移等其他跳转指令都是通过修改PC的指而实现的。

15. 判:为了进行取指令操作,控制器需要得到相应的指令。
		错误。取指操作是自动进行的。

16. 判:通常把通过一次总线事务访问一次主存或I/O的时间定为一个机器周期。
		正确。因为CPU内部的操作速度快,而CPU访问一次存储器的时间较长,因此机器周期通常由访问主存或I/O的时间确定。

17. 判:每个指令周期都包含一个中断响应的机器周期。
		错误。只有在有中断请求时,指令才会有中断响应的机器周期。(间址周期也类似,可以回去看看上面那个图)

18. 判断:执行各条指令的机器周期数可变,各机器周期的长度均匀。
		错误。应该是执行各条指令的机器周期数可变,各机器周期的长度可变。
		每条指令可能有间址周期、中断周期,故机器周期数可变。每个机器周期的节拍数可能不等,故机器长度也可不等,但是采用流水线技术时一般相等。

19. 判断:凡是存储器间接寻址的指令,他们的操作都是相同的。
		错误。存储器间接寻址包括一次间接、两次间接、多次间接,因此操作可能不同。

20. 判断:所有指令的取值操作相同。
		错误。不同长度的指令,取值操作不同,比如双字长的指令要两次访问主存。
		另外,这种说法是对的:在指令长度相同的情况下,所有指令的取值操作相同。

21. 说法正确的是( 多选)
	A. 指令字长等于机器字长的前提下,取值周期等于机器周期
	B. 指令字长等于存储字长的前提下,取值周期等于机器周期
	C. 指令字长和机器字长的长度没有任何关系
	D. 为了方便硬件设计,指令字长和存储字长一样大。
	B, C。指令字长一般为存储字长的整数倍,若指令字长为存储字长的两倍,则需要2次访问主存,取值周期等于两倍的机器周期。故B对
	指令长度与机器字长无关,故A错,C对。
	指令指令字长一般取字节或存储字长的整数倍,不一定都和存储字长一样大。

22. 在组合逻辑控制器中,微操作控制信号的形成主要与( )信号有关。
	A. 指令操作码和地址码
	B. 指令译码信号和时钟
	C. 操作码和条件码
	D. 状态信息和条件
	选B. 硬布线主要是根据三个输入信号输出一系列控制信号。这三个输入信号是
		1. 指令译码电路产生的指令译码信号
		2. 时序系统产生的机器周期和节拍信号
		3. 来自执行单元的反馈信号,即标志信号。
		而这三个中1,2最重要。

23. 判断:采用微程序控制器是为了提高速度。
	错误。硬布线控制器的速度更快,采用微程序控制器主要是为了提高灵活性。

24. 判断:控制存储器由高速RAM电路组成。
	错误。CM是CU中类似于控制器中主存的存在,但是其是由ROM组成。

25. 判断:微指令计数器决定指令执行顺序。
	错误。CU中的微指令计数器类似于控制器中PC的存在,用于决定微指令执行顺序。

26. 判断:一条微指令存放在控制器的一个控制存储器单元中。
	正确。注意一个控制存储器单元存放一条微指令。

27. 判断:微程序控制器的时序系统比硬布线的简单。
	正确。因为硬布线控制器中时序是输入信号,设计组合逻辑电路时会更加复杂。

28. 在微程序控制器中,控制部件向执行部件发出的某个控制信号称为( )
	A. 微程序		B. 微指令		C. 微操作		D. 微命令
	D. 控制部件向执行部件发出的控制信号是微命令,微命令执行的操作叫微操作。

29. 判断:水平型微指令和垂直型微指令一次都只能完成一个基本操作。
	错误。前者可以完成多个,后者只能完成一个。

30. 判断:采用微程序控制器的处理器称为微处理器。
	错误。微处理器指控制器和运算器集成在一块板上,即CPU。

31. 判断:在微指令编码中,效率最低的是直接编码方式。
	错误。如果是编码效率,直接编码方式效率最低。但是如果是执行效率,则其最快,因为其不需要译码。

32. 判断:每条指令由一段微程序来解释执行。
	正确。意思就是由多个连续的微程序执行。

33. RISC机器一定是采用流水CPU,而采用流水CPU的不一定是RISC,CISC也可以采用流水CPU

34. 判断:流水CPU利用的是空间并行性原理。
	错误。是时间并行性。
	空间并行:即资源复用,主要指多个功能部件同时执行同一任务的不同部分。
	时间并行:即时间重叠,让多个功能部件在时间上相互错开,轮流执行不同任务的相同部分。

35. 判断:超标量流水技术能够缩短流水线功能段的处理时间。
	错误。(看图)

到了这里,关于计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计组实验】基于Verilog的多周期非流水线MIPS处理器设计

    设计多周期非流水线MIPS处理器,包括: 完成多周期MIPS处理器的Verilog代码; 在Vivado软件上进行仿真; 编写MIPS代码验证MIPS处理器; 相关代码及资源的下载地址如下: 本实验的Vivado工程文件和实验文档:Multi-Cycle MIPS Processor.zip(272KB) QtSpim 9.1.23和Vivado 2019.2的安装包:QtSpim Viv

    2024年02月11日
    浏览(45)
  • 记一次 .NET 某汽贸店 CPU 爆高分析

    上周有位朋友在 github 上向我求助,说线程都被卡住了,让我帮忙看下,截图如下: 时隔两年 终于有人在上面提 Issue 了,看样子这块以后可以作为 求助专区 来使用,既然来求助,必须得免费帮忙解决,从朋友这边拿到 dump 之后,接下来就可以分析了。 在朋友的文案描述中

    2024年02月05日
    浏览(45)
  • 05.BeanFactory后处理器

    BeanFactory后处理器 BeanFactory后处理器的作用:为 BeanFactory 提供扩展;@ComponentScan, @Bean, @Mapper 等注解的解析属于核心容器(即 BeanFactory)的扩展功能,这些扩展功能由不同的BeanFactory后处理器来完成, 其实 主要就是补充了一些 bean 定义 常见的 BeanFactory 后处理器 实现自己的BeanFac

    2024年02月08日
    浏览(29)
  • 记一次 .NET 某仪器测量系统 CPU爆高分析

    最近也挺奇怪,看到了两起 CPU 爆高的案例,且诱因也是一致的,觉得有一些代表性,合并分享出来帮助大家来避坑吧,闲话不多说,直接上 windbg 分析。 这里要提醒一下,别人说爆高不一定真的就是爆高,我们一定要拿数据说话,可以用 !tp 观察下。 虽然卦中的 CPU 不低但也

    2024年02月08日
    浏览(56)
  • 记一次 某智能制造MES系统CPU 爆高分析

    前段时间有位朋友找到我,说他 docker 中的web服务深夜cpu被打满,让我帮忙看一下,很多朋友问docker中怎么抓dump,我一般都推荐使用 procdump 这款自动化工具,谁用谁知道,有了 dump 之后,接下来就是分析了。 有很多朋友问 linux 上的dump可以用 windbg 分析吗?这里统一回复下,

    2024年02月04日
    浏览(81)
  • 机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn

    决策树是一种监督机器学习算法,用于回归和分类任务。树是可以处理复杂数据集的强大算法。 决策树特性: 不需要数值输入数据进行缩放。无论数值是多少,决策树都不在乎。 不同于其他复杂的学习算法,决策树的结果是可以解释的,决策树不是黑盒类型的模型。 虽然大

    2024年02月20日
    浏览(35)
  • 记一次 .NET 某物流API系统 CPU爆高分析

    前段时间有位朋友找到我,说他程序CPU直接被打满了,让我帮忙看下怎么回事,截图如下: 看了下是两个相同的程序,既然被打满了那就抓一个 dump 看看到底咋回事。 凡事都要用数据说话,我们使用 !tp 命令观察一下。 从卦象看果然是被打满了,那为什么会满呢?一般来说

    2024年02月15日
    浏览(55)
  • 记一次 .NET某设备监控自动化系统 CPU爆高分析

    先说一下题外话,一个监控别人系统运行状态的程序,结果自己出问题了,有时候想一想还是挺讽刺的,哈哈,开个玩笑,我们回到正题,前些天有位朋友找到我,说他们的系统会偶发性CPU爆高,CPU上去了就下不来了,让我帮忙看一下怎么回事,而且自己也分析过了,没找到

    2024年03月09日
    浏览(38)
  • 记一次 .NET某游戏后端API服务 CPU爆高分析

    前几天有位朋友找到我,说他们的API服务程序跑着跑着CPU满了降不下去,让我帮忙看下怎么回事,现在貌似民间只有我一个人专注dump分析,还是申明一下我dump分析是免费的,如果想学习.NET高级调试的分析技术,可以来我的训练营看看,话不多说,dump分析走起! 昨天录了一

    2024年03月21日
    浏览(41)
  • 电脑CPU/GPU处理器知识普及

    处理器主要分为两种: CPU 与 GPU ,二者针对不同的业务进行工作; CPU主要处理数量小、难度大的任务,能比较好的处理单线程任务; GPU主要处理数量达,难度小的任务,比如图形渲染、多线程高并发任务等。 主流的CPU厂家主要有Intel(英特尔)与AMD(超威半导体) 先来说一

    2023年04月15日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包