计算机组成原理知识点汇总(考研用)——第五章:中央处理器

计算机组成原理知识点汇总(考研用)——第五章:中央处理器

 本文参考于《2021年计算机组成原理考研复习指导》(王道考研),《计算机组成原理》
思维导图:
在这里插入图片描述

文章目录

5.中央处理器

5.1 CPU的功能和基本结构

 5.1.1 CPU的功能

  中央处理器(CPU)由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令;运算器的功能是对数据进行加工。CPU的具体功能包括:
  (1)指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制
  (2)操作控制:一条指令的功能往往由若干操作信号的组合来实现。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作
  (3)时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号
  (4)数据加工:对数据进行算术和逻辑运算
  (5)中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理

 5.1.2 CPU的基本结构

  中央处理器主要由运算器和控制器两大部分组成
在这里插入图片描述

  1.运算器

  运算器接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑单元(ALU)、暂存寄存器、累加寄存器(ACC)、通用寄存器组、程序状态字寄存器(PSW)、移位器、计数器(CT)等组成。
  (1)算术逻辑单元:主要功能是进行算术/逻辑运算
  (2)暂存寄存器:用于暂存从主存读来的数据,该数据不能放在通用寄存器中,否则会破坏其原有内容。 暂存寄存器对应用程序员是透明的。
  (3)累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,也可作为加法运算的一个输入端
  (4)通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
  (5)程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志OF、符号标志SF、零标志ZF、进位标志CF等。PSW中的这些位参与并决定微操作的形成
  (6)移位器:对操作数或运算结果进行移位运算
  (7)计数器:控制乘除运算的操作步数

  2.控制器

  控制器是整个系统的指挥中枢,在控制器的控制下,运算器、存储器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机的协调工作。控制器的基本功能是执行指令,每条指令的执行是由控制器发出的一组微操作实现的
  控制器有硬布线控制器和微程序控制器两种类型。
  控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、存储器地址寄存器MAR、存储器数据寄存器MDR、时序系统和微操作信号发生器等组成
  (1)程序计数器:用于指出下一条指令在主存中的存放地址。CPU根据PC的内容去主存中取指令。因程序中指令通常是顺序执行的,所以PC有自增功能
  (2)指令寄存器:用于保存当前正在执行的那条指令。
  (3)指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
  (4)存储器地址寄存器:用于存放要访问的主存单元的地址
  (5)存储器数据寄存器:用于存放向主存写入的信息或从主存读出的信息
  (6)时序系统:用于产生各种时序信号,它们都由统一时钟(CLOCK)分频得到
  (7)微操作信号发生器:根据IR的内容(指令),PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
  控制器的工作原理是根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。


  CPU内部寄存器大致可分为两类:一类是用户可见的寄存器,可对这类寄存器编程,如通用寄存器组、程序状态字寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如存储器地址寄存器、存储器数据寄存器、指令寄存器



  例题:条件转移指令执行时所依据的条件来自()
  A.指令寄存器  B.标志寄存器
  C.程序计数器  D.地址寄存器

  答案:B;

  例题:在所谓的n位CPU中,n是指()
  A.地址总线线数  B.数据总线线数
  C.控制总线线数  D.I/O线数

  答案:B;数据总线的位数与处理器的位数相同,它表示CPU一次能处理的数据的位数,即CPU的位数

  例题:下面有关程序计数器PC的叙述中,错误的是()
  A.PC中总是存放指令地址
  B.PC的值由CPU在执行指令过程中进行修改
  C.转移指令时,PC的值总是修改位转移指令的目标地址
  D.PC的位数一般和存储器地址寄存器MAR的位数一样

  答案:C;

  例题:间址周期结束时,CPU内寄存器MDR中的内容为()
  A.指令  B.操作数地址  C.操作数  D.无法确定

  答案:B;间址周期的作用是取操作数的有效地址,因此间址周期结束后,MDR中的内容为操作数地址

  例题:某计算机的主存空间为4GB,字长为32位,按字节编址,采用32位字长指令字格式。若指令按字边界对齐存放,则程序计数器PC和指令寄存器IR的位数至少分别是

  答案:30、32;

  例题:CPU中有哪些专用寄存器

  答案:PSW、PC、IR、MAR、MDR(注意ACC是通用寄存器

5.2 指令执行过程

 5.2.1 指令周期

  CPU从主存中取出并执行一条指令的时间称为指令周期, 不同指令的指令周期可能不同。指令周期常用若干机器周期来表示,一个机器周期又包含若干时钟周期(也称节拍或T周期,它是CPU操作的最基本单位)。 每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。
在这里插入图片描述
  (a)为定长的机器周期,每个机器周期包含4个节拍(T);(b)为不定长的机器周期,每个机器周期包含的节拍数可以为4个,也可以为3个。
  对于无条件转移指令JMP X,在执行时不需要访问主存,只包含取指阶段(包括取指和分析)和执行阶段,所以其指令周期仅包含取指周期和执行周期。
  对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存,取出操作数,所以还需包括间址周期。间址周期介于取指周期和执行周期之间。
  当CPU采用中断方式实现主机和I/O设备的信息交换时,CPU在每条指令执行结束前,都要发中断查询信号,若有中断请求,则CPU进入中断响应阶段,又称中断周期。 一个完整的指令周期应包括取指、间址、执行和中断4个周期
在这里插入图片描述
  上述4个工作周期都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。
  为了区别不同的工作周期,在CPU内设置4个标志触发器FE、IND、EX、INT,分别对应取指、间址、执行和中断周期,以1表示有效,分别由1——>FE、1——>IND、1——>EX、1——>INT这4个信号控制。


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

  机器周期可看作是所有指令执行过程中的一个基准时间,机器内的各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU内部的操作速度较快,CPU访存的操作时间较长,因此通常以访问一次存储器的时间定为基准时间较为合理,这个基准时间就是机器周期。 因此在存储字长等于指令字长的情况下,取指周期也可看作机器周期。


 5.2.2 指令周期的数据流

  数据流是根据指令要求依次访问的数据序列。在指令执行的不同阶段,要求依次访问的数据序列是不同的。而且对于不同的指令,它们的数据流往往也是不同的。

  1.取指周期

  取指周期的任务是根据PC中的内容从主存中取出指令代码并存放在IR中
  取指周期的数据流如图
在这里插入图片描述
  PC中存放的是指令的地址,根据此地址从内存单元中取出的是指令,并存放在指令寄存器IR中,取指令的同时,PC加1。
  取指周期的数据流向如下:
在这里插入图片描述

  2.间址周期

  间址周期的任务是取操作数有效地址。 以一次间址为例,将指令中的地址码送到MAR并送至地址总线,此后CU向存储器发读命令,以获取有效地址并存至MDR
在这里插入图片描述
  间址周期的数据流向如下:
在这里插入图片描述

  3.执行周期

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

  4.中断周期

  中断周期的任务是处理中断请求。假设程序断点存入堆栈中,并用SP指示栈顶地址,而且进栈操作是先修改栈顶指针,后存入数据,数据流如图:
在这里插入图片描述
  中断周期的数据流向如下:
在这里插入图片描述

 5.2.3 指令执行方案

  一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。可选用3种不同方案来安排指令的执行步骤。

  1.单指令周期

  对所有指令都选用相同的执行时间来完成,称为单指令周期方案。 此时每条指令都在固定的时钟周期内完成,指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。 因此,指令周期取决于执行时间最长的指令的执行时间。 对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。

  2.多指令周期

  对不同类型的指令选用不同的执行步骤来完成,称为多指令周期方案。 指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。但可选用不同个数的时钟周期来完成不同指令的执行过程, 指令需要几个周期就为其分配几个周期,而不再要求所有指令占用相同的执行时间。

  3.流水线方案

  指令之间可以并行执行的方案,称为流水线方案, 其追求的目标是力争在每个时钟脉冲周期完成一条指令的执行过程(只在理想情况下才能达到该效果)。这种方案通过在每个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。


  例题:指令()从主存中读出
  A.总是根据PC
  B.有时根据PC,有时根据转移指令
  C.根据MAR
  D.有时根据PC,有时根据MAR

  答案:A;执行转移指令后也需将目标指令地址传到PC中。CPU根据PC中的内容去主存存取指令。

  例题:下列说法中,正确的是()
  1.指令字长等于机器字长的前提下,取指周期等于机器周期
  2.指令字长等于存储字长的前提下,取指周期等于机器周期
  3.指令字长和机器字长的长度没有任何关系
  4.为了硬件设计方便,指令字长都和存储字长一样大

  答案:2,3

  例题:指令和数据都存于存储器中,CPU如何区分它们?

  答案:虽然指令和数据都是以二进制代码形式存放在存储器中,但CPU可根据指令周期的不同阶段判断从存储器中取出的二进制代码是指令还是数据。在取指阶段通过访问存储器可将指令取出,在执行阶段通过访问存储器可将操作数取出。


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

 5.3.1 数据通路的功能

  数据在功能部件间传送的路径称为数据通路。 路径上的部件称为数据通路部件, 如ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等。数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,这些都需要加以控制。
  数据通路中专门进行数据运算的部件称为执行部件或功能部件。数据通路由控制部件控制。数据通路的功能是实现CPU内部的运算器与寄存器及寄存器之间的数据交换。

 5.3.2 数据通路的基本结构

  数据通路的基本结构主要有以下几种:
  (1)CPU内部单总线方式将所有寄存器的输入端和输出端都连接到一条公共通路上。 这种结构较为简单,但数据传输存在较多的冲突现象,性能较低。连接各部件的总线只有一条时,称为单总线结构;CPU中有两条或更多的总线时,构成双总线结构或多总线结构。 下图所示为CPU内部总线的数据通路和控制信号:
在这里插入图片描述
  在图中,规定各部件用大写字母表示,字母加in表示该部件的允许输入控制信号;字母加out表示该部件的允许输出控制信号
  (2)CPU内部三总线方式将所有寄存器的输入端和输出端都连接到多条公共通路上, 相比之下单总线中一个时钟周期内只允许传一个数据,因而指令执行效率很低,因此采用多总线方式,同时在多个总线上传送不同的数据,提高效率。
  (3)专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大。


  内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间互相连接的总线


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

  寄存器之间的数据传送可通过CPU内部总线完成。以PC为例,把PC内容送至MAR,实现传送操作的流程及控制信号为:
  PC——>Bus     PCout有效,PC内容送总线
  Bus——>MAR    MARin有效,总线内容送MAR

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

  主存与CPU之间的数据传送也要借助CPU内部总线完成。以CPU从主存读取指令为例,实现传送操作的流程及控制信号为:
  PC——>Bus——>MAR    PCout和MARin有效,现行指令地址——>MAR
  1——>R    CU发读命令
  MEM(MAR)——>MDR    MDRin有效
  MDR——>Bus——>IR    MDRout和IRin有效,现行指令——>IR

  3.执行算术或逻辑运算

  执行算术或逻辑操作时,由于ALU本身是没有内部存储功能的组合电路,因此如要执行加法运算,相加的两个数必须在ALU的两个输入端同时有效。 暂存器Y即用于该目的。先将一个操作数经CPU内部总线送入暂存器Y保存,Y的内容在ALU的左输入端始终有效,再将另一个操作数经总线直接送到ALU的右输入端。 这样两个操作数都送入了ALU,运算结果暂存在暂存器Z中。 (设置暂存器Z的原因是:ALU的输出不能直接与内部总线相连,因为其输出又会通过总线反馈到ALU的输入,影响运算的正确性)
  Ad(IR)——>Bus——>MAR    MDRout和MARin有效
  1——>R    CU发读命令
  MEM——>数据线——>MDR    操作数从存储器——>数据线——>MDR
  MDR——>Bus——>Y    MDRout和Yin有效,操作数——>Y
  (ACC)+(Y)——>Z    ACCout和ALUin有效,CU向ALU发加命

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

happy19991001

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

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

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

打赏作者

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

抵扣说明:

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

余额充值