亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用內(nèi)部處理器存儲(chǔ)空間的高速數(shù)據(jù)處理的制作方法

文檔序號(hào):7656051閱讀:217來源:國(guó)知局
專利名稱:使用內(nèi)部處理器存儲(chǔ)空間的高速數(shù)據(jù)處理的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體來說涉及信息處理,并且具體地涉及發(fā)生在處理器的內(nèi)部元件內(nèi)的處理活動(dòng)。
背景技術(shù)
數(shù)據(jù)處理典型地包括從存儲(chǔ)器檢索數(shù)據(jù),處理該數(shù)據(jù),以及把該處理活動(dòng)的結(jié)果存回該存儲(chǔ)器。支持該數(shù)據(jù)處理的硬件體系結(jié)構(gòu)一般地控制信息以及信息處理系統(tǒng)的單個(gè)硬件單元之間的控制的流程。這一硬件單元的一種是處理器或處理引擎,其包含算術(shù)和邏輯處理電路,通用或?qū)S眉拇嫫?,處理器控制或定序邏輯,以及使這些元件互相聯(lián)系的數(shù)據(jù)通路。在某些實(shí)現(xiàn)中,可以把處理器配置為作為一定制設(shè)計(jì)的集成電路實(shí)現(xiàn)的或在一專用集成電路(ASIC)內(nèi)實(shí)現(xiàn)的獨(dú)立中央處理單元(CPU)。該處理器具有內(nèi)部寄存器用于與由一組指令定義的操作一起使用。這些指令一般地存儲(chǔ)在指令存儲(chǔ)器內(nèi)并指定一組在該處理器上有效的硬件功能。
當(dāng)實(shí)現(xiàn)這些功能時(shí),處理器一般從該處理器外的一個(gè)存儲(chǔ)器檢索“瞬態(tài)”數(shù)據(jù),通過執(zhí)行“裝入”指令順序地或隨機(jī)地把數(shù)據(jù)部分裝入其內(nèi)部寄存器中,按照指令處理數(shù)據(jù),并且之后使用“存儲(chǔ)”指令把處理過的數(shù)據(jù)存回到外部存儲(chǔ)器中。除了把瞬態(tài)數(shù)據(jù)裝入內(nèi)部寄存器以及把執(zhí)行結(jié)果移出內(nèi)部寄存器外,在瞬態(tài)數(shù)據(jù)的實(shí)際處理期間也頻繁地使用裝入及存儲(chǔ)指令以便訪問完成處理活動(dòng)(例如,訪問狀態(tài)及命令寄存器)所需的附加信息。對(duì)外部存儲(chǔ)器的頻繁裝入/存儲(chǔ)訪問一般是低效的,這是因?yàn)樘幚砥鞯膱?zhí)行能力實(shí)質(zhì)上比其外部接口能力快。因此,處理器常常閑置而等待把所存取的數(shù)據(jù)裝入其內(nèi)部寄存器文件中。
這一無效能夠特別地在工作于通信系統(tǒng)內(nèi)的設(shè)備上受到限制,因?yàn)閮粜?yīng)將制約設(shè)備的整個(gè)數(shù)據(jù)處理能力以及,除非某些數(shù)據(jù)被除去而不是傳送,網(wǎng)絡(luò)自身的最大信息率。
發(fā)明概述本發(fā)明考慮到對(duì)外部存儲(chǔ)器的頻繁訪問對(duì)于處理足夠小的被包含在被分配來處理數(shù)據(jù)組的本地寄存器文件空間內(nèi)的數(shù)據(jù)組不是必需的。因此,本發(fā)明結(jié)合了至少部分地,獨(dú)立于處理器而執(zhí)行的數(shù)據(jù)存取技術(shù)并且其避免了處理器對(duì)裝入及存儲(chǔ)指令的執(zhí)行。
在一實(shí)施例中,結(jié)合了本發(fā)明方面的信息處理系統(tǒng)和方法把分配來處理一數(shù)據(jù)組的處理器的操作限制在處理器的內(nèi)部寄存器文件內(nèi)。該信息處理系統(tǒng)包括一處理器,一入口元件,以及一出口元件。入口元件從一接口接收未處理的數(shù)據(jù)給對(duì)應(yīng)于,例如從通信網(wǎng)絡(luò)接收數(shù)據(jù)的網(wǎng)絡(luò)接口的數(shù)據(jù)源。入口元件通過直接訪問內(nèi)部寄存器文件空間來把該未處理的數(shù)據(jù),或其中的部分?jǐn)?shù)據(jù)輸送給內(nèi)部寄存器文件空間。一個(gè)用于在處理器(例如,一算術(shù)邏輯單元)內(nèi)操作數(shù)據(jù)的單元響應(yīng)于向該處理器的寄存器文件的傳送而操作及處理該數(shù)據(jù)并把其運(yùn)行完全控制在其內(nèi)部寄存器文件空間內(nèi)。在處理活動(dòng)完成時(shí),入口元件直接訪問并從內(nèi)部寄存器文件空間中取出未處理的數(shù)據(jù)。或者,一中間狀態(tài)機(jī)直接訪問該未處理的數(shù)據(jù)并把它傳送給出口元件。
在本發(fā)明的一個(gè)方面中,一個(gè)或多個(gè)狀態(tài)機(jī)被包含在內(nèi)并管理入口和出口元件的操作。一個(gè)或多個(gè)狀態(tài)機(jī)還可以被包含在處理器內(nèi)。狀態(tài)機(jī)直接訪問處理器的內(nèi)部寄存器文件空間以便向該處輸送數(shù)據(jù)或從中取出數(shù)據(jù)。在一實(shí)施例中,狀態(tài)機(jī)的數(shù)據(jù)傳送活動(dòng)響應(yīng)于a)入口元件上的未處理數(shù)據(jù)的接收,b)用處理器邏輯表示未處理數(shù)據(jù)傳送到該處理器的寄存器文件空間內(nèi)的信號(hào),以及/或c)存儲(chǔ)在一邏輯元件,如命令寄存器內(nèi)的值的變化而被啟動(dòng)。
本發(fā)明的益處能夠在許多信息處理系統(tǒng),如集中于圖像處理,信號(hào)處理,視頻處理,以及網(wǎng)絡(luò)包處理的這些系統(tǒng)中實(shí)現(xiàn)。作為一個(gè)實(shí)例,本發(fā)明能夠體現(xiàn)在一通信設(shè)備,如路由器內(nèi)以實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)如路由處理,路徑確定,以及路徑切換功能。路由處理功能確定對(duì)于一個(gè)包所需的路由類型,而路徑切換功能允許路由器在一接口上接受一個(gè)包并在第二接口上轉(zhuǎn)發(fā)該包。路徑確定功能選擇用于轉(zhuǎn)發(fā)該包的最適合的接口。
通信設(shè)備的路徑切換功能能夠在一個(gè)或多個(gè)結(jié)合了本發(fā)明的方面的轉(zhuǎn)發(fā)引擎ASIC內(nèi)實(shí)現(xiàn),以支持在通信設(shè)備的多個(gè)接口之間的包傳送。在此說明性的實(shí)施例中,由與該通信設(shè)備的網(wǎng)絡(luò)接口的一特定輸入端有關(guān)的入口邏輯經(jīng)由通信網(wǎng)絡(luò)來接收包數(shù)據(jù)。然后由入口邏輯從與接收端口有關(guān)的候選處理器組合(pool)中選擇一處理器以處理該包。
一旦已經(jīng)分配處理器,該包被分成為頭部和包體部分。通過被配置成使用直接存儲(chǔ)器/寄存器訪問并且無需處理器引用裝入或存儲(chǔ)指令的入口邏輯的至少一個(gè)狀態(tài)機(jī)來把包頭寫入一存儲(chǔ)器元件內(nèi)的適當(dāng)位置,如與分配的處理器有關(guān)的內(nèi)部寄存器文件。包體部分被寫入一輸出緩沖器。然后該處理器根據(jù)本地存儲(chǔ)的指令來處理包頭(再次,無需引用裝入或存儲(chǔ)指令)并把處理過的包頭傳送到所選的輸出緩沖器,在輸出緩沖器內(nèi)與包體結(jié)合并且隨后被從通信設(shè)備傳送到用于傳輸?shù)哪康妮敵龆恕?br> 在接收包頭之前,所分配的處理器在一無限循環(huán)中重復(fù)執(zhí)行存儲(chǔ)在處理器的指令存儲(chǔ)器中的第一已知位置/地址上的一條指令。處理器中的硬件檢測(cè)地址0為用于電路指令返回的,而不是來自與處理器耦合的指令存儲(chǔ)器的“特定”地址。當(dāng)包頭被從入口邏輯傳送到處理器時(shí),一控制信號(hào)向該處理器表明頭部傳送正在進(jìn)行中。當(dāng)此信號(hào)被激活時(shí),處理器硬件迫使處理器程序計(jì)數(shù)器為一非特定地址(例如,地址2),其終止無限循環(huán)的執(zhí)行。在完成包頭的傳送時(shí),處理器開始執(zhí)行從其指令存儲(chǔ)器的地址2開始的指令。一旦完成包處理活動(dòng),該處理器被復(fù)位(例如,把程序計(jì)數(shù)器置為地址0)以重復(fù)執(zhí)行在上述特定地址上的指令。
在此方式中,包頭被直接寫入處理器的寄存器文件,處理器無需要求任何交互或先前的知識(shí)直到準(zhǔn)備處理包頭時(shí)為止。與包的狀態(tài)或特性有關(guān)的其它信息(例如,長(zhǎng)度)也能夠本地地存儲(chǔ)在使用類似過程的寄存器文件內(nèi)以使處理器不必訪問外部資源以獲得此信息。
為簡(jiǎn)化用于多個(gè)處理器的編程模塊,能夠?yàn)楦鱾€(gè)包分配一個(gè)單獨(dú)的處理器,其中每個(gè)處理器被配置為執(zhí)行在其各自的指令存儲(chǔ)器內(nèi)的一組公共指令。分配足夠的處理器以保證能夠以通信網(wǎng)絡(luò)的電纜/線路速率(即,網(wǎng)絡(luò)接口的最大比特率)來處理包。當(dāng)把本發(fā)明的各方面并到一ASIC內(nèi)的多個(gè)處理器中時(shí)所實(shí)現(xiàn)的減少的指令集減小了ASIC的模具大小,從而允許在ASIC內(nèi)的許多處理器中的較大密度而無需遭遇技術(shù)障礙以及導(dǎo)致這一ASIC制造的不利極限。本發(fā)明的ASIC實(shí)現(xiàn)還是可調(diào)節(jié)的,例如,通過增大處理器的時(shí)鐘速率,通過給ASIC增加更多的處理器,以及通過從多個(gè)ASIC聚集處理器(具有公共指令集)組合。
在一實(shí)施例中,本發(fā)明能夠用在對(duì)稱多處理(SMP)系統(tǒng)中,展示一精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)結(jié)構(gòu),以處理在通信網(wǎng)絡(luò)上所接收的包。SMP系統(tǒng)包括具有公共軟件的作為一組合運(yùn)行的多個(gè)相同的處理器,這些處理器中的任何一個(gè)適合處理一特定的包。把每個(gè)輸入包分配給該組合內(nèi)的一個(gè)有效處理器,并且這些處理器使用公共指令集來并行處理這些包。SMP系統(tǒng)重構(gòu)處理過的包流,因此其顯示出正確的包順序。
附圖的簡(jiǎn)要說明當(dāng)結(jié)合附圖,從下面的詳細(xì)說明中將更為容易地理解以上論述,其中

圖1示意地說明了把一通信網(wǎng)絡(luò)耦合到其它網(wǎng)絡(luò),如LANs,MANs,以及WANs的通信設(shè)備;圖2示意地說明了根據(jù)本發(fā)明一實(shí)施例的安裝在圖1的通信設(shè)備內(nèi)的網(wǎng)絡(luò)接口卡的幾個(gè)元件;圖3示意地說明了根據(jù)本發(fā)明一實(shí)施例的構(gòu)成圖2的網(wǎng)絡(luò)接口卡的一部分的轉(zhuǎn)發(fā)引擎的幾個(gè)元件;圖4提供了根據(jù)本發(fā)明一實(shí)施例的當(dāng)運(yùn)行圖3的轉(zhuǎn)發(fā)引擎時(shí)所執(zhí)行步驟的流程圖;圖5示意地說明了根據(jù)本發(fā)明一實(shí)施例的執(zhí)行直接存儲(chǔ)器以及直接寄存器存取的圖3的轉(zhuǎn)發(fā)引擎的入口邏輯和處理器的幾個(gè)元件;圖6提供了根據(jù)本發(fā)明一實(shí)施例的在圖5的入口邏輯和處理器的運(yùn)行期間所執(zhí)行步驟的流程圖;圖7示意地說明了根據(jù)本發(fā)明一實(shí)施例的構(gòu)成圖5的處理器的更詳細(xì)的元件組;以及圖8提供了根據(jù)本發(fā)明一實(shí)施例的當(dāng)運(yùn)行圖7中描述的處理器元件時(shí)所執(zhí)行步驟的流程圖。
發(fā)明的詳細(xì)說明典型的微處理器執(zhí)行裝入和存儲(chǔ)指令以把表示存儲(chǔ)在處理器外部的存儲(chǔ)元件內(nèi)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)的臨時(shí)圖像裝入到處理器的本地寄存器文件中用于進(jìn)一步的執(zhí)行。作為這里所使用的,術(shù)語“本地寄存器文件”意指在操作數(shù)據(jù)中可用的處理器的內(nèi)部結(jié)構(gòu)內(nèi)的寄存器全體?!凹拇嫫鳌敝傅氖谴鎯?chǔ)元件的相異組,如D觸發(fā)器。根據(jù)處理器設(shè)計(jì),寄存器文件空間能夠由存儲(chǔ)器與觸發(fā)器的組合構(gòu)成。在任何事件中,一般都利用提供了多個(gè)可獨(dú)立存取的讀以及寫端口的高速存儲(chǔ)器元件來實(shí)現(xiàn)寄存器文件。在軟件程序的執(zhí)行期間,典型的處理器執(zhí)行相對(duì)大量的裝入/存儲(chǔ)指令以把數(shù)據(jù)從外部存儲(chǔ)器移到本地寄存器文件以及把執(zhí)行結(jié)果從本地寄存器文件移到外部存儲(chǔ)器。對(duì)外部存儲(chǔ)器的這些頻繁存取是被強(qiáng)迫的,這是因?yàn)閷⒈惶幚淼臄?shù)據(jù)組過長(zhǎng)以致不能裝到本地寄存器文件的執(zhí)行空間內(nèi)。
本發(fā)明認(rèn)識(shí)到對(duì)外部存儲(chǔ)器的頻繁訪問對(duì)于處理足夠小的(例如,128至512,8位數(shù)據(jù)元素)可全部放在本地寄存器文件空間內(nèi)的數(shù)據(jù)組不是必需的。如以下所詳細(xì)描述的,本發(fā)明結(jié)合了直接存儲(chǔ)器存取(DMA)與直接寄存器存取(DRA)技術(shù)以把數(shù)據(jù)和執(zhí)行結(jié)果放置在處理器的寄存器文件內(nèi)外而無需處理器執(zhí)行指令,如裝入和存儲(chǔ)指令,以移動(dòng)數(shù)據(jù)。在這里,DMA指的是使用一個(gè)或多個(gè)狀態(tài)機(jī)來把數(shù)據(jù)塊移入或移出獨(dú)立于處理器的內(nèi)部或外部存儲(chǔ)器。類似地,DRA指的是DMA的特殊類型,即,包含了一個(gè)或多個(gè)數(shù)據(jù)塊移入或移出獨(dú)立于處理器的處理器寄存器文件空間的一種DMA。在一個(gè)實(shí)施例中,寄存器文件區(qū)域被分配為具有兩個(gè)寫端口和三個(gè)讀端口(與具有一個(gè)寫端口和兩個(gè)讀端口的標(biāo)準(zhǔn)三端寄存器文件空間相反)的五端寄存器文件空間以便方便直接寄存器文件存取。此方法避免了相對(duì)慢的(與寄存器文件內(nèi)的操作相比)對(duì)外部存儲(chǔ)器的存取,避免了存儲(chǔ)器等待狀態(tài),并減少了處理器指令集的大小。因此并且除了較大地增加一單獨(dú)的處理器的性能外,含有這些處理器的專用集成電路(ASIC)的模具大小以及能耗能夠降低并且ASIC內(nèi)的處理器的總數(shù)能夠大大地增加而不招致無法承受的花費(fèi)。
盡管出于處理在網(wǎng)絡(luò)上接收的包的目的,在下文中將把本發(fā)明描述為在一通信設(shè)備的網(wǎng)絡(luò)接口卡中實(shí)現(xiàn),但是該特殊實(shí)現(xiàn)僅僅是一說明性的實(shí)施例并且本技術(shù)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到能夠從所要求的本發(fā)明得益的任何數(shù)量的其它實(shí)施例及應(yīng)用。為了舉例而無限制,本發(fā)明能夠有益于包含相對(duì)小的數(shù)據(jù)集,如存在于圖像處理,信號(hào)處理,以及視頻處理中的這些數(shù)據(jù)集的信息處理應(yīng)用。本發(fā)明還能夠?qū)崿F(xiàn)于大范圍的各種網(wǎng)絡(luò)通信設(shè)備(例如,轉(zhuǎn)換器和路由器)以及其它信息處理環(huán)境中。
參見圖1,通信設(shè)備150經(jīng)由通信鏈路112從通信網(wǎng)絡(luò)110接收信息(例如,以包/幀,信元,或TDM幀的形式)并把所收到的信息傳送到不同的通信網(wǎng)絡(luò)或分支如局域網(wǎng)(LAN)120,城域網(wǎng)(MAN)130,或廣域網(wǎng)(WAN)140或是傳送到本地附屬末端站(未示出)。通信設(shè)備150能夠包含多個(gè)網(wǎng)絡(luò)接口卡(NICs),如NIC160和NIC180,每一個(gè)都具有一系列輸入端(例如,162,164及166)和輸出端(例如,168,170和172)。輸入端162,164及166從通信網(wǎng)絡(luò)110接收信息并把它們傳送到處理這些包以及使它們?yōu)樵谳敵龆?68,170和172之一傳輸而做好準(zhǔn)備的多個(gè)包處理引擎(未示出),輸出端168,170和172對(duì)應(yīng)于含有該末端站的通信網(wǎng)絡(luò)如LAN120,MAN130,或WAN140。
參見圖2,體現(xiàn)了本發(fā)明方面的網(wǎng)絡(luò)接口卡(NIC)160包括輸入端162,164,166,包處理或轉(zhuǎn)發(fā)引擎220,地址查找引擎(ALE)210,統(tǒng)計(jì)模塊230,排隊(duì)/解除排隊(duì)模塊240,以及輸出端168,170,172。NIC160在輸入端162,164,166從基于包的通信網(wǎng)絡(luò)110(圖1)接收數(shù)據(jù)。轉(zhuǎn)發(fā)引擎220,與ALE210一起,通過查找與目標(biāo)有關(guān)的適宜的輸出端168,170,172來確定包的目標(biāo)輸出端,以及把轉(zhuǎn)送矢量預(yù)先掛起到包上以協(xié)助把它們路由到適宜的輸出端。
被改變的包被傳送到排隊(duì)/解除排隊(duì)模塊240,其中轉(zhuǎn)送矢量被用來把包組織到與特定目標(biāo)輸出端168,170,172有關(guān)的隊(duì)列中。然后各個(gè)包的轉(zhuǎn)送矢量被除去并且把包排定以用于向選定的輸出端168,170,172的傳輸。接著把包從選定的輸出端168,170,172傳送到通信網(wǎng)絡(luò)如LAN120,MAN130,或WAN140。在一實(shí)施例中,NIC160的排隊(duì)/解除排隊(duì)模塊240經(jīng)由全網(wǎng)絡(luò)(full-mesh)互連(未示出)接收該改變包因此它能夠把在安裝在通信設(shè)備150內(nèi)的任何NIC160,180的輸入端上最初接收的包,包括由其自己的NIC160的輸入端162,164,166接收的包集中到其自己的NIC160的輸出端168,170,172的一個(gè)或多個(gè)上。在另一實(shí)施例中,由轉(zhuǎn)發(fā)引擎220把在輸入端162,164,166上接收的包直接傳送到排隊(duì)/解除排隊(duì)模塊240。
參見圖3和圖4,轉(zhuǎn)發(fā)引擎220的結(jié)構(gòu)的一說明性實(shí)施例包括入口邏輯310,ALE接口350,統(tǒng)計(jì)接口360,出口邏輯370,以及在320,330,340上代表性地示出的一個(gè)或多個(gè)處理器。運(yùn)轉(zhuǎn)中,對(duì)應(yīng)于一個(gè)包的數(shù)據(jù)在通信網(wǎng)絡(luò)110上發(fā)送并在與通信網(wǎng)絡(luò)110耦合的NIC160或180的一個(gè)特定輸入端162,164,或1 66上被接收(步驟410)。然后從與輸入端162,164,或166有關(guān)的處理器(代表性地表示在320,330,340上)組合中選出處理器330(步驟420)。一旦已經(jīng)分配了處理器330,由入口邏輯310把包分成包頭及包體部分(步驟430)。使用直接寄存器存取把包頭寫入與處理器330有關(guān)的寄存器文件710(圖7)內(nèi)的一特定位置中,使用直接存儲(chǔ)器存取把包體寫入出口邏輯370中的一輸出緩沖器中(步驟440)。然后處理器330根據(jù)本地存儲(chǔ)的指令處理包頭(步驟450)并把處理過的包頭傳送到出口邏輯370,在出口邏輯370包頭與包體重新結(jié)合(步驟460)。
處理器330可以執(zhí)行這樣的任務(wù)如通過檢查包頭的完整性來處理包頭,檢驗(yàn)其校驗(yàn)和,經(jīng)由統(tǒng)計(jì)接口360訪問統(tǒng)計(jì)模塊230以提供被用來向轉(zhuǎn)發(fā)引擎220外部的模塊報(bào)告涉及此包頭的處理活動(dòng)的統(tǒng)計(jì),以及經(jīng)由ALE接口350與ALE210通信以獲得用于與該包的目標(biāo)有關(guān)的輸出端168,170,172之一的路由信息。可以在此時(shí)做出附加的網(wǎng)絡(luò)特定(例如,IP,ATM,F(xiàn)rame Relay,HDLC,TDM)包處理。在該處理活動(dòng)終了時(shí),處理器330修改包頭以包括指定NIC160的一特定輸出端168,170,172的路由信息(例如,通過把轉(zhuǎn)送矢量預(yù)先掛起到包頭)。然后把改后的包頭寫入轉(zhuǎn)發(fā)引擎220的出口邏輯370,在出口邏輯370中該包頭被接著路由到如上所述的排隊(duì)/解除排隊(duì)模塊240。
ALE接口350,統(tǒng)計(jì)接口360以及出口邏輯370是在轉(zhuǎn)發(fā)引擎220內(nèi)的可在處理器320,330,340之中被共享的資源。在轉(zhuǎn)發(fā)引擎220設(shè)置了一個(gè)判優(yōu)裝置(未示出)以在訪問這些資源350,360,370的處理器320,330,340之間判優(yōu)。在一實(shí)施例中,當(dāng)把處理器330分配給包時(shí),用于處理器330的處理器標(biāo)識(shí)符,諸如處理器號(hào)碼被傳給上述標(biāo)識(shí)的三個(gè)共享資源350,360,370中的每一個(gè)。然后這些共享資源350,360,370中的每一個(gè)把該處理器號(hào)碼寫入一FIFO內(nèi),其最好具有與轉(zhuǎn)發(fā)引擎220內(nèi)的處理器總數(shù)相等的深度。各個(gè)共享資源350,360,370中的邏輯訪問其各自的FIFO以確定處理器320,330或340中的哪一個(gè)應(yīng)當(dāng)是下一個(gè)準(zhǔn)許訪問資源的處理器。一旦所準(zhǔn)許的處理器完成其對(duì)特定資源350,360,370的訪問,被訪問的資源就讀取其下一個(gè)FIFO入口以確定將向其發(fā)出準(zhǔn)許的下一個(gè)處理器。
更具體地并且參見圖5和6,在轉(zhuǎn)發(fā)引擎220內(nèi)的包數(shù)據(jù)的接收,操作以及傳送主要由多個(gè)DMA及DRA狀態(tài)機(jī)來處理。在一說明性實(shí)施例中,這些狀態(tài)機(jī)包含在入口邏輯310以及處理器330內(nèi)。在此說明性實(shí)施例的操作期間,從NIC160的輸入端162,164,166之一接收包并把它存儲(chǔ)在入口邏輯310內(nèi)的接收-數(shù)據(jù)FIFO(先進(jìn)/先出緩沖器)之中(步驟610)。接收-狀態(tài)FIFO512記錄該包所到達(dá)的特定輸入端162,164,或166并為每個(gè)由轉(zhuǎn)發(fā)引擎220接收的包保留一輸入端號(hào)碼的有序清單,該清單根據(jù)包被接收到的時(shí)間分類。
發(fā)出-DMA-命令狀態(tài)機(jī)514檢測(cè)何時(shí)接收-狀態(tài)FIFO512含有數(shù)據(jù)以及獲取與從接收-狀態(tài)FIFO512接收包的輸入端162,164,或166有關(guān)的輸入端號(hào)碼(步驟620)。之后發(fā)出-DMA-命令狀態(tài)機(jī)514向分配-處理器狀態(tài)機(jī)516發(fā)送含有包的端口號(hào)的處理器分配請(qǐng)求,裝置516訪問與那一端口號(hào)有關(guān)的分配-組合寄存器518以確定候選用于處理該包的一組處理器320,330,340(步驟630)。然后分配-處理器狀態(tài)機(jī)516訪問處理器-空閑寄存器520以確定由分配-組合寄存器518所標(biāo)識(shí)的候選處理器320,330,340的任何一個(gè)是否可使用。分配-處理器狀態(tài)機(jī)516接著從一組候選處理器320,330,340中分配一個(gè)可用處理器330以處理該包(步驟640)并把分配準(zhǔn)許以及處理器330的處理器號(hào)碼發(fā)送給發(fā)出-DMA-命令狀態(tài)機(jī)514。
在收到與所分配的處理器330有關(guān)的處理器號(hào)碼時(shí),發(fā)出-DMA-命令狀態(tài)機(jī)514向DMA-執(zhí)行狀態(tài)機(jī)522發(fā)送含有該處理器號(hào)碼的一執(zhí)行信號(hào)/命令,裝置522訪問頭部-DMA-長(zhǎng)度寄存器524以獲得將被發(fā)送給處理器330的接收的包的數(shù)量(即,包頭的長(zhǎng)度)(步驟650)。然后DMA-執(zhí)行狀態(tài)機(jī)522發(fā)出一DMA命令,其從接收-數(shù)據(jù)FIFO510檢索包頭部分(對(duì)應(yīng)于包頭)并在DRA總線526上傳送它,在該總線上由包含在處理器330內(nèi)的處理器-DRA狀態(tài)機(jī)530接收包頭部分(步驟660)。DMA-執(zhí)行狀態(tài)機(jī)522還發(fā)出從接收-數(shù)據(jù)FIFO510檢索包體并在另一條DMA總線528上傳送它以由出口邏輯370的緩沖器(未示出)來接收的一條命令。處理器-DRA狀態(tài)機(jī)530接著把經(jīng)由DRA總線526接收的包頭數(shù)據(jù)直接寫入從處理器330的寄存器文件空間710(圖7)內(nèi)的一固定地址位置(例如,地址0)開始的寄存器文件區(qū)域(步驟670)。然后處理器330處理包頭(步驟680)并把處理過的包頭經(jīng)由傳送-DMA狀態(tài)機(jī)532傳送給出口邏輯370用于與包體重新組合(步驟690)。
更具體地并參見圖7和8,在處理器330內(nèi)的包頭的處理是更可取的以使處理器的指令及活動(dòng)被限于數(shù)據(jù)操作以及構(gòu)成于處理器本地寄存器文件710內(nèi)的執(zhí)行空間中的執(zhí)行結(jié)果。在一說明性實(shí)施例中的處理器330的結(jié)構(gòu)包括Stats-接口狀態(tài)機(jī)704,ALE-接口狀態(tài)機(jī)706,處理器-DRA狀態(tài)機(jī)530,傳送-DMA狀態(tài)機(jī)532,寄存器文件710,算術(shù)邏輯單元(ALU)720,處理器控制模塊730,以及指令存儲(chǔ)器740。計(jì)算單元725由處理器控制730及ALU720組成。
在此說明性實(shí)施例的運(yùn)行期間以及當(dāng)處理器330等待接收包頭時(shí),計(jì)算單元725連續(xù)地執(zhí)行在指令存儲(chǔ)器740內(nèi)一特定地址(例如,地址0)上的指令(即,在一無限循環(huán)中)(步驟810)。處理器330內(nèi)的硬件檢測(cè)地址0為其中指令被從蝕刻在硅上的“電路”指令值返回而不是從存儲(chǔ)在指令存儲(chǔ)器740內(nèi)的指令返回的一特定地址。在一可能的實(shí)現(xiàn)中,對(duì)特定地址0上的指令的訪問返回“JMP 0”(或跳到地址0指令),從而使處理器330在那一地址上執(zhí)行一無限循環(huán)。
當(dāng)包頭被從入口邏輯310傳送到處理器的寄存器文件710時(shí),來自處理器-DRA狀態(tài)機(jī)530的一控制信號(hào)向處理器控制模塊730表示包頭傳送正在處理中(步驟820)。在此信號(hào)被激活時(shí),處理器控制模塊730迫使處理器程序計(jì)數(shù)器(未示出)指定指令存儲(chǔ)器740的一非特定地址(例如,地址2)并因此使計(jì)算單元725從在特定地址0被執(zhí)行的無限循環(huán)中跳出并等待直到該信號(hào)變成無效的(步驟830)。計(jì)算單元725響應(yīng)于該信號(hào)變?yōu)槭Ф_始在地址2上的指令的執(zhí)行(步驟840)。指令存儲(chǔ)器740的地址2能夠被構(gòu)成為保持將被用于處理寄存器文件710內(nèi)的包頭的第一指令(即,地址2上的指令對(duì)應(yīng)于先前已被下載來處理包頭的“真實(shí)”軟件圖像的開始)。當(dāng)處理器-DRA狀態(tài)機(jī)530完成從寄存器文件710內(nèi)的一固定位置開始的包頭的寫入時(shí)(當(dāng)控制信號(hào)成為無效時(shí)發(fā)生),計(jì)算單元725繼續(xù)正常地執(zhí)行指令存儲(chǔ)器740內(nèi)的剩余指令(即,地址2以外)。指令存儲(chǔ)器740內(nèi)的特定指令指定了寄存器文件710內(nèi)的位置。當(dāng)完成對(duì)特殊包頭的處理活動(dòng)時(shí),執(zhí)行軟件“跳到”地址0,從而在無限循環(huán)中執(zhí)行地址0上的指令。此項(xiàng)技術(shù)說明了如何觸發(fā)處理器330以處理存儲(chǔ)在寄存器文件710內(nèi)的包頭而不使用裝入及存儲(chǔ)指令的一個(gè)特殊實(shí)現(xiàn)。
在另一實(shí)施例中,所分配的處理器330保持空閑(即,不訪問指令存儲(chǔ)器或執(zhí)行指令)直到它從外部狀態(tài)機(jī)收到表示寄存器文件710已被完整的包頭填充的信號(hào)時(shí)。然后計(jì)算單元725執(zhí)行來自指令存儲(chǔ)器740的代碼以處理該包頭。觸發(fā)事件能夠,例如,包括當(dāng)控制信號(hào)變?yōu)闊o效。另一方面,當(dāng)DRA傳送已被啟動(dòng),完成時(shí),或當(dāng)其正在進(jìn)行時(shí)觸發(fā)所分配的處理器330。許多其它觸發(fā)事件對(duì)于本領(lǐng)域的技術(shù)人員來說將是顯而易見的。
如早先所論述的,處理器330在包頭的處理期間訪問處理器330外部的一個(gè)或多個(gè)共享資源(例如,見圖3,ALE接口350,統(tǒng)計(jì)接口360,以及出口邏輯370)。例如,處理器330通過ALE接口350(圖3)與ALE210(圖2)相互配合來發(fā)出ALE210的搜索并從其接收搜索結(jié)果。由處理器330執(zhí)行的這些與ALE210的交互不需處理器330執(zhí)行裝入及存儲(chǔ)指令也會(huì)發(fā)生。
在一個(gè)方面以及當(dāng)執(zhí)行指令存儲(chǔ)器740內(nèi)的指令時(shí),處理器330組成一個(gè)從寄存器文件710中的一預(yù)定地址開始的搜索關(guān)鍵字。計(jì)算單元725執(zhí)行涉及把一個(gè)值寫入ALE-命令寄存器來規(guī)定發(fā)送給ALE210的搜索關(guān)鍵字?jǐn)?shù)據(jù)的數(shù)量的一條指令。該值有效地用作為用于處理器330的ALE-接口狀態(tài)機(jī)706的控制線并由此觸發(fā)ALE-接口狀態(tài)機(jī)706以從ALE-命令寄存器讀取該值或其它數(shù)據(jù),確定要被傳送的數(shù)據(jù)量,以及利用獨(dú)立于計(jì)算單元725的直接存儲(chǔ)器存取把指定數(shù)據(jù)傳送給ALE接口350。當(dāng)處理器330等待被返回的搜索結(jié)果時(shí),它能夠執(zhí)行其它功能,如檢驗(yàn)包頭的網(wǎng)絡(luò)協(xié)議(例如,IP)校驗(yàn)和。當(dāng)來自ALE210的搜索結(jié)果有效時(shí),經(jīng)由ALE接口350把它們發(fā)送給ALE-接口狀態(tài)機(jī)706。ALE-接口狀態(tài)機(jī)706使用一個(gè)或多個(gè)直接寄存器存取把搜索結(jié)果寫入寄存器文件710的預(yù)定位置并當(dāng)寫完成時(shí)發(fā)信號(hào)給計(jì)算裝置725。接著計(jì)算裝置725響應(yīng)于該搜索結(jié)果修改包頭。
處理器330還能夠通過把一地址以及長(zhǎng)度值寫入處理器330的統(tǒng)計(jì)-更新-命令寄存器(未示出)來發(fā)出統(tǒng)計(jì)更新命令。觸發(fā)處理器330的統(tǒng)計(jì)-接口狀態(tài)機(jī)704以從統(tǒng)計(jì)-更新-命令寄存器讀取數(shù)據(jù),確定源以及要傳送的數(shù)據(jù)量,以及利用獨(dú)立于計(jì)算單元725的直接存儲(chǔ)器存取把指定數(shù)據(jù)傳送到統(tǒng)計(jì)接口360。
類似地,當(dāng)處理器330已完成包頭處理時(shí),計(jì)算單元725把處理過的包頭寫入處理器330的發(fā)送-DMA狀態(tài)機(jī)532,裝置532利用獨(dú)立于處理器330的直接存儲(chǔ)器存取把該處理過的包頭傳送到出口邏輯370內(nèi)的緩沖器(步驟850)。當(dāng)所有處理完成時(shí),在處理器330內(nèi)執(zhí)行的軟件跳回指令存儲(chǔ)器740的地址0并開始執(zhí)行先前論述的無限循環(huán)指令同時(shí)等待下一個(gè)包頭到達(dá)(步驟860)。
更具體地,在處理活動(dòng)完成時(shí),包頭可以不必駐留在寄存器文件710的相鄰區(qū)域以及因此計(jì)算裝置725必須指定在寄存器文件710內(nèi)的各個(gè)處理過的包頭的位置。因此,計(jì)算裝置725向移動(dòng)-DMA-命令寄存器(未示出)發(fā)出指定各個(gè)處理過的包頭的起始地址及長(zhǎng)度的一個(gè)或多個(gè)寫。這些寫存儲(chǔ)在一FIFO中,主要作為重編命令的清單。在獲得用于所有不完全包頭的數(shù)據(jù)后,計(jì)算裝置725對(duì)發(fā)送-DMA-命令寄存器(未示出)寫并指定與其它數(shù)據(jù)一起的包體長(zhǎng)度。
寫入發(fā)送-DMA-命令寄存器的值觸發(fā)處理器330內(nèi)的發(fā)送-DMA狀態(tài)機(jī)532開始根據(jù)存儲(chǔ)在上述參照FIFO內(nèi)的重編命令來開時(shí)包頭的組合。然后發(fā)送-DMA狀態(tài)機(jī)532利用獨(dú)立于計(jì)算單元725的直接存儲(chǔ)器存取把所組合的包頭與一些控制信息(包括包體長(zhǎng)度)一起發(fā)送到出口邏輯370。出口邏輯370把從發(fā)送-DMA狀態(tài)機(jī)532收到的處理過的包頭與存儲(chǔ)在出口邏輯370的FIFO中的包體連接在一起,接著把重構(gòu)的包發(fā)送到如先前所述的排隊(duì)/解除排隊(duì)模塊240。
為了正確地重構(gòu)包頭與包體,處理器330從嵌入在包頭本身內(nèi)的數(shù)據(jù)獲得整個(gè)包的長(zhǎng)度并通過接收-數(shù)據(jù)FIFO510(圖5)從傳送給處理器330的數(shù)據(jù)獲得包頭的長(zhǎng)度(對(duì)應(yīng)于寫入圖5的頭部-長(zhǎng)度寄存器524內(nèi)的相同值)?;谶@一信息,處理器330計(jì)算先前傳送到出口邏輯370內(nèi)的輸出FIFO的包體數(shù)據(jù)量并把包體的長(zhǎng)度指定為將通過發(fā)送-DMA狀態(tài)機(jī)532發(fā)送給出口邏輯370的控制信息。在此方式中,處理器330能夠把包體數(shù)據(jù)量指定為從出口邏輯370的輸出FIFO抽出、將被加到由處理器330構(gòu)成的新組合的包頭上以重構(gòu)修改數(shù)據(jù)包。為了正確地重構(gòu)修改的數(shù)據(jù)包,準(zhǔn)許處理器330按照與處理器330被分配的順序相同的順序來訪問出口邏輯370(并因此按照與包體被寫入出口邏輯370的輸出FIFO的順序相同的順序)。
本發(fā)明的各方面能夠給輸入包處理要求提供在計(jì)算資源分配上的極大的靈活性。假設(shè)為了說明性的目的在轉(zhuǎn)發(fā)引擎220內(nèi)有總共40個(gè)處理器320,330,340,能夠靈活地分配處理器320,330,340以符合眾多輸入/輸出端結(jié)構(gòu)的包處理需求。例如,在其中僅有一個(gè)單一邏輯輸入端(即,端口0)的NIC160中,全部40個(gè)處理器320,330,340能夠被分配為為該單一端口處理包。在此情況中,裝入每個(gè)處理器320,330,340的指令存儲(chǔ)器740內(nèi)的代碼圖像應(yīng)是相同的,從而使每個(gè)處理器320,330,340能夠執(zhí)行對(duì)于輸入端的那一類型的相同算法。在另一種涉及四個(gè)邏輯輸入端,每一個(gè)具有不同類型的網(wǎng)絡(luò)接口的情況中,各種網(wǎng)絡(luò)接口所需的處理算法可以不同。在此情形中,能夠如下分配40個(gè)處理器處理器
用于端口0,處理器[10-19]用于端口1,處理器[20-29]用于端口2以及處理器[30-39]用于端口3。另外,能夠下載4個(gè)不同的代碼圖像,其中每個(gè)單獨(dú)的圖像對(duì)應(yīng)于一個(gè)特定的輸入端。在又一種情況中,NIC160可以包括兩個(gè)邏輯輸入端,每一個(gè)具有不同的處理性能要求。在這一情況中,輸入端之一可耗費(fèi)75%的入口總線帶寬并具有要求75%的處理器資源的包到達(dá)速率,而第二端占去剩余部分。為了支持這些性能要求,能夠把30個(gè)處理器分配給輸入端0以及把10個(gè)處理器分配給輸入端1。
用于包括了作為其轉(zhuǎn)發(fā)引擎220的部件的多個(gè)處理器的NIC160,180的編程模塊,能夠通過把一個(gè)單獨(dú)的處理器分配給所收到的各個(gè)包來得到簡(jiǎn)化。此外,并且如上所述,通過含有本發(fā)明的系統(tǒng)而實(shí)現(xiàn)的減小了的模具大小允許在NIC160,180的轉(zhuǎn)發(fā)引擎ASICs內(nèi)的附加處理器的包含關(guān)系,從而這就保證了能夠按照網(wǎng)絡(luò)110的線速傳送包。通過在給定的轉(zhuǎn)發(fā)引擎ASIC上增加更多的處理器,增加處理器的時(shí)鐘速率,以及通過集成多個(gè)ASIC的處理組合,本發(fā)明是容易地可調(diào)節(jié)的。注意,在提供這一能力方面,本發(fā)明的硬件結(jié)構(gòu)保持經(jīng)由網(wǎng)絡(luò)接口到達(dá)的包的包順序以使重組過的包能夠以適當(dāng)順序發(fā)送到轉(zhuǎn)發(fā)引擎外。
在通信設(shè)備150的NIC160經(jīng)由通信網(wǎng)絡(luò)110以線速率接收包數(shù)據(jù)流,否則可能會(huì)壓倒NIC160的處理能力并導(dǎo)致包的減少以及降低服務(wù)質(zhì)量時(shí)處理器組合集成技術(shù)會(huì)特別有益。該集成技術(shù)允許來自一個(gè)以上的轉(zhuǎn)發(fā)引擎的空閑處理器的分配。例如,NIC160可包含多個(gè)轉(zhuǎn)發(fā)引擎ASIC,每一個(gè)具有能夠被分配為處理在NIC160上的任何輸入端到達(dá)的包的處理器組。另一方面,存在于通信設(shè)備150內(nèi)的其它NICs180上的,除了轉(zhuǎn)發(fā)引擎ASIC外的處理器組,能夠被分配給經(jīng)歷繁重網(wǎng)絡(luò)負(fù)載的NIC160。
盡管已參照特定細(xì)節(jié)對(duì)本發(fā)明進(jìn)行了描述,但是并不意味著這些細(xì)節(jié)將被視為在本發(fā)明范圍上的限制,除了作為以及它們被包含在附帶權(quán)利要求書中的范圍。
權(quán)利要求
1.一種處理包的方法,該方法包括步驟接收包;識(shí)別數(shù)據(jù)包的包頭部分;把包頭傳送到一處理器所能存取的寄存器文件;以及處理包頭而不需由處理器調(diào)用裝入指令及存儲(chǔ)指令中的至少一個(gè)。
2.權(quán)利要求1的方法,其中不需調(diào)用裝入指令及存儲(chǔ)指令中的至少一個(gè)而執(zhí)行傳送步驟。
3.權(quán)利要求1的方法,進(jìn)一步包括步驟把包分成包頭部分和包體部分;使用直接寄存器存取把包頭傳送到該寄存器文件;以及把包體傳送到一輸出緩沖器。
4.權(quán)利要求3的方法,進(jìn)一步包括步驟選擇一個(gè)用于包的傳輸?shù)妮敵龆?;在該輸出緩沖器內(nèi)把處理過的包頭與包體結(jié)合起來;以及把結(jié)合過的包從該輸出緩沖器轉(zhuǎn)發(fā)到從其傳輸?shù)倪x定輸出端。
5.權(quán)利要求1的方法,進(jìn)一步包括步驟提供多個(gè)相同的執(zhí)行一公共指令集的處理器,每一個(gè)處理器本地地給處理器存儲(chǔ)了該指令集;從多個(gè)處理器之中選擇一個(gè)處理器來處理包頭;以及使該選定的處理器處理包頭。
6.權(quán)利要求5的方法,其中由對(duì)輸入端上的包接收響應(yīng)的一個(gè)狀態(tài)機(jī)來執(zhí)行選擇處理器的步驟。
7.權(quán)利要求5的方法,其中由至少一個(gè)被配置為把包頭寫入該選定處理器所能存取的寄存器文件內(nèi)的至少一個(gè)固定位置的狀態(tài)機(jī)來執(zhí)行使該選定處理器處理包頭的步驟。
8.權(quán)利要求的方法,進(jìn)一步包括步驟把一公共指令集下載到多個(gè)處理器的每一個(gè)處理器內(nèi)的一指令存儲(chǔ)器上。
9.一種處理在通信網(wǎng)絡(luò)上接收的包的包頭的方法,該方法包括步驟把包頭傳送到一寄存器文件內(nèi)的至少一個(gè)固定位置;提供一個(gè)與該寄存器文件有關(guān)的處理器,該處理器重復(fù)執(zhí)行在一無限循環(huán)中的一條指令,該指令存儲(chǔ)在與該處理器有關(guān)的指令存儲(chǔ)器內(nèi)的第一已知位置上;使該處理器響應(yīng)于包頭的傳送而執(zhí)行從該指令存儲(chǔ)器內(nèi)的第二已知位置開始的指令;根據(jù)從該指令存儲(chǔ)器內(nèi)的第二已知位置開始的指令處理在該寄存器文件內(nèi)的至少一個(gè)固定位置中的包頭;以及在完成包頭的處理時(shí)復(fù)位該處理器以重復(fù)執(zhí)行存儲(chǔ)在指令存儲(chǔ)器內(nèi)的第一已知位置上的指令。
10.權(quán)利要求9的方法,其中處理步驟包括處理包頭而不需調(diào)用裝入指令及存儲(chǔ)指令的至少一個(gè)。
11.權(quán)利要求9的方法,進(jìn)一步包括步驟在與該通信網(wǎng)絡(luò)耦合的一輸入端上接收包;從與該輸入端有關(guān)的多個(gè)候選處理器中選擇處理器;把包分成包頭和包體;以及通過執(zhí)行與該寄存器文件耦合的一狀態(tài)機(jī)所發(fā)出的DRA命令來把包頭傳送到與所選定處理器有關(guān)的寄存器文件內(nèi)的至少一個(gè)固定位置。
12.權(quán)利要求11的方法,進(jìn)一步包括步驟把一公共指令集下載到多個(gè)候選處理器中的每一個(gè)處理器內(nèi)的一指令存儲(chǔ)器上。
13.一種用于處理在通信網(wǎng)絡(luò)上接收的包的包處理系統(tǒng),該系統(tǒng)包括被配置為在通信網(wǎng)絡(luò)上接收包的一輸入端;與該輸出端有關(guān)的一處理器;該處理器所能存取的一寄存器文件;以及與該輸入端,處理器,以及寄存器文件耦合的一入口元件,該入口元件被配置為通過引用DRA命令而把包的至少一部分傳送到寄存器文件,其中該處理器響應(yīng)于該DRA命令并且不需調(diào)用裝入指令及存儲(chǔ)指令中的至少一個(gè)來處理寄存器文件中的包的該至少一部分。
14.權(quán)利要求13的包處理系統(tǒng),其中該入口元件被配置為從與該輸入端有關(guān)的多個(gè)候選處理器中選擇處理器。
15.權(quán)利要求14的包處理系統(tǒng),進(jìn)一步包括多個(gè)指令存儲(chǔ)器,該多個(gè)指令存儲(chǔ)器中的每一個(gè)與多個(gè)候選處理器中的對(duì)應(yīng)一個(gè)有關(guān),其中該多個(gè)指令存儲(chǔ)器含有一個(gè)相同的指令集。
16.權(quán)利要求13的包處理系統(tǒng),其中包的該至少一部分對(duì)應(yīng)于包頭。
17.權(quán)利要求16的包處理系統(tǒng),其中該入口元件包括被配置為把包頭寫入寄存器文件內(nèi)的一固定位置的一個(gè)狀態(tài)機(jī)。
18.一種用于處理在通信網(wǎng)絡(luò)上接收的包的包頭的包處理系統(tǒng),該系統(tǒng)包括與通信網(wǎng)絡(luò)耦合的一輸入端;與該輸入端耦合并被配置為接收及分析包以獲得包頭的一入口元件;與該入口元件耦合并被配置為把從該入口元件接收的包頭存儲(chǔ)在一至少一個(gè)固定位置上;被配置為從至少一第一和第二地址返回指令的一指令存儲(chǔ)器;以及與該入口元件,寄存器文件,以及指令存儲(chǔ)器耦合的一處理器,該處理器重復(fù)執(zhí)行存儲(chǔ)在該指令存儲(chǔ)器的第一個(gè)上的指令,其中該處理器執(zhí)行從該指令存儲(chǔ)器的第二地址上開始的指令以響應(yīng)于來自該入口元件的信號(hào)處理寄存器文件內(nèi)的包頭。
19.一種信息處理系統(tǒng),包括一處理器,具有一內(nèi)部寄存器文件空間以及用于操作數(shù)據(jù)的一個(gè)單元;一入口元件,用于把未處理的數(shù)據(jù)傳遞到內(nèi)部寄存器文件空間;以及一出口元件,用于從內(nèi)部寄存器文件空間取出處理過的數(shù)據(jù),其中處理器的操作被限制在操作內(nèi)部寄存器文件空間內(nèi)的數(shù)據(jù)。
20.權(quán)利要求19的系統(tǒng),進(jìn)一步包括至少一個(gè)管理入口及出口元件的操作的狀態(tài)機(jī),并且響應(yīng)于內(nèi)部寄存器文件空間內(nèi)的指令,該狀態(tài)機(jī)根據(jù)指令使用對(duì)該內(nèi)部寄存器文件空間的直接存取使數(shù)據(jù)移入或移出內(nèi)部寄存器文件空間。
21.權(quán)利要求20的系統(tǒng),進(jìn)一步包括從通信網(wǎng)絡(luò)接收數(shù)據(jù)的一網(wǎng)絡(luò)接口,該接口向入口元件提供接收到的數(shù)據(jù)。
22.一種信息處理方法,該方法包括步驟提供一個(gè)具有一內(nèi)部寄存器文件空間以及用于操作數(shù)據(jù)的一個(gè)單元的處理器;以及使用對(duì)該內(nèi)部寄存器文件空間的直接存取來把未處理的數(shù)據(jù)傳遞到該內(nèi)部寄存器文件空間并從內(nèi)部寄存器文件空間取出處理過的數(shù)據(jù),處理器的操作被限制在操作該內(nèi)部寄存器文件空間內(nèi)的數(shù)據(jù)。
23.權(quán)利要求22的方法,進(jìn)一步包括步驟提供至少一個(gè)狀態(tài)機(jī)使用對(duì)該內(nèi)部寄存器文件空間的直接存取來管理向該內(nèi)部寄存器文件空間的數(shù)據(jù)傳遞以及從內(nèi)部寄存器文件空間的數(shù)據(jù)移出;以及通過把一個(gè)值寫入一控制寄存器來使該處理器發(fā)信號(hào)給狀態(tài)機(jī),該狀態(tài)機(jī)響應(yīng)于該值并根據(jù)狀態(tài)機(jī)邏輯來執(zhí)行該直接存取。
24.權(quán)利要求22的方法,其中該未處理的數(shù)據(jù)由具有線數(shù)據(jù)速率的通信網(wǎng)絡(luò)發(fā)起,該處理器以和該線速率相等的速率處理數(shù)據(jù)。
25.權(quán)利要求24的方法,其中該未處理的數(shù)據(jù)為包格式。
26.一種處理含有一包的暫時(shí)序列的包流的方法,該方法包括步驟提供多個(gè)執(zhí)行一公共指令集的相同的處理器,每一個(gè)處理器本地地給處理器存儲(chǔ)了該指令集;接收包;對(duì)每個(gè)包,(i)識(shí)別數(shù)據(jù)包的包頭部分,(ii)根據(jù)處理器的有效性從多個(gè)處理器之中選擇一個(gè)處理器來處理包頭,以及(iii)使該選定的處理器使用本地存儲(chǔ)的指令處理包頭;以及根據(jù)該暫時(shí)序列組合處理過的包以重構(gòu)包流。
27.權(quán)利要求26的方法,其中該多個(gè)處理器物理地放置在多個(gè)集成電路上。
28.一種用于處理含有一包的暫時(shí)序列的包流的系統(tǒng),該系統(tǒng)包括多個(gè)執(zhí)行一公共指令集的相同的處理器,每一個(gè)處理器包括含有該指令集的本地指令存儲(chǔ)器;用于接收包的一輸入端;與輸入端以及處理器耦合的一入口邏輯單元,對(duì)于每個(gè)包,該入口邏輯單元被配置為,(i)識(shí)別數(shù)據(jù)包的包頭部分以及(ii)根據(jù)處理器的有效性從多個(gè)處理器之中選擇一個(gè)處理器來處理包頭,該選定的處理器通過使用本地存儲(chǔ)的指令處理包頭以響應(yīng)于入口邏輯單元;以及一出口邏輯單元,用于根據(jù)該暫時(shí)序列組合處理過的包以重構(gòu)包流。
29.權(quán)利要求28的系統(tǒng),其中該多個(gè)處理器物理地放置在多個(gè)集成電路上。
全文摘要
通過把處理器的操作限制在其內(nèi)部寄存器文件內(nèi)以便減少由處理器執(zhí)行的指令計(jì)數(shù)就能夠在數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn)顯著的性能改進(jìn)。使用獨(dú)立于處理器的直接存儲(chǔ)器存取能夠把小到足以裝入該內(nèi)部寄存器文件內(nèi)的數(shù)據(jù)傳送到該內(nèi)部寄存器文件內(nèi),并且能夠從中取出執(zhí)行結(jié)果,從而使處理器能夠避免執(zhí)行裝入及存儲(chǔ)指令來操作外部存儲(chǔ)的數(shù)據(jù)。此外,數(shù)據(jù)以及處理活動(dòng)的執(zhí)行結(jié)果還可以由處理器在該內(nèi)部寄存器文件內(nèi)完全地存取和操作。與多處理器的標(biāo)準(zhǔn)以及其指令集結(jié)合的,指令計(jì)數(shù)上的降低使得能夠?qū)崿F(xiàn)在可管理的復(fù)雜性及成本水平上的高度可調(diào)節(jié),高性能的對(duì)稱多處理系統(tǒng)。
文檔編號(hào)H04L29/06GK1437724SQ01809008
公開日2003年8月20日 申請(qǐng)日期2001年3月2日 優(yōu)先權(quán)日2000年3月3日
發(fā)明者T·胡西, D·W·蒙雷, A·N·索德 申請(qǐng)人:坦諾網(wǎng)絡(luò)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1