• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種面向光纖通信的緩存動態(tài)管理方案

      2019-06-01 10:06:30楊明偉杜建華薛楠李斌
      電腦知識與技術(shù) 2019年12期
      關(guān)鍵詞:光纖通信嵌入式系統(tǒng)動態(tài)管理

      楊明偉 杜建華 薛楠 李斌

      摘要:緩存作為一種有限資源,在進行數(shù)據(jù)通信時,負責進行數(shù)據(jù)的緩沖,在數(shù)據(jù)通信速度的提升中起關(guān)鍵作用。本文提出了一種緩存動態(tài)管理方案,與傳統(tǒng)的緩存管理方式相比,本文提出的緩存動態(tài)管理方式能更有效地使用緩存,緩存更多的消息,從而提升通信速度。

      關(guān)鍵詞:嵌入式系統(tǒng);光纖通信;緩存;動態(tài)管理

      中圖分類號:TP309 文獻標識碼:A

      文章編號:1009-3044(2019)12-0045-02

      1 引言

      隨著機載計算機技術(shù)的不斷發(fā)展,越來越多的設(shè)計使用光纖通信進行信息交互,光纖通信構(gòu)成的系統(tǒng)越來越大,系統(tǒng)內(nèi)交互的頻率也越來越高,這就對通信的速度與通信的頻度提出了更高的要求。在機載嵌入式系統(tǒng)中,光纖通信速度和頻度的提高不但涉及底層硬件邏輯技術(shù)的提升,還需上層軟件更有效地進行資源管理[1]。

      在機載嵌入式系統(tǒng)中,由于嵌入式系統(tǒng)的固有特性,系統(tǒng)內(nèi)緩存資源十分有限,然而通信過程中,緩存對數(shù)據(jù)的收發(fā)都有著決定性的影響[2]。在數(shù)據(jù)發(fā)送時,上層軟件將數(shù)據(jù)寫入數(shù)據(jù)緩存中,然后由邏輯負責將數(shù)據(jù)搬至硬件并發(fā)送,在數(shù)據(jù)接收時,邏輯將數(shù)據(jù)從硬件搬至數(shù)據(jù)緩存,上層軟件直接從數(shù)據(jù)緩存中讀取數(shù)據(jù)。在數(shù)據(jù)的接收和發(fā)送過程中,都涉及數(shù)據(jù)緩存空間的申請和釋放,而嵌入式系統(tǒng)內(nèi)緩存空間大小有限,緩存的數(shù)據(jù)也有限。在傳統(tǒng)的緩存管理方式中,根據(jù)消息的最大長度進行緩存空間的申請,而在實際應(yīng)用過程中,只有少數(shù)消息的長度會接近最大消息長度,大部分的消息都遠達不到最大消息長度,這些短消息導(dǎo)致大部分緩存空間處于空閑狀態(tài),并不能用于緩存新數(shù)據(jù),從而浪費掉大量的系統(tǒng)資源。

      本文提出一種緩存動態(tài)管理方案,將傳統(tǒng)方式中的緩存一個消息所占的緩存空間進行再次分割,分為連續(xù)的八個相對較小的緩存緩沖區(qū)。當進行緩存空間申請時,根據(jù)所需緩存的數(shù)據(jù)的長度,針對性地進行空間選擇,得到大于所需空間且最接近所需大小的緩存,降低緩存空間的空閑比率,從而從整體上提高數(shù)據(jù)緩存的利用率。

      2 相關(guān)研究

      在嵌入式操作系統(tǒng)中,BSP負責進行緩存空間的配置,然后向上層軟件提供緩存空間的相關(guān)信息,包括緩存空間的首地址和空間長度,上層軟件通過調(diào)用系統(tǒng)提供的緩存空間申請函數(shù)進行緩存空間的申請[3]。

      在光纖通信中,消息分為短消息和長消息兩種。短消息不大于4KB,長消息則為16M,在軟件初始化時,按照消息類型的不同,直接申請對應(yīng)消息最大長度的緩存空間。對于長消息,則申請16MB空間作為消息緩沖區(qū);短消息則申請4KB的緩存空間作為消息緩沖區(qū)。因而,在有限的緩存空間中只能申請一定數(shù)量的長消息緩沖區(qū)和短消息緩沖區(qū)。

      傳統(tǒng)的緩存空間管理方式并沒有對緩存空間進行針對性管理。當消息收發(fā)過程中需要進行數(shù)據(jù)緩存時,直接將已申請的與消息類型對應(yīng)的消息緩沖區(qū)直接全部分配給該消息。比如,當消息發(fā)送長度為5B的短消息數(shù)據(jù),直接將4KB的短消息緩沖區(qū)分配給了該消息;接收1MB的長消息時,直接分配了16MB的長消息緩沖區(qū)。這種方式能夠進行正常的消息收發(fā),然而會造成緩存空間的極大浪費,存在進一步提升的空間。

      通過對使用光纖通信的數(shù)據(jù)進行分析發(fā)現(xiàn),在機載嵌入式系統(tǒng)中,大多數(shù)的消息的長度是達不到所在消息的消息類型的最大長度的。短消息中,發(fā)送和接收頻度越高的消息,其攜帶的數(shù)據(jù)越小;攜帶數(shù)據(jù)越大的消息,其發(fā)送和接收的頻度也越低。因而,當數(shù)據(jù)收發(fā)的頻度越高,發(fā)送的消息長度越短,發(fā)現(xiàn)的利用率越低,限制了光纖通道的吞吐率的進一步提升。

      通過對緩存空間高效管理,能夠降低緩存空間的空閑比率,提高緩存的使用效率,從而提升通信速率。

      3 緩存動態(tài)管理方案與設(shè)計

      3.1 緩存空間初始化

      在進行緩存空間動態(tài)管理時,與傳統(tǒng)方式相同,需要先調(diào)用操作系統(tǒng)提供的緩存空間申請函數(shù)申請消息緩沖區(qū),申請的4KB的短消息緩沖區(qū)和16MB的長消息緩沖區(qū)數(shù)目與傳統(tǒng)方式相同,然而與傳統(tǒng)方式不同之處在于對申請下來的消息緩沖區(qū)進行了針對性管理。

      本文提出的緩存動態(tài)管理方案中,將一個緩沖區(qū)進行分割,將其從一個完整的緩沖區(qū)分割為8個大小相同的小緩沖區(qū),每個小緩沖區(qū)的大小只有原先緩沖區(qū)大小的八分之一。對于4KB大小的緩沖區(qū)塊,每個小緩沖區(qū)為512B;對于16MB大小的緩沖區(qū),每個小緩沖區(qū)為2MB。分割之后,將小緩沖區(qū)則作為重新分配的基本單位,但是管理時則是對包含8個小緩沖區(qū)的原始緩沖區(qū)塊進行管理。

      我們構(gòu)建一個特定結(jié)構(gòu)體即緩沖區(qū)信息結(jié)構(gòu)體來對每個緩沖區(qū)塊進行管理。該結(jié)構(gòu)體包含以下幾個信息:

      (1)buffSize:無符號整形,表示每個小緩沖區(qū)的大小。4KB的緩沖區(qū)塊中該變量為512,16MB的緩沖區(qū)塊中該變量為2M;

      (2)allocFlag:無符號短整形,表示該緩沖區(qū)塊中各個小緩沖區(qū)的分配情況。0-7位分別表示第0-7塊的分配情況,對應(yīng)位為1表明該小緩沖區(qū)已經(jīng)被分配,對應(yīng)位為0,表明該小緩沖區(qū)還未分配。如圖1中第0個緩沖區(qū)塊所示,當緩沖區(qū)塊中的小緩沖區(qū)被分配后,對應(yīng)的標志位置為1;

      (3)allocOffset:無符號短整形數(shù)組,表示申請目標個數(shù)的小緩沖區(qū)時的分配起始位置。該數(shù)組包含8個數(shù)據(jù),0-7的數(shù)據(jù)分別代表了分配1-8個連續(xù)緩沖區(qū)時的起始分配位置。如圖1中的第0個緩沖區(qū)塊所示,初始化時,存在8塊連續(xù)的未分配的小緩沖區(qū),所有大小的數(shù)據(jù)的起始分配位置都為0;當分配了2個小緩沖區(qū)時,剩下6個連續(xù)的小緩沖區(qū),1-6塊的起始分配都變?yōu)?,7塊和8塊則沒有可分配位置,對應(yīng)數(shù)據(jù)置為0xFFFF;

      (4)maxBuffCnt:無符號短整型,表示小緩沖區(qū)的最大連續(xù)數(shù)量。如圖1所示,對于第0個緩沖區(qū)塊,初始化時,還未進行緩沖區(qū)申請,故小緩沖區(qū)最大連續(xù)數(shù)量為8,當緩沖區(qū)0和緩沖區(qū)1被分配后,小緩沖區(qū)最大連續(xù)數(shù)量變?yōu)?。

      3.2 緩存空間申請

      當軟件進行緩存空間申請時,并不需要重新調(diào)用緩存空間申請函數(shù)申請新的緩存空間,而是從初始化之后的一個個緩沖區(qū)塊中進行分配。

      緩存空間進行分配時,主要包含以下幾個步驟:

      (1)首先根據(jù)準備緩存的消息的類型決定分配的緩沖區(qū)塊類型,如果是短消息,則在4KB的緩沖區(qū)塊中進行分配,如果是長消息,則在16MB的緩沖區(qū)塊中進行分配;

      (2)根據(jù)需要申請的緩存空間的大小,計算出需要的小緩沖區(qū)的數(shù)量N。如果是短消息,則除以512,然后向上取整;如果是長消息,則除以2M,然后向上取整;

      (3)從目標緩沖區(qū)塊數(shù)組中,從第0個緩沖區(qū)塊往后依次進行查找。當找到第一個滿足maxBuffCnt大于所需的小緩沖區(qū)數(shù)量的緩沖區(qū)塊時,則在該緩沖區(qū)塊中進行小緩沖區(qū)的分配;

      (4)根據(jù)該緩沖區(qū)塊對應(yīng)的信息結(jié)構(gòu)體中的信息,將該緩沖區(qū)塊中從allocOffset[N-1]位置開始的N個小緩沖區(qū)分配給申請的軟件;

      (5)根據(jù)分配后的小緩沖區(qū)的分配情況更新該緩沖區(qū)塊對應(yīng)的緩沖區(qū)信息結(jié)構(gòu)體中的信息,包括allocFlag,allocOffset和maxBuffCnt。

      更新目標緩沖區(qū)塊對應(yīng)的信息時,首先修改分配標志allocFlag,然后根據(jù)分配標志進行分配起始偏移allocOffset,此時采用的方法如下:

      (1)從第0個緩沖區(qū)開始,此時小緩沖區(qū)編號N為0,最大連續(xù)數(shù)Count為0,此次連續(xù)的起始位置Start為0,記錄偏移Offset為0,根據(jù)偏移位置的變化依次對后續(xù)小緩沖區(qū)執(zhí)行如下查詢;

      (2)當對第N個小緩沖區(qū)執(zhí)行查詢時,如果該小緩沖區(qū)未被分配,進行如下操作。首先對最大連續(xù)數(shù)Count進行判斷,如果Count為0,則Start值變?yōu)镹;然后Count加1,如果更新之后的Count大于Offset,將Start記錄在allocOffset[Offse]中,Offset進行加1;最后小緩沖區(qū)編號加1,對第N+1個小緩沖區(qū)進行查詢;

      (3)如果第N個小緩沖區(qū)已被分配,則最大連續(xù)數(shù)Count變?yōu)?,Offset不變,Start為0,小緩沖區(qū)編號加1,對第N+1個小緩沖區(qū)進行查詢;

      (4)當對所有小緩沖區(qū)查詢之后,此時最大連續(xù)緩沖數(shù)目maxBuffCnt的值為Offset的當前值,如果Offset小于7,則將allocOffset[Offset~7]中的數(shù)據(jù)全部更改為0xFFFF。

      3.3 緩存空間釋放

      進行緩存空間釋放時,就是將申請的緩存空間重新放回原先的緩沖區(qū)塊中。釋放時步驟如下:

      (1)根據(jù)緩存空間緩存的消息的類型,確定該緩存空間所屬的緩沖區(qū)消息的類型;

      (2)計算出該地址相對于緩存空間基址的偏移;

      (3)根據(jù)偏移計算出所在緩沖區(qū)塊的位置;

      (4)釋放緩存空間;

      (5)與申請緩存空間時相同,更新所在緩沖區(qū)塊的信息結(jié)構(gòu)體中的信息。

      4 結(jié)束語

      本文提出一種基于嵌入式系統(tǒng),面向光纖通信的緩存動態(tài)管理方案,該方案可以實現(xiàn)對緩存的動態(tài)管理,降低緩存的空閑比率,提高緩存利用率,從而提升通信速度。經(jīng)過測試,相對于傳統(tǒng)的緩存管理方式,本文提出的動態(tài)緩存管理方式能夠有效提高緩存利用率和通信速度,滿足機載嵌入式系統(tǒng)中通信對緩存空間管理的需求。

      參考文獻:

      [1] 田令平.嵌入式操作系統(tǒng)內(nèi)存管理研究[J].電腦知識與技術(shù), 2006(4):169-171.

      [2] 雙,帥建梅,吳慶響.一種新的面向?qū)ο蟪绦虻膬?nèi)存管理器[J].計算機工程,2012,38(9):21-23.

      [3] 魏海濤,姜昱明,李建武等.內(nèi)存管理機制的高效實現(xiàn)研究[J].計算機工程與設(shè)計,2009,30(16):3708-3712.

      【通聯(lián)編輯:梁書】

      猜你喜歡
      光纖通信嵌入式系統(tǒng)動態(tài)管理
      一種新型的模式復(fù)用器
      光學儀器(2016年5期)2017-01-12 19:15:18
      淺析基于SDH的多業(yè)務(wù)平臺(MSTP)技術(shù)及應(yīng)用
      基于向應(yīng)用型轉(zhuǎn)變的光纖通信實驗教學改革研究
      科技視界(2016年26期)2016-12-17 17:13:41
      用安全管理的理念,加強縣支行安保工作
      時代金融(2016年30期)2016-12-05 20:09:16
      淺析建筑工程造價的動態(tài)管理與控制
      工程監(jiān)理對工程造價的動態(tài)管理與控制探討
      基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學改革的研究與實踐
      現(xiàn)代光纖通信集成電路設(shè)計分析
      嵌入式系統(tǒng)課程“中斷、異常與事件”教學實踐及啟示
      計算機教育(2016年7期)2016-11-10 08:31:34
      面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學研究
      計算機教育(2016年7期)2016-11-10 08:12:11
      西贡区| 静安区| 资兴市| 宜都市| 都江堰市| 海门市| 昌江| 通河县| 天台县| 武平县| 塔城市| 社会| 东源县| 贡山| 昭觉县| 民县| 清丰县| 会同县| 洛阳市| 剑阁县| 甘南县| 墨竹工卡县| 富民县| 汶上县| 柘城县| 隆安县| 外汇| 聊城市| 庆元县| 治县。| 独山县| 石林| 商洛市| 德惠市| 西青区| 盘锦市| 长泰县| 太仆寺旗| 固安县| 蓬溪县| 灵石县|