5.2.3.流水线的分类
5.2.4.流水线的多发技术
1.超标量技术:每个时钟周期内可以并行执行多条指令(同一时刻同时发出)(增加多组功能部件,空分复用)
2.超流水技术:时钟周期内再分为多个时间段,每个时间段发出一条指令(不同时刻发出)(时分复用)3.超长指令字:
5.3.五段式指令流水线
1.运算类指令:运算类指令无需从访存,但仍需要完整经过访存周期(MEM)
2.LOAD指令:采用基址寻址方式,需要经过ALU计算才能得到有效地址(即需经过执行周期EX)
3.STORE指令:A存放基地址,IMM存放偏移量(立即数),经过ALU计算后得到有效地址EA,并将EA放入连接ALU的锁存器中;B存放要存入主存的数据,然后放入STORE锁存器中;根据EA的两个锁存器中的内容将数据写入主存中(通常情况下仅需写入DATA CACHE中,因此,WB阶段无需做任何事)
4.条件转移指令:对PC的修改在MEM阶段执行,WB阶段无需做任何事
5.无条件转移指令:对PC的修改在EX阶段进行,MEM和WB阶段无需做任何事
6.多处理器的基本概念
6.1.多处理器系统的基本概念
1.数据级并行:并行的对数据进行处理
单指令流(Single Instruction Stream):CPU同一时间只能处理一个指令序列(并发)
多指令流(Multiple Instruction Stream):CPU同一时间可以处理多条指令序列(并发)
单数据流(Single Datastream Stream):每条指令只能处理一两个数据
多数据流(Multiple Datastream Stream):每条指令可以处理多个数据
2.SISD(Single Instruction Stream Single Data Stream,单指令流单数据流)
①特点:各指令序列只能并发,不能并行;每条指令只能处理一两个数据;不是数据级并行技术
②提升效率的方式:采用指令流水线、多模块交叉处理器(低位交叉)
3.SIMD(Single Instruction Stream Multiple Data Stream,单指令流多数据流):
①特点:各指令序列只能并发,不能并行;每条指令可以同时处理多个具有相同特征的数据;是数据级并行技(同一时刻只有一条指令运行,但是每条指令的执行可以并行处理多个数据);擅长对结构类似的数据进行相同处理
②指令控制部件(CU)取出指令后,可以向多个执行部件(ALU)发出相同的控制信号(即不不同执行部件实际上执行的是同一条指令),每一个执行部件都会有自己独立的局部存储器、数据寄存器组和地址寄存器组(各个执行部件处理的数据的存放位置不一样,因此需要单独设置地址寄存器组)
4.MISD(Multiple Instruction Stream Single Data Stream,多指令流单数据流):不存在
5.MIMD(Multiple Instruction Stream Multiple Data Stream,多指令流多数据流):
①特点:可以并行处理指令序列和多个不同数据;线程级并行(每个核可以运行不同的线程,即多个线程可以并行执行)及以上并行(线程级以上的并行,即进程级并行,每个核处理不同进程)
②可以分为多处理器系统和多计算机系统:
(1)多处理器系统(即共享存储多处理器,Shared Memory multiProcessor,SMP):多个处理器和一个存储器(共享)。
①各处理器间可以通过LOAD/STORE指令访问同一个存储器:所有核心共享同一个物理地址空间
②可以通过主存直接相互传送数据:核心A将数据放入主存/最低级CACHE,核心B再从该位置取出数据
③多核处理器等价于共享存储多处理器
(2)多计算机系统:由多台计算机组成,即多个处理器和多个存储器。不能通过LOAD/STORE指令访问对方存储器(LOAD/STORE只能访问自己的存储器;每个计算机有自己独立的存储器);只能通过消息传递的方式传递数据
6.向量处理器(SIMD的改进):特点:指令的处理对象是向量;主存储器采用多端口同时读取的交叉模块存储器(用于解决数据读取量大)
6.2.硬件多线程的基本概念
1.细粒度/粗粒度:并行运行的是同一线程的不同指令
阻塞时切换线程将会导致更高的切换代价
2.同时多线程:并行运行的是不同线程的不同指令