-
Notifications
You must be signed in to change notification settings - Fork 0
计算机系统结构(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:指令集并行,将循环展开,挖掘循环之间的并行性