TW202236104A - 整合計算元件之間的信息通訊 - Google Patents
整合計算元件之間的信息通訊 Download PDFInfo
- Publication number
- TW202236104A TW202236104A TW111104687A TW111104687A TW202236104A TW 202236104 A TW202236104 A TW 202236104A TW 111104687 A TW111104687 A TW 111104687A TW 111104687 A TW111104687 A TW 111104687A TW 202236104 A TW202236104 A TW 202236104A
- Authority
- TW
- Taiwan
- Prior art keywords
- notification
- queue
- data
- remote
- network controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/224—Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/1735—Network adapters, e.g. SCI, Myrinet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
一個示例提供了一種整合計算元件,該整合計算元件包括:一個或多個計算群集;以及一個或多個網路控制器,每個網路控制器包括:本端資料通知佇列,用來使源自該整合計算元件上的該等計算群集的發送信息通知排隊;遠端資料通知佇列,用來使源自遠端整合計算元件上的網路控制器的接收信息通知排隊;本端無資料通知佇列,用來使源自該整合計算元件上的計算群集的接收信息通知排隊;以及連接排程器,被配置為在該本端資料通知佇列中的發送信息通知與該遠端資料通知佇列中的接收信息通知匹配時,對來自該整合計算元件上的記憶體的資料的發送進行排程,並且對來自該本端無資料通知佇列的接收信息通知的發送進行排程。
Description
此揭示內容與整合計算元件之間的信息通訊相關。
深度學習是機器學習的一個分支,它利用了輸入層與輸出層之間的多個層。深度學習可以由需要計算密集型訓練的計算網路來實施。
提供此「發明內容」以用簡化的形式介紹一系列概念,該等概念在下面在「實施方式」中進一步描述。此「發明內容」不旨在識別所請求保護的標的的關鍵特徵或必要特徵,也不旨在限制所請求保護的標的的範圍。此外,所請求保護的標的並不限於解決此揭示內容的任何部分所指出的任何或所有缺點的實施方式。
本文揭露了與經由通訊網路進行通訊相關的示例。一個示例提供了一種整合計算元件,該整合計算元件包括一個或多個計算群集和一個或多個網路控制器。每個網路控制器包括:本端資料通知佇列,被配置為使源自該整合計算元件上的該等計算群集中的一者或多者的發送信息通知排隊;遠端資料通知佇列,被配置為使源自一個或多個遠端整合計算元件上的一個或多個遠端網路控制器的接收信息通知排隊;本端無資料通知佇列,被配置為使源自該整合計算元件上的該一個或多個計算群集的接收信息通知排隊;以及連接排程器,被配置為在該本端資料通知佇列中的發送信息通知與該遠端資料通知佇列中的接收信息通知匹配時,對來自該整合計算元件上的記憶體的資料的發送進行排程,並且對來自該本端無資料通知佇列的接收信息通知的發送進行排程。
隨著深度學習網路變得越來越大且計算密集度越來越高,使用單個機器學習元件來訓練這樣的網路變得越來越困難。因此,為了在合理的時間量內訓練大型深度學習模型,可能會將大量的元件連接在高性能的網路中。然而,隨著深度學習網路的劃分,每個元件的網路頻寬需求會快速增長。
在傳統的聯網計算元件中,網路介面硬體通常與處理硬體分開。當用於訓練深度學習網路時,單獨的網路介面和處理元件各自佔據空間、消耗功率並造成深度學習網路系統中使用的計算元件的整體成本。為了解決此類問題,可以將網路介面硬體與處理硬體整合在同一半導體裸晶封裝上(例如,整合在同一半導體裸晶上,或經由封裝互連結構連接到一個或多個半導體裸晶)。與使用單獨的硬體相比,這種整合有助於降低功率使用量、尺寸和成本。然而,目前的網路通訊協定可能沒有被配置為高效利用計算和網路介面硬體的整合所提供的頻寬。
因此,本文揭露了與通訊網路(例如深度學習網路)中的整合計算元件之間的通訊有關的示例。簡而言之,所揭露的示例控制從一個計算節點到另一個計算節點經由可變大小的信息來進行的機器學習資料的傳輸,其方式與當前的通訊協定相比可以減少記憶體空間和頻寬資源。進一步地,所揭露的示例協定利用一種包括三佇列結構的網路控制器架構,該三佇列結構被配置為對傳入和傳出的通知信息進行排隊,其方式使得關於要接收的資料的傳出通知(接收信息通知)不被關於要發送的資料的輸出通知(發送信息通知)阻斷。
在更詳細地論述這些示例之前,圖1示出連接整合計算元件群組的示例資料網路100的拓撲結構。每個計算元件可以使用計算元件上的多個網路介面來連接到複數個並行的資料網路平面。資料網路100包括交換佈置102,交換佈置102包括以任何合適的拓撲結構佈置的一個或多個交換器和/或路由器。例如,交換器和/或路由器可以是乙太網路交換器。交換器和/或路由器中的每一者與一個或多個計算群組110通訊,如在110a-d處所示。每個計算群組110包括以合適的網路拓撲結構連接在一起的複數個整合的計算/網路介面,其示例在下面關於圖2論述。
計算群組110a-d中的每一者包括複數個計算節點,每個節點包括整合計算元件。圖2示出示例計算群組200,其具有以任何合適的拓撲結構佈置的任意數量N的整合計算元件202。圖2是可以用作計算群組110a-110d中的任一者的群組的示例。每個整合計算元件202包括半導體裸晶,該半導體裸晶包括一個或多個處理器、一個或多個網路介面和一個或多個記憶體,例如高頻寬記憶體(HBM)、SRAM、DDR和/或任何其他合適的記憶體技術。在所描繪的示例中,每個整合計算元件202包括由八個去往其他整合計算元件的連接204所表示的八個網路介面,該等網路介面位於計算群組200內和/或去往T0交換器和/或路由器。在其他的示例中,可以使用任何其他合適數量的網路介面。計算群組200內的N個整合計算元件經由點對點連接或一個或多個中繼段(hop)與其他節點通訊。計算群組200周邊的元件經由網路拓撲結構(例如圖1所示的網路拓撲結構)中的交換器和/或路由器與其他計算群組中的元件通訊。在其他的示例中,計算元件節點群組可以具有任何其他合適的架構。
圖3示出適於用作整合計算元件202中的每一者的示例整合計算元件300的方塊圖。整合計算元件300包括半導體裸晶封裝301,半導體裸晶封裝301包括任意數量N的計算群集302,其中N表示1或更大的整數。群集302可以形成於同一半導體裸晶上,或形成於由封裝互連結構連接的兩個或更多個不同的裸晶上。整合計算元件300進一步包括M個網路控制器304,其中M代表1或更大的整數。網路控制器304可以位在與群集302相同的半導體裸晶上,或者可以位於經由封裝互連結構連接的一個或多個不同的裸晶上。在其他的示例中,網路控制器304和計算群集302可以位於單獨的裸晶和/或單獨的裸晶封裝上。每個網路控制器被配置為控制一個或多個群集302與一個或多個外部整合計算元件300(包括相同群組200以及不同群組中的外部整合計算元件)之間的通訊。整合計算元件300也包括記憶體306,例如HBM、SRAM、DDR等等。
圖4示出兩個整合計算元件(示為計算元件-0 402和計算元件-1 404)之間的示例通訊流程圖。計算元件-0 402包括實施在處理器上以向計算元件-1 404的接收器-0 408傳輸資料的發送器-0 406。進一步地,計算元件-1 404包括發送器-1 410,以向計算元件-0 402的接收器-1 412傳輸資料。這裡,計算元件-0 402與計算元件-1 404之間的傳輸層連接414支援在發送器與接收器之間雙向傳輸資料信息。可以利用多個傳輸層連接來支援對應的多個並行和同時活動的雙向傳輸。
對於資料信息傳輸而言,發送器406、410和接收器408、412可以實施從目的地計算元件「拉取」的接收器發起的模型。正如下面所詳細解釋的,發送器節點與接收器節點之間的通訊是不同步的。進一步地,在每個整合計算元件中,計算群集可以向整合計算元件上的網路控制器發送信息,並經由提供整合計算元件上的計算群集與網路控制器之間的通訊的信息晶載網路(NOC)來從網路控制器接收信息。
圖5示出時序圖500,其說明用於在發送器群集與接收器群集之間傳輸資料的示例協定。如上所述,所揭露的通訊協定可以控制從一個計算節點到另一個計算節點的網路傳輸信息,其方式與當前的協定相比,可以減少記憶體空間和頻寬資源。
所說明的通訊協定包括各種不同類型的通知,包括發送信息通知、發送完成通知、接收信息通知和接收完成通知。接收信息通知是接收方群集準備好接收資料的通知。接收信息通知是從接收方群集向接收方整合計算元件上的接收方網路控制器發送的。然後,接收方網路控制器向發送方整合計算元件發送接收信息通知,以通知發送方網路控制器,接收方群集準備好接收資料。不同步地,發送方群集向發送方網路控制器發送發送信息通知,以通知發送方網路控制器,發送器群集準備好發送資料。如下面所更詳細描述的,這些通知被儲存在發送方網路控制器上相應的佇列中。一旦以任何順序接收到這兩個通知,排程器就會對由發送方網路控制器進行的資料發送進行排程。
發送信息通知和接收信息通知各自可以具有任何合適的格式。在一些示例中,發送信息通知可以包括諸如連接編號、源記憶體位址、信息大小、發送標籤和發送完成旗號(semaphore)之類的資料。
源記憶體位址包括連序位元組陣列的位址,其中陣列的大小是信息大小。發送信息通知中的信息大小欄位可以對任何合適範圍的信息大小(例如在一些實施方式中為從0位元組到64 MB)進行定址。源記憶體位址欄位將所有資料視為線性的,即使儲存在指定位置處的資料的形狀可能不是線性的。發送方的網路控制器將實際的記憶體形狀映射到信息大小欄位中所指定的連序位元組陣列。
發送標籤識別信息,而連接編號識別通道。發送標籤可以用來與對應的接收信息通知的接收標籤匹配,以進行資料的發送。如果發送標籤和接收標籤不匹配,則標出錯誤。在一些示例中,除了連接編號以外,還可以使用發送標籤和接收標籤,以觸發資料的發送。
發送完成旗號是在完成向接收方網路控制器發送資料之後,由發送方網路控制器經由信息NOC發回發送方群集的旗號。然後,發送器計算群集在接收到發送完成旗號之後可以釋放源緩存器。在一些示例中,發送完成旗號可以包括旗號位址、旗號位元向量和旗號值。在一些示例中,可以更新單獨的旗號作為對發送完成旗號的響應。例如,計數旗號可以用來追蹤待處理的發送信息通知,以避免使網路控制器中的佇列溢出。發送完成旗號可以被雙重地用作計算群集與連接的網路控制器本端資料通知佇列之間的通知和信用回傳。位元向量可以用來表示整合計算元件中的群集。
接收信息通知可以包括諸如連接編號、目的地記憶體位址、接收緩存器大小、接收標籤和接收完成旗號之類的資料欄位。目的地記憶體位址指定由發送方群集發送的資料在接收方的儲存位置。這個記憶體位址(加上任何適用的偏位)被包括在由發送方發送的資料封包中。因此,接收方網路控制器被每個資料封包通知包含在封包中的資料的寫入位置。因為接收方計算群集知道要在緩存器中接收的信息的最大大小並且已經相應地分配了記憶體,所以接收信息通知攜帶了接收緩存器大小。如果來自對應的發送信息通知的信息大小大於接收緩存器大小,將引發異常(exception),並且不會發送資料的傳輸。進一步地,如果接收標籤與發送信息通知對應的發送標籤不匹配,將引發異常。
接收方網路控制器在網路控制器已經將來自遠端整合計算元件的資料成功寫入在由接收信息通知中所提供的記憶體位址所指定的緩存器之後,從網路控制器向群集在接收方信息NOC上發送接收完成旗號。在一些示例中,接收完成旗號可以包括旗號位址、旗號位元向量和旗號值。旗號通知整合計算元件,接收的資料存在於接收緩存器中。如果接收的資料被壓縮,則可以將其大小作為資料的一部分以壓縮標頭的形式指定。
繼續參照圖5,時序圖500說明在從第一整合計算元件502中的發送器計算群集508跨網路連接506向第二整合計算元件504中的接收器計算群集514發送資料時交換的信息。圖解500示意性地示出發送器計算群集508、發送器網路控制器510、接收器網路控制器512和接收器計算群集514各自的時間線。將了解,對於發送器計算群集和接收器計算群集中的每一者而言,時間線包括為了簡單起見而組合成單個時間線的對應儲存器(例如HBM、SRAM)。
在516處,接收器群集514向整合計算元件504中的接收器網路控制器512發出接收信息通知,表明接收器群集514準備好接收指定的資料。如上所述,接收信息通知具有目的地記憶體位址和接收完成旗號。如下面所更詳細描述的,接收信息通知在接收器網路控制器的本端無資料佇列中排隊。在518處,接收器網路控制器512使用在信息NOC上接收的接收信息通知中的內容來創建網路封包,並向發送器網路控制器510發送封包。
在520處,發送器網路控制器510接收接收信息通知,抽取包括目的地記憶體位址和接收完成旗號的資訊,並將抽取的資訊儲存在遠端資料通知佇列中,其中為每個傳輸層連接界定了單獨的遠端資料通知佇列。下面也更詳細地描述了遠端資料通知佇列。
在522處,發送器計算群集508發出具有源記憶體位址、信息大小和發送完成旗號的發送信息通知。在此示例中,在發送器網路控制器從接收器網路控制器512接收接收信息通知之後,發送器網路控制器510發出發送信息通知。在其他的示例中,由於協定的不同步本質,發送器網路控制器510可以在接收信息通知之前接收發送信息通知。
發送器計算群集508將信息大小與發送信息通知一起傳遞,使得發送器網路控制器510可以在連接排程器和分段器中使用信息大小,這將在下面描述。
在524處,發送器網路控制器510從發送信息通知抽取資訊,並使其在本端資料通知佇列中排隊。在連接的發送信息通知和接收信息通知分別被儲存在本端資料通知佇列和遠端資料通知佇列中時,在526處,發送器網路控制器510開始直接記憶體存取,以從與發送信息通知包括在一起的源記憶體位址擷取資料。經由發送器元件NOC進行的多個讀取事務可以用來從記憶體讀取資料。在528處,在直接記憶體存取回傳了足以創建網路封包的位元組之後,發送器網路控制器510創建網路封包。由發送器網路控制器528所創建的每個網路封包包括目的地記憶體位址,資料將被寫入在接收器計算群集514上的該目的地記憶體位址。在發送器網路控制器510已經發送了信息的所有網路封包之後,它會接著將網路封包與接收完成旗號一起發送到接收器網路控制器512。在一些示例中,發送器網路控制器510可以在應答封包從接收器網路控制器512到達之前發送接收完成旗號。
繼續,在530處,在發送器網路控制器510接收所有封包的應答之後,發送器網路控制器510在整合計算元件502中在NOC上發出發送完成旗號。在接收發送完成旗號通知之後,發送器計算群集508可以重新使用發送資料的發送器群集處的緩存器。
如上所述,由接收器網路控制器512所接收的每個資料封包都攜帶有目的地記憶體位址。在532處,接收器網路控制器512中的網路直接記憶體存取(NDMA)引擎用封包中的目的地記憶體位址在資料NOC上執行寫入事務。接收器網路控制器512等待所有待處理的寫入事務完成。在NDMA引擎擁有來自寫入事務的所有應答事務之後,接收器網路控制器512在信息NOC上發出接收完成旗號,並向接收器計算群集514發送接收完成旗號,如534處所示。
如上所述,本文所揭露的網路控制器被配置為具有信息佇列的三重配置。圖6示出方塊圖,其說明用於控制資料和信息的出入的網路控制器600的示例部件。控制器600包括信息佇列引擎602,它在傳輸方向上的每個傳輸層連接實施三個通知佇列。在一些示例中,佇列表項儲存器可以在所有端點傳輸層連接之間共用,並且佇列可以被實施為具有可程式化的表項數量的循環緩存器。
佇列三重組中的三種類型的信息佇列包括本端無資料通知佇列604、本端資料通知佇列606和遠端資料通知佇列608。本端無資料通知佇列604用於對從與網路控制器600相同的整合計算元件上的群集所接收的接收通知進行排隊。使用來自兩個其他佇列的單獨本端無資料通知佇列604(下面描述)確保,傳出的接收信息通知不會被等待來自遠端整合計算元件的匹配的傳入的接收信息通知的傳出的發送信息通知阻斷。網路控制器將根據儲存在接收信息通知中的資訊創建單個傳輸層封包。
如上面簡要提及的本端資料通知佇列606用來對從本端群集所接收的發送信息通知進行排隊,以供與從遠端整合計算元件所接收的接收信息通知匹配。本端資料通知佇列606儲存來自發送信息通知的抽取的內容(源記憶體位址、信息大小和發送控制通知)。使用本端資料通知佇列來支援零位元組信息傳輸。遠端資料通知佇列608儲存來自遠端整合計算元件的接收信息通知,並且同樣地儲存來自接收信息通知的抽取的內容。
在出口側,在610處接收到來自本端信息NOC且源自整合計算元件上的該一個或多個計算群集的接收信息通知時,使接收信息通知在本端無資料通知佇列604中排隊。在610處接收到來自本端信息NOC且源自整合計算元件604上的該一個或多個計算群集的發送信息通知時,使發送信息通知在本端資料通知佇列606中排隊。網路控制器可以管理出口側對一個或多個遠端整合計算元件的N個同時連接,如614處所表示(傳輸層連接N Tx)。在入口側,來自遠端整合計算元件的傳入的遠端接收信息通知在遠端資料通知佇列608中排隊。網路控制器在入口側可以具有來自一個或多個遠端整合計算元件的N個連接,如616處所表示(傳輸層連接N Rx)。每個佇列中的表項被儲存在佇列表項儲存器617中。
如上所述,在本端資料通知佇列610和遠端通知佇列612都非空(都具有相同連接的信息通知)時,信息佇列引擎602將讀出表項,並且可以為該連接發送描述符。描述符分段機618為每一個連接創建網路封包描述符,並以循環方式(由RR所表示)向傳輸層連接傳輸狀態機622發送每個封包描述符(在620處表示)。在封包描述符層級,信息佇列引擎602中的邏輯在本端無資料通知佇列608與本端資料通知佇列610之間進行仲裁。
傳輸層連接傳輸狀態機622將把傳輸的封包描述符624儲存在待處理的描述符的儲存器620中,直到它從接收端接收到應答為止。一旦接收到應答,就向連接排程器626傳遞封包描述符624,連接排程器626決定適當的封包以經由封包出口資料路徑628傳輸。傳輸層連接傳輸狀態機622在接收到否定應答封包或傳輸層連接逾時的情況下實施封包傳輸。NDMA引擎直接從記憶體讀取有效載荷內容,並且堆疊網路標頭並對封包進行加密。藉由使用直接記憶體存取,可以從網路控制器省略用於儲存要傳輸的資料的緩存器,從而提供更緊湊的網路控制器設計,並且也減少了用於將資料從節點上的記憶體傳輸到遠端節點的計算循環的數量。此外,如果封包由於網路中的位元錯誤或擁塞而在網路上丟失,那麼可以重新傳輸該封包。重新傳輸的封包有效載荷將從元件記憶體讀取,並新的標頭將附加到封包。網路控制器可以為優先流控制(PFC)保留封包緩存器,而不保留重傳封包緩存器。
在入口側,封包入口資料路徑630解析接收到的封包標頭,抽取資訊,並將資訊傳遞給傳輸層連接接收狀態機632。如果傳入的封包是接收信息通知封包,那麼邏輯將目的地記憶體位址和接收控制通知欄位儲存在遠端資料通知佇列中,如634處所示。邏輯在信息NOC上發出其他通知封包。對於資料包,NDMA引擎直接將有效載荷複製到記憶體,如638處所示。
所揭露的三個信息佇列的使用允許源自本端的發送信息通知、源自本端的接收信息通知和源自遠端的接收信息通知彼此單獨排隊,這可以有助於降低延遲。例如,佇列三重組允許源自本端的接收信息通知獨立於發送信息通知發送,從而防止排隊的發送信息通知對接收信息通知進行任何阻斷。進一步地,每個連接都是雙向的,使得接收和發送可以並行發生。因此,每個計算群集都可以是接收器和發送器。如果發送器計算群集發出發送信息通知,但是還未從接收器計算群集接收到對應的接收信息通知,那麼接收信息通知將不會被阻止接收,因為遠端資料通知佇列能夠對來自遠端計算群集的任何接收信息通知進行排隊。因此,即使本端資料通知佇列被發送信息通知堵塞,遠端資料通知佇列也可以繼續對源自遠端的接收信息通知進行排隊。進一步地,本端無資料通知佇列確保,源自本端的接收信息通知在等待來自遠端計算群集的匹配的發送信息通知時不會堆積在佇列中,而是被儲存在單獨的佇列中。
因此,在本端計算節點上,在從計算群集向網路控制器發送發送信息通知時,發送信息通知在本端資料通知佇列中排隊。在接收到源自遠端的接收信息通知時,接收信息通知在遠端資料通知佇列中排隊,並且如果接收信息通知與在本端資料通知佇列中排隊的發送信息通知匹配,那麼資料傳輸開始,並且從佇列移除匹配的通知。即使在等待匹配的遠端接收信息通知時,發送信息通知也可以繼續排隊。
同時,計算群集可以向網路控制器發送接收信息通知,並且使接收信息通知在本端無資料通知佇列中排隊以供發送到遠端計算群集。這允許將接收信息通知發送出去,而不需等待本端資料通知佇列和遠端資料通知佇列中發生匹配,從而減少延遲。
在一些示例中,可以可選地將旗號緩存器636包括在本端記憶體中的入口側。藉由在「接收完成」封包不按順序接收時緩存在此封包中所接收的旗號,旗號緩存器636可以允許資料封包在接收器側處不按順序接收。在所有資料被接收並寫入到記憶體之後,可以向計算群集發送儲存在旗號緩存器中的旗號。在其他的示例中,可以省略旗號緩存器,並且在接收到失序的封包時,可以從接收器網路控制器向發送器網路控制器發送錯誤信息。這有助於確保最後接收含有旗號的「接收完成」封包,從而允許在不緩存的情況下向群集發送旗號。
三個信息佇列可以採取任何合適的形式。在一些示例中,每個網路控制器可以支援許多連接,例如一千個連接的數量級。然而,容納各自以每秒50GB同時產生資料的一千個連接(例如)可能是有挑戰性的。這些連接中的一些可能也是轉接(transit)連接(即在發送器與接收器之間跳躍)。因此,網路控制器可以為每個通知佇列靜態地分配最大表項,並且基於經由連接傳遞的平均信息大小、連接RTT和連接吞吐量來決定此數量。最小佇列深度在一些示例中可以是兩個表項,或者在其他的示例中可以是其他合適的深度。網路控制器也對佇列三重組的起始位址進行程式化,其中起始位址與佇列三重組粒度一致。
信息佇列引擎可以保留頭指標和尾指標,以追蹤佇列三重組中的每個佇列的待處理表項。每個佇列可以使用循環緩存器來實現。如果最大支援的佇列深度是1024個表項,那麼指針寬度將是11位元。三個指標集合可以單獨用於每個佇列。在佇列和連接設置時,指標被初始化為零。
圖7示出信息佇列引擎中的示例佇列表項儲存器700,其中佇列表項儲存器700跨兩個不同大小的佇列共用。佇列0(Q0)的大小被調整為最大(深度大小)四個表項,而佇列1(Q1)的大小被調整為儲存最大(深度大小)16個表項。Q0的起始位址為0x4,與四個表項一致,而Q1的起始位址為0x10,與16個表項一致。Q0的頭指標等於1,Q0的尾指標等於3,Q1的頭指標等於3,Q1的尾指標等於9。在702處,Q0有兩個待處理的表項,在704處,Q1有六個待處理的表項。
圖8示出在整合計算元件上進行通訊的示例方法800。方法800可以作為示例在整合計算元件300、502和504上制定。方法800包括以下步驟:在802處,從整合計算元件上的計算群集接收發送信息通知,並使來自計算群集的發送信息通知在本端資料通知中排隊。方法800進一步包括以下步驟:在804處,從遠端整合計算元件上的遠端網路控制器接收接收信息通知,並使來自遠端網路控制器的接收信息通知在遠端資料通知佇列中排隊。如上所述,這些通知可以不同步地接收並且以任何順序接收。
方法800進一步包括以下步驟:在806處,從整合計算元件上的計算群集接收接收信息通知,並使來自計算群集的接收信息通知在本端無資料通知佇列中排隊。因為從本端計算群集所接收的接收信息通知在與從本端計算群集所接收的發送通知不同的佇列中排隊,所以在等待來自遠端群集的匹配的接收信息通知時,接收信息通知不會被發送信息通知阻斷。因此,方法800進一步包括以下步驟:在808處,在接收到來自計算群集的發送信息通知和來自遠端網路控制器的接收信息通知中的一者之後,但在接收到來自計算群集的發送信息通知和來自遠端網路控制器的接收信息通知中的另一者之前,從本端無資料通知佇列向遠端網路控制器或向另一個遠端網路控制器經由網路控制器發送來自本端計算群集的接收信息通知。
方法800進一步包括以下步驟:在814處,在接收到來自計算群集的發送信息通知和來自遠端網路控制器的接收信息通知中的另一者之後,決定來自計算群集的發送信息通知與來自遠端網路控制器的接收信息通知匹配。在816處,決定它們是否匹配可以基於發送信息通知的連接編號與接收信息通知的連接編號和/或標籤匹配。在匹配之後,方法800包括以下步驟:在818處,從整合計算元件上的記憶體向遠端網路控制器發送資料。發送資料可以包括以下步驟:在820處,基於包含在在本端資料通知佇列中排隊的發送信息通知和在遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊來將資料分段。此分段可以將資料視為線性形狀。如果所儲存的實際資料具有不同的形狀,那麼網路控制器可以將分段映射到實際的資料形狀上。然後,如822處所表示,可以從整合計算元件上的記憶體直接存取資料,這避免了中介設備上的緩存資料儲存器,並有助於減少延遲。同樣地,接收方的網路控制器可以將接收的資料的線性位元組佈置映射到任何形狀的緩存器中以供藉由直線記憶體存取進行寫入,該形狀可以與資料所源自的發送元件上的記憶體的形狀不同。
與當前的系統相比,本文所揭露的示例呈現出各種優點。例如,所揭露的系統提供了具有少量連接、壽命相對較長的連接、相對較大的信息的用於機器學習的成本較低的矽設計,並使用接收器驅動的協定。如上所述,由於信息佇列引擎設計,所揭露的系統也實現了不阻斷和不同步的通訊、邏輯連接上「按順序」進行的信息處理和實體接口上許多並行連接的多工。所揭露的系統也支援低延遲的旗號傳輸,因為在發送旗號時,旗號在本端無資料通知佇列中排隊,而資料在單獨的佇列中排隊。進一步地,在沒有網路控制器緩存器的情況下,所揭露的系統支援將網路封包交付給應用緩存器的接收器實施方式。
即使資料封包不按順序到達,在接收器上沒有重新排序緩存器的情況下,所揭露的系統也進一步支援網路封包的多路徑。與資料封包必須按順序到達的當前系統相比,所揭露的協定使封包能夠不按順序到達。然而,一般而言,使用重新排序緩存器來將封包重新排序。此處,系統設計允許接收器在沒有重新排序緩存器的情況下不按順序接收封包,例如基於包含在所有接收的資料封包中的目的地記憶體位址經由與直接記憶體存取組合的旗號緩存器來進行。
所揭露的系統進一步具有在出口連接之間共用的佇列結構(其中一個記憶體結構跨許多連接共用),並且支援多(端點)中繼段連接,並且可以將資料存在中繼段處。所揭露的系統可以實施基於發送器節點處的每個連接的速度限制器的簡化的擁塞避免協定,其中接收器可以在封包中發送旗標以表明擁塞等級,並且發送器可以藉由節流來減少封包發送的速度以減少擁塞。基於逾時指令,可以自動停止節流。節流可以在出口資料路徑中(例如連接排程器中)進行。除了可程式化的速度以外,所揭露的系統也可以支援每個連接的可程式化窗口,以限制待處理封包的數量。
在一些實施例中,本文所述的方法和過程可以與一個或多個計算元件的計算系統相關聯。詳細而言,此類方法和過程可以被實施為電腦應用程式或服務、應用程式設計介面(API)、程式庫和/或其他的電腦程式產品。
圖9示意性地示出計算系統900的非限制性實施例,計算系統900可以制定上述方法和過程中的一者或多者。計算系統900以簡化形式示出。計算系統900可以採取一個或多個個人電腦、伺服器電腦、平板電腦、家用娛樂電腦、網路計算元件、遊戲元件、行動計算元件、行動通訊元件(例如智慧型手機)和/或計算元件的形式。
計算系統900包括邏輯子系統902和儲存子系統904。計算系統900可以可選地包括顯示子系統906、輸入子系統908、通訊子系統910和/或圖9未示出的其他部件。
邏輯子系統902包括配置為執行指令的一個或多個實體元件。例如,邏輯子系統902可以被配置為執行指令,該等指令是一個或多個應用、服務、程式、常式、程式庫、物件、部件、資料結構或其他邏輯結構的一部分。此類指令可以被實施以執行任務、實施資料類型、轉換一個或多個部件的狀態、實現技術效果或以其他方式達到期望的結果。
邏輯子系統902可以包括配置為執行軟體指令的一個或多個處理器。附加性地或替代性地,邏輯子系統902可以包括配置為執行硬體或韌體指令的一個或多個硬體或韌體邏輯機。邏輯子系統902的處理器可以是單核或多核的,並且在其上執行的指令可以被配置為用於順序、並行和/或分佈式的處理。可選地,邏輯機的個別部件可以被分佈在兩個或更多個單獨的元件之間,該等元件可以位在遠端和/或配置為用於協調處理。邏輯子系統902的方面可以由以雲端計算配置來配置的遠端可存取的聯網計算元件來虛擬化和執行。
儲存子系統904包括配置為保持由邏輯機可執行的指令的一個或多個實體元件,以實施本文所述的方法和過程。在此類方法和過程被實施時,儲存子系統904的狀態可以被轉換,以例如保持不同的資料。
儲存子系統904可以包括可移除和/或內建的元件。儲存子系統904可以包括光學記憶體(例如CD、DVD、HD-DVD、藍光光碟等等)、半導體記憶體(例如RAM、EPROM、EEPROM等等)和/或磁性記憶體(例如硬碟機、軟碟機、磁帶驅動器、MRAM等等)等等。儲存子系統904可以包括揮發性、非揮發性、動態、靜態、讀取/寫入、唯讀、隨機存取、順序存取、位置可定址、檔案可定址和/或內容可定址的元件。
將理解,儲存子系統904包括一個或多個實體元件。然而,替代性地,本文所述的指令的方面也可以由實體元件所保持的通訊媒體(例如電磁訊號、光學訊號等等)在有限的持續時間內傳播。
可以將邏輯子系統902和儲存子系統904的方面一起整合成一個或多個硬體邏輯部件。例如,此類硬體邏輯部件可以包括現場可程式化邏輯閘陣列(FPGA)、程式特定和應用特定的積體電路(PASIC/ASIC)、程式特定和應用特定的標準產品(PSSP/ASSP)、系統單晶片(SOC)和複雜可程式化邏輯元件(CPLD)。
用語「模組」、「程式」和「引擎」可以用來描述被實施以執行特定功能的計算系統900的方面。在一些情況下,可以經由執行由儲存子系統904保持的指令的邏輯子系統902來將模組、程式或引擎實體化。將了解,可以根據相同的應用、服務、碼塊、物件、程式庫、常式、API、功能等等將不同的模組、程式和/或引擎實體化。同樣地,相同的模組、程式和/或引擎可以由不同的應用、服務、碼塊、物件、常式、API、功能等等實體化。用語「模組」、「程式」和「引擎」可以包含個別的或群組的可執行檔案、資料檔案、程式庫、驅動器、腳本、資料庫記錄等等。
將理解,本文所使用的「服務」是跨多個使用者通信期可執行的應用程式。服務可以被提供給一個或多個系統部件、程式和/或其他服務。在一些實施方式中,服務可以在一個或多個伺服器-計算元件上運行。
在包括時,顯示子系統906可以用來呈現由儲存子系統904保持的資料的視覺表示。此視覺表示可以採取圖形使用者介面(GUI)的形式。在本文所述的方法和過程改變由儲存機所保持的資料並因此轉換儲存機的狀態時,顯示子系統906的狀態可以同樣地被轉換以視覺地表示底層資料的改變。顯示子系統906可以包括利用實際上任何類型的技術的一個或多個顯示元件。此類顯示元件可以與邏輯子系統902和/或儲存子系統904在共用的外殼中組合,或此類顯示元件可以是周邊顯示元件。
通訊子系統910可以被配置為將計算系統900與一個或多個其他的計算元件通訊耦接。通訊子系統910可以包括與一個或多個不同的通訊協定相容的有線和/或無線的通訊元件。作為非限制性示例,通訊子系統可以被配置為用於經由無線電話網路或者有線或無線的區域網路或廣域網路進行通訊。在一些實施例中,通訊子系統可以允許計算系統900向和/或從其他元件經由諸如網際網路之類的網路來發送和/或接收信息。
另一個示例提供了一種整合計算元件,該整合計算元件包括:一個或多個計算群集;以及一個或多個網路控制器,每個網路控制器包括:本端資料通知佇列,被配置為使源自該整合計算元件上的該等計算群集中的一者或多者的發送信息通知排隊;遠端資料通知佇列,被配置為使源自一個或多個遠端整合計算元件上的一個或多個遠端網路控制器的接收信息通知排隊;本端無資料通知佇列,被配置為使源自該整合計算元件上的該一個或多個計算群集的接收信息通知排隊;以及連接排程器,被配置為在該本端資料通知佇列中的發送信息通知與該遠端資料通知佇列中的接收信息通知匹配時,對來自該整合計算元件上的記憶體的資料的發送進行排程,並且對來自該本端無資料通知佇列的接收信息通知的發送進行排程。該網路控制器可以附加性地或替代性地被配置為藉由直接存取該記憶體來發送來自該記憶體的資料。該等發送信息通知中的每一者可以附加性地或替代性地包括:連接編號、源記憶體位址、信息大小、發送標籤和發送完成旗號。該等接收信息通知中的每一者可以附加性地或替代性地包括:連接編號、目的地記憶體位址、接收緩存器大小、接收標籤和接收完成旗號。每個網路控制器可以附加性地或替代性地被配置為基於該本端資料通知佇列中的發送信息通知的連接編號與該接收信息通知的連接編號匹配,來決定該發送信息通知何時與該遠端資料通知佇列中的該接收信息通知匹配。該複數個網路控制器中的每一者可以附加性地或替代性地被配置為連接到複數個遠端網路控制器。該整合計算元件可以附加性地或替代性地包括:旗號緩存器,被配置為保持來自源自該一個或多個遠端網路控制器的該等接收信息通知的旗號。該整合計算元件可以附加性地或替代性地包括:分段器,被配置為在發送來自該整合計算元件上的該記憶體的該資料之前,基於包含在該本端資料通知佇列中排隊的該等發送信息通知和在該遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊,來對該資料進行分段。
另一個示例在包括一個或多個計算群集和一個或多個網路控制器的整合計算元件上提供了一種在該複數個網路控制器中的網路控制器上制定的方法,該方法包括以下步驟:從該整合計算元件上的計算群集接收發送信息通知,並使來自該計算群集的該發送信息通知在本端資料通知佇列中排隊;從遠端整合計算元件上的遠端網路控制器接收接收信息通知,並使來自該遠端網路控制器的該接收信息通知在遠端資料通知佇列中排隊;從該整合計算元件上的該計算群集接收接收信息通知,並使來自該計算群集的該接收信息通知在本端無資料通知佇列中排隊;在接收到來自該計算群集的該發送信息通知和來自該遠端網路控制器的該接收信息通知中的一者之後,但在接收到來自該計算群集的該發送信息通知和來自該遠端網路控制器的該接收信息通知中的另一者之前,向該遠端網路控制器或向另一個遠端網路控制器經由該網路控制器發送來自該本端計算群集的該接收信息通知;以及在接收到來自該計算群集的該發送信息通知和來自該遠端網路控制器的該接收信息通知中的另一者之後,決定來自該計算群集的該發送信息通知與來自該遠端網路控制器的該接收信息通知匹配,以及向該遠端網路控制器發送來自該整合計算元件上的記憶體的資料。發送來自該記憶體的資料可以附加性地或替代性地包括以下步驟:直接存取該整合計算元件上的記憶體。該方法可以附加性地或替代性地包括以下步驟:從一個或多個附加遠端整合計算元件上的一個或多個附加遠端網路控制器接收附加接收信息通知,並使來自該等附加遠端網路控制器的該等接收信息通知在該遠端資料通知佇列中排隊。該方法可以附加性地或替代性地包括以下步驟:將來自源自該一個或多個遠端網路控制器的該等接收信息通知的旗號保持在旗號緩存器中。該方法可以附加性地或替代性地包括以下步驟:在發送來自該整合計算元件上的該記憶體的該資料之前,基於包含在該本端資料通知佇列中排隊的該等發送信息通知和在該遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊,來對該資料進行分段。
另一個示例提供了一種計算系統,該計算系統包括:一個或多個整合計算元件,每個整合計算元件包括:一個或多個計算群集;以及複數個網路控制器,每個網路控制器包括:本端資料通知佇列,被配置為使源自該整合計算元件上的該等計算群集中的一者或多者的發送信息通知排隊;遠端資料通知佇列,被配置為使源自該複數個整合計算元件中的一個或多個其他整合計算元件上的一個或多個遠端網路控制器的接收信息通知排隊;本端無資料通知佇列,被配置為使源自該整合計算元件上的該一個或多個群集的接收信息通知排隊;以及連接排程器,被配置為在該本端資料通知佇列中的發送信息通知與該遠端資料通知佇列中的接收信息通知匹配時,對來自該整合計算元件上的記憶體的資料的發送進行排程,並且對來自該本端無資料通知佇列的接收信息通知的發送進行排程。每個整合計算元件的每個網路控制器可以附加性地或替代性地被配置為藉由直接存取該整合計算元件的該記憶體,來發送來自該整合計算元件的該記憶體的資料,該網路控制器位於該整合計算元件上。該等發送信息通知中的每一者可以附加性地或替代性地包括:連接編號、源記憶體位址、信息大小、發送標籤和發送完成旗號。該等接收信息通知中的每一者可以附加性地或替代性地包括連接編號、目的地記憶體位址、接收緩存器大小、接收標籤和接收完成旗號。每個網路控制器可以附加性地或替代性地被配置為基於該本端資料通知佇列中的該發送信息通知的連接編號與來自該遠端資料通知佇列中的接收信息通知的連接編號匹配,來決定該發送信息通知何時與該遠端資料通知佇列中的該接收信息通知匹配。每個網路控制器可以附加性地或替代性地包括:分段器,被配置為在發送來自該整合計算元件上的該記憶體的該資料之前,基於包含在該本端資料通知佇列中排隊的該等發送信息通知和在該遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊,來對該資料進行分段。每個網路控制器可以附加性地或替代性地包括:旗號緩存器,被配置為保持來自源自該一個或多個遠端網路控制器的該等接收信息通知的旗號。
將了解,本文所描述的配置和/或方法本質上是示例性的,並且這些具體的實施例或示例不要以限制的角度來考慮,因為許多變型是可能的。本文所描述的具體常式或方法可以代表任何數量的處理策略中的一者或多者。因此,所說明和/或描述的各種行為可以以所說明和/或描述的序列、以其他序列、並行地執行或者省略。同樣地,可以改變上述過程的順序。
本揭示內容的標的包括本文所揭露的各種過程、系統和配置以及其他的特徵、功能、行為和/或性質的所有新穎和非顯而易見的組合和子組合,以及其任何和所有的等效物。
100:資料網路
102:交換佈置
200:計算群組
202:整合計算元件
204:連接
300:整合計算元件
301:半導體裸晶封裝
304:網路控制器
306:記憶體
402:計算元件-0
404:計算元件-1
406:發送器-0
408:接收器-0
410:發送器-1
412:接收器-1
414:傳輸層連接
500:時序圖
502:第一整合計算元件
504:第二整合計算元件
506:網路連接
508:發送器計算群集
510:發送器網路控制器
512:接收器網路控制器
514:接收器計算群集
516:信息交換
518:信息交換
520:信息交換
522:信息交換
524:信息交換
526:信息交換
528:信息交換
530:信息交換
532:信息交換
534:信息交換
600:網路控制器
602:信息佇列引擎
604:本端無資料通知佇列
606:本端資料通知佇列
608:遠端資料通知佇列
610:出口側
614:傳輸層連接N Tx
616:傳輸層連接N Rx
617:佇列表項儲存器
618:描述符分段器
620:待處理的描述符的儲存器
624:封包描述符
626:連接排程器
628:封包出口資料路徑
630:封包入口資料路徑
632:傳輸層連接接收狀態機
634:操作
636:旗號緩存器
638:操作
700:佇列表項儲存器
702:待處理的表項
704:待處理的表項
800:方法
802:步驟
804:步驟
806:步驟
808:步驟
814:步驟
816:步驟
818:步驟
820:步驟
822:步驟
900:計算系統
902:邏輯子系統
904:儲存子系統
906:顯示子系統
908:輸入子系統
910:通訊子系統
110a:計算群組
110b:計算群組
110c:計算群組
110d:計算群組
圖1示出方塊圖,其說明通訊網路的示例網路拓撲結構。
圖2示出方塊圖,其說明通訊網路中的整合計算元件的群組的示例拓撲結構。
圖3示出示例整合計算元件的示意表示。
圖4示出圖解,其說明兩個整合計算元件之間的示例通訊流。
圖5示出時間流程圖,其說明示例通訊協定。
圖6示出示例網路控制器的方塊圖。
圖7示出示例通知佇列的方塊圖。
圖8示出流程圖,其說明在整合計算元件上進行通訊的示例方法。
圖9示出示例計算系統的方塊圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記)
無
100:資料網路
102:交換佈置
110a:計算群組
110b:計算群組
110c:計算群組
110d:計算群組
Claims (20)
- 一種整合計算元件,包括: 一個或多個計算群集;以及 一個或多個網路控制器,每個網路控制器包括: 一本端資料通知佇列,被配置為使源自該整合計算元件上的該等計算群集中的一者或多者的發送信息通知排隊; 一遠端資料通知佇列,被配置為使源自一個或多個遠端整合計算元件上的一個或多個遠端網路控制器的接收信息通知排隊; 一本端無資料通知佇列,被配置為使源自該整合計算元件上的該一個或多個計算群集的接收信息通知排隊;以及 一連接排程器,被配置為在該本端資料通知佇列中的一發送信息通知與該遠端資料通知佇列中的一接收信息通知匹配時,對來自該整合計算元件上的記憶體的資料的發送進行排程,並且對來自該本端無資料通知佇列的接收信息通知的發送進行排程。
- 如請求項1所述的整合計算元件,其中該網路控制器被配置為藉由直接存取該記憶體來從該記憶體發送資料。
- 如請求項1所述的整合計算元件,其中該等發送信息通知中的每一者包括一連接編號、一源記憶體位址、一信息大小、一發送標籤和一發送完成旗號。
- 如請求項1所述的整合計算元件,其中該等接收信息通知中的每一者包括一連接編號、一目的地記憶體位址、一接收緩存器大小、一接收標籤和一接收完成旗號。
- 如請求項1所述的整合計算元件,其中每個網路控制器被配置為基於該本端資料通知佇列中的一發送信息通知的一連接編號與該接收信息通知的一連接編號匹配,來決定該發送信息通知何時與該遠端資料通知佇列中的該接收信息通知匹配。
- 如請求項1所述的整合計算元件,其中該複數個網路控制器中的每一者被配置為連接到複數個遠端網路控制器。
- 如請求項1所述的整合計算元件,進一步包括:一旗號緩存器,被配置為保持來自源自該一個或多個遠端網路控制器的該等接收信息通知的旗號。
- 如請求項1所述的整合計算元件,進一步包括:一分段器,被配置為在發送來自該整合計算元件上的該記憶體的該資料之前,基於包含在該本端資料通知佇列中排隊的該等發送信息通知和在該遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊,來對該資料進行分段。
- 一種在一個或多個網路控制器中的一網路控制器上制定的方法,一整合計算元件包括一個或多個計算群集和該複數個網路控制器,該方法包括以下步驟: 從該整合計算元件上的一計算群集接收一發送信息通知,並使來自該計算群集的該發送信息通知在一本端資料通知佇列中排隊; 從一遠端整合計算元件上的一遠端網路控制器接收一接收信息通知,並使來自該遠端網路控制器的該接收信息通知在一遠端資料通知佇列中排隊; 從該整合計算元件上的該計算群集接收一接收信息通知,並使來自該計算群集的該接收信息通知在一本端無資料通知佇列中排隊; 在接收到來自該計算群集的該發送信息通知和來自該遠端網路控制器的該接收信息通知中的一者之後,但在接收到來自該計算群集的該發送信息通知和來自該遠端網路控制器的該接收信息通知中的另一者之前,向該遠端網路控制器或向另一個遠端網路控制器經由該網路控制器發送來自該本端計算群集的該接收信息通知;以及 在接收到來自該計算群集的該發送信息通知和來自該遠端網路控制器的該接收信息通知中的另一者之後,決定來自該計算群集的該發送信息通知與來自該遠端網路控制器的該接收信息通知匹配,以及 向該遠端網路控制器發送來自該整合計算元件上的記憶體的資料。
- 如請求項9所述的方法,其中發送來自該記憶體的資料包括以下步驟:直接存取該整合計算元件上的記憶體。
- 如請求項9所述的方法,進一步包括以下步驟:從一個或多個附加遠端整合計算元件上的一個或多個附加遠端網路控制器接收附加接收信息通知,並使來自該等附加遠端網路控制器的該等接收信息通知在該遠端資料通知佇列中排隊。
- 如請求項9所述的方法,進一步包括以下步驟:將來自源自該一個或多個遠端網路控制器的該等接收信息通知的旗號保持在一旗號緩存器中。
- 如請求項9所述的方法,進一步包括以下步驟:在發送來自該整合計算元件上的該記憶體的該資料之前,基於包含在該本端資料通知佇列中排隊的該等發送信息通知和在該遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊,來對該資料進行分段。
- 一種計算系統,包括: 一個或多個整合計算元件,每個整合計算元件包括: 一個或多個計算群集;以及 複數個網路控制器,每個網路控制器包括: 一本端資料通知佇列,被配置為使源自該整合計算元件上的該等計算群集中的一者或多者的發送信息通知排隊; 一遠端資料通知佇列,被配置為使源自該複數個整合計算元件中的一個或多個其他整合計算元件上的一個或多個遠端網路控制器的接收信息通知排隊; 一本端無資料通知佇列,被配置為使源自該整合計算元件上的該一個或多個群集的接收信息通知排隊;以及 一連接排程器,被配置為在該本端資料通知佇列中的一發送信息通知與該遠端資料通知佇列中的一接收信息通知匹配時,對來自該整合計算元件上的記憶體的資料的發送進行排程,並且對來自該本端無資料通知佇列的接收信息通知的發送進行排程。
- 如請求項14所述的計算系統,其中每個整合計算元件的每個網路控制器被配置為藉由直接存取該整合計算元件的該記憶體,來發送來自該整合計算元件的該記憶體的資料,該網路控制器位於該整合計算元件上。
- 如請求項14所述的計算系統,其中該等發送信息通知中的每一者包括一連接編號、一源記憶體位址、一信息大小、一發送標籤和一發送完成旗號。
- 如請求項14所述的計算系統,其中該等接收信息通知中的每一者包括一連接編號、一目的地記憶體位址、一接收緩存器大小、一接收標籤和一接收完成旗號。
- 如請求項14所述的計算系統,其中每個網路控制器被配置為基於該本端資料通知佇列中的該發送信息通知的一連接編號與來自該遠端資料通知佇列中的接收信息通知的一連接編號匹配,來決定該發送信息通知何時與該遠端資料通知佇列中的該接收信息通知匹配。
- 如請求項14所述的計算系統,其中每個網路控制器進一步包括:一分段器,被配置為在發送來自該整合計算元件上的該記憶體的該資料之前,基於包含在該本端資料通知佇列中排隊的該等發送信息通知和在該遠端資料通知佇列中排隊的接收信息通知中的一者或多者中的大小資訊,來對該資料進行分段。
- 如請求項14所述的計算系統,其中每個網路控制器進一步包括:一旗號緩存器,被配置為保持來自源自該一個或多個遠端網路控制器的該等接收信息通知的旗號。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/199,209 US11886938B2 (en) | 2021-03-11 | 2021-03-11 | Message communication between integrated computing devices |
US17/199,209 | 2021-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202236104A true TW202236104A (zh) | 2022-09-16 |
Family
ID=81306895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111104687A TW202236104A (zh) | 2021-03-11 | 2022-02-09 | 整合計算元件之間的信息通訊 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11886938B2 (zh) |
EP (1) | EP4305524A1 (zh) |
CN (1) | CN117015764A (zh) |
TW (1) | TW202236104A (zh) |
WO (1) | WO2022192026A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220135048A (ko) * | 2021-03-29 | 2022-10-06 | 삼성전자주식회사 | 버스를 통해 자원을 공유하기 위한 장치 및 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430850A (en) | 1991-07-22 | 1995-07-04 | Massachusetts Institute Of Technology | Data processing system with synchronization coprocessor for multiple threads |
US6594701B1 (en) | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
US7774374B1 (en) * | 2004-03-02 | 2010-08-10 | Qlogic Corporation | Switching systems and methods using wildcard searching |
US7339899B2 (en) | 2004-09-30 | 2008-03-04 | Microsoft Corporation | Method and system for network emulation using packet reorder emulation techniques |
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 |
US20100162265A1 (en) * | 2008-12-23 | 2010-06-24 | Marco Heddes | System-On-A-Chip Employing A Network Of Nodes That Utilize Logical Channels And Logical Mux Channels For Communicating Messages Therebetween |
EP2273378B1 (en) * | 2009-06-23 | 2013-08-07 | STMicroelectronics S.r.l. | Data stream flow controller and computing system architecture comprising such a flow controller |
US9608922B2 (en) | 2011-12-23 | 2017-03-28 | Intel Corporation | Traffic control on an on-chip network |
US10212101B2 (en) | 2014-01-14 | 2019-02-19 | Nant Holdings Ip, Llc | Low level provisioning of network fabrics |
US9614939B2 (en) * | 2014-05-08 | 2017-04-04 | Google Inc. | Network timeouts using intentionally delayed transmissions |
US11934308B2 (en) * | 2019-04-01 | 2024-03-19 | Wave Computing, Inc. | Processor cluster address generation |
US11520626B2 (en) * | 2020-09-22 | 2022-12-06 | Arm Limited | Queueing techniques for a shared computer resource |
-
2021
- 2021-03-11 US US17/199,209 patent/US11886938B2/en active Active
-
2022
- 2022-02-09 TW TW111104687A patent/TW202236104A/zh unknown
- 2022-03-01 WO PCT/US2022/018234 patent/WO2022192026A1/en active Application Filing
- 2022-03-01 EP EP22716120.5A patent/EP4305524A1/en active Pending
- 2022-03-01 CN CN202280020407.3A patent/CN117015764A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11886938B2 (en) | 2024-01-30 |
US20220291976A1 (en) | 2022-09-15 |
WO2022192026A1 (en) | 2022-09-15 |
CN117015764A (zh) | 2023-11-07 |
EP4305524A1 (en) | 2024-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11991072B2 (en) | System and method for facilitating efficient event notification management for a network interface controller (NIC) | |
US7870306B2 (en) | Shared memory message switch and cache | |
USRE47756E1 (en) | High performance memory based communications interface | |
US6948004B2 (en) | Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism | |
US10880204B1 (en) | Low latency access for storage using multiple paths | |
US6775719B1 (en) | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network | |
US20020071450A1 (en) | Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network | |
EP1883240B1 (en) | Distributed multi-media server system, multi-media information distribution method, program thereof, and recording medium | |
US8576864B2 (en) | Host ethernet adapter for handling both endpoint and network node communications | |
CN112953967A (zh) | 网络协议卸载装置和数据传输系统 | |
TWI411264B (zh) | 非阻塞式網路系統及其封包仲裁方法 | |
CN116471242A (zh) | 基于rdma的发送端、接收端、数据传输系统及方法 | |
TW202236104A (zh) | 整合計算元件之間的信息通訊 | |
US20230239351A1 (en) | System and method for one-sided read rma using linked queues | |
CN117880197A (zh) | 汇聚以实现拥塞管理 |