【计算机组成原理-chapter5】中央处理器

文章目录

1. CPU的功能和基本结构

1.1 CPU的功能

在这里插入图片描述

1.2 CPU的组成

CPU由运算器和控制器组成。

1.2.1 运算器的基本组成

  1. 算术逻辑单元(ALU):主要功能是进行算术/逻辑运算
  2. 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
    通用寄存器与ALU的连接有两种:
    在这里插入图片描述

注意:

  1. 总线有内部总线和系统总线之分。内部总线指在CPU内部的总线,系统总线指在CPU外的总线。
  2. 采用内部总线则ALU的一个输入端口输出端口要设置暂存寄存器,若采用专用数据通道的方式则ALU端口要设置多路选择器或者三态门。相关题目如下:
    在这里插入图片描述
  3. 内部总线的CPU,其ALU的输出端口会接一个暂存寄存器,实际中,这个暂存寄存器常常由移位寄存器充当,移位寄存器的后面又接着一个三态门(具体见图)。
  1. 累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
  2. 程序状态字寄存器(PSW):保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成
  3. 移位器:对运算结果进行移位运算。
  4. 计数器:控制乘除运算的操作步数。

1.2.2 控制器的基本组成

在这里插入图片描述

1.2.3 CPU的总图

在这里插入图片描述

1.2.4 小结

在这里插入图片描述

2. 指令执行过程

2.1 指令周期

在这里插入图片描述

注意:

  1. 时钟周期组成机器周期,而机器周期组成指令周期。
  2. 每个指令周期包含的机器周期数可以不同,而每个机器周期包含的时钟周期数也可以不同。
  3. 时钟周期是CPU操作最基本的单位。
  4. 时钟周期又叫CPU时钟周期、节拍、T周期【注意:CPU周期是指机器周期,CPU时钟周期是指时钟周期】
  5. 通常把通过一次总线事务访问一次主存或I/O的时间定为一个机器周期
  6. 以上的示意图是硬布线控制器的指令周期
    硬布线控制器中,每条指令由多个机器周期组成,而每个机器周期都由多个节拍组成。
    微程序控制器中,每条指令对于一个微程序,而一个微程序由若干个微指令组成,每个微指令表明一个节拍/时钟周期内做什么事情。

2.2 指令的执行流程

* 指令的执行流程有4步:
	1. 取指周期
	2. 间址周期(取操作数的有效地址)
	3. 执行指令(取操作数)
	4. 中断周期

在这里插入图片描述

注意:

  1. 以上四个过程都访问了主存,只是目的不一样。取值周期为了取地址,间址周期为了取操作数的有效地址,执行周期为了取操作数,中断周期为了将断点信息保存到主存的堆栈中。
  2. 计算机根据指令周期的不同阶段来区分从存储器取出的是指令还是数据,取值周期取出的是指令,执行周期取出的是数据。

2.2.1 取指周期

在这里插入图片描述

注意:进行访存操作时,是MAR先通过地址总线将地址给存储器。然后, CU再通过控制总线发出读写信号,最后将数据放入MAR.

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

在这里插入图片描述

2.2.3 执行周期

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

2.2.4 中断周期

在这里插入图片描述

2.3 指令执行方案

在这里插入图片描述

2.4 小结

在这里插入图片描述

3. 数据通路

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

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

数据通路限制在指令周期中,因为CPU是不断的取指令,执行指令,即重复指令周期。而指令周期中更多的是与运算器打交道,所以,这一节也可以理解为是探究运算器的内部结构。

3.1 基于CPU内部总线的数据通路(单总线/多总线)

在这里插入图片描述

注意:每条总线,在某一时刻总线只能传送一个数据。

例题:
在这里插入图片描述

3.2 基于专用数据通路的数据通道

在这里插入图片描述
练习:
在这里插入图片描述

3.3 小结

在这里插入图片描述

4. 控制器的功能和原理

4.1 控制器的结构和功能

4.2 控制器的设计

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

4.2.1 硬布线控制器(采用纯硬件的方式,即组合逻辑电路)

硬布线控制器的基本原理是根据输入CU的三个信号:

①根据指令的要求;【即: 经指令译码器产生的指令译码信号】
②当前的时序;【即:时序系统产生的机器周期和节拍信号】
③外部和内部状态;【即:来自执行单元的反馈信号=标志信号】

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

注意:①②③中①②最重要。

4.2.1.1 硬布线控制器的组成

在这里插入图片描述

硬布线控制器的组成如下图所示:
在这里插入图片描述

4.2.1.2 硬布线控制器的控制单元的设计

控制器的控制单元(CU)的设计步骤:
在这里插入图片描述

第一步:分析每个阶段的微操作序列

在这里插入图片描述

第二步:选择CPU的控制方式

采用定长指令周期或不定长指令周期。这里采用定长指令周期。

第三步:安排微操作时序

这里每个周期都安排三个节拍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四步:电路设计

在这里插入图片描述
会根据操作时间表写出微操作的逻辑表达式就行,比如下面:
在这里插入图片描述

4.2.2 微程序控制器(采用软件和硬件结合的方式,即微程序)

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

我们知道一条指令有多个机器周期,一个机器周期对应一个微程序。那么采用微程序控制器,完成微程序的过程就是直接从CM中读取微程序并执行就可以了。而硬布线完成机器周期的任务,比如取值周期内,是根据输入指令译码信号、时序信号、标志信号输出一列控制信号来完成整个取值周期要做的事情。

4.2.2.1 微程序控制器结构与工作原理

在这里插入图片描述

注意:

  1. 微程序控制器中,每条指令对于一个微程序,而一个微程序由若干个微指令组成,每个微指令表明一个节拍/时钟周期内做什么事情。
    而硬布线控制器中,每条指令由多个机器周期组成,而每个机器周期都由多个节拍组成。
  2. 微命令就是微操作,一个节拍内包含若干个微操作。
  3. 微程序的分类:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

注意:一个高频考点:
在这里插入图片描述

4.2.2.2 小结

在这里插入图片描述

4.2.2.3 微指令的设计
4.2.2.3.1 微指令格式与编码方式

在这里插入图片描述

注意:

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

下面以水平型微指令为例子,介绍微指令的3中编码方式:
在这里插入图片描述

注意:字段直接编码方式中用到的兼容性微命令指:几个微命令可以同时出现。

后序微指令地址的形成主要有如下几类:
在这里插入图片描述
例题:
在这里插入图片描述

注意:

  1. 指令的间址周期和中断周期可以没有,但是取指周期和执行周期必定会有。而取值周期、间址周期、执行周期、中断周期中,只有执行周期的微程序不可共享。
    在这里插入图片描述
4.2.2.3.2 小结

在这里插入图片描述

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

在这里插入图片描述

第一步:分析每个阶段的微操作序列

在这里插入图片描述

第二步:写出对应机器指令的微操作命令及节拍安排

在这里插入图片描述

第三步:确定微指令格式

根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。
根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。

第四步:编写微指令码点

在这里插入图片描述

小结

在这里插入图片描述

注意:由上图可见,微程序控制器的速度比硬布线控制器慢,主要是因为增加了从控制存储器读取微指令的时间。

在这里插入图片描述

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

在这里插入图片描述

5. 指令流水线

5.1 指令流水线的基本概念

注意:CISC可以采用指令流水线技术和非流水线技术,但是,RISC都采用流水线技术。所以,下面的指令流水线的学习中默认都是CISC指令系统。

5.1.1 指令流水的定义

指令流水指的是指令连续执行。而指令连续执行的方式主要有如下3种:
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

5.1.3 流水线的性能指标

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1.4 机器周期的设置

在这里插入图片描述

注意:

  1. 指令流水线中,每个功能段占用一个时钟周期。也就是指令流水线中一个机器周期由一个时钟周期组成。(实际情况可能不是这样,但是考试默认是这样)
  2. 取功能部件中耗时最长的为CPU时钟周期。另外,注意,如果题目说了缓冲寄存器/锁存器的时间,还需要加上这个时间。
    在这里插入图片描述

5.2 指令流水线影响因素

5.2.1 影响流水线的因素

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:转移指令和修改PC值的指令可能引起控制相关。

5.2.2 小结

在这里插入图片描述

5.3 流水线的分类

在这里插入图片描述

5.4 流水线的多发技术

* 流水线的多发技术
	1. 超标量技术
	2. 超流水线技术
	3. 超长指令字

在这里插入图片描述

注意:采用度为4的超标量流水线CPU,指其一个时钟周期内能发出4条指令。
在这里插入图片描述

5.5 小结

在这里插入图片描述

6. 几个常考指令

6.1 运算类指令

在这里插入图片描述

6.2 LOAD指令

在这里插入图片描述

6.3 STORE指令

在这里插入图片描述

6.4 条件转移类指令

在这里插入图片描述

6.5 无条件转移类指令

在这里插入图片描述

6.6 例题

在这里插入图片描述

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. 判断:超标量流水技术能够缩短流水线功能段的处理时间。
	错误。(看图)

在这里插入图片描述

注意:这个题是要确定CPU时钟周期,此时要按其每个功能段的时钟周期相同。但是如果题目给出了每个功能段的时间,则按其时间去做,不要画蛇添足的取最大的为时钟周期去算。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

空间并行与时间并行

空间并行:即资源复用,主要指多个功能部件同时执行同一任务的不同部分。
时间并行:即时间重叠,让多个功能部件在时间上相互错开,轮流执行不同任务的相同部分。

例题:
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElegantCodingWH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值