鄭澤勇 廣州華言闖網(wǎng)絡(luò)科技有限公司
信息技術(shù)不斷發(fā)展,各個(gè)行業(yè)對相關(guān)技術(shù)的依賴性越來越強(qiáng),特別是物聯(lián)網(wǎng)領(lǐng)域,對電子技術(shù)的需要在快速增加,尤其是微電子技術(shù)。同樣地,嵌入式領(lǐng)域?qū)ξ㈦娮蛹夹g(shù)的需求也在逐年增加,由此推動(dòng)了RISC-V指令集架構(gòu)的發(fā)展,相關(guān)研究熱潮漸漲不退?;赗ISC-V指令集架構(gòu)的處理器相繼被研發(fā)出來,但是其能耗相對來說還是比較高,與當(dāng)前經(jīng)濟(jì)型社會(huì)不甚相符,需要設(shè)計(jì)出更加節(jié)能并且功能更加強(qiáng)大的微處理器。因此,本文在通過相關(guān)學(xué)習(xí)與研究之后,在原本就具有一定低能耗特性的蜂鳥E203處理器的基礎(chǔ)上,再進(jìn)行分析與完善,進(jìn)而提出一種新的低能耗模式設(shè)計(jì)方案。如此符合當(dāng)前經(jīng)濟(jì)發(fā)展的要求,有實(shí)際的研究意義。
本次研究的基礎(chǔ)是蜂鳥E203,是國內(nèi)開源的處理器軟核,其核雖然是超低功耗的,但卻是2級流水線,并沒有針對SoC來設(shè)計(jì)相應(yīng)的低能耗模式。因此,本設(shè)計(jì)主要是在蜂鳥E203的低能耗模式的基礎(chǔ)上進(jìn)行分析與討論。實(shí)際上,蜂鳥E203 SOC的時(shí)鐘域共有三個(gè)主要部分,分別是常開域、主域以及調(diào)試域。其中常開域是利用了處理器外部頻率為32.768KHz的低速時(shí)鐘,而其中的主域時(shí)鐘,則含括了芯片的主體部分,是最重要的部分,其功能主要是為處理器核、SoC部分以及總線部分提供外設(shè)。本文之所以選用蜂鳥E203,主要是因?yàn)槠溥€沒有SoC對應(yīng)的超低能耗模式,并且該處理器軟核目前使用的范圍比較廣,故選擇其作為研究基礎(chǔ)。
芯片的運(yùn)行需要消耗一定能量,也叫功率消耗,簡稱功耗。通常情況下,認(rèn)為芯片的總功耗包含靜態(tài)功耗部分和設(shè)計(jì)的動(dòng)態(tài)功耗部分。其中,靜態(tài)功耗又包含器件的靜態(tài)功耗和設(shè)計(jì)的靜態(tài)功耗。所謂器件的靜態(tài)功耗,指的是器件在上電時(shí),其數(shù)值還沒有設(shè)置,此前其晶體管先消耗了部分的功率,稱為功率泄露,這部分泄露的功率之總和就是器件的靜態(tài)功耗。設(shè)計(jì)的靜態(tài)功耗,指的是器件的數(shù)值雖然被設(shè)置了,但還沒有進(jìn)行電路數(shù)值切換,這段過程中也會(huì)消耗一定的功耗,在設(shè)置數(shù)值到切換電路數(shù)值之間的這段時(shí)間內(nèi)所消耗的電能稱為設(shè)計(jì)的靜態(tài)功耗。第二大部分中設(shè)計(jì)的動(dòng)態(tài)功耗,指的是在用戶進(jìn)行電路控制時(shí),電路被不斷切換,在這些切換活動(dòng)的過程中所消耗的平均電能被稱為設(shè)計(jì)中的動(dòng)態(tài)功耗。
首先是低頻模式設(shè)計(jì),該模式的設(shè)計(jì)過程中,主要是處理主域部分。具體過程是利用時(shí)鐘來控制各個(gè)模塊,與外設(shè)進(jìn)行時(shí)鐘轉(zhuǎn)換,主要的模塊有CPU、SoC以及CORE三個(gè)頂層模塊,還有微處理控制器模塊和GPIO(General Purpose Input Output)等,與以上這些外設(shè)進(jìn)行時(shí)鐘轉(zhuǎn)換,來實(shí)現(xiàn)信號處理。用波形圖來表示低功耗的各種能量時(shí),用freq_redu_ena信號來代表降頻使能,同時(shí)以inspect_core_clk作為基準(zhǔn),降頻使能信號達(dá)到之時(shí),整體SoC的時(shí)鐘頻率會(huì)被降低。
另外,用sleep_ena來指代SoC另一模式下的使能信號,也就是睡眠模式下的使能信號。在該模式下的使能信號到達(dá)的時(shí)候,整體處理器的時(shí)鐘會(huì)被關(guān)閉,但是使能還是存在的。在本設(shè)計(jì)之中,對睡眠模式下的運(yùn)行情況進(jìn)行改善,主要表現(xiàn)為在sleep_ena信號到達(dá)的時(shí)候,通過時(shí)鐘控制模塊,將信號輸出到處理器的SoC、CPU以及CORE三個(gè)頂層模塊,接著控制譯碼與執(zhí)行模塊,對兩個(gè)模塊中的WFI(Wait For Interruption)指令進(jìn)行控制,并控制其執(zhí)行,進(jìn)而實(shí)現(xiàn)該模式整體功能的設(shè)計(jì)。
最終,在停機(jī)模式下,其使能信號shut_down_ena和shut_down_wfiena信號先后被輸送到SoC、CPU以及CORE三個(gè)頂層模塊之中,這一過程主要是借助時(shí)鐘控制模塊來實(shí)現(xiàn)。另外,在整體時(shí)鐘信號停止的時(shí)候,shut_down_ena使能信號就會(huì)調(diào)用WFI指令,來首先進(jìn)人睡眠的模式,由于在睡眠模式還是存在多周期的指令,所以時(shí)鐘在執(zhí)行階段需要處于常開狀態(tài),然后在一段時(shí)間之后利用shut_down_wfi_ena使能信號來通知其關(guān)閉,如此可以在很大程度上減少能耗。在停機(jī)的模式下,關(guān)閉所有時(shí)鐘控制模塊所控制的時(shí)鐘,隔開外部低頻與高頻時(shí)鐘。另外,全部關(guān)閉外部低頻模式的常開域時(shí)鐘以及高頻模式主域時(shí)鐘,關(guān)閉之后的時(shí)鐘全部進(jìn)入待命狀態(tài),等待實(shí)時(shí)計(jì)數(shù)器或者中斷器的信號,有以上喚醒信號,就全部開始運(yùn)行,進(jìn)而繼續(xù)工作。
從設(shè)計(jì)結(jié)果可以知道,在停機(jī)模式下,處理器的功耗只是正常情況下的36%,換一個(gè)角度來說,在該模式下,功耗減少了64%,減少的幅度非??捎^。另外,在低頻模式下,其功耗也是正常情況下的96%,也就是說,低頻模式的功耗可以節(jié)省4%的能耗。所以,在一定范圍之內(nèi),盡可能降低時(shí)鐘的頻率,可以在一定程度上減少能耗。同時(shí),在睡眠模式下,其所消耗的能量是正常情況下的92%,相對來說節(jié)省了8%的能耗。由此,認(rèn)為本次設(shè)計(jì)具有一定的成效。
本次FPGA板使用的是ARTIX A7板。在進(jìn)行軟核燒錄及跑LED燈的時(shí)候,在該板的正常模式下,電壓為5V,同時(shí)電流為0.18A。此刻的功耗不僅要包括該板上的SoC的功耗,還要包括其他處于供電狀態(tài)下的未涉及部分的能耗。在降頻及睡眠兩個(gè)模式下,開發(fā)板的整體都是被低頻時(shí)鐘控制的,其中處理器核此時(shí)的執(zhí)行階段也是處于降頻模式,在如此的雙重低功耗模式的情況下,整個(gè)開發(fā)板可以節(jié)省19%的能耗。在處理器的工作量越來越大的情況下,以上兩個(gè)模式所帶來的低功耗的占比也會(huì)越來越大,這一數(shù)據(jù)是非??捎^的。
本設(shè)計(jì)所提出的低能耗設(shè)計(jì),主要是為蜂鳥E203處理器再降能耗,側(cè)重于對SoC模塊的低能耗設(shè)計(jì)。如此可以進(jìn)一步方便擴(kuò)展該處理器的使用范圍,比如更加適用于低能耗及小面積的場景。如此可以更加廣泛地被運(yùn)用于物聯(lián)網(wǎng)及嵌入式領(lǐng)域。所以,本文的設(shè)計(jì)具有一定的實(shí)際意義。