TW201606507A - 具有基於協定之優先性的基於節點之運算裝置 - Google Patents
具有基於協定之優先性的基於節點之運算裝置 Download PDFInfo
- Publication number
- TW201606507A TW201606507A TW104121526A TW104121526A TW201606507A TW 201606507 A TW201606507 A TW 201606507A TW 104121526 A TW104121526 A TW 104121526A TW 104121526 A TW104121526 A TW 104121526A TW 201606507 A TW201606507 A TW 201606507A
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- node
- memory
- priority
- message data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
根據一範例,一基於節點之運算裝置包括形成用於一處理器節點的一主要記憶體位址空間之多個記憶體節點。在一範例中,來自此多個記憶體節點的一記憶體節點可基於訊息資料的協定類型來指定一優先性給此訊息資料。而後此記憶體節點可基於指定給此訊息資料的優先性相對於指定給其他訊息資料的優先性來先於其他訊息資料選擇此訊息資料。響應於此訊息資料被選擇,此記憶體節點即可處理此訊息資料。
Description
本發明大致係有關於具有基於協定之優先性的基於節點之運算裝置。
電腦網路及系統已成為現代商業行為不可或缺的工具。現今在幾乎各種可想到的主題上所涉及的數以兆位元組(TB)或更大單位計的資訊都跨越網路被儲存及存取。一些應用,例如電信網路的應用、行動廣告、社群媒體應用等,都對他們的資料要求很短的回應時間。其結果為程式之新的以記憶體為基礎之實現態樣,例如記憶體內存式資料庫,被運用來希望提供期望之較快回應時間。這些記憶體密集的程式為了縮短回應時間主要依靠大量可直接定址的實體記憶體(如:隨機存取記憶體)而不是硬碟來儲存以兆位元組計的資料。
依據本發明之一可行實施例,係特地提出一種基於節點之運算裝置,此裝置包含一第一記憶體節點,其透過一點對點連結連接到一第二記憶體節點,此第一記憶體節點包括一訊息排程器,用以基於訊息資料的一協定類型
指定一優先性給該訊息資料;以及一訊息分派器,用以基於指定給該訊息資料的該優先性相對於指定給其他訊息資料的一優先性而先於該其他訊息資料來選擇該訊息資料,及響應於該訊息資料被選定而處理該訊息資料。
100‧‧‧基於節點之運算裝置
101、131‧‧‧點對點連結
110a、b‧‧‧處理器節點
111a、b‧‧‧處理器側記憶體控制器
112‧‧‧I/O埠
130a-i‧‧‧記憶體節點
140‧‧‧快取記憶體一致性訊息
142‧‧‧記憶體存取命令訊息
144‧‧‧I/O命令
150‧‧‧直接處理器節點對處理器節點連結
202‧‧‧訊息排程器
203a-c、603a-c‧‧‧訊息緩衝器
204‧‧‧訊息分派器
210‧‧‧記憶體側記憶體控制器
211‧‧‧記憶體邏輯
212‧‧‧路由邏輯
215‧‧‧本地記憶體
300‧‧‧方法
302、304、306、308‧‧‧操作
410-413、510、511‧‧‧虛擬通道分段
420、440、520‧‧‧虛擬通道辨識符
421、441、602、604、606、608‧‧‧訊息資料
422、442、523‧‧‧傳輸結束標籤
521‧‧‧訊息資料封包
522‧‧‧訊息資料封包/封包
521a、522a‧‧‧協定類型辨識符
521b、522b‧‧‧資料
612‧‧‧快取記憶體一致性訊息資料
700‧‧‧運算裝置/電腦裝置
710‧‧‧處理器
720‧‧‧電腦可讀儲存裝置
722、724‧‧‧指令
下文參照下列圖式說明各個範例:圖1為根據一範例顯示一基於節點之運算裝置的圖;圖2為根據一範例描繪一記憶體節點的模組之方塊圖;圖3為根據一範例描繪用於經由及藉由基於節點之運算裝置對不同協定類型傳輸的方法進行聯合排程及優先化處理之流程圖;圖4為描繪經由專屬虛擬通道接收來自給定協定類型之訊息資料的路由邏輯之範例的圖;圖5為根據一範例描繪組配來用一協定類型辨識符聯合排程不同協定類型的路由邏輯的圖。
圖6為顯示訊息資料被提升到比原本被分配的優先順序更高的優先順序之範例的圖;及圖7為根據一範例能夠聯合排程訊息資料的一運算裝置之方塊圖。
為了簡潔和便於說明的目的,此發明的原理主要係參考其範例來描述。在下文中,為了提供對於這些範例
全面的理解,大量特定細節被闡述。很明顯的,這些範例若不限制於全部這些特定細節,仍可被實行。這些範例也能以不同組合被一起使用。
根據一範例,一基於節點之運算裝置包括透過互連體連接的多個記憶體節點,此等互連體例如為點對點連結。各個記憶體節點可作為包括一記憶體控制器及用以儲存資料的記憶體之記憶體次系統。此記憶體節點也可包括路由邏輯來安排傳送訊息資料到一目的地的路徑,此目的地可能為在此基於節點之運算裝置中的另一記憶體節點、處理器節點或輸入/輸出(“I/O”)埠。此基於節點之運算裝置可提供一主要記憶體位址空間給處理器節點。
範例可用基於節點之運算裝置的記憶體節點及點對點連結當作傳訊組織結構,來傳遞攜帶例如快取記憶體一致性訊息、記憶體存取命令訊息及I/O訊息之不同類型資料的不同協定類型,到基於節點之運算裝置之給定的記憶體節點、I/O埠或處理器節點。
在本文討論的一範例中,一基於節點之運算裝置可包括一第一記憶體節點及一第二記憶體節點,兩者一起形成用於處理器節點之主要記憶體的一位址空間。在此範例中,第一記憶體節點可基於訊息資料的協定類型來指定此訊息資料的優先順序。第一記憶體節點也可基於指定給此訊息資料的優先順序相對於指定給其他訊息資料的優先順序,來超越該其他訊息資料而選擇此訊息資料。響應於此被選擇的訊息資料,第一記憶體節點即可處理此訊息資
料。當作範例而非侷限於此,第一記憶體節點可藉著,當第一記憶體節點並非此訊息資料的目的地時,經由一點對點連結傳輸此訊息資料至第二記憶體節點,來處理此訊息資料。
圖1為根據一範例顯示一基於節點之運算裝置100的圖。基於節點之運算裝置100可包含處理器節點110a、b及記憶體節點130a-i。處理器節點110a、b可為組配來執行電腦可讀指令及對存於記憶體節點130a-i中之資料運作的運算單元。如圖1顯示,處理器節點110a、b可包含藉由點對點連結101連接(直接或間接)到基於節點之運算裝置100的記憶體節點130a-i之處理器側記憶體控制器111a、b。一個點對點連結可為連結兩電路的一有線或其他連接媒體。在一範例中,一點對點連結只連接兩個電路,而不像連接兩個以上電路或裝置的共享匯流排或縱橫制開關。連接到基於節點之運算裝置100的一處理器節點及處理器側記憶體控制器,例如110a及111a或110b及111b,可設置在同一片晶片上,或是設置在分別的晶片上。並且,可在基於節點之運算裝置100中使用比在圖1中顯示者更多或更少的處理器節點、處理器側記憶體控制器及記憶體節點。並且,一I/O埠112可連接到基於節點之運算裝置100。I/O埠112可連結到一網路裝置、一記憶體裝置、一資料連結或匯流排、一顯示終端機、一使用者輸入裝置或類似裝置。
處理器節點110a、b在某些情況下可能藉由一直接處理器節點對處理器節點連結150相互連接,此直接處理
器節點對處理器節點連結150可為在處理器節點110a、b之間提供一直接通訊管道的一點對點連結。在某些情況下,處理器節點110a、b可組配來使用直接處理器節點對處理器節點連結150來傳遞相互指定的高優先性訊息資料。舉例來說,處理器節點110a可透過直接處理器節點對處理器節點連結150傳送指定給處理器節點110b的快取記憶體一致性訊息,來避免經過記憶體節點130a-i的多次中繼跳躍。
基於節點之運算裝置100可包括可藉由點對點連結131連接在一起的記憶體節點130a-i,此點對點連結131為節點間點對點連結。各記憶體節點當待存取的資料儲存在該記憶體節點時,皆可作為訊息資料的目的地;若待存取資料儲存在不同記憶體節點,各記憶體節點可作為轉傳訊息資料到適當的目的地記憶體節點的路由器。舉例來說,處理器側記憶體控制器111a、b可傳送記憶體存取命令訊息,例如:讀取、寫入、複製...等,到記憶體節點130a-i來為處理器節點110a、b施行記憶體存取操作。收到訊息資料的各記憶體節點若為命令的目的地則可執行該命令,若否,則安排路徑傳送該命令至其目的地記憶體節點。基於節點之運算裝置100可透過點對點連結131及透過當需要時可添加記憶體的能力提供記憶體可縮放性,如此可滿足大資料工作量的記憶體容量需求。在基於節點之運算裝置100中擴大記憶體容量於某些情況下可能會涉及疊接額外的記憶體節點。
基於節點之運算裝置100可用來對經由及藉由基
於節點之運算裝置100傳輸的不同類型協定進行聯合排程及優先化處理,來針對透過基於節點之運算裝置100傳遞的訊息提供服務品質(“QoS”)供應。舉例來說,除其他動作外,基於節點的運算裝置100可被用以對快取記憶體一致性訊息140、記憶體存取命令訊息142及I/O命令144進行聯合排程及優先化處理。在某些情況下,快取記憶體一致性訊息140可有一優先性級別,記憶體存取訊息142可有較快取記憶體一致性訊息140低的一優先性級別,以及I/O命令144可有較記憶體存取訊息142低的一優先性級別。
圖2為根據一範例描繪記憶體節點模組的方塊圖。請理解雖然圖2係就記憶體節點130e來討論,其他記憶體節點130a-d,f-i的範例也可包括參照圖2所討論的模組/邏輯。如圖2所示,記憶體節點130e可包括一記憶體側記憶體控制器210及本地記憶體215。本地記憶體215可為動態隨機存取記憶體(DRAM)或任何型態的依電或非依電半導體記憶體。
記憶體側記憶體控制器210可包括記憶體邏輯211及路由邏輯212。記憶體側記憶體控制器210可包括硬體及/或存在儲存裝置上並可被硬體執行的機器可讀指令。記憶體邏輯211及路由邏輯212可藉由個別的硬體電路或者單一電路實現。記憶體邏輯211可施行在本地記憶體215上執行記憶體存取操作所涉及的操作。舉例來說,記憶體邏輯211可接收來自其他記憶體節點的封包,將封包解碼以取出記憶體存取命令,並執行可被實行的記憶體管理機制、及
來自本地記憶體的讀取、寫入及區塊複製命令之實際執行。舉例來說,在此暫時參考圖1,在從處理器節點110a的處理器側記憶體控制器111a收到一讀取命令後,記憶體邏輯211可從本地記憶體215抓取資料,並告知處理器側記憶體控制器111a此資料已準備好被存取,或直接傳送有一異動識別碼及要求的資料的一資料封包回到處理器側記憶體控制器111a。這些機制取決於運用在節點上的特定類型之記憶體科技。舉例來說,用於DRAM的記憶體側配合記憶體控制器就與用於一DRAM堆疊、用於快閃記憶體或用於其他形式的非依電記憶體的配合記憶體控制器不同。
路由邏輯212可接收訊息資料,判定此訊息資料是否與對映到本地記憶體215的記憶體位址相關,並且,若為相關,則傳送此訊息資料至記憶體邏輯211供執行。若記憶體節點130e並非目的地,則路由邏輯212會將此訊息資料傳送至基於節點之運算裝置100內沿著其中之一點對點連結131朝向其目的地的下一個中繼段。
為了管理輸入的訊息資料,圖2顯示的路由邏輯212可包括一訊息排程器202、訊息緩衝器203a-c及一訊息分派器204。訊息排程器202可為一電腦實行模組,組配來經由點對點連結131接收訊息資料,及幫訊息資料排程以供傳輸到在一基於節點之運算裝置內之另一個記憶體節點。在某些情況下,訊息排程器202可藉由根據接收訊息資料的虛擬通道或根據在此訊息資料中標記的協定類型識別符,在一選擇的訊息緩衝器中,儲存經由點對點連結131接收的訊
息資料,來幫此訊息資料進行排程以供處理。
訊息緩衝器203a-c中的每一個訊息緩衝器可為提供訊息排程器202及訊息分派器204儲存及讀取訊息資料的能力之電腦可讀記憶體。在某些情況下,訊息緩衝器203a-c可被實現為能讓訊息排程器202將訊息資料推到其中之一選擇的訊息緩衝器之後及使訊息資料從其中之一選擇的訊息緩衝器之前跳出的環形佇列或陣列。
訊息分派器204可為組配來處理儲存在訊息緩衝器203a-c裡的訊息資料的一電腦實行模組。當訊息資料並非指定給記憶體節點130e時,訊息分派器204可藉由進送該訊息資料到另一個記憶體節點來處理該訊息資料;或者當訊息資料是指定給記憶體節點130e時,訊息分派器204可藉由將該訊息資料傳送到記憶體邏輯211來處理該訊息資料。
在某些情況下,訊息分派器204在訊息緩衝器203a-c中選擇訊息資料的順序,可根據指定給訊息緩衝器203a-c的優先性來判定。舉例來說,在某些情況下,訊息緩衝器203a可被指定一第一優先性、訊息緩衝器203b可被指定一第二優先性及訊息緩衝器203c可被指派一第三優先性。在這種情況下,在每一輪訊息分派器204選擇要處理的訊息資料時,若訊息緩衝器203a並非空的,訊息分派器204可處理來自訊息緩衝器203a的訊息資料。若訊息緩衝器203a是空的,則訊息分派器204將處理來自訊息緩衝器203b的訊息資料。當訊息緩衝器203a、b皆為空的時,訊息分派器204將處理來自訊息緩衝器203c的訊息資料。
記憶體側記憶體控制器210可被用來對經由及藉由基於節點之運算裝置傳輸的不同類型的通訊進行聯合排程及優先化處理,來針對透過基於節點之運算裝置傳遞之訊息提供QoS供應。圖3為根據一範例描繪用來對不同協定類型進行聯合排程及優先化處理之一方法300的流程圖,其中的不同協定類型傳遞經由及藉由基於節點之運算裝置傳輸的資料。方法300可藉由圖1及圖2顯示的模組、邏輯、元件或系統施行,並從而在本文中僅藉著參照它們來描述。但請理解方法300可在任何適合的硬體上施行。
方法300可在記憶體節點130e的訊息排程器202收到訊息資料時在操作302開始。在某些情況下,該訊息資料可從基於節點之運算裝置100中鄰近的記憶體節點傳送到記憶體節點130e。舉例來說,記憶體節點130b、130d、130f或130h中的其中之一可透過一連接點對點連結131傳送該訊息資料到記憶體節點130e。更進一步地說,訊息資料可源自所有記憶體節點、處理器節點110a、b或I/O裝置中的任何一個。
在操作304中,一接收到訊息資料,訊息排程器202即可根據此訊息資料的協定類型指定一優先性給該訊息資料。舉例來說,如果訊息資料的協定類型是關於快取記憶體一致性訊息的話,訊息排程器202可指定一種優先性給該訊息資料;如果訊息資料的協定類型是關於記憶體存取命令訊息的話,訊息排程器202可指定另一種優先性給該訊息資料;或者如果訊息資料的協定類型是關於I/O訊息的
話,訊息排程器202可指定又另一種優先性給該訊息資料。用於指定訊息資料的範例技術在下文有更詳細的討論。
在操作306中,訊息分派器204可基於指定給訊息資料的優先性相對於指定給其他訊息資料的優先性,而超越其他訊息資料選擇在操作302時接收的該訊息資料。舉例來說,訊息分派器204可因為在操作302時接收的訊息資料被指定一關於快取記憶體一致性訊息的優先性,而其他訊息資料被指定一關於I/O訊息的優先性,超越其他訊息資料選擇在操作302時接收的該訊息資料。
在操作308中,訊息分派器204可響應於選擇的訊息資料來處理該訊息資料。在某些情況下,處理該訊息資料可能涉及經由點對點連結131其中之一傳輸訊息資料到第二記憶體節點,如同在判定記憶體節點130e並非該訊息資料的目的地時可能發生者一樣。在其他情況下,處理訊息資料可能涉及傳送該訊息資料到記憶體節點130e的記憶體邏輯211,使得記憶體邏輯211可在本地記憶體215上施行一記憶體操作。
在某些情況下,記憶體側記憶體控制器可用協定區分,來對攜帶經由及藉由基於節點的運算裝置100傳輸的訊息資料之不同類型的協定進行聯合排程及優先化處理。記憶體側控制器可提供協定區分的方法的一例子是藉由讓不同協定類型的通訊資料有專屬的虛擬通道來達到。圖4為繪示透過專屬虛擬通道接收給定協定類型之訊息資料的路由邏輯212之一實例的圖面。一虛擬通道可為點對點連結
131實體頻寬的一邏輯分割。當作例示而非侷限於此,點對點連結131透過虛擬通道分段410-413傳輸訊息資料。一虛擬通道分段可指透過與一給定的虛擬通道有關的一點對點連結傳送的資料。虛擬通道分段410、412可與相同的虛擬通道有關,例如虛擬通道1。虛擬通道1可用來傳輸一種協定類型,如快取記憶體一致性訊息。虛擬通道分段411可以有關於與虛擬通道分段410、412的虛擬通道不同的虛擬通道,此虛擬通道分段411的虛擬通道諸如舉例來說為虛擬通道2。虛擬通道2可用來傳輸另一種協定類型,如記憶體存取命令訊息。虛擬通道分段413可與又另一種虛擬通道,例如虛擬通道3有關。虛擬通道3可用來傳輸再另一種協定類型,如針對I/O裝置的命令。
虛擬通道分段410-413中的每一個分段可包括虛擬通道標頭資料與訊息資料。虛擬通道標頭資料可為辨識一虛擬通道並准許對透過相對應虛擬通道傳送的資料流動的控制之標頭資料。作為可在一虛擬通道中傳送的虛擬通道標頭資料及訊息資料的例示,圖4顯示虛擬通道分段410可包括一虛擬通道辨識符420、訊息資料421及傳輸結束標籤422。虛擬通道辨識符420可為表示正透過一特定虛擬通道(如虛擬通道1)展開傳輸的資料。也就是說,標頭資料及接著虛擬通道辨識符420的訊息資料屬於由虛擬通道辨識符420辨別的虛擬通道。訊息資料421可為用於快取記憶體一致性訊息的資料。舉例來說,在一快取記憶體一致性訊息中,訊息資料421可包括用來指定一記憶體位址及/或一
記憶體值的資料。傳輸結束標籤422可表示涉及虛擬通道的資料之傳輸已結束。在某些情況下,與其使用一明確的傳輸結束資料訊息,傳送另一個虛擬通道辨識符資料訊息可用來暗示一虛擬通道的結束。
虛擬通道分段411-413可包括虛擬通道分段410所使用者類似的一資料格式。舉例來說,虛擬通道分段411可包括表示正透過一特定的虛擬通道(如:虛擬通道2)展開傳輸的虛擬通道辨識符440、包括指定一記憶體存取命令之資料的訊息資料441、及表示經虛擬通道辨識符440指定的虛擬通道傳輸的資料已結束的傳輸結束標籤442。儘管未在圖4中顯示,虛擬通道分段412、413可包括類似格式。也就是說,虛擬通道分段412、413各可包括一虛擬通道辨識符、訊息資料及一傳輸結束標籤。
由不同虛擬通道傳輸的訊息資料可在資料大小上有變化。舉例來說,虛擬通道分段411可包括比在虛擬通道分段410中傳輸的訊息資料421更大的訊息資料441。此種情況可發生在訊息資料包括要在一記憶體節點的一本地記憶體中寫入或透過一輸入/輸出介面傳輸記憶體區塊的一資料酬載時。
如上所述,一些訊息排程器202的例子可藉由根據接收到訊息資料的虛擬通道,在選定訊息緩衝器中,儲存透過點對點連結131接收的該訊息資料,來將該訊息資料予以排程以供處理。舉例來說,各個訊息緩衝器203a-c可被指定到一給定的虛擬通道(例如:訊息緩衝器203a可被指定
到虛擬通道1、訊息緩衝器203b可被指定到虛擬通道2及訊息緩衝器203c可被指定到虛擬通道3)。據此,當收到虛擬通道分段410時,訊息排程器202可基於訊息緩衝器203a被指定到虛擬通道1,且虛擬通道辨識符420指定虛擬通道分段410屬於虛擬通道1,而把訊息資料421儲存在訊息緩衝器203a中。同樣地,訊息排程器202可基於訊息緩衝器203b被指定到虛擬通道2,且虛擬通道辨識符440指定虛擬通道分段411屬於虛擬通道2,而將訊息資料441儲存在訊息緩衝器203b中。
如圖4所示,因為各個虛擬通道被指定或者是專屬於一協定類型且各個虛擬通道都有一優先性順序,指定訊息資料的工作係連帶的施行。因此,一旦一記憶體節點接收從一給定的虛擬通道來的訊息資料後,該記憶體節點不須對訊息資料重新指定優先性。反而,該記憶體節點可只基於該虛擬通道的優先性順序來排程傳送路徑排定操作。
儘管圖4繪示虛擬通道專用於一單一協定類型的範例,其他的範例則可經由相同的虛擬通道傳輸多種協定類型。圖5為根據一範例繪示路由邏輯212的圖式,此路由邏輯212組配來使用一協定類型辨識符來聯合排程不同類型的協定。在圖5中,點對點連結131傳輸虛擬通道分段510、511。虛擬通道分段510、511可針對多種協定類型傳輸訊息資料。舉例來說,如圖5顯示,虛擬通道分段510可包括一虛擬通道辨識符520、訊息資料封包521、522及一傳
輸結束標籤523。虛擬通道辨識符及傳輸結束標籤的作用已於上文就圖4討論過。
訊息資料封包521、522各可攜帶與相同或不同的訊息資料有關的資料。當作範例而非侷限於此,訊息資料封包521可包括用於快取記憶體一致性訊息的資料521b,而訊息資料封包522可包括用於記憶體存取命令(例如:一記憶體位址的讀取或寫入)的資料522b。為了辨識訊息資料封包521、522的協定類型,訊息資料封包521、522可包括協定類型辨識符521a、522a。一協定類型辨識符可為在一訊息資料封包中表示該訊息資料封包的協定類型的欄位。例如,參照圖5,協定類型辨識符521a可指明訊息資料封包521為一快取記憶體一致性訊息,而協定類型辨識符522a可指明訊息資料封包522為一記憶體存取命令。在某些情況下,協定類型辨識符可為與訊息資料封包一起傳輸的一協定標頭的一部分。一協定標頭可包括可用來控制及管理訊息資料封包流動的其他資訊。
一收到訊息資料封包,訊息排程器202即可藉由將該訊息資料封包解碼來辨識跟該訊息資料封包相關聯的一協定類型,並接著在對映到該被辨識的協定類型的一訊息緩衝器中儲存該訊息資料封包,來指定一優先性給該訊息資料封包。舉例來說,在一收到訊息資料封包521時,訊息排程器202可將訊息資料封包521解碼以辨識協定類型辨識符521a所指定的一協定類型(例如:快取記憶體一致性)。基於協定類型辨識符521a所指定的該協定類型,訊息排程
器202可在對映到該協定類型的一訊息緩衝器中儲存訊息資料封包521。如果舉例來說,協定類型辨識符521a指定一快取記憶體一致性類型,且如果訊息緩衝器203a被指定給快取記憶體一致性類型訊息,訊息排程器202在做出這些判定時將在訊息緩衝器203a中儲存訊息資料封包521。相同的程序可被用來排程記憶體之封包522。也就是說,一收到訊息資料封包522,訊息排程器202可將訊息資料封包522解碼來辨識協定類型辨識符522a所指定的一協定類型(例如:記憶體存取)。基於協定類型辨識符522a所指定的該協定類型,訊息排程器202可在指定給該協定類型的一訊息緩衝器中儲存訊息資料封包522。如果舉例來說,協定類型辨識符522a指明一記憶體存取命令訊息類型,且如果訊息緩衝器203b被指定給記憶體存取命令訊息,訊息排程器202在做出這些判定時將在訊息緩衝器203b中儲存訊息資料封包522。
一些例子可提供使低優先性訊息資料排程功能之欠缺程度降低的技術。在此處所用的「欠缺程度」可指在因為路由邏輯由於其他訊息資料被指定到一相對來說更高的優先性而重複選擇這些其他訊息資料供處理,使得該路由邏輯未能排程訊息資料供處理的一情況。用於降低訊息資料前述欠缺程度之技術的其中一者係提升渴求排程的訊息資料。提升一訊息資料可指與最初指定給訊息資料的優先性相反地選擇該訊息資料供傳輸的一機制。
圖6為顯示訊息資料被提升到比最初指定給該訊息資料的優先性更高的優先性之一範例的圖面。在圖6中,
訊息緩衝器203a包括可與快取記憶體一致性訊息相關的訊息資料602、604;訊息緩衝器203b包括可與記憶體存取命令相關的訊息資料606;而訊息緩衝器203c包括可與I/O訊息相關的訊息資料608。圖6亦顯示訊息排程器202正接收一連串的快取記憶體一致性訊息資料612。
如上討論,訊息分派器204可藉由根據儲存訊息資料的訊息緩衝器的優先性排程訊息資料供處理來運作。舉例來說,訊息分派器204可排程來自訊息緩衝器603a之訊息資料,直到訊息緩衝器603a空了為止。如果訊息緩衝器603a空了,訊息分派器204可排程儲存在訊息緩衝器603b中的訊息資料供處理,直到訊息緩衝器603b空了或直到訊息緩衝器603a儲存新的訊息資料為止。若訊息緩衝器603a、b皆空了時,訊息分派器204可排程儲存在訊息緩衝器603c中的訊息資料供處理,直到訊息緩衝器603c空了或直到訊息緩衝器603a、b儲存新的訊息資料為止。
在某些情況下,可能會用掉不公平的時間來清空被指定到較高優先性的訊息緩衝器。這種情況可能發生在當一連串被指定高優先性訊息資料(例如:一連串訊息資料612)的比率超過訊息分派器204可處理儲存在跟該高優先性有關聯的訊息緩衝器中的訊息資料(例如:儲存在訊息緩衝器203a中的訊息資料602、604)的比率時。在這種情況下,或若這種情形持續存在一段長時間的情況下,儲存在較低優先性訊息緩衝器(例如訊息緩衝器203b、c)的訊息資料可被視為飢渴的資源。
為了對訊息資料606、608提供公平的排程,或為了限制其資源飢渴狀況,訊息分派器204可提升訊息資料606、608。在選擇哪個訊息資料要提升時,訊息排程器202可判定一訊息資料的滯留時間(例如:訊息資料被佇列在一訊息緩衝器中的時間週期)是否超過一滯留時間臨界值。在某些例子中,訊息分派器204可組配來藉由將一訊息資料重新佇列或移動到被對映到一較高優先性的訊息緩衝器來提升該訊息資料。圖6顯示訊息資料606可被提升到訊息緩衝器203a,而訊息資料608可被提升至訊息緩衝器203b。
其他例子可用有別於重新佇列訊息資料到較高優先性訊息緩衝器的技術來提升訊息資料。舉例來說,如果訊息資料被佇列在一訊息緩衝器中超過一臨界時期的時期的話,訊息排程器202可週期性地辨識並標記該訊息資料為停滯。在選擇訊息資料供處理時,訊息分派器204可基於訊息緩衝器203a~c的優先性,在處理訊息資料前先選擇被標記為停滯的訊息資料。作為另一個例子,訊息排程器202可提高指定給具有停滯訊息資料的訊息緩衝器(203b)的優先性,使得此訊息緩衝器(例如:203b)在一段時間內相對於另一訊息緩衝器(例如:203a)有一較高的優先性。
圖7為根據一範例能夠聯合排程訊息資料的一運算裝置700之方塊圖。舉例來說,運算裝置700包括一處理器710、及包括指令722、724的一電腦可讀儲存裝置720。運算裝置700可為例如一記憶體節點(見圖1)或任何其他能夠提供本文所述功能的適當運算裝置。
處理器710可為一中央處理單元(CPU)、一以半導體為基礎的微處理器、一圖形處理單元(GPU)、其他硬體裝置或適於取回及執行儲存在電腦可讀儲存裝置720中之指令的其他硬體裝置或電路系統、或上述之組合。舉例來說,處理器710可包括在一晶片上的多個核心,包括跨過多個晶片的多個核心、跨過多個裝置的多個核心、或上述之組合。處理器710可提取、解碼及執行一個或多個指令722、724來實現上文參照圖1~6討論的方法及操作。除了取回及執行指令或作為其替代方案,處理器710可包括至少一積體電路(IC)、其他控制邏輯、其他電子電路、或上述之組合,它們包括用於施行指令722、724功能的一些電子元件。
電腦可讀儲存裝置720可為任何電子、磁性、光學、或其他含有或儲存可執行指令的物理儲存裝置。因此,電腦可讀儲存裝置可為,舉例來說,隨機存取記憶體(RAM)、一電氣可抹除可規劃唯讀記憶體(EEPROM)、一儲存驅動機、一實密碟片唯讀記憶體(CD-ROM)、非依電性記憶體及類似裝置。如此,機器可讀儲存裝置可為非暫時性的。如本文詳述,電腦可讀儲存裝置720可被編碼有用以聯合排程訊息資料通過一基於節點之運算裝置的一系列可執行指令。
在本文用到時,「電腦系統」一詞可指一或多個電腦裝置,比如圖7中顯示的電腦裝置700。更進一步的,「耦合」、「耦接」、「通訊耦合」、或「通訊耦接」等詞是意欲表示一間接連結或一直接連結。如此,如果一第一裝置、模
組或引擎與一第二裝置、模組或引擎耦合,其連結可為透過一直接連結、或透過經由其他裝置、模組、邏輯、引擎及連結的間接連結。在電氣連結的情況下,此種耦合可為直接的、間接的、透過一光學連接的、或透過一無線電氣連接。
雖然本文參照了一些範例,但是在不背離所請求特性範圍的情況下仍可對上述例子做出多種的修改。
100‧‧‧基於節點之運算裝置
101‧‧‧點對點連結
110a、b‧‧‧處理器節點
111a、b‧‧‧處理器側記憶體控制器
112‧‧‧I/O埠
130a-i‧‧‧記憶體節點
131‧‧‧點對點連結
140‧‧‧快取記憶體一致性訊息
142‧‧‧記憶體存取命令訊息
144‧‧‧I/O命令
150‧‧‧直接處理器節點對處理器節點連結
Claims (15)
- 一種基於節點之運算裝置,包含:一第一記憶體節點,其透過一點對點連結連接到一第二記憶體節點,該第一記憶體節點包括:一訊息排程器,用以基於訊息資料的一協定類型指定一優先性給該訊息資料,及一訊息分派器,用以:基於指定給該訊息資料的該優先性相對於指定給其他訊息資料的一優先性而先於該其他訊息資料來選擇該訊息資料,及響應於該訊息資料被選定而處理該訊息資料。
- 如請求項1之基於節點之運算裝置,其中該訊息資料包含指明該訊息資料係該協定類型的協定標頭資料,而該訊息排程器係基於該協定標頭的一檢驗判定該協定類型。
- 如請求項2之基於節點之運算裝置,其中該訊息排程器係用以:基於指定給該訊息資料的該優先性選擇一第一訊息緩衝器;及將該訊息資料儲存在該第一訊息緩衝器中。
- 如請求項3之基於節點之運算裝置,其中該訊息排程器係用以: 判定一第二訊息緩衝器有一可用儲存槽,該第二訊息緩衝器被指定有一不同優先性;及基於該可用儲存槽將該訊息資料移到該第二訊息緩衝器。
- 如請求項3之基於節點之運算裝置,其中該訊息排程器係用以:判定該訊息資料的一滯留時間超過一滯留時間臨界值;及提高指定給該第一訊息緩衝器之優先性,使得該第一訊息緩衝器在一段時間週期內相對於一第二訊息緩衝器有較高的優先性。
- 如請求項1之基於節點之運算裝置,其中該協定類型包括下列至少一者:一快取記憶體一致性協定、一記憶體存取協定或一輸入/輸出協定。
- 如請求項1之基於節點之運算裝置,其中該訊息資料的該協定類型被用來傳遞快取記憶體一致性訊息,而另一訊息資料的一協定類型被用來傳遞記憶體存取命令訊息。
- 如請求項1之基於節點之運算裝置,其中:該訊息排程器進一步用以基於一額外訊息資料之一協定類型來指定一額外的優先性給該額外訊息資料,及該訊息分派器進一步用以避免傳遞該額外訊息資料至該第二記憶體節點,直到該訊息資料的傳遞完成為止。
- 如請求項1之基於節點之運算裝置,其中該訊息資料係透過一虛擬通道接收,而該訊息排程器係用以藉由把該訊息資料儲存在指定給該虛擬通道的一訊息緩衝器中來指定該優先性給該訊息資料,該訊息緩衝器依據該訊息緩衝器的一優先性順序來被指定該優先性。
- 如請求項1之基於節點之運算裝置,其中該訊息分派器係用以藉由判定該第一記憶體節點係用於該訊息資料的一目的地,並進送該訊息資料至該第一記憶體節點的一記憶體邏輯,來處理該訊息資料。
- 一種方法,包含:由一第一記憶體節點基於從一第二記憶體節點接收的訊息資料的一協定類型指定一優先性給該訊息資料,該第一記憶體節點及該第二記憶體節點構成用於一處理器節點的一主記憶體位址空間;基於指定給該訊息資料的該優先性相對於指定給其他訊息資料的優先性而先於該其他訊息資料來選擇該訊息資料,及響應於該訊息資料被選定,經由一點對點連結傳輸該訊息資料至該第二記憶體節點。
- 如請求項11之方法,其中該訊息資料係透過被指定有一優先性的一虛擬通道接收,且有訊息排程器用以基於該訊息資料透過該虛擬通道被接收來指定該優先性給該訊息資料。
- 如請求項11之方法,其中該訊息資料的該協定類型係用 來傳遞快取記憶體一致性訊息,而另一訊息資料的一協定類型係用來傳遞記憶體存取命令訊息。
- 如請求項11之方法,進一步包含,在選擇該訊息資料而不是其他訊息資料之前:判定該訊息資料的一滯留時間超過一滯留時間臨界值;及提升該訊息資料的該優先性。
- 一種包含指令的電腦可讀儲存裝置,該等指令在被執行時致使一運算裝置的一處理器節點來:由一第一記憶體節點基於從一第二記憶體節點接收的訊息資料的一協定類型指定一優先性給該訊息資料,該第一記憶體節點及該第二記憶體節點構成用於一處理器節點的一主記憶體位址空間;基於指定給該訊息資料的該優先性相對於指定給其他訊息資料的優先性而先於該其他訊息資料來選擇該訊息資料,及響應於該訊息資料被選定,經由一點對點連結傳輸該訊息資料至該第二記憶體節點。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/047707 WO2016014044A1 (en) | 2014-07-22 | 2014-07-22 | Node-based compute device with protocol-based priority |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201606507A true TW201606507A (zh) | 2016-02-16 |
Family
ID=55163431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104121526A TW201606507A (zh) | 2014-07-22 | 2015-07-02 | 具有基於協定之優先性的基於節點之運算裝置 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW201606507A (zh) |
WO (1) | WO2016014044A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210349840A1 (en) * | 2021-07-26 | 2021-11-11 | Intel Corporation | System, Apparatus And Methods For Handling Consistent Memory Transactions According To A CXL Protocol |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2358525C (en) * | 1999-01-08 | 2008-04-01 | Nortel Networks Limited | Dynamic assignment of traffic classes to a priority queue in a packet forwarding device |
US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
DE10046578B4 (de) * | 2000-09-20 | 2007-11-22 | Infineon Technologies Ag | Integrierter Speicherbaustein und Speicheranordnung mit mehreren Speicherbausteinen sowie Verfahren zum Betrieb einer solchen Speicheranordnung |
US8477614B2 (en) * | 2006-06-30 | 2013-07-02 | Centurylink Intellectual Property Llc | System and method for routing calls if potential call paths are impaired or congested |
US20100241783A1 (en) * | 2009-03-23 | 2010-09-23 | Honeywell International Inc. | Memory node for use within a data storage system having a plurality of interconnected memory nodes |
US8665724B2 (en) * | 2009-06-12 | 2014-03-04 | Cygnus Broadband, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
-
2014
- 2014-07-22 WO PCT/US2014/047707 patent/WO2016014044A1/en active Application Filing
-
2015
- 2015-07-02 TW TW104121526A patent/TW201606507A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2016014044A1 (en) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI543073B (zh) | 用於多晶片系統中的工作調度的方法和系統 | |
US8234435B2 (en) | Relay device | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
US7924708B2 (en) | Method and apparatus for flow control initialization | |
TWI519958B (zh) | 用於多節點系統中的記憶體分配的方法和裝置 | |
US11240155B2 (en) | Technologies for network device load balancers for accelerated functions as a service | |
US10142231B2 (en) | Technologies for network I/O access | |
US11792132B2 (en) | Technologies for aligning network flows to processing resources | |
CN106201356B (zh) | 一种基于链路可用带宽状态的动态数据调度方法 | |
US8473818B2 (en) | Reliable communications in on-chip networks | |
TWI547870B (zh) | 用於在多節點環境中對i/o 存取排序的方法和系統 | |
TWI541649B (zh) | 用於多晶片系統的晶片間互連協定之系統與方法 | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
CN111382115B (zh) | 一种用于片上网络的路径创建方法、装置及电子设备 | |
CN103946825A (zh) | 网络设备选择 | |
US10715437B2 (en) | Deadline driven packet prioritization for IP networks | |
EP3588879A1 (en) | Technologies for buffering received network packet data | |
TW201642140A (zh) | 用於防止欠載之封包記憶體系統、方法及裝置 | |
CN108959134B (zh) | 用于现场可编程门阵列设备的通信 | |
US9846658B2 (en) | Dynamic temporary use of packet memory as resource memory | |
TW201606507A (zh) | 具有基於協定之優先性的基於節點之運算裝置 | |
US11201829B2 (en) | Technologies for pacing network packet transmissions | |
JP2014187430A (ja) | 通信システム、中継装置、通信方法、及びプログラム | |
KR102526770B1 (ko) | 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 | |
US11431648B2 (en) | Technologies for providing adaptive utilization of different interconnects for workloads |