[發(fā)明專利]L2中AMO指令的實現(xiàn)方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 202210671698.4 | 申請日: | 2022-06-14 |
| 公開(公告)號: | CN115016940A | 公開(公告)日: | 2022-09-06 |
| 發(fā)明(設(shè)計)人: | 李長林;劉磊 | 申請(專利權(quán))人: | 廣東賽昉科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 上海邦德專利代理事務(wù)所(普通合伙) 31312 | 代理人: | 崔雙雙 |
| 地址: | 528300 廣東省佛山市順德*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | l2 amo 指令 實現(xiàn) 方法 系統(tǒng) | ||
1.一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法包括以下步驟:
S1初始化,amo請求從core發(fā)出,并allocate一個cwq entry項,請求贏得仲裁后,上pipeline;
S2命中tag_ram并且dirty的數(shù)據(jù)在core中,則Allocate ORQ CSQ;
S3由CSQ向core發(fā)出snoop請求,并拿到dirty的數(shù)據(jù),判斷是否支持csq bypass數(shù)據(jù),并進行相應(yīng)的處理;
S4ORQ上pipeline,完成amo的modify功能,并將該cacheline的原始值返回給core,把modify之后的數(shù)據(jù)寫入L2 cache中。
2.根據(jù)權(quán)利要求1所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,若不支持csq bypass數(shù)據(jù)時,在S2后,CSQ上pipeline,更新L2 tag_ram和data_ram。
3.根據(jù)權(quán)利要求2所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,ORQ上pipeline從dataram中讀取到剛剛CSQ snoop所得到dirty數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,若支持csq bypass數(shù)據(jù)時,在S2后,Csq直接把snoop到的dirty數(shù)據(jù)bypass給orq。
5.根據(jù)權(quán)利要求1所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,L2進行工作時包括以下步驟:
T1接收來自core和外部extend的請求,同時收來自CRQ CWQ EPQ ORQ EFQ CPQ的請求,并選出其中的一個請求進入pipeline;
T2根據(jù)請求的類型和當前L2中TAG信息及MESI狀態(tài)信息,生成相關(guān)分配方案;
T3通過L2向下游memory發(fā)出讀請求或?qū)懻埱螅⒂上掠蝝emory返回reload data回填到EFQ;
T4通過EFQ上L2de pipeline,將reload回來的數(shù)據(jù)寫入L2$中,同時將數(shù)據(jù)return給請求的core。
6.根據(jù)權(quán)利要求5所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,L2接收來自core和外部extend的請求,包括接收來自core的read請求,放在CRQ中;接收來自core的write請求,放在CWQ中;接收來自外部的probe請求,放在EPQ中。
7.根據(jù)權(quán)利要求5所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,在pipeline中,根據(jù)請求的類型,和當前L2中TAG信息及MESI狀態(tài)信息確定:是否可以直接寫入L2;是否可以直接return data給請求方;是否需要向下游memory reload數(shù)據(jù)或權(quán)限;是否需要產(chǎn)生evict;是否需要向下游memory write數(shù)據(jù);是否需要probe core;如果判斷需要向下游memory reload數(shù)據(jù)或權(quán)限,則分配一個ORQ;如果判斷需要向下游memory write數(shù)據(jù),則分配一個WRQ;如果判斷需要probe core,則分配一個CPQ,L2向core發(fā)出probe請求,都是通過CPQ來完成。
8.根據(jù)權(quán)利要求5所述的一種L2中AMO指令的實現(xiàn)方法,其特征在于,所述方法中,通過L2向下游memory發(fā)出讀請求,則通過ORQ發(fā)出,向下游memory讀取到數(shù)據(jù)并拿到該數(shù)據(jù)對應(yīng)的權(quán)限;通過L2向下游memory發(fā)出寫請求,則通過WRQ,將數(shù)據(jù)從L2中寫到下一級memory中。
9.一種L2中AMO指令的實現(xiàn)系統(tǒng),所述系統(tǒng)用于實現(xiàn)如權(quán)利要求1-8任一項所述的L2中AMO指令的實現(xiàn)方法,其特征在于,包括probe、eviction、TAG RAM、DATA RAM、CRQ、CWQ、EPQ、ORQ、WRQ、EFQ和CPQ。
10.根據(jù)權(quán)利要求9所示的一種L2中AMO指令的實現(xiàn)系統(tǒng),其特征在于,所述probe用于窺視和監(jiān)聽,將core中dirty的數(shù)據(jù)probe下來或者為了拿到E權(quán)限,把core中的MESI狀態(tài)信息進行修改;
所述eviction,用于保持cache中保存的數(shù)據(jù)相對新的數(shù)據(jù),在cache中需要把數(shù)據(jù)替換出去時產(chǎn)生;
所述TAG RAM用于記錄cacheline的addr及該cacheline在L2和所有的L2 CORE中的MESI狀態(tài)信息;
所述DATA RAM用于記錄cacheline的數(shù)據(jù)信息;
所述CRQ用于接收來自core的read請求存放的隊列;
所述CWQ用于接收來自core的write請求的隊列;
所述EPQ用于接收來自外部的probe請求的隊列;
所述ORQ,用于在一個在L2中的請求,上L2 pipeline后,發(fā)現(xiàn)本cache中該cacheline不存在或該cacheline的在本cache中的訪問權(quán)限不夠時,則需要申請一個ORQ,通過ORQ向下一級memory reload數(shù)據(jù)并拿到相應(yīng)的權(quán)限;
所述WRQ,用于在L2需要把某條cacheline給寫到下一級memory,則申請要給WRQ,通過WRQ將數(shù)據(jù)寫入下一級memory;
所述EFQ用于在由reload數(shù)據(jù)回填L2的時候,先把數(shù)據(jù)回填寫入EFQ中,然后通過EFQ上L2的pipeline將數(shù)據(jù)寫入L2$同時將數(shù)據(jù)return給請求模塊;
所述CPQ用于將probe相應(yīng)的core,probe請求則先存放在CPQ中,然后通過CPQ向?qū)?yīng)的core發(fā)出probe請求。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣東賽昉科技有限公司,未經(jīng)廣東賽昉科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210671698.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 互動業(yè)務(wù)終端、實現(xiàn)系統(tǒng)及實現(xiàn)方法
- 街景地圖的實現(xiàn)方法和實現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實現(xiàn)裝置及其圖像實現(xiàn)方法
- 增強現(xiàn)實的實現(xiàn)方法以及實現(xiàn)裝置
- 軟件架構(gòu)的實現(xiàn)方法和實現(xiàn)平臺
- 數(shù)值預(yù)報的實現(xiàn)方法及實現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實現(xiàn)方法和實現(xiàn)裝置以及實現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實現(xiàn)方法和實現(xiàn)裝置以及實現(xiàn)系統(tǒng)
- 輸入設(shè)備實現(xiàn)方法及其實現(xiàn)裝置





