(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210671698.4
(22)申请日 2022.06.14
(71)申请人 广东赛昉科技有限公司
地址 528300 广东省佛山市顺德区大良街
道云路社区昊阳路2号A区S201室
(72)发明人 李长林 刘磊
(74)专利代理 机构 上海邦德专利代理事务所
(普通合伙) 31312
专利代理师 崔双双
(51)Int.Cl.
G06F 9/50(2006.01)
(54)发明名称
L2中AMO指令的实现方法及系统
(57)摘要
本发明涉及CPU技术领域, 具体涉及一种L2
中AMO指令的实现方法及系统, amo请求从core 发
出, 并allocate一个cwq entry项, 请求赢得仲裁
后, 上pipeline; 命中tag_ram并且dirty的数据
在core中, 则Allocate ORQ CSQ, 由CSQ向core发
出snoop请求, 并拿到dirty的数据, 判断是否支
持csq bypass数据, 并进行相应的处理; ORQ上
pipeline, 完成amo的modify功能, 并将该
cacheline的原始值返回给core, 把modify之后
的数据写入L2cache中。 本发明由于减少上
pipeline的次数, 把pipeline资源给到其他请
求, 可以有效地提高CP U的整体性能, 同时有效的
减小功耗。
权利要求书2页 说明书6页 附图3页
CN 115016940 A
2022.09.06
CN 115016940 A
1.一种L2中AMO指令的实现方法, 其特 征在于, 所述方法包括以下步骤:
S1初始化, amo请求从core发出, 并allocate一个cwq entry项, 请求赢得仲裁后, 上
pipeline;
S2命中ta g_ram并且dir ty的数据在core中, 则Al locate ORQ CSQ;
S3由CSQ向core发出snoop请求, 并拿到dirty的数据, 判断是否支持csq bypass数据,
并进行相应的处 理;
S4ORQ上pipeline, 完成amo的modify功能, 并将该cacheline的原始值返回给core, 把
modify之后的数据写入L2 cache中。
2.根据权利 要求1所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, 若不
支持csq bypass数据时, 在S2后, CSQ上pipel ine, 更新L2 tag_ram和data_ram。
3.根据权利要求2所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, ORQ
上pipeline从dataram中读取到刚 刚CSQ snoop所得到dirty数据。
4.根据权利 要求1所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, 若支
持csq bypass数据时, 在S2后, Csq直接把sn oop到的dir ty数据bypas s给orq。
5.根据权利 要求1所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, L2进
行工作时包括以下步骤:
T1接收来自core和外部extend的请求, 同时收来自CRQ CWQ EPQ ORQ EFQ CPQ的请求,
并选出其中的一个请求进入pipel ine;
T2根据请求的类型和当前L2中TAG信息及M ESI状态信息, 生成相关 分配方案;
T3通过L2向下游memory发出读请求或写请求, 并由下游memory返回reload data回填
到EFQ;
T4通过EFQ上L2de pipeline, 将reload回来的数据写入L2$中, 同时将 数据return给请
求的core。
6.根据权利 要求5所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, L2接
收来自core和外部extend的请求, 包括接收来自core的read请求, 放在CRQ中; 接收来自
core的write请求, 放在CW Q中; 接收来自外 部的probe请求, 放在EPQ中。
7.根据权利要求5所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, 在
pipeline中, 根据请求的类型, 和当前L2中TAG信息及MESI状态信息确定: 是否可以直接写
入L2; 是否可以直接return data给请求方; 是否需要向下游memory reload数据或权限; 是
否需要产生evict; 是否 需要向下游memory write数据; 是否需要probe core; 如果判断需
要向下游memory reload数据或权限, 则分配一个ORQ; 如果判断需要向下游memory write
数据, 则分配一个WRQ; 如果判断需要probe core, 则分配一个CPQ,L2 向core发出probe请
求, 都是通过CPQ 来完成。
8.根据权利 要求5所述的一种L2中AMO指令的实现方法, 其特征在于, 所述方法中, 通过
L2向下游memory发出读请求, 则通过ORQ发出, 向下游memory读取到数据并拿到该数据对应
的权限; 通过L2向下游memory发出写请求, 则通过WRQ, 将数据从L2中写到下一级memory中。
9.一种L2中AMO指令的实现系统, 所述系统用于实现如权利 要求1‑8任一项所述的L2中
AMO指令的实现方法, 其特征在于, 包括p robe、 eviction、 TAG RAM、 DATA RAM、 CRQ、 CWQ、 EPQ、
ORQ、 WRQ、 EFQ和CPQ。权 利 要 求 书 1/2 页
2
CN 115016940 A
210.根据权利要求9所示的一种L2中AMO指令的实现系 统, 其特征在于, 所述probe用于
窥视和监听, 将core中dirty的数据probe下来或者为了拿到E权限, 把core中的MESI状态信
息进行修改;
所述eviction, 用于保持cache中保存的数据相对新 的数据, 在cache中需要把数据替
换出去时产生;
所述TAG RAM用于记录cacheline的addr及该cacheline在L2和所有的L2 CORE中的
MESI状态信息;
所述DATA RAM用于记录 cacheline的数据信息;
所述CRQ用于 接收来自core的read请求存放的队列;
所述CWQ用于接收来自core的write请求的队列;
所述EPQ用于 接收来自外 部的probe请求的队列;
所述ORQ, 用于在 一个在L2中的请求, 上L2 pipeline后, 发现本cache 中该cacheline不
存在或该cacheline的在本cache中的访问权限不够时, 则需要申请一个ORQ, 通过ORQ向下
一级memory reload数据并拿到相应的权限;
所述WRQ, 用于在L2需要把某条cacheline给写到下一级memory, 则申请要给WRQ, 通过
WRQ将数据写入下一级memory;
所述EFQ用于在由reload数据回填L2的时候, 先把数据回填写入EFQ中, 然后通过EFQ上
L2的pipel ine将数据写入L2$同时将数据return给请求模块;
所述CPQ用于将probe相应的core,probe请求则先存放在CPQ中, 然后通过CPQ向对应的
core发出probe请求。权 利 要 求 书 2/2 页
3
CN 115016940 A
3
专利 L2中AMO指令的实现方法及系统
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:25:25上传分享