欢迎来到天天文库
浏览记录
ID:12869787
大小:22.13 KB
页数:4页
时间:2018-07-19
《计算机体系结构学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、指令流水线,指令级并行(Instruction-levelparallelism)开发指令级并行的方法1、依赖于硬件,动态地发现和开发指令级并行。如Intel的Pentium系列,主导地位。2、依赖于软件,在编译阶段静态地发现并行。如Intel的Itanium系列,适合科学领域。数据相关:指令j数据相关于指令i1、指令j可能会引用指令i的结果2、指令j数据相关于指令k,指令k数据相关于指令i名字相关:名字相关发生在使用相同的寄存器或存储单元的两条指令之间,但是在名字相关的指令间不存在数据流。1、指令i和j之间的反相关:指令i
2、读一个寄存器或存储器单元,而指令j写该寄存器或存储器单元。在这种情况下,为了保证指令i读到正确的值,必须保持原始的指令执行顺序。2、输出相关:当指令i和指令j写相同的寄存器或存储器单元时,为了保证该寄存器或存储器单元的值最后是由指令j写入的,必须保护指令的执行顺序。(通过寄出去重命名来解决并发问题)数据冒险:RAW(写后读)、WAW(写后写)、WAR(读后写)控制相关:控制相关决定了转移指令有关的指令的执行顺序,从而使与转移有关的指令只有在应当被执行时按程序顺序执行。Ifp1{s1};Ifp2{S2}S1于p1控制相关,S2
3、与p2而不是p1控制相关。第五章:存储器层次结构设计程序访问局部性原理和追求较高性能价格比的原则,推动了存储器层次结构的设计。存储器层次结构设计具有地址映射的功能,上层的数据一定能在下层存储器中寻找到。Cache中数据的放置策略1、全相联:如果一个块可以被放在Cache中的任何一个地方,那么Cache的这种映射就叫全相联映射。2、直接映射:如果每个块在Cache中只能出现在唯一的位置上,那么Cache的这种映射就叫做直接映射,映射方法通常是:(块地址)mod(Cache中的块数)3、组相联:如果一个块可以被放在Cache中一
4、个受限地点的组块。那么Cache的这种映射就被叫做组相联映射。一个组(set)是Cache中的一个组块。一个块首先被映射到一个组中,然后它可以被搁置到组中的任何一块汇总,组通常利用位选择(bitselection)方式确定:(块地址)mod(Cache中的组数)如果一个组里有n块,那么这个Cache的映射方法就叫做n-路组相联。今天的大多数处理器的Cache采用直接映射,两路组相联映射,或者四路组相联映射方式。Cache中的每一块都有一个地址标志(Tag),给出块地址。在Cache中寻找数据时,必须对所有可能的标志进行并行的
5、查找,因为速度是至关重要的。Cache的替换策略:LRU、Random、FIFO等。Cache两个基本的写策略1、写通过(writethrough或storethrough):信息被同时写到了Cache块和较低层的主存块中。2、写回法(writeback,copyback或storein):信息只被写入Cache块。只有Cache的该快被替换出去的时候,信息才会被写回到主存中。为了减少替换时块的写回频率,通常需要使用一个叫做脏位(dirtybit)的特征信息位,这个特征位表明一个块是脏的(在Cache中被修改)还是干净的(没
6、有被修改)。如果它是干净的,在发生缺失需替换该块时,不必写回,因为下层存储器同Cache包含有相同的信息。进一步减Cache分为指令Cache和数据Cache,且指令Cache的命中率要远高于数据Cache的命中率。提高Cache性能的优化策略评价指标:平均存储器访问时间=命中时间+缺失率*缺失代价降低缺失率(增加块容量,提高组相联度,指令和数据的硬件预取,编译控制的预取,编译优化)a)指令和数据的硬件预取:通常在Cache之外的硬件中完成,例如AXP21064微处理器在缺失的时候取两个块,被请求的块和其后紧挨着的块。被请求
7、的块装入到指令Cache中,而预取的块被装入到指令流缓冲区中。如果被请求块在指令流缓存区中找到,则原Cache请求被取消,块被从流缓存区中读入,然后下一个预取请求被发出。a)编译控制的预取:是利用编译器来插入预取指令,提前发出数据请求。寄存器预取可以把值预取到寄存器中,Cache预取只把数据预取到Cache中,而不是到寄存器中。b)编译优化(软错误可以引入):不需要对硬件做任何改动,分为指令缺失性能改善和数据缺失性能改善两个方面。目标是尽力提高数据的空间和时间局部性。例如数组计算可以变换成在一个Cache块下,对所有的数据进
8、行操作,而不是盲目地按照循环放置的偶然顺序跨越数组进行操作。(ComputerArchitecture:AQuantitativeApproach第二版P305)编译优化中指令级并行和减少Cache缺失的对比(P344)。i.合并数组ii.循环交换iii.循环融合iv.分块2、减小缺失代价
此文档下载收益归作者所有