到一個共享的協處理器資源的多個邏輯接口的製作方法
2023-04-22 20:58:11
專利名稱::到一個共享的協處理器資源的多個邏輯接口的製作方法
技術領域:
:本發明涉及網絡處理器系統領域,更詳細講,涉及含有一個或多個協議處理器單元(PPU)的一個嵌入式處理器組合(complex)。在該處理器系統中通過把PPU與協處理器(coprocessor)連接起來以便在它們中傳輸數據與指令的接口使用多個與PPU相關的協處理器。另一個目的是使用多邏輯協處理器接口(從一個程序設計員的角度來看)來訪問一個共享的協處理器資源。在某些情況下該協處理器資源由一個PPU內的多個處理線索共享,而在其它情況下一個單個的協處理器資源由多個PPU共享。本發明的又一個目的涉及在一個PPU和它的協處理器之間的接口處啟動的特定操作。這一操作是有條件地執行協處理器指令的能力。這對計數器協處理器尤其有用,但是通常也可用於其它的協處理器。該協處理器接口有能力根據對一條特定的協處理器命令的預期的響應時間來鑑別長等待時間事件與短等待時間事件。因此這種識別被用於對線索執行的優先權進行控制。本發明還有一個目的是能比其它已知的協處理器接口提供更大的靈活性與效率的一個協處理器接口。通過下面更詳細描述的方式這些和其它的目的均可實現。描述對一個網絡處理器的程序設計能力進行控制的一個嵌入式處理器組合(processorcomplex)的操作。該處理器組合包括多個協議處理器單元(PPU),每個協議處理器單元包括一個或多個核心語言處理器(CLP)。每個CLP有多條代碼線索。每個PPU使用多個協處理器為PPU執行特定任務。該組合使用多個邏輯協處理器接口訪問一個與CLP共享的協處理器資源。特定的操作指令由CLP執行導致命令被送往協處理器。這些指令一方面用於啟動特定協處理器指令的有條件的執行。該指令能夠根據對一個具體的協處理器命令的預期的響應時間來識別長等待時間事件(longlatencyevents)與短等待時間事件(shortlatencyevents)。這就允許該組合根據所處理的等待時間事件的時間長度與類型把控制從一條線索轉移到另一條線索。具體實施例方式本發明將用提供並控制一個網絡處理器的程序設計能力的一個嵌入式處理器組合這一術語來描述。一個該組合的實現典型地包括與硬體加速器一起工作的八個主處理單元或協議處理器單元(PPU),來支持高速模式查詢、數據操縱(manipulation)、內部晶片管理功能、幀解析、和數據預取(prefetching)。每個PPU包括以下結構部件兩個CLP;至少一個,而最好是幾個專用的和/或共享的協處理器單元和該主處理單元與每個協處理器單元之間的一個接口。每個協處理器單元能執行特定的網絡任務。主處理單元執行在一個儲存的程序中的一系列的指令。每個協處理器單元能對所述主處理單元作出響應並適於在該主處理單元的控制下有效地執行特定任務。主處理單元與每個協處理器單元之間的接口實現一個或多個下述功能每個協處理器單元的配置;由每個共用處理單元完成的特定任務的初始化;訪問與每個協處理器單元相關的狀態信息;以及提供用於返回與由每個協處理器單元完成的特定任務相關的結果的方法。主處理單元和協處理器單元各包括一個或多個特殊用途寄存器。該接口能夠從所述主處理單元及協處理器單元把專用寄存器映射到一個公用地址映射。每個PPU包括一個或多個核心語言處理器(CLP)和幾個專用的協處理器。當PPU包括多個CLP時,協處理器在CLP中共享。每個CLP包括一個算法邏輯單元(ALU)並支持對於每個PPU總共有四條線索的兩條代碼線索。CLP和協處理器含有包括標量寄存器和陣列寄存器在內的特殊用途寄存器的獨立的拷貝。某些協處理器包括對協處理器命令從CLP向該協處理器的陣列或標量寄存器的轉移進行調節的FIFO緩衝器。一個CLP一次只執行一條線索命令。對於一個程式設計師而言,每條線索均有其自己的協處理器或協處理器組的外部特徵。大部分協處理器都執行專門的功能並且相互之間能夠同時操作而且也能與CLP同時操作。對PPU的控制存儲典型地由內部及外部存儲器兩者提供。例如,內部SRAM可用於即時訪問;外部ZBTSRAM用於快速訪問;而外部DDRSDRAM則用於大存儲容量的要求。圖1示出了維護一個數據接口(14)和一個執行接口(16)和幾個協處理器的一個協議處理器單元(PPU)(10),這幾個協處理器包括一個樹檢索引擎(12),一個校驗和協處理器(20),一個串拷貝協處理器(22),一個排隊(enqueue)協處理器(24),一個數據存儲(datastore)協處理器(26),一個控制訪問總線協處理器(28),一個計數器協處理器(30)和一個規則協處理器(32)。PPU包括一對核心語言處理器(CLP)(34)和(36)。每個CLP包括一個指令取出解碼與執行(InstructionFetchDecodeandExecute)裝置,多個特殊與一般用途的寄存器和兩條線索。一個協處理器執行接口(CPEI)判優器(arbiter)(40)對兩個CLP與協處理器之間的指令進行判優。一個協處理器數據接口(CPDI)判優器(42)確定協處理器與CLP(34)和(36)之間的通信的優先權。用於CLP的全部指令均存儲在一個指令存儲器(圖1中未示出)中。CLP#1(34)從一個硬體分類器沿總線(46)接收通信,該硬體分類器提供來自一個配送器(dispatcher)的激勵,從而開始處理一個新數據包。該CLP沿著來自指令存儲器的總線(48)發送取出指令以處理該新的數據包。同樣,CLP(36)沿著來自一個硬體分類器的總線(50)接收分類結果並沿著總線(52)向一個指令存儲器接口發送請求。該指令存儲器接口及硬體分類器均設置在PPU的外面,圖1中未予示出。排隊協處理器(24)沿總線(60)向一個外部結束單元(未示出)發送指令。數據存儲協處理器(26)沿著總線(62)向一個入數據存儲接口(ingressdatastoreinterface)或者沿著總線(64)向一個出數據存儲接口(egressdatastoreinterface)傳送數據。控制數據流由一個外部控制訪問總線判優器(未顯示)沿著總線(68)進行判優。訪問規則在CAB判優器(68)中當被寫或讀的數據流經總線(70)。數據訪問沿著總線(70)輸入或輸出。計數器協處理器(30)和規則協處理器32各沿著總線(72)和(74)分別向計數器管理器和規則管理器提供訪問。圖2示出了根據本發明的兩個CLP的附加的細節。每個CLP包括一般用途寄存器(generalpurposeregister)(80)和專用寄存器(specialpurposeregister)(82)。這些專用寄存器包括多個標量寄存器(84)與陣列寄存器(86)。它還具有一個指令取出、解碼與執行功能(88)。處理組合包括以下組成部分多個協議處理器單元。在一個優選的實施例中,伺服器使用八個協議處理器單元(PPU)。每個PPU包括共享多個協處理器(示出七個)的一個或多個CLP。PPU執行用於轉發幀,更新表格以及維護網絡處理單元的代碼。這些CLP同時執行存儲在一個公用指令存儲器中的代碼。每個CLP包括一個核心和一個三級傳輸線(3-stagepipeline),16個GPR(一般用途寄存器)和一個ALU(算法邏輯單元)。協處理器相互之間能夠同時執行操作而且能與CLP同時執行操作。當該協處理器通過接口與CLP連接時,它將擴展基本的CLP指令及寄存器模型。每個協處理器的命令是作為新的彙編助記符號(assemblermnernonics)出現的,而該協處理器的寄存器對於CLP程式設計師而言是作為新的標量與陣列寄存器(arrayregister)而出現的。一些陣列寄存器設置於共享的存儲器池(44)中。該協處理器能夠與CLP異步運行。這就允許CLP在一個協處理器執行一個命令的同時繼續處理指令。一條等待指令導致該CLP等待直至一條協處理器執行命令被完成為止。指令存儲器(56)典型地向8個嵌入式RAM組成。它們在初始化期間加載並含有用於發送幀及管理該系統的程序指令。該指令存儲器有用於數據傳送任務,用於引導通信,以及控制任務的16K指令。一個調度程序單元。該單元跟蹤線索的使用情況,取出並向空閒線分配新的幀。數據幀被分配給下一個可用的PPU。這將幀地址從上與下的配送器隊列up-GDQ,up-GCQ,dn-GRO/1,dn-GBO/1和dn-GCQ)中出隊列。出隊列後,配送器(dispatcher)單元從上或下的數據存儲器(DS)中讀出幀頭部分並將其存儲於共享存儲池(44)中。只要CLP一空閒,配送器單元就通過總線(46)或(50)把適當的控制信息如代碼指令地址(CID)傳給CLP。配送器利用一個獨立的總線(58)把幀頭信息傳遞至共享存儲池(44)。配送器還通過把實現這些功能的工作分配給一條可用的線索來控制定時器與中斷。一個樹檢索存儲器(TreeSearchMemory,TSM)判優器(110)。有幾個共享的內部及外部存儲器單元可供每個CLP使用。由於該存儲器是共享的,用一個判優器來控制對該存儲器的訪問。該TSM能被代碼直接訪問,而且比如說能被用於在該TSM中儲存路由表(routingtables)。而且,在樹檢索期間,該TSM將被TSE(12)訪問。一個結束單元(CompletionUnit,CU)。該結束單元執行兩個功能。第一個,它通過接口把CLP與上和下的EDS(排隊,離隊與程序島(ScheduleIsland)連起來。EDS執行排隊操作,從而一個幀地址與稱為FCB頁的相應參數一起被列入或者是一個傳輸隊列,一個放棄隊列,或者是一個調度隊列。當該目標是一個傳輸隊列時,硬體設置的信息流控制機制確定該幀是放入該傳輸隊列,還是放入一個放棄隊列。第二,該結束單元保障幀的序列。由於可能發生多條線索碰巧對屬於同一信息流的幀進行處理的情況,必須採取預防措施按照正確的順序把這些幀列入上或下的傳輸隊列。該結束單元使用一個由硬體分類器(54)根據幀調度生成的標籤。硬體分類器。該硬體分類器位於調度單元與PPU之間的數據路徑上。它執行分類並向目的線索提供信息。對於上行幀(up-frames)而言,硬體分類器加速器(HardwareClassifierAssist)對幀格式的眾所周知的情況進行分類。分類結果在幀調度期間,按照CIA(代碼指令地址)以及四個GPR(一般用途寄存器)的內容的方式,被送至CLP。對於下行幀(dn-frames)而言,硬體分類器加速器根據幀頭確定CIA。對於上行與下行幀的調度,硬體分類器加速器均生成一個標籤,被結束單元用於維護幀序列。上行與下行數據存儲接口及判優器。每條線索均通過數據存儲協處理器(26)對上行與下行的數據存儲器進行訪問讀「更多數據」時提供讀訪問,而把數據池的內容寫回數據存儲器時提供寫訪問。由於有多條線索並且一次只有其中的一條線索能夠訪問上行數據存儲器以及一次只有一條線索能夠訪問下行數據存儲器,因此每個數據存儲器需要一個判優器。控制訪問總線(CAB)判優器與WEB監視接口(WEBWatchinterface)。CAB判優器在對CAB進行訪問的線索中進行判優。所有的線索均通過CAB協處理器(28)對CAB進行訪問。這就允許對處理器單元中的所有的存儲器及寄存器功能進行訪問。這就允許任一條線索對所有的配置區進行修改或讀操作。該CAB可被看做是處理器單元的存儲器映射。CAB監視接口提供從使用三個晶片I/O埠的晶片的外部對整個CAB的訪問。調試,中斷及單步控制。CAB允許GCH線索或CAB監視來控制每條線索。例如,CAB可以被GFH線索或CAB監視使用,來在單步執行模式中運行一個選擇的線索。核心語言處理器(CLP)網絡伺服器在其體系中使用了幾種類型的CLP。每一類型均被編程以執行一個具體功能。GDH是一種通用數據處理機(GeneralDataHandler),主要用於幀的傳送。每個GDH通常有一個專用的控制處理器。每個控制處理器採用多個根據本發明的協處理器。系統要求的CLP的數量一般由性能的估測來決定。體系與結構是完全可調的,只受矽面大小的限制,隨著CLP數量的增加應該包括一個較大的判優器與指令存儲器。GCH引導單元處理機(GuidedCellHandler)具有與GDH相同的硬體。然而,一個引導幀只能由GCH處理。如果GCH也可以處理數據幀(該情況中,它起到一個GDH的作用)CLP-Eua寄存器可以在Web上編程。與GDH硬體加速器相比,GCH具有附加的硬體來執行樹插入和刪除。GCH用於執行引導單元的相關的代碼,執行與晶片及樹管理相關的代碼如老化(aging)並用於與CP和/或另一個GCH交換控制信息。當沒有這樣的任務要執行時,GCH將執行與幀傳送相關的代碼並且在這種情況下,完全象一個GDH一樣運行。GPH(通用處理器處理機)。該處理器對與PowexPC連接的硬體郵箱(mailbox)進行訪問。由於RIT1/2不包含PowerPC,該GPH將與一個GDH完全一樣地運行。GTH(通用樹處理機)有與GDH和GCH的硬體加速器相似的附加硬體用於執行樹插入,樹刪除及繩(rope)管理。當在GPQ中沒有含有樹管理命令的幀時GTH將處理數據幀。參見圖2,CLP#1(34)包括一個指令取出、解碼、和執行單元(88),一般用途寄存器(80)和包括標量寄存器(84)及陣列寄存器(86)的特殊用途寄存器(82)。同樣,CLP#2(36)含有類似的組成部分。除兩條指令之外CLP(34)完全在其執行單元(102)內執行指令。兩個例外是圖4中的直接與間接協處理器執行指令(417)。這兩條指令在所附協處理器之一上開始命令處理。協處理器相互間能夠同時執行命令而且也能在CLP中進行指令處理的同時執行命令。只要一個CLP指令使用一個協處理器,它就指定一個數值範圍為0至15的稱為協處理器標識符的4位二進位數來指明為該操作選擇哪個協處理器。共享存儲池4K字節的共享存儲池(44)擁有用於至少某些協處理器的陣列寄存器。它被在PPU中運行的所有線索使用。1K字節被每條線索使用並被再分成以下區FCB頁(可認為是供排隊協處理器使用的一個陣列寄存器);數據取(DataFetch);高速暫存區(ScratchMemoryArea,可認為是用於CLP的一個陣列寄存器),和系統區。該共享存儲池可被看作根據線索的數量分成相等的段。在每段內,地址空間被再分成陣列寄存器用於需要陣列寄存器的CLP及各個協處理器。該池內地址線中的兩個根據活動的CLP與活動的線索來驅動。PPU協處理器每個協處理器是一個專用的硬體加速器引擎,如果被嵌入到核心中,該引擎執行要求大量的串行代碼的功能。這些協處理器與CLP並行地運行並提供用於數據移動的功能,包括IP頭修改,維護信息流控制算法中使用的有關信息流的信息,通過CAB訪問內部寄存器,維護對信息流控制以及管理信息塊(MIB)的計數,標準的和專用的(proprietary),和對將被傳送的幀進行排隊。每個協處理器,除非另有說明,維護一組用於PPU中的每條線索的標量寄存器及陣列寄存器。再次參見圖2,PPU(10)包括兩個核心語言處理器(34,36)和幾個所附的協處理器(12,20,22,24,26,28,30和32)。這些協處理器為特定的網絡處理任務如高速模式檢索,數據操縱,內部晶片管理功能,幀解析,以及數據提取提供硬體加速。各種協處理器及其功能描述如下樹檢索協處理器樹檢索引擎(TSE)協處理器(12)被指定協處理器標識符2。TSE具有用於樹管理的命令並通過判優器(110)直接訪問樹檢索存儲器。它具有檢索算法用於執行對LPM(要求可變長匹配的最長的前縱匹配模式),FM(有精確匹配的固定大小模式)和STM(涉及或者定義一個範圍或者定義一個比特掩碼的模式的軟體管理樹)的檢索以實現幀傳送及修改信息。一個數據存儲協處理器(26),被指定協處理器標識符1,用於收集,修改或者把幀數據送入網絡處理器的幀數據存儲器(112)中。本發明中使用的樹檢索結構與操作的細節可在下面的美國專利申請中找到,它們的代理人卷號為RAL9-99-0139;RAL9-99-0140和RAL9-99-0141。校驗和協處理器常規的校驗和協處理器(20)利用向其提供的用於計算網際網路校驗和的相應算法來計算與確認校驗和。該協處理器用一個半字長的校驗和結果對半字長數據進行校驗和的操作。下面的命令可以使用生成校驗和(GenerateChecksum);以及驗證校驗和(VerifyChecksum)命令的結果放在一個累加標量寄存器和一個標樁標量寄存器(StakeScalarregister)中。累加標量寄存器含有校驗和的計算結果,而標樁標量寄存器含有緊隨在包含於校驗和中的最後半個字的字節的位置。用於校驗和協處理器的數據存於共享存儲池中。到協處理器的命令包括以下選項1)IP報頭一個IP報頭被指明時,第三層報頭的起始位置(即標樁)被傳送。硬體從該報頭的長度欄位來確定IP報頭的長度並把該值加載到一個長度標量寄存器。生成校驗和時,用值零來代替含有當前校驗和的半個字。2)數據塊存於共享存儲池中的數據被看作是一個數據塊而且可以生成一個校驗和或者可對該校驗和進行驗證。共享存儲池中的起始位置,以及長度被傳送。驗證(verifying)一個數據塊時,校驗和被置入累加標量寄存器。校驗(checking)一個數據塊時,校驗和被放入累加寄存器。排隊協處理器排隊協處理器(24)提供兩個功能1.它允許代碼來建立一個FCB(幀控制塊)頁,一個用於建立上行與下行FCB頁的稱為一個工作FCB頁的256比特寄存器。該寄存器含有被要求按照EDS(排隊,離隊/調度)(Enqueue,Dequeue/Scheduling)上行或EDS下行對幀進行排隊的全部參數,該寄存器中含有的參數的例子是用於上行的FCB地址,目標部分號(targetpartnumber),幀修改信息以及下一個循環的標識。2.它提供在一個CLP和結束單元(CU)之間的一個接口。CU的操作與CLP無關,但是它為每個CLP處理順包括一個稱為準備FCB頁(ReadyFCBPage)的寄存器。在排隊時,該寄存器被拷貝到CU然後該隊列被排隊處理器接收。此時,CLP被騰空以便處理下一幀。EQ設置其準備比特(?)然而,如果CU中的準備FCB頁不為空,EQ將封鎖從CLP向CU的傳輸,直至EQ寄存器為空再允許傳輸。排隊協處理器管理在一條線索與結束單元之間的接口和存於共享存儲池中的FCB頁的使用。每條線索有3個FCB頁位置,有關一個幀的排隊信息可以存入其中。其中兩個頁用於在連續的排隊期間通過兩個頁之間的交換來改善結束單元的接口的性能。在這兩個頁之間對為該線索所寫的彙編語言代碼沒有區別,因為這是由硬體管理的。第三頁由該線索用於準許通過代碼來建立新幀。這方面的一個例子是建立用於學習的定向通信(guidedtraffic),該通信被重新排隊以供一條GTH線索執行的信息。一條CLP線索發出一條排隊命令時,FCB頁被標明在使用中(in-use)。如果其它位置可供使用,則一個新幀可被調至該線索而不用等待來自排隊協處理器的應答。結束單元通過排隊協處理器從共享存儲池取出FCB頁,而且它將該頁提供給EDS(正如排隊命令指明的那樣,或入或出)。一旦出現這種情況,FCB頁被標明為空閒。如果兩個FCB頁均被標明在使用中,則第三幀不允許開始。下面的命令由排隊協處理器支持排隊入(EnqueueIngress,ENQUP)通過結束單元排隊到入數據流控制和調度程序(scheduler)。排隊出(EnqueueEgress,ENQDN)通過結束單元排隊到出數據流控制和調度程序。排隊清除(EnqueueClear,ENQCLR)清除(將所有欄位置為零)當前的PCB頁。數據存儲協處理器該協處理器(26)執行下列功能1.它與上行數據存儲器及下行數據存儲器進行接口。2.它在一個定時器事項或中斷的調度期間接收配置信息。3.它對幀計算校驗和。該協處理器一般包括一個320位元組的數據緩衝器和一個8個字的存儲器,每個字128比特。幀數據通過數據存儲協處理器被訪問,從而與包含從媒體接收的幀的入數據存儲器和包含從包路由交換機接收的重新裝配的幀的出數據存儲器接口。在一個計時器事項或中斷的調度期間,它還接收配置信息。該數據存儲協處理器使用在一個共享存儲池中定義的陣列。這些陣列是數據池(datapool),可容納8個四倍長字(QuadWords),和兩個高速暫存陣列,其中一個容納8個四倍長字和一個容納4個四倍長字。用於控制從和向入或出數據存儲器讀和寫陣列內容的附加標量寄存器在該數據存儲協處理器中。為由該數據存儲協處理器支持的每條線索定義了一組陣列與標量寄存器。這些共享存儲池陣列用作數據存儲協處理器的工作區取代對一個數據存儲器的直接讀或寫,更大量的幀數據從該數據存儲器被讀到這些共享存儲池陣列中或者更大量的數據從這些陣列中被寫入到數據存儲器中。傳送單位是一個四倍長字,定義為16個字節。下列命令可供數據存儲協處理器使用1.寫入出數據存儲器(WriteEgressDataStore,WRDNDS)允許CLP寫入出數據存儲器。寫操作只在多個四倍長字單位中進行。數據取自數據存儲協處理器陣列中的一個陣列(數據池或高速暫存陣列)。2.讀出出數據存儲器(ReadEgressDataStore,RDDNDS)允許CLP從出數據存儲器中讀出數據並將其置入數據存儲協處理器陣列中的一個陣列。讀操作只在多個四倍長字單位中對出數據存儲器進行。3.寫入數據存儲器(WriteIngressDataStore,WRUPDS)允許CLP向入數據存儲器寫數據。寫操作只在多個四倍長字單位中對入數據存儲器進行。4.讀出入數據存儲器(ReadIngressDataStore,RDUPDS)允許CLP從入數據存儲器讀出數據(只在多個四倍長字單位中)。從出數據存儲器讀取更多幀數據(RDMOREDN)對出數據存儲器進行的一個硬體輔助的讀操作。RDMOREDN從上一個讀命令停止的地方繼續讀取幀並把數據送入數據池(Datapool)。由於數據被移入數據池,該硬體跟蹤被讀取的幀中的當前位置並從雙緩衝器中捕獲連接指針以便確定下個雙緩衝器(buffertwin)的位置。該地址被硬體用於後續的RDMOREDN請求,直至該雙緩衝器被讀完而且下一個雙緩衝器被讀取。由於數據池的內容是一個雙緩衝器的內容的映射,幀數據就有能力在數據池內交換(wrap);代碼則保持對數據池內的數據位置的跟蹤。從入數據存儲器讀取更多幀數據(RDMOREUP)對入數據存儲器進行的一個硬體輔助的讀操作。RDMOREUP從上一個讀命令停止的地方繼續讀取幀並把讀出數據送入數據池。由於數據被移入數據池,該硬體跟蹤被讀的幀中的當前位置並捕獲含於緩衝器控制塊區中的連接以便確定該幀的下一個數據緩衝器的位置。讀地址被硬體用於後續的RDMOREUP請求,直至該數據緩衝器被讀完而且下一個緩衝器被讀取。代碼則保持對數據池內的幀數據位置的跟蹤。租用雙緩衝器(LeaseTwinBuffer,LEASETWIN),返回一個空閒的雙緩衝器(在出數據存儲器中建立新數據時使用)的地址。控制訪問總線(CAB)協處理器該協處理器(28)允許網絡處理器在整個網絡處理器系統中對所選的寄存器進行控制。出於包括系統初始化在內的目的它能夠把某些寄存器初始化,而且為了系統診斷與維護它能對某些寄存器執行讀操作。該協處理器與嵌入式處理器組合(EPC)Web判優器接口。該判優器在CLP與Web監視之間判優。這就允許所有的CLP在Web上讀與寫。該CAB協處理器為一個CLP線索提供到CAB判優器和控制訪問總線的接口。一條線索必須為一個CAB訪問而加載操作數,如CAB地址與數據。訪問CAB的協議則由CAB接口協處理器處理,其提供下列命令判優CAB訪問(ArbitrateforCABAccess,WEBARB)由一條線索使用以獲得對CAB的訪問。一旦訪問被批准,該線索即保持對CAB的控制直至其釋放CAB為止。讀/寫CAB(Read/wieteCAB,WEBACCESS)向或從CAB及其所附的CAB可訪問寄存器移動數據。PPU內的源及目的是一般用途寄存器(GPR)。預佔CAB(Pre-emptCAB,WEBPREEMPT)只供GFH線索使用,它允許GFH為了一個單一的讀/寫訪問而獲得對CAB的控制,即使該CAB已被授予給另一條線索。有關校驗和,數據存儲器,隊列以及CAB協處理器的結構與操作的其他細節示於美國專利申請《串拷貝(StrCopy)協處理器》中,其代理人卷號為RAL9-99-0083。串拷貝協處理器(StringCopyCoprocessor)(22)擴展了CLP的移動數據塊的能力。數據只在共享存儲池內移動。下列命令可供使用串拷貝(Strcopr)本命令用於在陣列之間移動多個字節的數據。該命令傳遞源數據塊的起始字節位置,信宿數據塊(sinkdatablock),以及要移動的字節數。計數器協處理器計數器協處理器(30)沿總線(72)向可以在所有的PPU間共享的一個計數器管理器(未示出)提供訪問。該協處理器與所有的計數器程序接口並執行計數器的更新。這是由其標量寄存器與協處理器執行接口(16)之間的一個FIFO緩衝器(76)實現的。一個第二FIFO緩衝器(78)位於它的陣列寄存器與協處理器數據接口(14)之間。每條線索就象擁有其自己的計數器協處理器一樣運行。一個外部(至PPU)地址及數據總線用於該協處理器。這樣,該系統就能夠實現允許一個以上的PPU通過外部總線來判優計數器協處理器的使用。一條線索能夠通過計數器共用處理要求一個計數器的更新並且能夠持續進行處理而不用等待計數器管理器完成操作。計數器協處理器就該請求向計數器管理器發生信號並把計數器訪問命令的操作數傳遞給計數器管理器以供處理。該計數器協處理器有一個8層的(eight-deep)隊列用於容納由在PPU中運行的四條線索發出的計數器訪問命令。該計數器協處理器提供下列命令計數器訪問(CtrAccfess),增加或把一個值加到一個計數器。該命令的操作數是一個計數器標識符(以計數器存儲器的形式),索引與移位,一個增加或加法命令,和一個值欄位;讀一個計數或寫一個計數;或者讀出與清除一個計數值。除非計數器協處理器的隊列已滿一條線索不等待命令的執行。計數器協處理器及其操作的更多細節可見於標題為《用於管理大計數器陣列的協處理器》,代理人卷號為RAL9-2000-0078-USI的美國專利申請。規則協處理器(PolicyCoprocessor)規則協處理器(32)為一條線索提供到規則管理器(未示出)的一個接口(74)。這是由它的標量寄存器與協處理器執行接口(16)之間的一個FIFO緩衝器(76)實現的。一個第二FIFO緩衝器(78)位於其陣列寄存器與協處理器數據接口(14)之間。一條線索通過該接口請求對一個幀的「顏色」(「color」)進行更新。一個幀的顏色用作網絡處理器的可配置的信息流控制機制的組成部分,決定著對該幀執行何種操作。一條線索必須等待規則管理器,通過規則協處理器,返回一個結果。規則管理器訪問用於信息流的規則控制塊,而該幀是該信息流的一個部分。操作數包括規則控制塊地址,信息包的長度以及當前指定給該幀的顏色。返回的結果是給該幀的一種新的顏色。每個CLP(34,36)通過兩個接口即協處理器執行接口(16)與協處理器數據接口(14)與協處理器(12,20,22,24,26,28,30和32)連接。這些接口的功能將在圖4中更詳細描述。一個4比特共用處理標識符唯一地標識PPU中的每個協處理器。每個協處理器能夠支持多達256個特殊用途寄存器。一個取值範圍為0至255的8比特寄存器號碼唯一地標識一個協處理器內的一個特殊用途寄存器。協處理器號碼與寄存器號碼的組合唯一地標識PPU內的寄存器。有兩種類型的特殊用途寄存器標量寄存器與陣列寄存器。寄存器碼0至239為標量寄存器售留。一個標量寄存器有一個1比特的最小長度和一個32比特的最大長度。標量寄存器的比特被標以從0至31的號碼,在最右端或最低有效位從0開始,而在最左端或最高有效位至31結束。長度小於32個比特的標量寄存器從右側排起,餘下的位被看作未生效。CLP對長度小於32比特的標量寄存器執行讀操作時,未生效的位的值取決於硬體。對未生效的位的寫操作無效。寄存器號碼240至255為陣列寄存器保留。一個陣列寄存器有一個兩個字節的最小長度和一個256個字節的最大長度。CLP對一個陣列寄存器讀或寫,在共享存儲池(44)內分區(partition),一次兩個字節(半字長),一次四個字節(一個字)或一次16個字節(四倍長字)。一般用途寄存器的使用在技術中是周知的,因此用一般的方式來討論。一般用途寄存器可以由兩個途徑被程式設計師觀察。程式設計師可以把一個一般用途寄存器看作是一個32比特寄存器,正如用取自0,2,4,6,……14組的一個4比特數表示的32比特的標籤指明的那樣。在這種意義上程式設計師見到的是8個32比特的一般用途寄存器。根據用一個取自0,1,2,3,……15組的一個4比特數表示的16位的標籤,程式設計師也可以把一個一般用途寄存器做為一個16比特寄存器來使用。在這種意義上程式設計師見到的是16個16比特一般用途寄存器。每個協處理器包括儲存來自忙信號欄位的信息的一個狀態寄存器。這個寄存器向一個程式設計師指明一個給定的協處理器是否可用、或者它是否忙。一個協處理器結束代碼寄存器儲存來自圖4中的OK/K.O.欄位(415)的信息。因此,如果一個程式設計師需要知道一個給定的協處理器是否忙或是否可用,該程式設計師能夠從一個協處理器狀態寄存器得到這一信息。與此類似,一個協處理器結束代碼寄存器向一個程式設計師提供關於協處理器任務結束的信息。每個CUP包括下列16比特程序寄存器一個程序計數器寄存器,一個程序狀態寄存器,一個連接寄存器,和一個關鍵字(key)長度寄存器。還提供兩個32比特寄存器時間籤(timestamp)寄存器,和隨機數生成器寄存器。還為前面提到的每個寄存器提供一個標量寄存器號碼。一般用途寄存器可以兩種方式被程式設計師觀察。一個程式設計師可以把一個一般用途寄存器看作是一個32比特寄存器。一個程式設計師也可以把一個一般用途寄存器用作一個16比特寄存器。陣列寄存器通過陣列寄存器號碼展示在程式設計師面前。圖4描述了通過協處理器執行接口(16)和協處理器數據接口(14)把CLP(34)與其協處理器(401)連接起來的接口信號。獨立線連接的數量由挨著每項獨立的任務中的箭頭出現的有編號的標籤指明。為了便於討論,所選的協處理器(20,22,……)代表其協處理器標識符與根據下面討論的操作而出現在(411),(420),或者(429)上的協處理器標識符相配匹的協處理器。執行接口(16)使CLP(34)能夠在任何一個協處理器(20,22,……)上開始命令的執行。協處理器號碼(411)在16個協處理器中選擇一個作為該命令的目標。當CLP把起始欄位(410)觸發至邏輯1時,如由協處理器號(411)指明的選中的協處理器(450)開始執行由6比特操作欄位(OPfield)(412)指定的命令。操作重量(OPargument)是44比特的數據,與該命令一道傳送供協處理器(450)執行。忙信號(414)是一個16比特的欄位,每個協處理器(401)對應一個比特,並指明一個協處理器是否忙於執行一條命令(比特=1)或者這個協處理器是否未執行命令(比特=0)。這16比特存儲於標量寄存器中,這裡,寄存器的位0對應協處理器0,位1對應協處理器1,等等。OK/K.O.欄位(415)是一個16比特欄位,每個協處理器(401)一個比特。它是專供命令使用的一個比特返回值代碼。例如,它可以用於向CLP(34)指明給予一個協處理器(401)的一條命令是否以失敗結束,或者一條命令是否成功。這一信息存儲於CLP標量寄存器中,這裡該寄存器的位0對應協處理器0,位1對應協處理器1,等等。直接/間接欄位(417)向選中的協處理器(450)指明協處理器執行指令的哪種格式在執行。如果直接/間接=0,則直接格式在執行,否則,如果直接/間接=1則間接格式在執行。協處理器數據接口(14)包含3組信號。寫接口(419,420,421,422,423,424)涉及向一個協處理器中的一個標量或陣列寄存器寫數據。讀接口(427,428,429,430,431,432,433)涉及從一個協處理器內的一個特殊用途寄存器(80),或者是一個標量寄存器(84)或者是一個陣列寄存器(86)讀數據。第三組(425,426,427)在一個標量寄存器或陣列寄存器的讀與寫期間都要使用。讀接口與寫接口二者的複製功能用於支持同時的讀與寫以把數據從一個寄存器移至另一個寄存器。寫接口用寫欄位(419)選擇由協處理器號碼(420)指定的一個協處理器(450)。只要CLP(34)想把數據寫入選中的協處理器,寫欄位(419)即被強制置為一。協處理器寄存器標識符(421)指定選中的協處理器(450)內CLP(34)將進行寫操作的寄存器。協處理器寄存器標識符(421)是一個8比特欄位,因此(256)個寄存器被支持。取值範圍為0至239的一個協處理器寄存器標識符指定對一個標量寄存器的一個寫操作。取值範圍為240至255的一個協處理器寄存器標識符指定對一個陣列寄存器的一個寫操作。在陣列寄存器寫的情況下,該移位欄位(422)指定陣列寄存器中數據寫操作的起始點。這個欄位的大小為8比特,因此將支持一個陣列內的256個地址。數據出欄位(423)攜帶將被寫入協處理器(450)的數據。它的大小為128比特,因此一次可寫多達128位的信息。寫有效欄位(424)向CLP(34)指明何時協處理器(450)完成接收數據。這就允許CLP(34)在協處理器(450)接收數據的同時暫停並保持數據有效。除了數據從協處理器被讀取之外,讀接口(14)在結構上與寫接口(16)相似。讀欄位(428)對應寫欄位(419),並由CLP(34)用於指明何時對選擇的協處理器(450)執行一個讀操作。協處理器號碼標識符欄位。(429)判斷選擇哪個協處理器(450)。寄存器號碼欄位(430)、位移欄位(431),以及讀有效欄位(433)與寫接口中的(421)(422),及(424)對應。數據入欄位(432)把數據從協處理器(450)傳輸至CLP(34)。讀或寫操作能有三種長度中的一種指明傳送16比特的半長字,指明傳送32比特的字,以及指明傳送128比特的四倍長字。讀數據(432)和寫數據(423)寬度為128比特。少於128比特的數據傳輸是右對齊的。信號(425)與(426)指明數據傳輸的大小。16比特傳輸由取值均為0的(425)與(426)指明,32比特傳輸由分別取值1和0的(425)和(426)指明,而128比特傳輸由分別取值0和1的(425)和(426)指明。變址數(modifier)欄位(427)在數據讀或數據寫操作期間均要使用。每個協處理器就象該協處理器的硬體設計器定義的那樣以其自己的方式解釋它的含義。它為程式設計師提供一個方法以便在讀或寫操作期間均為硬體規定一個附加位的信息。數據存儲協處理器能夠跳過信息包緩衝器連結表中的信息包緩衝器中的連接欄位。啟動一個協處理器中的一項任務之後,CLP可以繼續執行指令,或者可以拖延指令的執行直至該協處理器中的任務完成。在CLP在與協處理器中的任務執行的同時繼續執行指令的情況下,在某一後續的時間點上,由主處理器單元執行的等待指令將使其拖延其它指令的執行直至在一個或多個協處理器上的任務執行結束。在一種形式中,等待指令拖延在CLP上的執行直至在一個或多個協處理器內的任務完成,這時CLP恢復對跟隨在等待指令後面的指令的指令執行。在另一種形式中,等待地令拖延CLP的執行直至在一個特定的協處理器內的任務完成。在這個任務完成時,CLP對來自該協處理器的一個一比特的返回代碼連同來自等待指令內的一比特一起進行檢查以確定是否恢復對跟隨在等待指令後面的指令的指令執行或者將執行轉移至由程式設計師規定的某個其他指令。協處理器執行指令通過把圖1中的協處理器執行接口(16)中的『開始』信號置成1的方式來模擬在一個協處理器上的命令處理。參見圖5,協處理器標識符(520)是從指令欄位(500)獲得的並通過開始信號指明一個所選的協處理器。6比特的協處理器命令是從指令欄位(501)獲得的並通過一個信號向所選的協處理器指明哪個命令開始執行。一旦把開始信號激活至1,所選的協處理器將其忙信號激活至1並使其保持1值直至它完成命令的執行,這時它把該信號去話(deactivate)至0。CLP連續地讀取16位的信號並把它們置入標量寄存器。根據命令的完成,所選的協處理器把這一狀態置入標量寄存器。再參見圖5,如果指令的異步執行欄位(502)是0則CLP通過將其忙信號去活來指明指令完成。出現這種情況時,CLP恢復指令的取出與執行。如果指令的異步執行欄位(502)是1則CLP不管忙信號的狀態繼續指令的取出與執行。當所選的協處理器中的命令處理起動,CLP通過一個信號向該協處理器提供44比特的附加的命令專用信息。該信息是根據在圖5a與5d中描述的指令格式用4種方法中的1種方法獲得的。圖5a的協處理器執行間接格式從指令欄位(504)獲得指令信息的高位的12比特(523)。指令信息的低位32比特(524)是從32比特的一般用途寄存器(505)獲得的。所選的寄存器由取值限制在{0,2,4,……14}範圍內的4比持的指令欄位(503)決定。通過這種方式,從該寄存器中選出一個32比特寄存器。CLP把該信號置成1以向所選的協處理器指明這是指令的間接形式。用於執行指令的條件協處理器執行間接格式示於圖5b。這裡,指令以與圖5a中的方式相同的方式根據被滿足的某些條件而執行。如果這些條件未予滿足,指令即不執行。這些指令是根據CLP中的ALU代碼執行的。條件執行使用產生被縮短至2比特的操作欄位(OPfield)的4比特。這樣,系統就允許對64個可能的命令中的4個命令實施條件執行。其他命令假定為0。這樣,基於長和短等待時間的條件執行就能夠藉此而實現。協處理器指令的條件執行在有關計數器協處理器的操作中尤其有用。圖5c的協處理器執行直接格式從指令欄位(506)中獲得命令信息的低位的16比特(527)。命令信息的高位28比特(526)被置成0。CLP把該信號置成0以向所選的協處理器指明這是指令的直接形式。條件協處理器執行直接格式示於圖5d中,正如其配置,可根據某些被滿足的條件,以與圖5c中相同的方式來執行。與圖5b的情況相同,條件執行使用能夠產生被縮短至2比特的操作欄位的4比特。這樣,系統就允許對64個可能的命令中的4個命令實施條件執行。圖6a描述了用於協處理器等待指令的指令格式。CLP執行從指令欄位(600)獲得的16比特掩碼(mask)與協處理器狀態寄存器的比特智能「與」操作(thebitwiseANDoperation)。如果結果不是表明一個或多個協處理器當前仍在執行命令的0,CLP則拖延命令的取出與執行。但是它繼續執行上述的「與」操作直至結果為零的時候。圖6b描述了協處理器等待與轉移(Branch)格式。協處理器標識符欄位(601)指明協處理器狀態中的哪個特定比特將被測試。例如,如果欄位(601)含有1則協處理器狀態寄存器的比特1被測試。如果標識欄位(601)含有15,則協處理器狀態的比特15被測試。如果測過的比特的值是1表明對應的協處理器尚未完成命令的執行,則CLP拖延指令的取出與執行。但是它繼續執行上述操作直至測過的比特的值是0表明對應的協處理器已經完成命令的執行。這時,按照該指令的OK欄位(602)的值以及由協處理器標識符(601)選擇的標量寄存器中的協處理器結束代碼中的比特的值,兩項動作中的一項操作就會發生。CLP或者恢復對下一個後續指令的取出與執行,或者轉移並恢復對根據下表由指令欄位(603)指明的指令地址的指令的取出與執行通過啟動一個共用處理單元中的一項任務來執行指令在申請是09/548,109,標題為「用於通信系統網絡處理器的協處理器結構與方法」的共同未決的美國專利申請中給出了更為詳細的描述。本發明還涉及每個CLP中的多條指令執行線索9其中每條線索涉及被處理的一個不同的信息包)的每一條線中的獨立的處理以及用於處理訪問數據過程中的延遲時間的過程。每條執行線索均是一個執行一系列指令的獨立的處理過程,由於這些線索被允許對協處理器硬體進行訪問。樹檢索協處理器被安裝管道(pipeline)以使多條執行線索與樹檢索管道中同時但以不同階段重疊進行訪問的每個協處理器連接。優選地,本發明採用多條具有零開銷的指令執行線索把執行從一條線索切換下一條線索。這些線索被排隊以便向共享存儲器提供迅速的訪問分配。這些線索的排隊用於把最高優先權的線索儘可能快地交給它的長等待時間的事件。如前所述,每個PPU含有多個指令預取緩衝器,每條執行線索一個。這些預取緩衝器在指令帶寬未被活動的(active)執行線索全部利用的時間間隔內為空閒的執行線索啟動指令的預取。這有助於保證當控制被切換至一條新的執行線索時,該線索的指令預取緩衝器將是滿的,這樣就避免了由於缺少可用的指令以供執行而使該新線索即刻拖延的可能性。因此,對指令存儲器的訪問優先權受到控制以便當前的執行線索接受最高的優先權,而負責控制當前線索是否拖延的執行線索被賦予第二優先權。同樣,執行隊列底部的執行線索在指令取出訪問中被授與最後的優先權。當一條活動的線索的執行由於一個長等待時間的事件(即樹檢索)而拖延時全面控制賦予下一條線索,或者當執行由於一個短等待時間的事件(即局部數據存儲中的協處理器操作,或指令取出等待時間)而拖延時臨時控制賦予下一條線索。如果臨時控制被賦予一條替代線索,則只要原來的線索一被解鎖控制即被返回給原來的線索。相反,如果全面控制被賦予一條替代線索,該替代線索將維持受控狀態直至其被鎖定為止。這就避免了因短等待時間的事件而浪費周期,但還允許主要執行線索更快地達到長等待時間事件。否則,多條執行線索可能幾乎同時達到一個長等待時間的事件,這就會降低把一條線索的PPU執行與一條替代線索的樹檢索重疊的好處。與根據等待時間進行控制分配相關的細節在申請號為09/542,189,標題為『具有多條指令線索的網絡處理器』並且由代理人卷號RAL9-2000-0008標識的未決的美國專利申請中給出。這一分配與線索執行控制的細節描述如下。當計算機首次加電時,每條CLP線索均處於起始狀態。當一個信息包被調至一個處理器時,相應的線索轉為準備狀態,此時它開始要求執行周期。一個判優器根據該判優器的邏輯功能按照一個布爾方程把執行周期賦予該線索。如果該周期被賦予,則該線索從準備狀態轉為執行狀態。在執行狀態中,該線索繼續提出請求直至由於一個時間延遲事件或被處理的信息包被排隊而使執行拖延為止,這意味著在對該信息包執行的代碼完成了。如果周期不再被賦予,這就意味著另一條線索在起控制作用。這就是該判優器不授予周期的唯一原因。但是在這兩種狀態(準備與執行)中,該線索將不斷地請求因時間延尺事件而中止的新的執行周期,直至達到信息包處理並且下一個信息包被排隊以便被調度為止。系統則返回起始狀態並等待下一個信息包。等待階段或者處理一個長等待時間的事件或者處理一個短等待時間的事件。無論哪一事件出現,處理器均要拖延並且活動線索則省略等待階段。該線索然後停止請求執行周期直至等待時間事件被完成。把一條線索從起始階段轉至準備狀態的同一個調度操作把該線索的號碼輸入到一個FIFO緩衝器中以便第一個信息包被傳至的該線索成為具有最高優先權的線索。後續的調度操作把附加的線索的號碼提供到該FIFO中。FIFO的最高優先權位置中的線索號碼將留在該位置直至它遇到一個長等待時間的事件,於是該線索返回FIFO的起始部分並從最高優先權的線索變為最低優先權的線索。一個短等待時間的事件則不會使該線索失去在FIFO緩衝器中的優先權。如果該線已經完成對該信息包的處理,則該信息包被排隊以便傳至一個輸出埠並且該線索號碼則從FIFO緩衝器中刪除。新的信息包調自一個高級別控制器(未示出)。該控制器選擇一條線索與一個處理器來處理每個信息包。這一選定向FIFO緩衝器提供一個輸入命令。它還向狀態裝置提供一個輸入信號以令該裝置從起始狀態轉向準備狀態。與來自外部控制器的命令一道,該信息包將被調至的線索的號碼也必須從該控制器傳遞到FIFO。基本上有兩種類型的事件可使執行拖延,導致一個短中斷的那些事件和導致當前程序流的一個擴展中斷的那些事件。短中斷可以由要求會因程序流中的一個變化而被重新填充的指令預取隊列的一個轉移指令引起。另一方面,在等待一個協處理器執行一個與處理器的局部存儲器中的數據相關的任務時程序可以拖延。這方面的一個例子是用於計算一個經過修改的幀頭欄位的新的校驗和的一個校驗和協處理器。如果等待時間小於25個處理器周期則一個事件被認為是一個短中斷。長等待時間的事件通常採用一個大於25個而通常是多達50至100個處理器周期的等待時間。這些都會對總本性能產生更為顯著的影響。有多種不同的方法用於判定一個長等待時間的或短等待時間的事件。等待時間的長度可受程式設計師的控制,這樣,硬體或其配置就不是判定中的一個因素了。另一方面,一個閥值寄存器可被置以一個25個周期的閥值,而硬體能夠確定一個操作會要求多少個周期並根據該確定自動作出決定。一個協處理器指令是處理器執行的指令的一個類型。欄位中的某些比特確定哪個協處理器被指定。一比特用於把具體的指令定義為一個長或一個短等待時間的事件。這樣,一個程式設計師能定義對控制存儲器的兩個相同的訪問,一個定義為一個長等待時間的事件而另一個定義為一個短等待時間的事件,就是可能的。線索執行控制功能被設計來把這些長等待時間的事件的影響降至最低。因此,一個長等待時間的事件將導致對向一條替代線索的轉換的全面控制,而一個短等待時間的事件則只導致向一條替代線索臨的臨時轉換。協議處理器單元PPU及核心語言處理器的基本細節為該
技術領域:
的普通技術人員所知,而且除了已被修改或補充而成為網絡處理器系統的部分總體結構以及與特定功能的協處理器和其他系統部件相互連接的那部分之外這些細節並不包括本發明的部分。特殊的細節包括在本發明中使用的獨立的協處理器的結構與程序設計並不被認為包括本發明的一部分。雖然已結合其實施例對本發明進行了描述,但是顯然,通過上面的講解,許多的替換,修改,與變化對於本
技術領域:
的技術人員而言將是可以理解的。因此,本發明意在把諸如這些替換,修改以及變更均囊括於所附的權利要求的精神與範圍之內。權利要求1.在用於控制一個網絡處理器的程序設計能力的一個嵌入式處理器組合的操作中,該處理器組合包括多個協議處理器單元(PPU),每個PPU至少有一個核心語言處理器(CLP),每個CLP至少有兩條代碼線索,每個PPU使用多個用於為該PPU執行特定任務的協處理器,和在每個CLP與該協處理器之間提供訪問的多個邏輯協處理器接口。2.在根據權利要求1的操作中,其特徵在於該協處理器包括支持每個CLP的多條代碼線索的專用的協處理器。3.在根據權利要求1的操作中,其特徵在於該協處理器是從包括一個樹檢索協處理器,一個校驗和協處理器,一個串拷貝協處理器,一個排隊協處理器,一個數據存儲協處理器,一個CAB協處理器,一個計數器協處理器和一個規則協處理器的一個協處理器組中挑選出來的。4.在根據權利要求3的操作中還包括一個用於確定多條線索之間的優先權的協處理器執行接口判優器。5.在根據權利要求3的操作中包括一個確定數據線索之間的優先權的協處理器數據接口判優器。6.在根據權利要求3的操作中在每條線索和至少一個協處理器之間還包括一個FIFO緩衝器。7.在根據權利要求6的操作中,其特徵在於該FIFO緩衝器位於每條線索與計數器協處理器之間。8.在根據權利要求6的操作中,其特徵在於該FIFO緩衝器位於每條線索與規則協處理器之間。9.包括用於控制一個網絡處理的程序設計能力的一個嵌入式處理器組合的一個網絡處理系統,所述組合包括多個協議處理器單元(PPU),每個PPU含有至少一個核心語言處理器(CLP),每個CLP至少有兩條代碼線索;用於為該系統執行特定任務的多個協處理器,和與每個CLP一起訪問和共享協處理器資源的多個協處理器接口。10.權利要求9的網絡處理系統,其特徵在於該協處理器接口專用於支持每個CLP的代碼線索。11.權利要求10的網絡處理系統,其特徵在於該協處理器是從包括一個樹檢索協處理器,校驗和協處理器,串拷貝協處理器,排隊協處理器,數據存儲協處理器,CAB協處理器,計數器協處理器和規則協處理器的一個協處理器組中挑選出來的。12.權利要求10的網絡處理系統,其特徵在於在每條線索和至少一個協處理器之間還包括一個FIFO緩衝器。13.權利要求12的網絡處理系統,其特徵在於該FIFO緩衝器位於每條線索和計數器協處理器之間。14.根據權利要求12的網絡處理系統,其特徵在於該FIFO緩衝器位於每條線索與規則協處理器之間。15.權利要求9的網絡處理系統,其特徵在於包括由CLP的線索執行的產生控制協處理器操作的命令的特定操作指令,這些命令流經CLP與協處理器之間的接口。16.根據權利要求15的網絡處理系統,其特徵在於該指令用於啟動特定的協處理器操作的條件執行。17.根據權利要求15的網絡處理系統,其特徵在於該指令根據響應一個特定的協處理器命令而訪問數據的預期的響應時間起動系統來識別長等待時間的事件與短等待時間的事件,並且當一條活動的線索的執行由於一個長等待時間的事件而拖延時把全面控制賦予另一條線索,或者當一條活動的線的執行由於一個短等待時間的事件而拖延時把臨時控制賦予另一條線索。18.一種控制一個嵌入式處理器組合內的指令執行的方法,該組合含有多個協議處理器單元(PPU),每個協議處理器單元含有至少一個核心語言處理器(CLP),每個CLP至少有兩條代碼線索,該方法包括每個PPU使用用於執行PPU的特定任務的多個協處理器,以及在協處理器與每個CLP之間提供訪問的多個邏輯協處理器接口的使用。19.根據權利要求18的方法,其特徵在於包括支持PPU的多條代碼線索的專用的協處理器的使用。20.根據權利要求19的方法,其特徵在於一個或多個協處理器選自包括一個樹檢索協處理器,校驗和協處理器,串拷貝協處理器,排隊協處理器,數據存儲協處理器,CAB協處理器,計數器協處理器和規則協處理器的協處理器組。21.根據權利要求20的方法,其特徵在於一個協處理器執行接口判優器用於確定執行線索間的優先權。22.根據權利要求20的方法,其特徵在於一個協處理器數據接口判優器用於確定數據線索間的優先權。23.根據權利要求20的方法,其特徵在於還包括在每條線索與至少一個協處理器之間提供一個FIFO緩衝器。24.根據權利要求23的方法,其特徵在於該FIFO緩衝器位於每條線索與計數器協處理器之間。25.根據權利要求23的方法,其特徵在於該FIFO緩衝器接口位於每條線索與規則協處理器之間。26.根據權利要求18的方法,其特徵在於包括提供由CLP執行的生成用於控制協處理器操作的命令的專用操作指令的步驟,這些命令流經CLP與協處理器之間的接口。27.根據權利要求26的方法,其特徵在於該操作指令啟動特定的協處理器操作的條件執行。28.根據權利要求27的方法,其特徵在於該執行或者是直接的或者是間接。29.根據權利要求18的方法,其特徵在於包括提供指令的步驟,提供的指令根據對一個特定的協處理器命令的預期的響應時間啟動系統識別長等待時間的事件與短等待時間的事件,並且當一條活動的線索的執行由於一個長等待時間的事件而拖延時把全面控制賦予另一條線索,或者當一條活動的線索的執行由於一個短等項等時間的事件而拖延時把臨時控制賦予另一條線索。全文摘要一個嵌入式的處理器組合含有多個協議處理器單元(PPU)。每個單元包括至少一個,而最好是兩個獨立運行的核心語言處理器(CLP)。每個CLP支持通過邏輯協處理器的執行或數據接口與用於每個PPU的多個專用的協處理器相互作用的雙線線索。操作指令啟動PPU識別長與短等待時間的事件並根據這一識別控制與轉移線索執行的優先權。該指令還根據某些特定事件的出現與未出現,啟動特定協處理器操作的條件執行。文檔編號G06F13/14GK1342940SQ0113245公開日2002年4月3日申請日期2001年9月5日優先權日2000年9月6日發明者戈登·泰勒·戴維斯,馬可·C.·海德斯,羅斯·博伊德·裡文斯,馬克·安舍尼·裡納爾迪申請人:國際商業機器公司