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

多線程環(huán)境中的讀鎖定丟失控制的制作方法

文檔序號:6641641閱讀:164來源:國知局
專利名稱:多線程環(huán)境中的讀鎖定丟失控制的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及讀鎖定(read lock)存儲器訪問。
背景技術(shù)
當(dāng)計算機指令(線程)需要訪問計算機中一個存儲器位置時,就進入到存儲器控制器。存儲器訪問指令可以請求對一個特別的存儲器位置的讀鎖定。這種讀鎖定能防止其它指令訪問該存儲器位置,直到得到授予該存儲器位置的讀開鎖指令。
發(fā)明概述根據(jù)本發(fā)明的一個方面,管理存儲器訪問隨機訪問存儲器的方法,包括取得讀鎖定存儲器訪問請求,和當(dāng)讀鎖定存儲器訪問請求正在請求訪問未鎖定(unlock)的存儲器位置和讀鎖定丟失隊列(miss queue)包含至少一個讀鎖定存儲器訪問請求時,將讀鎖定存儲器訪問請求放置在讀鎖定丟失隊列的末尾。
由以下的說明和權(quán)利要求書,其它的優(yōu)點成為顯然。
附圖簡要說明

圖1表示使用基于硬件的多線程處理器的通信系統(tǒng)的方框圖。
圖2表示在基于硬件的多線程處理器中使用的等待時間有限操作的存儲器控制器的方框圖。
圖3表示在基于硬件的多線程處理器中存儲器控制器的操作流程圖。
圖4表示在基于硬件的多線程處理器中存儲器控制器的操作流程圖。
實施發(fā)明的最佳形態(tài)參照圖1,通信系統(tǒng)10包括平行的基于硬件的多線程處理器12。所述基于硬件的多線程處理器12耦合到總線、例如外設(shè)元件接口(PCIperipheralcomponent interconnect)總線14,存儲器系統(tǒng)16,第2總線18。這種系統(tǒng)10對于能分解成平行子任務(wù)或者功能的任務(wù)特別有用。特別,基于硬件的多線程處理器12對于面向帶寬而不是面向等待的任務(wù)是有用的。所述基于硬件的多線程處理器12具有多個微引擎22a-22f,每個具有多硬件控制的線程能同時激活,并能關(guān)于任務(wù)獨立地工作。
基于硬件的多線程處理器12還包括中央控制器20,幫助裝載用于所述基于硬件的多線程處理器12的其它資源的微碼控制,并執(zhí)行其它的通用計算機類型功能,例如處理協(xié)議、異常和對于數(shù)據(jù)包處理的額外支持,其中微引擎22a-22f對數(shù)據(jù)順利完成用于例如邊界條件的更加詳細的處理。在一個實施例中,處理器20是基于Strong Arm(Arm是Arm Limited,United Kingdom的商標)的結(jié)構(gòu)。通用微處理器20具有操作系統(tǒng)。通過所述操作系統(tǒng),所述處理器20能調(diào)用函數(shù)以便在微引擎22a-22f上運行。所述處理器20能使用任何支持的操作系統(tǒng),最好是實時操作系統(tǒng)。對于執(zhí)行例如Strong Arm結(jié)構(gòu)的核心處理器,能使用例如MicrosofttNT的實時操作、VXWork和μCUS、以及因特網(wǎng)(Internet)上可得到的免費件操作系統(tǒng)那樣的操作系統(tǒng)。
基于硬件的多線程處理器12還包括多個功能微引擎22a-22f。每個功能微引擎(微引擎)22a-22f保存多個硬件方式的程序計數(shù)器以及與程序計數(shù)器相關(guān)的狀態(tài)。有效的是,相應(yīng)的多個線程組能同時在每個微引擎22a-22f上激活,而在任何時刻僅有一個實際上運行。
在一個實施例中,如圖所示有6個微引擎22a-22f。每個微引擎22a-22f能處理4個硬件線程。所述6個微引擎22a-22f用共享資源操作,包括存儲器系統(tǒng)16和總線接口24和28。所述存儲器系統(tǒng)16包括同步動態(tài)隨機訪問存儲器(SDRAM)控制器26a和靜態(tài)隨機訪問存儲器(SRAM)控制器26b。SDRAM16a和SDRAM控制器26a典型地用于處理大的數(shù)據(jù)量,例如處理來自網(wǎng)絡(luò)數(shù)據(jù)包的網(wǎng)絡(luò)有效負載。SRAM16b和SRAM控制器26b用于在網(wǎng)絡(luò)中執(zhí)行低等待、快速訪問任務(wù),例如訪問查找表、用于核心處理器20的存儲器等。
所述6個微引擎22a-22f基于數(shù)據(jù)特征,對于SDRAM16a或者SRAM16b都能進行訪問。因此,低等待、低帶寬數(shù)據(jù)存儲到和取自SRAM16b,而對于等待時間不重要的高帶寬數(shù)據(jù)存儲到和取自SDRAM16a。所述微引擎22a-22f對于SDRAM控制器26a或SRAM控制器26b都能執(zhí)行存儲器訪問指令。
基于硬件多線程處理器優(yōu)點能由對SRAM或者SDRAM存儲器的訪問進行說明。例如,從微引擎22a-22f由線程_0請求的SRAM訪問,使SRAM控制器26b初始化對SRAM16b的訪問。SRAM控制器26b控制對SRAM總線27的仲裁、訪問SRAM16b、從SRAM16b取得數(shù)據(jù)、以及將數(shù)據(jù)返回到請求的微引擎22a-22f。當(dāng)SRAM16b訪問時,如果微引擎、例如22a僅有能夠運行的單個線程,則微引擎休止,直到數(shù)據(jù)從SRAM16b返回。在每個微引擎22a-22f中的硬件環(huán)境交換,使具有唯一程序計數(shù)器的其它環(huán)境在相同的微引擎中執(zhí)行。因此,另一個線程、例如線程_1能在第1線程、例如線程_0等待讀數(shù)據(jù)返回時起作用。在執(zhí)行期間,線程_1能訪問SDRAM存儲器16a。當(dāng)線程_1運行在SDRAM單元26a和線程_0運行在SRAM單元26b時,新的線程、例如線程_2能在微引擎22a中運行。線程_2能運行一定的時間,直到它需要訪問存儲器或者進行某些其它長的等待時間操作、例如對總線接口的訪問。因此,處理器12能同時地具有總線操作、SRAM操作和SDRAM操作,并由一個微引擎22a完成全部或者進行操作,以及再使多一個線程可用于在數(shù)據(jù)通道中處理更多的工作。
硬件環(huán)境交換也同步任務(wù)的完成、例如,2個線程能命中相同的共享資源、例如SRAM16b。當(dāng)它們完成來自一個微引擎線程環(huán)境請求的任務(wù)時,每個這些分離的功能單元、例如FBUS接口28、SRAM控制器26b和SDRAM控制器26a報告返回運行完成的信號標記。當(dāng)微引擎22a-22f收到標記時,微引擎22a-22f能決定打開哪一個線程。
基于硬件多線程處理器12的應(yīng)用的一個例子是用作網(wǎng)絡(luò)處理器。作為網(wǎng)絡(luò)處理器,基于硬件多線程處理器12接口到網(wǎng)絡(luò)器件,例如介質(zhì)訪問控制器器件、例如10/100BaseT八進制的MAC 13a或者千兆位因特網(wǎng)器件13b。一般地說,作為網(wǎng)絡(luò)處理器,基于硬件多線程處理器12能接口到任何類型的通信器件或者接收/發(fā)送大量的數(shù)據(jù)的接口。如果通信系統(tǒng)10在網(wǎng)絡(luò)應(yīng)用中起作用,則能從器件13a、13b接收多個網(wǎng)絡(luò)數(shù)據(jù)包,并以平行方式處理這些數(shù)據(jù)包。用基于硬件多線程處理器12能獨立地處理每個網(wǎng)絡(luò)數(shù)據(jù)包。
處理器12的應(yīng)用的另一個例子是作為頁面打印引擎處理器,或者作為例如RAID盤存儲的存儲子系統(tǒng)。進一步的應(yīng)用還包括匹配引擎。例如在證券業(yè)中,電子交易的出現(xiàn)要求使用電子匹引擎,以便匹配買賣之間的定單。在系統(tǒng)10上能完成這些和其它的平行型任務(wù)。
將每個功能單元,例如、FBUS接口28、SRAM控制器26b和SDRAM控制器26a。耦合到一個或者多個內(nèi)部總線。內(nèi)部總線是雙32位總線(例如一條總線用于讀和一條總線用于寫)。還構(gòu)成基于硬件多線程處理器12,使得在處理器12中的內(nèi)部總線的帶寬的和超過耦合到處理器12的外部總線的帶寬。處理器12包括內(nèi)部核心處理器總線32、例如ASB(Advanced System Bus)總線,將處理器核心20耦合到存儲器控制器26a、26b和耦合到ASB變換器30。前述ASB總線32是與Strong Arm處理器核心一起使用的所謂的AMBA總線的子集。前述處理器12還包括個人總線34,將微引擎單元耦合到SRAM控制器26b、ASB變換器30和FBUS接口28。存儲器總線38將存儲器控制器26a、26b耦合到總線接口24和28,存儲器系統(tǒng)16包括用于引導(dǎo)操作等的快閃只讀存儲器16c。
參照圖2,示出了用于SRAM16b的SRAM控制器26b。SRAM控制器26b包括地址和命令隊列120。根據(jù)存儲器操作的類型、例如讀或者寫,優(yōu)化SRAM控制器26b。地址和命令隊列120包括高優(yōu)先級隊列120a(保持來自高優(yōu)先級任務(wù)的存儲器訪問請求)、讀隊列120b(保存讀存儲器訪問請求,它們是SRAM執(zhí)行的主存儲器訪問功能)以及次序隊列120c(一般地保存所有的對SRAM16b的寫和非優(yōu)化的讀)。雖然未圖示,地址和命令隊列120還包括寫隊列??刂七壿嫷牟迦腙犃锌刂茊卧?32,確定把來自微引擎22a-22f的每個存儲器請求在哪里排隊。在控制邏輯的移去除隊列仲裁單元124中的仲裁方案確定了在隊列120中的存儲器訪問請求的處理次序。
SRAM控制器26b還包括核心總線接口邏輯、例如ASB總線122。ASB總線接口邏輯122將核心處理器20接口到SRAM控制器26b。ASB總線122是包括32位數(shù)據(jù)通道和28位地址通道的總線。通過MEM(microelectromechanical)ASB數(shù)據(jù)器件128、例如緩沖器,數(shù)據(jù)可被存儲器16b訪問。MEM ASB數(shù)據(jù)器件128是用于寫數(shù)據(jù)的隊列。如果有從核心處理器20通過接口122進入的數(shù)據(jù),則數(shù)據(jù)被存儲在MEM ASB數(shù)據(jù)器件128中,并接著從MEM ASB數(shù)據(jù)器件128被移去,通過SRAM接口140進入SRAM存儲器16b。雖然未圖示,對于讀能提供相同的隊列結(jié)構(gòu)。
通過多路復(fù)用器126將存儲器請求送到SRAM接口140。利用SRAM仲裁器131控制多路復(fù)用器126,SRAM仲裁器131檢測每個隊列的滿列和請求的狀態(tài),并由此根據(jù)存儲在優(yōu)先級服務(wù)控制寄存器130中的可編程值決定優(yōu)先級。一旦對多路復(fù)用器126的控制選擇存儲器訪問請求,就將存儲器訪問請求送到命令解碼器和地址發(fā)生器138,進行解碼和產(chǎn)生地址。
SRAM控制器26b保持存儲器映射的片處SRAM和擴展ROM的控制。SRAM控制器26b能尋址例如16兆,其中8兆用于SRAM16b映射,8兆保留用于特殊功能,包括例如通過快閃只讀存儲器16c引導(dǎo)空間,用于MAC器件13a、13b的控制臺端口訪問,以及相應(yīng)的(RMON)計數(shù)器的訪問。SRAM用于局部查找表和隊列管理功能。
SRAM控制器26b支持以下的交互動作微引擎請求(通過個人總線)到/從SRAM核心處理器(通過ASB總線)到/從SRAMSRAM控制器26b執(zhí)行在從SRAM接口140到存儲器16b的管線中的對最小延遲(泡孔bubbles)排序的存儲器訪問。SRAM控制器26b進行根據(jù)讀功能的存儲器訪問。基于使用的存儲器器件類型,泡孔可以是1個或者2個周期。
SRAM控制器26b包括鎖定查找表器件142,用于查找讀鎖定的8輸入項地址內(nèi)容可尋址的存儲器(CAM)。每個位置包括一個由接著的讀鎖定請求檢查的有效位。地址和命令隊列120還包括讀鎖定丟失(故障)隊列120d。讀鎖定丟失隊列120d用于保存由于存在于被請求讀的存儲器位置上的鎖定而失敗的24個讀請求。微型引擎22a-22f中的一個,發(fā)出在地址和控制隊列120中處理的讀鎖定存儲器訪問請求。
參照圖3,利用控制器26b,處理存儲器訪問請求51??刂破?6b對于次序隊列120c或者讀隊列120b接收存儲器訪問請求50。命令解碼器和地址發(fā)生器138確定是否存儲器請求是“讀”請求、寫請求、“讀鎖定請求”或者寫開鎖(“開鎖”)請求52。如果命令解碼器和地址發(fā)生器138確定請求是讀請求52,則命令解碼器和地址發(fā)生器138輸入54該鎖定到鎖定查找器件142中,使得接著的讀鎖定請求發(fā)現(xiàn)存儲器位置被鎖定。鎖定請求在被鎖定的存儲器位置上不能處理,直到來自微引擎22a-22f的開鎖請求對該存儲器位置開鎖58。
如果命令解碼器和地址發(fā)生器138確定存儲器訪問請求52是讀鎖定請求,則控制器26b訪問鎖定查找器件142,以便確定該存儲器位置是否已被鎖定。這種訪問56確定是否讀鎖定請求得到執(zhí)行62或者進入讀鎖定丟失隊列120d,等待存儲器位置被開鎖。
如果存儲器位置由任何優(yōu)先鎖定請求鎖定,則讀鎖定請求失敗,并被存儲在讀鎖定丟失隊列120d的末尾64??刂破?6b進到接收50下一請求。
如果存儲器位置被開鎖,則鎖定查找器件142檢查60是否讀鎖定丟失隊列120d為空。如果讀鎖定丟失隊列120d為空,則表示沒有先前的讀鎖定請求等待處理。因此,處理讀鎖定請求由SRAM接口140用作存儲器訪問的地址,執(zhí)行62對存儲器16b的SRAM地址讀/寫請求,并接著鎖定存儲器位置。然后,控制器26b接收50下一個請求。
如果讀鎖定丟失請求120d非空,則表示至少有一個優(yōu)先讀鎖定請求等待處理。為了保證處理讀鎖定請求的先進/先出的次序,將讀鎖定請求存儲64在讀鎖定丟失請求隊列120d的末尾。讀鎖定請求繼續(xù)在讀鎖定丟失隊列120d中排隊,直到控制器26b接收50到一個開鎖請求并識別52是開鎖請求。在需要末尾鎖定后,由程序中的微型控制指令的操作,對存儲器位置進行開鎖。一旦接收50到開鎖請求,通過清除CAM142中的有效位對存儲器位置開鎖58。在開鎖后58,讀鎖定故障隊列120d成為最高優(yōu)先級隊列120,給予所有排隊的讀鎖定丟失以機會,以便發(fā)出存儲器鎖定請求。
參照圖4,對讀鎖定丟失隊列120d進行測試69,以便確定讀鎖定丟失隊列120d的頭是否允許鎖定。繼續(xù)測試69,直到讀鎖定丟失隊列120d不能提供允許,或者直到在讀鎖定丟失隊列120d中沒有輸入項。通過使其贏得70在移去隊列仲裁單元124中的下一個仲裁70,給予讀鎖定丟失隊列120d以最高優(yōu)先級。鎖定查找表器件143進行檢查72,以便確定是否最高讀鎖定請求(在讀鎖定丟失隊列120d中第1個存儲的)正在請求讀一已開鎖的存儲器位置。如果讀鎖定請求是用于鎖定的位置,則讀鎖定丟失隊列120d保留為保證前述的先進/先出次序,并且測試69末尾78。如果讀鎖定請求是用于開鎖的位置,則由SRAM接口140使用存儲器訪問的地址,以便對存儲器16b執(zhí)行74 SRAM地址讀/寫請求。在執(zhí)行74后,鎖定查找表器件142進行檢查76,以便確定讀鎖定丟失隊列120d是否為空。如果定讀鎖定丟失隊列120d為空,則測試69末尾78。否則,測試69繼續(xù),直到讀鎖定丟失隊列120d贏得在移去隊列仲裁單元124中的另一個仲裁70。
其它的實施例在以下的權(quán)利要求書的范圍內(nèi)。
權(quán)利要求
1.一種管理存儲器訪問隨機訪問存儲器的方法,其特征在于,包括取得讀鎖定存儲器訪問請求,和當(dāng)讀鎖定存儲器訪問請求正在請求訪問開鎖的存儲器位置并且讀鎖定丟失隊列包含至少一個讀鎖定存儲器訪問請求時,將所述讀鎖定存儲器訪問請求放置在讀鎖定丟失隊列的末尾。
2.如權(quán)利要求1所述的方法,其特征在于,所述隨機訪問存儲器位于平行的基于硬件的多線程處理器中。
3.如權(quán)利要求1所述的方法,其特征在于,所述隨機訪問存儲器包括靜態(tài)隨機訪問存儲器。
4.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)讀鎖定存儲器訪問請求正在請求訪問鎖定的存儲器位置時,將所述讀鎖定存儲器訪問請求放置在讀鎖定丟失隊列的末尾。
5.如權(quán)利要求1所述的方法,其特征在于,還包括從讀鎖定丟失隊列中,移去依次放置在所述讀鎖定丟失隊列中的讀鎖定存儲器訪問請求。
6.如權(quán)利要求1所述的方法,其特征在于,從讀隊列取得所述讀鎖定存儲器訪問請求。
7.如權(quán)利要求1所述的方法,其特征在于,從次序隊列取得所述讀鎖定存儲器訪問請求。
8.如權(quán)利要求1所述的方法,其特征在于,所述讀鎖定丟失隊列包含的進入項數(shù),等于執(zhí)行所述讀鎖定存儲器訪問請求的環(huán)境數(shù)減1。
9.如權(quán)利要求1所述的方法,其特征在于,還包括將讀鎖定存儲器訪問請求,放置在包含正在請求訪問相同的存儲器位置的讀鎖定存儲器訪問請求的隊列中。
10.一種產(chǎn)品,其特征在于,包括計算機可讀媒體,存儲用于管理存儲器訪問隨機訪問存儲器的計算機可執(zhí)行指令,所述指令使計算機取得讀鎖定存儲器訪問請求,和當(dāng)讀鎖定存儲器訪問請求正在請求訪問開鎖的存儲器位置并且讀鎖定丟失隊列包含至少一個讀鎖定存儲器訪問請求時,將所述讀鎖定存儲器訪問請求放置在讀鎖定丟失隊列的末尾。
11.如權(quán)利要求10所述的產(chǎn)品,其特征在于,所述隨機訪問存儲器位于平行的基于硬件的多線程處理器中。
12.如權(quán)利要求10所述的產(chǎn)品,其特征在于,所述隨機訪問存儲器包括靜態(tài)隨機訪問存儲器。
13.如權(quán)利要求10所述的產(chǎn)品,其特征在于,所述指令還使計算機當(dāng)讀鎖定存儲器訪問請求正在請求訪問鎖定的存儲器位置時,將所述讀鎖定存儲器訪問請求放置在讀鎖定丟失隊列的末尾。
14.如權(quán)利要求10所述的產(chǎn)品,其特征在于,所述指令還使計算機從讀鎖定丟失隊列中,移去依次放置在所述讀鎖定丟失隊列中的讀鎖定存儲器訪問請求。
15.如權(quán)利要求10所述的產(chǎn)品,其特征在于,從讀隊列取得所述讀鎖定存儲器訪問請求。
16.如權(quán)利要求10所述的產(chǎn)品,其特征在于,從次序隊列取得所述讀鎖定存儲器訪問請求。
17.如權(quán)利要求10所述的產(chǎn)品,其特征在于,所述讀鎖定丟失隊列包含的輸入項數(shù),等于執(zhí)行所述讀鎖定存儲器訪問請求的環(huán)境數(shù)減1。
18.如權(quán)利要求10所述的產(chǎn)品,其特征在于,所述指令還使計算機將讀鎖定存儲器訪問請求,放置在包含正在請求訪問相同的存儲器位置的讀鎖定存儲器訪問請求的隊列中。
19.一種管理訪問隨機訪問存儲器的控制器,其特征在于,包括地址內(nèi)容可尋址存儲器,支持存儲器中鎖定的位置,和讀鎖定丟失隊列,當(dāng)所述讀鎖定丟失隊列包含至少1個輸入項時,存儲在地址內(nèi)容可尋址存儲器中開鎖的存儲器位置請求訪問的讀鎖定存儲器訪問請求。
20.如權(quán)利要求19所述的控制器,其特征在于,所述隨機訪問存儲器位于平行的基于硬件的多線程處理器中。
21.如權(quán)利要求19所述的控制器,其特征在于,所述隨機訪問存儲器包括靜態(tài)隨機訪問存儲器。
22.如權(quán)利要求19所述的控制器,其特征在于,當(dāng)讀鎖定存儲器訪問請求正在請求訪問鎖定的存儲器位置時,將所述讀鎖定存儲器訪問請求存儲在讀鎖定丟失隊列的末尾。
23.如權(quán)利要求19所述的控制器,其特征在于,從讀鎖定丟失隊列中,移去依次放置在所述讀鎖定丟失隊列中的讀鎖定存儲器訪問請求。
24.如權(quán)利要求19所述的控制器,其特征在于,所述讀鎖定丟失隊列包含的輸入項數(shù),等于執(zhí)行所述讀鎖定存儲器訪問請求的環(huán)境數(shù)減1。
全文摘要
管理存儲器訪問隨機訪問存儲器,包括取得讀鎖定存儲器訪問請求和當(dāng)讀鎖定存儲器訪問請求正在請求訪問開鎖的存儲器位置并且讀鎖定丟失隊列包含至少一個讀鎖定存儲器訪問請求時,將所述讀鎖定存儲器訪問請求放置在讀鎖定丟失隊列的末尾。
文檔編號G06F9/46GK1437727SQ00819180
公開日2003年8月20日 申請日期2000年12月8日 優(yōu)先權(quán)日1999年12月28日
發(fā)明者G·沃爾里奇, D·伯恩斯坦因, M·J·阿迪萊塔, W·威勒, D·卡特 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1