L2 Cache及其一致性實現(xiàn)方法和數(shù)據(jù)處理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域的緩存技術(shù),尤其涉及一種L2 Cache及其一致性實現(xiàn)方法和數(shù)據(jù)處理系統(tǒng)。
【背景技術(shù)】
[0002]在共享存儲的多核處理器中,高速緩沖存儲器Cache可以將共享存儲空間中的數(shù)據(jù)緩存在本地,加速多核獲取數(shù)據(jù)的過程。由于每個處理器看到的存儲視圖都是通過本地Cache得到的,因此對于同一個存儲位置的數(shù)據(jù)而言,不同的處理器可能會獲取到不同的數(shù)據(jù)值。
[0003]目前多核系統(tǒng)中,將與中央處理器CPU集成在同一塊電路板上或主板上的緩存,稱為一級LI Cache,而與CPU獨立的緩存稱為二級L2 Cache。在現(xiàn)有技術(shù)中,在處理器的控制下實現(xiàn)與LI Cache間的Cache —致性;然而為了提高系統(tǒng)處理速率等性能,一個簇Cluster內(nèi)的多個CPU通常還會共享一個L2 Cache ;然而現(xiàn)有的與CPU分離設(shè)置的L2Cache是不支持一致性訪問,這將導(dǎo)致LI Cache與L2 Cache不能實現(xiàn)Cache —致性;L2Cache不能實現(xiàn)Cache —致性。
[0004]顯然不能很好的維護(hù)Cache —致性,將會導(dǎo)致數(shù)據(jù)不一致性導(dǎo)致的處理錯誤率高及處理效率低等諸多問題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例期望提供一種能夠接收一致性訪問實現(xiàn)Cache —致性的L2 Cache和數(shù)據(jù)處理系統(tǒng);本發(fā)明實施例還同時提供了所述L2 Cache—致性實現(xiàn)方法。
[0006]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0007]本發(fā)明實施例第一方面提供一種二級獨立高速緩存器L2 Cache,所述L2 Cache包括Slave接口、控制器、Master接口以及RAM ;
[0008]所述Slave接口,用于接收一致性訪問指示信號及訪問,當(dāng)接收到所述一致性訪問指示信號時確定所述訪問為一致性訪問,及依據(jù)一致性訪問指示信號及所述訪問對所述訪問進(jìn)行分類,依據(jù)分類結(jié)果形成指示信息;
[0009]所述控制器,用于接收所述指示信息,依據(jù)所述指示信息在所述RAM中查詢操作數(shù)據(jù),在查詢到所述操作數(shù)據(jù)后依據(jù)所述指示信息執(zhí)行一致性操作;
[0010]所述Master接口,用于在所述RAM中未查詢所述操作數(shù)據(jù)時,依據(jù)所述指示信息向外設(shè)輸出所述一致性訪問指示信號及所述一致性訪問,及在查詢到所述操作數(shù)據(jù)后依據(jù)所述指示信息將所述操作數(shù)據(jù)輸出到外部存儲器。
[0011]優(yōu)選地,
[0012]所述一致性訪問指示信號包括一致性訪問類型指示信號;
[0013]所述Slave接口,用于接收所述一致性訪問類型指示信號,依據(jù)所述一致性訪問類型指示信號確定所述訪問為一致性訪問。
[0014]優(yōu)選地,
[0015]所述一致性訪問指示信號還包括所述一致性訪問全局信號;
[0016]所述Slave接口包括第一讀地址通道、第一讀數(shù)據(jù)通道及第一寫地址通道;
[0017]所述Slave接口,用于接收所述一致性訪問全局信號,依據(jù)所述一致性訪問全局信號驅(qū)動形成Slave接口控制信號,依據(jù)所述Slave接口控制信號驅(qū)動所述Slave接口內(nèi)各個所述通道接收所述一致性訪問;
[0018]所述第一讀地址通道,用于接收所述一致性訪問類型指示信號;
[0019]所述第一讀數(shù)據(jù)通道,用于依據(jù)所述查詢結(jié)果向請求源發(fā)送讀響應(yīng)信號;
[0020]所述第一寫地址通道,用于接收一致性訪問的外部存儲器更新信號。
[0021]優(yōu)選地,
[0022]所述一致性訪問全局信號包括所述一致性訪問的操作數(shù)據(jù)在其他Cache中的查詢狀態(tài)以及所述一致性訪問的請求源。
[0023]優(yōu)選地,
[0024]所述Master接口包括第二讀地址通道、第二讀數(shù)據(jù)通道及第二寫地址通道;
[0025]所述第二讀地址通道,用于在所述RAM中未查詢所述操作數(shù)據(jù)時,輸出所述一致性訪問指示信號;
[0026]所述第二讀數(shù)據(jù)通道,用于接收讀響應(yīng)信號及偵聽響應(yīng)信號;
[0027]所述第二寫地址通道,用于輸出將所述操作數(shù)據(jù)寫到外部存儲器并無效Cache內(nèi)所述操作數(shù)據(jù)的指示信號。
[0028]優(yōu)選地,
[0029]所述L2 Cache還包括:
[0030]第一緩沖區(qū),用于存儲訪問類型、在其他Cache中的查詢狀態(tài)、在所述L2 Cache中的查詢狀態(tài)及所述一致性訪問的請求源,用于為查詢所述操作數(shù)據(jù)及實現(xiàn)Cache —致性提供依據(jù)信息。
[0031]優(yōu)選地,
[0032]所第一述緩沖區(qū),還用于存儲無效失敗信息,依據(jù)所述無效失敗信息通知向所述請求源。
[0033]優(yōu)選地,
[0034]所述RAM包括Data RAM以及Tag RAM ;所述Data RAM用于存儲操作數(shù)據(jù);所述Data RAM包括若干個所述cache存儲單元;所述Tag RAM用于存儲操作數(shù)據(jù)的存儲地址及所述cache存儲單元的狀態(tài)信息;
[0035]所述控制器,具體用于依據(jù)所述指示信息,
[0036]讀取Tag RAM并依據(jù)Tag RAM的結(jié)果查詢更新所述Tag RAM,
[0037]或
[0038]讀取Tag RAM并依據(jù)Tag RAM的結(jié)果查詢所述Data RAM且將查詢的操作數(shù)據(jù)返回給處理器及更新所述Tag RAM,
[0039]或
[0040]讀取Tag RAM并依據(jù)Tag RAM的結(jié)果查詢所述Data RAM且將查詢的操作數(shù)據(jù)返回給處理器,
[0041]或
[0042]讀取Tag RAM并依據(jù)Tag RAM的結(jié)果查詢所述Data RAM且將查詢的操作數(shù)據(jù)返回給處理器并將所述操作數(shù)據(jù)寫到外部存儲器,
[0043]或
[0044]讀取Tag RAM,
[0045]或
[0046]讀取Tag RAM并依據(jù)Tag RAM的結(jié)果查詢所述Data RAM且將查詢的操作數(shù)據(jù)寫到外部存儲器及更新所述Tag RAM ;
[0047]其中,更新所述Tag RAM包括更新操作地址及所述狀態(tài)信息的至少其中之一。
[0048]優(yōu)選地,
[0049]所述控制器,還具體用于依據(jù)所述指示信息,
[0050]在所述Data RAM查詢到所述操作數(shù)據(jù)且所述操作數(shù)據(jù)的狀態(tài)為dirty時,將所述操作數(shù)據(jù)通過所述master接口輸出到外部存儲器。
[0051]優(yōu)選地,
[0052]所述控制器包括:
[0053]Tag Access fifo隊列,用于在查詢到所述操作數(shù)據(jù)后,存儲是否要更新所述TagRAM的信息及訪問所述Data RAM的指示;
[0054]Tag Write fifo隊列,用于在查詢到所述操作數(shù)據(jù)后且確定需要更新所述Tag RAM時,存儲需要更新所述Tag RAM的操作信息;
[0055]Data read fifo隊列,用于在查詢到所述操作數(shù)據(jù)后,存儲需要更新所述Tag RAM且讀取Data RAM的操作信息;
[0056]控制單元,用于依據(jù)所述Tag Access fifo隊列、Tag Write fifo隊列及Data readfifo隊列執(zhí)行所述一致性操作。
[0057]優(yōu)選地,
[0058]所述控制器包括控制單元;
[0059]所述控制單元,用于進(jìn)行訪問沖突檢測,在檢測到?jīng)_突訪問時,采用阻塞機(jī)制對訪問沖突進(jìn)行處理。
[0060]本發(fā)明實施例第二方面提供一種數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括至少一個簇;
[0061]所述簇包括至少兩個處理器、簇內(nèi)幀聽控制器以及上述權(quán)利要求1至9任一項所述的L2 Cache ;其中,每一個所述處理器都集成設(shè)置有一個LI Cache ;
[0062]所述簇內(nèi)巾貞聽控制器,分別與所述LI Cache及所述L2 Cache相連,用于偵聽一致性訪問,協(xié)助任一兩個所述LI Cache以及所述LI Cache與所述L2 Cache之間實現(xiàn)Cache一致性。
[0063]優(yōu)選地,
[0064]所述系統(tǒng)還包括簇間幀聽控制器;
[0065]所述簇間幀聽控制器,與所述L2 Cache相連用于偵聽一致性訪問,協(xié)助實現(xiàn)簇之間的Cache —致性。
[0066]優(yōu)選地,
[0067]所LI Cache,具體用于當(dāng)接收一致性訪問在所述LI Cache中查詢所述一致性訪問對應(yīng)的操作數(shù)據(jù);當(dāng)所述LI Cache查詢到所述操作數(shù)據(jù)時,響應(yīng)所述一致性訪問,同時在所述簇內(nèi)緩存幀聽控制器的協(xié)助下實現(xiàn)所述LI Cache所在簇的Cache —致性,并在所述簇間緩存幀聽控制器的協(xié)助下實現(xiàn)簇間的Cache的一致性;
[0068]所述簇內(nèi)緩存幀聽控制器,用于在本簇內(nèi)所述LI Cache中未查詢到所述操作數(shù)據(jù)時,向所述L2 Cache發(fā)送所述一致性訪問;
[0069]所述L2 Cache用于在本簇所述LI Cache中未查詢到一致性訪問對應(yīng)的操作數(shù)據(jù)時,接收所述一致性訪問及其他簇發(fā)送的一致性訪問,查詢所述L2 Cache中是否存儲有所述操作數(shù)據(jù),當(dāng)所述L2 Cache未查詢到所述一致性訪問對應(yīng)的操作數(shù)據(jù)時,通過所述簇間緩存幀聽控制器到所述L2 Cache所在簇以外的其他簇中查詢所述操作數(shù)據(jù),在查詢到所述操作數(shù)據(jù)后響應(yīng)所述一致性訪問,并在所述簇間緩存幀聽控制器協(xié)助下實現(xiàn)簇間的Cache一致性。
[0070]本發(fā)明實施例第三方面提供一種L2 Cache —致性實現(xiàn)方法,所述方法包括:
[0071]接收一致性訪問指示信號及訪問,當(dāng)接收到所述一致性訪問指示信號時確定所述訪問為一致性訪問;
[0072]依據(jù)一致性訪問指示信號及所述訪問對所述訪問進(jìn)行分類,依據(jù)分類結(jié)果形成指示信息;
[0073]依據(jù)所述指示信息查詢操作數(shù)據(jù),在查詢到所述操作數(shù)據(jù)后依據(jù)所述指示信息執(zhí)行一致性操作;在未查詢所述操作數(shù)據(jù)時,依據(jù)所述指示信息向外設(shè)輸出所述一致性訪問指示信號及所述一致性訪問;
[0074]當(dāng)所述訪問需要將所述操作數(shù)據(jù)輸出到外部存儲器時,則在查詢到所述操作數(shù)據(jù)后,依據(jù)所述指示信息將所述操作數(shù)據(jù)輸出到外部存儲器。
[0075]優(yōu)選地,
[0076]所述一致性訪問指示信號包括一致性訪問類型指示信號;
[0077]所述接收一致性訪問指示信號及訪問,當(dāng)接收到所述一致性訪問指示信號時確定所述訪問為一致性訪問,包括:
[0078]接收所述一致性訪問類型指示信號,依據(jù)所述一致性類型指示信號確定所述訪問為一致性訪問。
[0079]優(yōu)選地,
[0080]所述L2 Cache包括Slave接口;所述Slave接口包括第一讀地址通道、第一讀數(shù)據(jù)通道及第一寫地址通道;
[0081 ] 所述一致性訪問指示信號還包括所述一致性訪問全局信號;
[0082]所述接收一致性訪問指示信號及訪問,當(dāng)接收到所述一致性訪問指示信號時確定所述訪問為一致性訪問,包括:
[0083]接收所述一致性訪問全局信號,依據(jù)所述一致性訪問全局信號驅(qū)動形成Slave接口控制信號,依據(jù)所述Slave接口控制信號驅(qū)動所述Slave接口內(nèi)各個所述通道接收所述一致性訪問;
[0084]通過所述第一讀地址通道接收所述一致性訪問類型指示信號;
[0085]所述接收一致性訪問指示信號及訪問,當(dāng)接收到所述一致性訪問指示信號時確定所述訪問為一致性訪問,還包括以下至少其中之一:
[0086]通過所述第一讀地址通道接收所述一致性訪問類型指示信號;
[0087]通過所述第一讀數(shù)據(jù)通道依據(jù)所述查詢結(jié)果向請求源發(fā)送讀響應(yīng)信號;
[0088]通過所述第一寫地址通道接