TWI588654B - 用於可重組態之記憶體系統之虛擬化實體位址 - Google Patents
用於可重組態之記憶體系統之虛擬化實體位址 Download PDFInfo
- Publication number
- TWI588654B TWI588654B TW104114794A TW104114794A TWI588654B TW I588654 B TWI588654 B TW I588654B TW 104114794 A TW104114794 A TW 104114794A TW 104114794 A TW104114794 A TW 104114794A TW I588654 B TWI588654 B TW I588654B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- address
- logic
- virtual
- abstracted
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Description
此申請案主張針對「Virtualized Physical Addresses for Reconfigurable Memory Systems」於2014年5月9日提出申請之第14/274,195號美國臨時專利申請案之申請日期之權益。
本發明一般而言係關於虛擬記憶體映射。更特定而言,本發明係關於可重組態之記憶體系統中使用記憶體抽象化協定之虛擬記憶體映射。
通常在諸多資料處理系統中提供記憶體裝置作為電腦或其他電子裝置中之半導體積體電路及/或外部可抽換式裝置。存在諸多不同類型之記憶體,包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、同步DRAM(SDRAM)、快閃記憶體及電阻可變記憶體,以及其他記憶體。
習用記憶體系統通常由安裝於稱作一雙列直插記憶體模組(DIMM)之一印刷電路板(PCB)上之一或多個記憶體裝置(諸如DRAM)組成。記憶體系統與一記憶體控制子系統或中央處理單元(CPU)或微處理器通信。在某些組態中,記憶體控制器實體地歸入至與處理器相同之實體晶片中。在其他組態中,記憶體控制器可僅係包括一記憶體
控制器中樞(MCH)之諸多邏輯組件中之一者。一記憶體控制器中樞通常支援完全單獨且相異記憶體位址空間,通常使用不同類型之半導體記憶體或不同目的。舉例而言,一記憶體控制器可支援將視訊DRAM用於圖形應用、將快閃記憶體用於磁碟機加速且將商品化DRAM用作處理器之主要外部記憶體。
諸多電腦系統經組態以形成指派給特定處理器、特定程序及其組合之虛擬記憶體。用於提供機器虛擬化之當前基於軟體之機構(例如,「超管理器」)提供用於在不同作業系統當中劃分機器資源之一相對不安全機制。某些超管理器(最顯著地為IBM主機中之彼等超管理器)針對此等機構中之某些機構提供硬體強制執行。甚至x86架構包含用於描述指令特權之CPU環。如VMWARE之某些軟體超管理器可建構於此等環上。某些機器可在一單個大型對稱多處理器(SMP)或大型分佈式系統內提供硬體「域」以允許作業系統之多個例項在同一硬體平臺上運行且提供硬體保護以免受域當中之干擾。然而,此等類型之系統在板層次下僅實現域級資源分配。硬體級之重組態通常係粗粒度的(例如,需要處理器及記憶體資源兩者分配在一起)。軟體級之重組態通常係細粒度的,但不良地經強制執行。
當前存在朝向資料中心內之「解聚」之一工業趨勢,其中處理器、記憶體及儲存資源分配於實體單元(通常稱作「雪橇」)中且經由資料中心規模網路互連。經由典型網路協定(通常為TCP/IP)在資源、延時及通量方面以高成本存取此等資源。然而此等類型之解聚系統實現資源之一有所改良之平衡,此乃因記憶體資源不必與處理器資源一起經分配(如在解聚之前之情況,添加一新記憶體控制器或碟片控制器需要另一CPU及作業系統(OS)例項之添加),此仍引發高額外負擔。網路處理只需要重要韌體及嵌入控制;複雜協定施加延時額外負擔及頻寬限制;等等。通常,在此等組態中可失去效能之四個量級或
更多。另外,此等解聚系統表示粗粒度電腦組態。
100‧‧‧資料處理系統
110‧‧‧用戶端/通信類型用戶端/系統單晶片
120‧‧‧記憶體連結/經分封化記憶體連結/外部記憶體連結/連結介面
130‧‧‧經抽象化記憶體協定
200‧‧‧混合記憶體立方體裝置/混合記憶體立方體
200-1‧‧‧混合記憶體立方體/第一混合記憶體立方體
200-2‧‧‧混合記憶體立方體
200-3‧‧‧混合記憶體立方體
200-4‧‧‧混合記憶體立方體/第四混合記憶體立方體
200-5‧‧‧混合記憶體立方體
220‧‧‧垂直切片
250‧‧‧動態隨機存取記憶體/動態隨機存取記憶體晶粒
400‧‧‧邏輯基底
410‧‧‧並行匯流排/連結介面控制器
430‧‧‧縱橫交換機
440‧‧‧記憶體控制邏輯
450‧‧‧保存庫邏輯/保存庫控制器
510‧‧‧中央處理單元
610A‧‧‧用戶端
610B‧‧‧用戶端
610C‧‧‧用戶端
620‧‧‧經抽象化記憶體系統互連/系統互連
700‧‧‧經抽象化記憶體模組
700-1‧‧‧經抽象化記憶體模組
700-2‧‧‧經抽象化記憶體模組
710‧‧‧用戶端
720‧‧‧記憶體連結
730-1‧‧‧記憶體裝置
730-2‧‧‧記憶體裝置
730-3‧‧‧記憶體裝置
740‧‧‧記憶體抽象化單元
750‧‧‧經抽象化記憶體協定邏輯
760‧‧‧連結路由模組
770‧‧‧記憶體控制邏輯
780‧‧‧映射邏輯
782‧‧‧轉譯表
790‧‧‧區權限邏輯
810A‧‧‧第一用戶端/用戶端
810B‧‧‧第二用戶端/用戶端
820‧‧‧實體位址空間/實體記憶體
820-1‧‧‧實體保護區
820-2‧‧‧實體保護區
820-3‧‧‧實體保護區
820-4‧‧‧實體保護區
820-5‧‧‧實體保護區
820-6‧‧‧實體保護區
830‧‧‧虛擬位址空間/連續虛擬記憶體空間
830-1‧‧‧虛擬保護區
830-2‧‧‧虛擬保護區
830-3‧‧‧虛擬保護區
830-4‧‧‧虛擬保護區
840‧‧‧虛擬位址空間/連續虛擬記憶體空間
840-1‧‧‧虛擬保護區
840-2‧‧‧虛擬保護區
910A‧‧‧第一用戶端/用戶端
910B‧‧‧第二用戶端/用戶端
920‧‧‧實體位址空間/實體記憶體
920-1‧‧‧實體保護區
920-2‧‧‧實體保護區
920-3‧‧‧實體保護區
920-4‧‧‧實體保護區
920-5‧‧‧實體保護區
920-6‧‧‧實體保護區
930‧‧‧虛擬位址空間/片段式虛擬記憶體空間
930-1‧‧‧虛擬保護區
930-2‧‧‧虛擬保護區
930-3‧‧‧虛擬保護區
940‧‧‧虛擬位址空間/片段式虛擬記憶體空間
940-1‧‧‧保護區/虛擬保護區
940-2‧‧‧保護區/虛擬保護區
1010‧‧‧操作
1020‧‧‧操作
1030‧‧‧實體記憶體位址空間
1040‧‧‧實體保護區
1050‧‧‧操作區塊
圖1係作為使用一經抽象化記憶體協定之一系統之一實例的包含一混合記憶體立方體之一資料處理系統之一圖式。
圖2圖解說明一混合記憶體立方體中之DRAM之可能分割。
圖3圖解說明一混合記憶體立方體中之DRAM之分割之一項實例之一邏輯視圖。
圖4圖解說明用於連結介面且控制一混合記憶體立方體中之DRAM之一邏輯基底。
圖5圖解說明混合記憶體立方體之鏈接。
圖6圖解說明根據本發明之實施例之在經抽象化記憶體處使用經抽象化記憶體協定及虛擬記憶體分配之一系統。
圖7圖解說明根據本發明之實施例之一記憶體抽象化模組之一方塊圖。
圖8圖解說明展示一實體位址空間及連續地分配之虛擬位址空間之一記憶體圖式。
圖9圖解說明展示一實體位址空間及可不連續地分配之虛擬位址空間之一記憶體圖式。
圖10圖解說明使用一經抽象化記憶體協定存取一虛擬位址空間之一程序。
在以下詳細說明中,參考形成其一部分且其中以圖解說明方式展示其中可實踐本發明之特定實例性實施例之附圖。充分詳細地闡述此等實施例以使得熟習此項技術者能夠實踐本發明。然而,可在不背離本發明之範疇之情況下利用其他實施例且可做出結構、材料及程序改變。本文中所呈現之圖解說明不意欲為任何特定方法、系統、裝置
或結構之實際視圖,而僅係用以闡述本發明之實施例之理想化表示。本文中所呈現之該等圖式未必按比例繪製。為方便讀者,各個圖式中之類似結構或組件可保持相同或類似編號;然而,編號之類似性不意味著該等結構或組件必然在大小、組合物、組態或任何其他性質上相同。
可以方塊圖形式展示元件、電路、模組及功能,以便不會因不必要細節使本發明模糊不清。此外,所展示及所闡述之特定實施方案僅係例示性的,且除非本文中另有規定,否則不應被解釋為實施本發明之僅有方式。另外,區塊定義及各種區塊之間的邏輯分割係一特定實施方案之典範。熟習此項技術者將易於明瞭,可藉由眾多其他分割解決方案實踐本發明。在大多數情況下,已省略關於定時考量之細節及類似物,其中此等細節對獲得對本發明之一完全理解並非必要且在熟習此項技術者之能力範圍內。
結合本文中所揭示之實施例闡述之各種說明性邏輯區塊、模組、電路及演算法行為可實施為電子硬體、電腦軟體或兩者之組合。為明確圖解說明硬體與軟體之此可互換性,通常鑒於其功能性來闡述各種說明性組件、區塊、模組、電路及行為。此功能性係實施為硬件還是軟體取決於特定應用及施加於總體系統之設計約束。熟習此項技術者可針對每一特定應用以變化方式實施所闡述功能性,但不應將此等實施方案決策解釋為導致背離本文中所闡述之實施例之範疇。
當用硬體實施時,可用以下各項實施或執行本文中所揭示之實施例:一通用處理器、一專用處理器、一數字信號處理器(DSP)、一記憶體中之處理器(PIM)、一特殊應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或經設計以執行本文中所闡述之功能之其任一組合。一通用處理器可係一微處理器,但在替代方案中,該處理器可係任何習
用處理器、控制器、微控制器或狀態機。當執行軟體以用於實施本文中所闡述之實施例之程序時,一通用處理器應被視為經組態以用於實施此等程序之一專用處理器。一處理器亦可實施為計算裝置之一組合,例如一DSP與一微處理器之一組合、複數個微處理器之一組合、結合一DSP核心之一或多個微處理器之一組合或任一其他此類組態。
另外,應注意,可就繪示為一流程表、一流程圖、一結構圖或一方塊圖之一程序而言闡述實施例。儘管一流程表可將操作行為闡述為一順序程序,但可以另一順序並行地或實質上同時執行此等行為中之諸多行為。另外,可重新配置行為之次序。一程序可對應於一方法、一功能、一程序、一子常式、一子程式等。此外,可以硬體、軟體或兩者實施本文中所揭示之方法。若以軟體實施,則該等功能可作為一或多個指令或代碼儲存於電腦可讀媒體上或在該電腦可讀媒體上傳輸。電腦可讀媒體包含電腦儲存媒體及通信媒體兩者,該通信媒體包含促進將一電腦程式自一個地方傳送至另一地方之任何媒體。
熟習此項技術者將理解,可使用各種不同科技及技術中之任一者表示資訊及信號。舉例而言,可貫穿此說明提及之資料、指令、命令、資訊、信號、位元、符號及晶片可由電壓、電流、電磁波、磁場或粒子、光場或粒子或者其任一組合表示。為了呈現及說明清晰,某些圖式可將信號圖解說明為一單個信號。熟習此項技術者將理解,信號可表示用於攜載信號之一匯流排,其中該匯流排可具有各種位元寬度。
應理解,除非明確陳述此限制,否則本文中使用諸如「第一」、「第二」及諸如此類之一名稱對一元件之任何提及不限制彼等元件之數量或次序。而是,此等名稱可在本文中用作在兩個或兩個以上元件或一元件之例項之間進行區分之一方便方法。因此,對第一及第二元件之一提及不意指在彼處可採用僅兩個元件或第一元件必須以某一方
式先於第二元件。另外,除非另外陳述,否則一組元件可包括一或多個元件。
本文中所闡述之元件可包含同一元件之多個例項。此等元件可一般由一數值指定符(例如,110)指示且特定由後續接著一字母指示符(例如,110A)或前面帶有一「破折號」之一數值指示符(例如,110-1)的數值指示符指示。為便於進行以下說明,在大多數情況下,元件編號指示符以在其上介紹或最充分地論述元件之圖式之編號開始。因此,舉例而言,一圖1上之元件識別符將主要呈數值格式1xx且一圖4上之元件將主要呈數值格式4xx。
如本文中所使用,參考一給定參數、性質或條件之術語「實質上」意指且包含熟習此項技術者將理解的以一小變化程度(諸如在可接受製造公差內)滿足給定參數、性質或條件之一程度。以實例之方式,取決於實質上滿足之特定參數、性質或條件,該參數、性質或條件可係至少90%滿足、至少95%滿足或甚至至少99%滿足。
如本文中所使用,諸如「在...上方」、「在...下方」、「在...上」、「在...下面」、「上部」、「下部」等之任何相關術語為清晰及方便起見而用於理解本發明及附圖,且不意味或取決於任何特定偏好、定向或次序,惟內容脈絡另有明確指示之情況除外。
將理解,當一元件稱為「在另一元件上」、「連接至另一元件」或「與另一元件耦合」時,其可直接在另一元件上、連接至另一元件或與另一元件耦合或可存在介入元件。相反,當一元件稱為「直接在另一元件上」、「直接連接至另一元件」或「與另一元件直接耦合」時,不存在介入元件或層。如本文中所使用,術語「及/或」包含所列舉相關聯物項中之若干者之任何及所有組合。
本發明闡述用於藉由使用經抽象化記憶體協定在可重組態之記憶體系統內提供虛擬化實體位址而改良記憶體子系統之方法及設備。
如本文中所使用之術語「經抽象化記憶體協定」、「經抽象化記憶體」及「記憶體抽象化」意味一用戶端側請求與對一實體記憶體裝置之實際存取之間的定時及命名之一解耦。作為用於一記憶體讀取之一定時抽象化之一非限制性實例,一用戶端可發佈對一特定位址之一經分封化記憶體請求。可係不確定之稍後某一時間,一記憶體系統用一經分封化記憶體回應供應所請求資料。若記憶體係DRAM,則DRAM處之定時將包含特定列位址選通、行位址選通、取得所要資料之讀取回應時間。因此,自用戶端之請求之定時抽象化一DRAM之定時。
如本文中所使用之術語「命名」意味用於對一記憶體之一或多個特定位置定址之一程序或資料結構。因此,由一用戶端產生之命名可包含組合以表明如處理器所觀察到之一特定記憶體位置之多個資料結構。作為一非限制性實例,用戶端可藉助用以選擇一特定裝置之一裝置ID號碼及彼裝置內之一位址對一特定位置定址。作為另一非限制性實例,用戶端可用一區ID及彼區內之一位址對一特定位置定址。下文論述關於區ID及裝置ID之額外細節。一實體記憶體裝置處之命名表明彼記憶體裝置上之資料之一或多個特定位置。作為一非限制性實例,DRAM裝置上之命名可包含組合以對特定位置定址之一列位址及一行位址。因此,作為一項特定非限制性實例,一命名抽象化可包含由一用戶端供應之一裝置ID及位址與一特定記憶體裝置處之一列位址及行位址之間的一轉譯(亦即,解耦)。
在具有命名及定時抽象化之情況下,本發明之實施例可與除DRAM以外之各種記憶體及儲存裝置一起使用。作為非限制性實例,亦可使用RAM裝置、快閃記憶體、及儲存裝置(例如,磁碟機)。
本發明之實施例定義一經抽象化記憶體裝置內之「保護區」且擴展經抽象化記憶體協定以支援保護區。因此,在經抽象化記憶體裝
置中具有保護區之記憶體系統使得用戶端(例如,CPU)能夠經由經抽象化協定分配或解除分配一給定記憶體模組上之實體記憶體(例如,一混合記憶體立方體、記憶體中之處理器(PIM)記憶體等)之分段。此外,保護區使得經抽象化記憶體裝置能夠在記憶體裝置中形成一虛擬實體位址。換言之,自用戶端呈現之位址可轉譯為經抽象化記憶體裝置中如由保護區定義之一特定實體位址。在記憶體模組處定義之此等保護區提供記憶體空間之一硬體級虛擬化而非一軟體級虛擬化。另外,位址轉譯可貫穿記憶體系統分佈,此乃因以記憶體模組層級而非在用戶端中或在一記憶體控制中樞中執行位址轉譯。
可使用任何適合經抽象化記憶體協定組態根據本發明之記憶體系統。為提供詳情,詳細定義一經抽象化記憶體協定之一項實例。此詳細說明集中於混合記憶體立方體(HMC)協定作為可支援透過保護區定義之虛擬實體位址之一經抽象化記憶體協定之一非限制性實例。接著,闡述一更一般系統以展示可如何在此等一般系統中定義其他經抽象化記憶體協定及虛擬實體位址。
圖1係一資料處理系統100之一圖式,資料處理系統100包含一混合記憶體立方體裝置200作為用於使用一經抽象化記憶體協定130在一記憶體匯流排上操作以與一用戶端110通信之一裝置之一實例。為便於說明,本發明集中於HMC協定匯流排。然而,如受益於本發明之技術人員將瞭解,可藉助包含將資料及協定保持於資料匯流排上之裝置之間的一抽象化之其他高度資料匯流排實踐本發明之實施例。
術語「用戶端」110在本文中用於區分一記憶體匯流排上之主要組態為資料之取用者及產生者之裝置,而非用於儲存資料之裝置(諸如一DRAM記憶體)。作為非限制性實例,用戶端110可被視為處理器(在本文中亦稱為處理裝置),諸如(舉例而言)通用處理器、專用處理器、圖形處理器、記憶體中之處理器及數字信號處理器。另外,一用
戶端110可被視為在諸如(舉例而言)一特定作業系統之一處理器上運行之一程序。作為另一非限制性實例,用戶端110可被視為通信裝置。舉例而言,一通信類型用戶端110可經組態以在一記憶體匯流排與某一其他類型之通信匯流排(諸如,舉例而言,一輸入/輸出(I/O)匯流排或一網路匯流排)之間傳達資料。當然,用戶端110亦可包含處理器元件及通信元件兩者。如此,本文中之說明亦可將一用戶端110闡述為一系統單晶片(SoC)110。除非另有特別陳述,否則如本文中提及之一SoC 110應被視為相當於一用戶端110。最終,雖然用戶端110可被視為集中於處理或移動資料,但其等亦可含有呈用戶端110上之暫存器、緩衝器、快取記憶體及其他類型之區記憶體之形式之大量記憶體。
混合記憶體立方體裝置200(HMC 200)包含一邏輯基底400,邏輯基底400定義經抽象化記憶體協定130以在用戶端110與HMC 200之間形成記憶體連結120。並行匯流排410之一群組介接於邏輯基底400與HMC 200上之DRAM 250之一群組之間。下文結合圖2至圖4論述HMC 200之額外細節。
記憶體連結120分割成朝向用戶端110之上行鏈路及背向用戶端110之下行鏈路。作為經抽象化記憶體協定130之一部分,記憶體連結120經分封化如下文更充分地闡述。因此,記憶體連結120亦在本文中稱為經分封化記憶體連結120以及混合記憶體立方體連結120。此外,在記憶體連結120上傳達之封包可稱為封包請求及經分封化請求。
圖2圖解說明HMC 200中之DRAM 250之可能分割。HMC 200可被視為耦合至邏輯基底400之DRAM晶粒250之一3維堆疊。邏輯基底400可組態為一單獨晶粒且經組態以與DRAM晶粒250介接。當經堆疊時,可藉助穿矽導通體完成各種晶粒之間的互連。雖然此等裝置可實體地組態為一3維堆疊,但其等不必如此組態,而是自一互連視角可
仍被認為係3維的。
圖3圖解說明一HMC 200中之DRAM 250之分割之一項實例之一邏輯視圖。參考圖2及圖3,多個晶粒層之互連實現具有記憶體儲存層與一或多個邏輯層之一組合之一記憶體裝置。以此方式,裝置在組態為HMC 200之一單個晶粒封裝中提供實體記憶體儲存及邏輯記憶體異動處理。最終結果係具有每裝置高達320GB/s之可用頻寬容量之一非常緊湊、功率高效封裝。
就設計而言,HMC 200能夠經由一階層且平行方法具有此頻寬。舉例而言,可垂直跨越邏輯層發生裝置階層且可跨越一給定晶粒層發生硬體平行。邏輯基底400包含提供對HMC 200之外部連結存取以及內部路由及異動邏輯兩者之多個組件。
HMC 200可分段成通常稱為「保存庫(vault)」之垂直切片220。每一保存庫可包含併入至邏輯基底400中之保存庫邏輯450以控制DRAM 250之與彼保存庫相關聯之分段。保存庫邏輯450管理在其保存庫內對記憶體分割之記憶體參考操作。每一保存庫控制器450可判定其自身之定時要求及再新操作,此允許針對每一保存庫之不同定時且亦消除對一主記憶體控制器中之此等功能之需要。另外,關於每一保存庫控制器450可包含一佇列以緩衝對彼保存庫之記憶體之參考。保存庫控制器450可基於需求而非到達次序執行其佇列內之參考。因此,自保存庫操作返回至外部記憶體連結120(圖1)之回應在某些情形中可係次序顛倒的。
記憶體連結120可經組態以提供四個或八個邏輯連結。每一記憶體連結120可組態為十六個或八個串行及雙向I/O連結之一群組。組態有四個連結之裝置具有以10Gbps、12.5Gbps及15Gbps操作之能力。組態有八個連結之裝置具有以10Gbps操作之能力。
考量到實體記憶體儲存之階層性質,HMC裝置規格定義不同於
傳統成組DRAM裝置之一實體定址與交錯模型。HMC裝置200之實體位址經編碼成含有保存庫、記憶庫及位址位元之一34位元欄。當前規格定義利用欄之下部32位元之四個連結裝置及利用欄之下部33位元之八個連結裝置。不是依賴於一單個定址結構,該規格准許實施者及使用者定義大部分針對目標記憶體存取特性最佳化之一位址映射方案。其亦提供結合實體保存庫及記憶庫結構與所要最大區塊請求大小之一系列預設位址映射模式。預設映射方案藉由將較低有效位址位元映射至保存庫位址緊跟著記憶庫位址位元而實施一低交錯模型。此方法驅迫順序位址首先跨越保存庫然後跨越保存庫內之記憶庫交錯以便避免記憶庫衝突。
經由一經分封化格式執行主裝置與HMC裝置200之間的所有頻帶內通信。此格式包含三個主要封包分類:請求封包、回應封包及流動控制封包。封包可組態為一單個16位元組流單位(亦稱為一FLIT)之倍數。封包大小可與9 FLIT(亦即,144位元組)一樣大。一最小封包可包含僅一個16位元組FLIT,包含一封包標頭及封包尾部。
所有記憶體有效負載大小之記憶體讀取請求封包僅需要封包標頭、封包尾部及各別實體記憶體位址。如此,可使用一單個FLIT組態讀取請求。記憶體讀取回應係包含在對應記憶體讀取封包中所請求之位址處之資料之單獨封包。然而,寫入請求及基元請求封包亦必須含有分別用於寫入及讀取-修改-寫入操作之相關聯輸入資料。如此,此等請求類型可具有2 FLIT至9 FLIT之封包寬度。HMC裝置規定定義封包之間的一弱排序模型。如此,可存在一目標實施方案內存在之多個封包重排序點。去往輔助裝置之到達封包可傳遞等待區保存庫存取之彼等。區保存庫亦可對佇列封包重排序以便最高效使用去往及來自各別保存庫記憶庫之頻寬。然而,一給定HMC實施方案中存在之重排序點可經定義以維持一封包串流自一特定連結至一保存庫內之一特定
記憶庫之次序。此排序確保:記憶體寫入請求後續接著記憶體讀取請求遞送正確且確定性行為。
HMC 200中之連結結構使得多個HMC 200之鏈接能夠實現需要大於一單個HMC 200裝置之容量之記憶體子系統之架構同時維持連結結構及經分封化異動協定。下文參考圖5論述關於鏈接之額外細節。
圖4圖解說明可用於形成連結介面120且控制一HMC 200中之DRAM 250(圖1至圖3)之一邏輯基底400。包含上行鏈路及下行鏈路之記憶體連結120可由針對每一記憶體連結120之一連結介面控制器410控制。透過連結介面控制器410傳遞之封包可透過一縱橫交換機430傳遞。若一封包去往HMC 200上之一保存庫,則縱橫交換機430可將該封包傳遞至記憶體控制邏輯440。若一封包去往另一HMC 200,則縱橫交換機430可將封包傳遞至一適當連結介面控制器410以經發送至適當HMC 200上。記憶體控制邏輯440及各種保存庫之保存庫邏輯450可組合以針對選定保存庫選擇適當保存庫及適當定時。
圖5圖解說明混合記憶體立方體(200-0至200-5)之鏈接。如較早陳述,多個HMC裝置200可鏈接在一起以增加可用於一CPU 510之總體記憶體容量。在一HMC記憶體系統中,透過請求封包標頭中之一3位元晶片ID欄中之值識別每一HMC 200。3位元晶片ID欄在本文中亦可稱為一「CUB欄」或一「裝置ID」。因此,可針對CPU 510支援高達八個HMC裝置200之一網路。
支援用於HMC 200之互連之各種拓撲且至不同HMC 200之路由可係複雜的且包含多個路徑。因此,一主機處理器通常控制路由拓撲且將路由組態資訊加載至每一HMC 200中以判定並非用於彼HMC 200之封包應如何路由至HMC 200上之其他連結。此路由資訊使得每一HMC 200能夠使用CUB欄來將請求封包路由至恰當目的地。因此,當一HMC 200處理不去往其自身之一封包時,HMC 200鏈接HMC 200上
之另一連結且透過該另一連結傳遞封包以發送至另一HMC 200。
舉例而言,在圖5中,若CPU 510發送具有5之一CUB欄之一請求封包,則第一HMC 200-1將把請求封包傳遞至第四HMC 200-4。第四HMC 200-4將把請求封包傳遞至伺服於請求封包之第五HMC 520-5。回應封包跟隨同一連結徑返回至CPU 510。
圖6圖解說明根據本發明之實施例之在經抽象化記憶體處使用經抽象化記憶體協定及虛擬記憶體分配之一系統。多個用戶端(610A至610C)存取一經抽象化記憶體系統互連620。系統互連620可包含呈諸多不同類型之複雜拓撲之任何數目個經抽象化記憶體模組700。使用經分封化記憶體請求之經抽象化記憶體協定可使用鏈接方法及裝置ID以類似於上文參考圖5所論述之較簡單HMC拓撲之方式之一方式產生此等複雜拓撲。在此一系統中,一請求封包將具有包含於其中之一裝置ID,以使得所有經抽象化記憶體模組700知曉請求封包去往其自身或應基於程式化至經抽象化記憶體模組700中之鏈接方向而傳遞至另一經抽象化記憶體模組700上。因此,裝置ID連同請求封包中之位址可被視為由用戶端(610A至610C)請求之位址之一部分。
每一經抽象化記憶體模組700包含一記憶體抽象化單元以及一或多個記憶體裝置。針對兩個經抽象化記憶體模組700-1及700-2展示擴展視圖。作為一非限制性實例,此等擴展視圖展示每一經抽象化記憶體模組(700-1及700-2)之位址空間內之四個保護區。當然,可在一經抽象化記憶體模組700內定義更多保護區,或經抽象化記憶體模組可包含一單個保護區。
檢查經抽象化記憶體模組700-2,可看到兩個上部保護區已分配給用戶端B 610B。左下保護區已分配給用戶端C 610C且右下保護區已分配給用戶端A 610A。檢查經抽象化記憶體模組700-1,可看到左上及右下保護區已分配給用戶端A 610A。左下保護區已分配給用戶
端C 610C且右上保護區未經分配。
圖7圖解說明根據本發明之實施例之一經抽象化記憶體模組700之一方塊圖。經抽象化記憶體模組700包含一記憶體抽象化單元740及一或多個記憶體裝置(730-1至730-3)。經抽象化記憶體模組700中之記憶體裝置730之數目可自與1一樣少至諸多打或更多大大地變化。如所圖解說明,經抽象化記憶體模組700包含可組態為經分封化記憶體連結之一或多個記憶體連結720。若經抽象化記憶體模組700經組態以支援鏈接及封包通過(例如,類似於HMC協定),則經抽象化記憶體模組700通常將具有一個以上記憶體連結720。記憶體連結720可耦合至用戶端710或其他經抽象化記憶體模組700以形成包含多個用戶端710及多個經抽象化記憶體模組700之變化複雜性之網路。
經抽象化記憶體協定邏輯750解譯自記憶體連結720接收之記憶體請求封包且產生回應封包。若存在多個記憶體連結720,則可包含一連結路由模組760以判定所接收封包係用於此特定經抽象化記憶體模組700還是應轉發至另一記憶體連結720上,因此記憶體請求可由另一經抽象化記憶體模組700處置。
若記憶體請求係用於經抽象化記憶體模組700,則將該請求路由至記憶體控制邏輯770,記憶體控制邏輯770產生用於存取將由記憶體請求定址之特定記憶體裝置(730-1至730-3)之信號。
包含映射邏輯780以形成自由用戶端710在請求封包中定義之位址及記憶體裝置(730-1至730-3)中之實體位址之轉譯。映射邏輯780可以若干種方式經組態以形成實際虛擬位址至實體位址轉譯。
作為一項非限制性實例,轉譯表782可包含用於取虛擬位址之一部分(例如,自記憶體請求中之上部位址位元中之某些上部位址位元導出之一密鑰)之一頁表以將一位址形成至頁表中且該頁表產生用於記憶體之上部實體位址位元。因此,該頁表產生保護區之基底位置。
在此情境中,記憶體請求中之下部位址位元將用於選擇保護區內之適當位址。
作為另一非限制性實例,可藉助諸如(舉例而言)用以定義保護區之基底位置之一基底暫存器及用以定義保護區之大小之一邊界暫存器之暫存器完成轉譯表782。在此情境中,封包請求可包含選擇可定義實體位址之上部位址位元之適當基底暫存器之一區ID及具有將由邊界暫存器定義以對保護區內之所有記憶體位置定址之一位元寬度之一位址欄。
在使用HMC裝置之一系統中,保護區可基於已在HMC裝置內經定義之保存庫,如上文所闡釋。保存庫之實體位址及大小已由HMC裝置定義且該等保存庫僅必須分配且聯繫至一分配請求用戶端。
可包含區權限邏輯790以定義哪些用戶端710存取任一特定區。區權限邏輯790亦可結合映射邏輯780使用以將各種可能保護區分配給各種用戶端710,如下文更充分地論述。
保護區之分配可形成用戶端之不同類型之虛擬記憶體環境。在某些映射中,用戶端710之虛擬位址空間可表現為連續的,其中在位址空間之基底與位址空間之頂部之間不具有孔。在其他映射中,用於用戶端710之虛擬位址空間可表現為不連續的(亦即,片段式)。在此片段式分配中,用戶端710可知曉僅對已分配給其之各種區ID及彼區內之位址定址。
總之,在某些實施例中,一設備包含用於將來自一或多個用戶端之記憶體請求之定時及命名抽象化為一或多個記憶體裝置處之定時及命名之一記憶體抽象化單元。該記憶體抽象化單元包含用於解譯來自該一或多個用戶端之該等記憶體請求之經抽象化記憶體協定邏輯。該記憶體抽象化單元亦包含映射邏輯,該映射邏輯用於將由一請求用戶端之一記憶體存取請求定義之命名轉譯為該一或多個記憶體裝置中
之至少一者中之一選定保護區處之一虛擬實體位址。該記憶體抽象化單元亦包含用於以該虛擬實體位址存取該一或多個記憶體裝置之記憶體控制邏輯。而且,在該設備中,該選定保護區先前已由記憶體抽象化單元定義且分配給請求用戶端。
在其他實施例中,一混合記憶體立方體包含複數個記憶體裝置及一邏輯基底。該邏輯基底包含:一或多個連結介面控制器,其經組態以解譯一經分封化記憶體請求;及映射邏輯,其經組態以將提供於該經分封化記憶體請求中之一位址轉譯為該複數個記憶體裝置中之一或多者上之一虛擬實體位址,該虛擬實體位址屬於一預定義保護區。該邏輯基底亦包含經組態以藉助該虛擬實體位址存取複數個記憶體裝置中之一或多者之記憶體控制邏輯。
在其他實施例中,一系統包含一或多個用戶端及一或多個經抽象化記憶體模組。每一經抽象化記憶體模組包含一或多個記憶體裝置及經抽象化記憶體協定邏輯。該經抽象化記憶體協定邏輯用於解譯來自一或多個用戶端之記憶體請求且伺服於去往與該經抽象化記憶體模組相關聯之該一或多個記憶體裝置之該等記憶體請求。該經抽象化記憶體協定邏輯亦用於將不去往該經抽象化記憶體模組之該等記憶體請求傳遞至另一經抽象化記憶體模組。每一經抽象化記憶體模組亦包含映射邏輯,該映射邏輯用於將由一請求用戶端之一記憶體存取請求定義之一位址轉譯為該一或多個記憶體裝置中之至少一者中之一選定保護區處之一虛擬實體位址。每一經抽象化記憶體模組亦包含用於以該虛擬實體位址存取該一或多個記憶體裝置中之該至少一者之記憶體控制邏輯。
圖8圖解說明展示一實體位址空間820及連續地分配之虛擬位址空間(830及840)之一記憶體圖式。在此高度虛擬化映射中,虛擬位址空間(830及840)通常以零開始且基於已分配多少個保護區而連續地延
伸最高達最大位址。當分配更多區時,其等通常附加至位址空間之頂部上。作為一非限制性實例,此種映射可用於虛擬軟體機器中。舉例而言,當多個作業系統在一單個用戶端上運行時。作業系統可期望特定軟體元件以特定位址出現。因此,在一虛擬軟體環境中執行之作業系統可具有以零開始且連續地建構之虛擬位址。
圖8圖解說明一第一用戶端810A及一第二用戶端810B。兩個用戶端(810A及810B)正存取同一實體記憶體820。實體記憶體820分段成變化大小之實體保護區(820-1至820-6)。第一用戶端810A已分配四個虛擬保護區(830-1至830-4)以形成連續虛擬記憶體空間830。亦參考圖7,一或多個經抽象化記憶體模組700中之映射邏輯780已將虛擬保護區830-1映射至實體保護區820-1。類似地,將虛擬保護區830-2映射至實體保護區820-5,將虛擬保護區830-3映射至實體保護區820-3,且將虛擬保護區830-4映射至實體保護區820-6。
第二用戶端810B已分配兩個虛擬保護區(840-1及840-2)以形成連續虛擬記憶體空間840。亦參考圖7,一或多個經抽象化記憶體模組700中之映射邏輯780已將虛擬保護區840-1映射至實體保護區820-2。類似地,虛擬保護區840-2映射至實體保護區820-4。
當然,在複雜系統中,實體位址空間可大得多且可包含數百個保護區。另外,複雜系統可包含具有非常大虛擬位址空間之諸多用戶端。
因此,一記憶體系統包含定義一實體記憶體位址空間及一或多個虛擬記憶體位址空間之複數個記憶體裝置。每一虛擬記憶體位址空間包含複數個虛擬保護區以形成一連續虛擬位址空間,其中每一虛擬保護區藉由經組態以藉助一經抽象化記憶體協定通信之一經抽象化記憶體模組映射至實體記憶體位址空間中之一實體保護區。
圖9圖解說明展示一實體位址空間920及可不連續地分配(亦即,
片段式)之虛擬位址空間(930及940)之一記憶體圖式。在具有非常大位址空間(例如,64位元位址系統)且具有可在高度分段位址空間中操作之處理器及/或虛擬用戶端之系統中,可不需要執行一位址轉譯。在此等系統中,用戶端看到之虛擬位址空間(930及940)可表現為片段式。然而,仍可如同圖8中之實施例分配及保護該等保護區,但不需要一位址轉譯。圖9之實施例可能提供額外安全性,此乃因可因將位址空間之一個分段溢位至另一分段中而形成諸多安全漏洞(及程式錯誤)。若用戶端嘗試存取未分配給其之一保護區,則由多個用戶端分配來自不同記憶體部分之分段自然形成之「洞」將導致例外。
圖9圖解說明一第一用戶端910A及一第二用戶端910B。兩個用戶端(910A及910B)正存取同一實體記憶體920。實體記憶體920分段成變化大小之實體保護區(920-1至920-6)。第一用戶端910A已分配三個虛擬保護區(930-1至930-3)以形成片段式虛擬記憶體空間930。亦參考圖7,一或多個經抽象化記憶體模組700中之映射邏輯780已將虛擬保護區930-1映射至實體保護區920-1。類似地,將虛擬保護區930-2映射至實體保護區920-5,且將虛擬保護區930-3映射至實體保護區920-6。
第二用戶端910B已分配兩個保護區(940-1及940-2)以形成片段式虛擬記憶體空間940。亦參考圖7,一或多個經抽象化記憶體模組700中之映射邏輯780已將虛擬保護區940-1映射至實體保護區920-2。類似地,虛擬保護區940-2映射至實體保護區920-4。實體保護區920-3係一可用保護區,此乃因其尚未分配給一用戶端。
當然,在複雜系統中,實體位址空間可大得多且可包含數百個保護區。另外,複雜系統可包含具有非常大虛擬位址空間之諸多用戶端。
因此,一記憶體系統包含定義一實體記憶體位址空間及一或多個虛擬記憶體位址空間之複數個記憶體裝置。每一虛擬記憶體位址空
間包含複數個虛擬保護區以形成一片段式虛擬位址空間,其中每一虛擬保護區藉由經組態以藉助一經抽象化記憶體協定通信之一經抽象化記憶體模組映射至實體記憶體位址空間中之一實體保護區。
圖10圖解說明使用一經抽象化記憶體協定中之保護區存取一虛擬位址空間之一程序。在操作1010處,一用戶端請求一虛擬位址。作為一非限制性實例,此請求可係由用以選擇恰當經抽象化記憶體模組700(圖7)之一裝置ID、用以定義經抽象化記憶體模組700上之一選定保護區之一區ID及該保護區內之一位址定義的一名稱。在操作1020處,適當經抽象化記憶體模組700上之映射邏輯780(圖7)將該請求中之該名稱轉譯為一實體位址位置。另外,該請求可包含指示哪一用戶端產生請求之一用戶端ID且區權限邏輯790(圖7)可驗證用戶端具有存取實體受保護區之權限。若查找失敗或用戶端不具有權限,則操作區塊1050指示將一錯誤報告回至請求用戶端。若查找係成功的且用戶端具有權限,則可存取實體記憶體位址空間1030中之實體保護區1040。
該等保護區可以若干種不同方式分配。作為一非限制性實例,一用戶端可發送將一保護區分配給一特定經抽象化記憶體模組700(圖7)之一請求。在某些實施例中,該用戶端亦可請求所請求保護區之一特定大小。在其他實施例中,不可請求一大小且經抽象化記憶體模組700可定義保護區之大小。若經抽象化記憶體模組700具有可用之一保護區,則其可將該保護區分配給請求用戶端且以一區ID將分配報告回至用戶端。在某些實施例中,經抽象化記憶體模組700可藉助一用戶端ID追蹤請求用戶端,因此其可驗證對彼保護區之順序存取來自具有存取彼保護區之權限之一用戶端。以此方式,可賦予多個用戶端對同一保護區之存取且每一用戶端可具有一不同虛擬至實體位址轉譯。
另一選擇係,不是用戶端向一特定經抽象化記憶體模組700請求
一保護區,而是用戶端可發送出一一般分配請求。此一般分配請求然後可貫穿經抽象化記憶體模組700之網路遵循一鏈接演算法以找出具有將分配之一自由保護區之第一模組。
在另一分配程序中,該用戶端可讀取經抽象化記憶體模組700中之一公共表以判定模組是否具有用於一保護區之自由空間(例如,固定數目個可變大小分段或固定數目個頁狀結構)。該用戶端亦可詢問經抽象化記憶體模組700作為協定之一部分。舉例而言,該用戶端可發送比如說「給我分配X個十億位元組」之一請求,該請求成功或失敗。另一選擇係,該用戶端可將該詢問分裂成兩個詢問,例如「你有X個十億位元組嗎?」,若答案係「是」,則用戶端可遵循將X個十億位元組之彼保護區賦予彼用戶端之一請求。
回應於一成功分配請求,經抽象化記憶體模組700可產生比如說「此記憶體區塊現在屬於具有位址X-Y之區A」之一回應封包,其中A係密鑰或區ID且X-Y闡述新實體記憶體位址。
區權限邏輯790(圖7)可包含其他權限欄(例如,讀取存取或寫入存取),其可在一每分段/每ID基礎上經啟用以啟用共用資料庫。
每一用戶端知曉哪些保護區已分配給其。若該用戶端不再需要保護區,則其可發送一解除分配請求。經抽象化記憶體模組700可接受解除分配請求且自映射邏輯移除所分配保護區。
因此,存取記憶體之一方法包含藉助一經抽象化記憶體協定產生一記憶體存取請求且在一經抽象化記憶體模組處接受該記憶體存取請求。該方法亦包含將由該記憶體存取請求定義之一命名轉譯為與該經抽象化記憶體模組相關聯之一或多個記憶體裝置中之一選定保護區處之一虛擬實體位址且以該虛擬實體位址存取該一或多個記憶體裝置。
可不具限制地進一步表徵本發明之實施例,如下文所陳述。
實施例1.一種設備,其包括:一記憶體抽象化單元,其經組態以用於將來自一或多個用戶端之記憶體存取請求之命名抽象化為一或多個記憶體裝置處之命名,該記憶體抽象化單元包括:經抽象化記憶體協定邏輯,其用於解譯來自該一或多個用戶端之該等記憶體請求;映射邏輯,其用於將該一或多個用戶端中之一請求用戶端之該記憶體存取請求之該命名轉譯為該一或多個記憶體裝置中之至少一者中之一選定保護區處之一虛擬實體位址;及記憶體控制邏輯,其用於以該虛擬實體位址存取該一或多個記憶體裝置;其中該選定保護區先前已由該記憶體抽象化單元定義且分配給該請求用戶端。
實施例2.如實施例1之設備,其中該記憶體抽象化單元進一步包括該記憶體抽象化單元中之區權限邏輯,該區權限邏輯經組態以在該請求用戶端具有存取該選定保護區之權限時允許完成該記憶體存取請求,且經組態以在該請求用戶端不具有存取該選定保護區之權限時報告一錯誤。
實施例3.如實施例2之設備,其中該區權限邏輯進一步經組態以回應於該記憶體存取請求係一讀取存取還是一寫入存取而授予存取該選定保護區之權限。
實施例4.如實施例1之設備,其中該記憶體抽象化單元進一步包括該記憶體抽象化單元中之區權限邏輯,該區權限邏輯經組態以在提供於該記憶體存取請求中之一位址在該選定保護區中時允許完成該記憶體存取請求,且經組態以在提供於該記憶體存取請求中之該位址不在任何經定義保護區中時報告一錯誤。
實施例5.如實施例1至4中任一實施例之設備,其中該映射邏輯進一步經組態以用於:自該一或多個用戶端中之一分配請求用戶端接受一分配請求;判定該一或多個記憶體裝置中之一記憶體裝置中之一可用保護區;將該可用保護區分配給該分配請求用戶端;及將該所分配保護區之一位置報告給該分配請求用戶端。
實施例6.如實施例5之設備,其中該映射邏輯進一步經組態以用於:自該分配請求用戶端接受一解除分配請求;及自該映射邏輯移除該所分配保護區。
實施例7.如實施例5之設備,其中自該分配請求用戶端接受該分配請求包含接受一所請求大小,且分配該可用保護區包含以該所請求大小分配該可用保護區。
實施例8.如實施例1至7中任一實施例之設備,其中該經抽象化記憶體協定邏輯經組態用於使用一混合記憶體立方體協定解譯記憶體存取。
實施例9.如實施例8之設備,其中該等保護區經組態為一混合記憶體立方體中之保存庫。
實施例10.如實施例1至9中任一實施例之設備,其中該映射邏輯包含一位址轉譯表,該位址轉譯表用於將來自該請求用戶端之該命名轉換為待存取之該一或多個記憶體裝置中之一記憶體裝置之該命名。
實施例11.如實施例1至9中任一實施例之設備,其中該映射邏輯包含一基底暫存器及一邊界暫存器以定義一記憶體中之每一所分配保護區之一位置及大小。
實施例12.如實施例1至11中任一實施例之設備,其中該記憶體存
取請求包含該請求用戶端之一用戶端ID,且若該用戶端ID不具有針對該選定保護區之權限,則該記憶體控制邏輯不存取該虛擬實體位址。
實施例13.如實施例1至11中任一實施例之設備,其中由該記憶體存取請求定義之該位址包含一區ID及該選定保護區內之一位址,且該映射邏輯回應於該區ID而產生該虛擬實體位址之至少一部分。
實施例14.一種混合記憶體立方體,其包括:複數個記憶體裝置;一邏輯基底,其包括:一或多個連結介面控制器,其經組態以解譯一經分封化記憶體請求;及映射邏輯,其經組態以將提供於該經分封化記憶體請求中之一位址轉譯為該複數個記憶體裝置中之一或多者上之一虛擬實體位址,該虛擬實體位址屬於一預定義保護區;及記憶體控制邏輯,其經組態以藉助該虛擬實體位址存取該複數個記憶體裝置中之該一或多者。
實施例15.如實施例14之混合記憶體立方體,其中該邏輯基底進一步包括區權限邏輯,該區權限邏輯經組態以在提供於該經分封化記憶體請求中之該位址在該預定義保護區中時允許完成該經分封化記憶體請求,且經組態以在提供於該經分封化記憶體請求中之該位址不在任何經定義保護區中時報告一錯誤。
實施例16.如實施例14及實施例15中任一實施例之混合記憶體立方體,其中該預定義保護區組態為該混合記憶體立方體中之一保存庫。
實施例17.如實施例14至16中任一實施例之混合記憶體立方體,其中該映射邏輯進一步經組態以用於:自一分配請求用戶端接受一分配請求;
判定該複數個記憶體裝置中之一或多個記憶體裝置中之一可用保護區;及將該可用保護區分配給該分配請求用戶端;及將該所分配保護區之一位置報告給該分配請求用戶端。
實施例18.如實施例17之混合記憶體立方體,其中該映射邏輯進一步經組態以用於:自該分配請求用戶端接受一解除分配請求;及自該映射邏輯移除該所分配保護區。
實施例19.如實施例17之混合記憶體立方體,其中自該分配請求用戶端接受該分配請求包含接受一所請求大小,且其中分配該可用保護區包含以該所請求大小分配該可用保護區。
實施例20.一種系統,其包括:一或多個經抽象化記憶體模組,每一經抽象化記憶體模組包括:一或多個記憶體裝置;及經抽象化記憶體協定邏輯,其用於:解譯來自一或多個用戶端之記憶體請求;服務於去往與該經抽象化記憶體模組相關聯之該一或多個記憶體裝置之該等記憶體請求;及將不去往該經抽象化記憶體模組之該等記憶體請求傳遞至另一經抽象化記憶體模組;映射邏輯,其用於將由該一或多個用戶端中之一請求用戶端之一記憶體存取請求定義之一位址轉譯為該一或多個記憶體裝置中之至少一者中之一選定保護區處之一虛擬實體位址;及記憶體控制邏輯,其用於以該虛擬實體位址存取該一或多個記憶體裝置中之該至少一者。
實施例21.如實施例20之系統,其中該一或多個經抽象化記憶體模組中之每一者進一步包括一模組ID且記憶體請求包含識別該一或多個記憶體模組中之哪一經抽象化記憶體模組將使用該位址之一模組ID。
實施例22.如實施例20及實施例21中任一實施例之系統,其中由該記憶體存取請求定義之該位址包含一區ID及該選定保護區內之一位址且該映射邏輯回應於該區ID而產生該虛擬實體位址之至少一部分。
實施例23.如實施例20至22中任一實施例之系統,其中該一或多個經抽象化記憶體模組包括混合記憶體立方體。
實施例24.一種記憶體系統,其包括:複數個記憶體裝置,其定義一實體記憶體位址空間;一或多個虛擬記憶體位址空間,每一虛擬記憶體位址空間包括複數個虛擬保護區以形成一連續虛擬位址空間,其中每一虛擬保護區藉由經組態以藉助一經抽象化記憶體協定通信之一經抽象化記憶體模組映射至該實體記憶體位址空間中之一實體保護區。
實施例25.如實施例24之記憶體系統,其中該實體保護區僅可由已被賦予藉由該經抽象化記憶體模組存取該選定保護區之權限之一請求用戶端存取。
實施例26.如實施例24及實施例25中任一實施例之記憶體系統,其中至少一個實體保護區映射至該兩個或兩個以上虛擬記憶體位址空間中之至少兩者中之一虛擬保護區。
實施例27.一種記憶體系統,其包括:複數個記憶體裝置,其定義一實體記憶體位址空間;一或多個虛擬記憶體位址空間,每一虛擬記憶體位址空間包括複數個虛擬保護區以形成一片段式虛擬位址空間,其中每一虛擬保護區藉由經組態以藉助一經抽象化記憶體協定通信之一經抽象化記憶體
模組映射至該實體記憶體位址空間中之一實體保護區。
實施例28.如實施例27之記憶體系統,其中該實體保護區僅可由已被賦予藉由該經抽象化記憶體模組存取該選定保護區之權限之一請求用戶端存取。
實施例29.如實施例27及實施例28中任一實施例之記憶體系統,其中至少一個實體保護區映射至該兩個或兩個以上虛擬記憶體位址空間中之至少兩者中之一虛擬保護區。
實施例30.一種存取記憶體之方法,其包括:藉助一經抽象化記憶體協定產生一記憶體存取請求;在一經抽象化記憶體模組處接受該記憶體存取請求;將由該記憶體存取請求定義之一命名轉譯為與該經抽象化記憶體模組相關聯之一或多個記憶體裝置中之一選定保護區處之一虛擬實體位址;及以該虛擬實體位址存取該一或多個記憶體裝置。
實施例31.如實施例30之方法,其進一步包括在產生該記憶體請求之一請求用戶端具有存取該選定保護區之權限時允許完成該記憶體存取請求,且在該請求用戶端不具有存取該選定保護區之權限時報告一錯誤。
實施例32.如實施例30及實施例32中任一實施例之方法,其進一步包括回應於該記憶體存取請求係一讀取存取還是一寫入存取而授予存取該選定保護區之權限。
實施例33.如實施例30之方法,其進一步包括在提供於該記憶體存取請求中之該位址在該選定保護區中時允許完成記憶體存取請求,且在提供於該記憶體存取請求中之該位址不在任何經定義保護區中時報告一錯誤。
上文所闡述且附圖中所圖解說明之本發明之實施例不限制本發
明之範疇,此乃因此等實施例僅係本發明之實施例之實例。藉由隨附申請專利範圍及其合法等效內容定義本發明。任何等效實施例皆在本發明之範疇內。實際上,除本文中所展示及闡述之彼等內容(例如所闡述之要素之替代性有用組合)外,熟習此項技術者自本說明將明瞭本發明之各種修改。此等修改及實施例亦歸屬於隨附申請專利範圍及其合法等效內容之範疇內。
700‧‧‧經抽象化記憶體模組
710‧‧‧用戶端
720‧‧‧記憶體連結
730-1‧‧‧記憶體裝置
730-2‧‧‧記憶體裝置
730-3‧‧‧記憶體裝置
740‧‧‧記憶體抽象化單元
750‧‧‧經抽象化記憶體協定邏輯
760‧‧‧連結路由模組
770‧‧‧記憶體控制邏輯
780‧‧‧映射邏輯
782‧‧‧轉譯表
790‧‧‧區權限邏輯
Claims (20)
- 一種設備,其包括:一記憶體抽象化單元,其經組態以用於將來自一或多個用戶端之記憶體存取請求之命名抽象化為一或多個記憶體裝置處之命名,該記憶體抽象化單元包括:經抽象化記憶體協定邏輯,其用於解譯來自該一或多個用戶端之該等記憶體請求;映射邏輯,其用於將由該一或多個用戶端中之一請求用戶端之該記憶體存取請求之該命名定義之一位址轉譯為該一或多個記憶體裝置中之至少一者中之一選定保護區處之一虛擬實體位址;及記憶體控制邏輯,其用於以該虛擬實體位址存取該一或多個記憶體裝置;其中該選定保護區先前已由該記憶體抽象化單元定義且分配給該請求用戶端。
- 如請求項1之設備,其中該記憶體抽象化單元進一步包括該記憶體抽象化單元中之區權限邏輯,該區權限邏輯經組態以在該請求用戶端具有存取該選定保護區之權限時允許完成該記憶體存取請求,且經組態以在該請求用戶端不具有存取該選定保護區之權限時報告一錯誤。
- 如請求項2之設備,其中該區權限邏輯進一步經組態以回應於該記憶體存取請求係一讀取存取還是一寫入存取而授予存取該選定保護區之權限。
- 如請求項1之設備,其中該記憶體抽象化單元進一步包括該記憶體抽象化單元中之區權限邏輯,該區權限邏輯經組態以在提供 於該記憶體存取請求中之一位址在該選定保護區中時允許完成該記憶體存取請求,且經組態以在提供於該記憶體存取請求中之該位址不在任何經定義保護區中時報告一錯誤。
- 如請求項1之設備,其中該映射邏輯進一步經組態以用於:自該一或多個用戶端中之一分配請求用戶端接受一分配請求;判定該一或多個記憶體裝置中之一記憶體裝置中之一可用保護區;將該可用保護區分配給該分配請求用戶端;及將該所分配保護區之一位置報告給該分配請求用戶端。
- 如請求項5之設備,其中該映射邏輯進一步經組態以用於:自該分配請求用戶端接受一解除分配請求;及自該映射邏輯移除該所分配保護區。
- 如請求項5之設備,其中自該分配請求用戶端接受該分配請求包含接受一所請求大小,且分配該可用保護區包含以該所請求大小分配該可用保護區。
- 如請求項1之設備,其中該經抽象化記憶體協定邏輯經組態用於使用一混合記憶體立方體協定解譯記憶體存取。
- 如請求項8之設備,其中該等保護區經組態為一混合記憶體立方體中之保存庫。
- 如請求項1之設備,其中該映射邏輯包含一位址轉譯表,該位址轉譯表用於將來自該請求用戶端之該命名轉換為待存取之該一或多個記憶體裝置中之一記憶體裝置之該命名。
- 如請求項1之設備,其中該映射邏輯包含一基底暫存器及一邊界暫存器以定義一記憶體中之每一所分配保護區之一位置及大小。
- 如請求項1之設備,其中該記憶體存取請求包含該請求用戶端之一用戶端ID,且若該用戶端ID不具有針對該選定保護區之權限,則該記憶體控制邏輯不存取該虛擬實體位址。
- 如請求項1之設備,其中由該記憶體存取請求定義之該位址包含一區ID及該選定保護區內之一位址,且該映射邏輯回應於該區ID而產生該虛擬實體位址之至少一部分。
- 如請求項1至13中任一請求項之設備,其進一步包括:該一或多個記憶體裝置;及一邏輯基底,其包括該記憶體抽象化單元。
- 如請求項14之設備,其進一步包括:一經抽象化記憶體模組,其包括:該一或多個記憶體裝置;及該邏輯基底,其中該邏輯基底之該經抽象化記憶體協定邏輯進一步經組態以用於:服務於去往與該經抽象化記憶體模組相關聯之該一或多個記憶體裝置之該等記憶體請求;及將不去往該經抽象化記憶體模組之該等記憶體請求傳遞至另一經抽象化記憶體模組。
- 如請求項14之設備,其中:該一或多個記憶體裝置定義包含複數個實體保護區之一實體記憶體位址空間;且該邏輯基底之該記憶體抽象化單元定義一或多個虛擬記憶體位址空間,每一虛擬記憶體位址空間包括複數個虛擬保護區以形成一連續虛擬位址空間或一片段式虛擬位址空間中之一者。
- 一種存取記憶體之方法,其包括:藉助一經抽象化記憶體協定產生一記憶體存取請求; 在一經抽象化記憶體模組處接受該記憶體存取請求;將包含由該記憶體存取請求定義之一命名之一位址轉譯為與該經抽象化記憶體模組相關聯之一或多個記憶體裝置中之一選定保護區處之一虛擬實體位址,其中該選定保護區先前已由該經抽象化記憶體模組定義且分配給該請求用戶端;及以該虛擬實體位址存取該一或多個記憶體裝置。
- 如請求項17之方法,其進一步包括在產生該記憶體請求之一請求用戶端具有存取該選定保護區之權限時允許完成該記憶體存取請求,且在該請求用戶端不具有存取該選定保護區之權限時報告一錯誤。
- 如請求項17之方法,其進一步包括回應於該記憶體存取請求係一讀取存取還是一寫入存取而授予存取該選定保護區之權限。
- 如請求項17之方法,其進一步包括在提供於該記憶體存取請求中之該位址在該選定保護區中時允許完成記憶體存取請求,且在提供於該記憶體存取請求中之該位址不在任何經定義保護區中時報告一錯誤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/274,195 US9501222B2 (en) | 2014-05-09 | 2014-05-09 | Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201606508A TW201606508A (zh) | 2016-02-16 |
TWI588654B true TWI588654B (zh) | 2017-06-21 |
Family
ID=54367950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104114794A TWI588654B (zh) | 2014-05-09 | 2015-05-08 | 用於可重組態之記憶體系統之虛擬化實體位址 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9501222B2 (zh) |
EP (1) | EP3140745A4 (zh) |
JP (1) | JP6201065B2 (zh) |
KR (2) | KR101857937B1 (zh) |
CN (1) | CN106462361B (zh) |
TW (1) | TWI588654B (zh) |
WO (1) | WO2015171464A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558143B2 (en) | 2014-05-09 | 2017-01-31 | Micron Technology, Inc. | Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device |
US9823846B2 (en) * | 2014-08-20 | 2017-11-21 | Qualcomm Incorporated | Systems and methods for expanding memory for a system on chip |
KR20160093147A (ko) * | 2015-01-28 | 2016-08-08 | 에스케이하이닉스 주식회사 | 재구성 가능한 반도체 메모리 장치 및 그 동작 방법 |
US20180004681A1 (en) * | 2016-07-02 | 2018-01-04 | Intel Corporation | Systems, Apparatuses, and Methods for Platform Security |
JP2019117979A (ja) * | 2017-12-26 | 2019-07-18 | ファナック株式会社 | 制御装置 |
CN110413201B (zh) * | 2018-04-28 | 2023-06-27 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US11334253B2 (en) * | 2018-12-07 | 2022-05-17 | Intel Corporation | Storage system that provides protection levels at stored data item granularity |
US11055249B2 (en) * | 2019-06-25 | 2021-07-06 | Micron Technology, Inc. | Access optimization in aggregated and virtualized solid state drives |
US12061971B2 (en) | 2019-08-12 | 2024-08-13 | Micron Technology, Inc. | Predictive maintenance of automotive engines |
US20230042551A1 (en) * | 2021-08-03 | 2023-02-09 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for the management of device local memory |
CN115422098B (zh) * | 2022-02-15 | 2023-08-29 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
CN115617274A (zh) * | 2022-10-27 | 2023-01-17 | 亿铸科技(杭州)有限责任公司 | 一种具备坏块管理功能的存内计算装置及操作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131363A1 (en) * | 2002-12-27 | 2011-06-02 | Hall Clifford D | Mechanism for remapping post virtual machine memory pages |
US20140013027A1 (en) * | 2012-07-06 | 2014-01-09 | Seagate Technology Llc | Layered architecture for hybrid controller |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481573A (en) | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
US4528624A (en) | 1981-03-25 | 1985-07-09 | International Business Machines Corporation | Method and apparatus for allocating memory space based upon free space in diverse memory devices |
JPS62219046A (ja) * | 1986-03-19 | 1987-09-26 | Fujitsu Ltd | 記憶保護方式 |
JPH0644140A (ja) * | 1992-07-27 | 1994-02-18 | Kobe Nippon Denki Software Kk | メモリの割り当て方式 |
US5561622A (en) | 1993-09-13 | 1996-10-01 | International Business Machines Corporation | Integrated memory cube structure |
US5541914A (en) | 1994-01-19 | 1996-07-30 | Krishnamoorthy; Ashok V. | Packet-switched self-routing multistage interconnection network having contention-free fanout, low-loss routing, and fanin buffering to efficiently realize arbitrarily low packet loss |
US5448511A (en) | 1994-06-01 | 1995-09-05 | Storage Technology Corporation | Memory stack with an integrated interconnect and mounting structure |
US6496847B1 (en) | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6763328B1 (en) | 2000-06-15 | 2004-07-13 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory utilizing threads |
US7239641B1 (en) | 2001-04-24 | 2007-07-03 | Brocade Communications Systems, Inc. | Quality of service using virtual channel translation |
US6871294B2 (en) | 2001-09-25 | 2005-03-22 | Sun Microsystems, Inc. | Dynamically reconfigurable interconnection |
KR100448709B1 (ko) | 2001-11-29 | 2004-09-13 | 삼성전자주식회사 | 데이터 버스 시스템 및 그 제어방법 |
JP3867624B2 (ja) | 2002-06-06 | 2007-01-10 | セイコーエプソン株式会社 | 不揮発性半導体記憶装置およびその駆動方法 |
US7296139B1 (en) | 2004-01-30 | 2007-11-13 | Nvidia Corporation | In-memory table structure for virtual address translation system with translation units of variable range size |
US7475174B2 (en) * | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US7120723B2 (en) | 2004-03-25 | 2006-10-10 | Micron Technology, Inc. | System and method for memory hub-based expansion bus |
DE102004062287A1 (de) * | 2004-12-23 | 2006-07-13 | Fujitsu Siemens Computers Gmbh | Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem |
US20060153185A1 (en) | 2004-12-28 | 2006-07-13 | Intel Corporation | Method and apparatus for dynamically changing ring size in network processing |
US8645665B1 (en) | 2012-12-14 | 2014-02-04 | Intel Corporation | Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses |
US7886126B2 (en) | 2005-01-14 | 2011-02-08 | Intel Corporation | Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system |
US7565496B2 (en) | 2005-01-22 | 2009-07-21 | Cisco Technology, Inc. | Sharing memory among multiple information channels |
US7383374B2 (en) | 2005-03-31 | 2008-06-03 | Intel Corporation | Method and apparatus for managing virtual addresses |
JP4591163B2 (ja) * | 2005-04-07 | 2010-12-01 | パナソニック株式会社 | バスアクセス制御装置 |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
CN101326501B (zh) * | 2006-04-06 | 2010-12-15 | 索尼株式会社 | 电桥、处理器单元、信息处理装置以及存取控制方法 |
US20080010417A1 (en) * | 2006-04-28 | 2008-01-10 | Zeffer Hakan E | Read/Write Permission Bit Support for Efficient Hardware to Software Handover |
US7752417B2 (en) * | 2006-06-05 | 2010-07-06 | Oracle America, Inc. | Dynamic selection of memory virtualization techniques |
US8392565B2 (en) * | 2006-07-20 | 2013-03-05 | Oracle America, Inc. | Network memory pools for packet destinations and virtual machines |
JP4755050B2 (ja) | 2006-08-18 | 2011-08-24 | 富士通株式会社 | データ処理装置、モード管理装置、及びモード管理方法 |
WO2008055272A2 (en) | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Integrating data from symmetric and asymmetric memory |
US20080155224A1 (en) * | 2006-12-21 | 2008-06-26 | Unisys Corporation | System and method for performing input/output operations on a data processing platform that supports multiple memory page sizes |
JP5385156B2 (ja) * | 2007-02-16 | 2014-01-08 | モサイド・テクノロジーズ・インコーポレーテッド | 半導体デバイスおよび複数の相互接続デバイスを有するシステムの電力消費を低減するための方法 |
WO2009001153A1 (en) | 2007-06-28 | 2008-12-31 | Nokia Corporation | Memory protection unit in a virtual processing environment |
JP5101195B2 (ja) * | 2007-07-09 | 2012-12-19 | 株式会社東芝 | インタフェースコントローラ |
US8787060B2 (en) | 2010-11-03 | 2014-07-22 | Netlist, Inc. | Method and apparatus for optimizing driver load in a memory package |
US7743375B2 (en) | 2008-06-27 | 2010-06-22 | International Business Machines Corporation | Information handling system including dynamically merged physical partitions |
US8195916B2 (en) * | 2009-03-04 | 2012-06-05 | Qualcomm Incorporated | Apparatus and method to translate virtual addresses to physical addresses in a base plus offset addressing mode |
US8719069B2 (en) | 2009-07-23 | 2014-05-06 | Brocade Communications Systems, Inc. | Method and apparatus for providing virtual machine information to a network interface |
JP5459006B2 (ja) * | 2010-03-24 | 2014-04-02 | 富士通株式会社 | メモリ管理装置、メモリ管理方法及びメモリ管理プログラム |
US8739177B2 (en) * | 2010-06-21 | 2014-05-27 | Intel Corporation | Method for network interface sharing among multiple virtual machines |
US20140108701A1 (en) * | 2010-07-16 | 2014-04-17 | Memory Technologies Llc | Memory protection unit in a virtual processing environment |
US8874808B2 (en) * | 2010-09-07 | 2014-10-28 | International Business Machines Corporation | Hierarchical buffer system enabling precise data delivery through an asynchronous boundary |
US8943313B2 (en) | 2011-07-19 | 2015-01-27 | Elwha Llc | Fine-grained security in federated data sets |
US9098209B2 (en) | 2011-08-24 | 2015-08-04 | Rambus Inc. | Communication via a memory interface |
US9690694B2 (en) * | 2011-09-27 | 2017-06-27 | Sandisk Technologies, Llc | Apparatus, system, and method for an address translation layer |
JP5803502B2 (ja) * | 2011-09-27 | 2015-11-04 | 富士通株式会社 | 監視装置、制御方法及び制御プログラム |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US9152570B2 (en) * | 2012-02-27 | 2015-10-06 | Vmware, Inc. | System and method for supporting finer-grained copy-on-write page sizes |
US9348385B2 (en) | 2012-07-09 | 2016-05-24 | L. Pierre deRochement | Hybrid computing module |
US9524248B2 (en) * | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
JP5987560B2 (ja) * | 2012-08-31 | 2016-09-07 | 富士通株式会社 | データ転送装置、データ転送方法およびデータ転送プログラム |
US9223635B2 (en) * | 2012-10-28 | 2015-12-29 | Citrix Systems, Inc. | Network offering in cloud computing environment |
US9319349B2 (en) * | 2013-06-20 | 2016-04-19 | Micron Technology, Inc. | Encapsulation enabled PCIE virtualisation |
US20140379846A1 (en) * | 2013-06-20 | 2014-12-25 | Nvidia Corporation | Technique for coordinating memory access requests from clients in a mobile device |
US20150106547A1 (en) * | 2013-10-14 | 2015-04-16 | Micron Technology, Inc. | Distributed memory systems and methods |
-
2014
- 2014-05-09 US US14/274,195 patent/US9501222B2/en active Active
-
2015
- 2015-05-01 EP EP15789640.8A patent/EP3140745A4/en not_active Withdrawn
- 2015-05-01 WO PCT/US2015/028882 patent/WO2015171464A1/en active Application Filing
- 2015-05-01 CN CN201580033769.6A patent/CN106462361B/zh active Active
- 2015-05-01 KR KR1020177017728A patent/KR101857937B1/ko active IP Right Grant
- 2015-05-01 KR KR1020167034625A patent/KR101754549B1/ko active Application Filing
- 2015-05-01 JP JP2016566610A patent/JP6201065B2/ja active Active
- 2015-05-08 TW TW104114794A patent/TWI588654B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131363A1 (en) * | 2002-12-27 | 2011-06-02 | Hall Clifford D | Mechanism for remapping post virtual machine memory pages |
US20140013027A1 (en) * | 2012-07-06 | 2014-01-09 | Seagate Technology Llc | Layered architecture for hybrid controller |
Also Published As
Publication number | Publication date |
---|---|
EP3140745A4 (en) | 2018-01-31 |
KR101857937B1 (ko) | 2018-05-14 |
KR20170076821A (ko) | 2017-07-04 |
US20150324285A1 (en) | 2015-11-12 |
WO2015171464A1 (en) | 2015-11-12 |
US9501222B2 (en) | 2016-11-22 |
KR101754549B1 (ko) | 2017-07-05 |
JP2017515238A (ja) | 2017-06-08 |
EP3140745A1 (en) | 2017-03-15 |
JP6201065B2 (ja) | 2017-09-20 |
TW201606508A (zh) | 2016-02-16 |
CN106462361B (zh) | 2018-06-08 |
CN106462361A (zh) | 2017-02-22 |
KR20160145848A (ko) | 2016-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI588654B (zh) | 用於可重組態之記憶體系統之虛擬化實體位址 | |
US11579788B2 (en) | Technologies for providing shared memory for accelerator sleds | |
US10567166B2 (en) | Technologies for dividing memory across socket partitions | |
TWI584116B (zh) | 使用混合記憶體立方體連結之互連系統及方法 | |
US11467885B2 (en) | Technologies for managing a latency-efficient pipeline through a network interface controller | |
GB2460841A (en) | Identifier mapping in a storage network switch | |
US20230251894A1 (en) | Method of executing programmable atomic unit resources within a multi-process system | |
US11740929B2 (en) | Registering a custom atomic operation with the operating system | |
US11698791B2 (en) | On-demand programmable atomic kernel loading | |
KR101690568B1 (ko) | 네트워크 온 칩 소켓 프로토콜 | |
WO2022271621A1 (en) | Alleviating memory hotspots on systems with multpile memory controllers | |
CN117632842A (zh) | 粗粒度可配置阵列处理器中的上下文加载机制 |