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

用于在多處理器系統(tǒng)中保持一致性的方法和設(shè)備的制作方法

文檔序號:7592858閱讀:214來源:國知局
專利名稱:用于在多處理器系統(tǒng)中保持一致性的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及多處理器系統(tǒng),特別涉及在多處理器系統(tǒng)中保持存儲器一致性(coherence)。
背景技術(shù)
例如交換機或路由器的網(wǎng)絡(luò)裝置可包括有助于向該網(wǎng)絡(luò)裝置內(nèi)和外傳輸例如信元或幀的數(shù)據(jù)的網(wǎng)絡(luò)處理器。這樣的網(wǎng)絡(luò)處理器可根據(jù)傳輸?shù)皆摼W(wǎng)絡(luò)處理器的數(shù)據(jù)而以一個或多個控制結(jié)構(gòu)(例如控制塊)在存儲器中存儲信息。
當(dāng)該網(wǎng)絡(luò)處理器的多個組件嘗試在幾乎相同的時間或在重疊的時間周期期間更改同一個控制結(jié)構(gòu)時,在網(wǎng)絡(luò)處理器中會出現(xiàn)數(shù)據(jù)一致性問題。例如,網(wǎng)絡(luò)處理器的一個組件可能嘗試更改存儲器中的一個控制結(jié)構(gòu),而另一個組件也在更改存儲器中同一個控制結(jié)構(gòu)。
一些網(wǎng)絡(luò)處理器使用防止一個組件在與同一總線耦接的另一組件更改控制結(jié)構(gòu)時更改該控制結(jié)構(gòu)(例如通過鎖定對該控制結(jié)構(gòu)的訪問)的總線協(xié)議。可替換地,一些網(wǎng)絡(luò)處理器使用一種采用窺探方法判定與總線耦接的組件是否正在更改該控制結(jié)構(gòu)的總線協(xié)議。如果組件正在更改該控制結(jié)構(gòu),則其它組件必須等待直至該組件已完成其更改。然而,該方案僅能對某些總線協(xié)議起作用。盡管有效,但協(xié)議和/或窺探技術(shù)往往實現(xiàn)起來很復(fù)雜、處理密集且昂貴,并難以獲得(例如在缺少這些特征的現(xiàn)有處理器中)。因此存在對維護網(wǎng)絡(luò)處理器中的數(shù)據(jù)一致性的改善方法和設(shè)備的需求。

發(fā)明內(nèi)容
在本發(fā)明的第一方面中,提出了一種維護控制結(jié)構(gòu)一致性的方法。該方法包括以下步驟(1)在硬件更新操作期間,由硬件訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和(2)當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。
在本發(fā)明的第二方面,提供了一種設(shè)備,該設(shè)備包括硬件更新邏輯,適配為與網(wǎng)絡(luò)處理器的存儲器控制器耦接,并適配為與至少一個存儲器相互作用以使得(1)在硬件更新操作期間,由該硬件更新邏輯訪問該至少一個存儲器中存儲的控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和(2)當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。
在本發(fā)明的第三方面,提供了一種網(wǎng)絡(luò)處理器系統(tǒng)。該網(wǎng)絡(luò)處理器系統(tǒng)包括適配為存儲多個控制結(jié)構(gòu)的至少一個存儲器和一個網(wǎng)絡(luò)處理器。該網(wǎng)絡(luò)處理器包括與該至少一個存儲器耦接的存儲器控制器和與該存儲器控制器耦接的硬件更新邏輯。該硬件更新邏輯適配為與該至少一個存儲器相互作用以使得(1)在硬件更新操作期間,由該硬件更新邏輯訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和(2)當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。
還提供了許多其它方面,如根據(jù)本發(fā)明這些和其它方面的計算機程序產(chǎn)品??捎捎嬎銠C可讀介質(zhì)(例如載波信號、軟盤、光盤、DVD、硬盤、隨機存取存儲器等)承載這里所述的每一計算機程序產(chǎn)品。
根據(jù)下面的詳細描述、所附權(quán)利要求以及附圖,本發(fā)明的其它特點和方面將變得更加清楚。


圖1是可在其中實現(xiàn)本方法和設(shè)備的示例網(wǎng)絡(luò)處理器系統(tǒng)。
圖2是可在圖1的網(wǎng)絡(luò)處理器系統(tǒng)的存儲器中存儲的示例控制塊的方框圖。
圖3圖示了在維護控制塊一致性的同時,在圖1的網(wǎng)絡(luò)處理器系統(tǒng)中執(zhí)行硬件更新操作的示例方法。
圖4圖示了在圖1的網(wǎng)絡(luò)處理器系統(tǒng)中進行確??刂茐K一致性的軟件更新操作的示例方法。
具體實施例方式
網(wǎng)絡(luò)處理器通常執(zhí)行諸如分組分類、分組更改、隊列管理和/或分組轉(zhuǎn)發(fā)的功能。例如,分組分類可包括基于已知特征(例如地址或協(xié)議)識別分組。分組更改可包括更改分組以符合協(xié)議(例如更新TCP/IP協(xié)議分組的報頭信息)。隊列管理可包括應(yīng)用程序使用的分組的排隊、出隊和調(diào)度。分組轉(zhuǎn)發(fā)可包括將諸如TCP/IP協(xié)議分組的分組轉(zhuǎn)發(fā)或路由發(fā)送(route)到該分組的合適的目的地址。
執(zhí)行分組分類、分組更改、隊列管理和/或分組轉(zhuǎn)發(fā)時,該網(wǎng)絡(luò)處理器可更改存儲器中存儲的(例如控制塊)并與該網(wǎng)絡(luò)處理器接收(例如用于更新地址/路由信息、校驗和(checksum)信息等)的數(shù)據(jù)(例如幀或信元)對應(yīng)的一個或多個控制結(jié)構(gòu)。該網(wǎng)絡(luò)處理器可利用多個組件而更改存儲器中存儲的控制結(jié)構(gòu)。例如,該網(wǎng)絡(luò)處理器可利用軟件(例如處理器執(zhí)行的指令)或硬件(例如邏輯裝置)來更改該控制結(jié)構(gòu)。
如上所述,當(dāng)兩個不同的組件幾乎同時需要更改同一個控制結(jié)構(gòu)時,可能會出現(xiàn)問題。沒有數(shù)據(jù)一致性方案,則存儲器中存儲的結(jié)果控制結(jié)構(gòu)可能不能正確反映這兩個組件做出的更改。例如,網(wǎng)絡(luò)處理器的硬件可從該存儲器讀取整個控制塊,更改該控制塊的某些字段并將該整個控制塊寫入存儲器。當(dāng)硬件正在更改該控制塊時,在該硬件將其更改的控制塊寫回到存儲器中之前,該網(wǎng)絡(luò)處理器的軟件可更改該控制塊的一個或多個字段。結(jié)果,存儲器中存儲的控制塊將包括由軟件做出的改變。然而,一旦硬件已完成了對控制塊的字段的更改,并將整個控制塊寫回到存儲器中,則由軟件更改的控制塊的字段可能會被丟失/重寫。因此,該存儲器中存儲的控制塊可能與其對應(yīng)的信元或幀不一致。下面參考圖1-4描述用于確保控制塊在這些和其它情況下的一致性的方法和設(shè)備。
圖1是可在其中實現(xiàn)本方法和設(shè)備的示例網(wǎng)絡(luò)處理器系統(tǒng)100。該網(wǎng)絡(luò)處理器系統(tǒng)100可包括與諸如DRAM或其它類似存儲器的存儲器104耦接的網(wǎng)絡(luò)處理器102。在一個實施例中,該存儲器104可在該網(wǎng)絡(luò)處理器102的外部(例如來自片外)。
該網(wǎng)絡(luò)處理器102可包括一個或多個處理器106a-n,它們的每一個可包括存儲器(例如緩存)(未示出)。每一處理器106a-n可通過總線122(例如處理器局域總線)與存儲器控制器120耦接。每一處理器106a-n可通過總線122和存儲器控制器120在存儲器104中存儲和創(chuàng)建使得該處理器更改一個或多個控制結(jié)構(gòu)如控制塊的指令。
該存儲器控制器120可與存儲器104耦接,并允許該網(wǎng)絡(luò)處理器102的組件與存儲器104通信。該存儲器控制器120也可耦接到和/或可包括硬件更新邏輯124(例如鎖定邏輯)。該硬件更新邏輯124可包括多個寄存器128a-n。在一個實施例中,該硬件更新邏輯包括八個寄存器,盡管也可采用更多或更少。該硬件更新邏輯128a-n可包括邏輯、寄存器、存儲器等的任何合適的組合,并在至少一個實施例中可包括專用集成電路(ASIC)。
圖2是可在存儲器104中存儲的示例控制塊200的方框圖。該控制塊200包括多個字段,所述多個字段含有與該網(wǎng)絡(luò)處理器102中接收的信元或幀對應(yīng)的信息。在一個實施例中,每一控制塊200可包括32個1字節(jié)字段的數(shù)據(jù),所以為32字節(jié)大小??墒褂闷渌刂茐K尺寸??赏ㄟ^軟件(例如由處理器106a-n執(zhí)行的指令)或通過硬件(例如該硬件更新邏輯124)訪問每一控制塊200的一個或多個部分或字段(例如第二字節(jié)202)。在至少一個實施例中,當(dāng)在軟件更新操作期間由軟件訪問控制塊時,可以利用軟件從該存儲器104讀取該控制塊的一個或多個部分或字段,進行更改,并將其寫回到該存儲器104。類似地,當(dāng)在硬件更新操作期間由硬件(例如通過硬件更新邏輯124)訪問控制塊200時,可以利用硬件從該存儲器讀取該控制塊的一個或多個部分或字段,進行更改,并將其寫到該存儲器中。
現(xiàn)在參考圖1-2和圖3描述該網(wǎng)絡(luò)處理器系統(tǒng)100的操作,圖3圖示了在維護控制塊一致性的同時,在該網(wǎng)絡(luò)處理器系統(tǒng)100中執(zhí)行硬件更新操作的示例方法300。更具體地,圖3圖示了當(dāng)在硬件更新操作期間使用硬件來訪問控制塊的一個或多個部分時,為了確??刂茐K一致性而由該網(wǎng)絡(luò)處理器系統(tǒng)100執(zhí)行的步驟。
參考圖3,在步驟302,方法300開始。在步驟304,在硬件更新列表上放置要更新的控制塊的指針。例如,當(dāng)該硬件更新邏輯124將要訪問控制塊200的一個或多個部分時,可在該硬件更新列表126上放置代表該控制塊200的地址的至少一部分的信息(例如通過在寄存器128a-n之一中存儲該地址信息)。如下面將詳細描述的一樣,使用該硬件更新列表126中的條目來判定是否允許對控制塊的軟件訪問。
在步驟306,從該存儲器104讀取該控制塊的一個或多個部分(例如數(shù)據(jù)的一個或多個字節(jié))。更具體地,當(dāng)該硬件更新邏輯124執(zhí)行硬件更新操作時,該硬件更新邏輯124可將訪問控制塊的一個或多個部分的請求發(fā)送到該存儲器控制器120。響應(yīng)于該請求,該存儲器控制器120可從存儲器104中檢索該控制塊指定的一個或多個部分,并將該控制塊的一個或多個部分提供到該硬件更新邏輯124。
在步驟308,可更新該控制塊的一個或多個部分。例如,可由該硬件更新邏輯124更新該控制塊200的一個或多個字節(jié)或字段。例如,如上所述,該網(wǎng)絡(luò)處理器系統(tǒng)100可通過更改與接收的幀或信元對應(yīng)的控制結(jié)構(gòu)(例如控制塊)而對該幀或信元執(zhí)行分組更改。例如,在分組更改期間,可由硬件更新邏輯124更新或更改與接收的信元或幀對應(yīng)的控制塊的校驗和字段。
在利用該硬件更新邏輯124更新該控制塊的一個或多個部分之后,在步驟310,將該控制塊的一個或多個已更新的部分寫回到存儲器104中。例如,該硬件更新邏輯124可向該存儲器控制器120發(fā)送請求,以將該控制塊的一個或多個已更新的部分寫回到存儲器104中。
可對該控制塊200的一個或多個部分或整個控制塊(例如其所有部分)分別執(zhí)行讀取和寫入步驟,步驟306和步驟310。當(dāng)讀取或?qū)懭肟刂茐K的所有部分時,由該硬件更新邏輯124更改的控制塊的字段將反映由該硬件更新邏輯124對控制塊做出的更改,而沒有由該硬件更新邏輯124更改的字段將反映在從存儲器104中讀取該控制塊時該字段具有的值。因為該硬件更新邏輯124通常更改控制塊的多個部分,所以與對于要由該硬件更新邏輯124更新的控制塊的每一部分而從存儲器104中讀取控制塊的一部分、更新該控制塊的該部分、并將已更新的控制塊寫到存儲器104中相比,從存儲器104讀取該整個控制塊、更改該控制塊的所述多個部分、并將該整個控制塊寫到存儲器104中對存儲器控制器120和存儲器104之間的總線130的利用更有效。相反,在軟件更新期間,軟件更新操作通常僅更改控制塊的一個或少數(shù)幾個部分(字段),并且可以通過僅讀取和寫回要更改的控制塊的那些部分而更有效地執(zhí)行。如下面參考圖4將描述的一樣,使用硬件更新列表126,即使在對正由硬件更新邏輯124更改的控制塊嘗試軟件更新時也可確保數(shù)據(jù)一致性。
在步驟312,從該硬件更新列表126中去除已在步驟308更新的控制塊的指針。更具體地,在對控制塊執(zhí)行讀取-更改-寫入之后,從存儲該指針的寄存器128a-n中去除該控制塊的指針。在步驟314,圖3的方法結(jié)束。
圖4圖示了在該網(wǎng)絡(luò)處理器系統(tǒng)100中進行確??刂茐K一致性的軟件更新操作的示例方法400。更具體地,圖4圖示了軟件更新操作期間,當(dāng)使用軟件訪問控制塊的一個或多個部分時,由該網(wǎng)絡(luò)處理器系統(tǒng)100執(zhí)行的確??刂茐K一致性的步驟。
參考圖4,在步驟402,方法400開始。在步驟404,監(jiān)視總線122以得到對控制塊進行軟件訪問的請求。例如,該存儲器控制器120和/或該硬件更新邏輯124可監(jiān)視處理器局域總線122以得到控制信號和/或來自處理器106a-n之一的地址。例如,該硬件更新邏輯124可采用該存儲器控制器120以檢測控制信號和/或總線上的地址。該控制信號和/或地址可表示將執(zhí)行的命令和/或?qū)ζ鋱?zhí)行該命令的控制塊。
對控制塊進行軟件訪問可包括從存儲器讀取控制塊的一個或多個操作、更改控制塊的一個或多個部分中的至少一個。例如,當(dāng)網(wǎng)絡(luò)處理器從中接收數(shù)據(jù)的網(wǎng)絡(luò)連接(例如信道)不再激活時,網(wǎng)絡(luò)處理器系統(tǒng)100的處理器106a-n可能需要對與接收的幀或信元對應(yīng)的控制塊的一個或多個部分進行訪問。在這種情況下,可由處理器更改與接收的幀或信元對應(yīng)的控制塊的字段的一個或多個比特,以禁止該信道。當(dāng)只有控制塊的一個部分/字段的少數(shù)比特要被更改時,一般而言,(1)僅從存儲器104讀取要更改的控制塊的部分/字段;(2)更改該控制塊的部分/字段的適當(dāng)比特;和(3)將該控制塊的已更改的部分/字段寫回到存儲器104中將比從/向存儲器104讀和寫該整個控制塊更有效。
在步驟406,判定是否接收了對控制塊的一個或多個部分進行軟件訪問的請求。例如,可判定存儲器控制器120是否已接收了對控制塊的一個部分(例如一字節(jié))進行軟件訪問的請求(例如寫入請求)。如果還沒有接收到對控制塊的一個或多個部分進行軟件訪問的請求,則重復(fù)步驟404。例如,如果存儲器控制器120沒有接收到寫入控制塊的一個字節(jié)的請求,則該存儲器控制器120會繼續(xù)監(jiān)視該總線122,以得到對控制塊進行軟件訪問的請求(例如來自處理器106a-n)。或者,如果接收了對控制塊進行軟件訪問的請求,則執(zhí)行步驟408。
在步驟408,檢查硬件更新列表126以判定該列表是否包括被請求進行軟件訪問的控制塊的指針。例如,當(dāng)存儲器控制器120從處理器106a-n之一接收了寫入控制塊的請求時,存儲器控制器120可掃描該寄存器128a-n中的每一條目以判定該控制塊的地址(或該控制塊的地址的一部分)是否存儲在寄存器128a-n之一中。如果該硬件更新列表126中的一個條目包括被請求進行軟件訪問的控制塊的指針,則在步驟410,延遲對該控制塊的軟件訪問。例如,可由硬件更新邏輯124采用存儲器控制器120來拒絕請求對該控制塊進行軟件訪問的處理器106a-n對總線122的訪問。在這樣的實施例中,將需要處理器106a-n發(fā)送對該控制塊進行軟件訪問的另一請求(例如處理器106a-n可包括自動發(fā)送附加請求直至訪問被同意的軟件和/或硬件)?;蛘?,該硬件更新邏輯124可采用存儲器控制器120來同意該軟件訪問請求(例如通過發(fā)往處理器106a-n之一的適當(dāng)控制信號),并僅延遲和/或排隊該軟件訪問請求直至完成該硬件更新操作。
如果判定該硬件更新列表126不包括將由軟件訪問的控制塊的指針,則執(zhí)行步驟412。也就是允許對控制塊的軟件訪問。例如,該存儲器控制器120可允許進行請求的處理器106a-n訪問該總線122和該控制塊。在步驟414,圖4的方法結(jié)束。
如圖3所示,在硬件更新操作期間,僅在硬件(例如硬件更新邏輯124)讀取、更新、寫入或利用該控制塊時,才在該硬件更新列表126中包括控制塊的指針。所以,如果該控制塊的指針不在該硬件更新列表126中,則該硬件更新邏輯124不采用該控制塊,并且可允許對控制塊進行軟件訪問,而沒有軟件更新被硬件更新操作重寫的風(fēng)險。
通過執(zhí)行圖3和4的方法,該網(wǎng)絡(luò)處理器系統(tǒng)100可確??刂茐K一致性,同時允許該網(wǎng)絡(luò)處理器102的一個或多個組件幾乎同時讀取、更改、和/或?qū)懭朐撏豢刂平Y(jié)構(gòu)。
前面的描述僅公開了本發(fā)明的示范實施例。對于本領(lǐng)域普通技術(shù)人員而言,落入本發(fā)明范圍之內(nèi)的對以上公開的設(shè)備和方法的更改是顯而易見的。例如,盡管圖3圖示了執(zhí)行硬件更新操作的示例方法,其中在從存儲器104中讀取控制塊之前,將該控制塊的指針放置在硬件更新列表126上,但是應(yīng)該明白,可在從存儲器104讀取控制塊之后,將該控制塊的指針放置在該硬件更新列表126上。
盡管圖1中示出的示例網(wǎng)絡(luò)處理器系統(tǒng)100包括具有兩個處理器的網(wǎng)絡(luò)處理器102,但是網(wǎng)絡(luò)處理器102可包括單一處理器或多于兩個處理器。而且,盡管圖1的示例網(wǎng)絡(luò)處理器系統(tǒng)100圖示了包括硬件更新邏輯124的存儲器控制器120,但是硬件更新邏輯124可在存儲器控制器120外部。同樣,可由片內(nèi)(on-chip)存儲器代替寄存器128a-n。
可用計算機程序代碼(例如存儲器控制器120、一個或多個處理器106a-n等之中)將圖3的處理300或圖4的處理400中的一個或多個步驟實現(xiàn)為一個或多個計算機程序產(chǎn)品。
因此,盡管已結(jié)合其示范實施例公開了本發(fā)明,但是應(yīng)該明白,其它實施例也落入所附權(quán)利要求所限定的本發(fā)明的精神和范圍之內(nèi)。
權(quán)利要求
1.一種維護控制結(jié)構(gòu)一致性的方法,包括在硬件更新操作期間,由硬件訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。
2.根據(jù)權(quán)利要求1的方法,還包括在該硬件更新操作期間由硬件訪問的控制結(jié)構(gòu)的一個或多個部分不再由該硬件訪問之后,從該硬件更新列表中去除該控制結(jié)構(gòu)的指針。
3.根據(jù)權(quán)利要求1的方法,其特征在于,當(dāng)由硬件訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中包括在硬件更新操作期間,由硬件訪問控制結(jié)構(gòu)的所有部分時,將該控制結(jié)構(gòu)的指針寫入該硬件更新列表中。
4.根據(jù)權(quán)利要求1的方法,其特征在于,該軟件更新操作包括更新該控制結(jié)構(gòu)的字段。
5.根據(jù)權(quán)利要求1的方法,其特征在于,該指針代表該控制結(jié)構(gòu)的地址的至少一個部分。
6.根據(jù)權(quán)利要求1的方法,其特征在于,該硬件更新列表存儲在硬件中。
7.根據(jù)權(quán)利要求6的方法,其特征在于,該硬件更新列表至少存儲在存儲器和寄存器之一中。
8.根據(jù)權(quán)利要求1的方法,其特征在于,該硬件更新列表包括多個條目。
9.根據(jù)權(quán)利要求1的方法,其特征在于,該控制結(jié)構(gòu)包括控制塊。
10.根據(jù)權(quán)利要求9的方法,其特征在于,控制塊包括多個字節(jié)的數(shù)據(jù)。
11.根據(jù)權(quán)利要求9的方法,其特征在于,該控制塊包括基于網(wǎng)絡(luò)處理器接收的信元或幀的信息。
12.根據(jù)權(quán)利要求9的方法,其特征在于,該控制結(jié)構(gòu)的一個或多個部分包括該控制塊的一個或多個字節(jié)。
13.根據(jù)權(quán)利要求1的方法,其特征在于,在硬件更新操作期間,當(dāng)由硬件訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入該硬件更新列表中包括在該硬件操作期間,當(dāng)由硬件從存儲器中讀取該控制結(jié)構(gòu)的一個或多個指針,進行更改,并將其寫回到該存儲器中時,將該控制結(jié)構(gòu)的指針寫入該硬件更新列表中。
14.根據(jù)權(quán)利要求1的方法,其特征在于,延遲該軟件訪問包括監(jiān)視總線,以至少得到控制信號和地址之一。
15.根據(jù)權(quán)利要求14的方法,其特征在于,延遲該軟件訪問包括當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表上時,拒絕對總線進行軟件訪問。
16.根據(jù)權(quán)利要求14的方法,其特征在于,延遲該軟件訪問包括同意對軟件訪問請求;和當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表上時,延遲該軟件訪問。
17.根據(jù)權(quán)利要求1的方法,其特征在于,當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表上時,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問包括延遲由在網(wǎng)絡(luò)處理器的處理器上執(zhí)行的指令引起的軟件訪問。
18.根據(jù)權(quán)利要求1的方法,其特征在于,當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表上時,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問包括當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表上時,延遲由軟件對該控制結(jié)構(gòu)的一個或多個部分執(zhí)行的讀取、更改和寫入操作中的至少一個。
19.一種設(shè)備,包括硬件更新邏輯,適配為與網(wǎng)絡(luò)處理器的存儲器控制器耦接,并適配為與至少一個存儲器相互作用以使得在硬件更新操作期間,由該硬件更新邏輯訪問該至少一個存儲器中存儲的控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。
20.根據(jù)權(quán)利要求19的設(shè)備,其特征在于,該硬件更新邏輯還適配為在該硬件更新操作期間由該硬件更新邏輯訪問的控制結(jié)構(gòu)的一個或多個部分不再由該硬件訪問之后,從該硬件更新列表中去除該控制結(jié)構(gòu)的指針。
21.根據(jù)權(quán)利要求19的設(shè)備,其特征在于,該硬件更新邏輯適配為通過采用該存儲器控制器監(jiān)視總線上的控制信號和地址的至少之一,來檢測該軟件訪問。
22.根據(jù)權(quán)利要求20的設(shè)備,其特征在于,該硬件更新邏輯適配為通過采用該存儲器控制器,在該控制結(jié)構(gòu)的指針在該硬件更新列表上時,拒絕對總線進行軟件訪問,來延遲該軟件訪問。
23.根據(jù)權(quán)利要求20的設(shè)備,其特征在于,該硬件更新邏輯適配為通過采用該存儲器控制器進行以下操作以延遲該軟件訪問同意對軟件訪問的請求;和當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表上時,延遲該軟件訪問。
24.一種網(wǎng)絡(luò)處理器系統(tǒng),包括適配為存儲多個控制結(jié)構(gòu)的至少一個存儲器;網(wǎng)絡(luò)處理器,該網(wǎng)絡(luò)處理器包括與該至少一個存儲器耦接的存儲器控制器;硬件更新邏輯,與該存儲器控制器耦接,并適配為與該至少一個存儲器相互作用以使得在硬件更新操作期間,由該硬件更新邏輯訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。
25.根據(jù)權(quán)利要求24的網(wǎng)絡(luò)處理器系統(tǒng),其特征在于,該硬件更新邏輯還適配為在該硬件更新操作期間由該硬件更新邏輯訪問的控制結(jié)構(gòu)的一個或多個部分不再由該硬件訪問之后,從硬件更新列表中去除該控制結(jié)構(gòu)的指針。
26.根據(jù)權(quán)利要求24的網(wǎng)絡(luò)處理器系統(tǒng),其特征在于,該硬件更新邏輯適配為通過采用該存儲器控制器監(jiān)視總線上的控制信號和地址的至少之一,來檢測該軟件訪問。
27.根據(jù)權(quán)利要求24的網(wǎng)絡(luò)處理器系統(tǒng),其特征在于,該存儲器控制器包括該硬件更新邏輯。
28.根據(jù)權(quán)利要求27的網(wǎng)絡(luò)處理器系統(tǒng),其特征在于,該硬件更新邏輯包括片內(nèi)存儲器。
29.根據(jù)權(quán)利要求24的網(wǎng)絡(luò)處理器系統(tǒng),還包括利用內(nèi)部總線與該存儲器控制器耦接的多個處理器。
30.根據(jù)權(quán)利要求24的網(wǎng)絡(luò)處理器系統(tǒng),其特征在于,該至少一個存儲器包括DRAM。
全文摘要
在第一方面,提供了一種維護控制結(jié)構(gòu)一致性的方法。該方法包括以下步驟(1)在硬件更新操作期間,由硬件訪問控制結(jié)構(gòu)的一個或多個部分時,將該控制結(jié)構(gòu)的指針寫入硬件更新列表中;和(2)當(dāng)該控制結(jié)構(gòu)的指針在該硬件更新列表中時,在軟件更新操作期間,延遲對該控制結(jié)構(gòu)的一個或多個部分的軟件訪問。還提供了許多其它方面。
文檔編號H04L12/24GK1584855SQ20041004538
公開日2005年2月23日 申請日期2004年5月21日 優(yōu)先權(quán)日2003年8月21日
發(fā)明者保羅·A·甘菲爾德, 克里·C·伊明, 約翰·D·艾里什 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兰坪| 新民市| 苍梧县| 栾川县| 连州市| 永嘉县| 呼伦贝尔市| 荆门市| 伽师县| 逊克县| 徐汇区| 大荔县| 崇明县| 洛宁县| 舟山市| 太和县| 维西| 钟祥市| 柳州市| 越西县| 蒙阴县| 福贡县| 乌鲁木齐市| 龙游县| 嘉黎县| 开江县| 榆树市| 津南区| 翼城县| 图们市| 宁陵县| 临泽县| 仁寿县| 开阳县| 万源市| 抚顺市| 镇赉县| 黔南| 渝北区| 内丘县| 新野县|