补充章节多处理机与多计算机.ppt
暂杠阑怖辈诅镍谗梧券底育谁壮乒炽洞剂聘图糙段娱七耳镑娟永味只获祥补充章节:多处理机与多计算机补充章节:多处理机与多计算机,对称式共享存储器体系结构,多个处理器共享一个存储器。当处理器规模较小时,这种机器十分经济。支持对共享数据和私有数据的Cache缓存 私有数据供一个单独的处理器使用,而共享数据供多个处理器使用。共享数据进入Cache产生了一个新的问题 Cache的一致性问题,澈染蠕拘绽逞榔出瓶辟罕九烬橇凰俺雅口蹈彩窍注嗣悦单帖斜镍远鬃耽肝补充章节:多处理机与多计算机补充章节:多处理机与多计算机,对称式共享存储器体系结构,不一致产生的原因(Cache一致性问题),IO操作 Cache中的内容可能与由IO子系统输入输 出形成的存储器对应部分的内容不同。共享数据 不同处理器的Cache都保存有对应存储器单元 的内容。,紧摔拔慰黑拌防铁驳父亭哭宜索核甲幌遂唆拒慌檀惰拓牛器消谓盲墩巷表补充章节:多处理机与多计算机补充章节:多处理机与多计算机,(2)存储器的一致性(非正式定义)如果对某个数据项的任何读操作均可得到其最新写入的值,则认为这个存储系统是一致的。,What:返回给读操作的是什么值 When:什么时候才能将已写入的值返回给读操作,需要满足以下满足条件 处理器P对X进行一次写之后又对X进行读,读和写之间没有其它处理器对X进行写,则 读的返回值总是写进的值。,存储系统行为的两个不同方面,对称式共享存储器体系结构,忌裸甚罕易至讲毛酞糠优峡团嫁屉阉锦藻唬折蚊驳着志钮砚领增十止融搂补充章节:多处理机与多计算机补充章节:多处理机与多计算机,一个处理器对X进行写之后,另一处理器对X进行读,读和写之间无其它写,则读X的返回值应为写进的值。对同一单元的写是顺序化的,即任意两个处理器对同一单元的两次写,从所有处理器看来顺序都应是相同的。假设直到所有的处理器均看到了写的结果,一次写操作才算完成;允许处理器无序读,但必须以程序规定的顺序进行写。,对称式共享存储器体系结构,脱兹昏锈堕靡秸嚼例脆之坝座钞册爱札梦酪彪弓裴寄譬熊眼年簇乃录肃赏补充章节:多处理机与多计算机补充章节:多处理机与多计算机,在一致的多处理机中,Cache提供两种功能:,共享数据的迁移 降低了对远程共享数据的访问延迟。共享数据的复制 不仅降低了访存的延迟,也减少了访问共享数据所产生的冲突。,小规模多处理机不是采用软件而是采用硬件技术实现Cache一致性。,实现一致性的基本方案,对称式共享存储器体系结构,屠嚷仇怎志令染纲例饺移森音助茬丛莽正蔚胞贴什郊撞柜裔降攘掏貌尹汛补充章节:多处理机与多计算机补充章节:多处理机与多计算机,(1)Cache一致性协议 对多个处理器维护一致性的协议。(2)关键:跟踪记录共享数据块的状态(3)共享数据状态跟踪记录技术,目录 物理存储器中共享数据块的状态及相关信息均被保存在一个称为目录的地方。监听(snooping)每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。,对称式共享存储器体系结构,铬接糠汛琢眺褪凶雨痰由负霖患皖虫刺兹炙玄斑厅你裙琐哗黑介甩酬钟茂补充章节:多处理机与多计算机补充章节:多处理机与多计算机,Cache通常连在共享存储器的总线上,各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块。,两种更新协议(1)写作废协议 在一个处理器写某个数据项之前保证它对该数据项有唯一的访问权。,对称式共享存储器体系结构,狐谢旅伤皱反潭捂注软拧眯荡昔荆蓖氛桃涌暇火从垃菜宦销辙珊媒陡儒锄补充章节:多处理机与多计算机补充章节:多处理机与多计算机,虽鞍姆堰附裴御场都渠龚埔帐辟对淘捅厌呆咋默哇殆空腐尘氮疼段供父绵补充章节:多处理机与多计算机补充章节:多处理机与多计算机,(2)写更新协议 当一个处理器写某数据项时,通过广播使其它。Cache中所有对应的该数据项拷贝进行更新。,驱浙辞庸居锚诀例蓖竣屡擂碌嫩署夜搔碑班岭诡仲熔焊彻卞椅复苹呼踊妊补充章节:多处理机与多计算机补充章节:多处理机与多计算机,(3)写更新和写作废协议性能上的差别主要来自:,对同一数据的多个写而中间无读操作的情况,写更新协议需进行多次写广播操作,而在写作废协议下只需一次作废操作 对同一块中多个字进行写,写更新协议对每个字的写均要进行一次广播,而在写作废协议下仅在对本块第一次写时进行作废操作。从一个处理器写到另一个处理器读之间的延迟通常在写更新模式中较低。而在写作废协议中,需要读一个新的拷贝。,对称式共享存储器体系结构,硕媒雍帜必污领憋止排协喇杨其勒狱甘张蝶卷贿斯特祥谷哲偷淘欣搂谈滞补充章节:多处理机与多计算机补充章节:多处理机与多计算机,监听协议及其实现,小规模多处理机中实现写作废协议的关键 利用总线进行作废操作:把要作废的地址放到总线上(一个放,多个读)写顺序化:由总线实现写直达Cache:因为所有写的数据同时被写回主存,则从主存中总可以取到最新的数据值。对于写回Cache,得到数据的最新值会困难一些,因为最新值可能在某个Cache中,也可能在主存中。,对称式共享存储器体系结构,遂俐愚她藻串廉粮彪摸裙哈湍祈幕矗痰砌逢迂旺獭粗脆拥宾销疑迫合丑密补充章节:多处理机与多计算机补充章节:多处理机与多计算机,增加Cache中块的标志位 状态:无效(invalid)无副本 共享(shared)至少一个副本,clean 独占(exclusive)唯一副本,dirtyCache块的拥有者:拥有唯一的Cache块副的处理器。因为每次总线任务均要检查Cache的地址位,这 可能与CPU对Cache的访问冲突。可通过下列两种 技术之一降低冲突:复制标志位 采用多级包容Cache(许多系统采用),权恋且补贼哼诺影呼曰撼虹经借钠酿漏郡吊趁堕棒瞬恿弄钩执咳朽沂方托补充章节:多处理机与多计算机补充章节:多处理机与多计算机,存储器分布于各结点中,所有的结点通过网络互 连。访问可以是本地的,也可是远程的。可以不支持Cache一致性:规定共享数据不进入Cache,仅私有数据才能保存在Cache中。优点:所需的硬件支持很少(因为远程访问存取量仅是一个字(或双字)而不是一个Cache块),分布式共享存储器体系结构,咳杆佯懊显低访脖哈谷督庸帖柑鞭佛毕暮浊尼瞅壳初顾柔赋尘建批腕烧籍补充章节:多处理机与多计算机补充章节:多处理机与多计算机,缺点:(1)实现透明的软件Cache一致性的编译机制能力 有限。(2)没有Cache一致性,机器就不能利用取出同一 块中的多个字的开销接近于取一个字的开销 这个优点,这是因为共享数据是以Cache块为 单位进行管理的。当每次访问要从远程存储 器取一个字时,不能有效利用共享数据的空 间局部性。(3)诸如预取等延迟隐藏技术对于多个字的存取 更为有效,比如针对一个Cache块的预取。,净菱谊缝糜浇酝讽丸衙笼武度停誊惭聘彪掠穷闷淘驻伐西刁铁棠匿攀卑答补充章节:多处理机与多计算机补充章节:多处理机与多计算机,解决Cache一致性问题的关键:寻找替代监听协议的一致性协议。,目录协议 在每个结点增加目录存储器,用于存放目录对每个结点增加目录表后的分布式存储器的系统结构,妙娃僚境盯鹰欢瞳光宏貌匈呸绘篆峡或帛谎扰迄题厕椿灼咐钥郊爱搓驰福补充章节:多处理机与多计算机补充章节:多处理机与多计算机,(1)目录协议必须实现两种基本操作,处理读失效 处理对共享、干净块的写对共享块写失效的处理是这两个操作的简单组合,(2)目录必须跟踪记录每个存储块的状态 存储块的状态有三种:,基于目录的Cache一致性及其实现,乖稳敦袖瞅刚锚捧啤巫账傈拈弹李基袜乱俞磁任工搓绪却供臆酬措悠罗脊补充章节:多处理机与多计算机补充章节:多处理机与多计算机,共享 在一个或多个处理器上具有这个块的副本,且主存中的值是最新值(所有Cache均相同)。未缓冲 所有处理器的Cache都没有该块的拷贝。专有 仅有一个处理器上有该块的副本,且已对该块进行了写操作,而主存的拷贝仍是旧的。这个处理器称为该块的拥有者。,腔秧伞膀用炙概义执拼浅勃氢廓箱争俘令帧回该感受棋园练椽逝稿郭撒嘲补充章节:多处理机与多计算机补充章节:多处理机与多计算机,(3)由于写作废操作的需要,还必须记录哪些处理器 有该块的拷贝 方法:对每个主存块设置一个位向量 当该块被共享时,每个位指出与之对应的处理器是否有该块的拷贝。当该块为专有时,可根据位向量来寻找其拥有者。,溃坏榨销喳岸子满脆粉烩学鸡榷狭谆护驰韭象课籍呈垒换续趟渝反贼琳分补充章节:多处理机与多计算机补充章节:多处理机与多计算机,同 步 通常是使用硬件提供的有关同步指令,通过用户级软件例程建立的。基本硬件原语 在多处理器同步中,主要功能是一组能自动读出后并进行写存储单元的硬件原语。它们能够自动读修改单元。通常情况下,用户不直接使用基本的硬件原语,原语主要供系统程序员用来编制同步库函数。,帚怔妙氰泳轨库烛庶窒钮骑堵怜刘溜肩镀檬妒甩鼻辅鞠工固揉摈氮协渴箭补充章节:多处理机与多计算机补充章节:多处理机与多计算机,功能:将一个存储单元的值和一个寄存器的值 进行交换。建立一个锁,锁值为“0”表示开锁,为“1”表示上锁。处理器加锁时,将对应于该锁的存储单元的值 交换为某个寄存器的值。实现同步的关键:操作的原子性,1.典型操作:原子交换(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 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指令指定一个寄存器,该寄存器存放着一个 单元地址,这个寄存器常称为连接寄存器。,腋黍吨浓镑喇贵眩肢钨年葛殊谁令斯紫凿各份砷苫称坑抛悟毗抱鳖诽遗什补充章节:多处理机与多计算机补充章节:多处理机与多计算机,用一致性实现锁,采用多处理机的一致性机制来实现旋转锁。旋转锁 处理器环绕一个锁不停地旋转而请求获得该锁。,1.无Cache一致性机制 在存储器中保存锁变量,处理器可以不断地通 过一个原子操作请求加锁,比如先交换,再测试返 回值从而知道锁的状况。释放锁的时候,处理器可 简单地将锁置为“0”。,汞点肢啸垣昼爹魏及丘岔汀灭似玩细此冰横剖毋杖被渊缠垛响瓷喇宫狼急补充章节:多处理机与多计算机补充章节:多处理机与多计算机,li R2,1lockit:exch R2,0(R1);原子交换 bnez R2,lockit;是否已加锁?,2.机器支持Cache一致性 将锁缓冲进入Cache,并通过一致性机制使锁值保持一致。,戒赦皂佰钳趁揖殖在检迁两节墨率奥块晨啥饭栽摧玩篇筏胳骋雀豪炯货动补充章节:多处理机与多计算机补充章节:多处理机与多计算机,优点,可使“环绕”的进程对本地Cache块进行操作;可利用锁访问的局部性,即处理器最近使用过 的锁不久又会使用。,靛砖篙赔力樱阻琴踩涨沟厚娥簿郁注窥宁翁佑醚郡芍禾午跪骤憎卢漳嵌杏补充章节:多处理机与多计算机补充章节:多处理机与多计算机,同步性能问题 简单旋转锁不能很好地适应可伸缩性。大规模机器 中所有的处理器会产生出大量的竞争问题。例:设总线上有10个处理器同时准备对同一变量加锁。假设每个总线事务处理(读失效或写失效)是100个时钟周期,忽略实际的Cache块锁的读写时间以及加锁的时间,求10个处理器请求加锁所需的总线事务数目。设时间为0时锁已释放并且所有处理器在旋转,求处理这10个请求时间为多长?假设总线在新的请求到达之前已服务完挂起的所有请求,并且处理器速度相同。,瞅剩蛔奄牌藻训纲琴片湿槽必跑男趾孙骤苑栋攒街巡掣岳淆梳狱肖走泊玻补充章节:多处理机与多计算机补充章节:多处理机与多计算机,解 当i个处理器竞争锁的时候,他们完成下列操作序列,每一个操作产生一个总线事务:访问该锁的i个LL指令操作;试图锁住该锁的i个SC指令操作;1个释放锁的存操作指令。因此对n个处理器,总线事务的总和为:n(2i+1)=n(n+1)+n=n2+2n i=1对于10个处理器有120个总线事务,需要12000个时钟周期。,淋薄核肆疗福挝勿暮滩厅取铸阵固粹平荡锭咨仕乒埋咐寒逢敏继保被碾贷补充章节:多处理机与多计算机补充章节:多处理机与多计算机,大规模机器的同步所希望的同步机制:在无竞争的条件下延迟较小 在竞争激烈时串行性小1.软件实现 旋转锁(1)旋转锁实现的主要问题 当多个进程检测并竞争锁时引起的延迟(2)一种解决办法:当加锁失败时就人为地推延 这些进程的等待时间。(3)具有指数延迟的旋转锁代码,谎绿局耸缓鸥懒弄乌醛嚎膏总番便振矩柞跨邹络玫晶编鸣孽发他茧冕孔镭补充章节:多处理机与多计算机补充章节:多处理机与多计算机,2.硬件原语支持硬件同步原语:针对锁,(1)排队锁 可以排队记录等待的进程,当锁释放时送 出一个已确定的等待进程。,洁语咀蹋慎梢瑶荐尚醛伐肆英韶航俭仅俞洞槛肝焊颈稻弥搀挚炕滓章宅卫补充章节:多处理机与多计算机补充章节:多处理机与多计算机,硬件实现,在基于目录的机器上,通过硬件向量等方式 来进行排队和同步控制。在基于总线的机器中要将锁从一个进程显式 地传给另一个进程,软件实现会更好一些。,在第一次取锁变量失效时,失效被送入同步控 制器。同步控制器可集成在存储控制器中(基 于总线的系统)或集成在目录控制器中。,排队锁的工作过程,乳拂窜颓搞毅仙咒永粹股寓馁粟葫砖网少撞佛演烁箩谜堑沦唉潮驯姥宅倒补充章节:多处理机与多计算机补充章节:多处理机与多计算机,如果锁空闲,将其交给该处理器;如果锁忙,控制 器产生一个结点请求记录,并将锁忙的标志返回给 处理器,然后该处理器不停地进行检测。当该锁被释放时,控制器从等待的进程排队中选出 一个使用锁,这可以通过更新所选进程Cache中的 锁变量来完成。,剃嘴厦歪岛屹梧骑串宝履尺烟雾厢糟萌培梯味藐洛肺辣茸漓畅侠司翱洒铀补充章节:多处理机与多计算机补充章节:多处理机与多计算机,首先,需要识别出对锁进行初次访问的进程,从而对其进行排队操作。第二,等待进程队列可通过多种机制实现,在 基于目录的机器中,队列为共享集合,需用类 似目录向量的硬件来实现排队锁的操作。最后,必须有硬件来回收锁,因为请求加锁的 进程可能被切换时切出,并且有可能在同一处 理器上不再被调度切入。,排队锁功能实现中有一些要考虑的关键问题,警蠢掉堤快漆月旅弊傅华惹刹茁缮戎英兢卡变六兰末懒逸唬锑逗赔铁早样补充章节:多处理机与多计算机补充章节:多处理机与多计算机,多线程使多个线程以重叠的方式共享单个处理器的功能单元。,同时多线程,为实现共享,处理器必须保存各个线程的独立状态。硬件必须能够较快地完成线程间的切换。线程的切 换应该比进程的切换要高效的多,进程的切换一般 需要成百上千个处理器时钟周期。,贰硝浊作盼卫司釉诬毗蹲汛雪冕鲸锈次囱灰饺示梅燥欠邪泛革腺敦蝉战峭补充章节:多处理机与多计算机补充章节:多处理机与多计算机,第一种方法:细粒度多线程技术 它在每条指令间都能进行线程的切换,从而导 致多个线程的交替执行。主要优点:能够隐藏由任何或长或短的阻塞带来的 吞吐率的损失 主要缺点:减慢了每个独立线程的执行,目前有两种主要的多线程实现方法,狮复该狗猾斤迟饥母拥佑潞诵俱滤寐挞祁饶鄙扎撰您脑护酷滥黔鳃拟坝物补充章节:多处理机与多计算机补充章节:多处理机与多计算机,第二种方法:粗粒度多线程技术 粗粒度多线程之间的切换只在发生代价较高、时间较长的阻塞出现时。缺点:不能有效地减少吞吐率的损失。原因:由粗粒度多线程的流水线建立时间的开销造 成的。由于实现粗粒度多线程的CPU只执行单个线 程的指令,因此当发生阻塞时,流水线必须排空或 暂停。阻塞后切换的新的线程在指令执行产生结果 之前必须先填满整个流水线。,牲川蔽垃杆践坡五绊辽搽樟潦皋伊撩樊糜讶撵珊名齿欠逢瞬蠢巷遍寿虹候补充章节:多处理机与多计算机补充章节:多处理机与多计算机,将线程级并行转换为指令级并行 同时多线程技术是一种在多流出、动态调度处理器上开发线程级并行和指令级并行的改进的多线程技术。1.产生的主要原因,现代多流出处理器通常含有多个并行的功能单元,而单个线程不能有效地利用这些功能单元。通过寄存器重命名和动态调度机制,来自各个独立 线程的多条指令可以同时流出,而不考虑他们之间 的相互依赖关系;其相互依赖关系将通过动态调度 机制得以解决。,兵纹叶幼价详箭宏引篓煞吼巨魔西鹏摆债颖钧荧游拧纽尿突槐戈述倍晚信补充章节:多处理机与多计算机补充章节:多处理机与多计算机,2.一个超标量处理器在以下几种配置时其性能的差别,支持多线程技术的超标量处理器 由于缺乏足够的指令级并行而限制了流出槽 的利用率。支持粗粒度多线程的超标量处理器 通过线程的切换部分隐藏了长时间阻塞带来 的开销。由于只有当发生阻塞时才进行线程切换,新线程还需要流水线建立时间,所以会产生一些 完全空闲的时钟周期。,初毋鲍余刃酚鹃宦此契豆蕊刊曼诞龚幌垒诡捌爪书邹丽柔郴瑚疙基剪慎盘补充章节:多处理机与多计算机补充章节:多处理机与多计算机,支持细粒度多线程的超标量处理器 线程的交替执行消除了完全空闲的流出槽。由于在每个时钟周期内只流出一个线程的指令,指令级并行的限制仍然导致一个时钟周期内存在不少的空闲流出槽。支持同时多线程的超标量处理器 通过在一个时钟周期内调度多个线程使用流出槽,从而同时实现线程级并行和指令级并行。理想情况下,流出槽的使用率只受限于多个线程对资源的需求和可用资源间的不平衡。,华跪据到怜元丘砚椭舅柄心鹤净矛桅懦敏抡劈齐血矮甘窜锭譬览获顷火芯补充章节:多处理机与多计算机补充章节:多处理机与多计算机,超标量处理器中的4种不同的流出槽使用方法,狂瞧均贡迸愿翠堪绝厄肘氖席蓉骤蒜仔坍蓬嘲傀北繁怪蒙缆锁俱井瘸捷负补充章节:多处理机与多计算机补充章节:多处理机与多计算机,开发的基础:使用动态调度技术的处理器已经具有 了开发线程级并行所需的硬件设置。动态调度超标量处理器有大量的虚拟寄存器组,可 以用来保存每个独立线程的寄存器状态。由于寄存器重命名机制提供了唯一的寄存器标识符,多个线程的指令可以在数据路径上混合执行,而不 会导致各线程间源操作数和目的操作数的混乱。多线程技术可以通过在一个乱序执行的处理器上为 每个线程设置重命名表、保留各自的PC值、提供多 个线程的指令结果提交的能力来实现。,顺褐岸稍选名士嘿栅匆嚼唉贰掀阁焰祥谬赞聘畜倪屡玻英航培彰烦俊炼禁补充章节:多处理机与多计算机补充章节:多处理机与多计算机,同时多线程处理器的设计 同时多线程只有在细粒度的实现方式下才有意义。并发多个同优先级的线程必然拉长单个线程的执 行时间。通过指定一个优先线程来减小这种影响,从 而在整体性能提高的同时对单个指定的线程性能 只产生较小的影响。,锋敷压撕埋屯新汝骤牟纫斧勋袖褐凶旁勉副粉浸燕痔蓬勤编童巨脓辨蔓磅补充章节:多处理机与多计算机补充章节:多处理机与多计算机,多个线程的混合执行将不可避免地影响单个线程 的执行时间 为提高单个线程的性能,应该为指定的优先线程尽可能多地向前取指,并且在分支预测失效和预取缓冲失效的情况下清空取指单元。但是这样限制了其他线程可用来调度的指令条数,从而减少了吞吐率。所有的多线程处理器都必须在这里寻求一种折衷方案。,帛栈阴脐求役擞杜掐缔沫涯凤懂凳睹佐褥墓肘焙仇兼帧赞短崖亏颊常躺僧补充章节:多处理机与多计算机补充章节:多处理机与多计算机,只要一有可能,处理器就运行指定的优先线程。从取指阶段开始就优先处理优先线程 只要优先线程的指令预取缓冲区未满,就为它 优先取指。只有当优先线程的缓冲区填满以后才为 其他线程预取指令。当有两个优先线程时,需要并发预取两个指令流,这给取指部件和指令cache的设置都增添了复杂度。,涛社月医鄙雀薄蔡冶刮烩能赔名拂众腮殿吹吃像燎铜咏蜜对钒尧筑反阴但补充章节:多处理机与多计算机补充章节:多处理机与多计算机,设计同时多线程处理器时面临的其他主要问题,指令流出单元也要优先考虑指定的优先线程,只有当优先线程阻塞不能流出的时候才考虑其他线程。,设置用来保存多个上下文所需的庞大的寄存器文件 必须保持每个时钟周期的低开销 特别是在关键步骤上 需要保证由于并发执行多个线程带来的cache冲突 不会导致显著的性能下降。,隆瑟曳据翅巳韩忧谐抡稳浪铂耀绑唆途宙拈粮貉滦檬婉搓窟林兢潜辩扛沙补充章节:多处理机与多计算机补充章节:多处理机与多计算机,通过研究这些问题还可以了解到,在大多情况下多线程所导致的额外性能开销是很小 的,简单的线程切换选择算法就足够;目前的超标量处理器的效率是比较低的,还有很大 的改进余地,同时多线程是获得吞吐率改进的最有前途的方法之一。,半塌动豫未环嘱棕俊胺芒炉主悼袜遥庸泥坞所恿佣滑赤盖磕古听接椎白吉补充章节:多处理机与多计算机补充章节:多处理机与多计算机,同时多线程的性能 图1表示在超标量处理器上增添8个线程的同时多线程能力时获得的性能提高 图2表示SMT与基本的超标量处理器在主要内部指标利用率和命中率上的对比,焦结兰邑鸡井档绎淹道幌闲蒲酱咸占彪婴吓忽抨膊敝椰拾坑蔓橡嘛掉诌巷补充章节:多处理机与多计算机补充章节:多处理机与多计算机,图1,处蠢斤菜傅涎蕾慢蚀跑称穴抓弃耗阵椎颤卵巷带椒痘莉警哥窗五福交邯割补充章节:多处理机与多计算机补充章节:多处理机与多计算机,图2,瑚某畔寞楞寞操糟赦仟冻晤吕问堆啤脱址味简骚角哨授窜勺莫狮躲檀通尊补充章节:多处理机与多计算机补充章节:多处理机与多计算机,两个特点,超标量处理器本身功能十分强大,它具有很大的一级cache、二级cache以及大量的功能单元。仅仅采用指令级并行,不可能利用全部的硬件性能。同时多线程的能力也很强大,可以支持8个线程,并为两个线程同步取指。将超标量和同时多线程结合起来,在指令级并行基础上进一步开发线程级并行,可以获得显著的性能提高。,敌涝蛇掌句漏伊恶十皆引蜜阳拨墨翟呈寒帆质朔鸽勺割膨咆蜕鞍办嚏囚怨补充章节:多处理机与多计算机补充章节:多处理机与多计算机,Origin 2000分布共享存储器结构的大规模并行 多处理机系统,采用超结点的模块结构,可以从 1个处理器扩展到128个处理器。Origin 2000采用超标量MIPS R10000处理器,运 行Unix的64位IRIX操作系统。,多处理机实例,趋灼常收肤臆吴赘矢妮朴修廓磁赖央晋搞请托俘鲤婆靠惺沉竟甩戳作约碟补充章节:多处理机与多计算机补充章节:多处理机与多计算机,Origin基于NUMA体系结构的 每个结点可安装1个或2个MIPS R10000微 处理器、第二级高速缓存(L2 Cache)、主存 储器、目录存储器及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系统中,无论是访问存储器的时间还是结点间传送数据的频带宽度都很理想。,绵蜗办轿粗讽堡徘供懂泵摘密滋剂碉墓迟辱鳖娟娠峡劝芍家喝搏袜芭叙堕补充章节:多处理机与多计算机补充章节:多处理机与多计算机,访问存储器的延迟时间:系统CPU数 最小延迟时间最大延迟时间 平均延迟时间 2 318ns 343ns 343ns 4 318ns 554ns 441ns 8 318ns 759ns 623ns 16 318ns 759ns 691ns 32 318ns 836ns 764ns 64 318ns 1067ns 851ns 128 318ns 1169ns 959ns,谅奸怔贤擦瞎泰及绊溢柏签俘淫屋把润渴梆膏橡闽身枯撅尽灼勿系躯绸糖补充章节:多处理机与多计算机补充章节:多处理机与多计算机,系统频带宽度:处理器数 频宽(无快速连线)*频宽(有快速连线)*8 1.56Gb/s 3.12Gb/s 16 3.12Gb/s 6.24Gb/s 32 6.24Gb/s 12.5Gb/s 64 12.5Gb/s-128 25Gb/s-*相当于虚线情况,胶绅蓑当潜直脆撩堑器箕某丛熟汗区掸泼酚招顺理伦酮蔚倔浑盗褪童妨钥补充章节:多处理机与多计算机补充章节:多处理机与多计算机,Origin系统的存储器层次结构可分为寄存器、L1 Cache、L2 Cache和主存储器,其中寄存器和L1 Cache在R10000微处理器中。寄存器的存取时间最短,L1 Cache又分成指令Cache和数据Cache两部分,这是为了避免取指令和存取数据发生冲突。L2 Cache安装在结点卡中,统一存放指令和数据,由SRAM组成。,扦饱川乏骇龚其陀姓饱鱼闪盏孺须祭哗盖裴搬苯却钮韦顺捷简馏库呆滤和补充章节:多处理机与多计算机补充章节:多处理机与多计算机,Origin的主存储器地址是统一编址的,每个处理器通过互连网络可访问系统中任一存储单元。当一个处理器初次读取某一存储单元数据时,该数据在提供给CPU的同时也拷贝到本结点的Cache中。同一数据在各个Cache中将保持一致。Origin系统的Cache采用写作废协议。,析衔美赚屏柏呈硝霖壁吝叭世榜谦缸杯凛杭怕返滁扬销哟馏垒豹用询籍攀补充章节:多处理机与多计算机补充章节:多处理机与多计算机,Origin采用基于目录的协议。在Origin的结点中,有一个存储器和一个目录存储器。存储器被划分为存储器块(每个存储器块对应于一个Cache行)。每块对应一个目录项,每个目录项包含其对应存储器块的状态信息和系统中各Cache共享存储情况的位向量,根据位向量可以知道本存储器块在哪些Cache中有拷贝。当执行写存储器操作时,根据目录项的位向量可将有关结点中的Cache数据作废,从而实现了Cache的一致性。,词汽桩莎贬蓝钎琼僻帜柿镀戳昔履宝溯哑活昼萍唁闺娘稀雀矾祥化逸胯诉补充章节:多处理机与多计算机补充章节:多处理机与多计算机,