版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、补充章节:多处理机与多计算机,对称式共享存储器体系结构,多个处理器共享一个存储器。 当处理器规模较小时,这种机器十分经济。 支持对共享数据和私有数据的Cache缓存 私有数据供一个单独的处理器使用,而共享数据供多个处理器使用。 共享数据进入Cache产生了一个新的问题 Cache的一致性问题,对称式共享存储器体系结构,不一致产生的原因(Cache一致性问题),IO操作 Cache中的内容可能与由IO子系统输入输 出形成的存储器对应部分的内容不同。 共享数据 不同处理器的Cache都保存有对应存储器单元 的内容。,(2) 存储器的一致性(非正式定义) 如果对某个数据项的任何读操作均可得到其最新写
2、入的值,则认为这个存储系统是一致的。,What: 返回给读操作的是什么值 When: 什么时候才能将已写入的值返回给读操作,需要满足以下满足条件 处理器P对X进行一次写之后又对X进行读, 读和写之间没有其它处理器对X进行写,则 读的返回值总是写进的值。,存储系统行为的两个不同方面,对称式共享存储器体系结构, 一个处理器对X进行写之后,另一处理器对X进行读,读和写之间无其它写,则读X的返回值应为写进的值。 对同一单元的写是顺序化的,即任意两个处理器对同一单元的两次写,从所有处理器看来顺序都应是相同的。 假设直到所有的处理器均看到了写的结果,一次写操作才算完成;允许处理器无序读,但必须以程序规定的
3、顺序进行写。,对称式共享存储器体系结构,在一致的多处理机中,Cache提供两种功能:,共享数据的迁移 降低了对远程共享数据的访问延迟。 共享数据的复制 不仅降低了访存的延迟,也减少了访问共享数据所产生的冲突。,小规模多处理机不是采用软件而是采用硬件技术实现Cache一致性。,实现一致性的基本方案,对称式共享存储器体系结构,(1) Cache一致性协议 对多个处理器维护一致性的协议。 (2) 关键:跟踪记录共享数据块的状态 (3) 共享数据状态跟踪记录技术,目录 物理存储器中共享数据块的状态及相关信息均被保存在一个称为目录的地方。 监听(snooping) 每个Cache除了包含物理存储器中块的
4、数据拷贝之外,也保存着各个块的共享状态信息。,对称式共享存储器体系结构,Cache通常连在共享存储器的总线上,各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块。,两种更新协议 (1) 写作废协议 在一个处理器写某个数据项之前保证它对该数据项有唯一的访问权。,对称式共享存储器体系结构,(2) 写更新协议 当一个处理器写某数据项时,通过广播使其它。 Cache中所有对应的该数据项拷贝进行更新。,(3) 写更新和写作废协议性能上的差别主要来自:,对同一数据的多个写而中间无读操作的情况,写更新协议需进行多次写广播操作,而在写作废协议下只需一次作废操作 对同一块中多个字进行写,写更新协
5、议对每个字的写均要进行一次广播,而在写作废协议下仅在对本块第一次写时进行作废操作。 从一个处理器写到另一个处理器读之间的延迟通常在写更新模式中较低。而在写作废协议中,需要读一个新的拷贝。,对称式共享存储器体系结构,监听协议及其实现,小规模多处理机中实现写作废协议的关键 利用总线进行作废操作:把要作废的地址放到总线上(一个放,多个读) 写顺序化:由总线实现 写直达Cache:因为所有写的数据同时被写回主存,则从主存中总可以取到最新的数据值。 对于写回Cache,得到数据的最新值会困难一些,因为最新值可能在某个Cache中,也可能在主存中。,对称式共享存储器体系结构,增加Cache中块的标志位 状
6、态: 无效(invalid) 无副本 共享(shared) 至少一个副本,clean 独占(exclusive) 唯一副本,dirty Cache块的拥有者:拥有唯一的Cache块副的处理器。 因为每次总线任务均要检查Cache的地址位,这 可能与CPU对Cache的访问冲突。可通过下列两种 技术之一降低冲突: 复制标志位 采用多级包容Cache (许多系统采用),存储器分布于各结点中,所有的结点通过网络互 连。访问可以是本地的,也可是远程的。 可以不支持Cache一致性:规定共享数据不进入Cache,仅私有数据才能保存在Cache中。 优点: 所需的硬件支持很少(因为远程访问存取量仅是一个字
7、(或双字)而不是一个Cache块),分布式共享存储器体系结构,缺点: (1) 实现透明的软件Cache一致性的编译机制能力 有限。 (2) 没有Cache一致性,机器就不能利用取出同一 块中的多个字的开销接近于取一个字的开销 这个优点,这是因为共享数据是以Cache块为 单位进行管理的。当每次访问要从远程存储 器取一个字时,不能有效利用共享数据的空 间局部性。 (3) 诸如预取等延迟隐藏技术对于多个字的存取 更为有效,比如针对一个Cache块的预取。,解决Cache一致性问题的关键: 寻找替代监听协议的一致性协议。,目录协议 在每个结点增加目录存储器,用于存放目录 对每个结点增加目录表后的分布
8、式存储器的系统结构, (1) 目录协议必须实现两种基本操作,处理读失效 处理对共享、干净块的写 对共享块写失效的处理是这两个操作的简单组合,(2) 目录必须跟踪记录每个存储块的状态 存储块的状态有三种:,基于目录的Cache一致性及其实现,共享 在一个或多个处理器上具有这个块的副本, 且主存中的值是最新值(所有Cache均相同)。 未缓冲 所有处理器的Cache都没有该块的拷贝。 专有 仅有一个处理器上有该块的副本,且已对该块 进行了写操作,而主存的拷贝仍是旧的。这个处理器 称为该块的拥有者。,(3) 由于写作废操作的需要,还必须记录哪些处理器 有该块的拷贝 方法:对每个主存块设置一个位向量
9、当该块被共享时,每个位指出与之对应的处理器是否有该块的拷贝。 当该块为专有时,可根据位向量来寻找其拥有者。,同 步 通常是使用硬件提供的有关同步指令,通过用户级软件例程建立的。 基本硬件原语 在多处理器同步中,主要功能是一组能自动读出后并进行写存储单元的硬件原语。它们能够自动读修改单元。通常情况下,用户不直接使用基本的硬件原语,原语主要供系统程序员用来编制同步库函数。,功能:将一个存储单元的值和一个寄存器的值 进行交换。建立一个锁,锁值为“0”表示开锁, 为“1”表示上锁。 处理器加锁时,将对应于该锁的存储单元的值 交换为某个寄存器的值。 实现同步的关键: 操作的原子性,1. 典型操作:原子交
10、换(atomic exchange),2. 测试并置定(test_and_set) 先测试一个值,如果符合条件则修改其值。 3. 读取并加1(fetch_and_increment) 它返回存储单元的值并自动增加该值。 4. 使用指令对,LL(load linked或load locked)的取指令 SC(store conditional)的特殊存指令,例实现对由R1指出的存储单元进行原子交换操作 try:mov R3,R4 ;送交换值 ll R2,0(R1) ;load linked sc R3,0(R1) ;store conditional beqz R3,try ;存失败转移 mov
11、 R4,R2 ;将取的值送往R4 最终R4和由R1指向的单元值进行原子交换,在ll和sc之间如有别的处理器插入并修改了存储单元的值,sc将返回“0”并存入R3中,从而使指令序列再重新循环。,llsc机制的一个优点:可用来构造别的同步原语 例如:原子的fetch-and-increment try: ll R2,0(R1) ;load linked addi R2,R2,1 ;增加 sc R2,0(R1) ;store conditional beqz R2,try ;存失败转移 指令对的实现必须跟踪地址 由ll指令指定一个寄存器,该寄存器存放着一个 单元地址,这个寄存器常称为连接寄存器。,用一
12、致性实现锁,采用多处理机的一致性机制来实现旋转锁。 旋转锁 处理器环绕一个锁不停地旋转而请求获得该锁。,1. 无Cache一致性机制 在存储器中保存锁变量,处理器可以不断地通 过一个原子操作请求加锁,比如先交换,再测试返 回值从而知道锁的状况。释放锁的时候,处理器可 简单地将锁置为“0” 。,li R2,1 lockit: exch R2,0(R1) ;原子交换 bnez R2,lockit ;是否已加锁?,2. 机器支持Cache一致性 将锁缓冲进入Cache,并通过一致性机制使锁值保持一致。,优点,可使“环绕”的进程对本地Cache块进行操作; 可利用锁访问的局部性,即处理器最近使用过 的
13、锁不久又会使用。,同步性能问题 简单旋转锁不能很好地适应可伸缩性。大规模机器 中所有的处理器会产生出大量的竞争问题。 例:设总线上有10个处理器同时准备对同一变量加锁。假设每个总线事务处理(读失效或写失效)是100个时钟周期,忽略实际的Cache块锁的读写时间以及加锁的时间,求10个处理器请求加锁所需的总线事务数目。设时间为0时锁已释放并且所有处理器在旋转,求处理这10个请求时间为多长?假设总线在新的请求到达之前已服务完挂起的所有请求,并且处理器速度相同。,解 当i个处理器竞争锁的时候,他们完成下列操作序列,每一个操作产生一个总线事务: 访问该锁的i个LL指令操作; 试图锁住该锁的i个SC指令
14、操作; 1个释放锁的存操作指令。 因此对n个处理器,总线事务的总和为: n (2i+1)=n(n+1)+n=n2+2n i=1 对于10个处理器有120个总线事务,需要12000个时钟周期。,大规模机器的同步 所希望的同步机制:在无竞争的条件下延迟较小 在竞争激烈时串行性小 1. 软件实现 旋转锁 (1) 旋转锁实现的主要问题 当多个进程检测并竞争锁时引起的延迟 (2) 一种解决办法: 当加锁失败时就人为地推延 这些进程的等待时间。 (3) 具有指数延迟的旋转锁代码,2. 硬件原语支持 硬件同步原语:针对锁,(1) 排队锁 可以排队记录等待的进程,当锁释放时送 出一个已确定的等待进程。,硬件实
15、现,在基于目录的机器上,通过硬件向量等方式 来进行排队和同步控制。 在基于总线的机器中要将锁从一个进程显式 地传给另一个进程,软件实现会更好一些。,在第一次取锁变量失效时,失效被送入同步控 制器。同步控制器可集成在存储控制器中(基 于总线的系统)或集成在目录控制器中。,排队锁的工作过程,如果锁空闲,将其交给该处理器;如果锁忙,控制 器产生一个结点请求记录,并将锁忙的标志返回给 处理器,然后该处理器不停地进行检测。 当该锁被释放时,控制器从等待的进程排队中选出 一个使用锁,这可以通过更新所选进程Cache中的 锁变量来完成。,首先,需要识别出对锁进行初次访问的进程, 从而对其进行排队操作。 第二
16、,等待进程队列可通过多种机制实现,在 基于目录的机器中,队列为共享集合,需用类 似目录向量的硬件来实现排队锁的操作。 最后,必须有硬件来回收锁,因为请求加锁的 进程可能被切换时切出,并且有可能在同一处 理器上不再被调度切入。,排队锁功能实现中有一些要考虑的关键问题,多线程使多个线程以重叠的方式共享单个处理器的功能单元。,同时多线程,为实现共享,处理器必须保存各个线程的独立状态。 硬件必须能够较快地完成线程间的切换。线程的切 换应该比进程的切换要高效的多,进程的切换一般 需要成百上千个处理器时钟周期。,第一种方法:细粒度多线程技术 它在每条指令间都能进行线程的切换,从而导 致多个线程的交替执行。
17、 主要优点:能够隐藏由任何或长或短的阻塞带来的 吞吐率的损失 主要缺点:减慢了每个独立线程的执行,目前有两种主要的多线程实现方法,第二种方法:粗粒度多线程技术 粗粒度多线程之间的切换只在发生代价较高、 时间较长的阻塞出现时。 缺点:不能有效地减少吞吐率的损失。 原因:由粗粒度多线程的流水线建立时间的开销造 成的。由于实现粗粒度多线程的CPU只执行单个线 程的指令,因此当发生阻塞时,流水线必须排空或 暂停。阻塞后切换的新的线程在指令执行产生结果 之前必须先填满整个流水线。,将线程级并行转换为指令级并行 同时多线程技术是一种在多流出、动态调度处理器上开发线程级并行和指令级并行的改进的多线程技术。
18、1. 产生的主要原因,现代多流出处理器通常含有多个并行的功能单元, 而单个线程不能有效地利用这些功能单元。 通过寄存器重命名和动态调度机制,来自各个独立 线程的多条指令可以同时流出,而不考虑他们之间 的相互依赖关系;其相互依赖关系将通过动态调度 机制得以解决。,2. 一个超标量处理器在以下几种配置时其性能的差别,支持多线程技术的超标量处理器 由于缺乏足够的指令级并行而限制了流出槽 的利用率。 支持粗粒度多线程的超标量处理器 通过线程的切换部分隐藏了长时间阻塞带来 的开销。由于只有当发生阻塞时才进行线程切换, 新线程还需要流水线建立时间,所以会产生一些 完全空闲的时钟周期。,支持细粒度多线程的超
19、标量处理器 线程的交替执行消除了完全空闲的流出槽。由于在每个时钟周期内只流出一个线程的指令,指令级并行的限制仍然导致一个时钟周期内存在不少的空闲流出槽。 支持同时多线程的超标量处理器 通过在一个时钟周期内调度多个线程使用流出槽,从而同时实现线程级并行和指令级并行。 理想情况下,流出槽的使用率只受限于多个线程对资源的需求和可用资源间的不平衡。,超标量处理器中的4种不同的流出槽使用方法,开发的基础: 使用动态调度技术的处理器已经具有 了开发线程级并行所需的硬件设置。 动态调度超标量处理器有大量的虚拟寄存器组,可 以用来保存每个独立线程的寄存器状态。 由于寄存器重命名机制提供了唯一的寄存器标识符,
20、多个线程的指令可以在数据路径上混合执行,而不 会导致各线程间源操作数和目的操作数的混乱。 多线程技术可以通过在一个乱序执行的处理器上为 每个线程设置重命名表、保留各自的PC值、提供多 个线程的指令结果提交的能力来实现。,同时多线程处理器的设计 同时多线程只有在细粒度的实现方式下才有意义。 并发多个同优先级的线程必然拉长单个线程的执 行时间。 通过指定一个优先线程来减小这种影响,从 而在整体性能提高的同时对单个指定的线程性能 只产生较小的影响。,多个线程的混合执行将不可避免地影响单个线程 的执行时间 为提高单个线程的性能,应该为指定的优先线程尽可能多地向前取指,并且在分支预测失效和预取缓冲失效的
21、情况下清空取指单元。但是这样限制了其他线程可用来调度的指令条数,从而减少了吞吐率。所有的多线程处理器都必须在这里寻求一种折衷方案。,只要一有可能,处理器就运行指定的优先线程。 从取指阶段开始就优先处理优先线程 只要优先线程的指令预取缓冲区未满,就为它 优先取指。只有当优先线程的缓冲区填满以后才为 其他线程预取指令。 当有两个优先线程时,需要并发预取两个指令流, 这给取指部件和指令cache的设置都增添了复杂度。,设计同时多线程处理器时面临的其他主要问题,指令流出单元也要优先考虑指定的优先线程,只有当优先线程阻塞不能流出的时候才考虑其他线程。,设置用来保存多个上下文所需的庞大的寄存器文件 必须保
22、持每个时钟周期的低开销 特别是在关键步骤上 需要保证由于并发执行多个线程带来的cache冲突 不会导致显著的性能下降。,通过研究这些问题还可以了解到,在大多情况下多线程所导致的额外性能开销是很小 的,简单的线程切换选择算法就足够; 目前的超标量处理器的效率是比较低的,还有很大 的改进余地,同时多线程是获得吞吐率改进的最有前途的方法之一。,同时多线程的性能 图1表示在超标量处理器上增添8个线程的同时多线程能力时获得的性能提高 图2表示SMT与基本的超标量处理器在主要内部指标利用率和命中率上的对比,图1,图2,两个特点,超标量处理器本身功能十分强大,它具有很大的一级cache、二级cache以及大
23、量的功能单元。仅仅采用指令级并行,不可能利用全部的硬件性能。 同时多线程的能力也很强大,可以支持8个线程,并为两个线程同步取指。将超标量和同时多线程结合起来,在指令级并行基础上进一步开发线程级并行,可以获得显著的性能提高。,Origin 2000分布共享存储器结构的大规模并行 多处理机系统,采用超结点的模块结构,可以从 1个处理器扩展到128个处理器。 Origin 2000采用超标量MIPS R10000处理器,运 行Unix的64位IRIX操作系统。,多处理机实例,Origin基于NUMA体系结构的 每个结点可安装1个或2个MIPS R10000微 处理器、第二级高速缓存(L2 Cache
24、)、主存 储器、目录存储器及Hub等,Hub用于连接微处 理器、存储器、IO和路由器等。 Origin存储器系统每个结点的主存储器容量: 4GB 结点的Hub内含4个接口和交叉开关,Origin体系结构,存储器最大传输率为780Mbs IO和路由器接口最大传输率: 2780Mbs(1.56Gb/s) Origin的路由器有6个端口,用于连接结点或其它路由器。Origin的路由器和互连网络是ASIC芯片,通过芯片内部的交叉开关选择数据传送路径。 为了减少数据在路由器之间的传送延迟,加快传送速度,可将处于对角位置的路由器进行连接。,4处理器系统,16处理器系统,128处理器系统,128处理器构成的Origin 2000系统由4个立方体组成,在立方体之间传送数据多经过了一级路由器。 在结点内部实现的是SMP(对称多处理器)结构,由于只有两个处理器,所以不存在SMP结构的总线瓶颈问题。在结点之间实现的是大规模并行处理结构,但又解决了共享存储器问题。因此在Origin系统中,无论是访问存储器的时间还是结点间传送数据的频带宽度都很理想。,访问存储器的延迟时间: 系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宅基地流转合同(2篇)
- 小学教学综合楼专用合同(2篇)
- 居民不配合下水改造的合同(2篇)
- 婚姻承诺合同(2篇)
- 2024年度品牌授权使用合同协议范本2篇
- 2024版服装加工厂生产外包合同3篇
- 会议室租赁合同范本
- 2024版遥感卫星应用系统建设合同3篇
- 二零二四年校园招聘传单派发服务合同3篇
- 手车合同范本版
- 2024消防知识培训
- 客户服务标准化服务流程
- 2024年国考公务员行测真题(含参考答案)
- 老旧住宅小区加装电梯施工组织方案
- 校园欺凌谈话记录表
- 计算机专业生涯发展展示
- 大学生职业生涯发展报告
- 露天矿开采课件
- 人工智能智慧树知到答案章节测试2023年复旦大学
- 锅炉房巡查制度
- 9.肿瘤学教案-肺癌
评论
0/150
提交评论