- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Parallel Computer Architecture并行计算机体系结构Lecture 11 Overview Review of Lec10 SMP中的同步 MPP 初步设计问题 高速缓存控制器及其标记的设计 处理器和总线都需要考查 什么时候以何种方式报告侦听结果 处理写回 所有内存操作的动作集合并不是原子的 可能导致赛跑状态(race conditions) 原子操作 新问题 :死锁,活锁,饥饿,可串行化等等 基本设计 多级高速缓存 每一级要有独立的侦听硬件? 共享总线的处理器插脚 处理器高速缓存存取的争夺? 只需要二级高速缓存侦听并传播相关总线事务就足够了 包含性 (1) 一级高速缓存的内容是二级高速缓存内容的子集 (2) 在一级高速缓存中处于修改状态的块在二级高速缓存中也处于修改状态 1 = 所有于一级高速缓存相关的事务也与二级高速缓存相关 2 = 对二级高速缓存的总线读操作可以示意内存访问并通知一级缓存 同步事件组成 获得方法 获得同步的权利 进入临界区, 离开事件 等待算法 等待同步变得可用 忙等待, 阻塞, 或结合情况 释放方法 便利另外的进程能够获得同步 等待算法独立于同步的类型 用硬件实现没有意义 Strawman 锁 lock: ld register, location /* copy location to register */ cmp location, #0 /* compare with 0 */ bnz lock /* if not 0, try again */ st location, #1 /* store 1 to mark it locked */ ret /* return control to caller */ unlock: st location, #0 /* write 0 to location */ ret /* return control to caller */ 简单的 TestSet 锁 lock: ts register, location bnz lock /* if not 0, try again */ ret /* return control to caller */ unlock: st location, #0 /* write 0 to location */ ret /* return control to caller */ 其它的读-更新-写指令 Swap Fetchop Compareswap 三个操作数:内存位置,进行比较的寄存器,进行交换的寄存器 在RISC指令集中通常不支持 可高速缓存或不可高速缓存 改进的简单锁算法 在等待时降低发出testset指令的频率 后退Testset 锁 不能后退太多,也不能在锁被释放时后退 经验表明指数后退效果最后: ith time = k*ci 在忙等待时只用普通的读操作而不是testset Test-and-testset锁 用普通的load指令来检测 当锁释放时,高速缓存中的锁变量都被使无效 当值变化时(为0), 用 testset 去请求获得锁 只有一个请求处理器成功,其它处理器请求失败,继续使用普通load指令忙等待 Overview Review of Lec10 SMP中的同步(续) MPP 改进的硬件方法: LL-SC 目的: 用读操作来检测 失败的读-更新-写 不会产生使无效 用很少的指令就能实现各种各样的r-m-w操作 锁住读出 (LL), 条件写入(SC) LL 将同步变量读到寄存器中 接下来的指令就对读出到寄存器的值进行操作 SC 将值写入到内存位置 当且仅当从该处理器的LL后没有其它处理器对该变量写,才成功 由条件代码表示; 如果SC成功, 所有的三个步骤都是原子的 如果失败, 就不会写或者产生使无效 必须重新请求 简单的 LL-SC锁 lock: ll reg1, location /* LL location to reg1 */ bnz reg1,lock sc location, reg2 /* SC reg2 into location*/ beqz lock /* if failed, start again */ ret unlock: st location, #0 /* write 0 to location */ ret 在LL和SC间进行变动可以做更多的假想原子操作 但要很小以使SC 容易成功 不能包括需要undone的指令(e.g. store)
您可能关注的文档
最近下载
- 临床医学专业培养方案-延边大学医学院.DOC
- (蒙) 紫外分光测油仪校准规范.pdf VIP
- 丝蛋白创面敷料临床试验报告(主要结果) .pdf VIP
- (蒙) 血型试剂卡孵育器校准规范.pdf VIP
- (蒙) 热压罐校准规范.pdf VIP
- 六年级(上)数学晨读晚默综合每日一练.pdf VIP
- 人教版高中数学A版选必第3册《第八章 成对数据的统计分析》大单元整体教学设计.docx
- 2025医疗器械经营质量管理体系文件(全套)(可编辑!).docx VIP
- 非招标方式采购文件示范文本6.docx VIP
- 广东省茂名市高州市十二校联考2025-2026学年八年级上学期12月月考语文试题(含答案).pdf VIP
原创力文档


文档评论(0)