两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

由多核心處理器執(zhí)行的更新指令的制作方法

文檔序號(hào):6651279閱讀:176來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):由多核心處理器執(zhí)行的更新指令的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及由多核心處理器執(zhí)行的更新處理指令,包括相關(guān)的方法、計(jì)算機(jī)程序產(chǎn)品以及網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置。
背景技術(shù)
網(wǎng)絡(luò)使計(jì)算機(jī)與其它的設(shè)備之間可以進(jìn)行通信。例如,網(wǎng)絡(luò)可以傳送表示視頻、音頻、電子郵件等的數(shù)據(jù)。通常,通過(guò)網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)劃分成稱(chēng)為分組的較小的報(bào)文。以此類(lèi)推,分組非常像投入郵箱的信封。一個(gè)分組通常包括“凈荷”和“首部”。分組的“凈荷”類(lèi)似于信封中的信件。分組的“首部”非常像寫(xiě)在信封上的信息。首部可包括幫助網(wǎng)絡(luò)設(shè)備對(duì)分組進(jìn)行適當(dāng)處理的信息。例如,首部可以包括標(biāo)識(shí)分組目的地的地址。
一個(gè)給定的分組在到達(dá)其目的地之前可以“跳”越許多不同的中間網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置(如“路由器”、“橋接器”和/或“交換機(jī)”)。這些中間裝置通常執(zhí)行各種分組處理操作。例如,中間裝置通常執(zhí)行分組分類(lèi)來(lái)確定如何將分組進(jìn)一步向其目的地轉(zhuǎn)發(fā)或確定要提供的服務(wù)的質(zhì)量。
這些中間裝置被精心設(shè)計(jì)為可以快速處理網(wǎng)絡(luò)上傳來(lái)的日益增長(zhǎng)的大量業(yè)務(wù)。一些體系結(jié)構(gòu)使用“硬布線(xiàn)”邏輯如專(zhuān)用集成電路(ASICs)來(lái)執(zhí)行分組處理過(guò)程。雖然ASIC可以高速操作,但可以證明,改變ASIC操作以便例如使其適應(yīng)網(wǎng)絡(luò)協(xié)議變化是困難的。
其它體系結(jié)構(gòu)采用稱(chēng)為網(wǎng)絡(luò)處理器的可編程裝置。網(wǎng)絡(luò)處理器使軟件程序員可以快速地對(duì)網(wǎng)絡(luò)處理器操作進(jìn)行重新編程。一些網(wǎng)絡(luò)處理器的特征在于積聚分組處理計(jì)算能力的多處理核心。這些核心可以并行處理分組。例如,一個(gè)核心確定如何將分組進(jìn)一步朝其目的地轉(zhuǎn)發(fā),而不同的核心則確定如何轉(zhuǎn)發(fā)另一個(gè)分組。這使網(wǎng)絡(luò)處理器在保持可編程的同時(shí)獲得可與ASIC匹敵的速度。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,一種方法,包括在包括集成在單硅片上的多個(gè)可編程處理核心的處理器接收?qǐng)?zhí)行指令;選擇含至少一個(gè)所述可編程處理核心的第一子集;和加載至少部分所述執(zhí)行指令到可編程處理核心的所述第一子集,而至少一個(gè)不屬于所述第一子集的可編程處理核心繼續(xù)處理接收的分組。
根據(jù)本發(fā)明的另一個(gè)方面,一種方法,包括一個(gè)如下所述的迭代過(guò)程使集成在單硅片上的一組多個(gè)可編程處理核心之一從分組處理操作中釋放;由這一個(gè)可編程處理核心更新執(zhí)行指令,而其余所述可編程處理核心中的至少一個(gè)繼續(xù)處理接收的分組。
根據(jù)本發(fā)明的又一個(gè)方面,一種計(jì)算機(jī)程序產(chǎn)品,布置在計(jì)算機(jī)可讀介質(zhì)中,所述程序包括使處理器執(zhí)行包括如下操作的指令在一個(gè)包括集成于單硅片上的多個(gè)可編程處理核心的處理器接收?qǐng)?zhí)行指令;選擇含至少一個(gè)所述可編程處理核心的第一子集;以及加載至少部分執(zhí)行指令到可編程處理核心的所述第一子集,而至少一個(gè)不屬于所述第一子集的可編程處理核心繼續(xù)處理接收的分組。
根據(jù)本發(fā)明的再一個(gè)方面,一種計(jì)算機(jī)程序產(chǎn)品,布置在計(jì)算機(jī)可讀介質(zhì)中,該程序包括使處理器執(zhí)行如下構(gòu)成一個(gè)迭代過(guò)程的操作的指令使集成在單硅片上的一組多個(gè)可編程處理核心之一從分組處理操作中釋放;由該釋放的可編程處理核心更新執(zhí)行指令,而其余所述可編程處理核心中的至少一個(gè)繼續(xù)處理接收的分組。
根據(jù)本發(fā)明的還有一個(gè)方面,一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置,包括一個(gè)交換結(jié)構(gòu);以及通過(guò)所述交換結(jié)構(gòu)連接的多個(gè)線(xiàn)路卡,其中各所述線(xiàn)路卡包括至少一個(gè)PHY;至少一個(gè)具有集成在單硅片上的多個(gè)可編程處理核心的處理器;以及由所述至少一個(gè)處理器執(zhí)行,以執(zhí)行構(gòu)成迭代過(guò)程的如下操作的指令使集成在單硅片上的一組多個(gè)可編程處理核心之一從分組處理操作中釋放;由可編程處理核心更新執(zhí)行指令,而其余所述可編程處理核心中的至少一個(gè)繼續(xù)處理接收的分組。


圖1A-1C是說(shuō)明網(wǎng)絡(luò)處理器軟件更新的的框圖。
圖2是示例分組處理體系結(jié)構(gòu)的框圖。
圖3A-3F是說(shuō)明更新由處理器核心執(zhí)行的指令的框圖。
圖4是更新由處理器核心執(zhí)行的指令的過(guò)程的流程圖。
圖5是網(wǎng)絡(luò)處理器的示例體系結(jié)構(gòu)的框圖。
圖6是網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置的示例體系結(jié)構(gòu)的框圖。
具體實(shí)施例方式
網(wǎng)絡(luò)處理器的可編程性質(zhì)允許網(wǎng)絡(luò)操作者可以通過(guò)改變所執(zhí)行的指令來(lái)改變操作。這可以延長(zhǎng)包括網(wǎng)絡(luò)處理器的裝置的“市場(chǎng)時(shí)間(time inmarket)”。就是說(shuō),網(wǎng)絡(luò)處理器可以被重新編程而不是被替換掉。然而,為了重新編程而使網(wǎng)絡(luò)裝置暫時(shí)離線(xiàn)會(huì)使現(xiàn)有裝置中斷,并且可能使大量分組被丟棄。本文介紹的是允許網(wǎng)絡(luò)處理器可以在沒(méi)有對(duì)現(xiàn)有裝置產(chǎn)生重大干擾或丟棄大量分組的情況下重新編程的技術(shù)。也就是說(shuō),在軟件升級(jí)過(guò)程中,網(wǎng)絡(luò)處理器可以在分組轉(zhuǎn)發(fā)系統(tǒng)中繼續(xù)執(zhí)行它的任務(wù)。
例如,圖1A-1C說(shuō)明對(duì)所部署的結(jié)合網(wǎng)絡(luò)處理器106的網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置104(例如路由器或交換機(jī))的遠(yuǎn)程更新。如圖所示,網(wǎng)絡(luò)處理器106包括多個(gè)可編程處理核心108a-108n。為了更新這些核心108a-108n所執(zhí)行的指令,遠(yuǎn)程裝置100在一系列分組110a-110z中傳輸更新指令110。處理器106(或其它實(shí)體)可以從網(wǎng)絡(luò)業(yè)務(wù)中提取這些分組,并將其重新組合成更新指令110。
如圖1A-1C中所示,處理器106可以使核心108a-108n中的一個(gè)核心從分組處理操作中暫時(shí)釋放,更新該核心的軟件,重新激活該核心,并對(duì)其余核心108a-108n重復(fù)該過(guò)程。例如,在圖1A中,在核心108b和108n繼續(xù)處理接收分組的同時(shí)處理器106釋放108a并對(duì)其進(jìn)行更新。同樣,在圖1B和1C中,處理器106分別釋放核心108b和108n并對(duì)其進(jìn)行更新。
如圖1A-1C所示的方法可用于各種硬件和軟件體系結(jié)構(gòu)。例如,圖3A-3F顯示了對(duì)執(zhí)行如圖2所示示例分組處理流水線(xiàn)的核心的軟件更新。
圖2所示的示例分組處理流水線(xiàn)的特點(diǎn)在于具有含線(xiàn)程150、152a-152n、154、156和158的集合。線(xiàn)程的特點(diǎn)在于具有與其余線(xiàn)程無(wú)關(guān)的執(zhí)行上下文(例如程序計(jì)數(shù)器、寄存器值等)。給定的核心108可以支持一個(gè)線(xiàn)程或多個(gè)線(xiàn)程,核心108可以在所述多個(gè)線(xiàn)程之間切換。
如所示,該流水線(xiàn)包括一個(gè)或多個(gè)接收線(xiàn)程150,這些線(xiàn)程裝配接收到的分組并將其存儲(chǔ)在存儲(chǔ)器中。接收線(xiàn)程150隨后使對(duì)應(yīng)于該分組的條目入隊(duì)151。分組處理線(xiàn)程152a-152n的集合可使用隊(duì)列151條目并且處理相應(yīng)的分組。分組處理過(guò)程可包括各種操作,例如各種查表操作(例如,在路由表中的LPM(最長(zhǎng)前綴匹配)查找)、應(yīng)用服務(wù)質(zhì)量(QoS)、修改分組內(nèi)容(例如,將分組的媒體接入控制(MAC)目的地地址改為下一跳的地址),如此等等。線(xiàn)程152也可以響應(yīng)于巨大的業(yè)務(wù)需求選擇性地丟棄分組,例如,采用隨機(jī)早期檢測(cè)(RED)算法。
在執(zhí)行其操作之后,分組處理線(xiàn)程152為隊(duì)列管理器154使對(duì)應(yīng)于分組的條目入隊(duì)153。隊(duì)列管理器154將條目分類(lèi)到一組出口隊(duì)列(沒(méi)有示出)中,例如,其中某個(gè)給定的出口隊(duì)列代表輸出分組將經(jīng)由其轉(zhuǎn)發(fā)的輸出接口。調(diào)度器158線(xiàn)程基于例如循環(huán)方案、優(yōu)先級(jí)方案或者其它方案來(lái)選擇要服務(wù)的出口隊(duì)列。隊(duì)列管理器154將調(diào)度器158選擇來(lái)進(jìn)行服務(wù)的出口隊(duì)列中的分組條目轉(zhuǎn)發(fā)到發(fā)送線(xiàn)程156,該發(fā)送線(xiàn)程156通過(guò)例如交換結(jié)構(gòu)將分組發(fā)送到確定的輸出接口。
線(xiàn)程150-158可以以各種方式分布在各核心上。例如,一個(gè)核心108a可以執(zhí)行一組接收線(xiàn)程150,而另一個(gè)核心108b可只執(zhí)行發(fā)送線(xiàn)程156?;蛘撸煌?lèi)型的線(xiàn)程可以在同一核心108上運(yùn)行。例如,核心108c可以同時(shí)執(zhí)行調(diào)度器158線(xiàn)程和隊(duì)列管理154線(xiàn)程。
如上所述,可以通過(guò)改變由核心執(zhí)行的指令來(lái)對(duì)網(wǎng)絡(luò)處理器重新編程。例如,分組處理線(xiàn)程152可以修改為提供新的服務(wù),反應(yīng)變更的協(xié)議或新的協(xié)議,或利用更新的實(shí)現(xiàn)。如圖3A-3F所示,處理器106可以通過(guò)暫時(shí)“卸載(off-loading)”給定核心的分組處理操作來(lái)執(zhí)行“即時(shí)”軟件更新,更新核心的代碼,然后在經(jīng)過(guò)更新的核心上重新開(kāi)始分組處理操作。如圖3A-3F所示,這可以是當(dāng)對(duì)提供線(xiàn)程的每個(gè)核心進(jìn)行更新時(shí)重復(fù)進(jìn)行的迭代過(guò)程。
在圖3A-3F所示的示例軟件體系結(jié)構(gòu)中,多個(gè)線(xiàn)程112通過(guò)按鎖步的有序序列依次處理接收分組來(lái)保持分組順序(以接收順序發(fā)送分組)。在所示實(shí)現(xiàn)方案中,鎖步的序列通過(guò)一種信號(hào)方案來(lái)維護(hù),該方案中每個(gè)線(xiàn)程112在完成對(duì)一個(gè)分組的操作之前等待來(lái)自前一個(gè)線(xiàn)程的信號(hào)。例如,如所示,線(xiàn)程112a從隊(duì)列中取出并處理分組114a,同時(shí)在進(jìn)行針對(duì)下一個(gè)排隊(duì)的分組114b的操作之前,線(xiàn)程112b等待來(lái)自線(xiàn)程112a的信號(hào)。如所示,線(xiàn)程序列可以跨越多個(gè)核心108a-108b。
同一核心108內(nèi)多個(gè)線(xiàn)程之間的信令可以各種方式來(lái)執(zhí)行(例如,通過(guò)在一個(gè)共享控制和狀態(tài)寄存器或其它共享存儲(chǔ)器中設(shè)標(biāo)志來(lái)執(zhí)行)。核心108上的信令也可以例如使用硬件核心間信令機(jī)制的各種方式來(lái)執(zhí)行(如下所述)。
如圖3A所示,線(xiàn)程序列中使用的核心108a-108c構(gòu)成的序列可以不是硬編碼的,而是由數(shù)據(jù)118確定。例如,表格118可以指示要發(fā)信號(hào)通知的下一個(gè)核心(例如,提供線(xiàn)程序列中的下一個(gè)線(xiàn)程的下一個(gè)核心)。例如,該核心中的最后一個(gè)線(xiàn)程可以讀取表格118來(lái)確定要發(fā)信號(hào)通知的下一個(gè)核心。例如,如所示,線(xiàn)程112d可以訪(fǎng)問(wèn)表格118,在該表格中查找線(xiàn)程112d核心108a的標(biāo)識(shí)符(“108a”),并基于查找結(jié)果108a,向下一個(gè)核心108b發(fā)信號(hào),通知其處理下一個(gè)入隊(duì)的151分組。如圖3B所示,線(xiàn)程序列在核心108b中繼續(xù)。如所示,由核心108b中最后一個(gè)線(xiàn)程112h執(zhí)行的查表操作118b使線(xiàn)程序列“繞”回核心108a。
在圖3A和圖3B中,核心108c免于分組處理任務(wù)。如圖3C所示,當(dāng)核心108c被釋放時(shí),由核心108c線(xiàn)程執(zhí)行的指令可由控制處理器或線(xiàn)程120更新,而核心108a-108b的線(xiàn)程112a-112h繼續(xù)分組處理操作。
由表格118提供的核心序列提供在不同的若干組核心之間分布線(xiàn)程序列的靈活性。例如,在圖3D中,(例如由控制處理器120)改變表格“鏈接”118b和118c,核心108a的線(xiàn)程就可以從分組處理操作中釋放。也就是說(shuō),一旦某核心從由表格118標(biāo)識(shí)的核心系列中刪除,則當(dāng)針對(duì)以前接收的分組的任何正在進(jìn)行的操作一結(jié)束,該核心就會(huì)從分組操作中釋放。隨后,核心108a可從控制處理器120接收一個(gè)“退出”信號(hào),使核心108a刷新其高速緩存。使核心108a暫時(shí)從其分組處理任務(wù)中釋放使處理器120能夠更新核心108a的軟件110。同樣地,在圖3E中,通過(guò)改變表格“鏈接”118a和118c,可以從線(xiàn)程序列中刪除核心108b的線(xiàn)程,從而允許更新核心108b的軟件110。最后,如圖3F所示,核心108a-108c已經(jīng)接收到了軟件更新110。
為使說(shuō)明簡(jiǎn)潔,圖3A-3F僅顯示了三個(gè)核心108a-108c,然而,此過(guò)程可以對(duì)N個(gè)核心重復(fù)。
如圖3A-3F中所示,有時(shí),一些核心可以執(zhí)行“未更新的”代碼,而其它核心執(zhí)行更新的指令110。為避免中斷,更新指令應(yīng)該是后向兼容且至少暫時(shí)在舊框架中有效。例如,更新指令110應(yīng)該繼續(xù)參與用于仂調(diào)對(duì)舊代碼中使用的臨界段(critical section)的訪(fǎng)問(wèn)的線(xiàn)程間信令(例如,暫時(shí)需要對(duì)共享資源進(jìn)行獨(dú)占訪(fǎng)問(wèn)的若干指令集),直到每一個(gè)核心都運(yùn)行了更新軟件110為止。另外,在所有參與核心108都被更新之前,不應(yīng)該啟動(dòng)已更新軟件110的新臨界區(qū)。例如,更新代碼可以等待由控制處理器120設(shè)置的指示對(duì)核心108的更新已經(jīng)完成的信號(hào)(例如,由核心108方法或訪(fǎng)問(wèn)的START_CRITICAL_SECTION標(biāo)志)。
圖3A-3F所示的實(shí)現(xiàn)方案允許核心軟件升級(jí)繼續(xù),同時(shí)保持用于保持分組順序的鎖步分組處理方案。然而,核心更新方法可用于其它體系結(jié)構(gòu)。例如,軟件體系結(jié)構(gòu)可采用“線(xiàn)程池”方法來(lái)代替線(xiàn)程序列。在線(xiàn)程池方案中,當(dāng)線(xiàn)程完成或者被分配用于處理一個(gè)分組時(shí),在可用線(xiàn)城池中添加和刪除該線(xiàn)程。也就是說(shuō),取代鎖步處理,分組在到達(dá)時(shí)通過(guò)分配的線(xiàn)程來(lái)進(jìn)行處理,分組排序以后由流水線(xiàn)中的線(xiàn)程強(qiáng)制執(zhí)行。為了在線(xiàn)程池實(shí)現(xiàn)方案更新核心指令,處理器106可以通過(guò)從可用線(xiàn)程池中刪除核心的線(xiàn)程來(lái)釋放該核心。一旦核心的線(xiàn)程被刪除,就可以更新該核心的軟件。在更新之后,可以使該核心的線(xiàn)程返回到線(xiàn)程池中,隨后對(duì)不同的核心重復(fù)所述過(guò)程。
圖4顯示可由多核心處理器執(zhí)行以更新核心軟件的過(guò)程。如所示,處理器106接收新的軟件指令170。該指令可以從本地裝置接收(例如,通過(guò)到已連接管理設(shè)備的外圍部件互連(PCI)總線(xiàn)連接)?;蛘?,指令可以在發(fā)送到網(wǎng)絡(luò)處理器的控制面分組內(nèi)接收。這種分組可以是因特網(wǎng)協(xié)議(IP)分組,該分組具有結(jié)合網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)節(jié)點(diǎn)的因特網(wǎng)仂議目的地址。除這些指令外,分組可以識(shí)別該節(jié)點(diǎn)內(nèi)要更新的特定網(wǎng)絡(luò)處理器,或者可能識(shí)別要更新的那些核心(例如,不同的核心可以接收不同的軟件)。如所示,處理過(guò)程重復(fù)執(zhí)行如下步驟釋放172、更新174以及連續(xù)恢復(fù)各核心的分組處理操作176。該過(guò)程可能作用于多個(gè)核心子集,而不是作用于各個(gè)核心。例如,在多個(gè)核心可以共享公用控制存儲(chǔ)器的情況下,,該過(guò)程可以一次釋放并更新一個(gè)完整的核心子集。在任一情況下,分組處理可以在其余核心中繼續(xù)。
可以對(duì)圖4所示示例過(guò)程實(shí)施多種變化。例如,網(wǎng)絡(luò)處理器可能配置為永久使一個(gè)冗余核心處于空閑?;蛘?,當(dāng)發(fā)生更新時(shí)網(wǎng)絡(luò)處理器可以釋放一個(gè)“擦除(scratch)”核心空閑。
上述技術(shù)可用于各種各樣的核心體系結(jié)構(gòu)。例如,圖5顯示了多核心網(wǎng)絡(luò)處理器106的一個(gè)示例。所示網(wǎng)絡(luò)處理器106為Intel因特網(wǎng)交換網(wǎng)絡(luò)處理器(IXP)。其它網(wǎng)絡(luò)處理器的特征在于其設(shè)計(jì)不同。
所示網(wǎng)絡(luò)處理器106的特征在于具有集成于單一半導(dǎo)體硅片上的一組處理核心108。每一個(gè)核心108可以是為分組處理定制的精簡(jiǎn)指令集計(jì)算(RISC)處理器。例如,核心108不一定提供通用處理器的指令集通常提供的浮點(diǎn)或者整數(shù)除法指令。各個(gè)核心108可執(zhí)行多個(gè)線(xiàn)程。例如,一個(gè)核心108可以存儲(chǔ)用于不同線(xiàn)程的多個(gè)程序計(jì)數(shù)器和其它上下文數(shù)據(jù)。核心108可以通過(guò)共享資源(例如同步隨機(jī)存取存儲(chǔ)器(SRAM)或者動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM))與其它核心108通信?;蛘?,核心108可以通過(guò)直接連線(xiàn)到相鄰核心204的相鄰寄存器進(jìn)行通信,或者可以通過(guò)可將信號(hào)路由到非相鄰核心的CAP(CSR接入代理)進(jìn)行通信。
如所示,網(wǎng)絡(luò)處理器106的特征還在于具有至少一個(gè)接口204,所述接口可以在處理器106和其它網(wǎng)絡(luò)組件之間傳送分組。例如,網(wǎng)絡(luò)處理器106的特征可以是具有交換結(jié)構(gòu)接口204(例如,公用交換機(jī)接口(CSIX)),該接口允許處理器106將分組發(fā)送到與上述交換結(jié)構(gòu)連接的其它處理器或者電路。處理器106的特征還可以是允許處理器106與物理層(PHY)和/或鏈路層裝置(如媒體接入控制器(MAC)或成幀器裝置)通信的接口204(如系統(tǒng)分組接口(SPI)接口)。處理器106還包括接口208(如PCI總線(xiàn)接口),用于與例如主機(jī)或其它網(wǎng)絡(luò)處理器通信。
如所示,處理器106還包括由核心108共享的其它組件,如散列引擎、內(nèi)部暫存器和提供對(duì)外部共享存儲(chǔ)器的存取的存儲(chǔ)控制器206、212。網(wǎng)絡(luò)處理器106還包括一個(gè)通用處理器210(如StrongARMXScale),它通常被編程來(lái)執(zhí)行網(wǎng)絡(luò)操作所設(shè)計(jì)的“控制面”任務(wù)。然而,通用處理器210還可以處理“數(shù)據(jù)面”任務(wù)。
通用處理器210可以處理更新核心的軟件的任務(wù)(例如,充當(dāng)圖3A-3F中的控制處理器120)。例如,通用處理器210可以執(zhí)行來(lái)自控制面分組的更新指令并將這些更新指令下載到核心控制存儲(chǔ)器。每個(gè)核心可能具有其自己的控制存儲(chǔ)器?;蛘?,多個(gè)核心108可以共享一個(gè)公用控制存儲(chǔ)器。通用處理器210可以執(zhí)行其它任務(wù)。例如,如諸如圖3A-3F中顯示的方案中,該通用處理器可以維護(hù)和調(diào)整核心序列表格118,以從分組處理操作中刪除核心或?qū)⒑诵牟迦敕纸M處理操作。這樣的表格118可以存儲(chǔ)在由網(wǎng)絡(luò)處理器106訪(fǎng)問(wèn)的SRAM(同步隨機(jī)存取存儲(chǔ)器)中。雖然描述為由通用處理器210執(zhí)行,但并不要求由通用處理器210執(zhí)行這些操作。例如,這些任務(wù)可由一個(gè)核心108或者一個(gè)外部代理來(lái)執(zhí)行。
圖6顯示了一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置,它可以使用上述核心更新方法。如所示,該裝置的特征在于具有通過(guò)交換結(jié)構(gòu)310(例如,縱橫制交換結(jié)構(gòu)或共享存儲(chǔ)交換結(jié)構(gòu))互連的一組線(xiàn)路卡300(“刀片”)。例如,該交換結(jié)構(gòu)可符合CSIX或其它交換結(jié)構(gòu)技術(shù)如HypeTransport、Infiniband、PCI、Packet-Over-SONET、RapidIO和/或UTOPIA(ATM的通用測(cè)試和操作PHY接口)。
各個(gè)線(xiàn)路卡(例如300a)可包括一個(gè)或多個(gè)處理網(wǎng)絡(luò)連接上的通信的物理層(PHY)裝置302(例如,光PHY、有線(xiàn)PHY和無(wú)線(xiàn)PHY)。這些PHY在由不同網(wǎng)絡(luò)媒體傳送的物理信號(hào)和數(shù)字系統(tǒng)使用的比特(例如,若干“0”和“1”)之間進(jìn)行轉(zhuǎn)換。線(xiàn)路卡300還可以包括可執(zhí)行有關(guān)幀的諸如檢錯(cuò)和/或糾錯(cuò)之類(lèi)操作的成幀器裝置304(例如,以太網(wǎng)、同步光網(wǎng)(SONET)、高級(jí)數(shù)據(jù)鏈路(HDLC)成幀器裝置或其它“層2”裝置)。所示線(xiàn)路卡300還可以包括一個(gè)或多個(gè)對(duì)通過(guò)PHY302接收的分組執(zhí)行分組處理操作的網(wǎng)絡(luò)處理器306,并且通過(guò)交換結(jié)構(gòu)310將所述分組導(dǎo)向提供用于轉(zhuǎn)發(fā)分組的出口接口的線(xiàn)路卡??赡艿氖怯删W(wǎng)絡(luò)處理器306而非成幀器裝置304來(lái)執(zhí)行“層2”任務(wù)。
盡管圖5和圖6描述的是網(wǎng)絡(luò)處理器以,及結(jié)合了網(wǎng)絡(luò)處理器的裝置的特定示例,但所述技術(shù)也可以實(shí)現(xiàn)于各種包括設(shè)計(jì)與所示不同的處理器和網(wǎng)絡(luò)裝置的體系結(jié)構(gòu)中。另外,所述技術(shù)還可以用于各種各樣的網(wǎng)絡(luò)裝置(如路由器、交換機(jī)、橋接器、集線(xiàn)器、業(yè)務(wù)生成器等)中。術(shù)語(yǔ)分組可適用于IP(因特網(wǎng)協(xié)議)數(shù)據(jù)報(bào)、TCP(傳輸控制協(xié)議)段、ATM(異步傳輸模式)小區(qū)、以太網(wǎng)幀以及其它仂議數(shù)據(jù)單元。
所述技術(shù)可以用硬件、軟件或二者的組合來(lái)實(shí)現(xiàn)。所述技術(shù)最好用計(jì)算機(jī)程序如高級(jí)過(guò)程或面向?qū)ο缶幊陶Z(yǔ)言來(lái)實(shí)現(xiàn)。必要時(shí),所述程序可以用匯編或機(jī)器語(yǔ)言來(lái)實(shí)現(xiàn),所述語(yǔ)言可以是編譯型或解釋型的。
其它實(shí)施例屬于如下權(quán)利要求范圍。
權(quán)利要求
1.一種方法,包括在包括集成在單硅片上的多個(gè)可編程處理核心的處理器接收?qǐng)?zhí)行指令;選擇含至少一個(gè)所述可編程處理核心的第一子集;和加載至少部分所述執(zhí)行指令到可編程處理核心的所述第一子集,而至少一個(gè)不屬于所述第一子集的可編程處理核心繼續(xù)處理接收的分組。
2.如權(quán)利要求1所述的方法,還包括選擇含至少一個(gè)所述可編程處理核心的第二子集;和加載所述執(zhí)行指令到可編程處理核心的所述第二子集,而至少一個(gè)不屬于所述第二子集的可編程處理核心繼續(xù)處理接收的分組。
3.如權(quán)利要求1所述的方法,還包括在加載之前停止可編程處理核心的所選第一子集中正在進(jìn)行的分組處理操作。
4.如權(quán)利要求1所述的方法,其中所述可編程處理核心提供多個(gè)分組處理線(xiàn)程;以及從線(xiàn)程池中分配一個(gè)所述數(shù)據(jù)分組處理線(xiàn)程來(lái)執(zhí)行針對(duì)分組的操作;以及還包括從所述線(xiàn)程池中刪除所述第一子集中的可編程處理核心的線(xiàn)程。
5.如權(quán)利要求1所述的方法,其中由所述核心提供的一序列線(xiàn)程從至少一個(gè)隊(duì)列檢索分組來(lái)進(jìn)行處理,該序列從一個(gè)核心的含至少一個(gè)線(xiàn)程的子序列進(jìn)入另一個(gè)核心的含至少一個(gè)線(xiàn)程的子序列;以及其中所述線(xiàn)程序列由標(biāo)識(shí)所述序列中至少下一個(gè)核心的數(shù)據(jù)指定。
6.如權(quán)利要求1所述的方法,其中所述接收?qǐng)?zhí)行指令包括接收因特網(wǎng)協(xié)議分組,所述因特網(wǎng)協(xié)議分組具有結(jié)合所述可編程處理核心的網(wǎng)絡(luò)節(jié)點(diǎn)的因特網(wǎng)協(xié)議目的地址和包括所述執(zhí)行指令的凈荷。
7.一種方法,包括一個(gè)如下所述的迭代過(guò)程使集成在單硅片上的一組多個(gè)可編程處理核心之一從分組處理操作中釋放;由這一個(gè)可編程處理核心更新執(zhí)行指令,而其余所述可編程處理核心中的至少一個(gè)繼續(xù)處理接收的分組。
8.如權(quán)利要求7中所述的方法,還包括維護(hù)標(biāo)識(shí)一個(gè)核心序列的數(shù)據(jù);其中所述釋放一個(gè)可編程處理核心的步驟包括在所述更新前從所述核心序列中刪除該核心;以及還包括在所述更新后將該核心插入所述核心序列中。
9.如權(quán)利要求6所述的方法,還包括在所述迭代過(guò)程完成之后設(shè)置一個(gè)數(shù)據(jù)值。
10.一個(gè)計(jì)算機(jī)程序產(chǎn)品,布置在計(jì)算機(jī)可讀介質(zhì)中,所述程序包括使處理器執(zhí)行包括如下操作的指令在一個(gè)包括集成于單硅片上的多個(gè)可編程處理核心的處理器接收?qǐng)?zhí)行指令;選擇含至少一個(gè)所述可編程處理核心的第一子集;以及加載至少部分執(zhí)行指令到可編程處理核心的所述第一子集,而至少一個(gè)不屬于所述第一子集的可編程處理核心繼續(xù)處理接收的分組。
11.如權(quán)利要求10所述的計(jì)算機(jī)程序,其中所述操作還包括選擇含至少一個(gè)所述可編程處理核心的第二子集;以及加載執(zhí)行指令到可編程處理核心的所述第二子集,而至少一個(gè)不屬于所述第二子集的可編程處理核心繼續(xù)處理接收的分組。
12.如權(quán)利要求10所述的計(jì)算機(jī)程序,其中所述操作還包括在所述加載前使可編程處理核心的所選第一子集從處理分組中釋放。
13.如權(quán)利要求10所述的計(jì)算機(jī)程序,其中所述可編程處理核心提供多個(gè)分組處理線(xiàn)程;以及從線(xiàn)程池中被分配用于處理分組的一個(gè)所述線(xiàn)程;以及所述操作還包括從所述線(xiàn)程池中刪除所述第一子集中可編程處理核心的線(xiàn)程。
14.如權(quán)利要求10所述的計(jì)算機(jī)程序,其中由所述核心提供的一序列線(xiàn)程從至少一個(gè)隊(duì)列檢索分組來(lái)進(jìn)行處理,該序列從一個(gè)核心的含至少一個(gè)線(xiàn)程的子序列進(jìn)入另一個(gè)核心的含至少一個(gè)線(xiàn)程的子序列;以及所述線(xiàn)程序列由標(biāo)識(shí)所述序列中至少下一個(gè)核心的數(shù)據(jù)指定。
15.如權(quán)利要求10所述的計(jì)算機(jī)程序,其中所述接收?qǐng)?zhí)行指令包括接收因特網(wǎng)協(xié)議分組,所述因特網(wǎng)協(xié)議分組具有結(jié)合所述可編程處理核心的網(wǎng)絡(luò)節(jié)點(diǎn)的因特網(wǎng)協(xié)議目的地址和包括所述執(zhí)行指令的凈荷。
16.一種計(jì)算機(jī)程序產(chǎn)品,布置在計(jì)算機(jī)可讀介質(zhì)中,該程序包括使處理器執(zhí)行如下構(gòu)成一個(gè)迭代過(guò)程的操作的指令使集成在單硅片上的一組多個(gè)可編程處理核心之一從分組處理操作中釋放;由該釋放的可編程處理核心更新執(zhí)行指令,而其余所述可編程處理核心中的至少一個(gè)繼續(xù)處理接收的分組。
17.如權(quán)利要求16所述的計(jì)算機(jī)程序,其中所述操作還包括維護(hù)標(biāo)識(shí)一個(gè)核心序列的數(shù)據(jù);其中所述釋放一個(gè)可編程處理核心的步驟包括在所述更新前從所述核心序列中刪除該核心;以及所述操作還包括在所述更新后將該核心插入所述核心序列中。
18.如權(quán)利要求16所述的計(jì)算機(jī)程序,其中所述操作還包括在所述迭代過(guò)程完成之后設(shè)置一個(gè)數(shù)據(jù)值。
19.一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)裝置,包括一個(gè)交換結(jié)構(gòu);以及通過(guò)所述交換結(jié)構(gòu)連接的多個(gè)線(xiàn)路卡,其中各所述線(xiàn)路卡包括至少一個(gè)PHY;至少一個(gè)具有集成在單硅片上的多個(gè)可編程處理核心的處理器;以及由所述至少一個(gè)處理器執(zhí)行,以執(zhí)行構(gòu)成迭代過(guò)程的如下操作的指令使集成在單硅片上的一組多個(gè)可編程處理核心之一從分組處理操作中釋放;由可編程處理核心更新執(zhí)行指令,而其余所述可編程處理核心中的至少一個(gè)繼續(xù)處理接收的分組。
20.如權(quán)利要求19所述的裝置,其中所述操作還包括維護(hù)標(biāo)識(shí)一個(gè)核心序列的數(shù)據(jù);以及所述釋放一個(gè)可編程處理核心的步驟包括在所述更新前從核心序列中刪除該核心以及在所述更新后將該核心插入所述核心序列中。
21.如權(quán)利要求19所述的裝置,其中所述操作還包括在所述迭代過(guò)程完成之后設(shè)置一個(gè)數(shù)據(jù)值。
全文摘要
概括地說(shuō),在一個(gè)方面本公開(kāi)描述了一種方法,該方法包括在包括集成于單硅片上的多個(gè)可編程處理核心的處理器接收?qǐng)?zhí)行指令,選擇所述至少一個(gè)所述核心子集,并且加載至少部分執(zhí)行指令到所述核心子集,而至少一個(gè)其它核心繼續(xù)處理接收的分組。
文檔編號(hào)G06F9/46GK1767502SQ20051012913
公開(kāi)日2006年5月3日 申請(qǐng)日期2005年9月28日 優(yōu)先權(quán)日2004年9月29日
發(fā)明者U·奈克, C·B·李, A·B·林 申請(qǐng)人:英特爾公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
南开区| 甘谷县| 龙泉市| 读书| 宁河县| 和静县| 万年县| 长沙县| 桂平市| 蓬溪县| 莒南县| 阜城县| 兖州市| 灵武市| 隆化县| 柳州市| 阿拉尔市| 宁安市| 康保县| 普兰店市| 科技| 松潘县| 绥中县| 清徐县| 吴堡县| 丹东市| 桂东县| 满洲里市| 阿尔山市| 成都市| 焦作市| 和林格尔县| 中宁县| 阜宁县| 和田县| 十堰市| 麻阳| 花垣县| 织金县| 张北县| 色达县|