KR102389534B1 - 레지스터 데이터 백업 및 복구 - Google Patents
레지스터 데이터 백업 및 복구 Download PDFInfo
- Publication number
- KR102389534B1 KR102389534B1 KR1020200126365A KR20200126365A KR102389534B1 KR 102389534 B1 KR102389534 B1 KR 102389534B1 KR 1020200126365 A KR1020200126365 A KR 1020200126365A KR 20200126365 A KR20200126365 A KR 20200126365A KR 102389534 B1 KR102389534 B1 KR 102389534B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- volatile memory
- cell
- value
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- 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/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4072—Circuits for initialization, powering up or down, clearing memory or presetting
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
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
시스템은 프로세서; 복수의 워드를 저장하도록 구성된 레지스터; 복수의 셀을 갖는 비휘발성 메모리 - 각각의 셀은 레지스터의 워드 중 하나에 대응하고, 복수의 셀의 각각의 셀은 초기 리셋 값으로 설정됨 - ; 전력 손실에 응답하여, 레지스터에 의해 저장된 워드를 결정하고, 레지스터에 의해 저장된 결정된 워드에 대응하는 비휘발성 메모리 셀의 초기 리셋 값을 설정 값으로 변경하도록 구성된 제 1 제어기; 및 전력 복구에 응답하여, 설정 값을 갖는 셀을 식별하고, 식별된 셀에 대응하는 워드를 레지스터에 기록하며, 비휘발성 메모리 셀을 초기 리셋 값으로 리셋하도록 구성된 제 2 제어기를 포함한다.
Description
본 발명은, 레지스터 데이터 백업 및 복구에 관한 것이다.
일반적으로, 컴퓨팅 시스템은 레지스터를 포함하여 하나 이상의 프로세서와 메모리를 포함한다. 일반적으로, 레지스터는 소량의 빠른 저장소로 구성된다. 레지스터는 CPU가 자주 사용하는 데이터, 명령어 및 메모리 주소를 일시적으로 보유한다. 데이터 레지스터, 주소 레지스터, 프로그램 카운터, 메모리 데이터 레지스터, 메모리 버퍼 레지스터 등을 비롯한 다양한 유형의 레지스터가 있으며, 각각은 특수 목적으로 사용된다.
레지스터는 휘발성 또는 비휘발성일 수 있다. 휘발성 레지스터의 경우, 컴퓨팅 시스템의 전력 손실로 인해 레지스터의 값이 손실될 수 있다. 레지스터에 저장된 가치 있는 데이터의 손실을 방지하는 한 가지 예는 비휘발성 메모리에 레지스터의 데이터 값을 백업하는 것이다. 일반적으로, 레지스터를 백업하는 것은 레지스터 데이터의 각 비트의 사본을 비휘발성 메모리의 대응 비트에 저장하는 것을 포함한다. 그러나, 전력 손실의 경우, 남은 전력을 사용하여 레지스터 데이터를 빠르게 백업하는 것은 레지스터의 데이터 비트 수가 증가함에 따라 달성하기가 어려워진다.
본 개시의 양태들은 첨부 도면들과 함께 아래의 상세한 설명을 읽음으로써 가장 잘 이해된다. 본 산업계에서의 표준적인 실시에 따라, 다양한 피처들은 실척도로 도시되지 않았음을 유념한다. 사실, 다양한 피처들의 치수는 설명의 명료함을 위해 임의적으로 증가되거나 또는 감소될 수 있다.
도 1은 일부 실시예들에 따른 비휘발성 메모리를 사용하는 고속 레지스터 백업 시스템의 예를 도시하는 블록도이다.
도 2는 일부 실시예들에 따른 전력 손실 이벤트 동안의 백업 방법의 예를 도시하는 흐름도이다.
도 3은 일부 실시예들에 따른 전력 투입 이벤트 동안의 복구 방법의 예를 도시하는 흐름도이다.
도 4는 일부 실시예들에 따른 레지스터 값과 추가 비휘발성 메모리 셀 위치 사이의 예시적인 매핑을 도시하는 표이다.
도 5a 및 도 5b는 일부 실시예들에 따른 고속 레지스터 백업 시스템과 연관된 예시적인 전력 손실 및 전력 복구 동작을 도시한다.
도 6은 일부 실시예들에 따른 결합된 복구 및 백업 방법의 예를 도시하는 흐름도이다.
도 1은 일부 실시예들에 따른 비휘발성 메모리를 사용하는 고속 레지스터 백업 시스템의 예를 도시하는 블록도이다.
도 2는 일부 실시예들에 따른 전력 손실 이벤트 동안의 백업 방법의 예를 도시하는 흐름도이다.
도 3은 일부 실시예들에 따른 전력 투입 이벤트 동안의 복구 방법의 예를 도시하는 흐름도이다.
도 4는 일부 실시예들에 따른 레지스터 값과 추가 비휘발성 메모리 셀 위치 사이의 예시적인 매핑을 도시하는 표이다.
도 5a 및 도 5b는 일부 실시예들에 따른 고속 레지스터 백업 시스템과 연관된 예시적인 전력 손실 및 전력 복구 동작을 도시한다.
도 6은 일부 실시예들에 따른 결합된 복구 및 백업 방법의 예를 도시하는 흐름도이다.
다음의 개시는 제공된 주제의 상이한 피처들을 구현하기 위한 다수의 상이한 실시예들 또는 예들을 제공한다. 본 개시를 간략화하기 위해 컴포넌트들 및 배치들의 특정 예들이 아래에서 설명된다. 물론, 이러한 설명은 단지 예일 뿐 제한하기 위한 것이 아니다. 예를 들어, 본 개시는 다양한 예들에서 참조 번호 및/또는 문자를 반복할 수 있다. 이러한 반복은 간략함과 명료함을 위한 것으로, 이러한 반복 그 자체가 논의된 다양한 실시예들 및/또는 구성들 사이의 관계를 지시하는 것은 아니다.
더욱이, "아래", "밑", "하위", "위", "상위" 등과 같은 공간적으로 상대적인 용어들이 도면들에 도시된 바와 같이 다른 요소(들) 또는 피처(들)에 대한 하나의 요소 또는 피처의 관계를 설명하는 데 설명의 용이함을 위해 본 명세서에서 사용될 수 있다. 공간적으로 상대적인 용어들은 도면들에 도시된 방향은 물론 사용 중이거나 동작 중인 디바이스의 상이한 방향을 포함하기 위한 것이다. 장치는 다른 식으로 배향될 수 있고(90도 회전 또는 다른 방향으로 있음), 그에 맞춰 본 명세서에서 사용되는 공간적으로 상대적인 기술어들이 마찬가지로 이해될 수 있다.
일반적으로, 컴퓨팅 시스템은 레지스터를 사용하여 프로세서가 빠르게 액세스해야 하는 소량의 데이터를 저장한다. 레지스터는 일반적으로 보유할 수 있는 비트 수로 측정되며, 예를 들어, 4 비트 레지스터, 8 비트 레지스터 등이 있다. 컴퓨팅 시스템은 주소 레지스터, 사용자 액세스 가능 레지스터, 상태 레지스터, 범용 레지스터, 명령어 레지스터, 메모리 버퍼 레지스터, 메모리 데이터 레지스터 및 특수 목적 레지스터를 포함하지만 이에 제한되지 않는 여러 상이한 종류의 레지스터를 사용할 수 있다. 레지스터는 일반적으로 휘발성이지만 때로는 비휘발성일 수도 있다.
휘발성 메모리는 저장된 정보를 유지하기 위해 전력이 필요한 컴퓨터 저장소의 한 유형이다. 휘발성 메모리는 전력이 켜져 있는 동안 데이터를 유지하지만 전력이 차단되면 저장된 데이터가 손실된다. 반대로, 플래시, 레지스터 RAM, 자기 RAM, 전자퓨즈 RAM, 안티퓨즈 RAM 등을 포함하는 비휘발성 메모리 회로는 비휘발성 메모리 회로의 전력 손실에 의해 영향을 받지 않는 상태(예를 들어, 특정 전하)를 가정하여 데이터를 저장하도록 설계된다. 따라서, 비휘발성 메모리는 데이터 손실을 방지하기 위해 일반적으로 휘발성 메모리에 저장되는 중요한 데이터를 백업하는 데 사용될 수 있다. 휘발성 레지스터를 사용하는 컴퓨팅 시스템의 경우, 전력 손실 이벤트 경우에 데이터를 손실하지 않도록 레지스터 데이터를 비휘발성 메모리에 백업할 필요가 있다.
일반적으로, 컴퓨팅 시스템이 전력을 손실하거나 전력이 불안정해지면, 제한된 남은 전력이 일반적으로 레지스터 로그를 기록하거나 비휘발성 메모리 셀에 레지스터 로그를 백업하는 데 사용된다. 이는 비휘발성 메모리 셀을 업데이트하는 데 짧은 시간만 사용할 수 있음을 의미할 수 있다. 예를 들어, 4 비트 휘발성 레지스터를 사용하는 경우, 전력 손실이 발생하면, 레지스터 데이터를 보존하기 위해 4 비트 각각을 비휘발성 메모리에 기록해야 한다. 그러나, 사용 가능한 전력은 제한될 수 있으며, 모든 레지스터 데이터 비트에 대한 백업 동작을 완료하는 데 충분하지 않을 수 있다. 따라서, 레지스터 데이터 비트의 볼륨에 따라, 컴퓨팅 디바이스는 결국 백업 동작을 완료하지 못할 수 있다.
개시된 실시예들은 더 빠르고 더 신뢰할 수 있는 방식으로 데이터를 백업하는 방법을 제공한다. 일 실시예에서, 추가 비휘발성 메모리가 추가되고, 추가 비휘발성 메모리 내의 각각의 셀 번호/위치는 레지스터 데이터 워드 값에 각각 대응한다. 처음에는, 추가 비휘발성 메모리의 데이터 비트는 동일한 값으로, 예를 들어, 모두 0 또는 모두 1로 리셋된다. 전력 손실 발생하면, 레지스터의 데이터 값에 대응하는 셀 번호/위치가 발견되고, 해당 셀 위치의 데이터는 반전된다. 전력이 복구되면, 추가 비휘발성 메모리의 데이터 비트를 검색하여 반전된 값에 대응하는 셀 번호/위치를 획득할 수 있다. 따라서, 획득된 셀 번호/위치는 대응하는 워드 값을 식별하는 데 사용될 수 있으며, 그런 다음 이 값은 전력 복구 시 레지스터 데이터 값을 복구하는 데 사용된다.
도 1은 비휘발성 메모리를 사용하는 고속 레지스터 백업 시스템의 예를 도시하는 블록도이다. 일 예에서, 고속 레지스터 백업 시스템(100)의 하드웨어 구현은 레지스터(112), 제 1 메모리(114), 제 2 메모리(116), 기록 제어기(118) 및 리콜 제어기(120)를 포함하는 컴퓨팅 시스템(110)을 포함한다. 일부 실시예들에서, 제 1 메모리(114) 및 제 2 메모리(116)는 비휘발성 메모리이지만, 다른 구성이 본 개시의 범위 내에 있다.
일 예에서, 레지스터(112)는 컴퓨팅 시스템(110)의 프로세서에 의해 빠르게 액세스되어야 하는 소량의 데이터를 저장하도록 구성된다. 레지스터 크기는 다양할 수 있으며, 일반적으로 레지스터에 저장될 수 있는 비트 수로 측정된다. 예를 들어, n 비트의 정보(즉, 4 비트 워드)를 저장하는 레지스터는 n 비트 레지스터로 간주된다. 레지스터 크기는 다양할 수 있으며, 4 비트 레지스터, 8 비트 레지스터, 16 비트 레지스터, 32 비트 레지스터 등을 포함할 수 있다. 레지스터 데이터는 일반적으로 0과 1을 의미하는 이진수로 저장된다. 그러나, 16 진수 시스템과 같은 다른 시스템을 사용하여 데이터를 저장할 수도 있다. 일부 예들에서, 레지스터(112)는 주소 레지스터, 사용자 액세스 가능 레지스터, 상태 레지스터, 범용 레지스터, 명령어 레지스터, 메모리 버퍼 레지스터, 메모리 데이터 레지스터 및 특수 목적 레지스터를 포함하지만 이에 제한되지 않는다. 레지스터는 일반적으로 휘발성이지만 때로는 비휘발성일 수도 있다. 일 예에서, 레지스터(112)는 제 1 비휘발성 메모리(114), 제 2 비휘발성 메모리(116), 기록 제어기(118) 및 리콜 제어기(120)에 직접 또는 간접적으로 연결된다.
일 예에서, 제 1 메모리(114)는 레지스터(112)에 연결된 비휘발성 메모리이다. 그러나, 고속 레지스터 백업 시스템(100)의 다른 예에서, 제 1 비휘발성 메모리(114)는 레지스터(112)에 연결되지 않거나 컴퓨팅 시스템(110)에 전혀 포함되지 않을 수 있다. 제 1 비휘발성 메모리(114)는 컴퓨팅 시스템(110) 내에 임의의 유형의 데이터를 저장하는 데 사용된다. 레지스터(112)는 레지스터가 수행하도록 구성된 것 그리고 그 당시의 프로세서의 요구에 기초하여 레지스터(112) 자체로 데이터를 이동시키기 위해 제 1 비휘발성 메모리(114)에 액세스할 수 있다. 예를 들어, 컴퓨팅 시스템(110)의 일부로 구성된 프로세서가 제 1 비휘발성 메모리(114)에 위치한 데이터를 처리하고 있고 프로세서가 해당 데이터에 자주 액세스해야 하는 경우, 데이터는 제 1 비휘발성 메모리(114)로부터 추출되어 레지스터(112)에 저장될 수 있다. 프로세서가 데이터 처리를 완료한 후, 처리된 데이터는 레지스터(112)로부터 제거되고 제 1 비휘발성 메모리(114)에 다시 저장될 수 있다.
일 예에서, 고속 레지스터 백업 시스템(100)은 제 2 비휘발성 메모리(116)를 포함한다. 제 2 비휘발성 메모리(116)는 전력 손실의 경우 레지스터(112)로부터 데이터의 백업을 저장하도록 컴퓨팅 시스템(110)에 의해 할당된다. 제 2 비휘발성 메모리(116)의 크기는 레지스터(112)의 크기에 따라 달라질 수 있다. 이진 시스템의 경우, n 비트 레지스터의 경우, 제 2 비휘발성 메모리(116)의 크기는 2n 비트이다. 예를 들어, 4 비트 레지스터의 경우, 컴퓨팅 시스템(110)은 16 비트의 비휘발성 메모리를 제 2 비휘발성 메모리(116)로 할당한다. 제 2 비휘발성 메모리(116) 내의 모든 셀은 초기 리셋 값으로 리셋된다. 초기 리셋 값은 0 또는 1일 수 있다.
일 예에서, 고속 레지스터 백업 시스템(100)은 하나 이상의 메모리 제어기를 포함한다. 일반적으로, 메모리 제어기는 이 경우에 레지스터(112), 제 1 비휘발성 메모리(114) 및 제 2 비휘발성 메모리(116)를 비롯한 컴퓨터 메모리로 들어가고 나가는 데이터의 흐름을 관리하는 디지털 회로이다. 일 예에서, 고속 레지스터 백업 시스템(100)은 기록 제어기(118) 및 리콜 제어기(120)를 포함한다.
일 예에서, 제어기는 기록 제어기(118) 및 리콜 제어기(120)를 포함한다. 기록 제어기(118)는 백업되어야 하는 임의의 업데이트된 데이터를 레지스터(112)가 갖는지를 검사하기 위해 사용된다. 또한, 기록 제어기(118)는 또한 프로그래밍 프로세스를 수행하기 위해, 특히 전력 손실이 발생할 때 제 2 비휘발성 메모리(116)의 데이터 비트를 설정하기 위해 사용된다.
일 예에서, 리콜 제어기(120)는 컴퓨팅 시스템이 전력을 복구하면 백업된 데이터로 레지스터(112)를 업데이트하도록 구성된다. 레지스터(112)를 업데이트하는 프로세스는 미리 결정된 값 또는 표시자를 갖는 셀을 식별하기 위해 제 2 비휘발성 메모리(116)를 검색하는 것, 식별 값을 갖는 셀을 전력 손실 이전의 레지스터의 데이터 값으로 역 매핑하는 것, 및 복구된 데이터 값으로 레지스터(116)를 업데이트하는 것을 포함할 수 있다. 추가 비휘발성 메모리 셀을 레지스터의 데이터 값에 매핑하고 역 매핑하는 프로세스는 도 4와 관련하여 자세히 설명된다.
도 2는 전력 손실 이벤트 동안 고속 레지스터 백업 시스템을 사용하는 백업 방법의 예를 도시하는 흐름도(200)이다. 초기에, 예시적인 동작(210) 동안, 고속 레지스터 백업 시스템(100)은 전력 손실 이벤트를 검출한다. 전력 손실 이벤트는 컴퓨팅 시스템(110)에 대한 전력의 완전한 손실 또는 컴퓨팅 시스템(110)에 대한 전력의 불안정성을 비롯한 컴퓨팅 시스템(110)에 대한 임의의 전력 중단을 포함할 수 있다. 전력 손실 이벤트를 검출하면, 예시적인 동작(220)에서, 기록 제어기(118)는 레지스터 데이터가 백업되는 것으로부터 이익을 얻을 수 있는 임의의 업데이트를 가졌는지 보기 위해 레지스터(112)의 데이터를 검사한다.
동작(220)에 기초하여, 백업되어야 하는 레지스터 데이터에 대한 업데이트가 있었다고 결정하면, 예시적인 동작(230)에서, 기록 제어기(118)는 레지스터 데이터를 분석하고 레지스터 데이터와 연관된 워드 값을 결정한다. 일 예에서, n 비트 데이터의 워드 값은 n 비트의 십진수 등가물일 수 있다. 예를 들어, "1001" 이진 비트(제 4 비트: 1, 제 3 비트: 0, 제 2 비트: 0 및 제 1 비트: 1)를 갖는 4 비트 워드를 포함하는 4 비트 레지스터의 경우, 예시적인 워드 값은 9이다. 레지스터의 워드 값은 백업 프로세스에서 사용될 추가 비휘발성 메모리 셀을 식별하기 위해 동작(230)에서 결정된다. 레지스터 데이터의 워드 값과 레지스터 데이터가 백업되는 비휘발성 메모리 셀 사이의 예시적인 매핑이 도 4와 관련하여 더 자세히 설명된다.
예시적인 동작(240)에서, 레지스터 데이터의 워드 값에 대응하는 식별된 제 2 비휘발성 메모리 셀이 설정 값으로 설정된다. 도시된 예에서, 설정 값은 모든 비휘발성 메모리 셀이 설정되는 초기 리셋 값의 역이다. 이진 시스템의 경우, 제 2 비휘발성 메모리(116)의 각 셀이 초기 리셋 값 1로 설정되면, 레지스터 데이터가 백업될 때, 레지스터 워드 값에 매핑된 셀은 초기 리셋 값 1의 역인 설정 값 0으로 설정된다. 마찬가지로, 초기 리셋 값을 0으로 설정하면, 초기 리셋 값의 역인 설정 값은 1이 된다. 추가 비휘발성 메모리의 초기 리셋 값은 이진 시스템에서 0 또는 1이 될 수 있다. 백업 프로세스는 레지스터(112)의 워드 값을 용이하게 식별하는 방식으로 추가 비휘발성 메모리 셀을 표시하도록 구성된다.
레지스터 데이터와 연관된 각각의 가능한 워드 값이 제 2 비휘발성 메모리(116)의 셀 중 대응하는 셀에 매핑되기 때문에, 레지스터 데이터를 완전히 백업하기 위해 제 2 비휘발성 메모리(116)의 1 비트만 설정하면 된다. 이 경우, 레지스터의 크기는 중요하지 않다. 레지스터의 크기에 상관없이, 고속 레지스터 백업 시스템을 사용하여 레지스터 데이터를 백업하기 위해 1 비트만 설정하면 된다. 백업 프로세스 동안 1 비트만 업데이트하면 레지스터의 각각의 비트를 백업해야 하는 기존 백업 방법보다 빠른 백업 시스템을 만들 수 있다. 따라서, 기존 백업 시스템에서는, 4 비트 레지스터의 경우, 비휘발성 메모리의 4 비트를 업데이트해야 하고, 8 비트 레지스터의 경우, 비휘발성 메모리의 8 비트를 업데이트해야 하며, 이런 식으로 업데이트해야 한다. 고속 레지스터 백업 시스템은 전력 손실 이벤트 동안 1 비트만 업데이트하면 되므로, 전체 전력 손실 전에 백업 프로세스를 완료할 수 있는 확률이 증가하기 때문에 고속 레지스터 백업 시스템은 또한 더 신뢰성 있다.
동작(240)이 완료되면, 동작(250)에서, 고속 백업 프로세스는 완료되고, 전력 손실 동안의 고속 백업 방법(200)은 종료된다. 또한, 기록 제어기(118)가 레지스터가 업데이트되지 않았다고 및/또는 레지스터 데이터가 백업될 필요가 없다고 결정하면, 전력 손실 동안의 고속 백업 방법(200)은 또한 동작(250)에서 종료된다. 단계(250)는 전력 손실 이벤트를 검출하면 시작되는 백업 프로세스를 종료한다.
도 3은 전력 투입 이벤트 동안의 데이터 복구 방법의 예를 도시하는 흐름도(300)이다. 초기에, 예시적인 동작(310) 동안, 고속 레지스터 백업 시스템(100)은 전력 투입 이벤트를 검출한다. 전력 투입 이벤트는 완전한 전력 손실 기간 이후에 고속 레지스터 백업 시스템(100)의 전력 복구, 또는 전력 불안정 기간 이후에 고속 레지스터 백업 시스템(100)의 안정적인 전력 복구를 포함할 수 있다.
동작(310)에서 전력 투입 이벤트가 검출되면, 예시적인 동작(320)에서, 리콜 제어기(120)는 제 2 비휘발성 메모리(116)를 검색하고 설정 값으로 설정된 데이터 값을 갖는 셀을 식별한다. 제 2 비휘발성 메모리(116)의 셀 중 어느 것도 설정 값으로 설정되지 않은 경우, 레지스터(112)가 업데이트되지 않았고 따라서 백업이 필요하지 않았거나 고속 레지스터 백업 시스템(100)이 백업 프로세스를 완료하기에 충분한 시간이 없었음을 비롯한 여러 가지 이유로 레지스터 데이터는 백업되지 않았다. 제 2 비휘발성 메모리(116)의 셀 중 어느 것도 설정 값으로 설정되지 않은 경우, 리콜 제어기는 동작(360)에서 레지스터 데이터 복구 방법을 종료한다. 그렇지 않으면, 리콜 제어기는 흐름도(300)에서 다음 동작으로 진행한다.
예시적인 동작(330)에서, 리콜 제어기는 도 4와 관련하여 보다 상세히 설명된 역 매핑 프로세스를 사용하여 설정 값을 갖는 제 2 비휘발성 메모리(116)의 셀을 기반으로 레지스터(112)의 워드 값을 획득한다. 이어서, 예시적인 동작(340)에서, 레지스터(112)의 식별된 워드 값은 레지스터(112)의 개별 비트의 데이터 값을 복구하기 위해 사용된다.
레지스터(112)가 복구되면, 예시적인 동작(350)에서, 제 2 비휘발성 메모리(116)의 모든 셀의 데이터 값은 초기 리셋 값으로 리셋된다. 리셋 프로세스는 다른 전력 손실 이벤트의 경우에 빠른 백업을 위해 제 2 비휘발성 메모리(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"에 매핑되며, 이런 식으로 매핑된다. 그러나, 레지스터 워드 값과 추가 비휘발성 메모리 셀 위치 사이의 매핑은 본 예시의 경우와 같이 등가의 십진수 값에 대응할 필요가 없다. 예를 들어, 매핑 정보가 저장되고 필요에 따라 고속 레지스터 백업 시스템(100)에 의해 검색 및 사용될 수 있는 한, "0000"은 "15"에 매핑될 수 있거나 "0000"은 "2" 또는 다른 셀 위치에 매핑될 수 있다. 전력 투입 동안, 동일한 매핑 표(400)를 사용하여 레지스터의 워드 값에 설정 값을 갖는 추가 비휘발성 메모리의 셀 위치를 역 매핑할 수 있다.
도 5a 및 도 5b는 4 비트 레지스터의 고속 백업과 연관된 예시적인 전력 손실 동작(500) 및 예시적인 전력 투입 동작(600)을 도시하며, 여기서 레지스터는 "1010"의 워드 값을 갖는다. 특히, 도 5a는 전력 손실 전(510) 및 전력 손실 검출 시(520) 존재하는 레지스터 워드 값(512, 522) 및 대응하는 추가 비휘발성 메모리 셀 번호(514, 524) 및 셀 데이터 값(516, 526)을 도시한다. 전력 손실 전(510), 레지스터 워드 값(512)은 "1010"이다. 이 예의 경우, 4 비트 레지스터에 대응하는 16 개의 추가 비휘발성 메모리 셀이 모두 초기 리셋 값 "1"로 리셋된다. 다른 예에서, 초기 리셋 값은 "1" 대신 "0"일 수 있다.
이 예의 경우, 레지스터 워드 값은 레지스터 워드 값의 십진수 등가물인 셀 번호 또는 위치를 갖는 대응하는 추가 비휘발성 메모리 셀에 매핑된다. 도 4와 관련하여 위에서 논의된 바와 같이, 매핑 방식은 상이한 예들에서 상이할 수 있다. 전력 손실 시(520), 레지스터 워드 값(522)은 데이터 값을 손실한다. 고속 레지스터 백업 시스템(100)은 레지스터 워드 값 "1010"의 십진수 등가물에 대응하는 셀 번호(524)를 찾기 위해 매핑 방식을 사용한다. 이 경우, "1010"의 십진수 등가물은 "10"이다. 따라서, 추가 비휘발성 메모리 셀 번호 "10"의 데이터 값은 초기 리셋 값 "1"에서 설정 값 "0"으로 변경된다. 추가 비휘발성 메모리에 있는 나머지 셀의 데이터 값은 "1"로 유지된다.
도 5b는 전력 복구 시(610) 및 레지스터 데이터 값의 복구가 완료된 후(620) 존재하는 레지스터 워드 값(612, 622) 및 대응하는 추가 비휘발성 메모리 셀 번호(614, 624) 및 셀 데이터 값(616, 626)을 도시한다. 전력 복구 시(610), 레지스터가 전력 손실 시 데이터 값을 잃고 여전히 복구되기를 기다리고 있기 때문에 레지스터 워드 값(612)은 비어있다. 유사하게, 추가 비휘발성 메모리의 셀 번호 "10"은 전력 복구 시(610) 여전히 "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)는 제 2 비휘발성 메모리(116)를 검색하고 설정 값으로 설정된 데이터 값을 갖는 셀을 식별한다. 예시적인 동작(330)에서, 리콜 제어기는 도 4와 관련하여 설명된 것과 같은 역 매핑 프로세스를 사용하여 설정 값을 갖는 제 2 비휘발성 메모리(116)의 셀을 기반으로 레지스터(112)의 워드 값을 획득한다. 이어서, 예시적인 동작(340)에서, 레지스터(112)의 식별된 워드 값은 레지스터(112)의 개별 비트의 데이터 값을 복구하기 위해 사용된다.
레지스터(112)가 복구되면, 예시적인 동작(350)에서, 제 2 비휘발성 메모리(116)의 모든 셀의 데이터 값은 초기 리셋 값으로 리셋된다. 리셋 프로세스는 다른 전력 손실 이벤트의 경우에 빠른 백업을 위해 제 2 비휘발성 메모리(116)의 셀을 준비하기 위해 수행된다. 추가 비휘발성 메모리 셀의 데이터 값을 리셋하면, 레지스터 데이터 복구 방법은 예시적인 동작(360)에서 종료된다.
동작(210)에서, 고속 레지스터 백업 시스템(100)은 전력 손실 이벤트를 검출한다. 전력 손실 이벤트는 컴퓨팅 시스템(110)에 대한 전력의 완전한 손실 또는 컴퓨팅 시스템(110)에 대한 전력의 불안정성을 비롯한 컴퓨팅 시스템(110)에 대한 임의의 전력 중단을 포함할 수 있다. 전력 손실 이벤트를 검출하면, 예시적인 동작(220)에서, 기록 제어기(118)는 레지스터 데이터가 백업되는 것으로부터 이익을 얻을 수 있는 임의의 업데이트를 가졌는지 보기 위해 레지스터(112)의 데이터를 검사한다.
동작(220)에 기초하여, 백업되어야 하는 레지스터 데이터에 대한 업데이트가 있었다고 결정하면, 예시적인 동작(230)에서, 기록 제어기(118)는 레지스터 데이터를 분석하고 레지스터 데이터와 연관된 워드 값을 결정한다. 일 예에서, n 비트 데이터의 워드 값은 n 비트의 십진수 등가물일 수 있다. 레지스터의 워드 값은 백업 프로세스에서 사용될 추가 비휘발성 메모리 셀을 식별하기 위해 동작(230)에서 결정된다.
예시적인 동작(240)에서, 레지스터 데이터의 워드 값에 대응하는 식별된 제 2 비휘발성 메모리 셀이 설정 값으로 설정된다. 도시된 예에서, 설정 값은 모든 비휘발성 메모리 셀이 설정되는 초기 리셋 값의 역이다. 이진 시스템의 경우, 제 2 비휘발성 메모리(116)의 각 셀이 초기 리셋 값 1로 설정되면, 레지스터 데이터가 백업될 때, 레지스터 워드 값에 매핑된 셀은 초기 리셋 값 1의 역인 설정 값 0으로 설정된다. 마찬가지로, 초기 리셋 값을 0으로 설정하면, 초기 리셋 값의 역인 설정 값은 1이 된다. 추가 비휘발성 메모리의 초기 리셋 값은 이진 시스템에서 0 또는 1이 될 수 있다. 백업 프로세스는 레지스터(112)의 워드 값을 용이하게 식별하는 방식으로 추가 비휘발성 메모리 셀을 표시하도록 구성된다.
레지스터 데이터와 연관된 각각의 가능한 워드 값이 제 2 비휘발성 메모리(116)의 셀 중 대응하는 셀에 매핑되기 때문에, 레지스터 데이터를 완전히 백업하기 위해 제 2 비휘발성 메모리(116)의 1 비트만 설정 값으로 설정하면 된다. 이 경우, 레지스터의 크기는 중요하지 않다. 레지스터의 크기에 상관없이, 고속 레지스터 백업 시스템을 사용하여 레지스터 데이터를 백업하기 위해 1 비트만 설정하면 된다. 백업 프로세스 동안 1 비트만 업데이트하면 레지스터의 각각의 비트를 백업해야 하는 기존 백업 방법보다 빠른 백업 시스템을 만들 수 있다. 따라서, 기존 백업 시스템에서는, 4 비트 레지스터의 경우, 비휘발성 메모리의 4 비트를 업데이트해야 하고, 8 비트 레지스터의 경우, 비휘발성 메모리의 8 비트를 업데이트해야 하며, 이런 식으로 업데이트해야 한다. 고속 레지스터 백업 시스템은 전력 손실 이벤트 동안 1 비트만 업데이트하면 되므로, 전체 전력 손실 전에 백업 프로세스를 완료할 수 있는 확률이 증가하기 때문에 고속 레지스터 백업 시스템은 또한 더 신뢰성 있다.
그런 다음, 방법은 전력 투입 감지에 관한 동작(310)으로 복귀한다. 기록 제어기(118)가 동작(220)에서 레지스터가 업데이트되지 않았다고 및/또는 레지스터 데이터가 백업될 필요가 없다고 결정하면, 전력 손실 동안의 고속 백업 방법(200)은 또한 전력 투입 이벤트를 결정하기 위해 동작(310)으로 복귀한다.
일부 실시예들에 따르면, 전력 손실 시 레지스터 값의 고속 백업을 위한 방법이 개시된다. 상기 방법은 복수의 워드를 저장하도록 구성된 레지스터를 제공하는 단계, 및 복수의 셀을 갖는 비휘발성 메모리를 제공하는 단계를 포함하며, 여기서 각각의 셀은 레지스터의 워드 중 하나에 대응한다. 비휘발성 메모리의 각각의 셀은 초기 리셋 값으로 설정된다. 전력 손실 검출에 응답하여, 레지스터에 의해 저장된 워드가 결정되고, 레지스터에 의해 저장된 결정된 워드에 대응하는 비휘발성 메모리 셀의 초기 리셋 값이 설정 값으로 변경된다.
추가 실시예들에 따르면, 전력 복구 시 레지스터 값의 고속 복구를 위한 방법이 개시된다. 상기 방법은 복수의 워드를 저장하도록 구성된 레지스터를 제공하는 단계, 및 복수의 셀을 갖는 비휘발성 메모리를 제공하는 단계를 포함하며, 여기서 각각의 셀은 레지스터의 워드 중 하나에 대응한다. 전력 손실 후 전력 복구 검출에 응답하여, 설정 값을 갖는 셀을 식별하고, 식별된 셀에 대응하는 워드를 레지스터에 기록한다. 그런 다음, 비휘발성 메모리 셀은 초기 리셋 값으로 리셋된다.
다른 실시예들에 따르면, 전력 손실 및 후속 전력 복구 시 레지스터 값의 고속 백업 및 복구를 위한 시스템이 개시된다. 상기 시스템은 데이터를 저장하도록 구성된 제 1 메모리 및 복수의 워드를 저장하도록 구성된 레지스터를 포함한다. 레지스터는 제 1 메모리로부터 데이터를 수신하고 데이터를 복수의 워드 중 하나로 저장하도록 구성된다. 제 2 비휘발성 메모리가 복수의 셀을 갖는다. 복수의 워드 각각은 제 2 비휘발성 메모리의 대응하는 셀을 가지며, 복수의 셀의 각각의 셀은 초기 리셋 값으로 리셋된다. 전력 손실에 응답하여, 제어기가 레지스터에 의해 저장된 복수의 워드 중 하나를 결정하고, 제 2 비휘발성 메모리의 대응하는 셀의 초기 리셋 값을 설정 값으로 변경하도록 구성된다. 전력 복구에 응답하여, 제어기는 설정 값을 갖는 제 2 비휘발성 메모리의 대응하는 셀을 식별하고, 식별된 대응하는 셀의 워드 중 하나를 레지스터에 기록하며, 식별된 대응하는 셀을 초기 리셋 값으로 리셋하도록 구성된다.
본 개시의 양태들을 본 발명 기술 분야의 당업자가 보다 잘 이해할 수 있도록 앞에서는 여러 개의 실시예들의 피처들을 약술했다. 본 발명 기술 분야의 당업자는 여기서 소개한 실시예들의 동일한 목적들을 수행 및/또는 동일한 장점들을 달성하기 위한 다른 공정들 및 구조들을 설계하거나 또는 수정하기 위한 기초로서 본 개시를 자신들이 손쉽게 사용할 수 있다는 것을 알아야 한다. 본 발명 기술 분야의 당업자는 또한 이와 같은 등가적 구성들이 본 개시의 사상과 범위를 이탈하지 않는다는 것과, 본 개시의 사상과 범위를 이탈하지 않고서 본 발명 기술 분야의 당업자가 다양한 변경들, 대체들, 및 변화들을 본 발명에서 행할 수 있다는 것을 자각해야 한다.
[실시예 1]
방법에 있어서,
복수의 워드를 저장하도록 구성된 레지스터를 제공하는 단계;
복수의 셀을 갖는 비휘발성 메모리를 제공하는 단계 - 각각의 셀은 상기 레지스터의 워드 중 하나에 대응함 - ;
상기 비휘발성 메모리의 각각의 셀을 초기 리셋 값으로 설정하는 단계;
전력 손실 검출에 응답하여,
상기 레지스터에 의해 저장된 워드를 결정하는 단계; 및
상기 레지스터에 의해 저장된 상기 결정된 워드에 대응하는 상기 비휘발성 메모리의 셀의 상기 초기 리셋 값을 설정 값으로 변경하는 단계
를 포함하는 방법.
[실시예 2]
실시예 1에 있어서,
전력 복구 검출에 응답하여,
상기 설정 값을 갖는 상기 셀을 식별하는 단계;
상기 식별된 셀에 대응하는 워드를 상기 레지스터에 기록하는 단계; 및
상기 비휘발성 메모리의 셀을 상기 초기 리셋 값으로 리셋하는 단계
를 더 포함하는 방법.
[실시예 3]
실시예 1에 있어서, 상기 비휘발성 메모리의 각각의 셀은 리콜 제어기에 의한 상기 전력 손실 검출에 응답하여 상기 초기 리셋 값으로 설정되는 것인, 방법.
[실시예 4]
실시예 1에 있어서, 상기 복수의 워드 각각은 n 비트를 포함하고, n은 0보다 크거나 같은 정수인 것인, 방법.
[실시예 5]
실시예 4에 있어서, 상기 복수의 워드는 2n 개의 워드를 포함하는 것인, 방법.
[실시예 6]
실시예 4에 있어서, 상기 복수의 셀은 2n 개의 셀을 포함하는 것인, 방법.
[실시예 7]
실시예 1에 있어서,
상기 전력 손실 검출 이후 상기 레지스터가 업데이트되었는지 여부를 결정하는 단계
를 더 포함하는 방법.
[실시예 8]
실시예 2에 있어서, 상기 비휘발성 메모리의 셀은 기록 제어기에 의해 상기 초기 리셋 값으로 리셋되는 것인, 방법.
[실시예 9]
방법에 있어서,
복수의 워드를 저장하도록 구성된 레지스터를 제공하는 단계;
복수의 셀을 갖는 비휘발성 메모리를 제공하는 단계 - 각각의 셀은 상기 레지스터의 워드 중 하나에 대응함 - ;
전력 손실 후 전력 복구 검출에 응답하여,
설정 값을 갖는 셀을 식별하는 단계;
상기 식별된 셀에 대응하는 워드를 상기 레지스터에 기록하는 단계; 및
상기 비휘발성 메모리의 셀을 초기 리셋 값으로 리셋하는 단계
를 포함하는 방법.
[실시예 10]
실시예 9에 있어서,
전력 손실 검출에 응답하여,
상기 레지스터에 의해 저장된 워드를 결정하는 단계;
상기 레지스터에 의해 저장된 상기 결정된 워드에 대응하는 상기 비휘발성 메모리의 셀의 상기 초기 리셋 값을 상기 설정 값으로 변경하는 단계
를 더 포함하는 방법.
[실시예 11]
실시예 9에 있어서, 상기 비휘발성 메모리의 셀은 기록 제어기에 의해 상기 초기 리셋 값으로 리셋되는 것인, 방법.
[실시예 12]
실시예 9에 있어서, 상기 복수의 워드 각각은 n 비트를 포함하고, 상기 복수의 워드는 2n 개의 워드를 포함하고, 상기 복수의 셀은 2n 개의 셀을 포함하는 것인, 방법.
[실시예 13]
실시예 9에 있어서,
상기 전력 손실 이후 상기 레지스터가 업데이트되었음을 식별하는 단계
를 더 포함하는 방법.
[실시예 14]
실시예 10에 있어서, 상기 비휘발성 메모리의 각각의 셀은 리콜 제어기에 의한 상기 전력 손실 검출에 응답하여 상기 초기 리셋 값으로 설정되는 것인, 방법.
[실시예 15]
시스템에 있어서,
데이터를 저장하도록 구성된 제 1 메모리;
복수의 워드를 저장하도록 구성된 레지스터 - 상기 레지스터는 상기 제 1 메모리로부터 상기 데이터를 수신하고 상기 데이터를 상기 복수의 워드 중 하나로 저장하도록 구성됨 - ;
복수의 셀을 갖는 제 2 비휘발성 메모리 - 상기 복수의 워드 각각은 상기 제 2 비휘발성 메모리의 대응하는 셀을 가지며, 상기 복수의 셀의 각각의 셀은 초기 리셋 값으로 설정됨 - ; 및
제어기를 포함하고,
전력 손실에 응답하여, 상기 제어기는,
상기 레지스터에 의해 저장된 상기 복수의 워드 중 하나를 결정하고;
상기 제 2 비휘발성 메모리의 상기 대응하는 셀의 상기 초기 리셋 값을 설정 값으로 변경하도록 구성되며;
전력 복구에 응답하여, 상기 제어기는,
상기 설정 값을 갖는 상기 제 2 비휘발성 메모리의 상기 대응하는 셀을 식별하고;
상기 식별된 대응하는 셀의 상기 워드 중 하나를 상기 레지스터에 기록하며;
상기 식별된 대응하는 셀을 상기 초기 리셋 값으로 리셋하도록 구성되는 것인, 시스템.
[실시예 16]
실시예 15에 있어서, 상기 전력 복구 검출에 응답하여, 상기 제어기는 또한 상기 식별된 대응하는 셀의 상기 워드 중 하나를 상기 제 1 메모리에 기록하도록 구성되는 것인, 시스템.
[실시예 17]
실시예 15에 있어서, 상기 저장된 복수의 워드 각각은 n 비트를 가지며, n은 0보다 크거나 같은 정수이고, 상기 복수의 워드는 2n 개의 워드를 포함하고, 상기 제 2 비휘발성 메모리는 2n 개의 셀을 포함하는 것인, 시스템.
[실시예 18]
실시예 15에 있어서, 상기 제 1 메모리는 비휘발성 메모리인 것인, 시스템.
[실시예 19]
실시예 15에 있어서, 상기 제어기는,
상기 전력 손실에 응답하여, 상기 제 2 비휘발성 메모리의 상기 대응하는 셀의 상기 초기 리셋 값을 상기 설정 값으로 변경하도록 구성된 리콜 제어기; 및
상기 전력 복구에 응답하여, 상기 설정 값을 갖는 상기 제 2 비휘발성 메모리의 상기 대응하는 셀을 식별하고, 상기 식별된 대응하는 셀의 상기 워드 중 하나를 상기 레지스터에 기록하도록 구성된 기록 제어기
를 포함하는 것인, 시스템.
[실시예 20]
실시예 19에 있어서, 상기 기록 제어기는 또한 상기 전력 손실 이후 상기 레지스터가 업데이트되었는지 여부를 식별하도록 구성되는 것인, 시스템.
Claims (10)
- 방법에 있어서,
복수의 워드를 저장하도록 구성된 레지스터를 제공하는 단계;
복수의 셀을 갖는 비휘발성 메모리를 제공하는 단계 - 각각의 셀은 상기 레지스터의 워드 중 하나에 대응함 - ;
상기 비휘발성 메모리의 각각의 셀을 초기 리셋 값으로 설정하는 단계;
전력 손실 검출에 응답하여,
상기 레지스터에 의해 저장된 워드를 결정하는 단계; 및
상기 레지스터에 의해 저장된 상기 결정된 워드에 대응하는 상기 비휘발성 메모리의 셀의 상기 초기 리셋 값을 설정 값으로 변경하는 단계
를 포함하는 방법. - 제 1 항에 있어서,
전력 복구 검출에 응답하여,
상기 설정 값을 갖는 상기 셀을 식별하는 단계;
상기 식별된 셀에 대응하는 워드를 상기 레지스터에 기록하는 단계; 및
상기 비휘발성 메모리의 셀을 상기 초기 리셋 값으로 리셋하는 단계
를 더 포함하는 방법. - 제 1 항에 있어서, 상기 비휘발성 메모리의 각각의 셀은 리콜 제어기에 의한 상기 전력 손실 검출에 응답하여 상기 초기 리셋 값으로 설정되는 것인, 방법.
- 제 1 항에 있어서, 상기 복수의 워드 각각은 n 비트를 포함하고, n은 0보다 크거나 같은 정수인 것인, 방법.
- 제 4 항에 있어서, 상기 복수의 워드는 2n 개의 워드를 포함하는 것인, 방법.
- 제 4 항에 있어서, 상기 복수의 셀은 2n 개의 셀을 포함하는 것인, 방법.
- 제 1 항에 있어서,
상기 전력 손실 검출 이후 상기 레지스터가 업데이트되었는지 여부를 결정하는 단계
를 더 포함하는 방법. - 제 2 항에 있어서, 상기 비휘발성 메모리의 셀은 기록 제어기에 의해 상기 초기 리셋 값으로 리셋되는 것인, 방법.
- 방법에 있어서,
복수의 워드를 저장하도록 구성된 레지스터를 제공하는 단계;
복수의 셀을 갖는 비휘발성 메모리를 제공하는 단계 - 각각의 셀은 상기 레지스터의 워드 중 하나에 대응함 - ;
전력 손실 후 전력 복구 검출에 응답하여,
설정 값을 갖는 셀을 식별하는 단계;
상기 식별된 셀에 대응하는 워드를 상기 레지스터에 기록하는 단계; 및
상기 비휘발성 메모리의 셀을 초기 리셋 값으로 리셋하는 단계
를 포함하는 방법. - 시스템에 있어서,
데이터를 저장하도록 구성된 제 1 메모리;
복수의 워드를 저장하도록 구성된 레지스터 - 상기 레지스터는 상기 제 1 메모리로부터 상기 데이터를 수신하고 상기 데이터를 상기 복수의 워드 중 하나로 저장하도록 구성됨 - ;
복수의 셀을 갖는 제 2 비휘발성 메모리 - 상기 복수의 워드 각각은 상기 제 2 비휘발성 메모리의 대응하는 셀을 가지며, 상기 복수의 셀의 각각의 셀은 초기 리셋 값으로 설정됨 - ; 및
제어기를 포함하고,
전력 손실에 응답하여, 상기 제어기는,
상기 레지스터에 의해 저장된 상기 복수의 워드 중 하나를 결정하고;
상기 제 2 비휘발성 메모리의 상기 대응하는 셀의 상기 초기 리셋 값을 설정 값으로 변경하도록 구성되며;
전력 복구에 응답하여, 상기 제어기는,
상기 설정 값을 갖는 상기 제 2 비휘발성 메모리의 상기 대응하는 셀을 식별하고;
상기 식별된 대응하는 셀의 상기 워드 중 하나를 상기 레지스터에 기록하며;
상기 식별된 대응하는 셀을 상기 초기 리셋 값으로 리셋하도록 구성되는 것인, 시스템.
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 |
---|---|
KR20210038834A KR20210038834A (ko) | 2021-04-08 |
KR102389534B1 true KR102389534B1 (ko) | 2022-04-22 |
Family
ID=75163661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200126365A KR102389534B1 (ko) | 2019-09-30 | 2020-09-28 | 레지스터 데이터 백업 및 복구 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11295792B2 (ko) |
KR (1) | KR102389534B1 (ko) |
TW (1) | TWI768459B (ko) |
Families Citing this family (1)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282137A (ja) | 2007-05-09 | 2008-11-20 | Matsushita Electric Ind Co Ltd | 情報処理装置およびデータ退避方法 |
JP2010217941A (ja) | 2009-03-13 | 2010-09-30 | Rohm Co Ltd | データ処理装置 |
JP2011090642A (ja) | 2009-10-26 | 2011-05-06 | Toshiba Corp | 制御装置、制御システム、及びその起動方法 |
US20170185489A1 (en) | 2014-06-26 | 2017-06-29 | Rambus Inc. | Memory controller system with non-volatile backup storage |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1131137A (ja) | 1997-07-11 | 1999-02-02 | Nec Corp | レジスタファイル |
KR20020026814A (ko) | 2000-10-02 | 2002-04-12 | 포만 제프리 엘 | 컴퓨터 시스템의 중지 및 재개 동작을 위한 방법 및 장치 |
CN1447243A (zh) | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 快闪存储器中快速且能防止不正常断电的演算法及其控制系统 |
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 |
US20090172350A1 (en) | 2007-12-28 | 2009-07-02 | Unity Semiconductor Corporation | Non-volatile processor register |
CN103150125B (zh) | 2013-02-20 | 2015-06-17 | 郑州信大捷安信息技术股份有限公司 | 提高掉电保护数据缓冲存储器使用寿命的方法及智能卡 |
KR102156284B1 (ko) | 2013-11-27 | 2020-09-15 | 에스케이하이닉스 주식회사 | 메모리 및 이를 포함하는 메모리 모듈 |
US10847242B2 (en) * | 2014-07-23 | 2020-11-24 | Texas Instruments Incorporated | Computing register with non-volatile-logic data storage |
US10409505B2 (en) | 2015-06-19 | 2019-09-10 | Adesto Technologies Corporation | Ultra-deep power down mode control in a memory device |
CN106557438A (zh) | 2015-09-30 | 2017-04-05 | 中兴通讯股份有限公司 | 一种掉电保护的方法、装置和电子设备 |
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 |
-
2020
- 2020-09-02 US US17/010,058 patent/US11295792B2/en active Active
- 2020-09-08 TW TW109130709A patent/TWI768459B/zh active
- 2020-09-28 KR KR1020200126365A patent/KR102389534B1/ko active IP Right Grant
-
2022
- 2022-01-28 US US17/587,610 patent/US11636884B2/en active Active
-
2023
- 2023-04-24 US US18/138,305 patent/US12073916B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282137A (ja) | 2007-05-09 | 2008-11-20 | Matsushita Electric Ind Co Ltd | 情報処理装置およびデータ退避方法 |
JP2010217941A (ja) | 2009-03-13 | 2010-09-30 | Rohm Co Ltd | データ処理装置 |
JP2011090642A (ja) | 2009-10-26 | 2011-05-06 | Toshiba Corp | 制御装置、制御システム、及びその起動方法 |
US20170185489A1 (en) | 2014-06-26 | 2017-06-29 | Rambus Inc. | Memory controller system with non-volatile backup storage |
Also Published As
Publication number | Publication date |
---|---|
US20220157355A1 (en) | 2022-05-19 |
US12073916B2 (en) | 2024-08-27 |
US20210096963A1 (en) | 2021-04-01 |
US20230260559A1 (en) | 2023-08-17 |
TWI768459B (zh) | 2022-06-21 |
US11295792B2 (en) | 2022-04-05 |
TW202123008A (zh) | 2021-06-16 |
US11636884B2 (en) | 2023-04-25 |
KR20210038834A (ko) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389954B2 (en) | Memory redundancy to replace addresses with multiple errors | |
US8713381B2 (en) | Systems and methods of using dynamic data for wear leveling in solid-state devices | |
US8799555B2 (en) | Boot data storage schemes for electronic devices | |
US6711663B2 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
US7240178B2 (en) | Non-volatile memory and non-volatile memory data rewriting method | |
US20190317685A1 (en) | Apparatuses and methods for single level cell caching | |
US10635527B2 (en) | Method for processing data stored in a memory device and a data storage device utilizing the same | |
US11354192B2 (en) | Data storage devices and methods for firmware failure prevention | |
US12073916B2 (en) | Back-up and restoration of register data | |
CN110265074B (zh) | 一种层次化多重冗余的磁性随机存储器及其运行方法 | |
US11886728B2 (en) | Undo capability for memory devices | |
US11869568B2 (en) | Memory device for performing smart refresh operation and memory system including the same | |
CN111324549B (zh) | 一种存储器及其控制方法和装置 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN112579349B (zh) | 备份、复原和恢复寄存器值的方法和系统 | |
US11669392B2 (en) | Non-volatile memory | |
US10452312B2 (en) | Apparatus, system, and method to determine a demarcation voltage to use to read a non-volatile memory | |
CN113870931A (zh) | 数据写入和数据读取方法及装置、电子设备和存储介质 | |
CN118506847B (zh) | 存储器存储装置的检测方法及非瞬时计算机可读取记录媒体 | |
CN114518834B (zh) | 一种信息存储方法、装置及电子设备 | |
CN114637626B (zh) | 减少eeprom数据读写出错的方法、装置、设备及可读存储介质 | |
US20220334761A1 (en) | Memory system having system buffer and method of operating the memory system | |
JP2011060082A (ja) | メモリ制御装置 | |
TWI634422B (zh) | 電子裝置及其控制方法 | |
CN113760779A (zh) | 存储器控制器及其操作方法和包括其的存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |