智能遠存儲器帶寬縮放的制作方法
【技術領域】
[0001]本發(fā)明的實施例涉及存儲器帶寬管理。更特別地,本發(fā)明的實施例涉及用于管理多級存儲器子系統(tǒng)中的帶寬的技術。
【背景技術】
[0002]計算系統(tǒng)和裝置典型地包含由動態(tài)隨機存取存儲器(DRAM)組成的適當?shù)闹鞔鎯ζ鳎瑏泶鎯ο到y(tǒng)非易失性盤存儲的內容的子集。主存儲器用于減少等待時間并且增加系統(tǒng)處理器的帶寬來存儲并且從盤存儲取回存儲器操作數(shù)。
[0003]DRAM封裝件(例如,雙列直插存儲器模塊(DMM))受限于它們的存儲器密度方面,并且還典型地比非易失性存儲器存儲貴。最近,為增加系統(tǒng)的大小,主存儲器需要多個DIMM,這增加了系統(tǒng)的成本和體積。增加系統(tǒng)體積不利地影響系統(tǒng)的形狀因子(例如,大的DIMM存儲器等級在移動客戶空間中是不理想的)。
【附圖說明】
[0004]在附圖的圖中以示例的方式而不以限制的方式來圖示本發(fā)明的實施例,其中相似的參考標號指代類似元件。
[0005]圖1是兩級系統(tǒng)主存儲器系統(tǒng)的一個實施例的框圖。
[0006]圖2是在2LM架構中管理存儲器帶寬的技術的一個實施例的框圖。
[0007]圖3在具有2LM存儲器的片上系統(tǒng)(SoC)架構的一個實施例的框圖。
[0008]圖4是用于在2LM架構中管理存儲器帶寬的技術的一個實施例的流程圖。
【具體實施方式】
[0009]在下文的描述中,闡述了許多具體細節(jié)。然而,沒有這些具體細節(jié)也可實踐本發(fā)明的實施例。在其它實例中,沒有詳細地示出熟知的電路、結構和技術以便不模糊此描述的理解。
[0010]本文描述用于帶寬管理的技術。在一個實施例中,帶寬管理針對包括兩級存儲器(備選地在本文稱作為“2LM”)的系統(tǒng)主存儲器,兩級存儲器包含系統(tǒng)盤級存儲的高速緩存子集(例如,除運行時間數(shù)據(jù)以外)。此主存儲器包含第一級(備選地在本文稱作為“近存儲器(near memory)”)和第二級(備選地在本文稱作為“遠存儲器(far memory)”),該第一級是由例如DRAM構成的較小、較快的存儲器,并且該第二級包含(相對于近存儲器)較大、較慢的易失性存儲器(例如,DRAM)或非易失性存儲器存儲(例如,閃速存儲器)。
[0011]在一個實施例中,遠存儲器被呈現(xiàn)為主機操作系統(tǒng)(OS)的“主存儲器”,而近存儲器是對OS透明的用于遠存儲器的高速緩存,因此將以下描述的實施例渲染為顯得與現(xiàn)有技術主存儲器解決方案相同。兩級存儲器的管理可由經(jīng)由主機處理核執(zhí)行的邏輯和模塊的組合來完成。近存儲器可經(jīng)由用于有效率的處理的高帶寬、低等待時間的互連而耦合到主機處理核。遠存儲器可經(jīng)由較低帶寬、較高等待時間的互連(相比于近存儲器的互連)而耦合到處理核。
[0012]圖1是兩級系統(tǒng)主存儲器系統(tǒng)的一個實施例的框圖。系統(tǒng)主存儲器100向處理器110提供運行時間數(shù)據(jù)存儲以及系統(tǒng)盤存儲存儲器(未示出)的內容的訪問。在一些實施例中,處理器110可包含高速緩存存儲器,它可存儲主存儲器100的內容的子集。
[0013]在一個實施例中,主存儲器100包含示為近存儲器120(例如,DRAM)的易失性存儲器級、以及示為遠存儲器130的存儲器級。遠存儲器可包括易失性或非易失性存儲器。在本實施例中,近存儲器120用作遠存儲器130的低等待時間和高帶寬(即,對于處理器110訪問而言)的高速緩存,遠存儲器130可具有較低的帶寬和較高的等待時間(S卩,對于處理器110訪問而言)。
[0014]在一個實施例中,近存儲器120由近存儲器控制器(NMC) 125管理,而遠存儲器130由遠存儲器控制器(FMC)135管理。FMC 135將遠存儲器130作為主存儲器報告給主機操作系統(tǒng)(OS) (S卩,主機OS將遠存儲器130的大小認作系統(tǒng)主存儲器100的大小)。主機OS和系統(tǒng)應用“沒有意識到”近存儲器120的存在,因為它是遠存儲器130的“透明”高速緩存。
[0015]在一個實施例中,處理器110還包含2LM引擎模塊/邏輯140。“2LM引擎”是可包括硬件和/或微代碼擴展來支持兩級主存儲器100的邏輯構造。例如,2LM控制器140可保持追蹤遠存儲器130的所有架構可見元件的狀態(tài)的完整標簽表。
[0016]例如,當處理器110嘗試訪問主存儲器100中的特定數(shù)據(jù)片段時,2LM控制器140確定所述數(shù)據(jù)片段是否包含在近存儲器120中;如果不包含,則2LM控制器140取得遠存儲器130中的數(shù)據(jù)片段并且隨后將數(shù)據(jù)片段寫入近存儲器120 (類似于高速緩存缺失)。因為近存儲器120充當遠存儲器130的“高速緩存”,所以2LM引擎140還可執(zhí)行數(shù)據(jù)預取或在本領域中已知的類似高速緩存效率過程。
[0017]2LM控制器140可管理遠存儲器130的其它方面。例如,在遠存儲器130包括非易失性存儲器的實施例中,由于大量讀/寫,非易失性存儲器(例如,閃速或相變存儲器)遭受存儲器片段的退化。因此,2LM控制器140可以用對系統(tǒng)軟件透明的方式來執(zhí)行包含磨損均衡、壞塊回避等功能。例如,執(zhí)行磨損均衡邏輯可包含從具有相對低的擦除循環(huán)計數(shù)的遠存儲器130中的干凈非映射片段的空閑池中選擇片段。
[0018]近存儲器120的大小比遠存儲器130更小,雖然精確比例可例如基于預期的系統(tǒng)使用而不同。在本實施例中,因為遠存儲器130包括更致密、更便宜的非易失性存儲器,所以可便宜并且高效地增加主存儲器100并且獨立于系統(tǒng)中的DRAM (S卩,近存儲器120)的量。
[0019]具有用于第一級存儲器(近存儲器)的減少的DRAM大小和用于第二級的相變存儲器(遠存儲器)的2LM存儲器子系統(tǒng)的功率和性能建模示出:當遠存儲器的帶寬超過給定帶寬閾值時,2LM存儲器子系統(tǒng)架構的功率優(yōu)勢丟失。這發(fā)生在當在遠存儲器交互中消耗的功率超過配置有產(chǎn)生相等性能的存儲器大小的ILM架構與2LM架構之間的功率差別時。為了消除這些無關情況的影響,描述技術來動態(tài)地縮放近存儲器大小和帶寬到遠存儲器以便持續(xù)地產(chǎn)生優(yōu)于傳統(tǒng)的ILM存儲器架構的功耗。
[0020]在一些實施例中,將元數(shù)據(jù)添加到所有存儲器交互來識別存儲器請求的來源。2LM控制器保持用于作出請求的每個裝置的近存儲器缺失的記錄。這允許2LM存儲器控制器識別導致過量的遠存儲器帶寬消耗的任何裝置的來源。
[0021]圖2是在2LM架構中管理存儲器帶寬的技術的一個實施例的框圖。圖2的示例包含特定數(shù)量的處理核;然而,可支持任何數(shù)量的處理核。另外,可以支持許多不同類型的存儲器來用作近或遠存儲器。
[0022]在一個實施例中,系統(tǒng)包含兩個高功率核(例如,HP核210、HP核215)和兩個低功率核(LP核220、LP核225)。核耦合于核電源管理單元230。2LM請求隊列240收集來自核的存儲器請求,2LM請求隊列240與2LM控制器250 —起操作來管理到近和遠存儲器(分別是260和270)的存儲器請求。在一個實施例中,2LM控制器250包含遠存儲器帶寬監(jiān)測器255,它與核電源管理單元230通信來管理到遠存儲器270的帶寬利用率。
[0023]在一個實施例中,通知請求核(例如,210、215、220、225 )它將經(jīng)歷用于存儲器請求的完成的增加的等待時間。通過增加存儲器等待時間,請求核可以處于較低性能模式中,其中性能更好地匹配到提供給遠存儲器的帶寬和對應的較高等待時間。
[0024]在一個實施例中,遠存儲器帶寬監(jiān)測器255分析來自核電源管理單元230的存儲器請求(例如,標記)中的元數(shù)據(jù)以確定期望的讀取等待時間。這允許核電源管理單元230確定是否將請求過程從高功率核(例如,210、215)移動到較低功率核(例如,220、225)來更好地匹配核的操作與遠存儲器的帶寬和等待時間。
[