TWI768459B - 備份、復原和恢復暫存器值的方法和系統 - Google Patents

備份、復原和恢復暫存器值的方法和系統 Download PDF

Info

Publication number
TWI768459B
TWI768459B TW109130709A TW109130709A TWI768459B TW I768459 B TWI768459 B TW I768459B TW 109130709 A TW109130709 A TW 109130709A TW 109130709 A TW109130709 A TW 109130709A TW I768459 B TWI768459 B TW I768459B
Authority
TW
Taiwan
Prior art keywords
scratchpad
cell
volatile memory
value
power
Prior art date
Application number
TW109130709A
Other languages
English (en)
Other versions
TW202123008A (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 台灣積體電路製造股份有限公司
Publication of TW202123008A publication Critical patent/TW202123008A/zh
Application granted granted Critical
Publication of TWI768459B publication Critical patent/TWI768459B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery 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)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

一種系統,包含:處理器;暫存器,配置成儲存多個字; 非揮發性記憶體,具有多個單元,每一單元對應於暫存器的字中的一個,且其中將多個單元中的每一單元設定為初始重置值;第一控制器,回應於電力丟失:確定由暫存器所儲存的字;且將非揮發性記憶體的對應於所確定的由暫存器所儲存的字的單元的初始重置值改變為設定值;第二控制器,回應於檢測到電力恢復:識別具有設定值的單元;將對應於所識別單元的字寫入到暫存器;且將非揮發性記憶體的單元重置到初始重置值。

Description

備份、復原和恢復暫存器值的方法和系統
本發明是有關於一種計算系統,且特別是有關於一種暫存器資料的備份和恢復的方法與系統。
一般來說,計算系統包含一或多個處理器和記憶體,記憶體包含暫存器(register)。通常,暫存器由少量快速儲存裝置組成。暫存器暫時保存由CPU頻繁使用的資料、指令以及記憶體位址。存在各種類型的暫存器(每一暫存器用於特定目的),包含資料暫存器、位址暫存器、程式計數器、記憶體資料暫存器、記憶體緩衝暫存器等。
暫存器可以是揮發性或非揮發性的。在揮發性暫存器的情況下,計算系統的電力丟失可能導致暫存器丟失其值。避免丟失儲存在暫存器中的有價值資料的一個實例包含將暫存器的資料值備份在非揮發性記憶體中。通常,備份暫存器包含將暫存器資料的每一位元的副本保存在非揮發性記憶體的對應位元中。然而,在電力丟失的情況下,隨著暫存器中的資料位元的數目增加,使 用剩餘電力來快速備份暫存器資料變得越來越難以實現。
本揭露實施例提供一種備份暫存器值的方法,包括:設置配置成儲存多個字的暫存器;設置具有多個單元的非揮發性記憶體,每一單元對應於所述暫存器的所述字中的一個;將所述非揮發性記憶體的每一單元設定為初始重置值;回應於檢測到電力丟失,確定由所述暫存器所儲存的所述字;且將對應於所確定的由所述暫存器所儲存的字的、所述非揮發性記憶體的所述單元的所述初始重置值改變為設定值。
本揭露實施例提供一種復原和恢復暫存器值的方法,包括:設置配置成儲存多個字的暫存器;設置具有多個單元的非揮發性記憶體,每一單元對應於所述暫存器的所述字中的一個;回應於在電力丟失之後檢測到電力恢復,識別具有設定值的所述單元;將對應於所識別單元的所述字寫入到所述暫存器;且將非揮發性記憶體的所述單元重置到初始重置值。
本揭露實施例提供一種備份和恢復暫存器值的系統,包括:第一記憶體,配置成儲存資料;暫存器,配置成儲存多個字,其中所述暫存器配置成從所述第一記憶體接收所述資料以及將所述資料儲存為所述多個所述字中的一個;第二非揮發性記憶體,具有多個單元,所述多個字中的每一個具有所述暫存器的對應單元,其中將所述多個單元中的每一單元設定為初始重置值;控制 器,其中回應於電力丟失,所述控制器配置成:確定由所述暫存器所儲存的所述多個字中的所述一個;以及將所述暫存器的所述對應單元的所述初始重置值改變為設定值;且其中回應於電力恢復,所述控制器配置成:識別所述第二非揮發性記憶體的具有所述設定值的所述對應單元;將所識別對應單元的所述字中的所述一個寫入到所述暫存器;以及將所述所識別對應單元重置到所述初始重置值。
100:快速暫存器備份系統
110:計算系統
112:暫存器
114:第一記憶體
116:第二記憶體
118:寫入控制器
120:召回控制器
200、300:流程圖
210、220、230、240、250、310、320、330、340、350、360:操作
400:表
410:字值
420:單元位置
500:電力丟失操作
510:在電力丟失之前
512、522、612、622:暫存器字值
514、524、614、624:單元號
516、526、616、626:單中繼資料值
520:在電力丟失時
600:上電操作
610:在電力恢復時
620:在暫存器資料恢復之後
700:方法
圖1是示出根據一些實施例的使用非揮發性記憶體的快速暫存器備份系統的實例的方塊圖。
圖2是示出根據一些實施例的在電力丟失事件期間的備份方法的實例的流程圖。
圖3是示出根據一些實施例的在上電事件期間的恢復方法的實例的流程圖。
圖4是示出根據一些實施例的暫存器值與額外非揮發性記憶體單元位置之間的實例映射的表的示意圖。
圖5a和圖5b示出根據一些實施例的、與快速暫存器備份系統相關聯的實例電力丟失和電力恢復操作。
圖6是示出根據一些實施例的組合式恢復和備份方法的實例的流程圖。
以下公開提供用於實施所提供主題的不同特徵的許多不同實施例或實例。下文描述元件和佈置的具體實例以簡化本公開。當然,這些僅是實例且並不意圖為限制性的。舉例來說,本公開可在各種實例中重複附圖標號和/或字母。這一重複是出於簡化和清晰的目的,且本身並不規定所論述的各種實施例和/或配置之間的關係。
另外,為易於描述,本文中可使用例如“在......之下”、“在......下方”、“下部”、“在......上方”、“上部”以及類似物的空間相對術語,以描述如圖中所示出的一個元件或特徵與另一元件或特徵的關係。除圖中所描繪的定向外,空間相關術語意圖涵蓋器件在使用或操作中的不同定向。設備可以其它方式定向(旋轉90度或處於其它定向),且本文中所使用的空間相對描述詞同樣可相應地進行解譯。
一般來說,計算系統使用暫存器來儲存需要由處理器快速存取的少量資料。暫存器通常由其可保持的位數來測量,例如4位元暫存器、8位元暫存器等。計算系統可使用若干不同種類的暫存器,包含但不限於位址暫存器、使用者可存取暫存器、狀態暫存器、通用暫存器、指令暫存器、記憶體緩衝暫存器、記憶體資料、暫存器以及專用暫存器。暫存器通常是揮發性的,但有時也可能是非揮發性的。
揮發性記憶體是需要電力來維持所儲存的資訊的一種類型的電腦儲存裝置。揮發性記憶體在通電的同時保持資料,但當電力中斷時,所儲存的資料丟失。相反,非揮發性記憶體電路(其包含快閃記憶體、暫存器RAM、磁性RAM、EfuseRAM、反熔絲RAM等等)設計成通過假設不受非揮發性記憶體電路的電力丟失影響的狀態(例如,特定電荷)來儲存資料。因此非揮發性記憶體可用以備份通常儲存在揮發性記憶體中的重要資料,以便防止發生資料丟失。在具有揮發性暫存器的計算系統的情況下,存在在非揮發性記憶體中備份暫存器資料的需要,以便在電力丟失事件的情況下不丟失資料。
通常,當計算系統丟失電力時或當電力變得不穩定時,通常使用有限的剩餘電力來記錄暫存器日誌或將暫存器日誌備份在非揮發性記憶體單元中。這可能意味著僅短時間段可用于更新非揮發性記憶體單元。舉例來說,如果使用4位元揮發性暫存器,那麼在經歷電力丟失時,需要將4位元中的每一個記錄到非揮發性記憶體中,以便保存暫存器資料。然而,可用電力可能是有限的,且可能不足以完成針對所有暫存器資料位元的備份操作。因此,取決於暫存器資料位元的容量,計算器件可能最終不成功地完成備份操作。
所公開實施例提供一種以更快且更可靠的方式備份資料的方法。在一個實施例中,添加額外非揮發性記憶體,且額外非揮發性記憶體中的每一單元號(cell number)/位置分別對應於暫 存器資料字值。最初,將額外非揮發性記憶體中的資料位元重置到相同值,例如全零或全一。當發生電力丟失時,找出對應於暫存器的資料值的單元號/位置,且反轉所述單元位置中的資料。當電力恢復時,可搜索額外非揮發性記憶體的資料位元以獲得對應於反轉值的單元號/位置。因此,所獲得的單元號/位置可用於識別對應字值,所述對應字值接著用以在電力恢復時恢復暫存器資料值。
圖1是示出使用非揮發性記憶體的快速備份系統的實例的方塊圖。在一個實例中,快速暫存器備份系統100的硬體實施方案包含計算系統110,所述計算系統110包含暫存器112、第一記憶體114、第二記憶體116、寫入控制器118以及召回控制器(recall controller)120。在一些實施例中,第一記憶體114和第二記憶體116是非揮發性記憶體,而其它配置在本公開的範圍內。
在一個實例中,暫存器112配置成儲存需要由計算系統110的處理器快速存取的少量資料。暫存器大小可變化且通常以可儲存在暫存器中的位元數測量。舉例來說,儲存資訊的n個位元(也就是4位元字)的暫存器將視為n位暫存器。暫存器大小可變化且可包含4位元暫存器、8位元暫存器、16位元暫存器、32位元暫存器等。通常將暫存器資料儲存為二進位數字,意味著0和1。然而,也可使用其它系統(例如十六進位系統)來儲存資料。在一些實例中,暫存器112可包含但不限於位址暫存器、使用者可存取暫存器、狀態暫存器、通用暫存器、指令暫存器、記憶體 緩衝暫存器、記憶體資料、暫存器以及專用暫存器。暫存器通常是揮發性的,但有時也可能是非揮發性的。在一個實例中,暫存器112直接或間接地連接到第一非揮發性記憶體114以及第二非揮發性記憶體116、寫入控制器118以及召回控制器120。
在一個實例中,第一記憶體114是連接到暫存器112的非揮發性記憶體。然而,在快速備份系統100的其它實例中,第一非揮發性記憶體114可能並不連接到暫存器112或可能根本不包含在計算系統110中。第一非揮發性記憶體114用以將任何類型的資料儲存在計算系統110內。暫存器112可存取第一非揮發性記憶體114,以基於暫存器配置成做什麼和當時處理器的需要將資料移動到暫存器112自身中。舉例來說,如果配置成計算系統110的部分的處理器正處理位於第一非揮發性記憶體114中的資料,且處理器需要頻繁地存取所述資料,那麼可從第一非揮發性記憶體114提取資料且將其儲存在暫存器112中。在處理器完成處理資料之後,可從暫存器112去除已處理的資料位址且將其儲存回第一非揮發性記憶體114中。
在一個實例中,快速備份系統100包含第二非揮發性記憶體116。第二非揮發性記憶體116由計算系統110分配以在電力丟失的情況下儲存來自暫存器112的資料的備份。第二非揮發性記憶體116的大小可取決於暫存器112的大小而變化。在二進位系統的情況下,對於n位元暫存器,第二非揮發性記憶體116的大小是2n位元。舉例來說,對於4位元暫存器,計算系統110分 配非揮發性記憶體的16個位元作為第二非揮發性記憶體116。將第二非揮發性記憶體116內的所有單元重置到初始重置值。初始重置值可以是0或1。
在一個實例中,快速備份系統100包含一或多個記憶體控制器。通常,記憶體控制器是管理去往和來自電腦的記憶體的資料流程的數位電路,在這一情況下包含暫存器112、第一非揮發性記憶體114以及第二非揮發性記憶體116。在一個實例中,快速備份系統100包含寫入控制器118和召回控制器120。
在一個實例中,控制器包含寫入控制器118和召回控制器120。寫入控制器118用以檢查暫存器112是否具有需要備份的任何更新後的資料。此外,寫入控制器118還用以進行程式設計過程,具體來說,用以在發生電力丟失時設定第二非揮發性記憶體116中的資料位元。
在一個實例中,召回控制器120配置成在計算系統恢復電力時用備份資料更新暫存器112。更新暫存器112的過程可包含搜索第二非揮發性記憶體116以識別具有預定值或指示符的單元、在電力丟失之前將具有所識別單元的單元反向映射到暫存器的資料值,以及用恢復後的資料值更新暫存器116。關於圖4詳細描述將額外非揮發性記憶體單元映射和反向映射到暫存器的資料值的過程。
圖2是示出在電力丟失事件期間使用快速備份系統的備份方法的實例的流程圖200。最初,在實例操作210期間,快速備 份系統100檢測到電力丟失事件。電力丟失事件可包含到計算系統110的電力的任何中斷,包含到計算系統110的完全電力丟失或到計算系統110的電力的不穩定。在實例操作220中,在檢測到電力丟失事件時,寫入控制器118檢查暫存器112中的資料以查看暫存器資料是否具有將受益於備份的任何更新。
在實例操作230中,在基於操作220確定存在對需要備份的暫存器資料的更新時,寫入控制器118分析暫存器資料且確定與暫存器資料相關聯的字值。在一個實例中,n個資料位元的字值可以是一起的n個位元的十進位等值(equivalent)。舉例來說,對於包含具有以下二進位位元的4位元字的4位暫存器:“1001”(第4位元:1;第3位元:0;第2位元:0且第1位元1),實例字值將是9。在操作230中確定暫存器的字值以便識別將用於備份過程中的額外非揮發性記憶體單元。關於圖4更詳細地論述暫存器資料的字值與備份暫存器資料的非揮發性記憶體單元之間的實例映射。
在實例操作240中,將對應於暫存器資料的字值的所識別第二非揮發性記憶體單元設定為設定值。在所示出實例中,設定值是所有非揮發性記憶體單元設定在的初始重置值的倒數。在二進位系統的情況下,如果將第二非揮發性記憶體116的單元中的每一個設定為初始重置值1,那麼當備份暫存器資料時,將映射到暫存器字值的單元設定為設定值0(初始重置值1的倒數)。類似地,如果將初始重置值設定為0,那麼設定值(其是初始重置值 的倒數)是1。在二進位系統中,額外非揮發性記憶體的初始重置值可以是0或1。備份過程配置成以容易地識別暫存器112的字值的方式標記額外非揮發性記憶體單元。
由於與暫存器資料相關聯的每一可能字值映射到第二非揮發性記憶體116的單元中的對應一個,所以僅需要設定第二非揮發性記憶體116的一個位元以便完全備份暫存器資料。在這一情況下,暫存器的大小不重要。無論暫存器的大小如何,僅需要設定一個位元以便使用快速備份系統來備份暫存器資料。在備份過程期間僅更新一個位元使得快速備份系統比傳統備份方法更快,所述傳統備份方法要求備份暫存器的每一位元。因此,在傳統備份系統中,對於4位元暫存器,需要更新非揮發性記憶體的4個位元;對於8位元暫存器,需要更新非揮發性記憶體的8個位元等等。由於在電力丟失事件期間快速備份系統僅需要更新1個位元,所以快速備份系統也更加可靠,因為可在電力完全丟失之前完成備份過程的機率增加。
在完成操作240後,在操作250中,快速備份過程完成且電力丟失200期間的快速備份方法結束。此外,如果寫入控制器118確定暫存器尚未更新,和/或不必備份暫存器資料,那麼電力丟失200期間的快速備份方法也在操作250中結束。步驟250結束在檢測到電力丟失事件時發起的備份過程。
圖3是示出在上電事件(power up event)期間恢復資料的方法的實例的流程圖300。最初,在實例操作310期間,快速備 份系統100檢測到上電事件。上電事件可包含在完全電力丟失的時段之後恢復到快速備份系統100的電力,或在電力不穩定的時段之後恢復到快速備份系統100的穩定電力。
在實例操作320中,在操作310中檢測到上電事件時,召回控制器120搜索第二非揮發性記憶體116且識別具有設定為設定值的資料值的單元。如果第二非揮發性記憶體116的單元中沒有一個設定為設定值,那麼由於包含以下的任何數目個原因而未備份暫存器資料:暫存器112未更新且因此不需要備份,或快速備份系統100沒有足夠時間來完成備份過程。如果第二非揮發性記憶體116的單元中沒有一個設定為設定值,那麼召回控制器在操作360中結束恢復暫存器資料的方法。否則,召回控制器前進到流程圖300中的下一操作。
在實例操作330中,召回控制器使用關於圖4更詳細地描述的反向映射過程,以基於第二非揮發性記憶體116中的具有設定值的單元來獲得暫存器112的字值。隨後,在實例操作340中,使用所識別的暫存器112的字值來恢復暫存器112的個別位元的資料值。
在實例操作350中,一旦暫存器112恢復,那麼將第二非揮發性記憶體116的所有單元的資料值重置到初始重置值。完成重置過程以準備第二非揮發性記憶體116的單元,以用於在另一電力丟失事件的情況下快速備份。在重置額外非揮發性記憶體單元的資料值後,用於恢復暫存器資料的方法在實例操作360中 結束。
圖4是示出暫存器字值與4位元暫存器的額外非揮發性記憶體單元位置之間的實例映射的表400。在二進位系統中,每一資料位元可具有0或1的資料值。對於4個資料位元(也就是4位元字),資料值可在“0000”到“1111”範圍內。總的來說,對於4個資料位元,存在字值的24個或16個可能的組合。8位元暫存器包括字值的至少256個可能的組合,且因此可能需要至少256個額外非揮發性記憶體單元。類似地,16位元暫存器包括字值的至少65536個可能的組合,且因此可能需要至少65536個額外非揮發性單元。
對於4位元暫存器的當前實例,所有16個可能的字值在表的左手側列出,位於“4位元暫存器字值”410下。映射到在表的左手側列出的字值中的每一個的對應16個額外非揮發性記憶體單元位置420在表的對應右手側單元上列出。舉例來說,字值1001映射到單元位置“9”。在實例映射表400中,每一字值410映射到對應於字值自身的十進位等值的單元位置420。換句話說,“0000”映射到“0”,“0011”映射到“3”,“1101映射到“13”等等。然而,暫存器字值與額外非揮發性單元位置之間的映射不需要如在實例中那樣對應於等效十進位值。舉例來說,“0000”可映射到“15”、或“0000”可映射到“2”或任何其它單元位置,只要儲存映射資訊且其可視需要由快速備份系統100檢索和使用即可。在上電期間,相同映射表400可用於將具有設定值的額外 非揮發性記憶體的單元位置反向映射到暫存器的字值。
圖5a和圖5b示出與4位元暫存器的快速備份相關聯的實例電力丟失操作500和實例上電操作600,其中暫存器具有字值“1010”。特定來說,圖5a示出暫存器字值512、暫存器字值522以及對應額外非揮發性單元號514、單元號524和單中繼資料值516、單中繼資料值526,因為其在電力丟失之前510且在檢測到電力丟失時520存在。在電力丟失之前510,暫存器字值512是“1010”。對於這一實例,對應於4位元暫存器的16個額外非揮發性記憶體單元均重置到初始重置值“1”。在其它實例中,初始重置值可以是“0”而不是“1”。
對於這一實例,暫存器字值映射到具有作為暫存器字值的十進位等值的單元號或位置的對應額外非揮發性單元。如上文關於圖4所論述,在不同實例中,映射方案可以不同。在電力丟失時520,暫存器字值522丟失其資料值。快速備份系統100使用映射方案來找出對應於暫存器字值“1010”的十進位等值的單元號524。在這一情況下,“1010”的十進位等值是“10”。因此,額外非揮發性記憶體單元號“10”的資料值從初始重置值“1”改變為設定值“0”。額外非揮發性記憶體中的單元的其餘部分的資料值保持在“1”。
圖5b示出暫存器字值612、暫存器字值622以及對應額外非揮發性單元號614、單元號624和單中繼資料值616、單中繼資料值626,因為其在電力恢復的時間610且在暫存器資料值的恢 復完成之後620存在。在電力恢復時610,暫存器字值612為空,因為暫存器在電力丟失時丟失其資料值且仍等待其恢復。類似地,在電力恢復時610,額外非揮發性記憶體的單元號“10”仍處於“0”。
在檢測到電力恢復之後,快速備份系統100使用召回控制器120在額外非揮發性記憶體的單元中搜索具有設定為設定值“0”的資料值的單元。在這一情況下,將額外非揮發性記憶體單元的單元號“10”識別為具有資料值616“0”的單元。召回控制器120接著使用關於圖4所論述的反向映射方法來轉換單元號,以識別對應於所識別單元號的字值。在這一實例中,確定所識別單元號“10”對應於字值“1010”,且因此恢復暫存器字值622。在暫存器字值622恢復到其原始值“1010”之後,將額外非揮發性記憶體中的所有單元的資料值626設定回初始重置值“1”。因此,在時間620,暫存器622和額外非揮發性記憶體單元626完全恢復到其原始值,如在時間510所見。
圖6示出組合上文所論述的圖2和圖3中所繪示的方法的各方面的另一示例方法700。在操作310處,快速備份系統100檢測到上電事件。上電事件可包含在完全電力丟失的時段之後恢復到快速備份系統100的電力,或在電力不穩定的時段之後恢復到快速備份系統100的穩定電力。
在操作310中檢測到上電事件時,召回控制器120搜索第二非揮發性記憶體116且識別具有設定為設定值的資料值的單 元。在實例操作330中,召回控制器使用例如結合圖4所描述的反向映射過程基於第二非揮發性記憶體116中的具有設定值的單元來獲得暫存器112的字值。隨後,在實例操作340中,使用所識別的暫存器112的字值來恢復暫存器112的個別位元的資料值。
在實例操作350中,一旦暫存器112恢復,那麼將第二非揮發性記憶體116的所有單元的資料值重置到初始重置值。完成重置過程以準備第二非揮發性記憶體116的單元,以用於在另一電力丟失事件的情況下快速備份。在重置額外非揮發性記憶體單元的資料值後,用於恢復暫存器資料的方法在實例操作360中結束。
在操作210中,快速備份系統100檢測到電力丟失事件。電力丟失事件可包含到計算系統110的電力的任何中斷,包含到計算系統110的完全電力丟失或到計算系統110的電力的不穩定。在實例操作220中,在檢測到電力丟失事件時,寫入控制器118檢查暫存器112中的資料以查看暫存器資料是否具有將受益於備份的任何更新。
在實例操作230中,在基於操作220確定存在對需要備份的暫存器資料的更新時,寫入控制器118分析暫存器資料且確定與暫存器資料相關聯的字值。在一個實例中,n個資料位元的字值可以是一起的n個位元的十進位等值。在操作230中確定暫存器的字值以便識別將用於備份過程中的額外非揮發性記憶體單 元。
在實例操作240中,將對應於暫存器資料的字值的所識別第二非揮發性記憶體單元設定為設定值。在所示出實例中,設定值是所有非揮發性記憶體單元設定在的初始重置值的倒數。在二進位系統的情況下,如果將第二非揮發性記憶體116的單元中的每一個設定為初始重置值1,那麼當備份暫存器資料時,將映射到暫存器字值的單元設定為設定值0(初始重置值1的倒數)。類似地,如果將初始重置值設定為0,那麼設定值(其是初始重置值的倒數)是1。在二進位系統中,額外非揮發性記憶體的初始重置值可以是0或1。備份過程配置成以容易地識別暫存器112的字值的方式標記額外非揮發性記憶體單元。
由於與暫存器資料相關聯的每一可能字值映射到第二非揮發性記憶體116的單元中的對應一個,所以僅需要將第二非揮發性記憶體116的一個位元設定為設定值,以便完全備份暫存器資料。在這一情況下,暫存器的大小不重要。無論暫存器的大小如何,僅需要設定一個位元以便使用快速備份系統來備份暫存器資料。在備份過程期間僅更新一個位元使得快速備份系統比傳統備份方法更快,所述傳統備份方法要求備份暫存器的每一位元。因此,在傳統備份系統中,對於4位元暫存器,需要更新非揮發性記憶體的4個位元;對於8位元暫存器,需要更新非揮發性記憶體的8個位元等等。由於在電力丟失事件期間快速備份系統僅需要更新1個位元,所以快速備份系統也更加可靠,因為可在電 力完全丟失之前完成備份過程的機率增加。
方法接著返回到關於對上電的感測的操作310。如果寫入控制器118確定尚未在操作220中更新暫存器,和/或不必備份暫存器資料,那麼快速備份方法同樣在電力丟失200期間返回到操作310以確定上電事件。
根據一些實施例,公開一種用於在電力丟失時快速備份暫存器值的方法。所述方法包含:設置配置成儲存多個字的暫存器;以及設置具有多個單元的非揮發性記憶體,其中每一單元對應於所述暫存器的所述字中的一個。將所述非揮發性記憶體的每一單元設定為初始重置值。回應於檢測到電力丟失,確定由所述暫存器所儲存的所述字;且將對應於所確定的由所述暫存器所儲存的字的、所述非揮發性記憶體的所述單元的所述初始重置值改變為設定值。
根據一些實施例,前述方法進一步包括:回應於檢測到電力恢復,識別具有所述設定值的所述單元;將對應於所識別單元的所述字寫入到所述暫存器;且將非揮發性記憶體的所述單元重定到所述初始復位值。根據一些實施例,回應於由召回控制器檢測到所述電力丟失,將所述非揮發性記憶體的每一單元設定為初始值。根據一些實施例,所述多個字中的每一個包含n個位,且其中n是等於或大於0的整數。根據一些實施例,所述多個字包含2n個字。根據一些實施例,所述多個單元包含2n個單元。根據一些實施例,前述方法進一步包括:確定自從檢測到所述電力 丟失以來所述暫存器是否已更新。根據一些實施例,所述非揮發性記憶體的所述單元由寫入控制器重定到所述初始復位值。
根據另外實施例,公開一種用於在電力恢復時快速復原和恢復暫存器值的方法。所述方法包含:設置配置成儲存多個字的暫存器;以及設置具有多個單元的非揮發性記憶體,每一單元對應於所述暫存器的所述字中的一個。回應於在電力丟失之後檢測到電力恢復,識別具有設定值的所述單元;且將對應於所識別單元的所述字寫入到所述暫存器。接著將所述非揮發性記憶體的所述單元重置到初始重置值。
根據一些實施例,前述方法進一步包括:回應於檢測到電力丟失,確定由所述暫存器所存儲的所述字;將對應於所確定的由所述暫存器所存儲的字的、所述非揮發性記憶體的所述單元的所述初始重定值改變為所述設定值。根據一些實施例,所述非揮發性記憶體的所述單元由寫入控制器重定到所述初始復位值。根據一些實施例,所述多個字中的每一個包含n個位,且其中所述多個字包含2n個字,且所述多個單元包含2n個單元。根據一些實施例,前述方法進一步包括:識別到自從所述電力丟失以來所述暫存器已更新。根據一些實施例,回應於由召回控制器檢測到所述電力丟失,將所述非揮發性記憶體的每一單元設定為初始值。
根據其它實施例,公開一種用於在電力丟失和後續電力恢復時快速備份和恢復暫存器值的系統。所述系統包含:第一記 憶體,配置成儲存資料;以及暫存器,配置成儲存多個字。所述暫存器配置成從所述第一記憶體接收所述資料以及將所述資料儲存為所述多個所述字中的一個。第二非揮發性記憶體具有多個單元。所述多個字中的每一個具有所述暫存器的對應單元,且將所述多個單元中的每一單元重置到初始重置值。回應於電力丟失,控制器配置成:確定由所述暫存器所儲存的所述多個字中的所述一個;以及將所述暫存器的所述對應單元的所述初始重置值改變為設定值。回應於電力恢復,所述控制器配置成:識別所述第二非揮發性記憶體的具有所述設定值的所述對應單元;將所識別對應單元的所述字中的所述一個寫入到所述暫存器;以及將所述所識別對應單元重置到所述初始重置值。
根據一些實施例,回應於檢測到所述電力恢復,所述控制器進一步配置成將所述所識別對應單元的所述字中的所述一個寫入到所述第一記憶體。根據一些實施例,所儲存的所述多個字中的每一個具有n個位,其中n是等於或大於0的整數,其中所述多個字包含2n個字,且其中所述第二非揮發性記憶體包含2n個單元。根據一些實施例,所述第一記憶體是非揮發性記憶體。根據一些實施例,所述控制器包括:召回控制器,配置成回應於所述電力丟失而將所述暫存器的所述對應單元的所述初始重定值改變為所述設定值;以及寫入控制器,配置成回應於所述電力恢復而識別所述第二非揮發性記憶體的具有所述設定值的所述對應單元,以及將所識別對應單元的所述字中的所述一個寫入到所述暫 存器。根據一些實施例,所述寫入控制器進一步配置成識別自從所述電力丟失以來所述暫存器是否已更新。
前文概述若干實施例的特徵,使得本領域的技術人員可更好地理解本公開的各方面。本領域的技術人員應瞭解,其可以易於使用本公開作為設計或修改用於實行本文中所介紹的實施例的相同目的和/或實現相同優勢的其它過程和結構的基礎。本領域的技術人員還應認識到,這種等效構造並不脫離本公開的精神和範圍,且本領域的技術人員可在不脫離本公開的精神和範圍的情況下在本文中作出各種改變、替代以及更改。
210、220、230、240、250:操作

Claims (8)

  1. 一種備份暫存器值的方法,包括:設置配置成儲存多個字的暫存器;設置具有多個單元的非揮發性記憶體,每一單元對應於所述暫存器的所述字中的一個;將所述非揮發性記憶體的每一單元設定為初始重置值;回應於檢測到電力丟失,確定由所述暫存器所儲存的所述字;且將對應於所確定的由所述暫存器所儲存的字的、所述非揮發性記憶體的所述單元的所述初始重置值改變為設定值,其中,回應於檢測到電力恢復,具有所述設定值的所述單元被識別,將對應於所識別單元的所述字寫入到所述暫存器,並且,將非揮發性記憶體的所述單元重置到所述初始重置值。
  2. 如請求項1所述的方法,其中,回應於由召回控制器檢測到所述電力丟失,將所述非揮發性記憶體的每一單元設定為初始值。
  3. 如請求項1所述的方法,其中所述多個字中的每一個包含n個位元,且其中n是等於或大於0的整數,或是,所述多個字包含2n個字,或是,所述多個單元包含2n個單元。
  4. 如請求項1所述的方法,進一步包括確定自從檢測到所述電力丟失以來所述暫存器是否已更新。
  5. 一種復原和恢復暫存器值的方法,包括: 設置配置成儲存多個字的暫存器;設置具有多個單元的非揮發性記憶體,每一單元對應於所述暫存器的所述字中的一個;回應於在電力丟失之後檢測到電力恢復,識別具有設定值的所述單元;將對應於所識別單元的所述字寫入到所述暫存器;且將非揮發性記憶體的所述單元重置到初始重置值,其中,回應於檢測到電力丟失,確定由所述暫存器所儲存的所述字被確定,並且,將對應於所確定的由所述暫存器所儲存的字的、所述非揮發性記憶體的所述單元的所述初始重置值改變為所述設定值。
  6. 如請求項5所述的方法,其中所述非揮發性記憶體的所述單元由寫入控制器重置到所述初始重置值。
  7. 一種備份和恢復暫存器值的系統,包括:第一記憶體,配置成儲存資料;暫存器,配置成儲存多個字,其中所述暫存器配置成從所述第一記憶體接收所述資料以及將所述資料儲存為所述多個所述字中的一個;第二非揮發性記憶體,具有多個單元,所述多個字中的每一個具有所述暫存器的對應單元,其中將所述多個單元中的每一單元設定為初始重置值;控制器,其中回應於電力丟失,所述控制器配置成: 確定由所述暫存器所儲存的所述多個字中的所述一個;以及將所述暫存器的所述對應單元的所述初始重置值改變為設定值;且其中回應於電力恢復,所述控制器配置成:識別所述第二非揮發性記憶體的具有所述設定值的所述對應單元;將所識別對應單元的所述字中的所述一個寫入到所述暫存器;以及將所述所識別對應單元重置到所述初始重置值。
  8. 如請求項7所述的系統,其中所述控制器包括:召回控制器,配置成回應於所述電力丟失而將所述暫存器的所述對應單元的所述初始重置值改變為所述設定值;以及寫入控制器,配置成回應於所述電力恢復而識別所述第二非揮發性記憶體的具有所述設定值的所述對應單元,以及將所識別對應單元的所述字中的所述一個寫入到所述暫存器。
TW109130709A 2019-09-30 2020-09-08 備份、復原和恢復暫存器值的方法和系統 TWI768459B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962908016P 2019-09-30 2019-09-30
US62/908,016 2019-09-30
US17/010,058 2020-09-02
US17/010,058 US11295792B2 (en) 2019-09-30 2020-09-02 Back-up and restoration of register data

Publications (2)

Publication Number Publication Date
TW202123008A TW202123008A (zh) 2021-06-16
TWI768459B true TWI768459B (zh) 2022-06-21

Family

ID=75163661

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109130709A TWI768459B (zh) 2019-09-30 2020-09-08 備份、復原和恢復暫存器值的方法和系統

Country Status (3)

Country Link
US (3) US11295792B2 (zh)
KR (1) KR102389534B1 (zh)
TW (1) TWI768459B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295792B2 (en) * 2019-09-30 2022-04-05 Taiwan Semiconductor Manufacturing Company, Ltd. Back-up and restoration of register data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW544585B (en) * 2000-10-02 2003-08-01 Ibm Method and apparatus for suspending and resuming operation of a computer system
CN1447243A (zh) * 2002-03-25 2003-10-08 太和科技股份有限公司 快闪存储器中快速且能防止不正常断电的演算法及其控制系统
US20090172350A1 (en) * 2007-12-28 2009-07-02 Unity Semiconductor Corporation Non-volatile processor register
CN106557438A (zh) * 2015-09-30 2017-04-05 中兴通讯股份有限公司 一种掉电保护的方法、装置和电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1131137A (ja) 1997-07-11 1999-02-02 Nec Corp レジスタファイル
JP2004080451A (ja) 2002-08-20 2004-03-11 Nec Commun Syst Ltd ホームロケーションレジスタ位置情報復旧方法
US8032787B2 (en) 2004-09-02 2011-10-04 Intel Corporation Volatile storage based power loss recovery mechanism
JP2008282137A (ja) 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 情報処理装置およびデータ退避方法
JP5452041B2 (ja) 2009-03-13 2014-03-26 ローム株式会社 データ処理装置
JP2011090642A (ja) 2009-10-26 2011-05-06 Toshiba Corp 制御装置、制御システム、及びその起動方法
CN103150125B (zh) 2013-02-20 2015-06-17 郑州信大捷安信息技术股份有限公司 提高掉电保护数据缓冲存储器使用寿命的方法及智能卡
KR102156284B1 (ko) 2013-11-27 2020-09-15 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈
US9348705B1 (en) 2014-06-26 2016-05-24 Inphi Corporation Memory controller system with non-volatile backup storage
US10847242B2 (en) * 2014-07-23 2020-11-24 Texas Instruments Incorporated Computing register with non-volatile-logic data storage
CN107615387B (zh) 2015-06-19 2021-12-21 爱德斯托科技有限公司 存储器装置和控制存储器装置中的超深掉电模式的方法
US10430296B2 (en) * 2017-09-29 2019-10-01 Allegro Microsystems, Llc Circuit and method for storing information in non-volatile memory during a loss of power event
US10268578B1 (en) 2017-09-29 2019-04-23 Intel Corporation Data preservation and recovery in a memory component
KR20190068902A (ko) 2017-12-11 2019-06-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR102485812B1 (ko) 2017-12-19 2023-01-09 에스케이하이닉스 주식회사 메모리 시스템과 메모리 시스템의 동작방법 및 메모리 시스템을 포함하는 데이터 처리 시스템
CN109885343B (zh) 2019-02-25 2022-03-29 深圳忆联信息系统有限公司 一种控制器低功耗启动方法、装置、计算机设备及存储介质
CN110007738B (zh) 2019-03-26 2023-04-21 中国工程物理研究院电子工程研究所 适用于敏感电路的抗瞬时电离辐射复位后运行状态重构方法
US11295792B2 (en) * 2019-09-30 2022-04-05 Taiwan Semiconductor Manufacturing Company, Ltd. Back-up and restoration of register data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW544585B (en) * 2000-10-02 2003-08-01 Ibm Method and apparatus for suspending and resuming operation of a computer system
CN1447243A (zh) * 2002-03-25 2003-10-08 太和科技股份有限公司 快闪存储器中快速且能防止不正常断电的演算法及其控制系统
US20090172350A1 (en) * 2007-12-28 2009-07-02 Unity Semiconductor Corporation Non-volatile processor register
CN106557438A (zh) * 2015-09-30 2017-04-05 中兴通讯股份有限公司 一种掉电保护的方法、装置和电子设备

Also Published As

Publication number Publication date
KR20210038834A (ko) 2021-04-08
US11636884B2 (en) 2023-04-25
US20210096963A1 (en) 2021-04-01
KR102389534B1 (ko) 2022-04-22
US20220157355A1 (en) 2022-05-19
US20230260559A1 (en) 2023-08-17
TW202123008A (zh) 2021-06-16
US11295792B2 (en) 2022-04-05
US12073916B2 (en) 2024-08-27

Similar Documents

Publication Publication Date Title
US20200218602A1 (en) Data Storage Devices and Methods for Rebuilding a Memory Address Mapping Table
US9916116B2 (en) Memory access and detecting memory failures using dynamically replicated memory based on a replication policy
US8799555B2 (en) Boot data storage schemes for electronic devices
US20140181615A1 (en) Method, system and apparatus for providing access to error correction information
US20170242822A1 (en) Dram appliance for data persistence
US9122598B2 (en) Semiconductor device and operating method thereof
US11520487B2 (en) Managing write operations during a power loss
US11354192B2 (en) Data storage devices and methods for firmware failure prevention
WO2013090135A1 (en) Mount-time reconciliation of data availability
US12073916B2 (en) Back-up and restoration of register data
US20230077248A1 (en) Memory device for performing smart refresh operation and memory system including the same
US10437784B2 (en) Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device
US8423865B2 (en) Apparatus and method for storing data using non-volatile buffer
KR102554418B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 장치
US11886728B2 (en) Undo capability for memory devices
CN112579349B (zh) 备份、复原和恢复寄存器值的方法和系统
US10452312B2 (en) Apparatus, system, and method to determine a demarcation voltage to use to read a non-volatile memory
US20220179581A1 (en) Memory system and controller of memory system
JPWO2021034391A5 (zh)
US10872008B2 (en) Data recovery after storage failure in a memory system
US9128887B2 (en) Using a buffer to replace failed memory cells in a memory component
US20240184454A1 (en) Storage device and operating method of the same
US20240111623A1 (en) Extended protection storage system put operation
US10331363B2 (en) Monitoring modifications to data blocks
US20220334761A1 (en) Memory system having system buffer and method of operating the memory system