專利名稱:用于大量信道的硬件加速的制作方法
技術(shù)領(lǐng)域:
概括地說,本發(fā)明涉及網(wǎng)絡(luò)通信,具體地說,本發(fā)明涉及管理網(wǎng)絡(luò)中大量的信道,在該網(wǎng)絡(luò)中,硬件資源用于某些分組。
背景技術(shù):
網(wǎng)絡(luò)可以在有多個(gè)設(shè)備的情況下運(yùn)行。這些設(shè)備可以是同類型的,也可以是多種不同類型的,可能需要區(qū)別對待。通常情況下,多個(gè)設(shè)備就需要多個(gè)相應(yīng)的信道,每個(gè)設(shè)備要對應(yīng)至少一個(gè)信道,或者更多的信道。管理這些信道會(huì)是一個(gè)難題。此外,將網(wǎng)絡(luò)設(shè)備與有關(guān)的信道相匹配也可能是一個(gè)難題。
網(wǎng)絡(luò)是實(shí)時(shí)運(yùn)行的。因此,當(dāng)訪問一個(gè)信道時(shí),必須快速找到該信道。優(yōu)選情況下,找到信道的時(shí)間是可以預(yù)測的。當(dāng)存在大量信道時(shí),訪問特定信道上的信息可能會(huì)很慢。此外,允許附加的信道也會(huì)變得比較困難。因此,針對信道信息提供快速和可預(yù)測的訪問時(shí)間是很有用的。
此外,在某些情況下,硬件加速可以用于處理多個(gè)分組。然而,基于中斷驅(qū)動(dòng)來管理硬件加速可以造成驅(qū)動(dòng)器將正等待必要硬件(例如密碼加速器)的大量分組丟棄。硬件中斷是不可預(yù)測的,跟分組傳輸時(shí)間或分組延時(shí)相比,硬件處理時(shí)間往往比較長。
人們期望讓驅(qū)動(dòng)器等待硬件資源,并在等待資源期間拒絕到來的分組?;蛘?,驅(qū)動(dòng)器可以對到來的分組使用有限的緩沖器,但這可能在等待硬件資源期間造成溢出,從而導(dǎo)致拒絕到來的分組。因此,不需要驅(qū)動(dòng)器等待硬件中斷或互斥的硬件資源管理是很有用處的。
發(fā)明內(nèi)容
本文描述了用于大量信道的硬件加速的方法、裝置和系統(tǒng)。
在一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括接收網(wǎng)絡(luò)中通信信道的信道標(biāo)識(shí)符。該方法還包括檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該方法還包括操作與該信道標(biāo)識(shí)符相對應(yīng)的信道。該信道操作所使用的信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一實(shí)施例中,本發(fā)明是一種裝置。該裝置包括一個(gè)處理器、與該處理器相連的存儲(chǔ)器、以及與該處理器相連的網(wǎng)絡(luò)接口。該處理器用于接收網(wǎng)絡(luò)中通信信道的信道標(biāo)識(shí)符。該處理器還用于檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該處理器還用于使用信道信息,操作與該信道標(biāo)識(shí)符相對應(yīng)的信道,該信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一個(gè)實(shí)施例中,本發(fā)明是包括指令的機(jī)器可讀介質(zhì)。指令可由處理器執(zhí)行。指令使處理器執(zhí)行一種方法。該方法包括接收網(wǎng)絡(luò)中通信信道的信道標(biāo)識(shí)符。該方法還包括檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該方法還包括使用信道信息,操作與該信道標(biāo)識(shí)符相對應(yīng)的信道,該信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一個(gè)實(shí)施例中,本發(fā)明是一種裝置。該裝置包括接收信道標(biāo)識(shí)符的模塊。該裝置還包括檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)的模塊。信道項(xiàng)陣列由通信信道的信道標(biāo)識(shí)符作索引。該裝置更還包括操作與該信道標(biāo)識(shí)符相對應(yīng)的信道的模塊。操作模塊所使用的信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括監(jiān)視入站隊(duì)列中的硬件作業(yè)。該方法還包括檢測來自硬件部件的中斷。該方法還包括從入站隊(duì)列向硬件部件傳輸作業(yè)。該方法還可以包括從硬件部件向出站隊(duì)列傳輸完成的作業(yè)。該方法還可以包括提供出站隊(duì)列中的作業(yè)的完成的指示。
在另一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括接收一組信道中一個(gè)信道上的分組。該方法還包括確定分組需要由硬件部件進(jìn)行處理。該方法還包括將分組置于硬件部件的分配器的入站隊(duì)列中。該方法還可以包括從硬件部件的分配器的出站隊(duì)列中接收完成的分組。該方法更還可以包括確定在分配器的出站隊(duì)列中有完成的分組。
將在所述的各種實(shí)施例中舉例說明本發(fā)明,本發(fā)明的精神和保護(hù)范圍僅由所附權(quán)利要求書界定。
下面將通過各種具體實(shí)施例對本發(fā)明進(jìn)行描述,本發(fā)明的精神和保護(hù)范圍僅由所附權(quán)利要求書限定。
圖1示出了具有軸輻式拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)的實(shí)施例;圖2示出了散列表的實(shí)施例;圖3示出了在散列表中查找信道項(xiàng)的過程的實(shí)施例;圖4示出了在陣列中查找信道的過程的實(shí)施例;圖5示出了信道項(xiàng)陣列的實(shí)施例;圖6示出了信道信息的數(shù)據(jù)結(jié)構(gòu)的實(shí)施例;圖7示出了由機(jī)器組成的網(wǎng)絡(luò)的實(shí)施例;圖8示出了機(jī)器或計(jì)算機(jī)的實(shí)施例;圖9示出了蜂窩網(wǎng)絡(luò)的實(shí)施例;圖10示出了維護(hù)信道信息陣列的過程的實(shí)施例;圖11示出了信道信息擴(kuò)展陣列的一個(gè)實(shí)施例;圖12示出了信道信息擴(kuò)展陣列的替代實(shí)施例;圖13示出了維護(hù)自由列表的過程的實(shí)施例;圖14示出了機(jī)器可讀介質(zhì)的實(shí)施例;圖15示出了自由列表的實(shí)施例;圖16示出了管理信道消息的密碼的過程的實(shí)施例;圖17示出了可以實(shí)現(xiàn)圖16的過程的一組部件的實(shí)施例;圖18示出了將作業(yè)分配給硬件模塊的過程的實(shí)施例;圖19示出了管理分組的過程的實(shí)施例;圖20示出了管理分組的系統(tǒng)堆棧的實(shí)施例;圖21示出了包括硬件加速的用于管理分組的系統(tǒng)的實(shí)施例;
圖22示出了如何表示作業(yè)的實(shí)施例;圖23示出了信道列表的實(shí)施例;圖24示出了如何表示驅(qū)動(dòng)器的實(shí)施例;圖25示出了包括分配器和一組驅(qū)動(dòng)器的系統(tǒng)的實(shí)施例;圖26示出了作業(yè)列表的替代實(shí)施例;圖27示出了包括硬件加速的用于管理分組的系統(tǒng)的替代實(shí)施例。
在各附圖中,相同的附圖標(biāo)記表示相同的元件。
具體實(shí)施例方式
下面結(jié)合不同范圍的系統(tǒng)、裝置和方法,對本發(fā)明進(jìn)行描述和說明。除了在發(fā)明內(nèi)容部分中描述的本發(fā)明的多個(gè)方面外,通過參考附圖和閱讀以下的詳細(xì)描述,本發(fā)明的其它方面也會(huì)變得顯而易見。本文描述了用于大量信道的硬件加速的方法、裝置和系統(tǒng)。
在一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括接收網(wǎng)絡(luò)中通信信道的信道標(biāo)識(shí)符。該方法還包括檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該方法還包括使用信道信息,操作與該信道標(biāo)識(shí)符相對應(yīng)的信道,該信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一實(shí)施例中,本發(fā)明是一種裝置。該裝置包括一個(gè)處理器。該裝置還包括與處理器相連的存儲(chǔ)器。該裝置還包括與處理器相連的網(wǎng)絡(luò)接口。該處理器用于接收網(wǎng)絡(luò)中通信信道的信道標(biāo)識(shí)符。該處理器還用于檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該處理器還用于使用信道信息,操作與該信道標(biāo)識(shí)符相對應(yīng)的信道,該信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一個(gè)實(shí)施例中,本發(fā)明是一種裝置。該裝置包括接收信道標(biāo)識(shí)符的模塊。該裝置還包括檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)的模塊。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該裝置還包括使用信道信息操作與該信道標(biāo)識(shí)符相對應(yīng)的信道的模塊,該信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一個(gè)實(shí)施例中,本發(fā)明是包括指令的機(jī)器可讀介質(zhì)。指令可由處理器執(zhí)行。指令使處理器執(zhí)行一種方法。該方法包括接收網(wǎng)絡(luò)中通信信道的信道標(biāo)識(shí)符。該方法還包括檢查在信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。信道項(xiàng)陣列用通信信道的信道標(biāo)識(shí)符作索引。該方法還包括使用信道信息,操作與該信道標(biāo)識(shí)符相對應(yīng)的信道,該信道信息來自信道項(xiàng)陣列中與該信道標(biāo)識(shí)符相對應(yīng)的項(xiàng)。
在另一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括監(jiān)視入站隊(duì)列中的硬件作業(yè)。該方法還包括檢測硬件部件的中斷。該方法還包括從入站隊(duì)列到硬件部件傳輸作業(yè)。該方法還可以包括從硬件部件到出站隊(duì)列傳輸完成的作業(yè)。該方法還可以包括提供出站隊(duì)列中的作業(yè)的完成的指示。
在另一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括接收一組信道中一個(gè)信道上的分組。該方法還包括確定分組由硬件部件進(jìn)行處理。該方法還包括將分組置于硬件部件的分配器的入站隊(duì)列中。該方法還可以包括從硬件部件的分配器的出站隊(duì)列中接收完成的分組。該方法還可以包括確定完成的分組在分配器的出站隊(duì)列中是可用的。
圖1示出了具有軸輻式拓?fù)浣Y(jié)構(gòu)(hub and spokes topology)的網(wǎng)絡(luò)的實(shí)施例。網(wǎng)絡(luò)100可以表示多種不同類型的網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)100可以表示由工作站(120)和服務(wù)器110組成的網(wǎng)絡(luò)。因此,工作站120b、120c、120d、120e、120g、120h、120j,120k以及120l都耦合到或連接到服務(wù)器110,從而實(shí)現(xiàn)通過服務(wù)器110以及因此通過網(wǎng)絡(luò)100進(jìn)行通信。工作站120a、120f和120i都沒有和服務(wù)器110相連,因此沒有集成到網(wǎng)絡(luò)100中。需要理解的是,每個(gè)工作站120均可以通過信道連接或耦合到服務(wù)器110。因此,維持每個(gè)工作站的信道的狀態(tài)對網(wǎng)絡(luò)100的運(yùn)行是至關(guān)重要的。
散列表是可用于維持網(wǎng)絡(luò)中信道狀態(tài)的結(jié)構(gòu)的一個(gè)例子。圖2示出了散列表的實(shí)施例。散列表200包括散列桶(hash bucket)210、220、230、240、250、260、270、280和290。每個(gè)散列桶包括由多個(gè)項(xiàng)組成的列表。為了基于標(biāo)識(shí)符找到一項(xiàng),計(jì)算該標(biāo)識(shí)符相應(yīng)的散列值,并在散列桶的項(xiàng)列表中尋找對應(yīng)的項(xiàng),該散列桶由散列值進(jìn)行標(biāo)識(shí)。通常,單個(gè)的散列值是由很多不同的標(biāo)識(shí)符所產(chǎn)生的,因此它只是項(xiàng)的列表的必要條件。
如圖所示,項(xiàng)列表215對應(yīng)于散列桶210,與此類似,項(xiàng)列表225對應(yīng)于散列桶220,項(xiàng)列表235對應(yīng)于散列桶230,項(xiàng)列表245對應(yīng)于散列桶240,項(xiàng)列表255對應(yīng)于散列桶250,項(xiàng)列表265對應(yīng)于散列桶260,項(xiàng)列表275對應(yīng)于散列桶270,項(xiàng)列表285對應(yīng)于散列桶280,項(xiàng)列表295對應(yīng)于散列桶290。列表215、235、245、255、275和295的項(xiàng)均多于三個(gè),如圖中的省略號(hào)所示。列表225和列表285均只包括兩項(xiàng),而列表265則包括三項(xiàng)。因此,搜尋散列表所需的時(shí)間既取決于散列桶列表的長度又取決于期望項(xiàng)在列表中的位置而變化。通常,散列表的搜尋時(shí)間是o(logn)。
散列表的搜索過程指明了搜索散列表可能會(huì)比較緩慢的原因。雖然在某些應(yīng)用中o(logn)的時(shí)間是所期望的,但對于實(shí)時(shí)運(yùn)行來說還是太緩慢了。圖3示出了在散列表中查找信道項(xiàng)的過程的實(shí)施例。圖3所示的過程和所示及所描述的其它過程均包括一組模塊,這組模塊可以以各種方式來實(shí)現(xiàn),從而能夠并行或串行執(zhí)行。過程300包括接收標(biāo)識(shí)符;在散列表中找到對應(yīng)項(xiàng);找到對應(yīng)項(xiàng)的信道信息;操作對應(yīng)的信道。
在模塊310中,接收信道的標(biāo)識(shí)符。在模塊320中,根據(jù)標(biāo)識(shí)符計(jì)算散列值。在模塊330中,根據(jù)散列值搜索到散列表列表。在模塊340中,搜索散列表列表中的項(xiàng)。在模塊350中,在散列表列表的多項(xiàng)中的一項(xiàng)內(nèi)搜索到了信道的信道信息。在模塊360,根據(jù)散列表項(xiàng)的信道信息,對信道進(jìn)行操作。
相比之下,使用信道項(xiàng)陣列(或信道項(xiàng)的指針)可以在O(1)時(shí)間(恒定時(shí)間)內(nèi)對信道信息進(jìn)行訪問。在實(shí)時(shí)運(yùn)行中,掌握運(yùn)行的恒定且因此可預(yù)測的時(shí)間是特別重要的。圖4示出了在陣列中查找信道的過程的實(shí)施例。過程400包括接收標(biāo)識(shí)符;將其索引入陣列中;找到信道信息并對信道進(jìn)行操作。
在模塊410中,接收信道的標(biāo)識(shí)符。在模塊425中,使用標(biāo)識(shí)符直接索引信道信息數(shù)據(jù)結(jié)構(gòu)的陣列。在模塊455中,在陣列中找到信道的相關(guān)信道信息。在模塊465中,對相關(guān)的信道進(jìn)行操作。因此,如果蜂窩電話在網(wǎng)絡(luò)中通過信道發(fā)送信息,則基于由蜂窩電話提供的信道的標(biāo)識(shí)符,網(wǎng)絡(luò)可以在恒定的時(shí)間內(nèi)找到信道信息數(shù)據(jù)結(jié)構(gòu)中的控制信息。
圖5示出了信道項(xiàng)陣列的實(shí)施例。陣列500包括陣列表510,具有和每個(gè)標(biāo)識(shí)符相對應(yīng)的項(xiàng);信道信息數(shù)據(jù)結(jié)構(gòu)520。陣列表510的項(xiàng)可以是信道信息數(shù)據(jù)結(jié)構(gòu)520的指針,或者陣列表510的項(xiàng)可以是實(shí)際的信道信息數(shù)據(jù)結(jié)構(gòu)520。圖6示出了信道信息的數(shù)據(jù)結(jié)構(gòu)的實(shí)施例。數(shù)據(jù)結(jié)構(gòu)600是可用作數(shù)據(jù)結(jié)構(gòu)520的數(shù)據(jù)結(jié)構(gòu)的例子或?qū)嵤├?。在一個(gè)實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)600包括信道標(biāo)識(shí)符610、信道狀態(tài)620、信道計(jì)時(shí)器630和用戶標(biāo)識(shí)符640。如圖所示,在數(shù)據(jù)結(jié)構(gòu)600中還可以包括其它信息。其它實(shí)施例可以包括不同的信息,或者以不同的方式組織這些其它的實(shí)施例。此外,單一網(wǎng)絡(luò)中的不同類型的信道可以具有不同的相關(guān)數(shù)據(jù)結(jié)構(gòu)。
下面對圖7-8的描述是為了概述適于執(zhí)行上述和下述本發(fā)明方法的計(jì)算機(jī)硬件和其它操作部件,而不是為了限制應(yīng)用環(huán)境。相似地,計(jì)算機(jī)硬件和其它操作部件可以適于作為上述本發(fā)明的多個(gè)裝置中的一部分。本發(fā)明可用其它計(jì)算機(jī)系統(tǒng)配置(包括手持設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程的消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC(計(jì)算機(jī))、迷你計(jì)算機(jī)以及大型計(jì)算機(jī)等待)來實(shí)現(xiàn)。本發(fā)明亦可實(shí)現(xiàn)在分布式計(jì)算環(huán)境中,在分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程計(jì)算設(shè)備來執(zhí)行任務(wù)。
圖7示出了通過網(wǎng)絡(luò)705(例如互聯(lián)網(wǎng))連接到一起的幾個(gè)計(jì)算機(jī)系統(tǒng)。這里所用的術(shù)語“互聯(lián)網(wǎng)”是指由使用某些協(xié)議(例如tcp/ip協(xié)議)以及其它可能的協(xié)議(例如組成萬維網(wǎng)(web)的超文本標(biāo)記語言(html)文件所用的超文本傳輸協(xié)議(HTTP))的多個(gè)網(wǎng)絡(luò)組成的網(wǎng)絡(luò)。對于本領(lǐng)域普通技術(shù)人員來說,互聯(lián)網(wǎng)的物理連接、互聯(lián)網(wǎng)的這些協(xié)議以及通信過程都是公知的。
通常,由互聯(lián)網(wǎng)服務(wù)供應(yīng)商(isp)(例如isp 710和715)提供對互聯(lián)網(wǎng)705的訪問。客戶端系統(tǒng)(例如客戶端計(jì)算機(jī)系統(tǒng)730、740、750以及760)上的用戶通過互聯(lián)網(wǎng)服務(wù)供應(yīng)商(例如isp 710和715)獲得對互聯(lián)網(wǎng)的訪問。對互聯(lián)網(wǎng)的訪問使客戶端計(jì)算機(jī)系統(tǒng)的用戶能夠交換信息、收發(fā)電子郵件以及瀏覽諸如html之類格式的文件。這些文件往往由web服務(wù)器(例如被認(rèn)為是位于互聯(lián)網(wǎng)“上”的web服務(wù)器720)提供。盡管在計(jì)算機(jī)系統(tǒng)不是isp的情況下該系統(tǒng)也能建立并連接到互聯(lián)網(wǎng),但通常這些web服務(wù)器是由isp(例如isp 710)提供的。
Web服務(wù)器720通常是至少一個(gè)計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)是作為服務(wù)器計(jì)算機(jī)系統(tǒng),其使用萬維網(wǎng)的多個(gè)協(xié)議工作,并連接到互聯(lián)網(wǎng)??蛇x地,web服務(wù)器720可以是提供對客戶端系統(tǒng)的互聯(lián)網(wǎng)進(jìn)行訪問的isp的一部分。所示的web服務(wù)器720連接到服務(wù)器計(jì)算機(jī)系統(tǒng)725,該服務(wù)器計(jì)算機(jī)系統(tǒng)725自身連接到可被視為一種媒體數(shù)據(jù)庫形式的web內(nèi)容795。雖然圖7中示出了兩個(gè)計(jì)算機(jī)系統(tǒng)720和725,但web服務(wù)器系統(tǒng)720和服務(wù)器計(jì)算機(jī)系統(tǒng)725也可以是一個(gè)計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)具有不同的軟件部件,這些軟件部件提供web服務(wù)器功能和由下面將進(jìn)一步描述的服務(wù)器計(jì)算機(jī)系統(tǒng)725所提供的服務(wù)器功能。
客戶端計(jì)算機(jī)系統(tǒng)730、740、750和760均可以使用適當(dāng)?shù)膚eb瀏覽軟件來瀏覽由web服務(wù)器720所提供的html頁面。Isp 710通過可以被視為客戶端計(jì)算機(jī)系統(tǒng)730一部分的調(diào)制解調(diào)器(modem)接口735來提供到客戶端計(jì)算機(jī)系統(tǒng)730的互聯(lián)網(wǎng)連接??蛻舳擞?jì)算機(jī)系統(tǒng)可以是個(gè)人計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)計(jì)算機(jī)、web電視(tv)系統(tǒng),或其它諸如此類的計(jì)算機(jī)系統(tǒng)。
相似地,盡管如圖7所示,客戶端系統(tǒng)740、750和760的連接并不相同,但isp 715提供了這三個(gè)計(jì)算機(jī)系統(tǒng)的互聯(lián)網(wǎng)連接??蛻舳擞?jì)算機(jī)系統(tǒng)740通過調(diào)制解調(diào)器接口745進(jìn)行連接,而客戶端計(jì)算機(jī)系統(tǒng)750和760是局域網(wǎng)(lan)的一部分。雖然圖7所示的接口735和745統(tǒng)稱為“調(diào)制解調(diào)器”,但這些接口均可以是模擬調(diào)制解調(diào)器、isdn調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器、衛(wèi)星傳輸接口(例如“直接PC(direct pc)”)或用于把計(jì)算機(jī)系統(tǒng)連接到其它計(jì)算機(jī)系統(tǒng)的其它接口。
客戶端計(jì)算機(jī)系統(tǒng)750和760通過網(wǎng)絡(luò)接口755和765(可以是以太網(wǎng)接口或其它網(wǎng)絡(luò)接口)連接到lan 770。lan 770也連接到網(wǎng)關(guān)計(jì)算機(jī)系統(tǒng)775,后者提供用于局域網(wǎng)的防火墻和其它互聯(lián)網(wǎng)相關(guān)服務(wù)。網(wǎng)關(guān)計(jì)算機(jī)系統(tǒng)775連接到isp 715來提供客戶端計(jì)算機(jī)系統(tǒng)750和760的互聯(lián)網(wǎng)連接。網(wǎng)關(guān)計(jì)算機(jī)系統(tǒng)775可以是常規(guī)的服務(wù)器計(jì)算機(jī)系統(tǒng)。同樣,web服務(wù)器系統(tǒng)720也可以是常規(guī)服務(wù)器計(jì)算機(jī)系統(tǒng)。
或者,服務(wù)器計(jì)算機(jī)系統(tǒng)780可以通過網(wǎng)絡(luò)接口785直接連接到lan 770,從而向客戶端750和760提供文件790和其它服務(wù),而無需通過網(wǎng)關(guān)系統(tǒng)775連接到互聯(lián)網(wǎng)。
圖8示出了可用作客戶端計(jì)算機(jī)系統(tǒng)或服務(wù)器計(jì)算機(jī)系統(tǒng)或可用作web服務(wù)器系統(tǒng)的常規(guī)計(jì)算機(jī)系統(tǒng)的一個(gè)例子。這種計(jì)算機(jī)系統(tǒng)可以用于執(zhí)行互聯(lián)網(wǎng)服務(wù)供應(yīng)商(例如isp 710)的許多功能。計(jì)算機(jī)系統(tǒng)800通過調(diào)制解調(diào)器或網(wǎng)絡(luò)接口820與外部系統(tǒng)相交互。需要注意的是,調(diào)制解調(diào)器或網(wǎng)絡(luò)接口820可以被視為計(jì)算機(jī)系統(tǒng)800的一部分。接口820可以是模擬調(diào)制解調(diào)器、isdn調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器、令牌環(huán)接口、衛(wèi)星傳輸接口(例如“直接PC(direct pc)”)或用于把計(jì)算機(jī)系統(tǒng)連接到其它計(jì)算機(jī)系統(tǒng)的其它接口。
計(jì)算機(jī)系統(tǒng)800包括處理器810,后者可以是諸如英特爾(intel)奔騰(pentium)微處理器或摩托羅拉(motorola)power pc微處理器之類的常規(guī)微處理器。存儲(chǔ)器840通過總線870連接到處理器810。存儲(chǔ)器840可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)并且也可以包括靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)。總線870將處理器810連接到存儲(chǔ)器840、非易失性存儲(chǔ)設(shè)備850、顯示控制器830以及輸入/輸出(i/o)控制器860。
顯示控制器830以常規(guī)方式控制顯示設(shè)備835(其可以是陰極射線管(crt)或液晶顯示器(lcd))上的顯示。輸入/輸出設(shè)備855可以包括鍵盤、磁盤驅(qū)動(dòng)器、打印機(jī)、掃描儀和包括鼠標(biāo)和其它指向設(shè)備的其它輸入輸出設(shè)備。顯示控制器830和i/o控制器860可以使用常規(guī)的公知技術(shù)來實(shí)現(xiàn)。數(shù)字圖像輸入設(shè)備865可以是數(shù)碼照相機(jī),其連接到i/o控制器860,從而使數(shù)碼照相機(jī)的圖像能夠輸入到計(jì)算機(jī)系統(tǒng)800中。
非易失性存儲(chǔ)設(shè)備850通常是磁硬盤、光盤或另一種形式的大容量數(shù)據(jù)存儲(chǔ)設(shè)備。在計(jì)算機(jī)系統(tǒng)800的軟件執(zhí)行過程中,這些數(shù)據(jù)中的一些數(shù)據(jù)往往通過直接的存儲(chǔ)器訪問處理寫入存儲(chǔ)器840中。本領(lǐng)域普通技術(shù)人員可以立即識(shí)別出術(shù)語“機(jī)器可讀介質(zhì)”或“計(jì)算機(jī)可讀介質(zhì)”包括任何類型的存儲(chǔ)設(shè)備,該存儲(chǔ)設(shè)備可由處理器810訪問,并包括對數(shù)據(jù)信號(hào)進(jìn)行編碼的載波。
計(jì)算機(jī)系統(tǒng)800是具有不同結(jié)構(gòu)的多種可能的計(jì)算機(jī)系統(tǒng)中的一個(gè)例子。例如,基于intel處理器的個(gè)人計(jì)算機(jī)往往有多條總線,其中一條總線可以是用于周邊設(shè)備的輸入/輸出(i/o)總線,一條總線可以直接連接處理器810和存儲(chǔ)器840(往往被稱作“存儲(chǔ)器總線”)。多個(gè)總線通過橋接器部件連接到一起,橋接器部件可以根據(jù)不同的總線協(xié)議執(zhí)行任何必要的轉(zhuǎn)換。
網(wǎng)絡(luò)計(jì)算機(jī)是可用于本發(fā)明的另一類計(jì)算機(jī)系統(tǒng)。網(wǎng)絡(luò)計(jì)算機(jī)通常并不包括硬盤或其它大容量存儲(chǔ)設(shè)備,而是將由處理器810執(zhí)行的可執(zhí)行程序從網(wǎng)絡(luò)連接加載到存儲(chǔ)器840中。本領(lǐng)域公知的web電視系統(tǒng)雖然可能缺少圖8所示的某些特征(例如特定的輸入或輸出設(shè)備),但其也被認(rèn)為是一種根據(jù)本發(fā)明的計(jì)算機(jī)系統(tǒng)。典型的計(jì)算機(jī)系統(tǒng)通常包括至少一個(gè)處理器、存儲(chǔ)器以及連接存儲(chǔ)器和處理器的總線。
另外,計(jì)算機(jī)系統(tǒng)800由包括文件管理系統(tǒng)的操作系統(tǒng)軟件來控制,該文件管理系統(tǒng)可以例如是作為操作系統(tǒng)軟件一部分的磁盤操作系統(tǒng)。具有其相關(guān)的文件管理系統(tǒng)軟件的操作系統(tǒng)軟件的一個(gè)例子是位于華盛頓州雷德蒙(Redmond)的微軟(Microsoft)公司所出品的被稱作Windows(視窗)的操作系統(tǒng)家族產(chǎn)品及其相關(guān)的文件管理系統(tǒng)。具有其相關(guān)的文件管理系統(tǒng)軟件的操作系統(tǒng)軟件的另一個(gè)例子是LINUX操作系統(tǒng)及其相關(guān)的文件管理系統(tǒng)。文件管理系統(tǒng)通常存儲(chǔ)于非易失性存儲(chǔ)器850中,并且使處理器810執(zhí)行操作系統(tǒng)所需的各種動(dòng)作,以輸入輸出數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,包括將文件存儲(chǔ)在非易失性存儲(chǔ)器850中。
詳細(xì)描述的某些部分將以計(jì)算機(jī)存儲(chǔ)器內(nèi)數(shù)據(jù)比特操作的算法和符號(hào)表示的方式給出。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域普通技術(shù)人員很有效地將他們工作的實(shí)質(zhì)傳達(dá)給本領(lǐng)域中其他技術(shù)人員的常用手段。這里所構(gòu)思的算法通常是能夠得出期望結(jié)果的由操作構(gòu)成的自相一致的序列。這些操作需要對物理量進(jìn)行物理控制。通常情況下,雖然非必要,但這些量是以電或磁信號(hào)的形式出現(xiàn)的,可以存儲(chǔ)、傳輸、組合、比較或者控制這些信號(hào)。主要由于常用的緣故,有時(shí)方便地將這些信號(hào)稱作比特、值、元素、符號(hào)、字符、條目、數(shù)字等等。
然而,應(yīng)注意的是,所有這些術(shù)語和相似的術(shù)語是與適合的物理量相關(guān)聯(lián)的并且僅是這些量的方便的標(biāo)記。除非以下論述中特別指出或非常明顯,否則應(yīng)該理解的是,本文中論述所使用的諸如“處理”、“計(jì)算”、“運(yùn)算”、“確定”或“顯示”之類的術(shù)語是指計(jì)算機(jī)系統(tǒng)或相似的電子計(jì)算設(shè)備的動(dòng)作和處理,計(jì)算機(jī)系統(tǒng)或相似的電子計(jì)算設(shè)備控制并將由計(jì)算機(jī)系統(tǒng)寄存器和存儲(chǔ)器內(nèi)的物理(電子)量表示的數(shù)據(jù)轉(zhuǎn)換為相似地由計(jì)算機(jī)系統(tǒng)存儲(chǔ)器、寄存器、或其它這種信息存儲(chǔ)設(shè)備、傳輸或顯示設(shè)備內(nèi)的物理(電子)量表示的其它數(shù)據(jù)。
在某些實(shí)施例中,本發(fā)明也涉及用于執(zhí)行本文操作的裝置。該裝置可以根據(jù)所需的目的而特別構(gòu)造,或者可以包括通用計(jì)算機(jī),通用計(jì)算機(jī)可由存儲(chǔ)于計(jì)算機(jī)中的計(jì)算機(jī)程序有選擇性地激活或重新配置。這種計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如、但不限于包括軟盤、光盤、cd-rom和磁光盤的任何類型的磁盤,只讀存儲(chǔ)器(rom),隨機(jī)讀取存儲(chǔ)器(ram),eprom,eeprom,磁或光卡,或適于存儲(chǔ)電子指令的其它任何類型的介質(zhì),這些存儲(chǔ)介質(zhì)均連接到計(jì)算機(jī)系統(tǒng)總線上。
本文所提供的算法和畫面并不內(nèi)在地關(guān)聯(lián)于任何特定的計(jì)算機(jī)或其它裝置。對根據(jù)本發(fā)明教義的程序可使用各種通用系統(tǒng),或也可以構(gòu)造專用的裝置,來更方便地執(zhí)行所需的方法步驟。下文描述中,將顯示各種這些系統(tǒng)的所需結(jié)構(gòu)。另外,本發(fā)明并不是結(jié)合任何特定的編程語言來進(jìn)行描述的,因此可以使用多樣的編程語言來實(shí)施各種實(shí)施例。
可以使用諸如圖7和8所示的網(wǎng)絡(luò)和機(jī)器之類的各種網(wǎng)絡(luò)和機(jī)器。另一種網(wǎng)絡(luò)可以是蜂窩網(wǎng)絡(luò)。圖9示出了蜂窩網(wǎng)絡(luò)的實(shí)施例。網(wǎng)絡(luò)900包括中央網(wǎng)絡(luò)、基站以及蜂窩設(shè)備。中央網(wǎng)絡(luò)930把呼叫從一個(gè)基站910尋徑到另一個(gè)基站910或?qū)降綗o線網(wǎng)絡(luò)940?;?10把呼叫尋徑到附近蜂窩設(shè)備920或?qū)碜愿浇涓C設(shè)備920的呼叫進(jìn)行尋徑。因此,蜂窩設(shè)備可以與其它蜂窩設(shè)備進(jìn)行通信,或與連接到其它網(wǎng)絡(luò)上的設(shè)備進(jìn)行通信。
如圖所示,基站910a、910b、910c、910d和910e均連接到中央網(wǎng)絡(luò)930,該中央網(wǎng)絡(luò)930連接到無線網(wǎng)絡(luò)940。蜂窩設(shè)備920a、920b、920c和920d均連接到基站910e。相似地,蜂窩設(shè)備920e和920f連接到基站910d。同樣地,蜂窩設(shè)備920g和920h連接到基站910c。此外,蜂窩設(shè)備920i和920j連接到基站910b。需要注意的是,這種網(wǎng)絡(luò)中的信道可以特定用于單獨(dú)的設(shè)備,在某些情況下,某些設(shè)備可以具有多個(gè)通信信道。因此,中央網(wǎng)絡(luò)930處用于設(shè)備920a的信道可以不同于用于設(shè)備920b的信道,盡管這兩者都連接到基站910e并因此連接到中央網(wǎng)絡(luò)930。此外,諸如基站910d之類的基站可以有其自己的一組信道,例如,用于設(shè)備920e的第一信道和用于設(shè)備920f的第二信道。
由于網(wǎng)絡(luò)的各種通信信道是在恒定或偶發(fā)基礎(chǔ)上進(jìn)行使用的,因此維持這些信道的相關(guān)信息就變得很必要。圖10示出了維護(hù)信道信息陣列的過程的實(shí)施例。圖10的過程1000是圍繞著確定信道是否已經(jīng)超時(shí)而進(jìn)行說明的,但其也可以用于其它形式的維護(hù),例如各種狀態(tài)參數(shù)的更新。該過程包括檢查信道;確定其是否已經(jīng)超時(shí);將超時(shí)的信道移動(dòng)到自由列表中;移動(dòng)到下一信道。
在模塊1010中,過程起始(或重新起始)于第一信道。在模塊1020中,過程檢查信道計(jì)時(shí)器或信道數(shù)據(jù)結(jié)構(gòu)陣列中的超時(shí)信息。這可以使用多種方式來實(shí)現(xiàn),包括將時(shí)間戳和當(dāng)前時(shí)間進(jìn)行比較;將計(jì)時(shí)器字段和預(yù)定極限進(jìn)行比較;或者確定最近是否使用了信道。在模塊1030中,確定模塊1020的檢查是否指明了信道已經(jīng)超時(shí)。這可能取決于信道類型而變化,可以標(biāo)記某些信道使其絕不會(huì)超時(shí)。如果信道已經(jīng)超時(shí),則在模塊1040中,通過例如將信道加入由末端指針?biāo)赶虻捻?xiàng)的指針,將信道加入自由列表。如果信道沒有超時(shí),或者在將超時(shí)信道加入自由列表后,在模塊1050處,過程移向下一個(gè)信道。過程隨后在模塊1060中檢查是否存在下一個(gè)信道(或者例如如果剛剛通過了陣列的末端)。如果下一個(gè)信道存在,則在模塊1020中,檢查下一個(gè)信道。如果信道不存在,則在模塊1010中,過程重新從第一信道起始。
雖然陣列可能允許許多信道(在隨機(jī)存取存儲(chǔ)器介質(zhì)中)具有恒定訪問時(shí)間,但其很難擴(kuò)展。圖11示出了信道信息擴(kuò)展陣列的一個(gè)實(shí)施例。擴(kuò)展陣列1100包括陣列項(xiàng)1110和第二陣列項(xiàng)1140。由數(shù)據(jù)項(xiàng)1110中的項(xiàng)指向數(shù)據(jù)結(jié)構(gòu)1120。陣列項(xiàng)1110的最后一項(xiàng)的指針1130指向第二陣列項(xiàng)1140。第二陣列項(xiàng)1140的項(xiàng)指向數(shù)據(jù)結(jié)構(gòu)1150,因此實(shí)現(xiàn)了第二(或更多)組信道。
或者,可以通過在存儲(chǔ)器中簡單地直接擴(kuò)展陣列,來更好地保留陣列的簡單隨機(jī)存取特性。圖12示出了信道信息擴(kuò)展陣列的替代實(shí)施例。陣列1200包括陣列項(xiàng)1210和數(shù)據(jù)結(jié)構(gòu)1220。部分1260代表陣列1200原始部分的陣列項(xiàng)1210和數(shù)據(jù)結(jié)構(gòu)1220。部分1270代表陣列1200的擴(kuò)展部分。因此,部分1260可以對應(yīng)于諸如陣列500之類的陣列,而部分1270代表容納附加信道的擴(kuò)展部分。
雖然可以擴(kuò)展陣列來容納信道請求,但在信道從使用中被釋放后重新使用陣列項(xiàng)可能會(huì)更高效。圖13示出了維護(hù)自由列表的過程的實(shí)施例。過程1300包括根據(jù)自由列表提供使用的信道并將未使用的信道加入自由列表中的過程。在模塊1310中,接收到了信道請求。在模塊1320中,提供了來自自由列表(例如來自起始指針)的第一信道標(biāo)識(shí)符。在模塊1330中,更新起始指針,以指向自由列表的下一個(gè)信道,并有效地將第一信道從自由列表中移除。從模塊1330,過程可以移動(dòng)到模塊1310或模塊1340。
在模塊1340中,接收到了信道超時(shí)指示或通知。在模塊1350中,例如,通過將由末端指針指向的數(shù)據(jù)結(jié)構(gòu)中的索引修改為超時(shí)信道的索引,將超時(shí)信道加入列表的末端。在模塊1360中,隨后更新末端指針,來指向自由列表的新末端或最后一個(gè)信道。從模塊1360起,過程可以移動(dòng)到模塊1340或1310。需要注意的是,可以將該過程視為兩個(gè)相互關(guān)聯(lián)但獨(dú)立執(zhí)行的過程,一個(gè)過程包括模塊1310、1320和1330,另一個(gè)過程包括模塊1340、1350和1360。
當(dāng)使用機(jī)器來執(zhí)行過程時(shí),機(jī)器可以從介質(zhì)中獲得指示(其可以執(zhí)行指令)。圖14示出了機(jī)器可讀介質(zhì)的實(shí)施例;介質(zhì)1400可以是各種類型的介質(zhì),并且可以是單個(gè)介質(zhì)或單個(gè)介質(zhì)的多個(gè)分離部分或多個(gè)介質(zhì)。介質(zhì)1400包括信道維護(hù)、自由列表維護(hù)、新信道分配、標(biāo)識(shí)符接口和操作接口,以及控制模塊。
新信道分配1410可以包括提供信道數(shù)據(jù)結(jié)構(gòu)的擴(kuò)展陣列的模塊和根據(jù)信道自由列表提供新信道的模塊這兩者中的一個(gè)或兩個(gè)。自由列表維護(hù)1450可以包括將超時(shí)/過期信道加入自由列表的模塊,并且還可以包括根據(jù)自由列表提供信道的模塊。標(biāo)識(shí)符接口1420能夠接收信道的標(biāo)識(shí)符。信道維護(hù)模塊1430例如通過確定信道是否超時(shí)或已經(jīng)超出容許利用級(jí)別,來維護(hù)信道。操作接口1440提供了與網(wǎng)絡(luò)部分的接口,該網(wǎng)絡(luò)操作由陣列跟蹤的信道??刂颇K1460控制其它模塊和接口的操作(1410、1420、1430、1440和1450)。
如上所述,可以維持可用或可分配信道的自由列表。圖15示出了自由列表的實(shí)施例。列表1500是數(shù)據(jù)結(jié)構(gòu)1530的鏈表,其中每個(gè)數(shù)據(jù)結(jié)構(gòu)包括信道標(biāo)識(shí)符和指向下一個(gè)數(shù)據(jù)結(jié)構(gòu)的指針。起始指針1510指向列表1500的第一結(jié)構(gòu)1530(本實(shí)施例中所示的1530a)。因此,起始指針1510可以指明最遠(yuǎn)的臨近使用的信道。末端指針1520指向列表1500的最后結(jié)構(gòu)1530(本實(shí)施例中所示的1530n)。如圖所示,列表1500中鏈接了結(jié)構(gòu)1510a、1510b、1510c和1510d。列表隨后繼續(xù),最終到達(dá)結(jié)構(gòu)1530m和1530n。需要注意的是,對于列表的最后結(jié)構(gòu)即結(jié)構(gòu)1530n,在一個(gè)實(shí)施例中分配給其指針的是Null(空)值。
本文所論述的網(wǎng)絡(luò)中可以使用各種設(shè)備。例如,上面結(jié)合網(wǎng)絡(luò)提及了多種蜂窩電話和計(jì)算機(jī)。但是,也可以將其它的智能設(shè)備或應(yīng)用用于網(wǎng)絡(luò)。此外,設(shè)備可以是移動(dòng)的(例如,機(jī)動(dòng)車或建筑機(jī)械)或者固定的(例如燈柱或空調(diào)設(shè)備)。另外,網(wǎng)絡(luò)可以具有多種拓?fù)浜徒Y(jié)構(gòu),從而使信道可以表示例如通過網(wǎng)絡(luò)或直接連接的一條路徑。
當(dāng)操作某些實(shí)施例的信道時(shí),密碼術(shù)可能會(huì)造成性能瓶頸。因此,使用所有的可用密碼資源來管理密碼是有益的。圖16示出了管理信道消息的密碼的過程的實(shí)施例。過程1600包括接收消息;確定應(yīng)用什么可用的密碼資源;應(yīng)用密碼資源;將消息沿著信道傳遞。在模塊1610中,接收到了消息。在此時(shí),信道往往是已知的,并且正在操作信道。但是,在某些實(shí)施例中,信道信息也可以是加密的。
在模塊1620中,確定應(yīng)用什么密碼資源。例如,基于硬件的密碼引擎可以管理加密和解密,軟件模塊可以用于例如加密、解密或握手/密鑰交換。通常情況下,可以用硬件或軟件來實(shí)現(xiàn)密碼資源。可以基于多種因素,例如消息長度和類型(例如內(nèi)容類型)、可用資源的隊(duì)列長度、可用資源的狀態(tài)(例如可用或禁用)、可用資源的容量和其它因素,來選擇使用哪種資源(例如硬件/軟件)來用于密碼操作。
在模塊1630中,基于模塊1620的判斷結(jié)果,消息在選定資源的隊(duì)列中排隊(duì)等候。需要注意的是,隊(duì)列可以是一個(gè)消息(將要操作的消息)的隊(duì)列或多個(gè)消息的隊(duì)列,例如該由多個(gè)消息組成的隊(duì)列可以帶有或不帶有附加的優(yōu)先級(jí)特征。在模塊1640中,所選擇的密碼資源對消息(到達(dá)隊(duì)列的適合部分的消息)進(jìn)行操作。操作可以包括加密、解密、密鑰交換或查找、或其它密碼操作。此外,可以由消息的類型以及與其相關(guān)的編碼或封裝信息來部分地確定操作。在模塊1650中,將消息沿著信道傳遞,從而與整體系統(tǒng)性能保持一致。
可以以多樣的方式實(shí)現(xiàn)圖16的過程1600。圖17示出了可以實(shí)現(xiàn)圖16的過程的一組部件的實(shí)施例。系統(tǒng)1700包括硬件和軟件密碼資源、消息評(píng)估模塊以及密碼判優(yōu)器,這些都可以與消息交互。
硬件密碼加速器1710是密碼資源的硬件實(shí)現(xiàn),其能夠?qū)崿F(xiàn)加密、解密和其它密碼功能。硬件密碼加速器1710包括隊(duì)列1720(其可以作為傳統(tǒng)隊(duì)列或待處理的單個(gè)消息/分組的項(xiàng)來實(shí)現(xiàn))。相似地,軟件密碼模塊1730可以包括加密、解密和其它密碼功能。軟件密碼模塊1730可以作為例如一組模塊或軟件庫和功能來實(shí)現(xiàn)。隊(duì)列1740可以是模塊1730的單個(gè)隊(duì)列或一組隊(duì)列(例如,對應(yīng)于多個(gè)不同功能中的每一種功能)。此外,隊(duì)列1740可以只是一個(gè)指向處理數(shù)據(jù)的指針。
消息評(píng)估器1750是評(píng)估消息1760的屬性(舉例)的模塊,來確定對消息1760(例如指定了何種格式)和消息1760的其它屬性進(jìn)行何種類型的密碼處理。通常情況下,消息1760包括長度參數(shù)1770(例如有效載荷長度)。密碼判優(yōu)器1790是從硬件密碼加速器1710、軟件密碼模塊1730、消息評(píng)估器1750和消息1760接收狀態(tài)信息的模塊。判優(yōu)器1790隨后處理該信息,從而確定應(yīng)使用什么密碼資源來對消息1760進(jìn)行密碼操作。該確定是基于長度1770、隊(duì)列1720和1740的狀態(tài)、以及來自加速器1710、模塊1730和評(píng)估器1750的其它狀態(tài)信息來進(jìn)行的。需要注意的是,可由其它資源或圖17所示的資源來執(zhí)行諸如密鑰交換或密鑰查找等操作。
硬件加速實(shí)現(xiàn)方式在一些實(shí)施例中,硬件加速可用于處理某些分組。然而,基于中斷驅(qū)動(dòng)來管理硬件加速會(huì)使驅(qū)動(dòng)器將等待必要硬件(例如密碼加速器)的大量分組丟棄。人們期望驅(qū)動(dòng)器能夠等待硬件資源,并在等待資源期間拒絕到來的分組。或者,驅(qū)動(dòng)器可以使用有限的緩沖器來處置到來的分組,但這可能在等待硬件資源期間造成溢出,從而導(dǎo)致拒絕到來的分組。因此,不需要驅(qū)動(dòng)器等待硬件中斷或互斥的硬件資源管理是很有用處的。
分配流程或分配模塊可用于管理硬件模塊的分組或作業(yè),而無需驅(qū)動(dòng)器來特別服務(wù)硬件中斷。圖18示出了將作業(yè)分配給硬件模塊的過程的實(shí)施例。過程1800包括監(jiān)視入站作業(yè)隊(duì)列;檢查中斷;將完成的作業(yè)傳輸?shù)匠稣咀鳂I(yè)隊(duì)列;選擇入站作業(yè)以進(jìn)行處理。
模塊1810包括監(jiān)視入站作業(yè)隊(duì)列,例如確定工作是否在等待、當(dāng)存在多個(gè)隊(duì)列時(shí)作業(yè)在哪個(gè)隊(duì)列中等待。模塊1810可以包括對入站(以及可能的出站)隊(duì)列進(jìn)行維護(hù)。在模塊1820中,確定硬件模塊(或部件)是否發(fā)出了一個(gè)中斷。如果沒有的話,則過程繼續(xù)在模塊1810中等待。如果有的話,則在1830中,將來自硬件模塊的完成的作業(yè)置入適合的出站隊(duì)列中。
在模塊1840中,確定作業(yè)實(shí)際上是否在入站隊(duì)列中等候。如果不是的話,流程在模塊1850中過程監(jiān)視入站隊(duì)列,實(shí)質(zhì)上等候入站作業(yè)。如果是的話,則在模塊1860中,選擇硬件模塊處理的下一個(gè)作業(yè)。如果只有一個(gè)作業(yè),則假定選擇該作業(yè)。若有多個(gè)隊(duì)列包括作業(yè),則可以基于優(yōu)先級(jí)考慮或基于所做出的選擇的順序(例如,隊(duì)列列表中的下一個(gè)),來進(jìn)行選擇。將作業(yè)提供給硬件部件以進(jìn)行處理,過程進(jìn)入模塊1810中。
因此,分配器可以向諸如密碼加速器之類的硬件部件提供一批作業(yè),其中,到來的作業(yè)處于到來隊(duì)列中,離去的作業(yè)處于離去隊(duì)列中。分配器可以管理由硬件發(fā)出的任何中斷。此外,分配器不需要知道與作業(yè)的類型或硬件部件的類型相關(guān)的信息。
驅(qū)動(dòng)器可以以各種方式與分配器交互,該分配器操作圖18和圖19示出的管理分組的過程的實(shí)施例的過程。例如,過程1900代表了驅(qū)動(dòng)器的過程(簡化的形式)。過程1900包括接收分組;確定是否需要硬件加速;如需要?jiǎng)t將分組置于分配器隊(duì)列中;確定是否完成了硬件加速;處理完成的分組。
在模塊1910中接收分組。在模塊1920中,確定分組是否需要硬件加速(例如密碼加速或圖形加速)。如果是的話,則在模塊1930中,驅(qū)動(dòng)器將分組置于分配器的隊(duì)列中(分配器的作業(yè)的入站隊(duì)列)。隨后,分組可預(yù)期得到硬件加速處理,而不考慮到來的分組。
如果無需加速,或在將分組置入隊(duì)列后,在模塊1940中,確定對分組的硬件加速是否完成。需要注意的是,在模塊1940中所確定的分組無需和在模塊1910中接收的分組相同,例如,前者可以是在模塊1910中先前接收的分組。如果對分組的硬件加速已經(jīng)完成了,則在模塊1950中,通過例如將完成的分組傳輸給周邊系統(tǒng)的另一部分,來對完成的分組進(jìn)行處理。最后,過程返回到模塊1910,以等待另一個(gè)分組的接收。
需要注意的是,對來自硬件部件的完成的分組的檢測可以作為單獨(dú)過程的一部分而出現(xiàn)。因此,模塊1940可以由驅(qū)動(dòng)器分開實(shí)現(xiàn)。此外,在檢查由硬件加速器完成的分組時(shí),多個(gè)分組可以等待驅(qū)動(dòng)器,從而能夠?qū)Χ鄠€(gè)分組進(jìn)行處理。另外,無需硬件加速的分組可以立即被處理,而不用例如檢查完成的硬件加速。
各種系統(tǒng)可以采用或執(zhí)行所述的方法來管理硬件加速。圖20示出了管理分組的系統(tǒng)堆棧的實(shí)施例。堆棧2000是系統(tǒng)堆棧,后者包括軟件和硬件部件(或軟件和硬件接口的軟件實(shí)現(xiàn))。堆棧200包括tls/ssl部件2005和ssh/ire部件2010,其均可以是例如驅(qū)動(dòng)器。特別的是,部件2005可以是例如插口(socket)驅(qū)動(dòng)器。部件2005和2010覆蓋于tcp部件2020上。Tcp部件2020可以是例如傳輸控制協(xié)議部件。
Tcp部件2020覆蓋于ip部件2030上,后者可以是例如互聯(lián)網(wǎng)協(xié)議模塊。Ip部件2030覆蓋于ipsec部件2040(例如ip安全部件)上。在某些實(shí)施例中Ipsec部件2040覆蓋于ip分段(fragmentation)部件2050上。Ip分段部件2050覆蓋于以太網(wǎng)驅(qū)動(dòng)器部件2060上。
以太網(wǎng)驅(qū)動(dòng)器部件2060覆蓋于分配器模塊2070上,后者可以是例如硬件模塊的分配器。在堆棧2000的底部是硬件2080,后者包括密碼加速器2085和/或其它硬件加速部件或模塊等等。
在某些實(shí)施例中可以將堆棧2000理解為占據(jù)了系統(tǒng)中三個(gè)不同的區(qū)域。部件2005、2010和2020是系統(tǒng)的應(yīng)用空間或用戶空間的一部分。部件2030、2040、2050和2060是系統(tǒng)核心空間的一部分。部件2070、2080和2085是系統(tǒng)固件/硬件部分的一部分。此外,需要注意的是,上述的覆蓋還可以指各種部件和數(shù)據(jù)路徑指示之間的接口,而不是指例如物理上的覆蓋或堆疊。
人們期望諸如驅(qū)動(dòng)器2005之類的驅(qū)動(dòng)器和諸如加速器2085之類的硬件加速器之間的通信,從而無需驅(qū)動(dòng)器2005等待響應(yīng)。圖21示出了包括硬件加速的用于管理分組的系統(tǒng)的實(shí)施例。在這些部件之間,當(dāng)監(jiān)控到中斷時(shí),分配器2070對一個(gè)或多個(gè)隊(duì)列進(jìn)行處理。因此,驅(qū)動(dòng)器2005無需等待硬件中斷,當(dāng)有作業(yè)時(shí)加速器2085即可接收到作業(yè)。
分配器2070包括中斷處理機(jī)2075,后者監(jiān)控加速器2085的中斷。加速器2085在作業(yè)完成或檢測到無作業(yè)要管理時(shí),發(fā)出中斷。分配器2070隨后從諸如隊(duì)列2110之類的入站作業(yè)隊(duì)列中檢查入站作業(yè)。分配器2070例如通過還檢查入站作業(yè)隊(duì)列2140,從而在多個(gè)隊(duì)列中檢查入站作業(yè)。此外,分配器2070可以以各種方式區(qū)分來自多個(gè)隊(duì)列中的作業(yè)的優(yōu)先級(jí)。
此外,分配器2070可以將完成的作業(yè)(或其表征)置于出站作業(yè)隊(duì)列中,例如出站隊(duì)列2120或2150。將多個(gè)入站隊(duì)列和出站隊(duì)列予以配對,例如一個(gè)驅(qū)動(dòng)器對應(yīng)著一個(gè)入站隊(duì)列和一個(gè)出站隊(duì)列。從而,將來自入站隊(duì)列中的作業(yè),在經(jīng)過處理后,放入對應(yīng)的出站隊(duì)列中。例如,提供隊(duì)列2110和2120來用于和驅(qū)動(dòng)器2005進(jìn)行通信。
驅(qū)動(dòng)器2005可以檢查來自各種信道的到來分組,如信道結(jié)構(gòu)2130所表示的那樣。信道結(jié)構(gòu)2130可以是一組信道,例如圖11和12所示。因此,當(dāng)來自多個(gè)信道的數(shù)據(jù)到來時(shí),驅(qū)動(dòng)器2005可以處理該數(shù)據(jù),并將數(shù)據(jù)指示給硬件加速器2085,以按需進(jìn)行處理。信道結(jié)構(gòu)2130可以具有,例如,自由和活動(dòng)的列表,這些列表由驅(qū)動(dòng)器2005維護(hù),從而指明所示的信道在當(dāng)時(shí)是否采用由驅(qū)動(dòng)器2005所監(jiān)視的通信方法。
在一個(gè)實(shí)施例中,驅(qū)動(dòng)器2005和分配器2070之間的下列規(guī)則適用于該系統(tǒng)只有驅(qū)動(dòng)器2005可以將作業(yè)加入隊(duì)列2110中。
只有分配器2070可以從隊(duì)列2110(硬件調(diào)度表)中讀取作業(yè)。
只有分配器2070可以響應(yīng)于中斷處理機(jī)2075而使用完成的作業(yè)或作業(yè)標(biāo)識(shí)符來更新隊(duì)列2120。
只有驅(qū)動(dòng)器2005可以讀取隊(duì)列2120(硬件完成)。
只有驅(qū)動(dòng)器2005可以訪問信道列表/結(jié)構(gòu)2130。因此,驅(qū)動(dòng)器2005負(fù)責(zé)擴(kuò)充隊(duì)列2110(并避免溢出)。分配器2070負(fù)責(zé)擴(kuò)充隊(duì)列2120。驅(qū)動(dòng)器2005也可以負(fù)責(zé)防止隊(duì)列2120的溢出。將分配器2070與作業(yè)源自的信道隔開,并將驅(qū)動(dòng)器2005與硬件加速器的硬件中斷隔開。此外,需要注意的是,隊(duì)列2120(和例如隊(duì)列2150)可以在信息中包括,例如,作業(yè)數(shù)據(jù)或作業(yè)的表示(例如cookie),以及可以找到完成的作業(yè)數(shù)據(jù)的有關(guān)信息。
傳遞給分配器的作業(yè)可以具有多樣的形式。圖22示出了作業(yè)表示的實(shí)施例。將作業(yè)2200表示為包括驅(qū)動(dòng)器上下文2220和周邊系統(tǒng)上下文2210。因此,系統(tǒng)上下文2210可以是由周邊系統(tǒng)提供的包裝(wrapper),從而例如使分配器能夠進(jìn)行處理。此外,載荷可以是驅(qū)動(dòng)器上下文2220的一部分,或者作業(yè)2200的一個(gè)分離(未示出)的部分。分配器可以以已知方式從作業(yè)中提取有待進(jìn)行處理的數(shù)據(jù),并基于兩個(gè)上下文使作業(yè)回到合適的目的地。此外,作業(yè)的附加處理參數(shù)可以包括于這兩個(gè)上下文中的一個(gè)或兩個(gè)內(nèi)。驅(qū)動(dòng)器上下文2220也可以包括相關(guān)于驅(qū)動(dòng)器的信道信息。
可以使用信道(作業(yè)源自其中)列表的各種表示。圖23示出了信道列表的實(shí)施例。結(jié)構(gòu)2300是信道的列表和相關(guān)于該列表的一組指針。信道列表2350包括一組例如可以在圖11或12中發(fā)現(xiàn)的信道。自由指針2310指向自由信道列表中的第一個(gè)信道,例如,可以分配這些自由信道用于通信目的?;顒?dòng)指針2320指向活動(dòng)信道列表中的第一個(gè)信道,這些信道在此時(shí)是活動(dòng)的或正在通信。如圖所示,這兩個(gè)列表都是信道的鏈表。作為對比,信道列表2350可以是信道陣列。
硬件加速列表2330是指向第一信道的指針,該第一信道正在經(jīng)歷或等待硬件加速。這些就是由于各種原因需要硬件加速的活動(dòng)信道。例如,這些信道均在分配器的入站作業(yè)隊(duì)列中有相關(guān)的一個(gè)作業(yè)(或多個(gè)作業(yè))。如圖所示,盡管簡單的鏈表就已經(jīng)足夠了,但此列表是循環(huán)隊(duì)列。而且,在所示的實(shí)施例中,硬件加速器指針2340所指向的信道相關(guān)于當(dāng)前正由硬件加速器處理的作業(yè)(需要注意的是,此信道并不一定是由指針2330所指向的信道)。基于信道狀態(tài),可以在各種列表之間快速地移動(dòng)信道。
結(jié)合通信信道工作的驅(qū)動(dòng)器也可以具有各種結(jié)構(gòu)。圖24示出了驅(qū)動(dòng)器的表示的實(shí)施例。驅(qū)動(dòng)器2400包括典型的驅(qū)動(dòng)器結(jié)構(gòu)2420(例如,提供的驅(qū)動(dòng)器用于系統(tǒng)或設(shè)備)和包裹驅(qū)動(dòng)器的系統(tǒng)結(jié)構(gòu)2410。系統(tǒng)結(jié)構(gòu)2410可以提供驅(qū)動(dòng)器2420和系統(tǒng)其余部分之間的接口。但是,需要理解的是,盡管驅(qū)動(dòng)器2400包括系統(tǒng)特定的部件,但其可以是周邊系統(tǒng)中的驅(qū)動(dòng)器。驅(qū)動(dòng)器2400隨后可以跟分配器和周邊系統(tǒng)的其它部分交互。
例如,多個(gè)驅(qū)動(dòng)器可以與分配器交互。圖25示出了包括分配器和一組驅(qū)動(dòng)器的系統(tǒng)的實(shí)施例。分配系統(tǒng)2500包括帶有中斷處理機(jī)2515的分配器2510。其還包括三個(gè)隊(duì)列(2525,2535和2545),這三個(gè)隊(duì)列均對應(yīng)于驅(qū)動(dòng)器(相應(yīng)的2520、2530和2540)。在所示的系統(tǒng)中,驅(qū)動(dòng)器2520是ssl驅(qū)動(dòng)器,驅(qū)動(dòng)器2230是ssh驅(qū)動(dòng)器,驅(qū)動(dòng)器2240是ipsec驅(qū)動(dòng)器。需要注意的是,為了便于說明,圖中只示出了出站隊(duì)列。在各個(gè)實(shí)例中,可以預(yù)料到,還存在相對應(yīng)的入站隊(duì)列。
雖然可以用多種方式實(shí)現(xiàn)隊(duì)列,但迄今為止所示的這些隊(duì)列是簡單鏈表。圖26示出了作業(yè)列表的替代實(shí)施例。緩沖器2600是組織成陣列2610的一組作業(yè),陣列2610可以作用為循環(huán)fifo緩沖器或隊(duì)列。緩沖器2600還包括分配器頭指針2620、驅(qū)動(dòng)器尾指針2630和分配器尾指針2640。
在一個(gè)實(shí)施例中,驅(qū)動(dòng)器尾指針2630指向當(dāng)前正由硬件加速器處理的作業(yè)。相似地,分配器頭指針2620指向可以將新作業(yè)加入隊(duì)列的位置。此外,分配器尾指針2640指向?qū)⒂捎布铀倨魈幚淼南乱粋€(gè)作業(yè)(以及其后的作業(yè))。因此,指針2620、2630和2640可以沿著陣列2610前進(jìn),從而實(shí)現(xiàn)對入站作業(yè)(以及可能還有出站作業(yè))的訪問。
如上所說明和描述的那樣,使用了單個(gè)硬件加速模塊。然而,多硬件加速模塊可以包括于系統(tǒng)內(nèi)并在處理分組時(shí)使用。圖27示出了包括硬件加速的管理分組所用的系統(tǒng)的替代實(shí)施例。系統(tǒng)2700包括分配器、一組硬件加速模塊和入站以及出站隊(duì)列。在各種實(shí)施例中,加速模塊可以包括例如圖形加速器、密碼加速器、霍夫曼(Huffman)編碼譯碼加速器和其它加速模塊。
分配器2710包括中斷處理機(jī)2715,后者監(jiān)視加速器2720、2730和2740的中斷。當(dāng)作業(yè)完成或檢測到無作業(yè)可管理時(shí),加速器2720、2730和2740會(huì)發(fā)出中斷。分配器2710隨后在如隊(duì)列2750之類的一個(gè)入站作業(yè)隊(duì)列中檢查入站作業(yè)。分配器2710可以在多個(gè)隊(duì)列中檢查入站作業(yè),例如還檢查入站作業(yè)隊(duì)列2770。此外,分配器2710可以以多種方式為多個(gè)隊(duì)列中的作業(yè)劃分優(yōu)先級(jí)。
在某些實(shí)施例中,硬件加速器2720、2730和2740均為同樣類型的加速器,從而能夠?yàn)槿魏巫鳂I(yè)置換任何加速器——這意味著總可以把下一個(gè)加速器安置給下一個(gè)作業(yè)。在其它實(shí)施例中,加速器2720、2730和2740屬于多種不同類型。在某些這種實(shí)施例中,當(dāng)硬件加速器可用時(shí),分配器2710可以搜索入站作業(yè)隊(duì)列來尋找適合的作業(yè)。在其它這種實(shí)施例中,由于在分配器2710隊(duì)列的末端沒有作業(yè),則在這種情況改變之前,都會(huì)致使硬件模塊處于空閑狀態(tài)。
分配器2710還可以將完成的作業(yè)(或其表示)置于出站作業(yè)隊(duì)列(例如出站隊(duì)列2760或2780)中。將多個(gè)入站和出站隊(duì)列予以配對,例如一個(gè)驅(qū)動(dòng)器對應(yīng)有一個(gè)入站隊(duì)列和一個(gè)出站隊(duì)列。從而,將來自入站隊(duì)列中的作業(yè),在經(jīng)過處理后,置入對應(yīng)的出站隊(duì)列中。例如,提供隊(duì)列2750和2760來用于和單獨(dú)的驅(qū)動(dòng)器進(jìn)行通信。
從以上描述可以看出,本文所述的本發(fā)明具體實(shí)施例僅用于說明的目的,在不背離本發(fā)明的精神和保護(hù)范圍的前提下可以對其進(jìn)行各式各樣的修改。在某些實(shí)例中,引用了在不同或某些實(shí)施例中可能出現(xiàn)的特征,但這些特征并不限制本發(fā)明的精神和保護(hù)范圍。在說明和描述中,所給出的結(jié)構(gòu)也可以在本發(fā)明的精神和保護(hù)范圍內(nèi)以其他方式形成或重組。此外,通常來說,一個(gè)實(shí)施例的特征可用于本文中所提及的其它實(shí)施例,只要這些特征并不以某種方式相互排斥即可。
特別的是,各種框圖的分離模塊表示方法或裝置的功能模塊,這些各種框圖的分離模塊并不是指本發(fā)明精神和保護(hù)范圍的操作順序、或者物理或邏輯上的分離。相似地,所描述和說明的方法是線性過程,但在本發(fā)明的精神和保護(hù)范圍內(nèi),也可以用并行方式重排列或?qū)崿F(xiàn)這些方法的操作。因此,本發(fā)明僅由權(quán)利要求書界定。
權(quán)利要求
1.一種方法,包括監(jiān)視第一入站隊(duì)列中的硬件作業(yè);檢測來自第一硬件部件的中斷;以及從所述第一入站隊(duì)列向所述第一硬件部件傳輸作業(yè)。
2.如權(quán)利要求1所述的方法,還包括從所述第一硬件部件向第一出站隊(duì)列傳輸完成的作業(yè)。
3.如權(quán)利要求1所述的方法,還包括在第一出站隊(duì)列中提供作業(yè)完成的指示。
4.如權(quán)利要求1所述的方法,其中所述第一硬件部件是密碼加速器。
5.如權(quán)利要求1所述的方法,其中所述第一硬件部件是圖形加速器。
6.如權(quán)利要求1所述的方法,還包括檢測來自第二硬件部件的中斷;以及從所述第一入站隊(duì)列向所述第二硬件部件傳輸作業(yè)。
7.如權(quán)利要求1所述的方法,還包括監(jiān)視第二入站隊(duì)列中的硬件作業(yè)。
8.如權(quán)利要求7所述的方法,還包括檢測來自第一硬件部件的中斷;以及從所述第二入站隊(duì)列向所述第二硬件部件傳輸作業(yè)。
9.如權(quán)利要求7所述的方法,其中所述第一硬件部件屬于第一類型,而所述第二硬件部件屬于第二類型。
10.如權(quán)利要求7所述的方法,其中所述第一硬件部件屬于第一類型,而所述第二硬件部件也屬于所述第一類型。
11.如權(quán)利要求7所述的方法,其中所述第一硬件部件是密碼加速器,而所述第二硬件部件是圖形加速器。
12.如權(quán)利要求7所述的方法,其中所述第一硬件部件是密碼加速器,而所述第二硬件部件也是密碼加速器。
13.如權(quán)利要求1所述的方法,還包括通過驅(qū)動(dòng)器將作業(yè)從信道傳輸?shù)剿龅谝蝗胝娟?duì)列中。
14.如權(quán)利要求1所述的方法,還包括通過驅(qū)動(dòng)器將作業(yè)從所述第一出站隊(duì)列傳輸?shù)街苓呄到y(tǒng)。
15.如權(quán)利要求13所述的方法,還包括在驅(qū)動(dòng)器中檢測來自信道的適于進(jìn)行密碼加速的分組。
16.如權(quán)利要求13所述的方法,還包括在驅(qū)動(dòng)器中檢測來自信道的適于進(jìn)行硬件加速的分組。
17.一種方法,包括在一組信道中的一個(gè)信道上接收分組;確定所述分組需要由硬件部件進(jìn)行處理;以及將所述分組置入所述硬件部件的分配器的入站隊(duì)列中。
18.如權(quán)利要求17所述的方法,還包括從所述硬件部件的分配器的出站隊(duì)列中接收完成的分組。
19.如權(quán)利要求17所述的方法,還包括確定在所述分配器的出站隊(duì)列中有完成的分組。
20.如權(quán)利要求17所述的方法,還包括從所述硬件部件的所述分配器的出站隊(duì)列中,接收完成分組的指示。
21.如權(quán)利要求20所述的方法,還包括響應(yīng)于從出站隊(duì)列接收到完成的分組的指示,從所述硬件部件獲取完成的分組。
22.如權(quán)利要求17所述的方法,其中所述硬件部件是密碼加速器。
23.如權(quán)利要求17所述的方法,其中所述硬件部件是圖形加速器。
24.一種包括指令的機(jī)器可讀介質(zhì),所述指令可由處理器執(zhí)行,所述指令使處理器能夠執(zhí)行一種方法,所述方法包括監(jiān)視第一入站隊(duì)列中的硬件作業(yè);檢測來自第一硬件部件的中斷;以及從所述第一入站隊(duì)列向所述第一硬件部件傳輸作業(yè)。
25.如權(quán)利要求24所述的介質(zhì),其中,所述方法還包括從所述第一硬件部件向第一出站隊(duì)列傳輸完成的作業(yè)。
26.如權(quán)利要求24所述的介質(zhì),其中,所述方法還包括在第一出站隊(duì)列中提供作業(yè)完成的指示。
27.如權(quán)利要求24所述的介質(zhì),其中所述第一硬件部件是密碼加速器。
28.如權(quán)利要求24所述的介質(zhì),其中所述第一硬件部件是圖形加速器。
29.如權(quán)利要求24所述的介質(zhì),其中,所述方法還包括檢測來自第二硬件部件的中斷;以及從所述第一入站隊(duì)列向所述第二硬件部件傳輸作業(yè)。
30.如權(quán)利要求24所述的介質(zhì),其中,所述方法還包括監(jiān)視第二入站隊(duì)列中的硬件作業(yè)。
31.如權(quán)利要求30所述的介質(zhì),其中,所述方法還包括檢測來自第一硬件部件的中斷;以及從所述第二入站隊(duì)列向所述第二硬件部件傳輸作業(yè)。
32.如權(quán)利要求30所述的介質(zhì),其中所述第一硬件部件屬于第一類型,而所述第二硬件部件屬于第二類型。
33.如權(quán)利要求30所述的介質(zhì),其中所述第一硬件部件屬于第一類型,而所述第二硬件部件也屬于所述第一類型。
34.如權(quán)利要求24所述的介質(zhì),其中,所述方法還包括通過驅(qū)動(dòng)器將作業(yè)從信道傳輸?shù)剿龅谝蝗胝娟?duì)列中。
35.如權(quán)利要求24所述的介質(zhì),還包括通過驅(qū)動(dòng)器將作業(yè)從所述第一出站隊(duì)列傳輸?shù)街苓呄到y(tǒng)。
36.如權(quán)利要求34所述的介質(zhì),其中,所述方法還包括在驅(qū)動(dòng)器中檢測來自信道的適于進(jìn)行密碼加速的分組。
37.如權(quán)利要求34所述的介質(zhì),其中,所述方法還包括在驅(qū)動(dòng)器中檢測來自信道的適于進(jìn)行硬件加速的分組。
38.一種裝置,包括第一硬件加速器;分配模塊,所述分配模塊連接到所述第一硬件加速器,所述分配模塊包括中斷處理機(jī);入站隊(duì)列,所述入站隊(duì)列連接到所述分配模塊;以及出站隊(duì)列,所述出站隊(duì)列連接到所述分配模塊。
39.如權(quán)利要求38所述的裝置,還包括第二硬件加速器。
40.如權(quán)利要求39所述的裝置,其中所述第一硬件加速器是圖形子系統(tǒng);以及所述第二硬件加速器是密碼子系統(tǒng)。
41.如權(quán)利要求38所述的裝置,其中所述分配模塊是用硬件實(shí)現(xiàn)的。
42.如權(quán)利要求38所述的裝置,其中所述分配模塊是用軟件實(shí)現(xiàn)的。
43.如權(quán)利要求38所述的裝置,其中將所述入站隊(duì)列實(shí)現(xiàn)為硬件FIFO。
44.如權(quán)利要求38所述的裝置,其中將所述入站隊(duì)列實(shí)現(xiàn)為軟件數(shù)據(jù)結(jié)構(gòu)。
45.如權(quán)利要求38所述的裝置,其中所述出站隊(duì)列是硬件FIFO。
46.如權(quán)利要求38所述的裝置,其中所述出站隊(duì)列是軟件數(shù)據(jù)結(jié)構(gòu)。
47.如權(quán)利要求38所述的裝置,其中所述第一硬件加速器是在第一集成設(shè)備中實(shí)現(xiàn)的;以及所述分配模塊是在所述第一集成設(shè)備中實(shí)現(xiàn)的。
48.如權(quán)利要求38所述的裝置,其中所述第一硬件加速器是在第一集成設(shè)備中實(shí)現(xiàn)的;以及所述分配模塊是在第二集成設(shè)備中實(shí)現(xiàn)的。
49.一種裝置,包括硬件分配模塊,所述硬件分配模塊適于連接到一個(gè)或多個(gè)硬件加速器,所述分配模塊包括中斷處理機(jī);入站隊(duì)列,所述入站隊(duì)列連接到所述分配模塊;以及出站隊(duì)列,所述出站隊(duì)列連接到所述分配模塊。
50.如權(quán)利要求49所述的裝置,其中將所述入站隊(duì)列實(shí)現(xiàn)為硬件FIFO;以及將所述出站隊(duì)列實(shí)現(xiàn)為硬件FIFO。
51.如權(quán)利要求49所述的裝置,其中將所述入站隊(duì)列實(shí)現(xiàn)為軟件數(shù)據(jù)結(jié)構(gòu);以及將所述出站隊(duì)列實(shí)現(xiàn)為軟件數(shù)據(jù)結(jié)構(gòu)。
52.如權(quán)利要求49所述的裝置,還包括硬件加速器,所述硬件加速器連接到所述硬件分配模塊。
53.如權(quán)利要求52所述的裝置,其中所述硬件加速器和所述硬件分配模塊一起實(shí)現(xiàn)在第一集成設(shè)備中。
54.如權(quán)利要求52所述的裝置,其中所述硬件加速器是在第一集成設(shè)備中實(shí)現(xiàn)的;以及所述硬件分配模塊是在第二集成設(shè)備中實(shí)現(xiàn)的。
55.如權(quán)利要求49所述的裝置,還包括第一硬件加速器,所述第一硬件加速器連接到所述硬件分配模塊;以及第二硬件加速器,所述第二硬件加速器連接到所述硬件分配模塊。
全文摘要
本文描述了用于大量信道的硬件加速的方法、裝置和系統(tǒng)。在一個(gè)實(shí)施例中,本發(fā)明是一種方法。該方法包括監(jiān)視入站隊(duì)列中的硬件作業(yè)(1810)。該方法還包括檢測硬件部件的中斷(1820)。該方法還包括從入站隊(duì)列向硬件部件傳輸作業(yè)。該方法還可以包括從硬件部件向出站隊(duì)列傳輸完成的作業(yè)(1830)。該方法還可以包括提供出站隊(duì)列中的作業(yè)的完成的指示。
文檔編號(hào)G06F15/16GK101052958SQ200580033016
公開日2007年10月10日 申請日期2005年7月29日 優(yōu)先權(quán)日2004年7月30日
發(fā)明者詹姆斯·布萊斯德爾, 阿德里安·特納 申請人:莫克納公司