基于arinc659協(xié)議的指令的譯碼方法
【專利摘要】本發(fā)明涉及一種基于ARINC659協(xié)議的指令的譯碼方法,該方法包括:1)從通用靜態(tài)存儲器SRAM中對應的起始位置和固定地址空間,依次讀取系統(tǒng)參數所對應的機器碼,并對需要進行校對的系統(tǒng)參數進行校驗;若校驗成功,則繼續(xù)讀取下一個系統(tǒng)參數;若校驗失敗,則將地址指針值賦0;當系統(tǒng)參數全部校驗結束后進行步驟2);2)判斷通用同步FIFO的狀態(tài),若通用同步FIFO為滿時,則地址指針保持不變;若通用同步FIFO不滿時,則進行步驟3);3)根據指令類型對所有指令的機器碼進行譯碼。本發(fā)明提供了一種有效解決ARINC659總線上BIU對幀描述語言指令的解析問題、可進行推廣完成類似總線自定義指令集的機器碼定義、指令譯碼、譯碼狀態(tài)指示等工作的基于ARINC659協(xié)議的指令的譯碼方法。
【專利說明】基于ARINC659協(xié)議的指令的譯碼方法
【技術領域】
[0001]本發(fā)明屬于計算機控制【技術領域】,涉及一種譯碼方法,尤其涉及一種基于ARINC659協(xié)議的指令的譯碼方法。
【背景技術】
[0002]ARINC659底板數據總線是滿足高可靠性需求的串行容錯總線標準。ARINC659協(xié)議規(guī)定幀描述語言,定義了總線上在線可更換模塊之間通信數據的時序。作為BIU的開發(fā)商,需要定義幀描述語言的機器碼格式,并對機器碼進行解析,完成與總線上其他BIU之間的通信。目前沒有同類技術。
【發(fā)明內容】
[0003]為了解決【背景技術】中存在的上述技術問題,本發(fā)明提供了一種有效解決ARINC659總線上BIU對幀描述語言指令的解析問題、可進行推廣完成類似總線自定義指令集的機器碼定義、指令譯碼、譯碼狀態(tài)指示等工作的基于ARINC659協(xié)議的指令的譯碼方法。
[0004]本發(fā)明的技術解決方案是:本發(fā)明提供了一種基于ARINC659協(xié)議的指令的譯碼方法,其特殊之處在于:所述方法包括以下步驟:
[0005]I)從通用靜態(tài)存儲器SRAM中對應的起始位置和固定地址空間,依次讀取系統(tǒng)參數所對應的機器碼,并對需要進行校對的系統(tǒng)參數進行校驗;若校驗成功,則繼續(xù)讀取下一個系統(tǒng)參數;若校驗失敗,則將地址指針值賦O ;當系統(tǒng)參數全部校驗結束后進行步驟2);
[0006]2)判斷通用同步FIFO的狀態(tài),若通用同步FIFO為滿時,則地址指針保持不變;若通用同步FIFO不滿時,則進行步驟3);
[0007]3)根據指令類型對所有指令的機器碼進行譯碼。
[0008]上述步驟3)的具體實現方式是:
[0009]3.1)按指令長度所需要的32位數的個數判斷指令類型,對于指令長度所需要的32位數的個數大于I的非跳轉指令,對第一個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I ;對于指令長度所需要的32位數的個數大于I的跳轉類指令,保存當前指令的地址,根據指令的機器碼的格式譯碼出目的地址,將目的地址值賦給地址指針;若指令長度所需要的32位數的個數等于I時,則進行步驟I);
[0010]3.2)按指令長度所需要的32位數的個數判斷指令類型,若指令長度所需要的32位數的個數大于2,則對指令的第二個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I ;若指令長度所需要的32位數的個數等于2時,則進行步驟I);
[0011]3.3)按指令長度所需要的32位數的個數判斷指令類型,若指令長度所需要的32位數的個數大于3,則對指令的第三個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I ;若需要的32位數的個數等于3時,則進行步驟I);
[0012]3.4)對指令的第四個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I。[0013]本發(fā)明的優(yōu)點是:
[0014]本發(fā)明提供了一種基于ARINC659協(xié)議的指令的譯碼方法,該方法實現了ARINC659協(xié)議規(guī)定的幀描述語言指令譯碼功能;根據該電路設計,可進行推廣完成類似總線自定義指令集的機器碼定義、指令譯碼、譯碼狀態(tài)指示工作。
【專利附圖】
【附圖說明】
[0015]圖1是本發(fā)明所提供的解析方法中所采用的狀態(tài)機流程示意圖。
【具體實施方式】
[0016]本發(fā)明提供了一種基于ARINC659協(xié)議的指令的譯碼方法,該方法包括以下步驟:
[0017]I)對ARINC659協(xié)議規(guī)定的不同系統(tǒng)參數定義機器碼,每條系統(tǒng)參數占用若干個32位。以參數GAP為例,機器碼格式為:
[0018]
【權利要求】
1.一種基于ARINC659協(xié)議的指令的譯碼方法,其特征在于:所述方法包括以下步驟: O從通用靜態(tài)存儲器SRAM中對應的起始位置和固定地址空間,依次讀取系統(tǒng)參數所對應的機器碼,并對需要進行校對的系統(tǒng)參數進行校驗;若校驗成功,則繼續(xù)讀取下一個系統(tǒng)參數;若校驗失敗,則將地址指針值賦O ;當系統(tǒng)參數全部校驗結束后進行步驟2); . 2)判斷通用同步FIFO的狀態(tài),若通用同步FIFO為滿時,則地址指針保持不變;若通用同步FIFO不滿時,則進行步驟3); .3)根據指令類型對所有指令的機器碼進行譯碼。
2.根據權利要求1所述的基于ARINC659協(xié)議的指令的譯碼方法,其特征在于:所述步驟3)的具體實現方式是: .3.1)按指令長度所需要的32位數的個數判斷指令類型,對于指令長度所需要的32位數的個數大于I的非跳轉指令,對第一個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I ;對于指令長度所需要的32位數的個數大于I的跳轉類指令,保存當前指令的地址,根據指令的機器碼的格式譯碼出目的地址,將目的地址值賦給地址指針;若指令長度所需要的32位數的個數等于I時,則進行步驟I); .3.2)按指令長度所需要的32位數的個數判斷指令類型,若指令長度所需要的32位數的個數大于2,則對指令的第二個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I ;若指令長度所需要的32位數的個數等于2時,則進行步驟I); .3.3)按指令長度所需要的32位數的個數判斷指令類型,若指令長度所需要的32位數的個數大于3,則對指令的第三個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I ;若需要的32位數的個數等于3時,則進行步驟I); .3.4)對指令的第四個32位數進行譯碼,將譯碼的結果存放到通用同步FIFO中,地址指針加I。
【文檔編號】G06F9/30GK103577154SQ201210261486
【公開日】2014年2月12日 申請日期:2012年7月26日 優(yōu)先權日:2012年7月26日
【發(fā)明者】田澤, 劉寧寧, 許宏杰, 楊峰, 郭亮, 馬寧, 劉浩 申請人:中國航空工業(yè)集團公司第六三一研究所