1671|4

6480

帖子

8

TA的资源

管理员

楼主
 

阅读打卡第七站:缓存一致性、TLB管理、原子操作——《RISC-V体系结构编程与实践 》 [复制链接]

活动详情: 一起围读《RISC-V体系结构编程与实践 》

本次是《RISC-V体系结构编程与实践 》阅读打卡第七站,跟帖回复作者提出以下问题。

 

笨书助力读书打卡题目(提醒:阅读书籍的第12章、13章、14章):

27. 什么是MESI协议?MESI这几个字母分别代表什么意思?
28. 什么是高速缓存伪共享?请阐述高速缓存伪共享发生时高速缓存行状态的变化情况,以及软件应该如何避免高速缓存伪共享。
29. 请简述TLB的查询过程。
30. 在RISC-V体系结构中,刷新所有处理器的TLB是如何实现的?
31. 为什么操作系统在切换页表项时需要刷新对应的TLB项?

32. 什么是LL/SC机制?
33. 如果多个核同时使用LR和SC指令对同一个内存地址进行访问,如何保证数据的一致性?

 

参与活动的小伙伴们,阅读打卡即将结束啦,继续走起~

@jobszheng5 @1nnocent @子期非女 @常见泽1 @我爱下载

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

最新回复

27. 回复:一种协议,用来维护高速缓存一致性。M表示修改;;E表示独占;S表示共享;I表示无效 28. 回复:主要指多个处理器同时访问一个高速缓存行中的不同数据会带来性能问题,称为高速缓存伪共享。通常采用高速缓存行对齐技术或高速缓存行填充技术,即可让数据结构按照高速缓存行对齐,并且尽可能充满一个高速缓存行。 29. 回复:MMU先从TLB中查询是否有地址转换结果。如果有,则MMU不必执行地址转换。否则,MMU执行地址转换,最后把地址转换的结果缓存到TLB中。 32. 回复:LL是load-link的缩写,其在内存地址读取一个值,处理器会监控这个内存地址。对于RISC-V来说,它会注册一个保留集。SC是Store-conditional的缩写,其会监测store指令的执行结果。如果执行失败了,需要跳转到LR指令处,重新执行原子加载以及原子存储操作,但不管结果如何,保留集中的数据都会失效。 33. 回复:LR和SC指令在多核之间利用高速缓存一致性协议以及独占监视器保证执行的串行化与数据一致性。   详情 回复 发表于 2023-5-30 23:50
点赞 关注
个人签名微信搜索公众号“EEWORLDBBS”快去添加关注吧!

回复
举报

7221

帖子

192

TA的资源

五彩晶圆(高级)

沙发
 

27. 什么是MESI协议?MESI这几个字母分别代表什么意思?

-——————————————————————————————————

MESI协议是基于Invalidate的高速缓存一致性协议,并且是支持回写高速缓存的最常用协议之一。

M 修改 (Modified)

E 独享、互斥 (Exclusive)

S 共享 (Shared)

I 无效 (Invalid)

 

 
 

回复

7221

帖子

192

TA的资源

五彩晶圆(高级)

板凳
 

29. 请简述TLB的查询过程。
————————————
处理器首先使用索引域查询TLB对应的组,在一个3路组相连的TLB中,每组包含3个TLB项2,在找到对应组之后,再用标记域比较和匹配。若匹配成功,说明TLB命中,再加上页内偏移量即可得到最终物理地址。


30. 在RISC-V体系结构中,刷新所有处理器的TLB是如何实现的?
——————————
如果在多处理器系统中刷新TLB,则需要使用TLB广播


31. 为什么操作系统在切换页表项时需要刷新对应的TLB项?
————————————
在多核系统中,多个虚拟地址可以同时映射到同一个物理地址,出现为同一个物理地址创建多个TLB项的情况,更改其中一个页表项会破坏缓存的一致性以及内存访问时序。


32. 什么是LL/SC机制?
————————————
连接加载/条件存储指令
LL表示从指定内存地址读取一个值,处理器会监控这个内存地址,看其他处理器是否修改内存地址
SC表示如果这段时间内其他处理器没有修改该内存地址,则将新值写入该地址。
一个原子的LL/SC操作就是通过LL读取值,进行一些计算,并通过SC来写回。


33. 如果多个核同时使用LR和SC指令对同一个内存地址进行访问,如何保证数据的一致性?
————————————
LR和SC指令在多核之间利用高速缓存一致性协议以及独占监视器保证执行的串行化与数据一致性。
 

 
 
 

回复

337

帖子

2

TA的资源

纯净的硅(初级)

4
 

 

27. 什么是MESI协议?MESI这几个字母分别代表什么意思?
    在一个处理器系统中,不同CPU内核上的高速缓存和内存可能具有一致性问题,为了维护高速缓存一致性,必须跟踪每个高速缓存行的状态。MESI属于总线监听类协议。
    其中M表示修改
        E表示独占
        S表示共享
        I表示无效
28.什么是高速缓存伪共享?请阐述高速缓存伪共享发生时高速缓存行状态的变化情况,以及软件应该如何避免高速缓存伪共享。
   高速缓存伪共享是指处理器在访问数组某个成员时,处理器会把相邻的数组成员都加载到高速缓存中,从而加快数据访问,但是,多个处理器同时访问一个高速缓存行中的不同数据会带来性能问题,称为高速缓存伪共享。
   
29. 请简述TLB的查询过程。
      处理器发出的虚拟地址首先发送到TLB,TLB利用虚拟地址中的索引域和标记域来查询TLB,如果命中,那么得到虚拟地址对应PFN,PFN和虚拟地址中的页内偏移组成物理地址。

30. 在RISC-V体系结构中,刷新所有处理器的TLB是如何实现的?
    在RISC-V体系中需要使用TLB广播来刷新所有处理器。1)执行SFENCE.VMA本地TLB刷新;2)向其它处理器触发IPI;3)其它处理器执行SFENCE.VMA;4)其它处理器发送信号给本地处理器,告知IPI执行完成。


31. 为什么操作系统在切换页表项时需要刷新对应的TLB项?
    TLB类似VIVT类型的高速缓存,会出现多个虚拟地址映射到一个物理地址引发的重名问题,也会出现同名问题,因此,页表项切换时需要刷新对应的TLB项。


32. 什么是LL/SC机制?
连接加载/条件存储指令
第一部分LL表示从指定内存地址读取一个值,处理器会监控这个内存地址,看其他处理器是否修改内存地址
第二部分SC表示如果这段时间内其他处理器没有修改该内存地址,则将新值写入该地址。
因此,一个原子的LL/SC操作就是通过LL读取值,进行一些计算,并通过SC来写回。如果SC失败,那么重新开始整个操作。LL/SC指令实现无锁算法与“读-修改-回写”的原子操作。


33. 如果多个核同时使用LR和SC指令对同一个内存地址进行访问,如何保证数据的一致性?
    采用独占监视器或独占监视器与高速缓存一致性协议保证数据一致性。

 
 
 

回复

670

帖子

0

TA的资源

纯净的硅(高级)

5
 

27. 回复:一种协议,用来维护高速缓存一致性。M表示修改;;E表示独占;S表示共享;I表示无效
28. 回复:主要指多个处理器同时访问一个高速缓存行中的不同数据会带来性能问题,称为高速缓存伪共享。通常采用高速缓存行对齐技术或高速缓存行填充技术,即可让数据结构按照高速缓存行对齐,并且尽可能充满一个高速缓存行。
29. 回复:MMU先从TLB中查询是否有地址转换结果。如果有,则MMU不必执行地址转换。否则,MMU执行地址转换,最后把地址转换的结果缓存到TLB中。
32. 回复:LL是load-link的缩写,其在内存地址读取一个值,处理器会监控这个内存地址。对于RISC-V来说,它会注册一个保留集。SC是Store-conditional的缩写,其会监测store指令的执行结果。如果执行失败了,需要跳转到LR指令处,重新执行原子加载以及原子存储操作,但不管结果如何,保留集中的数据都会失效。
33. 回复:LR和SC指令在多核之间利用高速缓存一致性协议以及独占监视器保证执行的串行化与数据一致性。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表