中央处理器(CPU)由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算 机各部件执行程序的指令序列,包括取指令、分析指令和执行指令;运算器的功能是对数据进行加工。CPU的具体功能包括:
1)指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
2)操作控制。一条指令的功能往往由若干操作信号的组合来实现。CPU管理并产生由内存
取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指
令的要求进行动作。
3)时间控制。对各种操作加以时间_上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
4)数据加工。对数据进行算术和逻辑运算。
5)中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
CPU的基本结构:
运算器的作用:
运算器的话主要就是接受从控制器发来的命令,然后执行,构成的话主要有ALU、暂存寄存器、累加寄存器、程序状态字寄存器,计数器等等组成,然后他们的作用如下:
1)算术逻辑单元。主要功能是进行算术/逻辑 运算。
2)暂存寄存器。用于暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破 坏其原有内容。暂存寄存器对应用程序员是透明的。
3)累加寄存器。它是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加 法运算的一个输入端。
4)通用寄存器组。如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的 操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
5)程序状态字寄存器。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信 息,如溢出标志(OF)、 符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中 的这些位参与并决定微操作的形成。
6)移位器。对操作数或运算结果进行移位运算。
7)计数器。控制乘除运算的操作步数。
控制器的作用:
控制器的基本功能就是执行一条条的指令,每条指令的执行是由一组组的微操作来实现的,其次,控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、时序系统等等组成。
1)程序计数器。用于指出下一条指令在主存中的存放地址。CPU根据PC的内容去主存中 取指令。因程序中指令(通常)是顺序执行的,所以PC有自增功能。
2)指令寄存器。用于保存当前正在执行的那条指令。
3)指令译码器。仅对操作码字段进行译码,向控制器提供特定的操作信号。
4)存储器地址寄存器。用于存放要访问的主存单元的地址。
5).存储器数据寄存器。用于存放向主存写入的信息或从主存读出的信息。
6)时序系统。用于产生各种时序信号,它们都由统一-时钟(CLOCK)分频得到。
7)微操作信号发生器。根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产 生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
注意:有一个常考的地方就是关于CPU内部寄存器的类别,一类是用户可见的寄存器,一类是用户不可见的寄存器,也就是透明的,
对于用户可见的寄存器有:PSW,ACC,PC
对于用户不可见的寄存器(透明的)有:指令寄存器、存储器数据寄存器、存储器地址寄存器
【错题】
解:指令寄存器存放指令;程序状态字寄存器存放状态字;寄存器本身不具有计数等逻辑运算功能,因此选D
解:PC:程序计数器,存放的是下一条指令在主存中的地址;转移指令需要判断是否成功,成功后修改为转移指令的目标地址,选B
解:由于PC里装的是指令在内存中的地址,所以由主存的位数来决定——>为30位(2^32/(32/8)),而指令寄存器接受指令,取决于指令字长,为32位,选B
解:因为没产生进位和借位因此都为0,选A
对于指令的执行过程的话包含两个点,一个是指令周期,还有一个是指令的执行方案
1.指令周期
对于指令周期的话,这个是考试常考的点,我们需要知道指令周期,机器周期,当然还有其中的取址周期、间址周期、执行周期还有中断周期,这个地方很重要,牵涉到了后面的章节。废话少说,什么是指令周期呢?
CPU从主存中取出并执行一条指令的时间称为指令周期,不同指令的指令周期可能不同。 指令周期常用若干机器周期来表示,一个机器周期又包含若干时钟周期(也称节拍或T周期, 它是CPU操作的最基本单位)。每个指令周期内的机器周期数可以不等,每个机器周期内的节拍 数也可以不等。 下面是一个完整的指令周期:
(引入一个问题,CPU执行指令的时候应该怎么样确定它是什么周呢?) 其实为了区别不同的工作周期,在CPU内设置4个标志触发器FE、IND、 EX和INT,它们分 别对应取指、间址、执行和中断周期,并以“1”状态表示有效,分别由1→FE、1→IND、1→ EX和1→INT这4个信号控制。
2.指令周期的数据流
1.取址周期
取址周期取址周期,按字面意思就是取出一条指令所花费的周期数,事实上取指周期的任务是根据PC中的内容从主存中取出指令代码并存放在IR中。考试时经常让你画数据流向,就是执行操作的流程,pc+1啥的:
2.间址周期
间址周期,顾名思义,我们取间接地址的有效的操作数的时候执行的操作,因为指令给出的是形式地址,是操作数所在的地址,所以我们应该先从指令寄存器IR取出形式地址,保存到地址寄存器里面:
3.执行周期
4.中断周期
中断周期的设置是为了避免执行当前指令时,出现其他新的请求的指令与其产生冲突
3.指令周期的执行方案
这里我直接copy书上的,就记住这几种方案的特点就ok了,其中的流水线方法是重点:
1.单指令周期 对所有指令都选用相同的执行时间来完成,称为单指令周期方案。此时每条指令都在固定 的时钟周期内完成,指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启 动。因此,指令周期取决于执行时间最长的指令的执行时间。对于那些本来可以在更短时间内 完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
2.多指令周期 对不同类型的指令选用不同的执行步骤来完成,称为多指令周期方案。指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。但可选用不同个数的时钟周期来完 成不同指令的执行过程,指令需要几个周期就为其分配几个周期,而不再要求所有指令占用相 同的执行时间。
3.流水线方案 指令之间可以并行执行的方案,称为流水线方案,其追求的目标是力争在每个时钟脉冲周期完成一条指令的执行过程(只在理想情况下才能达到该效果)。这种方案通过在每个时钟周期 启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。
【错题】
解:首先需要搞清楚什么是DMA方式,其实在IO这章里面有,DMA方式就是借助DMA存储器访问读写主存的一种方式,一个存取周期代表两次连续的读或写操作,通过排除法也可以确认,选D
解:程序计数器中存放着下一条指令在主存中的地址,转移指令被执行后也需要将地址放入程序计数器里面
解:取址周期结束后,PC+1,执行无条件跳转指令后,PC又一次被修改,因此为2次,选B
解:概念问题,就是A
解:我们知道,执行每条指令的所需要的机器周期不一定相同,而且有些指令带有特定的功能,所需要的机器周期的长短也不相同
解:间接寻址的操作不一定都相同,比如说一次间接,二次间接等等,存储器间接寻址(通过形式地址访存)寄存器间接寻址(通过寄存器里面的内容访存)
解:机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个时钟周期组成 ,如果指令字长等于存储字长,则取址周期等于机器周期,其中机器字长和指令字长没有任何联系,对于四,不一定都一样大,可以是存储字长的整数倍
第一,什么是数据通路呢,数据通路就是各个功能部件之间转送的路径,路径上的部件则称之为数据通路部件(ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等),这里大题好难,以后补上呜呜呜。
注:ALU没有存储功能所以需要设置暂存寄存器,题目处出现部件+‘in’说明表示该部件可以输入控制信号,部件+‘out’表示可以输出控制信号
然后就是关于一些部件之间的数据传送
【错题】
解:我们要先知道数据通路的几种基本结构:内部单总线、内部三总线、专用数据通路,题目就是让我们用内部总线的方式和专用数据通路进行对比,对于总线结构,比较简单,但效率较低,并且容易引起数据冲突,后者性能较高,但所需的硬件量比较大,因此说法都不正确选D。
解:因为所有的指令的指令周期为一个时钟周期CPI=1没问题,用单总线方式的话,因为一个时钟周期内的控制信号是不变的,而且每个时钟周期只能支持一个部件工作,所以因该采用多总线的结构。
这个地方是CPU的重点,需要着重复习 。
首先,我们先来搞清楚控制器的组成(虚线框起来的部分):
然后因为控制器产生微命令的方式不相同,所以我们可以把控制器分为硬布线控制器和微程序控制器 ,其中硬布线控制器也叫做组合逻辑控制器,下面就是关于这两种控制器的描述,对比,一般大题和选择题都会考,设计微程序,作比较之类的。
1.硬布线控制器
对于硬布线控制器的话,重点是记住那张图,就是这个控制器怎么样发出指令的,简单来说,硬布线控制器是一种根据指令的要求,当前的时序及其内部和外部的状态按时间命令发送一系列微操作的控制信号
就如上图所示,CU的输入信号源第一个是经过指令译码器产生的指令信息,决定了不同指令在操作周期的不同操作(与时钟相互配合),第二个是时序系统产生的周期信号和节拍信号,一般一个时钟脉冲控制单元发送一个操作命令;第三个是来自单元的反馈信息,即标志,因为有时候控制单元需要依赖CPU的当前的状态来产生控制信号。
然后是关于CPU的三种控制方式
1.同步控制方式
这种控制方式下,系统有一个统一的时钟信号。(PS:通常以最长的那个微操作序列为标准)优点:控制电路简单;缺点:运行速度慢
2.异步控制方式
各个部件可以按自生的固有速度工作,以应答的方式进行联络;优点:运行速度快;缺点:控制电路比较复杂
3.联合控制方式
采取了结合同步和异步的方式方法,大部分采用同步,小部分采用异步的方法
2.微程序控制器
对于微程序控制器而言,它用的是存储逻辑来实现的,它将每条机器指令编写成一个微程序,并存放在一个专门的存储器里面(控制存储器),每个微程序包含若干微指令,每条微指令对应一个或几个微操作命令。然后有几个重要的名词需要我们知道:
1.微操作与微命令
2.微指令与微周期
3.主存储器与控制存储器
4.程序与微程序
这里总结一下,一条机器指令可以看作一条微程序,微程序是由多条微指令所构成的,而为微指令由若干微命令构成,微命令和微操作一 一对应,微命令一般由控制部件向执行部件发出控制信号产生,微操作是微命令的执行过程,特别的微周期是指从控制存储器种读取一条微指令并执行对应微操作所需要的时间。(注:对于程序员来说,计算机系统中的微程序的结构与功能是透明的!!),在介绍区分以下寄存器:
微程序控制器的组成与工作过程(重要)
微程序控制器主要的组成部分:
1.控制寄存器
存放各种微程序,由只读存储器ROM组成(断电重启可以保存)
2.微指令寄存器
存放从控制寄存器取出的微指令,位数与指令字长一致
3.微地址形成部件
产生初始微地址和后续的微地址
4.微地址寄存器
接收微地址形成部件送来的微地址
微程序控制器的执行过程
(注意:如果指令系统里面有n中机器指令,则控制存储器里面的微程序数至少为n+1,1为公共的取微指令)
微指令的编码过程
(1)直接编码
无须译码,微命令字段中的每一位都代表一个微命令
(2)字段直接编码
(3)字段间接编码
微指令的地址形成方式
(1)直接由微指令的下地址字段指出
在指令格式中设置一个下地址字段,由其直接指出后继微指令的地址,这种方式又成为断定方式
(2)根据机器指令的操作码形成
机器指令取至指令寄存器后,微指令的地址由操作码经微滴值形成部件形成
微指令的格式
(1)水平型微指令
(2)垂直型微指令
(3)混合型微指令
微程序控制单元的设计步骤
(1)写出对应机器指令的微操作命令和节拍安排
(2)确定微指令格式
(3)编写微指令码点
动态微程序设计和毫微程序设计
硬布线控制器和微程序控制器的对比
【错题】
解:组合逻辑控制器,也叫硬布线控制器,微操作的控制型号的形成来源主要有1.经过译码器翻译的操作码,2.标志,单元的反馈信息,3.时序系统的节拍,周期,因此,选B;
解:微程序控制器中,机器指令取出到指令寄存器之后,微指令的地址由操作码经过微地址形成部件形成。
解:硬部件控制器的速度之所以快,是因为它的速度仅仅取决于电路的延迟,微程序控制器,而微程序控制器需要先从控制存储器里取出微指令,消耗了时间,选D
解:硬布线控制器的时序系统设计时很复杂,特别是设计节拍周期啥的,而微程序控制器就只需要分取址、间指按顺序执行就行了,比较简单
解:微程序由多条微指令组成,而微指令可以分为多条微命令,其中微命令和微操作一 一对应,微命令是由控制部件发出的,微操作是微命令的执行过程,因此选D
解:采用了字段直接编码的方式,3+2+4+3+3,就是log2n向上取整,选C
解:有32条指令,各指令对应的 微指令平均为4条,因此平均有128条微指令,加上公共的取址微指令130,得知位数至少为8位。选C
解:控制存储器是通过地址译码后的地址来访问的,选B
解:一看就是D错,总是在每一个时钟脉冲信号来的时候执行一条新的指令,这是我们之后讲的指令流水线的方式,选D
解:寄存器,寄存器间接寻址,在取数和执行的过程,肯定需要访问寄存器和存储器,执行操作时,需要用到ALU,指令译码器是对操作码字段进行译码,明显用不到。
这节的话就是关于指令执行的优化操作,这一部分一定要结合图像来分析,然后搞懂一些像加速比、吞吐率相关的概念就ok啦!
首先,一般的,我们把指令的执行分为三个阶段:取指、分析、执行;然后当我们执行多条指令的时候可以采取这两种方式:
1.顺序执行(串行执行)
2.流水线执行
如图所示,流水线方式其实就是把某个执行操作的时期进行二次重叠,需要注意,流水线方式可以提高指令执行的吞吐率,但不可以缩短一条指令的执行时间,(指令流水段个数以最复杂的指令的所用的功能段为标准,比如说一个指令各个阶段花费的时间分别为50ns、100ns、150ns,我们需要选取150ns最长的作为流水线的标准),
流水线的表示方式:
影响流水线的因素
1.资源冲突
多条指令同一时刻争用同一资源
2.数据冲突
3.控制冲突
流水线的性能指标
1.吞吐率
2.加速比
3.流水线的效率
超标量流水线
1.超标量流水线技术
2.超流水线技术
3.超长指令字
【错题】
解:首先,我们需要搞清楚什么是吞吐能力,什么是吞吐率,吞吐能力是,就是在给定的时间内,可以的吞入能力与吐出能力是多少,m段和m个并行部件吞吐能力都是一样的,但是论吞吐率,明显前者高于后者。
解:这题建议直接套公式(3+12-1)dt=14dt,选B
解:这题其实画图好理解一些,首先,取2ns作为每个机器周期的间隔标准,第一条指令5s完成,剩余的99条每过2ns执行一条,总时间为5+99*2=203ns,选D
解:选B因为超长指令字需要将多条可以并行操作的指令组合成一条具有多个操作码字段的超长指令字,对存储器的容量肯定有要求哇
解:单周期CPU,机器周期为1,CPI=1,多周期肯定大于一,因为里面包含多个执行阶段,基本流水线可以让每个时钟周期流出一条指令,CPI也是1,因此选B