《计算机组成原理与系统结构 (50).ppt》由会员分享,可在线阅读,更多相关《计算机组成原理与系统结构 (50).ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache超标量中指令超标量中指令超标量中指令超标量中指令发出的策略发出的策略发出的策略发出的策略计算机组成原理与系统结构2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache超标量中指令发出的策略CacheCache指令发出策略指令发出指令发出 -启动一条指令并且让启动一条指令并且让CPUCPU去执行它去执行它的过程的过程指令发出策略指令发出策略-指定指令发出顺序的协议指定指令发出顺序的协议2N/2w i=j mo
2、d m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache超标量中指令发出的策略CacheCache指令发出策略取指令的顺序三种重要类型的排序三种重要类型的排序指令执行的顺序指令改变寄存器和存储器位置内容的顺序2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache超标量指令发出策略按序发出,按序完成按序发出,乱序完成乱序发出,乱序完成超标量中指令发出的策略CacheCache2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w C
3、ache按序发出,按序完成最简单的指令发出策略指令发出严格按照它在程序中出现的次序进行按序发出,按序执行,按序写回结果一次可以取多条指令为了保证按序完成,当发生冲突或相关时,指令发出必须停滞,很多处理部件都处于等待态执行时不太有效超标量中指令发出的策略CacheCache2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache超标量有若干流水线,但往往多条流水线不同段的处理部件数目不同流水线分为三段,分别是译码,执行和回写,但是套数不同此超标量具有两套译码部件,三套执行部件以及两套回写部件两套译码部件和回写部件功能都一样假设条件
4、CacheCache执行部件功能各不相同,编号为a、b、c2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache假设条件CacheCache指令执行时间(cycle)执行时使用部件相关性I12a无I21b和I5I6资源冲突I31c和I4资源冲突I41c和I5相关I51bI5执行取决于I4的结果I61bI2 I5 I6 资源冲突2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cachea b c按序发出,按序完成超标量中指令发出的策略2N/2w i=j mod m(
5、Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache目的是要执行和输出尽可能快如果发生资源冲突、数据相关或过程相关,指令发出将被迫停滞依旧有改进的空间需要更复杂的指令发出逻辑按序发出,乱序完成超标量中指令发出的策略CacheCache乱序完成还是要保证结果的正确2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache按序发出,乱序完成a b c超标量中指令发出的策略CacheCache2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2
6、w Cache乱序发出,乱序完成如果按序发出,那么处理器对指令进行译码时,遇到相关性问题发生即要停滞,直到此问题解决实际上在这个冲突点后面,可能有很多与流水线中指令完全无关的指令,如果可以提前将这部分指令引入流水线,势必会提高流水线效率为允许乱序发出,必须解耦流水线的译码段和执行段通过使用一个称为指令窗口的缓冲器来完成的由寄存器构成超标量中指令发出的策略CacheCache2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache只要指令窗口的缓冲器未满,处理器就能继续取指及译码新的指令在指令窗口中指令满足什么样的条件就能被发出执
7、行呢?当这个指令所要使用的功能单元是空闲的,且没有冲突或相关性问题阻塞这个指令的执行,该指令就能从指令窗口发出到执行段超标量中指令发出的策略CacheCache乱序发出,乱序完成2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache允许有更多的指令被译码,从而使得处理器可以向后查看更多的指令是否满足发出的条件,减少了流水段停滞的概率超标量中指令发出的策略CacheCache此时指令发出的顺序就很少遵循它们原来的程序编写时的顺序,唯一的限制是要保证程序执行的结果依旧正确乱序发出,乱序完成2N/2w i=j mod m(Tag)C
8、PUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache乱序发出,乱序完成a b c超标量中指令发出的策略CacheCache2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache指令窗口不是一个附加的流水线段若一个指令满足不相关的条件且程序结果不出错,它就可以从指令窗口被取出并发去执行说明实际上这是一种用一定的时间延迟来换取不相关指令被提前执行的方式超标量中指令发出的策略CacheCache2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache通过这种方式可以减少流水线停滞的时间,一定程度上解决了真实数据相关、资源冲突以及过程相关带来的问题,减少了流水段停滞发生的概率无法解决反相关性及读后写相关性的问题说明超标量中指令发出的策略CacheCache