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