论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
大数据
›
数据仓库与分析
›
ACE协议学习1
ACE协议学习1
梦见你的名字
论坛元老
|
2025-3-10 10:38:49
|
显示全部楼层
|
阅读模式
楼主
主题
1503
|
帖子
1503
|
积分
4509
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
在多核系统或复杂SoC(System on Chip)中,不同处理器焦点或IP(Intellectual Property)模块之间必要保持数据的一致性。常用的是ACE协议or CHI。 先对ACE协议进行学习
ACE协议(Advanced Microcontroller Bus Architecture Coherency Extension)是一种高级的缓存一致性协议,它允许系统中的主组件(如处理器或其他设备)判断缓存行是否是某个特定内存位置的唯一副本,大概是否可能存在其他副本。根据这些信息,主组件可以相应地接纳不同的操作来维护数据的一致性。
①检查缓存行的唯一性:
当主组件想要修改一个缓存行时,ACE协议起首通过监听机制来检查该缓存行是否是系统中的唯一副本。主组件的监听过滤器会与其他缓存进行通信,以确定缓存行是唯一的照旧共享的。
②修改唯一缓存行:
假如确定缓存行是唯一的(Unique状态,包罗UniqueClean和UniqueDirty),主组件可以直接修改缓存行的值,而无需通知系统中的其他主组件。这是因为没有其他副本必要更新或失效。
③修改共享缓存行:
假如缓存行可能也存在于另一个缓存中(Shared状态,包罗SharedClean和SharedDirty),主组件必须启动一个适当的事务来通知其他缓存。这通常涉及到发送一个缓存一致性请求到其他缓存,要求它们更新或失效对应的缓存行,以确保系统中全部缓存的数据保持一致。
通过这种方式,ACE协议确保了在多个主组件访问共享数据时,数据的一致性和正确性得到维护。这对于多核处理器系统、SoC(System on Chip)或其他必要紧密协作的多主设备环境尤为紧张。
1. cacheline状态
valid: 该cacheline在cache中存在
invalid:该cacheline在cache中不存在,对该cacheline的访问必要去主存中大概其他cache中
unique:该cacheline只在这一个cache中存在,因为core可以随意对它进行操作而无需担心一致性问题(因为在其他cache中就不存在)
shared:该cacheline存在于一个或多个cache中,当cacheline处于shared状态下时,core对它进行修改时必要确保其他cache中状态得到适当的更新,以维护数据的一致性。
clean:表现缓存中的数据与主内存中的数据是一致的。缓存不负担更新主内存的责任。在这种环境下,假如主组件读取缓存行,它可以直接使用缓存中的数据,而不必要从主内存中重新获取。(
这个说法不太严谨,clean不一定代表缓存中的数据与主内存一致,比如shared clean,只是不必要负担更新主存的责任而已~
)
dirty:表现缓存中的数据已经被修改,与主内存中的数据不一致。拥有脏缓存行的主组件必须确保最终将更新后的数据写回到主内存中,以保持数据的一致性。
当一个core想要写入一个cacheline时,它起首必要检查该cacheline的状态。假如是unique dirty的cachelie,那么可以直接进行写操作。但假如是shared dirty的cacheline,core则必要通过发送一致性请求来通知其他cache,确保它们能够更新或invalid对应的缓存行。这样的机制有助于避免数据辩论,并确保全部处理器都能访问到最新和一致的数据。
2. cacheline状态转换规则
①获取新副本时必须通知其他cache
当一个cache获取一个cacheline的新副本时,其他拥有该cacheline的cache必须被通知,即使这些cache当前可能将该cacheline作为唯一状态持有,它们也必须被通知将其更改为共享状态!!
②抛弃副本时无需通知其他cache
当一个cache准备抛弃一个cacheline时,不必要通知其他也拥有类似cacheline的cache,所以一个是shared状态的cacheline可能实际上只被一个cache所拥有!!
③相对于主内存更新
相对于主内存更新的cacheline必须处于dirty状态,必要最终将更改写回主内存
④多个缓存中的更新缓存行
假如一个相对于主内存已经被更新的缓存行存在于多个缓存中,那么它必须只在此中一个缓存中处于脏状态。这意味着虽然多个缓存可能拥有该缓存行的副本,但只有一个缓存负责维护最新的数据,并确保最终与主内存同步。
3. 通道信号增加:
ACE协议在现有的AXI4通道的底子上进行了扩展,并界说了专门的ACE通道以及确认信号,以支持复杂的缓存一致性操作。以下是ACE协议中界说的通道和信号的概述:
ACE协议在现有的AXI4通道上增加了一些新的信号,以支持缓存一致性操作。这些信号包罗:
读取地点通道(Read Address Channel):
ARDOMAIN[1:0]:由主设备提供,用于指示读取事务的共享属性。
ARSNOOP[3:0]:由主设备提供,用于指定读取事务的监听类型。
ARBAR[1:0]:由主设备提供,用于指示读取事务是否必要遵守内存屏障(memory barrier)
写入地点通道(Write Address Channel):
AWDOMAIN[1:0]:由主设备提供,用于指示写入事务的共享属性。
AWSNOOP[2:0]:由主设备提供,用于指定写入事务的监听类型。
AWBAR[1:0]:由主设备提供,用于指示写入事务是否必要遵守内存屏障(memory barrier)。
AWUNIQUE:此信号仅由支持WriteEvict事务的组件所需。WriteEvict事务用于从缓存中逐出数据,而无需写回主内存。
4. ACE特定通道
ACE协议界说的这三个额外通道是为了增强缓存一致性管理和优化多处理器系统中的数据交互。下面是对这三个通道的具体表明:
监听地点通道(AC channel):它提供了snoop transactions的地点和相关的控制信息。
通过这个通道,缓存主设备可以吸收来自系统总线或其他缓存的监听请求,并根据请求中的地点信息确定是否拥有对应的缓存行。
监听响应通道(CR channel):它提供了对snoop transaction的响应。
监听数据通道(CD channel):这是一个可选的输出通道,用于从主设备通报监听数据。
当发生读或清算监听事务时,假如被监听的主设备拥有请求的数据副本,那么这个通道就会被用来返回这些数据。
5.确认信号(Acknowledge signaling)
ACE协议使用确认信号来表现一个事务已经被成功吸收和处理。这些信号包罗:
读确认信号(Read Acknowledge Signal) - RACK:
当主设备完成一次读事务时,它会发出RACK信号。这个信号表明读操作已经成功完成,而且数据已经从缓存或其他存储介质中读取出来,准备供请求者使用。RACK信号通常在最后一个数据拍(beat)之后发出,以指示整个读操作的结束。
写确认信号(Write Acknowledge Signal) - WACK:
在完成写事务时,主设备会发出WACK信号。这个信号表明写入操作已经成功完成,而且数据已经被写入到指定的缓存行或存储位置中。与RACK类似,WACK信号也通常在最后一个数据拍之后发出,确认写操作的完成。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
梦见你的名字
论坛元老
这个人很懒什么都没写!
楼主热帖
【docker系列】四种基础网络模式及自定 ...
MySQL高可用架构搭建实战
小白怎么入门网络安全?看这篇就够啦! ...
'林子雨大数据' 实验3 HBase操 ...
kubernetes常用命令-1-命令补全 ...
1.1 大数据简介-hadoop-最全最完整的保 ...
Cilium系列-9-主机路由切换为基于 BPF ...
这些行业注意了:“谨防互联网门户钓鱼 ...
北京智游科技(爱加密)-渗透测试实习 ...
Xcode Run Script 脚本
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
IOS
Java
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表