數據到高速緩沖層次低延遲層級中的機會性高速緩沖注入的制作方法
【專利說明】數據到高速緩沖層次低延遲層級中的機會性高速緩沖注入
[0001]對相關申請的交叉引用
[0002]此申請要求于2014年3月21日提交的標題為“METHOD FOR OPPORTUNISTIC CACHEINJECT1N OF DATA INTO LOWER LATENCY LEVELS OF THE CACHE HIERARCHY TO IMPROVEPERFORMANCE WHERE AN UNINTELLIGENT I/O DEVICE OR DMA MASTER PRODUCES DATA TO BECONSUMED BY SOFTWARE RUNNING ON A CPU CORE(數據到高速緩沖層次的較低延遲層級的機會性的高速緩沖注入來改善非智能I/O設備或DMA主設備產生要被在CPU核心上運行的軟件消費的數據的性能的方法)”的臨時專利申請序號61/969,077的優(yōu)先權。因此通過引用合并此更早提交的申請的主題內容。
技術領域
[0003]此描述涉及存儲器管理,并且更具體地,涉及與用于輸入/輸出(I/O)設備和在處理器上運行的軟件之間的通信的可高速緩沖存儲器的一部分相關聯的存儲器的一部分的管理。
【背景技術】
[0004]一般,計算機和通過它們運行的程序對于無限量的快速存儲器具有貪婪的胃口。不幸的是,存儲器(尤其是快速存儲器)一般在成本和晶片面積上都很貴。對于無限的快速的存儲器的期望的傳統的解決方案是存儲器層次或等級的系統或存儲器的層級。一般,分級存儲器系統包括多個存儲器層級,每個層級比先前的層級更慢但是更大。
[0005]典型的計算機存儲器層次可以包括三個層級。最快并最小的存儲器(常常稱為“層級I(Ll)高速緩沖”)最接近處理器,并且包括靜態(tài)隨機存取存儲器(RAM和SRAM)。接下來的等級或層級常常被稱為層級2 (L2)高速緩沖,并且比LI高速緩沖更大但是更慢。第三層級是主存儲器,并且一般包括動態(tài)RAM(DRAM),常常被插入到存儲器模塊中。然而,其它系統可能具有更多或更少的存儲器等級。還有,在一些系統中,處理器寄存器和永久性或半永久性存儲器件(例如,硬盤、固態(tài)驅動器等)可以被認為是存儲器系統的一部分。
【發(fā)明內容】
[0006]根據一個一般方面,一種方法可以包括從被配置為執(zhí)行直接存儲器存取的非中央處理器設備接收請求,以在存儲器地址處寫存儲器系統之內的數據。該方法還可以包括基于存儲器地址確定是否通過比相干存儲器互連在延遲順序上更接近于中央處理器的存儲器系統的高速緩沖等級來生成高速緩沖標簽擊中。該方法可以進一步包括:如果高速緩沖等級生成高速緩沖標簽擊中,則將數據注入到高速緩沖等級中。
[0007]根據另一個一般方面,裝置可以包括:高延遲存儲器、低延遲存儲器和存儲器互連。高延遲存儲器可以被配置為存儲數據,其中高延遲存儲器比存儲器互連在延遲順序上更遠離中央處理器。低延遲存儲器可以被配置為存儲數據,其中低延遲存儲器比存儲器互連在延遲順序上更接近中央處理器。存儲器互連可以被配置為從被配置為執(zhí)行直接存儲器存取的非中央處理器設備接收在存儲器地址處寫數據的請求,基于存儲器地址,請求低延遲存儲器向存儲器互連提供高速緩沖標簽擊中或高速緩沖標簽遺漏,以及如果低延遲存儲器提供高速緩沖標簽擊中,則將數據注入到低延遲存儲器中。
[0008]根據另一一般方面,系統可以包括處理器、非中央處理器設備和分級存儲器系統。處理器可以被配置為從分級存儲器系統讀數據并且將數據寫到分級存儲器系統。非中央處理器設備可以被配置為執(zhí)行對分級存儲器系統的直接存儲器存取,并且請求將數據寫到分級存儲器系統。分級存儲器系統可以包括高延遲存儲器、低延遲存儲器和存儲器互連。高延遲存儲器可以被配置為存儲數據,其中高延遲存儲器比存儲器互連在延遲順序上更遠離中央處理器。低延遲存儲器可以被配置為存儲數據,其中低延遲存儲器比存儲器互連在延遲順序上更接近中央處理器。存儲器互連可以被配置為從被配置為執(zhí)行直接存儲器存取的非中央處理器設備接收在存儲器地址處寫數據的請求,基于存儲器地址,請求低延遲存儲器向存儲器互連提供高速緩沖標簽擊中或高速緩沖標簽遺漏,以及如果低延遲存儲器提供高速緩沖標簽擊中,則將數據注入到低延遲存儲器中。
[0009]在附圖和下面的描述中闡述一個或多個實現方式的細節(jié)。其它特征將從描述和附圖并從權利要求中顯然。
[0010]一種用于存儲器管理的系統和/或方法,并且更具體地,涉及與用于輸入/輸出(I/O)設備和在處理器上運行的軟件之間的通信的可高速緩沖存儲器的一部分相關聯的存儲器的一部分的管理,基本上如至少一個附圖中所示和/或結合至少一個附圖描述,如更完全地權利要求中闡述。
【附圖說明】
[0011]圖1a是根據所公開的主題內容的系統的示例實施例的框圖。
[0012]圖1b是根據所公開的主題內容的系統的示例實施例的框圖。
[0013]圖2a是根據所公開的主題內容的系統的示例實施例的框圖。
[0014]圖2b是根據所公開的主題內容的系統的示例實施例的框圖。
[0015]圖3是根據所公開的主題內容的系統的示例實施例的框圖。
[0016]圖4是根據所公開的主題內容的技術的示例實施例的流程圖。
[0017]圖5是可以包括根據所公開的主題內容的原理形成的器件的信息處理系統的示意性框圖。
[0018]在各種附圖中相似的參考符號指示相似的元素。
【具體實施方式】
[0019]下文將參照附圖更全面地描述各種示例實施例,在附圖中顯示了一些示例實施例。然而,本公開主題內容可以用很多不同的形式來具體化,而不應該被解釋為限于在此闡述的示例實施例。而是,提供這些示例實施例使得此公開將是徹底和完整的,并且將向本領域技術人員充分地傳達本公開主題內容的范圍。在附圖中,為了清楚,可能夸大層和區(qū)域的尺寸和相對尺寸。
[0020]將理解,當元件或層被稱為“在另一元件或層上”、“連接至”或“耦接至”另一元件或層時,它可以直接在其它元件或層上、連接或耦接至另一元件或層,或者中間元件或層可能存在。相反,當元件被稱為“直接在另一元件或層上”、“直接連接至”或“直接耦接至”另一元件或層時,沒有中間元件或層存在。相似的數字始終指代相似的元件。如在此使用的,術語“和/或”包括一個或多個相關聯的所列項的任何和全部組合。
[0021]將理解,雖然術語第一、第二、第三等可以在此用來描述各種元件、組件、區(qū)域、層和/或段,但是這些元件、組件、區(qū)域、層和/或段不應該被這些術語限制。這些術語僅用來區(qū)分一個元件、組件、區(qū)域、層或段與另一區(qū)域、層或段。因而,下面討論的第一元件、組件、區(qū)域、層或段可以被稱為第二元件、組件、區(qū)域、層或段,而不脫離本公開主題內容的教導。
[0022]為了描述方便,在此可以使用諸如“在……下”、“在……下方”、“低于”、“在……上”、“上面”等的空間相對術語來描述如圖中所示的一個元件或特征對其它元件或特征的關系。將理解,除了圖中描繪的方位之外,空間相對術語意在涵蓋使用或操作中的設備的不同方位。例如,如果翻轉圖中的設備,那么被描述為“在其它元件或特征下方”或“之下”的元件會位于其它元件或特征“上方”。因而,示范性術語“下方”可以涵蓋上方和下方兩個方位。設備可以另外朝向(旋轉90度或位于其它方位),并且相應地解釋在此使用的空間相對描述語。
[0023]在此使用的術語僅是為了描述特定的示例實施例的目的,而不是意在限制本公開主題內容。如在此使用的,單數形式“一”、“一個”和“所述”意在也包括復數形式,除非上下文清楚地指示除外。還將理解,術語“包括了”和/或“包括”當用在此說明書中時,指定所述特征、整數、步驟、操作、元件和/或組件的存在,但是沒有排除一個或多個其它特征、整數、步驟、操作、元件、組件和/或其組的存在或添加。
[0024]在此參照作為理想化的示例實施例的示意性圖示的截面圖示(和中間結構)來描述示例實施例。如此,作為例如制造技術和/或容差的結果的圖示的形狀的變化是預期的。因而,示例實施例不應該被解釋為限于在此所示的區(qū)域的特定形狀,而是要包括例如源于制造的形狀上的偏離。例如,被示出為矩形的植入區(qū)域將典型地在它的邊緣處具有圓形或曲形的特征和/或植入濃度的梯度,而不是從植入區(qū)域到非植入區(qū)域的二進制變化。同樣地,通過植入形成的掩埋區(qū)可能導致在掩埋區(qū)和植入發(fā)生所通過的表面之間的區(qū)域中的某種植入。因而,在圖中所示的區(qū)域本質上是示意性的,并且它們的形狀不打算示出設備的區(qū)域的實際形狀,并且不打算限制本公開主題內容的范圍。
[0025]除非另外定義,否則在此使用的全部術語(包括技術和科學術語)具有與此公開主題內容所屬的領域一位普通技術人員通常理解的相同的意思。還將理解,諸如那些在常用詞典中定義的術語應該被解釋為具有與它們在相關技術的背景中一致的意思,并且將不以理想化或過于正式的意義來解釋,除非在此清楚地如此定義。
[0026]下文中,將參照附圖詳細說明示例實施例。
[0027]在具有用于每個處理器的單獨的高速緩沖存儲器的共享存儲器多處理器系統中,可以具有任何一片數據的很多副本,例如,一個副本在主存儲器中并且一個在每個高速緩沖存儲器中。當改變一片數據的一個副本時,理想地,應該改變數據的其它副本。高速緩沖相干是確保共享數據的值的變化以及時的方式在整個系統內被傳播(propagate)的技術。
[0028]實施高速緩沖相干的一種技術是確保處理器在它寫數據項之前具有到數據項的獨占通道。這種協議類型被稱為寫無效協議(write invalidate protocol),因為其在寫時使其它高速緩沖中的副本無效,并且一般被認為是更一般的偵聽類型協議的一部分。在這種情況中,獨占通道確保當寫發(fā)生時沒有其它可讀或可寫的項副本存在:該項的所有其它高速緩沖副本被無效。
[0029]為了看出此協議如何確保相干,考慮由第一處理器寫,接著由另一處理器讀。在此示例中,假設兩個處理器存在,以及它們的兩個各自的高速緩沖,并且每個高速緩沖擁有或存儲數據片的副本。在這樣的示例中,數據的兩個副本最近已經被讀,并且因此包括最新的數據版本。該片數據可以被認為是在兩個高速緩沖之間共享。
[0030]在此示例中,第一處理器嘗試寫到它的數據副本。作為第一步,第一