本發(fā)明一種共享內(nèi)存算法屬于半實(shí)物仿真系統(tǒng)試驗(yàn)技術(shù)領(lǐng)域。
背景技術(shù):
一般情況下,一次半實(shí)物仿真運(yùn)行過程中產(chǎn)生的數(shù)據(jù)量是非常大的,而物理內(nèi)存是有限的,如果申請(qǐng)的共享內(nèi)存區(qū)太大,會(huì)影響運(yùn)行效率甚至?xí)狗抡娉绦蛟谶\(yùn)行過程中發(fā)生崩潰。如果申請(qǐng)的共享內(nèi)存區(qū)太小,不能滿足仿真數(shù)據(jù)通訊量的需求。通常的做法都是由用戶估計(jì)一個(gè)適當(dāng)大小的共享內(nèi)存,例如分成1000塊,盡量不對(duì)系統(tǒng)的運(yùn)行造成影響并可以滿足實(shí)時(shí)仿真的需要,但是這樣的估算是粗略的,不夠精確,容易造成資源的浪費(fèi),也可能發(fā)生錯(cuò)幀、漏幀現(xiàn)象,進(jìn)而導(dǎo)致系統(tǒng)發(fā)散。而且不同仿真系統(tǒng)項(xiàng)目,任務(wù)需求量不同,按現(xiàn)有方法必須對(duì)內(nèi)存塊數(shù)量估計(jì)值進(jìn)行反復(fù)推算,耗時(shí)又費(fèi)力。
因此,需要設(shè)計(jì)一種共享內(nèi)存塊算法,為實(shí)時(shí)仿真系統(tǒng)分配足夠的共享內(nèi)存塊,可有效提高仿真系統(tǒng)運(yùn)行的效率和穩(wěn)定性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的:提供一種共享內(nèi)存算法,計(jì)算出一個(gè)具有準(zhǔn)確內(nèi)存塊數(shù)量的共享內(nèi)存環(huán),很好地解決了仿真系統(tǒng)的共享內(nèi)存塊不確定問題,提高內(nèi)存利用率。
本發(fā)明的技術(shù)方案:一種共享內(nèi)存算法,所述共享內(nèi)存算法包括以下步驟;
1)設(shè)定仿真參數(shù),已知仿真系統(tǒng)的仿真次數(shù)為Z,仿真系統(tǒng)的仿真幀時(shí)間為X,仿真系統(tǒng)每幀讀數(shù)據(jù)的時(shí)間為Y;
2)根據(jù)公式N=Z+1-((X/Y)*Z),計(jì)算共享內(nèi)存塊N的數(shù)量;
3)根據(jù)公式Z=(n+1)N+J-1和公式n*N+J=(X/Y)*Z,計(jì)算出讀數(shù)據(jù)的圈數(shù)n的數(shù)值;讀到第幾塊J的數(shù)值;
4)根據(jù)得到的共享內(nèi)存塊N的數(shù)值、讀數(shù)據(jù)圈數(shù)n的數(shù)值;讀到第幾塊J的數(shù)值調(diào)整仿真系統(tǒng)的幀時(shí)間,以保證幀時(shí)間準(zhǔn)確。
發(fā)明的有益效果:基于以上共享內(nèi)存算法設(shè)計(jì)的環(huán)形共享內(nèi)存塊結(jié)構(gòu),很好地解決了仿真系統(tǒng)所需共享內(nèi)存塊數(shù)量不確定問題,降低了系統(tǒng)資源浪費(fèi),提高內(nèi)存利用率。該算法簡(jiǎn)單、直接,系統(tǒng)運(yùn)行效率和穩(wěn)定性遠(yuǎn)高于非優(yōu)化算法前仿真系統(tǒng)。
附圖說明
圖1共享內(nèi)存算法流程圖
具體實(shí)施方式
下面結(jié)合說明書附圖對(duì)本發(fā)明進(jìn)行詳細(xì)的說明。
一種共享內(nèi)存算法,所述共享內(nèi)存算法包括以下步驟;
1)設(shè)定仿真參數(shù),已知仿真系統(tǒng)的仿真次數(shù)為Z,仿真系統(tǒng)的仿真幀時(shí)間為X,仿真系統(tǒng)每幀讀數(shù)據(jù)的時(shí)間為Y;
2)根據(jù)公式N=Z+1-((X/Y)*Z),計(jì)算共享內(nèi)存塊N的數(shù)量;
3)根據(jù)公式Z=(n+1)N+J-1和公式n*N+J=(X/Y)*Z,計(jì)算出讀數(shù)據(jù)的圈數(shù)n的數(shù)值;讀到第幾塊J的數(shù)值;
4)根據(jù)得到的共享內(nèi)存塊N的數(shù)值、讀數(shù)據(jù)圈數(shù)n的數(shù)值;讀到第幾塊J的數(shù)值調(diào)整仿真系統(tǒng)的幀時(shí)間,以保證幀時(shí)間準(zhǔn)確。
實(shí)施例一
1)設(shè)定仿真參數(shù):仿真時(shí)間為100s,幀時(shí)間X為1ms,仿真次數(shù)Z為100000次,系統(tǒng)讀時(shí)間Y為1.008ms;
2)根據(jù)公式N=Z+1-((X/Y)*Z),計(jì)算出共享內(nèi)存塊數(shù)量N為795;
3)讀數(shù)據(jù)的圈數(shù)n讀到第幾塊J的數(shù)值可根據(jù)任務(wù)需要進(jìn)一步計(jì)算;
4)根據(jù)N值與基準(zhǔn)值比較,若小于基準(zhǔn)值,可返回1)調(diào)整仿真系統(tǒng)的幀時(shí)間,以保證幀時(shí)間準(zhǔn)確;若大于基準(zhǔn)值,則系統(tǒng)不穩(wěn)定,設(shè)計(jì)不合理,重新回到系統(tǒng)方案設(shè)計(jì)。
實(shí)施例二
1)設(shè)定仿真參數(shù):仿真時(shí)間為2000s,幀時(shí)間X為10ms,仿真次數(shù)Z為200000次,系統(tǒng)讀時(shí)間Y為10.005ms;
2)根據(jù)公式N=Z+1-((X/Y)*Z),計(jì)算出共享內(nèi)存塊數(shù)量N為101;
3)讀數(shù)據(jù)的圈數(shù)n讀到第幾塊J的數(shù)值可根據(jù)任務(wù)需要進(jìn)一步計(jì)算;
4)根據(jù)N值與基準(zhǔn)值比較,若小于基準(zhǔn)值,可返回1)調(diào)整仿真系統(tǒng)的幀時(shí)間,以保證幀時(shí)間準(zhǔn)確;若大于基準(zhǔn)值,則系統(tǒng)不穩(wěn)定,設(shè)計(jì)不合理,重新回到系統(tǒng)方案設(shè)計(jì)。