專利名稱:信息安全SoC中基于門控時(shí)鐘的動(dòng)態(tài)功耗管理方法
技術(shù)領(lǐng)域:
本發(fā)明屬集成電路技術(shù)領(lǐng)域,具體涉及一種在數(shù)字集成電路系統(tǒng)中方便實(shí)現(xiàn)且性能卓越的動(dòng)態(tài)功耗管理(Dynamic Power Management,DPM)方法。
背景技術(shù):
伴隨全球信息化步伐的加快,網(wǎng)絡(luò),尤其是有線、無線互聯(lián)網(wǎng)絡(luò),已與人們的生活緊密相連,成為現(xiàn)代社會(huì)中信息交換不可或缺的載體。信息化的深入與網(wǎng)絡(luò)的普及也促進(jìn)了各種基于網(wǎng)絡(luò)、電子信息交互的業(yè)務(wù)發(fā)展,最具代表性的有電子商務(wù)、電子政務(wù)、金融支付、智能交通、互動(dòng)娛樂等等。網(wǎng)絡(luò)業(yè)務(wù)的普及,給人們的生活帶來了方便,但同時(shí)也給人們的生活帶來了更多的安全隱患。今天,網(wǎng)絡(luò)信息交換中產(chǎn)生的信息安全問題已經(jīng)成為要進(jìn)一步推進(jìn)信息化、加速網(wǎng)絡(luò)應(yīng)用中急需解決的關(guān)鍵問題之一。
信息安全SoC芯片正是在這種背景下迅速發(fā)展起來并成為網(wǎng)絡(luò)信息保障體系的芯片級硬件防護(hù)的基礎(chǔ)。而由于應(yīng)用領(lǐng)域的不同,目前國際上信息安全SoC芯片也在兩個(gè)方向上不斷得到發(fā)展一是面向客戶端應(yīng)用的信息安全SoC芯片,如用于身份簽名和認(rèn)證的USB-key;另一方向是面向高端應(yīng)用,如寬帶網(wǎng)絡(luò)應(yīng)用的高端信息安全SoC芯片。兩個(gè)方向的安全芯片雖然在運(yùn)算速度和數(shù)據(jù)吞吐量上有很大的不同,但在降低系統(tǒng)功耗方面卻保持一致。前者希望芯片的功耗盡可能低以延長便攜式電池的使用時(shí)間,而后者希望芯片的功耗盡可能低以保證芯片能夠長時(shí)間的正常工作和省去降溫裝置(如風(fēng)扇、散熱片等)。
根據(jù)CMOS理論,降低CMOS電路的功耗,尤其是動(dòng)態(tài)功耗,主要有以下幾種方法減小等效電容、降低電源電壓、降低工作頻率以及節(jié)點(diǎn)的翻轉(zhuǎn)概率。一般而言,減小等效電容這種方法在基于標(biāo)準(zhǔn)單元庫的ASIC設(shè)計(jì)中可用性很低;降低電源電壓和降低工作頻率這兩種方法則對系統(tǒng)的性能會(huì)產(chǎn)生負(fù)面影響。而降低節(jié)點(diǎn)的翻轉(zhuǎn)概率這種方法,節(jié)點(diǎn)的負(fù)載電容越高,這種方法就越有意義。同步ASIC中負(fù)載最大的兩個(gè)節(jié)點(diǎn)就是時(shí)鐘信號和全局復(fù)位信號。而全局復(fù)位信號在系統(tǒng)工作過程中翻轉(zhuǎn)的概率很低(一般只在系統(tǒng)上電時(shí)或者出現(xiàn)邏輯故障時(shí)才會(huì)翻轉(zhuǎn)),因此控制時(shí)鐘信號節(jié)點(diǎn)的翻轉(zhuǎn)是基于CMOS標(biāo)準(zhǔn)單元的SoC中降低功耗的非常行之有效的策略。
DPM能夠根據(jù)系統(tǒng)現(xiàn)時(shí)的工作狀態(tài)動(dòng)態(tài)配置系統(tǒng)參數(shù),使用最少的激活部件(activecomponent)來滿足應(yīng)用的需求,進(jìn)而提高系統(tǒng)的能量利用效率。DPM技術(shù)在低功耗設(shè)計(jì)領(lǐng)域中具有非常重要的地位,它既是很多高校的研究重點(diǎn),如美國斯坦福大學(xué)有專門的DPM研究小組;也是目前最新產(chǎn)品中普遍采用的技術(shù),如Intel的迅馳CPU中就使用了DPM。
DPM包括軟件部分和硬件部分兩個(gè)方面。軟件部分主要分析現(xiàn)時(shí)系統(tǒng)的工作狀態(tài)進(jìn)而對系統(tǒng)未來的行為做出預(yù)測;硬件部分主要支持各個(gè)時(shí)鐘區(qū)域的時(shí)鐘信號的開啟與關(guān)閉。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種簡單易行且可靠性高的動(dòng)態(tài)功耗管理方法,它對現(xiàn)有的硬件模塊和軟件模塊改動(dòng)非常小,而且?guī)缀醪挥绊懴到y(tǒng)性能。
信息安全SoC(System-on-Chip,SoC)是計(jì)算密集型的專用集成電路,主要由微控制器MCU(Micro Controller Unit,MCU)、密碼運(yùn)算單元、真隨機(jī)數(shù)發(fā)生器、DMA(Direct MemoryAccess,DMA)控制器、存儲(chǔ)器、USB(Universal Serial Bus,USB)接口控制器、總線控制器以及中斷控制器、UART(Universal Asynchronous Receiver/Transceiver)控制器和時(shí)鐘管理模塊(Clock Management Module,CMM)等必要外設(shè)構(gòu)成。其工作過程決定了并非每一個(gè)部件都同時(shí)參與工作。本發(fā)明根據(jù)信息安全SoC的工作過程將其構(gòu)成模塊劃分為多個(gè)時(shí)鐘區(qū)域,然后用DPM技術(shù)的嵌入式軟件管理每個(gè)時(shí)鐘區(qū)域的時(shí)鐘供給對于不參與當(dāng)前工作的模塊完全關(guān)閉其時(shí)鐘輸入,在需要參與工作時(shí)重新打開時(shí)鐘供給。
本發(fā)明在劃分時(shí)鐘區(qū)域時(shí),一般要求某個(gè)區(qū)域的模塊可以獨(dú)立于其它一些(并非所有)模塊工作;并且將劃分入時(shí)鐘區(qū)域的所有模塊的時(shí)鐘輸入納入軟件可控范圍。
與上述嵌入式管理軟件相匹配,本發(fā)明提出的信息安全SoC中的DPM的相關(guān)硬件部分,包括一個(gè)上述軟件可訪問的由時(shí)鐘管理模塊(Clock Management Module,CMM)和一個(gè)上述軟件可訪問的微控制器(Micro ControllerUnit,MCU)wrapper構(gòu)成。前者負(fù)責(zé)管理SoC中除了MCU以外的其它功能模塊的時(shí)鐘;后者負(fù)責(zé)管理MCU本身的時(shí)鐘。
CMM的結(jié)構(gòu)如附圖1所示。它包括一個(gè)CMM的控制寄存器組件1.1,MCU可以通過APB接口訪問并修改它,它的值為‘0’表示關(guān)閉對應(yīng)的時(shí)鐘輸出,‘1’表示開啟對應(yīng)的時(shí)鐘輸出;一個(gè)低電平有效的鎖存器組件1.2,它保證了只有當(dāng)時(shí)鐘信號為低電平時(shí)組件1.1的輸出才可能影響到最終的n#時(shí)鐘輸出,從而有效地避免了在時(shí)鐘信號上引入毛刺,提高系統(tǒng)的穩(wěn)定性;一個(gè)二輸入與門組件1.3,它是關(guān)閉/開啟時(shí)鐘輸出的功能部件;一個(gè)上升沿觸發(fā)的功能模塊組件1.4,例如RSA/ECC協(xié)處理器、DMA控制器、真隨機(jī)數(shù)發(fā)生器等。
對于CMM,MCU,通過改寫CMM中的控制寄存器,可以靈活地開啟/關(guān)閉系統(tǒng)中每一個(gè)時(shí)鐘區(qū)域的時(shí)鐘。當(dāng)微控制器根據(jù)系統(tǒng)的當(dāng)前工作狀態(tài)發(fā)現(xiàn)某個(gè)功能模塊的處于空閑狀態(tài),并且在接下來的一段時(shí)間內(nèi)這個(gè)模塊仍無需參與工作,那么微控制器可以通過修改時(shí)鐘管理模塊的控制狀態(tài)寄存器來關(guān)閉這個(gè)模塊的時(shí)鐘;當(dāng)微控制器根據(jù)系統(tǒng)調(diào)度算法或者終端用戶的請求而需要某個(gè)正處于時(shí)鐘關(guān)閉狀態(tài)的模塊參與工作時(shí)(以下稱時(shí)鐘關(guān)閉狀態(tài)為“掛起”),微控制器首先通過修改時(shí)鐘管理模塊的控制狀態(tài)寄存器來打開此模塊的時(shí)鐘,然后再繼續(xù)其對此模塊的操作。
MCU wrapper的結(jié)構(gòu)如圖2所示。它包括一個(gè)MCU wrapper內(nèi)部的控制寄存器組件2.1,它可以被MCU通過系統(tǒng)總線改寫,而它的狀態(tài)值控制了組件2.3的動(dòng)作,進(jìn)而實(shí)現(xiàn)開啟/關(guān)閉MCU的時(shí)鐘;一個(gè)AHB總線控制器組件2.2,它不斷采樣MCU的輸出控制信號,并將它轉(zhuǎn)換成符合AHB總線協(xié)議的總線信號,同時(shí)它將操作結(jié)果返回給MCU;一個(gè)控制MCU wrapper正常工作的有限狀態(tài)機(jī)組件2.3,其狀態(tài)轉(zhuǎn)換反映了MCU的工作狀態(tài),因此它可以判斷何時(shí)可以關(guān)閉/開啟MCU的時(shí)鐘而不會(huì)導(dǎo)致誤動(dòng)作,它的一個(gè)輸出信號直接接到組件2.4的D端,進(jìn)而實(shí)現(xiàn)MCU的時(shí)鐘管理;一個(gè)低電平有效的鎖存器組件2.4,它的作用是保證在時(shí)鐘的低電平時(shí)才有可能關(guān)閉時(shí)鐘,從而避免可能出現(xiàn)的毛刺;一個(gè)二輸入與門組件2.5,它是關(guān)閉/開啟時(shí)鐘輸出的功能部件。
對于MCU wrapper,它一方面作為MCU與系統(tǒng)總線AHB之間的連接橋路,即把MCU的接口信號時(shí)序轉(zhuǎn)換成AHB接口時(shí)序,再接入系統(tǒng)總線AHB;另一方面也是一個(gè)AHB設(shè)備,MCU可以訪問或修改MCU wrapper內(nèi)部的控制寄存器——用來關(guān)閉MCU本身的時(shí)鐘。若嵌入式軟件發(fā)現(xiàn)在一段時(shí)間內(nèi)MCU都無需參與運(yùn)算或者控制,則可以通過寫MCUwrapper中的控制寄存器迫使MCU本身掛起;當(dāng)MCU被掛起之后,MCU wrapper開始監(jiān)控中斷請求信號;當(dāng)中斷信號來臨,MCU wrapper重新開啟MCU的時(shí)鐘,使得MCU可以及時(shí)處理中斷事務(wù);當(dāng)中斷處理完成后,調(diào)度程序再查詢系統(tǒng)的當(dāng)前狀態(tài)從而判斷是否需要再次迫使MCU掛起。
從上述描述可以看出,本發(fā)明提出的這種DPM方法無需改動(dòng)任何功能模塊(如RSA/ECC協(xié)處理器、DMA控制器、USB控制器、TRNG等等),只需要額外的添加一個(gè)CMM和略微修改MCU wrapper即可實(shí)現(xiàn)。因此它非常適合基于標(biāo)準(zhǔn)單元庫(standard celllibrary)的SoC設(shè)計(jì)。
本發(fā)明方法是一種信息安全SoC中基于門控時(shí)鐘的動(dòng)態(tài)功耗管理方法,它能極大地降低信息安全SoC的系統(tǒng)功耗。
圖1為時(shí)鐘管理模塊CMM的結(jié)構(gòu)。
圖2為MCU wrapper結(jié)構(gòu)圖。
圖3為信息安全SoC的時(shí)鐘區(qū)域劃分圖示。
圖中標(biāo)號1.1為CMM的控制寄存器組件,1.2為低電平有效的鎖存器組件,1.3為二輸入與門組件,1.4為功能模塊組件;2.1為MCU wrapper內(nèi)部的控制存器組件,2.2為AHB總線控制器組件,2.3為有限狀態(tài)機(jī)組件,2.4為低電平有效的鎖存器組件,2.5為二輸入與門組件;3.1為微控制器,3.2為PSA/ECC協(xié)處理器,3.3為DMA控制器,3.4為程序存儲(chǔ)器模塊,3.5為數(shù)據(jù)存儲(chǔ)器模塊,3.6為真隨機(jī)數(shù)發(fā)生器模塊,3.7為USB接口控制器模塊,3.8為通用異步傳輸總線控制器模塊,3.9為中斷控制器,3.10為時(shí)鐘管理模塊,3.11為AHB到APB的橋。
具體實(shí)施例方式
下面通過一個(gè)具體例子進(jìn)一步描述本發(fā)明。
1、首先根據(jù)系統(tǒng)的工作過程將整個(gè)信息安全SoC系統(tǒng)劃分成9個(gè)時(shí)鐘區(qū)域(如圖3所示)。其中8個(gè)陰影區(qū)域的時(shí)鐘是軟件可控的,8個(gè)時(shí)鐘區(qū)域以外區(qū)域的時(shí)鐘始終開啟。下面將具體分析信息安全SoC中各個(gè)部件的時(shí)鐘是否可以被納入管理的范圍。
部件3.1是信息安全SoC中的核心控制部件和運(yùn)算部件微控制器(或MCU),它和程序存儲(chǔ)器(ROM)和數(shù)據(jù)存儲(chǔ)器(SRAM)協(xié)同工作,一起完成數(shù)值運(yùn)算任務(wù);或者控制其它部件完成信息安全算法相關(guān)的任務(wù)。但是對于一些大批量傳輸數(shù)據(jù)任務(wù),比如將數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)搬運(yùn)到RSA/ECC協(xié)處理器的數(shù)據(jù)緩沖區(qū)中,MCU的處理效率會(huì)迅速下降。這時(shí)候需要DMA控制器來加速批量數(shù)據(jù)的傳輸任務(wù)。而在DMA控制器工作的過程中,MCU本身實(shí)際上僅僅在等待DMA搬運(yùn)完所有數(shù)據(jù),因此在DMA搬運(yùn)數(shù)據(jù)期間,MCU可以選擇關(guān)閉其時(shí)鐘。鑒于此過程,本發(fā)明將MCU獨(dú)立的劃分到時(shí)鐘區(qū)域1(以下簡稱區(qū)域1)。需要注意MCU wrapper沒有被劃入?yún)^(qū)域1,這主要是考慮它是完成MCU的時(shí)鐘控制的模塊,并且其電路規(guī)模也非常小(對整個(gè)電路的功耗貢獻(xiàn)很小),讓它的時(shí)鐘始終保持開啟狀態(tài)可以提高電路的可靠性。
部件3.2是信息安全SoC的核心安全引擎RSA/ECC協(xié)處理器,它包括協(xié)處理器微指令存儲(chǔ)器和協(xié)處理器數(shù)據(jù)存儲(chǔ)器,可完成簽名/驗(yàn)證和加密/解密任務(wù)。由于只有在執(zhí)行安全計(jì)算任務(wù)時(shí)它才需要參與工作,因此可以將RSA/ECC協(xié)處理器包括協(xié)處理器微指令存儲(chǔ)器和協(xié)處理器數(shù)據(jù)存儲(chǔ)器納入時(shí)鐘區(qū)域2(以下簡稱區(qū)域2)。
部件3.3是DMA控制器,它用來加速批量數(shù)據(jù)的搬運(yùn)工作。與通常意義上的DMA控制器不同的是,本發(fā)明中的DMA控制器的工作完全由MCU控制完成。當(dāng)調(diào)度程序發(fā)現(xiàn)需要搬運(yùn)批量數(shù)據(jù)時(shí),MCU首先告訴DMA控制器數(shù)據(jù)源和目的地址以及數(shù)據(jù)塊的大小,然后再啟動(dòng)DMA控制器工作——在此之前DMA控制器不會(huì)申請系統(tǒng)總線。鑒于DMA控制器的工作過程及條件,本發(fā)明將DMA控制器納入時(shí)鐘區(qū)域3(以下簡稱區(qū)域3)。
部件3.6是真隨機(jī)數(shù)發(fā)生器(True Random Number Generator,TRNG)模塊,主要產(chǎn)生隨機(jī)性能非常高的隨機(jī)數(shù)供“安全計(jì)算任務(wù)”使用。信息安全SoC需要隨機(jī)數(shù)的情況有兩種生成RSA公鑰和私鑰時(shí);ECC簽名時(shí)。信息安全SoC的工作方式?jīng)Q定了系統(tǒng)一旦獲得有效的隨機(jī)數(shù),TRNG的任務(wù)就隨之宣告完成。因此TRNG大部分時(shí)間都處于“休眠”狀態(tài),本發(fā)明將其納入時(shí)鐘區(qū)域6(以下簡稱區(qū)域6)。
部件3.4是程序存儲(chǔ)器模塊,用來存儲(chǔ)信息安全SoC的嵌入式軟件——調(diào)度程序、功能模塊驅(qū)動(dòng)程序和素性檢測程序;另外還可以存放一些特定的數(shù)據(jù)。某些情況下DMA控制器也可以訪問它,因此它不應(yīng)該被直接納入?yún)^(qū)域1或者區(qū)域3,而應(yīng)該將它單獨(dú)納入一個(gè)獨(dú)立的時(shí)鐘區(qū)域4(以下簡稱區(qū)域4)。區(qū)域4還包括程序存儲(chǔ)器橋。
部件3.5是數(shù)據(jù)存儲(chǔ)器模塊,它實(shí)際上是整個(gè)信息安全SoC的主存儲(chǔ)器,它可以供MCU訪問,也可以供DMA控制器訪問。和程序存儲(chǔ)器模塊類似,本發(fā)明將其納入單獨(dú)的時(shí)鐘區(qū)域5(以下簡稱區(qū)域5)。區(qū)域5還包括數(shù)據(jù)存儲(chǔ)器橋。
部件3.7和部件3.8分別是USB接口控制器模塊和通用異步收發(fā)(傳輸)(UniversalAsynchronous Receive Transfer,UART)總線控制器模塊,它們是信息安全SoC的兩個(gè)與外界通信的接口。當(dāng)調(diào)度程序發(fā)現(xiàn)不需要它們工作時(shí),便可以關(guān)閉它們的時(shí)鐘。同樣地,本發(fā)明將它們分別納入兩個(gè)獨(dú)立的時(shí)鐘區(qū)域時(shí)鐘區(qū)域7(以下簡稱區(qū)域7)和時(shí)鐘區(qū)域8(以下簡稱區(qū)域8)。
部件3.9是中斷控制器,由于它肩負(fù)著喚醒MCU的任務(wù)(發(fā)明內(nèi)容部分描述了MCU休眠/喚醒的過程),加上其電路規(guī)模很小,因此本發(fā)明并不控制其時(shí)鐘供給。
部件3.10是實(shí)現(xiàn)DPM的關(guān)鍵模塊之一的時(shí)鐘管理模塊,由于規(guī)模很小,沒有控制其時(shí)鐘供給。
同樣地,本發(fā)明也不控制AHB到APB橋模塊11時(shí)鐘供給。
2、其次描述調(diào)度程序的功耗管理過程(1)初始化上電時(shí),首先初始化兩個(gè)對外接口USB和UART,然后初始化其他部件。由于信息安全SoC的功能主要是將外界傳送進(jìn)來的數(shù)據(jù)進(jìn)行加密/解密或者簽名/驗(yàn)證工作,因而系統(tǒng)各個(gè)模塊初始化完成后,若MCU發(fā)現(xiàn)USB和UART沒有接收到任何數(shù)據(jù)傳輸請求,則先關(guān)閉區(qū)域1(主控單元MCU)、區(qū)域7和區(qū)域8(對外接口電路USB和UART)之外的其它時(shí)鐘區(qū)域的時(shí)鐘,然后通過寫控制字(即MCU總線橋中的控制寄存器)強(qiáng)迫MCU進(jìn)入“休眠”狀態(tài),等待中斷到來;若MCU發(fā)現(xiàn)USB或UART已經(jīng)接收到外界的操作命令,則MCU繼續(xù)其調(diào)度工作。
(2)素性檢測當(dāng)外界要求產(chǎn)生公鑰/密鑰對時(shí),MCU首先打開區(qū)域6(TRNG)的時(shí)鐘,然后再強(qiáng)迫MCU本身“休眠”,等待TRNG“數(shù)據(jù)緩沖區(qū)已滿”的中斷。當(dāng)MCU被此中斷喚醒之后,MCU開始檢測TRNG生成的隨機(jī)數(shù),如果檢測到符合要求的素?cái)?shù),再關(guān)閉區(qū)域6的時(shí)鐘供給,MCU繼續(xù)其調(diào)度任務(wù)(比如再進(jìn)行其他計(jì)算或?qū)⒂?jì)算結(jié)果保存起來等)。當(dāng)整個(gè)檢測完成之后,MCU再進(jìn)入“休眠”狀態(tài),等待下一次中斷。
(3)簽名或驗(yàn)證當(dāng)外界要求完成簽名或驗(yàn)證任務(wù)時(shí),MCU首先打開區(qū)域2(RSA/ECC協(xié)處理器)的時(shí)鐘,然后把從對外接口(如USB、UART)接收到的數(shù)據(jù)傳輸?shù)絉SA/ECC協(xié)處理器的數(shù)據(jù)緩沖區(qū)。如果在傳輸速度沒有限制的情況下,MCU本身就可以完成數(shù)據(jù)傳輸任務(wù);如果要求高的傳輸速度,MCU需要打開區(qū)域3(DMA)的時(shí)鐘,然后通知DMA需要搬運(yùn)的數(shù)據(jù)塊的首地址和數(shù)據(jù)塊大小,再啟動(dòng)DMA并迫使MCU本身進(jìn)入“休眠”狀態(tài),等待DMA搬運(yùn)數(shù)據(jù)完成的中斷信號。數(shù)據(jù)搬運(yùn)完成之后,MCU再啟動(dòng)RSA/ECC協(xié)處理器工作,然后再進(jìn)入“休眠”,等待RSA/ECC協(xié)處理器中斷信號。當(dāng)協(xié)處理器完成運(yùn)算之后,MCU繼續(xù)其調(diào)度任務(wù)。
權(quán)利要求
1.信息安全SoC中基于門控時(shí)鐘的動(dòng)態(tài)功耗管理方法,其特征在于具體步驟如下首先根據(jù)信息安全SoC的工作過程,將其構(gòu)成模塊劃分為多個(gè)時(shí)鐘區(qū)域,其中,某個(gè)時(shí)鐘區(qū)域的模塊獨(dú)立于其它一些模塊工作,并且將劃入時(shí)鐘區(qū)域的所有模塊的時(shí)鐘輸入納入軟件可控范圍;然后采用DPM技術(shù)的嵌入式軟件管理每個(gè)時(shí)鐘區(qū)域的時(shí)鐘供給對于不參與當(dāng)前工作的模塊,完全關(guān)閉其時(shí)鐘輸入;在需要參與工作時(shí),重新打開時(shí)鐘供給。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于與所述DPM技術(shù)的嵌入式軟件相匹配,DPM的相關(guān)硬件部分包括一個(gè)上述軟件可訪問的時(shí)鐘管理模塊和一個(gè)上述軟件可訪問的微控制器wrapper;前者負(fù)責(zé)管理SoC中除了MCU以外的其它功能模塊的時(shí)鐘;后者負(fù)責(zé)管理MCU本身的時(shí)鐘。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的時(shí)鐘管理模塊的組成包括一個(gè)控制寄存器組件(1.1),微控制器可以通過APB接口訪問并修改它;一個(gè)低電平有效鎖存器組件(1.2),它保證只有當(dāng)時(shí)鐘信號為低電平時(shí),組件(1.1)的輸出才可能影響到最終的n#時(shí)鐘輸出;一個(gè)二輸入與門組件(1.3),它是關(guān)閉/開啟時(shí)鐘輸出的功能部件;一個(gè)上升沿觸發(fā)的功能模塊組件(1.4);當(dāng)微控制器根據(jù)系統(tǒng)的當(dāng)前工作狀態(tài)發(fā)現(xiàn)某個(gè)功能模塊的處于空閑狀態(tài),并且在接下來的一段時(shí)間內(nèi)這個(gè)模塊仍無需參與工作,那么微控制器通過修改時(shí)鐘管理模塊的控制狀態(tài)寄存器來關(guān)閉這個(gè)模塊的時(shí)鐘;當(dāng)微控制器根據(jù)系統(tǒng)調(diào)度算法或者終端用戶的請求而需要某個(gè)正處于時(shí)鐘關(guān)閉狀態(tài)的模塊參與工作時(shí),微控制器首先通過修改時(shí)鐘管理模塊的控制狀態(tài)寄存器來打開此模塊的時(shí)鐘,然后再繼續(xù)其對此模塊的操作。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于所述的微控制器wrapper的組成包括一個(gè)MCU wrapper內(nèi)部的控制寄存器組件(2.1),它可以被MCU通過系統(tǒng)總線改寫,而它的狀態(tài)值控制了組件(2.3)的動(dòng)作,進(jìn)而實(shí)現(xiàn)開啟/關(guān)閉MCU的時(shí)鐘;一個(gè)AHB總線控制器組件(2.2),它不斷采樣MCU的輸出控制信號,并將它轉(zhuǎn)換成符合AHB總線協(xié)議的總線信號,同時(shí)它將操作結(jié)果返回給MCU;一個(gè)控制MCU wrapper正常工作的有限狀態(tài)機(jī)組件(2.3),其狀態(tài)轉(zhuǎn)換反映了MCU的工作狀態(tài),因此它可以判斷何時(shí)可以關(guān)閉/開啟MCU的時(shí)鐘而不會(huì)導(dǎo)致誤動(dòng)作,它的一個(gè)輸出信號直接接到組件(2.4)的D端,進(jìn)而實(shí)現(xiàn)MCU的時(shí)鐘管理;一個(gè)低電平有效的鎖存器組件(2.4),它的作用是保證在時(shí)鐘的低電平時(shí)才有可能關(guān)閉時(shí)鐘,從而避免可能出現(xiàn)的毛刺;一個(gè)二輸入與門組件(2.5),它是關(guān)閉/開啟時(shí)鐘輸出的功能部件;若嵌入式軟件發(fā)現(xiàn)在一段時(shí)間內(nèi)MCU都無需參與運(yùn)算或者控制,則通過寫MCUwrapper中的控制寄存器迫使MCU本身掛起;當(dāng)MCU被掛起之后,MCU wrapper開始監(jiān)控中斷請求信號;當(dāng)中斷信號來臨,MCU wrapper重新開啟MCU的時(shí)鐘,使得MCU及時(shí)處理中斷事務(wù);當(dāng)中斷處理完成后,調(diào)度程序再查詢系統(tǒng)的當(dāng)前狀態(tài)從而判斷是否需要再次迫使MCU掛起。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于將信息安全SoC劃分為8個(gè)軟件可控的時(shí)鐘區(qū)域區(qū)域1微控制器,區(qū)域2RSA/ECO協(xié)處理器,區(qū)域3DMA控制器,區(qū)域4程序存儲(chǔ)器模塊,該模塊存儲(chǔ)信息安全SoC的嵌入式軟件,包括調(diào)度程序、功能模塊驅(qū)動(dòng)程序和素性檢測程序;區(qū)域5數(shù)據(jù)存儲(chǔ)器模塊,區(qū)域6真隨機(jī)數(shù)發(fā)生器模塊,區(qū)域7USB接口控制器模塊,區(qū)域8通用異步傳輸總線控制模塊;其余的中斷控制器模塊、時(shí)鐘管理模塊、AHB到APB橋模塊等的時(shí)鐘始終開啟,不控制其時(shí)鐘供給;其功耗管理的過程如下(1)初始化上電時(shí),首先初始化兩個(gè)對外接口USB和UART,然后初始化其他部件;系統(tǒng)各個(gè)模塊初始化完成后,若MCU發(fā)現(xiàn)USB和UART沒有接收到任何數(shù)據(jù)傳輸請求,則先關(guān)閉區(qū)域1、區(qū)域7和區(qū)域8之外的其它時(shí)鐘區(qū)域的時(shí)鐘,然后通過寫控制字強(qiáng)迫MCU進(jìn)入“休眠”狀態(tài),等待中斷到來;若MCU發(fā)現(xiàn)USB或UART已經(jīng)接收到外界的操作命令,則MCU繼續(xù)其調(diào)度工作;(2)素性檢測當(dāng)外界要求產(chǎn)生公鑰/密鑰對時(shí),MCU首先打開區(qū)域6的時(shí)鐘,然后再強(qiáng)迫MCU本身“休眠”,等待TRNG“數(shù)據(jù)緩沖區(qū)已滿”的中斷;當(dāng)MCU被此中斷喚醒之后,MCU開始檢測TRNG生成的隨機(jī)數(shù),如果檢測到符合要求的素?cái)?shù),再關(guān)閉區(qū)域6的時(shí)鐘供給,MCU繼續(xù)其調(diào)度任務(wù);當(dāng)整個(gè)檢測完成之后,MCU再進(jìn)入“休眠”狀態(tài),等待下一次中斷;(3)簽名或驗(yàn)證當(dāng)外界要求完成簽名或驗(yàn)證任務(wù)時(shí),MCU首先打開區(qū)域2的時(shí)鐘,然后把從對外接口接收到的數(shù)據(jù)傳輸?shù)絉SA/ECC協(xié)處理器的數(shù)據(jù)緩沖區(qū);如果在傳輸速度沒有限制的情況下,MCU本身就可以完成數(shù)據(jù)傳輸任務(wù);如果要求高的傳輸速度,MCU需要打開區(qū)域3的時(shí)鐘,然后通知DMA需要搬運(yùn)的數(shù)據(jù)塊的首地址和數(shù)據(jù)塊大小,再啟動(dòng)DMA并迫使MCU本身進(jìn)入“休眠”狀態(tài),等待DMA搬運(yùn)數(shù)據(jù)完成的中斷信號;數(shù)據(jù)搬運(yùn)完成之后,MCU再啟動(dòng)RSA/ECC協(xié)處理器工作,然后再進(jìn)入“休眠”,等待RSA/ECC協(xié)處理器中斷信號;當(dāng)協(xié)處理器完成運(yùn)算之后,MCU繼續(xù)其調(diào)度任務(wù)。
全文摘要
本發(fā)明屬集成電路技術(shù)領(lǐng)域,具體為一種信息安全SoC的動(dòng)態(tài)功耗管理方法。信息安全SoC是計(jì)算密集型的專用集成電路,主要由微控制器MCU、密碼運(yùn)算單元、真隨機(jī)數(shù)發(fā)生器、DMA控制器、存儲(chǔ)器、USB接口控制器、總線控制器以及中斷控制器、UART控制器和時(shí)鐘管理模塊等必要外設(shè)構(gòu)成。其工作過程決定了并非每一個(gè)部件都同時(shí)參與工作。本發(fā)明根據(jù)信息安全SoC的工作過程將其構(gòu)成模塊劃分為多個(gè)時(shí)鐘區(qū)域,然后用DPM技術(shù)的嵌入式軟件管理每個(gè)時(shí)鐘區(qū)域的時(shí)鐘供給對于不參與當(dāng)前工作的模塊完全關(guān)閉其時(shí)鐘輸入,在需要參與工作時(shí)重新打開時(shí)鐘供給。本發(fā)明中闡述的動(dòng)態(tài)功耗管理技術(shù)能極大地降低信息安全SoC的系統(tǒng)功耗。
文檔編號G06F1/32GK1752894SQ20051002891
公開日2006年3月29日 申請日期2005年8月18日 優(yōu)先權(quán)日2005年8月18日
發(fā)明者曾曉洋, 吳敏, 林一帆, 韓軍, 吳永一, 陳俊, 張章, 郭亞煒 申請人:復(fù)旦大學(xué), 上海微科集成電路有限公司