亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

集約式數(shù)據(jù)幀隊列控制器及控制方法

文檔序號:6493699閱讀:187來源:國知局
集約式數(shù)據(jù)幀隊列控制器及控制方法
【專利摘要】本發(fā)明涉及一種集約式數(shù)據(jù)幀隊列控制器及控制方法,該集約式數(shù)據(jù)幀隊列控制器包括用于順序存放所有數(shù)據(jù)幀首地址的FIFO、用于存儲器存放數(shù)據(jù)幀長度和內(nèi)容的共享存儲資源的雙端口存儲器以及用于實現(xiàn)數(shù)據(jù)幀隊列控制管理的專用控制邏輯;專用控制邏輯分別與FIFO以及雙端口存儲器相連。本發(fā)明提供了一種可實現(xiàn)數(shù)據(jù)幀的緊密存儲排列、可提高有限存儲資源利用率、有效地解決存儲資源的瓶頸問題、有利于在現(xiàn)有FPGA芯片基礎(chǔ)上實現(xiàn)高性能的交換機和通信接口以及可降低硬件設(shè)計難度和成本的集約式數(shù)據(jù)幀隊列控制器及控制方法。
【專利說明】集約式數(shù)據(jù)幀隊列控制器及控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機控制【技術(shù)領(lǐng)域】,涉及一種集約式數(shù)據(jù)幀隊列控制器及控制方法,尤其涉及一種對交換機和通信節(jié)點中數(shù)據(jù)幀隊列管理的集約式數(shù)據(jù)幀隊列控制器及控制方法。
【背景技術(shù)】
[0002]在高速通信系統(tǒng)設(shè)計中,為了保證系統(tǒng)的傳輸效率和通信服務(wù)質(zhì)量,需要在交換機、通信節(jié)點中需要采用大量的存儲資源存放數(shù)據(jù)幀以緩解通信接口與上層處理訪問速率不匹配。
[0003]通信系統(tǒng)的硬件設(shè)計往往采用FPGA可編程器件實現(xiàn),而受芯片工藝限制,F(xiàn)PGA內(nèi)部存儲資源有限,因此FPGA存儲資源成為制約高速通信系統(tǒng)設(shè)計的瓶頸。
[0004]傳統(tǒng)的數(shù)據(jù)幀存儲管理采用以最大數(shù)據(jù)幀長為單位,將存儲區(qū)劃分為等長的存儲塊,構(gòu)成一個環(huán)形緩沖隊列。該方法簡單。傳統(tǒng)的數(shù)據(jù)幀存儲管理采用以最大數(shù)據(jù)幀長為單位,將存儲區(qū)劃分為等長的存儲塊,存儲塊從零開始,順序編號,構(gòu)成一個環(huán)形緩沖隊列。該方法簡單。但在實際應(yīng)用過程中,傳輸?shù)臄?shù)據(jù)幀長度往往小于最大幀長度。隊列中每個數(shù)據(jù)塊的長度必須不小于最大數(shù)據(jù)幀的長度。例如:以太網(wǎng)數(shù)據(jù)幀的取值范圍為64-1518字節(jié),數(shù)據(jù)塊的長度不能小于1518字節(jié),當(dāng)傳輸?shù)膸L為64字節(jié)時,該數(shù)據(jù)塊的利用率只有4.2% (64/1518)。因此,傳統(tǒng)的數(shù)據(jù)幀存儲管理對存儲資源利用率低,設(shè)計成本高。

【發(fā)明內(nèi)容】

[0005]為了解決【背景技術(shù)】中存在的上述技術(shù)問題,本發(fā)明提供了一種可實現(xiàn)數(shù)據(jù)幀的緊密存儲排列、可提高有限存儲資源利用率、有效地解決存儲資源的瓶頸問題、有利于在現(xiàn)有FPGA芯片基礎(chǔ)上實現(xiàn)高性能的交換機和通信接口以及可降低硬件設(shè)計難度和成本的集約式數(shù)據(jù)幀隊列控制器及控制方法。
[0006]本發(fā)明的技術(shù)解決方案是:本發(fā)明提供了一種集約式數(shù)據(jù)幀隊列控制器,其特殊之處在于:所述集約式數(shù)據(jù)幀隊列控制器包括用于順序存放所有數(shù)據(jù)幀首地址的FIFO、用于存儲器存放數(shù)據(jù)幀長度和內(nèi)容的共享存儲資源的雙端口存儲器以及用于實現(xiàn)數(shù)據(jù)幀隊列控制管理的專用控制邏輯;所述專用控制邏輯分別與FIFO以及雙端口存儲器相連。
[0007]上述專用控制邏輯包括用于存放環(huán)形隊列包括隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr、隊列長度QueueLength、最大數(shù)據(jù)巾貞長Frame_MAXLen的控制寄存器組;
[0008]根據(jù)控制寄存器組中隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr,獲取雙端口存儲器中空閑存儲空間,將數(shù)據(jù)幀的長度和內(nèi)容寫入到雙端口存儲器中,同時將數(shù)據(jù)幀在雙端口存儲器的首地址寫入到FIFO,并調(diào)整隊列尾地址QueueTailPtr的輸入控制單元;
[0009]以及讀取FIFO中的數(shù)據(jù)幀首地址,根據(jù)數(shù)據(jù)幀首地址從雙端口存儲器中讀取數(shù)據(jù)中貞,并調(diào)整隊列首地址QueueHeadPtr的輸出控制單元;
[0010]所述輸入控制單元通過雙端口存儲器接入輸出控制單元;所述控制寄存器組分別與FIFO以及雙端口存儲器相連。
[0011]一種集約式數(shù)據(jù)幀隊列控制器的控制方法,其特殊之處在于:所述控制方法包括以下步驟:
[0012]I)對控制寄存器組以及FIFO進行初始化;
[0013]2)數(shù)據(jù)幀輸入單元將新收到數(shù)據(jù)幀寫入到雙端口存儲器,并將數(shù)據(jù)幀的地址寫入到FIFO中;
[0014]3)數(shù)據(jù)幀輸出單元從FIFO中獲取數(shù)據(jù)幀首地址,根據(jù)數(shù)據(jù)首幀從雙端口存儲器讀取數(shù)據(jù)幀的內(nèi)容。
[0015]上述步驟I)的具體實現(xiàn)方式是:
[0016]1.1)設(shè)置隊列首地址和隊列尾地址:將控制寄存器組中的隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr分別設(shè)置為零;
[0017]1.2)設(shè)置隊列長度:根據(jù)雙端口存儲器的大小設(shè)置控制寄存器組中隊列長度QueueLength ;
[0018]1.3)設(shè)置最大數(shù)據(jù)幀長:按照預(yù)先定義最大幀長,設(shè)置控制寄存器組中最大數(shù)據(jù)中貞長Frame_MAXLen ;Frame_MAXLen取值為4字節(jié)的整數(shù)倍;
[0019]1.4)對FIFO進行復(fù)位:復(fù)位FIF0,清空FIFO中存放的所有信息。
[0020]上述步驟1.3)中的取值范圍是在32-4096字節(jié)之間。
[0021]上述步驟2)的具體實現(xiàn)方式是:
[0022]2.1)判斷雙端口存儲器的空滿狀態(tài):若數(shù)據(jù)幀環(huán)形隊列滿,則直接丟棄該數(shù)據(jù)幀;若否,則執(zhí)行步驟2.2);
[0023]2.2)判斷FIFO狀態(tài):判斷FIFO是否已滿,若FIFO已滿,則直接丟棄該數(shù)據(jù)幀;若否,則執(zhí)行步驟2.3);
[0024]2.3)計算數(shù)據(jù)幀在存儲單元中首地址:所述數(shù)據(jù)幀在存儲單元中的首地址是雙端口存儲器在邏輯上構(gòu)成一個數(shù)據(jù)巾貞環(huán)形隊列的尾地址QueueTailPtr ;
[0025]2.4)將數(shù)據(jù)幀的長度和內(nèi)容寫入數(shù)據(jù)幀首地址對應(yīng)的存儲單元中;
[0026]2.5)將數(shù)據(jù)幀首地址寫入到FIFO中:
[0027]2.6)調(diào)整隊列尾地址 QueueTailPtr,所述 QueueTailPtr 是 QueueTailPtr 與Frame_Len之和,判斷新的QueueTailPtr后續(xù)存儲區(qū)域是否還能存放一個最大數(shù)據(jù)巾貞,當(dāng)(QueueTailPtr+Frame_MAXLen) %QueueLength 小于 QueueTailPtr 成立,表不隊列尾地址QueueTailPtr已到雙端口存儲器的尾端,則設(shè)置隊列尾地址QueueTailPtr為零。
[0028]上述步驟2.1)中雙端口存儲器在邏輯上構(gòu)成一個數(shù)據(jù)幀環(huán)形隊列,所述數(shù)據(jù)幀環(huán)形隊列判斷為滿的條件是:(QueueTailPtr+2*Frame_MAXLen)%QueueLength>=QueueHeadPtr。
[0029]上述步驟3)的具體實現(xiàn)方式是:
[0030]3.1)判斷FIFO的狀態(tài),若FIFO為空,則雙端口存儲器無新的數(shù)據(jù)幀,直接返回;若否,則執(zhí)行步驟3.2);
[0031]3.2)從FIFO中讀取數(shù)據(jù)巾貞首地址Frame_Addr ;[0032]3.3)根據(jù)數(shù)據(jù)幀首地址,從雙口存儲器的數(shù)據(jù)幀首地址處讀取前四字節(jié)作為數(shù)據(jù)幀的長度Frame_Len,根據(jù)數(shù)據(jù)幀的長度,從雙口存儲器的數(shù)據(jù)幀首地址Frame_Addr+4處讀取數(shù)據(jù)幀的內(nèi)容;
[0033]3.4)調(diào)整環(huán)形隊列的隊列首地址QueueHeadPtr,將QueueHeadPtr設(shè)置為Frame_Addr0
[0034]本發(fā)明提出一種集約式數(shù)據(jù)幀隊列控制器及控制方法,該集約式數(shù)據(jù)幀隊列控制器采用FIFO+雙端口存儲器+專用控制邏輯,構(gòu)造一個鏈式結(jié)構(gòu)的共享存儲體,實現(xiàn)支持變長、集約式數(shù)據(jù)幀隊列控制器電路。其中雙端口用于存儲器存放數(shù)據(jù)幀的內(nèi)容,邏輯上構(gòu)成一個的環(huán)形隊列;FIF0用于順序存放所有數(shù)據(jù)幀首地址。數(shù)據(jù)幀首地址表示該數(shù)據(jù)幀在雙端口存儲器中的偏移地址。專用控制邏輯實現(xiàn)數(shù)據(jù)幀隊列控制管理。專用控制邏輯包括控制寄存器組、輸入控制單元和輸出控制單元。輸入控制單元和輸出控制單元分別在雙端口存儲器和FIFO兩端操作,收到數(shù)據(jù)幀時,輸入控制將數(shù)據(jù)幀的長度和內(nèi)容寫入到雙端口存儲器中,將雙端口存儲器存放數(shù)據(jù)幀首地址寫入到FIFO中。輸出控制負責(zé)從FIFO讀取數(shù)據(jù)幀索引信息,根據(jù)數(shù)據(jù)幀首地址從雙端口存儲器中讀取數(shù)據(jù)幀的長度和內(nèi)容。該集約式數(shù)據(jù)幀隊列控制器的控制方法采用鏈式存儲和環(huán)形隊列管理等策略實現(xiàn)一種集約式數(shù)據(jù)幀隊列管理。本發(fā)明所提供的集約式數(shù)據(jù)幀隊列控制器及控制方法按照單個數(shù)據(jù)幀的實際長度分配存儲空間,實現(xiàn)數(shù)據(jù)幀的緊密存儲排列,提高了有限存儲資源利用率,有效地解決存儲資源的瓶頸問題,有利于在現(xiàn)有FPGA芯片基礎(chǔ)上實現(xiàn)高性能的交換機和通信接口,降低硬件設(shè)計難度和成本,保證了通信系統(tǒng)具有很好傳輸服務(wù)質(zhì)量。另外,該集約式隊列數(shù)據(jù)幀隊列管理控制器實現(xiàn)簡單、可擴展性強、訪問延遲小。采用硬件電路實現(xiàn)一種集約式數(shù)據(jù)幀隊列控制器。具體而言,本發(fā)明具有如下優(yōu)點:
[0035]資源利用率高:采用鏈式存儲器管理策略,實現(xiàn)了數(shù)據(jù)幀緊密存儲排列,提高了存儲資源利用率,減少系統(tǒng)設(shè)計對存儲資源需求。
[0036]傳輸效率高:采用硬件電路數(shù)據(jù)幀隊列控制管理,滿足通信高速傳輸要求。
[0037]可擴展性強:數(shù)據(jù)幀隊列控制器的存儲器的最大長度、數(shù)據(jù)幀的最大長度可配置,使用靈活,具有很好的可擴展性。
[0038]設(shè)計難度小:有效提高單芯片內(nèi)通信系統(tǒng)設(shè)計規(guī)模,系統(tǒng)內(nèi)部互連實現(xiàn)簡單,保證通信系統(tǒng)具有很好傳輸服務(wù)質(zhì)量,降低通信系統(tǒng)設(shè)計難度。
【專利附圖】

【附圖說明】
[0039]圖1是本發(fā)明所提供的集約式數(shù)據(jù)幀隊列控制器的結(jié)構(gòu)框圖;
[0040]圖2是本發(fā)明所提供的集約式數(shù)據(jù)隊列管理控制器工作原理圖。
【具體實施方式】
[0041]參見圖1,集約式數(shù)據(jù)隊列控制器基于雙端口存儲器和FIFO,采用鏈式管理結(jié)構(gòu)進行數(shù)據(jù)幀的緊密排列,基于FPGA設(shè)計實現(xiàn)一種數(shù)據(jù)幀隊列管理控制電路。該電路由輸入控制單元、輸出控制單元、雙端口存儲器、FIFO、控制寄存器組五部分組成。
[0042]其中:
[0043]雙端口存儲器:用于存放數(shù)據(jù)幀長度和內(nèi)容的共享存儲資源。[0044]FIFO:用于存放數(shù)據(jù)幀首地址,數(shù)據(jù)幀地址表示該數(shù)據(jù)在雙端口存儲器中的偏移地址。FIFO采用一個先進先出策略實現(xiàn)多個數(shù)據(jù)幀地址的順序存儲。
[0045]控制寄存器組:用于存放環(huán)形隊列包括隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr、隊列長度QueueLength、最大數(shù)據(jù)巾貞長Frame_MAXLen??刂齐p端口存儲器的訪問,雙端口存儲器從邏輯上構(gòu)成一個環(huán)形緩沖區(qū)。
[0046]輸入控制單元:根據(jù)控制寄存器組中隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr,獲取雙端口存儲器中空閑存儲空間,將數(shù)據(jù)幀的長度和內(nèi)容寫入到雙端口存儲器中,同時將數(shù)據(jù)幀在雙端口存儲器的首地址寫入到FIF O,并調(diào)整隊列尾地址QueueTailPtr ;
[0047]輸出控制單元:讀取FIFO中的數(shù)據(jù)幀首地址,根據(jù)數(shù)據(jù)幀首地址從雙端口存儲器中讀取數(shù)據(jù)巾貞,并調(diào)整隊列首地址QueueHeadPtr。
[0048]參見圖2,本發(fā)明在提供上述控制器的同時,還提供了一種基于該控制器的控制方法,該方法主要分為三個步驟:初始化、數(shù)據(jù)幀輸入、數(shù)據(jù)幀輸出。
[0049]其中:
[0050]1.初始化時,控制器需要初始化控制寄存器組和FIFO。將雙端口存儲器邏輯上構(gòu)成一個環(huán)形緩沖區(qū)。初始化具體過程如下。
[0051]1.1)設(shè)置隊列首地址和隊列尾地址:將控制寄存器組中的隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr分別設(shè)置為零;
[0052]1.2)設(shè)置隊列長度:根據(jù)雙端口存儲器大小設(shè)置控制寄存器組中隊列長度QueueLength ;
[0053]1.3)設(shè)置最大數(shù)據(jù)幀長:按照用戶預(yù)先定義最大幀長,設(shè)置控制寄存器組中最大數(shù)據(jù)幀長Frame_MAXLen ;Frame_MAXLen取值為4字節(jié)的整數(shù)倍,典型取值范圍在32-4096字節(jié)之間。
[0054]1.4)復(fù)位FIFO:復(fù)位FIF0,清空FIFO中存放的所有信息。
[0055]2.數(shù)據(jù)幀輸入:數(shù)據(jù)幀輸入單元負責(zé)將新收到數(shù)據(jù)幀寫入到雙端口存儲器,并將數(shù)據(jù)幀的地址寫入到FIFO中,具體流程如下:
[0056]2.1)判斷雙端口存儲器空滿狀態(tài):雙端口存儲器在邏輯上構(gòu)成一個數(shù)據(jù)幀環(huán)形隊列,數(shù)據(jù)巾貞環(huán)形隊列判斷為滿的條件為:(QueueTailPtr+2*Frame_MAXLen)%QueueLength>=QueueHeadPtr。若數(shù)據(jù)幀環(huán)形隊列滿,則直接丟棄該數(shù)據(jù)幀,否則進入到步驟2.2);
[0057]2.2)判斷FIFO狀態(tài):判斷FIFO是否已滿,若FIFO已滿,則直接丟棄該數(shù)據(jù)幀,否則進入到步驟2.3);
[0058]2.3)計算數(shù)據(jù)幀在存儲單元中首地址:雙端口存儲器在邏輯上構(gòu)成一個數(shù)據(jù)幀環(huán)形隊列,隊列尾地址QueueTailPtr即新數(shù)據(jù)巾貞在存儲單元的首地址;
[0059]2.4)數(shù)據(jù)幀寫入到存儲單元:將數(shù)據(jù)幀的長度和內(nèi)容寫入數(shù)據(jù)幀首地址對應(yīng)的存儲單元中;
[0060]2.5)將數(shù)據(jù)幀首地址寫入到FIFO中:將數(shù)據(jù)幀首地址寫入到FIFO中。
[0061 ] 2.6 )調(diào)整數(shù)據(jù)幀環(huán)形隊列的隊列尾地址:調(diào)整隊列尾地址QueueTai IPtr,QueueTaiIPtr=QueueTailPtr+Frame_Len,判斷新的 QueueTailPtr 后續(xù)存儲區(qū)域是否還能存放一個最大數(shù)據(jù)巾貞,當(dāng)條件(QueueTai lPtr+Frame_MAXLen ) %QueueLength<QueueTai IPtr成立,表示隊列尾地址QueueTailPtr已到雙端口存儲器的尾端,則設(shè)置隊列尾地址QueueTailPtr 為零。
[0062]3、數(shù)據(jù)幀輸出:數(shù)據(jù)幀輸出單元負責(zé)從FIFO中獲取數(shù)據(jù)幀首地址,根據(jù)數(shù)據(jù)首幀從雙端口存儲器讀取數(shù)據(jù)幀的內(nèi)容,具體流程如下:
[0063]3.1)判斷FIFO狀態(tài):判斷FIFO的狀態(tài),若FIFO為空,表明雙端口存儲器無新的數(shù)據(jù)幀,直接返回,否則進入到步驟3.2);
[0064]3.2)獲取數(shù)據(jù)幀首地址:從FIFO中讀取數(shù)據(jù)幀首地址Frame_Addr ;
[0065]3.3)讀取數(shù)據(jù)幀的內(nèi)容:根據(jù)數(shù)據(jù)幀首地址,從雙口存儲器的數(shù)據(jù)幀首地址處讀取前四字節(jié)作為數(shù)據(jù)幀的長度Frame_Len,根據(jù)數(shù)據(jù)幀的長度,從雙口存儲器的數(shù)據(jù)幀首地址Frame_Addr+4處讀取數(shù)據(jù)巾貞的內(nèi)容;
[0066]3.4)調(diào)整數(shù)據(jù)幀環(huán)形隊列的隊列首地址:調(diào)整環(huán)形隊列的隊列首地址QueueHeadPtr,將 QueueHeadPtr 設(shè)置為 Frame_Addr。
【權(quán)利要求】
1.一種集約式數(shù)據(jù)幀隊列控制器,其特征在于:所述集約式數(shù)據(jù)幀隊列控制器包括用于順序存放所有數(shù)據(jù)幀首地址的FIFO、用于存儲器存放數(shù)據(jù)幀長度和內(nèi)容的共享存儲資源的雙端口存儲器以及用于實現(xiàn)數(shù)據(jù)幀隊列控制管理的專用控制邏輯;所述專用控制邏輯分別與FIFO以及雙端口存儲器相連。
2.根據(jù)權(quán)利要求1所述的集約式數(shù)據(jù)幀隊列控制器,其特征在于:所述專用控制邏輯包括用于存放環(huán)形隊列包括隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr、隊列長度QueueLength、最大數(shù)據(jù)幀長Frame_MAXLen的控制寄存器組; 根據(jù)控制寄存器組中隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr,獲取雙端口存儲器中空閑存儲空間,將數(shù)據(jù)幀的長度和內(nèi)容寫入到雙端口存儲器中,同時將數(shù)據(jù)幀在雙端口存儲器的首地址寫入到FIFO,并調(diào)整隊列尾地址QueueTailPtr的輸入控制單元; 以及讀取FIFO中的數(shù)據(jù)幀首地址,根據(jù)數(shù)據(jù)幀首地址從雙端口存儲器中讀取數(shù)據(jù)幀,并調(diào)整隊列首地址QueueHeadPtr的輸出控制單元; 所述輸入控制單元通過雙端口存儲器接入輸出控制單元;所述控制寄存器組分別與FIFO以及雙端口存儲器相連。
3.根據(jù)權(quán)利要求2所述的集約式數(shù)據(jù)幀隊列控制器的控制方法,其特征在于:所述控制方法包括以下步驟: 1)對控制寄存器組以及FIFO進行初始化; 2)數(shù)據(jù)幀輸入單元將新收到數(shù)據(jù)幀寫入到雙端口存儲器,并將數(shù)據(jù)幀的地址寫入到FIFO 中; 3)數(shù)據(jù)幀輸出單元從FIFO中獲取數(shù)據(jù)幀首地址,根據(jù)數(shù)據(jù)首幀從雙端口存儲器讀取數(shù)據(jù)幀的內(nèi)容。
4.根據(jù)權(quán)利要求3所述的控制方法,其特征在于:所述步驟I)的具體實現(xiàn)方式是: .1.1)設(shè)置隊列首地址和隊列尾地址:將控制寄存器組中的隊列首地址QueueHeadPtr、隊列尾地址QueueTailPtr分別設(shè)置為零; .1.2)設(shè)置隊列長度:根據(jù)雙端口存儲器的大小設(shè)置控制寄存器組中隊列長度QueueLength ; .1.3)設(shè)置最大數(shù)據(jù)幀長:按照預(yù)先定義最大幀長,設(shè)置控制寄存器組中最大數(shù)據(jù)幀長Frame_MAXLen ;Frame_MAXLen取值為4字節(jié)的整數(shù)倍; .1.4)對FIFO進行復(fù)位:復(fù)位FIFO,清空FIFO中存放的所有信息。
5.根據(jù)權(quán)利要求4所述的控制方法,其特征在于:所述步驟1.3)中的取值范圍是在32-4096字節(jié)之間。
6.根據(jù)權(quán)利要求4或5所述的控制方法,其特征在于:所述步驟2)的具體實現(xiàn)方式是: . 2.1)判斷雙端口存儲器的空滿狀態(tài):若數(shù)據(jù)幀環(huán)形隊列滿,則直接丟棄該數(shù)據(jù)幀;若否,則執(zhí)行步驟2.2); . 2.2)判斷FIFO狀態(tài):判斷FIFO是否已滿,若FIFO已滿,則直接丟棄該數(shù)據(jù)幀;若否,則執(zhí)行步驟2.3); . 2.3)計算數(shù)據(jù)幀在存儲單元中首地址:所述數(shù)據(jù)幀在存儲單元中的首地址是雙端口存儲器在邏輯上構(gòu)成一個數(shù)據(jù)幀環(huán)形隊列的尾地址QueueTailPtr ; .2.4)將數(shù)據(jù)幀的長度和內(nèi)容寫入數(shù)據(jù)幀首地址對應(yīng)的存儲單元中;.2.5)將數(shù)據(jù)幀首地址寫入到FIFO中: 2.6)調(diào)整隊列尾地址 QueueTailPtr,所述 QueueTailPtr 是 QueueTailPtr 與 Frame_Len之和,判斷新的QueueTailPtr后續(xù)存儲區(qū)域是否還能存放一個最大數(shù)據(jù)幀,當(dāng)(QueueTailPtr+Frame_MAXLen) %QueueLength 小于 QueueTailPtr 成立,表不隊列尾地址QueueTailPtr已到雙端口存儲器的尾端,則設(shè)置隊列尾地址QueueTailPtr為零。
7.根據(jù)權(quán)利要求6所述的控制方法,其特征在于:所述步驟2.1)中雙端口存儲器在邏輯上構(gòu)成一個數(shù)據(jù)幀環(huán)形隊列,所述數(shù)據(jù)幀環(huán)形隊列判斷為滿的條件是:(QueueTai lPtr+2*Frame_MAXLen) %QueueLength>=QueueHeadPtr。
8.根據(jù)權(quán)利要求7所述的控制方法,其特征在于:所述步驟3)的具體實現(xiàn)方式是: .3.1)判斷FIFO的狀態(tài),若FIFO為空,則雙端口存儲器無新的數(shù)據(jù)幀,直接返回;若否,則執(zhí)行步驟3.2); .3.2)從FIFO中讀取數(shù)據(jù)幀首地址Frame_Addr ; .3.3)根據(jù)數(shù)據(jù)幀首地址,從雙口存儲器的數(shù)據(jù)幀首地址處讀取前四字節(jié)作為數(shù)據(jù)幀的長度Frame_Len,根據(jù)數(shù)據(jù)幀的長度,從雙口存儲器的數(shù)據(jù)幀首地址Frame_Addr+4處讀取數(shù)據(jù)幀的內(nèi)容; . 3.4)調(diào)整環(huán)形隊列的隊 列首地址QueueHeadPtr,將QueueHeadPtr設(shè)置為Frame_Addr。
【文檔編號】G06F5/01GK103902249SQ201210574664
【公開日】2014年7月2日 申請日期:2012年12月26日 優(yōu)先權(quán)日:2012年12月26日
【發(fā)明者】王紅春, 牛文生, 黃韜, 邱征 申請人:中國航空工業(yè)集團公司第六三一研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1