TW201447602A - 外部記憶體控制器 - Google Patents

外部記憶體控制器 Download PDF

Info

Publication number
TW201447602A
TW201447602A TW103105883A TW103105883A TW201447602A TW 201447602 A TW201447602 A TW 201447602A TW 103105883 A TW103105883 A TW 103105883A TW 103105883 A TW103105883 A TW 103105883A TW 201447602 A TW201447602 A TW 201447602A
Authority
TW
Taiwan
Prior art keywords
memory
memory controller
request
processors
remote
Prior art date
Application number
TW103105883A
Other languages
English (en)
Inventor
Russ W Herrell
Gary Gostin
Gregg B Lesartre
Dale C Morris
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 TW201447602A publication Critical patent/TW201447602A/zh

Links

Classifications

    • 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/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0653Monitoring storage devices or 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

本文揭示一種計算系統。該計算系統包括一計算節點與經由一系統光纖耦合至該計算節點之一遠端記憶體節點。該計算節點包括多個處理器與一主控端記憶體控制器。該主控端記憶體控制器位於該等多個處理器外部。該主控端記憶體控制器可將對應於來自該等多個處理器之請求的要求循路由橫跨該系統光纖連至該遠端記憶體節點並轉回一回應。

Description

外部記憶體控制器
本發明係有關於外部記憶體控制器。
發明背景
一CPU、或微處理器晶片,為於一單一基體上包括一處理器、或多個處理器之一積體電路。該基體為一半導體材料,諸如矽。目前趨勢已造成一計算裝置具有更多系統功能,諸如記憶體控制器,可包括在該CPU基體上或具有該(等)處理器之CPU封裝體中。
依據本發明之一實施例,係特地提出一種計算系統,包含有:一計算節點,包含有:多個處理器;與一主控端記憶體控制器,該主控端記憶體控制器位於該等多個處理器外部;以及一經由一系統光纖耦合至該計算節點之遠端記憶體節點;其中該主控端記憶體控制器可將對應於來自該等多個處理器之一請求的一要求循路由橫跨該系統光纖連至該遠端記憶體節點並轉回一回應。
100‧‧‧計算系統
102‧‧‧計算節點
104‧‧‧遠端記憶體節點
106‧‧‧匯流排
108‧‧‧交換器、中央處理單元
110、204‧‧‧主控端記憶體控制器
112‧‧‧記憶體
114、208‧‧‧從屬記憶體控制器
200‧‧‧通訊路徑
202‧‧‧處理器
206‧‧‧遠端記憶體
300、400‧‧‧方法
302、304、306、402、404、406、408、410、412、414‧‧‧方塊
某些範例可在下列詳細說明中並參照該等圖式 來說明,其中:圖1是一計算系統之一範例的一方塊圖;圖2是一計算系統中之一通訊路徑的一範例之圖形;以及圖3是一繪示存取記憶體之一方法的一範例之程序流程圖;圖4是一繪示存取記憶體之一方法的一範例之程序流程圖。
較佳實施例之詳細說明
本文說明之技術一般係有關記憶體控制器。更特別是,本文說明之技術係有關一外部記憶體控制器。“外部”參照為與相關聯處理器分開,諸如實體上分開或成為一唯一的功能性方塊,但通訊上耦合至該等處理器之一記憶體控制器。該外部記憶體控制器可實體上與該等處理器分開,或者該外部記憶體控制器可為一唯一的功能性方塊。例如,該外部記憶體控制器可包括在一處理器晶粒上,諸如在一晶載系統(SOC)上的設計。此範例中,該外部記憶體控制器為一唯一的功能性方塊,其可與該(等)處理器共享該矽晶粒。CPU供應商將更多系統功能放入該CPU封裝體時,會產生有關該等CPU封裝體之限制。特別是,記憶體控制器加入CPU封裝體時,限制會設定在至核心之記憶體容量的比例上。I/O橋接器加入該CPU封裝體時,限制會設定在每一核心之I/O數量上。許多應用無法以一CPU封裝體 直接支援之核心比例、記憶體以及I/O來最佳化執行。此外,該CPU封裝體上執行之工作量改變時,該最佳化比例可隨時間改變。
同時該等限制由記憶體控制器與I/O橋接器、應用延伸位址空間、記憶體、以及I/O需求的內含物來施加。用以響應該等延伸需求,大的實體位址範圍可在核心與互連光纖中執行以減輕程式員負擔並使具有延伸需求之應用程式能夠縮放至大通量以及處置大資料集。
現代大規模資料問題的解決方案通常使用比一單一、高度整合CPU封裝體可支援的更多記憶體、更多儲存器、以及可能更多的總通量。例如,具有十五至二十個核心之一單一封裝體目前可用來將千兆位元組的儲存器或記憶體定址,該CPU封裝體本身無法容納該類容量。每一核心使用較大量記憶體或I/O來最佳執行之應用程式會面臨所選擇的具有非最佳化組態,且通常縮放至多個封裝體以便具有足夠的記憶體及/或I/O來最佳化操作,留下額外的核心未充分使用。不巧的是,該封裝體計數增加時,核心、記憶體、與I/O比例間之不匹配也會增加。一計算裝置中之封裝體計數可設定為滿足該等三種資源,記憶體、儲存器、或核心的其中之一之最大請求的一數量,而剩餘兩資源之過多容量表示浪費與無效率。因此,大規模資源亦具有潛在的大量浪費資源。
現今,大規模的處理問題可藉由使用一非常大的共享記憶體處理(SMP)系統、或藉由使用一大叢集之小處理 系統來解決。SMP系統具有大量的邏輯處理器計數,例如,高達數百個核心或執行緒,其可共享一相對應的大位址空間以及共同的記憶體地圖。SMP系統可藉由於一共同、記憶體同調性的連接光纖上將多個CPU封裝體,諸如16、32、或64個束縛一起來執行。如本文使用,一光纖為可包括電腦匯流排、鏈接、交換器、等等之一互連通訊系統。此外,管理包含共享資源之所有封裝體的大同調性與錯誤領域會出現其他限制。
一大叢集之小處理系統具有可主宰若干,某些情況中,接近一百個核心或執行緒之計算節點。該等計算節點可與某些型式的I/O光纖網路束縛一起。該處理系統叢集可具有大的檔案系統並傳遞訊息與資料來作為檔案。然而,局部記憶體與儲存器容量缺乏獨立的縮放性、以及節點對節點連接之有限頻寬,會限制該處理系統叢集的使用。
圖1是一計算系統,諸如一伺服器叢集之一範例的一方塊圖。該計算系統100包括若干節點,諸如一計算節點102與一遠端記憶體節點104。遠端記憶體節點104可經由快取線路存取來存取。該計算系統100可包括幾個計算節點,諸如數十個或甚至數千個計算節點。
該等節點102與104透過一匯流排106,諸如透過一系統光纖可通訊上彼此耦合。該系統光纖可為任何類型的通訊光纖,諸如一叢集光纖、PCIe、infiniBand標準、或一訂製光纖。該系統光纖可為一低潛伏、高頻寬、高可靠性光纖。於一範例中,該系統光纖可為一叢集光纖,諸如 一企業標準光纖或一適當的光纖。例如,該系統光纖可為一乙太網路光纖、一infiniBand光纖、一快速PCI光纖、或任何其他適當的光纖。該系統光纖可包括彼此作為冗餘之多個交換器108。
該計算節點102包括中央處理單元(CPU)108以執行儲存的指令。該等CPU 108可為單一核心處理器、多核心處理器、或任何其他適當的處理器。於一範例中,該計算節點102包括一單一CPU。另一範例中,該計算節點102包括多個CPU,諸如兩個CPU、三個CPU、或更多。另一範例中,該計算節點102包括至少一個CPU 108。該CPU封裝體可包括額外的系統功能,諸如記憶體控制器、記憶體、以及I/O橋接器。於一範例中,該等CPU 108包括局部處理器以及遠端記憶體控制器。
該計算節點102亦可包括一主控端記憶體控制器110。於一實施例中,該主控端記憶體控制器110可位於該等CPU 108外部,而非該等CPU 108之一內建構件。該主控端記憶體控制器110可諸如,藉由附接於一商品處理器之同調交易光纖來附接於一CPU 108。一商品處理器為不需特別從供應商許可即可購得之一處理器。該計算節點102包括一CPU封裝體時,該主控端記憶體控制器110位於該CPU封裝體外部而不包括在該CPU封裝體中。另一範例中,該主控端記憶體控制器110可整合至與該CPU 108相同的裝置。其他範例中,計算節點102可具有多個主控端記憶體控制器110,每一記憶體控制器110與遠端記憶體之一部分介接。
該計算裝置100亦包括一遠端記憶體節點104。於一範例中,該計算裝置100包括一單一遠端記憶體節點104。另一範例中,該計算裝置100包括多個遠端記憶體節點104。一遠端記憶體節點104為一儲存器集合,諸如一記憶體裝置的集合來儲存大量資料。該遠端記憶體節點104可包括一記憶體112。於一範例中,該記憶體112包含遠端記憶體、或未包括在該計算節點102中之記憶體。另一範例中,該遠端記憶體節點104可用來作為儲存器。於一範例中,一記憶體112包括依電性動態隨機存取記憶體(DRAM)、非依電性相變隨機存取記憶體(PCRAM)、自旋轉移轉矩-磁阻隨機存取記憶體(STT-MRAM)、電阻性隨機存取記憶體(reRAM)、憶阻器、快取記憶體、或其他類型的記憶體裝置。例如,該主要記憶體110為固態、永久、密集、快速的記憶體。快速記憶體可為具有類似DRAM記憶體之一存取時間的記憶體。
遠端記憶體節點104可由一單一計算節點102或多個計算節點102來存取。於一範例中,一單一遠端記憶體節點104與每一計算節點102相關聯。另一範例中,一單一遠端記憶體節點104可由多個計算節點102來存取。於一另一範例中,遠端記憶體節點104包括分割為記憶體位址空間之區域或範圍的一記憶體集用場,諸如非依電性記憶體。每一記憶體區域可指派至一計算節點102,而由於一指派計算節點102之失效,一記憶體區域可被指派至一新的計算節點102或由一不同的計算節點102來存取。
一從屬記憶體控制器114可耦合至每一記憶體112。該從屬記憶體控制器114可控制存取該記憶體112。一主控端記憶體控制器110可將請求循路由橫跨該系統光纖106連至該從屬記憶體控制器114、或至多個從屬控制器114。於一範例中,該遠端記憶體節點104包括用於從該主控端記憶體控制器110接收請求並將該等請求轉移至該從屬記憶體控制器114之一緩衝器(未顯示)。另一範例中,該主控端記憶體控制器110可直接與該記憶體112通訊。
圖1之方塊圖並不意欲指出該計算系統100包括圖1所示之所有構件。此外,根據該特定實施態樣之細節,該計算系統100可包括圖1未顯示之任何數量的額外構件。
圖2是一計算系統,諸如參照圖1所示,該計算系統100中之一通訊路徑的一範例之圖形。該等處理器202耦合至該主控端記憶體控制器204。於一範例中,該等處理器202包括於一CPU封裝體或多個CPU封裝體中,該(等)CPU封裝體包括於一計算節點,諸如計算節點102中。諸如局部記憶體與局部記憶體控制器之額外構件可耦合至該等處理器202並包括於該(等)CPU封裝體中。該主控端記憶體控制器204可位在該等處理器202與該(等)CPU封裝體外部。於一範例中,該主控端記憶體控制器204可耦合至該等處理器202之同調交易光纖。
一處理器202可產生請求來存取記憶體並將該等請求送至該主控端記憶體控制器204。該等請求可為讀取/寫入請求。另一範例中,該等請求可由一計算節點之(多 個)CPU封裝體的一I/O介面產生。例如,該請求可為一讀取請求、一寫入請求、一讀取/寫入請求、或任何其他適當類型的請求。於一另一範例中,該處理器202確認請求資料不在該處理器之快取記憶體中後,該請求為產生並送至該主控端記憶體控制器204之一快取未中請求。
該主控端記憶體控制器204位在該等處理器202外部、並與其耦合。該主控端記憶體控制器204可從該等處理器202接收存取記憶體之請求。該主控端記憶體控制器204與該等處理器202通訊如同該主控端記憶體控制器位於該等處理器202局部。於一範例中,該等處理器202可以一通訊協定,諸如一英代爾快速路徑互連(QPI)協定來與該主控端記憶體控制器204通訊。英代爾QPI協定為一點對點處理器通訊路徑。由於從該等處理器202接收請求,該主控端記憶體控制器204可處置該等處理器202間之同調交換。包括該(等)處理器202之同調領域可延伸至該主控端記憶體控制器204。一同調領域為可維持資料之同調性、或同步性的該計算系統之一區域。例如,每一處理器202可包括含有該處理器與該處理器局部之記憶體的一同調領域。然而,該(等)同調領域並不延伸超過該主控端記憶體控制器204。
由於從一處理器202接收請求,該主控端記憶體控制器204可將該請求轉換,諸如將該請求轉換為讀取及/或寫入。例如,該主控端記憶體控制器204可以與一局部記憶體控制器將請求轉換相同的方式來轉換該請求。該主控端記憶體控制器204可決定該請求參照之記憶體位址的位 置。該主控端記憶體控制器204可決定該記憶體位址的位置是否為局部或遠端。
於一範例中,若該主控端記憶體控制器204決定該記憶體位址為局部,則該主控端記憶體控制器204存取該局部記憶體(未顯示)。該主控端記憶體控制器204之後將一回應轉回至該處理器202。該回應可為任何適當的回應。例如,該回應可為該交易完成的一通知。另一範例中,該回應可為該交易失效的一通知。該交易可能因各種不同的原因而失效,諸如不可存取的記憶體、記憶體失效、記憶體位址錯誤、等等。於一另一範例中,該回應可為一請求資料之轉回,諸如從該記憶體擷取之資料。於一替代範例中,該主控端記憶體控制器可不與局部記憶體介接。
若該主控端記憶體控制器204決定該記憶體位址為遠端,則該主控端記憶體控制器204將一對應、唯一的請求循路由連至該遠端記憶體206。例如,該主控端記憶體控制器204可例如,如參照圖1說明,將一請求循路由連接橫跨一系統光纖。於一範例中,該遠端記憶體206可為一非依電性記憶體。該遠端記憶體206可與該等處理器202以及該相關聯計算節點實體上分開。
該主控端記憶體控制器204可將一全新、訂製的請求循路由連至一從屬記憶體控制器208。將該等請求循路由連至一從屬記憶體控制器208時,該主控端記憶體控制器204可將一非同調請求交易送至該從屬記憶體控制器208。就本身而言,包括一主控端記憶體控制器204之一計算節點 與一節點,諸如一遠端記憶體節點,包括一從屬記憶體控制器208之間的通訊可經由支援硬體與軟體戰術之專屬協定以及一完整的錯誤協定集合而產生。專屬協定可循路由連接橫跨一專屬光纖、或掘隧道通過企業標準光纖,諸如一PCIe光纖或一Infiniband光纖。
該局部計算節點中之同調性交易並不延伸至該局部節點外側。而是,該主控端記憶體控制器204作為該遠端記憶體206之一同調性代理伺服器。就本身而言,節點之同調性領域不受約束而該系統光纖在多個節點間不需支援快取同調性。此外,在不修改標準處理器構件的情況下,對一局部節點中之局部記憶體與遠端記憶體之請求同調性可得以維持。
該主控端記憶體控制器204可,諸如使用一通訊光纖來通訊上耦合至該從屬記憶體控制器208。該從屬記憶體控制器208可耦合至該遠端記憶體206並控制存取該遠端記憶體206。用以響應來自該主控端記憶體控制器204之請求,該從屬記憶體控制器208嘗試存取該遠端記憶體206。該從屬記憶體控制器208將一回應轉回至該主控端記憶體控制器204。該回應可為一請求之任何適當的回應。例如,該回應可為該交易完成的一通知。於一另一範例中,該回應可為請求資料,諸如從記憶體擷取之資料的轉回。
另一範例中,該回應可為該交易失效的一通知。該交易可能因各種不同的原因而失效,諸如不可存取的記憶體、記憶體失效、記憶體位址錯誤、等等。藉由隔離該 等局部計算節點中之同調交易,遠端節點,諸如包括遠端記憶體206之一節點的錯誤領域可與該計算節點隔離。
該主控端記憶體控制器204可從該從屬記憶體控制器208接收該回應並產生一回應至該處理器202。該回應可為任何適當的回應。例如,該回應可為該交易完成的一通知。於另一範例中,該回應可為該交易失效的一通知。於一另一範例中,該回應可為請求資料,諸如從記憶體擷取之資料的轉回。於一範例中,該回應與該從屬記憶體控制器208轉回至該主控端記憶體控制器204的回應不同。例如,該主控端記憶體控制器204可過濾來自該從屬記憶體控制器208之錯誤訊息以便將該遠端記憶體的錯誤與該處理器202隔離。
該遠端節點上之一記憶體錯誤並不直接轉移至該處理器202。由於從該從屬記憶體控制器208接收一“具有錯誤之回應”訊息,該主控端記憶體控制器204可建立一適當的回應至該局部節點,使得該遠端記憶體錯誤不被曲解為該局部同調領域中之一記憶體錯誤。反而是,該主控端記憶體控制器204可以使其清楚該錯誤位在該遠端記憶體的方式來將一錯誤發信號至該局部計算節點,而該局部節點可視情況處置該錯誤。遠端記憶體之一部分的失效並不會對該系統光纖或附接於該系統光纖之其他節點產生衝擊,但會以包括該遠端記憶體之節點局部的一問題來處置。該主控端記憶體控制器204包括一或更多記錄暫存器來使該作業系統OS能夠從遠端錯誤中恢復。遠端記憶體之錯 誤傳統上可以潛在停止使用該失效記憶體之應用程式的作業系統、或以若該作業系統使用該失效記憶體會停止的作業系統來處置。存取遠端節點亦可能是意識到遠端記憶體之系統拓樸結構的軟體演算法之結果,而該軟體以內部可能有遠端錯誤來寫入,使該軟體能夠從該類錯誤中恢復。另一實施例中,某些錯誤可藉由,例如,存取另一連接記憶體從屬端之資料的一映射複本、或藉由針對光纖引發錯誤來重試該交易經過一替代光纖路徑而於該記憶體主控端恢復。
該通訊路徑200可經由一局部節點上之載入/儲存語意來賦能存取遠端記憶體、I/O、與儲存器,且亦允許該類請求變成該計算系統之硬體中的“遠端訊息”。就本身而言,該通訊路徑200可藉由使該外部主控端記憶體控制器204能夠直接附接於一局部節點之該等處理器或CPU封裝體來中斷一應用程式對一CPU供應商的選擇記憶體對核心以及I/O對核心比例之相依性。就本身而言,局部記憶體、包括在該局部節點之記憶體,例如,包括在一CPU封裝體或直接連接至一處理器之記憶體,以及局部I/O可以存取額外的資料中心資源,諸如遠端記憶體與I/O儲存器來增加,減輕CPU封裝體之資源限制。存取該遠端記憶體與I/O儲存器可對映至該局部節點之位址空間。共享儲存器,諸如遠端儲存器與I/O儲存器,可用來傳遞多個節點,諸如計算節點與遠端記憶體節點間之訊息或資料。
圖3是一繪示存取記憶體之一方法300的一範例 之程序流程圖。方塊302中,來自一處理器之一請求存取記憶體可於一外部記憶體控制器接收。該請求可為一讀取請求、一寫入請求、一讀取/寫入請求、或任何其他類型的請求。於一範例中,該處理器為一單一處理器。另一範例中,該處理器為多個處理器的其中之一。該記憶體控制器位於該處理器外部。於一範例中,該處理器包括在一CPU封裝體中而該主控端記憶體控制器位於該CPU封裝體外部、而不包括在其中。
方塊304中,該外部記憶體控制器將對應來自該處理器之請求的一唯一要求循路由橫跨一系統光纖連至一遠端記憶體。於一範例中,該遠端記憶體包含非依電性記憶體。於一另一範例中,該遠端記憶體包括在一遠端記憶體節點中。於一另一範例中,一遠端記憶體節點包含多個遠端記憶體裝置,每一遠端記憶體裝置耦合至一從屬記憶體控制器。該系統光纖可為一低潛伏、高頻寬、高可靠性光纖。於一範例中,該系統光纖可為一通訊光纖,諸如如參照圖1討論之一企業標準光纖或一適當的光纖。
方塊306中,該外部記憶體控制器將一回應轉回至該處理器。該回應可為該請求之任何適當的回應。例如,該回應可為一完成通知、一錯誤通知、請求資料、一回應組合、或任何其他適當的回應。
應了解圖3之程序流程圖並不意欲指出該方法300之步驟需以任何特定順序來執行、或該方法300之所有步驟需包括在每一種情況中。此外,根據該特定實施態樣 的細節,圖3未顯示之任何數量的額外步驟可包括在該方法300中。
圖4是一繪示存取記憶體之一方法400的一範例之程序流程圖。方塊402中,來自一處理器之一請求存取一記憶體位址可在一主控端記憶體控制器接收。該請求可為一讀取請求、一寫入請求、一讀取/寫入請求、或任何其他類型的請求。於一範例中,該處理器為一單一處理器。另一範例中,該處理器為多個處理器其中之一。該主控端記憶體控制器位於該處理器外部。於一範例中,該處理器包括在一CPU封裝體中而該主控端記憶體控制器位於該CPU封裝體外部、而不包括在其中。
方塊404中,該主控端記憶體控制器可決定該記憶體位址是否常駐於局部記憶體中。局部記憶體為耦合至該處理器之記憶體。若該處理器包括在一CPU封裝體中,則該局部記憶體亦包括在該CPU封裝體中。若該記憶體位址不常駐於局部記憶體中,則方塊406中該主控端記憶體控制器可存取局部記憶體之該記憶體位址。方塊408中,該主控端記憶體控制器可將一回應轉回至該處理器。該回應可為該請求之任何適當的回應。例如,該回應可為一完成通知、一錯誤通知、請求資料、一回應組合、或任何其他適當的回應。
若該記憶體位址不常駐於局部記憶體中,則方塊410中該主控端記憶體控制器可將對應來自該處理器之請求的一唯一要求循路由橫跨一系統光纖連至耦合至遠端記 憶體之一從屬記憶體控制器。於一範例中,該遠端記憶體包含非依電性記憶體。於一另一範例中,該遠端記憶體與從屬記憶體控制器包括在一遠端記憶體節點中。於一另一範例中,一遠端記憶體節點包含多個遠端記憶體裝置,每一遠端記憶體裝置耦合至一從屬記憶體控制器。該系統光纖可為任何類型的通訊光纖。該系統光纖可為一低潛伏、高頻寬、高可靠性光纖。於一範例中,該系統光纖可為一通訊光纖,諸如如參照圖1討論之一企業標準光纖或一適當的光纖。
方塊412中,該主控端記憶體控制器從該從屬記憶體控制器接收一回應。該回應可為該請求之任何適當的回應。例如,該回應可為一完成通知、一錯誤通知、請求資料、一回應組合、或任何其他適當的回應。
方塊414中,該主控端記憶體控制器將一回應轉回至該處理器。該回應可為該請求之任何適當的回應。例如,該回應可為一完成通知、一錯誤通知、請求資料、一回應組合、或任何其他適當的回應。
該主控端記憶體控制器可包括在包括該處理器之同調領域中。該同調領域並不延伸至該從屬記憶體控制器或該遠端記憶體。該請求為一同調請求並由包括該主控端記憶體控制器之該同調領域來解析。該主控端記憶體控制器可使用非同調交易來與局部記憶體以及遠端記憶體通訊。藉由將該同調領域限制在該主控端記憶體控制器,該等處理器可與該遠端記憶體以及與其相關聯之任何失效隔 離。該主控端記憶體控制器於是作為指派至該處理器之遠端記憶體的一同調代理伺服器,在不修改標準處理器構件的情況下維持參照局部與遠端記憶體單元之記憶體同調性。例如,該等遠端記憶體內容可使用映射或RAID協定來儲存,該主控端將該完成回應送至該處理器之前,主控端與從屬記憶體控制器之間可使用額外的讀取及/或寫入。
應了解圖4之程序流程圖並不意欲指出該方法400之步驟需以任何特定順序來執行、或該方法400之所有步驟需包括在每一種情況中。此外,根據該特定實施態樣的細節,圖4未顯示之任何數量的額外步驟可包括在該方法400中。
範例1
本文揭示一種計算系統。該計算系統包括一計算節點。該計算節點包括多個處理器與一主控端記憶體控制器,該主控端記憶體控制器位於該等多個處理器外部。該計算裝置亦包括經由一系統光纖耦合至該計算節點之一遠端記憶體節點。該主控端記憶體控制器可將對應於來自該等多個處理器之一請求的一要求循路由橫跨該系統光纖連至該遠端記憶體節點並轉回一回應。
該回應可包括一完成通知、一錯誤通知、請求資料、或其一組合的其中之一。該等多個處理器經由該主控端記憶體控制器與作為局部記憶體之該遠端記憶體節點互動。該主控端記憶體控制器從一處理器接收一請求存取該處理器局部之記憶體時,該主控端記憶體控制器可實現該 計算節點中的請求。該計算節點之一同調領域僅延伸至該主控端記憶體控制器。該主控端記憶體控制器可藉由過濾從該遠端記憶體節點接收之錯誤訊息來將遠端記憶體節點的錯誤與該等多個處理器隔離。該遠端記憶體節點可包括耦合至一從屬記憶體控制器之記憶體,而該主控端記憶體控制器可將請求循路由連至該從屬記憶體控制器。
範例2
本文揭示一種方法。該方法包括於一外部記憶體控制器上,從一處理器接收一請求以存取記憶體。該方法亦包括將對應於來自該處理器之請求的一要求循路由橫跨一系統光纖連至一遠端記憶體。該方法更包括將一回應轉回至該處理器。
轉回該回應可包括轉回一完成通知、一錯誤通知、從該遠端記憶體存取之資料的其中之一、或其一組合。該處理器可常駐於一CPU封裝體中而該外部記憶體控制器可常駐於該CPU封裝體外部。該處理器可藉由透過該外部記憶體控制器來傳遞以感知該遠端記憶體來作為局部記憶體。該方法更可包括將該請求循路由連接橫跨該系統光纖之前先存取局部儲存的資料。該方法更可包括過濾錯誤訊息來將遠端記憶體錯誤與該等處理器隔離。將該請求循路由連接可包括將該請求循路由橫跨該系統光纖連至耦合至該遠端記憶體之一記憶體控制器。該方法可包括將該處裡器之一同調領域僅延伸至該外部記憶體控制器。
範例3
本文揭示一種用以存取記憶體之系統。該系統包括用以從多個處理器接收請求之一主控端記憶體控制器,該主控端記憶體控制器位於該等多個處理器外部。該系統亦包括經由一系統光纖通訊上耦合至該主控端記憶體控制器之一從屬記憶體控制器。該系統更包括位於該等處理器遠端、耦合至該從屬記憶體控制器之一記憶體。該主控端記憶體控制器將對應於來自該等多個處理器之請求的要求循路由連至該從屬記憶體控制器以存取該遠端記憶體。
該等多個處理器可包括一CPU封裝體,其中該主控端記憶體控制器位於該CPU封裝體外部。該等多個處理器可藉由經由該主控端記憶體控制器來傳遞以感知該等處理器遠端之記憶體來作為局部記憶體。該主控端記憶體控制器可過濾錯誤訊息來將該等處理器與遠端記憶體錯誤隔離。來自該等處理器之請求可包括同調交易,而該主控端記憶體控制器可經由非同調交易來與該從屬記憶體控制器通訊,使得該等處理器之一同調領域可僅延伸至該主控端記憶體控制器。
該等目前說明的技術性範例對各種不同修改與替代型式相當敏感且僅為了舉例解說目的來顯示。例如,針對一資料結構快取記憶體,本技術可支援讀取與寫入操作兩者。再者,應了解本技術並不意欲侷限在本文揭示之特定技術性範例中。實際上,對有關本揭示標的之業界熟於此技者而言,很明顯地該等後附請求項之範疇可視為包括所有替代項目、修改、與等效元件。
100‧‧‧計算系統
102‧‧‧計算節點
104‧‧‧遠端記憶體節點
106‧‧‧匯流排
108‧‧‧中央處理單元
110‧‧‧主控端記憶體控制器
112‧‧‧記憶體
114‧‧‧從屬記憶體控制器

Claims (15)

  1. 一種計算系統,包含有:一計算節點,包含有:多個處理器;與一主控端記憶體控制器,該主控端記憶體控制器位於該等多個處理器外部;以及一經由一系統光纖耦合至該計算節點之遠端記憶體節點;其中該主控端記憶體控制器可將對應於來自該等多個處理器之一請求的一要求循路由橫跨該系統光纖連至該遠端記憶體節點並轉回一回應。
  2. 如請求項1之計算系統,其中該等多個處理器經由該主控端記憶體控制器與作為局部記憶體之該遠端記憶體節點互動。
  3. 如請求項1之計算系統,其中該主控端記憶體控制器從一處理器接收一請求存取該處理器局部之記憶體時,該主控端記憶體控制器可實現該計算節點中的請求。
  4. 如請求項1之計算系統,其中該主控端記憶體控制器可藉由過濾從該遠端記憶體節點接收之錯誤訊息來將遠端記憶體節點的錯誤與該等多個處理器隔離。
  5. 如請求項1之計算系統,其中該遠端記憶體節點包含耦合至一從屬記憶體控制器之記憶體,而其中該主控端記憶體控制器可將請求循路由連至該從屬記憶體控制器。
  6. 一種方法,包含下列步驟:於一外部記憶體控制器上,從一處理器接收一請求以存取記憶體;將對應於來自該處理器之請求的一要求循路由橫跨一系統光纖連至一遠端記憶體;以及將一回應轉回至該處理器。
  7. 如請求項6之方法,轉回該回應包含轉回一完成通知、一錯誤通知、從該遠端記憶體存取之資料的其中之一、或其一組合。
  8. 如請求項6之方法,該處理器常駐於一CPU封裝體中而該外部記憶體控制器常駐於該CPU封裝體外部。
  9. 如請求項6之方法,包含將該請求循路由連接橫跨該系統光纖之前先存取局部儲存的資料。
  10. 如請求項6之方法,更包含過濾錯誤訊息來將遠端記憶體錯誤與該等處理器隔離。
  11. 如請求項6之方法,將該請求循路由連接包含將該請求循路由橫跨該系統光纖連至耦合至該遠端記憶體之一記憶體控制器。
  12. 一種用以存取記憶體之系統,包含有:一用以從多個處理器接收請求之主控端記憶體控制器,該主控端記憶體控制器位於該等多個處理器外部;一經由一系統光纖通訊上耦合至該主控端記憶體控制器之從屬記憶體控制器;以及 一位於該等處理器遠端、耦合至該從屬記憶體控制器之記憶體;其中該主控端記憶體控制器將對應於來自該等多個處理器之請求的要求循路由連至該從屬記憶體控制器以存取該遠端記憶體。
  13. 如請求項12之系統,其中該等多個處理器包含一CPU封裝體,而其中該主控端記憶體控制器位於該CPU封裝體外部。
  14. 如請求項12之系統,其中該等多個處理器可藉由經由該主控端記憶體控制器來傳遞以感知該等處理器遠端之記憶體來作為局部記憶體。
  15. 如請求項12之系統,其中來自該等處理器之請求包含同調性交易,而其中該主控端記憶體控制器可經由非同調性交易來與該從屬記憶體控制器通訊,使得該等處理器之一同調性領域僅延伸至該主控端記憶體控制器。
TW103105883A 2013-04-01 2014-02-21 外部記憶體控制器 TW201447602A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034796 WO2014163612A1 (en) 2013-04-01 2013-04-01 External memory controller

Publications (1)

Publication Number Publication Date
TW201447602A true TW201447602A (zh) 2014-12-16

Family

ID=51658743

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103105883A TW201447602A (zh) 2013-04-01 2014-02-21 外部記憶體控制器

Country Status (5)

Country Link
US (1) US10474380B2 (zh)
EP (1) EP2981900B1 (zh)
CN (1) CN105051707A (zh)
TW (1) TW201447602A (zh)
WO (1) WO2014163612A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014178854A1 (en) * 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Memory network to route memory traffic and i/o traffic
WO2017023244A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Fault tolerant computing
WO2020092129A1 (en) * 2018-10-31 2020-05-07 SnapRoute, Inc. Disaggregated cloud-native network architecture

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687393A (en) 1995-06-07 1997-11-11 International Business Machines Corporation System for controlling responses to requests over a data bus between a plurality of master controllers and a slave storage controller by inserting control characters
DE69819927D1 (de) 1997-09-05 2003-12-24 Sun Microsystems Inc Nachschlagtabelle und verfahren zur datenspeicherung darin
US6493343B1 (en) * 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US6185620B1 (en) 1998-04-03 2001-02-06 Lsi Logic Corporation Single chip protocol engine and data formatter apparatus for off chip host memory to local memory transfer and conversion
CN100336035C (zh) 1998-12-07 2007-09-05 联发科技股份有限公司 存储器存取控制装置
US7194517B2 (en) * 2001-06-28 2007-03-20 Fujitsu Limited System and method for low overhead message passing between domains in a partitioned server
US6944719B2 (en) 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US6795850B2 (en) * 2002-12-13 2004-09-21 Sun Microsystems, Inc. System and method for sharing memory among multiple storage device controllers
TWI321414B (en) 2004-10-15 2010-03-01 Sony Computer Entertainment Inc Methods and apparatus for supporting multiple configurations in a multi-processor system
US7353345B1 (en) 2005-03-07 2008-04-01 Integated Device Technology, Inc. External observation and control of data in a computing processor
US20070101158A1 (en) 2005-10-28 2007-05-03 Elliott Robert C Security region in a non-volatile memory
KR100684553B1 (ko) * 2006-01-12 2007-02-22 엠텍비젼 주식회사 듀얼 포트 메모리와 결합되는 마이크로 프로세서
US7814279B2 (en) * 2006-03-23 2010-10-12 International Business Machines Corporation Low-cost cache coherency for accelerators
US20080082622A1 (en) * 2006-09-29 2008-04-03 Broadcom Corporation Communication in a cluster system
US20100005317A1 (en) 2007-07-11 2010-01-07 Memory Experts International Inc. Securing temporary data stored in non-volatile memory using volatile memory
US7882327B2 (en) 2007-07-31 2011-02-01 Advanced Micro Devices, Inc. Communicating between partitions in a statically partitioned multiprocessing system
US8856464B2 (en) 2008-02-12 2014-10-07 Virident Systems, Inc. Systems for two-dimensional main memory including memory modules with read-writeable non-volatile memory devices
US8375184B2 (en) * 2009-11-30 2013-02-12 Intel Corporation Mirroring data between redundant storage controllers of a storage system
US8352656B2 (en) 2010-04-08 2013-01-08 Intel Corporation Handling atomic operations for a non-coherent device
CN101883446B (zh) 2010-06-28 2014-03-26 华为终端有限公司 一种sd控制芯片及数据通信方法
WO2012015431A1 (en) 2010-07-30 2012-02-02 Hewlett-Packard Development Company, L.P. Computer system and method for sharing computer memory
US10187247B2 (en) 2010-07-30 2019-01-22 Hewlett Packard Enterprise Development Lp Computer system and method for sharing computer memory
US8612676B2 (en) 2010-12-22 2013-12-17 Intel Corporation Two-level system main memory
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法

Also Published As

Publication number Publication date
EP2981900A1 (en) 2016-02-10
US10474380B2 (en) 2019-11-12
WO2014163612A1 (en) 2014-10-09
CN105051707A (zh) 2015-11-11
US20160054944A1 (en) 2016-02-25
EP2981900B1 (en) 2022-02-09
EP2981900A4 (en) 2016-12-07

Similar Documents

Publication Publication Date Title
JP6953488B2 (ja) ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
US10389839B2 (en) Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node
US9952975B2 (en) Memory network to route memory traffic and I/O traffic
US10514745B2 (en) Techniques to predict memory bandwidth demand for a memory device
US9052829B2 (en) Methods and structure for improved I/O shipping in a clustered storage system
CN109196829B (zh) 远程存储器操作
KR20160143619A (ko) 클러스터 레벨에서의 데이터 일관성 모델 및 프로토콜
WO2015080690A1 (en) Method and apparatus for storing data
US10901626B1 (en) Storage device
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
CA2987807C (en) Computer device and method for reading/writing data by computer device
WO2017101080A1 (zh) 处理写请求的方法、处理器和计算机
JP2017537404A (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
JP2008535103A (ja) 組込みcpuを備えたメモリ・コントローラを有するデータ・ストレージ・システム
US20220137864A1 (en) Memory expander, host device using memory expander, and operation method of sever system including memory expander
US20190102107A1 (en) Techniques for batch operations to storage devices
TW201447602A (zh) 外部記憶體控制器
US11126372B2 (en) External memory controller
US10719238B1 (en) Memory fabric with reliability zone comprising two or more fabric attached memory endpoints
CN114546902A (zh) 基于多协议访问存储器的系统、设备和方法
WO2016122602A1 (en) Systems and methods for sharing non-volatile memory between multiple access models
US20210326262A1 (en) Low latency metrics sharing across processor units
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
Radi et al. OmniXtend: Direct to Caches Over Commodity Fabric
JP2023047277A (ja) 相互接続にまたがるメモリミラーリングのための技術