[發明專利]跳轉指令的處理方法及微控制器有效
| 申請號: | 201010123204.6 | 申請日: | 2010-03-10 |
| 公開(公告)號: | CN102193776A | 公開(公告)日: | 2011-09-21 |
| 發明(設計)人: | 史衛東;潘松;沃良珉;谷志坤 | 申請(專利權)人: | 上海海爾集成電路有限公司 |
| 主分類號: | G06F9/32 | 分類號: | G06F9/32 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 劉芳 |
| 地址: | 200030 上海市中*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 跳轉 指令 處理 方法 控制器 | ||
技術領域
本發明涉及計算機領域,尤其涉及一種跳轉指令的處理方法及微控制器。
背景技術
目前,微控制器的應用程序并不完全是順序執行的,還包含了程序的跳轉。對于精簡指令集計算機(Reduced?Instruction?Set?Computer:以下簡稱:RISC)指令集而言,每條指令的寬度都是相同的。每條指令的寬度決定了跳轉指令對程序空間的尋址能力。換言之,在微控制器中,當程序存儲空間小于跳轉指令的尋址空間時,一條跳轉指令可以使程序轉移到程序存儲空間的任一地址;而當程序存儲空間大于跳轉指令的尋址空間時,一條跳轉指令則只能使程序在有限的程序存儲空間進行轉移,即并不能覆蓋整個程序存儲空間。
如圖1所示,現有技術的微控制器包括兩個指令寄存器111和112、高位地址寄存器12以及程序計數器13。例如:該微控制器中,程序存儲空間為8K,即該微控制器的程序計數器13的位寬為13位。一個跳轉指令的地址信息為10位。通過在微控制器中設置了高位地址寄存器12,在執行跳轉指令之前,先將跳轉的目標地址的高3位地址信息寫入高位地址寄存器12。在執行跳轉指令時,對寫入指令寄存器111中的跳轉指令進行譯碼,以將指令寄存器111中的目標地址的低10位地址信息和高位地址寄存器12中的目標地址的高3位地址信息寫入程序計數器13中。再根據程序計數器13中的13位目標地址將程序存儲空間中該13位目標地址對應的指令寫入指令寄存器112中,從而解決了當程序空間大于跳轉指令的尋址空間時,跳轉指令尋址能力不足的問題,進而通過一條跳轉指令和高位地址寄存器中的高位地址信息,可以使程序轉移到程序存儲空間的任一地址。另外,在對指令寄存器111中的跳轉指令進行譯碼時,寫入指令寄存器112中的下一條指令將不能在下一個周期中運行,而是根據跳轉指令的執行結果,即根據程序計數器13中的13位目標地址信息將程序存儲空間中該13位目標地址信息對應的指令寫入指令寄存器112中。
現有技術中至少存在如下問題:當程序空間大于跳轉指令的尋址能力時,完成一次跳轉指令操作需要三個機器周期,即將目標地址的高3位地址信息寫入高位地址寄存器為一個機器周期;對指令寄存器中的跳轉指令進行譯碼,以將指令寄存器中的低位地址信息和高位地址寄存器中的高位地址信息寫入程序計數器為一個機器周期;根據程序計數器的由高位地址信息和低位地址信息組成的目標地址,將程序存儲空間該目標地址對應的指令寫入指令寄存器為一個機器周期,從而影響了微控制器的性能。
發明內容
本發明提供一種跳轉指令的處理方法以及微控制器,從而有效的提高了微控制器對跳轉指令在程序空間的尋址能力,并提高了微控制器的執行效率。
本發明提供一種跳轉指令的處理方法,包括:
程序存儲器存儲跳轉指令,若所述跳轉指令為雙字節跳轉指令時,所述雙字節跳轉指令包括第一指令字和第二指令字,所述第一指令字包括第一操作碼和第一地址,所述第二指令字包括第二操作碼和第二地址;
控制器在當前周期開始運行將所述第一指令字寫入第一指令寄存器時,將所述第二指令字寫入第二指令寄存器;
所述控制器在確定所述第一指令字的第一操作碼為雙字節跳轉指令操作碼時,將所述第一地址和第二地址寫入程序計數器;
所述控制器在下一周期根據所述程序計數器中的由所述第一地址和第二地址構成的第一目標地址,將所述程序存儲器中的當前所述跳轉指令跳轉到所述第一目標地址對應的第一指令;并將所述第一指令寫入所述第二指令寄存器。
本發明實施例提供一種微控制器,包括控制器、程序計數器、程序存儲器、第一指令寄存器和第二指令寄存器,其中:
所述程序存儲器,用于存儲跳轉指令,若所述跳轉指令為雙字節跳轉指令時,所述雙字節跳轉指令包括第一指令字和第二指令字,所述第一指令字包括第一操作碼和第一地址,所述第二指令字包括第二操作碼和第二地址;
所述控制器,用于在當前周期開始運行將所述第一指令字寫入所述第一指令寄存器時,將第二指令字寫入第二指令寄存器;且在確定所述第一指令字的第一操作碼為雙字節跳轉指令操作碼時,將所述第一地址和第二地址寫入程序計數器;在下一周期根據所述程序計數器中的由所述第一地址和第二地址構成的第一目標地址,將所述程序存儲器中的當前所述跳轉指令跳轉到所述第一目標地址對應的第一指令;并將所述第一指令寫入所述第二指令寄存器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海海爾集成電路有限公司,未經上海海爾集成電路有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010123204.6/2.html,轉載請聲明來源鉆瓜專利網。





