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

一種旗標(biāo)寄存器和避免多進(jìn)程間資源訪問(wèn)沖突的方法

文檔序號(hào):6381730閱讀:297來(lái)源:國(guó)知局
專利名稱:一種旗標(biāo)寄存器和避免多進(jìn)程間資源訪問(wèn)沖突的方法
技術(shù)領(lǐng)域
本發(fā)明涉及多進(jìn)程技術(shù),特別是一種旗標(biāo)寄存器和避免多進(jìn)程間資源訪問(wèn)沖突的方法。
背景技術(shù)
在多進(jìn)程運(yùn)行環(huán)境下,一個(gè)需要重點(diǎn)考慮的問(wèn)題是如何在多進(jìn)程運(yùn)行環(huán)境下,避免不同進(jìn)程間在訪問(wèn)相同資源時(shí)的資源沖突,另外一個(gè)需要考慮的問(wèn)題是在存在資源沖突時(shí)和資源沖突解除時(shí)如何快速地完成進(jìn)程間狀態(tài)的切換。很多實(shí)時(shí)系統(tǒng),例如網(wǎng)絡(luò)處理器和電信交換機(jī)系統(tǒng)等都普遍存在著這些和多進(jìn)程間資源訪問(wèn)沖突有關(guān)的問(wèn)題。
網(wǎng)絡(luò)處理器是一種專門用來(lái)處理數(shù)據(jù)包的特殊處理器。這種處理器是專門為優(yōu)化數(shù)據(jù)包的處理而設(shè)計(jì)的,它將端口送過(guò)來(lái)的包快速處理后以線速率送到下一個(gè)節(jié)點(diǎn)。如同通用處理器一樣,網(wǎng)絡(luò)處理器一般采用多級(jí)流水線結(jié)構(gòu),保證每個(gè)時(shí)鐘周期完成一條指令。為簡(jiǎn)化設(shè)計(jì)及降低功耗,網(wǎng)絡(luò)處理器一般采用了精簡(jiǎn)指令集(RISC)方案。另一方面,為提供極高的速度和較高級(jí)的編程界面,網(wǎng)絡(luò)處理器一般提供了多進(jìn)程運(yùn)行環(huán)境,在數(shù)據(jù)包的層次上給予多級(jí)流水線支持,即同一時(shí)刻可以有多個(gè)數(shù)據(jù)流經(jīng)受處理。網(wǎng)絡(luò)處理器在多進(jìn)程運(yùn)行環(huán)境下,需要重點(diǎn)考慮如何避免多進(jìn)程運(yùn)行環(huán)境下不同進(jìn)程間在訪問(wèn)相同資源時(shí)存在資源沖突的問(wèn)題,另外一個(gè)要考慮的因素是在存在資源沖突時(shí)和資源沖突解除時(shí)如何快速地完成進(jìn)程間狀態(tài)的切換。
除了網(wǎng)絡(luò)處理器中存在這種多進(jìn)程間資源訪問(wèn)沖突的問(wèn)題,在很多其它實(shí)時(shí)系統(tǒng)中也存在同樣的問(wèn)題。比如在一個(gè)電信交換機(jī)系統(tǒng)中,不同的電話線路需要獲取系統(tǒng)中話音存儲(chǔ)單元的使用權(quán),而交換芯片的話音存儲(chǔ)單元是有限的。電信交換機(jī)系統(tǒng)中新接入的線路終端是連續(xù)不斷和隨機(jī)的,為了保證不同的線路終端能不重復(fù)地占用相同的話音存儲(chǔ)單元,交換機(jī)系統(tǒng)也需要解決這種資源沖突的問(wèn)題。
為了避免不同進(jìn)程間出現(xiàn)資源訪問(wèn)沖突的問(wèn)題,現(xiàn)有技術(shù)中通常采用軟件實(shí)現(xiàn)的方式。例如現(xiàn)有的網(wǎng)絡(luò)處理器中避免多進(jìn)程間資源訪問(wèn)沖突的基本思想為當(dāng)網(wǎng)絡(luò)處理器不同進(jìn)程間存在訪問(wèn)相同資源的可能時(shí),首先在不同進(jìn)程都能訪問(wèn)到的一個(gè)通用寄存器中選定一個(gè)特殊的位作為旗標(biāo)位,然后約定好資源占用時(shí)或釋放時(shí)該旗標(biāo)位具體的值,例如可以約定1表示資源占用,而0表示資源釋放,這樣當(dāng)某個(gè)進(jìn)程訪問(wèn)這個(gè)資源時(shí),它首先設(shè)置這個(gè)旗標(biāo)位為1,表示擁有這個(gè)資源的使用權(quán),然后再對(duì)資源進(jìn)行操作,當(dāng)操作完畢后,再重新設(shè)置該旗標(biāo)位為0,表示釋放了對(duì)這個(gè)資源的使用權(quán)。當(dāng)別的進(jìn)程需要操作這個(gè)資源時(shí),它首先要檢查這個(gè)旗標(biāo)位是否為1,如果不為1,那么它就操作這個(gè)資源,否則,這個(gè)進(jìn)程就需要進(jìn)入掛起狀態(tài),一直等到旗標(biāo)位被別的進(jìn)程釋放。
如圖1所示,現(xiàn)有技術(shù)中網(wǎng)絡(luò)處理器避免多進(jìn)程間資源訪問(wèn)沖突的流程如下步驟101讀取通用寄存器中已選定的旗標(biāo)位;步驟102判斷該通用寄存器中已選定旗標(biāo)位的值是否與預(yù)先約定的被占用值相等,如果是則掛起進(jìn)程,并等到下次激活的時(shí)候返回步驟101,如果不是則執(zhí)行步驟103;步驟103設(shè)置該通用寄存器中已選定旗標(biāo)位的值為預(yù)先約定的被占用值;步驟104進(jìn)程操作資源;步驟105設(shè)置旗標(biāo)位為預(yù)先約定的釋放值。
這種現(xiàn)有技術(shù)的實(shí)現(xiàn)方式因所使用的指令較多而存在效率低的缺點(diǎn)。例如在網(wǎng)絡(luò)處理器設(shè)計(jì)中,為了保證數(shù)據(jù)包能夠以線速進(jìn)行轉(zhuǎn)發(fā),提高網(wǎng)絡(luò)處理器的效率,每個(gè)數(shù)據(jù)包能夠獲得的指令周期應(yīng)該越少越好,因此需要重點(diǎn)考慮如何盡量減少微碼指令和減少處理每個(gè)數(shù)據(jù)包的硬件周期,而現(xiàn)有技術(shù)通過(guò)軟件方式設(shè)定旗標(biāo)位,所使用的指令較多,從而應(yīng)用現(xiàn)有技術(shù)就大大降低了網(wǎng)絡(luò)處理器的轉(zhuǎn)發(fā)效率。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的是提出一種旗標(biāo)寄存器,通過(guò)硬件的方式高效率地避免多進(jìn)程訪問(wèn)時(shí)存在的多資源訪問(wèn)沖突問(wèn)題。
本發(fā)明的另一目的是提出一種避免多進(jìn)程間資源訪問(wèn)沖突的方法,采用旗標(biāo)寄存器和進(jìn)程掛起機(jī)制相結(jié)合的方法,高效率地避免多進(jìn)程訪問(wèn)時(shí)存在的多資源訪問(wèn)沖突問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是這樣的一種旗標(biāo)寄存器,由不少于1個(gè)旗標(biāo)位組成,每一旗標(biāo)位至少包括初始化單元、判斷比較及數(shù)值刷新單元、旗標(biāo)值存儲(chǔ)單元和結(jié)果輸出單元;其中,初始化單元用于對(duì)旗標(biāo)值存儲(chǔ)單元初始賦值,判斷比較及數(shù)值刷新單元用于比較旗標(biāo)值存儲(chǔ)單元中已保存的旗標(biāo)值和要設(shè)置的旗標(biāo)值,將更新后的旗標(biāo)值輸出給旗標(biāo)值存儲(chǔ)單元并將比較結(jié)果輸出給結(jié)果輸出單元,旗標(biāo)值存儲(chǔ)單元用于保存旗標(biāo)值,結(jié)果輸出單元用于根據(jù)所述比較結(jié)果輸出進(jìn)程掛起控制信號(hào)。
旗標(biāo)值存儲(chǔ)單元進(jìn)一步連接有監(jiān)控輸出單元,監(jiān)控輸出單元用于讀取旗標(biāo)值存儲(chǔ)單元所保存的旗標(biāo)值。
判斷比較及數(shù)值刷新單元進(jìn)一步連接有旁路單元,旁路單元進(jìn)一步與旗標(biāo)值存儲(chǔ)單元連接,旁路單元用于保證判斷比較及數(shù)值刷新單元所獲取的旗標(biāo)值存儲(chǔ)單元的值與正要寫入到旗標(biāo)值存儲(chǔ)單元的值相等。
旗標(biāo)值存儲(chǔ)單元為D觸發(fā)器、或隨機(jī)存儲(chǔ)器RAM。
判斷比較及數(shù)值刷新單元為D觸發(fā)器、或隨機(jī)存儲(chǔ)器RAM。
監(jiān)控輸出單元為選擇器MUX0。
旁路單元包括選擇器MUX1和與門AND0,與門AND0的輸出端連接選擇器MUX1的輸入端。
結(jié)果輸出單元包括非門NOT1和與門AND2,非門NOT1的輸出端連接與門AND2的輸入端。
判斷比較及數(shù)值刷新單元包括D寄存器D1、D寄存器D2、D寄存器D3、非門NOT0、與門AND1、選擇器MUX2、選擇器MUX3和異或門XOR0,D寄存器D1輸出端連接非門NOT0輸入端和異或門XOR0第一輸入端,非門NOT0輸出端連接選擇器MUX3第一輸入端,選擇器MUX3輸出端連接旗標(biāo)值存儲(chǔ)單元,D寄存器D2輸出端連接異或門XOR0第二輸入端,異或門XOR0輸出端連接與門AND1第一輸入端和非門NOT1輸入端,D寄存器D3輸出端連接與門AND1第二輸入端,與門AND1輸出端連接選擇器MUX2第一輸入端。
初始化單元包括選擇器MUX2和選擇器MUX3,選擇器MUX2輸出端連接旗標(biāo)值存儲(chǔ)單元,選擇器MUX3輸出端連接旗標(biāo)值存儲(chǔ)單元。
一種避免多進(jìn)程間資源訪問(wèn)沖突的方法,至少包括以下步驟A1、當(dāng)前要操作公共資源的進(jìn)程發(fā)出設(shè)置旗標(biāo)寄存器中旗標(biāo)位的值為預(yù)先約定的被占用值的指令,并判斷設(shè)置是否成功,如果成功則執(zhí)行步驟A2,否則掛起當(dāng)前發(fā)出指令的進(jìn)程,等到下次激活時(shí)候返回步驟A1;A2、步驟A1所述的發(fā)出指令的進(jìn)程操作公共資源;A3、步驟A1所述的發(fā)出指令的進(jìn)程設(shè)置步驟A1所述的該旗標(biāo)位的值為預(yù)先約定的釋放值。
根據(jù)步驟A1所述當(dāng)前要操作公共資源的進(jìn)程發(fā)出的指令,進(jìn)一步生成步驟A1所述旗標(biāo)位的讀片選信號(hào)和該旗標(biāo)位所設(shè)置的數(shù)據(jù)。
從以上的技術(shù)方案可以看出,本發(fā)明提供了一種旗標(biāo)寄存器,這種旗標(biāo)寄存器由不少于1個(gè)旗標(biāo)位組成,其中每一旗標(biāo)位都實(shí)現(xiàn)了在寫入旗標(biāo)值的操作時(shí),首先把要寫入的旗標(biāo)值與該旗標(biāo)位原來(lái)保存的旗標(biāo)值進(jìn)行比較,然后把更新的旗標(biāo)值保存到旗標(biāo)位,同時(shí)根據(jù)比較結(jié)果輸出相應(yīng)的進(jìn)程掛起控制信號(hào),從而本發(fā)明通過(guò)增加硬件旗標(biāo)寄存器的方式實(shí)現(xiàn)了對(duì)資源訪問(wèn)的控制,然后通過(guò)輸出的進(jìn)程掛起控制信號(hào)來(lái)控制相應(yīng)的進(jìn)程是繼續(xù)執(zhí)行還是掛起,因此本發(fā)明利用旗標(biāo)寄存器和進(jìn)程掛起機(jī)制相結(jié)合的方法避免了多進(jìn)程間訪問(wèn)相同資源存在的沖突。同時(shí),因?yàn)樵诂F(xiàn)有技術(shù)中需要執(zhí)行讀回通用寄存器中設(shè)定旗標(biāo)位的值、判斷該旗標(biāo)位是否與預(yù)先約定的被占用值相等、設(shè)置通用寄存器中設(shè)定旗標(biāo)位為預(yù)先預(yù)定的被占用值這三條指令來(lái)實(shí)現(xiàn)對(duì)資源的訪問(wèn)控制,而本發(fā)明只需要用一條指令來(lái)執(zhí)行,即執(zhí)行設(shè)置旗標(biāo)寄存器的旗標(biāo)位為預(yù)先設(shè)定的被占用值,其中如果旗標(biāo)寄存器中旗標(biāo)位的值為預(yù)先約定的釋放值,則設(shè)置成功,流程正常往下運(yùn)行,否則進(jìn)程掛起。因此如果某一個(gè)流程需要操作n個(gè)共享資源,那么應(yīng)用本發(fā)明后節(jié)省了2n條指令,所以本發(fā)明大大減少了指令數(shù)和大大提高了處理效率,極高效率地避免了多進(jìn)程訪問(wèn)時(shí)存在的多資源訪問(wèn)沖突問(wèn)題。例如假設(shè)網(wǎng)絡(luò)處理器中一個(gè)簡(jiǎn)單的微碼轉(zhuǎn)發(fā)程序所使用的指令個(gè)數(shù)在現(xiàn)有技術(shù)下為20個(gè),且每個(gè)進(jìn)程需要操作的公共資源為1個(gè),應(yīng)用本發(fā)明后可以節(jié)省2個(gè)指令,微碼轉(zhuǎn)發(fā)效率提高了2/20=10%,而且在微碼指令越少,不同進(jìn)程間操作公共資源的個(gè)數(shù)越多時(shí),本發(fā)明的效果越明顯。因此可以看出,應(yīng)用本發(fā)明大大減少了指令的個(gè)數(shù),從而以極高的效率避免了多進(jìn)程間資源訪問(wèn)沖突的問(wèn)題。
同時(shí),本發(fā)明還提供了一種避免多進(jìn)程間資源訪問(wèn)沖突問(wèn)題的方法,通過(guò)把旗標(biāo)寄存器和進(jìn)程掛起機(jī)制相結(jié)合的方式,把現(xiàn)有技術(shù)中通過(guò)軟件實(shí)現(xiàn)的指令通過(guò)硬件旗標(biāo)寄存器來(lái)實(shí)現(xiàn),從而保證了既能避免不同進(jìn)程間訪問(wèn)相同資源時(shí)產(chǎn)生沖突的問(wèn)題,又簡(jiǎn)化了判斷機(jī)制,大大減少了指令數(shù),進(jìn)而以極高的效率避免了多進(jìn)程間資源訪問(wèn)沖突的問(wèn)題。


圖1為現(xiàn)有技術(shù)中避免多進(jìn)程資源訪問(wèn)沖突的流程圖。
圖2為本發(fā)明旗標(biāo)寄存器原理示意圖。
圖3為本發(fā)明旗標(biāo)寄存器1位的功能實(shí)現(xiàn)示意圖。
圖4為本發(fā)明一實(shí)施例32位旗標(biāo)寄存器原理示意圖。
圖5為本發(fā)明一實(shí)施例中旗標(biāo)寄存器每一位功能實(shí)現(xiàn)示意圖。
圖6為本發(fā)明一實(shí)施例中避免多進(jìn)程資源訪問(wèn)沖突的流程圖。
圖7為本發(fā)明一實(shí)施例中旗標(biāo)寄存器第0位的功能實(shí)現(xiàn)邏輯電路示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
本發(fā)明的主要思想為通過(guò)硬件的方式實(shí)現(xiàn)在多進(jìn)程訪問(wèn)相同資源時(shí)對(duì)各個(gè)進(jìn)程的控制,本發(fā)明是通過(guò)增加旗標(biāo)寄存器的方式,并配合進(jìn)程掛起機(jī)制來(lái)避免多進(jìn)程訪問(wèn)時(shí)可能存在的資源沖突問(wèn)題。為實(shí)現(xiàn)本發(fā)明,首先要在硬件系統(tǒng)中增加旗標(biāo)寄存器,這種旗標(biāo)寄存器由不少于1個(gè)旗標(biāo)位組成,其中每一旗標(biāo)位都需要實(shí)現(xiàn)在寫入旗標(biāo)值的操作時(shí),首先與該旗標(biāo)位原來(lái)保存的旗標(biāo)值進(jìn)行比較,然后把更新的旗標(biāo)值保存到旗標(biāo)位,同時(shí)輸出相應(yīng)的進(jìn)程掛起控制信號(hào),然后通過(guò)輸出的進(jìn)程掛起控制信號(hào)來(lái)控制進(jìn)程。
圖2為本發(fā)明旗標(biāo)寄存器原理示意圖。如圖2所示,旗標(biāo)寄存器由不少于1位的旗標(biāo)位所組成,每一旗標(biāo)位有兩個(gè)輸入信號(hào),分別為初始化信號(hào)和設(shè)置數(shù)據(jù)信號(hào),同時(shí)每一旗標(biāo)位有一個(gè)輸出信號(hào),為訪問(wèn)拒絕信號(hào),也就是進(jìn)程掛起控制信號(hào)。每一旗標(biāo)位首先根據(jù)初始化信號(hào)進(jìn)行旗標(biāo)位初始化,然后根據(jù)該旗標(biāo)位的設(shè)置數(shù)據(jù)信號(hào)而相應(yīng)輸出該旗標(biāo)位訪問(wèn)拒絕信號(hào),即進(jìn)程掛起控制信號(hào)。實(shí)現(xiàn)旗標(biāo)寄存器功能的關(guān)鍵在于每一旗標(biāo)位功能的實(shí)現(xiàn),即每一旗標(biāo)位都需要實(shí)現(xiàn)在寫入0或1的操作時(shí),同時(shí)輸出相應(yīng)的進(jìn)程掛起控制信號(hào)。
基于圖2所示的旗標(biāo)寄存器,圖3為本發(fā)明旗標(biāo)寄存器每一旗標(biāo)位的功能實(shí)現(xiàn)示意圖。如圖3所示,旗標(biāo)寄存器的每一旗標(biāo)位至少由初始化單元、判斷比較及數(shù)值刷新單元、旗標(biāo)值存儲(chǔ)單元和結(jié)果輸出單元所組成,判斷比較及數(shù)值刷新單元與旗標(biāo)值存儲(chǔ)單元與結(jié)果輸出單元連接,旗標(biāo)值存儲(chǔ)單元與判斷比較及數(shù)值刷新單元與初始化單元連接。
圖3中,初始化單元用于對(duì)旗標(biāo)值存儲(chǔ)單元進(jìn)行初始賦值。判斷比較及數(shù)值刷新單元用于比較旗標(biāo)值存儲(chǔ)單元中已保存的旗標(biāo)值和將要設(shè)置的旗標(biāo)值,將更新后的旗標(biāo)值輸出給旗標(biāo)值存儲(chǔ)單元并將比較結(jié)果輸出給結(jié)果輸出單元。旗標(biāo)值存儲(chǔ)單元用于保存該旗標(biāo)位的旗標(biāo)值。結(jié)果輸出單元用于根據(jù)所述比較結(jié)果輸出相應(yīng)位的位訪問(wèn)拒絕信號(hào),即進(jìn)程掛起的控制信號(hào)。
基于圖2和圖3所示的旗標(biāo)寄存器,圖4為本發(fā)明一實(shí)施例的旗標(biāo)寄存器示意圖。如圖4所示,該旗標(biāo)寄存器有32個(gè)旗標(biāo)位組成,每個(gè)旗標(biāo)位的輸入信號(hào)有流水線寄存器讀片選信號(hào)rd_de_rd_cs_sem_seg、流水線寄存器設(shè)置數(shù)據(jù)rd_de_vi_ctrl、直接寫寄存器片選信號(hào)core_lsu_wr_cs_sem、直接寫寄存器數(shù)據(jù)信號(hào)core_lsu_wr_sr_data、初始化完成標(biāo)志信號(hào)init_done和時(shí)鐘信號(hào)clk,每個(gè)旗標(biāo)位的輸出信號(hào)為寄存器位訪問(wèn)拒絕信號(hào)bitsemrej_seg。
表1為32位旗標(biāo)寄存器對(duì)外接口信號(hào)描述表。

表1 32位旗標(biāo)寄存器對(duì)外接口信號(hào)描述表基于圖3和圖4所示的32位旗標(biāo)寄存器,圖5為其中每一旗標(biāo)位的功能原理示意圖。如圖5所示,該32位旗標(biāo)寄存器每一位都包括初始化單元、判斷比較及數(shù)值刷新單元、監(jiān)控輸出單元、旁路單元、旗標(biāo)值存儲(chǔ)單元和結(jié)果輸出單元。
圖5中,初始化單元用于根據(jù)直接寫寄存器片選信號(hào)core_lsu_wr_cs_sem、直接寫寄存器數(shù)據(jù)信號(hào)core_lsu_wr_sr_data和初始化完成標(biāo)志信號(hào)init_done對(duì)旗標(biāo)值存儲(chǔ)單元進(jìn)行初始賦值。init_done信號(hào)是硬件系統(tǒng)初始化完成標(biāo)志,當(dāng)init_done信號(hào)無(wú)效,表示硬件系統(tǒng)沒(méi)有初始化完成,此時(shí)可以通過(guò)直接寫寄存器片選信號(hào)core_lsu_wr_cs_sem和直接寫寄存器數(shù)據(jù)信號(hào)core_lsu_wr_sr_data來(lái)完成對(duì)旗標(biāo)值存儲(chǔ)單元初始值的初始化,一般都將旗標(biāo)值存儲(chǔ)單元初始化為釋放標(biāo)志。當(dāng)init_done信號(hào)為有效后,直接寫寄存器片選信號(hào)core_lsu_wr_cs_sem、直接寫寄存器數(shù)據(jù)信號(hào)core_lsu_wr_sr_data兩個(gè)信號(hào)就不起作用。
判斷比較及數(shù)值刷新單元根據(jù)流水線寄存器讀片選信號(hào)rd_de_rd_cs_sem_seg和流水線寄存器設(shè)置數(shù)據(jù)rd_de_vi_ctrl同旗標(biāo)值存儲(chǔ)單元中已保存的旗標(biāo)值進(jìn)行比較,并且將更新后的旗標(biāo)值輸出給旗標(biāo)值存儲(chǔ)單元和將比較結(jié)果輸出給結(jié)果輸出單元。
旗標(biāo)值存儲(chǔ)單元用于保存該旗標(biāo)位的旗標(biāo)值。
結(jié)果輸出單元用于根據(jù)比較結(jié)果輸出相應(yīng)旗標(biāo)位的位訪問(wèn)拒絕信號(hào)bitsemrej_seg,即進(jìn)程掛起的控制信號(hào)。
監(jiān)控輸出單元與旗標(biāo)值存儲(chǔ)單元連接,用于輸出旗標(biāo)值存儲(chǔ)單元的具體旗標(biāo)值,監(jiān)控輸出單元可以監(jiān)控和調(diào)試硬件旗標(biāo)寄存器。監(jiān)控輸出單元通過(guò)直接讀寄存器片選信號(hào)core_lsu_rd_cs_sem和直接讀寄存器數(shù)據(jù)信號(hào)lsu_core_sr_data來(lái)讀取旗標(biāo)寄存器的值。如果要簡(jiǎn)化電路設(shè)計(jì),也可以去掉監(jiān)控輸出單元。
旁路單元分別與判斷比較及數(shù)值刷新單元和旗標(biāo)值存儲(chǔ)單元連接。當(dāng)判斷比較及數(shù)值刷新單元同時(shí)對(duì)旗標(biāo)值存儲(chǔ)單元進(jìn)行讀和寫操作時(shí),旁路單元用于保證當(dāng)前時(shí)刻判斷比較及數(shù)值刷新單元所獲取的存儲(chǔ)單元的值就是正要寫入到旗標(biāo)值存儲(chǔ)單元的值,以避免要等一個(gè)全部流水線周期后才能再重新讀取該值,進(jìn)而提高旗標(biāo)寄存器每一旗標(biāo)位的處理效率。同樣,如果要簡(jiǎn)化電路設(shè)計(jì),也可以去掉旁路單元。
本發(fā)明實(shí)現(xiàn)避免多進(jìn)程間資源訪問(wèn)沖突的關(guān)鍵主要包括兩點(diǎn),首先在此硬件系統(tǒng)中增加硬件旗標(biāo)寄存器,其次是在此硬件系統(tǒng)中發(fā)出一條指令。這條指令包括三個(gè)功能,首先讀出旗標(biāo)寄存器中某一旗標(biāo)位的值,其次判斷所讀出旗標(biāo)位的值是否為預(yù)先約定的被占用值,如果所讀出旗標(biāo)位的值為預(yù)先約定的釋放值,則設(shè)置此旗標(biāo)位為預(yù)先約定的被占用值,否則設(shè)置不成功,發(fā)出此指令的進(jìn)程掛起。
基于圖2和圖3所示的旗標(biāo)寄存器,圖6為本發(fā)明中設(shè)置旗標(biāo)寄存器一實(shí)施例的流程示意圖,包括以下步驟步驟601當(dāng)前要操作公共資源的進(jìn)程發(fā)出設(shè)置旗標(biāo)寄存器中旗標(biāo)位的值為預(yù)先約定的被占用值的指令,并判斷設(shè)置是否成功,如果成功就執(zhí)行下一步,否則發(fā)出指令的進(jìn)程掛起,等到下次激活的時(shí)候返回步驟601;步驟602發(fā)出指令的進(jìn)程操作公共資源;步驟603發(fā)出指令的進(jìn)程設(shè)置該旗標(biāo)位的值為預(yù)先約定的釋放值。
在以上過(guò)程中,對(duì)某公共資源有訪問(wèn)沖突的各個(gè)進(jìn)程對(duì)應(yīng)于旗標(biāo)寄存器的某一個(gè)旗標(biāo)位,然后該有相同的公共資源訪問(wèn)沖突的各個(gè)進(jìn)程通過(guò)設(shè)置相對(duì)應(yīng)的旗標(biāo)位的值進(jìn)行對(duì)公共資源的訪問(wèn)控制。換句話說(shuō)就是,旗標(biāo)寄存器中的每個(gè)旗標(biāo)位對(duì)應(yīng)一種某公共資源被多進(jìn)程訪問(wèn)發(fā)生沖突的情況。
當(dāng)執(zhí)行步驟601所述的指令時(shí),可在流水線執(zhí)行的譯碼階段將這條指令翻譯為該旗標(biāo)位的讀片選信號(hào)和設(shè)置數(shù)據(jù)。為了舉例說(shuō)明,假設(shè)采用第0位旗標(biāo)位,同時(shí)約定當(dāng)旗標(biāo)位為1表示資源被占用,而旗標(biāo)位為0表示資源釋放。此時(shí)指令是要將第0位設(shè)置為1,在流水線執(zhí)行的譯碼階段翻譯為第0位的讀片選信號(hào)rd_de_rd_cs_sem_seg
和第0位的設(shè)置數(shù)據(jù)rd_de_vi_ctrl,其中第0位的讀片選信號(hào)rd_de_rd_cs_sem_seg
為1,表示第0位片選信號(hào)有效,第0位的設(shè)置數(shù)據(jù)rd_de_vi_ctrl為1,表示第0位要設(shè)置的數(shù)據(jù)為1。如果第0位原來(lái)的值為0,則設(shè)置成功,將第0位的值改為1,同時(shí)輸出第0位寄存器位訪問(wèn)拒絕信號(hào)bitsemrej_seg
為0,即進(jìn)程掛起控制信號(hào)為0,此進(jìn)程掛起控制信號(hào)又輸出給系統(tǒng)中別的控制模塊以控制執(zhí)行此指令的進(jìn)程順序正常執(zhí)行。反之,如果旗標(biāo)位中原來(lái)的值為1,則設(shè)置不成功,此旗標(biāo)位的值不改變,同時(shí)輸出第0位寄存器位訪問(wèn)拒絕信號(hào)為1,指示執(zhí)行此指令的進(jìn)程掛起,一直等到此寄存器的值變?yōu)?后,掛起的進(jìn)程才能正常地設(shè)置此旗標(biāo)位并且輸出位訪問(wèn)拒絕信號(hào)為0,同時(shí)程序又能順序往下執(zhí)行。當(dāng)指令要將第0位設(shè)置為0時(shí),無(wú)論旗標(biāo)位原來(lái)的值為0或1,都將此旗標(biāo)位設(shè)置為0。
以上過(guò)程中,是在流水線執(zhí)行的譯碼階段產(chǎn)生旗標(biāo)位的讀片選信號(hào)和設(shè)置數(shù)據(jù),也可以不在譯碼階段,而是通過(guò)對(duì)流水線的綜合考慮,在流水線的其他階段產(chǎn)生旗標(biāo)位的讀片選信號(hào)和設(shè)置數(shù)據(jù)。
預(yù)先約定旗標(biāo)位被占用值為1,旗標(biāo)位釋放值為0,基于圖5所示的旗標(biāo)寄存器每一位的功能原理示意圖,圖7為應(yīng)用本發(fā)明一實(shí)施例的第0位的功能實(shí)現(xiàn)邏輯電路示意圖。如圖7所示,旗標(biāo)寄存器每一位包含4個(gè)D寄存器,分別為D寄存器D0、D寄存器D1、D寄存器D2、D寄存器D3,1個(gè)異或門XOR0,3個(gè)與門,分別為與門AND0、與門AND1、與門AND2,4個(gè)選擇器,分別為選擇器MUX0、選擇器MUX1、選擇器MUX2、選擇器MUX3,2個(gè)非門,分別為非門NOT0、非門NOT1。
選擇器MUX0對(duì)應(yīng)于圖5的監(jiān)控輸出單元,D寄存器D0對(duì)應(yīng)于圖5的旗標(biāo)值存儲(chǔ)單元,與門AND0和選擇器MUX1對(duì)應(yīng)于圖5的旁路單元,D寄存器D1,非門NOT0,D寄存器D2,D寄存器D3,異或門XOR0,與門AND1,選擇器MUX2,選擇器MUX3對(duì)應(yīng)于圖5的判斷比較及數(shù)值刷新單元,非門NOT1和與門AND2對(duì)應(yīng)于圖5中結(jié)果輸出單元,選擇器MUX2和選擇器MUX3對(duì)應(yīng)于圖5中初始化單元。
在流水線上指令執(zhí)行時(shí)主要包括以下4種情況。
1旗標(biāo)位原來(lái)的值為0,現(xiàn)在要將其置為1。
2旗標(biāo)位原來(lái)的值為0,現(xiàn)在又將其置為0。
3旗標(biāo)位原來(lái)的值為1,現(xiàn)在要將其置為0。
4旗標(biāo)位原來(lái)的值為1,現(xiàn)在又將其置為1。
下面分別就這4種情況下,圖7所示的32位旗標(biāo)寄存器第0位是如何實(shí)現(xiàn)功能來(lái)分別加以描述。
當(dāng)在第1種情況下,即D寄存器D0原來(lái)的值為0,現(xiàn)在要將其置為1。這種情況的實(shí)際應(yīng)用場(chǎng)合是當(dāng)旗標(biāo)位原來(lái)是空閑時(shí),進(jìn)程申請(qǐng)占用此旗標(biāo)。此時(shí)rd_de_rd_cs_sem_seg
為1,表示第0位片選信號(hào)有效。rd_de_vi_ctrl為1,表示第0位要設(shè)置的數(shù)據(jù)為1。在下一個(gè)時(shí)鐘沿到來(lái)時(shí),D寄存器D0的數(shù)據(jù)輸出端q輸出的信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或,異或后輸出的結(jié)果為1,再與經(jīng)過(guò)D寄存器D3后的片選rd_de_rd_cs_sem_seg
信號(hào)進(jìn)行與操作,與操作后的結(jié)果1經(jīng)過(guò)選擇器MUX2后輸出給D寄存器D0的寫使能端即en端,同時(shí)寫入D寄存器D0的數(shù)據(jù)為原來(lái)D寄存器D0中的數(shù)據(jù)輸出端q輸出的信號(hào)經(jīng)過(guò)D寄存器D1后再取反的值,即原來(lái)D寄存器D0的值為0,取反后的值為1,寫入的值就變?yōu)?。由于D寄存器D0的寫使能端en為1,且寫入的數(shù)據(jù)為1,這樣當(dāng)下一個(gè)時(shí)鐘沿到來(lái)時(shí),1就寫入到D寄存器D0中去。另外,寄存器位訪問(wèn)拒絕信號(hào)bitsemrej_seg
,即進(jìn)程掛起需要的位訪問(wèn)控制信號(hào)是新寫入的數(shù)值rd_de_vi_ctrl打一拍后的數(shù)據(jù)、原來(lái)D寄存器D0中的數(shù)據(jù)輸出端q輸出的信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或后再取反的值和片選信號(hào)rd_de_rd_cs_sem_seg
經(jīng)過(guò)D寄存器D3后的值等三個(gè)信號(hào)進(jìn)行與操作的結(jié)果。在這種情況下,這三個(gè)信號(hào)的值分別為1、0和1,因此,輸出的bitsemrej_seg
信號(hào)就為0。從上面的詳細(xì)分析可以看出,當(dāng)指令經(jīng)過(guò)此邏輯電路時(shí),就能實(shí)現(xiàn)將D寄存器D0的數(shù)值由0改為1同時(shí)輸出進(jìn)程掛起控制信號(hào)為0,即指示此進(jìn)程不掛起。
當(dāng)在第2種情況下,即D寄存器D0原來(lái)的值為0,現(xiàn)在又要將其置為0。這種情況在實(shí)際應(yīng)用時(shí)一般不會(huì)出現(xiàn)。但為了避免軟件人員的誤操作,本實(shí)施例邏輯電路也實(shí)現(xiàn)了在這種情況下的規(guī)避功能,即不修改D寄存器D0的值,輸出進(jìn)程掛起控制信號(hào)為0。此時(shí)rd_de_rd_cs_sem_seg
為1,表示第0位片選信號(hào)有效,rd_de_vi_ctrl為0,表示第0位要設(shè)置的數(shù)據(jù)為0。在下一個(gè)時(shí)鐘沿到來(lái)時(shí),D寄存器D0的數(shù)據(jù)輸出端q輸出的D寄存器D0原來(lái)的信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或,異或后輸出的結(jié)果為0再與經(jīng)過(guò)D寄存器D3后的片選rd_de_rd_cs_sem_seg
信號(hào)進(jìn)行與操作,與操作后的結(jié)果0再經(jīng)過(guò)選擇器MUX2后輸出給D寄存器D0的寫使能端en。因?yàn)镈寄存器D0的寫使能信號(hào)en為0,所以在下一個(gè)時(shí)鐘沿到來(lái)時(shí)D寄存器D0中的值還是保持不變。另外,寄存器位訪問(wèn)拒絕信號(hào)bitsemrej_seg
,即進(jìn)程掛起需要的位訪問(wèn)控制信號(hào)是新寫入的數(shù)值rd_de_vi_ctrl打一拍后的數(shù)據(jù)、D寄存器D0的數(shù)據(jù)輸出端q輸出的D寄存器D0原來(lái)的信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或后再取反的值和片選信號(hào)經(jīng)過(guò)D寄存器D3后的值這三個(gè)信號(hào)進(jìn)行與操作的結(jié)果。在這種情況下,這三個(gè)信號(hào)的值分別為0、1和1,因此,輸出的bitsemrej_seg
信號(hào)就為0。從上面的詳細(xì)分析可以看出,當(dāng)指令經(jīng)過(guò)此邏輯電路時(shí),原來(lái)的寄存器的數(shù)值保持0不變,同時(shí)輸出進(jìn)程掛起控制信號(hào)為0,即指示此進(jìn)程不掛起。
當(dāng)在第3種情況下,即D寄存器D0原來(lái)的值為1,現(xiàn)在要將其置為0。這種情況的實(shí)際應(yīng)用場(chǎng)合是指當(dāng)某進(jìn)程占用旗標(biāo)后,又重新釋放此旗標(biāo)。此時(shí)rd_de_rd_cs_sem_seg
為1,表示第0位片選信號(hào)有效,rd_de_vi_ctrl為0,表示第0位要設(shè)置的數(shù)據(jù)為0。在下一個(gè)時(shí)鐘沿到來(lái)時(shí),D寄存器D0的數(shù)據(jù)輸出端q輸出的原來(lái)D寄存器D0的信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或,異或后輸出的結(jié)果為1再與經(jīng)過(guò)D寄存器D3后的片選rd_de_rd_cs sem_seg
信號(hào)進(jìn)行與操作,與操作后的結(jié)果1經(jīng)過(guò)選擇器MUX2后輸出給D寄存器D0的寫使能端en,同時(shí)寫入的數(shù)據(jù)是原來(lái)D寄存器D0的數(shù)據(jù)輸出端q輸出的信號(hào)經(jīng)過(guò)D寄存器D1后再取反的值。原來(lái)D寄存器D0的值為1,取反后的值為0,這樣寫入的值就變?yōu)?。由于D寄存器D0的寫使能端en為1,且寫入的數(shù)據(jù)為0,這樣,當(dāng)下一個(gè)時(shí)鐘沿到來(lái)時(shí),0就寫入到D寄存器D0中去。另外,寄存器位訪問(wèn)拒絕信號(hào)bitsemrej_seg
,即進(jìn)程掛起需要的位訪問(wèn)控制信號(hào)是新寫入的數(shù)值rd_de_vi_ctrl打一拍后的數(shù)據(jù)、D寄存器D0的數(shù)據(jù)輸出端q輸出的原來(lái)的D寄存器D0信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或后再取反的值和片選信號(hào)經(jīng)過(guò)D寄存器D3觸發(fā)器后的值等三個(gè)信號(hào)進(jìn)行與操作的結(jié)果。在這種情況下,這三者的值分別為0、0和1,因此,輸出的bitsemrej_seg
信號(hào)就為0。從上面的詳細(xì)分析可以看出,當(dāng)指令經(jīng)過(guò)此電路時(shí),就能實(shí)現(xiàn)將原來(lái)的寄存器的數(shù)值由1改為0同時(shí)輸出進(jìn)程掛起控制信號(hào)為0,即指示此進(jìn)程不掛起。
當(dāng)在第4種情況下,即D寄存器D0原來(lái)的值為1,現(xiàn)在要將其置為1。這種情況的實(shí)際應(yīng)用場(chǎng)合是指當(dāng)某進(jìn)程占用旗標(biāo)后,其它進(jìn)程又要重新申請(qǐng)占用此旗標(biāo)。此時(shí)rd_de_rd_cs_sem_seg
為1,表示第0位片選信號(hào)有效。rd_de_vi_ctrl為1,表示第0位要設(shè)置的數(shù)據(jù)為1。在下一個(gè)時(shí)鐘沿到來(lái)時(shí),D寄存器D0的數(shù)據(jù)輸出端q輸出的原來(lái)的D寄存器D0的信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或,異或后輸出的結(jié)果為0再與經(jīng)過(guò)D寄存器D3后的片選信號(hào)rd_de_rd_cs_sem_seg
進(jìn)行與操作,寫操作后的結(jié)果0經(jīng)過(guò)選擇器MUX2后輸出給D寄存器D0的寫使能端en。因?yàn)镈寄存器D0的寫使能端en為0,所以當(dāng)下一個(gè)時(shí)鐘沿到來(lái)時(shí),D寄存器D0原來(lái)的值1就保持不變。另外,寄存器位訪問(wèn)拒絕信號(hào)bitsemrej_seg
,即進(jìn)程掛起需要的位訪問(wèn)控制信號(hào)是新寫入的數(shù)值rd_de_vi_ctrl打一拍后的數(shù)據(jù)、D寄存器D0的數(shù)據(jù)輸出端q輸出的原來(lái)的D寄存器D0信號(hào)經(jīng)過(guò)D寄存器D1后與rd_de_vi_ctrl經(jīng)過(guò)D寄存器D2后進(jìn)行異或后再取反的值和片選信號(hào)經(jīng)過(guò)D寄存器D3后的值等三個(gè)信號(hào)進(jìn)行與操作的結(jié)果。在這種情況下,這三個(gè)信號(hào)的值分別為1、1和1,因此,輸出的bitsemrej_seg
信號(hào)就為1。從上面的詳細(xì)分析可以看出,當(dāng)指令經(jīng)過(guò)此電路時(shí),就能實(shí)現(xiàn)將原來(lái)的寄存器的數(shù)值1保持不變,同時(shí)輸出進(jìn)程掛起信號(hào)為1即指示執(zhí)行此指令的進(jìn)程掛起。
從上面的詳細(xì)描述可以看出,圖7所示的旗標(biāo)寄存器的第0位可以實(shí)現(xiàn)讀出旗標(biāo)寄存器原值、設(shè)置新值和根據(jù)旗標(biāo)寄存器新舊值的比較來(lái)輸出相應(yīng)的進(jìn)程掛起控制信號(hào),同理其他位的實(shí)現(xiàn)方式也一樣。
在圖7中旗標(biāo)寄存器每一位旗標(biāo)值存儲(chǔ)單元和判斷比較及數(shù)值刷新單元都采用了D寄存器,如果不考慮設(shè)計(jì)時(shí)邏輯面積的大小,也可以不采用D寄存器,而是通過(guò)RAM等別的硬件資源來(lái)實(shí)現(xiàn)。
以上實(shí)施例中列出了一個(gè)32位的旗標(biāo)寄存器,而實(shí)際上旗標(biāo)寄存器的位數(shù)可以根據(jù)進(jìn)程和資源的個(gè)數(shù)而進(jìn)行調(diào)整。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種旗標(biāo)寄存器,其特征在于,由不少于1個(gè)旗標(biāo)位組成,每一旗標(biāo)位至少包括初始化單元、判斷比較及數(shù)值刷新單元、旗標(biāo)值存儲(chǔ)單元和結(jié)果輸出單元;其中,初始化單元用于對(duì)旗標(biāo)值存儲(chǔ)單元初始賦值,判斷比較及數(shù)值刷新單元用于比較旗標(biāo)值存儲(chǔ)單元中已保存的旗標(biāo)值和要設(shè)置的旗標(biāo)值,將更新后的旗標(biāo)值輸出給旗標(biāo)值存儲(chǔ)單元并將比較結(jié)果輸出給結(jié)果輸出單元,旗標(biāo)值存儲(chǔ)單元用于保存旗標(biāo)值,結(jié)果輸出單元用于根據(jù)所述比較結(jié)果輸出進(jìn)程掛起控制信號(hào)。
2.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的旗標(biāo)值存儲(chǔ)單元進(jìn)一步連接有監(jiān)控輸出單元,所述監(jiān)控輸出單元用于讀取旗標(biāo)值存儲(chǔ)單元所保存的旗標(biāo)值。
3.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的判斷比較及數(shù)值刷新單元進(jìn)一步連接有旁路單元,旁路單元進(jìn)一步與旗標(biāo)值存儲(chǔ)單元連接,所述旁路單元用于保證判斷比較及數(shù)值刷新單元所獲取的旗標(biāo)值存儲(chǔ)單元的值與正要寫入到旗標(biāo)值存儲(chǔ)單元的值相等。
4.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的旗標(biāo)值存儲(chǔ)單元為D觸發(fā)器、或隨機(jī)存儲(chǔ)器RAM。
5.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的判斷比較及數(shù)值刷新單元為D觸發(fā)器、或隨機(jī)存儲(chǔ)器RAM。
6.根據(jù)權(quán)利要求2所述的旗標(biāo)寄存器,其特征在于,所述的監(jiān)控輸出單元為選擇器MUX0。
7.根據(jù)權(quán)利要求3所述的旗標(biāo)寄存器,其特征在于,所述的旁路單元包括選擇器MUX1和與門AND0,所述與門AND0的輸出端連接選擇器MUX1的輸入端。
8.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的結(jié)果輸出單元包括非門NOT1和與門AND2,所述非門NOT1的輸出端連接與門AND2的輸入端。
9.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的判斷比較及數(shù)值刷新單元包括D寄存器D1、D寄存器D2、D寄存器D3、非門NOT0、與門AND1、選擇器MUX2、選擇器MUX3和異或門XOR0,所述D寄存器D1輸出端連接非門NOT0輸入端和異或門XOR0第一輸入端,所述非門NOT0輸出端連接選擇器MUX3第一輸入端,所述選擇器MUX3輸出端連接旗標(biāo)值存儲(chǔ)單元,所述D寄存器D2輸出端連接異或門XOR0第二輸入端,所述異或門XOR0輸出端連接與門AND1第一輸入端和非門NOT1輸入端,所述D寄存器D3輸出端連接與門AND1第二輸入端,所述與門AND1輸出端連接選擇器MUX2第一輸入端。
10.根據(jù)權(quán)利要求1所述的旗標(biāo)寄存器,其特征在于,所述的初始化單元包括選擇器MUX2和選擇器MUX3,選擇器MUX2輸出端連接旗標(biāo)值存儲(chǔ)單元,選擇器MUX3輸出端連接旗標(biāo)值存儲(chǔ)單元。
11.一種避免多進(jìn)程間資源訪問(wèn)沖突的方法,其特征在于,至少包括以下步驟A1、當(dāng)前要操作公共資源的進(jìn)程發(fā)出設(shè)置旗標(biāo)寄存器中旗標(biāo)位的值為預(yù)先約定的被占用值的指令,并判斷設(shè)置是否成功,如果成功則執(zhí)行步驟A2,否則掛起當(dāng)前發(fā)出指令的進(jìn)程,等到下次激活時(shí)候返回步驟A1;A2、步驟A1所述的發(fā)出指令的進(jìn)程操作公共資源;A3、步驟A1所述的發(fā)出指令的進(jìn)程設(shè)置步驟A1所述的該旗標(biāo)位的值為預(yù)先約定的釋放值。
12.根據(jù)權(quán)利要求11所述的避免多進(jìn)程間資源訪問(wèn)沖突的方法,其特征在于,根據(jù)步驟A1所述當(dāng)前要操作公共資源的進(jìn)程發(fā)出的指令,進(jìn)一步生成步驟A1所述旗標(biāo)位的讀片選信號(hào)和該旗標(biāo)位所設(shè)置的數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種旗標(biāo)寄存器,該旗標(biāo)寄存器的每一位都包括初始化單元、判斷比較及數(shù)值刷新單元、旗標(biāo)值存儲(chǔ)單元和結(jié)果輸出單元。本發(fā)明同時(shí)還公開了一種避免多進(jìn)程間資源訪問(wèn)沖突的方法,包括以下步驟當(dāng)前要操作公共資源的進(jìn)程發(fā)出設(shè)置旗標(biāo)寄存器中旗標(biāo)位為預(yù)先設(shè)定的被占用值的指令,并判斷設(shè)置是否成功,是就執(zhí)行下一步,否則進(jìn)程掛起,下次激活的時(shí)候再返回;發(fā)出指令的進(jìn)程操作資源;發(fā)出指令的進(jìn)程設(shè)置該旗標(biāo)位為預(yù)先設(shè)定的釋放值。本發(fā)明通過(guò)把旗標(biāo)寄存器和進(jìn)程掛起機(jī)制相結(jié)合的方式可以高效率地避免多進(jìn)程訪問(wèn)時(shí)存在的多資源訪問(wèn)沖突問(wèn)題。
文檔編號(hào)G06F9/46GK1655125SQ200410004239
公開日2005年8月17日 申請(qǐng)日期2004年2月12日 優(yōu)先權(quán)日2004年2月12日
發(fā)明者孫文華, 李敏秋, 劉義, 盛春明, 安輝 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
本溪| 通海县| 温州市| 西畴县| 林甸县| 临沂市| 额尔古纳市| 宜兰市| 白河县| 宾阳县| 类乌齐县| 闸北区| 长汀县| 安塞县| 西昌市| 太和县| 高台县| 汉沽区| 南安市| 塔城市| 万山特区| 肇东市| 兴山县| 建始县| 苏尼特左旗| 安达市| 静安区| 富民县| 色达县| 徐闻县| 长顺县| 鄂伦春自治旗| 宜章县| 吴旗县| 吴川市| 专栏| 琼结县| 蒲城县| 惠水县| 平潭县| 尼木县|