一種內存訪問控制方法,及裝置的制造方法
【技術領域】
[0001] 本發明涉及存儲技術領域,特別涉及一種內存訪問控制方法,及裝置。
【背景技術】
[0002] -個多處理器系統通常包含有多個處理器、一個或多個內存控制器、連接各處理 器和內存的網絡。圖1所示是一個多處理器系統的實例,在圖1中有兩個處理器;處理器 (Processor) 0 (100)和處理器(Processor)! (101),內存控制器103、內存控制器103連 接有內存104。各個組件通過特定的總線或者網絡102連接起來。內存控制器103可W是 獨立的組件,也可W集成在各處理器中。
[0003] 若Processor(100)要訪問內存,貝Ij會執行如下流程:
[0004] 1、Processor(100)通過網絡102發送內存訪問請求消息給內存控制器103。
[0005] 2、內存控制器103為維護緩存一致性,首先根據目錄項信息決定是否向其他處理 器發起偵聽;若需要發起偵聽,則通過網絡102發送偵聽消息到Processor(101 ),并獲得 偵聽響應(109);
[0006] 3、內存控制器(103)將內存數據響應110發送給請求者ProcessorO(100)。
[0007] 在W上流程中,目錄項信息顯示的是哪些個處理器(或者任何需要使用系統內存 的組件)緩存了某個系統內存塊。存儲目錄信息的目錄,其設計可W是多樣化的,有的只顯 示緩存或者不緩存;有的能顯示更多的狀態,比如獨占,共享,無效(等同于不緩存);有的除 了顯示狀態外,還指示具體某個或幾個處理器緩存了某個內存塊。
[0008] 在上述內存訪問的流程中,內存控制器103需要根據目錄信息來決定是否發起偵 聽。存儲目錄信息的目錄,其設計一般分兩大類,基于內存的和基于緩存的。基于內存的設 計是內存全覆蓋的,每個內存塊都有對應的目錄項;而基于緩存的一般是稀疏目錄,只有緩 存在處理器中的內存才有目錄項。本發明實施例將要涉及的是應用在基于內存的目錄設計 中。
[0009] 基于內存的目錄設計有個特點,目錄占用的存儲空間比較大。假如內存控制器管 理的是1T的內存,即使是最小的化it目錄設計,W-個內存塊64字節計算也需要2G字節 的目錄存儲空間。該么大的存儲空間一般都存放在外部存儲上,比如DMM(DualInline MemoryModules,雙列直插式存儲模塊)。
[0010] 由于采用W上方案,訪問存放在外部存儲上的目錄項進行,延時比較長,不利于性 能的提升。所W,一般會在片上增加一個DC(Directory化che,目錄緩存)來降低目錄項的 訪問延時。內存控制器103內包含了幾個組件;負責緩存一致性的CC(CacheCoherence, 緩存一致性)引擎,目錄緩存DC;內存控制器對接了外部存儲器。假如DCW后的訪問控制 方案如下:內存控制器在接收到內存訪問請求消息后,CC引擎向目錄緩存發起目錄請求, 由于目錄緩存在初次使用時沒有任何記錄,此時需要向外部存儲器發起目錄請求得到目錄 項響應,從目錄項響應中獲得目錄項;然后目錄緩存再創建目錄項緩存來緩存獲得的目錄 項,并返回目錄項給DC。那么,下次如果還有相同內存地址需要訪問目錄項時,由于能在目 錄緩存中命中,將不再需要向外部存儲發起目錄請求,從而達到降低延時的目的。
[0011] W上方案,如果需要訪問的內存在目錄緩存能夠命中,則可W降低目錄項的訪問 延時。但是,在目錄緩存不能夠命中的情況下,由于仍然需要向外部存儲器發起目錄請求來 完成外部訪問,因此延遲仍然較大,因此訪問性能較低。
【發明內容】
[0012] 本發明實施例提供了一種內存訪問控制方法,及裝置,用于減少對外部存儲器的 訪問,從而降低訪問延遲,提高訪問性能。
[0013] 一種內存訪問控制方法,包括:
[0014] 接收內存訪問請求,并確定所述內存訪問請求指定的內存地址;
[0015] 查詢目錄緩存,確定所述目錄緩存中是否存在與所述內存地址對應的目錄項;查 詢目錄容器,確定所述目錄容器中是否存在與所述內存地址對應的記錄項;所述目錄項的 信息指示緩存有所述內存訪問請求訪問的數據緩存的位置;所述記錄項記錄有在外部存儲 器中存有且對應的內存地址的狀態為非無效狀態的目錄項的地址;
[0016] 若所述目錄緩存中不存在與所述內存地址對應的目錄項,且所述目錄容器中不存 在與所述內存地址對應的記錄項,則確定所述內存地址對應的目錄項為無效狀態。
[0017] 一種內存訪問控制裝置,包括:
[0018] 地址確定單元,用于確定接收到的內存訪問請求指定的內存地址;
[0019] 查詢單元,用于查詢目錄緩存,確定所述目錄緩存中是否存在與所述地址確定單 元確定的內存地址對應的目錄項;查詢目錄容器,確定所述目錄容器中是否存在與所述內 存地址對應的記錄項;所述目錄項的信息指示緩存有所述內存訪問請求訪問的數據緩存的 位置;所述記錄項記錄有在外部存儲器中存有且對應的內存地址的狀態為非無效狀態的目 錄項的地址;
[0020] 訪問控制單元,用于若所述查詢單元確定所述目錄緩存中不存在與所述內存地址 對應的目錄項,且所述目錄容器中不存在與所述內存地址對應的記錄項,則確定所述內存 地址對應的目錄項為無效狀態。
[0021] 從W上技術方案可W看出,本發明實施例具有W下優點:新增了目錄容器,在目錄 容器的記錄項記錄有在外部存儲器中存有且對應的內存地址的狀態為非無效狀態的目錄 項的地址;目錄緩存中不存在與所述內存地址對應的目錄項,且目錄容器中不存在與所述 內存地址對應的記錄項的情況下,可W避免對無效狀態的目錄項對應地址的外部訪問,從 而降低內存訪問延時,提高內存訪問性能。
【附圖說明】
[0022] 為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本 領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可W根據該些附圖獲得其 他的附圖。
[0023] 圖1為現有技術多處理器系統的結構示意圖;
[0024] 圖2為本發明實施例方法流程示意圖;
[0025] 圖3為本發明實施例系統架構示意圖;
[0026] 圖4為本發明實施例方法流程示意圖;
[0027] 圖5為本發明實施例方法流程示意圖;
[0028] 圖6為本發明實施例方法流程示意圖;
[0029] 圖7為本發明實施例裝置結構示意圖;
[0030] 圖8為本發明實施例裝置結構示意圖;
[0031] 圖9為本發明實施例裝置結構示意圖;
[0032] 圖10為本發明實施例裝置結構示意圖;
[0033] 圖11為本發明實施例裝置結構示意圖;
[0034] 圖12為本發明實施例裝置結構示意圖;
[00巧]圖13為本發明實施例設備結構示意圖。
【具體實施方式】
[0036] 為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進 一步地詳細描述,顯然,所描述的實施例僅僅是本發明一部份實施例,而不是全部的實施 例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的 所有其它實施例,都屬于本發明保護的范圍。
[0037] 發明人對【背景技術】中的技術方案進行了分析;對任意一個內存地址,第一次訪問 目錄項時,在DC中不會命中,也即是說需要向外部存儲器進行訪問。事實上,對于一個沒有 被訪問過的內存地址,目錄項的狀態是已知的,那就是無效狀態,即沒有任何處理器緩存該 內存塊。該個時候向外部存儲器請求目錄項的動作顯得多余,該部分延時也顯得浪費了。本 發明實施例基于此給出了解決方案。
[003引本發明實施例提供了一種內存訪問控制方法,本方法的執行主體可W是執行內存 訪問控制的任何模塊,本發明實施例不予限定,本實施例方法如圖2所示,包括:
[003引201 ;接收內存訪問請求,并確定上述內存訪問請求指定的內存地址;
[0040] 上述內存訪問請求通常可W來自于處理器。在多處理器系統中,內存訪問請求可 W來自于任意的處理器。
[0041] 202;查詢目錄緩存,確定上述目錄緩存中是否存在與上述內存地址對應的目錄 項;查詢目錄容器,確定上述目錄容器中是否存在與上述內存地址對應的記錄項;上述目 錄項的信息指示緩存有上述內存訪問請求訪問的數據緩存的位置;上述記錄項記錄有在外 部存儲器中存有且對應的內存地址的狀態可能為非無效狀態的目錄項的地址;
[0042] 在本實施例中,目錄容器中的記錄項,還可W記錄在外部存儲器中存有且對應的 內存地址的狀態為無效狀態的目錄項的地址;一條記錄項可W記錄多個內存塊的地址,一 個