- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级计算机体系结构第6章2
1
5、更新协议、作废协议的比较
*更新协议的应用特性:
适合一次写多次读共享、不适合多次写一次读共享
*混合协议: --解决应用不确定性问题
即更新+作废协议,每个块设置一个计数器CNT,本地访问时CNT←k,收到更新时CNT←CNT-1,CNT=0时作废该块
※一致性协议设计小结:
①协议类型常为作废(很少为更新),
②协议状态常为MESI,
③一致性粒度常为块大小
*不同协议的评测结果: --基于更新、混合、作废协议
扑空率递增(差距较小)、刷新速率递减(差距较大)
总线流量递减(差距较大)
转29页
2
第三节 基于监听的Cache一致性实现
*Cache一致性协议实现的目标:
正确性—硬件层非原子操作须保持状态转换图的正确性
高性能—存取操作应流水化 (同时允许多个未完成操作)
额外硬件少—优化设计,减少硬件复杂性和成本
一、正确性要求
*满足一致性要求:
满足Cache一致性要求、保持存储一致性模型的语义
*解决死锁与活锁:
死锁处理(避免资源依赖环、检测并消除死锁),活锁处理(优先级等);挨饿消除(总线仲裁和FIFO队列等)
*处理异常:处理各种异常、从异常中恢复状态
3
二、基于原子总线的单级Cache设计
*假设:MESI作废协议、原子总线(只有一个未完成请求)
*单处理机的Cache结构与原理:
*设计内容:块标记、状态机、监听系统、非原子状态转换、写回等
块状态—I/V、M
控制器--有限状态机
总线操作步骤--
请求、等待获取(仲裁)、地址及命令、等待响应、数据
回下页
4
1、Cache控制器和块标记的设计
*操作要求:Cache可同时响应来自处理器和总线的操作
*控制器设计:
分为总线端、处理器端两部分,并能够相互作用
P端控制器--与单P的Cache控制器类似
(响应P操作、产生总线事务、改变状态)
*块标记设计:
块标记—标记(同单P结构)、状态(M/E/S/I)
要求--支持P端、BUS端的同时访问
转上页
转下页
BUS端控制器—监听及响应总线事务、改变状态
实现--①双端口RAM组成的目录表,
②相互拷贝的两个目录表(改写与其他操作互斥)
5
*双目录表的Cache结构(一部分):
回上页
回39页
回40页
转下页
6
2、监听结果提交的设计
涉及提交时间、提交格式2个方面
(1)监听结果提交时间的设计
*设计目标:硬件成本低、延迟小(主存决定是否响应)
*设计结果:可变监听延迟方案(方案②)较优
②可变监听延迟方案-- 延迟=max{所有Cache监听延迟}
各Cache监听完成时给出监听完成信号及监听结果,
③主存维护修改标志方案— 延迟=主存监听延迟
主存每个块维护1位标志(M位),Cache不提交监听结果
*可选方案:
①固定监听延迟方案— 延迟=常数(max)
各Cache固定时间内给出监听结果
回下页
7
(2)监听结果提交格式的设计
*基于可变监听延迟的格式设计:
*Cache及主存对监听结果的响应动作: (状态机[部分])
监听结果
总线事务
完成
命中
修改
BusRd
BusRdX
BusWB
1
0
X
请求方:I→E
主 存:提供数据
请求方:I/E→M
主 存:提供数据
请求方:M→I
主 存:更新数据
1
1
0
请求方:I→S
命中方:E/S→S
主 存:提供数据
请求方:I/S→M
命中方:E/S→I
主 存:提供数据
1
1
1
请求方:I→S
命中方:提供数据、M→S
主 存:更新数据
请求方:I→M
命中方:提供数据、M→I
主 存:更新数据
回41页
转37页
总线中增加三根信号线
监听完成--指示监听是否完成(监听结果是否有效)
监听命中--指示某Cache是否有该块的拷贝
修改状态--指示命中的块是否为修改态(M)
转上页
8
3、写回处理的设计
*基本思路:
采用“读失效优先于写”(推迟写、优先读)的方法
*推迟写回的实现:
Cache增设写回缓冲区(WBBuff),WBBuff
文档评论(0)