• 
    

    
    

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

      AFDX隊列管理器的設(shè)計與實現(xiàn)*

      2018-12-19 01:55:50喬廬峰陳慶華吳艷華
      通信技術(shù) 2018年12期
      關(guān)鍵詞:鏈表管理器緩沖區(qū)

      黃 旭,喬廬峰,陳慶華,吳艷華

      (陸軍工程大學 通信工程學院,江蘇 南京 210001)

      0 引 言

      機載數(shù)據(jù)總線作為航空電子綜合系統(tǒng)的重要組成部分,用于機載設(shè)備和子系統(tǒng)之間的互聯(lián),承擔著各模塊之間信息交換的任務。隨著航空電子系統(tǒng)的不斷發(fā)展,對機載總線網(wǎng)絡(luò)的實時性和可靠性提出了更高要求。在以太網(wǎng)為基礎(chǔ)上發(fā)展起來的新型航空網(wǎng)絡(luò)AFDX是一種確定性網(wǎng)絡(luò)[1],可以滿足當前航空電子系統(tǒng)數(shù)據(jù)傳的容錯性、實時性和可靠性要求。在AFDX中,端系統(tǒng)(End System)是非常重要的組成部分,在航空電子子系統(tǒng)和交換網(wǎng)絡(luò)之間起到橋梁的作用。它負責將需要發(fā)送的數(shù)據(jù)流進行整形,然后按照分配好的虛擬鏈路(VL)發(fā)往目的終端[2]。虛擬鏈路作為端系統(tǒng)的核心,將一條物理鏈路分為多條VL。每條虛擬鏈路都有其獨立的參數(shù),通過這些參數(shù)的設(shè)置控制每條鏈路中數(shù)據(jù)的傳輸[3-4]。為了靈活、合理使用帶寬和存儲資源,本文設(shè)計了一種隊列管理器。該隊列管理器對每條虛擬鏈路單獨管理,從而確保業(yè)務流的服務質(zhì)量[5]。

      1 隊列管理器設(shè)計

      為了對多條虛擬鏈路進行管理,且為了滿足AFDX中各虛擬鏈路之間幀傳輸時互不干擾的需求[6-7],設(shè)計了如圖1所示的隊列管理器。

      圖1 隊列管理器結(jié)構(gòu)

      隊列管理器主要分為以下幾個部分:自由指針隊列、多隊列管理器、緩沖區(qū)模塊、接口管理電路和寫預處理模塊。

      (1)自由指針隊列。這個模塊存放著緩沖區(qū)模塊的地址,即自由指針。每當有一個信元寫入緩沖區(qū),需要從自由指針模塊取出自由指針。每當有數(shù)據(jù)完成讀操作,自由指針空閑出來,需要歸還到自由指針隊列。

      (2)多隊列管理器。該模塊存放著每個隊列的相關(guān)信息,包括鏈表、頭尾指針信息、深度信息和預留門限等。

      (3)緩沖區(qū)。該模塊是用來存放輸入端口傳輸進來的信元。調(diào)度器模塊也是從該模塊讀取信元。

      (4)接口管理電路。該模塊在收到讀寫請求時,會判斷緩沖區(qū)是否滿足讀寫條件,若滿足則執(zhí)行操作,否則不執(zhí)行。此外,該模塊控制當前執(zhí)行的是讀或者寫操作,防止發(fā)生沖突。

      (5)寫預處理模塊。該模塊從隊列管理器取出空閑指針,并將信元存往緩沖區(qū)指定地址中。

      2 隊列管理器工作流程

      2.1 數(shù)據(jù)寫入流程

      當新的業(yè)務流到達時,由前處理模塊發(fā)出輸入請求,同時告知業(yè)務流的編號。多隊列控制模塊會依據(jù)編號查詢?nèi)£犃行畔?,并判斷是否滿足繼續(xù)寫入數(shù)據(jù)的條件。若滿足條件,則操作流程如圖2所示。

      圖2 數(shù)據(jù)寫入操作流程

      以業(yè)務流編號為地址,多隊列管理電路會讀取該編號虛擬鏈路的相關(guān)信息,包括該隊列的信元深度、隊列預先設(shè)定的門限、頭尾信息以及剩余的共享緩存深度。接口管理電路根據(jù)這些信息判斷,當緩沖區(qū)中剩余的空間足夠裝下一個完整的數(shù)據(jù)幀時,則將輸入的數(shù)據(jù)寫入緩沖區(qū)。

      2.2 隊列控制器中鏈表的構(gòu)建

      本設(shè)計中隊列控制器需要對128條業(yè)務流進行管理。為了提高隊列管理器的靈活性,節(jié)約存儲資源,采用基于鏈表的存儲方式。如圖3所示,鏈表中的信元結(jié)構(gòu):2比特的信元指示位,16比特的下一跳的地址位。此外,鏈表的構(gòu)建需要用到隊列的頭尾信息,多隊列管理模中有一塊RAM用來存放鏈路的頭尾指針信息。

      當上一級有數(shù)據(jù)輸入時,隊列管理器先從自由指針隊列取出一個自由指針,然后以業(yè)務流的編號ingress_qnr為地址,從多隊列管理模塊中查找該業(yè)務流所在隊列的頭尾信息。查找完成后,可以得到該隊列的尾指針地址。以尾指針為地址,將取出的自由指針寫入該隊列的鏈表中,同時更新頭尾指針信息和深度信息。最后,將信元寫入自由指針所指向的緩沖區(qū)。

      圖3 鏈表

      當某條鏈路需要讀取數(shù)據(jù)時,先以engress_qnr為地址,從多隊列管理模塊中讀取信息。經(jīng)接口管理電路判斷,若該鏈路的緩沖區(qū)中存有一個完整的數(shù)據(jù)幀,則以頭指針作為地址位讀取緩沖區(qū)中存儲的數(shù)據(jù)。完成讀取操作后更新鏈表,先從鏈表中讀出下一跳的地址。這是該隊列新的頭指針,然后更新多隊列管理模塊。完成表更新后進行指針歸還操作,即將完成讀操作的頭指針歸還到自由指針隊列。

      2.3 緩沖區(qū)管理模塊

      緩沖區(qū)管理模塊是用來存儲輸入信元的模塊。本設(shè)計中的隊列管理器需要對128條虛擬鏈路進行管理和調(diào)度。為了更加靈活地管理128條隊列,緩沖區(qū)采用了固定分配和共享緩存兼容的緩沖方式,即緩沖區(qū)給每條虛擬鏈路預留部分緩沖空間,剩余的緩沖空間作為共享緩存。這種方式可以更加合理靈活地使用緩沖區(qū),從而提高緩沖區(qū)資源利用率。

      2.4 數(shù)據(jù)讀出流程

      當隊列控制模塊收到讀取數(shù)據(jù)的請求時,會同時接收到業(yè)務流的編號,根據(jù)業(yè)務流編號會對該業(yè)務流對應的隊列信息進行判斷。隊列控制器以業(yè)物流編號engress_qnr為地址,從多隊列管理器中讀取該隊列的相關(guān)信息,如隊列深度、隊列頭尾信息、隊列預留深度等。在存有一個完整數(shù)據(jù)幀的情況下,才可以發(fā)送數(shù)據(jù)。根據(jù)讀取的頭尾指針信息可以得到讀指針(engress_ptr),以讀指針為地址從緩沖區(qū)讀取信元,接口管理電路會將信元發(fā)送到調(diào)度器模塊。完成讀取流程后,需要更新鏈表和各信息模塊。此外,原先的頭指針在讀操作完成后成為自由指針,需要歸還到自由指針隊列。

      3 仿真結(jié)果分析

      3.1 初始化配置

      系統(tǒng)完成復位后,先要進行自由指針隊列的初始化。圖4是自由指針初始化過程。當信號cfg_init置1的時候開始初始化配置,即將自由指針寫入相應的地址中。以自由指針0為例,初始化操作中使能信號wea置1,地址信號addra值為0,輸入信號dina值為0。這表示自由指針0寫入自由指針隊列地址為0的位置。當全部的自由指針寫入隊列后,自由指針隊列的初始化完成。其余的內(nèi)部模塊主要是將RAM內(nèi)個表項清零。

      圖4 自由指針隊列初始化仿真結(jié)果

      3.2 數(shù)據(jù)流寫入仿真分析

      當上層數(shù)據(jù)進入隊列管理器時,要先判斷是否有足夠的緩存空間儲存新到達的數(shù)據(jù)幀。若滿足寫入條件,則將數(shù)據(jù)寫入緩沖區(qū);否則,丟包。如圖5所示,此時ingress_ptr_req為1,表示有信元申請寫入緩沖區(qū);ingress_qnr為100,表示信元來自編號為100的業(yè)務流。先讀取多隊列管理模塊中該隊列的相關(guān)信息,然后經(jīng)過接口管理模塊進行判斷。該通道緩沖空間為空,滿足寫入的條件,因此將信號ingress_ptr_ack置1,表示可以將信元寫入緩沖區(qū)。此時,將得到的自由指針4095賦值給寫指針ingress_ptr,然后以寫指針為地址將進入隊列管理器的信元寫入緩沖區(qū)中對應的位置。

      圖5 寫數(shù)據(jù)仿真結(jié)果

      3.3 數(shù)據(jù)流讀出流程分析

      當隊列管理器中有數(shù)據(jù)要被讀出時,隊列管理器會收到一個請求信號engress_ptr_req和業(yè)物流編號engress_qnr。此時,接口管理模塊會判斷該編號業(yè)務流的緩沖隊列中是否存有一個完整的數(shù)據(jù)幀。若滿足條件,則發(fā)送數(shù)據(jù);若不滿足,則不發(fā)送數(shù)據(jù)。如圖6所示,engress_qnr為100,engress_ptr_req為1,表示編號為100的業(yè)務流有數(shù)據(jù)要讀出,經(jīng)緩沖區(qū)判斷該業(yè)物流緩沖隊列中存有一個完整的數(shù)據(jù)幀。因此,將信號engress_ack置1,表示可以從緩沖區(qū)中讀取數(shù)據(jù)。指針engress_ptr的值為4095,所以從緩沖區(qū)該地址讀取信元。

      圖6 讀數(shù)據(jù)仿真結(jié)果

      3.4 自由指針歸還操作

      每次完成一個信元的讀取操作都需要歸還自由指針。如圖7所示,此時虛擬鏈路號100的虛擬鏈路完成了一次讀操作,指針4095成為了自由指針,需要將其歸還到自由指針隊列。這時,將自由指針模塊的寫使能信號wea置1,空閑的地址位是4093,所以信號自由指針隊列的地址位addra值取4093,自由指針4095作為輸入信號dina。這表示將自由指針4095寫入自由指針隊列中地址為4093的位置。歸還自由指針操作完成,將寫使能信號置回0。

      圖7 自由指針歸還仿真結(jié)果

      4 結(jié) 語

      本文針對AFDX這種確定型網(wǎng)絡(luò)設(shè)計了一種適用于多條虛擬鏈路的隊列管理器,并介紹了各部分的功能及其結(jié)構(gòu)。仿真證明,該隊列管理器能夠?qū)Χ讼到y(tǒng)中多條隊列實現(xiàn)單獨管理,并合理分配利用緩沖資源。下一步將結(jié)合調(diào)度器對該隊列管理器做進一步測試,檢測其時延和抖動方面的特性,以確保滿足確定型網(wǎng)絡(luò)AFDX的需求。

      猜你喜歡
      鏈表管理器緩沖區(qū)
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
      應急狀態(tài)啟動磁盤管理器
      基于二進制鏈表的粗糙集屬性約簡
      跟麥咭學編程
      Windows文件緩沖處理技術(shù)概述
      基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      高集成度2.5A備份電源管理器簡化鋰離子電池備份系統(tǒng)
      快速導出QQ群消息
      電腦迷(2014年2期)2014-04-29 19:21:13
      鏈表方式集中器抄表的設(shè)計
      電測與儀表(2014年1期)2014-04-04 12:00:22
      垦利县| 河津市| 伊春市| 根河市| 始兴县| 南雄市| 太湖县| 阿坝县| 深水埗区| 山东省| 芜湖市| 叙永县| 新邵县| 元氏县| 平塘县| 东乌| 大名县| 公安县| 兰溪市| 博爱县| 林甸县| 肥城市| 绥江县| 唐河县| 和龙市| 石城县| 鹿邑县| 绥中县| 赣榆县| 连云港市| 如皋市| 大宁县| 昭通市| 库尔勒市| 轮台县| 瓮安县| 潮安县| 台东市| 普宁市| 阿克陶县| 娱乐|