Skip to content

计算机系统结构(2月3日)

lirui edited this page Feb 3, 2021 · 4 revisions

执行什么操作,操作的值是什么,产生这个值的功能部件是什么,

Busy:保留栈或功能部件FU是否busy

寄存器结果状态,

1、发射阶段:保留栈不空,里面有空就往里面送

2、执行:在功能部件中执行

3、写结果,结果直接广播出去

一般的总线都是“go to” bus,data+destination

这个总线是“come from”bus,data+source

64位的数据+4位功能部件 source address

按序发射,乱序执行,乱序完成

缺点:复杂性大,公共数据总线要求要快,对容量,带宽要求高

non-precise interrupt

寄存器重命名:采用指针的方法

保留栈:通过设置若干个保留栈,可以对一些操作进行缓冲

执行过程中动态建立数据相关依赖图

优点:1、冲突检测是分布的,通过指针自动消除了,只检测资源是否发生冲突,资源是否够用;2、消除了名相关(WAW和WAR);

超标量:每个时钟周期同时发送两条指令如何?

通过指针、保留栈,有效解决了循环内、循环之间的冲突问题

总线是瓶颈

就是解决了数据冲突,控制冲突也解决了

通过指针的方法解决寄存器数量有限的问题

避免了计分牌中WAR、WAW冲突

通过硬件进行循环展开,循环级并行做的更好,对cache命中率、缺失有好处

流水线的静态调度:

通过编译来完成

ILP:指令集并行,将循环展开,挖掘循环之间的并行性

Clone this wiki locally