TWI522794B - 節能非揮發性微處理器 - Google Patents

節能非揮發性微處理器 Download PDF

Info

Publication number
TWI522794B
TWI522794B TW104118737A TW104118737A TWI522794B TW I522794 B TWI522794 B TW I522794B TW 104118737 A TW104118737 A TW 104118737A TW 104118737 A TW104118737 A TW 104118737A TW I522794 B TWI522794 B TW I522794B
Authority
TW
Taiwan
Prior art keywords
volatile
microprocessor
energy
processing core
state
Prior art date
Application number
TW104118737A
Other languages
English (en)
Other versions
TW201643605A (zh
Inventor
邱瀝毅
簡才淦
李章嘉
Original Assignee
國立成功大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立成功大學 filed Critical 國立成功大學
Priority to TW104118737A priority Critical patent/TWI522794B/zh
Application granted granted Critical
Publication of TWI522794B publication Critical patent/TWI522794B/zh
Priority to CN201610186154.3A priority patent/CN106249840A/zh
Priority to US15/161,368 priority patent/US10089182B2/en
Publication of TW201643605A publication Critical patent/TW201643605A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Description

節能非揮發性微處理器
本發明係關於處理器之技術領域,尤指一種節能非揮發性微處理器,其具有一處理核心,該處理核心的一記憶體映像包含一重置入口及一系統狀態復原入口,該系統狀態復原入口處係導向一期望的處理程序,當一電源回復正常時,該處理核心由該系統狀態復原入口處開始執行,俾執行該期望的處理程序,以克服微處理器在不同應用狀況下所產生的不同系統狀態復原例外狀況。該節能非揮發性微處理器利用一系統狀態分割(System States Partition,SYSPA)方法,以當該電源異常時,該處理核心僅儲存編程人員可視狀態,如此可大幅節省非揮發性正反器陣列的面積與儲存所需的能耗。另一進一步節能方法係將儲存致能暫存器中致能訊號為「真」的位元對應的周邊模組的系統狀態儲存至非揮發性正反器陣列。
隨著低功率積體電路設計的發展,現代人的生活中充斥著各種新型態的電子設備及應用情境。例如:穿戴式裝置(Wearable Devices)、植入式裝置(Implantable Devices)、環境感測器(Ambient Sensors)、智慧家庭設施(Home Automation)、無線人體區域網路 (Wireless Body Area Networks,WBAN)、及物聯網(Internet of Things,IoT)等等。這些類型的電子設備根據應用情境不同,系統所需要的功能與需求也會隨之改變。因此,特定為某一應用而設計特定應用積體電路(Application Specific Integrated Circuits,ASIC)是不敷成本的。而微處理器(Microprocessor)可以透過編程運行的嵌入式程式(Embedded Software)以及改變與微處理器合作運行模組的配置,而可符合不同應用情境下的系統需求。故在上述應用中,通常會採用微處理器作為系統的運作核心。
透過分析上述的應用情境,可以發現上述的應用模式通常會是週期性的工作,並且在一個週期內,系統實際運行的時間相較於閒置的時間短上許多。例如無線人體區域網路應用中,其所使用感測器(Sensors)的採樣率(Sample Rates)大多為數赫茲到數千赫茲的範圍。因此稱上述類型的應用為低工作週期型應用(Low Duty-cycle Applications)。
在低工作週期型應用中,大部分時間微處理器係處在閒置狀態(Idle State)。一般而言,系統通常會採用電池或獵能技術(Energy Harvesting)作為電力來源。因此如何降低系統的功率消耗以延長電池使用時間(Battery Lifetime)、及利用有限的擷取能源維持系統運作,是微處理器中相當重要的設計議題。
在目前常見的低功率微處理器設計中,有許多技術可以有效地降低動態功率消耗。例如:時脈閘控電路(Clock Gating)技術、動態電壓頻率調變技術(Dynamic Voltage Frequency Scaling)、特殊設計的標 準元件庫(Standard Cell Library)。一般而言系統的總功率消耗可分為動態功率消耗(Dynamic Power Consumption)與靜態功率消耗(Static Power Consumption)。然而在低工作週期型應用中,系統在大部分的時間都處在閒置或待機狀態,導致系統的靜態功率消耗會佔據大部分的系統總能量消耗,因此如何有效降低系統的靜態功率消耗會比降低系統動態功率消耗來的重要。
在降低靜態功率消耗的技術中,有效也廣為使用的方式之一是將系統的電源切斷。不論透過外部電源切斷(External Power-off)或採用電源閘控制(Power Gating)技術將虛擬電壓源(Virtual VDD)關閉,都能有效降低功率消耗,達到減少靜態功率消耗的目的。但是電源切斷的行為會導致系統內部的正反器(Flip-flop)與靜態隨機存取記憶體(SRAM)所儲存的資料流失進而造成系統狀態(System States)流失。因此當微處理器需要從電源切斷的模式回復到工作狀態時,必須重新執行一次開機程序(Booting Process)。根據微處理器系統的複雜程度,開機程序通常耗時數百微秒到數秒。在這段開機程序中系統所消耗的能量與執行時間會造成很大的額外代價(Overhead)。
近幾年出現一種新型態的非揮發性微處理器(Nonvolatile Microprocessor),其係將新興非揮發性記憶體(Emerging Nonvolatile Memory)或非揮發性正反器(Nonvolatile Flip-Flop)置入系統中。並在系統即將電源切斷時,快速的將系統狀態儲存(Store)到新興非揮發性記憶體,接著進入電源切斷的模式節省靜態功率消耗。由於非揮發性記憶體有著斷電後內部儲存資料不會消失的特性。因此當系統需要回復到工作 狀態時,可以快速的從非揮發性記憶體中讀取並恢復(Restore)系統狀態,省下開機程序所需付出的額外代價,因此能夠克服靜態功率消耗與開機程序額外代價的問題。
由以上描述可知,非揮發性微處理器有著常閉瞬開運算(Normally-off Computing)的三項新穎特色:(1)待機零功率消耗(Zero Standby Power);(2)快速開-關機能力(Instant On-off Feature);(3)電力中斷抗性(Resilient to Power Failure)。
目前實現非揮發性處理器的方式主要分為主記憶體層級(Main Memory Level)實現方式、正反器/暫存器層級(Flip-flop/Register Level)實現方式、及主記憶體層級實現方式與正反器/暫存器層級實現方式的混合式實現方法。
主記憶體層級實現方式係將非揮發性記憶體放置在與主記憶體(Main Memory)相同層級處。由於非揮發性記憶體具備隨機存取(Random Access)、快速的存取速度以及儲存資料非揮發性。於M.Zwerg,A.Baumann,R.Kuhn,M.Arnold,R.Nerlich,M.Herzog,R.Ledwa,et al.等人在Proc.IEEE International Solid-State Circuits Conference Digest of Technical Papers(ISSCC),pp.334-36,2011所發表的「An 82uA/MHz Microcontroller with Embedded FeRAM for Energy-Harvesting Applications」論文中,其使用了鐵電式非揮發性隨機存取記憶體(FeRAM)同時作為系統上的資料記憶體(Data Memory)與程式記憶體(Program Memory)。因此微處理器的處理單元(Processing Unit)在進行儲存與恢復操作時,由於處理單元需透過匯流排(Bus)才能存取非揮發性 記憶體,而非揮發性記憶體的資料存取導致需要較多的時間與能量才能完成儲存與恢復操作。
正反器/暫存器層級(Flip-flop/Register Level)實現方式分為完全置換方法(Fully Replace)、及平行式比較並壓縮方法(Parallel Compare and Compress Codec,PaCC)。
完全置換方法係將完整的系統狀態用正反器/暫存器層級的方式儲存起來。於W.Yu,S.Rajwade,S.-E.Wang,B.Lian,G.-E.Suh,and E.Kan等人在Proc.International Conference on Dependable Systems and Networks Workshops(DSN-W),pp.75-80,2011所發表的「A non-volatile microcontroller with integrated floating-gate transistors」論文中,以Xilinx PicoBlaze為基準架構來實現非揮發性微處理器。其使用了989個浮閘式非揮發性正反器,以取代基準架構系統中所有的記憶元件。該記憶元件包含通用暫存器(General Purpose Registers,GPR)、便箋式快取(Scratch pad)、系統堆疊(Stack)、狀態暫存器(Conditional Register,Cond.)、指令暫存器(Instruction Register,Inst.reg.)與程式計數器(Program Counter,PC)等。且因為浮閘式非揮發性正反器需要較高的操作電壓(6V),所以額外加入了電力監控模組(Power Monitor)、非揮發性操作控制器(NV control)與電荷幫浦(Charge pumps)。
由於非揮發性正反器佔據很大的面積,導致完全置換方法的面積額外代價過大。於Y.Wang,Y.Liu,Y.Liu,D.Zhang,S.Li,B.Sai,M.-F.Chiang,and H.Yang.等人在Proc.Design,Automation Test in Europe Conference Exhibition(DATE),pp.1519-1524,2012所發表的「A Compression-based Area-efficient Recovery Architecture for Nonvolatile Processors」論文中,觀察到系統內部有超過80%的系統狀態在系統運行大部分的時間都與重置狀態(Reset State)相似。因此將系統狀態與事先設定好的狀態表(State-table)進行XOR運算比較後,由於狀態相似的原因會得到大量連續的0或1。此時平行式比較並壓縮方法(PaCC)即可透過長度編碼(Run Length Coding)演算法進行資料壓縮,並利用平行方式實現平行長度編解碼器(PRLC Codec),以減少需要使用的非揮發性正反器數量達成降低面積額外代價的目的。
於非揮發性邏輯儲存陣列方法(Nonvolatile Logic Array,NVL Array)之主記憶體層級實現方式與正反器/暫存器層級實現方式之間的混合式實現方法中,其利用數量較多個的小型集成式記憶體來保存系統狀態用以提高儲存與恢復操作的頻寬。於S.C.Bartling,S.Khanna,M.P.Clinton,S.R.Summerfelt,J.A.Rodriguez,and H.P.McAdams.等人在Proc.International Solid-State Circuits Conference Digest of Technical Papers(ISSCC),pp.432-433,2013所發表的「An 8MHz 75uA/MHz Zero-leakage Non-volatile Logic-based Cortex-M0 MCU SoC Exhibiting 100% Digital State Retention at VDD=0V with<400ns Wakeup and Sleep Transitions」論文中,使用Cortex-M0指令集架構並加入10個8x32位元的鐵電式非揮發性邏輯儲存陣列(FeRAM NVL Array),用以完整儲存系統中2537個正反器的狀態,在鐵電式非揮發性邏輯儲存陣列中也實現了自我測試電路及錯誤校正碼以增加系統的可測試性與可靠度。
上述與非揮發性微處理器相關的論文中,大多數只考量非揮發性微處理器硬體部分的設計。其係將非揮發性元件置換傳統揮發性記憶元件的角度出發。關於非揮發性微處理器在系統狀態復原後的運作方式,目前習知技術都是採用直接從儲存的時間點繼續運行的方式。然而在實際運行的系統中,微處理器通常並不會是獨立運行的硬體,而是會有一些與微處理器合作運行的模組,例如三軸加速器、溫度感測器…等。這些模組與微處理器間透過UART、SPI、I2C等通訊界面溝通。
而在某些系統應用中,微處理器擔任的工作是與現實世界時間相關的工作,例如路燈或看板的燈光控制。可以想見到當系統狀態被儲存到非揮發性儲存空間後,系統狀態相當於是被暫停在儲存當下的時間點。
因此當過了一段時間之後,系統進行了狀態復原動作。非揮發性微處理器本身所認知的時間仍然是處於儲存當下的時間點。此會造成非揮發性微處理器與其合作運行的模組之間通訊界面的未同步問題,或是在與現實時間相關的應用中,非揮發性微處理器所認知的時間與現實時間之間存在一個差距的問題。而這種通訊界面未同步與時間認知差異的問題,可能會導致系統狀態復原後的運作異常,其稱之為系統狀態復原例外狀況。這些例外狀況的產生,容易造成系統運作上的異常。
習知論文所提出的非揮發性微處理器實現方式,其均採用直接由系統狀態儲存時的地方開始運行。在這種直接運行的實現方式之下,由於無法確定系統復原後的程式進入點,因此也無法提供編程人員在系統狀態復原後插入一段處理程序。
圖2係習知非揮發性微處理器之狀態復原運作的示意圖。於標籤(1)處表示電源切斷前,系統執行至0xA200後面的位址處,此時系統先儲存系統狀態,然後再將電源切斷。於標籤(2)處表示電源恢復供電後,系統將儲存的系統狀態回復。於標籤(3)處表示由電源切斷前的執行位址接續執行程式,亦即由0xA200後面的相同位址處繼續執行。由於系統可能在任何時間點會面臨電源切斷的情況。因此電源切斷前的執行處並非固定的,故無法確定系統復原後的程式進入點。因此也無法提供編程人員在系統狀態復原後插入一段處理程序。同時非揮發性微處理器本身所認知的時間仍然是處於儲存當下的時間點。此會造成非揮發性微處理器與其合作運行的模組之間通訊界面的未同步問題、或是非揮發性微處理器所認知的時間與現實時間之間存在一個差距的問題。往往系統執行至標籤(4)處時,會產生不可預期的例外狀況,而導致系統操作失敗或不穩定,甚至當機。故習知非揮發性微處理器技術仍有很大的改進空間。
本發明之目的主要係在提供一節能非揮發性微處理器,其係利用一可程式化復原入口決策(Programmable Restore Entry Decision,PREDEC),可將一期望的處理程序(Expected Handling Process)放於一固定位址,以避免習知非揮發性微處理器與其合作運行的模組之間通訊界面的未同步問題、或是非揮發性微處理器所認知的時間與現實時間之間存在一個差距的問題。同時,該節能非揮發性微處理器利用一系統狀 態分割(System States Partition,SYSPA)方法,以當該電源異常時,一處理核心僅儲存編程人員可視狀態,如此可大幅節省非揮發性正反器陣列的面積與儲存所需的能耗。又該節能非揮發性微處理器利用一消除冗餘儲存的選擇性儲存機制(Selective Store for Eliminating Redundant Store,SESERS),以當該電源異常時,該處理核心僅將與一儲存致能暫存器中致能訊號為「真」的位元對應的周邊模組的系統狀態儲存至該非揮發性正反器陣列中,進而更可減少可該非揮發性正反器陣列的面積與儲存所需的能耗。
依據本發明之一特色,本發明提出一種節能非揮發性微處理器,包括一處理核心、一非揮發性正反器陣列(Flip-flop Array,ReFF Array)、及一組非揮發性互連結(Nonvolatile Interconnections)。該處理核心具有多數個系統狀態,其分類為編程人員可視狀態(Programmer Visible States)與編程人員不可視狀態(Programmer Invisible States)。該非揮發性正反器陣列(Flip-flop Array,ReFF Array)用以儲存資料,且所儲存之資料在一電源關閉時不會消失。該非揮發性互連結(Nonvolatile Interconnections)橋接該處理核心與該非揮發性正反器陣列。其中,當該電源異常時,該處理核心僅將該編程人員可視狀態經由該非揮發性互連結儲存至該非揮發性正反器陣列中。
依據本發明之另一特色,本發明提出一種節能非揮發性微處理器,其具有一處理核心,該處理核心的一記憶體映像(Memory Map)包含一重置入口(Reset Entry)及一系統狀態復原入口(System States Recovery Entry),該系統狀態復原入口處係導向一期望的處理程序 (Expected Handling Process),當一電源回復正常時,該處理核心會先判斷通訊介面的非揮發性暫存器內是否有斷電前未傳輸完成的資料,若是則由該系統狀態復原入口處開始執行,俾執行該期望的處理程序,以克服微處理器在不同應用狀況下所產生的不同系統狀態復原例外狀況。
100‧‧‧節能非揮發性微處理器
105‧‧‧處理核心
110‧‧‧非揮發性正反器陣列
115‧‧‧非揮發性互連結
120‧‧‧非揮發性操作控制器
125‧‧‧通訊匯流排
130‧‧‧基礎時脈控制模組
135‧‧‧電阻隨機存取記憶體
140‧‧‧電阻隨機存取記憶體唯讀記憶體
145‧‧‧16位元乘法器
150‧‧‧實時計數器
155‧‧‧通用輸入/輸出介面
160‧‧‧串列埠
165‧‧‧看門狗計時器及特殊功能暫存器
170‧‧‧記憶體保護模組
175‧‧‧除錯埠
161‧‧‧通用非同步收發傳輸器
162‧‧‧序列周邊介面
163‧‧‧交互整合電路
106‧‧‧儲存致能暫存器
300‧‧‧可程式化復原入口決策
310‧‧‧重置入口
320‧‧‧系統狀態復原入口
330‧‧‧期望的處理程序
L701,L703,L705,L707,L711,L713,L721,L731‧‧‧標籤
L901,L911,L913,L921,L923,L915,L917,L931‧‧‧標籤
圖1係本發明之節能非揮發性微處理器的系統方塊圖。
圖2係習知非揮發性微處理器之狀態復原運作的示意圖。
圖3係本發明處理核心的執行程序一記憶體映像之示意圖。
圖4係本發明可程式化復原入口決策之虛擬碼的示意圖。
圖5係本發明與習知技術以通用非同步收發傳輸器為例之比較示意圖,其中(A)係通用非同步收發傳輸器的傳輸協定之示意圖,(B)係習知回復方法之示意圖,(C)係本發明回復方法之示意圖。
圖6係本發明使用系統狀態分割及消除冗餘儲存的選擇性儲存機制的示意圖。
圖7係本發明與習知技術的系統儲存操作流程圖之比較示意圖。
圖8係本發明與習知技術的系統儲存操作時間之模擬比較示意圖。
圖9係本發明與習知技術的系統恢復操作流程圖之比較示意圖。
圖10係本發明與習知技術的系統恢復操時間之模擬比較示意圖。
圖11係本發明與習知技術的系統儲存能量消耗之模擬比較示意圖。
圖12係本發明與習知技術的系統恢復操作能量消耗之模擬比較示意圖。
圖13係本發明與習知技術的面積額外代價之模擬比較示意圖。
圖14係本發明與習知技術的性能指標(模式轉換能耗、喚醒延遲與面積乘積的倒數)之比較示意圖。
圖15係本發明與習知技術在閒置時能量消耗的比較示意圖。
圖16係本發明與全域時脈閘控技術在閒置時能量消耗的比較示意圖。
圖17係本發明與習知完全置換方法在ECG情境應用中系統回復操作時的資料傳輸正確率之比較示意圖。
圖18係本發明與習知完全置換方法在ECG情境應用中的工作時間之比較示意圖。
圖19係本發明與習知完全置換方法在ECG情境應用中的總能量消耗之比較示意圖。
圖1係本發明一種節能非揮發性微處理器100的系統方塊圖。該節能非揮發性微處理器100包括一處理核心105、一非揮發性正反器陣列(Flip-flop Array)110、一組非揮發性互連結(Nonvolatile Interconnections)115、一非揮發性操作控制器(Nonvolatile Operation Controller,NV-CTRL)120、一通訊匯流排125、一基礎時脈控制模組(Basic Clock Module,BCM)130、一電阻隨機存取記憶體(Resistive Random-Access Memory,ReRAM)135、一電阻隨機存取記憶體唯讀記憶體(Resistive Random-Access Memory Read-Only Memory,ReRAM ROM)140、一16位元乘法器145、一實時計數器(RTC)150、一通用輸入/輸出介面(General Purpose Input/Output,GPIO)155、一串列埠160、一看門狗計時器及特殊功能暫存器(Watch Dog Timer and Special Function Register,WDT SFR)165、一記憶體保護模組(Memory Protected Module)170及一除錯埠175。
該串列埠160包含一通用非同步收發傳輸器(Universal Asynchronous Receiver Transmitter,UART)161、一序列周邊介面(Serial Peripheral Interface Bus,SPI)162、及一交互整合電路(Inter-Integrated Circuit,I2C)163等串列埠介面。
為解決習知技術於電源切斷前的執行位址接續執行程式所產生的問題,本發明提出一可程式化復原入口決策(Programmable Restore Entry Decision,PREDEC)。圖3係本發明處理核心的執行程序一記憶體映像(Memory Map)之示意圖,其中,該處理核心105的記憶體映像包含一重置入口(Reset Entry)310及一系統狀態復原入口(System States Recovery Entry)320。該系統狀態復原入口320係導向一期望的處理程序(Expected Handling Process)330。
微處理器開機程序雖然會因為微處理器系統中的核心、架構以及應用不同而會有些微差異。但一般而言開機程序會依序完成以下的任務:(A)偵測並初始化系統周邊模組(Identifying and Initializing System Peripheral);(B)設定系統堆疊(Setting-up the Stack);(C)初始化系統全域變數(Initializing System-wide Variables in Memory);(D)進行系統診斷及系統完整性確認(Performing Diagnostics and Integrity Check-up);(E)載入作業系統或使用者應用程式(Loading an Operating System or Other Type Program)。
微處理器開機程序的實現方式是將可完成上述任務的軟體程序燒錄到核心可存取的非揮發性記憶體中。當微處理器系統進行重置之後,再將核心執行程序導引到開機程序所在的位址,此導引執行程 序的步驟稱為重置位址識別(Reset Address Identification)。而目前較常見的重置位址識別作法分為兩種,一為跳躍對照表(Jump Table)、另一以及自動向量導引(Auto-vector)。於本發明中,該處理核心105的一重置位址識別(Reset Address Identification)方法係一為自動向量導引(Auto-vector)。
當該節能非揮發性微處理器100正常啟動時,該處理核心105由該重置入口處310開始執行完整開機程序。如圖3所示,正常重置後,該處理核心105的一程式計數器(Program Counter,PC)先指向位址0xFFFE處並執行,此時程式計數器(PC)會被導引至位址0xA000,以執行初始化相關工作。當執行完初始化相關工作後,程式計數器(PC)會被導引至位址0xA200處,以執行相關應用程式。
於本發明提出的可程式化復原入口決策中,本發明的期望的處理程序330可放於一固定位址。於本實施例中,本發明的期望的處理程序330係放置於初始化工作之後、一般應用程式之前,即圖3的0xA100位址處。於其他實施例中,本發明的期望的處理程序330亦可放置於0xA102位址處;另外,圖3中所有執行程序的記憶體位址可由編程者自行決定。
當該處理核心105執行相關應用程式時,遇到電源異常或是要求進入省電模式等情況,如圖3中標註(1)所示。此時本發明的該處理核心105儲存相關的系統狀態,例如編程人員可視狀態(Programmer Visible States)至非揮發性正反器陣列110。
如圖3中標註(2)所示,當該電源回復正常時,由於此時系統並不是正常的開機,故該處理核心105由該系統狀態復原入口處320開始執行。該處理核心105中可設置一非揮發性的旗標,即可判定該處理核 心105是否正常的開機。如圖3中標註(3)所示,該處理核心105經由該系統狀態復原入口320處,即可執行該期望的處理程序330,以克服微處理器在不同應用狀況下所產生的不同系統狀態復原例外狀況。
圖4係本發明可程式化復原入口決策300之虛擬碼的示意圖。如圖4所示可知,該處理核心105經由執行該期望的處理程序330,可克服微處理器在不同應用狀況下所產生的不同系統狀態復原例外狀況。之後,如圖3中標註(4)所示,該處理核心105執行預期的處理程序後,便能繼續電源切斷前的操作。亦即在進入系統復原進入點繼續執行前,本發明先執行該期望的處理程序330,以排除各種可能的例外狀況,此可增加系統的強健性(Robustness)。
圖5係本發明與習知技術以通用非同步收發傳輸器(UART)為例之比較示意圖。圖5之(A)係通用非同步收發傳輸器(UART)的傳輸協定之示意圖。該傳輸協定中,一傳輸框(Frame)包含一起始位元(Start bit)、8個資料位元、及一個終止位元(Stop bit)。圖5之(B)係習知回復方法之示意圖,其係從原先系統復原進入點繼續執行。習知的非揮發性微處理器當通用非同步收發傳輸器(UART)傳輸到一半時遇到電力中斷情況,會將系統狀態儲存到非揮發性記憶體中。之後,在電力恢復後進行系統恢復操作並直接開始運行。然而在電力中斷之後,因為非揮發性微處理器系統與外部的傳輸介面於電力中斷前的傳輸已中斷,直接運行的作法會使得非揮發性微處理器驅使通用非同步收發傳輸器(UART)介面傳出在電力中斷前尚未傳送的資料,而在接收端會認定為是全新一組傳送的資料,造成兩邊的溝通不符合協定而產生框架錯誤(Frame Error)。
圖5之(C)係本發明回復方法之示意圖。在電力恢復後,本發明先執行該可可程式化復原入口決策300。該可程式化復原入口決策300中,可透過程式檢查是否有UART傳輸到一半被中斷的情況。若有,則採取對應的處理方式,將被中斷的傳輸重新啟動,以傳送完整的框架,如此即可解決因電力中斷造成的傳輸錯誤問題。
請再參閱圖1,該非揮發性正反器陣列110用以儲存資料,且所儲存之資料在一電源關閉時不會消失。該非揮發性正反器陣列110係為一電阻式非揮發性正反器陣列(Resistive Flip-flop Array,ReFF Array)。該非揮發性互連結115橋接該處理核心105與該非揮發性正反器陣列110。其中,該處理核心105中的每一個該編程人員可視狀態均經由該非揮發性互連結115中的一條連結,而橋接至該非揮發性正反器陣列110的一非揮發性正反器。於其他實施例中,該非揮發性正反器陣列110可為其他非揮發性元件所組成的非揮發性正反器陣列。
非揮發性操作控制器120控制該非揮發性正反器陣列110、該電阻隨機存取記憶體135、及該電阻隨機存取記憶體唯讀記憶體140的寫入或讀取。
該基礎時脈控制模組130、該電阻隨機存取記憶體135、該電阻隨機存取記憶體唯讀記憶體140、該16位元乘法器145、該實時計數器150、該通用輸入/輸出介面155、該串列埠160、及該看門狗計時器及特殊功能暫存器165連接至該通訊匯流排125。該處理核心105可經由記憶體映射的方式而存取前述連接至該通訊匯流排125的元件或模組。上述連接至該通訊匯流排125的元件之運作係熟於該技術者基於本發明所揭露而能瞭解,故不再贅述。
於圖1所示之節能非揮發性微處理器100中,該非揮發性正反器陣列110、電阻隨機存取記憶體135、及電阻隨機存取記憶體唯讀記憶體140係屬於非揮發性(nonvolatile)元件。於本實施例中,該處理核心105以為相容的MSP430相容的處理核心為例。該處理核心105具有多數個系統狀態,其分類為編程人員可視狀態(Programmer Visible States)與編程人員不可視狀態(Programmer Invisible States)。
如圖3所示,本發明採用固定位址的系統狀態復原入口320,以讓非揮發性微處理器系統導向已知的狀態並正常的運行程式。因此必須保存下來的系統狀態是由指令操作所能更改的系統狀態,而非指令操作所能更改的系統狀態可不需被保存下來。故本發明提出一系統狀態分割(System States Partition,SYSPA),其將系統狀態分類為編程人員可視狀態(Programmer Visible States)與編程人員不可視狀態(Programmer Invisible States)。
該編程人員可視狀態係該處理核心105的指令集可以直接存取到的系統狀態,包括儲存陣列(Allocated Array)、周邊暫存器組態(Peripheral Registers Configurations)、暫存器檔案(Register Files)、已記錄資料(Logged Data)、及系統堆疊(System Stack)。而該編程人員不可視狀態為不可由指令操作所能更改的系統狀態,其包括有限狀態機的狀態(States Machines)、內部緩衝區(Buffers)、及同步元件(Synchronizers)。
當該電源異常時,該處理核心105僅將該編程人員可視狀態經由該非揮發性互連結115儲存至該非揮發性正反器陣列110中。當該電源回復正常時,該處理核心105利用該非揮發性正反器陣列110中儲存 的該編程人員可視狀態資料,以回復該處理核心105的該編程人員可視狀態。
以相容的MSP430微處理器為基準。基準的相容MSP430微處理器中原本1120位元的系統狀態可分成761位元的編程人員可視狀態與359位元的編程人員不可視狀態。本發明只需要將編程人員可視狀態儲存到非揮發性儲存空間,例如本發明的非揮發性正反器陣列110。經由本發明的系統狀態分割(SYSPA),即可有效減少32%系統所需要使用到的非揮發性正反器的數量,如圖6所示。據此可降低實現非揮發性微處理器時所需付出的額外面積代價以及儲存時的能量消耗。
在現代的微處理器系統中,除了處理核心之外,通常也會包含許多的周邊模組(Peripheral Modules)。例如在本發明的節能非揮發性微處理器100中也包含了16位元乘法器145、實時計數器150、通用輸入/輸出介面155、串列埠160、看門狗計時器及特殊功能暫存器165及記憶體保護模組170等周邊模組。
在微處理器應用中,通常不會使用到所有的周邊模組。而未使用到的周邊模組中的系統狀態在程式運行過程中不會被改變。因此其會與重置狀態相同。即使不對這些未改變的系統狀態進行儲存的動作,對非揮發性微處理器系統的運行不會有任何影響。因此在本發明中將其稱為冗餘儲存操作(Redundancy Store Operation)。
為了解決冗餘儲存操作的產生,本發明提出一消除冗餘儲存的選擇性儲存機制(Selective Store for Eliminating Redundant Store,SESERS)。於本發明的消除冗餘儲存的選擇性儲存機制中,本發明的處理核心105更包含一儲存致能暫存器(Store-Enable Register)106。該儲存致能暫存器106中的每個位元分別對應到多數個周邊模組的一個周邊模 組的系統狀態儲存的致能訊號。該儲存致能暫存器106可提供相關資訊提供給非揮發性微處理器100。該相關資訊可例如為在目前運行的程式中使用到那些周邊模組。依據該儲存致能暫存器106所提供的相關資訊,即可清楚地得知周邊模組在應用中是否有被使用到的。
以本發明的節能非揮發性微處理器100而言,本發明的儲存致能暫存器106中的位元0可對應至該16位元乘法器145、位元1可對應至該實時計數器150、位元2可對應至該通用輸入/輸出介面155、位元3可對應至該通用輸入/輸出介面161、位元4可對應至該序列周邊介面162、位元5可對應至該交互整合電路163、位元6可對應至該看門狗計時器及特殊功能暫存器165等,依序類推,不再贅述。
亦即當儲存致能暫存器106中的位元0為「1」(亦即為「真」)時,表示該16位元乘法器145已有被使用。當該電源異常時,該處理核心105僅將與該儲存致能暫存器106中致能訊號為真的位元對應的周邊模組的系統狀態儲存至該非揮發性正反器陣列110中。總和上列周邊模組中的狀態,可發現當有五個周邊模組的儲存致能訊號皆關閉或是不為「真」時,所需要儲存的系統狀態數量可大幅降低71%,如圖6所示。
以本發明之儲存致能暫存器106,編程人員可以透過記憶體映射(Memory Mapping)的方式,使用簡單的指令操作即可改變此儲存致能暫存器106內的資料並控制非揮發性微處理器100中周邊模組的儲存致能訊號,觀測儲存致能暫存器內的資料以削減冗餘儲存操作產生的次數。
圖6係本發明使用系統狀態分割(SYSPA)及消除冗餘儲存的選擇性儲存機制(SESERS)的示意圖。如圖6所示,基準相容的MSP430微處理器中原本1120位元的系統狀態。依據本發明的系統狀態分割可將 該1120位元的系統狀態分成761位元的編程人員可視狀態與359位元的編程人員不可視狀態。本發明的系統狀態分割只將761位元的編程人員可視狀態儲存至該非揮發性正反器陣列110中。所以可減少32%的非揮發性正反器。當再使用本發明的消除冗餘儲存的選擇性儲存機制,將不致使的該16位元乘法器145、通用輸入/輸出介面155、實時計數器150、通用非同步收發傳輸器161、及序列周邊介面162於儲存致能暫存器106相關位元設為「0」(亦即為「假」),此時,如圖6所示,可減少71%的非揮發性正反器。
習知的完全置換方法(Fully Replacement)需要將完整的系統狀態皆儲存到電阻式非揮發性正反器陣列中。因此電阻式非揮發性正反器陣列中需要包含1120位元的非揮發性儲存空間,亦即需要包含1120個電阻式非揮發性正反器。
習知的平行式比較並壓縮方法(PaCC)會將完整的系統狀態透過編解碼器(Codec)進行壓縮後,再將壓縮後的編碼(Code)儲存到電阻式非揮發性正反器陣列中。而1120位元的系統狀態經壓縮後為399位元,故只需399位元的非發揮性儲存空間即可保存編碼。
習知的非揮發性邏輯儲存陣列方法(NVL Array)會將所有的系統狀態儲存到9個8*16位元的電阻式非揮發性邏輯儲存陣列(ReRAM NVL Array)中。
本發明所提出的非發揮性微處理器實現方式,只將透過系統狀態分類後的編程人員可視狀態儲存到電阻式非揮發性正反器陣列中,因此需要761位元的非揮發性儲存空間。
圖7係本發明與習知技術的系統儲存操作流程圖之比較示意圖。於圖7中,其係本發明與習知的完全置換方法、平行式比較並壓縮 方法、非揮發性邏輯儲存陣列方法的系統儲存操作流程圖。由非揮發性操作控制器接收電力中斷要求(Power-off Request)訊號開始(標籤L701),到系統完成儲存操作並拉起可接受電力切斷的訊號(標籤L731)為止。在儲存操作的運作流程上,完全置換方法與本發明提出的方法的流程相同,接受到電力中斷要求訊號(標籤L701)後,於標籤L703中,控制器啟動儲存操作程序,以將系統狀態透過非揮發性互連結寫入電阻式非揮發性正反器陣列的非發揮性正反器中(標籤L705)。接著於標籤L707中,進行非揮發性正反器的元件儲存操作(NVFF Store),將非揮發性正反器中的電路儲存值寫入非揮發性元件中,在寫入非揮發性元件之後,即完成系統儲存程序並拉起可接受電力中斷的訊號(標籤L731)。若使用平行式比較並壓縮方法的流程在啟動儲存操作程序(標籤L703)後,需花費約M個時脈(在實施例中約300個時脈)的時間進行系統狀態的壓縮(標籤L711)。在壓縮的過程中會不斷將部分壓縮後的編碼寫入電阻式非揮發性正反器陣列中,在整個狀態壓縮程序與壓縮後編碼寫入完成後,再進行非揮發性正反器的元件儲存操作(標籤L713),接著即完成系統儲存操作的程序。若使用非揮發性邏輯儲存陣列方法啟動儲存操作程序後,由於電阻式非揮發性邏輯儲存陣列包含8個字線各16位元的儲存空間,因此需要8個時脈將系統狀態寫入(標籤L721)。完成後由於電阻式非揮發性邏輯儲存陣列本身即為非揮發性的儲存空間,因此不需要額外的元件儲存操作即可完成系統儲存操作程序。
圖8係本發明與習知技術的系統儲存操作時間之模擬比較示意圖。於系統儲存操作時間的模擬中,其採用Synopsys公司的VCS模擬器配合Nanosim模擬器進行共同模擬(Co-simulation)。模擬使用的檔案在標準元件庫部分使用的是合成後(Post Synthesis)的網表(netlist),全 客戶式設計(Full Custom Design)的部分使用的是佈局後(Post Layout)並萃取電阻電容(RC Extraction)後的spice網表。在本發明與習知的完全置換方法(Fully Replacement)、平行式比較並壓縮方法(PaCC)、非揮發性邏輯儲存陣列方法(NVL Array)皆實現到採用電阻式記憶體的相容的MSP430實驗驗證平台上,該相容的MSP430實驗驗證平台以20MHz的時脈運行。在相同非揮發性記憶元件以及微處理器架構的基準點上進行比較與分析。
由圖8的系統儲存操作時間之模擬比較示意圖可知,完全置換方法與本發明的方法由於流程相似,因此在系統儲存操作時間上是相近的。而非揮發性邏輯儲存陣列方法由於是在主記憶體層級與正反器/暫存器層級的混合式實現方式,在儲存時的平行度比起完全置換與本發明提出的方式低,因此時間較長一些。在平行式比較並壓縮方法中,狀態壓縮的過程往往消耗過多的時脈數。
圖9係本發明與習知技術的系統恢復操作流程圖之比較示意圖。在系統恢復操作分析中,從非揮發性微處理器系統電源開啟重置(Power On Reset,POR)開始(標籤L901),直到程式開始執行為止。在系統恢復操作流程上,完全置換方法與本發明所提出的方法流程相同,在電源開啟重置之後,將系統狀態從非揮發性正反器的非揮發性元件部分恢復到揮發性的電路(標籤L911)。接著將電阻式非揮發性正反器陣列中的系統狀態恢復至非揮發性微處理器系統中一般操作時運行的正反器與暫存器中(標籤L913),最後完成恢復操作並進行運行的初始化(標籤L915),接著釋放內部的重置訊號並開始運行程式(標籤L917)。
若使用平行式比較並壓縮方法的流程在電源開啟重置之後,同樣將系統狀態從非揮發性正反器的非揮發性元件部分恢復到揮發 性的電路(標籤L921)。接著耗費約L個時脈(在實施例中為80個時脈)的時間進行解壓縮並同時將系統狀態恢復至非揮發性微處理器系統中一般操作時運行的正反器與暫存器中(標籤L923),解壓縮與恢復的動作完成後,即可進行初始化並開始執行程式(標籤L915、標籤L917)。
若使用非揮發性邏輯儲存陣列方法於電源開啟重置之後,需耗費N個時脈(在實施例中為8個時脈)的時間將系統狀態由電阻式非揮發性邏輯儲存陣列讀取出來並恢復至非揮發性微處理器系統中一般操作時運行的正反器與暫存器中(標籤L931),接著即可進行初始化並開始執行程式(標籤L915、標籤L917)。
於本實施例中,使用非揮發性正反器陣列是為避免非揮發性元件良率議題才需額外設置。於其他實施例或正式量產時,由於揮發性元件的良率穩定,則非揮發性正反器可以直接置換微處理器內編程人員可視狀態的揮發性正反器,故而,標籤L705、L913的執行程序可因此省略。
圖10係本發明與習知技術的系統恢復操時間之模擬比較示意圖。完全置換方法與本發明提出的方法由於流程相同,因此在系統回復操作時間上是相同的。而非揮發性邏輯儲存陣列方式由於層級關係仍然較長一些。同樣的在平行式比較並壓縮方法中,雖然解壓縮速度比起壓縮快上一些,但仍是比其他方式多耗費十幾倍的時間,如圖10所示。
圖11及圖12係本發明與習知技術的系統儲存與恢復操作能量消耗之模擬比較示意圖。將能量消耗分為兩個部分,一部分是非揮發性元件所消耗的能量,包含32KB的電阻式隨機存取記憶體與電阻式非揮發性正反器陣列的能量消耗,其餘部分的能量消耗則是屬於揮發性電路所消耗的能量。系統儲存與恢復操作能量消耗的模擬其模擬器採用標 準元件庫流程的部分利用Synopsys公司的PrimeTime PX進行能量消耗的估算。全客戶式設計的部分則是利用Synopsys公司Nanosim的Current Report進行能量消耗的估算。
在系統儲存操作能量分析中,系統在儲存操作時消耗的能量大部分都集中在非揮發性元件的儲存操作上,可看出大部分實現方式在非揮發性區域(Nonvolatile Region)所消耗的能量遠大於揮發性區域(Volatile Region),如圖11所示。因此本發明提出的方式由於直接減少所需要使用的非揮發性正反器的數量,可發現比起完全置換方法在非揮發性區域的能量消耗有明顯下降,並在整體能量消耗達到21.4%的下降。若在系統周邊模組皆不使用的情況下,更可透過削減冗餘儲存操作的方式,減少需要進行儲存的非揮發性正反器數量,大幅降低非揮發性區域的能量消耗,達到比完全置換方法減少53%的最小的能量消耗情況。而非揮發性邏輯儲存陣列方法是屬於主記憶體層級與正反器/暫存器層級的混合式實現方式,由於實現層級上的特性導致非揮發性邏輯儲存陣列方法的儲存能量消耗會多於完全置換方法。另外在平行式比較並壓縮方法的揮發性區域與非揮發性區域的能量消耗比例不同於其它方法,在非揮發性區域的能量消耗較其它方法來得少是由於壓縮後需要進行儲存操作的非揮發性正反器數量較少,然而壓縮操作進行過程會存取系統內部的正反器與暫存器並耗費較長的時間,導致額外的揮發性區域能量消耗產生。
在系統恢復操作能量消耗分析中,由於非揮發性正反器在進行恢復操作時不需改變非揮發性元件狀態,因此大部分實現方式之非揮發性區域的能量消耗較揮發性區域低,如圖12所示。而本發明提出的方法由於在系統恢復操作過程中使用的非揮發性正反器及改變資料的一 般操作用正反器與暫存器之數量比完全置換方法少,因此在揮發性區域與非揮發性區域的能量消耗皆有一定程度的下降,整體比較可達到36.3%的下降。而非揮發性邏輯儲存陣列方法由於記憶體電路存取操作使得恢復操作時間較長,因此非揮發性邏輯儲存陣列消耗能量比由揮發性正反器中恢復狀態高,對於非揮發性區域的能量消耗比其它實現方式高上許多。而在平行式比較並壓縮方法仍面臨到與系統儲存操作時相同的問題,雖然大幅降低非揮發性區域的能量消耗,但在解壓縮過程的時間較長,但在解壓縮運算的揮發性元件的能量消耗過大,導致整體的能量消耗比起其它實現方式大上許多。
圖13係本發明與習知技術的面積額外代價之模擬比較示意圖。在面積額外代價分析中,係比較各實現方式完成的非揮發性微處理器與基準相容的MSP430微處理器架構之間元件面積(Cell Area)的差異。其使用Synopsys公司的Design Compiler中的面積分析報告(Area Report)中的數據。如圖13所示,完全置換方式由於屬於正反器/暫存器層級的實現方式且需要最多的電阻式非揮發性正反器,因此造成最高的額外面積代價。非揮發性邏輯儲存陣列方法雖然需儲存的系統狀態數量與完全置換方法相同,但由於屬於主記憶體層級與正反器/暫存器層級之間的混合式實現方式,透過非揮發性互連結共用與儲存空間集成的特性,面積額外代價比起完全置換方法低21%。而平行式比較並壓縮方法透過資料壓縮的方式由於大幅度的減少需要使用到的電阻式非揮發性正反器數量且所需的額外硬體模組面積並不大,因此比起完全置換方法可減少51%的額外面積代價。本發明提出的方法透過系統狀態分類方法降低所需儲存的系統狀態數量,在不需要額外硬體模組的情況下仍能降低 所需使用到的電阻式非揮發性正反器數量,因此比起完全置換方法減少了42%的面積額外代價。
綜合圖8、圖10、圖11、圖12、圖13,可發現不同的非揮發性微處理器實現方式在系統儲存與恢復操作時間、系統儲存與恢復操作能量消耗及面積額外代價上有不同的表現。為了比較各實現方式的優劣必須有作為比較標準的綜合性能指標。對一非揮發性微處理器系統而言,系統儲存操作與恢復操作時間的和越小的話,越有機會切入電源切斷模式節省靜態功率消耗,而其中的系統恢復操作時間(Trestore)長短更會影響到系統快速喚醒的能力。而系統儲存與恢復操作能量消耗(Estore,Erestore)越低的話,越能在較短的閒置時間內達到節省的靜態功率消耗比付出的系統儲存與恢復操作能量總和多,以達到節能的目的。面積額外代價(Â)則會直接影響到製造(Fabrication)的成本。綜合以上各項數值的影響,本發明提出非揮發性微處理器的性能指標(Figure of Merit)稱為能耗、喚醒延遲時間及面積乘積的倒數(Reciprocal of Energy Delay Area Product,REDAP),其公式如下: 將各實現方式的數據帶入公式(1)中計算,可獲得能源延遲及面積乘積的倒數。圖14係本發明與習知技術的性能指標(模式轉換能耗、喚醒延遲與面積乘積的倒數)之比較示意圖。能源延遲及面積乘積的倒數之值越高係代表綜合性能指標越佳。如圖14所示,本發明提出的實現方式比起其它實現方式有較好的表現。
圖15係本發明與習知技術在閒置時能量消耗的比較示意圖。於圖15中,其係比較本發明、習知技術、與全域時脈閘控設計(Global Clock Gating)之低功率技術於閒置時的能量消耗。此處閒置時間係為工作狀態轉換至待機狀態的過渡時間加上系統待機狀態的時間,再加上待機狀態轉換至工作狀態的過渡時間。因此閒置時間能量消耗(Idle-time Power Consumption)為工作狀態轉換至待機狀態的過渡時間的能量消耗(Transition Power)加上在待機狀態的能量消耗(Standby Power),再加上待機狀態轉換至工作狀態的過渡時間的能量消耗。
各揮發性微處理器實現方式由於以電力切斷做為低功率模式,因此靜態能量消耗可估算為0mW,其主要能量消耗係在於工作狀態轉換至待機狀態的過渡時間的能量消耗、及待機狀態轉換至工作狀態的過渡時間的能量消耗。而採用全域時脈閘控的微處理器的系統休眠與喚醒操作時間接近本發明的方法,並且由於不須操作非揮發性元件,因此有較低的休眠操作與喚醒操作功率。但是全域時脈閘控的方式無法完全避免靜態功率消耗,因此仍有一定程度的待機功率。隨著閒置時間的拉長,其所累積起來的待機狀態能量消耗會越來越大,因此加總起來的閒置時間能量消耗也會大於非揮發性微處理器。如圖15所示,當閒置時間大於64微秒(us)後,本發明的非揮發性微處理器的閒置時間能量消耗將會小於採用全域時脈閘控的微處理器的閒置時間能量消耗。即使是工作狀態轉換能量消耗最高的平行式比較並壓縮方法實現的非揮發性微處理器也可在1毫秒後有優於採用全域時脈閘控的微處理器的閒置時間能量消耗表現。
常閉運算(Normally-off Computing,NoC)系統適合長時間處於閒置狀態的應用,因此,生物醫學檢測是其良好的應用。然而,生物醫學應用需要穩定的運行,以計算和紀錄相關數據的數據。這種情況適用於使用心電圖(ECG)數據壓縮。非揮發性微處理器可應用於 BIOPAC MP150儀器上,該儀器的採樣速率為每秒150ECG信號,該工作測試總計60秒。與相容的MSP430相容的非揮發性微處理器(NV-uP)使用長度編碼(Run Length Coding)進行心電數據壓縮,並將壓縮的心電數據存到緩衝區。當壓縮的心電數據快要大於緩衝區的大小時,儲存的數據會經由UART介面被發送到主機端。因為心電圖是低工作週期型應用(Low Duty-cycle Applications),待機模式與工作模式的時間比約為58倍。圖16係本發明與全域時脈閘控(Global Clock Gating)技術在閒置時能量消耗的比較示意圖。如圖16所示,本發明的設計與全域時脈閘控技術相比,可節省閒置時能量消耗約98%。
穩定的非揮發性微處理器(NV-uP)之再操作係被視為重要的考慮因素之一。於習知非揮發性微處理器系統中,若系統遇到電力中斷的情況則會產生圖5之(B)所描述的模組間通訊界面不同步而造成的系統狀態復原例外情況,造成部分資料傳輸動作未能正確完成,進而導致資料傳輸的穩定性下降。圖17係本發明與習知完全置換方法在ECG情境應用中系統回復操作時的資料傳輸正確率之比較示意圖。其係於1秒鐘模擬運行中,插入週期性的電力中斷情況。其分別是1毫秒、2毫秒、3毫秒、4毫秒、及5毫秒處的週期地產生斷電400微秒的電力中斷測試,其可顯示可程式化復原入口決策的影響。如圖17所示,本發明提出的非揮發性微處理器由於採用了可程式化復原入口決策,因此在週期性電力中斷的情況下仍能保持完整的資料傳輸正確性,而未採用可程式化復原入口決策的完全置換方式的非揮發性微處理器在平均情況下則會有18%的心電訊號資料因為傳輸不完全而流失。由於習知技術均採用直接由系統狀態儲存時的地方開始回復系統運作,此種依賴著不可靠的軟體的回復系統運作方式,並未考量非揮發性微處理器與其合作運行的模組之間通訊界 面的未同步問題、或是非揮發性微處理器所認知的時間與現實時間之間存在一個差距的問題,因此習知非揮發性微處理器並不能有效地工作。
然而在生醫應用情境中,資料流失極有可能導致嚴重的後果。因此習知的完全置換方式的非揮發性微處理器必須以額外的軟體程序來解決資料流失的情況。一種補救的方法係採用回聲修正(Echo Correction)的方式來處理。亦即,每當微處理器透過UART介面傳送一筆資料到主控端後,主控端會回傳一筆與接收到的資料相同的回聲訊號。微處理器在接收到回聲訊號會確認是否與欲傳送的資料相同,如果相同則可進行下一筆資料傳送,若不相同則必須重新傳送一次。圖18係本發明與習知完全置換方法在ECG情境應用中的工作時間之比較示意圖。圖19係本發明與習知完全置換方法在ECG情境應用中的總能量消耗之比較示意圖。其分別是1毫秒、2毫秒、3毫秒、4毫秒、及5毫秒處的週期地產生斷電400微秒的電力中斷測試,習知完全置換方式的非揮發性微處理器並使用回聲修正(Echo Correction)的方式。如圖18、及圖19所示,使用回聲修正的方式雖然可以確保傳送資料的正確性,但額外的程序將使完全置換方法的非揮發性微處理器系統會比本發明的非揮發性微處理器多176%的時間處在工作模式(Active mode)下,並必須額外付出163%的總能量消耗。
由前述說明可知,本發明之目的主要係在提供一種節能非揮發性微處理器,其利用一可程式化復原入口決策,可將期望的處理程序330放於一固定位址,以避免習知非揮發性微處理器與其合作運行的模組之間通訊界面的未同步問題、或是非揮發性微處理器所認知的時間與現實時間之間存在一個差距的問題。該節能非揮發性微處理器利用一系統狀態分割方法,以當該電源異常時,該處理核心105僅將該編程人員可視狀態經由該非揮發性互連結 115儲存至該非揮發性正反器陣列110中,如此可大幅節省該非揮發性正反器陣列110的元件及面積。該節能非揮發性微處理器利用一消除冗餘儲存的選擇性儲存機制,以當該電源異常時,該處理核心105僅將與該儲存致能暫存器106中致能訊號為真的位元對應的周邊模組的系統狀態儲存至該非揮發性正反器陣列110中,進而更可減少該非揮發性正反器陣列110的元件及面積。
上述實施例僅係為了方便說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
100‧‧‧節能非揮發性微處理器
105‧‧‧處理核心
110‧‧‧非揮發性正反器陣列
115‧‧‧非揮發性互連結
120‧‧‧非揮發性操作控制器
125‧‧‧通訊匯流排
130‧‧‧基礎時脈控制模組
135‧‧‧電阻隨機存取記憶體
140‧‧‧電阻隨機存取記憶體唯讀記憶體
145‧‧‧16位元乘法器
150‧‧‧實時計數器
155‧‧‧通用輸入/輸出介面
160‧‧‧串列埠
165‧‧‧看門狗計時器及特殊功能暫存器
170‧‧‧記憶體保護模組
175‧‧‧除錯埠
161‧‧‧通用非同步收發傳輸器
162‧‧‧序列周邊介面
163‧‧‧交互整合電路
106‧‧‧儲存致能暫存器

Claims (15)

  1. 一種節能非揮發性微處理器,包括:一處理核心,具有多數個系統狀態,其分類為編程人員可視狀態與編程人員不可視狀態;一非揮發性正反器陣列,用以儲存資料,且所儲存之資料在一電源關閉時不會消失;以及一組非揮發性互連結,橋接該處理核心與該非揮發性正反器陣列,其中,當該電源異常時,該處理核心僅將該編程人員可視狀態經由該非揮發性互連結儲存至該非揮發性正反器陣列中。
  2. 如申請專利範圍第1項所述之節能非揮發性微處理器,其中,該非揮發性正反器陣列係為一電阻式非揮發性正反器陣列,或為其他非揮發性元件所組成的非揮發性正反器陣列。
  3. 如申請專利範圍第2項所述之節能非揮發性微處理器,其中,當該電源回復正常時,該處理核心利用該非揮發性正反器陣列中儲存的該編程人員可視狀態資料,以回復該處理核心的該編程人員可視狀態。
  4. 如申請專利範圍第1項所述之節能非揮發性微處理器,其中,該處理核心的一記憶體映像包含一重置入口及一系統狀態復原入口。
  5. 如申請專利範圍第4項所述之節能非揮發性微處理器,其中,該系統狀態復原入口處係導向一期望的處理程序。
  6. 如申請專利範圍第5項所述之節能非揮發性微處理器,其中,當該電源回復正常時,該處理核心由該系統狀態復原入口處開始執 行,俾執行該期望的處理程序,以克服微處理器在不同應用狀況下所產生的不同系統狀態復原例外狀況。
  7. 如申請專利範圍第4項所述之節能非揮發性微處理器,其中,當該節能非揮發性微處理器正常啟動時,該處理核心由該重置入口(Reset Entry)處開始執行完整開機程序。
  8. 如申請專利範圍第4項所述之節能非揮發性微處理器,其中,該處理核心的一重置位址識別方法係一為自動向量導引。
  9. 如申請專利範圍第1項所述之節能非揮發性微處理器,其中,節能非揮發性微處理器更包含多數個周邊模組,該處理核心包含一儲存致能暫存器,該儲存致能暫存器中的每個位元分別對應到該多數個周邊模組的一個周邊模組的系統狀態儲存的致能訊號。
  10. 如申請專利範圍第9項所述之節能非揮發性微處理器,其中,當該電源異常時,該處理核心僅將與該儲存致能暫存器中致能訊號為真的位元對應的周邊模組的系統狀態儲存至該非揮發性正反器陣列中。
  11. 如申請專利範圍第1項所述之節能非揮發性微處理器,其中,該編程人員可視狀態係該處理核心的指令集可以直接存取到的系統狀態,其包括儲存陣列、周邊暫存器組態、暫存器檔案、已記錄資料、及系統堆疊。
  12. 如申請專利範圍第1項所述之節能非揮發性微處理器,其中,該編程人員不可視狀態包括有限狀態機的狀態、內部緩衝區、及同步元件。
  13. 一種節能非揮發性微處理器,其具有一處理核心,該處理核心的一記憶體映像包含一重置入口及一系統狀態復原入口,該系統狀態復原入口處係導向一期望的處理程序,當一電源回復正常時,該處理核心會先判斷通訊介面的非揮發性暫存器內是否有斷電前未傳輸完成的資料,若是則由該系統狀態復原入口處開始執行,俾執行該期望的處理程序,以克服微處理器在不同應用狀況下所產生的不同系統狀態復原例外狀況。
  14. 如申請專利範圍第13項所述之節能非揮發性微處理器,其中,當該節能非揮發性微處理器正常啟動時,該處理核心由該重置入口處開始執行完整開機程序。
  15. 如申請專利範圍第13項所述之節能非揮發性微處理器,其中,期望的處理程序係位於該記憶體映像的固定位址處。
TW104118737A 2015-06-10 2015-06-10 節能非揮發性微處理器 TWI522794B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104118737A TWI522794B (zh) 2015-06-10 2015-06-10 節能非揮發性微處理器
CN201610186154.3A CN106249840A (zh) 2015-06-10 2016-03-29 节能非易失性微处理器
US15/161,368 US10089182B2 (en) 2015-06-10 2016-05-23 Energy-efficient nonvolatile microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104118737A TWI522794B (zh) 2015-06-10 2015-06-10 節能非揮發性微處理器

Publications (2)

Publication Number Publication Date
TWI522794B true TWI522794B (zh) 2016-02-21
TW201643605A TW201643605A (zh) 2016-12-16

Family

ID=55810437

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104118737A TWI522794B (zh) 2015-06-10 2015-06-10 節能非揮發性微處理器

Country Status (3)

Country Link
US (1) US10089182B2 (zh)
CN (1) CN106249840A (zh)
TW (1) TWI522794B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796935B (zh) * 2022-01-19 2023-03-21 宏碁股份有限公司 記憶體控制方法與記憶體儲存系統

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI522794B (zh) * 2015-06-10 2016-02-21 國立成功大學 節能非揮發性微處理器
US10877544B2 (en) * 2016-01-12 2020-12-29 Smart Modular Technologies, Inc. Memory management system with backup system and method of operation thereof
US11272367B2 (en) * 2017-09-20 2022-03-08 Bragi GmbH Wireless earpieces for hub communications
CN109144214B (zh) 2018-08-06 2022-05-03 交叉信息核心技术研究院(西安)有限公司 能量管理系统、方法、电子设备、装置及非易失处理器
TWI697797B (zh) * 2018-11-08 2020-07-01 瑞昱半導體股份有限公司 決定積體電路之電壓以及找出電壓與電路參數之關係的方法
CN111026676B (zh) * 2019-12-27 2023-08-01 中煤科工集团重庆研究院有限公司 利用存储单元地址携带时间信息的存储方法及存储系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157979A (en) * 1998-03-14 2000-12-05 Advanced Technology Materials, Inc. Programmable controlling device with non-volatile ferroelectric state-machines for restarting processor when power is restored with execution states retained in said non-volatile state-machines on power down
JP4421925B2 (ja) * 2004-03-30 2010-02-24 三星電子株式会社 不揮発性半導体記憶装置
US7639056B2 (en) * 2005-05-26 2009-12-29 Texas Instruments Incorporated Ultra low area overhead retention flip-flop for power-down applications
US20140075174A1 (en) * 2012-09-10 2014-03-13 Texas Instruments Incorporated Boot State Restore from Nonvolatile Bitcell Array
CN103064503B (zh) * 2012-12-24 2016-03-09 上海新储集成电路有限公司 片上系统及其缓存器
TWI522794B (zh) * 2015-06-10 2016-02-21 國立成功大學 節能非揮發性微處理器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796935B (zh) * 2022-01-19 2023-03-21 宏碁股份有限公司 記憶體控制方法與記憶體儲存系統
US12026373B2 (en) 2022-01-19 2024-07-02 Acer Incorporated System and method to control temperature in a memory device

Also Published As

Publication number Publication date
US10089182B2 (en) 2018-10-02
CN106249840A (zh) 2016-12-21
US20160364298A1 (en) 2016-12-15
TW201643605A (zh) 2016-12-16

Similar Documents

Publication Publication Date Title
TWI522794B (zh) 節能非揮發性微處理器
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
TW201510860A (zh) 多核心同步機制
Xu et al. Automated OS-level device runtime power management
JP2009187552A (ja) 電力制御システム及び電力制御方法
US20180276052A1 (en) Deadlock detector, system including the same and associated method
CN102467417B (zh) 计算机系统
US9317342B2 (en) Characterization of within-die variations of many-core processors
CN101901177B (zh) 多核微处理器及其除错方法
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US20130159750A1 (en) Method and apparatus for transitioning a system to an active disconnect state
WO2020093868A1 (zh) 多核芯片、系统,及其方法和存储介质
Ruffini et al. NORM: An FPGA-based non-volatile memory emulation framework for intermittent computing
TWI526817B (zh) 電腦系統、可適性休眠控制模組及其控制方法
CN110187922A (zh) 设置并验证bios参数的方法、装置、设备及存储介质
JP5336228B2 (ja) 複数のクロックドメインにおいて決定性を促進するテクニック
CN100555260C (zh) 主控底层管理平面的集成装置及方法
CN104423984A (zh) 在线升级方法和在线升级系统
CN114461142B (zh) 一种读写Flash数据的方法、系统、装置及介质
CN116010143A (zh) 一种休眠下自动喂狗的方法和储能系统
US10338664B2 (en) Control module for data retention and method of operating control module
US10782764B2 (en) Techniques of emulating an ACPI controller on a service processor
CN110377446A (zh) 一种异构混合内存系统异常恢复方法及装置
Eichler et al. Neverlast: Towards the Design and Implementation of the NVM-based Everlasting Operating System.
CN112506701B (zh) 一种基于三模lockstep的多处理器芯片错误恢复方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees