Tomasulo算法
结构:
每个功能单元都有一个控制缓冲器,即保留站;所有保留站通过公共数据连接到检测广播;浮点寄存器有控制位和tag域,能保存register result status。
基本原理:
将执行指令分成Issue、execution、write result第三步是按序发射和乱序执行。当不存在结构冒险时,将指令按序发射到各个功能部件保留站,保留站中的指令的寄存器被数值或指向保留站的指针所代替,这一过程为寄存器重命名,消除了WAW、WAR冒险。当指令的源操作数就绪时,可以执行,从而实现乱序执行,消除RAW冒险。当指令完成时,结果将通过公共数据总线广播到所有功能部件和保留站。
步骤:
(1)Issue:从FP op Queue如果保留站空闲(无结构冒险),发送指令并将操作数发送到保留站(更名寄存器)
(2)Execution:当指令的两个源操作数就绪时即可执行,如果没有,检测CDB等待所需的数据。
(3)Write result:结果通过公共数据总线广播到所有等待的功能部件,并标记保留站。
Tomasulo如何消除各种冒险
通过在issue暂停发射指令,消除结构冒险;
通过寄存器更名消除WAR、WAW冒险;
消除保留站等待源操作数RAW冒险;
如何支持精确中断和推测执行
完成和提交分离指令,引入重排序缓冲器ROB,让指令乱序完成,按序提交。
ROB:按FIFO当指令执行完成将结果存储在订单存储指令中ROB在执行、完成和提交的其他指令中,并提供操作数。ROB提交顶部指令执行。
降低cache失效的方法
(1)增加块的大小
(2)增加相联度
(3)使用victim cache
(4)采用伪相联
(5)通过硬件提取数据和指令
(6)通过软件提取数据和指令
(7)编译优化
降低cache失效的方法
(1)无效时读写优先
(2)放置子块
(3)提前重启和发送关键字
(4)使用Nonblockingcache
(5)使用二级cache
减小cahce命中时间的方法
(1)使用小而简单cache
(2)避免地址变更
(3)通过流水化操作
(4)使用Tracecache
记分板读操作阶段Rj、Rk置No的原因
Rj(Rk)如果代表源操作数的可用性Fj,Fk可用,则在issue阶段被置为Yes;否则置为No,该指令将一直等待issue在操作数变为可用之前,阶段Rj(Rk)置为Yes,然后进入指令execution阶段。此外,当Rj(Rk)为Yes如果出现的话WAR保持冒险write result阶段,直到Rj(Rk)为No。
(m,n)预测器的工作原理
使用前m分支行为从2开始^m选择分支预测,每个预测对应于n位分支预测器。最近m分支的整体历史记录可以记录在m位移位寄存器中,每个分支是执行还是未执行。通过分支地址的低位,可以获得分支预测器缓冲站的访问。
DDR中的channel、bank、rank、row buffer等概念
channel:它是一个独立的内存接口,由内存控制器管理channel包括64位数据总线,并连接一组模块。channel模块共享相同的命令。
bank:bank它是内存颗粒中的存储单元,每个内存颗粒都有一组bank,每个bank内部包含多个存储阵列,bank、row、column一个组成内存cell的坐标。
Rank:一个rank由一组或多组内存颗粒组成rank内存颗粒数量等于数据总线位宽除以内存颗粒位宽。
Row buffer:在内存快速页模式中,row buffer可存储一整行数据,允许地址总线只发送一列地址信号进行数据访问。
cache coherence和memory consistency区别与联系
cache coherence:指每个处理器在多处理器环境理器cache可能对应同一地址memory块,不同的处理器在阅读操作时必须保持一致。即定义读取操作可以返回的值。
memory consistency:在多处理器环境下,定义了不同处理器的读取操作何时可以返回写入值。
联系:cache coherence和memoryconsistency共同构成了存储系统的一致性。它们代表了不同存储层次的一致性,相互影响。
6管SRAM工作原理
基本原理:
在编写数据时,根据要编写的数据,将一条位线预充到高电平,另一条放电到低电平。然后选择行线,使两端的门管连接,内部稳态电路锁定数据。
读取数据时,先将位线预充到高电平,然后选择行线,导致两端门管,数据节点向位线充放电。列出的敏感放大器识别两个位线上的电压差,并输出相应的数据。
指令冒险与指令相关的区别与联系
指令相关性是指指指指令之间存在一定的依赖关系。有三种指令:数据相关性(包括真实相关性)、名称相关性(包括反相关性、输出相关性)和控制相关性。
指令冒险是指指指指令流中的下一个指令不能在指定的时钟周期内执行。指令冒险有数据冒险(WAW、RAW、WAR)、控制冒险、结构性冒险等。
联系:指令相关导致指令冒险;指令冒险可以避免,指令相关无法避免。
分析水平损失和垂直损失superscalar、fine-grained multithread、coarse-grained multithread、multiprocessing、simultaneousmultithread的设计动机
superscalar:水平损失是动机。主要特征是多发射。
Fine-grained multithread:垂直损失是动机。主要特点是线程可以在一个周期内切换。
Coarse-grained multithread:垂直损失是动机。其主要特点是在线程中遇到它load、store切换线程时,周期较长。
Multiprocessing:水平损失是动机。主要特点是多个处理器并行执行指令。
Simultaneous multithread:水平损失和垂直损失是动机。主要特点是多发射,不同的线程指令发射在同一时钟周期的不同发射窗口。
Power wall ILP wall memory wall = brick wall
计算机的性能发展主要受功耗、指令级并行、内存三个方面的限制。
Power wall指随着集成电路规模的增加,功耗密度越来越大,散热技术没有得到更好的改进,限制了计算机性能的发展。
ILP wall指单处理器受控制计算单元的限制amdahl定律指出,指令级并行取决于程序的并行程度,ILP该技术也不能有效地提高计算机的速度。
Memory wall指出处理器的速度与存储器的速度差距越来越大,存储器的延迟限制了计算机性能的发展。
记分板技术
记分板技术是利用硬件开发指令级平行技术。其核心思想是:
(1)没有结构冒险WAW冒险时,将指令按顺序分配到功能部件,否则暂停发射;
(2)指令在执行之前必须等待源操作数,可以乱序执行,消除了RAW冒险;
(3)在写回阶段,指令只有在输出寄存器被之前的指令读取后才能写回。之前的指令结果保存在功能单元中,消除了WAR冒险。
存储局部性
局部性包括:时间局部性和空间局部性。
时间局部性:未来引用过一次的存储位置将多次引用。
局部空间:如果引用存储器的位置,也会引用附近的位置。
软件流水技术
软件流水技术是一种重组循环技术。软件流水循环的每一个迭代都是由原循环不同迭代中选择的指令组成的,可以消除相关性。
更名为显式寄存器
显式寄存器的更名是通过物理寄存器堆将指令中使用的寄存器映射到物理寄存器中。当任何指令都要写一个寄存器时,将一个新的物理寄存器分配给寄存器,避免了这种方法WAW、WAR冒险。
旋转寄存器堆
用于解决VLIW循环调度需要很多寄存器问题。使用一个Rotating Register Base指向当前的寄存器组,使用其值和逻辑寄存器值作为物理寄存器,以实现寄存器更名的效果。寄存器可以根据指令执行周期重用。
共享存储技术
系统由几个独立的节点组成,通过高速专用网络连接。从逻辑上讲,整个系统分为多个节点。每个节点可以访问本地内存资源或远程内存资源,但访问本地内存资源远远快于远程内存资源。
计算机系统结构
计算机系统结构的目的是设计满足目标和功能需求的组件和硬件,包括指令集体系统结构、组件或微系统结构和硬件。它是应用层和物理层之间抽象层的设计。
推测执行技术
使用编译器或处理器推测指令执行结果,以消除其他指令依赖指令的技术
LL/SC实现同步信号灯的原理
当LL指令从内存中取出一个字后,处理器会记住LL指令的操作,同时LL指令读取的地址也将保存在处理器中link 寄存器中。若发生中断,link寄存器中的地址值将失效并清除。SC执行时,检查指令中的地址是否link如果寄存器中的地址匹配,SC执行成功。因此,LLSC实现同步信号灯的原理是利用同步信号灯LL和SC构成原子操作将信号灯的地址包含在LL和SC指令中,使之能够存储在link寄存器中,通过SC指令完成对信号量的更改。
DMA
DMA是一种高速的数据传输操作,允许在外部设备和存储器之间通过CPU的两次干预,周期窃取地自动完成批量数据的传输。
存储层次设计的四个问题
block placement:全相联、组相联、直接映射
block identification:标记/信息块
block replacement:LRU、FIFO
write strategy:write back、writethrough
降低转移损失的方法
软件方法:
(1) 消除转移——循环展开,增大运行长度
(2) 减小转移确定时间——指令调度尽早计算转移条件
硬件方法:
(1) 延迟槽——用有效工作代替气泡
(2) 推测——转移预测,跨越转移的指令推测式执行
Tracescheduling
踪迹调度分为两步:
(1) 踪迹选择,负责从程序的控制流图中选择执行频率较高的路径,每一条路径就是一条trace;
(2)踪迹压缩,对已生成的trace进行指令调度和优化,尽可能的压缩其执行时间
2:1cache规律
miss rate 1-way associative cache size X= miss rate 2-way associative cache size X/2
AMAT
Average Memory Access Time = Hit time +Miss rate × Miss penalty
错误预测恢复机制
将结果计算与commit分离;消除流水线中跟随错误预测转移指令之后的指令 ;将状态恢复到转移指令之后的正确状态
流水线CPI
流水线CPI = 理想CPI + 结构停顿 + 数据冒险停顿 + 控制停顿