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