第八章多处理机.doc

上传人:scccc 文档编号:14594365 上传时间:2022-02-09 格式:DOC 页数:5 大小:70KB
返回 下载 相关 举报
第八章多处理机.doc_第1页
第1页 / 共5页
第八章多处理机.doc_第2页
第2页 / 共5页
第八章多处理机.doc_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第八章多处理机.doc》由会员分享,可在线阅读,更多相关《第八章多处理机.doc(5页珍藏版)》请在三一文库上搜索。

1、第8章多处理机8.1 解释以下术语集中式共享多处理机:也称为对称式共享存储器多处理SMP。它一般由几十个处理器构成,各处理器共享一个集中式的物理存储器,这个主存相对于各处理器的关系是对称的,分布式共享多处理机: 它的共享存储器分布在各台处理机中, 每台处理机都带有自己的本地存储器,组成一个“处理机 - 存储器”单元。但是这些分布在各台处理机中的实际存储器又合在一起统一编址, 在逻辑上组成一个共享存储器。这些处理机存储器单元通过互连网络连接在一起 ,每台处理机除了能访问本地存储器外,还能通过互连网络直接访问在其他处理机存储器单元中的 “远程存储器 ”。通信延迟:通信延迟发送开销跨越时间传输时间接

2、收开销。计算 /通信比:反映并行程序性能的一个重要的度量。在并行计算中,每次数据通信要进行的计算与通信开销的比值。多 Cache 一致性:多处理机中,当共享数据进入 Cache,就可能出现多个处理器的都有同一存储器块的副本,要保证多个副本数据是一致的。Cache 中监听协议: 每个 Cache 除了包含物理存储器中块的数据拷贝之外, 也保存着各个块的共享状态信息。 Cache 通常连在共享存储器的总线上,各个 Cache 控制器通过监听总线来判断它们是否有总线上请求的数据块。目录协议: 用一种专用的存储器所记录的数据结构。 它记录着可以进入的访问状态、该块在各个处理器的共享状态以及是否修改过等

3、信息。Cache 的每个数据块写作废协议:在处理器对某个数据项进行写入之前,它拥有对该数据项的唯一的访问权。写更新协议:当一个处理器对某数据项进行写入时,它把该新数据广播给所有其它这些 Cache 用该新数据对其中的副本进行更新。Cache。栅栏同步: 栅栏强制所有到达该栅栏的进程进行等待。直到全部的进程到达栅栏,然后释放全部进程,从而形成同步。旋转锁:处理机环绕一个锁不停地旋转而请求获得该锁。同时多线程: 是一种在多流出、 动态调度的处理器上同时开发线程级并行和指令级并行的技术,它是多线程技术的一种改进。细粒度多线程技术:是一种实现多线程的技术。它在每条指令之间都能进行线程的切换,从而使得多

4、个线程可以交替执行。 通常以时间片轮转的方法实现这样的交替执行, 在轮转的过程中跳过处于停顿的线程。粗粒度多线程技术: 是一种实现多线程的技术。 只有线程发生较长时间的停顿时才切换到其他线程。SMP:对称式共享存储器多处理MPP :即大规模并行处理,按照当前的标准,具有几百台几千台处理机的任何机器都是大规模并行处理系统。8.2 一个具有32 台处理机的系统,对远程存储器访问时间是2000ns。除了通信以外,假设计算中的访问均命中局部存储器。当发出一个远程请求时,本地处理机挂起。处理机的时钟周期时间是10ns,假设指令基本的CPI 为 1.0(设所有访存均命中Cache)。对于下述两种情况:(

5、1) 没有远程访问;( 2) 0.5%的指令需要远程访问。试问前者比后者快多少?解:已知远程访问率p = 0.5%,远程访问时间t = 2000ns,时钟周期T = 10ns远程访问开销C = t/T = 2000ns/10ns = 200 (时钟周期数)有 0.5%远程访问的机器的实际CPI2 为:CPI2= CPI 1 + p C = 1.0 + 0.5% 200 = 2.0只有局部访问的机器的基本CPI1 = 1.0CPI2/ CPI 1 = 2.0/1.0 = 2(倍)因此,没有远程访问状态下的机器速度是有0.5%远程访问的机器速度的2 倍。8.3 什么是多处理机的一致性?给出解决一致

6、性的监听协议和目录协议的工作原理。答:( 1 ) 对多个处理器维护一致性的协议称为Cache 一致性协议。( 2)目录协议的工作原理:采用一个集中的数据结构目录。对于存储器中的每一个可以调入 Cache 的数据块,在目录中设置一条目录项, 用于记录该块的状态以及哪些Cache中有副本等相关信息。目录协议根据该项目中的信息以及当前要进行的访问操作,依次对相应的 Cache 发送控制消息, 并完成对目录项信息的修改。此外,还要向请求处理器发送响应信息。( 3)监听协议的工作原理:每个Cache 除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。Cache 通常连在共享存储器的总线

7、上,当某个Cache 需要访问存储器时, 它会把请求放到总线上广播出去,其他各个Cache 控制器通过监听总线来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。8.4 在标准的栅栏同步中,设单个处理器的通过时间(包括更新计数和释放锁)为C,求 N 个处理器一起进行一次同步所需要的时间。解:我们忽略读写锁的时间。N 个处理器中的每一个都需要C 个时钟周期来锁住与栅栏相关的计数器,修改它的值,然后释放锁。考虑最坏情况,所有N 个处理器都要对计数器加锁并修改它的值, 由于锁只能顺序访问计数器, 在同一时间, 只能有一个处理器修改计数器的数据。所以,总共要花 NC 个时钟周期使得所有的处理

8、器都到达数据栅栏。8.6 采用排队锁和 fetch-and-increment 重新实现栅栏同步,并将它们分别与采用旋转锁实现的栅栏同步进行性能比较。解: fetch-and-increment (count);if (count=total)/进程全部到达count=0 ;/重置计数器release=1 ;/释放进程else/还有进程未到达spin(release=1) ;/等待信号当有 N 个处理器时, 上述代码执行fetch-and-increment 操作 N 次,当访问释放操作的时候,有 N 个 Cache 未命中。当最后一个处理器到达栅栏条件后, release 被置为“ 1”,此

9、时有 N-1 个 Cache 未命中(对于最后一个到达栅栏的处理器,当它读 release 的时候,将在主存中命中)。所以,共有 3N-1 次总线传输操作。如果有 10 个处理器,则共有 29 次总线传输操作,总共需要 2900 个时钟周期。8.7 有些机器实现了专门的锁广播一致性协议,实现上可能使用不同的总线。假设使用写广播协议,重新给出例8.3 旋转锁的时间计算。解:当实现了专门的锁广播一致性协议后,每当一把锁被释放的时候,和锁相关的值将被广播到所有处理器,这意味着在处理器对锁变量进行读操作的时候,未命中的情况永远不会发生。假定每个 Cache 都有一个数据块保留锁变量的初值。通过下表可以知道,10 次上锁 /释放锁的平均时间是 550 个时钟周期,总时间是5500 个时钟周期。事件持续时间所有处理器都读(命中)锁0释放锁的处理器进行写(不命中)广播100读(命中)锁(处理器认为锁是空闲的)0一个处理器进行写交换广播,同时还有9 个写广播1000一个处理器得到并释放锁的总时间1100

展开阅读全文
相关资源
猜你喜欢
相关搜索

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


经营许可证编号:宁ICP备18001539号-1