專利名稱:在處理器單元中的多個(gè)處理元件間提供有效通信的方法和裝置的制作方法
相互參考的交叉引用無可用的。
關(guān)于聯(lián)合發(fā)起研究的聲明無可用的背景如本領(lǐng)域技術(shù)人員已知的,諸如路由器的數(shù)據(jù)轉(zhuǎn)發(fā)裝置以相對(duì)較高的線速率處理到來的分組,如OC-192(10Gbps)。數(shù)據(jù)轉(zhuǎn)發(fā)裝置可包括網(wǎng)絡(luò)處理器,諸如多核心的,例如Intel公司的單模IXP 1200網(wǎng)絡(luò)處理器。在具有多個(gè)處理元件的網(wǎng)絡(luò)處理器中,接收到的分組的頭信息被發(fā)送到一個(gè)處理線程,該處理線程對(duì)該分組進(jìn)行分類并根據(jù)各種運(yùn)算法則修改網(wǎng)絡(luò)狀態(tài)。這些運(yùn)算法則對(duì)由同一數(shù)據(jù)流中的多個(gè)分組共享的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理。但是,該被共享的數(shù)據(jù)分組應(yīng)按照分組的到達(dá)順序被訪問。有效的將控制和數(shù)據(jù)傳遞到下一個(gè)屬于同一數(shù)據(jù)流的一個(gè)分組的線程處理過程是困難的。例如,一個(gè)網(wǎng)絡(luò)處理器可包括16個(gè)處理元件,這些處理元件必須交換控制和/或數(shù)據(jù)。
附圖的簡(jiǎn)要說明通過下面結(jié)合附圖的詳細(xì)說明,可更加全面的理解包含在此的實(shí)施例,其中
圖1是一個(gè)示范系統(tǒng)的圖,該系統(tǒng)包括一個(gè)具有一個(gè)網(wǎng)絡(luò)處理器單元的網(wǎng)絡(luò)裝置,該網(wǎng)絡(luò)處理器單元具有一個(gè)文本轉(zhuǎn)發(fā)總線;圖2是一個(gè)示范網(wǎng)絡(luò)處理器的圖,該網(wǎng)絡(luò)處理器具有一個(gè)文本轉(zhuǎn)發(fā)總線;圖3是一個(gè)示范運(yùn)行微碼的處理元件(PE)的圖;圖4是一個(gè)處理單元的結(jié)構(gòu)圖,該處理單元具有多個(gè)連接到一個(gè)文本轉(zhuǎn)發(fā)總線的處理元件;圖5是一個(gè)示范文本轉(zhuǎn)發(fā)元件的結(jié)構(gòu)圖;圖6是一個(gè)時(shí)序圖,其表示了在一個(gè)文本轉(zhuǎn)發(fā)總線上以32比特模式的控制和數(shù)據(jù)傳遞;
圖6A是一個(gè)時(shí)序圖,其表示了在一個(gè)文本轉(zhuǎn)發(fā)總線上以64比特模式的控制和數(shù)據(jù)傳遞;圖7是一個(gè)處理單元的結(jié)構(gòu)圖,該處理單元具有多個(gè)與一個(gè)具有一個(gè)開關(guān)的文本轉(zhuǎn)發(fā)總線相連接的處理元件;和圖8是一個(gè)示范文本轉(zhuǎn)發(fā)總線開關(guān)執(zhí)行的結(jié)構(gòu)圖。
詳細(xì)說明圖1表示一個(gè)示例的網(wǎng)絡(luò)裝置2,其包括具有多個(gè)處理元件(PE)的多個(gè)網(wǎng)絡(luò)處理器單元(NPU),這些處理元件通過一個(gè)文本轉(zhuǎn)發(fā)總線結(jié)構(gòu)互相連接。該NPU對(duì)從一個(gè)數(shù)據(jù)源6到來的分組進(jìn)行處理并將處理過的數(shù)據(jù)發(fā)送到一個(gè)目的地裝置8。該網(wǎng)絡(luò)裝置2可包括例如一個(gè)路由器、一個(gè)開關(guān)等等。例如,該數(shù)據(jù)源6和目的地裝置8可包括多個(gè)目前已知的或尚未開發(fā)出的網(wǎng)絡(luò)裝置,它們可通過一個(gè)通信路徑連接,諸如一個(gè)具有OC-192(10Gbps)線速度的光路徑。
該例舉的網(wǎng)絡(luò)裝置2的特點(diǎn)在于一個(gè)線路卡LC1-LC4(“刀片”)的集合,這些線路卡通過一個(gè)開關(guān)結(jié)構(gòu)SF(例如一個(gè)交叉開關(guān)或共享存儲(chǔ)器的開關(guān)結(jié)構(gòu))相互連接。該開關(guān)結(jié)構(gòu)SF例如可符合CSIX(普通開關(guān)接口)或其它結(jié)構(gòu)技術(shù),諸如高速傳輸、極大帶寬、PCI(外圍部件互聯(lián)),基于SONET的分組、高速IO、和/或UTOPIA(用于ATM的通用測(cè)試和操作PHY接口)。
單個(gè)的線路卡(例如LC1)可包括一個(gè)或多個(gè)物理層(PHY)裝置PD1、PD2(例如光、有線或無線的PHY),它們掌握著基于網(wǎng)絡(luò)連接的通信。這些PHYPD在由不同網(wǎng)絡(luò)介質(zhì)承載的物理信號(hào)和由數(shù)字系統(tǒng)使用的比特(例如“0”和“1”)之間進(jìn)行轉(zhuǎn)換。線路卡LC也可包括成幀裝置(如以太網(wǎng)、同步光網(wǎng)絡(luò)(SONET)、高級(jí)數(shù)據(jù)鏈路(HDLC)成幀器或其它“二層”裝置)FD1、FD2,它們能夠在諸如錯(cuò)誤檢測(cè)和/或修正的幀上執(zhí)行操作。所表示的線路卡LC也可包括一個(gè)或多個(gè)網(wǎng)絡(luò)處理器NP1、NP2,其可對(duì)通過PHY接收到的分組執(zhí)行分組處理操作,并通過開關(guān)結(jié)構(gòu)SF將該分組傳遞給一個(gè)提供有出口接口的線路卡LC以轉(zhuǎn)發(fā)該分組。潛在的,該網(wǎng)絡(luò)處理器NP可執(zhí)行“二層”職責(zé)而不是成幀裝置FD。
圖2例示了一個(gè)包括一個(gè)處理器12的系統(tǒng)10,其可以是一個(gè)網(wǎng)絡(luò)處理器。該處理器12連接到一個(gè)或多個(gè)I/O裝置,例如,網(wǎng)絡(luò)裝置14和16,以及一個(gè)存儲(chǔ)器系統(tǒng)18。處理器12包括多個(gè)處理器(“處理引擎”或“PE”)20,每一個(gè)具有多個(gè)受執(zhí)行線程22控制的硬件。在所表示的例子中,具有“n”個(gè)處理元件20,并且每個(gè)處理元件20能夠處理多個(gè)線程22。每個(gè)處理元件20連接到并且能夠與相鄰的處理元件通信。如下所詳細(xì)描述的,PE20能夠與一個(gè)文本轉(zhuǎn)發(fā)總線(CFB)結(jié)構(gòu)相互連接,該總線結(jié)構(gòu)能夠使在PE中的控制和數(shù)據(jù)信息有效傳遞。
在一個(gè)實(shí)施例中,處理器12也包括一個(gè)通用處理器24,該處理器24協(xié)助對(duì)處理元件20和處理器12的其它資源裝載微碼控制,并執(zhí)行其它諸如操作協(xié)議等的計(jì)算機(jī)類型的功能。在網(wǎng)絡(luò)處理應(yīng)用中,處理器24也能對(duì)不能由處理元件20掌握的更高層的網(wǎng)絡(luò)處理任務(wù)提供支持。
每一個(gè)處理元件20都能使用共享資源進(jìn)行操作,這些共享資源例如包括存儲(chǔ)器系統(tǒng)18、一個(gè)外部總線接口26、I/O接口28和控制和狀態(tài)寄存器(CSR)32。I/O接口28負(fù)責(zé)將處理器12控制并連接到I/O裝置14、16。存儲(chǔ)器系統(tǒng)18包括一個(gè)動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(DRAM)34,可使用一個(gè)DRAM控制器36和一個(gè)靜態(tài)隨機(jī)訪問存儲(chǔ)器(SRAM)38對(duì)其進(jìn)行訪問,可使用一個(gè)SRAM控制器40對(duì)SRAM38進(jìn)行訪問。盡管沒有示出,處理器12也將包括一個(gè)非易失性的存儲(chǔ)器以支持引導(dǎo)操作。DRAM34和DRAM控制器36典型的用于處理例如在網(wǎng)絡(luò)應(yīng)用中的大篇幅數(shù)據(jù),處理來自網(wǎng)絡(luò)分組的有效載荷。在網(wǎng)絡(luò)實(shí)現(xiàn)中,SRAM38和SRAM控制器40用于低潛伏期、快速訪問任務(wù),例如,訪問查表等。
裝置14和16可以是任何能夠發(fā)送和/或接收網(wǎng)絡(luò)業(yè)務(wù)數(shù)據(jù)的網(wǎng)絡(luò)裝置,諸如成幀/MAC(媒體訪問控制)裝置,例如,用于連接到基于T以太網(wǎng)、千兆以太網(wǎng)、ATM(異步傳輸模式)或其它類型網(wǎng)絡(luò)的10/100的裝置,或用于連接到一個(gè)開關(guān)結(jié)構(gòu)的裝置。例如,在一個(gè)配置中,網(wǎng)絡(luò)裝置14可以是一個(gè)以太網(wǎng)MAC裝置(連接到一個(gè)以太網(wǎng),沒有示出),其向處理器12和裝置16發(fā)送數(shù)據(jù),裝置16可以是一個(gè)開關(guān)結(jié)構(gòu)裝置,該開關(guān)結(jié)構(gòu)裝置從用于向一個(gè)開關(guān)結(jié)構(gòu)上發(fā)送的處理器12接收處理過的數(shù)據(jù)。
此外,每個(gè)網(wǎng)絡(luò)裝置14、16可包括多個(gè)端口來被處理器12服務(wù)。I/O接口28因此支持一種或多種類型的接口,諸如一個(gè)用于分組和在一個(gè)PHY裝置和一個(gè)更高層(如鏈路層)間的信元傳遞的接口,或者一個(gè)在業(yè)務(wù)管理器和用于異步傳輸模式(ATM)、因特網(wǎng)協(xié)議(IP)、以太網(wǎng)以及類似的數(shù)據(jù)通信應(yīng)用之間的接口。I/O接口28可包括單獨(dú)接收和發(fā)送塊,并且每一個(gè)可對(duì)一個(gè)由處理器12支持的特殊接口單獨(dú)配置。
其它裝置,諸如主計(jì)算機(jī)和/或總線外圍設(shè)備(沒有示出),可連接到一個(gè)由外部總線接口26控制的外部總線,該外部總線接口26也可受處理器12的服務(wù)。
通常,作為一個(gè)網(wǎng)絡(luò)處理器,處理器12能夠接口到多種類型的通信裝置或接收/發(fā)送數(shù)據(jù)的接口。處理器12作為一個(gè)網(wǎng)絡(luò)處理器的功能可以從一個(gè)類似于網(wǎng)絡(luò)裝置14的網(wǎng)絡(luò)裝置接收信息單元,并以并行的方式處理這些單元。信息單元可包括一個(gè)整個(gè)的網(wǎng)絡(luò)分組(例如以太網(wǎng)分組)或一個(gè)分組的一部分,例如是一個(gè)諸如普通交換接口(或“CSIX”)信元或ATM信元、或分組段的信元。也可以打算使用其它單元。
處理器12的每一個(gè)功能單元連接到一個(gè)內(nèi)部總線結(jié)構(gòu)或內(nèi)部連接42。存儲(chǔ)器總線44a、44b分別將存儲(chǔ)器控制器36和40連接到存儲(chǔ)器系統(tǒng)18的各個(gè)存儲(chǔ)器單元DRAM34和SRAM38。I/O接口28通過各個(gè)I/O總線線路46a和46b分別連接到裝置14和16。
參考圖3,示出了一個(gè)處理元件20的例子。處理元件(PE)20包括一個(gè)控制單元50、控制邏輯(或微控制器)52和一個(gè)文本判別器/事件邏輯53,其中控制單元50包括一個(gè)控制存儲(chǔ)器51??刂拼鎯?chǔ)器51用于存儲(chǔ)微碼。該微碼可由處理器24裝載。該P(yáng)E線程22的功能從而由通過用于一個(gè)特殊用戶的應(yīng)用的核心處理器24所裝載進(jìn)處理元件的控制存儲(chǔ)器51內(nèi)的微碼來確定。
微控制器52包括一個(gè)指令解碼器和用于每個(gè)所支持的線程的程序計(jì)數(shù)(PC)單元。文本判別器/事件邏輯53可從任何共享資源接收消息,例如SRAM38、DRAM34或處理器核心24等等。這些消息提供是否一個(gè)所請(qǐng)求的功能已經(jīng)完成的信息。
PE20也包括一個(gè)執(zhí)行數(shù)據(jù)路徑54和一個(gè)連接到控制單元50的通用寄存器(GPR)文件單元56。數(shù)據(jù)路徑54可包括多個(gè)不同數(shù)據(jù)路徑元件,例如一個(gè)ALU(算術(shù)邏輯單元)、一個(gè)復(fù)用器和一個(gè)內(nèi)容可訪問存儲(chǔ)器(CAM)。
GPR文件單元56(GPR)的寄存器在單獨(dú)的兩側(cè)提供,A側(cè)56a和B側(cè)56b。在程序控制下對(duì)GPR進(jìn)行單獨(dú)的讀取和寫入。當(dāng)作為指令中的一個(gè)源時(shí),GPR向數(shù)據(jù)路徑54提供操作數(shù)。當(dāng)作為指令中的一個(gè)目的地時(shí),它們被寫入數(shù)據(jù)路徑54的結(jié)果。指令指定選為源或目的地的特殊GPR的寄存器數(shù)目。由控制單元50提供的指令中的OP碼(Opcode)選擇將要執(zhí)行由該指令定義的操作的數(shù)據(jù)路徑元件。
PE20進(jìn)一步包括一個(gè)寫入傳遞(傳遞出)寄存器文件62和一個(gè)讀取傳遞(傳遞進(jìn))寄存器文件64。寫入傳遞寄存器文件62的寫入傳遞寄存器把將要寫入到一個(gè)資源的外部數(shù)據(jù)存儲(chǔ)到處理元件。在示范實(shí)施例中,該寫入寄存器文件被分割成用于SRAM(SRAM寫入傳遞寄存器62a)和DRAM(DRAM寫入傳遞寄存器62b)的各個(gè)寄存器文件。讀取傳遞寄存器文件64用于把來自一個(gè)外部資源的返回?cái)?shù)據(jù)存儲(chǔ)到處理元件20。類似于寫入傳遞寄存器文件,該讀取傳遞寄存器文件被分別分割成用于SRAM和DRAM的各個(gè)寄存器文件,寄存器文件64a和64b。傳遞寄存器文件62、64連接到數(shù)據(jù)路徑54和控制存儲(chǔ)器50。應(yīng)當(dāng)注意,處理器12的結(jié)構(gòu)支持允許任何PE訪問任何其它PE的傳遞寄存器的“發(fā)射器”指令。
同樣包括在PE20中的是本地存儲(chǔ)器66。本地存儲(chǔ)器66由寄存器68a(“LM_Addr_1”)、68b(“LM_Addr_0”)尋址,其向數(shù)據(jù)路徑54提供操作數(shù),并從作為目的地的數(shù)據(jù)路徑54接收結(jié)果。
PE20也包括本地控制和狀態(tài)寄存器(CSR)70,其連接到傳遞寄存器,用于存儲(chǔ)本地內(nèi)部線程和全局事件信令信息,以及其它控制和狀態(tài)信息。其它存儲(chǔ)器和功能單元,如,循環(huán)冗余碼校驗(yàn)(CRC)單元(未示出),也可包括在該處理單元中。
PE20的其它寄存器類型包括下一個(gè)相鄰(NN)寄存器74,其連接到控制存儲(chǔ)器50和執(zhí)行數(shù)據(jù)路徑54,用于存儲(chǔ)從一個(gè)在基于下一個(gè)相鄰輸入信號(hào)76a的傳遞路徑處理中的先前相鄰的PE(“上行流PE”),或從同一個(gè)PE接收到的信息,并受存儲(chǔ)在本地CSR70中的信息的控制。下一個(gè)鄰居將信號(hào)76b輸出到在一個(gè)處理傳遞路徑中的下一個(gè)相鄰PE(“下行流PE”),該處理傳遞路徑可在本地CSR70的控制下提供。從而,在任何PE上的線程可通過下一個(gè)鄰居信令將線程發(fā)信號(hào)到下一個(gè)PE上。如下所詳細(xì)描述的,處理元件可由一個(gè)文本轉(zhuǎn)發(fā)總線(CFB)相互連接,從而在多個(gè)PE中有效的傳遞數(shù)據(jù)和控制信息。
雖然例示了硬件并在此進(jìn)行了一些詳細(xì)的描述,應(yīng)當(dāng)理解所例示的實(shí)施例和在此對(duì)文本轉(zhuǎn)發(fā)總線的描述可應(yīng)用于多種硬件、處理器、結(jié)構(gòu)、裝置、開發(fā)系統(tǒng)/工具等等。
圖4例示了文本轉(zhuǎn)發(fā)總線(CFB)結(jié)構(gòu)100,該結(jié)構(gòu)相互連接下一個(gè)相鄰結(jié)構(gòu)中的一個(gè)網(wǎng)絡(luò)處理單元的處理元件102a-102q(PE0-PE15)。第16個(gè)PE102。(PE15)連接到第一個(gè)PE102a(PE0)。文本轉(zhuǎn)發(fā)總線(CFB)使用下一個(gè)鄰居連接以一種環(huán)形相互連接結(jié)構(gòu)連接多個(gè)PE。每一個(gè)處理元件可包括一個(gè)最大數(shù)目的稱為線程的處理文本,如8個(gè)。由于處理需求從分組到分組是變化的,以時(shí)間順序處理所有分組是困難的。為了在同一數(shù)據(jù)流中挨個(gè)的處理分組,需要一個(gè)線程來將某些所依賴的變量信息傳遞到分配給用于那一數(shù)據(jù)流的下一分組的線程。這個(gè)下一個(gè)等待中的線程可以對(duì)當(dāng)前線程不是“關(guān)閉的”,其中關(guān)閉表示相同或相鄰的PE。正如下面所詳細(xì)描述的,CFB結(jié)構(gòu)減小了在多個(gè)線程間傳遞文本數(shù)據(jù)中的過多的延遲。
雖然示出了16個(gè)處理元件,應(yīng)當(dāng)理解可使用任何可行數(shù)目的處理元件。應(yīng)進(jìn)一步理解到,為了符合特殊應(yīng)用的需要,可選PE與PE相互連接的結(jié)構(gòu)對(duì)于現(xiàn)有技術(shù)中的普通技術(shù)是容易和顯然的。此外,雖然主要表示了文本轉(zhuǎn)發(fā)總線并配合傳遞文本信息進(jìn)行了描述,應(yīng)當(dāng)理解,可使用文本轉(zhuǎn)發(fā)總線從一個(gè)處理元件向另一個(gè)處理元件傳遞任何類型的數(shù)據(jù)、信息、信令、控制等等。
如圖5所示,每個(gè)PE102包括一個(gè)CFB電路150,該電路150具有一個(gè)存儲(chǔ)器或重定時(shí)元件152,例如寄存器,其緩存CFB數(shù)據(jù)。從一個(gè)存儲(chǔ)器元件152到下一個(gè)存儲(chǔ)器元件的路徑在一個(gè)預(yù)定的頻率上操作。每個(gè)CFB電路150進(jìn)一步包括一個(gè)諸如FIFO的輸入存儲(chǔ)器機(jī)構(gòu)154和一個(gè)輸出存儲(chǔ)器機(jī)構(gòu)156。該輸入和輸出存儲(chǔ)器機(jī)構(gòu)154、156能存儲(chǔ)數(shù)據(jù)并控制信息。該輸出存儲(chǔ)器機(jī)構(gòu),其可被理解為“數(shù)據(jù)從存儲(chǔ)器出去”,控制輸出的數(shù)據(jù)直到將該數(shù)據(jù)置于總線上為止。在一個(gè)實(shí)施例中,該輸出存儲(chǔ)器機(jī)構(gòu)156支撐8個(gè)長(zhǎng)字(LW)數(shù)據(jù)。在寫入數(shù)據(jù)前,輸入PE/線程應(yīng)檢查該輸出存儲(chǔ)器機(jī)構(gòu)156中是否有足夠可用的空閑空間。如果空間可用,則寫入數(shù)據(jù)。否則PE/線程等待直到通過檢測(cè)其狀態(tài)得知該輸出存儲(chǔ)器機(jī)構(gòu)156中的空間成為可用為止。
每個(gè)CFB電路150還包括一個(gè)數(shù)據(jù)路徑復(fù)用器158以從先前的PE或從輸出存儲(chǔ)器機(jī)構(gòu)156傳遞數(shù)據(jù)160。類似的,一個(gè)控制復(fù)用器162從先前的PE或從輸出存儲(chǔ)器機(jī)構(gòu)156傳遞控制信息。解碼器162通過一個(gè)復(fù)用選擇信號(hào)163確定經(jīng)過該數(shù)據(jù)和控制復(fù)用器158、162傳遞的路徑,在下文將更加全面的描述。
在一個(gè)實(shí)施例中,CFB傳遞的塊大小對(duì)于32比特模式能達(dá)到2個(gè)長(zhǎng)字(32比特),對(duì)于64比特模式能達(dá)到4個(gè)長(zhǎng)字。兩種模式使用兩個(gè)底盤周期以從一個(gè)處理元件向傳遞路徑方式中的下一個(gè)傳遞數(shù)據(jù)塊。
在一個(gè)特殊的實(shí)施例中,CFB結(jié)構(gòu)包括一個(gè)例如可為12比特寬度的控制總線,和一個(gè)例如可為32或64比特寬度的數(shù)據(jù)總線。該控制總線承載用于在數(shù)據(jù)總線上傳輸?shù)臄?shù)據(jù)的控制信息??刂菩畔⒈环譃樵谝粋€(gè)周期的第一部分發(fā)送的第一部分和在該周期的第二部分發(fā)送的第二部分。
表1定義了一個(gè)示例的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)定義為32和64比特模式的CFB結(jié)構(gòu)。
表1用于32比特模式和64比特模式的控制和數(shù)據(jù)總線字段說明
圖6例示了一個(gè)時(shí)序圖200,其包括一個(gè)用于第四個(gè)PE102d的輸入上的CFB的時(shí)序圖200a(圖4),其可稱為PE4,和一個(gè)用于PE4的輸出上的CFB的時(shí)序圖200b。以32比特模式表示該操作。
在詳細(xì)描述該時(shí)序圖200以前,應(yīng)當(dāng)注意可通過分成3類來幫助理解CFB的操作1.當(dāng)CFB元件象緩存器(重定時(shí)元件)一樣對(duì)已經(jīng)在該總線上的數(shù)據(jù)工作時(shí)。
2.當(dāng)CFB元件從對(duì)其指定的總線拉取數(shù)據(jù)時(shí)。
3.當(dāng)CFB元件在感覺到一個(gè)空時(shí)隙后在該總線上插入一個(gè)新數(shù)據(jù)時(shí)。
系統(tǒng)時(shí)鐘202控制PE交互和一個(gè)傳遞開始(SOT)204信號(hào)以及在控制總線208上的控制信息的所有定時(shí),該傳遞開始信號(hào)表示在數(shù)據(jù)總線206上的數(shù)據(jù)開始。為了舉例說明,總線行為信息210識(shí)別對(duì)于當(dāng)前傳遞周期有影響的PE。
在引入的時(shí)序圖200a的一個(gè)C1周期中,由PE4接收第一和第二數(shù)據(jù)字D0、D1和用于PE7的第一和第二控制字C0、C1。對(duì)于第二周期C2,CFB是空的,即總線上不存在控制或數(shù)據(jù)字。在第三周期C3,CFB上存在對(duì)于PE4的數(shù)據(jù)字D0、D1和控制字C0、C1。如在該輸出時(shí)序圖200b中所能見到的,PE4將數(shù)據(jù)和控制字D0、D1、C0、C1帶離該總線并使這些時(shí)隙對(duì)使用是空的和可用的。
在第四個(gè)周期C4中,對(duì)于PE8的數(shù)據(jù)和控制字D0、C0、C1被沿著CFB傳遞給了PE5,其是PE4的下一個(gè)相鄰的PE。在第五個(gè)周期C5中,PE4將對(duì)于PE7的數(shù)據(jù)和控制字D0、D1、C0、C1插入到CFB上。PE7在收到后將把這些數(shù)據(jù)和控制字帶離該總線。如所能見到的,CFB在C5的開始PE4的輸入處是空的,使PE4對(duì)于一個(gè)下行流PE將數(shù)據(jù)插入到CFB上。
圖6A表示了一個(gè)用于64比特模式的時(shí)序圖200’。很容易可以見到,與圖6的時(shí)序圖200具有實(shí)質(zhì)上的類似。為了簡(jiǎn)短,在圖6A中參考圖6是多余的/明顯的特征不在做說明。在64比特模式中,第一、第二、第三和第四數(shù)據(jù)字D0、D1、D2、D3被置于該總線上。第一數(shù)據(jù)字D0被置于比特[31∶0]上,而第二數(shù)據(jù)字D1被并行置于比特[63∶32]上。第三數(shù)據(jù)字D2在第一個(gè)字之后被置于比特[31∶0]上,并且第四數(shù)據(jù)字D4在第二個(gè)字之后被置于比特[63∶32]上。
結(jié)合圖6再次參考圖5,多種CFB的操作可進(jìn)一步詳細(xì)描述。如上面所描述的,對(duì)于第一周期C1,CFB元件150可對(duì)于已經(jīng)在總線上的數(shù)據(jù)提供一個(gè)緩存器(重定時(shí)元件)。解碼器162解碼控制信息,如控制字[11∶0]和“傳遞開始”(SOT)。當(dāng)SOT為“1”并且C0[11]為“1”時(shí),CFB上存在有效數(shù)據(jù)。如果該數(shù)據(jù)不是用于這個(gè)PE的,解碼器162輸出對(duì)復(fù)用選擇信號(hào)產(chǎn)生一個(gè)邏輯“0”值,從而已經(jīng)在該總線上的數(shù)據(jù)/控制信息將通過復(fù)用器158、162傳遞給下一個(gè)PE。如果解碼器162解碼的時(shí)隙是空的,例如SOT=1并且C0[11]=0,則復(fù)用選擇163信號(hào)為邏輯“1”,并且如果存在,PE將有效數(shù)據(jù)和控制字插入。如果該P(yáng)E沒有用于傳遞的任何有效數(shù)據(jù),其將C0[11]=0再次插入到總線上,從而傳播該空時(shí)隙。
如在第三個(gè)周期C3中所示的,一個(gè)PE能從指定于該P(yáng)E的CFB拉取數(shù)據(jù)。當(dāng)解碼器162解碼SOT=1并且C0[11]=1時(shí),該總線上的數(shù)據(jù)是有效的。其將該P(yáng)E數(shù)與它自己的數(shù)目相比較,并確定是否匹配。如果匹配,則該總線上的數(shù)據(jù)塊是用于該P(yáng)E的。該數(shù)據(jù)被拉進(jìn)并寫入在由線程數(shù)目和寄存器數(shù)目所定義的位置上。如果定義了對(duì)于該事件的一個(gè)信號(hào),該信號(hào)也對(duì)于該線程發(fā)送。當(dāng)該數(shù)據(jù)被帶離了該總線時(shí),時(shí)隙為空并且解碼器162對(duì)該時(shí)隙產(chǎn)生一個(gè)為“1”的復(fù)用選擇信號(hào)163。如果PE在CFB總線上具有用于傳遞的有效數(shù)據(jù),其連同為“1”的C0[11]一起插入數(shù)據(jù)/控制字。如果PE不具有任何用于傳遞的有效數(shù)據(jù),其將C0[11]寫為“0”從而標(biāo)志該時(shí)隙為空。
如在第五個(gè)周期C5中所示的,一個(gè)CFB元件能在感覺到一個(gè)空時(shí)隙之后將數(shù)據(jù)插入到CFB上。當(dāng)解碼器162將復(fù)用選擇信號(hào)163設(shè)置為“1”時(shí),該P(yáng)E能將新數(shù)據(jù)插入到該總線上。為了將數(shù)據(jù)放置到總線上,依照表1產(chǎn)生控制字C0、C1并將其寫入到該總線上的各個(gè)空時(shí)隙中。連同控制字C0、C1,將相關(guān)數(shù)據(jù)寫入到該數(shù)據(jù)總線上。如表1中所示,C0[9∶8]定義了LW(長(zhǎng)字)有效的數(shù)目。如果總線處于64比特模式,將數(shù)據(jù)字D0和D1插入到該周期的第一部分中的D0[31∶0]和D1[63∶32]中,并將D2和D3寫入到該周期的第二部分中的D0[31∶0]和D1[63∶32]中。
容易看到,對(duì)于16個(gè)元件的配置,PE0和PE15間的距離是15個(gè)底盤時(shí)鐘周期的最小值。類似的,由于CFB總線僅在前進(jìn)方向中傳播數(shù)據(jù),PE1和PE0間的距離也是15個(gè)時(shí)鐘周期的最小值。但是,由于一個(gè)線程分配模塊能將連續(xù)的分組分配給在該CFB結(jié)構(gòu)中相互關(guān)閉的那些線程,因而最大的時(shí)鐘周期傳遞也是最小的。例如,參看圖4,PE3對(duì)PE2是關(guān)閉的,但由于CFB僅在前進(jìn)方向中傳播數(shù)據(jù),因而PE1不是關(guān)閉的。由于平均起來大多數(shù)連續(xù)的線程(具有連續(xù)分組的線程)是相對(duì)關(guān)閉的(在一對(duì)底盤周期內(nèi)),以上定義的總線結(jié)構(gòu)可在等待的PE間有效的移動(dòng)數(shù)據(jù)。因而,可在一個(gè)所謂的線程池程序模型中實(shí)現(xiàn)OC-192的性能,或接近與OC-192的性能。
在圖7所示的另一個(gè)實(shí)施例中,一個(gè)CFB開關(guān)具有第一和第二模塊302a、302b,其可被加入到圖4的結(jié)構(gòu)中以減少一半以上所描述的最大延遲。處PE到PE的路徑之外,開關(guān)300是某些PE組成為旁路。例如,從PE0來的數(shù)據(jù)可通過每個(gè)PE1、PE2、PE3傳遞到第二開關(guān)模塊302b,然后到達(dá)PE12、PE13、PE14和它的目的地PE15。PE4-11被旁路了,從而將最大延遲從15減小到了大約7個(gè)底盤時(shí)鐘。
圖8結(jié)合圖7表示了一個(gè)用于第二開關(guān)模塊302b的實(shí)施例。開關(guān)模塊302b包括一個(gè)諸如FIFO的第一存儲(chǔ)器機(jī)構(gòu)304,其例如從PE3接收一個(gè)第一輸入;一個(gè)諸如FIFO的第二存儲(chǔ)器機(jī)構(gòu)306,其從其它開關(guān)模塊302a接收數(shù)據(jù);和一個(gè)諸如FIFO的第三存儲(chǔ)器機(jī)構(gòu)308,其例如從PE11接收數(shù)據(jù)。每個(gè)FIFO304、306、308向每個(gè)第一、第二和第三復(fù)用器310、312、314提供輸入。第一復(fù)用器310可連接到第一開關(guān)模塊302a,第二復(fù)用器312可連接到PE4,第三復(fù)用器314可連接到PE12。第一和第二開關(guān)模塊302a、b可具有相同或不同的結(jié)構(gòu)。
通過這種排列,第二開關(guān)模塊302b可提供從PE3到PE4(與圖4中沒有開關(guān)模塊302的情況相同)、從PE3到第一開關(guān)模塊302a、從PE3到PE12、從PE11到PE12(與圖4相同)的路徑??赏ㄟ^一個(gè)普通的現(xiàn)有技術(shù)容易的確定復(fù)用器的控制。
在此所描述的實(shí)施例提供了在一個(gè)處理單元中相互連接多個(gè)處理元件的文本轉(zhuǎn)發(fā)總線,其可形成于一個(gè)單獨(dú)的模塊上并且在該模塊上具有多個(gè)核心,從而在處理元件中有效傳遞控制和數(shù)據(jù)信息。通過這種排列,實(shí)現(xiàn)了在處理元件中的內(nèi)部線程通信,從而支持相對(duì)快速的線速率,例如OC-192。
權(quán)利要求
1.一種處理單元,包括在該處理單元中的第一處理元件和在該處理單元中的第二處理元件,其通過第一總線連接到第一處理元件,該第一總線具有控制信息總線和數(shù)據(jù)信息總線,該第二處理元件包括第一電路,其用于從第一總線獲取用于該第二處理元件的控制信息和數(shù)據(jù)信息,將用于第一處理元件的控制信息和數(shù)據(jù)信息插入到第一總線上的可用時(shí)隙上,并在第一總線上傳遞用于連接到該第一總線的其它處理元件的控制信息和數(shù)據(jù)信息。
2.依照權(quán)利要求1的單元,其中第一電路包括輸入存儲(chǔ)器機(jī)構(gòu)以保持來自第一總線的用于第二處理元件的控制和/或數(shù)據(jù)信息。
3.依照權(quán)利要求1的單元,其中第一電路包括輸出存儲(chǔ)器機(jī)構(gòu)以保持控制和/或數(shù)據(jù)信息,從而由第二處理元件將這些信息放置在第一總線上。
4.依照權(quán)利要求3的單元,其中第一電路包括數(shù)據(jù)存儲(chǔ)器元件以保持不是用于第二處理單元的數(shù)據(jù)信息,并將這些信息在第一總線上傳遞。
5.依照權(quán)利要求1的單元,其中處理單元形成在單個(gè)管芯上。
6.依照權(quán)利要求6的單元,其中第一總線連續(xù)地互連每一個(gè)處理元件。
7.依照權(quán)利要求1的單元,其中控制信息和數(shù)據(jù)信息包括處理中的上下文信息。
8.依照權(quán)利要求1的單元,其中數(shù)據(jù)總線包括第一和第二總線以并行發(fā)送數(shù)據(jù)信息。
9.依照權(quán)利要求1的單元,其中控制總線包括用于一個(gè)或多個(gè)目標(biāo)處理元件、目標(biāo)線程數(shù)、用于傳遞的字?jǐn)?shù)、給定傳遞的數(shù)據(jù)是否有效、下一個(gè)相鄰寄存器數(shù)目、用于指示傳遞完成的到目標(biāo)PE的信號(hào)數(shù)目的信息。
10.依照權(quán)利要求1的單元,進(jìn)一步包括連接到多個(gè)處理元件中的選定一些的開關(guān),來減小與最遠(yuǎn)距離的處理元件的最大延遲。
11.一種網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置,包括至少一個(gè)線路卡,用于向交換結(jié)構(gòu)的多個(gè)端口轉(zhuǎn)發(fā)數(shù)據(jù);該至少一個(gè)線路卡包括具有配置為執(zhí)行微碼的多線程處理元件的網(wǎng)絡(luò)處理器,該網(wǎng)絡(luò)處理器包括第一處理元件;和通過第一總線連接到該第一處理元件的第二處理元件,該第一總線具有控制信息總線和數(shù)據(jù)信息總線,該第二處理元件包括第一電路,其用于從第一總線獲取用于該第二處理元件的控制信息和數(shù)據(jù)信息,將用于第一處理元件的控制信息和數(shù)據(jù)信息插入到第一總線上的可用時(shí)隙上,并在第一總線上傳遞用于連接到該第一總線的其它處理元件的控制信息和數(shù)據(jù)信息。
12.依照權(quán)利要求11的裝置,其中第一電路包括輸入存儲(chǔ)器機(jī)構(gòu)以保持來自第一總線的用于第二處理元件的控制和/或數(shù)據(jù)信息。
13.依照權(quán)利要求11的裝置,其中第一電路包括輸出存儲(chǔ)器機(jī)構(gòu)以保持控制和/或數(shù)據(jù)信息,從而由第二處理元件將這些信息放置在第一總線上。
14.依照權(quán)利要求13的裝置,其中第一電路包括數(shù)據(jù)存儲(chǔ)器元件以保持不是用于第二處理單元的數(shù)據(jù)信息,并將這些信息在第一總線上傳遞。
15.依照權(quán)利要求14的裝置,其中數(shù)據(jù)總線包括第一和第二總線以并行發(fā)送數(shù)據(jù)信息。
16.依照權(quán)利要求14的裝置,其中控制總線包括用于一個(gè)或多個(gè)目標(biāo)處理元件、目標(biāo)線程數(shù)、用于傳遞的字?jǐn)?shù)、給定傳遞的數(shù)據(jù)是否有效、下一個(gè)相鄰寄存器數(shù)目、用于指示傳遞完成的到目標(biāo)PE的信號(hào)數(shù)目的信息。
17.一種在處理單元的多個(gè)處理元件中傳遞數(shù)據(jù)和控制信息的方法,包括在具有相互連接這些處理元件的控制總線和數(shù)據(jù)總線的第一總線上接收控制和數(shù)據(jù)信息;通過目標(biāo)處理元件將控制和數(shù)據(jù)信息帶離該第一總線;通過非目標(biāo)處理元件沿該第一總線傳遞控制和數(shù)據(jù)信息;并將控制和數(shù)據(jù)信息插入到該第一總線上以傳輸?shù)搅硪粋€(gè)處理元件。
18.依照權(quán)利要求17的方法,其中處理元件包括第一電路,該第一電路具有輸入存儲(chǔ)機(jī)構(gòu)以保持脫離該第一總線的控制和/或數(shù)據(jù)信息。
19.依照權(quán)利要求18的方法,其中該第一電路包括輸出存儲(chǔ)機(jī)構(gòu)以保持將被插入到該第一總線上的控制和/或數(shù)據(jù)信息。
20.依照權(quán)利要求19的方法,其中該第一電路包括數(shù)據(jù)存儲(chǔ)元件以保持將在該第一總線上傳遞的數(shù)據(jù)信息。
21.依照權(quán)利要求17的方法,其中控制信息包括用于一個(gè)或多個(gè)目標(biāo)處理元件、目標(biāo)線程數(shù)、用于傳遞的字?jǐn)?shù)、給定傳遞的數(shù)據(jù)是否有效、下一個(gè)相鄰寄存器數(shù)目、用于指示傳遞完成的到目標(biāo)PE的信號(hào)數(shù)目的信息。
全文摘要
一個(gè)文本轉(zhuǎn)發(fā)總線在一個(gè)處理器單元中的多個(gè)處理元件間有效地傳送控制和數(shù)據(jù),該處理器單元具有多個(gè)處理元件。基于一個(gè)第一總線將控制和數(shù)據(jù)信息從一個(gè)處理元件向另一個(gè)處理元件傳遞。
文檔編號(hào)H04L12/56GK1819550SQ200510121730
公開日2006年8月16日 申請(qǐng)日期2005年12月21日 優(yōu)先權(quán)日2004年12月21日
發(fā)明者M·羅森布魯斯, S·簡(jiǎn)恩, G·沃爾瑞奇 申請(qǐng)人:英特爾公司