408---CO三轮复习---中央处理器
重难点总结
1、CPU的结构,各种功能部件 ⭐⭐⭐⭐⭐
2、指令执行过程、指令执行数据流 ⭐⭐⭐⭐⭐⭐⭐
3、控制器的功能和工作原理(硬步线、微程序控制器) ⭐⭐⭐
4、流水线 ⭐⭐⭐⭐
5、高级流水线技术 ⭐⭐
6、多处理器的基本概念 ⭐
CPU的结构与功能
1、CPU又叫中央处理器,由运算器与控制器组成
2、控制器的功能是负责协调并控制计算机各部件执行程序的指令序列 ,包括取指令、分析指令、执行指令
3、运算器功能是数据进行加工,即对数据进行算术和逻辑运算
运算器(ALU)的组成
- 算术逻辑单元 : 主要进行算术/逻辑运算
- 暂存寄存器
- 累加寄存器ACC : 这是一个通用寄存器,可用来暂存ALU运算的结果信息,可作为加法运算的一个输入端
- 通用寄存器组
- 程序状态字寄存器
- 移位器
- 计数器 : 控制乘除运算的操作步数
控制器(CU)的组成
控制器是整个系统的指挥中枢,在控制器的控制下,运算器、存储器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作。控制器的基本功能是执行指令,常见的CU有硬步线与微程序控制器
- 程序计数器 PC
- 指令寄存器
- 指令译码器
- 存储器地址寄存器 MAR
- 存储器数据寄存器 MDR
- 时序系统 : 用于参数各种时序信号
- 微操作信号发生器 : 其结构有组合逻辑型与存储逻辑型,估计就是硬布线与微程序控制器
指令执行过程
时钟周期、指令周期、机器周期
时钟周期是CPU的主频的倒数,时钟周期是计算机最小的时间单位
指令周期是CPU从主存中取出并执行一条指令的时间
机器周期是CPU操作的基本单位,如取指令、执行指令、取有效地址(间址),可以是定长的,也可以是不定长的
指令周期
指令周期包括: 取指周期、间址周期、执行周期、中断周期
寻址周期、执行周期(加法指令)的数据执行流
以下执行过程均来自于真题
数据通路都是这个:
寻址周期
参考2009年408真题
指令:
数据执行流:
执行周期
同样参考2009年408真题
ps: 我们可以发现,算术逻辑单元在执行运算的时候,只要暂存寄存器填充完毕数据后,无论另一个数据在哪个寄存器里,总是能在一个时钟周期内完成计算;2015年机组大题最后一问也是这样
控制器的功能和工作原理
硬步线控制器
在组合逻辑控制器中也存在微命令与微操作这两个概念,它们并非只是微程序控制器的专有概念。
由称组合逻辑控制器
CPU的控制方式
-
同步控制方式
所谓同步控制方式,是指系统有一个统一的时钟,所有的控制信号均来自这个统一的时钟信号。
通常以最长的微操作序列和最烦琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍为机器周期来运行不同的指令。
缺点是运行速度慢
-
异步控制方式
异步控制方式不存在基准时标信号,各部件按自身固有的速度工作,通过应答方式进行联络。
异步控制方式的优点是运行速度快,缺点是控制电路比较复杂。 -
联合控制方式
同步控制方式与异步控制方式的折中
微操作节拍安排
①有些微操作的次序是不容改变的,故安排微操作节拍时必须注意微操作的先后顺序。
②凡是被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个节拍内,以节省时间。
③如果有些微操作所占的时间不长,应该将它们安排在一个节拍内完成,并且允许这些微操作有先后次序。
实际上就是把几个不太相关的微操作放在同一节拍执行
各种"微"的关系 ⭐
-
每条机器指令编写成一个微程序
-
每个微程序包含若干微指令
-
每条微指令对应一个或几个微操作命令
-
机器指令---->微程序---->微指令----->微操作命令
微程序控制器
基本概念
微程序控制器采用存储逻辑实现,也就是把微操作信号代码化
1、每条机器指令对应一个微程序,每个微程序包含若干微指令,每个微指令对应一个或多个微操作命令,然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的方法来寻找每个微程序中的微指令。
2、控制存储器 CM
控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。
我见408真题把控制存储器简写成 CS(control storage),而不是CM(control memory)
3、微地址形成部件
用于产生初始微地址和后继微地址
4、区别以下寄存器
①地址寄存器(MAR)。用于存放主存的读/写地址。
②微地址寄存器(CMAR)。用于存放控制存储器的读/写微指令的地址。
③指令寄存器(IR)。用于存放从主存中读出的指令。
④微指令寄存器(CMDR或μR)。用于存放从控制存储器中读出的微指令。
微程序控制器执行过程---王道书上的
...太浅现,也就图一乐
微程序控制器执行过程---唐朔飞
取指阶段: 取指微程序首地址(这个地址是公共地址,应该是固定的)=>CMAR,根据CMAR在CM中取出微指令到CMDR中。产生微操作命令;根据微指令的顺序控制字段得到下一个微指令地址;产生微操作命令...直到取值结束,此时指令已经被放入了IR寄存器中
执行阶段: 当取数指令存人IR后,其操作码OP(IR)直接送到微地址形成部件,该部件的输出即为取数指令微程序的首地址P,且将P送至CMAR,记作OP(IR)→微地址形成部件→CMAR。将P中地址中的微指令从CM中读到CMDR,然后产生微命令,根据微指令的下地址字段得到下一个微指令的地址,产生微命令...
ps: 顺序控制字段也叫下地址字段
微指令编码方式
1、直接编码
直接编码法无须进行译码,微指令的微命令字段中每位都代表一个微命令。
这种编码的优点是简单、直观,执行速度快,操作并行性好;缺点是微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控制存储器容量极大
2、字段直接编码方式
首先介绍相容性与互斥性: 相容性微命令是指那些可以同时产生、共同完成某些微操作的微命令,而互斥性微命令是指在机器中不允许同时出现的微命令。
相容和互斥都是相对的,一个微命令可以和一些微命令相容,和另一些微命令互斥。
将微指令的微命令字段分成若干小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关,这就是字段直接编码方式
采用字段直接编码方法可用较少的二进制信息表示较多的微操作命令信号。例如,3位二进制代码译码后可表示7个互斥的微命令,留出一种状态表示不发微命令,与直接编码用7位表示7个微命令相比,减少了4位,缩短了微指令的长度。但由于增加了译码电路,使微程序的执行速度稍微减慢。
至于操作控制字段应分几段,与需要并行发出的微命令个数有关,若需要并行发出8个微命令,就可分8段。每段的长度可以不等,与具体要求互斥的微命令个数有关,若某类操作要求互斥的微命令仅有6个,则字段只需安排3位即可。
3、字段间接编码方式 (不常考)
微指令的地址形成方式
-
直接由微指令的下地址字段指出,大部分微指令的下地址字段直接指出了后续微指令的地址。这种方式又称为断定方式。
-
根据机器指令的操作码形成
机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。(这种常见于执行指令阶段首条微指令地址的形成)
-
增量计数器法
很多情况下,后续微指令的地址是连续的,对于顺序地址,,微指令可采用增量计数法即 (CMAR) +l--+CMAR 来形成后续微指令的地址(这种方式与下地址方式还是有所不同,它需要顺序执行的微指令必须放在连续的控制存储器单元中)
-
分支转移
当遇到条件转移指令时,微指令出现了分支
-
通过测试网络形成
-
由硬件产生微程序入口地址
-
当电源加电后,第一条微指令的地址可由专门的硬件电路产生,也可由外部直接向 CMAR输入微指令的地址,这个地址即为取指周期微程序的入口地址。
微指令的格式
微指令格式与微指令的编码方式有关,通常分水平型微指令和垂直型微指令两种。
1、水平型微指令
一次能定义并执行多个并行操作的微命令。
虽然指令只有一个,但能执行多个微命令
水平型微指令的优点是微程序短,执行速度快;缺点是微指令长,编写微程序较麻烦。
图中这个指令格式就类似于字段直接编码
2、垂直型微指令
这个注意,一次只能执行一种基本操作
垂直型微指令格式的优点是微指令短、简单、规整,便于编写微程序;缺点是微程序长,执行速度慢,工作效率低。
图中的条指令就类似与我们学习的一般的CPU执行的指令
3、水平型与垂直型对比
硬布线与微程序控制器的对比
需要注意的是CISC指令集,即复杂指令集是采用的微程序控制器,RISC采用的才是硬步线控制器
流水线
可从两方面提高处理机的并行性:
①时间上的并行技术,将一个任务分解为几个不同的子阶段,每个阶段在不同的功能部件上并行执行,以便在同一时刻能够同时执行多个任务,进而提升系统性能,这种方法被称为流水线技术。
②空间上的并行技术,在一个处理机内设置多个执行相同任务的功能部件,并让这些功能部件并行工作,这样的处理机被称为超标量处理机。
指令流水的定义
理想情况下,每个时钟周期都有一条指令进入流水线,每个时钟周期都有一条指令完成,每条指令的时钟周期数(即CPI)都为1。
采用Load/Store指令,其他指令都不能访问存储器,这样可把Load/Store指令的地址计算运算指令的执行步骤规整在同一个周期中,有利于减少操作步骤。
流水线的执行过程
略~
流水线的冒险与处理 ⭐
1、结构冒险/结构相关/资源相关
原因:
结构相关是当指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突时产生的,故又有资源相关之称。
通常,大多数机器都是将指令和数据保存在同一存储器中,且只有一个访问口,如果在某个时钟周期内,流水线既要完成某条指令对操作数的存储器访问操作,又要完成另一条指令的取指操作,这就会发生访存冲突
解决方法:
- 前一指令访存时,使后一条相关指令(以及其后续指令)暂停一个时钟周期。⭐ (这里感觉之前从来没考过从来没遇到过这种情况)
- 单独设置数据存储器和指令存储器,使取数和取指令操作各自在不同的存储器中进行。指令cache与数据cache分离!
2、数据冒险
产生原因:
在一个程序中,下一条指令会用到当前指令计算出的结果,此时这两条指令发生数据冲突。当多条指令重叠处理时就会发生冲突,数据冒险可分为三类
- RAW(Read after Write),写后读,下一条指令试图在当前指令写入寄存器前就读出该寄存器内容,这样,指令 就会错误地读出该寄存器旧的内容。
- WAR(Write After Read),读后写,读后写相关:下一条指令在当前指令读出寄存器之前就写入该寄存器,这样,当前指令就错误地读出该寄存器新的内容
- WAW(Write After Write), 写后写,下一条指令试图在当前指令写入寄存器之前就写入该寄存器,这样,两次写的先后次序被颠倒,就会错误地使由当前指令写入的值成为该寄存器的内容。
上述三种数据相关在按序流动的流水线中,只可能出现 RAW 相关。在非按序流动的流水线中,由于允许后进入流水线的指令超过先进入流水线的指令而先流出流水线,则既可能发生RAW 相关,还可能发生 WAR WAW 相关。
ps: 这三个家伙的名字挺奇怪的,RAW,不知道的以为是写后读会出错呢,实际上是写之后再读是不会出错的
解决方法:
- 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行,可分为硬件阻塞(stall)和软件插入“NOP”指令两种方法。
- 数据旁路技术,其主要思想是不必待某条指令的执行结果送回到寄存器后,再从寄存器中取出该结果,作为下一条指令的源操作数,而是直接将执行结果送到其他指令所需要的地方
- 通过编译器对数据相关的指令编译优化的方法,调整指令顺序来解决数据相关。
3、控制冒险
产生原因:
指令通常是顺序执行的,但是在遇到改变指令执行顺序的情况,例如执行转移、调用或返回等指令时,会改变P℃值,会造成断流,从而引起控制冒险。
- 对转移指令进行分支预测,尽早生成转移目标地址。分支预测分为简单(静态)预测和动态预测。静态预测总是预测条件不满足,即继续执行分支指令的后续指令。动态预测根据程序执行的历史情况,进行动态预测调整,有较高的预测准确率。
- 预取转移成功和不成功两个控制流方向上的目标指令。
- 加快和提前形成条件码(条件码就算状态寄存器)。
- 提高转移方向的猜准率。
流水线的性能指标
1、流水线吞吐量
流水线的吞吐率是指在单位时间内流水线所完成的任务数量,或输出结果的数量。
n是任务数,\(T_k\)是处理完n个任务所用的总时间。
设k为流水段的段数,△t为时钟周期。在输入流水线中的任务连续的理想情况下,一条k段流水线能在k+n-1个时钟周期内完成n个任务。得出流水线的吞吐率为
2、流水线的加速比
完成同样一批任务,不使用流水线与使用流水线所用的时间之比。
式中,\(T_0\)表示不使用流水线的总时间:\(T_k\),表示使用流水线的总时间。
连续输入的任务数n→∞时,得最大加速比为Smax=k
高级流水线技术
有两种增加指令级并行的策略:一种是多发射技术,它通过采用多个内部功能部件,使流水线功能段能同时处理多条指令,处理机一次可以发射多条指令进入流水线执行。另一种是超流水线技术,它通过增加流水线级数来使更多的指令同时在流水线中重叠执行。
超标量流水线技术 (多发射技术)
超标量流水线技术也称动态多发射技术,每个时钟周期内可并发多条独立指令,以并行操作方式将两条或多条指令编译并执行,为此需配置多个功能部件。
超标量技术不能调整指令的执行顺序,因此通过编译优化技术,把可并行执行的指令搭配起来,挖掘更多的指令并行性
超长指令字技术
超长指令字技术也称静态多发射技术,由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位),为此需要采用多个处理部件。
超流水线技术 (超流水线技术)
流水线功能段划分得越多,时钟周期就越短,指令吞吐率也就越高,因此超流水线技术是通过提高流水线主频的方式来提升流水线性能的。
但是,流水线级数越多,用于流水寄存器的开销就截大,因而流水线级数是有限制的,并不是越多越好。
超流水线CPU在流水线充满后,每个时钟周期还是执行一条指令,CPI=1,但其主频更高
多发射流水线(超标量流水线技术)CPU每个时钟周期可以处理多条指令,CPI<1,相对而言,多发射流水线成本更高,控制更复杂。
小总结:
1、超标量流水线技术(多发射流水线)在每个时钟周期内可同时并发多条独立指令,CPI<1
2、超流水线技术好比将流水线再分段,使超流水线的处理器周期比普通流水线的处理器周期短,这样,在原来的时钟周期内,功能部件被使用多次,使流水线倍速于原来时钟频率的速度运行,其CPI=1,但主频大大增加
3、超长指令字技术和超标量技术都是采用多条指令在多个处理部件中并行处理的体系结构,在一个时钟周期内能流出多条指令,其较超标量具有更高的并行处理能力,但对优化编译器的要求更高,对 Cache的容量要求更大。
多处理器
这部分的知识点更是依托
SISD、SIMD、MIMD
基于指令流的数量和数据流的数量,将计算机体系结构分为SISD、SIMD、MISD和MIMD四类。
常规的单处理器属于SISD,而常规的多处理器属于MIMD
1、SISD 单指令流单数据流
一个处理器,一个存储器
顺序串行执行、多位交叉方式
2、SIMD 单指令流多数据流
数据级并行
一个指令控制部件,多个处理单元
for循环效率⾼,但switch或case时效率低
向量处理器就是SIMD的一种
3、MISD 多指令流单数据流
4、MIMD 多指令流多数据流
同时执⾏多条指令,处理多个不同的数据
分为多计算机系统和多处理器系统
多计算机系统:
每个计算机节点都具有各⾃的私有存储器,并且具有独⽴的主存地址空间
不能通过存取指令来访问不同节点的私有存储器
⽽要通过消息传递进⾏数据传送,也称为消息传递MIMD
多处理器系统:
共享存储多处理器(SMP)系统的简称
它具有共享的单⼀地址空间,通过访存指令来访问系统中的所有存储器,也称共享存储MIMD
硬件多线程
在传统CPU中,线程的切换包含一系列开销,频繁地切换会极大彪响系统的性能,为了减少线程切换过程中的开销,便诞生了硬件多线程。
在支持硬件多线程的CPU中,必须为每个线程提供单独的通用寄存器组、单独的程序计数器等,线程的切换只需激活选中的寄存器,从而省略了与存储器数据交换的环节,大大减少了线程切换的开销。
硬件多线程有3种实现方式:细粒度多线程、粗粒度多线程和同时多线程(SMT)。
超线程就是同时多线程SMT,即在一个单处理器或单个核中设置了两套线程状态部件,共享高速缓存和功能部件。
多核处理器
1、多核处理器是将多个处理器单元集成到一个CPU上
2、每个核都可以有自己的Cache,也可以共享同一个cache,所有核一般共享主存储器
共享内存多处理器
1、具有共享的单一物理地址空间的多处理器被称为共享内存多处理器(SMP)
2、所有处理器都能通过存取指令访问任何存储器的位置
3、单一地址空间的多处理器有两种类型
(1) 统⼀存储访问(UMA)多处理器
每个处理器对所有存储单元的访问时间都是⼤致相同的,即访问时间与哪个处理器提出访存请求及访问哪个字无关
根据处理器与共享存储器之间的连接方式,分为基于总线、基于交叉开关网络和基于多级交换网络连接等几种处理器。
(2) ⾮统⼀存储访问(NUMA)多处理器
主存被分割并分配给了同一机器上的不同处理器或内存控制器,某些处理器访存请求要比其他的快,具体取决于哪个处理器提出了访问请求以及访问哪个字
与UMA架构不同的是,在NUMA架构下,内存的访问出现了本地和远程的区别,访问本地内存明显要快于访问远程内存。
处理器中不带⾼速缓存时,被称为NC-NUMA
处理器中带有⼀致性⾼速缓存时,被称为CC-NUMA(某些访问请求要⽐其他的快)
SMP: shared-memory mp : 共享内存多处理器
UMA: Unified storage access multiprocessor : 统一存储访问多处理器
NUMA: Non-Unified storage access multiprocessor : ⾮统一存储访问多处理器
小总结
1、SISD、SIMD、SIMD、MIMD
- 向量处理器属于SIMD
- MIMD分为多计算机系统和多处理器系统
- 多计算机系统每个计算机结点都具有各自的私有存储器,并具有独立主存空间,不能通过访存指令访问不同结点的存储空间
- 多处理器系统是SMP(共享存储多处理器)的简称,其具有共享的单一地址空间
2、硬件多线程
- 细粒度多线程、粗粒度多线程、同时多线程
- 超线程就是同时多线程SMT,即一个处理器中设置两套线程状态部件,共享高速缓存部件
3、多核处理器
- 多个处理单元集成到一个CPU中
- 每个核可以共享Cache,也可以有自己的Cache
4、共享内存多处理器SMP
- 具有共享的单一物理地址空间的多处理器
- 所有处理器都能通过存取指令访问任何存储器的位置,且可在自己的虚拟空间中单独运行程序
- SMP分为两种---UMA、NUMA
- SMP---UMA---统一存储访问多处理器
- 每个处理器对所有存储单元的访问时间都是⼤致相同的,即访问时间与哪个处理器提出访存请求及访问哪个字无关
- 根据处理器与共享存储器之间的连接方式,分为基于总线、基于交叉开关网络和基于多级交换网络连接等几种处理器。
- SMP---NUMA---非统一存储访问多处理器
- 主存被分割并分配给了同一机器上的不同处理器或内存控制器,某些处理器访存请求要比其他的快,具体取决于哪个处理器提出了访问请求以及访问哪个字
- 与UMA架构不同的是,在NUMA架构下,内存的访问出现了本地和远程的区别,访问本地内存明显要快于访问远程内存。
- 处理器中不带⾼速缓存时,被称为NC-NUMA
处理器中带有⼀致性⾼速缓存时,被称为CC-NUMA(某些访问请求要⽐其他的快)
这地方的知识点乱的像依托
错题汇总
错题5.1
06
06.B
数据总线的位数与处理器的位数相同,它表示CPU一次能处理的数据的位数,即CPU的位数。
21 ⭐
间址周期的作用是取操作数的有效地址,因此间址周期结束后,MDR中的内容为操作数地址。
怎么理解呢,每次间接寻址之后获得有效地址,执行阶段下指令还是得需要一次寻址,更加有效地址找到操作数
我们来看看唐朔飞计算机组成原理的讲解:
通过上面的讲解我们发现,执行周期也是可以用来寻址的,而且而且一般的间址指令是先通过间址周期寻址一次,再通过执行周期寻址一次
错题5.2
10.
在指令的执行周期完成后,处理器会判断是否出现中断请求,只有在出现中断请求时才会进入中断周期。
14.
不同长度的指令,其取指操作可能是不同的。例如,双字指令、三字指令与单字指令的取指操作是不同的。
错题5.3
05.
单总线数据通路将所有寄存器的输入输出端都连接在一条公共通路上,一个时钟内只允许一次操作,无法完成指令的所有操作
错题5.4
03.
答案是C
可能会疑惑C不是执行阶段的入口地址的形成方式嘛,下面我系统的阐述一下微程序中首条微指令地址和后继微指令地址的获取方式
首条微指令地址的形成:
- 执行阶段的首条微指令地址的形成又叫做微程序入口地址(非取指微程序)的形成 ,它是不包括取指这个公共微指令的
- 由机器指令的操作码字段即OP字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址并送入微地址寄存器(CMAR)。可以说微程序(非取指微程序)的入口地址是机器指令操作码的某种映射。
后继微指令地址的形成(常见的):
-
计数器方式. 类似于使用程序计数器(PC)来产生后继地址。微地址的产生线路主要是“微地址计数器(MPC或μPC)”,后继微地址由当前微地址加上一个增量来产生。
使用这种方法,微指令中可以不设置“下地址场”,但要求顺序执行的微指令必须放在连续的控制存储器单元
-
下地址方式
由微指令的下地址字段直接指出后继微指令的地址
17.
操作控制器是什么:
操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。 操作控制器的功能就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制
简言之: 操作控制器是CPU控制器的5个组成部分之一,用来产生各种操作控制信号
错题5.6
16.
答案是不选I的,超标量只是并行执行多条指令,并没缩短功能段的处理时间
这么说吧,对于EX功能段,本来1s能执行完1个指令的EX,采用超标量之后,1s可以执行多个指令的EX
实际上一条指令上EX需要执行的时间没有变
17.
指令数据流数据通路不包含生成控制信号的控制部件
20.
什么是多周期CPU?
单周期CPU: 一个周期内完成指令的取指、间址、运算
多周期CPU: 一个指令被分为了若干阶段
ps : 流水线的选择题普遍好难啊
错题5.7
都再看一遍吧,这玩意知识点好散
其他问题
1、CPU中通用寄存器的位数取决于机器字长
2、数据通路---内部单/多总线、专用数据通路方式 与 系统总线的区别
数据通路:数据在功能部件之间传送的路径,包括数据通路上流经的部件
它描述了信息从什么地⽅开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器
实现CPU内部的运算器与寄存器及寄存器之间的数据交换
(1) 内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线
分为内部单总线(将所有寄存器的输入端/输出端都连接到一条公共通路)与内部多总线方式(将所有寄存器的输入端与输出端都连接到多条公共通路上)
ps: 我们做的机组大题一般都是内部单总线
(2) 专用数据通路方式是根据指令执行过程数据和地址的流向,在部件之间设置线路
(3) 系统总线不是数据通路,它是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间互相连接的总线。
3、中断隐指令---CPU保存PC ⭐
4、微程序控制器中微指令地址的形成 ⭐
首条微指令地址的形成:
- 执行阶段的首条微指令地址的形成又叫做微程序入口地址(非取指微程序)的形成 ,它是不包括取指这个公共微指令的
- 由机器指令的操作码字段即OP字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址并送入微地址寄存器(CMAR)。可以说微程序(非取指微程序)的入口地址是机器指令操作码的某种映射。
后继微指令地址的形成(常见的):
-
计数器方式. 类似于使用程序计数器(PC)来产生后继地址。微地址的产生线路主要是“微地址计数器(MPC或μPC)”,后继微地址由当前微地址加上一个增量来产生。
使用这种方法,微指令中可以不设置“下地址场”,但要求顺序执行的微指令必须放在连续的控制存储器单元
-
下地址方式
由微指令的下地址字段直接指出后继微指令的地址
5、微命令与微操作
控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令叫做微命令,而执行部件接受微命令后所执行的操作就叫做微操作
6、机器指令、微程序、微指令、微操作之间的关系 ⭐
-
每条机器指令编写成一个微程序
-
每个微程序包含若干微指令
-
每条微指令对应一个或几个微操作命令
-
机器指令---->微程序---->微指令----->微操作命令
注意,机器指令就是CPU执行的完整的指令,不要与机器周期、指令周期弄混
7、流水线结构冒险---一点注意事项 ⭐
对流水线结构冒险的解决方法上有这样一天:
前一指令访存时,使后一条相关指令(以及其后续指令)暂停一个时钟周期。⭐ (这里感觉之前从来没考过从来没遇到过这种情况)
才发现,之前做题从来没有考察过结构冒险,也从啦没出现过这总情况,包括王道的这种图也没出现这种情况
记下来,以防万一