專利名稱:一種基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,屬于計算技術(shù)領(lǐng)域。
背景技術(shù):
網(wǎng)絡(luò)處理器作為面向網(wǎng)絡(luò)應(yīng)用領(lǐng)域的應(yīng)用特定指令處理器,是面向數(shù)據(jù)分組處理的專用設(shè)備,應(yīng)用于特定通信領(lǐng)域的各種任務(wù),比如包處理、協(xié)議分析、聲音/數(shù)據(jù)的匯聚、 路由查找、防火墻、QoS(Quality of krvice,即服務(wù)質(zhì)量)等。例如以網(wǎng)絡(luò)處理器為核心的交換機和路由器等網(wǎng)絡(luò)設(shè)備被設(shè)計成以包的形式在高速率下轉(zhuǎn)發(fā)網(wǎng)絡(luò)通信量。處理網(wǎng)絡(luò)通信量的一個最重要的考慮是包吞吐量。為了處理包,網(wǎng)絡(luò)處理器需要分析發(fā)往本設(shè)備的數(shù)據(jù)報文中的包報頭信息,提取包目的地,服務(wù)分類等信息,確定數(shù)據(jù)報文的下一跳目的地址,修改數(shù)據(jù)報文并發(fā)往相應(yīng)網(wǎng)絡(luò)端口?,F(xiàn)代網(wǎng)絡(luò)處理器一般由多個多線程包處理單元(通常稱為PPE)、通用處理器、靜態(tài)隨機存取存儲器(SRAM)控制器、動態(tài)隨機存取存儲器(SDRAM)控制器、加解密鑒權(quán)單元、 數(shù)據(jù)流接口單元構(gòu)成。多線程包處理單元和通用處理器(通常統(tǒng)一稱作處理元件)作為包處理動作的發(fā)起者,執(zhí)行大量存取操作來訪問系統(tǒng)內(nèi)的多種共享資源;靜態(tài)隨機存取存儲器控制器、動態(tài)隨機存取存儲器控制器、加解密鑒權(quán)單元、數(shù)據(jù)流接口單元作為包數(shù)據(jù)處理具體實施者可被任一包處理單元訪問,是網(wǎng)絡(luò)處理中典型的共享資源。在包處理期間,包處理單元以及比如通用處理器的其它可選擇的處理元件通過總線共享訪問多種系統(tǒng)資源。因此必須提供一套高性能的系統(tǒng)互聯(lián)總線,以提供芯片上的大量處理元件以及芯片上大量共享資源之間的片上數(shù)據(jù)傳輸基礎(chǔ)結(jié)構(gòu)。傳統(tǒng)的網(wǎng)絡(luò)處理器系統(tǒng)互聯(lián)采用共享總線的結(jié)構(gòu),共享總線一般采用多路復(fù)用技術(shù)。多種處理元件被耦合到一組共享總線上通過爭用總線訪問被耦合到總線上的多個資源目標,不同處理元件一般具有不同的總線訪問優(yōu)先級權(quán)限,總線仲裁器根據(jù)訪問優(yōu)先級由高到低對處理元件依次授權(quán)。圖1提供了一個傳統(tǒng)的共享總線體系結(jié)構(gòu)示意圖。該體系結(jié)構(gòu)包含有多個包處理元件102,以及多種共享資源,包括SRAM單元112、DRAM單元114、加解密鑒權(quán)單元116和數(shù)據(jù)流接口 118。這些處理單元全部被耦合到一組系統(tǒng)共享總線上,如圖 1所示命令及數(shù)據(jù)總線120。此外,系統(tǒng)中還包括一個負責(zé)調(diào)度各處理單元爭用共享總線的全局仲裁器110。系統(tǒng)內(nèi)處理元件與資源目標之間通過共享總線進行通信,一般分為以下幾個步驟步驟一處理元件首先向全局仲裁器申請總線占有權(quán)。步驟二 如果總線處于空閑狀態(tài),全局仲裁器監(jiān)測當前總線的申請請求,并對具有最高優(yōu)先級的總線申請請求發(fā)起者進行授權(quán)。如果總線正在傳輸數(shù)據(jù),則仲裁器等待當前通信結(jié)束后再對總線申請請求進行仲裁。步驟三處理元件獲得總線授權(quán)后開始占用總線與目標單元進行通信。步驟四通信結(jié)束后釋放總線,仲裁器再次監(jiān)測當前總線的申請請求進行授權(quán)。共享總線互聯(lián)方式的特點是系統(tǒng)僅包含一組共享總線,其好處是結(jié)構(gòu)緊湊,節(jié)省布線資源。然而這種共享總線的結(jié)構(gòu)在任一時間節(jié)點上僅允許單獨的一組數(shù)據(jù)在總線上傳輸,因此限制了處理元件與共享資源之間的通信帶寬。此外,在多個處理元件同時請求使用總線時,由于上述原因在該時間節(jié)點上僅有一個處理元件可被授權(quán),因此會引入總線訪問的爭用問題,處理元件發(fā)起的通信請求由于優(yōu)先級較低可能長時間得不到授權(quán)從而使該處理元件長時間處于停滯狀態(tài),從而影響系統(tǒng)包處理速率。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出一種交叉開關(guān)(crossbar switch)結(jié)構(gòu)與分布式總線互連相結(jié)合的片上互聯(lián)方案,通過在處理元件與共享資源間提供多組并行總線以提高數(shù)據(jù)交互的并行性,解決因共享總線所帶來的通信帶寬瓶頸問題,從而提高網(wǎng)絡(luò)處理器系統(tǒng)包處理速率。為了實現(xiàn)上述目的,本發(fā)明的互聯(lián)方案包括本發(fā)明將包處理單元作為主控端(master),是包處理事務(wù)的發(fā)起者;靜態(tài)隨機存儲器控制器、動態(tài)隨機存儲器控制器、加解密鑒權(quán)單元、數(shù)據(jù)流接口單元是數(shù)據(jù)處理的具體實施者,作為系統(tǒng)共享資源可被任一主控端訪問。本發(fā)明為網(wǎng)絡(luò)處理器系統(tǒng)互聯(lián)提供命令總線與數(shù)據(jù)總線分離的技術(shù),提高總線交易執(zhí)行的并行性。將包處理事務(wù)的發(fā)起與執(zhí)行分離,包處理單元不必監(jiān)測事務(wù)執(zhí)行的細節(jié), 僅專注于數(shù)據(jù)的分組與轉(zhuǎn)發(fā);包處理單元發(fā)起事務(wù)可根據(jù)系統(tǒng)需要轉(zhuǎn)而執(zhí)行其它事務(wù),而不必一直等待上一事務(wù)的完成。為了緩解共享總線中訪問爭用的問題,本方案為每個資源目標的數(shù)據(jù)讀取和數(shù)據(jù)寫入提供單獨的總線,這些總線被稱為讀總線和寫總線。(需要注意的是,數(shù)據(jù)讀取與數(shù)據(jù)寫入是從共享資源目標的觀點而言。即數(shù)據(jù)讀取是從資源目標中讀取數(shù)據(jù)發(fā)往主控端,而數(shù)據(jù)寫入是將主控端發(fā)出的數(shù)據(jù)寫入資源目標。)其中讀總線包括讀數(shù)據(jù)總線和讀ID總線;寫總線包括寫數(shù)據(jù)總線和寫ID總線。讀ID總線和寫ID總線作為數(shù)據(jù)讀取和寫入的標識信息配合讀數(shù)據(jù)總線和寫數(shù)據(jù)總線完成包處理單元與共享資源之間的數(shù)據(jù)傳輸。為了支持命令總線與數(shù)據(jù)總線分離的技術(shù)以及數(shù)據(jù)總線內(nèi)讀總線與寫總線分離的技術(shù)。本發(fā)明提供分布式的仲裁方案,而不是使用傳統(tǒng)的采用系統(tǒng)全局仲裁的方法。本發(fā)明為命令總線、讀總線以及寫總線分別提供一組輕型仲裁器。每一個仲裁器僅對一個主控端或資源目標進行控制;此外,系統(tǒng)設(shè)計者可根據(jù)系統(tǒng)實際要求對仲裁器采用不同的優(yōu)先級算法。正如以上所述,本發(fā)明的一個或多個方面可提供以下優(yōu)點。本發(fā)明采用命令總線與數(shù)據(jù)總線分離的技術(shù),將事務(wù)發(fā)起與事務(wù)具體實施分離, 保證包處理單元僅關(guān)注事務(wù)的發(fā)起及調(diào)度,共享資源負責(zé)事務(wù)具體實施以及數(shù)據(jù)交互。在同一時間節(jié)點為上,系統(tǒng)總線中可發(fā)出多個事務(wù),并且支持多個包處理單元與資源目標之間的數(shù)據(jù)通信,保證了系統(tǒng)事務(wù)的并行執(zhí)行,提高系統(tǒng)總線數(shù)據(jù)吞吐率。本發(fā)明在數(shù)據(jù)總線中還提供相互獨立的讀數(shù)據(jù)總線和寫數(shù)據(jù)總線以及對應(yīng)的讀 ID總線和寫ID總線,將讀/寫數(shù)據(jù)傳輸隔離,多個處理元件可以在一個時間節(jié)點上同時對不同的共享資源目標進行讀和寫訪問,從而更加有效的緩解了共享總線中訪問爭用的問題。
本發(fā)明還提供分布式的仲裁方案,為命令總線、讀總線以及寫總線分別提供一組輕型仲裁器。其最大的特點是極大的降低了系統(tǒng)仲裁的復(fù)雜度,每一組仲裁器以及一組仲裁器中的任意兩個仲裁器都是相互獨立的。從而可為系統(tǒng)設(shè)計者提供多種仲裁算法。此外,基于本仲裁方案中仲裁器的獨立性的特點,系統(tǒng)總線的擴展變得極其簡單,從而提高了網(wǎng)絡(luò)處理器系統(tǒng)的可擴展性。
圖1是基于共享總線結(jié)構(gòu)的傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)互聯(lián)方案示意圖;圖2是根據(jù)本發(fā)明的一個實施例的網(wǎng)絡(luò)處理器系統(tǒng)互聯(lián)結(jié)構(gòu)的示意圖;圖3是根據(jù)本發(fā)明的一個實施例的命令總線細節(jié)示意圖;圖4是根本本發(fā)明的一個實施例的命令傳輸流程圖;圖5是根據(jù)本發(fā)明的一個實施例的寫總線細節(jié)示意圖;圖6是根據(jù)本發(fā)明的一個實施例的寫數(shù)據(jù)傳輸流程圖;圖7是根據(jù)本發(fā)明的一個實施例的讀總線細節(jié)示意圖;圖8是根據(jù)本發(fā)明的一個實施例的讀數(shù)據(jù)傳輸流程具體實施例方式以下結(jié)合具體實施例,對本發(fā)明進行詳細說明。實施例1參考圖2所示的一個實施例的網(wǎng)絡(luò)處理器體系結(jié)構(gòu)。在該體系結(jié)構(gòu)中,包括四個包處理單元202A、202B、202C、202D。需要注意的是本發(fā)明并不對此作出限定,例如在其它實施例中包括(但不限于)六個或八個包處理單元;包處理單元可根據(jù)系統(tǒng)設(shè)計者的需要完成相同或不同的功能。包處理單元作為網(wǎng)絡(luò)處理器包處理的核心元件,與系統(tǒng)內(nèi)其它數(shù)據(jù)處理單元頻繁交互數(shù)據(jù)。包處理單元作為主控端發(fā)起事務(wù),對目標資源進行訪問。正如圖2所示,本實施例的網(wǎng)絡(luò)處理器還包括多種典型的共享資源。依次為,SRAM 單元212,DRAM單元214,加解密鑒權(quán)單元216以及數(shù)據(jù)流接口 218。特別地,DRAM單元214 與SRAM單元212作為片外DRAM和SRAM存儲器的控制單元,負責(zé)支持包處理單元對片外存儲設(shè)備的共享訪問,在對片外存儲設(shè)備存取帶寬要求較高的系統(tǒng)中還可以采用多存儲控制器的結(jié)構(gòu),而不僅限于本實施例中單一的DRAM單元和SRAM單元。正如圖2所示,根據(jù)網(wǎng)絡(luò)處理器體系結(jié)構(gòu)中包處理事務(wù)的發(fā)起與事務(wù)的具體實施可分離的特點,本實施例采用命令總線與數(shù)據(jù)總線分離的方法,即命令總線與數(shù)據(jù)總線相互獨立;包處理單元采用全雙工的通訊方式從而達到提高數(shù)據(jù)吞吐率的目的,本方案為每個共享資源的數(shù)據(jù)讀取和數(shù)據(jù)寫入提供單獨的總線,這些總線被稱為讀總線和寫總線。由于本實施例中包括四個作為主控端的包處理單元202A、202B、202C、202D,因此系統(tǒng)互聯(lián)方案提供四組總線,從而支持四個主控端并行訪問共享資源。每組總線包括命令總線以及兩組數(shù)據(jù)總線,即用于讀取數(shù)據(jù)的讀總線和用于寫入數(shù)據(jù)的寫總線。在該實施例的數(shù)據(jù)總線中除了提供用于數(shù)據(jù)傳輸?shù)淖x/寫數(shù)據(jù)總線外,還提供用于輔助主控端與目標資源進行數(shù)據(jù)傳輸?shù)臉俗R總線,即用于輔助主控端讀取資源目標數(shù)據(jù)的讀ID總線以及用于輔助主控端將數(shù)據(jù)寫入資源目標的寫ID總線。正如圖2所顯示的那樣,上述實施例的網(wǎng)絡(luò)處理器所使用的總線包括命令總線220,讀數(shù)據(jù)總線222,寫數(shù)據(jù)總線224,讀ID總線226以及寫ID 總線2觀。圖3根據(jù)一個實施例展示出命令總線220的細節(jié)。命令總線使用交叉開關(guān)的結(jié)構(gòu), 包處理單元作為主控端,是命令的發(fā)起者。每個主控端固定地連接到命令總線中其中一條總線上,而每個共享資源通過一個多路復(fù)用器耦合到命令總線上,這支持每個共享資源與每個包處理單元之間的選擇性連接,多路復(fù)用器通過與其對應(yīng)的命令仲裁器控制共享資源與命令總線的接通或斷開。需要注意的是,每條總線表示對應(yīng)各自總線的一組信號線,而不是單個信號;每條總線的位寬取決于網(wǎng)絡(luò)處理器實現(xiàn)的具體方式。在下文中提到的寫總線以及讀總線均不再做重復(fù)說明。參考圖3所示的命令總線細節(jié),在該體系結(jié)構(gòu)中的水平總線組(即命令總線)包括300A、300B、300C、300D。每個共享資源通過一個多路復(fù)用器耦合到水平總線組上,所述用于支持交叉開關(guān)的命令(CMD)多路復(fù)用器包括312A、312B、312C、312D。為了解決多個包處理單元在同一時間節(jié)點上對同一個共享資源發(fā)送命令而引起的訪問競爭問題,本實施例還在每一個交叉開關(guān)節(jié)點上提供節(jié)點緩存,即為每一個多路復(fù)用器提供一組命令緩存FIFO, 每一組命令緩存FIFO包括四個相互獨立的FIFO,每一個FIFO負責(zé)維護水平總線組中的一條總線上的命令。命令緩存FIFO組將水平總線組中訪問本共享資源的命令存入對應(yīng)的 FIFO中。所述命令緩存FIFO組包括314A、314B、314C、314D。在本實施方式中采用分布式的仲裁技術(shù),每一個命令多路復(fù)用器和與之對應(yīng)的命令緩存FIFO組通過一個輕型的命令仲裁器(CA)進行監(jiān)測和控制。每一個命令仲裁器對水平總線組中的數(shù)據(jù)進行監(jiān)測,將訪問本單元的命令放入對應(yīng)的命令緩存FIFO中,同時控制命令多路復(fù)用器選通某一線路將對應(yīng)FIFO中的命令發(fā)送到資源目標。所述輕型命令仲裁器包括316A、316B、316C、316D。參照圖3,以命令仲裁器CAl為例進一步說明命令仲裁器對命令總線以及命令仲裁器負責(zé)維護的命令緩存FIFO組的監(jiān)控方法,包括(1)對命令總線的監(jiān)控。命令仲裁器CAl每個時鐘周期對水平總線組300中命令有效標志進行檢測,如果命令有效標志有效,則將命令總線中的ID信息與仲裁器CAl的ID 進行比較。如果匹配,則表明當前命令的目的地是仲裁器CAl負責(zé)維護的資源目標214,命令仲裁器CAl將命令存入緩存FIFO組314B中。(2)對命令緩存FIFO組的監(jiān)控。命令仲裁器CAl對命令緩存FIFO組314B中每一個FIFO的空滿標志位進行檢測。在接收命令階段,命令仲裁器CAl對每一個FIFO的滿標志位進行檢測,當某一個FIFO為滿時,命令仲裁器將拒絕接收此FIFO負責(zé)維護的命令總線中的命令,因此,掛入這條命令總線中的主控端將暫停向相應(yīng)的目標資源發(fā)送命令。在目標資源從FIFO組中取出命令階段,命令仲裁器CAl對每一個FIFO的空標志位進行檢測,對不為空的命令FIFO進行優(yōu)先級排隊,將最高優(yōu)先級FIFO中的命令取出發(fā)送至目標資源214。圖4所示為依照本發(fā)明的一個實例的命令傳輸流程,包括步驟301 共享資源的命令仲裁器對命令總線以及本命令仲裁器負責(zé)維護的命令緩存FIFO組進行監(jiān)控,當命令總線上有命令發(fā)出時,跳轉(zhuǎn)到步驟303 ;當上一條命令從命令緩存FIFO中取出并完成發(fā)送時,跳轉(zhuǎn)到步驟307 ;步驟303 命令仲裁器對命令總線上的數(shù)據(jù)進行實時監(jiān)控,當有命令出現(xiàn)在命令總線上時判斷該命令是否是發(fā)往本仲裁器對應(yīng)的資源目標,如果是則跳轉(zhuǎn)到步驟305,否則繼續(xù)監(jiān)控;步驟305 命令仲裁器控制對應(yīng)的緩存FIFO接收命令;步驟307 命令仲裁器對命令緩存FIFO組進行監(jiān)控,若有FIFO不為空,則跳轉(zhuǎn)到步驟309,否則繼續(xù)監(jiān)控;步驟309 命令仲裁器篩選出不為空的命令FIFO,并控制多路復(fù)用器選通當前具有最高優(yōu)先級FIFO的輸出線路,將命令取出發(fā)送到資源目標。需要注意的是,根據(jù)本發(fā)明采用分布式仲裁技術(shù)的特點,每一個共享資源對應(yīng)的命令仲裁器都會并行執(zhí)行上述步驟。此外,命令存入緩存FIFO與緩存命令發(fā)送往資源目標是相互獨立的,因此這兩個過程也是并行執(zhí)行的,正如圖4中所顯示的那樣。下面以包處理單元202A發(fā)送訪問SRAM單元212的命令為例進行說明(1)包處理單元202A發(fā)起事務(wù)請求,即將命令發(fā)送到命令總線300A。(2) SRAM單元212對應(yīng)的命令仲裁器316A監(jiān)測到命令總線中有訪問本單元的命令,因此控制命令總線300A上的命令存入命令緩存FIFO組314A中對應(yīng)FIFO中。(3)命令仲裁器316A監(jiān)測到命令緩存FIFO組314A不全為空,判斷當前具有最高優(yōu)先級的命令FIFO,并控制多路復(fù)用器312A選通命令總線300A對應(yīng)的緩存FIFO,將命令發(fā)送到SRAM單元212。在一個實施例中,水平總線組中總線的數(shù)量等于該體系結(jié)構(gòu)中包處理單元的數(shù)量,交叉節(jié)點數(shù)量取決于水平總線與共享資源的數(shù)量。因此本發(fā)明不限制總線組中總線數(shù)量以及對應(yīng)的多路復(fù)用器,命令緩存FIFO的數(shù)量。例如在本實例的說明圖中,網(wǎng)絡(luò)處理器體系結(jié)構(gòu)包括四個包處理單元,從而命令總線包括四條總線;該體系結(jié)構(gòu)中包括四個共享資源,從而包括四個對應(yīng)的多路復(fù)用器,四組命令緩存FIFO以及四個輕型命令仲裁器。實施例2根據(jù)一個實施例,圖5顯示了寫總線的細節(jié)。寫總線包括用于數(shù)據(jù)傳輸?shù)膶憯?shù)據(jù)總線400A、400B、400C和400D,以及用于傳輸標識信息的寫ID總線402A、402B、402C和 402D。正如圖5所顯示的那樣,每一個共享資源固定地連接到一條寫ID總線上,每一個主控端通過一個ID多路復(fù)用器耦合到水平的寫ID總線上。所述用于支持交叉開關(guān)的ID多路復(fù)用器依次為412A、412B、412C以及412D。每一個多路復(fù)用器通過一個輕型的寫仲載器 (WA)進行控制,寫仲裁器監(jiān)測寫ID總線中的信息,對訪問本主控端的請求進行響應(yīng),這些仲裁器依次為422A、422B、422C以及422D。在圖5說明的實施例中,數(shù)據(jù)的寫入是經(jīng)由寫數(shù)據(jù)總線傳輸完成的,每一個主控端作為數(shù)據(jù)的提供者,固定地連接到一條寫數(shù)據(jù)總線上,而每一個共享資源通過與一個數(shù)據(jù)多路復(fù)用器耦合到寫數(shù)據(jù)總線上。所述用于支持交叉開關(guān)的數(shù)據(jù)多路復(fù)用器包括414A、 414B、414C以及414D。此外,每一個數(shù)據(jù)多路復(fù)用器通過一個ID仲裁器進行控制,ID仲裁器記錄共享資源發(fā)起數(shù)據(jù)傳輸請求時所發(fā)出的ID信息,并在數(shù)據(jù)寫入時控制多路復(fù)用器選通相應(yīng)寫數(shù)據(jù)總線,從而完成數(shù)據(jù)寫入。所述ID仲裁器依次為424A、4MB、424C以及 424D0圖6所示為依照本發(fā)明的一個實例展示了寫總線上寫仲裁器與ID仲裁器協(xié)調(diào)工作完成寫數(shù)據(jù)的傳輸流程,包括
步驟401 共享資源在處理一個事務(wù)時,可能需要包處理單元提供相關(guān)數(shù)據(jù),此時共享資源發(fā)起寫數(shù)據(jù)請求,并跳轉(zhuǎn)到步驟403 ;步驟403 該共享資源的ID仲裁器記錄下ID信息,并跳轉(zhuǎn)到步驟405 ;步驟405 各包處理單元對應(yīng)的寫仲裁器對寫ID總線中的信息進行監(jiān)控,當檢測到寫ID總線上有訪問本單元的請求時,跳轉(zhuǎn)到步驟407,否則繼續(xù)進行監(jiān)控;步驟407 寫仲裁器控制多路復(fù)用器選通對應(yīng)的寫ID總線;步驟409 包處理單元接收到訪問本單元的ID信息后,準備相應(yīng)數(shù)據(jù)并發(fā)送到寫數(shù)據(jù)總線上;步驟411 ID仲裁器根據(jù)資源目標發(fā)起寫數(shù)據(jù)請求時所記錄的ID信息控制多路復(fù)用器選通相應(yīng)寫數(shù)據(jù)總線,完成數(shù)據(jù)傳輸。需要注意的是,根據(jù)本發(fā)明采用分布式仲裁技術(shù)的特點,每一個共享資源對應(yīng)的 ID仲裁器只有在本單元發(fā)起寫數(shù)據(jù)操作時才會記錄相應(yīng)ID信息,各ID仲裁器是相互獨立工作的。同理,每一個主控端的寫仲裁器并行獨立的檢測寫ID總線上的信息。下面以DRAM單元214在處理事務(wù)時需要包處理單元202C對其寫入數(shù)據(jù)為例進行說明(I)DRAM單元214在寫ID總線402B發(fā)出寫ID信息。(2) DRAM單元214對應(yīng)的ID仲裁器424B記錄相應(yīng)ID信息,同時包處理單元202C 對應(yīng)的寫仲裁器422C檢測到寫ID總線上有訪問本單元的請求,因此控制多路復(fù)用器412C 選通寫ID總線402B。(3)包處理單元202C接收到訪問本單元的ID信息,并將對應(yīng)的數(shù)據(jù)發(fā)往寫數(shù)據(jù)總線400C上。(4)DRAM單元214對應(yīng)的ID仲裁器424B控制多路復(fù)用器414B選通寫數(shù)據(jù)總線 400C,數(shù)據(jù)成功寫入DRAM單元。實施例3根據(jù)一個實施例,圖7顯示了讀總線的細節(jié)。讀總線包括用于數(shù)據(jù)傳輸?shù)淖x數(shù)據(jù)總線500A、500B、500C和500D,以及傳輸標識信息的讀ID總線502A、502B、502C以及502D。 與圖5顯示的寫ID總線相似,每一個共享資源固定地連接到一條讀ID總線上。不同之處在于,在讀數(shù)據(jù)總線中,每一個共享資源固定地連接到一條讀數(shù)據(jù)總線上,而主控端通過一個數(shù)據(jù)多路復(fù)用器耦合到讀數(shù)據(jù)總線上。所述用于支持交叉開關(guān)的讀數(shù)據(jù)多路復(fù)用器包括512A、512B、512C、512D。與寫總線另一個不同之處在于,為了解決多個共享資源在同一時間節(jié)點上對同一個主控端返回數(shù)據(jù)而引起的訪問競爭問題,本實施例還在每一個交叉開關(guān)節(jié)點上提供節(jié)點緩存,即為每一個多路復(fù)用器提供一組數(shù)據(jù)緩存FIFO,每一組緩存FIFO 包括四個相互獨立的FIFO,每一個FIFO負責(zé)維護讀數(shù)據(jù)總線中一條總線上數(shù)據(jù)。所述數(shù)據(jù)緩存FIFO組包括514A、514B、514C、514D。根據(jù)本發(fā)明采用分布式的仲裁技術(shù)的特點,每一個數(shù)據(jù)多路復(fù)用器和對應(yīng)的數(shù)據(jù)緩存FIFO組通過一個輕型的讀仲裁器(RA)進行監(jiān)測和控制。每一個讀仲裁器對讀總線中的數(shù)據(jù)進行監(jiān)測,將返回本單元的數(shù)據(jù)放入對應(yīng)的命令緩存FIFO中,并添加相應(yīng)的ID信息(如地址信息等),同時控制數(shù)據(jù)多路復(fù)用器選通某一線路,將對應(yīng)FIFO中的數(shù)據(jù)發(fā)送到包處理單元。所述輕型讀仲裁器包括522A、522B、522C、 522D。
圖8所示為依照本發(fā)明的一個實例展示了讀數(shù)據(jù)總線上數(shù)據(jù)傳輸?shù)牧鞒蹋ú襟E501 包處理單元所對應(yīng)的讀仲裁對讀ID總線上的信息以及各自數(shù)據(jù)緩存 FIFO組進行監(jiān)控,當讀ID總線上有ID信息發(fā)出時,跳轉(zhuǎn)到步驟503 ;當上一個數(shù)據(jù)從數(shù)據(jù)緩存FIFO中取出并完成發(fā)送時,跳轉(zhuǎn)到步驟507 ;步驟503 讀仲裁器對讀ID總線上的信息進行實時監(jiān)控,判斷請求是否是發(fā)往本仲裁器對應(yīng)的包處理單元,如果是則跳轉(zhuǎn)到步驟505,否則繼續(xù)監(jiān)控;步驟505 讀仲裁器控制對應(yīng)的緩存FIFO接收來自相應(yīng)讀數(shù)據(jù)總線上的數(shù)據(jù),并添加相應(yīng)的ID信息;步驟507 讀仲裁器對數(shù)據(jù)緩存FIFO組進行監(jiān)控,若有FIFO不為空,則跳轉(zhuǎn)到步驟509,否則繼續(xù)監(jiān)控;步驟509 讀仲裁器篩選出不為空的FIFO,并控制多路復(fù)用器選通當前具有最高優(yōu)先級FIFO的輸出線路,將數(shù)據(jù)取出發(fā)送到包處理單元。需要注意的是,根據(jù)本發(fā)明采用分布式仲裁技術(shù)的特點,每一個包處理單元的讀仲裁器都會并行執(zhí)行上述步驟。此外,數(shù)據(jù)存入緩存FIFO與緩存數(shù)據(jù)發(fā)送往資源目標是相互獨立的,因此這兩個過程也是并行執(zhí)行的,正如圖8中所顯示的那樣。下面以SRAM單元212在處理事務(wù)時需要向包處理單元202B返回數(shù)據(jù)為例進行說明(1) SRAM單元212在讀ID總線502A發(fā)出ID信息,并將數(shù)據(jù)發(fā)送到讀數(shù)據(jù)總線 500A 上。(2)包處理單元202B對應(yīng)的讀仲裁器522B檢測到讀ID總線502A上有訪問本單元的請求,因此控制讀數(shù)據(jù)總線500A上的數(shù)據(jù)存入的數(shù)據(jù)緩存FIFO組514B中對應(yīng)的FIFO 中,同時添加必要的ID信息。(3)讀仲裁器522B檢測數(shù)據(jù)緩存FIFO組514B中的FIFO不全為空,判斷當前具有最高優(yōu)先級的數(shù)據(jù)緩存FIFO,并控制多路復(fù)用器512B選通讀數(shù)據(jù)總線500A對應(yīng)的緩存 FIFO,將數(shù)據(jù)發(fā)送到包處理單元。應(yīng)當理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換, 而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。
權(quán)利要求
1.一種基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,處理元件與共享資源間提供多組并行總線以提高數(shù)據(jù)交互的并行性;命令總線與數(shù)據(jù)總線分離;為每個資源目標的數(shù)據(jù)讀取和數(shù)據(jù)寫入提供單獨的總線,這些總線分別稱為讀總線和寫總線;其中讀總線包括讀數(shù)據(jù)總線和讀ID總線;寫總線包括寫數(shù)據(jù)總線和寫ID總線;讀ID總線和寫ID總線作為數(shù)據(jù)讀取和寫入的標識信息配合讀數(shù)據(jù)總線和寫數(shù)據(jù)總線完成包處理單元與共享資源之間的數(shù)據(jù)傳輸;為命令總線、讀總線以及寫總線分別提供一組輕型仲裁器。
2.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,在命令總線中,為每一個共享資源提供一組命令緩存FIFO,用于緩存命令總線中發(fā)往共享資源的命令。
3.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,在命令總線中,為每一個共享資源提供一個獨立的命令仲裁器,用于維護命令緩存FIFO組。
4.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,在寫總線中,為每一個處理元件提供一個獨立的輕型寫仲裁器,用于監(jiān)測寫ID總線中的ID信息;同時為每一個共享資源提供一個獨立的ID仲裁器,用于記錄共享資源發(fā)起數(shù)據(jù)傳輸請求時所發(fā)出的ID信息,并控制多路復(fù)用器選通相應(yīng)線路。
5.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,在讀總線中,為每一個處理元件提供一組相互獨立的數(shù)據(jù)緩存FIFO,用于緩存發(fā)往本單元的數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,在讀總線中,為每一個處理元件提供一個獨立的讀仲裁器,用于維護數(shù)據(jù)緩存FIFO。
7.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,所述命令總線的命令傳輸流程包括以下步驟步驟301 共享資源的命令仲裁器對命令總線以及本命令仲裁器負責(zé)維護的命令緩存 FIFO組進行監(jiān)控,當命令總線上有命令發(fā)出時,跳轉(zhuǎn)到步驟303 ;當上一條命令從命令緩存 FIFO中取出并完成發(fā)送時,跳轉(zhuǎn)到步驟307 ;步驟303 命令仲裁器對命令總線上的數(shù)據(jù)進行實時監(jiān)控,當有命令出現(xiàn)在命令總線上時判斷該命令是否是發(fā)往本仲裁器對應(yīng)的資源目標,如果是則跳轉(zhuǎn)到步驟305,否則繼續(xù)監(jiān)控;步驟305 命令仲裁器控制對應(yīng)的緩存FIFO接收命令;步驟307 命令仲裁器對命令緩存FIFO組進行監(jiān)控,若有FIFO不為空,則跳轉(zhuǎn)到步驟 309,否則繼續(xù)監(jiān)控;步驟309 命令仲裁器篩選出不為空的命令FIFO,并控制多路復(fù)用器選通當前具有最高優(yōu)先級FIFO的輸出線路,將命令取出發(fā)送到資源目標。
8.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,所述寫總線上數(shù)據(jù)傳輸?shù)牧鞒贪ㄒ韵虏襟E步驟401 共享資源在處理一個事務(wù)時,可能需要包處理單元提供相關(guān)數(shù)據(jù),此時共享資源發(fā)起寫數(shù)據(jù)請求,并跳轉(zhuǎn)到步驟403 ;步驟403 該共享資源的ID仲裁器記錄下ID信息,并跳轉(zhuǎn)到步驟405 ;步驟405 各包處理單元對應(yīng)的寫仲裁器對寫ID總線中的信息進行監(jiān)控,當檢測到寫 ID總線上有訪問本單元的請求時,跳轉(zhuǎn)到步驟407,否則繼續(xù)進行監(jiān)控;步驟407 寫仲裁器控制多路復(fù)用器選通對應(yīng)的寫ID總線;步驟409 包處理單元接收到訪問本單元的ID信息后,準備相應(yīng)數(shù)據(jù)并發(fā)送到寫數(shù)據(jù)總線上;步驟411 ID仲裁器根據(jù)資源目標發(fā)起寫數(shù)據(jù)請求時所記錄的ID信息控制多路復(fù)用器選通相應(yīng)寫數(shù)據(jù)總線,完成數(shù)據(jù)傳輸。
9.根據(jù)權(quán)利要求1所述的基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,其特征在于,所述讀總線上的數(shù)據(jù)傳輸流程包括以下步驟步驟501 包處理單元所對應(yīng)的讀仲裁器對讀ID總線上的信息以及各自數(shù)據(jù)緩存FIFO 組進行監(jiān)控,當讀ID總線上有ID信息發(fā)出時,跳轉(zhuǎn)到步驟503 ;當上一個數(shù)據(jù)從數(shù)據(jù)緩存 FIFO中取出并完成發(fā)送時,跳轉(zhuǎn)到步驟507 ;步驟503 讀仲裁器對讀ID總線上的信息進行實時監(jiān)控,判斷請求是否是發(fā)往本仲裁器對應(yīng)的包處理單元,如果是則跳轉(zhuǎn)到步驟505,否則繼續(xù)監(jiān)控;步驟505 讀仲裁器控制對應(yīng)的緩存FIFO接收來自相應(yīng)讀數(shù)據(jù)總線上的數(shù)據(jù),并添加相應(yīng)的ID信息;步驟507 讀仲裁器對數(shù)據(jù)緩存FIFO組進行監(jiān)控,若有FIFO不為空,則跳轉(zhuǎn)到步驟 509,否則繼續(xù)監(jiān)控;步驟509 讀仲裁器篩選出不為空的FIFO,并控制多路復(fù)用器選通當前具有最高優(yōu)先級FIFO的輸出線路,將數(shù)據(jù)取出發(fā)送到包處理單元。
全文摘要
本發(fā)明公開了基于交叉開關(guān)結(jié)構(gòu)的片上互聯(lián)方法,處理元件與共享資源間提供多組并行總線以提高數(shù)據(jù)交互的并行性;命令總線與數(shù)據(jù)總線分離;為每個資源目標的數(shù)據(jù)讀取和數(shù)據(jù)寫入提供單獨的總線,這些總線分別稱為讀總線和寫總線;其中讀總線包括讀數(shù)據(jù)總線和讀ID總線;寫總線包括寫數(shù)據(jù)總線和寫ID總線;讀ID總線和寫ID總線作為數(shù)據(jù)讀取和寫入的標識信息配合讀數(shù)據(jù)總線和寫數(shù)據(jù)總線完成包處理單元與共享資源之間的數(shù)據(jù)傳輸;為命令總線、讀總線以及寫總線分別提供一組輕型仲裁器。從而可為系統(tǒng)設(shè)計者提供多種仲裁算法。此外,基于本仲裁方案中仲裁器的獨立性的特點,系統(tǒng)總線的擴展變得極其簡單,從而提高了網(wǎng)絡(luò)處理器系統(tǒng)的可擴展性。
文檔編號G06F13/38GK102289421SQ20111021001
公開日2011年12月21日 申請日期2011年7月26日 優(yōu)先權(quán)日2011年7月26日
發(fā)明者史江一, 李康, 范勇, 趙慶賀, 郝躍, 雷理, 馬佩軍 申請人:西安電子科技大學(xué)