[發(fā)明專利]讀取數(shù)據(jù)的方法及裝置在審
| 申請?zhí)枺?/td> | 201611254244.8 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN108268384A | 公開(公告)日: | 2018-07-10 |
| 發(fā)明(設(shè)計)人: | 程永波;蘭可嘉;賀成洪 | 申請(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號: | G06F12/0806 | 分類號: | G06F12/0806 |
| 代理公司: | 北京龍雙利達知識產(chǎn)權(quán)代理有限公司 11329 | 代理人: | 蘭春娥;毛威 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 第一處理器 偵聽 第二處理器 第一數(shù)據(jù) 處理器 發(fā)送 方法和裝置 存儲器 讀取請求 響應消息 消息發(fā)送 地址范圍寄存器 數(shù)據(jù)讀取請求 存儲資源 上界 下界 申請 節(jié)約 記錄 | ||
本申請實施例提供一種讀取數(shù)據(jù)的方法和裝置,該方法包括:第一處理器接收第二處理器發(fā)送的第一讀取請求消息;在該第一數(shù)據(jù)的地址在該第一處理器的第一地址范圍寄存器記錄的上界和下界范圍內(nèi)的情況下,該第一處理器向除該第二處理器外的至少一個第三處理器發(fā)送第一偵聽消息,同時向該存儲器發(fā)送第二讀取請求消息;該第一處理器接收該至少一個第三處理器中的每個第三處理器根據(jù)該第一偵聽消息發(fā)送的第一偵聽響應消息;該第一處理器接收該存儲器根據(jù)該第二數(shù)據(jù)讀取請求消息發(fā)送的該第一數(shù)據(jù);該第一處理器根據(jù)該第一偵聽響應消息,向該第二處理器發(fā)送該第一數(shù)據(jù)。本申請實施例的讀取數(shù)據(jù)的方法和裝置,能夠節(jié)省存儲資源,節(jié)約設(shè)計成本。
技術(shù)領(lǐng)域
本申請涉及計算機領(lǐng)域,并且更具體地,涉及一種讀取數(shù)據(jù)的方法及裝置。
背景技術(shù)
在緩存一致性-非對稱存儲器訪問(Cache Coherence Non-Uniform MemoryAccess,簡稱為“CC-NUMA”)系統(tǒng)中,每個處理器都帶有各自的擴展內(nèi)存,處理器之間通過互聯(lián)接口形成多處理器系統(tǒng)。各處理器所帶的內(nèi)存全系統(tǒng)可見,即任何一個處理器都可以訪問本地內(nèi)存或其他處理器所帶的內(nèi)存。上述多個處理器之間通過緩存一致性協(xié)議,維護數(shù)據(jù)一致性。目前絕大部分處理器都采用基于目錄的緩存一致性協(xié)議,每個處理器都有目錄,存儲了每個處理器對應的存儲器中。目錄以緩存行(Cache Line)為單位記錄了自己所帶內(nèi)存的數(shù)據(jù)被其他處理器訪問的情況,目錄需要記錄被訪問數(shù)據(jù)為獨占或共享的狀態(tài),以及被哪個處理器所訪問。
假設(shè)上述CC-NUMA系統(tǒng)包括四個中央處理器(Central Processing Unit,簡稱為“CPU”):CPU0,CPU1,CPU2和CPU3,CPU0需要讀取CPU3的一個Cache Line數(shù)據(jù),并將該數(shù)據(jù)設(shè)置為獨占狀態(tài),那么該CPU0向CPU3發(fā)送獨占請求,CPU3讀取內(nèi)存數(shù)據(jù),向CPU0返回數(shù)據(jù)響應,并將目錄中該數(shù)據(jù)對應的狀態(tài)設(shè)置為獨占態(tài),因此,CPU0的緩存中就緩存了CPU3的該數(shù)據(jù)的副本。若在此之后,CPU1發(fā)起對相同地址的數(shù)據(jù)的訪問,CPU3在接收到CPU1的訪問請求之后,需要讀取內(nèi)存數(shù)據(jù)和目錄,根據(jù)該目錄獲知該數(shù)據(jù)的獨占副本被CPU0緩存,CPU3向CPU0發(fā)送偵聽消息,獲取到CPU0反饋的偵聽響應之后,將目錄中該數(shù)據(jù)的狀態(tài)由獨占態(tài)改為共享態(tài),并將該數(shù)據(jù)發(fā)送給CPU1。
對于多個處理器之間數(shù)據(jù)訪問過程的優(yōu)化一直是亟待解決的問題。現(xiàn)有技術(shù)中的優(yōu)化方案通過在每個處理器中設(shè)置一個目錄緩存(Directory Cache,簡稱為“DC”),該目錄緩存中緩存一部分目錄,這一部分目錄記錄了該每個處理器自身存儲的數(shù)據(jù)被其他處理器訪問的一部分地址。當DC命中時,可以提前將偵聽消息發(fā)送出去,例如,在上文的方案中,CPU3接收到CPU1發(fā)送的訪問請求之后,若請求訪問的數(shù)據(jù)的地址在DC中,那么CPU3可以直接向CPU0發(fā)送偵聽消息,無需等待CPU3向存儲器獲取數(shù)據(jù)以及完整的目錄。但是,DC一般只能緩存一個處理器Cache所對應的數(shù)據(jù)量的目錄,那么若系統(tǒng)中有多個外部處理器的Cache時,大部分目錄在DC中放不下,還是存儲在存儲器中,需要從存儲器中讀取目錄,并不能起到優(yōu)化的效果。若要提高命中率,就需要增大DC的容量,這樣的設(shè)置浪費存儲資源,增加設(shè)計成本。
發(fā)明內(nèi)容
有鑒于此,本申請實施例提供一種讀取數(shù)據(jù)的方法,能夠節(jié)省存儲資源,節(jié)約設(shè)計成本。
第一方面,提供了一種讀取數(shù)據(jù)的方法,包括:第一處理器接收第二處理器發(fā)送的第一讀取請求消息,所述第一讀取請求消息攜帶所述第二處理器需要讀取的第一數(shù)據(jù)的地址以及所述第一數(shù)據(jù)的第一緩存狀態(tài),所述第一處理器包括第一地址范圍寄存器DRR,所述第一DRR用于記錄與所述第一處理器對應的存儲器中被其他處理器訪問的數(shù)據(jù)的地址的上界和下界;
在所述第一數(shù)據(jù)的地址在所述上界和所述下界范圍內(nèi)的情況下,所述第一處理器向除所述第二處理器外的至少一個第三處理器發(fā)送第一偵聽消息,同時向所述存儲器發(fā)送第二讀取請求消息,所述第二讀取請求消息用于請求讀取所述第一數(shù)據(jù),所述第一偵聽消息用于表示所述第二處理器請求的所述第一緩存狀態(tài);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611254244.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





