导航

中央处理器CPU总结

CPU的功能与结构

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

运算器和控制器的功能:
运算器:对数据进行加工
控制器:协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令
取指令:自动形成指令地址;自动发出取指令的命令。
分析指令:操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
执行指令:根据分析指令得到的“操作命令”和“操作数地址”形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
中断处理:管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。

运算器的组成:
1.算术逻辑单元:主要功能是进行算术/逻辑运算。
2.通用寄存器组:用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。sp是堆栈指针,用于指示栈顶的地址
3.暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
4.累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算
5.程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。psw中的这些位参与并决定微操作的形成。
6.移位器:对运算结果进行移位运算。
7.计数器:控制乘除运算的操作步数。

控制器的组成:
1.程序计数器:用于指出下一条指令在主存中的存放地址。CPU就是根据pc的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以pc有自增功能。
2.指令寄存器:用于保存当前正在执行的那条指令。
3.指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
4.微操作信号发生器:根拍R的内容(指令)、psw的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
5.时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
6.存储器地址寄存器:用于存放所要访问的主存单元的地址。
7.存储器数据寄存器:用于存放向主存写入的信息或从主存中读出的信息。

管理多条通路:多路选择器MUX,三态门
用户可见的寄存器:通用寄存器组、程序状态字寄存器PSW、程序计数器PC
用户不可见的寄存器:MAR,MDR,IR,暂存寄存器

指令周期

指令周期:CPU从主存中取出并执行一条指令所需全部时间
机器周期:也叫CPU周期,多个机器周期组成一个指令周期
时钟周期:也叫节拍/T周期/CPU时钟周期;多个时钟周期组成一个机器周期,是CPU操作的最基本单位
每个指令周期内的机器周期数和时钟周期数可以不相等

不同指令的周期长度不同:
空指令周期NOP:只有取指周期
加法指令ADD:取指周期+执行周期
乘法指令MUL:取指周期+执行周期(比加法长)
具有间接寻址的指令:取指周期+间址周期+执行周期
带有中断周期的指令:取指周期+间址周期+执行周期+中断周期

指令周期流程:
取指周期→(间址周期)→执行周期→(中断周期)
四个工作周期都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。

各指令周期的数据流向:
取指周期:
1.PC将地址送到MAR
2.CU通过控制总线发送“读信号”到主存
3.MAR通过地址总线将地址送到主存
4.主存按地址找到指令并通过数据总线送到MDR
5.MDR将指令送到IR
6.CU向PC发送控制信号生成下一条指令的地址(PC+1)

间址周期:
1.IR将指令中的形式地址送到MAR
2.CU通过控制总线发送“读信号”到主存
3.MAR通过地址总线将形式地址送到主存
4.主存按形式地址找到有效地址并通过数据总线送到MDR
5.此时有效地址在MDR;有两种思路1.将有效地址送到IR中,开始寻址;2.直接从MDR中取有效地址

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

中断周期:
中断:暂停当前任务去完成其他任务,为恢复当前任务,要用堆栈SP保存断点地址(进栈操作:先修改指针,选定一个空区域,再存入数据)
1.CU将断点的地址放入MAR中
2.CU通过控制总线发送“写操作”到主存
3.MAR通过地址总线定位到主存中的地址
4.将断点(PC的内容)送到MDR
5.MDR通过数据总线将断点送到主存中
6.CU将向量地址(中断服务程序的入口地址)放到PC中
7.切入到新的程序

指令执行方案:
一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。
方案1.单指令周期
对所有指令都选用相同的执行时间来完成。指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。对于那些本来可以在史短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。

数据通路

数据通路: 数据在功能部件之间传送的路径
数据通路的建立:控制部件产生控制信号建立
内部总线:在同一部件内连接各部件的总线,如CPU中的寄存器 运算器
系统总线:计算机系统内各部件互相连接的总线;如CPU,内存,I/O设备
数据通路的种类:CPU内部的单总线和多总线,以及专用数据通路
单总线方式:CPU中各部件连接到一条总线上,通过连接线的OUT/IN的有效状态,发送/接收数据

1.寄存器之间数据传送
比如把pc内容送至MAR,实现传送操作的流程及控制信号为:
(PC)→Bus PCout有效,PC内容送总线
Bus→MAR MARin有效,总线内容送MAR

2.主存与CPU之间的数据传送
比如CPU从主存读取指令,实现传送操作的流程及控制信号为:
(PC)→Bus→MAR PCout和MARin有效,现行指令地址→MAR
1→R CU发读命令(通过控制总线发出,图中未画出)
MEM(MAR)→MDR MDRin有效
MDR→BUSIR MDRout和IRin有效,现行指令→R

3.执行算术或逻辑运算
比如一条加法指令,微操作序列及控制信号为:
Ad(lR)→Bus→MAR MDRout和MARin有效 (把IR中指令的地址字段通过总线送到MAR)
1→R CU发读命令 (CU告知主存“读命令”)
MEM(MAR)→数据线→MDR MDRin有效 (主存用MAR的地址找到操作数通过总线送到MDR)
MDR→Bus→Y MDRout和Yin有效,操作数→Y (MDR将操作数通过总线送到寄存器Y)
(ACC)+(Y)→Z ACCout和ALUin有效,CU向ALU发送加命令 (ACC的操作数与Y的操作数输入到ALU中运算,结果输出到Z)
Z→ACC Zout和ACCin有效,结果→ACC (Z将运算结果存入ACC)

专用数据通路:CPU中需要传输的各部件间各连一条线,通过连接线的有效状态,发送/接收数据

控制器

控制器的功能:
1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。

控制单元的输入与输出:
输入:
(1)指令寄存器:OP(IR)一>CU控制信号的产生与操作码有关
(2)时钟:一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
(3)标志:如条件转移指令,根据相应的标志位决定下一步操作
(4)外来信号:如:中断请求信号INTR 总线请求信号HRQ
输出:
(1)CPU内部的控制信号
寄存器之间的数据传输、pc的修改、控制ALU进行相应的运算
(2)到控制总线的控制信号
到存储器:访存控制信号、读命令、写命令
到I/O设备:访问I/O设备的控制信号
中断响应信号INTA、总线响应信号HLDA

硬布线控制器


硬布线原理:微操作控制信号由组合逻辑电路根据当前指令码,状态和时序,即时产生
CPU的控制方式:产生不同微操作命令序列所用的时序控制方式。
1.同步控制方式
整个系统所有的控制信号均来自一个统一的时钟信号。优点是控制电路简单,缺点是运行速度慢。
2.异步控制方式
异步控制方式不存在基准时标信号。各部件按自身固有的速度工作,通过应答方式进行联络。优点是运行速度快,缺点是控制电路比较复杂。
3.联合控制方式
对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。

安排微操作时序的原则:
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在一个节拍内完成
原则三:占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序

中断隐指令:一条指令的中断周期由硬件完成的一系列操作(不是一条指令)

微程序控制器


微程序原理:将控制器所需的微命令以代码形式编成微指令,存入一个由ROM构成的控制存储器(CM)中。将各种机器指令的操作分解成若干微操作序列。每条微指令包含的微命令控制实现一步操作。若干条微指令组成一小段微程序,解释执行一条机器指令。
用与存储程序相类似的方法解决微操作命令序列的形成。将一条机器指令编写成一个微程序,每一个微序包含若条微指令,每一条微指令对应一个或几个微操作命令。然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的方法来寻找每个微程序中的微指令。由于这些微指令是以二进制代码形式表示的,每位代表一个控制信号(若该位为1,表示该控制信号有效;若该位为0,表示此控制信号无效),因此,逐条执行每一条微指令,也就相应地完成了一条机器指令的全部操作。
每一条机器指令都与一个以操作性质命名的微程序对应(例如:取指周期,间址周期,中断周期,取数,存数,加法,跳转等)

控制程序中的微程序个数是:取指,间接寻址,中断控制的三个微程序加上对应的机器指令数

细节概念:
微命令与微操作:微命令是微操作的控制信号,徵操作是微命令的执行过程。
微指令与微周期:微指令是若干微命令的集合,徵周期指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。
主存储器与控制存储器:主存储器用于存放程序和数据,在CPU外部,用RAM实现;控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。
程序与微程序:程序是指令的有序集合,用于完成特定的功能;微程序是微指令的有序集合,一条指令的功能由一段微程序来实现
微命令<微指令<微程序=一条机器指令
微命令:控制部件通过控制线向执行部件发出各种控制命令,是最小单位(相容性微命令和互斥性微命令)
微操作:执行部件接受微命令后所执行的操作
微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合( 微操作码+微地址码 00010000)
微程序:一条机器指令的功能是由许多条微指令组成的序列来实现的;例如:取指微指令(操作相同)

微程序控制器的组成:
1.微地址形成部件:接收操作码字段,产生初始微地址和后续微地址,保证微指令连续执行
2.顺序逻辑:判断是否按照微地址取微程序(转移)输入与微地址形成部件,微指令的下地址字段,时钟以及外来的标志有关
3.CMAR微地址寄存器:用来存放欲读出的微指令地址,二进制编码
4.地址译码器:将地址码转换为存储单元控制信号
5.控制存储器(CM):存放各指令对应的微程序
6.CMDR微数据寄存器:用来存放从控存读出的微指令

微指令的基本格式:操作控制字段+顺序控制字段
操作控制字段:发出各种控制信号
顺序控制字段:指出下条微指令的地址(简称下地址),以控制微指令序列的执行顺序。

指令格式分类:
1.水平型微指令:一次能定义并执行多个并行操作的微命令。优点:微程序短,执行速度快;缺点:微指令长,编写微程序麻烦
2.垂直型微指令:类似机器指令操作码的方式,由微操作码字段规定微指令的功能。优点:微指令短,简单规整便于编写微程序;缺点:微程序长,执行速度慢,工作效率低
3.混合型微指令:在垂直型的基础上增加一些不太复杂的并行操作。微指令较短,仍便于编写;微程序也不长,执行速度加快。

编码方式:
1.直接编码
每一位代表一个微操作命令。某位为“1"表示控制信号有效(如打开某个控制门),某位为“0"表示控制信号无效(如不打开某个控制门)
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
2.字段直接编码方式
这种方式就是将微指令的操作控制字段分成若干段,将一组互斥的微操作命令放在一个字段内,通过对这个字段译冯,便可对应每一个微命令
优点:可以缩短微指令字长。
缺点:要通过译码电路后再发出微命令,比直接编码方式慢。
3.字段间接编码方式:
一个字段的某些微命令需由另一个字段中的某些微命令来解释,又称隐式编码。
优点:可进一步缩短微指令字长。
缺点:削弱了微指令的并行控制能力,作为字段直接编码方式的一种辅助手段

微命令字段分段的原则:
1.互斥性微命令分在同一段内,相容性微命令分在不同段内。
2.每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
3.一般每个小段还要留出一个状态表示木字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用0表示不操作。

微指令的地址形成方式:
1.微指令的下地址字段指出微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
2.根据机器指令的操作码形成当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。

指令流水线

指令流水线概念:一条指令的执行过程划分为不同阶段,占用不同硬件资源,多条指令重叠操作实现并行处理
1.顺序执行:又称串行执行方式;传统的冯诺依曼机器
优点:控制简单,硬件代价小
缺点:速度慢,各功能部件利用率低
2.一次重叠执行方式:优点:时间缩短三分之一,各功能部件利用效率提高缺点:控制复杂,硬件开销增大
3.二次重叠执行方式:优点:时间缩短三分之二,理想状态

指令执行过程图:用于分析指令执行过程和影响流水线因素
时空图:用于分析流水线的性能
吞吐率TP:单位时间内流水线完成的任务数量或输出结果的数量
加速比S:同一任务下,不使用流水线用时与使用流水线用时之比
效率E:流水线的设备利用率
锁存器(缓冲寄存器):作用是保存本流水段的执行结果,提供给下一流水段使用。

影响因素:
1.结构相关(资源冲突):多条指令同一时间争用同一资源
解决:1.后一相关指令暂停一周期;2.资源重复配置(数据存储器+指令存储器)
2.数据相关(数据冲突):在一个程序中,上一条指令执行完才能执行下一条指令(这两条指令即为数据相关)
解决:将数据相关的指令和后续指令暂停时钟周期到问题消失再执行;1.硬件阻塞stall和软件插入NOP;2.数据旁路技术;3.编译优化:通过编译器调整指令顺序
3.控制相关(控制冲突):转移指令和改变PC值的指令造成断流
解决:1.尽早判别转移是否发生,尽早生成转移目标地址2.预取转移成功和不成功两个控制流方向上的目标指令3.加快和提前形成条件码4.提高转移方向的猜准率

流水线的分类:
1.根据流水线使用级别:部件功能级、处理机级和处理机间级流水线
部件功能级流水:将复杂的算术逻辑运算组成流水线工作方式
处理机级流水:把一条指令解释过程分成多个子过程,如取指、译码、执行、访存及写回5个子过程。
处理机间流水:是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中
2,按流水线可以完成的功能分为:单功能流水线和多功能流水线
单功能流水线:指只能实现一种固定的专门功能的流水线;
多功能流水线:指通过各段间的不同连接方式可以同时或不同时地实现多种能的流水线。
3.按同一时间内各段之间的连接方式分为:动态流水线和静态流水线
静态流水线:指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线:指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。提高流水线效率,但会使流水线控制变得很复杂。
4.按流水线的各个功能段之间是否有反馈信号分为:线性流水线和非线性流水线
线性流水线中:从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
非线性流水线:存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线,适合进行线性递归的萨算。

多发技术:
1.超标量技术:在一个周期取出多条指令并行执行,是通过内置多条流水线来同时执行多个处理,其实质是以空间换取时间。
2.超流水技术:超流水线技术是通过细化流水,提高主频,将流水线设计的步(级)数越多,其完成一条指令的速度越快,其实质是用时间换取空间。
3.超指令字技术:由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位)

posted on 2022-03-21 06:38  理想主义者的长征路  阅读(536)  评论(0)    收藏  举报