处理器存储器I-湖南大学.PPT

  1. 1、本文档共158页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
处理器存储器I-湖南大学

Origin采用基于目录的协议。在Origin的结点中,有一个存储器和一个目录存储器。存储器被划分为存储器块(每个存储器块对应于一个Cache行)。 每块对应一个目录项,每个目录项包含其对应存储器块的状态信息和系统中各Cache共享存储情况的位向量,根据位向量可以知道本存储器块在哪些Cache中有拷贝。 当执行写存储器操作时,根据目录项的位向量可将有关结点中的Cache数据作废,从而实现了Cache的一致性。 7.7 多处理机实例 * 为减少栅栏记数时所需的时间,从而减小瓶颈的串行度,引进一种原语Fetch_and_increment,它可以原子地取值并增量。使用fetch_and_increment可以很好地改进栅栏的实现。 例7.6:写出fetch_and_increment栅栏的代码。条件与前面假设相同,并设一次fetch_and_increment操作也需100个时钟周期。计算10个处理器通过栅栏的时间,及所需的总线周期数。 (2) 栅栏实现 7.5 同 步  解 下面的程序段给出栅栏的代码。对n 个处理器,这种实现需要进行n次fetch_and_increment操作,访问count变量的n次cache失效和释放时的n次Cache失效,这样总共需要3n个总线事务。对10个处理器,总共需要30个总线事务或3000个时钟周期。这里如同排队锁那样,时间与处理器个数成线性增长。 当然,实现组合树栅栏时也可采用fetch_and_increment来降低树中每个结点的串行竞争。 7.5 同 步 local_sense= ! local_sense; /*local_sense变反*/ fetch-and-increment(count); /*原子性更新*/ if(count==total){ /*进程全部到达*/ count=0; /*初始化计数器*/ release=local_sense; /*释放进程*/ } else { /*还有进程未到达*/ spin(releaze=local_sense); /*等待信号*/ } 7.5 同 步 多线程使多个线程以重叠的方式共享单个处理器的功能单元。 7.6 同时多线程 为实现共享,处理器必须保存各个线程的独立状态。 硬件必须能够较快地完成线程间的切换。线程的切 换应该比进程的切换要高效的多,进程的切换一般 需要成百上千个处理器时钟周期。 第7章 多处理机 第一种方法:细粒度多线程技术 它在每条指令间都能进行线程的切换,从而导 致多个线程的交替执行。 主要优点:能够隐藏由任何或长或短的阻塞带来的 吞吐率的损失 主要缺点:减慢了每个独立线程的执行 目前有两种主要的多线程实现方法 7.6 同时多线程 第二种方法:粗粒度多线程技术 粗粒度多线程之间的切换只在发生代价较高、 时间较长的阻塞出现时。 缺点:不能有效地减少吞吐率的损失。 原因:由粗粒度多线程的流水线建立时间的开销造 成的。由于实现粗粒度多线程的CPU只执行单个线 程的指令,因此当发生阻塞时,流水线必须排空或 暂停。阻塞后切换的新的线程在指令执行产生结果 之前必须先填满整个流水线。 7.6 同时多线程 7.6.1 将线程级并行转换为指令级并行 同时多线程技术是一种在多流出、动态调度处理器上开发线程级并行和指令级并行的改进的多线程技术。 1. 产生的主要原因 现代多流出处理器通常含有多个并行的功能单元, 而单个线程不能有效地利用这些功能单元。 通过寄存器重命名和动态调度机制,来自各个独立 线程的多条指令可以同时流出,而不考虑他们之间 的相互依赖关系;其相互依赖关系将通过动态调度 机制得以解决。 7.6 同时多线程 2. 一个超标量处理器在以下几种配置时其性能的差别 支持多线程技术的超标量处理器 由于缺乏足够的指令级并行而限制了流出槽 的利用率。 支持粗粒度多线程的超标量处理器 通过线程的切换部分隐藏了长时间阻塞带来 的开销。由于只有当发生阻塞时才进行线程切换, 新线程还需要流水线建立时间,所以会产生一些 完全空闲的时钟周期。 7.6 同时多线程 支持细粒度多线程的超标量处理器 线程的交替执行消除了完全空闲的流出槽。由于在每个时钟周期内只

您可能关注的文档

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档