總線編解碼裝置及其方法
【專利摘要】本發(fā)明涉及一種總線編解碼裝置及其方法,該編解碼裝置預(yù)測(cè)命中指令地址總線,編碼裝置輸出的編碼后總線可以在大量的執(zhí)行時(shí)間中保持不變,同時(shí)有效降低指令地址總線上順序執(zhí)行指令、保持不變指令和跳轉(zhuǎn)指令的功耗,從而降低循環(huán)程序的總線功耗。
【專利說(shuō)明】總線編解碼裝置及其方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集成電路領(lǐng)域,具體地涉及一種總線編解碼裝置及其方法。
【背景技術(shù)】
[0002]隨著集成電路工藝技術(shù)的飛速發(fā)展,嵌入式處理器芯片的工作頻率和集成度都得到了很大的提升,由此所帶來(lái)的功耗問(wèn)題日益突出。大量的能量消耗會(huì)縮短便攜式設(shè)備中電池的工作時(shí)間,而且會(huì)給處理器的散熱和可靠性帶來(lái)諸多問(wèn)題。而連接處理器各個(gè)子模塊的總線通常具有較大的負(fù)載電容,并且訪問(wèn)頻繁,是處理器功耗的主要來(lái)源之一。因此,有效降低總線功耗對(duì)于低功耗嵌入式處理器的設(shè)計(jì)有著重要意義。
[0003]現(xiàn)有技術(shù)中,LucaBenini 等人發(fā)表的文章《Asymptotic Zero-TransitionActivity Encoding for Address Busses in Low-Power Microprocessor-Based System》中提出的一種TO總線編碼,其編碼方法如公式所示:
【權(quán)利要求】
1.一種總線編碼裝置,其特征在于,所述裝置包括: 跳轉(zhuǎn)檢測(cè)模塊,用于接收到編碼前總線時(shí)生成跳轉(zhuǎn)標(biāo)志; 狀態(tài)控制模塊,用于當(dāng)?shù)谝淮谓邮盏剿鎏D(zhuǎn)檢測(cè)模塊發(fā)送的跳轉(zhuǎn)標(biāo)志時(shí),向計(jì)數(shù)模塊、輸出選擇模塊發(fā)送控制信號(hào); 計(jì)數(shù)模塊,用于根據(jù)所述控制信號(hào)對(duì)所述編碼前總線的循環(huán)長(zhǎng)度計(jì)算得到第一計(jì)數(shù)值和對(duì)所述編碼前總線的循環(huán)起始地址計(jì)算得到第二計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期的第一計(jì)數(shù)值作為索引地址對(duì)循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息計(jì)數(shù)得到第三計(jì)數(shù)值; 寄存器組模塊,用于接收和保存所述編碼前總線,以及所述計(jì)數(shù)模塊發(fā)送的所述第一計(jì)數(shù)值、第二計(jì)數(shù)值和第三計(jì)數(shù)值,并將上一個(gè)時(shí)鐘周期的編碼后總線發(fā)送給輸出選擇模塊; 輸出選擇模塊,用于接收所述寄存器組模塊發(fā)送的上一個(gè)時(shí)鐘周期的編碼后總線、所述跳轉(zhuǎn)檢測(cè)模塊發(fā)送的跳轉(zhuǎn)標(biāo)志和所述狀態(tài)控制模塊發(fā)送的控制信號(hào),并將所述編碼前總線、所述跳轉(zhuǎn)標(biāo)志和第一電平輸出為編碼后總線、循環(huán)開始標(biāo)志和循環(huán)命中標(biāo)志,其中所述第一電平為低電平; 當(dāng)所述狀態(tài)控制模塊第二次接收到所述跳轉(zhuǎn)檢測(cè)模塊發(fā)送的跳轉(zhuǎn)標(biāo)志時(shí),向所述計(jì)數(shù)模塊和所述輸出選擇模塊發(fā)送控制信號(hào);所述計(jì)數(shù)模塊根據(jù)所述控制信號(hào)對(duì)預(yù)測(cè)循環(huán)長(zhǎng)度計(jì)算得到第四計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期第四計(jì)數(shù)值作為索引地址,讀取所述第三計(jì)數(shù)值對(duì)應(yīng)的比特位作為預(yù)測(cè)步長(zhǎng),根據(jù)所述第二計(jì)數(shù)值和所述預(yù)測(cè)步長(zhǎng)計(jì)算預(yù)測(cè)地址值,得到第五計(jì)數(shù)值;所述寄存器組模塊接收和保存所述編碼前總線、所述計(jì)數(shù)模塊發(fā)送的所述第四計(jì)數(shù)值和所述第五計(jì)數(shù)值;如果所述第五計(jì)數(shù)值等于所述編碼前總線時(shí),則將上一個(gè)時(shí)鐘周期編碼后總線輸出為當(dāng)前時(shí)鐘周期編碼后總線,如果所述第五計(jì)數(shù)值不等于所述編碼前總線時(shí),則所述輸出選擇模塊將所述編碼前總線輸出為當(dāng)前時(shí)鐘周期編碼后總線。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述跳轉(zhuǎn)檢測(cè)模塊包括: 減法單元,用于將當(dāng)前時(shí)鐘周期編碼前總線減去上一個(gè)時(shí)鐘周期編碼前總線得到減法結(jié)果; 第三比較單元,用于比較第二電平與減法單元發(fā)送的所述減法結(jié)果的最高位得到比較結(jié)果,如果比較結(jié)果為相等,則生成跳轉(zhuǎn)標(biāo)志,其中所述第二電平為高電平。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述的寄存器組模塊包括: 輸入總線寄存器,用于接收和保存所述編碼前總線; 循環(huán)計(jì)數(shù)寄存器,用于保存檢測(cè)到的所述編碼前總線的循環(huán)長(zhǎng)度; 預(yù)測(cè)計(jì)數(shù)寄存器,用于保存預(yù)測(cè)的所述編碼前總線的循環(huán)長(zhǎng)度; 循環(huán)基址寄存器,用于保存檢測(cè)到的所述編碼前總線的循環(huán)起始地址; 循環(huán)偏移寄存器,用于保存檢測(cè)到的循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息; 預(yù)測(cè)地址寄存器,用于保存所述第五計(jì)數(shù)值; 輸出總線寄存器,用于保存輸出的編碼后總線。
4.根據(jù)權(quán)利要求1所述 的裝置,其特征在于,所述的計(jì)數(shù)模塊包括: 第一選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)Ia控制計(jì)數(shù)模塊對(duì)所述第一計(jì)數(shù)值保持不變、加1、或者清零; 第一比較單元,用于比較所述循環(huán)計(jì)數(shù)寄存器的值和所述預(yù)測(cè)計(jì)數(shù)寄存器的值,當(dāng)所述預(yù)測(cè)計(jì)數(shù)寄存器的值等于所述循環(huán)計(jì)數(shù)寄存器的值時(shí),則一個(gè)預(yù)測(cè)循環(huán)結(jié)束,所述預(yù)測(cè)地址寄存器的值應(yīng)從所述循環(huán)基址寄存器的值重新計(jì)數(shù); 第二選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)2a控制計(jì)數(shù)模塊對(duì)所述第四計(jì)數(shù)值加I或者清零; 第三選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)3a控制計(jì)數(shù)模塊對(duì)所述第二計(jì)數(shù)值保持不變、清零或者等于當(dāng)前時(shí)鐘周期編碼前總線; 第四選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)4a控制計(jì)數(shù)模塊對(duì)所述循環(huán)偏移寄存器計(jì)數(shù)的第三計(jì)數(shù)值保持不變、按位裝載、或者清零; 控制信號(hào)生成單元,用于根據(jù)第一比較單元的結(jié)果和控制信號(hào)5a控制第五選擇器的輸出信號(hào); 預(yù)測(cè)步長(zhǎng)單元,用于根據(jù)當(dāng)前時(shí)鐘周期所述第四計(jì)數(shù)值作為索引地址,讀取所述循環(huán)偏移寄存器的相應(yīng)比特位得到預(yù)測(cè)步長(zhǎng); 第五選擇器,用于根據(jù)所述控制信號(hào)生成單元輸出的控制信號(hào)7a控制所述第五計(jì)數(shù)值加上預(yù)測(cè)步長(zhǎng)、清零或者等于循環(huán)基址寄存器的值。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述的狀態(tài)控制模塊包括: 在空閑狀態(tài)下,通過(guò) 控制信號(hào)la、控制信號(hào)2a、控制信號(hào)3a、控制信號(hào)4a和控制信號(hào)5a控制計(jì)數(shù)模塊將清O值分別賦給所述循環(huán)計(jì)數(shù)寄存器、所述預(yù)測(cè)計(jì)數(shù)寄存器、所述循環(huán)基址寄存器、所述循環(huán)偏移寄存器和所述預(yù)測(cè)地址寄存器; 在檢測(cè)開始狀態(tài)下,通過(guò)控制信號(hào)Ia控制計(jì)數(shù)模塊開始對(duì)循環(huán)長(zhǎng)度計(jì)數(shù),并將計(jì)數(shù)結(jié)果賦給循環(huán)計(jì)數(shù)寄存器,通過(guò)控制信號(hào)3a控制計(jì)數(shù)模塊將當(dāng)前編碼裝置輸入的編碼前總線賦給循環(huán)基址寄存器,然后狀態(tài)控制模塊自動(dòng)從檢測(cè)開始狀態(tài)轉(zhuǎn)換到檢測(cè)計(jì)數(shù)狀態(tài);在檢測(cè)計(jì)數(shù)狀態(tài)下,通過(guò)控制信號(hào)4a控制計(jì)數(shù)模塊將循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息以當(dāng)前時(shí)鐘周期所述循環(huán)計(jì)數(shù)寄存器的值作為索引地址保存到所述循環(huán)偏移寄存器的相應(yīng)比特位,所述狀態(tài)控制模塊第二次接收到所述跳轉(zhuǎn)檢測(cè)模塊輸出的跳轉(zhuǎn)標(biāo)志等于第二電平時(shí),所述狀態(tài)控制模塊轉(zhuǎn)換到預(yù)測(cè)開始狀態(tài); 在預(yù)測(cè)開始狀態(tài)下,通過(guò)控制信號(hào)2a控制計(jì)數(shù)模塊開始對(duì)預(yù)測(cè)循環(huán)長(zhǎng)度計(jì)數(shù),通過(guò)控制信號(hào)5a控制計(jì)數(shù)模塊開始計(jì)算預(yù)測(cè)地址寄存器的值,當(dāng)所述預(yù)測(cè)地址寄存器的值與所述編碼前總線相等時(shí),所述狀態(tài)控制模塊從預(yù)測(cè)開始狀態(tài)轉(zhuǎn)換到預(yù)測(cè)命中狀態(tài),當(dāng)所述預(yù)測(cè)地址寄存器的值與編碼前總線不相等時(shí),所述狀態(tài)控制模塊從預(yù)測(cè)開始狀態(tài)轉(zhuǎn)換到空閑狀態(tài); 在預(yù)測(cè)命中狀態(tài)下,以當(dāng)前時(shí)鐘周期預(yù)測(cè)計(jì)數(shù)寄存器的值作為索引地址,讀取所述循環(huán)偏移寄存器的相應(yīng)比特位作為預(yù)測(cè)步長(zhǎng),所述預(yù)測(cè)地址寄存器的值等于上一個(gè)時(shí)鐘周期預(yù)測(cè)地址寄存器的值和所述預(yù)測(cè)步長(zhǎng)相加得到,當(dāng)所述預(yù)測(cè)計(jì)數(shù)寄存器的值大于所述循環(huán)計(jì)數(shù)寄存器的值時(shí),則一個(gè)預(yù)測(cè)循環(huán)結(jié)束,所述預(yù)測(cè)地址寄存器的值從循環(huán)基址寄存器的值重新計(jì)數(shù),同時(shí)所述預(yù)測(cè)計(jì) 數(shù)寄存器的值也重新計(jì)數(shù),如果當(dāng)所述預(yù)測(cè)地址寄存器的值與所述編碼前總線相等時(shí),所述狀態(tài)控制模塊保持在預(yù)測(cè)命中狀態(tài)下,通過(guò)控制信號(hào)6a控制輸出選擇模塊將上一個(gè)時(shí)鐘周期編碼后總線輸出為當(dāng)前時(shí)鐘周期編碼后總線,編碼后總線的開關(guān)活動(dòng)性等于O,降低總線功耗,如果當(dāng)所述預(yù)測(cè)地址寄存器的值與所述編碼前總線不相等時(shí),所述狀態(tài)控制模塊從預(yù)測(cè)命中狀態(tài)轉(zhuǎn)換到空閑狀態(tài),等待下一次跳轉(zhuǎn)標(biāo)志,然后通過(guò)控制信號(hào)6a控制所述輸出選擇模塊將當(dāng)前時(shí)鐘周期編碼前總線輸出為當(dāng)前時(shí)鐘周期編碼后總線。
6.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述的輸出選擇模塊包括: 第六選擇器,用于通過(guò)狀態(tài)控制模塊的控制信號(hào)6a選擇當(dāng)前時(shí)鐘周期的編碼前總線或者上一個(gè)時(shí)鐘周期編碼后總線作為當(dāng)前時(shí)鐘周期編碼后總線輸出; 第七選擇器,用于通過(guò)狀態(tài)控制模塊的控制信號(hào)6a輸出循環(huán)開始標(biāo)志; 第八選擇器,用于通過(guò)狀態(tài)控制模塊的控制信號(hào)6a輸出循環(huán)命中標(biāo)志。
7.一種總線解碼裝置,其特征在于,所述裝置包括: 狀態(tài)控制模塊,用于當(dāng)?shù)谝淮谓邮盏骄幋a裝置的循環(huán)開始標(biāo)志時(shí),向計(jì)數(shù)模塊發(fā)送控制信號(hào); 計(jì)數(shù)模塊,用于根據(jù)所述控制信號(hào)對(duì)編碼后總線的循環(huán)長(zhǎng)度計(jì)算得到第六計(jì)數(shù)值和對(duì)所述編碼后總線的循環(huán)起始地址計(jì)算得到第七計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期第六計(jì)數(shù)值作為索引地址,對(duì)編碼后總線的循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息計(jì)數(shù),得到第八計(jì)數(shù)值; 寄存器組模塊,用于接收和保存所述編碼后總線,以及所述計(jì)數(shù)模塊發(fā)送的所述第六計(jì)數(shù)值、所述第七計(jì)數(shù)值和所述第八計(jì)數(shù)值,并將預(yù)測(cè)地址寄存器的值發(fā)送給輸出選擇模塊; 輸出選擇模塊,用于接收所述寄存器組模塊發(fā)送的預(yù)測(cè)地址寄存器的值,并將編碼后總線輸出為解碼后總線; 當(dāng)所述狀態(tài)控制模塊第二次接收到編碼裝置的循環(huán)開始標(biāo)志時(shí),向所述計(jì)數(shù)模塊發(fā)送控制信號(hào);所述計(jì)數(shù)模塊根據(jù)所述控制信號(hào)對(duì)預(yù)測(cè)循環(huán)長(zhǎng)度計(jì)算得到第九計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期第九計(jì)數(shù)值作為索引地址,讀取所述第八計(jì)數(shù)值對(duì)應(yīng)的比特位作為預(yù)測(cè)步長(zhǎng),根據(jù)所述第七計(jì)數(shù)值和所述預(yù)測(cè)步長(zhǎng)計(jì)算預(yù)測(cè)地址值,得到第十計(jì)數(shù)值;所述寄存器組模塊接收和保存所述編碼后總線、所述計(jì)數(shù)模塊發(fā)送的所述第九計(jì)數(shù)值和所述第十計(jì)數(shù)值;如果所述第十計(jì)數(shù)值等于所述編碼后總線時(shí),所述輸出選擇模塊選擇所述第十計(jì)數(shù)值輸出為解碼后總線,如果所述第十計(jì)數(shù)值不等于所述編碼后總線時(shí),所述輸出選擇模塊選擇當(dāng)前時(shí)鐘周期的編碼后總線輸出為解碼后總線。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述的寄存器組模塊包括: 輸入總線寄存器,用于接收和保存所述編碼后總線; 循環(huán)計(jì)數(shù)寄存器,用于保存檢測(cè)到的所述編碼后總線的循環(huán)長(zhǎng)度; 預(yù)測(cè)計(jì)數(shù)寄存器,用于保存預(yù)測(cè)的所述編碼后總線的循環(huán)長(zhǎng)度; 循環(huán)基址寄存器,用于保存檢測(cè)到的所述編碼后總線的循環(huán)起始地址; 循環(huán)偏移寄存器,用于保存檢測(cè)到的循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息; 預(yù)測(cè)地址寄存器,用于保存第十計(jì)數(shù)值。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述的計(jì)數(shù)模塊包括: 第一選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)Ib控制計(jì)數(shù)模塊對(duì)所述第六計(jì)數(shù)值保持不變、加1、或者清零; 第一比較單元,用于比較所述循環(huán)計(jì)數(shù)寄存器的值和所述預(yù)測(cè)計(jì)數(shù)寄存器的值,當(dāng)所述預(yù)測(cè)計(jì)數(shù)寄存器的值等于所述循環(huán)計(jì)數(shù)寄存器的值時(shí),則一個(gè)預(yù)測(cè)循環(huán)結(jié)束,所述預(yù)測(cè)地址寄存器的值應(yīng)從所述循環(huán)基址寄存器的值重新計(jì)數(shù); 第二選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)2b控制計(jì)數(shù)模塊對(duì)所述第九計(jì)數(shù)值加I或者清零; 第三選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)3b控制計(jì)數(shù)模塊對(duì)所述第七計(jì)數(shù)值保持不變、清零或者等于當(dāng)前時(shí)鐘周期編碼后總線; 第四選擇器,用于根據(jù)所述狀態(tài)控制模塊的控制信號(hào)4b控制計(jì)數(shù)模塊對(duì)所述循環(huán)偏移寄存器計(jì)數(shù)的第八計(jì)數(shù)值保持不變、按位裝載、或者清零; 控制信號(hào)生成單元,用于根據(jù)第一比較單元的結(jié)果和控制信號(hào)5b控制第五選擇器的輸出信號(hào); 預(yù)測(cè)步長(zhǎng)單元,用于根據(jù)當(dāng)前時(shí)鐘周期所述第九計(jì)數(shù)值作為索引地址,讀取所述循環(huán)偏移寄存器的相應(yīng)比特位得到預(yù)測(cè)步長(zhǎng); 第五選擇器,用于根據(jù)所述控制信號(hào)生成單元輸出的控制信號(hào)6b控制所述第十計(jì)數(shù)值加上預(yù)測(cè)步長(zhǎng)、清零或者等于循環(huán)基址寄存器的值。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述的狀態(tài)控制模塊包括: 在空閑狀態(tài)下,通過(guò)控制信號(hào)lb、控制信號(hào)2b、控制信號(hào)3b、控制信號(hào)4b和控制信號(hào)5b控制計(jì)數(shù)模塊將清O值分別賦給所述循環(huán)計(jì)數(shù)寄存器、所述預(yù)測(cè)計(jì)數(shù)寄存器、所述循環(huán)基址寄存器、所述循環(huán)偏移 寄存器和所述預(yù)測(cè)地址寄存器; 在檢測(cè)開始狀態(tài)下,通過(guò)控制信號(hào)Ib控制計(jì)數(shù)模塊開始對(duì)循環(huán)長(zhǎng)度計(jì)數(shù),并將計(jì)數(shù)結(jié)果賦給循環(huán)計(jì)數(shù)寄存器,通過(guò)控制信號(hào)3b控制計(jì)數(shù)模塊將當(dāng)前解碼裝置輸入的編碼后總線賦給循環(huán)基址寄存器,然后狀態(tài)控制模塊自動(dòng)從檢測(cè)開始狀態(tài)轉(zhuǎn)換到檢測(cè)計(jì)數(shù)狀態(tài);在檢測(cè)計(jì)數(shù)狀態(tài)下,通過(guò)控制信號(hào)4b控制計(jì)數(shù)模塊將循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息以當(dāng)前時(shí)鐘周期所述循環(huán)計(jì)數(shù)寄存器的值作為索引地址保存到所述循環(huán)偏移寄存器的相應(yīng)比特位,所述狀態(tài)控制模塊第二次接收到所述循環(huán)開始標(biāo)志時(shí),所述狀態(tài)控制模塊轉(zhuǎn)換到預(yù)測(cè)開始狀態(tài); 在預(yù)測(cè)開始狀態(tài)下,通過(guò)控制信號(hào)2b控制計(jì)數(shù)模塊開始對(duì)預(yù)測(cè)循環(huán)長(zhǎng)度計(jì)數(shù),通過(guò)控制信號(hào)5b控制計(jì)數(shù)模塊開始計(jì)算預(yù)測(cè)地址寄存器的值,當(dāng)所述預(yù)測(cè)地址寄存器的值與所述編碼后總線相等時(shí),所述狀態(tài)控制模塊從預(yù)測(cè)開始狀態(tài)轉(zhuǎn)換到預(yù)測(cè)命中狀態(tài),當(dāng)所述預(yù)測(cè)地址寄存器的值與編碼后總線不相等時(shí),所述狀態(tài)控制模塊從預(yù)測(cè)開始狀態(tài)轉(zhuǎn)換到空閑狀態(tài); 在預(yù)測(cè)命中狀態(tài)下,以當(dāng)前時(shí)鐘周期預(yù)測(cè)計(jì)數(shù)寄存器的值作為索引地址,讀取所述循環(huán)偏移寄存器的相應(yīng)比特位,作為預(yù)測(cè)步長(zhǎng),所述預(yù)測(cè)地址寄存器的值等于上一個(gè)時(shí)鐘周期預(yù)測(cè)地址寄存器的值和所述預(yù)測(cè)步長(zhǎng)相加得到,當(dāng)所述預(yù)測(cè)計(jì)數(shù)寄存器的值大于所述循環(huán)計(jì)數(shù)寄存器的值時(shí),則一個(gè)預(yù)測(cè)循環(huán)結(jié)束,所述預(yù)測(cè)地址寄存器的值從循環(huán)基址寄存器的值重新計(jì)數(shù),同時(shí)所述預(yù)測(cè)計(jì)數(shù)寄存器的值也重新計(jì)數(shù),如果當(dāng)所述預(yù)測(cè)地址寄存器的值與所述編碼后總線相等時(shí),所述狀態(tài)控制模塊保持在預(yù)測(cè)命中狀態(tài)下,如果當(dāng)所述預(yù)測(cè)地址寄存器的值與所述編碼后總 線不相等時(shí),所述狀態(tài)控制模塊從預(yù)測(cè)命中狀態(tài)轉(zhuǎn)換到空閑狀態(tài)。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述的輸出選擇模塊包括: 第六選擇器,用于通過(guò)循環(huán)命中標(biāo)志選擇當(dāng)前時(shí)鐘周期的預(yù)測(cè)地址寄存器的值或者當(dāng)前時(shí)鐘周期的編碼后總線作為當(dāng)前時(shí)鐘周期解碼后總線輸出。
12.—種總線編碼方法,其特征在于,所述方法包括: 跳轉(zhuǎn)檢測(cè)模塊接收到編碼前總線時(shí)生成跳轉(zhuǎn)標(biāo)志; 當(dāng)狀態(tài)控制模塊第一次接收到所述跳轉(zhuǎn)檢測(cè)模塊發(fā)送的跳轉(zhuǎn)標(biāo)志時(shí),向計(jì)數(shù)模塊、輸出選擇模塊發(fā)送控制信號(hào); 計(jì)數(shù)模塊根據(jù)所述控制信號(hào)對(duì)所述編碼前總線的循環(huán)長(zhǎng)度計(jì)算得到第一計(jì)數(shù)值和對(duì)所述編碼前總線的循環(huán)起始地址計(jì)算得到第二計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期的第一計(jì)數(shù)值作為索引地址對(duì)循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息計(jì)數(shù)得到第三計(jì)數(shù)值; 寄存器組模塊接收和保存所述編碼前總線,以及所述計(jì)數(shù)模塊發(fā)送的所述第一計(jì)數(shù)值、第二計(jì)數(shù)值和第三計(jì)數(shù)值,并將上一個(gè)時(shí)鐘周期的編碼后總線發(fā)送給輸出選擇模塊; 輸出選擇模塊接收所述寄存器組模塊發(fā)送的上一個(gè)時(shí)鐘周期的編碼后總線、所述跳轉(zhuǎn)檢測(cè)模塊發(fā)送的跳轉(zhuǎn)標(biāo)志和所述狀態(tài)控制模塊發(fā)送的控制信號(hào),并將所述編碼前總線、所述跳轉(zhuǎn)標(biāo)志和第一電平輸出為編碼后總線、循環(huán)開始標(biāo)志和循環(huán)命中標(biāo)志,其中所述第一電平為低電平; 當(dāng)所述狀態(tài)控制模塊第二次接收到所述跳轉(zhuǎn)檢測(cè)模塊發(fā)送的跳轉(zhuǎn)標(biāo)志時(shí),向所述計(jì)數(shù)模塊和所述輸出選擇模塊發(fā) 送控制信號(hào);所述計(jì)數(shù)模塊根據(jù)所述控制信號(hào)對(duì)預(yù)測(cè)循環(huán)長(zhǎng)度計(jì)算得到第四計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期第四計(jì)數(shù)值作為索引地址,讀取所述第三計(jì)數(shù)值對(duì)應(yīng)的比特位作為預(yù)測(cè)步長(zhǎng),根據(jù)所述第二計(jì)數(shù)值和所述預(yù)測(cè)步長(zhǎng)計(jì)算預(yù)測(cè)地址值,得到第五計(jì)數(shù)值;所述寄存器組模塊接收和保存所述編碼前總線、所述計(jì)數(shù)模塊發(fā)送的所述第四計(jì)數(shù)值和所述第五計(jì)數(shù)值;如果所述第五計(jì)數(shù)值等于所述編碼前總線時(shí),則將上一個(gè)時(shí)鐘周期編碼后總線輸出為當(dāng)前時(shí)鐘周期編碼后總線,如果所述第五計(jì)數(shù)值不等于所述編碼前總線時(shí),則所述輸出選擇模塊將所述編碼前總線輸出為當(dāng)前時(shí)鐘周期編碼后總線。
13.—種總線解碼方法,其特征在于,所述方法包括: 當(dāng)狀態(tài)控制模塊第一次接收到編碼裝置的循環(huán)開始標(biāo)志時(shí),向計(jì)數(shù)模塊發(fā)送控制信號(hào); 計(jì)數(shù)模塊根據(jù)所述控制信號(hào)對(duì)編碼后總線的循環(huán)長(zhǎng)度計(jì)算得到第六計(jì)數(shù)值和對(duì)所述編碼后總線的循環(huán)起始地址計(jì)算得到第七計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期第六計(jì)數(shù)值作為索引地址,對(duì)編碼后總線的循環(huán)程序內(nèi)部的順序執(zhí)行指令和保持不變指令的信息計(jì)數(shù),得到第八計(jì)數(shù)值; 寄存器組模塊接收和保存所述編碼后總線,以及所述計(jì)數(shù)模塊發(fā)送的所述第六計(jì)數(shù)值、所述第七計(jì)數(shù)值和所述第八計(jì)數(shù)值,并將預(yù)測(cè)地址寄存器的值發(fā)送給輸出選擇模塊; 輸出選擇模塊接收所述寄存器組模塊發(fā)送的預(yù)測(cè)地址寄存器的值,并將編碼后總線輸出為解碼后總線; 當(dāng)所述狀態(tài)控制模塊第二次接收 到編碼裝置的循環(huán)開始標(biāo)志時(shí),向所述計(jì)數(shù)模塊發(fā)送控制信號(hào);所述計(jì)數(shù)模塊根據(jù)所述控制信號(hào)對(duì)預(yù)測(cè)循環(huán)長(zhǎng)度計(jì)算得到第九計(jì)數(shù)值,并以當(dāng)前時(shí)鐘周期第九計(jì)數(shù)值作為索引地址,讀取所述第八計(jì)數(shù)值對(duì)應(yīng)的比特位作為預(yù)測(cè)步長(zhǎng),根據(jù)所述第七計(jì)數(shù)值和所述預(yù)測(cè)步長(zhǎng)計(jì)算預(yù)測(cè)地址值,得到第十計(jì)數(shù)值;所述寄存器組模塊接收和保存所述編碼后總線、所述計(jì)數(shù)模塊發(fā)送的所述第九計(jì)數(shù)值和所述第十計(jì)數(shù)值;如果所述第十計(jì)數(shù)值等于所述編碼后總線時(shí),所述輸出選擇模塊選擇所述第十計(jì)數(shù)值輸出為解碼后總線,如果所述第十計(jì)數(shù)值不等于所述編碼后總線時(shí),所述輸出選擇模塊選擇當(dāng)前時(shí)鐘周期的編碼后 總線輸出為解碼后總線。
【文檔編號(hào)】G06F13/38GK103885913SQ201410116576
【公開日】2014年6月25日 申請(qǐng)日期:2014年3月26日 優(yōu)先權(quán)日:2014年3月26日
【發(fā)明者】王雷歐, 應(yīng)歡, 王東輝 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所