TWI473012B - 具分散內嵌式交換之多處理運算技術 - Google Patents
具分散內嵌式交換之多處理運算技術 Download PDFInfo
- Publication number
- TWI473012B TWI473012B TW99135050A TW99135050A TWI473012B TW I473012 B TWI473012 B TW I473012B TW 99135050 A TW99135050 A TW 99135050A TW 99135050 A TW99135050 A TW 99135050A TW I473012 B TWI473012 B TW I473012B
- Authority
- TW
- Taiwan
- Prior art keywords
- processing
- packet
- routing
- transport packet
- transport
- Prior art date
Links
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/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係有關於具分散內嵌式交換之多處理運算技術。
一多處理電腦系統是具有多個中央處理單元(CPU)的電腦系統。一多處理電腦系統通常具有大量內嵌式處理元件,包括處理器、共享記憶體、高速裝置(例如,主機快取記憶體及圖形控制器)、及晶片上整合的周邊輸入/輸出(I/O)組件(例如,網路介面控制器、通用串列匯流排埠、快閃記憶體、及音訊裝置)。一縱橫交換鍵(crossbar switch)通常用於鏈接及仲裁處理器對其它內嵌式處理元件的存取。實體約束限制與一縱橫交換鍵的連接數。雖然多個縱橫交換鍵已用來增加連接數,但此類配置通常難以設計且增加多處理電腦系統中的組件數。
需要的是用以處理多處理電腦系統中的通訊之改良系統及方法。
依據本發明之一實施例,係特地提出一種由一電腦中的內嵌式實體處理元件執行的方法,該方法包含,在該等處理元件的一第一處理元件執行以下步驟:接收一傳送封包,該傳送封包依據一傳送協定格式化的且包含(i)依據一酬載協定格式化的一封裝酬載封包及(ii)包含路由資訊之一傳送封包標頭;由該路由資訊判定是否該傳送封包的目的地是該第一處理元件;響應於該傳送封包的目的地不是該第一處理元件之判定,基於該路由資訊將該傳送封包自該第一處理元件發送至該等處理元件中的一第二處理元件;及響應於該傳送封包的目的地是該第一處理元件之判定,解封裝該傳送封包中的該酬載封包,並處理該解封裝的酬載封包。
第1圖是一多處理電腦系統之一實施例的複數內嵌式處理元件的一方塊圖。
第2圖是依據發明之一實施例由一多處理電腦系統的一內嵌式處理元件實施之一方法的一實施例的一流程圖。
第3圖是包括主機CPU之一多處理電腦系統的一實施例的一方塊圖,其中各別主機介面組配來運作為一分散內嵌式交換的次組件。
第4圖是一CPU的一實施例的一方塊圖,其中多個內嵌式處理元件組配來分別運作為一分散內嵌式交換的次組件。
第5圖是一路由引擎的一實施例的一方塊圖。
第6圖是一傳送封包的一實施例的一圖解視圖。
第7圖是第5圖該傳送封包元件的一圖解視圖。
第8圖是透過一隧道鏈路來使傳送封包及PCIe封包交換之一電腦系統的一對內嵌式處理元件的一實施例的一方塊圖。
第9圖是依據發明的一實施例之一內嵌式處理元件處理一異動的一方法的一實施例的一流程圖。
第10圖是依據發明的一實施例之一內嵌式處理元件處理一異動的一方法的一實施例的一流程。
第11圖是依據發明的一實施例之一內嵌式處理元件處理一傳送封包的一方法的一實施例的一流程圖。
第12圖是依據發明的一實施例之一多處理器電腦系統的一實施例的一方塊圖。
第13圖是依據發明的一實施例之一多處理器電腦系統的一實施例的一方塊圖。
在下面說明中,相同的參考數字用來顯示相同的元件。此外,圖式欲以一圖示方式來說明示範實施例的主要特徵。圖式並不欲描繪實際實施例的每一特徵,所描繪元件的相對尺寸不按比例繪製。
一「電腦」是依據臨時或永久地儲存於電腦可讀取媒體上的電腦可讀取指令來處理資料的任一機器、裝置、或設備。一「電腦作業系統」是一電腦系統的一軟體組件,其管理及協調任務效能與運算及硬體資源的共享。一「軟體應用程式」(亦稱為軟體、應用程式、電腦軟體、電腦應用程式、程式、及電腦程式)是電腦可解譯及執行來執行一或多個特定任務之一組指令。一「資料檔案」是持久儲存一軟體應用程式使用的資料之一資訊區塊。
一中央處理單元(CPU)是可執行軟體應用程式的一電子電路。一CPU可包括一或多個處理器(或處理核心)。一「主機CPU」是控制或提供其它裝置(包括I/O裝置及其它周邊裝置)的服務之一CPU。
「處理器」一詞指通常在一單一晶片上的一電子電路,其執行操作,包括但不限於資料處理操作、控制操作、或資料處理操作與控制操作二者。
一「內嵌式處理元件」是一多處理電腦系統的一整合組件,其能夠處理資料。內嵌式處理元件的範例包括處理器、主機介面元件(例如,記憶體控制器及I/O中樞控制器)、整合高速裝置(例如,圖形控制器)、及晶片上整合的周邊輸入/輸出(I/O)組件(例如,網路介面控制器、通用串列匯流排埠、快閃記憶體、及音訊裝置)。
「機器可讀取媒體」一詞指能夠攜載一機器(例如,一電腦)可讀取的資訊之任一實體媒體。適於有形地實施這些指令及資料的儲存裝置包括但不限於,所有形式的非依電性電腦可讀取記憶體,包括例如半導體記憶體裝置,諸如EPROM、EEPROM、及快閃記憶體裝置,磁碟,諸如內部硬碟及可移除硬碟、磁-光碟、DVD-ROM/RAM,及CD-ROM/RAM。
「主機快取記憶體」指儲存主記憶體中資料的副本以供減小CPU的潛時存取之高速記憶體。主機快取記憶體可以是一單一記憶體或一分散記憶體。舉例而言,一主機快取記憶體可存在於下列一或多個位置中:在CPU晶片上;在記憶體控制器前;及在一I/O中樞中。所有這些快取能同調維持且用作DMA操作的來源/目的地。
一「端點」是一通訊鏈路的一端上一通訊實體暴露出的一介面。
一「端點裝置」是一通訊鏈路的一端上之一實體硬體實體。
一「I/O裝置」是一實體硬體實體,其連接至一主機CPU但與主機CPU或I/O中樞分開及分離。一I/O裝置可或可不位於與主機CPU或I/O中樞相同的電路板上。一I/O裝置可或可不位於與主機CPU或I/O中樞相同的硬體晶粒或封裝上。
一「封包」及一「異動」在文中同義使用來指依據一資料傳輸協定格式化及自一來源傳輸至一目的地之一資料單元。一封包/異動通常包括一標頭、一酬載、及誤差控制資訊。
如文中使用,「包括」一詞意思是包括但不限於。
本文描述的實施例提供用以處理多處理晶片結構間的通訊之改良系統及方法,多處理晶片結構能夠簡化平台設計、減小平台開發成本及入市時間、及增強軟體與硬體再用以提高靈活性、規模及增加功能。在這些實施例中,內嵌式處理元件實施一動態可重新組配分散交換來路由安排異動。以此方式,不需要外部交換(例如,縱橫交換鍵及匯流排架構)。這些實施例中的一些實施例改變一封裝協定,其封裝標準及專有協定而不考慮協定的同調性。以此方式,內嵌式處理元件可路由安排不同同調域的異動、同調協定異動(例如,共享記憶體異動)、及在相同鏈路上的非同調協定異動(例如,I/O異動)。
第1圖繪示一多處理電腦系統10,其包括複數內嵌式處理元件12、14、16、18、20、22,它們中的每一個包括一各別路由引擎24、26、28、30、32、34。內嵌式處理元件12-22的相鄰處理元件由各別鏈接36、38、40、42、44、46、48、50、52直接連接。
操作中,路由引擎24-34運作為一動態可重新組配分散交換的次組件,其能夠透過經由鏈接36-52的各種不同路徑來將封包自一內嵌式源處理元件路由安排至一內嵌式目的地處理。舉例而言,第1圖繪示自內嵌式處理元件12至內嵌式處理元件22的兩示範封包路由路徑。第一封包路由路徑(其用實線箭頭指出)透過鏈接36、44、46、及52穿過內嵌式處理元件12、14、16、及22。穿過內嵌式處理元件12-22的其它封包路由路徑是可能的。因而,封包可在內嵌式處理元件12-22中的任兩處理元件間路由安排而不需要任一額外硬體,諸如一縱橫交換晶片、匯流排、或其它互連元件。
第2圖繪示一方法的一實施例,多處理電腦系統10的內嵌式處理元件12-22中的每一者透過此方法運作為一分散交換的一內嵌式次組件。此方法在內嵌式處理元件12-22的一第一處理元件的脈絡中描述,接收一傳送封包並決定是使用該傳送封包抑或將其發送至內嵌式處理元件12-22的一第二處理元件。第一及第二內嵌式處理元件可為傳送封包之路由路徑上的中間節點或目的地節點。
依據第2圖的方法,第一內嵌式處理元件接收一傳送封包,該傳送封包依據傳送協定格式化且包括(i)依據一酬載協定格式化的一封裝酬載封包及(ii)包含路由資訊的一傳送封包標頭(第2圖,區塊60)。第一內嵌式處理元件由路由資訊判定是否傳送封包的目的地是第一內嵌式處理元件(亦即,自身)(第2圖,區塊62)。響應於傳送封包的目的地不是第一內嵌式處理元件之判定,第一內嵌式處理元件基於路由資訊將傳送封包自第一內嵌式處理元件發送至內嵌式處理元件的一第二處理元件(第2圖,區塊64)。在此過程中,第一內嵌式處理元件可由路由資訊直接決定,或藉由將路由資訊作為一路由決策函數的輸入用於與第一內嵌式處理元件相關聯之一路由表來決定,與第二內嵌式處理元件對應的下一躍點位址,這視是使用基於來源的路由安排抑或基於識別符的路由安排而定。響應於傳送封包的目的地是內嵌式處理元件之決定,第一內嵌式處理元件自傳送封包解封裝酬載封包,並處理解封裝酬載封包(第2圖,區塊66)。
在一些實施例中,路由決策函數將路由資訊應用到路由表的一索引。在其它實施例中,路由決策函數用產生一輸出值的一函數(例如,f
(識別符,QoS值,N個可能出口埠中之一者的出口埠負載...))來處理路由資訊,該輸出值應用於路由表。在一些實施例中,該標頭的資訊與電腦系統硬體中的資訊結合起來決定一最佳出口埠,進而加入適當傳輸佇列,佇列當中視如何區分流量而定可有一或多個出口埠。
第3圖繪示多處理電腦系統10的一實施例70,其包括兩主機CPU 72、74。主機CPU 72、74中的每一者包括一或多個處理核心76、78、一各別主機快取記憶體80、82、一各別內部網目84、86、及一各別主機介面88、90。
內嵌式主機介面88、90將主機CPU 72及主機CPU 74互連。主機介面88亦將主機CPU 72及主機CPU 74連接至端點裝置92。內嵌式主機介面88、90中的每一者包括一各別路由引擎94、96,其組配來運作為如上所述一分散交換的一內嵌式次組件。主機介面88、90中的每一者可透過各種不同互連機制來實施。
內部網目84、86中的每一者由主機CPU 72、74的各別內嵌式組件(亦即,處理核心76、78,主機快取記憶體80、82,及主機介面88、90)之間各別一組直接互連組成。內部網目84、86可透過各種直接互連技術中的任一種技術來實施。由於內嵌式路由引擎94、96能夠在這些內嵌式組件間路由安排封包,因而不需要用諸如縱橫交換鍵及匯流排架構之分離交換組件來實施內部網目84、86。在直接連接各別對處理元件的鏈路上將傳送封包自處理元件的發送處理元件發送至處理元件的接收處理元件而不用任何干擾分離裝置。
第4圖繪示主機CPU 72的一示範實施例98,其包括主機介面88的一實施例100,主機介面88具有一內嵌式記憶體控制器中樞102及一內嵌式I/O控制器中樞104,它們由內部網目84的一實施例106鏈接。
記憶體控制器中樞102經由各別同調互連(例如,一前側匯流排或一串列互連)將主機CPU 98連接至電腦系統70的記憶體組件,各別同調互連用來經由一同調協定交換資訊。
I/O控制器中樞104將記憶體控制器中樞102連接至較低速裝置,包括諸如端點裝置92之周邊I/O裝置。一般地,周邊I/O裝置依據一周邊匯流排協定來與I/O控制器中樞通訊。一些周邊裝置可依據諸如PCI通訊協定、PCIe通訊協定,及聚合式(c)PCIe協定之一標準周邊通訊協定來與I/O控制器中樞來通訊。周邊匯流排協定通常是包括異動、路由、鏈路及實體層的多層通訊協定。異動層通常包括各不同協定引擎,它們形成、排序、及處理具有系統互連標頭的封包。示範類型的異動層協定引擎包括一同調引擎、一中斷引擎、及一I/O引擎。封包被提供至一路由層,該路由層例如根據路由層中的路由表使用基於目的地的路由安排將封包自一來源路由安排至一目的地。路由層將封包送至一鏈路層。該鏈路層可靠地傳遞資料並提供兩直接相連主體間的流程控制。鏈路層亦使裝置間的一實體通道能夠被虛擬化(例如,成多個訊息類別及虛擬網路),這允許實體通道在多個虛擬通道中多工化。實體層例如經由一點對點互連而在兩直接相連主體間傳遞資訊。
主機CPU 98之內嵌式處理元件102、104中的路由引擎110、112、114能夠依據一傳送協定來在主機CPU 98的內嵌式組件與多處理電腦系統70的其它主機CPU間進行路由安排。在第4圖所述的實施例中,傳送協定異動116包括識別傳送協定的一識別符(ID) 118、路由資訊120、及一酬載122,該酬載122包括封裝的酬載協定封包(例如,一PCIe封包或一(c)PCIe封包或一同調協定異動)。
第5圖繪示路由引擎24-34的一實施例,其包括一各別路由表119及用以在內嵌式處理元件12-22間路由安排封包之方法121。路由表119及方法121可由軟體來程式化成依據一指定路由協定(例如,基於識別符的路由或基於來源的路由)來路由安排封包。軟體列舉多處理器電腦系統10的分散交換能力組件。藉由設定及管理路由引擎政策、試探、及路由引擎所使用的異動「濾波器」,軟體亦組配及啟用路由引擎來決定是否對一指定封包使用傳送協定。可定義一些不同濾波器方案。舉例而言,在一些實施例中,對記憶體位址範圍(例如,實體、虛擬、及空間ID記憶體位址範圍)執行濾波,記憶體位址範圍可組配來面向特定硬體(例如,一PCIe路由組件、一記憶體控制器、或另一處理器)。在其它實施例中,對異動屬性(例如,同調域ID,保護鍵、虛擬機器識別符、或專有屬性)執行濾波。服務品質(QoS)可在異動封包的起點決定,或其可內嵌於傳送協定中且用作一仲裁過程的一不透明輸入,該仲裁過程由往目的地的路徑上一中間內嵌式處理組件的一路由引擎執行。
路由引擎117的一些實施例依據一傳送協定來路由安排異動,該傳送協定封裝所有類型的資料傳輸協定,包括標準及專有協定,而不考慮協定的同調。以此方式,內嵌式交換元件可路由安排不同同調域間的異動及可路由安排相同鏈路上的同調協定異動(例如,共享記憶體異動)與非同調協定異動(例如,I/O異動)。
第6圖繪示一封包116的一示範實施例124的流動,該封包依據文中稱為「隧道協定」之傳送協定的一實施例來格式化,隧道協定是一示範傳送協定,對應於PCIe協定的一增加形態(例如,參見2006年12月20日PCI-EXPRESSTM
基本規範版本2.0,其整個併入文中以供參考)。隧道協定封包(TPP) 124的流動包括實體層成框126及128、一資料鏈路層循環冗餘效驗碼(LCRC)130、及包含隧道封包元資料134及隧道封包資料136之一隧道封包層132。TPP類似於PCIe異動層封包(TLP)。TPP流動與PCIe封包流動之間的不同之處是:
● 隧道協定封包使用一特定協定隧道協定層來代替PCIe異動層。
● 隧道封包使用一簡化資料鏈路層。資料鏈路層的封包完整部分未改變(LCRC處理)。資料鏈路層的可靠性及流動控制層面被移除(序列號欄位重用作隧道封包元資料)。
● 實體層被略微修改成提供一機制來識別隧道協定封包。
第7圖繪示隧道協定封包(TPP) 124的隧道封包層元件。TPP包括一隧道協定ID欄位138、一TPP元資料欄位140、及多個TPP資料DWORD欄位142、144、146。隧道協定ID欄位138是一個3位元欄位,其識別哪一隧道與一隧道封包相關聯。舉例而言,隧道協定ID欄位可用識別下列協定:PCI、PCIe、QPI、超傳輸、及隧道協定中的任一者之一值編碼。在所說明實施例中,隧道協定ID值在1到7之間(包含1、7在內)。TPP元資料欄位140是一個12位元欄位,其提供有關TPP 124的資訊。對此欄位的定義是隧道特有的。一TPP由鍵入TPP資料DWORD欄位142、144、146中之TPP資料的整數個DWORD組成。這些DWORD的佈局及使用是隧道特有的。一TPP不需要有任一TPP資料及可僅由TPID及TPP元資料組成。
第8圖是一示範機制的一實施例的一方塊圖,TPP隧道透過此示範機制自一啟用分散交換的內嵌式處理元件150到另一啟用分散交換的內嵌式處理元件152。在此實施例中,每一內嵌式處理元件150包括一各別PCIe傳輸佇列154、156、一各別隧道封包傳輸佇列158、160、一各別PCIe接收佇列162、164、一各別隧道封包接收佇列166、168、一各別仲裁器170、172、及一各別去多工器174、176。在操作中,仲裁器170、172仲裁透過一隧道鏈路178而到達傳輸佇列154、158及156、160中之PCIe封包的傳輸。去多工器174、176將所接收的PCIe及TPP封包去多工至適當的接收佇列162、166及164、168中。當中,隧道協定機制的屬性如下:
● 穿隧道(tunneling)支援是可取捨規範的。
● 穿隧道對不支援穿隧道的PCIe組件沒有影響。
● 甚至在啟用穿隧道時,穿隧道對PCIe TLP及DLLP也沒有影響。
● 一鏈路可同時用於TLP及隧道協定封包(TPP)。
● 隧道不消耗或干擾PCIe資源(序列號、信用,等等)。隧道協定封包(TPP)使用與隧道相關聯的獨特資源。
● 穿隧道預設為被禁用且由軟體啟用。TPP在軟體啟用后才能發送。在支援穿隧道的埠接收的TPP被忽略直至穿隧道由軟體啟用。
● 穿隧道可在每鏈路的基礎上選擇。穿隧道可在一系統中的任一鏈路集合上使用。
● 一隧道鏈路可支援高達7條隧道。軟體組配每一隧道上使用的協定。
● TPP包含一LCRC。這用來以與PCIe TLP相類似的一方式來提供資料還原能力。
● TPP不使用PCIe的ACK/NAK機制。隧道協定特定確認機制可用來在需要時提供可靠傳送。
● TPP不包含一序列號。它們包含一個可供特定協定使用的12位元TPP元資料欄位。
● TPP傳輸器包含用以對TPP、TLP及DLLP的發送排程之一仲裁器/QoS機制。
● 隧道協定機制不定義TPP的任一位址或路由安排機制。
上面所描述的隧道協定可適於非PCI-e通訊協定。舉例而言,一類似封裝協定可在QPI、cHT、及乙太網路上開發。
第9圖是一方法的一實施例的一流程圖,一內嵌式處理元件在運作為一傳送封包的來源時透過此方法來處理一異動(亦即,一內嵌式源處理元件)。
響應於接收一異動,內嵌式源處理元件決定異動的目的地位址(第9圖,區塊180)。如果目的地位址對應於對內嵌式源處理元件而言是本地的一位址(第9圖,區塊182),內嵌式源處理元件使用異動(第9圖,區塊184)。如果目的地位址不對應於對內嵌式源處理元件而言是本地的一位址(第9圖,區塊182),內嵌式源處理元件將異動封裝至一傳送封包(第9圖,區塊186)。
內嵌式源處理元件決定傳送封包要發送的位置(第9圖,區塊188)。在基於ID的路由安排實施例中,內嵌式源處理元件將目的地位址用作一路由決策函數的輸入,例如,其可充當到與內嵌式源處理元件相關聯之一路由表的一簡單索引,以獲得與另一內嵌式處理元件對應的下一躍點位址,另一內嵌式處理元件可以是一目的地節點抑或一中間節點。內嵌式源處理元件將下一躍點位址編碼成傳送封包標頭。在基於來源的路由安排實施例中,內嵌式源處理元件由相關聯的路由表決定路由資訊,路由資訊包括用以將傳送封包自源節點穿過內嵌式處理元件的相連處理元件而傳輸至目的地節點之一傳輸路由的規範。內嵌式源處理元件將路由資訊編碼成傳送封包標頭,以及傳輸路由規範中到目前接收節點的一指標。
內嵌式源處理元件使傳送封包加入佇列至內嵌式處理元件的一封包介面上(第9圖,區塊190)。在此過程中,內嵌式源處理元件選擇傳輸路由上對應於目前節點之源處理節點的一部分。封包介面透過所選定埠外的鏈路將傳送封包傳輸至下一躍點位址(第9圖,區塊192)。
第10圖是一方法的一實施例的一流程圖,一內嵌式處理元件在運作為一傳送封包的接收者時透過此方法處理一異動(亦即,一內嵌式接收處理元件)。
響應於接收一傳送封包,內嵌式接收處理元件驗證封包資料(第10圖,區塊200)。如果封包資料無效(第10圖,區塊202),內嵌式接收處理元件拒絕抑或丟棄傳送封包。如果封包資料有效(第10圖,區塊202),內嵌式接收處理元件解碼傳送封包標頭(第10圖,區塊204)。
內嵌式接收處理元件判定是否傳送封包的目的地是目前接收者(亦即,內嵌式接收處理元件)(第10圖,區塊206)。在基於ID的路由安排實施例中,解碼的傳送封包標頭中的路由資訊包括傳送封包所前往之內嵌式處理元件的一目的地位址。在這些實施例中,內嵌式接收處理元件藉由判定目的地位址是否匹配內嵌式接收處理元件的位址來判定其是否是所接收傳送封包的目的地。在基於來源的路由安排實施例中,內嵌式接收處理元件藉由判定其是否對應於傳送封包標頭中所指定之傳輸路由上的一目的地節點而決定其是否是所接收傳送封包的目的地。
如果內嵌式接收處理元件是傳送封包的目的地(第10圖,區塊206),內嵌式接收處理元件將酬載封包解封裝(第10圖,區塊208)並處理解封裝的酬載封包(第10圖,區塊210)。
如果傳送封包的目的地不是內嵌式接收處理元件(第10圖,區塊206),內嵌式接收處理元件決定傳送封包發往的位置(第10圖,區塊212)。在基於ID的路由安排實施例中,內嵌式接收處理元件將目的地位址用作到,與內嵌式接收處理元件相關聯之一路由表之一路由決策函數的輸入,以獲得與另一內嵌式處理元件對應的下一躍點位址,另一內嵌式處理元件可以是一目的地節點抑或一中間節點。內嵌式接收處理元件將下一躍點位址編碼為傳送封包標頭。在基於來源的路由安排實施例中,內嵌式接收處理元件由傳輸封包標頭中的傳輸路由規範來決定下一躍點位址,其中下一躍點位址通常是內嵌式接收處理元件的一埠。
內嵌式處理元件使傳送封包加入佇列至內嵌式處理元件的一封包介面上(第10圖,區塊214)。封包介面將傳送封包傳輸至下一躍點位址(第10圖,區塊216)。
第11圖是一方法的一實施例的一流程圖,一內嵌式目的地處理元件透過此方法解封裝及處理一傳送封包(第10圖,區塊208、210)。依據此實施例,內嵌式目的地處理元件決定酬載封包編碼所依據的協定(第11圖,區塊218)。在一些實施例中,傳送封包包括酬載協定的一編碼識別符。在這些實施例中,內嵌式目的地處理元件由編碼識別符來決定酬載協定。內嵌式目的地處理元件依據所決定酬載協定來解封裝酬載封包(第11圖,區塊220)。內嵌式目的地處理元件以一酬載協定異動來處理解封裝酬載封包(第11圖,區塊222)。在一些實施例中,此過程涉及使用酬載封包。在其它實施例中,此過程涉及將酬載封包傳輸至一分離或內嵌式I/O裝置。
第12圖繪示多處理器電腦系統10的一實施例230,其包括分離記憶體控制器232、234及一些CPU 236。記憶體控制器232、234控制對各別記憶體238、240的存取,各別記憶體238、240中的各者例如能以多個雙邊直列記憶體模組(DIMM)庫而實施。CPU 236的相鄰者由直接鏈接242互連。CPU 236亦由軟體劃分成兩同調域244、246。
CPU 236包括用路由資訊248規劃的各別路由引擎(RE),路由資訊248使各別路由引擎能夠運作為,能夠透過經過鏈接242的各種不同路徑而在CPU 236間路由安排傳送封包之一動態可重新組配分散交換的次組件。(高亮顯示為灰色的兩CPU之間的一示範路徑在第12圖中用實線箭頭來指出)。如上所述,路由引擎(RE)依據一傳送協定來路由安排傳送封包,該傳送協定封裝所有類型的資料傳輸協定(包括標準及專有協定)而不考慮協定的同調性。以此方式,相同同調域中的CPU 236可將同調協定異動(例如,共享記憶體異動)在彼此間路由安排,在同調域244、246中之一者中的CPU 236可路由安排在同調域的另一者中之CPU 236的非同調封包,及CPU 236可在分離記憶體控制器232、234與CPU 236之相同鏈接242上的其它者之間路由安排非同調I/O協定異動(例如,(c)PCIe異動)。在此過程中,各異動被封裝成一各別傳送封包,該各別傳送封包係依據傳送協定格式化,且包括一各別傳送封包標頭,其包括用以基於分別與處理元件相關聯的路由表而在處理元件的相連諸者間路由安排傳送封包之資訊。
第13圖繪示多處理器電腦系統10的一實施例250,其包括離散I/O裝置252、254、256、258及一些CPU 260,CPU 260中的相鄰者用直接鏈接262來互連。CPU 236包括用路由資訊264程式化的各別路由引擎(RE),路由資訊264使各別路由引擎能夠運作為,能夠透過經過鏈接262的各種不同路徑而在CPU 262間路由安排傳送封包之一動態可再組配分散交換的次組件。(高亮顯示為灰色之CPU到I/O裝置254的兩示範路徑分別用實線箭頭及虛線箭頭來指出)。如上所述,路由引擎(RE)依據一傳送協定來路由安排傳送封包,該傳送協定封裝所有類型的資料傳輸協定(包括標準及專有協定)而不考慮協定的同調性。以此方式,相同同調域中的CPU 262可將同調協定異動(例如,共享記憶體異動)在彼此間路由安排,在一同調域中的CPU 236可路由安排另一同調域中之CPU 262的非同調封包,及CPU 262可路由安排CPU 262之在同一鏈接242上的其它者的非同調I/O協定異動。在此過程中,各異動被封裝成一各別傳送封包,該各別傳送封包係依據傳送協定格式化,且包括一各別傳送封包標頭,其包括用以基於分別與處理元件相關聯的路由表而在處理元件的相連諸者間路由安排傳送封包之資訊。在圖示實施例中,小平台組件***工具266、268、270、272為I/O裝置252-258移除封包中的傳送封包標頭。
本文描述的實施例提供用以處理多處理晶片結構間的通訊之改良的系統及方法,多處理晶片結構能夠簡化平台設計、減小平台開發成本及入市時間、及增強軟體與硬體再用以提高靈活性、規模,及增加功能。在這些實施例中,內嵌式處理元件實施一動態可重新組配分散交換來路由安排異動。以此方式,不需要外部交換(例如,縱橫交換鍵及匯流排架構)。這些實施例中的一些實施例改變封裝標準及專屬協定而不考慮協定的同調性之一封裝協定。以此方式,內嵌式處理元件可路由安排不同同調域的異動、同調協定異動(例如,共享記憶體異動)、及相同鏈路上的非同調協定異動(例如,I/O異動)。
其它實施例在申請專利範圍的範圍內。
10...多處理電腦系統
12~22...內嵌式處理元件
24~34...路由引擎
36~52...鏈接
60~66...區塊
70...多處理電腦系統的實施例
72、74...主機CPU
76、78...處理核心
80、82...主機快取記憶體
84、86...內部網目
88、90...主機介面
92...端點裝置
94、96、110、112、114...路由引擎
98...主機CPU的示範實施例
100...主機介面的實施例
102...內嵌式記憶體控制器中樞
104...內嵌式I/O控制器中樞
106...內部網目的實施例
116...傳送協定異動、封包
117...路由引擎的實施例
118...識別符
119...路由表
120...路由資訊
121...方法
122...酬載
124...封包的示範實施例、隧道協定封包
126、128...實體層成框
130...資料鏈路層循環冗餘校驗碼
132...隧道封包層
134...隧道封包元資料
136...隧道封包資料
138...隧道協定ID欄位
140...TPP元資料欄位
142、144、146...TPP資料DWORD欄位
150、152...啟用分散交換的內嵌式處理元件
154、156...PCIe傳輸佇列
158、160...隧道封包傳輸佇列
162、164...PCIe接收佇列
166、168...隧道封包接收佇列
170、172...仲裁器
174、176...去多工器
180~192、200~222...區塊
230、250...多處理器電腦系統的實施例
232、234...記憶體控制器
236、260...CPU
238、240...記憶體
242、262...直接鏈接、鏈接
244、246...同調域
248、264...路由資訊
252、254、256、258...I/O裝置
266、268、270、272...小平台組件***工具
第1圖是一多處理電腦系統之一實施例的複數內嵌式處理元件的一方塊圖。
第2圖是依據發明之一實施例由一多處理電腦系統的一內嵌式處理元件實施之一方法的一實施例的一流程圖。
第3圖是包括主機CPU之一多處理電腦系統的一實施例的一方塊圖,其中各別主機介面組配來運作為一分散內嵌式交換的次組件。
第4圖是一CPU的一實施例的一方塊圖,其中多個內嵌式處理元件組配來分別運作為一分散內嵌式交換的次組件。
第5圖是一路由引擎的一實施例的一方塊圖。
第6圖是一傳送封包的一實施例的一圖解視圖。
第7圖是第5圖該傳送封包元件的一圖解視圖。
第8圖是透過一隧道鏈路來使傳送封包及PCIe封包交換之一電腦系統的一對內嵌式處理元件的一實施例的一方塊圖。
第9圖是依據發明的一實施例之一內嵌式處理元件處理一異動的一方法的一實施例的一流程圖。
第10圖是依據發明的一實施例之一內嵌式處理元件處理一異動的一方法的一實施例的一流程。
第11圖是依據發明的一實施例之一內嵌式處理元件處理一傳送封包的一方法的一實施例的一流程圖。
第12圖是依據發明的一實施例之一多處理器電腦系統的一實施例的一方塊圖。
第13圖是依據發明的一實施例之一多處理器電腦系統的一實施例的一方塊圖。
10...多處理電腦系統
12~22...內嵌式處理元件
24~34...路由引擎
36~52...鏈路
Claims (10)
- 一種由一電腦中的內嵌式實體處理元件所執行的方法,該方法包含,在該等處理元件中的一第一處理元件執行以下步驟:接收一傳送封包,該傳送封包依據一傳送協定被格式化且包含(i)依據一酬載協定格式化的一封裝酬載封包及(ii)包含路由資訊之一傳送封包標頭;由該路由資訊判定是否該傳送封包的目的地是該第一處理元件;響應於該傳送封包的目的地不是該第一處理元件之判定,基於該路由資訊將該傳送封包自該第一處理元件發送至該等處理元件中的一第二處理元件;及響應於該傳送封包的目的地是該第一處理元件之判定,解封裝該傳送封包中的該酬載封包,並處理該解封裝的酬載封包。
- 如申請專利範圍第1項所述之方法,其中該路由資訊包含該等處理元件中該傳送封包所前往之一處理元件的一目的地位址,及該判定步驟包含判定該目的地位址是否匹配該第一處理元件的一位址。
- 如前面申請專利範圍中任一項所述之方法,其中該路由資訊包含,用以將該傳送封包自該等處理元件中的一源處理元件經過該等處理元件中的相連處理元件而傳送至該等處理元件中的一目的地處理元件之一傳輸路由的一規範,及該判定步驟包含判定是否該第一處理元件對應於該傳輸路由上的一目的地節點。
- 如前面申請專利範圍中任一項所述之方法,其進一步包含以下步驟:在該等處理元件中的一第二處理元件,將該酬載封包封裝成該傳送封包,其中該封裝步驟包含,從與該源處理元件相關聯的一路由表中獲得路由資訊,並將該路由資訊編碼成該傳送封包標頭;及基於該路由資訊,將該傳送封包自該源處理元件傳輸至該第一處理元件。
- 如前面申請專利範圍中任一項所述之方法,其中該傳送封包包含該酬載協定的一編碼識別符;進一步包含由該編碼識別符決定該酬載協定;及其中該解封裝步驟包含,依據該決定的酬載協定來解封裝該酬載封包,及該處理步驟包含,作為一酬載協定異動來處理該解封裝酬載封包。
- 如前面申請專利範圍中任一項所述之方法,其進一步包含用一各別路由引擎及一相關聯路由表來規劃該等處理元件中的每一者之步驟,其中該等路由引擎中的每一者可操作來執行該接收、該判定、該發送、該解封裝、及該處理步驟。
- 如前面申請專利範圍中任一項所述之方法,其中該接收步驟包含一鏈路上接收該傳送封包,該鏈路將該第一處理元件直接連接至該等處理元件中之一各別其它處理元件而無需任何中間的分立裝置,及該發送步驟包含在該第一與第二處理元件間直接相連的一鏈路上將該傳送封包發送至該第二處理元件。
- 如前面申請專利範圍中任一項所述之方法,其進一步包含將同調異動及非同調異動自該等處理元件中的各別源處理元件路由安排至該等處理元件中的各別目的地處理元件之步驟,其中該路由安排步驟包含,將該等異動中的每一者封裝成一各別傳送封包,該個別傳送封包係依據該傳送協定來格式化,且包括一各別傳送封包標頭,該標頭包括用以基於分別與該等處理元件相關聯的路由表,為該傳送封包在該等處理元件中的相連處理元件間安排路由之資訊。
- 如前面申請專利範圍中任一項所述之方法,其進一步包含在一第一同調域中之一第一組該等處理元件與一第二同調域中之一第二組該等處理元件間路由安排異動之步驟,其中該路由安排步驟包含將該等異動的每一者封裝成一各別傳送封包,該各別傳送封包係依據該傳送協定來格式化,且包括一各別傳送封包標頭,該標頭包括用以基於分別與該等處理元件相關聯的路由表,為該傳送封包在該等處理元件中的相連處理元件間安排路由之資訊。
- 一種包含內嵌式實體處理元件的電腦,其包括該等處理元件的一第一處理元件,該第一處理元件可操作來執行包含以下步驟的操作:接收一傳送封包,該傳送封包依據一傳送協定來被格式化且包含(i)依據一酬載協定來格式化的一封裝酬載封包及(ii)包含路由資訊之一傳送封包標頭;由該路由資訊判定是否該傳送封包的目的地是該第一處理元件;響應於該傳送封包的目的地不是該第一處理元件之判定,基於該路由資訊將該傳送封包自該第一處理元件發送至該等處理元件中的一第二處理元件;及響應於該傳送封包的目的地是該第一處理元件之判定,解封裝該傳送封包中的該酬載封包,並處理該解封裝的酬載封包。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2009/062935 WO2011053330A1 (en) | 2009-11-02 | 2009-11-02 | Multiprocessing computing with distributed embedded switching |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201124909A TW201124909A (en) | 2011-07-16 |
TWI473012B true TWI473012B (zh) | 2015-02-11 |
Family
ID=43922418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99135050A TWI473012B (zh) | 2009-11-02 | 2010-10-14 | 具分散內嵌式交換之多處理運算技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20120120959A1 (zh) |
EP (1) | EP2497023B1 (zh) |
CN (1) | CN102576313A (zh) |
TW (1) | TWI473012B (zh) |
WO (1) | WO2011053330A1 (zh) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0221464D0 (en) | 2002-09-16 | 2002-10-23 | Cambridge Internetworking Ltd | Network interface and protocol |
GB0304807D0 (en) | 2003-03-03 | 2003-04-09 | Cambridge Internetworking Ltd | Data protocol |
GB0404696D0 (en) | 2004-03-02 | 2004-04-07 | Level 5 Networks Ltd | Dual driver interface |
GB0408876D0 (en) | 2004-04-21 | 2004-05-26 | Level 5 Networks Ltd | User-level stack |
GB0408868D0 (en) | 2004-04-21 | 2004-05-26 | Level 5 Networks Ltd | Checking data integrity |
GB0506403D0 (en) | 2005-03-30 | 2005-05-04 | Level 5 Networks Ltd | Routing tables |
GB0505297D0 (en) | 2005-03-15 | 2005-04-20 | Level 5 Networks Ltd | Redirecting instructions |
GB0505300D0 (en) | 2005-03-15 | 2005-04-20 | Level 5 Networks Ltd | Transmitting data |
WO2006095184A2 (en) | 2005-03-10 | 2006-09-14 | Level 5 Networks Incorporated | Data processing system |
US7634584B2 (en) | 2005-04-27 | 2009-12-15 | Solarflare Communications, Inc. | Packet validation in virtual network interface architecture |
US8645558B2 (en) | 2005-06-15 | 2014-02-04 | Solarflare Communications, Inc. | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities for data extraction |
US7984180B2 (en) | 2005-10-20 | 2011-07-19 | Solarflare Communications, Inc. | Hashing algorithm for network receive filtering |
GB0600417D0 (en) | 2006-01-10 | 2006-02-15 | Level 5 Networks Inc | Virtualisation support |
US8116312B2 (en) | 2006-02-08 | 2012-02-14 | Solarflare Communications, Inc. | Method and apparatus for multicast packet reception |
US9948533B2 (en) | 2006-07-10 | 2018-04-17 | Solarflare Communitations, Inc. | Interrupt management |
US9686117B2 (en) | 2006-07-10 | 2017-06-20 | Solarflare Communications, Inc. | Chimney onload implementation of network protocol stack |
EP2645674B1 (en) | 2006-07-10 | 2020-09-02 | Xilinx, Inc. | Interrupt management |
GB0621774D0 (en) | 2006-11-01 | 2006-12-13 | Level 5 Networks Inc | Driver level segmentation |
GB0723422D0 (en) | 2007-11-29 | 2008-01-09 | Level 5 Networks Inc | Virtualised receive side scaling |
GB0802126D0 (en) | 2008-02-05 | 2008-03-12 | Level 5 Networks Inc | Scalable sockets |
GB0823162D0 (en) | 2008-12-18 | 2009-01-28 | Solarflare Communications Inc | Virtualised Interface Functions |
US9256560B2 (en) | 2009-07-29 | 2016-02-09 | Solarflare Communications, Inc. | Controller integration |
US9210140B2 (en) | 2009-08-19 | 2015-12-08 | Solarflare Communications, Inc. | Remote functionality selection |
EP2309680B1 (en) | 2009-10-08 | 2017-07-19 | Solarflare Communications Inc | Switching API |
US8743877B2 (en) | 2009-12-21 | 2014-06-03 | Steven L. Pope | Header processing engine |
US10873613B2 (en) | 2010-12-09 | 2020-12-22 | Xilinx, Inc. | TCP processing for devices |
US9258390B2 (en) | 2011-07-29 | 2016-02-09 | Solarflare Communications, Inc. | Reducing network latency |
US9674318B2 (en) | 2010-12-09 | 2017-06-06 | Solarflare Communications, Inc. | TCP processing for devices |
US9600429B2 (en) | 2010-12-09 | 2017-03-21 | Solarflare Communications, Inc. | Encapsulated accelerator |
US9003053B2 (en) | 2011-09-22 | 2015-04-07 | Solarflare Communications, Inc. | Message acceleration |
US8996644B2 (en) | 2010-12-09 | 2015-03-31 | Solarflare Communications, Inc. | Encapsulated accelerator |
US9008113B2 (en) | 2010-12-20 | 2015-04-14 | Solarflare Communications, Inc. | Mapped FIFO buffering |
US8583850B2 (en) * | 2011-02-14 | 2013-11-12 | Oracle America, Inc. | Micro crossbar switch and on-die data network using the same |
US9384071B2 (en) | 2011-03-31 | 2016-07-05 | Solarflare Communications, Inc. | Epoll optimisations |
US8909979B2 (en) | 2011-06-27 | 2014-12-09 | Huawei Technologies Co., Ltd. | Method and system for implementing interconnection fault tolerance between CPU |
WO2012103712A1 (zh) | 2011-06-27 | 2012-08-09 | 华为技术有限公司 | Cpu互联装置 |
US8763018B2 (en) | 2011-08-22 | 2014-06-24 | Solarflare Communications, Inc. | Modifying application behaviour |
US9391840B2 (en) | 2012-05-02 | 2016-07-12 | Solarflare Communications, Inc. | Avoiding delayed data |
US8437343B1 (en) | 2012-05-22 | 2013-05-07 | Intel Corporation | Optimized link training and management mechanism |
US8549205B1 (en) | 2012-05-22 | 2013-10-01 | Intel Corporation | Providing a consolidated sideband communication channel between devices |
US8446903B1 (en) | 2012-05-22 | 2013-05-21 | Intel Corporation | Providing a load/store communication protocol with a low power physical unit |
US8904079B2 (en) * | 2012-06-25 | 2014-12-02 | Intel Corporation | Tunneling platform management messages through inter-processor interconnects |
US8972640B2 (en) | 2012-06-27 | 2015-03-03 | Intel Corporation | Controlling a physical link of a first protocol using an extended capability structure of a second protocol |
US9391841B2 (en) | 2012-07-03 | 2016-07-12 | Solarflare Communications, Inc. | Fast linkup arbitration |
US10505747B2 (en) | 2012-10-16 | 2019-12-10 | Solarflare Communications, Inc. | Feed processing |
US10404583B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using multiple outside-scope identifiers |
US10419335B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Region scope-specific outside-scope indentifier-equipped routing methods, systems, and computer program products |
US10374938B1 (en) | 2012-12-27 | 2019-08-06 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10212076B1 (en) | 2012-12-27 | 2019-02-19 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping a node-scope specific identifier |
US10404582B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using an outside-scope indentifier |
US10411997B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Routing methods, systems, and computer program products for using a region scoped node identifier |
US10397101B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping identifiers |
US10476787B1 (en) | 2012-12-27 | 2019-11-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10587505B1 (en) | 2012-12-27 | 2020-03-10 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10397100B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products using a region scoped outside-scope identifier |
US10419334B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Internet protocol routing methods, systems, and computer program products |
US10411998B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Node scope-specific outside-scope identifier-equipped routing methods, systems, and computer program products |
US10904144B2 (en) | 2012-12-27 | 2021-01-26 | Sitting Man, Llc | Methods, systems, and computer program products for associating a name with a network path |
US10447575B1 (en) | 2012-12-27 | 2019-10-15 | Sitting Man, Llc | Routing methods, systems, and computer program products |
JP6080984B2 (ja) * | 2013-02-28 | 2017-02-15 | インテル・コーポレーション | 異なる相互接続プロトコルのための一つの相互接続プロトコルの列挙および/または設定機構の活用 |
US9462043B2 (en) * | 2013-03-13 | 2016-10-04 | Cisco Technology, Inc. | Framework for dynamically programmed network packet processing |
US9261934B2 (en) | 2013-03-15 | 2016-02-16 | Intel Corporation | Dynamic response improvement of hybrid power boost technology |
US10742604B2 (en) | 2013-04-08 | 2020-08-11 | Xilinx, Inc. | Locked down network interface |
US9426124B2 (en) | 2013-04-08 | 2016-08-23 | Solarflare Communications, Inc. | Locked down network interface |
WO2014169010A1 (en) * | 2013-04-10 | 2014-10-16 | Marvell World Trade Ltd. | Tunneling transaction packets |
EP2809033B1 (en) | 2013-05-30 | 2018-03-21 | Solarflare Communications Inc | Packet capture in a network |
US10394751B2 (en) | 2013-11-06 | 2019-08-27 | Solarflare Communications, Inc. | Programmed input/output mode |
US9612643B2 (en) | 2014-03-29 | 2017-04-04 | Intel Corporation | Controlling the CPU slew rates based on the battery state of charge |
JP6337606B2 (ja) * | 2014-05-15 | 2018-06-06 | 富士通株式会社 | 情報処理装置、経路決定方法及びプログラム |
US10078361B2 (en) | 2014-10-08 | 2018-09-18 | Apple Inc. | Methods and apparatus for running and booting an inter-processor communication link between independently operable processors |
US9710406B2 (en) | 2014-12-15 | 2017-07-18 | Intel Corporation | Data transmission using PCIe protocol via USB port |
US9817787B2 (en) * | 2015-03-26 | 2017-11-14 | Intel Corporation | Method, apparatus and system for encapsulating information in a communication |
KR101797929B1 (ko) * | 2015-08-26 | 2017-11-15 | 서경대학교 산학협력단 | 매니코어 플랫폼에서 코어에 프로세스를 할당하는 방법 및 코어 프로세스간 통신 방법 |
US10085214B2 (en) | 2016-01-27 | 2018-09-25 | Apple Inc. | Apparatus and methods for wake-limiting with an inter-device communication link |
US10558580B2 (en) | 2016-02-29 | 2020-02-11 | Apple Inc. | Methods and apparatus for loading firmware on demand |
US10191859B2 (en) * | 2016-03-31 | 2019-01-29 | Apple Inc. | Memory access protection apparatus and methods for memory mapped access between independently operable processors |
US10591976B2 (en) | 2016-11-10 | 2020-03-17 | Apple Inc. | Methods and apparatus for providing peripheral sub-system stability |
US10775871B2 (en) | 2016-11-10 | 2020-09-15 | Apple Inc. | Methods and apparatus for providing individualized power control for peripheral sub-systems |
US10331612B1 (en) | 2018-01-09 | 2019-06-25 | Apple Inc. | Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors |
US10430352B1 (en) | 2018-05-18 | 2019-10-01 | Apple Inc. | Methods and apparatus for reduced overhead data transfer with a shared ring buffer |
US11531621B2 (en) * | 2020-01-30 | 2022-12-20 | Microsoft Technology Licensing, Llc | Selective endpoint isolation for self-healing in a cache and memory coherent system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040006633A1 (en) * | 2002-07-03 | 2004-01-08 | Intel Corporation | High-speed multi-processor, multi-thread queue implementation |
US6785734B1 (en) * | 2000-04-10 | 2004-08-31 | International Business Machines Corporation | System and method for processing control information from a general through a data processor when a control processor of a network processor being congested |
US20060126649A1 (en) * | 2004-12-10 | 2006-06-15 | Nec Corporation | Packet distribution system, PAN registration device, PAN control device, packet transfer device, and packet distribution method |
US20080307422A1 (en) * | 2007-06-08 | 2008-12-11 | Kurland Aaron S | Shared memory for multi-core processors |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
US8380630B2 (en) * | 2000-07-06 | 2013-02-19 | David Paul Felsher | Information record infrastructure, system and method |
US6990121B1 (en) | 2000-12-30 | 2006-01-24 | Redback, Networks, Inc. | Method and apparatus for switching data of different protocols |
JP4340400B2 (ja) * | 2001-04-27 | 2009-10-07 | 富士通株式会社 | 階層化パケット網におけるパケット転送方法並びに階層化パケット通信システム並びに同システムに使用されるエッジノード及び移動端末並びに階層化パケット網におけるパケット転送方法 |
US8068494B2 (en) * | 2002-03-27 | 2011-11-29 | Motorola Solutions, Inc. | Method and apparatus for robust local mobility management in a mobile network |
US7899048B1 (en) * | 2003-01-15 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for remotely monitoring network traffic through a generic network |
US7188209B2 (en) * | 2003-04-18 | 2007-03-06 | Nextio, Inc. | Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets |
US9818136B1 (en) * | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US20040190506A1 (en) * | 2003-03-24 | 2004-09-30 | International Business Machines Corp. | Method and apparatus for performing complex pattern matching in a data stream within a computer network |
GB2417391B (en) * | 2004-08-18 | 2007-04-18 | Wecomm Ltd | Transmitting data over a network |
US7209991B2 (en) * | 2004-09-03 | 2007-04-24 | Intel Corporation | Packet processing in switched fabric networks |
US7848332B2 (en) * | 2004-11-15 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary |
US8699330B2 (en) * | 2004-11-24 | 2014-04-15 | Qualcomm Incorporated | Systems and methods for digital data transmission rate control |
GB0600417D0 (en) * | 2006-01-10 | 2006-02-15 | Level 5 Networks Inc | Virtualisation support |
US8266702B2 (en) * | 2006-10-31 | 2012-09-11 | Microsoft Corporation | Analyzing access control configurations |
US7903574B2 (en) * | 2007-03-15 | 2011-03-08 | Nokia Corporation | Service discovery mechanism in broadcast telecommunication network |
US8417935B2 (en) * | 2008-10-10 | 2013-04-09 | The Boeing Company | System and method for collaboration over shared storage |
US8374095B2 (en) * | 2009-03-23 | 2013-02-12 | Cisco Technology, Inc. | Connection verification for MPLS label switched paths and pseudowires |
US20110010522A1 (en) * | 2009-06-12 | 2011-01-13 | Cray Inc. | Multiprocessor communication protocol bridge between scalar and vector compute nodes |
-
2009
- 2009-11-02 WO PCT/US2009/062935 patent/WO2011053330A1/en active Application Filing
- 2009-11-02 CN CN200980162263XA patent/CN102576313A/zh active Pending
- 2009-11-02 US US13/386,649 patent/US20120120959A1/en not_active Abandoned
- 2009-11-02 EP EP09850993.8A patent/EP2497023B1/en not_active Not-in-force
-
2010
- 2010-10-14 TW TW99135050A patent/TWI473012B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785734B1 (en) * | 2000-04-10 | 2004-08-31 | International Business Machines Corporation | System and method for processing control information from a general through a data processor when a control processor of a network processor being congested |
US20040006633A1 (en) * | 2002-07-03 | 2004-01-08 | Intel Corporation | High-speed multi-processor, multi-thread queue implementation |
US20060126649A1 (en) * | 2004-12-10 | 2006-06-15 | Nec Corporation | Packet distribution system, PAN registration device, PAN control device, packet transfer device, and packet distribution method |
US20080307422A1 (en) * | 2007-06-08 | 2008-12-11 | Kurland Aaron S | Shared memory for multi-core processors |
Also Published As
Publication number | Publication date |
---|---|
US20120120959A1 (en) | 2012-05-17 |
CN102576313A (zh) | 2012-07-11 |
WO2011053330A1 (en) | 2011-05-05 |
TW201124909A (en) | 2011-07-16 |
EP2497023A4 (en) | 2013-09-18 |
EP2497023B1 (en) | 2015-02-25 |
EP2497023A1 (en) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI473012B (zh) | 具分散內嵌式交換之多處理運算技術 | |
US9213666B2 (en) | Providing a sideband message interface for system on a chip (SoC) | |
US10503688B2 (en) | Multiple transaction data flow control unit for high-speed interconnect | |
KR100715741B1 (ko) | 트랜잭션들을 상이한 가상 채널들로 분리하는 방법 및이를 이용한 장치 및 시스템 | |
JP5922268B2 (ja) | 拡張ヘッダを用いたパケット送信 | |
US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
KR101861312B1 (ko) | 다중슬롯 링크 계층 플릿에서의 제어 메시징 | |
US20150103822A1 (en) | Noc interface protocol adaptive to varied host interface protocols | |
TW200937219A (en) | A network on chip | |
JP4290556B2 (ja) | マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングi/oノード | |
JP2005512194A5 (zh) | ||
CN113168388A (zh) | 总线上的存储器请求链接 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |