目录
- 一、CPU的功能和基本结构
-
- (一)CPU的功能
- (二)CPU的基本结构
-
- (三)小节脑图
- 二、指令执行过程
-
- (一)指令周期
- (二)⭐指令周期流程⭐
- (三)指令周期的数据流
- (四)指令执行方案
- (五)小节回顾
- 三、数据通路的功能和基本结构
-
- (一)⭐单总线结构(高频考点)⭐
- (二)专用通路结构
- 四、控制器的功能和工作原理
-
- (一)硬布线控制器(难,但不是重点)
- (二)⭐微程序控制器(可能在大题中出现)⭐
-
- 微程序控制器的基本原理
- 微程序控制器的设计
-
- ⭐微指令的格式⭐
- ⭐微指令的编码方式⭐
- 微指令的地址形成方式
- 小节回顾
- 微程序控制单元的设计
-
- (三)章节回顾(红框重点)
- 五、指令流水线
-
- (一)基本概念
- (二)指令流水线的影响因素和分类
-
- 机器周期的设置
- ⭐影响流水线的因素⭐
- 流水线的分类(了解)
- ⭐流水线的多发技术⭐
- (三)⭐⭐五段式指令流水线⭐⭐
- 六、多处理器基本概念(新考点,只会考选择题)
-
- (一)SISD、SIMD、MIMD的基本概念
- (二)硬件多线程的基本概念
一、CPU的功能和基本结构
(一)CPU的功能
- ⭐指令控制⭐(控制器的主要功能)
完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制
一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号。把各种操作信号送往相应的不见,从而控制这些部件按指令的要求进行动作。
- 时间控制
对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工(运算器的主要功能)
对数据进行算数和逻辑运算
- ⭐中断处理⭐
对计算机运行过程中出现的异常情况和特殊请求进行处理。
⭐每执行完一条指令后,CPU都需要检查是否有中断需要处理。⭐
(二)CPU的基本结构

⭐⭐用户可见的寄存器(❗选择题高频考点❗):程序状态寄存器PSW、通用寄存器组(AX、BX、CX、DX、SP)、程序计数器PC、累加寄存器ACC⭐⭐
⭐⭐主要四大结构:ALU(算术逻辑单元)、寄存器、中断系统、CU(控制单元)⭐⭐

运算器的基本结构
算术逻辑单元
主要功能是进行算术/逻辑运算
通用寄存器
如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
暂存寄存器
用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
累加寄存器
他是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
程序状态字寄存器PSW
保留由逻辑运算指令或测试指令的结果而建立的各种状态信息,**如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)**等。PSW中的这些位参与并决定微操作的形成。
移位器
对运算结果进行移位运算
计数器
控制乘除运算的操作步数
数据连通方式
-
专用数据通路方式
根据指令执行过程中的数据和地址的流动方向安排连接线路。性能较高,基本不存在数据冲突现象,但结构复杂,硬件量打,不易实现。

如果像上图一样直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据。

⭐解决办法1⭐
使用多路选择路由器MUX,根据控制信号选择一路输出
⭐解决办法2⭐
使用三态门可以控制每一路是否输出。
-
CPU内部单总线方式
将所有寄存器的输入端和输出端都连接导一条公共的通路商。结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。

⭐暂存寄存器的功能⭐:两个操作数分别来自主存R0,最后结果存回R0,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容。
控制器的基本结构
主要功能是取指令、分析指令和执行指令
- 程序计数器
用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能。
- 指令寄存器
用于保存当前正在执行的那条指令
- 指令译码器
仅对操作码字段进行移码,向控制器提供特定的操作信号
- 微操作信号发生器
根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种
- 时序系统
用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
- 存储器地址寄存器MAR
用于存放所要访问的主存单元的地址
- 存储器数据寄存器MDR
用于存放向主存写入的信息或从主存中读出的信息

(三)小节脑图

二、指令执行过程
(一)指令周期
⭐⭐指CPU从主存中每取出并执行一条指令所需的全部时间。⭐⭐

指令周期常常用若干机器周期来表示,机器周期又称CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)
⭐指令周期>机器周期>时钟周期⭐

⭐每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。⭐
(二)⭐指令周期流程⭐

4个工作周期都有CPU访存操作,知识访存的目的不同。取值周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。
(三)指令周期的数据流
1、取指周期

- 当前指令地址送至存储器地址寄存器,记做:(PC) --> MAR
- CU发出控制信号,经控制总线传到主存,这里是读信号,记做:1 --> R
- 将MAR所指主存中的内容经数据总线送入MDR,记做:M(MAR) —>MDR,这里的M(MDR)中的M()指的是主存的意思。
- 将MDR中的内容(此时是指令)送入IR(指令寄存器),记做:(MDR) —> PC
- CU发出控制信号,形成下一条指令地址,记做:(PC)+1 —> PC
2、间址周期
部分指令需要间接寻址,就会进入该周期,并不是所有指令都有该周期。

- 将指令的地址码送入MAR,记做:Ad(IR) —> MAR 或 Ad(MDR) —> MAR
- CU发出控制信号,启动主存做读操作,记做:1 —> R
- 将MAR所指主存中的内容经数据总线送入MDR,记做:M(MAR) —> MDR
- (部分系统会如此做)将有效地址送至指令的地址码字段,记做:MDR —> Ad(IR)
3、执行周期
执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
4、中断周期
中断:暂停当前任务去完成其他任务。为了能够恢复当前任务,需要保存断点。一般使用堆栈来保存断点,这里用SP表示栈顶地址,假设SP指向栈顶元素,进栈操作是先修改指针,后存入数据。

- CU控制将SP减1,修改后的地址送入MAR记做**:(SP)-1 —> SP,(SP) —> MAR**,本质上是将断点存入某个存储单元,假设其地址位a,故可记做:a—> MAR
- CU发出控制信号,启动主存做写操作,记做:1 —> W;其实这一步我个人理解做的是“读操作”,只是找到了栈顶所指向的地址,而并未对存储器进行写操作,就是上图的4、5、6、7这几步。
- 将断点(PC内容)送入MDR,记做:(PC) —> MDR,这一步才是对应上面的8、9、10的步骤,开始写操作。
- CU控制将中断服务程序的入口地址(由向量地址形成部件产生)送入PC,记做:向量地址 —> PC
(四)指令执行方案
一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个一次执行的步骤完成这条指令的全部功能。
1、单指令周期
对所有指令都选用相同的执行时间来完成。
指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要使用这个较长的 周期来完成,会降低整个系统的运行速度。
2、多指令周期
对不同类型的指令选择用不同的执行时间来完成。
指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。需要更复杂的硬件设计。
3、流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。
(五)小节回顾

三、数据通路的功能和基本结构
(一)⭐单总线结构(高频考点)⭐
数据结构的基本结构
- CPU内部单总线方式
- CPU内部多总线方式
- 专用数据通路方式
内部总线
- 是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线。
系统总线
- 是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间相互连接的总线。

⭐⭐CU与每个部件之间都有一个控制线。⭐⭐
⭐⭐在同一时刻只允许两个部件进行数据交换。⭐⭐
1、寄存器之间数据传送
参照上图,比如把PC内容送至MAR,则CU控制单元给PC一个输出信号,PC的内容会输送到数据总线BUS上,CU控制单元给MAR一个输入信号,MAR从数据总线中读取数据。
实现传送操作的流程及控制信号为:
- (PC) —> Bus #PCout有效,PC内容送总线
- Bus —> MAR #MARin有效,总线内容送MAR
2、主存与CPU之间的数据传送
参照上图,读取PC所指向的地址上的值,存入MDR。PC内容送到MAR的步骤和上面寄存器之间的数据传送一样。然后由CU控制单元控制MAR和MDR对外进行数据传输的信号。CU给MAR一个输出信号,MAR通过地址找到主存中的值。然后CU控制单元给MDR一个输入信号,数据从主存输入到MDR中。
实现传送操作的流程及控制信号为:
- (PC)—>Bus—>MAR #PCout和MARin有效,现行指令地址—>MAR
- 1—>R #CU发读命令(通过控制总线发出,图中未画出)
- M(MAR)—>MDR #MDRin有效
3、执行算法或逻辑运算
比如一条加法指令,微操作序列及控制信号为:
- Ad(IR)—>Bus—>MAR #MDRout和MARin有效
- 1—>R #CU发读命令
- M(MAR)—>数据线—>MDR #MDRin有效
- MDR—>Bus—>Y #MDRout和Yin有效,操作数—>Y
- (ACC)+(Y)—>Z #ACCout和ALUin有效,CU向ALU发送加命令
- Z—>ACC #Zout和ACCin有效,结果—>ACC
小节回顾

(二)专用通路结构
部件之间有专门的数据通路。可以让多个部门同时并行工作,提高效率。价格昂贵。

取指周期
- (PC)—>MAR #C0有效
- (MAR)—>主存 #C1有效
- 1—>R #控制单元向主存发送读命令
- M(MAR)—>MDR #C2有效
- (MDR)—>IR #C3有效
- (PC)+1—>PC
- Op(IR)—>CU #C4有效,将指令寄存器中的指令交给CU进行译码
四、控制器的功能和工作原理
(一)硬布线控制器(难,但不是重点)
根据指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍下应该发出哪些“微命令”

安排微操作时序原则
- 微操作的先后顺序不得随意更改
- 被控对象不同的微操作尽量安排在一个节拍内完成
- 占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序。
硬布线控制器设计步骤
- 分析每个阶段的微操作序列
- 选择CPU的控制方式
- 安排微操作时序
- 电路设计
(1)列出操作时间表
(2)写出微操作命令的最简表达式
(3)画出逻辑图
硬布线控制器的特点
指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统)。如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。
(二)⭐微程序控制器(可能在大题中出现)⭐
微指令基本格式

微程序控制器的基本原理
1、微程序控制器的设计思路

- 微命令与微操作一一对应
- 微指令中可能包含多个微命令。
- 指令是对程序执行步骤的描述
- 微指令是对指令执行步骤的描述
- 微程序:由微指令序列组成,每一种指令对应一个微程序
2、微程序控制器的结构

控制存储器CM
- 用于存放各指令对应的微程序,控制储存器可用只读存储器ROM构成。
CMAR
- 可以看作是CPU中的MAR和PC的结合体。别名μPC,微地址寄存器,接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。
地址译码器
CMDR
- 别名μIR,用于存放从CM中取出的微指令,它的位数同微指令字长相等。
微地址形成部件
- 产生初始微地址和后继微地址,以保证微指令的连续执行。
顺序逻辑
3、微程序控制器的工作原理

⭐⭐考试重点部分⭐⭐
- ⭐⭐取值周期微程序通常是公用的,如果某指令系统中有n条机器指令,则CM中微程序的个数至少是n+1个⭐⭐
- 一些早期的CPU、物联网设备的CPU可以不提供间接寻址和中断功能,因此这类CPU可以不包含间址周期、中断周期的微程序段。
- 物理上,取指周期、执行周期看起来像是两个微程序,但逻辑上应该把他们看作一个整体。因此,“⭐一条指令对应一个微程序⭐”的说法是正确的。
4、小节回顾

微程序控制器的设计
微命令与微操作一一对应,一个微命令对应一根输出线
有的微命令可以并行执行,因此一条微指令可以包含多个微命令。
⭐微指令的格式⭐
相容性微命令:可以并行完成的微命令
互斥性微命令:不允许并行完成的微命令
- ⭐水平型微指令⭐
一条微指令能定义多个可并行的微指令


优点:微程序短,执行速度快,这里的短指微指令条数少。
缺点,微指令长,编写微程序较麻烦。
- ⭐垂直型微指令⭐
一条微指令只能定义一个微命令,由微操作码字段规定具体功能


优点:微指令短、简单、规整,便于编写微程序
缺点:微程序长,执行速度慢,工作效率低
- 混合型微指令
在垂直型的基础上增加一些不太复杂的并行操作。微指令较短,仍便于编写;微程序也不长,执行速度加快。
⭐微指令的编码方式⭐
1、⭐⭐直接编码(直接控制)方式⭐⭐
在微指令的操作控制字段中,每一位代表一个微操作命令,某位为“1”表示该控制信号有效。

优点:简单、直观,执行速度快,操作并行性好
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
2、⭐⭐字段直接编码方式⭐⭐
将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
微命令字段分段的原则:
- 互斥性微命令分在同一段内,相容性微命令分在不同段内。
- 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间
- 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此某字段的长度位3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。

优点:可以缩短微指令字长
缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。
3、字段间接编码方式
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。

优点:可进一步缩短微指令字长
缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
微指令的地址形成方式
- ⭐⭐微指令的下地址字段指出⭐⭐
微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
- 根据机器指令的操作码形成
当几次指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成
- ⭐⭐增量计数器法⭐⭐
(CMAR)+1——>CMAR
- 分支转移
转移方式——指明判别条件;转移地址:指明转移成功后的去向

- 通过测试网络
- 由硬件产生微程序入口地址
第一条为指令地址由专门硬件产生(用专门的硬件记录取值周期微程序首地址)
中断周期由硬件产生中断周期微程序首地址(用专门的硬件记录)
小节回顾

微程序控制单元的设计
1、设计步骤
取值周期最后一条微指令完成后,用一个特殊的微操作确定执行周期的微程序首地址。
- 分析每个阶段的微操作序
- 写出对应及其指令的微操作命令及节拍安排
(1)写出每个周期所需要的微操作(参照硬布线)
(2)补充微程序控制器特有的微操作:
a.取值周期
Ad(CMDR)——>CMAR
OP(IR)——>CMAR
b.执行周期
Ad(CMDR)——>CMAR
- 确定微指令格式
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。最后按操作控制字段位数和顺序控制字段位数就可以确定微指令字长。
- 编写微指令码点
根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。
2、微程序设计分类
- 静态微程序设计和动态微程序设计
静态微程序无需改变,采用ROM
动态通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM(可电擦除ROM)
- 毫微程序设计
微程序设计用微程序解释机器指令
毫微程序设计用毫微程序解释微程序
⭐⭐硬布线与微程序的比较⭐⭐(高频考点)

(三)章节回顾(红框重点)

五、指令流水线
(一)基本概念
一条指令的执行过程可以分成多个阶段 
取指:根据PC内容访问主存储器,取出一条指令送到IR中。
分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。
执行:根据操作码字段,完成指令规定的功能,即把运算结果写道通用寄存器或主存中。
1、指令执行方式
设取指、分析、执行3个阶段的时间都相等,用t表示,按一下几种执行方式分析n条指令的执行时间
- 顺序执行方式
总耗时T=n*3t=3nt

优点:控制简单、硬件代价小
缺点:执行指令的速度很慢,在任何时刻,处理集中只有一条指令在执行,各功能部件的利用率很低。
- 一次重叠执行方式
总耗时T=3t+(n+1)x t =(2+n)t

优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高
缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了。
- 二次重叠执行方式
总耗时T=3t + (n-1) x t = (2+n)t

2、流水线的表示方法
- 指令执行过程图
主要用于分析指令执行过程以及影响流水线的因素

- 时空图
主要用于分析流水线的性能

3、流水线的性能指标
- 吞吐率
吞吐量时指单位时间内流水线所完成的任务数量,或是输出结果的数量

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

- 效率
流水线的设备利用率称为流水线的效率

4、小节回顾

(二)指令流水线的影响因素和分类
机器周期的设置
在MIPS架构下,一条指令的执行一般会经过以下五个阶段

为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。即此处应将机器周期设置为100ns。
流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。如上图,译码阶段ID会在180ns后就将指令传递到执行阶段EX,但是为了流水线阶段的设计,阶段周期应当为100ns,于是每个阶段之间都会有一个寄存器,存储指令,等周期时间到了再发送给下一阶段。
⭐影响流水线的因素⭐
1、结构相关(资源冲突)
由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关

解决办法
- 后一相关指令暂停一周期
- 资源重复配置:数据存储器+指令存储器,也就是多加一组资源。
2、⭐⭐数据相关(数据冲突)⭐⭐(最常考)
数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。

解决办法
- 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入“NOP”两种方法。
- 数据旁路技术
- 编译优化:通过编译器调整指令顺序来解决数据相关。
3、控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。

解决办法
- 转移指令分支预测。简单预测(永远猜true或false)、动态预测(根据历史情况动态调整)
- 预取转移成功和不成功两个控制流方向上的目标指令
- 加快和提前形成条件码
- 提高转移方向的猜准率
4、小节回顾

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

每个时钟周期内可并发多条独立指令,但是前提要配置多个功能部件,其实就是增加硬件设备提高并发。
不能调整指令的执行顺序,通过编译优化技术,把可并行执行的指令搭配起来。
2、超流水技术

在一个时钟周期内再分段,一个时钟周期内一个功能部件使用多次,也就是时分复用技术。
不能调整指令的执行顺序,靠编译程序解决优化问题。
3、超长指令字

由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条。采用多个处理部件。
4、小节回顾

(三)⭐⭐五段式指令流水线⭐⭐

考试中常见的五类指令
- 运算类指令

运算类指令
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:取出操作数至ID段锁存器
EX:运算,将结果存入EX段锁存器
M:空段
WB:将运算结果写回指定寄存器
- LOAD指令

LOAD指令流程
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm
EX:运算,得到有效地址
M:从数据Cache中取数并放入锁存器
WB:将取出的数写回寄存器
⭐⭐通常,RISC处理器只有“取数LOAD”和“存数STORE”指令才能访问主存⭐⭐
- STORE指令

IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm。将要存的数放到B
EX:运算,得到有效地址。并将锁存器B的内容放到锁存器Store
M:写入数据Cache
- 条件转移指令
- 无条件转移指令

六、多处理器基本概念(新考点,只会考选择题)
(一)SISD、SIMD、MIMD的基本概念
- 单指令流数据单元SISD
单指令流:CPU同一时间段内只能处理一条指令。
单数据流:每条指令可以处理特定的一两个数据。

特性
1、各指令序列只能并发、不能并行,每条指令处理一两个数据。
2、不是数据级并行技术
- 单指令流多数据流SIMD

擅长对结构类似的大量数据进行相同处理。一个指令处理很多个数据。
特性
1、各指令序列只能并发、不能并行,但每条指令可同时处理很多个具有相同特征的数据。
2、是一种数据级并行技术
- 多指令流单数据流MISD
多条指令并行执行,处理同一个数据。现实中不存在这种计算机。
- 多指令流多数据流MIMD
共享一个最低级的Cache和同一个主存,多个处理器共享单一的物理地址空间。

特性
1、各个指令序列并行执行,分别处理多个不同的数据。
2、是一种线程级并行、甚至是线程级以上并行技术。
- 向量处理器(SIMD思想的进阶应用)
一条指令的处理对象是“向量”

- 共享内存多处理器&多核处理器

(二)硬件多线程的基本概念


