当前位置:网站首页>05-中央处理器
05-中央处理器
2022-07-17 00:23:00 【柒姑娘哦】
CPU的功能与结构
CPU的功能
1.指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
2.操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
3.时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
4.数据加工。对数据进行算术和逻辑运算。
5.中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
运算器和控制器的功能
运算器:对数据进行加工
控制器:协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令
- 取指令:自动形成指令地址;自动发出取指令的命令。
- 分析指令:操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
- 执行指令:根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
- 中断处理:管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。
运算器基本结构
1.算术逻辑单元:主要功能是进行算术/逻辑运算。
2.通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。位数与机器字长相等,便于操作控制。
专用数据通路方求:根据指令执行过程中的数据和地址的流动方向安排连接线路。
如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据
解决方法1.使用多路选择器根据控制信号选择一路输出
解决方法2.使用三态门可以控制每一路是否输出
性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。
结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。
3.暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。如:两个操作数分别来自主存和R。,最后结果存回R。,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R。的内容。
4.累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
5.程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。包括两个部分,一是状态标志,二十控制标志。
6.移位器:对运算结果进行移位运算。
控制器的基本结构
1.程序计数器PC:用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能。程序计数器的位数与存储器地址的位数相等,而存储器地址取决于存储器的容量。
2.指令寄存器IR:用于保存当前正在执行的那条指令。不需要用户干预,对用户透明。位数取决于指令字长。
3.指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
4.微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
5.时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
6.存储器地址寄存器MDR:用于存放所要访问的主存单元的地址。
7.存储器数据寄存器MAR:用于存放向主存写入的信息或从主存中读出的信息。
控制器由程序计数器PC,指令寄存器IR,存储器地址寄存器MAR,存储器数据寄存器MDR,指令译码器,时序电路和微操作发生器组成。
指令执行过程
指令周期
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
各种周期的分别
- 时钟周期是计算机操作的最小时间单位,由计算机的主频决定,是主频的倒数。工作脉冲是控制器的最小时间单元,起i定时触发作用,一个时钟周期有一个工作脉冲。
- 指令周期可以由多个CPU周期组成。
- CPU周期即机器周期,包含若干个时钟周期。
- 存取周期是指存储器进行两次独立的存储器操作(连续两次读或写操作)之间所需的最小间隔时间。
指令周期流程
四个工作周期都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。
指令周期的数据流-取指周期
指令周期的第一个机器周期是取指周期,即从主存中取出指令字。
1.当前指令地址送至存储器地址寄存器,记做:(PC)→MAR
2.CU发出控制信号,经控制总线传到主存,这里是读信号,记做:1→R
3.将MAR所指主存中的内容经数据总线送入MDR,记做:M(MAR)→ MDR
4.CU发出控制信号,形成下一条指令地址,记做:(PC)+1 →PC
取指结束后,PC自动加1,执行周期中,如果PC需要修改为跳转到的地址,则需要再+1
指令周期的数据流-间指周期
1.将指令的地址码送入MAR,记做: Ad(IR) →MAR或Ad(MDR)→MAR
2.CU发出控制信号,启动主存做读操作,记做:1→R
3.将MAR所指主存中的内容经数据总线送入MDR,记做:M(MAR)→MDR
4.将有效地址送至指令的地址码字段,记做:(MDR)→ Ad(IR)
存储器间通过形式地址访存,寄存器间址通过寄存器内容访存。
存储器本身无法区分存储单元中存放的是指令还是数据。而在控制器的控制下,计算机在不同的阶段对存储器进行读/写操作时,取出的代码拥有不同的用处,而在取指阶段读出的二进制代码为指令,在执行阶段取出的代码可能是数据。
指令周期的数据流-执行周期
执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
指令周期的数据流-中断周期
中断:暂停当前任务去完成其他任务。为了能够恢复当前任务,需要保存断点。一般使用堆栈来保存断点,这里用SP表示栈顶地址,假设SP指向栈顶元素,进栈操作是先修改指针,后存入数据。
1.CU控制将SP减1,修改后的地址送入MAR记做:(SP)-1 →SP,(SP) → MAR
本质上是将断点存入某个存储单元,假设其地址为a,故可记做: a →MAR
2.CU发出控制信号,启动主存做写操作,记做:1→w
3.将断点(PC内容)送入MDR,记做:(PC)→ MDR
4.CU控制将中断服务程序的入口地址(由向量地址形成部件产生)送入PC,记做:向量地址→PC
指令执行方案
一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。
方案1.单指令周期
对所有指令都选用相同的执行时间来完成。指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。
需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。
数据通路
采用CPU内部总线方式的数据通路的特点:结构简单,实现容易,性能较低,存在较多的冲突现象。
不采用CPU内部总线方式的数据通路的特点是:结构复杂,硬件量大,不易实现,性能高,基本不存在数据冲突现象。
单总线结构
内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类l/O接口间互相连接的总线。
由于ALU是一个组合逻辑电路,因此其运算过程中必须保持两个输入端的内容不变,又由于CPU内部采用单总线结构,因此为了得到两个不同的操作数,ALU的一个输入端与总线相连,另一个输入端需要通过一个寄存器与总线相连。此外,ALU的输出端也不能直接与内部总线相连,否则其输出又通过总线反馈到输入端,影响运算结果,因此输出端需要通过一个暂存器(用来暂存结果的寄存器)与总线相连。
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→Bus→IR MDRout和IRin有效,现行指令→IR
3.执行算术或逻辑运算
比如一条加法指令,微操作序列及控制信号为:
Ad(IR)→Bus→MAR MDRout和MARin有效或AdlRout和MARin有效
1→R CU发读命令
MEM(MAR)→数据线→MDR MDRin有效
MDR→Bus→Y MDRout和Yin有效,操作数→Y
(ACC)+(Y)→z ACCout和ALUin有效,CU向ALU发送加命令
Z→ACC Zout和ACCin有效,结果→ACC
例题
设有如图所示的单总线结构,分析指令ADD (RO),R1的指令流程和控制信号。
1.分析指令功能和指令周期
功能:((R0))+(R1)→(R0)
取指周期、间址周期、执行周期
2.写出各阶段的指令流程
取指周期:公共操作
间址周期:完成取数操作,被加数在主存中,加数已经放在寄存器R1中。
执行周期:完成取数操作,被加数在主存中,加数已经放在寄存器R1中。
专用数据通路
取指周期
例题
下图是一个简化了的CPU与主存连接结构示意图(图中省略了所有的多路选择器)。具中有一个系加寄存器(ACC)、一个状态数据寄存器和其他4个寄存器:主存地址寄存器(MAR)、主存数据寄存器(MDR)、程序寄存器(PC)和指令寄存器(IR),各部件及其之间的连线表示数据通路,箭头表示信息传递方向。
要求:
(1) 请写出图中a、b、c、d 4个寄存器的名称。
d能自动“+1”,是PC
PC内容是地址,送MAR,故c是MAR
b与微操作信号发生器相连,是IR
与主存相连的寄存器是MAR和MDR,c是MAR,则a是MDR
(2)简述图中取指令的数据通路。
(PC)→ MAR
M(MAR)→MDR
(MDR)→IR
(3)简述数据在运算器和主存之间进行存/取访问
存/取的数据放到ACC中、设数据地址已放入MAR
取:
M(MAR)→ MDR
(MDR)→ALU →ACC
存:
(ACC)→ MDR
(MDR)→ M(MAR)
(4)简述完成指令LDA X的数据通路(X为主存地址)LDA的功能为(X)→ACC
X→MAR
M(MAR)→MDR
(MDR)→ALU →ACC
(5)简述完成指令ADD Y的数据通路(Y为主存地址)ADD的功能为(ACC)+(Y)→ACC
Y → MAR
M(MAR)→ MDR
(MDR)→ ALU,(ACC) → ALU
ALU →ACC
(6)简述完成指令STA Z的数据通路(Z为主存地址)STA的功能为(ACC)→Z
Z→ MAR
(ACC) →MDR
(MDR)→M(MAR)
硬布线控制器的设计
设计步骤:
分析每个阶段的微操作序列
选择CPU的控制方式
安排微操作时序
电路设计
(1)列出操作时间表
(2)写出微操作命令的最简表达式
(3)画出逻辑图
硬布线控制器的特点:
- 指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统)
- 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。
- 由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。
硬布线控制器
根据指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍下应该发出哪些“微命令”
Tips:逻辑表达式是电路的数学化描述
硬布线控制器的设计
设计步骤:
1.分析每个阶段的微操作序列(取值、间址、执行、中断四个阶段):确定哪些指令在什么阶段、在什么条件下会使用到的微操作
2.选择CPU的控制方式:采用定长机器周期还是不定长机器周期?每个机器周期安排几个节拍?假设采用同步控制方式(定长机器周期),一个机器周期内安排3个节拍。
3.安排微操作时序:如何用3个节拍完成整个机器周期内的所有微操作?
4.电路设计:确定每个微操作命令的逻辑表达式,并用电路实现
分析每个阶段的微操作序列
安排微操作时序的原则
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在一个节拍内完成
原则三:占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序
M( MAR )→MDR从主存取数据,用时较长,因此必须一个时钟周期才能保证微操作的完成
MDR→IR是CPU内部寄存器的数据传送,速度很快,因此在一个时钟周期内可以紧接着完成OP(IR)→ID。也就是可以一次同时发出两个微命令。
安排微操作时序-间址周期
安排微操作时序-执行周期
电路设计
设计步骤:
1.列出操作时间表:列出在取指、间址、执行、中断周期,T0、T1、T2节拍内有
可能用到的所有微操作
2.写出微操作命令的最简表达式
3.画出逻辑图
组合逻辑设计
时间操作表
微操作信号综合
画出逻辑图
微程序控制器
微程序控制器的设计思路
程序:由指令序列组成
微程序:由微指令序列组成,每一种指令对应一个微程序
指令是对程序执行步骤的描述
微指令是对指令执行步骤的描述
微命令与微操作一一对应,微指令中可能包含多个微命令
微程序控制器的基本结构
微程序控制器的工作原理
取指周期微程序通常是公用的,故如果某指令系统中有n条机器指令,则CM中微程序的个数至少是n+1个
一些早期的CPU、物联网设备的CPU可以不提供间接寻址和中断功能,因此这类CPU可以不包含间址周期、中断周期的微程序段
Tips:物理上,取指周期、执行周期看起来像是两个微程序,但逻辑上应该把它们看作一个整体。因此,“一条指令对应一个微程序”的说法是正确的
微指令的设计
微指令的格式
相容性微命令:可以并行完成的微命令。
互斥性微命令:不允许并行完成的微命令。
水平型微指令
一条微指令能定义多个可并行的微命令。
优点:微程序短,执行速度快;
缺点:微指令长,编写微程序较麻烦。
垂直型微指令
一条微指令只能定义一个微命令,由微操作码字段规定具体功能
优点:微指令短、简单、规整,便于编写微程序;
缺点:微程序长,执行速度慢,工作效率低。
混合型微指令
在垂直型的基础上增加一些不太复杂的并行操作。
微指令较短,仍便于编写;微程序也不长,执行速度加快。
微指令的编码方式
微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。
直接编码(直接控制)方式
在微指令的操作控制字段中,每一位代表一个微操作命令
某位为“1”表示该控制信号有效
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
字段直接编码方式
将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
微命令字段分段的原则:
①互斥性微命令分在同一段内,相容性微命令分在不同段内。
②每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
③一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
优点:可以缩短微指令字长。缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。
例题
某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?
第1个互斥类有7个微命令,要留出1个状态表示不操作,所以需要表示8种不同的状态,故需要3个二进制位。
以此类推,后面4个互斥类各需要教示4、13、6、7种不同的状态,分别对应2、4、3、3个二进制位。
故操作控制字段的总位数为3+2+4+3+3 = 15位
Tips:若采用直接编码方式,则控制字段需要33位
字段间接编码方式
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。
优点:可进一步缩短微指令字长。缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
微指令的地址形成方式
1.微指令的下地址字段指出
微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
2.根据机器指令的操作码形成
当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
3.增量计数器法(CMAR )+1→CMAR
4.分支转移
转移方式:指明判别条件;转移地址:指明转移成功后的去向。
5.测试网络
6.由硬件产生微程序入口地址
第一条微指令地址―由专门硬件产生(用专门的硬件记录取指周期微程序首地址)中断周期―由硬件产生中断周期微程序首地址(用专门的硬件记录)
例题–断定方式
微程序控制单元的设计
微程序控制单元的设计
显然,微程序控制器的速度比硬布线控制器更慢
微程序设计分类
1.静态微程序设计和动态微程序设计
静态微程序无需改变,采用 ROM
动态通过改变微指令和微程序改变机器指令有利于仿真,采用EPROM
2.毫微程序设计
毫微程序设计的基本概念
微程序设计用微程序解释机器指令
毫微程序设计用毫微程序解释微程序
硬布线与微程序的比较
指令流水线的基本概念
理想情况:各阶段花费时间相同;每个阶段结束后能立即进入下一阶段。
指令流水的定义
一条指令的执行过程可以分成多个阶段(或过程)。根据计算机的不同,具体的分法也不同。
取指:根据PC内容访问主存储器,取出一条指令送到IR中。
分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。
执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。
特点:每个阶段用到的硬件不一样。
设取指、分析、执行3个阶段的时间都相等,用t表示,按以下几种执行方式分析n条指令的执行时间:
传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。
优点:控制简单,硬件代价小。
缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。
优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高。
缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了。
与顺序执行方式相比,指令的执行时间缩短近2/3。这是一种理想的指令执行方式,在正常情况下,处理机中同时有3条指令在执行。
注:也可以把每条指令的执行过程分成4个或5个阶段,分成5个阶段是比较常见的做法。
流水线的表示方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VkNlUwgC-1657716190898)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20220713175752033.png)]
主要用于分析指令执行过程以及影响流水线的因素
主要用于分析流水线的性能
流水线的性能指标
吞吐率
加速比
效率
五段式指令流水线
机器周期的设置
流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。
为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。即此处应将机器周期设置为100ns。
理想情况下,每个机器周期(功能段)只消耗一个时钟周期。
考试中常见的五类指令:·运算类指令、LOAD指令、STORE指令、条件转移指令、无条件转移指令
只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖lF段锁存器的内容
运算类指令的执行过程
运算类指令
IF:根据PC从指令Cache取指令至lF段的锁存器
ID:取出操作数至ID段锁存器
EX:运算,将结果存入EX段锁存器
M:空段
WB:将运算结果写回指定寄存器
LOAD指令的执行过程
LOAD指令
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm
EX:运算,得到有效地址
M:从数据cache中取数并放入锁存器
WB:将取出的数写回寄存器
通常,RISC处理器只有“取数LOAD”和“存数STORE”指令才能访问主存
STORE指令的执行过程
STORE指令
lF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm。将要存的数放到B
EX:运算,得到有效地址。并将锁存器B的内容放到锁存器Store。
M:写入数据Cache
WB:空段
条件转移指令的执行过程
转移类指令常采用相对寻址
条件转移指令
IF:根据PC从指令cache取指令至IF段的锁存器
ID:进行比较的两个数放入锁存器A、B;偏移量放入Imm
EX:运算,比较两个数
M:将目标PC值写回PC
WB:空段
很多教材把写回PC的功能段称为“WrPC段”,其耗时比M段更短,可安排在M段时间内完成
无条件转移指令的执行过程
无条件转移指令
lF:根据PC从指令Cache取指令至IF段的锁存器
ID:偏移量放入Imm
EX:将目标Pc值写回PC(左图没画全)
M:空段
WB:空段
“WrPC段”耗时比EX段更短,可安排在EX段时间内完成。WrPC段越早完成,就越能避免控制冲突。当然,也有的地方会在WB段时间内才修改PC的值
例题
指令流水线的影响因素和分类
流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。
影响流水线的因素
结构相关(资源冲突)
由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
解决办法:
1.后一相关指令暂停一周期
2.资源重复配置:数据存储器+指令存储器
数据相关(数据冲突)
数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
解决办法:
1.把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入“NOP”两种方法。
2.数据旁路技术:转发机制
3.编译优化:通过编译器调整指令顺序来解决数据相关。
控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。
解决办法:
1.转移指令分支预测。简单预测(永远猜ture或false) 、动态预测(根据历史情况动态调整)
2.预取转移成功和不成功两个控制流方向上的目标指令
3.加快和提前形成条件码
4.提高转移方向的猜准率
流水线的分类
1.部件功能级、处理机级和处理机间级流水线
根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。
部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。
处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5个子过程。
处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。
2.单功能流水线和多功能流水线
按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。
单功能流水线指只能实现一种固定的专门功能的流水线;
多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。
3.动态流水线和静态流水线
按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。
静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。
4.线性流水线和非线性流水线
按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。
线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算。
流水线的多发技术
超标量技术
每个时钟周期内可并发多条独立指令
要配置多个功能部件
不能调整指令的执行顺序
通过编译优化技术,把可并行执行的指令搭配起来
超流水技术
在一个时钟周期内再分段(3段)
在一个时钟周期内一个功能部件使用多次( 3次)
不能调整指令的执行顺序
靠编译程序解决优化问题
超长指令字
由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条
具有多个操作码字段的超长指令字(可达几百位)
采用多个处理部件
译码、执行、访存及写回5个子过程。
处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。
2.单功能流水线和多功能流水线
按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。
单功能流水线指只能实现一种固定的专门功能的流水线;
多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。
3.动态流水线和静态流水线
按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。
静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。
4.线性流水线和非线性流水线
按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。
线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算。
流水线的多发技术
超标量技术
[外链图片转存中…(img-NmrT2nhs-1657716190909)]
每个时钟周期内可并发多条独立指令
要配置多个功能部件
不能调整指令的执行顺序
通过编译优化技术,把可并行执行的指令搭配起来
超流水技术
[外链图片转存中…(img-0lgjUJOL-1657716190909)]
在一个时钟周期内再分段(3段)
在一个时钟周期内一个功能部件使用多次( 3次)
不能调整指令的执行顺序
靠编译程序解决优化问题
超长指令字
[外链图片转存中…(img-xOjJL88w-1657716190909)]
由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条
具有多个操作码字段的超长指令字(可达几百位)
采用多个处理部件
边栏推荐
猜你喜欢
使用gatekeeper限制kubernetes创建特定类型的资源
MySQL数据库中的事务和存储引擎
OSPF comprehensive experiment
Shell script integer value comparison, logic test, if statement, extract performance monitoring indicators
【回归预测】基于粒子滤波实现锂离子电池寿命预测附matlab代码
HCIA's first static routing experiment
了解网络命名空间
Multi layer packet structure and TCP triple handshake
OpenVINO中的FCOS人脸检测模型代码演示
ELK日志分析系统
随机推荐
ResNet学习笔记
HCIA_ OSPF experiment
1. Introduction, analysis and implementation of asynctool framework
yolov5 ncnn 推理
[NoSQL] redis master-slave, sentinel, cluster
Rip comprehensive experiment
【单片机仿真】(二)keil 安装教程
Squid agent service deployment
Net-Snmp开发 一
【单片机仿真】(六)寻址方式 — 变址寻址与相对寻址
Redis' simple dynamic string SDS
rsync—远程同步
当你在Linux系统中编译安装MySQL数据库卡住了怎么办?
Oracle获取最后一条,第一条数据(按时间获取第一条和最后一条数据)
HCIA static comprehensive experiment
审视自己投资的路
【单片机仿真】(八)指令系统 — 数据传送指令
MySQL数据库中的事务和存储引擎
二进制安装kubernetes 1.24.1
Understand JVM garbage collection in one article