TWI505183B - 共享記憶體系統 - Google Patents

共享記憶體系統 Download PDF

Info

Publication number
TWI505183B
TWI505183B TW103105495A TW103105495A TWI505183B TW I505183 B TWI505183 B TW I505183B TW 103105495 A TW103105495 A TW 103105495A TW 103105495 A TW103105495 A TW 103105495A TW I505183 B TWI505183 B TW I505183B
Authority
TW
Taiwan
Prior art keywords
memory address
data
memory device
external memory
external
Prior art date
Application number
TW103105495A
Other languages
English (en)
Other versions
TW201502972A (zh
Inventor
Gregg B Lesartre
Andrew R Wheeler
Russ W Herrell
Original Assignee
Hewlett Packard Development Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201502972A publication Critical patent/TW201502972A/zh
Application granted granted Critical
Publication of TWI505183B publication Critical patent/TWI505183B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Software Systems (AREA)

Description

共享記憶體系統
本發明係有關於共享記憶體系統。
發明背景
現代計算系統可執行可使用不同數量的資源,諸如處理器執行時間與記憶體消耗、等等之大範圍的軟體應用程式。例如,某些軟體應用程式可執行造成使用大量處理器執行時間之複雜操作。其他範例中,某些軟體應用程式可為記憶體密集而因此該軟體應用程式執行期間會使用一大量記憶體來儲存結果。某些實施例中,軟體應用程式可儲存多個計算裝置間之資料。
依據本發明之一實施例,係特地提出一種用以將資料從一第一計算裝置之一局部記憶體裝置送至一第二計算裝置之一外部記憶體裝置的方法,其包含下列步驟:組配該局部記憶體裝置以儲存該外部記憶體裝置之資料;檢測來自該外部記憶體裝置之一資料請求;將對應於該請求資料之一記憶體位址從一外部記憶體位址轉譯至一局部記憶體位址;根據該局部記憶體位址來擷取該請求資料;以及將該請求資料送出至該第二計算裝置。
100‧‧‧計算系統
102、502‧‧‧處理器
104‧‧‧系統匯流排
106‧‧‧輸入/輸出裝置介面
108‧‧‧輸入/輸出裝置
110‧‧‧顯示器裝置介面
112‧‧‧顯示器裝置
114‧‧‧網路介面卡
116‧‧‧記憶體裝置
118‧‧‧記憶體控制器
120、506‧‧‧資料轉譯模組
122‧‧‧外部記憶體裝置
124‧‧‧第二計算裝置
125‧‧‧第二記憶體控制器
126‧‧‧系統連接
128‧‧‧第二資料轉譯模組
200、400‧‧‧方法
202、204、206、208、402、404、406、408、410、412、414、416、 418‧‧‧方塊
300‧‧‧組態表
302、304‧‧‧直行
306、308‧‧‧橫列
500‧‧‧有形、非暫態、電腦可讀媒體
504‧‧‧電腦匯流排
下列詳細說明中並參照該等圖式來描述某些範例,其中:圖1是可共享一局部記憶體裝置與一外部記憶體裝置間之資料的一示範計算系統之方塊圖;圖2是一繪示用以共享一局部記憶體裝置與一外部記憶體裝置間之資料的一方法之一範例的程序流程圖;圖3是一可用來在一局部記憶體裝置之一記憶體位址空間與一外部記憶體裝置之一記憶體位址空間中轉譯之一組態表的範例;圖4是一繪示用以從一外部記憶體裝置請求資料之一方法的一範例之程序流程圖;圖5是一描繪可共享一局部記憶體裝置與一外部記憶體裝置間之資料的一有形、非暫態、電腦可讀媒體之一範例的方塊圖。
較佳實施例之詳細說明
根據本文說明之標的的實施例,一計算系統可使用兩個分開的記憶體空間來共享一局部記憶體裝置與一外部記憶體裝置間之資料。某些實施例中,一局部記憶體裝置常駐於一第一計算系統中,而一外部記憶體裝置常駐於一第二計算系統中。該局部記憶體裝置與該外部記憶體裝置兩者可使用記憶體位址空間透過一記憶體控制器來儲存從一處理器可存取之資料。如本文參照之一記憶體位址空 間,包括任何適當的離散記憶體位址範圍,其中每一離散記憶體位址可對應於儲存於任何適當的計算裝置中之資料。某些範例中,一離散記憶體位址可對應一硬碟、固態驅動機、一網路主機、一周邊儲存裝置之一扇區、或DRAM、PCM、STT_MRAM、或ReRAM記憶體中之一快取記憶體線路、等等。某些實施例中,一計算系統可藉由將對應於一局部記憶體裝置之一局部記憶體位址空間轉譯為對應於一外部記憶體裝置之一外部記憶體位址空間來擷取儲存於一外部記憶體裝置之資料。
圖1是一可共享一局部記憶體裝置與一外部記憶體裝置間之資料的一計算系統100之一範例的方塊圖。該計算系統100可包括,例如,一伺服器電腦、一行動電話、膝上型電腦、桌上型電腦、或平板電腦、等等。該計算系統100可包括配適成執行儲存指令之一處理器102。該處理器102可為一單核心處理器、一多核心處理器、一計算叢集、或任何數量的其他適當組態。
該處理器102可透過一系統匯流排104(例如,AMBA、PCI®、快速PCI®、超傳送標準(Hyper Transport)®、序列ATA、等等)連接至配適成將該計算系統100連接至一或更多I/O裝置108之一輸入/輸出(I/O)裝置介面106。該I/O裝置108可包括,例如,一鍵盤與一指向裝置,其中該指向裝置可包括一觸控板或一觸控螢幕、等等。該I/O裝置108可為該計算系統100之內建構件、或可為外部連接至該計算系統100的裝置。
該處理器102亦可透過該系統匯流排104鏈接至配適成將該計算系統100連接至一顯示器裝置112之一顯示器裝置介面110。該顯示器裝置112可包括該計算系統100之一內建構件的一顯示螢幕。該顯示器裝置112亦可包括外部連接至該計算系統100之一電腦螢幕、電視、或投影機、等等。此外,該處理器102亦可透過該系統匯流排104鏈接至一網路介面卡(NIC)114。該NIC 114可配適成透過該系統匯流排104將該計算系統100連接至一網路(未描繪)。該網路(未描繪)可為一廣域網路(WAN)、區域網路(LAN)、或網際網路、等等。
該處理器102亦可透過該系統匯流排104鏈接至一記憶體裝置116。某些實施例中,該記憶體裝置116可包括隨機存取記憶體(例如,SRAM、DRAM、eDRAM、EDO RAM、DDR RAM、RRAM®、PRAM、等等)、唯讀記憶體(例如,遮罩ROM、EPROM、EEPROM、等等)、非依電性記憶體(PCM、STT_MRAM、ReRAM、憶阻器)、或任何其他適當的記憶體系統。某些範例中,該記憶體裝置116可包括任何適當數量的記憶體位址,其每一位址對應於任何適當數量的資料值。某些實施例中,與該記憶體裝置116相關聯之記憶體位址對應於一局部記憶體位址空間。例如,該局部記憶體位址空間可包括對應於儲存於該記憶體裝置116中之資料的任何適當數量之明確記憶體位址。
某些實施例中,該記憶體裝置116可透過一記憶體控制器118由該處理器102存取。該記憶體控制器118可包 括使一處理器102能夠從該記憶體裝置116讀取資料以及將資料寫入該記憶體裝置116之邏輯。
該處理器亦可透過該系統匯流排104鏈接至一資料轉譯模組120。某些實施例中,該資料轉譯模組120可整合至該記憶體控制器118。某些實施例中,該資料轉譯模組120可透過一第二記憶體控制器125與一系統連接126(例如,乙太網路、PCI®、快速PCI®、超傳送標準(Hyper Transport)®、序列ATA、訊息通過介面、等等)來檢測來自一第二計算裝置124中之一外部記憶體裝置122的一資料請求。該外部記憶體裝置122可包括隨機存取記憶體(例如,SRAM、DRAM、eDRAM、EDO RAM、DDR RAM、RRAM®、PRAM、等等)、唯讀記憶體(例如,遮罩ROM、EPROM、EEPROM、等等)、非依電性記憶體、或任何其他適當的記憶體系統。某些實施例中,該外部記憶體裝置122可包括該第二記憶體控制器125。某些實施例中,每一記憶體裝置,諸如該記憶體裝置116與該外部記憶體裝置122,可使用一唯一的記憶體位址空間來儲存資料。例如,該外部記憶體裝置122可藉由將儲存資料與一外部記憶體位址空間中之記憶體位址相關聯來存取該儲存資料。同樣地,該記憶體裝置116可藉由將儲存資料與該局部記憶體位址空間中之記憶體位址相關聯來存取該儲存資料。
某些實施例中,該第二計算裝置124亦可包括可儲存該外部記憶體裝置122之資料的一第二資料轉譯模組128。該第二資料轉譯模組128可從該外部記憶體裝置122定 期擷取該計算裝置100中之資料轉譯模組120請求之資料。該第二資料轉譯模組128亦可將從該外部記憶體裝置122擷取的請求資料送至該計算裝置100中之資料轉譯模組120。某些實施例中,該資料轉譯模組120可將與來自該外部記憶體位址空間之請求資料相關聯的一記憶體位址轉譯為一局部記憶體位址空間。該資料轉譯模組120之後可將該請求資料提供至使用與該局部記憶體位址空間相關聯之記憶體位址的任何請求的操作系統、應用程式、或硬體構件。
應了解圖1之方塊圖並不意欲指出該計算系統100包括圖1所示之所有構件。而是,該計算系統100可包括較少或圖1未繪示之額外構件(例如,額外的記憶體裝置、視訊卡、額外的網路介面、等等)。此外,該資料轉譯模組120之任何功能可以諸如該處理器102之任何適當的硬體構件來部分地、或全部地執行。例如,該功能可使用於該處理器102中執行之邏輯、一記憶體裝置116中、一記憶體控制器中、或一周邊裝置之一共同處理器中、等等之一特殊應用積體電路來執行。
圖2是一繪示用以共享一局部記憶體裝置與一外部記憶體裝置間之資料的一方法之一範例的程序流程圖。該方法200可使用任何適當的計算裝置,諸如圖1之計算系統100來執行。
方塊202中,一第一計算裝置之該資料轉譯模組120可組配該局部記憶體裝置來儲存該外部記憶體裝置之資料。某些實施例中,組態可包括配置該局部記憶體裝置 之任何適當部分來儲存該外部記憶體裝置的資料。例如,該資料轉譯模組120可使用任何適當的配置技術,諸如動態記憶體配置或靜態記憶體配置,來配置該局部記憶體裝置之一部分以儲存一外部儲存裝置的資料。某些範例中,具有該局部記憶體裝置之計算裝置的處理器無法檢測配置到一遠端節點或一第二計算系統之記憶體存在。某些範例中,諸如該開機程序之一計算裝置啟動期間,該資料轉譯模組120可管理該局部記憶體裝置中之記憶體空間的配置。某些範例中,該資料轉譯模組120亦可動態管理該局部記憶體裝置中之記憶體空間的配置。例如,該資料轉譯模組120可用以響應一軟體應用程式之終止而針對外部資料儲存以重新配置一局部記憶體裝置中之不同記憶體數量。
方塊204中,該資料轉譯模組120可檢測來自一外部資料轉譯模組之一資料請求。某些實施例中,來自一外部資料轉譯模組之資料請求可透過該資料轉譯模組120發送至該局部記憶體裝置。例如,該資料轉譯模組120可連接至任何適當的系統互連體,諸如一繪流排、乙太網路、infiniband高速匯流排標準、或PCIe、等等。一第二計算系統中之一外部資料轉譯模組用來擷取來自該局部記憶體裝置之資料時,該外部資料轉譯模組可透過該系統互連體來將一資料請求發送至該第一計算裝置之該資料轉譯模組120。
方塊206中,該資料轉譯模組120可將對應於該請求資料之一記憶體位址從一外部記憶體位址空間轉譯至一 局部記憶體位址空間。某些實施例中,該資料轉譯模組120可維持一組態表,其包括該局部記憶體位址空間中之一記憶體位址清單以及該外部記憶體位址空間中之一對應記憶體位址清單。該組態表可使該資料轉譯模組120將一記憶體位址從一第一記憶體位址空間轉譯至一第二記憶體位址空間。某些實施例中,該組態表可儲存於每一計算系統之一記憶體控制器中。諸如該計算系統啟動期間或一應用程式終止後、等等情境時,該組態表可被定期更新。該組態表將在下文中相關圖3來更詳細說明。
方塊208中,該資料轉譯模組120可根據來自該局部記憶體位址空間之一局部記憶體位址來擷取該請求資料。某些實施例中,該資料轉譯模組120可使用來自該組態表之局部記憶體位址來擷取從一外部記憶體裝置請求之資料。方塊210中,該資料轉譯模組120可將該擷取資料送至一第二計算系統之一外部資料轉譯模組。某些實施例中,該資料轉譯模組120可使用任何適當的通訊協定,諸如TCP/IP、或一訊息通過介面、等等,將該擷取資料發送至該外部記憶體裝置。根據該特定的應用,圖2之程序流程圖可包括該方法200中之任何數量的額外步驟。
圖3是一可用來在一局部記憶體裝置之一記憶體位址空間與一外部記憶體裝置之一記憶體位址空間中轉譯之一組態表的範例。如上所述,該組態表300可使用任何適當的計算系統,諸如圖1之計算系統100、等等中的一資料轉譯模組120來執行。
該組態表300可包括任何適當數量的直行302與304以及橫列306與308。某些實施例中,該等直行302與304可包括對應於相同資料值之分開的記憶體位址空間中之記憶體位址範圍。例如,一直行302或304可包括一局部記憶體位址空間或一外部記憶體位址空間中之任何數量的記憶體位址範圍。該組態表300之橫列306與308可包括對應一資料值之來自每一記憶體位址空間的一記憶體位址範圍。例如,該組態表300可包括對應任何數量的計算裝置之一資料方塊的記憶體位址範圍。
某些實施例中,該組態表300可包括兩個直行302與304,其中每一直行302或304包括一計算裝置之一特定記憶體位址空間的記憶體位址範圍。例如,該組態表300之橫列306或308的每一記憶體位址範圍對應於相同資料方塊。該示範組態表300中,該等記憶體位址範圍0x0001:0064 310與0x012D:0190 312可為對應於一局部記憶體位址空間之資料值的記憶體位址範圍。該記憶體位址範圍0x01F5:0258 314可為對應於一外部記憶體位址空間之資料值的一記憶體位址範圍。某些範例中,每一資料值可對應一局部記憶體位址以及多個、外部記憶體位址。
圖4是一繪示用以從一外部記憶體裝置請求資料之一示範方法的程序流程圖。該方法400可於任何適當的計算系統,諸如圖1之計算系統100中執行。
方塊402中,該資料轉譯模組120可產生一配置請求。如本文所參照之一配置請求可指導一第二計算系統來 配置一第一記憶體裝置之記憶體。例如,該配置請求可從一第一計算裝置指出可儲存於一第二計算裝置之任何適當的資料量。某些實施例中,該第二計算裝置可使用任何適當的技術來配置該第二計算裝置之一記憶體裝置中的資料。
方塊404中,該資料轉譯模組120可檢測一資料請求。某些實施例中,該資料請求可由一操作系統、一軟體應用程式、或一硬體構件、等等來產生。方塊406中,該資料轉譯模組120可決定該請求資料是否常駐於一局部記憶體裝置或一外部記憶體裝置。例如,該資料轉譯模組120可檢測該請求資料是否具有對應於一局部記憶體裝置或一外部記憶體裝置之一記憶體位址。某些實施例中,該資料轉譯模組120可將對應於該請求資料之記憶體位址從一局部記憶體位址空間轉譯至一外部記憶體位址空間。若該請求資料常駐於一外部記憶體裝置,則該程序流程繼續方塊408。若該請求資料常駐於一局部記憶體裝置,則該程序流程繼續方塊410。
方塊408中,該資料轉譯模組120可將一資料請求送至包括一外部記憶體裝置之一第二計算系統。如上所述,該外部記憶體裝置可將資料局部儲存於該第二計算裝置中並針對一第一計算裝置來外部地儲存資料。某些實施例中,該資料請求包括對應於該外部記憶體位址空間之任何適當的記憶體位址數量。
方塊412中,該資料轉譯模組120可從該第二計算 系統之外部記憶體裝置接收該請求資料。某些實施例中,該資料轉譯模組120可用以響應該資料請求而接收任何適當的資料值數量。某些範例中,該接收資料可具有對應於該外部記憶體位址空間之記憶體位址。
方塊414中,該資料轉譯模組120可將該外部記憶體位址轉譯為局部記憶體位址。例如,該資料轉譯模組120可使用一組態表來將來自該外部記憶體位址空間之記憶體位址轉譯為來自該局部記憶體位址空間之記憶體位址。某些範例中,方塊406中該資料轉譯模組120可藉由將該記憶體位址從一外部記憶體位址空間轉譯為一局部記憶體位址空間來將該記憶體位址之轉譯反向。
方塊416中,該資料轉譯模組120可根據來自該局部記憶體位址空間之記憶體位址來轉回該請求資料。該資料轉譯模組120可將該請求資料轉回至任何適當的請求器,諸如一操作系統、應用程式、或硬體構件、等等。方塊418中該程序流程結束。
方塊406中若該請求資料常駐於一局部記憶體裝置,則該程序流程繼續方塊410。方塊410中,該資料轉譯模組120使用該局部記憶體位址空間來從一局部記憶體裝置擷取該請求資料。方塊418中該程序流程結束。
圖4之程序流程圖並不意欲指出該方法400之操作需以任何特定順序來執行,或者該方法400之所有操作需包括在每一種情況中。此外,根據該特定的應用,任何數量的額外步驟可包括在該方法400中。
圖5是一顯示可使用反射記憶體於一計算裝置中實行同調之一有形、非暫態、電腦可讀媒體500的方塊圖。該有形、非暫態、電腦可讀媒體500可於一電腦匯流排504上由一處理器502來存取。再者,該有形、非暫態、電腦可讀媒體500可包括電腦可執行指令來導引該處理器502執行該目前方法的步驟。
如圖5中指出,本文討論之各種不同軟體構件可儲存於該有形、非暫態、電腦可讀媒體500中。例如,一資料轉譯模組506可將一記憶體位址從一局部記憶體位址空間轉譯為一外部記憶體位址空間,並使用該外部記憶體位址來請求儲存於一外部記憶體裝置之資料。應了解根據該特定應用,圖5未顯示之任何數量的額外軟體構件亦可包括在該有形、非暫態、電腦可讀媒體500中。
該等目前範例對各種不同修改與替代型式相當敏感且僅為了舉例解說目的來顯示。再者,應了解本技術並不意欲侷限在本文揭示之特定範例中。實際上,對有關本揭示標的之業界熟於此技者而言,很明顯地該等後附請求項之範疇可視為包括所有替代項目、修改、與等效元件。
100‧‧‧計算系統
102‧‧‧處理器
104‧‧‧系統匯流排
106‧‧‧輸入/輸出裝置介面
108‧‧‧輸入/輸出裝置
110‧‧‧顯示器裝置介面
112‧‧‧顯示器裝置
114‧‧‧網路介面卡
116‧‧‧記憶體裝置
118‧‧‧記憶體控制器
120‧‧‧資料轉譯模組
122‧‧‧外部記憶體裝置
124‧‧‧第二計算裝置
125‧‧‧第二記憶體控制器
126‧‧‧系統連接
128‧‧‧第二資料轉譯模組

Claims (15)

  1. 一種用以將資料從一第一計算裝置之一局部記憶體裝置送至一第二計算裝置之一外部記憶體裝置的方法,其包含下列步驟:組配該局部記憶體裝置以儲存該外部記憶體裝置之資料;檢測來自該外部記憶體裝置之一資料請求;將對應於該請求資料之一記憶體位址從一外部記憶體位址轉譯至一局部記憶體位址;根據該局部記憶體位址來擷取該請求資料;以及將該請求資料送出至該第二計算裝置。
  2. 如請求項1之方法,其中組配該局部記憶體裝置以儲存該外部記憶體裝置之資料包含針對該外部記憶體裝置之資料儲存來配置該局部記憶體裝置之一部分。
  3. 如請求項1之方法,其中檢測來自該外部記憶體裝置之一資料請求包含搜尋一組態表來決定該請求資料是否常駐於該局部記憶體裝置或該外部記憶體裝置。
  4. 如請求項1之方法,其中該請求資料於該局部記憶體位址空間具有一記憶體位址以及於該外部記憶體位址空間具有一分開的記憶體位址。
  5. 如請求項3之方法,其中該組態表包含來自該外部記憶體位址空間之一記憶體位址清單以及來自該局部記憶體位址空間之一記憶體位址清單。
  6. 如請求項5之方法,其中該組態表包含來自對應於至少兩個計算裝置之至少兩個外部記憶體位址空間的一記憶體位址清單。
  7. 如請求項1之方法,其中該外部記憶體位址空間包含一分散的記憶體位址範圍,其中每一分散的記憶體位址對應於儲存於一計算裝置中之資料。
  8. 一種用以從一外部記憶體裝置擷取資料之系統,包含有:一資料轉譯模組,其將一記憶體位址從一外部記憶體位址空間轉譯至一局部記憶體位址空間;一用以儲存資料之局部記憶體裝置;以及一用以執行下列步驟之處理器:檢測該局部記憶體裝置中之一資料請求;決定該請求資料常駐於該外部記憶體裝置;將該資料請求送至該外部記憶體裝置;從該外部記憶體裝置接收該請求資料;將對應於該請求資料之一記憶體位址從該外部記憶體位址空間轉譯至該局部記憶體位址空間;以及將具有該轉譯記憶體位址之該請求資料轉回至一請求器。
  9. 如請求項8之系統,其中該請求器包含一應用程式、一操作系統、以及一硬體構件的其中之一。
  10. 如請求項8之系統,其中該資料轉譯模組包含一組態 表,其中該組態表包含來自該外部記憶體位址空間之一記憶體位址清單以及來自該局部記憶體位址空間之一記憶體位址清單。
  11. 如請求項10之系統,其中該組態表包含來自對應於至少兩個計算裝置之至少兩個外部記憶體位址空間的一記憶體位址清單。
  12. 一種包含多個指令之非暫態、電腦可讀媒體,該等指令用以響應於一計算裝置中執行時,可使該計算裝置來執行下列步驟:於一局部記憶體裝置中檢測一資料請求;決定該請求資料常駐於該外部記憶體裝置;將該資料請求送至該外部記憶體裝置;從該外部記憶體裝置接收該請求資料;將對應於該請求資料之一記憶體位址從該外部記憶體位址空間轉譯至該局部記憶體位址空間;以及將具有該轉譯記憶體位址之該請求資料轉回至一請求器。
  13. 如請求項12之電腦可讀媒體,其中該請求器包含一應用程式、一操作系統、以及一硬體構件的其中之一。
  14. 如請求項12之電腦可讀媒體包含多個指令,該等指令用以響應於一計算裝置中執行時,可使該計算裝置來產生一組態表,其中該組態表包含來自該外部記憶體位址空間之一記憶體位址清單以及來自該局部記憶體位址空間之一記憶體位址清單。
  15. 如請求項12之電腦可讀媒體,其中該請求資料於該局部記憶體位址空間具有一記憶體位址以及於該外部記憶體位址空間具有一分開的記憶體位址。
TW103105495A 2013-03-28 2014-02-19 共享記憶體系統 TWI505183B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034491 WO2014158177A1 (en) 2013-03-28 2013-03-28 Shared memory system

Publications (2)

Publication Number Publication Date
TW201502972A TW201502972A (zh) 2015-01-16
TWI505183B true TWI505183B (zh) 2015-10-21

Family

ID=51624959

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103105495A TWI505183B (zh) 2013-03-28 2014-02-19 共享記憶體系統

Country Status (7)

Country Link
US (1) US20160034392A1 (zh)
EP (1) EP2979193B1 (zh)
JP (1) JP2016522915A (zh)
KR (1) KR20150136075A (zh)
CN (1) CN105190576A (zh)
TW (1) TWI505183B (zh)
WO (1) WO2014158177A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9906459B2 (en) 2013-01-27 2018-02-27 Hewlett Packard Enterprise Development Lp Socket state transfer
EP3084622A4 (en) * 2013-12-20 2018-02-28 Intel Corporation Execution offloading
US10671460B2 (en) * 2018-02-05 2020-06-02 Micron Technology, Inc. Memory access communications through message passing interface implemented in memory systems
CN109947671B (zh) * 2019-03-05 2021-12-03 龙芯中科技术股份有限公司 一种地址转换方法、装置、电子设备及储存介质
CN113064724A (zh) * 2021-03-26 2021-07-02 华控清交信息科技(北京)有限公司 一种内存分配管理方法、装置和用于内存分配管理的装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044339A1 (en) * 2003-08-18 2005-02-24 Kitrick Sheets Sharing memory within an application using scalable hardware resources
TW201029144A (en) * 2008-11-10 2010-08-01 Freescale Semiconductor Inc Technique for interconnecting integrated circuits
CN101183338B (zh) * 2006-09-29 2010-09-01 美国博通公司 本地片载系统和在本地片载系统中维持存储一致性的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6087946A (ja) * 1983-10-20 1985-05-17 Oooka Tankoushiyo:Kk 自動車のトランスミツシヨン用クラツチギヤの加工方法
US6295571B1 (en) * 1999-03-19 2001-09-25 Times N Systems, Inc. Shared memory apparatus and method for multiprocessor systems
CN1282925A (zh) * 1999-07-12 2001-02-07 松下电器产业株式会社 数据处理装置
EP1396790A3 (en) * 2002-09-04 2008-02-27 Cray Inc. Remote translation mechanism of a virtual address from a source a node in a multi-node system
US7685319B2 (en) * 2004-09-28 2010-03-23 Cray Canada Corporation Low latency communication via memory windows
US7970980B2 (en) * 2004-12-15 2011-06-28 International Business Machines Corporation Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
US8667249B2 (en) * 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
US20080082622A1 (en) * 2006-09-29 2008-04-03 Broadcom Corporation Communication in a cluster system
US7636816B2 (en) * 2006-09-29 2009-12-22 Broadcom Corporation Global address space management
US20090089537A1 (en) * 2007-09-28 2009-04-02 Sun Microsystems, Inc. Apparatus and method for memory address translation across multiple nodes
US20100191911A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Having an Array of Programmable Processing Elements Linked By an On-Chip Network with Distributed On-Chip Shared Memory and External Shared Memory
US7895380B2 (en) * 2009-01-21 2011-02-22 Ati Technologies Ulc Communication protocol for sharing memory resources between components of a device
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
KR101039782B1 (ko) * 2009-11-26 2011-06-09 한양대학교 산학협력단 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044339A1 (en) * 2003-08-18 2005-02-24 Kitrick Sheets Sharing memory within an application using scalable hardware resources
CN101183338B (zh) * 2006-09-29 2010-09-01 美国博通公司 本地片载系统和在本地片载系统中维持存储一致性的方法
TW201029144A (en) * 2008-11-10 2010-08-01 Freescale Semiconductor Inc Technique for interconnecting integrated circuits

Also Published As

Publication number Publication date
EP2979193A1 (en) 2016-02-03
EP2979193B1 (en) 2021-04-28
EP2979193A4 (en) 2016-11-16
TW201502972A (zh) 2015-01-16
JP2016522915A (ja) 2016-08-04
KR20150136075A (ko) 2015-12-04
WO2014158177A1 (en) 2014-10-02
US20160034392A1 (en) 2016-02-04
CN105190576A (zh) 2015-12-23

Similar Documents

Publication Publication Date Title
TWI505183B (zh) 共享記憶體系統
JP5841255B2 (ja) 仮想化入力/出力のためのプロセッサローカルコヒーレンシを有するコンピュータシステム
US10824574B2 (en) Multi-port storage device multi-socket memory access system
CA2983479A1 (en) Method for accessing extended memory, device, and system
US9734115B2 (en) Memory mapping method and memory mapping system
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
US10338813B2 (en) Storage controller and using method therefor
JP7449063B2 (ja) メモリシステム及びメモリシステムの動作方法
JP2018518777A5 (zh)
WO2016065611A1 (zh) 访问文件的方法、系统和主机
US11157191B2 (en) Intra-device notational data movement system
JP2018501559A5 (zh)
CN110114762A (zh) 用于访问作为字节可寻址存储器的非易失性存储器的方法和设备
US20120191896A1 (en) Circuitry to select, at least in part, at least one memory
WO2014190700A1 (zh) 一种内存访问的方法、缓冲调度器和内存模块
US20190377671A1 (en) Memory controller with memory resource memory management
US11334496B2 (en) Method and system for providing processor-addressable persistent memory to guest operating systems in a storage system
US20210117114A1 (en) Memory system for flexibly allocating memory for multiple processors and operating method thereof
US11221931B2 (en) Memory system and data processing system
US10936219B2 (en) Controller-based inter-device notational data movement system
WO2017084415A1 (zh) 一种存储器切换方法、装置及计算机存储介质
US11281612B2 (en) Switch-based inter-device notational data movement system
US20200142632A1 (en) Storage device including a memory controller and a method of operating an electronic system including memory
CN107155307B (zh) 访问文件的方法、系统和主机
CN117171067A (zh) 跨操作系统域的全局虚拟地址空间

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees