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

一種避免雙處理器寫競(jìng)爭(zhēng)的方法

文檔序號(hào):6361505閱讀:195來源:國知局
專利名稱:一種避免雙處理器寫競(jìng)爭(zhēng)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在網(wǎng)絡(luò)數(shù)據(jù)分組流量計(jì)數(shù)應(yīng)用環(huán)境下,用于避免由于兩個(gè)處理器同時(shí)對(duì)一個(gè)共享內(nèi)存變量進(jìn)行寫操作時(shí)可能引發(fā)的系統(tǒng)崩潰的方法;典型應(yīng)用是在針對(duì)諸如高速路由器等設(shè)計(jì)應(yīng)用中,采用專用網(wǎng)絡(luò)處理器處理分組數(shù)據(jù)轉(zhuǎn)發(fā),通用處理器處理上層協(xié)議及其它分組管理事務(wù),應(yīng)用環(huán)境對(duì)處理效率要求高。
背景技術(shù)
對(duì)于某些多處理器系統(tǒng),例如包含一個(gè)通用的主控中央處理器和一個(gè)專用的輔助處理器的系統(tǒng),兩個(gè)處理器間的進(jìn)程間通信可以采用MP(Message Passing消息傳遞)機(jī)制和共享內(nèi)存機(jī)制,共享內(nèi)存機(jī)制有如下的一些使用特點(diǎn)1.共享內(nèi)存可以被多個(gè)進(jìn)程(包括不同CPU間的進(jìn)程)所打開并訪問;2.讀寫操作的進(jìn)程在執(zhí)行讀寫操作時(shí)其他進(jìn)程不應(yīng)進(jìn)行寫操作;3.多個(gè)進(jìn)程可以交替對(duì)某一共享內(nèi)存執(zhí)行寫操作;4.一個(gè)進(jìn)程執(zhí)行了內(nèi)存的寫操作后,不影響其他進(jìn)程對(duì)該內(nèi)存的訪問,同時(shí)其他進(jìn)程對(duì)更新后的內(nèi)存具有可見性;5.在進(jìn)程執(zhí)行寫操作時(shí)如果異常退出,對(duì)其他進(jìn)程寫操作禁止應(yīng)自動(dòng)解除;6.共享內(nèi)存的處理速度和效率較高;對(duì)于不同的兩個(gè)處理器共享的內(nèi)存而言,如果對(duì)于同一個(gè)共享內(nèi)存數(shù)據(jù)區(qū),兩個(gè)處理器的各個(gè)進(jìn)程對(duì)于該數(shù)據(jù)區(qū)都是可讀和可寫的,那么在沒有互斥機(jī)制保證的前提下,很容易就會(huì)引發(fā)由于兩個(gè)處理器的進(jìn)程都去寫該內(nèi)存中同一內(nèi)存變量而造成系統(tǒng)崩潰。常見的處理方法是采用信號(hào)量等機(jī)制來實(shí)現(xiàn)寫數(shù)據(jù)的互斥。即設(shè)置一個(gè)讀寫信號(hào)位,當(dāng)處理器A寫該共享內(nèi)存變量時(shí),A寫信號(hào)置位,即處理器B不能寫。若B于此時(shí)有寫中斷發(fā)生,則只能等待下一處理器時(shí)鐘周期或輪詢等待。這種處理方法效率低,不適用于諸如高速路由轉(zhuǎn)發(fā)處理應(yīng)用環(huán)境中。設(shè)置信號(hào)量方法在專用網(wǎng)絡(luò)處理器環(huán)境中會(huì)引發(fā)寄存器資源緊張;設(shè)置硬件鎖則影響效率,同時(shí)可能引發(fā)軟件無法控制的系統(tǒng)崩潰。
在諸如高速路由器分組數(shù)據(jù)計(jì)數(shù)并作流量限制的應(yīng)用場(chǎng)景中,專用處理器在每個(gè)分組到來時(shí),將分組數(shù)據(jù)字節(jié)數(shù)記錄在共享內(nèi)存區(qū),并讀取指導(dǎo)流量動(dòng)作的門限變量值,與流量值比較后執(zhí)行相應(yīng)動(dòng)作;通用處理器需要以單位時(shí)間間隔定時(shí)讀取記錄在共享內(nèi)存區(qū)的流量變量,確定下一單位時(shí)間門限值,寫入共享內(nèi)存。
已有的硬件解決方法是設(shè)立兩個(gè)共享內(nèi)存變量流量計(jì)數(shù)、門限;互斥通過硬件鎖實(shí)現(xiàn)。有數(shù)據(jù)包流量發(fā)生,網(wǎng)絡(luò)處理器鎖流量計(jì)數(shù)值,寫流量計(jì)數(shù),解鎖,讀門限值,處理;通用處理器時(shí)鐘中斷到,鎖流量計(jì)數(shù),計(jì)算門限,寫門限,流量計(jì)數(shù)清零,解鎖。這里流量計(jì)數(shù)為兩個(gè)處理器都要進(jìn)行寫處理的寄存器變量,通過加鎖解決競(jìng)爭(zhēng)。正如前文所述,其弊端是由于硬件鎖的引入,導(dǎo)致效率降低,隱患增加。
已有的軟件解決方法是在共享內(nèi)存區(qū)設(shè)立信號(hào)量,較硬件方法多耗費(fèi)一個(gè)寄存器,效率低下,在網(wǎng)絡(luò)處理器應(yīng)用環(huán)境中寄存器資源緊張,是以該方法應(yīng)用中基本不予考慮。

發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種避免雙處理器寫競(jìng)爭(zhēng)的方法,可以在應(yīng)用環(huán)境中采用盡可能少的變量資源來避免由于不同處理器的進(jìn)程同時(shí)對(duì)同一個(gè)共享內(nèi)存變量進(jìn)行寫操作時(shí)帶來的危險(xiǎn),高效處理分組流量計(jì)數(shù)應(yīng)用。
本發(fā)明所述的避免雙處理器寫競(jìng)爭(zhēng)的方法,包括以下處理步驟
1)在網(wǎng)絡(luò)處理器中設(shè)置兩個(gè)寄存器變量,流量計(jì)數(shù)(count)和門限值變量(bucket),兩個(gè)變量分別在0-2n范圍循環(huán)計(jì)數(shù),n為變量的位數(shù);2)判斷流量計(jì)數(shù)變量是否大于門限值,如果是,則轉(zhuǎn)步驟3),否則,跳轉(zhuǎn)步驟4);3)判斷流量計(jì)數(shù)與分組數(shù)據(jù)包字節(jié)數(shù)(pkt)之和是否大于流量計(jì)數(shù),若是,則做門限值許可處理,否則,轉(zhuǎn)步驟4);4)比較流量計(jì)數(shù)與分組數(shù)據(jù)包字節(jié)數(shù)之和是否小于門限值,若是,轉(zhuǎn)步驟5),否則,做門限值超限處理;5)比較門限值與流量計(jì)數(shù)、數(shù)據(jù)包分組字節(jié)數(shù)之和的差是否小于2n-1,若是,則做門限值許可處理,否則,做門限值超限處理。
本發(fā)明中由于流量計(jì)數(shù)變量?jī)H由網(wǎng)絡(luò)處理器寫入,通用處理器僅讀取該變量,有效避免了寫競(jìng)爭(zhēng),沒有等待信號(hào)量或解鎖的過程,不降低處理效率。而且沒有引入硬件鎖,避免了因之引入的系統(tǒng)隱患。


圖1是分組流量計(jì)數(shù)方法原理示意圖。
圖2是分組流量計(jì)數(shù)方法流程圖。
具體實(shí)施例方式
該方法基于以下應(yīng)用假設(shè)1.分組數(shù)據(jù)包字節(jié)數(shù)小于1M,滿足當(dāng)前網(wǎng)絡(luò)應(yīng)用環(huán)境,典型應(yīng)用中以太網(wǎng)分組字節(jié)數(shù)最大為1500字節(jié)。
2.網(wǎng)絡(luò)處理器字長(zhǎng)為32位或64位,即寄存器變量全1至少為4G,一半為
2G,大于分組數(shù)據(jù)包100倍以上。
處理中,設(shè)立2個(gè)寄存器變量流量計(jì)數(shù)、門限。
方法原理示意見附圖1。
寄存器變量為0-4G,進(jìn)位后開始又一循環(huán)。
第一次循環(huán)中門限值始終大于流量計(jì)數(shù),流量計(jì)數(shù)與分組字節(jié)數(shù)之和應(yīng)小于門限值。即流量計(jì)數(shù)與分組字節(jié)數(shù)之和小于等于門限值時(shí)對(duì)應(yīng)一種處理(處理1),反之對(duì)應(yīng)另一種處理(處理2),共兩種處理方式。
當(dāng)門限值或流量計(jì)數(shù)與分組字節(jié)數(shù)之和進(jìn)入又一循環(huán)時(shí),情況發(fā)生變化。
經(jīng)歸納,可通過有限狀態(tài)確定分組處理動(dòng)作。
處理1對(duì)應(yīng)狀態(tài)1.(流量計(jì)數(shù)大于門限)且(流量計(jì)數(shù)與分組字節(jié)數(shù)之和大于流量計(jì)數(shù));2.(流量計(jì)數(shù)小于門限)且(流量計(jì)數(shù)與分組字節(jié)數(shù)之和小于門限)且(門限值與(流量計(jì)數(shù)與分組字節(jié)數(shù)之和)之差小于2G)處理2對(duì)應(yīng)狀態(tài)剩余所有狀態(tài)。
通過采用該方法,只使用了兩個(gè)寄存器變量資源,避免了硬件鎖的弊端,處理效率完全滿足應(yīng)用需求。
處理流程見附圖2。
當(dāng)分組數(shù)據(jù)包到來,處理流程如下1.網(wǎng)絡(luò)處理器比較流量計(jì)數(shù)是否大于門限值,否則轉(zhuǎn)入4;2.比較流量計(jì)數(shù)與分組字節(jié)數(shù)之和是否大于流量計(jì)數(shù),否則轉(zhuǎn)入4;3.門限值許可情況下對(duì)分組進(jìn)行相應(yīng)處理,轉(zhuǎn)入7;4.比較流量計(jì)數(shù)與分組字節(jié)數(shù)之和是否大于門限值,否則轉(zhuǎn)入6;5.比較門限值與(流量計(jì)數(shù)與分組字節(jié)數(shù)之和)之差是否小于2G,否則轉(zhuǎn)入6,是則轉(zhuǎn)入3;6.門限值不許可情況下對(duì)分組進(jìn)行相應(yīng)處理;
7.處理結(jié)束。
流程中,流量計(jì)數(shù)變量?jī)H由網(wǎng)絡(luò)處理器寫入,通用處理器僅讀取該變量,有效避免了寫競(jìng)爭(zhēng),沒有等待信號(hào)量或解鎖的過程,不降低處理效率。由于未引入硬件鎖,避免了因之引入的系統(tǒng)隱患。
結(jié)合上面的說明,本發(fā)明方法可以用于數(shù)據(jù)網(wǎng)絡(luò)分組流量計(jì)數(shù)中高效避免雙處理器寫競(jìng)爭(zhēng)。采用本發(fā)明的方法,避免了流量計(jì)數(shù)應(yīng)用中的寫競(jìng)爭(zhēng),提高了處理效率,避免了可能引入的系統(tǒng)隱患。本發(fā)明實(shí)現(xiàn)邏輯簡(jiǎn)潔清晰,尤其適于類匯編語言的網(wǎng)絡(luò)處理器編程實(shí)現(xiàn)。
權(quán)利要求
1.一種避免雙處理器寫競(jìng)爭(zhēng)的方法,其特征在于,所述方法包括以下處理步驟1)在網(wǎng)絡(luò)處理器中設(shè)置兩個(gè)寄存器變量,流量計(jì)數(shù)和門限值變量,兩個(gè)變量分別在0-2n范圍循環(huán)計(jì)數(shù),n為變量的位數(shù);2)判斷流量計(jì)數(shù)變量是否大于門限值,如果是,則轉(zhuǎn)步驟3),否則,跳轉(zhuǎn)步驟4);3)判斷流量計(jì)數(shù)與分組數(shù)據(jù)包字節(jié)數(shù)之和是否大于流量計(jì)數(shù),若是,則做門限值許可處理,否則,轉(zhuǎn)步驟4);4)比較流量計(jì)數(shù)與分組數(shù)據(jù)包字節(jié)數(shù)之和是否小于門限值,若是,轉(zhuǎn)步驟5),否則,做門限值超限處理;5)比較門限值與流量計(jì)數(shù)、數(shù)據(jù)包分組字節(jié)數(shù)之和的差是否小于2n-1,若是,則做門限值許可處理,否則,做門限值超限處理。
2.根據(jù)權(quán)利要求1所述的避免雙處理器寫競(jìng)爭(zhēng)的方法,其特征在于,所述流量計(jì)數(shù)和門限值變量為32位或64位變量。
3.根據(jù)權(quán)利要求1或2所述的避免雙處理器寫競(jìng)爭(zhēng)的方法,當(dāng)所述分組數(shù)據(jù)包字節(jié)數(shù)小于1M時(shí),所述流量計(jì)數(shù)和門限值變量可在0-4G之間循環(huán),所述步驟5)中比較門限值與流量計(jì)數(shù)、數(shù)據(jù)包分組字節(jié)數(shù)之和的差是否小于2G,若是,則做門限值許可處理,否則,做門限值超限處理。
全文摘要
本發(fā)明涉及一種在網(wǎng)絡(luò)數(shù)據(jù)分組流量計(jì)數(shù)應(yīng)用環(huán)境下,用于避免由于兩個(gè)處理器同時(shí)對(duì)一個(gè)共享內(nèi)存變量進(jìn)行寫操作時(shí)可能引發(fā)的系統(tǒng)崩潰的方法,通過在網(wǎng)絡(luò)處理器中設(shè)置兩個(gè)寄存器變量流量計(jì)數(shù)(count)和門限值變量(bucket),進(jìn)行循環(huán)計(jì)數(shù),再依據(jù)一定的判斷原則進(jìn)行處理。本發(fā)明采用了流量計(jì)數(shù)變量?jī)H由網(wǎng)絡(luò)處理器寫入,通用處理器僅讀取該變量,有效避免了寫競(jìng)爭(zhēng),沒有等待信號(hào)量或解鎖的過程,不降低處理效率,而且沒有引入硬件鎖,避免了因之引入的系統(tǒng)隱患。
文檔編號(hào)G06F12/00GK1549154SQ0313154
公開日2004年11月24日 申請(qǐng)日期2003年5月21日 優(yōu)先權(quán)日2003年5月21日
發(fā)明者周宇寧, 方軍, 戴進(jìn), 唐珂, 白英杰, 張鋼鋼 申請(qǐng)人:深圳市中興通訊股份有限公司南京分公司, 深圳市中興通訊股份有限公司南京分公
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邹平县| 金溪县| 龙胜| 通渭县| 商都县| 衡水市| 泾阳县| 青铜峡市| 金华市| 遵义县| 宁明县| 筠连县| 民勤县| 青神县| 彭山县| 房山区| 稻城县| 鸡西市| 英吉沙县| 澄江县| 嫩江县| 英山县| 互助| 湘潭县| 连州市| 南投市| 察雅县| 白河县| 福泉市| 斗六市| 罗山县| 庆安县| 阳江市| 浮山县| 陆良县| 马关县| 深圳市| 昆明市| 新干县| 海伦市| 武威市|