1.引言
微控制器(Microcontroller)自上世紀70年代出現以來,在將近30年的時間里得到了迅猛的發展和廣泛的應用。8位微控制器是目前應用數量最大的微控制器,也是目前最多公司致力耕耘的市場;其市場及價格競爭都極為激烈,各種多功能需求以及不同規格的產品推陳出新的速度也極為快速。隨著集成電路和半導體工藝技術的快速發展,FPGA和SOC技術的不斷競爭和融合,電子產品的設計逐漸向系統性能更好、功耗更小、成本更低、可靠性更高、開發更容易的方向發展。因此,迅速推出符合市場需求的高性價比、低功耗、高經濟效益的8位微控制器芯片或IP Core成為了現今不少公司競爭相逐的熱點。
2.目前8位微控制器的更新和設計趨勢
對于不同的微控制器(MCU)產品應用,不僅需要考慮不同廠家MCU的性價比,而且還需要考慮不同指令系統下MCU應用特點。針對不斷涌現出來的新的智能化電子產品,人們一直在開發適合于不同嵌入式系統應用的MCU新產品[2]。不同廠家的MCU產品其指令集各不相同,特別是指令集系統架構的不同,如市場上廣泛應用的MCS51系列和PIC系列微控制器則分別采用CISC指令系統和RISC指令系統。
微控制器按照指令系統可以分為CISC、RISC、類RISC(RISC-LIKE)等幾種。傳統的MCS51控制器屬于CISC型,其代碼密度高,但大多數指令需要多個時鐘周期完成。RISC型一般指令密度較低,但指令效率很高。類RISC型則兼有CISC和RISC的優點。RISC和類RISC之所以有如此高的指令效率,得益于小指令集帶來的硬布線結構和流水線結構。簡單的指令集可以用硬布線進行指令譯碼,而不需要用微碼控制的方式,提高了譯碼的效率。流水線結構將指令分成幾步完成,在流水線填滿工作時,每條指令的平均執行時間(CPI)在1個時鐘周期左右[3]。一般來說,RISC比同等的CISC要快50%--70%,同時更容易設計和糾錯。
因此,目前對8位微控制器的產品開發和研究設計主要是以兼容市場上已被客戶廣泛采用的產品為前提,不斷提高性能并降低功耗以適應市場競爭和技術發展。對于原先為CISC指令系統的微控制器產品,在層出不窮的更新系列中已經漸漸的融合進了RISC思想;對于采用RISC指令系統的微控制器來說,更多的做法仍然是針對高性能低功耗的需求對其整個體系架構不斷地進行優化和改善,尤其是流水線結構的改進最為多見。本文正是在這種形勢下提出的,主要討論RISC體系架構的8位微控制器產品的設計技術。
3.RISC微處理器的結構特征和設計原則
雖然現在業界對RISC 處理器應該具有什么特征還有不同的看法,但是各種RISC結構都有一些共性[4]:(1)采用哈佛總線結構,大多數指令在一個時鐘周期內完成以便于實現結構流水化;(2)采用獨立且簡單的裝載/存儲結構;(3)指令解碼通常都是硬連線實現而不是微解碼,以便加快執行速度;(4)多數指令具有固定格式,以簡化指令編碼和譯碼;(5)較小的指令集和少數幾種尋址模式;(6)數據通道流水線化,使處理過程高度并行;(7)采用大容量高速寄存器堆(或稱為寄存器文件),盡量避免與速度較低的系統RAM交換數據。盡量將運算數據存放在寄存器中,從而減少訪問內存的次數。根據以上的討論,下文重點從體系架構的角度出發,就高性能、低功耗兩方面對8位RISC微控制器在設計中的關鍵技術進行了探討研究。
4.關鍵技術
4.1 RISC指令集的選取
控制器系統的使用跟軟件編程與硬件設計之間的規格接口密切相關,這個接口就是微控制器的指令集。指令體系結構(ISA)是進行微處理器軟硬件協同設計的前提。指令集必須完備,使所有可計算的功能都在合理的程序空間內得以實現;而且指令集又必須是高效的,以便使常用的功能可以用相對少的指令實現。因此,提供給應用軟件開發的微控制器系統必須有一個完備而高效的指令集。
指令集直接決定微控制器的內部硬件結構,同時也是用戶程序編譯生成目標代碼的依據。指令集的最終確定與整個系統所需的程序存儲器、數據存儲器、寄存器變量及存儲器尋址方式密切相關且相互制約。各個部件乃至具體的字節都應該有唯一的地址,以便指令集能夠正確對各個部件或字節進行辨認操作。因此也就有了相應的一系列針對不同產品的不同措施: 1)從所需要的地址長度和相應增加的寄存器來權衡指令的長度;2)對指令進行分類并分別確定各類的指令字節格式,以簡化操作控制信號的譯碼邏輯;3)增加相應的寄存器以彌補指令字節長度的不足;4)指令字節格式分配應考慮到相應部件的結構復雜度及對應的尋址方式;5)存儲器、寄存器、I/O口是否統一尋址。以上所列舉的并不詳盡也無先后順序之分,應該同時進行分析。相應的措施所對應的性能、功耗、設計復雜度各不一樣,應統一考慮。
對ISA進行功耗分析應該從指令代碼容量和指令執行效率兩方面考慮。指令集大小、寄存器變量、存儲器尋址方式、流水線結構等技術的選定都和指令代碼密度有緊密聯系。研究發現,在RISC的精簡指令集中適當增加一些特定的復雜指令不失為提高代碼密度、保證處理器高性能、低功耗的可行方法。因此能夠產生高指令代碼密度的指令集無疑是RISC低功耗設計的首選[5]。
4.2 具有共享區的寄存器堆的分頁設計
RISC設計思想的最主要特點是所有的操作都是面向寄存器的。利用寄存器---寄存器操作的指令進行數據傳送,加快了速度,而且還簡化了指令控制邏輯,縮小了硬布線邏輯構成的控制部件的芯片面積。
在指令中固定寄存器地址的位數必然限制寄存器的數量,但是引入高端處理器的分段、分頁的設計思想就可以擴展尋址的范圍。分段、分頁的設計思想的根本出發點在于將存儲器的線性地址分解成二維或多維地址;在指令中只表達最低維地址,而使用其它設施(如段號寄存器、頁號寄存器)用來存放高維地址。一般將寄存器堆分成若干個頁,每個頁有固定的大小,在指令中只使用寄存器的頁內地址。在系統專用寄存器中設置一個頁號寄存器,通過改變其內容來切換對不同頁寄存器的訪問[6]。
為克服單純分頁機制中的各種缺陷,通常采用具有共享區的分頁設計,這樣不僅減少了指令中寄存器邏輯地址的位數,而且在任何時候都能夠訪問系統寄存器,同時便于不同頁寄存器之間通過共享區中的通用寄存器交換信息。當然還得有相應的邏輯地址到物理地址的映射的方法措施。
4.3 程序空間的分頁設計
由于和寄存器堆同樣的原因,在指令中若采用完整的程序空間地址,也會局限程序空間的大小,所以對程序空間通常也采用了分頁的設計思想,同時在不同頁內設置了公共程序區(若指令長度完全符合程序空間地址的要求,則無需此思想),其設計思想類同于具有共享區的寄存器分頁設計,在此不再贅述。唯一與寄存器公共區不同的是:程序公共區是為程序在不同頁之間跳轉提供平臺。
4.4 流水線技術
流水線設計與8位RISC微控制器體系架構密不可分,是整個系統的設計核心,它的選用優劣直接影響到系統的性能和功耗。
流水線技術能最大限度地利用了微控制器資源,使每個部件在每個時鐘周期都工作,大大提高了效率,但由于流水線的各個段之間存在很強的依賴關系。如果處理不當, 指令的運行將達不到預期的結果,因此必須熟知流水線的相關和轉移問題。其一為資源沖突, 即同一時間內爭用同一功能部件, 一般為同時訪問存儲器, 這就需要停頓一拍流水線; 其二為數據相關沖突, 有三種類型: RAW、WAR、WAW , 解決該沖突使用內部直通結構或者延遲一拍流水線; 其三為控制轉移沖突, 即對于條件跳轉指令, 根據運算結果判斷是否跳轉, 才能確定新的PC值, 運算結果是在執行階段后獲得, 這使流水線喪失很多的性能, 一般采用增加硬件預先獲得運算結果解決該沖突[3]。
越是長的流水線,相關和轉移兩大問題也越嚴重:一方面導致硬件控制電路復雜程度大大增加, 另一方面, 由于流水線節拍的停頓, 導致CPI值的增大及系統性能的下降。所以,流水線并不是越長越好,找到一個速度與效率的平衡點才是最重要的。
在8位RISC微控制器的流水線設計中,存在很多種方案。不同方案所對應的面積、速度與功耗各不相同。具體的選用則應該從多個方面融合考慮。首先應該由系統的工作速率要求和流水線級數、深度推導出多種具體的流水線結構方案及其所需要的嚴格時序;然后從系統的功耗、面積、性能及由流水線相關和轉移問題引起的設計復雜度等方面考慮出發,判斷各方案的優劣;最后折衷選擇符合的最優方案。
4.5 低功耗技術
隨著半導體工業的迅猛發展,集成電路進入深亞微米階段,微處理器的時鐘頻率和芯片集成度不斷提高,功耗已在很多設計領域成為了首要關注的問題,這點最為突出的即是高性能微處理器和便攜電子設備產品[7]。
在根據系統功能說明進行軟硬件協同設計、確定指令體系結構時,不同的設計出發點所導致的設計功耗結果差別會很大。因此整個體系架構的確定無疑是低功耗問題應該考慮的首要問題,主要體現以下幾個方面[5]:1)盡可能根據功能需求優化指令集,簡化系統的譯碼單元和執行單元;2)通過開發硬件的并行性以及功能單元的流水執行來實現低功耗的結構;3)合理設置確定存儲器、寄存器的容量,減少所需的總線數目;4)系統硬件的各個子模塊劃分以及軟件上設置不同的工作狀態對功耗的優化非常重要。
5.結束語
體系結構設計是整個設計關鍵之關鍵,其后的所有工作,都是依賴于所設計的體系結構來進行的。本文就此對8位RISC體系架構中采用的關鍵技術所應該考慮的問題進行了分析和探討,具有一定的研究價值和意義。
評論
查看更多