广告横幅

学习报告W1(孙凤影)

2021-12-19 01:26:30

学习报告研0新生孙凤影2015-04-02学习内容现代微处理器-90分钟简介现代微处理器-90分钟简介1、时钟主频与处理器性能2、流水线与指令并行度3、超流水线4、多发射—超标量5、显示并行化—VLIW6、指令依赖与延时7、分支与分支预测8、基于断言的分支消除技术9、指令调度、寄存器重命名与乱序执行10、Intelx8611、线程—同时多线程、超线程与多核12、核的数目及宽度13、数据并行—SIMD矢量指令14、cache与存储层次15、cache冲突与关联性16、存储带宽与延时1、时钟主频与处理器性能<1>处理性能与时钟主频并不是简单的正相关关系;<2>不同的微处理器在普通的定点代码和浮点应用的处理上所体现的性能不同,在普通的定点代码处理上拥有同等性能但在浮点应用上可能大相径庭;<3>决定处理器性能的因素不单单只有主频。2、流水线与指令并行度取指fetch译码decode执行execute写回writeback<1>指令级并行:当指令不相关时,它们在流水线中是重叠执行的。<2>指令级并行度(ILP):一个时钟周期内流水线流出的指令数。<3>指令级并行性衡量指标(CPL):流水线中执行一条指令所需要的时钟周期数。普通流水线在每个时钟周期的开始时,被处理指令的部分数据和控制信息都保存在流水线latche中,而这些信息就将作为输入灌入下一级流水线的逻辑电路中。在每个时钟周期中,信号将沿着该流水级的组合逻辑传输,并在下一个时钟周期的结束时,正好产生出能被下一级流水线latch捕获的输出信号。执行级事实上是由多组不同的逻辑构成,支持不同类型的操作在处理器的不同功能单元上顺利执行。3、超流水线<1>概念:超流水线是通过细化的流水,提高主频,使得机器在一个周期内完成一个甚至多个操作。<2>结果:处理器在每秒内完成的指令数目会更多。<3>作用:将流水线设计的级数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。4、多发射—超标量(1)处理器宽度<1>概念:每个时钟周期内可以发射或者完成的指令数目一般被称为处理器的宽度。<2>特点:发射宽度一般都小于功能单元的数目。之所以需要配给更多的功能单元,是因为不同的代码序列会导致不同的指令混合。指令流中不会总是提供:1条定点、1条浮点和1条访存指令,因此我们需要配置多于3个的功能单元才有可能满足同时执行3条指令的需求。 不同处理器配置的功能单元数目以及类型,完全取决于其目标市场浮点计算资源定点执行性能单指令多数据流(SIMD)折中平衡??5、显示并行化—VLIW超长指令字(VLIW)<1>概念:是一种单指令流多操作码多数据的系统结构。每条指令都包含多个并行操作的信息。<2>特点:VLIW设计并不检查指令之间的数据依赖关系,因此一旦遇到cache缺失事件,就只能停顿住整个处理器(而非停顿指令)。由此,编译器必须在依赖指令之间插入合适数目的nop操作,因为没有指令能填满这个间隔区域。这将使得编译器的设计更为复杂。几个概念<1>超标量(Superscalar)处理机:在一个时钟周期内同时发射多条指令的处理机。开发时间并行性。<2>超流水线(Superpipelining)处理机:在一个时钟周期内分时发射多条指令的处理机。开发空间并行性。<3>超标量-超流水线(Superscalar-Superpipelining)处理机:是把超标量和超流水技术结合在一起形成超标量超流水线处理机。在一个时钟周期内可以发射多次,每次可以发射多条指令的处理机。既开发空间并行性,有开发时间并行性。<4>超长指令字(VeryLongInstructionWord)处理机6、指令依赖与延时<1>指令依赖:后面一条指令依赖于前一条指令的计算结果,也就是说处理器无法在第一条指令完成计算之前就开始执行下一条指令,相互依赖的指令不能并行执行。<2>指令延时:从该指令到达执行级,到该指令的结果被其他指令使用,整个过程所开销的时钟周期数目。越深的流水线,越多的流水级就意味着越长的延时。7、分支及分支预测处理器平均每6条指令中就会有1条是分支指令,处理器就会根据其猜测的路径进行取指,并以推测(speculatively)执行方式开始执行这些指令。<1>静态分支预测(staticbranchprediction):编译器可能可以在分支指令处做一些标志,从而高速处理器应该走哪条路。<2>让处理器可以在运行时做出猜测。通常由能够记录最近几条分支指令地址的片上分支预测表(on-chipbranchpredictiontable)以及1个用于指示这些分支指令上一次是否taken的标志位构成。<3>分支预测的局限性:分支预测技术会出现猜错的情况,而对于超深流水线处理器而言,这将导致很多指令被取消掉,这种现象为错误预测惩罚。较高的错误预测惩罚都将带来非常严重的性能损失。8、基于断言的分支消除技术<1>原理:指令的执行是受到断言是否成立所控制的。<2>目的:消除可能导致昂贵开销的分支指令,避免由于分支预测错误所导致的高昂的惩罚代价。<3>设计权衡:对于非常小或者非常大的代码块而言,很简单,前者坚决用断言,后者坚决用分支。但对于中等大小的代码块而言,就需要进行进一步复杂的权衡考量。9、指令调度、寄存器重命名与乱序执行<1>动态指令调度(dynamicinstructionscheduling):增强dispatch级逻辑,使之可以在每个时刻,在一组指令之间寻找能够最好利用处理器功能单元的指令,并将其dispatch出去。<2>寄存器重命名<3>乱序执行:在某条指令等待的时候,对程序中其他指令进行乱序处理(reorder),使之可以执行。(1)通过硬件在运行时实现乱序(2)静态、或者编译时指令调度:通过编译器优化代码,并重新排布指令。<4>优缺点:寄存器重命名以及OoO执行机制都会增加处理器逻辑的复杂性,从而使得设计更加困难、芯片面积更大、功耗也更大。乱序执行让软件在不重新编译的情况下,能获得新版处理器设计提供的额外性能收益。静态指令调度无需复杂的OoO逻辑,因此可能大幅简化处理器的设计难度,能降低功耗还能减少芯片面积。10、Intelx86复杂而混乱的x86指令集架构,复杂的寻址模式搭配上极少的寄存器数目,由于存在数据依赖使得仅有非常少的指令可以并发执行。早期动态的将x86指令译码为简单的、类似RISC的微指令(micro-instruction)。微指令可以在快速、类似RISC的寄存器重命名乱序超标量核上执行。如今11、线程-同时多线程、超线程与多核<1>同时多线程(simultaneousmultithreading,SMT):专门用于挖掘线程间并行度的处理器设计技术。利用有用的指令填充流水线中的气泡,有用的指令不在来自于同一个程序中,而是来自于并行执行的多个线程。SMT处理器仅使用1个物理处理器核,使得SMT比多核处理器更省芯片面积、制造成本以及功耗和热量开销。<2>超线程:设计允许2个同步线程并发执行。<3>多核设计:一枚处理器中集成两个或多个完整的内核。为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升。很少有出现每时钟周期执行的指令数目超过2的情况。原因可能包括:load延时、cache缺失、分支以及指令间的数据依赖关系等。在同一个cycle内issue很多条指令的情况仅发生在短短几个cycle中,而这些cycle之间却充斥着很多仅有非常低ILP的代码,因此峰值性能远远没有达到。12、核的数目与处理器宽度非常宽的超标量处理器设计相对于芯片面积和时钟频率而言,缩放比例效果非常差。其中最主要的问题是:复杂的多发射dispatch逻辑与发射宽度之间存在2次方,甚至指数型缩放比例。非常宽的超标量设计需要较高的多端口寄存器和cache。这些因素不仅会增加面积,还会在电路级大幅增加互联线的数目,从而导致处理器的时钟频率上不去。13、数据级并行-SIMD矢量指令SIMD:单指令流多数据流,一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据矢量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。在微处理器中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元。14、cache与存储层次<1>Cache:一块小而快的存储器,位于处理器芯片片上,或者处理器芯片旁边很近的位置。它负责保存主存的一小块数据的备份。当处理器需要从主存获得某块数据时,cache就可以提供比主存快得多的响应速度,当然前提是此时该数据已经在cache中了。<2>Cache的优点:cache可以通过将最近使用过的数据保存在其中的方式,挖掘数据间的时间局部性。而为了更好的利用空间局部性,cache会每次从主存中加载1段连续的数据,这也被称为cache块(cacheblock)。15、cache冲突与关联性<1>Cache冲突:cache无法对最近访问的数据提供最佳的保存位置,因为和可能多个存储地址会被映射到相同的cache行。而一旦出现同一个cache行映射了2块不同、但最近都被反复访问的内存地址时,就会出现我们称之为cache冲突的场景。<2>抖动:当程序反复访问2个映射到相同cache行的地址时,cache就必须不断地把其映射的数据交换入/出cache行,这就导致大量的主存访问操作,而主存的访问时间又相对非常漫长(延时可能长达100个处理器cycle),最终导致程序执行的性能直线下降。<3>组关联(set-associativity)cache):可能保存相同主存地址的cache行的数目为关联组(associativity),表示cache会按照组关联的方式进行地址的匹配查询,即特定主存地址可以被映射到1组(而不是1个)特定的cache中。<4>cache的运用:用主存作为缓冲文件系统数据的cache,从而提升I/O访问的速度;用webcache去缓冲远端web服务器的数据到更为近距离的本地服务器上。主存和虚存一般会被设计为更为智能的、全关联cache模式等。16、存储带宽与延时<1>存储带宽:存储系统的存取速度<2>主流的存储技术:标准的SDRAM和RambusRDRAM,他们之间差异非常小。一般来说,SDRAM的延时较小,而RDRAM的带宽更大。更宽的总线意味着更贵的主板,也意味着加入系统的RAM会受到更多的限制,以及更高的最小RAM配置。<3>提升有效存储延时:通过同步时钟DRAM(SDRAM),它使用与总线相同的时钟驱动。SDRAM对存储系统进行了流水线处理器,因为这样可以将内部的时序与SDRAM芯片操作的interleave结构暴露给系统。这样可以降低有效延时,因为它允许新的访存操作在当前这个访存操作结束之前就开始,从而消除了早期异步DRAM系统中的等待延时。


扫码获取全文
直接下载全文

相关阅读