计算机体系结构学习笔记.docx

上传人:汽*** 文档编号:546568130 上传时间:2024-01-24 格式:DOCX 页数:4 大小:22.13KB
返回 下载 相关 举报
计算机体系结构学习笔记.docx_第1页
第1页 / 共4页
计算机体系结构学习笔记.docx_第2页
第2页 / 共4页
计算机体系结构学习笔记.docx_第3页
第3页 / 共4页
计算机体系结构学习笔记.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《计算机体系结构学习笔记.docx》由会员分享,可在线阅读,更多相关《计算机体系结构学习笔记.docx(4页珍藏版)》请在金锄头文库上搜索。

1、指令流水线,指令级并行(Instruction-level parallelism)开发指令级并行的方法1、 依赖于硬件,动态地发现和开发指令级并行。如Intel的Pentium系列,主导地位。2、 依赖于软件,在编译阶段静态地发现并行。如Intel的Itanium系列,适合科学领域。数据相关:指令j数据相关于指令i1、 指令j可能会引用指令i的结果2、 指令j数据相关于指令k,指令k数据相关于指令i名字相关:名字相关发生在使用相同的寄存器或存储单元的两条指令之间,但是在名字相关的指令间不存在数据流。1、 指令i和j之间的反相关:指令i读一个寄存器或存储器单元,而指令j写该寄存器或存储器单元。

2、在这种情况下,为了保证指令i读到正确的值,必须保持原始的指令执行顺序。2、 输出相关:当指令i和指令j写相同的寄存器或存储器单元时,为了保证该寄存器或存储器单元的值最后是由指令j写入的,必须保护指令的执行顺序。(通过寄出去重命名来解决并发问题)数据冒险:RAW(写后读)、WAW(写后写)、WAR(读后写)控制相关:控制相关决定了转移指令有关的指令的执行顺序,从而使与转移有关的指令只有在应当被执行时按程序顺序执行。If p1s1;If p2S2S1于p1控制相关,S2与p2而不是p1控制相关。第五章:存储器层次结构设计程序访问局部性原理和追求较高性能价格比的原则,推动了存储器层次结构的设计。存储

3、器层次结构设计具有地址映射的功能,上层的数据一定能在下层存储器中寻找到。Cache中数据的放置策略1、 全相联:如果一个块可以被放在Cache中的任何一个地方,那么Cache的这种映射就叫全相联映射。2、 直接映射:如果每个块在Cache中只能出现在唯一的位置上,那么Cache的这种映射就叫做直接映射,映射方法通常是:(块地址) mod (Cache中的块数)3、 组相联:如果一个块可以被放在Cache中一个受限地点的组块。那么Cache的这种映射就被叫做组相联映射。一个组(set)是Cache中的一个组块。一个块首先被映射到一个组中,然后它可以被搁置到组中的任何一块汇总,组通常利用位选择(b

4、it selection)方式确定:(块地址)mod(Cache中的组数)如果一个组里有n块,那么这个Cache的映射方法就叫做n-路组相联。今天的大多数处理器的Cache采用直接映射,两路组相联映射,或者四路组相联映射方式。Cache中的每一块都有一个地址标志(Tag),给出块地址。在Cache中寻找数据时,必须对所有可能的标志进行并行的查找,因为速度是至关重要的。Cache的替换策略:LRU、Random、FIFO等。Cache两个基本的写策略1、 写通过(write through或 store through):信息被同时写到了Cache块和较低层的主存块中。2、 写回法(write

5、back,copy back或 store in):信息只被写入Cache块。只有Cache的该快被替换出去的时候,信息才会被写回到主存中。为了减少替换时块的写回频率,通常需要使用一个叫做脏位(dirty bit)的特征信息位,这个特征位表明一个块是脏的(在Cache中被修改)还是干净的(没有被修改)。如果它是干净的,在发生缺失需替换该块时,不必写回,因为下层存储器同Cache包含有相同的信息。进一步减Cache分为指令Cache和数据Cache,且指令Cache的命中率要远高于数据Cache的命中率。提高Cache性能的优化策略评价指标:平均存储器访问时间=命中时间+缺失率*缺失代价降低缺失

6、率(增加块容量,提高组相联度,指令和数据的硬件预取, 编译控制的预取,编译优化)a) 指令和数据的硬件预取:通常在Cache之外的硬件中完成,例如AXP21064微处理器在缺失的时候取两个块,被请求的块和其后紧挨着的块。被请求的块装入到指令Cache中,而预取的块被装入到指令流缓冲区中。如果被请求块在指令流缓存区中找到,则原Cache请求被取消,块被从流缓存区中读入,然后下一个预取请求被发出。b) 编译控制的预取:是利用编译器来插入预取指令,提前发出数据请求。寄存器预取可以把值预取到寄存器中,Cache预取只把数据预取到Cache中,而不是到寄存器中。c) 编译优化(软错误可以引入):不需要对

7、硬件做任何改动,分为指令缺失性能改善和数据缺失性能改善两个方面。目标是尽力提高数据的空间和时间局部性。例如数组计算可以变换成在一个Cache块下,对所有的数据进行操作,而不是盲目地按照循环放置的偶然顺序跨越数组进行操作。(Computer Architecture: A Quantitative Approach第二版 P305) 编译优化中指令级并行和减少Cache缺失的对比(P344)。i. 合并数组ii. 循环交换iii. 循环融合iv. 分块2、 减小缺失代价(多级Cache)3、 减少Cache的命中时间Cache命中时间中最耗时的部分是按地址的索引域去读标志存储器,然后再与地址比较

8、。较小的硬件更快,因此小的Cache当然有助于减少命中时间。Cache优化技术小结:(Computer Architecture: A Quantitative Approach第二版 P321)主存主存的执行时间为Cache所关注(直接影响Cache的缺失代价),而主存的带宽为I/O所关注。随着二级Cache的广泛使用以及Cache中块容量不断增加,主存带宽对Cache也变得越来越重要。存储器执行时间(延迟)通常用访问时间(Access time)和存储周期(Cycle time)来描述。访问时间(Access time):是存储器从接到读请求,到期望的信息字被读到CPU所需的时间。存储周期

9、(Cycle time):是指连续两次存储器请求所需要的最小时间间隔,由于必须在地址线稳定之后才可进行下一个的存储器访问,所以,存储周期要大于访问时间。Amdahl提出了一个引人注目的拇指规则(a rule of thumb):存储器容量应随着CPU速度提高而线性增大,从而保持一个平衡系统。Amdahl定律警告我们,如果忽略了计算中的某一部分,而一味地提高其余部分的速度,将会导致严重的后果。存储器层次设计过程中的缺陷和谬误1、 非常小的地址空间在计算机设计过程中,没有分配足够的地址位给存储器地址和存储器管理,这是唯一一个很难恢复的错误。2、 由一个程序的Cache性能推测另一个程序的Cache

10、性能3、 模拟足够的指令可以获得存储层次精确的性能指标4、 忽略操作系统对存储层次性能的影响第八章 多处理器并行机的主要障碍时软件。将计算机中最受限制部件中的指令所调用的数据流和指令流的并行度,将计算机分为四类:1、 单指令流,单数据流(SISD):单处理器2、 单指令流,多数据流(SIMD):同一条指令被多个使用不同数据流的处理器执行。每个处理器都有自己的数据存储器(因此是多数据),但系统中有唯一的指令存储器和控制器,用来获取和分配指令。由于并不要求完全的通用性,这种处理器通常是专用的。3、 多指令流,单数据流(MISD):至今没有这种类型的商用机器4、 多指令流,多数据流(MIMD):其中每个处理器取用自己的指令并对自己的数据进行操作,通常使用现有的微处理器实现。目前MIMD根据处理器个数分为两类:1、 集中式共享存储结构(处理器个数较少,20世纪90年代中期这种结构最多几十个处理器)2、 存储器在物理上是分布的。主要是为了支持很大数量的处理器,存储器系统不能采用集中共享方式组织,而必须分布在各个处理器上,否则存储器系统将无法提供大量处理器所要求的带宽。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号