1.一種處理器硬件循環(huán)處理系統(tǒng),其特征在于,該系統(tǒng)包括程序存儲(chǔ)器(100)、取指單元(101)、循環(huán)緩存(102)、選擇模塊(107)、譯碼單元(103)和執(zhí)行單元(108);
所述程序存儲(chǔ)器(100)連接取指單元(101)的輸入端,所述取指單元(101)的指令輸出端連接選擇模塊(107)的一個(gè)輸入端,選擇模塊(107)的另一個(gè)輸入端連接循環(huán)緩存(102)的輸出端;選擇模塊(107)的輸出端連接譯碼單元(103)的輸入端;所述譯碼單元(103)的輸出端連接執(zhí)行單元(108)的輸入端;
所述取指單元(101)還與譯碼單元(103)的第一控制信號(hào)端(105)連接,所述循環(huán)緩存(102)還與譯碼單元(103)的第二控制信號(hào)端(106)連接。
2.如權(quán)利要求1所述的硬件循環(huán)處理系統(tǒng),其特征在于,所述譯碼單元(103)的第一控制信號(hào)端(105)用于在譯碼單元(103)未讀取到循環(huán)節(jié)點(diǎn)指令時(shí),控制所述取指單元(101)通過選擇模塊(107)向譯碼單元(103)輸出需要進(jìn)行譯碼的下一條指令;同時(shí),所述譯碼單元(103)在讀取到新循環(huán)的第一條指令后,還通過第一控制信號(hào)端(105)控制所述取指單元(101)通過選擇模塊(107)同步向循環(huán)緩存(102)輸出新循環(huán)體的第一條至第N條指令;
所述循環(huán)緩存(102)用于接收新循環(huán)體的前N條指令,并將接受的N條指令壓入堆棧進(jìn)行存儲(chǔ);其中,所述的循環(huán)節(jié)點(diǎn)指令指循環(huán)進(jìn)行的過程中,循環(huán)體中的最后一條指令;所述的循環(huán)緩存(102)接收的新循環(huán)體內(nèi)指令的條數(shù)N=min{n,m},n為循環(huán)體中指令條數(shù),m為指令從程序存儲(chǔ)器(100)到達(dá)譯碼單元(103)所經(jīng)歷的時(shí)鐘周期數(shù)減1;
所述譯碼單元(103)的第二控制信號(hào)端(106)用于在譯碼單元(103)讀取到循環(huán)節(jié)點(diǎn)指令時(shí),控制循環(huán)緩存(102)通過選擇模塊(107)依次向譯碼單元(103)輸出當(dāng)前循環(huán)體的第一條至第N條指令。
3.如權(quán)利要求1所述的硬件循環(huán)處理系統(tǒng),其特征在于,所述循環(huán)緩存(102)為由兩個(gè)以上指令緩存構(gòu)成的堆棧,堆棧的層數(shù)為指令緩存的個(gè)數(shù),指令緩存的個(gè)數(shù)為所述處理器所支持的循環(huán)嵌套的層數(shù),堆棧的讀取方式為先進(jìn)后出。
4.如權(quán)利要求2所述的硬件循環(huán)處理系統(tǒng),其特征在于,所述的指令緩存為一個(gè)大小為N的存儲(chǔ)器,所述的每一個(gè)存儲(chǔ)器中按照地址從0至N-1的順序依次存儲(chǔ)對(duì)應(yīng)循環(huán)體中的第一條至第N條指令。
5.如權(quán)利要求1至3所述的硬件循環(huán)處理系統(tǒng),其特征在于,所述的循環(huán)緩存(102)中的存儲(chǔ)器為大小為N條指令長度的隨機(jī)存取存儲(chǔ)器或寄存器。
6.一種處理器流水線取指級(jí)處理方法,其特征在于,該方法包括以下步驟處理:
第一步,判斷從上一級(jí)輸入的指令是否為新循環(huán)體的第一條指令,若是,則由取指級(jí)依次存儲(chǔ)并同步向下一級(jí)輸出當(dāng)前循環(huán)體中的第一至第N條指令;否則,跳轉(zhuǎn)至第三步;
其中,N=min{n,m},n為當(dāng)前循環(huán)體中指令的條數(shù),m為處理器流水線中從讀取存儲(chǔ)器中到譯碼級(jí)所需要經(jīng)歷的時(shí)鐘周期數(shù)減1;
第二步,若指令是循環(huán)體的最后一條指令,且循環(huán)還未結(jié)束,則取指級(jí)將其存儲(chǔ)的當(dāng)前循環(huán)體中的第一至第N條指令依次向下一級(jí)輸出后,等待接收到上一級(jí)輸入新指令并跳轉(zhuǎn)至第一步;否則,跳轉(zhuǎn)至第三步;
第三步,取指級(jí)將其從上一級(jí)得到的指令向下一級(jí)級(jí)輸出后,結(jié)束本輪取指級(jí)處理流程。
7.如權(quán)利要求6所述的處理器流水線取指級(jí)處理方法,其特征在于,所述第一步中,按照如下方法存儲(chǔ)當(dāng)前循環(huán)體中的第一至第N條指令:
步驟101,判斷指令是否為新循環(huán)體的第一條指令,若是,則將當(dāng)前存儲(chǔ)的所有的循環(huán)體的指令壓向下一層存儲(chǔ)單元后,跳轉(zhuǎn)至步驟102;否則,直接跳轉(zhuǎn)至步驟102;
步驟102,在最上一層存儲(chǔ)單元中,按照地址從0至N-1的順序依次存儲(chǔ)當(dāng)前循環(huán)體中的第一條至第N條指令。
8.如權(quán)利要求6或7所述的處理器流水線取指級(jí)處理方法,其特征在于,所述的第二步中,按照如下方法輸出取指級(jí)內(nèi)存儲(chǔ)的當(dāng)前循環(huán)體中的第一至第N條指令:
步驟201,若指令為當(dāng)前循環(huán)體的第N條指令,且循環(huán)體已經(jīng)結(jié)束,則將當(dāng)前存儲(chǔ)的所有的循環(huán)體的指令提向上一層存儲(chǔ)單元后,跳轉(zhuǎn)至步驟202;否則,直接跳轉(zhuǎn)至步驟202;
步驟202,從最上一層存儲(chǔ)單元中,按照地址從0至N-1的順序依次輸出當(dāng)前循環(huán)體中的第一條至第N條指令。