CN106249840A - 节能非易失性微处理器 - Google Patents
节能非易失性微处理器 Download PDFInfo
- Publication number
- CN106249840A CN106249840A CN201610186154.3A CN201610186154A CN106249840A CN 106249840 A CN106249840 A CN 106249840A CN 201610186154 A CN201610186154 A CN 201610186154A CN 106249840 A CN106249840 A CN 106249840A
- Authority
- CN
- China
- Prior art keywords
- volatile
- microprocessor
- energy
- flip
- storage
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 claims abstract description 122
- 239000000872 buffer Substances 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000002093 peripheral effect Effects 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 146
- 230000008569 process Effects 0.000 claims description 71
- 238000004134 energy conservation Methods 0.000 claims description 37
- 238000011084 recovery Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 43
- 238000007906 compression Methods 0.000 description 25
- 230000006835 compression Effects 0.000 description 25
- 238000013461 design Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 230000003068 static effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000015556 catabolic process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 9
- 238000005265 energy consumption Methods 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 230000001149 cognitive effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000008030 elimination Effects 0.000 description 5
- 238000003379 elimination reaction Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000003306 harvesting Methods 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 235000013599 spices Nutrition 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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/3062—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power 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)
Abstract
本发明提供了一种节能非易失性微处理器,其具有一处理核心、一非易失性正反器阵列、一组非易失性互连结、及一存储使能缓存器,当一电源回复正常时,处理核心会先判断通信接口的非易失性缓存器内是否有断电前未传输完成的数据,若是则由一系统状态复原入口处开始执行,以克服在不同应用状况下的不同系统状态复原例外状况。处理核心具有多个编程人员可视状态与编程人员不可视状态。当电源异常时,处理核心仅将该编程人员可视状态经由该非易失性互连结存储至该非易失性正反器阵列中,同时该处理核心仅将与该存储使能缓存器中使能信号为“真”的位对应的周边模块的系统状态存储至该非易失性正反器阵列。
Description
技术领域
本发明关于处理器的技术领域,尤指一种节能非易失性微处理器,其具有一处理核心,该处理核心的一存储器映像包含一重置入口及一系统状态复原入口,该系统状态复原入口处导向一期望的处理程序,当一电源回复正常时,该处理核心由该系统状态复原入口处开始执行,俾执行该期望的处理程序,以克服微处理器在不同应用状况下所产生的不同系统状态复原例外状况。该节能非易失性微处理器利用一系统状态分割(System StatesPartition,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)。
在低工作周期型应用中,大部分时间微处理器处在闲置状态(IdleState)。一般而言,系统通常会采用电池或猎能技术(Energy Harvesting)作为电力来源。因此如何降低系统的功率消耗以延长电池使用时间(BatteryLifetime)、及利用有限的撷取能源维持系统运作,是微处理器中相当重要的设计议题。
在目前常见的低功率微处理器设计中,有许多技术可以有效地降低动态功率消耗。例如:频率闸控电路(Clock Gating)技术、动态电压频率调变技术(Dynamic Voltage Frequency Scaling)、特殊设计的标准元件库(StandardCell Library)。一般而言系统的总功率消耗可分为动态功率消耗(DynamicPower Consumption)与静态功率消耗(Static Power Consumption)。然而在低工作周期型应用中,系统在大部分的时间都处在闲置或待机状态,导致系统的静态功率消耗会占据大部分的系统总能量消耗,因此如何有效降低系统的静态功率消耗会比降低系统动态功率消耗来的重要。
在降低静态功率消耗的技术中,有效也广为使用的方式之一是将系统的电源切断。不论通过外部电源切断(External Power-off)或采用电源闸控制(Power Gating)技术将虚拟电压源(Virtual VDD)关闭,都能有效降低功率消耗,达到减少静态功率消耗的目的。但是电源切断的行为会导致系统内部的正反器(Flip-flop)与静态随机存取存储器(SRAM)所存储的数据流失进而造成系统状态(System States)流失。因此当微处理器需要从电源切断的模式回复到工作状态时,必须重新执行一次开机程序(Booting Process)。根据微处理器系统的复杂程度,开机程序通常耗时数百微秒到数秒。在这段开机程序中系统所消耗的能量与运行时间会造成很大的额外代价(Overhead)。
近几年出现一种新型态的非易失性微处理器(NonvolatileMicroprocessor),其是将新兴非易失性存储器(Emerging NonvolatileMemory)或非易失性正反器(Nonvolatile Flip-Flop)置入系统中。并在系统即将电源切断时,快速的将系统状态存储(Store)到新兴非易失性存储器,接着进入电源切断的模式节省静态功率消耗。由于非易失性存储器有着断电后内部存储数据不会消失的特性。因此当系统需要回复到工作状态时,可以快速的从非易失性存储器中读取并恢复(Restore)系统状态,省下开机程序所需付出的额外代价,因此能够克服静态功率消耗与开机程序额外代价的问题。
由以上描述可知,非易失性微处理器有着常闭瞬开运算(Normally-offComputing)的三项新颖特色:(1)待机零功率消耗(Zero Standby Power);(2)快速开-关机能力(Instant On-off Feature);(3)电力中断抗性(Resilient toPower Failure)。
目前实现非易失性处理器的方式主要分为主存储器层级(MainMemory Level)实现方式、正反器/缓存器层级(Flip-flop/Register Level)实现方式、及主存储器层级实现方式与正反器/缓存器层级实现方式的混合式实现方法。
主存储器层级实现方式是将非易失性存储器放置在与主存储器(MainMemory)相同层级处。由于非易失性存储器具备随机存取(Random Access)、快速的访问速度以及存储数据非易失性。于M.Zwerg,A.Baumann,R.Kuhn,M.Arnold,R.Nerlich,M.Herzog,R.Ledwa,et al.等人在Proc.IEEEInternational Solid-State Circuits Conference Digest of Technical Papers(ISSCC),pp.334-36,2011所发表的“An 82uA/MHz Microcontroller withEmbedded FeRAM for Energy-Harvesting Applications”论文中,其使用了铁电式非易失性随机存取存储器(FeRAM)同时作为系统上的数据存储器(Data Memory)与程序存储器(Program Memory)。因此微处理器的处理单元(Processing Unit)在进行存储与恢复操作时,由于处理单元需通过总线(Bus)才能存取非易失性存储器,而非易失性存储器的数据存取导致需要较多的时间与能量才能完成存储与恢复操作。
正反器/缓存器层级(Flip-flop/Register Level)实现方式分为完全置换方法(Fully Replace)、及平行式比较并压缩方法(Parallel Compare andCompress Codec,PaCC)。
完全置换方法是将完整的系统状态用正反器/缓存器层级的方式存储起来。于W.Yu,S.Rajwade,S.-E.Wang,B.Lian,G.-E.Suh,and E.Kan等人在Proc.International Conference on Dependable Systems and NetworksWorkshops(DSN-W),pp.75-80,2011所发表的“A non-volatile microcontrollerwith integrated floating-gate transistors”论文中,以Xilinx PicoBlaze为基准架构来实现非易失性微处理器。其使用了989个浮闸式非易失性正反器,以取代基准架构系统中所有的存储元件。该存储元件包含通用缓存器(General Purpose Registers,GPR)、便笺式快取(Scratch pad)、系统堆叠(Stack)、状态缓存器(Conditional Register,Cond.)、指令缓存器(InstructionRegister,Inst.reg.)与程序计数器(Program Counter,PC)等。且因为浮闸式非易失性正反器需要较高的操作电压(6V),所以额外加入了电力监控模块(Power Monitor)、非易失性操作控制器(NV control)与电荷帮浦(Chargepumps)。
由于非易失性正反器占据很大的面积,导致完全置换方法的面积额外代价过大。于Y.Wang,Y.Liu,Y.Liu,D.Zhang,S.Li,B.Sai,M.-F.Chiang,and H.Yang.等人在Proc.Design,Automation Test in Europe ConferenceExhibition(DATE),PP.1519-1524,2012所发表的「A Compression-basedArea-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.InternationalSolid-State Circuits Conference Digest of Technical Papers(ISSCC),pp.432-433,2013所发表的“An 8MHz 75uA/MHz Zero-leakage Non-volatileLogic-based Cortex-M0 MCU SoC Exhibiting 100%Digital State Retention atVDD=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 StatesPartition,SYSPA)方法,以当该电源异常时,一处理核心仅存储编程人员可视状态,如此可大幅节省非易失性正反器阵列的面积与存储所需的能耗。又该节能非易失性微处理器利用一消除冗余存储的选择性存储机制(Selective Store for Eliminating Redundant Store,SESERS),以当该电源异常时,该处理核心仅将与一存储使能缓存器中使能信号为“真”的位对应的周边模块的系统状态存储至该非易失性正反器阵列中,进而更可减少可该非易失性正反器阵列的面积与存储所需的能耗。
依据本发明的一特色,本发明提出一种节能非易失性微处理器,包括一处理核心、一非易失性正反器阵列(Flip-flop Array,ReFF Array)、及一组非易失性互连结(Nonvolatile Interconnections)。该处理核心具有多个系统状态,其分类为编程人员可视状态(Programmer Visible States)与编程人员不可视状态(Programmer Invisible States)。该非易失性正反器阵列(Flip-flopArray,ReFF Array)用以存储数据,且所存储的数据在一电源关闭时不会消失。该非易失性互连结(Nonvolatile Interconnections)桥接该处理核心与该非易失性正反器阵列。其中,当该电源异常时,该处理核心仅将该编程人员可视状态经由该非易失性互连结存储至该非易失性正反器阵列中。
依据本发明的另一特色,本发明提出一种节能非易失性微处理器,其具有一处理核心,该处理核心的一存储器映像(Memory Map)包含一重置入口(Reset Entry)及一系统状态复原入口(System States Recovery Entry),该系统状态复原入口处系导向一期望的处理程序(Expected Handling Process),当一电源回复正常时,该处理核心会先判断通信接口的非易失性缓存器内是否有断电前未传输完成的数据,若是则由该系统状态复原入口处开始执行,执行该期望的处理程序,以克服微处理器在不同应用状况下所产生的不同系统状态复原例外状况。
附图说明
图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情境应用中的总能量消耗的比较示意图。
附图标记说明
节能非易失性微处理器 100
处理核心 105
非易失性正反器阵列 110
非易失性互连结 115
非易失性操作控制器 120
通信总线 125
基础频率控制模块 130
阻变随机存取存储器 135
阻变随机存取只读存储器 140
16位乘法器 145
实时计数器 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是本发明一种节能非易失性微处理器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 FunctionRegister,WDT SFR)165、一存储器保护模块(Memory Protected Module)170及一除错接口175。
该串行接口160包含一通用异步收发传输器(Universal AsynchronousReceiver Transmitter,UART)161、一序列周边界面(Serial Peripheral InterfaceBus,SPI)162、及一交互整合电路(Inter-Integrated Circuit,I2C)163等串行端口接口。
为解决现有技术于电源切断前的执行地址接续执行程序所产生的问题,本发明提出一可程序化复原入口决策(Programmable Restore EntryDecision,PREDEC)。图3是本发明处理核心的执行程序一存储器映像(Memory Map)的示意图,其中,该处理核心105的存储器映像包含一重置入口(Reset Entry)310及一系统状态复原入口(System States RecoveryEntry)320。该系统状态复原入口320是导向一期望的处理程序(ExpectedHandling Process)330。
微处理器开机程序虽然会因为微处理器系统中的核心、架构以及应用不同而会有些微差异。但一般而言开机程序会依序完成以下的任务:(A)检测并初始化系统周边模块(Identifying and Initializing System Peripheral);(B)设定系统堆叠(Setting-up the Stack);(C)初始化系统全局变量(InitializingSystem-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的一重置地址识别(ResetAddress 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,以让非易失性微处理器系统导向已知的状态并正常的运行程序。因此必须保存下来的系统状态是由指令操作所能更改的系统状态,而非指令操作所能更改的系统状态可不需被保存下来。故本发明提出一系统状态分割(SystemStates Partition,SYSPA),其将系统状态分类为编程人员可视状态(Programmer Visible States)与编程人员不可视状态(Programmer InvisibleStates)。
该编程人员可视状态系该处理核心105的指令集可以直接存取到的系统状态,包括存储阵列(Allocated Array)、周边缓存器组态(PeripheralRegisters Configurations)、缓存器档案(Register Files)、已记录数据(LoggedData)、及系统堆叠(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),全客户式设计(FullCustom Design)的部分使用的是布局后(Post Layout)并萃取阻变电容(RCExtraction)后的spice网表。在本发明与现有的完全置换方法(FullyReplacement)、平行式比较并压缩方法(PaCC)、非易失性逻辑存储阵列方法(NVL Array)皆实现到采用阻变存储器的兼容的MSP430实验验证平台上,该相容的MSP430实验验证平台以20MHz的频率运行。在相同非易失性存储元件以及微处理器架构的基准点上进行比较与分析。
由图8的系统存储操作时间的仿真比较示意图可知,完全置换方法与本发明的方法由于流程相似,因此在系统存储操作时间上是相近的。而非易失性逻辑存储阵列方法由于是在主存储器层级与正反器/缓存器层级的混合式实现方式,在存储时的平行度比起完全置换与本发明提出的方式低,因此时间较长一些。在平行式比较并压缩方法中,状态压缩的过程往往消耗过多的频率数。
图9是本发明与现有技术的系统恢复操作流程图的比较示意图。在系统恢复操作分析中,从非易失性微处理器系统电源开启重置(Power OnReset,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 MPl50仪器上,该仪器的采样速率为每秒150ECG信号,该工作测试总计60秒。与相容的MSP430兼容的非易失性微处理器(NV-uP)使用长度编码(RunLengthCoding)进行心电数据压缩,并将压缩的心电数据存到缓冲区。当压缩的心电数据快要大于缓冲区的大小时,存储的数据会经由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微秒的电力中断测试,现有完全置换方式的非易失性微处理器并使用回声修正(EchoCorrection)的方式。如图18、及图19所示,使用回声修正的方式虽然可以确保传送数据的正确性,但额外的程序将使完全置换方法的非易失性微处理器系统会比本发明的非易失性微处理器多176%的时间处在工作模式(Active mode)下,并必须额外付出163%的总能量消耗。
由前述说明可知,本发明的目的主要是在提供一种节能非易失性微处理器,其利用一可程序化复原入口决策,可将期望的处理程序330放于一固定地址,以避免现有非易失性微处理器与其合作运行的模块之间通信界面的未同步问题、或是非易失性微处理器所认知的时间与现实时间之间存在一个差距的问题。该节能非易失性微处理器利用一系统状态分割方法,以当该电源异常时,该处理核心105仅将该编程人员可视状态经由该非易失性互连结115存储至该非易失性正反器阵列110中,如此可大幅节省该非易失性正反器阵列110的元件及面积。该节能非易失性微处理器利用一消除冗余存储的选择性存储机制,以当该电源异常时,该处理核心105仅将与该存储使能缓存器106中使能信号为真的位对应的周边模块的系统状态存储至该非易失性正反器阵列110中,进而更可减少该非易失性正反器阵列110的元件及面积。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种节能非易失性微处理器,其特征在于,包括:
一处理核心,具有多个系统状态,其分类为编程人员可视状态与编程人员不可视状态;
一非易失性正反器阵列,用以存储数据,且所存储的数据在一电源关闭时不会消失;以及
一组非易失性互连结,桥接该处理核心与该非易失性正反器阵列,
其中,当该电源异常时,该处理核心仅将该编程人员可视状态经由该非易失性互连结存储至该非易失性正反器阵列中。
2.根据权利要求1所述的节能非易失性微处理器,其中,该非易失性正反器阵列为一阻变非易失性正反器阵列,或为其他非易失性元件所组成的非易失性正反器阵列。
3.根据权利要求2所述的节能非易失性微处理器,其特征在于,当该电源回复正常时,该处理核心利用该非易失性正反器阵列中存储的该编程人员可视状态数据,以回复该处理核心的该编程人员可视状态。
4.根据权利要求1所述的节能非易失性微处理器,其特征在于,该处理核心的一存储器映像包含一重置入口及一系统状态复原入口。
5.根据权利要求4所述的节能非易失性微处理器,其特征在于,该系统状态复原入口处导向一期望的处理程序。
6.根据权利要求5所述的节能非易失性微处理器,其特征在于,当该电源回复正常时,该处理核心由该系统状态复原入口处开始执行,执行该期望的处理程序,以克服微处理器在不同应用状况下所产生的不同系统状态复原例外状况。
7.根据权利要求4所述的节能非易失性微处理器,其特征在于,当该节能非易失性微处理器正常启动时,该处理核心由该重置入口(ResetEntry)处开始执行完整开机程序。
8.根据权利要求4所述的节能非易失性微处理器,其特征在于,该处理核心的一重置地址识别方法为自动向量导引。
9.根据权利要求1所述的节能非易失性微处理器,其特征在于,节能非易失性微处理器还包括多个周边模块,该处理核心包括一存储使能缓存器,该存储使能缓存器中的每个位分别对应到该多个周边模块的一个周边模块的系统状态存储的使能信号。
10.根据权利要求9所述的节能非易失性微处理器,其特征在于,当该电源异常时,该处理核心仅将与该存储使能缓存器中使能信号为真的位对应的周边模块的系统状态存储至该非易失性正反器阵列中。
11.根据权利要求1所述的节能非易失性微处理器,其特征在于,该编程人员可视状态是该处理核心的指令集可以直接存取到的系统状态,其包括存储阵列、周边缓存器组态、缓存器档案、已记录数据、及系统堆叠。
12.根据权利要求1所述的节能非易失性微处理器,其特征在于,该编程人员不可视状态包括有限状态机的状态、内部缓冲区、及同步元件。
13.一种节能非易失性微处理器,其特征在于,其具有一处理核心,该处理核心的一存储器映像包含一重置入口及一系统状态复原入口,该系统状态复原入口处导向一期望的处理程序,当一电源回复正常时,该处理核心会先判断通信接口的非易失性缓存器内是否有断电前未传输完成的数据,若是则由该系统状态复原入口处开始执行,执行该期望的处理程序,以克服微处理器在不同应用状况下所产生的不同系统状态复原例外状况。
14.根据权利要求13所述的节能非易失性微处理器,其特征在于,当该节能非易失性微处理器正常启动时,该处理核心由该重置入口处开始执行完整开机程序。
15.根据权利要求13所述的节能非易失性微处理器,其特征在于,期望的处理程序位于该存储器映像的固定地址处。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104118737A TWI522794B (zh) | 2015-06-10 | 2015-06-10 | 節能非揮發性微處理器 |
TW104118737 | 2015-06-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106249840A true CN106249840A (zh) | 2016-12-21 |
Family
ID=55810437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610186154.3A Pending CN106249840A (zh) | 2015-06-10 | 2016-03-29 | 节能非易失性微处理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10089182B2 (zh) |
CN (1) | CN106249840A (zh) |
TW (1) | TWI522794B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144214A (zh) * | 2018-08-06 | 2019-01-04 | 清华大学 | 能量管理系统、方法、电子设备、装置及非易失处理器 |
Families Citing this family (7)
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 |
TWI697797B (zh) * | 2018-11-08 | 2020-07-01 | 瑞昱半導體股份有限公司 | 決定積體電路之電壓以及找出電壓與電路參數之關係的方法 |
CN111026676B (zh) * | 2019-12-27 | 2023-08-01 | 中煤科工集团重庆研究院有限公司 | 利用存储单元地址携带时间信息的存储方法及存储系统 |
CN114300024B (zh) * | 2021-12-29 | 2024-10-01 | 北京超弦存储器研究院 | 一种基于非易失性处理器的数据处理方法、装置及介质 |
TWI796935B (zh) * | 2022-01-19 | 2023-03-21 | 宏碁股份有限公司 | 記憶體控制方法與記憶體儲存系統 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677570A (zh) * | 2004-03-30 | 2005-10-05 | 株式会社瑞萨科技 | 写入多值数据的非易失性半导体存储装置 |
CN103064503A (zh) * | 2012-12-24 | 2013-04-24 | 上海新储集成电路有限公司 | 片上系统及其缓存器 |
US20140075087A1 (en) * | 2012-09-10 | 2014-03-13 | Texas Instruments Incorporated | Priority Based Backup in Nonvolatile Logic Arrays |
Family Cites Families (3)
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 |
US7639056B2 (en) * | 2005-05-26 | 2009-12-29 | Texas Instruments Incorporated | Ultra low area overhead retention flip-flop for power-down applications |
TWI522794B (zh) * | 2015-06-10 | 2016-02-21 | 國立成功大學 | 節能非揮發性微處理器 |
-
2015
- 2015-06-10 TW TW104118737A patent/TWI522794B/zh not_active IP Right Cessation
-
2016
- 2016-03-29 CN CN201610186154.3A patent/CN106249840A/zh active Pending
- 2016-05-23 US US15/161,368 patent/US10089182B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677570A (zh) * | 2004-03-30 | 2005-10-05 | 株式会社瑞萨科技 | 写入多值数据的非易失性半导体存储装置 |
CN100492539C (zh) * | 2004-03-30 | 2009-05-27 | 三星电子株式会社 | 写入多值数据的非易失性半导体存储装置 |
US20140075087A1 (en) * | 2012-09-10 | 2014-03-13 | Texas Instruments Incorporated | Priority Based Backup in Nonvolatile Logic Arrays |
CN103064503A (zh) * | 2012-12-24 | 2013-04-24 | 上海新储集成电路有限公司 | 片上系统及其缓存器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144214A (zh) * | 2018-08-06 | 2019-01-04 | 清华大学 | 能量管理系统、方法、电子设备、装置及非易失处理器 |
US11422818B2 (en) | 2018-08-06 | 2022-08-23 | Institute for Interdisciplinary Information Core Technology (Xi'an) Co., Ltd. | Energy management system and method, electronic device, electronic apparatus, and nonvolatile processor |
Also Published As
Publication number | Publication date |
---|---|
US20160364298A1 (en) | 2016-12-15 |
TW201643605A (zh) | 2016-12-16 |
TWI522794B (zh) | 2016-02-21 |
US10089182B2 (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106249840A (zh) | 节能非易失性微处理器 | |
US8627143B2 (en) | Dynamically modeling and selecting a checkpoint scheme based upon an application workload | |
Balsamo et al. | Hibernus: Sustaining computation during intermittent supply for energy-harvesting systems | |
CN104620217B (zh) | 从非易失性逻辑阵列唤醒恢复的具有受限电源域的设备 | |
CN105589776B (zh) | 一种故障定位方法及服务器 | |
WO2016090908A1 (zh) | 智能电表嵌入式应用的模拟存储器测试板系统及测试方法 | |
CN107122321A (zh) | 硬件修复方法、硬件修复系统以及计算机可读取存储装置 | |
CN103150228B (zh) | 面向高速缓冲存储器的可综合伪随机验证方法及装置 | |
CN108132892A (zh) | 高性能互连物理层 | |
Salajegheh et al. | Getting things done on computational RFIDs with energy-aware checkpointing and voltage-aware scheduling | |
CN104335175A (zh) | 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统 | |
CN101887393A (zh) | 基于半虚拟化技术的设备故障复现方法及系统 | |
CN107463459A (zh) | 系统异常内存数据的保存方法、装置、系统及终端设备 | |
CN111737053B (zh) | 一种基于指令分析的非易失处理器备份方法及系统 | |
CN105955850A (zh) | 一种车辆用控制单元异常复位处理方法及系统 | |
Riesen et al. | See applications run and throughput jump: The case for redundant computing in HPC | |
CN110286852A (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN106844177A (zh) | Linux日志管理方法、装置和系统 | |
CN110187922A (zh) | 设置并验证bios参数的方法、装置、设备及存储介质 | |
Berthou et al. | MPU-based incremental checkpointing for transiently-powered systems | |
CN102681650B (zh) | 一种电源控制节能方法及其对应的存储系统 | |
CN105824650B (zh) | 计算机系统、可适性休眠控制模块及其控制方法 | |
Song et al. | A lightweight online backup manager for energy harvesting powered nonvolatile processor systems | |
Baharvand et al. | ARMOR: Adaptive reliability management by on-the-fly redundancy in multicore embedded processors | |
Amrizal et al. | Energy-performance modeling of speculative checkpointing for exascale systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161221 |