浅谈计算机组成原理(五)

 2021-10-10 18:35  阅读(32)
文章分类:计算机组成原理 文章标签:计算机原理计算机组成原理
©  原文地址:https://zhuanlan.zhihu.com/p/157606686

1、

第五章:中央处理器

通过下面的思维导图来依次分享「中央处理器」里面重要知识点。

202110101835042911.png202110101835046912.png

2、

第一节:CPU的功能和基本结构

**1. CPU的功能:**中央处理器(CPU)由运算器和控制器组成,具体功能主要包括:

①指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制。

②操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。

③时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。

④数据加工:对数据进行算术和逻辑运算。

⑤中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理。

**2. 运算器:**接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。运算器是计算机对数据加工处理的中心。其主要由以下几部分组成:

①算术逻辑单元(ALU):主要功能是进行算术/逻辑运算。

②暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。暂存寄存器对应用程序员是透明的。

③累加寄存器(ACC):是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端。

**④通用寄存器组:**用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。

**⑤程序状态字寄存器(PSW):**用于保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息。

**⑥移位器:**对操作数或运算结果进行移位运算。

**⑦计数器(CT):**控制乘除运算的操作步数。

**3. 控制器:**是整个系统的指挥中枢,在控制器的控制下,使运算器、寄存器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作控制器的基本功能是执行指令,每条指令的执行是由控制器发出的一组微操作实现的。其主要由以下几部分组成:

①程序计数器(PC):用于指出下一条指令在主存中存放的地址。CPU根据PC的内容去主存中取指令,因程序中指令(通常)是顺序执行的,所以PC有自增功能。

②指令寄存器(IR):用于保存当前正在执行的那条指令。

③指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。

④存储器地址寄存器(MAR):用于存放所要访问的主存单元的地址。

⑤存储器数据寄存器(MDR):用于存放向主存写入的信息或从主存中读出的信息。

⑥时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。

⑦微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。

3、

第二节:指令执行过程

**1. 指令周期:**即CPU从主存中每取出一条指令所需的全部时间,也就是CPU完成一条指令的时间。指令周期通常用若干机器周期来表示,一个机器周期又包含若干时钟周期(它是CPU操作的最基本单位)。若每个指令周期内机器数不相等则为不定长的机器周期,若相等则为定长的机器周期,如下图:

202110101835052104.png![Image 1][]

2. 带有间址周期、中断周期的指令周期:当CPU采用中断方式实现主机和I/O设备交换信息时,CPU在每条指令执行结束前,都要发中断查询信号,如果有中断请求,CPU则进入中断响应阶段,又称为中断周期。此时一个完整的指令周期包括取指、间址、执行和中断4个周期依次如下:

①取指周期:任务是根据程序计数器(PC)中的内容从主存中取出指令代码并存放在指令寄存器(IR)中。

**②间址周期:**任务是取操作数有效地址。

**③执行周期:**任务是根据指令寄存器(IR)中的指令字的操作码和操作数通过ALU操作产生执行结果。

④中断周期:任务是处理中断请求。

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

**①单指令周期:**对所有指令都选用相同的执行时间来完成。此时每一条指令都在固定的时钟周期内完成,指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。

**②多指令周期:**对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行,但可选用不同个数的时钟周期来完成不同指令的执行过程,指令需要几个周期就为其分配几个周期,而不再要求所有指令占用相同的执行时间。

**③流水线方案:**指令之间可以并发执行的方案。其目标是力争在每个时钟脉冲周期完成一条指令的执行过程,通过在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。

4、

第三节:控制器

1. 控制器的结构和功能:计算机硬件系统由五大功能部件及其连接关系,它们通过数据总线、地址总线和控制总线连接在一起,如下图:

202110101835057606.png![Image 1][]

对上图主要连接关系进行说明如下:

①运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据;

②输入设备和输出设备通过接口电路与总线相连接;

③内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据;

④控制部件从数据总线接收指令信息,从运算部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号。

对上图中控制器主要功能的说明:

①从主存中取出一条指令,并指出下一条指令在主存中的位置;

②对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作;

③指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。

2. CPU的控制方式:控制单元控制一条指令执行的过程,实质上是依次执行一个确定的微操作序列的过程。由于不同指令所对应的微操作数及复杂程度不同。因此,每条指令和每个微操作所需要的执行时间也不同,主要由以下几种控制方式:

①同步控制方式:即系统有一个统一的时钟,所有的控制信号均来自这个统一的时钟信号。通常以最长的微操作序列和最烦琐的微操作作为标准,采取完全统一的,具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令;

优点是控制电路简单,缺点是运行速度慢。

②异步控制方式:即不存在基准时标信号,各部件按自身固有的速度工作,通过应答方式进行联络;

优点是运行速度快,缺点是控制电路比较复杂。

③联合控制方式:即介于同步和异步之间的一种折中。这种方式对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。

3. 微程序控制器:微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。

**4. 微程序设计思想:**将每一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每一个微程序中的微指令。

**5. 微命令与微操作:**一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的,不可再分解的操作。在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令称为微命令,它是构成控制序列的最小单位。例如,打开或关闭某个控制门的电位信号、每个寄存器的打入脉冲等。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。

5、

第四节:指令流水线

1. 指令流水线:是把一个重复的过程分解为若干子过程,每个子过程与其他子过程并行执行,采用流水线技术只需要增加少量硬件就能把计算机的运算速度提高几倍。

例如:当一条指令的执行过程分为取指、分析、执行3个阶段,且3个阶段的处理时间都相等,多条指令在处理器中执行时,可以采用以下几种方式:

**①顺序执行方式:**指令按顺序执行,前一条指令执行完后,才启动下一条指令。如下图:

202110101835064998.png![Image 1][]

**②一次重叠执行方式:**把第k条指令的执行阶段和第k+1条指令的取指阶段同时进行。如下图:

2021101018350696610.png![Image 1][]

**③二次重叠执行方式:**把取k+1条指令提前到分析第k条指令的期间完成,而将分析第k+1条指令与执行第k条指令同时进行。如下图:

2021101018350717712.png![Image 1][]

2. 流水线的特点:与传统的串行执行方式相比,采用流水线方式的特点如下:

①把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务有一个专门的功能部件来执行,并依靠多个功能部件并行工作来缩短程序的执行时间。

②流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水线的执行结果。提供给下一流水段使用。

③流水线中各功能段的时间应尽量相等,否则将引起堵塞、断流。

④只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务。在采用流水线方式工作的处理机中,要在软件和硬件设计等多方面尽量为流水线提供连续的任务。

⑤流水线需要有装入时间和排空时间。装入时间是指第一个任务进入流水线到输出流水线的时间。排空时间是指最后一个任务进入流水线到输出流水线的时间。

3. 影响流水线的因素:流水线中存在一些相关的情况,它使下一条指令无法在设计的时钟周期内执行。这些相关降低流水线性能。主要有3种类型的相关:

①结构相关(资源冲突):由于多条指令在同一时刻争用同一资源而形成的冲突。有以下解决办法:

a. 前一指令访存时,使后一条相关指令(以及后续指令)暂停一个时钟周期;

b. 单独设置数据存储器和指令存储器,使两项操作各自在不同的存储器中进行,这属于资源重复配置。

②数据相关(数据冲突):指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。当多条指令重叠处理时就会发生冲突,有以下解决办法:

a. 把遇到数据相关的指令及后续指令都暂停几个时钟周期,直到数据相关问题消失后在继续执行;

b. 设置相关专用通路,即不等前一条指令把计算结果写回寄存器组,下一条指令也不再读寄存器组,而是直接把前一条指令的ALU的计算结果作为自己的输入数据开始计算过程,使本来需要暂停的操作变得可以继续执行,称为数据旁路技术;

c. 通过编译器对数据相关的指令编译优化的方法,调整指令顺序来解决数据相关。

③控制相关(控制冲突):当流水线遇到转移指令和其他改变程序计数器(PC)值的指令而造成的断流时,会引起控制相关。有以下解决办法:

a. 对转移指令进行分支预测,尽早生成转移目标地址;

b. 预取转移成功和不成功两个控制流方向上的目标指令;

c. 加快和提前形成条件码;

d. 提高转移方向的猜准率。

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 浅谈计算机组成原理(五)

相关推荐