欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于大量信道的硬件加速的制作方法

文檔序號:7749645閱讀:127來源:國知局
專利名稱:用于大量信道的硬件加速的制作方法
技術(shù)領(lǐng)域
概括地說,本發(fā)明涉及網(wǎng)絡(luò)通信,具體地說,本發(fā)明涉及管理網(wǎng)絡(luò)中大量的信道, 在該網(wǎng)絡(luò)中,硬件資源用于某些分組。
背景技術(shù)
網(wǎng)絡(luò)可以在有多個設(shè)備的情況下運行。這些設(shè)備可以是同類型的,也可以是多種 不同類型的,可能需要區(qū)別對待。通常情況下,多個設(shè)備就需要多個相應(yīng)的信道,每個設(shè)備 要對應(yīng)至少一個信道,或者更多的信道。管理這些信道會是一個難題。此外,將網(wǎng)絡(luò)設(shè)備與 有關(guān)的信道相匹配也可能是一個難題。網(wǎng)絡(luò)是實時運行的。因此,當訪問一個信道時,必須快速找到該信道。優(yōu)選情況下, 找到信道的時間是可以預(yù)測的。當存在大量信道時,訪問特定信道上的信息可能會很慢。此 外,允許附加的信道也會變得比較困難。因此,針對信道信息提供快速和可預(yù)測的訪問時間 是很有用的。此外,在某些情況下,硬件加速可以用于處理多個分組。然而,基于中斷驅(qū)動來管 理硬件加速可以造成驅(qū)動器將正等待必要硬件(例如密碼加速器)的大量分組丟棄。硬件 中斷是不可預(yù)測的,跟分組傳輸時間或分組延時相比,硬件處理時間往往比較長。人們期望讓驅(qū)動器等待硬件資源,并在等待資源期間拒絕到來的分組?;蛘撸?qū)動 器可以對到來的分組使用有限的緩沖器,但這可能在等待硬件資源期間造成溢出,從而導(dǎo) 致拒絕到來的分組。因此,不需要驅(qū)動器等待硬件中斷或互斥的硬件資源管理是很有用處 的。

發(fā)明內(nèi)容
本文描述了用于大量信道的硬件加速的方法、裝置和系統(tǒng)。在一個實施例中,本發(fā)明是一種維護信道的自由列表的方法,該方法包括接收信 道請求;提供來自該自由列表的第一信道標識符,該自由列表具有起始指針和末端指針; 更新該起始指針,以指向該自由列表的下一個信道;接收信道超時提示;將超時信道添加 到該自由列表的末端;以及更新該末端指針,以指向該自由列表的末端。在另一實施例中,本發(fā)明是一種處理信道消息的密碼操作的方法,該方法包括接 收加密的消息;使用消息長度和類型、消息編碼和封裝類型、一個或多個資源隊列等待時 間、資源的狀態(tài)和資源的容量,確定要應(yīng)用哪些密碼資源;將該消息放在選擇的密碼資源 中應(yīng)用該選擇的密碼資源;以及在信道上傳遞解密的消息。將在所述的各種實施例中舉例說明本發(fā)明,本發(fā)明的精神和保護范圍僅由所附權(quán) 利要求書界定。


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