專利名稱:具有分區(qū)的片上網(wǎng)絡(luò)及其處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,或者更具體地,涉及用于通過片上網(wǎng)
絡(luò)("NOC")進行數(shù)據(jù)處理的裝置和方法。
背景技術(shù):
存在兩種廣泛使用的數(shù)據(jù)處理范式多指令、多數(shù)據(jù)("MIMD") 和單指令、多數(shù)據(jù)("SIMD")。在MIMD處理中,通常將計算機程 序表征為或多或少獨立操作的一個或多個執(zhí)行線程,每個線程需要對 大量共享存儲器的快速隨機訪問。MIMD是針對適合它的特定程序類 型最優(yōu)化的數(shù)據(jù)處理范式,這些程序類型例如包括文字處理器、擴 展表單、數(shù)據(jù)庫管理器、電信的多種形式(諸如瀏覽器)等。
SIMD被表征為在多個處理器上同時并行運行的單個程序,程序 的每個實例以相同的方式對分離的數(shù)據(jù)項進行操作。SIMD是針對適
合它的特定應(yīng)用類型最優(yōu)化的數(shù)據(jù)處理范式,這些應(yīng)用類例如包括多 種形式的數(shù)字信號處理、矢量處理等。
然而,存在例如包括多個真實世界仿真程序的另一應(yīng)用類,針對 該應(yīng)用類,單純的SIMD和單純的MIMD數(shù)據(jù)處理例如都不是最優(yōu)化 的。該程序類包括受益于并行處理但是也需要對共享存儲器進行快速 隨機訪問的應(yīng)用。對于該程序類,單純的MIMD將無法提供高并行 度,而單純的SIMD將無法提供對主存儲器存儲的快速隨機訪問。
發(fā)明內(nèi)容
一種片上網(wǎng)絡(luò)("NOC"),其包括集成處理器("IP")塊、路 由器、存儲器通信控制器以及網(wǎng)絡(luò)接口控制器,每個IP塊通過存儲 器通信控制器和網(wǎng)絡(luò)接口控制器適配至路由器,其中每個存儲器通信控制器控制IP塊與存儲器之間的通信,并且每個網(wǎng)絡(luò)接口控制器控 制通過路由器的IP塊間通信,其中網(wǎng)絡(luò)被組織為分區(qū),每個分區(qū)至 少包括一個IP塊,為每個分區(qū)指派對獨立的物理存儲器地址空間的 獨占訪問;以及在一個或多個分區(qū)上執(zhí)行的 一個或多個應(yīng)用。
根據(jù)對附圖中示出的本發(fā)明的示例性實施方式的更具體的描述, 本發(fā)明的上述和其他目的、特征和優(yōu)點將是顯然的,在附圖中,相同 的參考數(shù)字 一般代表本發(fā)明的示例性實施方式的相似部分。
圖1描述了根據(jù)本發(fā)明實施方式的包括可以在通過NOC的數(shù)據(jù) 處理中使用的示例性計算機的自動計算機器的框圖。
圖2描述了根據(jù)本發(fā)明實施方式的示例NOC的功能性框圖。
圖3描述了根據(jù)本發(fā)明實施方式的另 一 示例NOC的功能性框圖。
圖4描述了示出根據(jù)本發(fā)明實施方式的用于通過NOC進行數(shù)據(jù) 處理的示例性方法的流程圖。
圖5描述了根據(jù)本發(fā)明實施方式的另 一 示例NOC的功能性框圖。
圖6描述了示出示例流水線操作的數(shù)據(jù)流程圖。
圖7描述了示出根據(jù)本發(fā)明實施方式的用于通過NOC進行數(shù)據(jù) 處理的示例性方法的流程圖。
具體實施例方式
從圖l開始,將參考附圖來描述根據(jù)本發(fā)明的用于通過NOC進 行數(shù)據(jù)處理的示例性裝置和方法。圖1記載了根據(jù)本發(fā)明實施方式的 包括可以在通過NOC的數(shù)據(jù)處理中使用的示例性計算機(152)的自 動計算機器的框圖。圖1的計算機(152)包括至少一個計算機處理 器(156)或"CPU"以及隨機訪問存儲器(168) ("RAM"), RAM( 168) 通過高速存儲器總線(166 )和總線適配器(158 )連接至處理器(156 ) 以及計算機(152)的其他組件。
RAM ( 168)中存儲的是應(yīng)用程序(184),即用于執(zhí)行特定數(shù)據(jù)處理任務(wù)的用戶級計算機程序指令的模塊,數(shù)據(jù)處理任務(wù)諸如文字處 理、擴展表單、數(shù)據(jù)庫操作、視頻游戲、股票市場仿真、原子的量子
過程仿真或者其他用戶級應(yīng)用。RAM (168)中還存儲有操作系統(tǒng) (154)??梢杂糜诟鶕?jù)本發(fā)明實施方式的通過NOC的數(shù)據(jù)處理的操 作系統(tǒng)包括UNIX 、 Linux 、 Microsoft XPTM、 AIXTM、 IBM的i5/OSTM 以及本領(lǐng)域技術(shù)人員可以想到的其他操作系統(tǒng)。圖1示例中的操作系 統(tǒng)(154)和應(yīng)用(184)被示為在RAM ( 168)中,但是此類軟件的 很多組件通常也存儲在非易失性存儲器中,例如存儲在盤驅(qū)動(170) 上。
示例計算機(152)包括兩個根據(jù)本發(fā)明實施方式的示例NOC: 視頻適配器(209 )和協(xié)處理器(157)。視頻適配器(209 )是I/O 適配器的示例,其針對向諸如顯示器屏幕或者計算機監(jiān)視器的顯示設(shè) 備(180)的圖形輸出而專門設(shè)計。視頻適配器(209 )通過高速視頻 總線(164)、總線適配器(158)和前端總線(162)(其也是高速 總線)連接至處理器(156)。
示例NOC協(xié)處理器(157)通過總線適配器(158)和前端總線 U62和163)(其也是高速總線)連接至處理器(156)。圖1的 NOC協(xié)處理器被優(yōu)化為在主處理器(156)的命令下加速特定的數(shù)據(jù) 處理任務(wù)。
圖1的示例NOC視頻適配器(209 )和NOC協(xié)處理器(157 )每 個都包括根據(jù)本發(fā)明的實施方式的NOC,其包括集成處理器("IP") 塊、路由器、存儲器通信控制器以及網(wǎng)絡(luò)接口控制器,每個IP塊通 過存儲器通信控制器和網(wǎng)絡(luò)接口控制器適配至路由器,每個存儲器通 信控制器控制IP塊和存儲器之間的通信,并且每個網(wǎng)絡(luò)接口控制器 控制通過路由器的IP塊間通信。NOC視頻適配器和NOC協(xié)處理器 對于使用并行處理并且還需要對共享存儲器進行快速隨機訪問的程 序而言是最優(yōu)的。NOC結(jié)構(gòu)和操作的細節(jié)將在下文參考圖2到圖4 進行討論。
圖l的計算機(152)包括盤驅(qū)動適配器(172),其通過擴展總線(160)和總線適配器(158)耦合至處理器(156)和計算機(152) 的其他組件。盤驅(qū)動適配器(172)以盤驅(qū)動(170)的形式將非易失 性數(shù)據(jù)存儲裝置連接至計算機(152)。可以在用于根據(jù)本發(fā)明實施 方式的通過NOC的數(shù)據(jù)處理的計算機中使用的盤驅(qū)動適配器包括集 成驅(qū)動電子("IDE")適配器、小型計算機系統(tǒng)接口 ("SCSI")適配 器以及本領(lǐng)域技術(shù)人員可以想到的其他適配器。非易失性存儲器還可 以實現(xiàn)為光盤驅(qū)動,電可擦除可編程只讀存儲器(稱為"EEPROM"或 者"閃存"存儲器)、RAM驅(qū)動等,這將是本領(lǐng)域技術(shù)人員可以想到 的。
圖1的示例計算機(152)包括一個或多個輸入/輸出("I/O")適 配器(178) 。 I/O適配器實現(xiàn)面向用戶的輸入/輸出,這例如是通過 用于對向顯示設(shè)備(諸如計算機顯示屏幕)的輸出以及來自用戶輸入 設(shè)備(181)(諸如鍵盤和鼠標)的用戶輸入進行控制的軟件驅(qū)動器 和計算機硬件來實現(xiàn)的。
圖1的示例計算機(152)包括通信適配器(167),用于與其他 計算機(182)的數(shù)據(jù)通信以及與數(shù)據(jù)通信網(wǎng)絡(luò)(100)的數(shù)據(jù)通信。 這種數(shù)據(jù)通信可以通過RS-232連接、通過諸如通用串行總線("USB") 的外部總線、通過諸如IP數(shù)據(jù)通信網(wǎng)絡(luò)的數(shù)據(jù)通信網(wǎng)絡(luò)以及按照本 領(lǐng)域技術(shù)人員可以想到的其他方式來串行地執(zhí)行。通信適配器實現(xiàn)硬 件級數(shù)據(jù)通信, 一個計算機通過該硬件級數(shù)據(jù)通信而直接地或是通過 數(shù)據(jù)通信網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給另 一計算機??梢杂糜诟鶕?jù)本發(fā)明的通過 NOC的數(shù)據(jù)處理的通信適配器示例包括用于有線撥號通信的調(diào)制 解調(diào)器,用于有線數(shù)據(jù)通信網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE 802.3 )適配器, 以及用于無線數(shù)據(jù)通信網(wǎng)絡(luò)通信的802.11適配器。
為了進一步闡釋,圖2記載了根據(jù)本發(fā)明實施方式的示例NOC (102)的功能性框圖。圖1示例中的NOC實現(xiàn)在"芯片"(100)上, 也即,實現(xiàn)在集成電路上。圖2的NOC( 102)包括集成處理器("IP") 塊(104)、路由器(110)、存儲器通信控制器(106)以及網(wǎng)絡(luò)接 口控制器(108)。每個IP塊(104)通過存儲器通信控制器(106)和網(wǎng)絡(luò)接口控制器(108)適配至路由器(110)。每個存儲器通信控 制器控制IP塊和存儲器之間的通信,并且每個網(wǎng)絡(luò)接口控制器(108) 控制通過路由器(110)的IP塊間通信。
在圖2的NOC(102)中,每個IP塊代表同步或者異步邏輯設(shè)計 的可重用單元,其被用作NOC內(nèi)用于數(shù)據(jù)處理的構(gòu)造塊。術(shù)語"IP塊" 有時解釋為"知識產(chǎn)權(quán)塊",其有效地指出由一方(也即,知識產(chǎn)權(quán)方) 所有的作為設(shè)計的IP塊,其將被授權(quán)給其他用戶或者半導體電路的 設(shè)計者。然而,在本發(fā)明的范圍內(nèi),IP塊無需受制于任何特定的所有 權(quán),因此該術(shù)語在本說明書中總是解釋為"集成處理器塊"。正如在此 規(guī)定的,IP塊是邏輯、單元或者芯片布局設(shè)計的可重用單元,其可以 作為也可以不作為知識產(chǎn)權(quán)的主題。IP塊是可以作為ASIC芯片設(shè)計 或者FPGA邏輯設(shè)計而形成的邏輯核。
通過類比來描述IP塊的一種方法是IP塊對于NOC設(shè)計就如同 庫對于計算機編程或者離散集成電路組件對于印刷板設(shè)計。在根據(jù)本 發(fā)明實施方式的NOC中,IP塊可以實現(xiàn)為通用門網(wǎng)表(netlist), 實現(xiàn)為完整的專用或者通用微處理器、或者以本領(lǐng)域技術(shù)人員可以想 到的其他方式來實現(xiàn)。網(wǎng)表是IP塊的邏輯功能的布爾-代數(shù)表示(門、 標準單元),類似于高級程序應(yīng)用的匯編代碼表。NOC例如還可以 按照可合成形式來實現(xiàn),通過例如Verilog或者VHDL的硬件描述語 言來描述。除了網(wǎng)表和可合成實現(xiàn)之外,NOC還可以通過較低級的 物理描述來表達。模擬IP塊元件(諸如SERDES、 PLL、 DAC、 ADC 等)可以分布在諸如GDSII的晶體管布局格式中。IP塊的數(shù)字元件 有時也在布局格式中提供。
圖2示例中的每個IP塊(104)通過存儲器通信控制器(106) 適配至路由器(110)。每個存儲器通信控制器是同步或者異步邏輯 電路的集合,其適于提供IP塊和存儲器之間的數(shù)據(jù)通信。IP塊和存 儲器之間的這種通信的示例包括存儲器裝載指令和存儲器存儲指令。 存儲器通信控制器(106)將在下文參考圖3進行更詳細的描述。
圖2示例中的每個IP塊(104)還通過網(wǎng)絡(luò)接口控制器(108)適配至路由器(110)。每個網(wǎng)絡(luò)接口控制器(108)控制IP塊(104) 之間通過路由器(110)的通信。IP塊之間的通信示例包括攜帶數(shù)據(jù) 的消息以及用于在并行應(yīng)用中和流水線應(yīng)用中的IP塊之中處理數(shù)據(jù) 的指令。網(wǎng)絡(luò)接口控制器(108)將在下文參考圖3進行更詳細的描述。
圖2示例中的每個IP塊(104)適配至路由器(110)。路由器 (110)以及路由器之中的鏈路(120)實現(xiàn)NOC的網(wǎng)絡(luò)操作。鏈路 (120)是在連接所有路由器的物理、并行有線總線上實現(xiàn)的分組結(jié) 構(gòu)。也即,每個鏈路實現(xiàn)在足夠?qū)挼挠芯€總線上,以同時提供完整的 數(shù)據(jù)交換分組(包括所有報頭信息和有效載荷數(shù)據(jù))。如果分組結(jié)構(gòu) 包括64個字節(jié)(例如包括8個字節(jié)的報頭和56個字節(jié)的有效載荷數(shù) 據(jù)),則與每個鏈路相對的有線總線是64字節(jié)方式,512條線。此外, 每個鏈路都是雙向的,使得在鏈路分組結(jié)構(gòu)包括64個字節(jié)的情況下, 有線總線實際上在網(wǎng)絡(luò)中的每個路由器與其每個鄰居之間包含1024 條線。消息可以包括不止一個分組,但是每個分組精確地適合有線總 線的寬度。如果將路由器與有線總線的每個部分之間的連接稱為端 口,則每個路由器包括5個端口 ,網(wǎng)絡(luò)上數(shù)據(jù)傳輸?shù)乃膫€方向中的每 個方向一個端口 ,并且第五端口用于將路由器通過存儲器通信控制器 和網(wǎng)絡(luò)接口控制器適配至特定的IP塊。
圖2示例中的每個存儲器通信控制器(106)控制IP塊和存儲器 之間的通信。存儲器可以包括片外主RAM ( 112)、通過存儲器通信 控制器(106)直接連接至IP塊的存儲器(115)、可實現(xiàn)作為IP塊 的片上存儲器(114)以及片上高速緩存。在圖2的NOC中,片上存 儲器(114、 115)中的每一個例如可以實現(xiàn)為片上高速緩存存儲器。 所有這些形式的存儲器可以部署在相同的地址空間中(物理空間或者 虛擬地址),即使對于直接附接至IP塊的存儲器也可以。因此,存 儲器尋址的消息關(guān)于IP塊可以是完全雙向的,因為可以從網(wǎng)絡(luò)上任 何位置的IP塊直接對這樣的存儲器進行尋址。IP塊上的存儲器(114) 可以從該IP塊或者從NOC中的任何其他IP塊進行尋址。直接附接至存儲器通信控制器的存儲器(115)可以由通過該存儲器通信控制
器適配至網(wǎng)絡(luò)的IP塊進行尋址,并且還可以從NOC中任意位置的任
何其他IP塊進行尋址。
示例NOC包括兩個存儲器管理單元("MMU") (107、 109), 示出了用于根據(jù)本發(fā)明實施方式的NOC的兩個備選存儲器架構(gòu)。 MMU ( 107)通過IP塊實現(xiàn),允許IP塊內(nèi)的處理器在虛擬存儲器中 進行操作,同時允許NOC的整個剩余架構(gòu)在物理存儲器地址空間中 進行操作。MMU (109)片外實現(xiàn),通過數(shù)據(jù)通信端口 (116)連接 至NOC。端口 (116)包括引導NOC和MMU之間的信號所需的管 腳和其他互連,以及將消息分組從NOC分組格式轉(zhuǎn)換為外部MMU (109)所需總線格式的足夠智能性。MMU的外部定位意味著NOC 的所有IP塊中的所有處理器可以在虛擬地址空間中進行操作,到片 外存儲器的物理空間的所有轉(zhuǎn)換由片外MMU ( 109)來處理。
除了通過使用MMU ( 107、 109)而示出的兩種存儲器架構(gòu)之外, 數(shù)據(jù)通信端口 ( 118)示出了可以用于根據(jù)本發(fā)明實施方式的NOC的 第三種存儲器架構(gòu)。端口 (118)提供NOC ( 102)的IP塊(104)與 片外存儲器(112)之間的直接連接。由于在處理路徑中沒有MMU, 該架構(gòu)提供了 NOC的所有IP塊對物理地址空間的使用。在雙向共享 地址空間中,NOC的所有IP塊可以通過存儲器尋址消息來訪問地址 空間中的存儲器,其中存儲器尋址消息包括載入和存儲,其由直接連 接至端口 (118)的IP塊引導。端口 (118)包括引導NOC和片外存 儲器(112)之間的信號所需的管腳和其他互連,以及將消息分組從 NOC分組格式轉(zhuǎn)換為片外存儲器(112)所需總線格式的足夠智能性。
在圖2的示例中,將IP塊之一指定為主機接口處理器(105)。 主機接口處理器(105 )提供NOC和可以安裝NOC的主機計算機(152) 之間的接口 ,并且還為NOC上的其他IP塊提供數(shù)據(jù)處理服務(wù),例如 包括從主機計算機接收NOC數(shù)據(jù)處理請求并在NOC的IP塊之中分 派。NOC例如可以在較大的計算機(152 )上實現(xiàn)視頻圖形適配器(209 ) 或者協(xié)處理器(157),如參考圖1所描述的。在圖2的示例中,主機接口處理器(105)通過數(shù)據(jù)通信端口 (115)連接至較大的主機計 算機。端口 (115)包括引導NOC和主機計算機之間的信號所需的管 腳和其他互連,以及將消息分組乂人NOC轉(zhuǎn)換為主^L計算才幾(152)所 需的總線格式的足夠智能性。在圖1的計算機中的NOC協(xié)處理器的 示例中,這樣的端口將提供NOC協(xié)處理器(157)的鏈路結(jié)構(gòu)與前端 總線(163)所需協(xié)議之間的數(shù)據(jù)通信格式轉(zhuǎn)換,其中前端總線(163) 位于NOC協(xié)處理器(157)和總線適配器(158)之間。
為了進一步闡釋,圖3記載了根據(jù)本發(fā)明另一示例NOC的功能 性框圖。圖3的示例NOC在以下方面類似于圖2的示例NOC:圖3 的示例NOC在芯片上(圖2的100)實現(xiàn),并且圖3的NOC ( 102) 包括集成處理器("IP")塊(104)、路由器(110)、存儲器通信控 制器(106)以及網(wǎng)絡(luò)接口控制器(108)。每個IP塊(104)通過存 儲器通信控制器(106)和網(wǎng)絡(luò)接口控制器(108)適配至路由器(110)。 每個存儲器通信控制器控制IP塊與存儲器之間的通信,并且每個網(wǎng) 絡(luò)接口控制器(108)控制通過路由器(110)的IP塊間通信。在圖3 的示例中,對通過存儲器通信控制器(106)和網(wǎng)絡(luò)接口控制器(108) 適配至路由器(110)的一組(122) IP塊(104)進行了擴展,以便 更詳細地闡釋其結(jié)構(gòu)和操作。圖3示例中的所有IP塊、存儲器通信 控制器、網(wǎng)絡(luò)接口控制器以及路由器都按照與擴展組(122)相同的 方式配置。
在圖3的示例中,每個IP塊(104)包括計算機處理器(126) 和I/O功能性(124)。在此示例中,通過每個IP塊(104)中的隨機 訪問存儲器("RAM") (128)的分段來代表計算機存儲器。如上文 參考圖2示例描述的,存儲器可以占用物理地址空間的分段,每個IP 塊上的物理地址空間的內(nèi)容可以從NOC中的任意IP塊進行尋址和訪 問。每個IP塊上的處理器(126) 、 I/O能力(124)以及存儲器(128) 有效地將IP塊實現(xiàn)為一般可編程的微計算機。然而,如上文闡釋的, 在本發(fā)明的范圍內(nèi),IP塊一般地表示同步或者異步邏輯的可重用單 元,其用作NOC內(nèi)用于數(shù)據(jù)處理的構(gòu)造塊。因此,盡管將IP塊實現(xiàn)為 一般可編程微計算機是有助于闡釋的常見實施方式,但其不是對本 發(fā)明的限制。
在圖3的NOC ( 102)中,每個存儲器通信控制器(106)包括多 個存儲器通信執(zhí)行引擎(140)。每個存儲器通信執(zhí)行引擎(140)能 夠執(zhí)行來自IP塊(104)的存儲器通信指令,包括網(wǎng)絡(luò)和IP塊(104) 之間的雙向存儲器通信指令流(142、 144、 145)。由存儲器通信控 制器執(zhí)行的存儲器通信指令不僅可以從通過特定的存儲器通信控制 器適配至路由器的IP塊發(fā)起,而且還可以從NOC ( 102)中任何位置 的任何IP塊(104)發(fā)起。也即,NOC中的任何IP塊可以生成存儲 器通信指令,并且通過NOC的路由器將該存儲器通信指令傳送給與 其他IP塊關(guān)聯(lián)的其他存儲器通信控制器,以便執(zhí)行該存儲器通信指 令。這樣的存儲器通信指令例如可以包括轉(zhuǎn)換旁視緩沖控制指令、 高速緩存控制指令、柵障(barrier)指令以及存儲器裝載和存儲指令。
使每個存儲器通信執(zhí)行引擎(140)能夠獨立地以及與其他存儲 器通信執(zhí)行引擎并行地執(zhí)行完整的存儲器通信指令。存儲器通信執(zhí)行 引擎實現(xiàn)可伸縮的存儲器事務(wù)處理器,這對于存儲器通信指令的并發(fā) 吞吐而言是最優(yōu)的。存儲器通信控制器(106)支持多個存儲器通信 執(zhí)行引擎(140),所有引擎(140)并發(fā)地運行以用于多個存儲器通 信指令的同時執(zhí)行。新的存儲器通信指令由存儲器通信控制器(106) 分配給存儲器通信引擎(140),并且存儲器通信執(zhí)行引擎(140)可 以同時接受多個響應(yīng)事件。在此示例中,所有存儲器通信執(zhí)行引擎 (140)是相同的。因此,伸縮存儲器通信控制器(106)能夠同時處 理的存儲器通信執(zhí)行的數(shù)目是通過伸縮存儲器通信執(zhí)行引擎(140) 的數(shù)目來實現(xiàn)的。
在圖3的NOC ( 102)中,使每個網(wǎng)絡(luò)接口控制器(108)能夠?qū)?通信指令從命令格式轉(zhuǎn)換為網(wǎng)絡(luò)分組格式,以便通過路由器(110) 在IP塊(104)之中傳輸。通信指令由IP塊(104)或者由其他存儲 器通信控制器(106)按照命令格式來格式化,并且按照命令格式被 提供給網(wǎng)絡(luò)接口控制器(108)。命令格式是一種本地格式,其符合IP塊(104)和存儲器通信控制器(106)的架構(gòu)性注冊文件。網(wǎng)絡(luò)分 組格式是通過網(wǎng)絡(luò)路由器(110)的傳輸所需的格式。每個這樣的消 息包括一個或多個網(wǎng)絡(luò)分組。在網(wǎng)絡(luò)接口控制器中從命令格式被轉(zhuǎn)換 為分組格式的這種通信指令的示例包括IP塊與存儲器之間的存儲器 裝載指令和存儲器存儲指令。這樣的通信指令還包括在IP塊之中發(fā) 送消息的通信指令,該消息攜帶數(shù)據(jù)以及用于在并行應(yīng)用和流水線應(yīng) 用中在IP塊之中處理數(shù)據(jù)的指令。
在圖3的NOC(102)中,每個IP塊能夠通過IP塊的存儲器通 信控制器發(fā)送去往和來自存儲器的基于存儲器地址的通信,并繼而還 能通過其網(wǎng)絡(luò)接口控制器將該通信發(fā)送至網(wǎng)絡(luò)?;诖鎯ζ鞯刂返耐?信是存儲器訪問指令,諸如裝載指令或者存儲指令,其由IP塊的存 儲器通信控制器的存儲器通信執(zhí)行引擎來執(zhí)行。這樣的基于存儲器地 址的通信通常在IP塊中發(fā)起,按照命令格式來格式化,并且移交給 存儲器通信控制器以用于執(zhí)行。
很多基于存儲器地址的通信是通過消息業(yè)務(wù)執(zhí)行的,因為將要訪 問的任何存儲器可以位于直接附接至NOC中的任何存儲器通信控制 器的物理存儲器地址空間中的任何位置(片上或者片外),或者可以 通過NOC的任意IP塊而被最終訪問,不論哪個IP塊發(fā)起了任何特 定的基于存儲器地址的通信。將通過消息業(yè)務(wù)執(zhí)行的所有基于存儲器 地址的通信從存儲器通信控制器傳遞至相關(guān)聯(lián)的網(wǎng)絡(luò)接口控制器,以 用于從命令格式到分組格式的轉(zhuǎn)換(136)以及在消息中通過網(wǎng)絡(luò)的 傳輸。在轉(zhuǎn)換為分組格式中,網(wǎng)絡(luò)接口控制器還根據(jù)基于存儲器地址 的通信將要訪問的一個或多個存儲器地址來標識用于該分組的網(wǎng)絡(luò) 地址。通過存儲器地址對基于存儲器地址的消息進行尋址。每個存儲 器地址由網(wǎng)絡(luò)接口控制器映射為網(wǎng)絡(luò)地址,通常是映射為負責一定范 圍的物理存儲器地址的存儲器通信控制器的網(wǎng)絡(luò)位置。存儲器通信控 制器(106)的網(wǎng)絡(luò)位置自然也是該存儲器通信控制器的相關(guān)聯(lián)的路 由器(110)、網(wǎng)絡(luò)接口控制器(108)以及IP塊(104)的網(wǎng)絡(luò)位置。 每個網(wǎng)絡(luò)接口控制器內(nèi)的指令轉(zhuǎn)換邏輯(136)能夠?qū)⒋鎯ζ鞯刂忿D(zhuǎn)換為網(wǎng)絡(luò)地址,以便通過NOC的路由器來傳輸基于存儲器地址的通信。
在從網(wǎng)絡(luò)的路由器(110)接收到消息業(yè)務(wù)之后,每個網(wǎng)絡(luò)接口 控制器(108)在每個分組中檢查存儲器指令。將包含存儲器指令的 每個分組遞交給與接收網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的存儲器通信控制器 (106),其在將該分組的剩余有效載荷發(fā)送給IP塊進一步處理之前 執(zhí)行存儲器指令。以此,在IP塊開始執(zhí)行來自于依賴特定存儲器內(nèi) 容的消息的指令之前,存儲器內(nèi)容總是準備好了支持IP塊的數(shù)據(jù)處 理。
在圖3的NOC ( 102 )中,使每個IP塊(104 )能夠繞過其存儲 器通信控制器(106)并且通過IP塊的網(wǎng)絡(luò)接口控制器(108)將IP 塊間的網(wǎng)絡(luò)尋址通信(146)直接發(fā)送至網(wǎng)絡(luò)。網(wǎng)絡(luò)尋址通信是由網(wǎng) 絡(luò)地址指引給另一 IP塊的消息。如本領(lǐng)域技術(shù)人員可以想到的,這 樣的消息在流水線應(yīng)用中傳輸工作數(shù)據(jù),在SIMD應(yīng)用中傳輸用于IP 塊之間的單個程序處理的多個數(shù)據(jù),等等,如本領(lǐng)域技術(shù)員可以想到 的。這種消息與基于存儲器地址的通信的區(qū)別在于它們從開始就是 由發(fā)起IP塊進行網(wǎng)絡(luò)尋址的,其中發(fā)起IP塊知道通過NOC的路由 器將該消息引導至的網(wǎng)絡(luò)地址。這種網(wǎng)絡(luò)尋址通信由IP塊通過其I/O 功能(124)以命令格式直接傳遞給IP塊的網(wǎng)絡(luò)接口控制器,繼而由 網(wǎng)絡(luò)接口控制器轉(zhuǎn)換為分組格式,并且通過NOC的路由器傳輸至其 他IP塊。這種網(wǎng)絡(luò)尋址通信(146)是雙向的,其潛在地去往或者來 自NOC的每個IP塊,這取決于其在任何特定應(yīng)用中的使用。然而, 每個網(wǎng)絡(luò)接口控制器都能夠發(fā)送和接收(142)去往和來自相關(guān)聯(lián)路 由器的這種通信,并且每個網(wǎng)絡(luò)接口控制器能夠繞過相關(guān)聯(lián)的存儲器 通信控制器(106)而直接發(fā)送和接收(146)去往和來自相關(guān)聯(lián)IP 塊的這種通信。
使圖3示例中的每個網(wǎng)絡(luò)接口控制器(108)還能夠?qū)崿F(xiàn)網(wǎng)絡(luò)上 的虛擬通道,通過類型來表征網(wǎng)絡(luò)分組。每個網(wǎng)絡(luò)接口控制器(108) 包括虛擬通道實現(xiàn)邏輯(138),其通過類型對每個通道指令進行分給路由器(110)以便在NOC上傳 輸之前在網(wǎng)絡(luò)分組格式的字段中記錄指令的類型。通信指令類型的示 例包括IP塊間基于網(wǎng)絡(luò)地址的消息、請求消息、對請求消息的響應(yīng)、 指向高速緩存的無效消息、存儲器裝載和存儲消息以及對存儲器裝載 消息的響應(yīng)等。
圖3示例中的每個路由器(110)包括路由邏輯(130)、虛擬通 道控制邏輯(132)和虛擬通道緩沖器(134)。路由邏輯通常實現(xiàn)為 同步或者異步邏輯的網(wǎng)絡(luò),其實現(xiàn)用于路由器(110)、鏈路(120) 和路由器之中的總線線路構(gòu)成的網(wǎng)絡(luò)中的數(shù)據(jù)通信的數(shù)據(jù)通信協(xié)議 棧。路由邏輯(130)包括本領(lǐng)域技術(shù)人員可以將片外網(wǎng)絡(luò)與路由表 相關(guān)聯(lián)的功能,其中在至少一些實施方式中,認為在NOC中使用路 由表過慢且不便??梢詫崿F(xiàn)為同步和異步邏輯網(wǎng)絡(luò)的路由邏輯配置 為在單時鐘周期中進行路由決策。此示例中的路由邏輯通過選擇用于 轉(zhuǎn)發(fā)路由器中接收到的每個分組的端口來路由分組。每個分組包含網(wǎng) 絡(luò)地址,分組將被路由至該網(wǎng)絡(luò)地址。此示例中的每個路由器包括五 個端口通過總線線路(120-A、 120-B、 120-C、 120-D)連接至其他 路由器的四個端口 ( 121 )以及通過網(wǎng)絡(luò)接口控制器(108)和存儲器 通信控制器(106)將每個路由器連接至其相關(guān)聯(lián)的IP塊(104)的 第五端口 。
在上面對基于存儲器地址的通信的描述中,將每個存儲器地址描 述為由網(wǎng)絡(luò)接口控制器映射為網(wǎng)絡(luò)地址,即存儲器通信控制器的網(wǎng)絡(luò) 位置。存儲器通信控制器(106)的網(wǎng)絡(luò)位置自然也是該存儲器通信 控制器的相關(guān)聯(lián)的路由器(110)、網(wǎng)絡(luò)接口控制器(108)以及IP 塊(104)的網(wǎng)絡(luò)位置。因此,在IP塊間通信或者基于網(wǎng)絡(luò)地址的通 信中,應(yīng)用級數(shù)據(jù)處理通常將網(wǎng)絡(luò)地址視為由NOC的路由器、鏈路 和總線線路組成的網(wǎng)絡(luò)內(nèi)的IP塊的位置。圖2示出這種網(wǎng)絡(luò)的一 個組織是行和列的網(wǎng)格,其中例如可以將每個網(wǎng)絡(luò)地址實現(xiàn)為網(wǎng)格的 每組相關(guān)聯(lián)的路由器、IP塊、存儲器通信控制器以及網(wǎng)絡(luò)接口控制器 的唯一標識符,或者實現(xiàn)為網(wǎng)格中每個這種組的x、 y坐標。
16在圖3的NOC (102)中,每個路由器(110)實現(xiàn)兩個或者更多 虛擬通信通道,其中每個虛擬通信通道由通信類型表征。通信指令類 型以及由此的虛擬通道類型包括上文提到的那些類型IP塊間基于網(wǎng) 絡(luò)地址的消息、請求消息、對請求消息的響應(yīng)、指向高速緩存的無效 消息、存儲器裝載和存儲消息以及對存儲器裝載消息的響應(yīng)等。為了 支持虛擬通道,圖3示例中的每個路由器(110)還包括虛擬通道控 制邏輯(132)和虛擬通道緩沖(134)。虛擬通道控制邏輯(132) 對每個接收分組檢查其被指派的通信類型,并且將每個分組置于針對 該通信類型的外發(fā)虛擬通道緩沖中,以便通過端口向NOC上的相鄰 路由器傳輸。
每個虛擬通道緩沖(134)具有有限的存儲空間。當在短時間內(nèi) 接收到很多分組時,虛擬通道緩沖可能充滿,使得無法將更多的分組 放在該緩沖中。在其他協(xié)議中,在虛擬通道上到達的、其緩沖已滿的 分組將被丟棄。然而,在此示例中的每個虛擬通道緩沖(134)能夠 利用總線線路的控制信號來通過虛擬通道控制邏輯建議周圍的路由 器掛起虛擬通道中的傳輸,也即,掛起特定通信類型的分組的傳輸。 當一個虛擬通道被這樣掛起時,所有其他虛擬通道不受影響,并且可 以繼續(xù)以完全能力進行操作。該控制信號通過每個路由器被發(fā)送回每 個路由器的關(guān)聯(lián)網(wǎng)絡(luò)接口控制器(108)。將每個網(wǎng)絡(luò)接口控制器配 置為在接收到這種信號時,拒絕接受來自其關(guān)聯(lián)存儲器通信控制器 (106)或者其關(guān)聯(lián)IP塊(104)的針對已掛起虛擬通道的通信指令。 以此,虛擬通道的掛起影響了實現(xiàn)虛擬通道的所有硬件,直至返回到 發(fā)起IP塊。
掛起在虛擬通道中傳輸?shù)姆纸M的一個效果是在圖3的架構(gòu)中從 來不會丟棄分組。當路由器遇到在諸如互聯(lián)網(wǎng)協(xié)議的 一 些不可靠協(xié)議 中可能丟棄分組的情況時,圖3示例中的路由器通過其虛擬通道緩沖 (134)及其虛擬通道控制邏輯(132)來掛起虛擬通道中的所有分組 的傳輸,直到緩沖空間再次可用,這消除了丟棄分組的任何需要。因 此,圖3的NOC實現(xiàn)了高度可靠的網(wǎng)絡(luò)通信協(xié)議,其硬件層非常精為了進一步闡釋,圖4記載了示出根據(jù)本發(fā)明實施方式的用于通
過NOC的數(shù)據(jù)處理的示例性方法的流程圖。圖4的方法實現(xiàn)在類似 于本說明書上文描述的NOC上,即芯片(圖3的100)上實現(xiàn)的NOC (圖3的102),其具有IP塊(圖3的104)、路由器(圖3的110)、 存儲器通信控制器(圖3的106)以及網(wǎng)絡(luò)接口控制器(圖3的108)。 每個IP塊(圖3的104)通過存儲器通信控制器(圖3的106)和網(wǎng) 絡(luò)接口控制器(圖3的108)適配至路由器(圖3的110)。在圖4 的方法中,每個IP塊可以實現(xiàn)為同步或者異步邏輯設(shè)計的可重用單 元,其被用作用于NOC內(nèi)數(shù)據(jù)處理的構(gòu)造塊。
圖4的方法包括通過存儲器通信控制器(圖3的106)來控制(402) IP塊和存儲器之間的通信。在圖4的方法中,存儲器通信控制器包括 多個存儲器通信執(zhí)行引擎(圖3的140)。還是在圖4的方法中,控 制(402) IP塊和存儲器之間的通信是通過以下方式來執(zhí)行的由每 個存儲器通信執(zhí)行引擎來獨立地、并與其他存儲器通信執(zhí)行引擎并行 地執(zhí)行(404)完整的存儲器通信指令,并且執(zhí)行(406)網(wǎng)絡(luò)和IP 塊之間的存儲器通信指令的雙向流。在圖4的方法中,存儲器通信指 令可以包括轉(zhuǎn)換旁視緩沖控制指令、高速緩存控制指令、柵障指令、 存儲器裝載指令以及存儲器存儲指令。在圖4的方法中,存儲器可以 包括片外主RAM、通過存儲器通信控制器直接連接至IP塊的存儲 器、可用作IP塊的片上存儲器以及片上高速緩存。
圖4的方法還包括通過網(wǎng)絡(luò)接口控制器(圖3的108)來控制(408) 通過路由器的IP塊間通信。在圖4的方法中,控制(408 )IP塊間通 信還包括由每個網(wǎng)絡(luò)接口控制器將通信指令從命令格式轉(zhuǎn)換(410 ) 為網(wǎng)絡(luò)分組格式,以及由每個網(wǎng)絡(luò)接口控制器實現(xiàn)(412)網(wǎng)絡(luò)上的 虛擬通道,包括通過類型來表征網(wǎng)絡(luò)分組。
圖4的方法還包括由每個路由器(圖3的110)通過兩個或更多 虛擬通信通道來傳輸(414)消息,其中每個虛擬通信通道由通信類 型表征。通信類型以及由此虛擬通道類型例如包括IP塊間基于網(wǎng)絡(luò)地址的消息、請求消息、對請求消息的響應(yīng)、指向高速緩存的無效消 息、存儲器裝載和存儲消息以及對存儲器裝載消息的響應(yīng)等。為了支
持虛擬通道,每個路由器還包括虛擬通道控制邏輯(圖3的132)和 虛擬通道緩沖(圖3的134)。虛擬通道控制邏輯對每個接收分組檢 查其被指派的通信類型,并且將每個分組置于針對該通信類型的外發(fā) 虛擬通道緩沖中,以便通過端口向NOC上的相鄰路由器傳輸。
為了便于闡釋,利用通過存儲器通信控制器和網(wǎng)絡(luò)接口控制器適 配至路由器的16組IP塊示出了圖2的示例NOC。類似地,利用通過 存儲器通信控制器和網(wǎng)絡(luò)接口控制器適配至路由器的4組IP塊示出 了圖3的示例NOC。然而,讀者將會意識到,根據(jù)本發(fā)明實施方式 實現(xiàn)的實際的NOC常常將包括幾百組或者幾千組通過存儲器通信控 制器和網(wǎng)絡(luò)接口控制器適配至路由器的IP塊。這種NOC將同時支持 多個應(yīng)用程序的操作,由此受益于NOC上資源的劃分。
為了進一步闡釋,圖5記載了根據(jù)本發(fā)明實施方式的另一示例 NOC的功能性框圖。圖5的示例NOC在以下方面類似于圖2的示例 NOC:圖5的NOC在芯片(100)上實現(xiàn),并且圖5的NOC ( 102 ) 包括IP塊(104)、路由器(110)、存儲器通信控制器(106)以及 網(wǎng)絡(luò)接口控制器(108)。每個IP塊(104)通過存儲器通信控制器 (106)和網(wǎng)絡(luò)接口控制器(108)適配至路由器(110)。每個存儲 器通信控制器控制IP塊和存儲器之間的通信,并且每個網(wǎng)絡(luò)接口控 制器(108)控制通過路由器(110)的IP塊間通信。
在圖5的示例中,將網(wǎng)絡(luò)(102)組織為分區(qū)(502、 504)。每 個分區(qū)(502、 504)包括至少一個IP塊(104),并且為每個分區(qū)指 派對獨立物理存儲器地址空間的獨占訪問。在例如為分區(qū)(502 )以 及分區(qū)(502)內(nèi)的所有IP塊(104)指派對部署在通過端口 (119) 訪問主機計算機(152)中的片外存儲器(112)上的獨立物理存儲器 地址空間的獨占訪問。類似地,為分區(qū)(504)包括分區(qū)(504)中的 IP塊指派對部署在片上存儲器(114、 115)上的獨立物理存儲器地址 空間的獨占訪問。如下文更詳細闡釋的,可選地在本發(fā)明的范圍內(nèi)可以通過在分區(qū) 邊界處限制網(wǎng)絡(luò)通信業(yè)務(wù)來實現(xiàn)分區(qū)。通過在分區(qū)邊界處限制網(wǎng)絡(luò)通 信業(yè)務(wù)可以定義分區(qū)是一種可選的備選方案,而不是對本發(fā)明的一般 性限制。在本發(fā)明的范圍內(nèi),完全足以定義分區(qū),也即為分區(qū)內(nèi)的路 由器和IP塊指派對獨立物理存儲器地址空間的獨占訪問。在圖5的
NOC中,分區(qū)(502 )是通過對主機計算機(152)上的片外存儲器 (112)中包含的獨立物理存儲器地址空間的獨占訪問指派而單獨形 成的分區(qū)示例,其中分區(qū)(502)中的IP塊(104)通過端口 ( 119) 來訪問片外存儲器(112)。端口 (119)包括處理NOC ( 102)和片 外存儲器(112)之間的信號所需的管腳和其他互連,以及將消息分 組從NOC分組格式轉(zhuǎn)換為片外存儲器(112)所需的總線格式的足夠 智能性。
在圖5的NOC中, 一個或多個應(yīng)用正在一個或多個分區(qū)上執(zhí)行。 應(yīng)用(512)在分區(qū)(504)中的IP塊(104)上執(zhí)行。應(yīng)用(514) 在分區(qū)(502)中的IP塊(104)上執(zhí)行。此上下文中的應(yīng)用是應(yīng)用 程序、用于執(zhí)行特定數(shù)據(jù)處理任務(wù)的用戶級計算機程序指令的模塊, 其中數(shù)據(jù)處理任務(wù)諸如為用于視頻游戲、股票市場仿真、原子的量子 過程仿真或者其他用戶級應(yīng)用的任務(wù)。
在圖5的NOC中,可以將網(wǎng)絡(luò)組織為這樣的分區(qū),該分區(qū)包含 網(wǎng)絡(luò)內(nèi)彼此相鄰的路由器的分區(qū),其中分區(qū)邊界上的路由器不包括 (exclude )該分區(qū)外部發(fā)起的并且尋址到該分區(qū)內(nèi)部網(wǎng)絡(luò)位置的消 息。在圖5的NOC中,分區(qū)(504)可以代表網(wǎng)絡(luò)內(nèi)彼此相鄰的路由 器(110)的分區(qū)的示例??梢詫⒎謪^(qū)(504)邊界上的路由器配置為 不包括該分區(qū)外部發(fā)起的并且尋址到該分區(qū)內(nèi)部網(wǎng)絡(luò)位置的消息。分 區(qū)(504 )邊界上的每個路由器檢查路由器中接收到的通信分組的發(fā) 起地址和目的地地址,并且丟棄在該分區(qū)外部發(fā)起的并且尋址到該分 區(qū)內(nèi)部網(wǎng)絡(luò)位置的分組。這樣配置的路由器通過限制分區(qū)邊界處的網(wǎng) 絡(luò)通信業(yè)務(wù)而實現(xiàn)了 NOC資源的劃分。
在圖5的NOC中,可以將網(wǎng)絡(luò)劃分為這樣的分區(qū)該分區(qū)包括網(wǎng)絡(luò)內(nèi)彼此相鄰的路由器的分區(qū),其中分區(qū)邊界上的路由器不包括在 該分區(qū)內(nèi)部發(fā)起的并且尋址到該分區(qū)外部網(wǎng)絡(luò)位置的分區(qū)消息離開。
在圖5的NOC中,分區(qū)(504)可以代表網(wǎng)絡(luò)內(nèi)的彼此相鄰的路由器 的分區(qū)的示例??梢詫⒎謪^(qū)邊界上的路由器配置為不包括在該分區(qū)內(nèi) 部發(fā)起的并且尋址到該分區(qū)外部網(wǎng)絡(luò)位置的分區(qū)消息離開。在此示例 中,分區(qū)(504 )邊界上的每個路由器檢查路由器中接收到的通信分 組的發(fā)起地址和目的地地址,并且丟棄在該分區(qū)內(nèi)部發(fā)起的并且尋址 到該分區(qū)外部網(wǎng)絡(luò)地址的分組。這是第二類實施方式,其通過被配置 為限制分區(qū)邊界處的網(wǎng)絡(luò)通信業(yè)務(wù)從而劃分NOC資源的路由器來實 現(xiàn)分區(qū)。
作為與另 一路由器相鄰的路由器的分區(qū)的備選方案,可以將根據(jù) 本發(fā)明實施方式的片上網(wǎng)絡(luò)組織為這樣的分區(qū)該分區(qū)包括網(wǎng)絡(luò)內(nèi)4皮 此不都相鄰的路由器。在圖5的NOC中,IP塊、路由器、存儲器通 信控制器和網(wǎng)絡(luò)接口控制器的組(506 )以及IP塊、路由器、存儲器 通信控制器和網(wǎng)絡(luò)接口控制器的組(508 )形成了這樣的分區(qū),其具 有網(wǎng)絡(luò)內(nèi)彼此不都相鄰的路由器。組(508 )中的路由器都與網(wǎng)絡(luò)架 構(gòu)內(nèi)的另一路由器相鄰,但是組(506)中的路由器不與組(508 )中 的任何路由器相鄰。
將組(506、 508 )所代表的分區(qū)內(nèi)的每個路由器配置為丟棄來自 該路由器IP塊的、尋址到該分區(qū)外部網(wǎng)絡(luò)地址的分組,并且還將其 配置為丟棄來自該分區(qū)外部網(wǎng)絡(luò)地址的、尋址到該路由器的IP塊的 分組。在此示例中,分區(qū)(506、 508 )中的每個路由器檢查路由器中 接收到的通信分組的發(fā)起地址和目的地地址,并且丟棄來自該路由器 的IP塊的、尋址到該分區(qū)外部網(wǎng)絡(luò)地址的分組,并且還丟棄來自該 分區(qū)外部網(wǎng)絡(luò)地址的、尋址到該路由器的IP塊的分組。以此,將代 表分區(qū)內(nèi)通信的分組限制為該分區(qū),并且通過分區(qū)內(nèi)的路由器來透明 地傳遞該分區(qū)外部的路由器之中的業(yè)務(wù)。例如,從分區(qū)(502 )中的 路由器傳輸至分區(qū)(504)中的路由器的分組必定通過組(506、 508 ) 中的任一組中的路由器,并且對于組(506、 508 )所實現(xiàn)的分區(qū)而言,這將透明地完成,因為這樣的分組不是來自分區(qū)(506、 508 )中的IP 塊的路由器的、尋址到該分區(qū)外部網(wǎng)絡(luò)地址的分組,并且這樣的分組 不是來自分區(qū)(506、 508 )外部網(wǎng)絡(luò)地址的、尋址到分區(qū)內(nèi)路由器的 IP塊的分組。
在圖5的NOC中,被組織為分區(qū)的網(wǎng)絡(luò)包括在分區(qū)(502)上實 例化的主機接口處理器(105)。分區(qū)(502 )上的主機接口處理器(105) 外露接口,在此由端口 (119)表示,以用于在分區(qū)上執(zhí)行的應(yīng)用和 該分區(qū)外部其他計算機資源之間的通信。在主機接口處理器(105) 的示例中,由主機接口處理器(105)接口連接的、分區(qū)外部的計算 資源是片外存儲器(112),其是使用主機接口處理器的一個說明性 示例,不是本發(fā)明的限制。分區(qū)(504)也具有在其上實例化的主機 接口處理器(107),并且分區(qū)(504)中的主機接口適配器(107) 外露在該分區(qū)上操作的應(yīng)用(512)與分區(qū)(504)外部的、但是片上 的其他計算機資源之間的接口 ,其中所述其他計算機資源例如為分區(qū) (502)的主機接口處理器(105)或者NOC上的其他分區(qū)中的IP塊 上運行的應(yīng)用(510、 514)。
如上所述,根據(jù)本發(fā)明實施方式的NOC分區(qū)可以通過對獨立物 理存儲器地址空間的獨占訪問的指派而形成。然而,對獨立物理存儲 器地址空間的獨占訪問的指派并不阻止該分區(qū)也與其他分區(qū)共享物 理存儲器地址空間的分段。也即,指派對地址空間的訪問還可以包括 指派非獨占訪問,使得存儲器可以在分區(qū)之間共享,從而使根據(jù)本發(fā) 明的NOC可以包括共享物理存儲器地址空間分段的至少兩個分區(qū)。 例如,在圖5的N0C中,可以為分區(qū)(504)指派對獨立物理存儲器 (114、 115)的獨占訪問,并且分區(qū)(504)還可以與分區(qū)(506、 508 ) 共享片上存儲器(in)中的物理存儲器地址空間的分段。類似地,
可以為分區(qū)(506、 508 )指派對獨立的物理片上存儲器(129)的獨 占訪問,并且分區(qū)(506、 508 )還可以與分區(qū)(504 )共享片上存儲 器(117)中的物理存儲器地址空間的分段。按照NOC (102)的總 體物理存儲器地址空間的表示(例如,以十六進制表示4G空間,從
2200000000到FFFFFFFF),可以為分區(qū)(506、 508 )指派對從00000000 到CFFFFFFF的地址空間的獨占訪問,可以為分區(qū)(504)指派對乂人 EOOOOOOO到FFFFFFFF的地址空間的獨占訪問,并且可以為這兩個分 區(qū)指派對從DOOOOOOO到DFFFFFFF的地址空間的非獨占訪問,使得 兩個分區(qū)共享從DOOOOOOO到DFFFFFFF的物理存儲器地址空間的分 段。這種存儲器共享例如有利于分區(qū)之間的通信,其中存儲器變量獨 立地在兩個分區(qū)中實例化并且尋址相同的物理存儲器,對該物理存儲 器的訪問例如是通過信號裝置來協(xié)調(diào)的。
在圖5的NOC中,在一個或多個分區(qū)上執(zhí)行的一個或多個應(yīng)用 (510、 512、 514)可以通過分階段于流水線中的至少一個應(yīng)用來實 現(xiàn)。流水線是計算機程序指令的模塊集,所述指令與其他指令協(xié)作來 順序地執(zhí)行一系列數(shù)據(jù)處理任務(wù)。流水線中的每階段包括由階段ID 標識的、可靈活配置的計算機程序指令模塊,其中每階段在相同分區(qū) 內(nèi)的IP塊上的執(zhí)行線程上執(zhí)行。階段是"可靈活配置的"每階段可以 支持階段的多個實例,使得可以根據(jù)負載而按照需要實例化階段的附 加實例,以此來縮;故流水線。
為了進一步闡釋,圖6記載了示出示例流水線(600)操作的數(shù) 據(jù)流程圖。圖6的示例流水線(600)包括三個執(zhí)行階段(602、 604、 606 )。階段1通過主機接口處理器(105)從主機計算機(152)上 運行的應(yīng)用(184)接收工作指令和工作分片數(shù)據(jù)(620)。階段1對 工作分片執(zhí)行其指定的數(shù)據(jù)處理任務(wù),并且將結(jié)果(622、 624、 626 ) 傳遞至階段2,階段2對來自階段1的結(jié)果執(zhí)行其指定的數(shù)據(jù)處理任 務(wù),并且將其結(jié)果(628、 630、 632 )傳遞至階段3,階段3對來自階 段2的結(jié)果執(zhí)行其指定的數(shù)據(jù)處理任務(wù),并且將其結(jié)果(634、 636 ) 存儲在輸出數(shù)據(jù)結(jié)構(gòu)(638 )中,以便通過主機接口處理器(105)最 終返回給主機計算機(152)上的發(fā)起應(yīng)用程序(184)。將對發(fā)起應(yīng) 用程序的返回說成是"最終"的,是因為在準備好返回輸出數(shù)據(jù)結(jié)構(gòu) (638 )之前,可能需要計算相當多的返回數(shù)據(jù)。此示例中的流水線 (600)僅通過三階段(602-606 )中的六個實例(622-632)代表。然而,根據(jù)本發(fā)明實施方式的多個流水線可以包括多個階段和階段的多
個實例。例如,在原子過程建模應(yīng)用中,輸出數(shù)據(jù)結(jié)構(gòu)(638 )可以 代表在原子過程的特定納秒處的狀態(tài),其中原子過程包含成千上萬個 亞原子(sub-atomic)粒子的準確量子狀態(tài),每個亞原子粒子需要流 水線各階段中的數(shù)以千計的計算?;蛘咦鳛榱硪皇纠谝曨l處理應(yīng) 用中,輸出數(shù)據(jù)結(jié)構(gòu)(638 )可以代表由數(shù)以千計像素的當前顯示狀 態(tài)組成的視頻幀,每個像素需要流水線各個階段中的多次計算。
流水線(600)的每個階段(602-606)的每個實例(622-632)實 現(xiàn)為NOC (圖5的102)的分區(qū)(502 )中的獨立IP塊(圖5的104) 上執(zhí)行的計算機程序指令的應(yīng)用級模塊。在此示例中,流水線(600) 是通過階段1的一個實例(608 )、階段2的三個實例(610、 612、 614)和階段3的兩個實例(616、 618)實現(xiàn)的。主機接口處理器(105) 在啟動時通過階段2的實例數(shù)目和階段2的每個實例的網(wǎng)絡(luò)位置來配 置階段1 ( 602、 608 )。階段1 ( 602、 608 )例如可以通過將其結(jié)果 工作負載(622、 624、 626)等同地分布在階段2的實例(610-614) 之間來分布這些結(jié)果工作負載。在啟動時通過階段3的每個實例的網(wǎng) 絡(luò)位置來配置階段2的每個實例(610-614),其中授權(quán)階段2將其 結(jié)果工作負載發(fā)送至階段3。在此示例中,將實例(610、 612) 二者 配置為將其結(jié)果工作負載(628、 630)發(fā)送給階段3的實例(616), 而階段2僅有一個實例(614 )將工作(632 )發(fā)送至階段3的實例(618)。 如果實例(616)試圖執(zhí)行兩次實例(618)的工作負載而變成了瓶頸, 可以實例化階段3的附加實例,如果需要甚至可以在運行時實時地實 例化。
為了進一步闡釋,圖7記載了示出根據(jù)本發(fā)明實施方式的用于通 過NOC的數(shù)據(jù)處理的示例性方法的流程圖。圖7的方法實現(xiàn)在類似 于本說明書上面描述的NOC上,即,在具有IP塊(圖5的104)、 路由器(圖5的110)、存儲器通信控制器(圖5的106)和網(wǎng)絡(luò)接 口控制器(圖5的108)的芯片(圖5的100)上實現(xiàn)的NOC (圖5 的102)。每個IP塊(圖5的104)通過存儲器通信控制器(圖5的106)和網(wǎng)絡(luò)接口控制器(圖5的108)適配至路由器(圖5的110)。 在圖7的方法中,每個IP塊實現(xiàn)為同步或者異步邏輯設(shè)計的可重用 單元,其被用作用于NOC內(nèi)數(shù)據(jù)處理的構(gòu)造塊。
圖7的方法包括將網(wǎng)絡(luò)組織(702)為分區(qū),其中每個分區(qū)包括 至少一個IP塊,并且為每個分區(qū)指派對獨立物理存儲器地址空間的 獨占訪問。此外,在圖7的方法中,兩個或者更多分區(qū)可以共享物理 存儲器地址空間的分段。
在圖7的方法中,將網(wǎng)絡(luò)組織(702)為分區(qū)可以這樣來執(zhí)行 配置與網(wǎng)絡(luò)中的另一路由器相鄰的路由器的分區(qū),其中分區(qū)邊界上的 路由器不包括該分區(qū)外部發(fā)起的、尋址到該分區(qū)內(nèi)部網(wǎng)絡(luò)位置的消 息。在圖7的方法中,將網(wǎng)絡(luò)組織(702)為分區(qū)還可以這樣來執(zhí)行 配置與網(wǎng)絡(luò)內(nèi)的另一路由器相鄰的路由器的分區(qū),其中分區(qū)邊界上的 路由器不包括該分區(qū)內(nèi)部發(fā)起的、尋址到該分區(qū)外部網(wǎng)絡(luò)位置的分區(qū) 消息離開。
在圖7的方法中,將網(wǎng)絡(luò)組織(702 )為分區(qū)還可以這樣來沖丸行 配置不與網(wǎng)絡(luò)內(nèi)的另一路由器相鄰的分區(qū),其中將每個路由器配置為 丟棄來自該路由器的IP塊的、尋址到分區(qū)外部網(wǎng)絡(luò)地址的分組,并 且還將每個路由器配置為丟棄來自分區(qū)外部網(wǎng)絡(luò)地址的、尋址到該路 由器的IP塊的分組。在圖7的方法中,將網(wǎng)絡(luò)組織(702)為分區(qū)還 可以包括實例化分區(qū)上的主機接口處理器,其中分區(qū)上的主機接口處 理器外露接口 ,用于該分區(qū)上執(zhí)行的應(yīng)用與該分區(qū)外部其他計算機資 源之間的通信。
圖7的方法包括由主機接口處理器通過用于程序載入的向量地址 來配置(703 )至少一個分區(qū)中的IP塊上的一個或多個執(zhí)行線程。本 發(fā)明對于可以在IP塊上實現(xiàn)的執(zhí)行線程的數(shù)目沒有限制。為了將IP 塊實現(xiàn)為被動異步邏輯網(wǎng)絡(luò),可以將IP塊稱為實現(xiàn)了零個執(zhí)行線程。 可選地,可以利用通過計算機硬件對多個執(zhí)行線程緣行流水線化的通 用微處理器來實現(xiàn)IP塊。向量是存儲器位置,其內(nèi)容是存儲器地址。 向量地址是向量的存儲器地址。存儲在向量中的存儲器地址是包含將要在開機時被載入IP塊的計算機程序(所謂的初始程序載入或者 "IPL")的存儲器分段的地址。
例如可以通過針對每個執(zhí)行線程的配置寄存器來配置每個IP塊。 每個這樣的配置寄存器可以實現(xiàn)為物理存儲器地址空間中的存儲位 置。在這樣的示例中,可以通過包含向量地址記錄的非易失性存儲器 來配置主機接口處理器,其中每個向量地址與用于IP塊上執(zhí)行線程 的配置寄存器所對應(yīng)的物理地址空間中的地址相關(guān)聯(lián)。在這樣的示例
中,由主機接口處理器通過用于程序載入的向量地址來配置(703 ) 至少 一個分區(qū)中的IP塊上的 一個或多個執(zhí)行線程在NOC加電時這樣 來執(zhí)行通過存儲器裝載指令將相關(guān)的向量地址寫入用于每個執(zhí)行進 程的配置寄存器。因此,通過用于程序載入的向量地址來配置(703 ) IP塊上的執(zhí)行線程有利于每次NOC開機時對NOC的完整和全部的 配置。在啟動之間,可以通過每個向量地址中存儲的新存儲器地址來 配置包含與配置寄存器相關(guān)聯(lián)的向量地址的存儲器,使得每次NOC 開機時,NOC上每個IP塊上的每個線程可以從其向量地址中存儲的 地址裝載不同的程序,這為根據(jù)本發(fā)明實施方式而實現(xiàn)的NOC架構(gòu) 帶來了非并行化的靈活性和能力。
圖7的方法還包括在一個或者多個分區(qū)上執(zhí)行(704) —個或者 多個應(yīng)用。在圖7的方法中,在一個或者多個分區(qū)上執(zhí)行(704) — 個或者多個應(yīng)用包括將至少一個應(yīng)用流水線化到階段中,其中每個 階段是由階段ID表示的、可靈活配置的計算機程序指令模塊;以及 在相同分區(qū)內(nèi)的IP塊上的執(zhí)行線程上執(zhí)行每個階段。
本發(fā)明的示例性實施方式主要是在用于通過NOC的數(shù)據(jù)處理的 全功能計算機系統(tǒng)的上下文中描述的。然而,本領(lǐng)域的讀者將會認識 到,本發(fā)明還可以在被部署在與任何適當?shù)臄?shù)據(jù)處理系統(tǒng)結(jié)合使用的 計算機可讀介質(zhì)上的計算機程序產(chǎn)品中實現(xiàn)。這樣的計算機可讀介質(zhì) 可以是用于機器可讀信息的傳輸介質(zhì)或者可記錄介質(zhì),包括磁介質(zhì)、 光介質(zhì)或者其他適當?shù)慕橘|(zhì)。可記錄介質(zhì)的示例包括硬盤驅(qū)動中的磁 盤或者軟盤、用于光學驅(qū)動的光盤、磁帶、以及本領(lǐng)域技術(shù)人員可以想到的其他介質(zhì)。傳輸介質(zhì)的示例包括用于語音通信的電話網(wǎng)絡(luò)以及 數(shù)字數(shù)據(jù)通信網(wǎng)絡(luò)(例如以太網(wǎng)TM,通過互聯(lián)網(wǎng)協(xié)議進行通信的網(wǎng)絡(luò),
以及萬維網(wǎng))和無線傳輸介質(zhì)(諸如根據(jù)IEEE 802.11系列規(guī)范實現(xiàn)
的網(wǎng)絡(luò))。本領(lǐng)域的技術(shù)人員將會立即認識到,具有適當編程裝置的 任何計算機系統(tǒng)將能夠執(zhí)行在程序產(chǎn)品中實現(xiàn)的本發(fā)明的方法步驟。 本領(lǐng)域的技術(shù)人員將會立即認識到,盡管本說明書中描述的某些示例 性實施方式面向安裝在計算機硬件上并在其上執(zhí)行的軟件,但是,實
從上面的描述將會理解,可以對本發(fā)明的各個實施方式進行修改和改 變,而不會背離本發(fā)明的真實精神。本說明書中的描述僅僅是出于說 明的目的,并且不應(yīng)按照限制性意義來理解。本發(fā)明的范圍僅有所附 權(quán)利要求書的語言限制。
權(quán)利要求
1. 一種利用片上網(wǎng)絡(luò)(“NOC”)進行數(shù)據(jù)處理的方法,所述NOC包括集成處理器(“IP”)塊、路由器、存儲器通信控制器以及網(wǎng)絡(luò)接口控制器,每個IP塊通過存儲器通信控制器和網(wǎng)絡(luò)接口控制器適配至路由器,每個存儲器通信控制器控制IP塊和存儲器之間的通信,并且每個網(wǎng)絡(luò)接口控制器控制通過路由器的IP塊間通信,所述方法包括將所述網(wǎng)絡(luò)組織為若干分區(qū),每個分區(qū)包括至少一個IP塊,每個分區(qū)被指派有對獨立物理存儲器地址空間的獨占訪問;以及在一個或多個分區(qū)上執(zhí)行一個或多個應(yīng)用。
2. 根據(jù)權(quán)利要求1所述的方法,其中,將所述網(wǎng)絡(luò)組織為分區(qū)進 一步包括配置所述網(wǎng)絡(luò)內(nèi)彼此相鄰的路由器的分區(qū),其中所述分區(qū) 的邊界上的路由器不包括所述分區(qū)外部發(fā)起的并且尋址到所述分區(qū) 內(nèi)部網(wǎng)絡(luò)位置的消息。
3. 根據(jù)權(quán)利要求1所述的方法,其中,將所述網(wǎng)絡(luò)組織為分區(qū)進 一步包括配置所述網(wǎng)絡(luò)內(nèi)彼此相鄰的路由器的分區(qū),其中,所述分 區(qū)的邊界上的路由器不包括所述分區(qū)內(nèi)部發(fā)起的并且尋址到所述分 區(qū)外部網(wǎng)絡(luò)位置的分區(qū)消息離開。
4. 根據(jù)權(quán)利要求1所述的方法,其中,將所述網(wǎng)絡(luò)組織為分區(qū)進 一步包括配置所述網(wǎng)絡(luò)內(nèi)彼此不都相鄰的路由器的分區(qū),每個路由 器被配置為丟棄來自所述路由器的IP塊的并且尋址到所述分區(qū)外部 網(wǎng)絡(luò)地址的分組,并且還被配置為丟棄來自所述分區(qū)外部網(wǎng)絡(luò)地址的 并且尋址到所述路由器的IP塊的分組。
5. 根據(jù)權(quán)利要求1所述的方法,其中,將所述網(wǎng)絡(luò)組織為分區(qū)進 一步包括實例化分區(qū)上的主機接口處理器,所述分區(qū)上的所述主機 接口處理器外露有用于所述分區(qū)上執(zhí)行的所述應(yīng)用與所述分區(qū)外部 的其他計算機資源之間的通信的接口 。
6. 根據(jù)權(quán)利要求5所述的方法,進一步包括由所述主機接口處理器通過用于程序載入的向量地址來配置所述分區(qū)中的所述IP塊上 的一個或多個執(zhí)行線程。
7. 根據(jù)權(quán)利要求1所述的方法,其中,在一個或者多個分區(qū)上執(zhí)行一個或者多個應(yīng)用進一步包括將至少一個應(yīng)用流水線化到若干階段中,每個階段包含由階段ID 標識的、可靈活配置的計算機程序指令模塊;以及在相同分區(qū)中的IP塊上的執(zhí)行線程上執(zhí)行每個階段。
8. 根據(jù)權(quán)利要求1所述的方法,其中,至少兩個分區(qū)共享物理存 儲器地址空間的分段。
9. 一種片上網(wǎng)絡(luò)("NOC"),所述NOC包括集成處理器("IP")塊、路由器、存儲器通信控制器以及網(wǎng)絡(luò)接 口控制器,每個IP塊通過存儲器通信控制器和網(wǎng)絡(luò)接口控制器適配 至路由器,每個存儲器通信控制器控制IP塊和存儲器之間的通信, 并且每個網(wǎng)絡(luò)接口控制器控制通過路由器的IP塊間通信;所述網(wǎng)絡(luò)被組織為若干分區(qū),每個分區(qū)包括至少一個IP塊,每 個分區(qū)被指派有對獨立物理存儲器地址空間的獨占訪問;以及在一個或多個分區(qū)上4丸行的一個或多個應(yīng)用。
10. 根據(jù)權(quán)利要求9所述的NOC,其中,被組織為若干分區(qū)的所 述網(wǎng)絡(luò)進一步包括所述網(wǎng)絡(luò)內(nèi)彼此相鄰的路由器的分區(qū),其中所述 分區(qū)的邊界上的路由器不包括所述分區(qū)外部發(fā)起的并且尋址到所述 分區(qū)內(nèi)部網(wǎng)絡(luò)位置的消息。
11. 根據(jù)權(quán)利要求9所述的NOC,其中,被組織為若干分區(qū)的所 述網(wǎng)絡(luò)進一步包括所述網(wǎng)絡(luò)內(nèi)彼此相鄰的路由器的分區(qū),其中所述 分區(qū)的邊界上的路由器不包括所述分區(qū)內(nèi)部發(fā)起的并且尋址到所述 分區(qū)外部網(wǎng)絡(luò)位置的分區(qū)消息離開。
12. 根據(jù)權(quán)利要求9所述的NOC,其中,被組織為若干分區(qū)的所 述網(wǎng)絡(luò)進一步包括所述網(wǎng)絡(luò)內(nèi)彼此不都相鄰的路由器的分區(qū),每個 路由器被配置為丟棄來自所述路由器的IP塊的并且尋址到所述分區(qū) 外部網(wǎng)絡(luò)地址的分組,并且還被配置為丟棄來自所述分區(qū)外部網(wǎng)絡(luò)地址的并且尋址到所述路由器的IP塊的分組。
13. 根據(jù)權(quán)利要求9所述的NOC,其中,被組織為若干分區(qū)的所 述網(wǎng)絡(luò)進一步包括在分區(qū)上實例化的主機接口處理器,所述分區(qū)上 的所述主機接口處理器外露有用于所述分區(qū)上執(zhí)行的所述應(yīng)用與所 述分區(qū)外部的其他計算機資源之間的通信的接口 。
14. 根據(jù)權(quán)利要求9所述的NOC,其中,在一個或者多個分區(qū)上 執(zhí)行的一個或者多個應(yīng)用進一步包括被流水線化到若干階段中的至少一個所述應(yīng)用,每個階段包含由 階段ID標識的、可靈活配置的計算機程序指令模塊;以及 在相同分區(qū)中的IP塊上的執(zhí)行線程上執(zhí)行的每個階段。
15. 根據(jù)權(quán)利要求9所述的NOC,其中,至少兩個分區(qū)共享物理 存儲器地址空間的分段。
全文摘要
本發(fā)明公開一種片上網(wǎng)絡(luò)(“NOC”),包括集成處理器(“IP”)塊、路由器、存儲器通信控制器以及網(wǎng)絡(luò)接口控制器,每個IP塊通過存儲器通信控制器和網(wǎng)絡(luò)接口控制器適配至路由器,其中每個存儲器通信控制器控制IP塊和存儲器之間的通信,并且每個網(wǎng)絡(luò)接口控制器控制通過路由器的IP塊間通信,其中所述網(wǎng)絡(luò)被組織為分區(qū),每個分區(qū)包括至少一個IP塊,每個分區(qū)被指派有對獨立物理存儲器地址空間的獨占訪問;以及在一個或多個分區(qū)上執(zhí)行的一個或多個應(yīng)用。
文檔編號H04L29/06GK101447986SQ200810149270
公開日2009年6月3日 申請日期2008年9月22日 優(yōu)先權(quán)日2007年11月27日
發(fā)明者E·O·梅德里奇, P·E·沙德特, R·A·希勒, R·D·胡佛 申請人:國際商業(yè)機器公司