嵌入MRAM的SoC芯片及其功耗控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及半導(dǎo)體芯片領(lǐng)域,特別涉及一種嵌入MRAM的SoC芯片及其功耗控制方法。
【背景技術(shù)】
[0002]無線通訊、可穿戴設(shè)備、物聯(lián)網(wǎng)的終端產(chǎn)品,通常都是以相應(yīng)的SoC芯片為核心設(shè)計的。SoC是System on Chip的縮寫,一般說來,SoC稱為系統(tǒng)級芯片,也可以稱為片上系統(tǒng),它通常包括一個或多個中央處理器(CPU,Central Processing Unit)核,專用的功能模塊如無線通訊或視頻編解碼、外部的內(nèi)存/存儲接口以及其他外圍設(shè)備接口。
[0003]目前的SoC芯片通常使用以下幾種內(nèi)存/存儲技術(shù):
[0004]1:只讀存儲器(ROM,Read Only Memory)
[0005]ROM是最經(jīng)濟的存儲方式,但由于只能讀取,不能改寫其中內(nèi)容,使用受到想當(dāng)大的限制,一般用來存儲不需要修改的代碼。ROM可以方便地集成在芯片內(nèi)部。
[0006]2:隨機存取存儲器(RAM,Random Access Memory)
[0007]由于動態(tài)隨機存取存儲器(DRAM,Dynamic Random Access Memory)待機時需要不斷刷新耗電,在低功耗系統(tǒng)中使用得不多。靜態(tài)隨機存取存儲器(SRAM,Static RandomAccess Memory)是最常用的內(nèi)存技術(shù),SRAM的優(yōu)點是可以很容易地集成在芯片內(nèi)部,另外一個優(yōu)點是讀寫的時延非常低,CPU的緩存(Cache)都采用SRAM。SRAM的成本最高,同樣的存儲量,占用的芯片面積比ROM和閃存(Flash)都大得多。
[0008]3 JXIS(Flash)
[0009]由于RAM不能在斷電后保持內(nèi)容,還需要Flash用來可能需要不斷更新的存儲代碼和系統(tǒng)文件等信息。Flash的問題是工藝和普通芯片的工藝不兼容,不容易集成到芯片中。雖然NOR Flash嵌入到芯片中的技術(shù)已經(jīng)存在,但使用很受限制,并且嵌入式的Flash跟獨立的Flash相比經(jīng)濟性受損失,同樣存儲量占用芯片的面積增大很多。
[0010]無線通訊、可穿戴設(shè)備、物聯(lián)網(wǎng)的終端產(chǎn)品的SoC芯片的實際使用模式通常是CPU大部分時間在睡眠(sleep),在被內(nèi)部或外部中斷喚醒后工作很短一段時間,馬上再次進入睡眠狀態(tài)。因此,芯片和系統(tǒng)的待機電流(也就是在CPU睡眠狀態(tài)下的電流)對電池使用時間影響很大。這樣的產(chǎn)品對芯片耗電,特別是待機電流的要求相當(dāng)高。
[0011]半導(dǎo)體芯片的特點是,即使不被使用,每一個MOS管器件都會有少許漏電。隨著半導(dǎo)體工藝一代代地走向更加小型化,這種漏電將越來越大。一個SoC芯片的待機電流基本上正比于休眠時仍然通電的芯片面積。
[0012]目前所有的內(nèi)存和存儲技術(shù)功耗都不很理想。Flash寫入信息存儲時非常耗電,DRAM因為需要不斷地刷新內(nèi)容,待機電流很大,SRAM的待機電流比DRAM好很多,芯片內(nèi)部的很多內(nèi)存和CPU緩存都是用SRAM設(shè)計的,通常占了 SoC最大的一部分面積,但SRAM因為斷電后不能保持內(nèi)容,CPU睡眠時必須通電,于是就成為了 SoC芯片待機電流中的最主要貢獻。
【發(fā)明內(nèi)容】
[0013]本發(fā)明要解決的冋題是現(xiàn)有SoC芯片中所米用的內(nèi)存和存儲技術(shù)的功耗不是很理想,尤其是導(dǎo)致SoC芯片的待機電流較高。
[0014]為解決上述問題,本發(fā)明技術(shù)方案提供一種嵌入MRAM的SoC芯片,包括:
[0015]內(nèi)部磁性隨機存儲器(MRAM,Magnetic Random Access Memory)、內(nèi)部總線以及至少一個CPU核;所述CPU核與內(nèi)部MRAM之間通過所述內(nèi)部總線進行通訊;
[0016]所述內(nèi)部MRAM用于存儲固化程序的指令代碼和固定數(shù)值,還用于程序運行中所述CPU核計算時所涉及數(shù)據(jù)的隨機存取,還用于存儲應(yīng)用程序的指令代碼和需要永久保存的數(shù)據(jù)。
[0017]可選的,所述SoC芯片還包括為每個CPU核所配置的緩存,各個緩存與所述內(nèi)部總線和相應(yīng)的CPU核相連。
[0018]可選的,所述緩存由MRAM組成。
[0019]可選的,所述SoC芯片還包括與所述內(nèi)部總線、各個CPU核及其相應(yīng)緩存相連的第一控制模塊,用于控制CPU核的睡眠與喚醒,還用于控制關(guān)閉對于進入睡眠狀態(tài)的CPU核相應(yīng)緩存的供電,以及控制恢復(fù)對于被喚醒的CPU核相應(yīng)緩存的供電。
[0020]可選的,所述SoC芯片還包括與所述內(nèi)部MRAM和所述內(nèi)部總線相連的第二控制模塊,用于監(jiān)聽所述內(nèi)部總線上使用所述內(nèi)部MRAM的指令,并控制對所述內(nèi)部MRAM進行供電的電源線的切斷或接通。
[0021]可選的,所述第二控制模塊包括計時器,所述計時器用于對未收到任何來自所述內(nèi)部總線上使用所述內(nèi)部MRAM的指令的持續(xù)時間進行計時。
[0022]可選的,所述SoC芯片還包括分別連接于所述內(nèi)部總線的直接存儲器訪問(DMA,Direct Memory Access)控制器、夕卜部設(shè)備接口、夕卜部內(nèi)存/存儲接口和其他功能模塊中的至少一種。
[0023]為解決上述問題,本發(fā)明技術(shù)方案還提供一種上述SoC芯片的功耗控制方法,所述SoC芯片包括內(nèi)部MRAM、內(nèi)部總線以及至少一個CPU核;所述CPU核與內(nèi)部MRAM之間通過所述內(nèi)部總線進行通訊;所述內(nèi)部MRAM用于存儲固化程序的指令代碼和固定數(shù)值,還用于程序運行中所述CPU核計算時所涉及數(shù)據(jù)的隨機存取,還用于存儲應(yīng)用程序的指令代碼和需要永久保存的數(shù)據(jù);所述SoC芯片還包括與所述內(nèi)部MRAM和所述內(nèi)部總線相連的第二控制模塊,用于監(jiān)聽所述內(nèi)部總線上使用所述內(nèi)部MRAM的指令,并控制對所述內(nèi)部MRAM進行供電的電源線的切斷或接通;所述功耗控制方法包括:若監(jiān)測到預(yù)設(shè)時間內(nèi)未收到任何來自所述內(nèi)部總線上使用所述內(nèi)部MRAM的指令,則切斷對所述內(nèi)部MRAM進行供電的電源線。
[0024]可選的,所述SoC芯片的功耗控制方法還包括:在切斷對所述內(nèi)部MRAM進行供電的電源線之后,若收到來自所述內(nèi)部總線上使用所述內(nèi)部MRAM的指令,則重新接通對所述內(nèi)部MRAM進行供電的電源線。
[0025]可選的,所述的SoC芯片的功耗控制方法還包括:在所述內(nèi)部MRAM完成上電初始化之前,通過所述內(nèi)部總線上的等待信號或者通過推遲發(fā)送所述內(nèi)部總線上的響應(yīng)信號,使申請使用所述內(nèi)部MRAM的發(fā)起者等待。
[0026]可選的,所述SoC芯片的功耗控制方法還包括:若接收到所述CPU核發(fā)送的關(guān)閉所述內(nèi)部MRAM的指令,則切斷對所述內(nèi)部MRAM進行供電的電源線。
[0027]可選的,所述預(yù)設(shè)時間取決于所述內(nèi)部MRAM上電初始化所需要的時間。
[0028]可選的,所述SoC芯片還包括為每個CPU核所配置的緩存,所述緩存由MRAM組成,各個緩存與所述內(nèi)部總線和相應(yīng)的CPU核相連;所述SoC芯片還包括與所述內(nèi)部總線、各個(PU核及其相應(yīng)緩存相連的第一控制模塊,用于控制CPU核的睡眠與喚醒,還用于控制關(guān)閉對于進入睡眠狀態(tài)的CPU核相應(yīng)緩存的供電,以及控制恢復(fù)對于被喚醒的CPU核相應(yīng)緩存的供電;所述功耗控制方法還包括:在任一 CPU核進入睡眠狀態(tài)后,控制關(guān)閉對于該進入睡眠狀態(tài)的CPU核相應(yīng)緩存的供電;在處于睡眠狀態(tài)的CPU核被喚醒后,控制恢復(fù)對于該被喚醒的CPU核相應(yīng)緩存的供電。
[0029]可選的,控制不需要運行的CPU核進入睡眠狀態(tài)。
[0030]為解決上述問題,本發(fā)明技術(shù)方案還提供一種SoC芯片的功耗控制方法,所述SoC芯片包括內(nèi)部MRAM、內(nèi)部總線以及至少一個CPU核;所述CPU核與內(nèi)部MRAM之間通過所述內(nèi)部總線進行通訊;所述內(nèi)部MRAM用于存儲固化程序的指令代碼和固定數(shù)值,還用于程序運行中所述CPU核計算時所涉及數(shù)據(jù)的隨機存取,還用于存儲應(yīng)用程序的指令代碼和需要永久保存的數(shù)據(jù);所述SoC芯片還包括為每個CPU核所配置的緩存,所述緩存由MRAM組成,各個緩存與所述內(nèi)部總線和相應(yīng)的CPU核相連;所述SoC芯片還包括與所述內(nèi)部總線、各個(PU核及其相應(yīng)緩存相連的第一控制模塊,用于控制CPU核的睡眠與喚醒,還用于控制關(guān)閉對于進入睡眠狀態(tài)的CPU核相應(yīng)緩存的供電,以及控制恢復(fù)對于被喚醒的CPU核相應(yīng)緩存的供電;所述功耗控制方法包括:在任一 CPU核進入睡眠狀態(tài)后,控制關(guān)閉對于該進入睡眠狀態(tài)的CPU核相應(yīng)緩存的供電;在處于睡眠狀態(tài)的CPU核被喚醒后,控制恢復(fù)對于該被喚醒的CPU核相應(yīng)緩存的供電。
[0031]可選的,所述SoC芯片的功耗控制方法還包括:控制不需要運行的CPU核進入睡眠狀態(tài)。
[0032]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案至少具有以下優(yōu)點:
[0033]通過將MRAM集成于SoC芯片中,以所述內(nèi)部MRAM替代現(xiàn)有技術(shù)中常用的ROM、RAM和Flash這三種不同的內(nèi)存和存儲,完成通訊、存儲以及運行相關(guān)應(yīng)