標簽和數據共同存儲在物理行中的dram高速緩存的制作方法
【專利摘要】本發明公開了一種用于在計算系統的大型基于行的存儲器中進行有效高速緩存數據存取的系統和方法。計算系統包括處理單元和集成三維(3D)動態隨機存取存儲器(DRAM)。所述處理單元將3DDRAM用作高速緩存。所述3D?DRAM的存儲器陣列組中的多行中的每一行至少存儲多個高速緩存標簽和由所述多個高速緩存標簽指示的多條相應高速緩存線。響應于從所述處理單元接收存儲器請求,所述3D?DRAM根據所述接收的存儲器請求在由所述接收的存儲器請求內的高速緩存標簽指示的給定高速緩存線上執行存儲器存取。可以使用單個復雜DRAM事務而不是使用多個DRAM事務來降低延遲和功耗。
【專利說明】標簽和數據共同存儲在物理行中的DRAM高速緩存
[0001]發明背景【技術領域】
[0002]本發明涉及計算系統,且更特定來說涉及用于在計算系統的大型基于行的存儲器中進行有效高速緩存數據存取。
[0003]相關領域的描述
[0004]隨著半導體制造過程推進以及晶粒上幾何尺寸減小,半導體芯片提供更多功能和性能。然而,現代處理技術和可能限制潛在益處的集成電路設計仍然出現設計問題。一個問題是在二維平面布局芯片的相繼代中每單位長度的互連延遲繼續增加。而且,個別芯片之間的高電阻抗增加延遲。此外,由于這些較長信號路徑上增加的寄生電容,遍歷片外到另一晶粒的信號可能顯著增加這些信號的功耗(例如,增加10到100倍)。
[0005]另一設計問題是存取許多數據的大多數軟件應用程序通常受存儲器限制,因為計算時間通常由存儲器帶寬確定。片外動態隨機存取存儲器(DRAM)的存儲器存取延遲可以是數百到超過一千個時鐘周期,且處理器設計中增加的核心數量已加重了存儲器帶寬問題。近來,已經在包括垂直和水平集成到單個電路中的兩層或更多層有源電子組件的三維集成電路(3D IC)中取得了進步。被稱為系統級封裝(SiP)或芯片堆疊多芯片模塊(MCM)的3D封裝通過將單獨芯片堆疊成單個封裝而節約空間。這些層內的組件使用芯片上信號發送進行通信(無論是垂直的或水平的)。這種信號發送經由已知的二維平面布局電路提供減小的互連信號延遲。
[0006]上文描述中的制造趨勢可以導致微處理器封裝內的千兆字節集成存儲器。在一些情況下,額外的芯片上存儲器件可以用作基于行的存儲器,諸如在存取片外存儲器之前用作最后一級高速緩存(LLC)。通過額外存儲器實現的降低缺失率有助于隱藏處理器與其片外存儲器之間的延遲間隙。然而,對于這種額外的集成存儲器來說,基于行的存儲器的高速緩存存取機制可能是低效的。將大型標簽數據陣列(諸如多千兆字節高速緩存的數百兆字節)放置在微處理器晶粒上可能是不切實際且昂貴的。
[0007]增大額外集成存儲器的數據高速緩存線的尺寸,諸如從64字節線增加到4千字節(KB)線,減少集成存儲器中的高速緩存線的數量和相應標簽的尺寸。然而,臟位和一致性信息仍可以維持在原始高速緩存線(64字節線)尺寸的粒度。此外,數據轉移可能消耗過多帶寬,因為當僅將一些字節作為目標時,可以對整個4KB線進行存取。
[0008]使用DRAM存取機制,同時存儲并存取集成DRAM中的額外高速緩存的標簽和數據,消散許多功率。此外,這些機制消耗許多帶寬,尤其是高度相關封裝上高速緩存,且消耗太多時間,因為標簽和數據是以順序方式讀出。因此,封裝上DRAM提供許多額外數據存儲,而高速緩存和DRAM存取機制效率低下。
[0009]鑒于上述內容,需要用于在計算系統的大型基于行的存儲器中進行有效高速緩存數據存取的有效方法和系統。發明概要
[0010]設想用于在計算系統的大型基于行的存儲器中進行有效高速緩存數據存取的系統和方法。
[0011]在一個實施方案中,計算系統包括處理單元和集成動態隨機存取存儲器(DRAM)。處理單元的實例包括通用微處理器、圖形處理單元(GPU)、加速處理單元(APU)等。集成DRAM可以是三維(3D) DRAM且可以包括在具有處理單元的系統級封裝(SiP)中。處理單元可以將3D DRAM用作高速緩存。
[0012]在各個實施方案中,3D DRAM可以存儲標簽陣列和數據陣列兩者。3D DRAM的存儲器陣列組中的多個行中的每個行可以存儲一個或多個高速緩存標簽和由所述一個或多個高速緩存標簽指示的一個或多個相應高速緩存線。響應于從處理單元接收存儲器請求,3DDRAM可以根據所述接收的存儲器請求在由所述接收的存儲器請求內的緩存標簽指示的給定高速緩存線上執行存儲器存取。執行存儲器存取可以包括存儲給定高速緩存線的多個行的各自行的單個讀取。可以使用單個復雜DRAM事務而不是使用多個DRAM事務來降低延遲和功耗。
[0013]在參考下列描述和附圖后,將進一步明白這些和其它實施方案。
[0014]附圖簡述
[0015]圖1是計算系統的一個實施方案的總體框圖。
[0016]圖2是系統級封裝(SiP)的實施方案的總體框圖。
[0017]圖3是計算系統的另一實施方案的總體框圖。
[0018]圖4是用來存取高速緩存存儲配置的順序步驟的一個實施方案的總體框圖。
[0019]圖5是用于進行有效封裝中DRAM存取的方法的一個實施方案的總體流程圖。
[0020]盡管本發明可以具有各種修改和替代形式,但是在附圖中通過舉例的方式示出具體實施方案,且在本文進行詳細描述。然而,應理解,附圖和其詳細描述不旨在將本發明限于所公開的特定形式,而是相反地,本發明涵蓋落在如隨附權利要求所定義的本發明的精神和范疇內的所有修改、等效物和替代形式。
【具體實施方式】
[0021]在下列描述中,闡述大量具體細節來提供對本發明的透徹理解。然而,本領域的普通技術人員應認識到本發明可以在不具有這些具體細節的情況下實行。在一些實例中,尚未詳細示出眾所周知的電路、結構和技術來避免混淆本發明。
[0022]參考圖1,示出計算系統100的一個實施方案的總體框圖。如所示,微處理器110可以包括連接到對應的一個或多個高速緩存存儲器子系統124a-124b的一個或多個處理器核心122a-122b。微處理器還可以包括接口邏輯140、存儲器控制器130、系統通信邏輯126和共享緩存存儲器子系統128。在一個實施方案中,微處理器110的所示功能被合并在單個集成電路上。在另一實施方案中,所示功能被合并在計算機主板上的芯片組中。
[0023]在一個實施方案中,微處理器110是移動計算機、智能電話、或平板計算機;臺式計算機;服務器;或其它內的獨立系統。在一個實施方案中,系統通信邏輯116是系統總線。在另一實施方案中,微處理器110合并邏輯126中的系統總線控制器,所述系統總線控制器利用各種協議中的一個將處理器核心122a-122b連接到磁盤存儲器162、DRAM170、外圍輸入/輸出(I/o)裝置、其它處理單元(諸如另一通用微處理器,其也可以稱為中央處理單元(CPU))、圖形處理單元(GPU)、加速處理單元(APU)、現場可編程門陣列(FPGA)、或其它)。在這樣一個實施方案中,系統通信邏輯126可以替換或合并存儲器控制器130和接口邏輯140的功能。
[0024]簡單提供計算系統100中的組件的進一步描述。雖然計算系統100在一個實施方案中被示為包括通用微處理器110,但是在用于其它目的的其它實施方案中,微處理器110可以用另一類型的處理器單元替換。其它類型的處理單元可以包括圖形處理單元(GPU)、現場可編程門陣列(FPGA)或加速處理單元(APU)。一般來說,APU是包括額外處理能力的芯片。這種額外處理能力可以用來加速通用CPU外部的一種或多種類型的計算。在一個實施方案中,APU可以包括與GPU、FPGA或其它處理單元集成在相同晶粒上的通用CPU,因此改進這些單元之間的數據轉移速率,同時降低功耗。在其它實施方案中,APU可以包括視頻處理和其它專用加速器。
[0025]無論在計算系統100中使用的給定類型的處理單元為何,由于軟件應用程序存取越來越多的數據,存儲器子系統使用越來越緩慢。延遲變得更加重要。可以使用更多的芯片上存儲器存儲來降低互連延遲。例如,高速緩存存儲器子系統124a-124b中的每個可以針對處理器核心122a-122b的各自一個降低存儲器延遲。此外,微處理器110可以包括共享的高速緩存子系統128而在向片外DRAM170和/或片外磁盤存儲器162存取之前作為最后一級高速緩存(LLC)。
[0026]通過由高速緩存存儲器子系統124a_124b和128提供的額外存儲器實現的降低缺失率有助于隱藏處理器核心122a-122b的給定芯與片外存儲器之間的延遲間隙。然而,高速緩存存儲器子系統124a-124b和128中的每個使用的實際面積有限。因此,限制高速緩存存儲器子系統124a-124b和128中的每個的各自大小且仍將大量存取發送給片外存儲器,諸如DRAM170和/或磁盤存儲器162。
[0027]繼續嘗試降低存儲器延遲,可以使用其它技術來提供其它芯片上存儲器存儲。雖然圖1中未示出,但是在一個實施方案中,微處理器110可以使用三維集成電路(3D IC)來提供最后一級高速緩存(LLC)。隨后在圖2和圖3的描述中提供計算系統的這樣一個實施方案的其它細節。3D集成DRAM可以提供低延遲互連和明顯大量額外芯片上存儲器存儲兩者來減少片外存儲器存取。微處理器110內的接口邏輯可以為3D集成DRAM提供地址轉化。3D集成DRAM內的控制邏輯可以變更3D集成DRAM內的多個存儲器陣列組中的多個行的給定行的存取所使用的典型步驟。在進一步描述使用3D IC的實施方案之前,提供圖1所示的計算系統100中的組件的進一步描述。
[0028]處理器核心122a_122b中的每個可以包括用于根據給定的指令集執行指令的電路。例如,可以選擇x86指令集架構(ISA)。替代地,可以選擇Alpha、PoWerPC或任何其它指令集架構。在一個實施方案中,處理器核心122a-122b中的每個可以包括用于處理給定ISA的指令的超標量、多線程微架構。
[0029]高速緩存存儲器子系統124a_124b和128可以包括被配置來存儲數據塊的高速緩存存儲器。如本文所使用,“塊”是存儲在連續存儲器位置中的一組字節,其被視為用于一致性目的的單位。如本文所使用,術語“高速緩存塊”、“塊”、“緩存線”和“線”中的每個可互換。在一些實施方案中,塊也可以是高速緩存中的分配和重新分配的單位。塊中字節數可以根據設計選擇而發生變化,且可以具有任何尺寸。此外,術語“高速緩存標簽”、“高速緩存線標簽”和“緩存塊標簽”中的每個可互換。
[0030]高速緩存存儲器子系統124a_124b和128中的每個可以包括高速緩存存儲器或高速緩存陣列,其連接到相應的緩存控制器。高速緩存存儲器子系統124a-124b和128可以實施為高速緩存階層。位于處理器核心122a-122b附近的高速緩存(階層內)可以根據需要集成到處理器核心122a-122b中。這個高速緩存層級可以是多級階層的一級(LI)。在一個實施方案中,高速緩存存儲器子系統124a-124b每個表示L2高速緩存結構且共享的高速緩存存儲器子系統128表示L3高速緩存結構。在另一實施方案中,高速緩存存儲器子系統114每個表示LI高速緩存結構,且共享的高速緩存子系統118表示L2高速緩存結構。其它實施方案是可行的且被設想。
[0031]一般來說,處理器核心122a_122b分別向高速緩存存儲器子系統124a_124b存取以獲得數據和指令。如本文所使用,有關高速緩存存儲器子系統的術語“存取”指執行如果相應的請求地址的請求數據駐留在高速緩存中則可能導致高速緩存命中的讀取或寫入請求操作。替代地,如果所請求數據未駐留在高速緩存中,那么讀取或寫入操作可以導致高速緩存缺失。
[0032]如果高速緩存缺失發生,諸如在高速緩存存儲器子系統124a_124b的各自子系統中或在共享的高速緩存存儲器子系統128中未發現請求塊,那么讀取請求可以生成且被傳輸到存儲器控制器130。存儲器控制器130可以轉化對應于請求塊的地址且通過存儲器總線150將讀取請求發送到片外DRAM170。片外DRAM170可以通過I/O控制器和總線160以及存儲器總線150填充來自片外磁盤存儲器162的數據。
[0033]具有請求塊的相應高速緩存填充線可以從片外DRAM170傳送到高速緩存存儲器子系統124a-124b的相應一個,以便完成原始的讀取或寫入請求。高速緩存填充線可以放置在一個或多個高速緩存層級中。此外,高速緩存填充線可以放置在高速緩存內的相應集合內。如果在相應集合內沒有可用方式,那么通常最近最少使用(LRU)算法確定集合內的哪種方式將其數據逐出并由高速緩存填充線數據替換。通常,分配指以特定高速緩存方式(繼特定高速緩存之后發生高速緩存缺失)存儲從高速緩存階層的較低層級取得的高速緩存填充線。
[0034]片外磁盤存儲器162可以提供非易失性隨機存取二次數據存儲。在一個實施方案中,片外磁盤存儲器162可以包括一個或多個硬盤驅動器(HDD)。HDD通常包括一個或多個旋轉磁盤,每個涂覆有磁媒介。這些磁盤以每分鐘數千轉的速率旋轉。磁致動器負責將磁讀取/寫入裝置定位在旋轉磁盤上。
[0035]在另一實施方案中,片外磁盤存儲器162使用固態磁盤(SSD)。固態磁盤也可以稱為固態驅動器。SSD可以模仿HDD接口,但是SSD使用固態存儲器而非使用HDD中所見的機電裝置來存儲持久性數據。例如,SSD可以包括閃速存儲器組。
[0036]片外DRAM170可以是將每位數據存儲在集成電路內的獨立電容器中的動態隨機存取存儲器類型。電容器可以充電或放電。可以使用這兩種狀態來表示位的兩個邏輯值。DRAM170的每一位可以使用單個晶體管和一個電容器。與芯片上同步RAM(SRAM)中所用的六個晶體管相比,DRAM可以達到更高密度。不同于HDD和閃速存儲器,DRAMl70可以是易失性存儲器,而非非易失性存儲器。當電力移除時,DRAM170可能快速丟失其數據。[0037]片外DRAM170可以包括多通道存儲器架構。這種類型的架構可以通過在片外DRAM170與存儲器控制器130之間添加更多的通信通道而提高數據到存儲器控制器130的轉移速度。多通道架構使用多個存儲器模塊和能夠支持多通道的主板和/或卡。
[0038]在一個實施方案中,存儲器模塊中的每個可以各自具有針對存儲器控制器130的各自接口的相同協議。協議的一個實例是協議的雙倍數據速率(DDR)類型。協議可以確定信息轉移所用的值,諸如每個時鐘周期的數據量、信號電壓電平、信號定時、信號和時鐘相位以及時鐘頻率。協議實例包括DDR2SDRAM、DDR3SDRAM、⑶DR4(圖形雙倍數據速率,版本4) SDRAM和⑶DR5 (圖形雙倍數據速率,版本5) SDRAM。存儲器控制器130可以包括用于與存儲器通道建立連接并遵循相應協議的控制電路。此外,存儲器控制器130可以包括用于對存儲器請求進行排隊的請求隊列。
[0039]現在參考圖2,示出系統級封裝(SiP) 200和240的實施方案的總體框圖。可以在計算系統內使用三維(3D)封裝。這種類型的封裝可以稱為系統級封裝(SiP)。SiP包括一個或多個三維集成電路(3D 1C)。3D IC包括垂直和/或水平集成到單個電路中的兩層或更多層有源電子組件。在一個實施方案中,可以使用基于內插器的集成,其中3D IC可以放置為與處理單元220緊鄰。替代地,3D IC可以直接堆疊在另一 IC頂部。
[0040]晶粒堆疊技術是實現將多個單獨硅(集成芯片)塊一起物理堆疊在具有高帶寬和低延遲互連的相同封裝中的制造過程。晶粒可以并排堆疊在硅內插器上或直接彼此垂直堆疊在頂部。SiP的一個配置是將一個或多個DRAM芯片與處理單元緊鄰堆疊和/或堆疊在處理單元的頂部上。通過堆疊DRAM芯片,處理器單元可以實現系統的極大高速緩存。在一個實施方案中,這種大高速緩存的尺寸可以是數百MB(或更多)等級。
[0041]如所示,在一個實施方案中,SiP200可以包括處理單元220和通過水平低延遲互連210與處理單元220通信的一個或多個三維(3D)DRAM230和232。再者,處理單元220可以是通用CPU,其也可以稱為微處理器;圖形處理單元(GPU);加速處理單元(APU);現場可編程門陣列(FPGA)或利用基于行的存儲器的其它數據處理裝置,諸如高速緩存。
[0042]封裝內水平低延遲互連210提供長度減小的互連信號對未使用SiP時長片外互連。封裝內水平低延遲互連210可以使用特定信號和協議,如同在電路板上的獨立封裝中安裝芯片(諸如處理單元220以及3D DRAM230和232) —樣。SiP200還可以包括到達封裝外部連接214的背部通孔或硅塊穿孔212。封裝外部連接214可用于輸入/輸出(I/O)信號和功率信號。
[0043]在另一實施方案中,SiP240包括直接堆疊在處理單元220頂部上的3D DRAM250。雖然未示出,但是對于SiP200和SiP240中的每個,多個芯片或裝置層可以彼此堆疊在頂部,其中直接垂直互連216穿過其中。可以在不同裝置層之間穿過的垂直互連216的尺寸和密度是基于用來制造3D IC的基礎技術改變。
[0044]現在參考圖3,示出使用三維(3D) DRAM的計算系統300的一個實施方案的總體框圖。先前描述的電路和邏輯編號相同。計算系統300可以使用三維(3D)封裝,諸如先前描述的系統級封裝(SiP)。計算系統300可以包括SiP310。在一個實施方案中,SiP310可以包括先前描述的處理單元220和通過低延遲互連340通信的3D DRAM330。封裝中低延遲互連340可以是水平的和/或垂直的,其長度短于未使用SiP時的長片外互連。
[0045]雖然SiP310的一個實施方案被示為使用DRAM存儲器技術,但是使用基于行的存取方案的其它存儲技術(包括一個或多個行緩沖器或其它等效結構)是可行的且被設想。其它存儲器技術的實例包括相變存儲器、自旋扭矩轉移電阻式存儲器、記憶電阻器等。
[0046]處理單元220可以包括用于執行計算和由軟件應用程序描述的算法工作的執行引擎322。在一個實施方案中,執行引擎322可以包括通用CPU的一個或多個處理器核心。在另一實施方案中,執行引擎322可以包括著色器、其它圖形處理塊和GPU的單指示多數據(SIMD)管線來執行至少進行圖形渲染的數據中心操作和3D圖形應用程序。根據給定算法進行數據處理的電路的其它實例是可行的且被設想。
[0047]處理單元220可以與封裝外存儲器通信,諸如通過存儲器控制器326、存儲器總線150和I/O控制器和總線160與磁盤存儲器162通信。如所示,在一個實施方案中,計算系統300可以不包括封裝外DRAM170,其包括在先前描述的計算系統100中。封裝上3D DRAM330可以提供極大的封裝上存儲器存儲,其減少封裝外存儲器存取量且隱藏長存儲器延遲。在另一實施方案中,計算系統300仍可以包括封裝外DRAM170。
[0048]處理單元220可以包括到I/O裝置和其它處理單元的接口邏輯。為方便闡明,沒有示出這個接口邏輯。處理單元220也可以包括用于與3D DRAM330通信的接口邏輯324。在這通信中使用的協議、地址格式和接口信號可以類似于封裝外DRAM170所使用的協議、地址格式和接口信號。然而,當3D DRAM330用作最后一級高速緩存(LLC)時,可以對這通信進行調整。例如,從處理單元220發送到3D DRAM330的存儲器請求可以包括除識別存儲器陣列組332a-332b中的一個內的各自行的DRAM地址以外的高速緩存標簽。所接收的高速緩存標簽可用來比較存儲在3D DRAM330內所識別給定行中的高速緩存標簽。
[0049]類似于其它DRAM拓撲結構,3D DRAM330可以包括多個存儲器陣列組332a_332b。組332a-332b中的每一組可以包括行緩沖器334a_334b的各自一個。行緩沖器334a_334b中的每一個可以將數據存儲在存儲器陣列組332a-332b內的多個行的存取行中。所存取行可以由所接收的存儲器請求中的DRAM地址識別。控制邏輯336可以在所接收的存儲器請求中的高速緩存標簽與存儲在行緩沖器中的一個或多個高速緩存標簽之間執行標簽比較。此外,控制邏輯可以通過使用高速緩存標簽比較結果而非所接收的DRAM地址內的位字段而變更行緩沖器的列存取。
[0050]控制邏輯336可以更新存儲在行緩沖器內的元數據。元數據可以至少包括最近最少使用(LRU)值、臟位和高速緩存一致性值。控制邏輯336可以使所識別行和行緩沖器的存取同步以將多個DRAM事務改變成單個復雜事務。這單個復雜事務可以執行3D DRAM330內的數據和控制線的啟動和預充電一次來存取識別行且執行一次來將存儲在行緩沖器內的修改內容放回到所識別行。下文作出進一步描述。
[0051]現在參考圖4,示出圖示用來存取高速緩存存儲配置400的順序步驟的一個實施方案的總體框圖。可以用各種方式將數據存儲在3D DRAM內。例如,給定存儲器陣列組內的每一行可以使用集合相關高速緩存組織存儲數據。所存儲的數據可以劃分成高速緩存線。每一行也可以存儲與相同行內的高速緩存線對應的高速緩存標簽。此外,每一行可以存儲與給定高速緩存線對應的元數據,諸如替換狀態、高速緩存一致性狀態、臟位等。
[0052]雖然高速緩存存儲配置400的一個實施方案被描述為使用DRAM存儲器技術,但是使用基于行的存取方案的其它存儲器技術(包括一個或多個行緩沖器或其它等效結構)是可行的且被設想。其它存儲器技術的實例包括相變存儲器、自旋扭矩轉移電阻式存儲器、記憶電阻器等。
[0053]圖4示出3D DRAM內的一個或多個存儲器陣列組中的給定組。存儲器陣列組430可以包括多個行432a-432k。行432a_432k中每一行可以存儲用于N路集合相關高速緩存組織的高速緩存標簽和高速緩存線,其中N是大于I的整數。可以選擇不同數量的路,諸如8路、16路、32路或其它。例如,行432a將高速緩存標簽存儲在字段434a_434d中。行432a可將相應高速緩存線的數據部分存儲在字段438a-438d中。因此,存儲器陣列組430將高速緩存組織的標簽陣列和數據陣列組合成單個物理結構。每一行的部分,諸如行432a中的字段4343a-434d,用來保存對應于存儲在剩余行(諸如字段438a_438d)中的數據元素的標簽條目。
[0054]存儲器陣列組430的行432a_432k中的標簽存儲可以是3D DRAM的總尺寸的固定部分。在一個實施方案中,高速緩存線或高速緩存塊的數據部分存儲64字節數據。其它尺寸是可行的且被設想。然而,高速緩存線的尺寸可能因存儲器陣列組430中使用的高速緩存存儲配置400而不會發生變化。高速緩存存儲配置400和順序步驟可以允許具有3D DRAM的總體尺寸的標簽存儲標量,同時允許高速緩存線尺寸保持相同,諸如64字節大小。處理單元內的標簽存儲可以不使用芯片上SRAM存儲。
[0055]在一個實施方案中,存儲器陣列組430使用30路集合相關高速緩存組織。行432a-432k中的每一行可以具有足夠空間來存儲32路,但是可以使用所述路中的2路來存儲相應的高速緩存標簽信息。在一個實例中,高速緩存線是64字節且高速緩存標簽是4字節。在本實例中,2條高速緩存線提供2條線X 64字節=128字節存儲。在本實例中,標簽存儲被放置在通常由兩條高速緩存線占用的空間中。對于30條高速緩存線,標簽存儲使用30路X4字節=120字節。可以使用額外8字節來存儲額外元數據(諸如額外信息)來改進替換決策、預取提示、分析數據、臟位、高速緩存一致性狀態等。
[0056]行432a_432k中的每一行可以存儲與所存儲的高速緩存線對應的元數據。例如,行432a將狀態元數據存儲在字段436a中。所存儲的元數據可以至少包括每個相應的高速緩存線的以下至少一個或多個:有效位、指示擁有相應高速緩存塊的源的高速緩存塊所有者編碼、結合高速緩存控制器采用的高速緩存替換算法使用的最近最少使用(LRU)逐出信息、指明諸如被修改、排除、擁有、共享、無效或其它的高速緩存一致性狀態的指示;臟位、預取提示信息、分析數據等。其它類型的狀態信息是可行的且被設想。
[0057]繼續存儲器陣列組430的行中所存儲的信息,行432k可以以類似于行432a的格式存儲信息。例如,行432k可以將標簽存儲在字段434m_434q中,將狀態元數據存儲在字段436k中,且將相應高速緩存線的數據部分存儲在字段438m_438q中。應注意,雖然存儲在行432a-432k中的信息以特定順序且以連續空間示出,但是數據存儲的其它放置無論是否連續都是可行的且被設想。可以基于設計折衷選擇特定存儲配置。
[0058]行緩沖器440可以存儲從行432a_432k中的選定行讀出的數據和元數據。行緩沖器440可以將類似存儲配置用作行432a-432k。例如,行緩沖器440可以針對字段444a-444d中的集合相關高速緩存組織的N路存儲高速緩存標簽信息。行緩沖器440可以將相應高速緩存線的數據部分存儲在字段448a-448d中。行緩沖器440可以將狀態信息(諸如相應的狀態元數據)存儲在字段446中。
[0059]在一個實例中,高速緩存線是64字節,高速緩存標簽是4字節,且存儲器陣列組430使用30路集合相關高速緩存組織。行432a-432k中的每一行可以使用2路進行標簽存儲且使用30路進行數據存儲。2路也可以包括元數據存儲。因此,行432a-432k中的每一行包括32路X 64字節/路=2,048字節或2千字節(KB)存儲。類似地,行緩沖器440包括2KB存儲。行432a-432k中的每一行可以使用DRAM存儲器技術來進行信息存儲。然而,行緩沖器440可以使用寄存器、SRAM單元或其它存儲機制。因此,對行緩沖器440重復存取可以比對行432a-432k中的任何一行重復存取更高效。
[0060]3D DRAM可以存儲相應處理單元的極大封裝內存儲器存儲。這大型存儲器存儲可以用作最后一級高速緩存。在一個實施方案中,高速緩存線或高速緩存塊的數據部分存儲64字節數據。其它尺寸是可行的且被設想。3D DRAM的尺寸可以是至少數百兆字節(MB)或更大。存儲器陣列組430可以是3D DRAM內的多個組中的一個組。在一個實例中,3D DRAM的尺寸是512MB,其可以存儲8,388,608條個別64字節高速緩存線。相應的高速緩存標簽的尺寸可以是4到8字節。對于4字節高速緩存標簽,相應的標簽陣列的尺寸是8,388,608 X 4字節=32MB。這樣一個大型標簽陣列存儲在處理單元中的芯片上SRAM中可能是不可行的。相反,該大型標簽陣列可以存儲在如圖4所示的3D DRAM內。
[0061]圖4中示出用于存取對應于存儲在3D DRAM中的標簽、狀態信息和數據的高速緩存線的一系列步驟1-7。當存儲器陣列組430用作將標簽陣列和數據陣列兩者存儲在相同行內的高速緩存時,與行432a-432k的給定行所使用步驟1_7的順序不同的存取順序可以具有大的延遲。例如,DRAM存取通常包括第一啟動或打開階段、將整行內容復制到行緩沖器的階段、標簽讀取階段、標簽比較階段、包括列存取的數據讀取或寫入存取階段、第一預充電或關閉階段、第二啟動或打開階段、將整行內容再次復制到行緩沖器的階段、標簽讀取階段、標簽比較階段、對應于匹配標簽的狀態信息的更新階段和第二預充電或關閉階段。
[0062]繼續存儲器陣列組430內的存取步驟,在行緩沖器的每個存取之后,如果存儲在其它行中的其它數據同時被存取,那么可以包括一個或多個額外預充電和啟動階段。可以使用步驟1-7的順序而不是使用針對單個高速緩存存取的NRAM事務將高速緩存存取轉換成單個DRAM事務。每個不同DRAM操作(諸如啟動/打開、列存取、讀取、寫入和預充電/關閉)具有不同的各自延遲。啟動和預充電操作通常具有顯著高于讀取和寫入操作的延遲。因此,用來產生單個復雜事務的步驟1-7的順序可以減少個別啟動和預充電操作的次數。
[0063]在順序I期間,來自處理單元的存儲器請求可以由3D DRAM接收。存儲器請求可以具有可以通過3D集成制造過程獲得的遍歷水平或垂直短低延遲互連投送。完整地址的一部分被示為地址410。字段412和414可以分別存儲高速緩存標簽和頁面索引。完整地址的其它部分可以包括通道索引、組索引、子陣列索引等中的一個或多個來識別3D DRAM內的存儲器陣列組430。在順序2期間,行432a-432k的給定行可以通過頁面索引414從其它行選擇。
[0064]在順序3期間,執行啟動或打開階段來將行432a_432k的選定行的整個內容復制到行緩沖器440。在3D DRAM中或通常在DRAM中讀取行432a_432k的選定行是“破壞性”操作。選定行的整個內容的復制被保持在行緩沖器440中。這個將數據從存儲器陣列組430的行讀取到行緩沖器中的過程被稱為“啟動”或“打開”。當來自不同行的數據將被存取時,行緩沖器440的內容可以被“預充電”或“關閉”,其將存儲在行緩沖器440中的數據的當前值放回到存儲器陣列組430中。[0065]可以使用高速緩存標簽來確定在選定行內的多個高速緩存線中的哪條線正被存取。例如,在30路集合相關高速緩存組織中,當選定行432a時,存儲在字段434a_434d中的高速緩存標簽值可以用來確定存儲在字段438a-438d中的30條高速緩存線的哪條線正被存取。可以在比較邏輯中使用存儲在地址410內的字段412中的高速緩存標簽來定位存儲在行緩沖器440中的多條高速緩存線的相應高速緩存線。
[0066]在順序4期間,當存儲在字段412中的高速緩存標簽值與存儲在行緩沖器440中的字段444a-444d中的一個中的高速緩存標簽匹配且存儲在字段446中的相應高速緩存線狀態指示相應高速緩存線是有效高速緩存線時,高速緩存線命中可能發生。在一個實施方案中,這個標簽比較操作可以在單個連續突發中讀取字段444a-444d中存儲的高速緩存標簽中的每個。在一個實例中,高速緩存標簽被存儲在等效于如先前描述的2條高速緩存線的空間量中。這2條具有信息的高速緩存線可以在單個操作中從行緩沖器440讀取。接著,比較邏輯可以將來自字段444a-444d的讀出高速緩存標簽中的每個與存儲在字段412中的緩存標簽值進行比較。
[0067]在另一實施方案中,來自所接收的地址的一個或多個位可以為標簽比較邏輯選擇存儲在字段444a-444d中的高速緩存標簽子組。如果確定了標簽匹配,接著可以繼續3DDRAM存取的后續步驟。如果未確定匹配發生,那么可以為標簽比較邏輯選擇與存儲在字段444a-444d中的高速緩存標簽的第一子組不同的另一子組。這種機制可以歸納為兩個以上子組。這種機制可以減少標簽比較所使用的讀取操作和/或總聚合突發長度和/或總線占用的總量。
[0068]在順序5期間,基于標簽比較結果選擇存儲在行緩沖器440中的多條高速緩存線的給定線。這個列存取是基于存儲在所接收地址且存儲在行緩沖器440中的信息(諸如字段444a-444d中的高速緩存標簽)以及存儲在字段446中的高速緩存線狀態信息。選定的給定高速緩存線是基于所接收的存儲器請求而讀取或寫入。在一個實施方案中,偏移值可以存儲在所接收地址中且可以用來指示將被存取的選定高速緩存線內的特定字節或字詞。讀取或寫入操作直接在存儲在行緩沖器440中的內容上操作。
[0069]在順序6期間,更新存儲在字段446中對應于選定高速緩存線的狀態信息。例如,高速緩存狀態可能已經改變,LRU替換狀態可能已經改變,高速緩存塊所有者識別符(ID)可能已經改變,預取提示信息和分析數據兩者可能已經改變等。再者,更新操作可以直接在存儲在行緩沖器440中的內容上操作。在順序7期間,執行預充電或關閉階段來將行緩沖器440的整個內容復制回到行432a-432k的選定行中。現在修改行緩沖器440內的一些內容,諸如至少狀態信息和高速緩存線的給定線。
[0070]控制邏輯,諸如圖3所示的控制邏輯336可以確保順序3-7中執行的操作作為不間斷操作塊而發生。例如,一旦打開操作始于順序3,控制邏輯便可以指導正等待對存儲器陣列組430內的數據進行操作的其它存儲器請求繼續等待直到順序3-7已經完成為止。這單個復雜的3D DRAM存取避免了額外的高成本啟動和預充電延遲。這單個復雜的3D DRAM可以將對應于單個存儲器請求的存取延遲維持為單個啟動延遲、單個預充電延遲、在高速緩存線上執行的單個讀取/寫入操作、用于更新狀態信息的單個寫入操作和用于標簽讀取和比較的延遲。
[0071]現在參考圖5,示出進行有效封裝內DRAM存取的方法500的一個實施方案的總體流程圖。出于論述目的,本實施方案以及下文描述的方法的后續實施方案中的步驟按順序示出。然而,在其它實施方案中,一些步驟可以不同于所示的順序發生,一些步驟可以同時執行,一些步驟可以結合其它步驟,且一些步驟可以缺失。
[0072]在方框502中執行一個或多個計算機程序或軟件應用程序。處理單元可以執行這些應用程序。前文給出了處理單元的實例。處理單元可以在系統級封裝(SiP)內,系統級封裝(SiP)也包括3D集成存儲器,諸如3D DRAM0處理單元可以將3D DRAM用作高速緩存。
[0073]在方框504中,處理單元可以確定處理單元內的高速緩存存儲器子系統內的給定存儲器請求缺失。在方框506中,處理器單元可以將對應于給定存儲器請求的地址發送給封裝中集成DRAM高速緩存,諸如3D DRAM。地址可以包括除從用在處理單元內的相應高速緩存地址轉化的DRAM地址以外的非轉化高速緩存標簽以向芯片上高速緩存存取。在方框508中,3D DRAM內的控制邏輯可以識別與3DDRAM中的存儲器陣列組內的地址對應的給定行。
[0074]在方框510中,3D DRAM內的控制邏輯可以啟動并打開給定行。在方框512中,給定行的內容可以被復制并存儲在行緩沖器中。在方框514中,行緩沖器中的標簽信息可以與地址中的標簽信息進行比較。方框506-512中描述的步驟可以對應于先前關于圖4描述的順序1-4。
[0075]如果標簽比較確定標簽命中未發生(條件方框516),那么在方框518中,可以將存儲器請求發送到主存儲器。主存儲器可以包括片外非集成DRAM和/或片外磁盤存儲器。如果標簽比較確定標簽命中發生(條件方框516),那么在方框520中,在行緩沖器中的相應高速緩存線上執行讀取或寫入操作。
[0076]在方框522中,更新為高速緩存線存儲狀態信息的行緩沖器中的相應元數據。在方框524中,存儲在行緩沖器中的修改和未修改信息都被復制回到給定行。執行預充電和關閉階段來移動數據。
[0077]應注意上述實施方案可以包括軟件。在這樣一個實施方案中,實施方法和/或機制的程序指令可以被傳送或存儲在計算機可讀媒介上。被配置來存儲程序指令的眾多類型的媒介是可以獲得的且包括硬盤、軟盤、CD-ROM、DVD、閃速存儲器、可編程ROM(PROM)、隨機存取存儲器(RAM)和各種其它形式的易失性或非易失性存儲。一般來說,計算機可存取存儲媒介可以包括使用期間可由計算機存取的任何存儲媒介以提供指令和/或數據給計算機。例如,計算機可存取存儲媒介可以包括存儲媒介,諸如磁性或光學媒介,例如,磁盤(固定或可移除)、磁帶、CD-ROM、或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、或藍光光盤(Blu-Ray)。存儲媒介還可以包括易失性或非易失性存儲媒介,諸如RAM(例如,同步動態 RAM(SDRAM)、雙倍數據速率(DDR、DDR2、DDR3 等)SDRAM、低功率 DDR(LPDDR2 等)SDRAM、Rambus DRAM (RDRAM)、靜態RAM(SRAM)等)、ROM、閃速存儲器、可經由外圍接口(諸如通用串行總線(USB)接口等)存取的非易失性存儲器(例如,閃速存儲器)。存儲媒介可以包括微機電系統(MEMS),以及可經由通信媒介(諸如網絡和/或無線連接)存取的存儲媒介。
[0078]此外,程序指令可以包括使用高級編程語言(諸如C、或設計語言(HDL)(諸如Verilog、VHDL)、或數據庫格式(諸如⑶S II流格式(⑶SII))的硬件功能的行為級描述或寄存器轉移層級(RTL)描述。在一些情況下,描述可以由合成工具讀取,所述合成工具可以合成描述以從合成庫生成包括門列表的網表。網表包括一組門,其也表不包括系統的硬件的功能。網表接著可以被放置且投送以生成描述將要施加到掩模的幾何形狀的數據集。掩模接著可以用在各種半導體制造步驟中以制作對應于系統的一個或多個半導體電路。替代地,計算機可存取存儲媒介上的指令可以根據需要是網表(具有或不具有合成庫)或數據集。此外,指令可以由購自諸如Cadence?、EVE?、和Mentor Graphics?的供應商的基于硬件型仿真器用于仿真目的。
[0079]雖然已經相當詳細地描述了以上實施方案,但是本領域技術人員一旦完全明白上述公開內容,便將明白眾多變動和修改。旨在下列權利要求書被解譯為包括所有這類變動和修改。
【權利要求】
1.一種動態隨機存取存儲器(DRAM),其包括: 多個行,其中每一行被配置來至少存儲(i)多個高速緩存標簽和(ii)由所述多個高速緩存標簽指不的多個聞速緩存線;和 控制電路,其被配置來: 接收存儲器請求;和 根據所述接收的存儲器請求在由所述接收的存儲器請求內的第一高速緩存標簽指示的給定高速緩存線上執行存儲器存取,其中執行所述存儲器存取包括存儲所述給定高速緩存線的所述多個行的各自行的單個讀取。
2.根據權利要求1所述的DRAM,其中所述控制電路還被配置來確定所述接收的存儲器請求內的所述第一高速緩存標簽與存儲在所述各自行中的所述多個高速緩存標簽的第二高速緩存標簽匹配。
3.根據權利要求2所述的DRAM,其中所述多個行的每個行還被配置來存儲對應于所述多個高速緩存標簽的元數據,其中所述元數據包括下列中的至少一個:高速緩存替換狀態、臟位、有效位和高速緩存一 致性值。
4.根據權利要求3所述的DRAM,其中用存儲所述給定高速緩存線的所述各自行的單個讀取執行所述存儲器存取包括基于所述存儲器存取更新所述元數據。
5.—種系統級封裝(SIP),其包括: 位于第一芯片上的處理單元,其被配置來生成存儲器請求;和 位于第二芯片上的動態隨機存取存儲器(DRAM),其包括多個行,其中所述DRAM被耦接到所述第一芯片且被配置來: 在所述多個行的相同行中至少存儲多個高速緩存標簽和由所述多個高速緩存標簽指不的多條聞速緩存線; 從所述處理單元接收存儲器請求;和 根據所述接收的存儲器請求在由所述接收的存儲器請求內的第一高速緩存標簽指示的給定高速緩存線上執行存儲器存取,其中執行所述存儲器存取包括存儲所述給定高速緩存線的所述多個行的各自行的單個讀取。
6.根據權利要求5所述的系統,其中所述DRAM還被配置來確定所述接收的存儲器請求內的所述第一高速緩存標簽與存儲在所述各自行中的所述多個高速緩存標簽的第二高速緩存標簽匹配。
7.根據權利要求6所述的系統,其中所述第二高速緩存標簽在所述各自行內的位置指示所述給定高速緩存線在所述各自行內的位置。
8.根據權利要求7所述的系統,其中所述DRAM還被配置來在所述多個行的相同行中存儲對應于所述多個高速緩存標簽的元數據,其中所述元數據包括下列中的至少一個:高速緩存替換狀態、臟位、有效位和高速緩存一致性值。
9.根據權利要求8所述的系統,其中用存儲所述給定高速緩存線的所述各自行的單個讀取執行所述存儲器存取包括基于所述存儲器存取更新所述元數據。
10.根據權利要求7所述的系統,其中所述存儲器請求包括所述第一高速緩存標簽和識別所述各自行的DRAM地址。
11.根據權利要求7所述的系統,其中所述DRAM是三維(3D)集成電路(1C)。
12. 根據權利要求11所述的系統,其中所述處理單元是下列中的至少一個:通用微處理器、圖形處理單元(GPU)、加速處理單元(APU)和現場可編程門陣列(FPGA)。
13.—種方法,其包括: 在動態隨機存取存儲器(DRAM)的多個行的相同行中至少存儲一個或多個高速緩存標簽和由所述一個或多個高速緩存標簽指示的一條或多條高速緩存線; 從耦接到所述DRAM的處理單元接收存儲器請求;和 根據所述接收的存儲器請求在由所述接收的存儲器請求內的第一高速緩存標簽指示的給定高速緩存線上執行存儲器存取,其中執行所述存儲器存取包括存儲所述給定高速緩存線的各自行的單個讀取。
14.根據權利要求13所述的方法,其還包括確定所述接收的存儲器請求內的所述第一高速緩存標簽與存儲在所述各自行中的所述一個或多個高速緩存標簽的第二高速緩存標簽匹配。
15.根據權利要求14所述的方法,其中所述第二高速緩存標簽在所述各自行內的位置指示所述給定高速緩存線在所述各自行內的位置。
16.根據權利要求15所述的方法,其還包括在所述一個或多個行的相同行中存儲對應于所述多個高速緩存標簽的元數據,其中所述元數據包括下列中的至少一個:高速緩存替換狀態、臟位、有效位和高速緩存一致性值。
17.根據權利要求16所述的方法,其中用存儲所述給定高速緩存線的所述各自行的單個讀取執行所述存儲器存取包括基于所述存儲器存取更新所述元數據。
18.根據權利要求15所述的方法,其還包括在所述存儲器請求內除發送識別所述各自行的DRAM地址以外還發送所述第一高速緩存標簽。
19.根據權利要求15所述的方法,其中所述DRAM是三維(3D)集成電路(1C)。
20.根據權利要求18所述的方法,其中所述處理單元是下列中的至少一個:通用微處理器、圖形處理單元(GPU)、加速處理單元(APU)和現場可編程門陣列(FPGA)。
【文檔編號】G06F12/08GK103959260SQ201280059143
【公開日】2014年7月30日 申請日期:2012年11月21日 優先權日:2011年11月30日
【發明者】加布里埃爾·H·洛, 馬克·D·希爾 申請人:超威半導體公司