高级计算机体系结构ppt课件.ppt

高级计算机体系结构ppt课件.ppt

ID:58981060

大小:2.03 MB

页数:71页

时间:2020-09-27

高级计算机体系结构ppt课件.ppt_第1页
高级计算机体系结构ppt课件.ppt_第2页
高级计算机体系结构ppt课件.ppt_第3页
高级计算机体系结构ppt课件.ppt_第4页
高级计算机体系结构ppt课件.ppt_第5页
资源描述:

《高级计算机体系结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ZJU_ComputerArchitecture_multiprocessor_sqs1MultiprocessorsandThread-LevelParallelismPart26.4~6.66.4同步2ZJU_ComputerArchitecture_multiprocessor_sqsZJU_ComputerArchitecture_multiprocessor_sqs3概念•运行在不同处理器上的进程之间需要通信以协调地完成一个任务。进程间的通信可以通过使用共享变量来实现信息交换。但对共享变量的访问要保证互斥访问。即:保证每次只有一个进程访问共享变量。•同步机制的实现–硬件

2、提供同步原语;–用户层软件实现。•在小规模或竞争较少的情况下–硬件的关键功能:提供不可中断的指令;或实现原子地读和更新一个值的指令。–软件机制在硬件基础上建立:如自旋锁。ZJU_ComputerArchitecture_multiprocessor_sqs4•在规模较大或竞争较多的情况下–同步成为性能瓶颈。(延时增加)–需研究更好的硬件机制来支持同步。•介绍顺序:–硬件基本原语→构造基本同步例程→同步操作过程中竞争如何产生→更强的硬件原语ZJU_ComputerArchitecture_multiprocessor_sqs56.4.1基本硬件原语•硬件原语的功能–支持原子地读和修

3、改存储单元;–以某种方式告知是否进行了原子读或写操作(执行反馈)。是构造同步操作和同步库的基本构造模块。•几种典型的硬件原语–原子交换(atomicexchange)–测试和设置(test-and-set)–取值和增值(fetch-and-increment)–LL/SC指令对:链接Load指令/条件Store指令(Loadlinked/storeconditional)ZJU_ComputerArchitecture_multiprocessor_sqs6一、原子交换•exch:原子地交换一寄存器和一个存储单元的值。•实现上锁:DADDUIR2,R0,#1lockit:EXCH

4、R2,0(R1)BNEZR2,lockit•若有多个处理器竞争同一个锁,即试图同时执行交换操作,则由写操作的串行化保证,只有其中的一个处理器能首先执行交换操作。ZJU_ComputerArchitecture_multiprocessor_sqs7•二、TEST-AND-SET–例子:(test0)and(set1)•三、FETCH-AND-INCREMENT–例子:ZJU_ComputerArchitecture_multiprocessor_sqs8四、链接Load指令/条件Store指令•指令对顺序执行;•如果某个被链接Load指令指定的存储单元的内容在条件Store指令对

5、其操作之前改变了,那么条件Store指令就失败。如果处理器在两条指令之间作了一次进程切换,那么条件Store指令也失败;•链接Load指令返回存储单元的初始值;•条件Store指令返回的值表明Store操作是否成功。如果成功,返回1,否则返回0。ZJU_ComputerArchitecture_multiprocessor_sqs9链接Load指令/条件Store指令的优点:•可以用来构建其它同步原语。读写操作是分离的。•例:实现原子交换try:ORR3,R4,R0;传送交换值LLR2,0(R1);链接loadSCR3,0(R1);条件StoreBEQZR3,try;条件Stor

6、e失败,跳转MOVR4,R2;取回的值送R4•例2:实现取值并增值try:LLR2,0(R1);链接LoadDADDUIR3,R2,#1;增值SCR3,0(R1);条件StoreBEQZR3,try;条件Store失败,跳转ZJU_ComputerArchitecture_multiprocessor_sqs10链接Load指令/条件Store的实现:•具体实现:–设置链接寄存器。将LL指令中的访存地址保留在链接寄存器中。–跟踪链接寄存器中的存储器地址,若发生中断或与该地址匹配的Cache块无效后,链接寄存器就被清除。–SC指令只是简单地检查操作地址与链接寄存器中的存储器地址是否

7、匹配,若匹配成功,则成功,否则失败。•使用注意:–一般只有r-r指令能插在指令对之间,否则可能发生死锁;–插入两指令间的指令应尽可能少。ZJU_ComputerArchitecture_multiprocessor_sqs116.4.2利用一致性实现锁同步一、原子交换•自旋锁:DADDUIR2,R0,#1lockit:EXCHR2,0(R1)BNEZR2,lockit•无Cache一致性时,锁变量存放在内存中。•有Cache一致性时,锁变量可存放在本地Cache中。–获得锁的自旋

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。