8位微控制器體系架構(gòu)的設(shè)計(jì)研究
關(guān)鍵詞: RISC;微控制器;低功耗;流水線
Abstract:The existing 8-bit microcontroller’s renewal and design tendency is analyzed in this paper. Its product design of RISC architecture is also mainly discussed. Focusing from the point of architecture, discussion and investigation is carried out on essential technology about high-performance and low-power used in the design too.
Key Words: RISC; Microcontroller; Low-power; Pipelining
1.引言
微控制器(Microcontroller)自上世紀(jì)70年代出現(xiàn)以來(lái),在將近30年的時(shí)間里得到了迅猛的發(fā)展和廣泛的應(yīng)用。隨著微電子技術(shù)的飛速發(fā)展,微控制器以其性能好、體積小、價(jià)格優(yōu)、功能齊全等突出優(yōu)點(diǎn)被廣泛應(yīng)用于家用電器、計(jì)算和外設(shè)、通訊、工業(yè)控制、自動(dòng)化生產(chǎn)、智能化設(shè)備以及儀器儀表等領(lǐng)域,成為科研、教學(xué)、工業(yè)技術(shù)改造最得力的工具。從最初采用普林斯頓結(jié)構(gòu)的簡(jiǎn)單微控制器到現(xiàn)在普遍采用哈佛總線結(jié)構(gòu)的RISC微控制器,微控制器取得了飛速的發(fā)展[1]。
8位微控制器是目前應(yīng)用數(shù)量最大的微控制器,也是目前最多公司致力耕耘的市場(chǎng);其市場(chǎng)及價(jià)格競(jìng)爭(zhēng)都極為激烈,各種多功能需求以及不同規(guī)格的產(chǎn)品推陳出新的速度也極為快速。隨著集成電路和半導(dǎo)體工藝技術(shù)的快速發(fā)展,F(xiàn)PGA和SOC技術(shù)的不斷競(jìng)爭(zhēng)和融合,電子產(chǎn)品的設(shè)計(jì)逐漸向系統(tǒng)性能更好、功耗更小、成本更低、可靠性更高、開(kāi)發(fā)更容易的方向發(fā)展。因此,迅速推出符合市場(chǎng)需求的高性價(jià)比、低功耗、高經(jīng)濟(jì)效益的8位微控制器芯片或IP Core成為了現(xiàn)今不少公司競(jìng)爭(zhēng)相逐的熱點(diǎn)。
2.目前8位微控制器的更新和設(shè)計(jì)趨勢(shì)
對(duì)于不同的微控制器(MCU)產(chǎn)品應(yīng)用,不僅需要考慮不同廠家MCU的性價(jià)比,而且還需要考慮不同指令系統(tǒng)下MCU應(yīng)用特點(diǎn)。針對(duì)不斷涌現(xiàn)出來(lái)的新的智能化電子產(chǎn)品,人們一直在開(kāi)發(fā)適合于不同嵌入式系統(tǒng)應(yīng)用的MCU新產(chǎn)品[2]。不同廠家的MCU產(chǎn)品其指令集各不相同,特別是指令集系統(tǒng)架構(gòu)的不同,如市場(chǎng)上廣泛應(yīng)用的MCS51系列和PIC系列微控制器則分別采用CISC指令系統(tǒng)和RISC指令系統(tǒng)。
微控制器按照指令系統(tǒng)可以分為CISC、RISC、類RISC(RISC-LIKE)等幾種。傳統(tǒng)的MCS51控制器屬于CISC型,其代碼密度高,但大多數(shù)指令需要多個(gè)時(shí)鐘周期完成。RISC型一般指令密度較低,但指令效率很高。類RISC型則兼有CISC和RISC的優(yōu)點(diǎn)。RISC和類RISC之所以有如此高的指令效率,得益于小指令集帶來(lái)的硬布線結(jié)構(gòu)和流水線結(jié)構(gòu)。簡(jiǎn)單的指令集可以用硬布線進(jìn)行指令譯碼,而不需要用微碼控制的方式,提高了譯碼的效率。流水線結(jié)構(gòu)將指令分成幾步完成,在流水線填滿工作時(shí),每條指令的平均執(zhí)行時(shí)間(CPI)在1個(gè)時(shí)鐘周期左右[3]。一般來(lái)說(shuō),RISC比同等的CISC要快50%--70%,同時(shí)更容易設(shè)計(jì)和糾錯(cuò)。
因此,目前對(duì)8位微控制器的產(chǎn)品開(kāi)發(fā)和研究設(shè)計(jì)主要是以兼容市場(chǎng)上已被客戶廣泛采用的產(chǎn)品為前提,不斷提高性能并降低功耗以適應(yīng)市場(chǎng)競(jìng)爭(zhēng)和技術(shù)發(fā)展。對(duì)于原先為CISC指令系統(tǒng)的微控制器產(chǎn)品,在層出不窮的更新系列中已經(jīng)漸漸的融合進(jìn)了RISC思想;對(duì)于采用RISC指令系統(tǒng)的微控制器來(lái)說(shuō),更多的做法仍然是針對(duì)高性能低功耗的需求對(duì)其整個(gè)體系架構(gòu)不斷地進(jìn)行優(yōu)化和改善,尤其是流水線結(jié)構(gòu)的改進(jìn)最為多見(jiàn)。本文正是在這種形勢(shì)下提出的,主要討論RISC體系架構(gòu)的8位微控制器產(chǎn)品的設(shè)計(jì)技術(shù)。
3.RISC微處理器的結(jié)構(gòu)特征和設(shè)計(jì)原則
雖然現(xiàn)在業(yè)界對(duì)RISC 處理器應(yīng)該具有什么特征還有不同的看法,但是各種RISC結(jié)構(gòu)都有一些共性[4]:(1)采用哈佛總線結(jié)構(gòu),大多數(shù)指令在一個(gè)時(shí)鐘周期內(nèi)完成以便于實(shí)現(xiàn)結(jié)構(gòu)流水化;(2)采用獨(dú)立且簡(jiǎn)單的裝載/存儲(chǔ)結(jié)構(gòu);(3)指令解碼通常都是硬連線實(shí)現(xiàn)而不是微解碼,以便加快執(zhí)行速度;(4)多數(shù)指令具有固定格式,以簡(jiǎn)化指令編碼和譯碼;(5)較小的指令集和少數(shù)幾種尋址模式;(6)數(shù)據(jù)通道流水線化,使處理過(guò)程高度并行;(7)采用大容量高速寄存器堆(或稱為寄存器文件),盡量避免與速度較低的系統(tǒng)RAM交換數(shù)據(jù)。盡量將運(yùn)算數(shù)據(jù)存放在寄存器中,從而減少訪問(wèn)內(nèi)存的次數(shù)。根據(jù)以上的討論,下文重點(diǎn)從體系架構(gòu)的角度出發(fā),就高性能、低功耗兩方面對(duì)8位RISC微控制器在設(shè)計(jì)中的關(guān)鍵技術(shù)進(jìn)行了探討研究。
4.關(guān)鍵技術(shù)
4.1 RISC指令集的選取
控制器系統(tǒng)的使用跟軟件編程與硬件設(shè)計(jì)之間的規(guī)格接口密切相關(guān),這個(gè)接口就是微控制器的指令集。指令體系結(jié)構(gòu)(ISA)是進(jìn)行微處理器軟硬件協(xié)同設(shè)計(jì)的前提。指令集必須完備,使所有可計(jì)算的功能都在合理的程序空間內(nèi)得以實(shí)現(xiàn);而且指令集又必須是高效的,以便使常用的功能可以用相對(duì)少的指令實(shí)現(xiàn)。因此,提供給應(yīng)用軟件開(kāi)發(fā)的微控制器系統(tǒng)必須有一個(gè)完備而高效的指令集。
指令集直接決定微控制器的內(nèi)部硬件結(jié)構(gòu),同時(shí)也是用戶程序編譯生成目標(biāo)代碼的依據(jù)。指令集的最終確定與整個(gè)系統(tǒng)所需的程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、寄存器變量及存儲(chǔ)器尋址方式密切相關(guān)且相互制約。各個(gè)部件乃至具體的字節(jié)都應(yīng)該有唯一的地址,以便指令集能夠正確對(duì)各個(gè)部件或字節(jié)進(jìn)行辨認(rèn)操作。因此也就有了相應(yīng)的一系列針對(duì)不同產(chǎn)品的不同措施: 1)從所需要的地址長(zhǎng)度和相應(yīng)增加的寄存器來(lái)權(quán)衡指令的長(zhǎng)度;2)對(duì)指令進(jìn)行分類并分別確定各類的指令字節(jié)格式,以簡(jiǎn)化操作控制信號(hào)的譯碼邏輯;3)增加相應(yīng)的寄存器以彌補(bǔ)指令字節(jié)長(zhǎng)度的不足;4)指令字節(jié)格式分配應(yīng)考慮到相應(yīng)部件的結(jié)構(gòu)復(fù)雜度及對(duì)應(yīng)的尋址方式;5)存儲(chǔ)器、寄存器、I/O口是否統(tǒng)一尋址。以上所列舉的并不詳盡也無(wú)先后順序之分,應(yīng)該同時(shí)進(jìn)行分析。相應(yīng)的措施所對(duì)應(yīng)的性能、功耗、設(shè)計(jì)復(fù)雜度各不一樣,應(yīng)統(tǒng)一考慮。
對(duì)ISA進(jìn)行功耗分析應(yīng)該從指令代碼容量和指令執(zhí)行效率兩方面考慮。指令集大小、寄存器變量、存儲(chǔ)器尋址方式、流水線結(jié)構(gòu)等技術(shù)的選定都和指令代碼密度有緊密聯(lián)系。研究發(fā)現(xiàn),在RISC的精簡(jiǎn)指令集中適當(dāng)增加一些特定的復(fù)雜指令不失為提高代碼密度、保證處理器高性能、低功耗的可行方法。因此能夠產(chǎn)生高指令代碼密度的指令集無(wú)疑是RISC低功耗設(shè)計(jì)的首選[5]。
4.2 具有共享區(qū)的寄存器堆的分頁(yè)設(shè)計(jì)
RISC設(shè)計(jì)思想的最主要特點(diǎn)是所有的操作都是面向寄存器的。利用寄存器---寄存器操作的指令進(jìn)行數(shù)據(jù)傳送,加快了速度,而且還簡(jiǎn)化了指令控制邏輯,縮小了硬布線邏輯構(gòu)成的控制部件的芯片面積。
在指令中固定寄存器地址的位數(shù)必然限制寄存器的數(shù)量,但是引入高端處理器的分段、分頁(yè)的設(shè)計(jì)思想就可以擴(kuò)展尋址的范圍。分段、分頁(yè)的設(shè)計(jì)思想的根本出發(fā)點(diǎn)在于將存儲(chǔ)器的線性地址分解成二維或多維地址;在指令中只表達(dá)最低維地址,而使用其它設(shè)施(如段號(hào)寄存器、頁(yè)號(hào)寄存器)用來(lái)存放高維地址。一般將寄存器堆分成若干個(gè)頁(yè),每個(gè)頁(yè)有固定的大小,在指令中只使用寄存器的頁(yè)內(nèi)地址。在系統(tǒng)專用寄存器中設(shè)置一個(gè)頁(yè)號(hào)寄存器,通過(guò)改變其內(nèi)容來(lái)切換對(duì)不同頁(yè)寄存器的訪問(wèn)[6]。
為克服單純分頁(yè)機(jī)制中的各種缺陷,通常采用具有共享區(qū)的分頁(yè)設(shè)計(jì),這樣不僅減少了指令中寄存器邏輯地址的位數(shù),而且在任何時(shí)候都能夠訪問(wèn)系統(tǒng)寄存器,同時(shí)便于不同頁(yè)寄存器之間通過(guò)共享區(qū)中的通用寄存器交換信息。當(dāng)然還得有相應(yīng)的邏輯地址到物理地址的映射的方法措施。
4.3 程序空間的分頁(yè)設(shè)計(jì)
由于和寄存器堆同樣的原因,在指令中若采用完整的程序空間地址,也會(huì)局限程序空間的大小,所以對(duì)程序空間通常也采用了分頁(yè)的設(shè)計(jì)思想,同時(shí)在不同頁(yè)內(nèi)設(shè)置了公共程序區(qū)(若指令長(zhǎng)度完全符合程序空間地址的要求,則無(wú)需此思想),其設(shè)計(jì)思想類同于具有共享區(qū)的寄存器分頁(yè)設(shè)計(jì),在此不再贅述。唯一與寄存器公共區(qū)不同的是:程序公共區(qū)是為程序在不同頁(yè)之間跳轉(zhuǎn)提供平臺(tái)。
4.4 流水線技術(shù)
流水線設(shè)計(jì)與8位RISC微控制器體系架構(gòu)密不可分,是整個(gè)系統(tǒng)的設(shè)計(jì)核心,它的選用優(yōu)劣直接影響到系統(tǒng)的性能和功耗。
流水線技術(shù)能最大限度地利用了微控制器資源,使每個(gè)部件在每個(gè)時(shí)鐘周期都工作,大大提高了效率,但由于流水線的各個(gè)段之間存在很強(qiáng)的依賴關(guān)系。如果處理不當(dāng), 指令的運(yùn)行將達(dá)不到預(yù)期的結(jié)果,因此必須熟知流水線的相關(guān)和轉(zhuǎn)移問(wèn)題。其一為資源沖突, 即同一時(shí)間內(nèi)爭(zhēng)用同一功能部件, 一般為同時(shí)訪問(wèn)存儲(chǔ)器, 這就需要停頓一拍流水線; 其二為數(shù)據(jù)相關(guān)沖突, 有三種類型: RAW、WAR、WAW , 解決該沖突使用內(nèi)部直通結(jié)構(gòu)或者延遲一拍流水線; 其三為控制轉(zhuǎn)移沖突, 即對(duì)于條件跳轉(zhuǎn)指令, 根據(jù)運(yùn)算結(jié)果判斷是否跳轉(zhuǎn), 才能確定新的PC值, 運(yùn)算結(jié)果是在執(zhí)行階段后獲得, 這使流水線喪失很多的性能, 一般采用增加硬件預(yù)先獲得運(yùn)算結(jié)果解決該沖突[3]。
越是長(zhǎng)的流水線,相關(guān)和轉(zhuǎn)移兩大問(wèn)題也越嚴(yán)重:一方面導(dǎo)致硬件控制電路復(fù)雜程度大大增加, 另一方面, 由于流水線節(jié)拍的停頓, 導(dǎo)致CPI值的增大及系統(tǒng)性能的下降。所以,流水線并不是越長(zhǎng)越好,找到一個(gè)速度與效率的平衡點(diǎn)才是最重要的。
在8位RISC微控制器的流水線設(shè)計(jì)中,存在很多種方案。不同方案所對(duì)應(yīng)的面積、速度與功耗各不相同。具體的選用則應(yīng)該從多個(gè)方面融合考慮。首先應(yīng)該由系統(tǒng)的工作速率要求和流水線級(jí)數(shù)、深度推導(dǎo)出多種具體的流水線結(jié)構(gòu)方案及其所需要的嚴(yán)格時(shí)序;然后從系統(tǒng)的功耗、面積、性能及由流水線相關(guān)和轉(zhuǎn)移問(wèn)題引起的設(shè)計(jì)復(fù)雜度等方面考慮出發(fā),判斷各方案的優(yōu)劣;最后折衷選擇符合的最優(yōu)方案。
4.5 低功耗技術(shù)
隨著半導(dǎo)體工業(yè)的迅猛發(fā)展,集成電路進(jìn)入深亞微米階段,微處理器的時(shí)鐘頻率和芯片集成度不斷提高,功耗已在很多設(shè)計(jì)領(lǐng)域成為了首要關(guān)注的問(wèn)題,這點(diǎn)最為突出的即是高性能微處理器和便攜電子設(shè)備產(chǎn)品[7]。
在根據(jù)系統(tǒng)功能說(shuō)明進(jìn)行軟硬件協(xié)同設(shè)計(jì)、確定指令體系結(jié)構(gòu)時(shí),不同的設(shè)計(jì)出發(fā)點(diǎn)所導(dǎo)致的設(shè)計(jì)功耗結(jié)果差別會(huì)很大。因此整個(gè)體系架構(gòu)的確定無(wú)疑是低功耗問(wèn)題應(yīng)該考慮的首要問(wèn)題,主要體現(xiàn)以下幾個(gè)方面[5]:1)盡可能根據(jù)功能需求優(yōu)化指令集,簡(jiǎn)化系統(tǒng)的譯碼單元和執(zhí)行單元;2)通過(guò)開(kāi)發(fā)硬件的并行性以及功能單元的流水執(zhí)行來(lái)實(shí)現(xiàn)低功耗的結(jié)構(gòu);3)合理設(shè)置確定存儲(chǔ)器、寄存器的容量,減少所需的總線數(shù)目;4)系統(tǒng)硬件的各個(gè)子模塊劃分以及軟件上設(shè)置不同的工作狀態(tài)對(duì)功耗的優(yōu)化非常重要。
5.結(jié)束語(yǔ)
在微控制器應(yīng)用領(lǐng)域日益廣泛的今天,對(duì)微控制器提出了更高要求,希望速度更快、功耗更低、價(jià)格低廉、易學(xué)易用以及組成系統(tǒng)時(shí)的外圍器件更少。因此,對(duì)目前應(yīng)用數(shù)量最廣的8位微控制器的產(chǎn)品開(kāi)發(fā)和設(shè)計(jì)研究顯得尤為重要。又體系結(jié)構(gòu)設(shè)計(jì)是整個(gè)設(shè)計(jì)關(guān)鍵之關(guān)鍵,其后的所有工作,都是依賴于所設(shè)計(jì)的體系結(jié)構(gòu)來(lái)進(jìn)行的。本文就此對(duì)8位RISC體系架構(gòu)中采用的關(guān)鍵技術(shù)所應(yīng)該考慮的問(wèn)題進(jìn)行了分析和探討,具有一定的研究?jī)r(jià)值和意義。
參考文獻(xiàn):
[1]張治.8位RISC微控制器超大規(guī)模集成電路的分析與設(shè)計(jì)[D].電子科技大學(xué).2003.5
[2]陳瑞森,郭東輝.基于CISC/RISC混合架構(gòu)的嵌入式MCU設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究2006,(8):194-196
[3]李俠,沈泊,吉隆偉,章倩苓.一種高效率8 位嵌入式微控制器的VLSI 實(shí)現(xiàn)[J].微電子學(xué).2001,31(6)
[4]李逍,潘松,徐旭.新型RISC 流水線架構(gòu)的8位微控制器[J].電子產(chǎn)品世界 2003.9/上半月:48-50
[5]韋健.低功耗邏輯電路設(shè)計(jì)及在RISC設(shè)計(jì)中的研究[D].浙江學(xué).2001.5.
[6]孫海平,高明.8 位RISC微處理器核的參數(shù)化設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī).2002(1)
[7]陸希玉,唐昆,崔慧娟.基于嵌入式系統(tǒng)的低功耗設(shè)計(jì)[J].微計(jì)算機(jī)信息.2005,21-7,4-6。