计算机组成原理-中央处理器(CPU基本结构及功能、指令执行、数据通路、硬布线控制器、微程序控制器、指令流水线)


笔记📗

计算机组成原理-计算机硬件的基本组成
计算机组成原理-计算机的功能部件及层次结构
计算机组成原理-计算机性能指标
计算机组成原理-数制与编码(进制转换)
计算机组成原理-定点数的表示和运算
计算机组成原理-浮点数的表示与运算
计算机组成原理-算术逻辑单元ALU
计算机组成原理-存储系统
计算机组成原理-高速缓冲存储器
计算机组成原理-指令系统 (指令、操作码、地址码、指令寻址、数据寻址)

资源💾

计算机组成原理PPT:链接: https://pan.baidu.com/s/1EqL9NmQ-0glDNIFPBfUmVg 密码: sfwg
配套书籍:链接: https://pan.baidu.com/s/1cZx27Gfooj2uAhSP9sbrRA 密码: j5ms


CPU的功能和基本结构

CPU的功能

「中央处理器」(CPU)由「运算器」和「控制器」组成。

「控制器」主要是负责协调并且控制计算机各部件执行程序的指令序列,包括「取指」、「分析」和「执行」指令;

「运算器」的功能是对数据进行加工。CPU的功能具体包括:

  1. 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制。一条指令的功能往往由若干操作信号的组合来实现,从而控制这些部件单招指令的要求进行动作。
  3. 时间控制。对各种操作加以时间上的控制。
  4. 数据加工。对数据进行算术逻辑运算。
  5. 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。

运算器

「运算器」接收从「控制器」送来的命令并执行相应的动作,对数据进行加工和处理。「运算器」是计算机对数据进行加工处理的中心,主要由算术逻辑单元(ALU)、暂存寄存器、累加寄存器(ACC)、通用寄存器组、程序状态字寄存器(PSW)、移位器、计数器(CT)等组成。

算术逻辑单元

主要功能是进行算术/逻辑运算

暂存寄存器

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

累加寄存器

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

通用寄存器组

如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息。SP是堆栈指针,用于表示栈顶的地址。

程序状态字寄存器

保留由算术逻辑运算指令或测试指令的结果而建立的各种状态细信息,如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的位参与并决定微操作的形成。

移位器

对操作数或者运算结果进行移位操作。

计数器

控制乘除运算的操作步数。

控制器

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

「控制器」分为硬布线控制器微程序控制器两种。

「控制器」由程序计数器(PC)、指令寄存器(IR)、指令译码器、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、时序系统和微操作信号发生器等组成。

MAR和MDR在逻辑上是属于存储器的。

程序计数器

用于指出下一条指令在主存中的存放地址。CPU根据PC的内容去主存中寻找指令。因为程序中的指令通常是顺序执行的,所以PC有自增功能。

指令寄存器

用于保存当前正在执行的指令。

存储器地址寄存器

用于存放即将访问的主存单元的地址。

存储器数据存储器

用于存放向主存中写入的内容或者从主存中读出的内容。

时序系统

用于产生各种时序信号,由统一的时钟(CLOCK)分频得到。

微操作信号发生器

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

CPU内部的寄存器可以分为两类:

一类是用户可见的寄存器,可以对这类寄存器编程,如通用寄存器组、程序状态字寄存器;

另外一类是用户不可见的寄存器,对用户是透明的,不可以对这类寄存器编程、如存储器地址寄

存器、存储器数据寄存器、指令寄存器等。

CPU的基本结构


指令执行过程

三个时间周期

参考:时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器

时钟周期

「时钟周期」也称为振荡周期,定义为时钟脉冲的倒数(也可以理解为是单片机外接晶振的倒数,例如12M的晶振,其时钟周期为 1 12 μ s \frac{1}{12} \mu s 121μs,周期受硬件影响),是一个时钟脉冲所需要的时间。在计算机组成原理中又叫做「T周期」或者「节拍脉冲」。是计算机中的最基本的、最小的时间单位

机器周期

在计算机命令操作过程中,通常将一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作,例如,取指令、存储器读、存储器写等基本操作,这每一项的工作称之为一个「基本操作」。完成一个「基本操作」所需要的时间称为「机器周期」。

指令周期

「指令周期」是执行一条指令所需要的时间,一般由若干个「机器周期」组成,指令不同,所需的「机器周期」数也不同。对于一条简单的单字节指令,在取指令周期中,将指令取出到指令寄存器中,立即通过指令译码器译码,不需要其他的「机器周期」。但是对于一些其他的复杂指令,例如转移指令、乘法指令则需要两个或者两个以上的「机器周期」。

三者之间的关系就是:「时钟周期」是最小的时间单位,多个「时钟周期」组成一个「机器周期」,多个「机器周期」可以完成一条完整指令,组成一条「指令周期」。

定长机器周期

「机器周期」所占用的节拍脉冲数是相同的,需要以最长的基本操作作为基准

不定长机器周期

一条完整指令中的不同「机器周期」阶段是不同的。

指令周期流程

指令周期的数据流

取指周期

  1. 当前指令地址送至存储器地址寄存器,记做: ( P C )   − >   M A R (PC) \ -> \ MAR (PC) > MAR
  2. CU发出控制信号,经过控制总线传到主存,这里是读信号,记做: 1   − >   R 1 \ -> \ R 1 > R
  3. 将MAR所指的主存中的内容经数据总线送入MDR,记做: M ( M A R )   − >   M D R M(MAR) \ -> \ MDR M(MAR) > MDR
  4. 将MDR中的内容(该从主存中取出的指令)送入IR,记做: ( M D R ) − > I R (MDR) -> IR (MDR)>IR
  5. CU发出控制信号,形成下一条指令地址,记做: ( P C ) + 1   − >   P C (PC) + 1 \ -> \ PC (PC)+1 > PC

间址周期

  1. 将指令的地址码送入到MAR中,记做: A d ( I R )   − >   M A R Ad(IR) \ -> \ MAR Ad(IR) > MAR A d ( M D R )   − >   M A R Ad(MDR) \ -> \ MAR Ad(MDR) > MAR,从MDR或者IR取都可,当前周期内数据都是同一条指令。
  2. CU发出控制信号,启动主存执行读操作,记做: 1   − >   R 1 \ -> \ R 1 > R
  3. 将MAR中所指的主存中的数据经过数据总线送入到MDR,记做: M ( M A R )   − >   M D R M(MAR) \ -> \ MDR M(MAR) > MDR
  4. 将有效地址送至指令的地址码字段,记做: M D R   − >   A d ( I R ) MDR \ -> \ Ad(IR) MDR > Ad(IR)

执行周期

执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果,不同指令的执行周期操作不同。

中断周期

中断:暂停当前任务去执行其他任务。为了可以恢复当前任务,所以需要保存断点。一般使用堆栈来保存断点,这里用SP表示栈顶地址。

  1. CU控制SP减1,修改后的地址送入到MAR中,记做: ( P C ) − 1   − >   S P (PC) - 1 \ -> \ SP (PC)1 > SP ( S P )   − >   M A R (SP) \ -> \ MAR (SP) > MAR。本质上就是将断点存入到主存中的某个存储单元,假设其地址为a,则记做: a   − >   M A R a \ -> \ MAR a > MAR
  2. CU发出控制信号,启动主存做写操作,记做: 1   − >   W 1 \ -> \ W 1 > W
  3. 将断点(PC内容)送入到MDR,记做: ( P C )   − >   M D R (PC) \ -> \ MDR (PC) > MDR
  4. CU控制将中断程序的入口地址(由向量地址形成部件产生)送入到PC,记做: 向 量 地 址   − >   P C 向量地址 \ -> \ PC  > PC

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

数据通路的功能

「数据通路」:数据在功能部件之间传送的路径。

「数据通路部件」:「数据通路」路径上的部件,例如ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等。

「数据通路」描述了信息从哪里来,途中要经过哪些寄存器或多路开关,最后送往哪个寄存器。

数据通路的基本结构

「内部总线」:是指同一个部件,例如CPU内部各寄存器及运算部件之间的总线

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

CPU内部单总线

将所有寄存器的输入端和输出端都连接到一条公共通路上,这种结构简单,数据传输过程中存在较多的冲突现象,性能较低。

寄存器之间数据传送

比如将PC的内容送至MAR,实现传送操作的流程及控制信号为:

( P C )   − >   B u s (PC) \ -> \ Bus (PC) > Bus P C o u t PC_{out} PCout有效,PC内容送总线

B u s   − >   M A R Bus \ -> \ MAR Bus > MAR M A R i n MAR_{in} MARin有效,总线内容送MAR

主存及CPU之间的数据传送

比如CPU从主存读取指令,实现传送操作的流程及控制信号为:

( P C )   − >   B u s   − >   M A R (PC) \ -> \ Bus \ -> \ MAR (PC) > Bus > MAR P C o u t PC_{out} PCout M A R i n MAR_{in} MARin有效,当前需要需要执行的指令地址通过Bus传递给MAR

1   − >   R 1 \ -> \ R 1 > R CU发出命令,通过控制总线

M E M ( M A R )   − >   M D R MEM(MAR) \ -> \ MDR MEM(MAR) > MDR M D R i n MDR_{in} MDRin有效

M D R   − >   B u s   − >   I R MDR \ -> \ Bus \ -> \ IR MDR > Bus > IR M D R o u t MDR_{out} MDRout I R i n IR_{in} IRin有效,当前的指令从存储器数据寄存器中取出,经过Bus传递给IR

执行算术或逻辑运算

比如一条加法指令,微操作序列及控制信号为:

A d ( I R )   − >   B u s   − >   M A R Ad(IR) \ -> \ Bus \ -> \ MAR Ad(IR) > Bus > MAR M D R o u t MDR_{out} MDRout M A R i n MAR_{in} MARin有效

1   − >   R 1 \ -> \ R 1 > R CU通过控制总线发出读命令

M E M ( M A R )   − > 数 据 总 线   − >   M D R MEM(MAR) \ -> 数据总线 \ -> \ MDR MEM(MAR) >线 > MDR M D R i n MDR_{in} MDRin有效

M D R   − >   B u s   − > Y MDR \ -> \ Bus \ -> Y MDR > Bus >Y M D R o u t MDR_{out} MDRout Y i n Y_{in} Yin有效,操作数通过内部总线传递给Y

( A C C ) + ( Y )   − >   Z (ACC) + (Y) \ -> \ Z (ACC)+(Y) > Z A C C o u t ACC_{out} ACCout A L U i n ALU_{in} ALUin有效,CU向ALU发送加命令

Z   − >   A C C Z \ -> \ ACC Z > ACC Z o u t Z_{out} Zout A C C i n ACC_{in} ACCin有效,结果存储至ACC中

注意:内部单总线方式需要配合而暂存寄存器使用

两个操作数分别来自于主存和 R 0 R_0 R0,最后的结果会存回 R 0 R_0 R0,则从主存取出的操作数就会直接放在暂存寄存器中,就不会破坏运算前 R 0 R_0 R0中的内容。

CPU内部多总线

将所有寄存器的输入端和输出端都连接到多条公共通路上,相比之下内部单总线一个时钟内只允许传输一个数据,指令执行效率很低,因此采用多总线的方式,可以同时在多个总线上传送不同的数据,提高效率。

专用数据通路方式

根据指令执行过程中的数据和地址的流动防线安排线路,避免使用共享的总线,性能较高,但是硬件量大。

使用多路选择器根据控制信号选择一路输出

参考:MUX 数据选择器

MUX,数选择器,是一种可以从多个输入信号中选择一个信号进行输出的器件。

使用三态门控制每一路是否输出

参考:三态门的理解

三种状态:高电平、低电平、高阻态

低电平是低于某个电压值才被称作是低电平,而高阻态输出电阻无穷大,相当于断路,是为了避免总线上的信号干扰。

例如: R 0 o u t R_{0_{out}} R0out为1时, R 0 R_0 R0中的数据输出到A端,当 R 0 o u t R_{0_{out}} R0out为0时, R 0 R_0 R0中的数据无法输出到B端.


控制器的功能和工作原理

  1. 运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据;
  2. 输入设备和输出设备通过接口电路与总线相连接;
  3. 内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线和其他部件传送数据;
  4. 控制器部件从数据总线接收指令信息,从运算器部件中接收指令转移地址,将指令地址送到地址总线,向系统中的部件提供它们所需要的控制信号。

控制器的功能

控制器是计算机系统的指挥中心,控制器的主要功能有:

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

硬布线控制器

「硬布线控制器」的基本原理是根据指令的要求、当前的时序及外部和内部的状态,按时间的顺序发送一系列微操作控制信号。由于复杂的组合逻辑门电路和一些触发器构成,因此称之为组合逻辑控制器

输入

  1. 指令寄存器 O P ( I R )   − >   C U OP(IR) \ -> \ CU OP(IR) > CU

    控制信号的产生与操作码有关

  2. 时钟

    一个时钟脉冲发一个操作命令或者一组需要同时执行的操作命令

  3. 标志

    如条件转移指令,根据相应的标志位决定下一步操作

  4. 外来信号

    中断请求信号INTR

    总线请求信号HRQ

输出

  1. CPU内部的控制信号

    寄存器之间的数据传输,PC的修改,控制ALU进行相应的运算

  2. 到控制总线的控制信号

    到存储器:访存控制信号 M R E Q ‾ \overline{MREQ} MREQ、读命令 R D ‾ \overline{RD} RD 、写命令 W R ‾ \overline{WR} WR

    到I/O设备:访问I/O设备的控制信号 I O ‾ \overline{IO} IO

    中断响应信号INTA、总线响应信号HLDA

CPU的控制方式

产生不同微操作命令序列所用的时序控制方式。

同步控制方式

整个系统所有的控制信号均来自一个统一的时钟信号,通常是以最长的微操作序列和最繁琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令

同步控制方式的优点是控制电路简单,缺点是运行速度慢。

异步控制方式

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

异步控制方式的有点事运行速度快,缺点是控制电路比较复杂

联合控制方式

对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的方法。

安排微操作序列的原则

  1. 微操作的先后顺序不得随意修改
  2. 被控对象不同的微操作尽量安排在一个节拍内完成
  3. 占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序

组合逻辑设计

微程序控制器

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

「微命令与微操作」:一条「机器指令」可以分解成一个「微操作」序列,这些「微操作」是计算机中最基本的不可再分解的操作。「微命令」是控制部件执行部件发出的各种控制命令,而「微操作」和「微命令」一一对应。「微命令」是「微操作」的控制信号,「微操作」是「微命令」的执行过程。

PS: 微命令有相容性互斥性之分。「相容性微命令」是指那些可以同时产生共同完成某一些「微操作」的「微命令」。「互斥微命令」是指在机器中不允许同时出现的「微命令」。

「微指令与微周期」:「微指令」是若干「微命令」的集合。存放「微指令」的控制存储器的单元地址称作是「微地址」。「微指令」的基本格式:

  1. 「微操作码」:用于产生某一步操作所需的各种操作控制信号
  2. 「微地址码」:用于控制产生下一条要执行的微指令地址

「微周期」通常是从控制存储器读取一条微指令并执行相应的微操作所需的时间。

「程序与微程序」:程序是指令的有序集合,用于完成特定的功能。「微程序」是「微指令」的有序集合,一条指令的功能由一段「微程序」来实现。

基本组成

控制存储器

控制存储器(CM)是微程序控制器的核心部件,用于存放各指令对应的微程序,控制存储器可用只读存储器ROM构成。

微指令寄存器

用于存放从CM中取出的微指令地址,位数同微指令字长相等。

微地址形成部件

用于产生初始微地址和后继微地址,以保证微指令的连续执行。

微地址寄存器

接收从位地址形成部件送来的微地址,为在CM中读取微指令做准备。

微指令格式

微指令格式和微指令的编码方式有关,通常分为水平型垂直型指令两种。

水平型指令

优点:微程序短,执行速度快

缺点:微指令长,编写微程序较麻烦

垂直型指令

类似机器指令操作码的方式,由微操作码字段指定微指令的功能。

优点:微指令短、简单、规整,便于编写微程序

缺点:微程序长,执行速度慢,工作效率低

混合型微指令

在垂直的基础上增加一些不太复杂的并行操作。

微指令较短,以便于编写,微程序也不长,执行速度加快

微指令编码方式

直接编码(直接控制)方式

在微指令的操作控制字段中,每一位代表一个微操作命令

某位为“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 3+2+4+3+3=15 3+2+4+3+3=15

硬布线和微程序控制器的特点

硬布线控制器的特点

优点:由于控制器的速度取决于电路延迟,所以速度快

缺点:由于将控制部件视为专门产生固定时序控制信号的逻辑电路,所以把用最少原件和取得最高速度作为设计目标,一旦设计完成,就不可能通过其他额外修改添加新功能

微程序控制器的特点

优点:同组合逻辑控制器相比,微程序控制器具有规整性、灵活性、可维护性等一系列优点;

缺点:由于微程序控制器采用了存储程序原理,所以每条指令都从控制存储器中取一次,影响速度。

对比


指令流水线

基本概念

计算机的流水线把一个重复的过程分解成若干个子过程每个子过程与其他的子过程并行执行。由于采用流水线技术只需要增加少量的硬件就可以将计算机的运算速度提高几倍,因此成为计算机中普遍使用的一种并行处理技术。

指令流水的定义

一条指令的执行可以分为多个阶段。例如将一条指令分成三个阶段:

「取指」:根据PC内容访问主存储器,取出一条指令送到IR中。

「分析」:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。

「执行」:根据操作码字段,完成指令规定的功能,即将运算结果写到寄存器或主存中。

当多条指令在处理器中执行时,可以采用以下三种方式:

顺序执行

指令按照顺序执行,前 一条指令执行完后,才启动下一条指令。如果取指、分析、执行三个阶段都相等的话,均为t,则顺序执行n条指令所用的时间T为: T = 3 n t T=3nt T=3nt

一次重叠执行方式

第k条指令的执行阶段和第k+1条指令的取值阶段同时进行,则执行n条指令所需的时间为: T = ( 1 + 2 n ) t T=(1+2n)t T=(1+2n)t


二次重叠执行方式

可以将第k+1条指令的取指阶段提前到与第k条指令的分析期间完成,则执行n条指令所需的时间为: T = ( 2 + n ) t T=(2+n)t T=(2+n)t

image-20210101203104763

流水线的表示方法

指令执行过程图

时空图

性能指标

吞吐率

T P = n T k TP=\frac{n}{T_k} TP=Tkn

n是任务数, T k T_k Tk是处理完n个任务所用的时间

在输入流水线中的任务连续的理想情况下,一条k段线性流水线能够在k+n-1个时钟周期内完成n个任务。k为流水线的段数, Δ t \Delta t Δt为时钟周期,则流水线的实际吞吐率为: T P = n ( k + n − 1 ) Δ t TP=\frac{n}{(k+n-1)\Delta t} TP=(k+n1)Δtn

连续输入的任务数 n   − >   ∞ n \ -> \ \infty n > 时,最大吞吐率为 T P m a x = 1 Δ t TP_{max}=\frac{1}{\Delta t} TPmax=Δt1

加速比

完成同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比,称之为流水线的加速比。

T 0 T_0 T0表示不使用流水线时的执行时间,即顺序执行所用的时间; T k T_k Tk表示使用流水线时的执行时间

则流水线加速比(S)的基本公式为 S = T 0 T k S=\frac{T_0}{T_k} S=TkT0,若独立完成一个任务的耗时为 k Δ t k\Delta t kΔt,则顺序完成n个任务的耗时 T 0 = n k Δ t T_0=nk\Delta t T0=nkΔt

T k = ( k + n − 1 ) Δ t T_k=(k+n-1)\Delta t Tk=(k+n1)Δt,实际加速比为 S = k n Δ t ( k + n − 1 ) Δ t = k n k + n − 1 S=\frac{kn\Delta t}{(k+n-1)\Delta t}=\frac{kn}{k+n-1} S=(k+n1)ΔtknΔt=k+n1kn

连续输入的任务数 n   − >   ∞ n \ -> \ \infty n > 时,最大加速比为 S m a x = k S_{max}=k Smax=k

效率

流水线上的设备利用率称之为流水线的效率。

在时空图上,流水线的效率定义为定义n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比

影响因素

结构相关(资源冲突)

由于多条指令在同一时刻争用同于资源而形成的冲突称为结构相关

解决办法:

  1. 后一相关指令暂停一周期
  2. 资源重复配置:数据存储器+指令存储器

数据相关(数据冲突)

数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。

解决办法:

  1. 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入“NOP”两种方法。
  2. 数据旁路技术。
  3. 编译优化:通过编译器调整指令顺序来解决数据相关

控制相关(控制冲突)

超标量流水线

超标量流水线技术

每个时钟周期内可并发多条独立的指令,即以并行操作的方式将两条或者多条指令编译并且执行,为此配置多个功能部件。

超流水技术

在一个时钟周期内再分段,在一个时钟周期内一个功能部件使用多次。不能调整指令的执行顺序,靠编译程序解决优化问题。

超长指令字

由编译程序挖掘出指令间潜在的并行性,将多条可以并行操作的指令组合成一条,具体多个操作码字段的超长指令字。需要采用多个处理部件。

image-20210101214650637

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YuanbaoQiang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值