计算机组织与糸统结构 剂用小线进能 Enhancing Performance with Pipelining (第十六讲) 程旭 2000.522 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ ¯æ §ù;é ½z# v Foibodjoh!Qfsgpsnbodf!xjui!Qjqfmjojoh ÄZÅ È
上一讲总结 °流水线向下传递控制信息,就象向下传递数据样 °通过局部控制解决前递/暂停 °意外事件会导致流水线停止 °MPS指令系统体系结构中流水线是可见的(延迟转移 延迟装入) °更深的流水线、更多的并行度可能获得出更高的性能 °中断、指令系统、浮点操作加大流水线的难度 °编译器可以减少数据和控制冒险的代价 装入延迟槽 转移延迟槽 转移预测 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ :0âk eåßôæ{ µCÈ5åßôæDBÔ eî¼{ · !æV0 eãê_ÊîÐÈ06 e0,36۸ϳ'ϧXÃX Äʳ@Ï Ãʳ9 eÈÅXÃÈîXJ zÃÑkÎȬXûÑ eÃ۸ϳÃB¡0tûXz eê¥<ù£åDB`{ f=X·Ë 9Ê³Ñ @ÏÊ³Ñ @ÏX
再谈流水线冒险 IFet ch DCD MemOpFetch Exec Store IFetch DCD ? Structural Hazard H-Fet ch DCD MemOpFetch OpFetch Exec Store I-Fet ch DCD OpFetch Jump Control Hazard IFetch DCD ? iF DCD Ex Mem wB- RAW(read after write) Data Hazard IF DCD EX Mem WB WAW Data hazard IF DCD EX Mem WB (write after write) F DCD Ex Mem IF DCD OF Ex RS WAR Data Hazard (write after read 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ ½8qdï ,)HWFK ,)HWFK 6WUXFWXUDO +D]DUG ,)HWFK &RQWURO+D]DUG 5$:UHDGDIWHUZULWH'DWD+D]DUG :$:'DWD+D]DUG ZULWHDIWHUZULWH :$5'DWD+D]DUG ZULWHDIWHUUHDG '&' ,)HWFK '&' 0HP2S)HWFK2S)HWFK ([HF 6WRUH 0HP2S)HWFK ([HF 6WRUH '&' "" '&' 2S)HWFK -XPS ,)HWFK '&' "" ,) '&' (; 0HP :% ,) '&' (; 0HP :% ,) '&' (; 0HP :% ,) '&' 2) ([ 0HP ,) '&' 2) ([ 56
数据冒险 如何避免一些冒险 通过总是在流水线的前段(DCD)取操作数,来消除WAR ·通过按序完成所有回写操作(在最后一级,静态),来消除 WAW °检测并解决RAW 暂停,并尽可能前递 IF DCD EX Mem WB RAW Data hazard IF Ex Mem WB WAW Data hazard IF DCD EX Mem WB F DCD Ex Mem IF DCD OF Ex RS/TRAW Data Hazard 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@  eV)S!Ôof= îüX!'&'ª¡0D9\8:$5 îÝc`äݲm¡0üÔâÔ{-Õ9\8 :$: eJ·5$: V0JÃÑ!æ 5$:'DWD+D]DUG:$:'DWD+D]DUG 5$:'DWD+D]DUG ,) '&' (; 0HP :% ,) '&' (; 0HP :% ,) '&' (; 0HP :% ,) '&' 2) ([ 0HP ,) '&' 2) ([ 56
意外事件中的问题 意外事件/断:在5段流水线中执行着5条指令 如何停止流水线? 重启? 哪些问题产生中断? 段名可能出现的中断问题 FD 取指页失效、未对准存储器访问、存储保护违例 未定义或非法操作码 EX算术意外事件 MEM取数据页失效、未对准存储器访问、存储保护违例、存储器错 误 °产生数据页失效的Load指令、产生指令页失效的Ad指令? °解决方案1:中断向量指令 °解决方案2:尽可能早地中断执行,之后,重启所有未执行完的操作 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ ?F»&]´È eãê_Ê ü; 5Û¸ V)06" ¡" ¾oÂl{ó" á ÃÑÎXÂl ,) ªÛIÃþÍ,|<ÂÃ,|±x±_ ,' þnê2©¡0Õ (; kãê_Ê 0(0 ªDBIÃþÍ,|<ÂÃ,|±x±_Ã,|<í à e{óDBIX/RDGÛ¸Ã{óÛ¸IX $GGÛ¸" e·å£Û¸ e·Ãѽ; ÈâÈ¡Ýþ; `X¡0