本發(fā)明涉及計(jì)算機(jī),特別是涉及一種基于有限狀態(tài)機(jī)的地址向量表取指方法及裝置。
背景技術(shù):
1、risc-v是一種開源的指令集架構(gòu)(instruction?set?architecture,isa),以其模塊化、可擴(kuò)展和免費(fèi)開源的特性,在處理器設(shè)計(jì)領(lǐng)域得到了廣泛應(yīng)用,在處理器設(shè)計(jì)中,取指單元是負(fù)責(zé)從指令存儲(chǔ)器中讀取指令并發(fā)送給后續(xù)處理單元的關(guān)鍵組件。一般來(lái)說(shuō),處理器的取指流程為,指令計(jì)數(shù)器訪問(wèn)指令存儲(chǔ)器,從指令存儲(chǔ)器獲取指令,將指令計(jì)數(shù)器和指令發(fā)送給后續(xù)功能單元,進(jìn)行下一步處理。但是在一些特定情況下,取指單元無(wú)法實(shí)現(xiàn)直接從指令存儲(chǔ)器獲取指令。
2、因此,有必要提供一種基于有限狀態(tài)機(jī)的地址向量表取指方法及裝置,以解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題和不足,提供一種基于有限狀態(tài)機(jī)的地址向量表取指方法及裝置,通過(guò)設(shè)置一個(gè)有限狀態(tài)機(jī)和一個(gè)多路選擇器,實(shí)現(xiàn)地址向量表的高效取指。
2、本發(fā)明為解決上述技術(shù)問(wèn)題而采用的技術(shù)方案是提供一種基于有限狀態(tài)機(jī)的地址向量表取指方法,應(yīng)用于risc-v指令架構(gòu),包括以下步驟:
3、設(shè)置有限狀態(tài)機(jī),所述有限狀態(tài)機(jī)用于讀取地址向量表;
4、設(shè)置多路選擇器,所述多路選擇器包括第一數(shù)據(jù)輸入端口、第二數(shù)據(jù)輸入端口、選擇信號(hào)輸入端口以及輸出端口;所述第一數(shù)據(jù)輸入端口獲取下一條指令計(jì)數(shù)器,所述第二數(shù)據(jù)輸入端口獲取地址向量表,所述選擇信號(hào)輸入端口獲取有限狀態(tài)機(jī)的狀態(tài);所述多路選擇器根據(jù)所述有限狀態(tài)機(jī)的狀態(tài),選擇所述下一條指令計(jì)數(shù)器或所述地址向量表,通過(guò)所述輸出端口賦值給指令計(jì)數(shù)器;
5、當(dāng)所述有限狀態(tài)機(jī)為第一狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)為空閑態(tài),當(dāng)前取指單元用于向指令存儲(chǔ)器讀取指令;
6、當(dāng)所述有限狀態(tài)機(jī)為第二狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)正在向指令存儲(chǔ)器發(fā)送讀取所述地址向量表的請(qǐng)求;
7、當(dāng)所述有限狀態(tài)機(jī)為第三狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)已經(jīng)向所述指令存儲(chǔ)器成功發(fā)送讀取所述地址向量表的請(qǐng)求,等待所述指令存儲(chǔ)器返回所述地址向量表。
8、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)為第一狀態(tài)時(shí),還包括以下步驟:
9、當(dāng)所述指令存儲(chǔ)器返回就緒信號(hào)時(shí),所述有限狀態(tài)機(jī)從所述第一狀態(tài)跳轉(zhuǎn)到所述第三狀態(tài);
10、當(dāng)所述指令存儲(chǔ)器未返回就緒信號(hào)時(shí),所述有限狀態(tài)機(jī)從所述第一狀態(tài)跳轉(zhuǎn)到所述第二狀態(tài)。
11、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)為第二狀態(tài)時(shí),還包括以下步驟:
12、當(dāng)所述指令存儲(chǔ)器返回就緒信號(hào)時(shí),所述有限狀態(tài)機(jī)從所述第二狀態(tài)跳轉(zhuǎn)到所述第三狀態(tài);
13、當(dāng)所述取指單元被刷新時(shí),所述有限狀態(tài)機(jī)從所述第二狀態(tài)跳轉(zhuǎn)到所述第一狀態(tài)。
14、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)為第三狀態(tài)時(shí),還包括以下步驟:
15、當(dāng)所述指令存儲(chǔ)器返回所述地址向量表時(shí),所述有限狀態(tài)機(jī)從所述第三狀態(tài)跳轉(zhuǎn)到所述第一狀態(tài)。
16、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)處于所述第二狀態(tài)或第三狀態(tài)時(shí),所述取指單元正在從本地讀取所述地址向量表。
17、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)處于所述第一狀態(tài)時(shí),多路選擇器選擇下一條指令計(jì)數(shù)器給指令計(jì)數(shù)器賦值,下一條指令計(jì)數(shù)器根據(jù)處理器實(shí)現(xiàn)功能和處理器狀態(tài)從多個(gè)路徑中的任一個(gè)讀取數(shù)據(jù)。
18、優(yōu)選地,當(dāng)獲取到關(guān)鍵事件時(shí),觸發(fā)所述取指單元向所述指令存儲(chǔ)器讀取所述地址向量表。
19、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)處于所述第二狀態(tài)或第三狀態(tài)時(shí),阻止所述指令存儲(chǔ)器返回的有效數(shù)據(jù)進(jìn)入到指令隊(duì)列。
20、優(yōu)選地,當(dāng)所述有限狀態(tài)機(jī)處于所述第三狀態(tài)時(shí),所述多路選擇器選擇從所述指令存儲(chǔ)器返回的有效數(shù)據(jù)作為地址向量表,發(fā)送給所述指令計(jì)數(shù)器進(jìn)行下一次取指。
21、本發(fā)明還提供一種基于有限狀態(tài)機(jī)的地址向量表取指裝置,所述裝置包括:
22、有限狀態(tài)機(jī),其用于讀取地址向量表;
23、多路選擇器,其用于獲取所述地址向量表作為指令計(jì)數(shù)器的輸入,所述多路選擇器包括第一數(shù)據(jù)輸入端口、第二數(shù)據(jù)輸入端口、選擇信號(hào)輸入端口以及輸出端口;所述第一數(shù)據(jù)輸入端口獲取下一條指令計(jì)數(shù)器,所述第二數(shù)據(jù)輸入端口獲取地址向量表,所述選擇信號(hào)輸入端口獲取有限狀態(tài)機(jī)的狀態(tài);所述多路選擇器根據(jù)所述有限狀態(tài)機(jī)的狀態(tài),選擇所述下一條指令計(jì)數(shù)器或所述地址向量表,通過(guò)所述輸出端口賦值給指令計(jì)數(shù)器;
24、第一狀態(tài)獲取模塊,其用于當(dāng)所述有限狀態(tài)機(jī)為第一狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)為空閑態(tài),當(dāng)前取指單元用于向指令存儲(chǔ)器讀取指令;
25、第二狀態(tài)獲取模塊,其用于當(dāng)所述有限狀態(tài)機(jī)為第二狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)正在向指令存儲(chǔ)器發(fā)送讀取所述地址向量表的請(qǐng)求;
26、第三狀態(tài)獲取模塊,其用于當(dāng)所述有限狀態(tài)機(jī)為第三狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)已經(jīng)向所述指令存儲(chǔ)器成功發(fā)送讀取所述地址向量表的請(qǐng)求,等待所述指令存儲(chǔ)器返回所述地址向量表。
27、與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
28、本發(fā)明提供的基于有限狀態(tài)機(jī)的地址向量表取指方法及裝置,方法包括:設(shè)置有限狀態(tài)機(jī),所述有限狀態(tài)機(jī)用于讀取地址向量表;設(shè)置多路選擇器,所述多路選擇器包括第一數(shù)據(jù)輸入端口、第二數(shù)據(jù)輸入端口、選擇信號(hào)輸入端口以及輸出端口;所述第一數(shù)據(jù)輸入端口獲取下一條指令計(jì)數(shù)器,所述第二數(shù)據(jù)輸入端口獲取地址向量表,所述選擇信號(hào)輸入端口獲取有限狀態(tài)機(jī)的狀態(tài);所述多路選擇器根據(jù)所述有限狀態(tài)機(jī)的狀態(tài),選擇所述下一條指令計(jì)數(shù)器或所述地址向量表,通過(guò)所述輸出端口賦值給指令計(jì)數(shù)器;當(dāng)所述有限狀態(tài)機(jī)為第一狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)為空閑態(tài),當(dāng)前取指單元用于向指令存儲(chǔ)器讀取指令;當(dāng)所述有限狀態(tài)機(jī)為第二狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)正在向指令存儲(chǔ)器發(fā)送讀取所述地址向量表的請(qǐng)求;當(dāng)所述有限狀態(tài)機(jī)為第三狀態(tài)時(shí),表示所述有限狀態(tài)機(jī)已經(jīng)向所述指令存儲(chǔ)器成功發(fā)送讀取所述地址向量表的請(qǐng)求,等待所述指令存儲(chǔ)器返回所述地址向量表;通過(guò)設(shè)置一個(gè)有限狀態(tài)機(jī),以及在指令計(jì)數(shù)器和有限狀態(tài)機(jī)之間設(shè)置一個(gè)多路選擇器,能夠?qū)崿F(xiàn)地址向量表的取指操作。
29、進(jìn)一步地,通過(guò)有限狀態(tài)機(jī)在第一狀態(tài)、第二狀態(tài)、第三狀態(tài)這三個(gè)狀態(tài)之間的跳轉(zhuǎn),完成一次地址向量表的讀取,該有限狀態(tài)機(jī)設(shè)計(jì)簡(jiǎn)潔,可高效的完成地址向量表取指操作。
1.一種基于有限狀態(tài)機(jī)的地址向量表取指方法,應(yīng)用于risc-v指令架構(gòu),其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)為第一狀態(tài)時(shí),還包括以下步驟:
3.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)為第二狀態(tài)時(shí),還包括以下步驟:
4.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)為第三狀態(tài)時(shí),還包括以下步驟:
5.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)處于所述第二狀態(tài)或第三狀態(tài)時(shí),所述取指單元正在從本地讀取所述地址向量表。
6.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)處于所述第一狀態(tài)時(shí),多路選擇器選擇下一條指令計(jì)數(shù)器給指令計(jì)數(shù)器賦值,下一條指令計(jì)數(shù)器根據(jù)處理器實(shí)現(xiàn)功能和處理器狀態(tài)從多個(gè)路徑中的任一個(gè)讀取數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)獲取到關(guān)鍵事件時(shí),觸發(fā)所述取指單元向所述指令存儲(chǔ)器讀取所述地址向量表。
8.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)處于所述第二狀態(tài)或第三狀態(tài)時(shí),阻止所述指令存儲(chǔ)器返回的有效數(shù)據(jù)進(jìn)入到指令隊(duì)列。
9.根據(jù)權(quán)利要求1所述的基于有限狀態(tài)機(jī)的地址向量表取指方法,其特征在于,當(dāng)所述有限狀態(tài)機(jī)處于所述第三狀態(tài)時(shí),所述多路選擇器選擇從所述指令存儲(chǔ)器返回的有效數(shù)據(jù)作為地址向量表,發(fā)送給所述指令計(jì)數(shù)器進(jìn)行下一次取指。
10.一種基于有限狀態(tài)機(jī)的地址向量表取指裝置,應(yīng)用于risc-v指令架構(gòu),其特征在于,所述裝置包括: