一種高速總線數(shù)據(jù)接收中的分級(jí)緩沖實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)通信技術(shù)領(lǐng)域,涉及通信網(wǎng)絡(luò)中一種高速總線數(shù)據(jù)接收中的分級(jí)緩沖實(shí)現(xiàn)裝置及方法。
【背景技術(shù)】
[0002]隨著總線技術(shù)不斷發(fā)展,目前高速總線通信速率多為IGbps以上,在高速總線接口設(shè)計(jì)過程中,從高速總線上接收到的數(shù)據(jù)經(jīng)常由于接收速率過快但響應(yīng)處理速度過慢而導(dǎo)致數(shù)據(jù)覆蓋或丟棄。因此,為了避免這種數(shù)據(jù)丟失的情況,需提供一種高速總線消息接收過程中的分級(jí)實(shí)時(shí)緩沖技術(shù),以解決高速總線數(shù)據(jù)接收緩沖管理及應(yīng)用數(shù)據(jù)丟失問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的:提供一種高速總線數(shù)據(jù)接收中的分級(jí)緩沖實(shí)現(xiàn)裝置及方法,解決由于接收速率過快但響應(yīng)處理過慢而導(dǎo)致的數(shù)據(jù)丟失問題。
[0004]本發(fā)明的技術(shù)方案:
[0005]一種高速總線消息接收過程中的分級(jí)緩沖實(shí)現(xiàn)裝置,其特殊之處在于,包括控制器、總線接收管理單元、消息接收緩沖區(qū)、環(huán)形緩沖區(qū)、消息屬性寄存器、中斷管理寄存器、消息接收緩沖區(qū)頭尾指針寄存器及環(huán)形緩沖區(qū)頭尾指針寄存器;
[0006]總線接收管理單元與控制器相連,向控制器發(fā)送消息接收中斷;
[0007]總線接收管理單元與各個(gè)消息接收緩沖區(qū)相連,實(shí)現(xiàn)從高速總線接收到數(shù)據(jù)的管理和緩存;
[0008]控制器與各個(gè)消息接收緩沖區(qū)相連,實(shí)現(xiàn)接收消息讀?。?br>[0009]控制器與各個(gè)環(huán)形緩沖區(qū)相連,實(shí)現(xiàn)緩沖消息寫入;
[0010]控制器與消息屬性寄存器相連,讀取當(dāng)前消息屬性信息;
[0011]控制器與中斷管理寄存器相連,實(shí)現(xiàn)中斷狀態(tài)管理;
[0012]總線接收管理單元與各個(gè)緩沖區(qū)頭尾指針寄存器相連,實(shí)現(xiàn)緩沖區(qū)狀態(tài)控制;
[0013]控制器與各個(gè)消息接收緩沖區(qū)頭尾指針寄存器相連,實(shí)現(xiàn)緩沖區(qū)狀態(tài)管理;
[0014]控制器與各個(gè)環(huán)形緩沖區(qū)頭指針寄存器相連,實(shí)現(xiàn)緩沖區(qū)狀態(tài)管理。
[0015]上述消息接收緩沖區(qū)采用固定長度,每個(gè)消息接收緩沖區(qū)的大小為單個(gè)高速消息最大幀長度。
[0016]環(huán)形緩沖區(qū)的大小為單個(gè)消息幀中有效數(shù)據(jù)的最大長度。
[0017]一種高速總線消息接收過程中的分級(jí)緩沖實(shí)現(xiàn)方法,其特殊之處在于,包括如下步驟:
[0018]步驟1:控制器初始化消息屬性寄存器、中斷管理寄存器、消息接收緩沖區(qū)頭尾指針寄存器及環(huán)形緩沖區(qū)頭尾指針寄存器;
[0019]步驟2:總線接收管理單元判斷當(dāng)前總線端口是否接收到總線消息;
[0020]步驟3:若總線端口接收到總線消息,則總線接收管理單元根據(jù)該總線消息的消息屬性將接收到的消息數(shù)據(jù)信息寫入相應(yīng)的消息接收緩沖區(qū),更新對應(yīng)的消息接收緩沖區(qū)尾指針,并將消息接收中斷上報(bào)控制器;若無接收消息,則重復(fù)步驟2 ;
[0021]步驟4:控制器收到消息接收中斷后,讀取消息接收緩沖區(qū)中的數(shù)據(jù)并寫入相應(yīng)的環(huán)形緩沖區(qū),更新當(dāng)前消息接收緩沖區(qū)頭指針和環(huán)形緩沖區(qū)尾指針,清除中斷;
[0022]步驟5:判斷任務(wù)執(zhí)行條件;
[0023]步驟6:若當(dāng)前具備任務(wù)執(zhí)行條件,則轉(zhuǎn)步驟7 ;若不具備任務(wù)執(zhí)行條件,則重復(fù)步驟5 ;
[0024]步驟7:控制器將當(dāng)前環(huán)形緩沖區(qū)中的數(shù)據(jù)取出并提交任務(wù)進(jìn)行處理,更新環(huán)形緩沖區(qū)頭指針。
[0025]本發(fā)明具有的優(yōu)點(diǎn)效果:
[0026]提供高速總線數(shù)據(jù)接收分級(jí)及緩沖方案,解決由于高速總線數(shù)據(jù)接收速率過快但響應(yīng)處理過慢而導(dǎo)致的數(shù)據(jù)丟失問題;
[0027]中斷響應(yīng),實(shí)時(shí)處理:采用中斷方式實(shí)時(shí)響應(yīng)并處理緩沖數(shù)據(jù),避免數(shù)據(jù)丟失;
[0028]復(fù)用性強(qiáng):該分級(jí)緩沖實(shí)現(xiàn)方法適用于各種高速總線接口設(shè)計(jì);
[0029]無主機(jī)接口:無主機(jī)接口,基于FPGA內(nèi)部控制器進(jìn)行控制;
[0030]可升級(jí)性強(qiáng):基于FPGA設(shè)計(jì)實(shí)現(xiàn),可根據(jù)實(shí)際需要進(jìn)行升級(jí)開發(fā)。
【附圖說明】
[0031]圖1是高速總線消息接收及緩沖架構(gòu)圖;
[0032]圖2是高速總線消息接收及緩沖處理流程圖。
【具體實(shí)施方式】
[0033]本發(fā)明的設(shè)計(jì)思路是:建立多消息緩存機(jī)制,設(shè)計(jì)不同的消息接收緩沖區(qū),通過消息接收管理單元實(shí)現(xiàn)高速數(shù)據(jù)接收管理,將高速總線消息數(shù)據(jù)按照不同的消息屬性存放在相應(yīng)的消息接收緩沖區(qū)中。建立數(shù)據(jù)緩沖機(jī)制,創(chuàng)建與高速消息接收緩沖區(qū)相對應(yīng)的環(huán)形緩沖區(qū)及相應(yīng)管理寄存器,解決由于響應(yīng)處理過慢而導(dǎo)致的數(shù)據(jù)丟失問題。采用中斷方式實(shí)時(shí)響應(yīng)并處理緩沖數(shù)據(jù),通過控制器實(shí)現(xiàn)中斷處理及數(shù)據(jù)管理等操作。
[0034]實(shí)現(xiàn)原理如圖1、圖2所示。下面結(jié)合附圖對實(shí)施方式進(jìn)行具體說明。
[0035]首先對高速總線消息接收過程中的分級(jí)緩沖實(shí)現(xiàn)裝置的架構(gòu)進(jìn)行介紹,如圖1所
/Jn ο
[0036]建立多消息緩存機(jī)制。根據(jù)消息屬性,設(shè)計(jì)不同高速總線接收消息對應(yīng)的多個(gè)消息接收緩沖區(qū),消息接收緩沖區(qū)采用固定長度,每個(gè)消息接收緩沖區(qū)的大小為單個(gè)消息的最大幀長度。針對每個(gè)消息接收緩沖區(qū),設(shè)置相應(yīng)的消息接收緩沖區(qū)頭指針和消息接收緩沖區(qū)尾指針,消息接收緩沖區(qū)頭指針由控制器進(jìn)行維護(hù),消息接收緩沖區(qū)尾指針由消息接收管理單元進(jìn)行控制,從而實(shí)現(xiàn)對消息接收的管理。設(shè)計(jì)中斷管理寄存器,用以實(shí)現(xiàn)控制器對消息接收中斷的控制和處理;設(shè)計(jì)消息屬性寄存器,控制器通過讀取該寄存器的值可判斷當(dāng)前接收到的是哪一條消息。
[0037]構(gòu)建數(shù)據(jù)緩沖架構(gòu),為每個(gè)消息接收緩沖區(qū)分別設(shè)計(jì)獨(dú)立的環(huán)形緩沖區(qū)以及相應(yīng)的環(huán)形緩沖區(qū)管理寄存器?;诖鎯?chǔ)空間大小,控制器分配和建立固定深度的環(huán)形緩沖區(qū),單緩沖區(qū)的大小為單個(gè)消息幀中有效數(shù)據(jù)的最大長度,用以存放從高速總線接口接收到但無法及時(shí)響應(yīng)處理的消息數(shù)據(jù),以解決由于無法及時(shí)處理而導(dǎo)致的數(shù)據(jù)丟失問題。環(huán)形緩沖區(qū)管理寄存器包括環(huán)形緩沖區(qū)頭指針寄存器和環(huán)形緩沖區(qū)尾指針寄存器。環(huán)形緩沖區(qū)頭/尾指針寄存器由控制器進(jìn)行維護(hù)。
[0038]消息接收管理單元負(fù)責(zé)接收高速總線消息數(shù)據(jù)信息并根據(jù)接收到消息的屬性判斷當(dāng)前接收到的消息應(yīng)存放到哪一個(gè)消息接收緩沖區(qū),繼而將數(shù)據(jù)寫入對應(yīng)的消息接收緩沖區(qū),完成對相應(yīng)的消息接收緩沖區(qū)尾指針的維護(hù),將消息屬性信息寫入消息屬性寄存器,最后向控制器上報(bào)消息接收中斷。
[0039]控制器負(fù)責(zé)完成數(shù)據(jù)管理、緩沖管理和中斷處理等工作。
[0040]控制器收到消息接收中斷,通過讀取消息屬性寄存器判斷當(dāng)前接收數(shù)據(jù)所在緩沖區(qū)位置,通過讀取緩沖區(qū)頭指針和尾指針判斷消息數(shù)據(jù)在緩沖區(qū)中的位置,從消息接收緩沖內(nèi)相應(yīng)位置將消息幀的有效數(shù)據(jù)取出并寫入當(dāng)前緩沖區(qū)所對應(yīng)的環(huán)形緩沖區(qū),對中斷控制寄存器進(jìn)行操作以清除中斷,更新當(dāng)前接收緩沖區(qū)的頭指針,同時(shí)更新當(dāng)前環(huán)形緩沖區(qū)的尾指針。
[0041]控制器根據(jù)任務(wù)處理要求,查詢對應(yīng)環(huán)形緩沖區(qū)頭指針和尾指針狀態(tài),讀取當(dāng)前環(huán)形緩沖區(qū)內(nèi)的數(shù)據(jù)并提交任務(wù)進(jìn)行處理。
[0042]高速總線消息接收過程中的分級(jí)緩沖實(shí)現(xiàn)方法,如圖2所示:
[0043]步驟1:控制器初始化消息屬性寄存器、中斷管理寄存器、消息接收緩沖區(qū)頭尾指針寄存器及環(huán)形緩沖區(qū)頭尾指針寄存器;
[0044]步驟2:總線接收管理單元判斷當(dāng)前總線端口是否接收到總線消息;
[0045]步驟3:若總線端口接收到總線消息,則總線接收管理單元根據(jù)該總線消息的消息屬性將接收到的消息數(shù)據(jù)信息寫入相應(yīng)的消息接收緩沖區(qū),更新對應(yīng)的消息接收緩沖區(qū)尾指針,并將消息接收中斷上報(bào)控制器;若無接收消息,則重復(fù)步驟2 ;
[0046]步驟4:控制器收到消息接收中斷后,讀取消息接收緩沖區(qū)中的數(shù)據(jù)并寫入相應(yīng)的環(huán)形緩沖區(qū),更新當(dāng)前消息接收緩沖區(qū)頭指針和環(huán)形緩沖區(qū)尾指針,清除中斷;
[0047]步驟5:判斷任務(wù)執(zhí)行條件;
[0048]步驟6:若當(dāng)前具備任務(wù)執(zhí)行條件,則轉(zhuǎn)步驟7 ;若不具備任務(wù)執(zhí)行條件,則重復(fù)步驟5 ;
[0049]步驟7:控制器將當(dāng)前環(huán)形緩沖區(qū)中的數(shù)據(jù)取出并提交任務(wù)進(jìn)行處理,更新環(huán)形緩沖區(qū)頭指針。
【主權(quán)項(xiàng)】
1.一種高速總線消息接收過程中的分級(jí)緩沖實(shí)現(xiàn)裝置,其特征在于,包括控制器、總線接收管理單元、消息接收緩沖區(qū)、環(huán)形緩沖區(qū)、消息屬性寄存器、中斷管理寄存器、消息接收緩沖區(qū)頭尾指針寄存器及環(huán)形緩沖區(qū)頭尾指針寄存器; 總線接收管理單元與控制器相連,向控制器發(fā)送消息接收中斷; 總線接收管理單元與各個(gè)消息接收緩沖區(qū)相連,實(shí)現(xiàn)從高速總線接收到數(shù)據(jù)的管理和緩存; 控制器與各個(gè)消息接收緩沖區(qū)相連,實(shí)現(xiàn)接收消息讀?。? 控制器與各個(gè)環(huán)形緩沖區(qū)相連,實(shí)現(xiàn)緩沖消息寫入; 控制器與消息屬性寄存器相連,讀取當(dāng)前消息屬性信息; 控制器與中斷管理寄存器相連,實(shí)現(xiàn)中斷狀態(tài)管理; 總線接收管理單元與各個(gè)緩沖區(qū)頭尾指針寄存器相連,實(shí)現(xiàn)緩沖區(qū)狀態(tài)控制; 控制器與各個(gè)消息接收緩沖區(qū)頭尾指針寄存器相連,實(shí)現(xiàn)緩沖區(qū)狀態(tài)管理; 控制器與各個(gè)環(huán)形緩沖區(qū)頭指針寄存器相連,實(shí)現(xiàn)緩沖區(qū)狀態(tài)管理。
2.根據(jù)權(quán)利要求1所述的高速總線數(shù)據(jù)接收中的分級(jí)緩沖實(shí)現(xiàn)裝置,其特征在于:所述消息接收緩沖區(qū)采用固定長度,每個(gè)消息接收緩沖區(qū)的大小為單個(gè)高速消息最大幀長度。
3.根據(jù)權(quán)利要求1或2所述的高速總線數(shù)據(jù)接收中的分級(jí)緩沖實(shí)現(xiàn)裝置,其特征在于:環(huán)形緩沖區(qū)的大小為單個(gè)消息幀中有效數(shù)據(jù)的最大長度。
4.一種高速總線消息接收過程中的分級(jí)緩沖實(shí)現(xiàn)方法,其特征在于,包括如下步驟: 步驟1:控制器初始化消息屬性寄存器、中斷管理寄存器、消息接收緩沖區(qū)頭尾指針寄存器及環(huán)形緩沖區(qū)頭尾指針寄存器; 步驟2:總線接收管理單元判斷當(dāng)前總線端口是否接收到總線消息; 步驟3:若總線端口接收到總線消息,則總線接收管理單元根據(jù)該總線消息的消息屬性將接收到的消息數(shù)據(jù)信息寫入相應(yīng)的消息接收緩沖區(qū),更新對應(yīng)的消息接收緩沖區(qū)尾指針,并將消息接收中斷上報(bào)控制器;若無接收消息,則重復(fù)步驟2 ; 步驟4:控制器收到消息接收中斷后,讀取消息接收緩沖區(qū)中的數(shù)據(jù)并寫入相應(yīng)的環(huán)形緩沖區(qū),更新當(dāng)前消息接收緩沖區(qū)頭指針和環(huán)形緩沖區(qū)尾指針,清除中斷; 步驟5:判斷任務(wù)執(zhí)行條件; 步驟6:若當(dāng)前具備任務(wù)執(zhí)行條件,則轉(zhuǎn)步驟7 ;若不具備任務(wù)執(zhí)行條件,則重復(fù)步驟.5 ; 步驟7:控制器將當(dāng)前環(huán)形緩沖區(qū)中的數(shù)據(jù)取出并提交任務(wù)進(jìn)行處理,更新環(huán)形緩沖區(qū)頭指針。
【專利摘要】本發(fā)明提供一種高速總線數(shù)據(jù)接收中的分級(jí)緩沖實(shí)現(xiàn)方法,解決由于響應(yīng)處理過慢而導(dǎo)致的數(shù)據(jù)丟失問題。本方法建立多消息緩存機(jī)制,設(shè)計(jì)不同的消息接收緩沖區(qū),通過總線接收管理單元實(shí)現(xiàn)高速接收管理,將高速消息幀數(shù)據(jù)按照不同的消息ID存放在相應(yīng)的消息接收緩沖區(qū)中;建立數(shù)據(jù)緩沖機(jī)制,創(chuàng)建與消息接收緩沖區(qū)相對應(yīng)的環(huán)形緩沖區(qū)及相應(yīng)管理寄存器,避免數(shù)據(jù)丟失的情況發(fā)生。
【IPC分類】G06F13-42
【公開號(hào)】CN104731747
【申請?zhí)枴緾N201310713708
【發(fā)明人】朱志強(qiáng), 黃韜, 李大鵬, 李健
【申請人】中國航空工業(yè)集團(tuán)公司第六三一研究所
【公開日】2015年6月24日
【申請日】2013年12月20日