VLIW EPIC静态调度的指令级并行
时间:2025-04-25
时间:2025-04-25
麻省理工学院开放课程 计算与计算机系统结构的历史
VLIW/EPIC:静态调度的指令级并行
Krste Asanovic麻省理工学院计算机科学实验室
麻省理工学院开放课程 计算与计算机系统结构的历史
Little定律并行度=吞吐率×运行时间每个周期的吞吐量
一个操作延时的周期数
麻省理工学院开放课程 计算与计算机系统结构的历史
流水线ILP计算机例子最大吞吐量,六条指令/周期一个流水段延迟周期数两个整型单元单周期延迟两个Load/Store单元,3个周期延迟
两个浮点运算单元 4个周期延迟
为使流水线保持繁忙,指令级并行度(ILP)需要是多少?
麻省理工学院开放课程 计算与计算机系统结构的历史
超标量控制逻辑比例变化发射宽度N发射组先前发布的指令生命期
互锁检查和标签比较的数目以N*(N *L)增长,L是机器中指令的生命期-每发布或执行完N条指令中的一个就必须检查N *L条运行中的指令
对于按序发射的计算机,生命期L与流水时延有关对于乱序发射的计算机,L还包括花在指令缓冲区里的时间(指令窗或ROB)随着N增加,需要更大的指令窗以获得足够的并行度使机器保持繁忙=>更长的生命期L=>乱序控制逻辑增长快于N^2(~N^3)
麻省理工学院开放课程 计算与计算机系统结构的历史
乱序控制的复杂性MIPS R10000
麻省理工学院开放课程 计算与计算机系统结构的历史
顺序ISA的瓶颈
麻省理工学院开放课程 计算与计算机系统结构的历史
VLIW:超长指令字
编译器调度并行执行多个并行操作压缩到一个长指令字中编译器必须避免数据冲突(没有互锁)
麻省理工学院开放课程 计算与计算机系统结构的历史
早期的VLIW机 FPS AP120B(1976)-科学计算阵列协处理器 -第一台商业宽指令机 -手工编码的向量算术库,使用软件流水和循环展开技术
多流追踪(1987)-来自fisher的耶鲁小组的思想,包括迹调度,商业化了–每条指令配置7,14,28个操作均是有效的– 28个操作紧缩成一个1024位的指令字
Cydrome Cydra-5(1987)-7个操作编码为256位指令字 -循环寄存器模式
麻省理工学院开放课程 计算与计算机系统结构的历史
循环执行
麻省理工学院开放课程 计算与计算机系统结构的历史
循环执行
多少个浮点操作/周期?
麻省理工学院开放课程 计算与计算机系统结构的历史
展开循环
打开内循环,一次执行4个迭代
需要处理N的值,它不是最终清除循环的展开因子的倍数,
麻省理工学院开放课程 计算与计算机系统结构的历史
展开循环代码的调度
麻省理工学院开放课程 计算与计算机系统结构的历史
展开循环代码的调度
多少FLOPS/周期?
麻省理工学院开放课程 计算与计算机系统结构的历史
软件流水
麻省理工学院开放课程 计算与计算机系统结构的历史
软件流水
多少FLOPS/周期?
麻省理工学院开放课程 计算与计算机系统结构的历史
软件流水与循环展开
软件流水每个循环花一次启动/停止的代价,而不是每次迭代开销一次
麻省理工学院开放课程 计算与计算机系统结构的历史
如果没有循环的话怎么样?
在控制流非常没有规律的代码中,转移限制了基本块的大小在单独的基本块里很难找到ILP
麻省理工学院开放课程 计算与计算机系统结构的历史
迹调度[Fisher, Ellis]
麻省理工学院开放课程 计算与计算机系统结构的历史
迹调度[Fisher, Ellis]选择一串基本块,一个轨迹,表示最频繁转移的路径使用概貌反馈,或编译启发,寻找共同的转移路径一次调度整个"迹"加入固定的代码来处理跳出迹的转移
麻省理工学院开放课程 计算与计算机系统结构的历史
典型VLIW的问题目标代码的兼容性-必须对每台机器重新编译所有的代码,即使是两台同一代的机器
目标代码的大小-指令填充浪费流了指令内存/cache -循环展开/指令流水复制了代码
调度可变延时的内存操作-caches和/或内存体冲突,造成静态不可预料的变化
围绕静态不可预料的转移的调度-转
移路径不同,优化的调度也不同
麻省理工学院开放课程 计算与计算机系统结构的历史
VLIW指令编码各种减少无用字段影响的方案-内存中采用压缩格式,扩展l-cache的再装入 -Cydra-5多操作指令:以顺序操作执行VLIW -标出并行组(应用于TMS320C6x DSPs, Intel IA-64)
上一篇:智能门禁系统监控面板软件的设计
下一篇:六年级思品学科期末考试试卷分析