KR20170117532A - 데이터 백업 장치 및 방법 - Google Patents
데이터 백업 장치 및 방법 Download PDFInfo
- Publication number
- KR20170117532A KR20170117532A KR1020177025831A KR20177025831A KR20170117532A KR 20170117532 A KR20170117532 A KR 20170117532A KR 1020177025831 A KR1020177025831 A KR 1020177025831A KR 20177025831 A KR20177025831 A KR 20177025831A KR 20170117532 A KR20170117532 A KR 20170117532A
- Authority
- KR
- South Korea
- Prior art keywords
- cache block
- state
- access sequence
- identifier
- cache
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/1456—Hardware arrangements for backup
-
- 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
-
- 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/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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
Abstract
본 발명은 데이터 백업 장치 및 방법을 제공한다. 데이터 백업 방법에 따르면, 데이터 백업 장치가 파워 온되는 경우, 사망 블록의 개수와 생존 블록의 개수가 카운트되며, 여기서 사망 블록과 생존 블록은 데이터 백업 장치가 파워 온되는 시점에서의 시퀀스 액세스 식별자에 대응한다. 데이터 백업 장치가 파워 오프된 후, 시퀀스 액세스 식별자에 대응하는 샘플링된 캐시 블록의 전체 개수에 대한 파워 온 시점에서의 각 시퀀스 액세스 식별자에 대응하는 사망 블록에 의해 점유되는 비율은 데이터 백업 장치가 파워 온되는 시점에서의 시퀀스 액세스 식별자에 대응하는 사망 블록 및 생존 블록에 대해 카운트된 개수에 따라서 계산된다. 계산된 비율이 미리 설정된 임계값과 비교되고, 휘발성 메모리 유닛 내의 사망 블록이 비교 결과에 따라서 예측된다. 백업 중에, 사망 블록일 것으로 예측되는 캐시 블록은 백업되지 않는다. 이것은 백업 데이터 양을 감소시키고 백업 효율을 향상시킨다.
Description
본 발명은 데이터 백업 기술 분야에 관한 것으로, 구체적으로는 메모리 데이터 백업 장치 및 방법에 관한 것이다.
최근 몇 해, 대형 멀티 코어 컴퓨팅 시스템(예를 들어, 멀티 코어 GPU)의 발전과 함께, 고밀도 및 고성능 온칩 캐시(on-chip cache)에 대한 요구사항이 증가하고 있다. 비교적 높은 누설 전류와 비교적 낮은 집적도 때문에, SRAM(Static Random Access Memory)에 기초한 종래의 캐싱 구조는 고성능 처리 시스템의 발전을 저해하는 장애가 되어 왔다. 반면에, 새로운 유형의 비휘발성 메모리 유닛(Nonvolatile Memory, NVM)은 콤포넌트 저항을 사용하여 데이터를 저장하며, 이론상, 보다 높은 집적도와 또한 매우 낮은 누설 전류를 달성할 수 있으므로, 따라서 종래의 SRAM을 대체하기 위한 이상적인 재료로 여겨진다.
그러나, NVM이 캐시 재료로 직접 사용되면, 기록 전력 소비, 기록 지연속도, 및 기록 내성의 문제들이 발생할 수 있으며, 이로 인해 고속 캐시로 NVM을 응용하는데 제한이 있다. SRAM 및 NVM 둘 다를 포함하는 메모리 구조이기 때문에, 비휘발성 SRAM은 동작 모드에서 데이터를 저장하기 위해 SRAM을 사용하고, 정전시 NVM 유닛에 데이터를 백업할 수 있다. 그러나, 정전 후에, 비휘발성 SRAM은 데이터를 백업하기 위한 전력을 공급하기 위해 비교적 큰 용량의 온칩 에너지 저장 커패시터를 필요로 하며, 이러한 커패시터는 비교적 높은 칩 면적 오버헤드 및 비용 오버헤드를 가져올 수 있다. 또한, 큰 용량의 저장 커패시터는 병렬 백업 과정에서 생성되는 높은 피크 전류가 동반되며, 이로 인해 시스템 안정성이 감소된다. 다른 한편으로, 직렬 백업 방식에서, 백업 시간은 백업 데이터 양이 증가할수록 증가하며, 시스템 성능에 영향을 미치고 백업 과정에서 비교적 높은 데이터 리던던시(redundancy)를 유발한다.
기존의 백업 방법에서, 분할 병렬 압축 구조(segmentation parallel compression architecture, SPaC)가, 도 1에 도시된 바와 같이, 사용된다. SRAM에서 모든 데이터는 압축되고, 따라서 비교적 높은 데이터 리던던시가 있다. 또한, 이러한 방법이 사용되는 경우, 압축 및 압축해제 조작이 데이터 백업 전과 데이터 복원 전에 각각 요구된다. 따라서, 데이터 양이 더 커짐으로써, 보다 긴 압축 및 압축해제 시간이 필요하며, 이것이 시스템 성능에 영향을 미친다.
본 발명의 실시예들은 백업 데이터 양을 감소시키고 백업 효율을 향상시키기 위한 데이터 백업 장치 및 방법을 제공한다.
본 발명의 제1 측면의 실시예는 데이터 백업 장치를 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 상기 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 데이터 백업 장치가 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하도록 구성되고, 상기 시점 T0은 상기 데이터 백업 장치가 파워 온되는 시점이고, 그리고, 상기 프로세서는, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고; 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태(live state)에 있는 것으로 결정하며, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는(evicted) 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태(dead state)에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며; 그리고 카운터에 대한 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 샘플링된 것으로 변경하도록 추가로 구성되며,
상기 데이터 백업 장치가 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 N개의 카운터 그룹의 카운트를 읽으며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 비율을 계산하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비율과 미리 설정된 임계값을 비교하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하고, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하며, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점이다.
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 것은,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하거나, 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 크지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한다.
또한, 본 발명의 제1 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티(dirty) 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제1 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 추가로 결정하고,
상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제2 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 추가로 결정한다.
또한, 본 발명의 제1 측면의 실시예에 따르면, 상기 마이크로프로세서에 의해, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 것은, 상기 마이크로프로세서에 의해, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는 상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵(skip)한다.
또한, 본 발명의 제1 측면의 실시예에 따르면, 상기 미리 설정된 임계값은 0.5이다.
본 발명의 제2 측면의 실시예는 데이터 백업 장치를 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 데이터 백업 장치가 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하도록 구성되고, 상기 시점 T0은 상기 데이터 백업 장치가 파워 온되는 시점이고, 그리고, 상기 프로세서는, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고; 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하며, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며; 그리고 카운터에 대한 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 샘플링된 것으로 변경하도록 추가로 구성되며,
상기 데이터 백업 장치가 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 N개의 카운터 그룹의 카운트를 읽으며, 상기 시점 T0에서의 상기 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 비율을 계산하고, 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 비율에 따라서, 상기 비율이 1 내지 2인 경우 대응하는 액세스 시퀀스 식별자 임계값을 결정하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 액세스 시퀀스 식별자 임계값을 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하고, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점이다.
또한, 본 발명의 제2 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에서 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 것은,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 작지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하거나, 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 크지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한다.
또한, 본 발명의 제2 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티(dirty) 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제1 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 추가로 결정하고,
상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제2 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 추가로 결정한다.
또한, 본 발명의 제2 측면의 실시예에 따르면, 상기 마이크로프로세서에 의해, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 것은, 상기 마이크로프로세서에 의해, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는 상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵한다.
본 발명의 제3 측면의 실시예는 데이터 백업 장치를 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 최근 사용 비트(recently used bit, RUB) 및 상태 비트를 포함하고, 상기 최근 사용 비트는 상기 캐시 블록의 액세스 시퀀스 식별자를 저장하는 데 사용되고, 상기 상태 비트는 상기 캐시 블록이 샘플링되었는지를 식별하는 상태 식별자를 저장하며,
상기 메모리는,
제1 어드레싱 장치 및 제2 어드레싱 장치 ― 상기 제1 어드레싱 장치 및 상기 제2 어드레싱 장치의 입력단들은 둘 다 각 캐시 블록에 연결됨 ―; 및
카운팅 유닛 ― 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 제1 카운터의 입력단은 상기 제1 어드레싱 장치의 출력단에 연결되고, 상기 제2 카운터의 입력단은 상기 제2 어드레싱 장치의 출력단에 연결됨 ―
을 더 포함하고,
상기 데이터 백업 장치가 파워 온된 후,
상기 프로세서는, 상기 비휘발성 메모리 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하며, 상기 초기 액세스 시퀀스 식별자를 상기 캐시 블록의 최근 사용 비트로 기록하고, 상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 비트를 무효(invalid)로 설정하도록 구성되며, 상기 시점 T0는 상기 데이터 백업 장치가 파워 온되는 시점이고,
상기 프로세서는 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하도록 추가로 구성되고, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않은 것과 상기 데이터 조작에 대응하는 캐시 블록이 액세스된 것으로 결정하는 경우, 상기 프로세서는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하고, 그 후 상기 현재의 데이터 조작에 대응하는 캐시 블록의 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하도록 상기 제1 어드레싱 장치를 제어하며, 상기 시점 T0에서 상기 발견된 캐시 블록의 액세스 시퀀스 식별자를 획득하고, 상기 시점 T0에서 상기 획득된 액세스 시퀀스 식별자에 따라서, 상기 시점 T0에서의 상기 시퀀스 액세스 식별자에 대응하는 제1 카운터를 획득하며, 상기 제1 카운터에 대한 카운팅을 수행하고, 그리고 상기 프로세서는 상기 캐시 블록의 상태 식별자를 샘플링된 것으로 변경하거나; 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출된 것으로 결정하는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 제2 어드레싱 장치는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하며, 상기 시점 T0에 상기 발견된 캐시 블록의 액세스 시퀀스 식별자를 획득하고, 상기 시점 T0에서 상기 획득된 액세스 시퀀스 식별자에 따라서, 상기 시점 T0에서의 상기 시퀀스 액세스 식별자에 대응하는 제2 카운터를 획득하며, 상기 제2 카운터에 대한 카운팅을 수행하고, 그리고 상기 프로세서는 상기 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하며,
상기 메모리는,
상기 N개의 카운터 그룹의 제1 카운터의 출력단에 각각 연결된 N개의 천이기; 및
N개의 비교기 ― 각 비교기는 카운터 그룹의 제2 카운터의 출력단과 카운터 그룹의 제1 카운터에 연결된 천이기의 출력단에 각각 연결된 두 개의 입력단을 가짐 ―
를 더 포함하고,
상기 데이터 백업 장치가 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키도록 구성되고, 각 천이기는, 미리 설정된 임계값에 따라서, 상기 천이기에 연결된 제1 카운터를 천이시키며, 각 비교기는 상기 비교기에 연결된 제2 카운터로부터의 입력과 상기 비교기에 연결된 천이기로부터의 입력을 비교하고, 상기 마이크로프로세서는, 각 액세스 시퀀스 식별자에 대응하는 비교기의 출력 결과에 따라서, 상기 비휘발성 메모리 유닛 내 각 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하고, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하며, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점이다.
본 발명의 제3 측면의 실시예에서, 상기 제1 어드레싱 장치는 제1 데이터 선택기 및 제1 디코더를 포함하고, 상기 제2 어드레싱 장치는 제2 데이터 선택기 및 제2 디코더를 포함하며, 상기 제1 데이터 선택기 및 상기 제2 선택 유닛의 입력단들은 둘 다 각 캐시 블록에 연결되고, 상기 제1 디코더 및 상기 제2 디코더의 입력단들은 상기 제1 데이터 선택기 및 상기 제2 데이터 선택기의 출력단들에 각각 연결되며, 상기 제1 디코더 및 상기 제2 디코더의 출력단들은 각 카운터 그룹 내 제1 카운터 및 제2 카운터 그룹의 입력단에 각각 연결되고,
상기 프로세서가, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 상기 생존 상태에 있는 것으로 결정하는 경우, 상기 제1 데이터 선택기는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하고, 상기 시점 T0에서 상기 발견된 캐시 블록의 상기 액세스 시퀀스 식별자를 획득하며, 상기 제1 디코더는 상기 시퀀스 액세스 식별자에 대응하는 제1 카운터를 획득하기 위해 상기 획득된 액세스 시퀀스 식별자를 디코딩하고,
상기 프로세서가, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 상기 사망 상태에 있는 것으로 결정하는 경우, 상기 제2 데이터 선택기는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하고, 상기 시점 T0에서 상기 발견된 캐시 블록의 상기 액세스 시퀀스 식별자를 획득하며, 상기 제2 디코더는 상기 시퀀스 액세스 식별자에 대응하는 제2 카운터를 획득하기 위해 상기 시점 T0에서 상기 획득된 액세스 시퀀스 식별자를 디코딩하고, 그 후 상기 제2 카운터에 대한 카운팅을 수행한다.
본 발명의 제4 측면의 실시예는 데이터 백업 장치에 적용되는 데이터 백업 방법을 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 방법은,
상기 데이터 백업 장치가 파워 온된 후,
상기 비휘발성 메모리 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하는 단계 ― 상기 시점 T0는 상기 데이터 백업 장치가 파워 온되는 시점임 ―; 및
상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스된 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 업데이트하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 샘플링된 것으로 업데이트하는 단계; 및
상기 데이터 백업 장치가 파워 오프된 후,
상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키는 단계;
상기 N개의 카운터 그룹의 카운트를 읽고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 카운트 비율을 계산하는 단계;
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비율과 미리 설정된 임계값을 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계 ― 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점임 ―; 및
상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계를 포함한다.
본 발명의 제4 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에서 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 크지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계를 포함한다.
또한, 본 발명의 제4 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것이라는 것이 추가로 결정되고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것이라는 것이 추가로 결정된다.
또한, 본 발명의 제4 측면의 실시예에 따르면, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계는,
상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하는 단계; 및
상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하는 단계; 또는
상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵하는 단계를 포함한다.
또한, 본 발명의 제4 측면의 실시예에 따르면, 상기 미리 설정된 임계값은 0.5이다.
본 발명의 제5 측면의 실시예는 데이터 백업 장치에 적용되는 데이터 백업 방법을 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 방법은,
상기 데이터 백업 장치가 파워 온된 후,
상기 비휘발성 메모리 유닛내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하는 단계 ― 상기 시점 T0은 상기 데이터 백업 장치가 파워 온되는 시점임 ―; 및
상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스된 것으로 결정되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하며, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며; 그리고 카운터에 대한 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하는 단계; 및
상기 데이터 백업 장치가 파워 오프된 후,
상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키는 단계;
상기 N개의 카운터 그룹의 카운트를 읽고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 비율을 계산하며, 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 비율에 따라서, 상기 비율이 1 내지 2인 경우 대응하는 액세스 시퀀스 식별자 임계값을 결정하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 액세스 시퀀스 식별자 임계값을 비교하는 단계;
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계 ― 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점임 ―; 및
상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계를 포함한다.
또한, 본 발명의 제5 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 작지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 및
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 크지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계를 포함한다.
또한, 본 발명의 제5 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것이라는 것이 추가로 결정되고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것이라는 것이 추가로 결정된다.
또한, 본 발명의 제5 측면의 실시예에 따르면, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계는,
상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하는 단계; 및
상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하는 단계; 또는
상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵하는 단계를 포함한다.
본 발명의 제6 측면의 실시예는 메모리 및 프로세서를 포함하는 데이터 백업 장치를 제공하고, 상기 메모리는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하도록 구성되며,
상기 데이터 백업 장치가 시점 T1에 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율과 미리 설정된 임계값을 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내의 캐시 블록이 상기 시점 T1에 생존 상태의 캐시 블록 또는 사망 상태의 캐시 블록일지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하도록 구성된다.
또한, 본 발명의 제6 측면의 실시예에 따르면, 각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원한 후, 상기 프로세서는 상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하도록 추가로 구성되고,
상기 프로세서는, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하도록 추가로 구성된다.
또한, 본 발명의 제6 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 생존 상태의 캐시 블록 또는 사망 상태의 캐시 블록일 것인지를 예측하는 중에, 상기 마이크로프로세서는 구체적으로,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 마이크로프로세서는 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하거나, 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작은 경우, 상기 마이크로프로세서는 상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하도록 구성된다.
또한, 본 발명의 제6 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티(dirty) 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제1 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 추가로 결정하고,
상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제2 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 추가로 결정한다.
또한, 본 발명의 제6 측면의 실시예에 따르면, 상기 마이크로프로세서에 의해, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 것은, 상기 마이크로프로세서에 의해, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는 상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵(skip)한다.
또한, 본 발명의 제6 측면의 실시예에 따르면, 상기 미리 설정된 임계값은 0.5이다.
본 발명의 제7 측면의 실시예는 데이터 백업 장치를 제공하며, 이 데이터 백업 장치는 메모리 및 프로세서를 포함하고,
상기 메모리는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하는 데 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하도록 구성되며,
상기 데이터 백업 장치가 시점 T1에 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하며, 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자 및 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 상기 계산된 비율에 따라서 공통 액세스 시퀀스 식별자와 공통 비율 사이의 공통 관계를 구축하고, 상기 공통 관계에 따라서, 상기 공통 비율이 1 내지 2인 경우 대응되는 공통 액세스 시퀀스 식별자를 결정하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 결정된 공통 액세스 시퀀스 식별자를 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내의 캐시 블록이 시점 T1에 생존 상태 또는 사망 상태에 있을 것인지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하도록 구성되고, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점이다.
또한, 본 발명의 제7 측면의 실시예에 따르면, 각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원한 후, 상기 프로세서는 상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하도록 추가로 구성되고,
상기 프로세서는, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하도록 추가로 구성된다.
또한, 본 발명의 제7 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 상기 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 중에, 상기 마이크로프로세서는 구체적으로,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 식별자보다 작지 않은 경우, 상기 마이크로프로세서는 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하고,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 시퀀스 식별자보다 작은 경우, 상기 마이크로프로세서는 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하도록 구성된다.
또한, 본 발명의 제7 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제1 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 추가로 결정하고,
상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제2 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 추가로 결정한다.
또한, 본 발명의 제7 측면의 실시예에 따르면, 상기 마이크로프로세서에 의해, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 것은, 상기 마이크로프로세서에 의해, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는 상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵한다.
본 발명의 제8 측면의 실시예는 데이터 백업 장치에 적용되는 데이터 백업 방법을 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하는 데 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 방법은,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후,
상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하는 단계; 및
상기 데이터 백업 장치가 시점 T1에 파워 오프된 후,
상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키는 단계;
상기 시점 T0에서의 각 초기 액세스 시퀀스에 대응하는 캐시 블록 상태 비율을 계산하는 단계;
상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하는 단계; 및
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내 캐시 블록이 상기 시점 T1에 생존 상태의 캐시 블록 또는 사망 상태의 캐시 블록일지를 예측하고, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계를 포함한다.
또한, 본 발명의 제8 측면의 실시예에 따르면, 각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하는 단계 후에,
상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 샘플링된 것으로 변경하는 단계;
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출된 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스된 것으로 결정하는 단계이고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출된 것으로 결정하는 단계는,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출된 것으로 결정하는 단계를 포함한다.
또한, 본 발명의 제8 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작은 경우, 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계를 포함한다.
또한, 본 발명의 제8 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것이라는 것이 추가로 결정되고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것이라는 것이 추가로 결정된다.
또한, 본 발명의 제8 측면의 실시예에 따르면, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계는,
상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하는 단계; 및
상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하는 단계; 또는
상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵하는 단계를 포함한다.
또한, 본 발명의 제8 측면의 실시예에 따르면, 상기 미리 설정된 임계값은 0.5이다.
본 발명의 제9 측면의 실시예는 데이터 백업 장치에 적용되는 데이터 백업 방법을 제공하며, 이 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하는 데 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 방법은,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후,
상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하는 단계;
상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하는 단계;
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자 및 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 상기 계산된 비율에 따라서 공통 액세스 시퀀스 식별자와 공통 비율 사이의 공통 관계를 구축하고, 상기 공통 관계에 따라서, 상기 공통 비율이 1 내지 2인 경우 대응되는 공통 액세스 시퀀스 식별자를 결정하는 단계; 및
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 결정된 공통 액세스 시퀀스 식별자를 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내 캐시 블록이 시점 T1에 생존 상태 또는 사망 상태에 있을 것인지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계
를 포함하고,
상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점이다.
본 발명의 제9 측면의 실시예에 따르면, 각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하는 단계 후에,
상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 샘플링된 것으로 변경하는 단계
를 포함하고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하는 단계이고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계이다.
또한, 본 발명의 제9 측면의 실시예에 따르면, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는 구체적으로,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 식별자보다 작지 않은 경우, 상기 마이크로프로세서에 의해, 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 및
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 시퀀스 식별자보다 작은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계를 포함한다.
또한, 본 발명의 제9 측면의 실시예에 따르면, 각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것이라는 것이 추가로 결정되고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것이라는 것이 추가로 결정되며,
각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛에 복원하는 단계 후에,
상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된것으로 변경하는 단계
를 더 포함하고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하는 단계이고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계이다.
또한, 본 발명의 제9 측면의 실시예에 따르면, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계는,
상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하는 단계; 및
상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는
상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵한다.
본 발명의 실시예에서의 데이터 백업 장치 및 방법에 따르면, 데이터 백업 장치가 파워 온되는 경우, 사망 블록의 개수와 생존 블록의 개수가 카운트되며, 여기서 사망 블록과 생존 블록은 데이터 백업 장치가 파워 온되는 시점에서의 시퀀스 액세스 식별자에 대응한다. 데이터 백업 장치가 파워 오프된 후, 시퀀스 액세스 식별자에 대응하는 샘플링된 캐시 블록의 전체 개수에 대한 파워 온 시점에서의 각 시퀀스 액세스 식별자에 대응하는 사망 블록에 의해 점유되는 비율은 데이터 백업 장치가 파워 온되는 시점에서의 시퀀스 액세스 식별자에 대응하는 사망 블록 및 생존 블록에 대해 카운트된 개수에 따라서 계산된다. 계산된 비율이 미리 설정된 임계값과 비교되고, 휘발성 메모리 유닛 내의 사망 블록이 비교 결과에 따라서 예측된다. 백업 중에, 사망 블록일 것으로 예측되는 캐시 블록은 백업되지 않으며, 이것은 백업 데이터 양을 감소시키고 백업 효율을 향상시킬 수 있다.
본 발명의 실시예 또는 종래 기술의 기술적 해결수단을 더욱 명확히 기술하기 위해, 이하에서 본 발명의 실시예 또는 종래 기술을 설명할 때 필요한 첨부 도면을 간략하게 소개한다. 분명한 것은, 이어질 설명에서 첨부된 도면은 단지 본 발명의 몇 가지 실시예를 나타내며, 통상의 기술자라면 첨부된 도면으로부터 창작 능력 없이도 다른 도면을 도출해 낼 수 있다는 것이다.
도 1은 종래 기술에서 비휘발성 정적 랜덤 액세스 메모리 내의 휘발성 메모리 유닛의 데이터를 비휘발성 정적 랜덤 액세스 메모리 내의 비휘발성 메모리 유닛으로 백업하기 위한 방법의 개략적인 구성도이다.
도 2는 네 방향 세트 연관 메모리(four-way set associative memory)에서의 시퀀스 액세스 식별자의 개략적인 구성도이다.
도 3은 캐시 블록이 액세스된 후 네 방향 세트 연관 메모리 내의 변경된 시퀀스 액세스 식별자의 개략적인 구성도이다.
도 4는 본 발명의 실시예 1에서 제공되는 데이터 백업 장치의 구조도이다.
도 5는 본 발명의 실시예 1에 따라서 각 액세스 시퀀스 식별자에 대응하면서 데이터 백업 장치가 파워 온(power on)되는 경우 계산되는, 비율(proportion)에 의해 표현되는, 비율(ratio)의 개략적인 구성도이다.
도 6은 본 발명의 실시예 2에 따라서 액세스 시퀀스 식별자에 대응하는 계산된 비율의 분포에 기초하여 액세스 시퀀스 식별자 임계값을 결정하는 개략적인 구성도이다.
도 7은 본 발명의 실시예 3에서 제공되는 데이터 백업 장치의 구조도이다.
도 8은 본 발명의 실시예 3에서 제공되는 데이터 백업 장치의 예측 모듈의 구조도이다.
도 9는 본 발명의 실시예 4에서 제공되는 데이터 백업 방법에 따라서 데이터 통계를 위한 방법의 흐름도이다.
도 10은 본 발명의 실시예 4에서 제공되는 데이터 백업 방법에 따라서 데이터를 백업하기 위한 방법의 흐름도이다.
도 11은 본 발명의 실시예 5에서 제공되는 데이터 백업 방법에 따라서 데이터를 백업하기 위한 방법의 흐름도이다.
도 1은 종래 기술에서 비휘발성 정적 랜덤 액세스 메모리 내의 휘발성 메모리 유닛의 데이터를 비휘발성 정적 랜덤 액세스 메모리 내의 비휘발성 메모리 유닛으로 백업하기 위한 방법의 개략적인 구성도이다.
도 2는 네 방향 세트 연관 메모리(four-way set associative memory)에서의 시퀀스 액세스 식별자의 개략적인 구성도이다.
도 3은 캐시 블록이 액세스된 후 네 방향 세트 연관 메모리 내의 변경된 시퀀스 액세스 식별자의 개략적인 구성도이다.
도 4는 본 발명의 실시예 1에서 제공되는 데이터 백업 장치의 구조도이다.
도 5는 본 발명의 실시예 1에 따라서 각 액세스 시퀀스 식별자에 대응하면서 데이터 백업 장치가 파워 온(power on)되는 경우 계산되는, 비율(proportion)에 의해 표현되는, 비율(ratio)의 개략적인 구성도이다.
도 6은 본 발명의 실시예 2에 따라서 액세스 시퀀스 식별자에 대응하는 계산된 비율의 분포에 기초하여 액세스 시퀀스 식별자 임계값을 결정하는 개략적인 구성도이다.
도 7은 본 발명의 실시예 3에서 제공되는 데이터 백업 장치의 구조도이다.
도 8은 본 발명의 실시예 3에서 제공되는 데이터 백업 장치의 예측 모듈의 구조도이다.
도 9는 본 발명의 실시예 4에서 제공되는 데이터 백업 방법에 따라서 데이터 통계를 위한 방법의 흐름도이다.
도 10은 본 발명의 실시예 4에서 제공되는 데이터 백업 방법에 따라서 데이터를 백업하기 위한 방법의 흐름도이다.
도 11은 본 발명의 실시예 5에서 제공되는 데이터 백업 방법에 따라서 데이터를 백업하기 위한 방법의 흐름도이다.
이하 본 발명 실시예의 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결수단을 더욱 명확하고 완전하게 기술한다. 분명한 것은, 설명되는 실시예는 본 발명의 실시예의 전부가 아니라 단지 일부일 뿐이다. 창작 능력 없이 본 발명의 실시예에 기초하여 통상의 기술자에 의해 획득되는 모든 다른 실시예는 본 발명의 보호 범위 내에 속할 것이다.
본 발명의 실시예에서 제공되는 기술적 해결수단은 주로 비휘발성 메모리 유닛과 휘발성 메모리 유닛 둘 다, 예를 들어 비휘발성 SRAM(Nonvolatile Static Random Access Memory, NV-SRAM)을 구비하는 메모리에 적용된다. 메모리와 같은 구조의 메모리를 사용하는 전자 장치가 전원 오프(power off)된 후, 백업 파워 서플라이(power supply)는, 휘발성 메모리 유닛 내의 데이터를 비휘발성 메모리 유닛으로 백업하기 위해 메모리에 전원을 공급하는 데 사용될 수 있다. 설명의 편의를 위해, 본 발명을 설명하기 위해 이하의 실시예에서 NV-SRAM이 예로서 사용된다. 그러나, 본 발명이 적용되는 메모리가 NV-SRAM으로만 한정되는 것은 아니며, 동일한 구조의 다른 메모리가 또한 본 발명에서 개시된 범위 내에 포함된다.
NV-SRAM에서, 휘발성 메모리 유닛은 SRAM이고, 비휘발성 메모리 유닛은 상변화 RAM(phase-change random access memory, PCM)이며, 백업 파워 서플라이는 온칩 에너지 저장 커패시터이다.
본 발명의 실시예에 따른 휘발성 메모리 유닛의 구조도인 도 2에 도시된 바와 같이, 휘발성 메모리 유닛은 N 방향 셋 연관 메모리(N-way set associative memory)이다. N 방향 셋 연관은 휘발성 메모리 유닛의 캐시 블록들이 N 방향 및 M개의 세트(set)로 그룹핑되고, 각 세트는 N개의 캐시 블록을 구비하며, 여기서 N은 1보다 더 크고, M은 1보다 더 크거나 같다. 설명의 편의를 위해, 네 방향 세트 연관 휘발성 메모리 유닛이 여기에서 설명을 위한 예로서 사용된다. 즉, 각 세트는 네 개의 캐시 블록을 갖는다. 일반적으로 N 방향 세트 연관 메모리 유닛은 최근 최소 사용(Least Recent Used, LRU) 치환 알고리즘(replacement algorithm)을 사용한다. 즉, 각 세트 내 모든 캐시 블록이 데이터로 완전히 기록되는 경우, 새로운 데이터가 휘발성 메모리 유닛 내에 기록될 필요가 있는 경우 캐시 블록에서 최소 최근 사용된 데이터가 낮은 등급의 메모리(low-class memory)에 치환된다. 데이터가 낮은 등급의 메모리로 치환되는 캐시 블록은 축출된(evicted) 캐시 블록으로서 간주될 수 있다. 실시예에서, 축출된 캐시 블록은 사망 상태(dead state)의 캐시 블록, 즉 사망 블록(dead block)으로 간주된다. 또한, 무효인 블록으로 표시된 일부 캐시 블록은 유효 데이터를 저장하지 않고, 이들 캐시 블록은 또한 사망 블록으로 고려될 수 있다. 메모리 내의 캐시 블록이 데이터에 대한 읽기/쓰기 조작을 위해 액세스되는 경우, 액세스된 캐시 블록은 생존 상태(live state)의 캐시 블록, 즉 생존 블록(live block)인 것으로 간주될 수 있다.
LRU 알고리즘에서, 액세스 시퀀스 식별자는 일반적으로 각 세트 내의 캐시 블록의 액세스 시퀀스를 식별하는 데 사용된다. 액세스 시퀀스 식별자는 각 캐시 블록의 최근 사용 비트(recent used bit, RUB)를 사용하여 설정될 수 있다. 메모리가 N 방향 세트 연관 메모리이면, 캐시 블록에서 동일한 액세스 시퀀스를 갖는 캐시 블록 세트는 동일한 액세스 시퀀스 식별자를 갖는다. 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경으로 업데이트된다. 더 큰 액세스 시퀀스 식별자 값은 마지막 액세스 시점과 현재 시점 사이의 보다 긴 간격을 지시한다. 그러나, 상반된 시퀀스가 상이한 실시예에서 또한 사용될 수 있다. 즉, 더 큰 액세스 시퀀스 식별자 값은 마지막 액세스 시점과 현재 시점 사이의 보다 짧은 간격을 지시한다. 구체적인 설정은 실제 상황에 따라서 수행될 수 있다. 도 1에 도시된 바와 같이, 각 캐시 블록의 숫자는 각 세트 내의 캐시 블록의 액세스 시퀀스를 지시하고, 액세스 시퀀스 식별자 값은 각 캐시 블록의 액세스 상태에 따라서 동적으로 변경될 수 있다. 도 3에 도시된 바와 같이, 제1 세트 내의 캐시 블록의 액세스 시퀀스가 예로서 사용된다. 액세스 전에, 캐시 블록의 액세스 시퀀스 식별자는 한 방향에서 네 방향까지의 시퀀스에 따라서 각각 0, 1, 2, 및 3이며, 세 방향의 캐시 블록이 액세스되는 경우, 캐시 블록의 액세스 시퀀스 식별자는 1, 2, 0, 및 3으로 변경된다.
본 발명의 실시예에서의 휘발성 메모리 유닛은 또한 완전 연관 구조(fully associative structure)의 메모리일 수 있다. 즉, 휘발성 메모리 유닛 내의 모든 캐시 블록은 한 세트의 캐시 블록으로서 사용될 수 있다.
일반적으로, 전자 장치가 파워 오프된 후, 휘발성 메모리 유닛 내 사망 블록의 데이터를 백업하는 것은 불필요하다. 이들 사망 블록이 미리 인식될 수 있으면, 전자 장치가 파워 오프된 후, 백업되어야 할 데이터의 양이 감소될 수 있으며, 이것은 백업 효율을 향상시킬 수 있다. 본 발명의 실시예에서 제공되는 기술적 해결수단에서, 전자 장치가 파워 오프된 후, 휘발성 메모리 내의 사망 블록은 전자 장치가 파워 온되는 경우 획득되는 통계 값(statistic value)에 따라서 예측될 수 있고, 사망 블록 내의 데이터는 데이터 백업 중에 백업되지 않으며, 이것이 백업 데이터 양을 감소시키고 백업 효율을 향상시킬 수 있다.
이하, 서로 다른 측면으로부터, 본 발명에서 제공되는 기술적 해결수단을 설명하기 위해 서로 다른 실시예들을 사용한다.
실시예
1
실시예 1은 도 4에 도시된 데이터 백업 장치(30)를 제공한다. 데이터 백업 장치(30)는 메모리(11) 및 프로세서(32)를 포함하며, 메모리(31)는 휘발성 메모리 유닛(310), 비휘발성 메모리 유닛(311), 백업 파워 서플라이(312), 마이크로프로세서(315), 및 카운팅 유닛(316)을 포함한다. 데이터 백업 장치(30)가 파워 오프된 후, 백업 파워 서플라이(312)는, 비휘발성 메모리 유닛(310) 내의 데이터를 비휘발성 메모리 유닛(311)으로 백업하기 위해, 메모리(30)에게 전원을 공급하도록 시작된다.
휘발성 메모리 유닛(310)은 M(M≥1)개의 캐시 블록 세트(313)를 포함하고, 각 캐시 블록 세트(313)는 N(N>1)개의 캐시 블록(314)을 포함한다. 캐시 블록 세트(313)에서 동일한 액세스 시퀀스를 갖는 캐시 블록(314)은 동일한 액세스 시퀀스 식별자를 가지고 있고, 각 캐시 블록(314)의 액세스 시퀀스 식별자는 캐시 블록(314)이 캐시 블록 세트(313)에서 액세스되는 시퀀스의 변경과 함께 업데이트된다. 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록(314)의 RUB 내에 저장될 수 있거나, 또는 테이블 내에 기록될 수 있다.
각 캐시 블록(314)은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록(314)이 샘플링되는지를 식별하는 데 사용된다. 본 실시예에서, 샘플링 통계는 휘발성 메모리 유닛(310) 내 캐시 블록(314) 상에서 수집될 필요가 있고, 각 캐시 블록(314)은 단 한번만 샘플링될 수 있다. 캐시 블록(314)이 샘플링되는 지의 여부는 상태 식별자를 설정함으로써 식별된다. 샘플링된 캐시 블록에 대해, 캐시 블록의 상태 식별자는 캐시 블록이 샘플링된 것으로 변경될 수 있다. 상태 식별자가 샘플링된 캐시 블록(314)은 더 이상 샘플링되지 않는다.
카운팅 유닛(316)은 N개의 카운터 그룹(317)을 포함하고, 각 카운터 그룹(317)은 제1 카운터(318) 및 제2 카운터(319)를 포함하며, N개의 카운터 그룹(317)은 N개의 액세스 시퀀스 식별자와 일대일 대응관계를 갖는다. 카운터 유닛(316)에 의해 실행되는 기능들은 이하에서 상세하게 설명된다.
데이터 백업 장치(30)가 파워 온된 후, 프로세서(32)는 비휘발성 메모리 유닛(311) 내에 백업된 데이터를 휘발성 메모리 유닛(310)으로 복원하고, 각 캐시 블록 세트(313) 내의 각 캐시 블록(314)의 액세스 시퀀스 식별자로서 시점 T0에 있는 액세스 시퀀스 식별자를 획득하여 기록하며, 캐시 블록이 샘플링되지 않은 휘발성 메모리 유닛(31) 내에 각 캐시 블록(314)의 상태 식별자를 설정하며, 여기서 시점 T0은 데이터 백업 장치가 파워 온되는 시점이다.
본 실시예에서, 각 캐시 블록(314)의 시점 T0에서의 액세스 시퀀스 식별자는 데이터 백업 장치(30)가 이전에 파워 오프된 때의 캐시 블록(314)의 액세스 시퀀스 식별자이다. 즉, 파워 온될 때마다, 데이터 백업 장치(30)는 비휘발성 메모리 유닛(311) 내에 백업된 데이터를 휘발성 메모리 유닛(310)으로 복원할 뿐만 아니라, 데이터 백업 장치(30)가 이전에 파워 오프된 때의 각 캐시 블록(314)의 액세스 시퀀스 식별자를 복원한다. 또한, 파워 온될 때마다, 데이터 백업 장치(30)는 또한 각 캐시 블록(314)의 상태 식별자를 캐시 블록이 샘플링되지 않은 것처럼 초기화할 수 있다.
프로세서(32)는 휘발성 메모리 유닛(310)에 대한 데이터 조작을 수행하도록 추가로 구성된다. 데이터 조작은, 읽기, 쓰기, 삭제, 또는 교체와 같이, 휘발성 메모리 유닛(310) 내의 캐시 블록(314) 내에 저장된 데이터에 대해 수행되는 조작이다. 데이터 조작을 수행하는 경우, 프로세서(32)는, 데이터 조작에 대응하는 데이터 조작 요청 내의 어드레스 정보에 따라서, 데이터 조작에 대응하는 캐시 블록(314)을 획득한다. 데이터 조작에 대응하는 캐시 블록(314)이 결정된 후, 캐시 블록의 상태 식별자가 결정될 수 있다.
현재의 데이터 조작에 대응하는 캐시 블록(314)의 상태 식별자가 캐시 블록이 샘플링되지 않고 데이터 조작에 대응하는 캐시 블록(314)이 액세스되는 것인 경우, 현재의 데이터 조작에 대응하는 캐시 블록(314)은 생존 상태에 있고, 시점 T0에서의 현재의 데이터 조작에 대응하는 캐시 블록(314)의 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터(318)에 대해 카운팅이 수행되며, 캐시 블록(314)의 상태 식별자는 캐시 블록이 샘플링된 것으로 업데이트된다. 현재의 데이터 조작에 대응하는 캐시 블록(314)의 상태 식별자가 캐시 블록이 샘플링되지 않고 데이터 조작에 대응하는 캐시 블록이 축출되는(evicted) 것인 경우, 현재의 데이터 조작에 대응하는 캐시 블록(314)은 사망 상태에 있고, 시점 T0에서의 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터(319)에 대해 카운팅이 수행되며, 현재의 데이터 조작에 대응하는 캐시 블록(314)의 상태 식별자는 캐시 블록이 샘플링된 것으로 변경된다.
본 실시예에서, 생존 상태에 있는 캐시 블록(314)은 생존 블록이고, 사망 상태에 있는 캐시 블록(314)은 사망 블록이다. 생존 블록가 사망 블록의 정의에 대해서는, 전술한 설명을 참조하며, 상세한 것은 여기에서 중복하여 설명하지 않는다. 또한, 본 실시예에서 샘플링된 캐시 블록(314)은 데이터 백업 장치(30)가 파워 온된 후 처음 액세스되는 캐시 블록(314)과 데이터 백업 장치(30)가 파워 온된 후 처음으로 축출되는 캐시 블록(314)이다.
본 실시예에서, 도 2에 도시된 바와 같이, 각 캐시 블록(314)은 캐시 블록 세트(313) 내의 캐시 블록(314)의 액세스 시퀀스를 식별하기 위해 사용되는 액세스 시퀀스 식별자를 가지며, 따라서, 다수의 캐시 블록 세트 내의 다수의 캐시 블록(314)들은 동일한 액세스 시퀀스 식별자를 갖는다. 각 액세스 시퀀스 식별자에 대응하는 제1 카운터(318)는 액세스 시퀀스 식별자를 갖는 샘플링된 캐시 블록(314) 중에서 생존 블록의 개수를 카운트하는 데 사용되고, 각 액세스 시퀀스 식별자에 대응하는 제2 카운터는 액세스 시퀀스 식별자를 갖는 샘플링된 캐시 블록(314) 중에서 사망 블록의 개수를 카운트하는 데 사용된다.
도 2로부터 알 수 있는 바와 같이, 캐시 블록이 액세스되기 전에 특정 캐시 블록(314)의 액세스 시퀀스 식별자가 "3"인 경우, 캐시 블록이 액세스된 후 캐시 블록(314)의 액세스 식별자는 "0"으로 업데이트된다. 액세스의 초기에 샘플링된 캐시 블록(314)이 아직 액세스되지 않았기 때문에, 캐시 블록(314)의 액세스 시퀀스 식별자는 여전히 시점 T0에서의 액세스 시퀀스 식별자로서 "3"으로 추정된다. 캐시 블록이 액세스된 후, 캐시 블록(314)의 액세스 시퀀스 식별자는 "0"으로 변경된다. 따라서, 프로세서(32)는 시점 T0에 아직 변경되지 않은 액세스 시퀀스 식별자, 즉 "0"이 아닌 "3"을 획득한다.
본 실시예에서, 제1 카운터(318) 및 제2 카운터(319)에 의해 수집되는 통계는 데이터 백업 장치(30)가 파워 오프된 후 0으로 리셋되지 않는다. 따라서, 데이터 백업 장치(30)가 다음 번에 파워 온된 후, 이 때 수집되는 통계에 기초하여 통계가 수집될 수 있다. 이와 같이, 보다 많은 캐시 블록(314)이 샘플링될 수 있고, 따라서, 보다 정확한 예측 결과가 획득된다.
데이터 백업 장치(30)가 파워 오프된 후, 마이크로프로세서(315)는 메모리(31)에게 전원을 공급하기 위해 백업 파워 서플라이(312)를 시작시키고, N개의 카운터 그룹(317)의 카운트를 읽으며, 각 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내 제2 카운터(319)와, 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내에 있는 제1 카운터(318) 및 제2 카운터(319)의 합과의 카운트의 비율을 계산하고, 각 액세스 시퀀스에 대응하는 비율을 미리 설정된 임계값과 비교하며, 각 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 그 비교 결과에 대응하는 액세스 시퀀스 식별자를 갖는 각 캐시 블록(314)이 생존 상태 또는 사망 상태에 있을 것인지를 예측하고, 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 비휘발성 메모리 유닛(311)에게 백업한다.
본 실시예에서, 제1 카운터(318)와 제2 카운터(319)의 합은 각 액세스 시퀀스 식별자에 대응하는 카운트된 사망 블록과 액세스 시퀀스 식별자에 대응하는 카운트된 생존 블록의 합, 즉, 시퀀스 액세스 식별자를 갖는 샘플링된 캐시 블록(314)의 전체 개수이다. 따라서, 마이크로프로세서(315)가 계산하는 것은 동일한 액세스 시퀀스 식별자를 갖는 샘플링된 캐시 블록 중에서 사망 블록에 의해 점유되는 비율이다.
도 5에 도시된 바와 같이, 도 5는 비율에 의해서 표현되며 각 액세스 시퀀스 식별자에 대응하는 계산된 비율의 개략적인 도면이다. 액세스 시퀀스 식별자 0에 대응하는 사망 블록에 의해 점유되는 비율은 5%이고, 액세스 시퀀스 식별자 1에 대응하는 사망 블록에 의해 점유되는 비율은 25%이며, 액세스 시퀀스 식별자 2 대응하는 사망 블록에 의해 점유되는 비율은 45%이고, 액세스 시퀀스 식별자 3에 대응하는 사망 블록에 의해 점유되는 비율은 95%이다.
각 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내 제2 카운터(319)와, 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내에 있는 제1 카운터(318) 및 제2 카운터(319)의 합과의 카운트의 비율의 계산에 더하여, 이와 다르게, 각 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내 제2 카운터(319)의 카운트와, 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내의 제1 카운터(318)의 카운트의 비율이 계산될 수 있다. 즉, 생존 블록에 대한 사망 블록의 비율, 또는 각 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내 제1 카운터(318)와, 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내에 있는 제1 카운터(318) 및 제2 카운터(319)의 합과의 비율, 즉, 동일한 액세스 시퀀스 블록을 갖는 샘플링된 캐시 블록 중에서 생존 블록에 의해 점유되는 비율이 계산될 수 있다. 서로 다른 미리 설정된 임계값은 서로 다른 비율 계산 방식에 따라서 선택될 수 있다. 즉, 본 실시예에서, 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율은 초기 액세스 시퀀스에 대응하는 사망 상태 캐시 블록의 개수와 초기 액세스 시퀀스에 대응하는 생존 상태 캐시 블록의 개수에 따라서 계산될 수 있다. 캐시 블록은 생존 블록에 대한 사망 블록의 비율, 사망 블록에 의해 점유되는 비율, 또는 생존 블록에 의해 점유되는 비율일 수 있다.
도 5에 도시된 예에서, 동일한 액세스 시퀀스 식별자를 갖는 샘플링된 캐시 블록들 중에서 사망 블록에 의해 점유되는 비율이 계산되고 미리 설정된 임계값이 80%인 경우, 각 액세스 시퀀스 식별자에 대응하는 비율이 미리 설정된 임계값과 비교된 후, 액세스 시퀀스 식별자 1, 2, 및 3에 대응하는 비교 결과가 미리 설정된 임계값 보다 모드 적고, 액세스 시퀀스 식별자 4에 대응하는 비교 결과가 미리 설정된 임계값보다 적지 않다는 것을 알 수 있다.
각 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 그 비교 결과에 대응하는 액세스 시퀀스 식별자를 갖는 각 캐시 블록(314)이 생존 상태 또는 사망 상태에 있을 것인지를 예측하기 위한 한 가지 방식은,
N개의 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 미리 설정된 임계값보다 적지 않은 경우, 마이크로프로세서(315)에 의해, 액세스 시퀀스 식별자를 갖는 캐시 블록(314)이 사망 상태에 있을 것이라는 것을 예측하고, N개의 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 미리 설정된 임계값보다 적은 경우, 마이크로프로세서(315)에 의해, 액세스 시퀀스 식별자를 갖는 캐시 블록이 생존 상태에 있을 것으로 예측하는 것이다.
도 5에 도시된 예에서, 액세스 시퀀스 식별자 4에 대응하는 비교 결과가 미리 설정된 임계값보다 적지 않기 때문에, 휘발성 메모리 유닛(310)에서 액세스 시퀀스 식별자 4를 갖는 캐시 블록(314)이 모두 사망 블록인 것으로 예측될 수 있다.
전술한 실시예에서의 기술적 해결수단이 사망 블록에 대한 예측이기 때문에, 필연적으로 오류가 존재한다. 일반적으로, 오류는, 두 가지 유형, 즉 부정 오류(false negative error)와 긍정 오류(false positive error)로 분류될 수 있다. 부정 오류는 사망 블록이 생존 블록으로 결정되는 것을 의미한다. 이러한 유형의 오류는 전기 에너지의 불필요한 소모로 이어진다. 파워 서플라이의 전기 에너지가 한정되는 경우, 이것은 생존 블록을 백업하기 위한 전기 에너지를 낭비하는 것으로 생존 블록의 손실이 시스템 성능에 영향을 미치는 데이터 손실을 유발한다. 긍정 오류는 생존 블록이 사망 블록으로 결정되는 것을 의미한다. 이러한 유형의 오류는 시스템 성능에 영향을 미치는 생존 블록 내 데이터의 드롭(drop)을 유발한다. 따라서, 사용자는 서로 다른 요구사항에 따라서 미리 설정된 임계값을 선택할 수 있고, 구체적으로 이하의 요구사항에 따라서 그 설정으르 수행할 수 있다.
백업 파워 서플라이의 전기 에너지가 데이터 백업을 지원하기에 충분하고, 시스템 성능을 위해 높은 요구사항이 있는 경우, 보다 높은 미리 설정된 임계값이 부정 오류를 제어하고, 보다 많은 캐시 블록을 백업하며, 그리고 데이터 손실을 감소시키기 위해 선택될 수 있다.
백업 파워 서플라이의 전기 에너지가 충분하지 않아서 아마 데이터의 완전한 백업을 지원할 수 없으면서, 시스템 실시간 성능을 위한 요구사항은 비교적 낮은 경우, 보다 낮은 미리 설정된 임계값이 긍정 오류를 제어하고, 가능한한 많은 사망 블록을 드롭하며, 백업 서플라이의 전기 에너지가 데이터 백업을 지원하지 못하는 경우에 발생되는 백업 실패를 방지하도록 선택된다.
전체 오류가 최소화된다. 즉, 부정 오류 및 긍정 오류의 합이 최소화된다. 이론적인 분석에 따라서, 사망 블록에 의해 점유되는 비율이 50%인 경우 전체 오류가 가장 적어진다.
오류를 더 감소시키기 위해, 각 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 그 비교 결과에 대응하는 액세스 시퀀스 식별자를 갖는 각 캐시 블록(314)이 생존 상태 또는 사망 상태에 있을 것인지를 예측하기 위해 다른 방식이 제공된다. 즉,
각 캐시 블록(314)은 유효 블록 식별자 및 더티(dirty) 블록 식별자를 더 포함한다. 유효 블록 식별자는 캐시 블록이 유효한지를 식별하는 데 사용되고, 더티 블록 식별자는 캐시 블록이 더티 블록인지를 식별하는 데 사용된다.
N개의 액세스 시퀀스 식별자의 액세스 시퀀스 식별자에 대응하는 비교 결과가, 사망 블록에 의해 점유되는 비율이 미리 설정된 임계값보다 적지 않은 것인 경우, 마이크로프로세서(315)는 액세스 시퀀스 식별자를 갖는 캐시 블록(314)을 획득하고, 액세스 시퀀스 식별자를 갖는 캐시 블록(314) 중에서, 더티 블록 식별자가 유효한 캐시 블록이 생존 상태에 있을 것이고, 더티 블록 식별자가 무효인 캐시 블록이 사망 상태에 있을 것이라는 것을 예측한다.
N개의 액세스 시퀀스 식별자의 액세스 시퀀스 식별자에 대응하는 비교 결과가, 사망 블록에 의해 점유되는 비율이 미리 설정된 임계값보다 적은 것인 경우, 마이크로프로세서(315)는 액세스 시퀀스 식별자를 갖는 캐시 블록(314)을 획득하고, 액세스 시퀀스 식별자를 갖는 캐시 블록(314) 중에서, 유효 블록 식별자가 유효한 캐시 블록(314)이 생존 상태에 있을 것이고, 유효한 블록 식별자가 무효인 캐시 블록(314)이 사망 상태에 있을 것이라는 것을 예측한다.
이와 같이, 예측 오류가 보다 감소될 수 있도록, 일부 사망 블록은, 무효 블록 식별자에 따라서, 미리 생존 블록으로서 결정된 캐시 블록으로부터 발견되고, 일부 생존 블록은, 더티 블록 식별자에 따라서, 미리 사망 블록으로서 결정된 캐시 블록으로부터 발견된다.
또한, 마이크로프로세서(315)에 의해, 생존 상태에 있을 것으로 예측되는 캐시 블록(314)의 데이터를 비휘발성 메모리 유닛(311)에 백업하는 것은, 마이크로프로세서(315)에 의해, 사망 상태에 있을 것으로 예측되는 캐시 블록(314)에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 사망 상태 캐시 블록 기록 테이블에 기록된 정보에 따라서, 현재의 백업되어야 할 캐시 블록(314)이 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 현재의 백업되어야 할 캐시 블록이 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 현재의 백업되어야 할 캐시 블록 내의 데이터를 백업하거나, 또는 현재의 백업되어야 할 캐시 블록(314)이 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 현재의 백업되어야 할 캐시 블록 내의 데이터의 백업을 스킵(skip)하는 것을 포함한다.
실시예
2
실시예 2는 데이터 백업 장치를 제공한다. 실시예 2에서 제공되는 데이터 백업 장치는 실시예 1에서의 데이터 백업 장치와 유사하다. 차이점은, 마이크로프로세서(315)는 각 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내 제2 카운터(319)와, 액세스 시퀀스 식별자에 대응하는 카운터 그룹(317) 내에 있는 제1 카운터(318) 및 제2 카운터(319)의 합과의 카운트의 비율을 계산한 후, 공통 액세스 시퀀스 식별자와 공통 비율 사이의 공통 관계는 시점 T0에 있는 N개의 액세스 시퀀스 식별자와 시점 T0에 있는 N개의 액세스 시퀀스 식별자에 대응하여 각각 계산된 비율에 따라서 구축된다는 점에 있다. 도 6에 도시된 바와 같이, 좌표계가 X축인 공통 액세스 시퀀스 식별자와 Y축인 공통 비율(백분율)로 먼저 구축된다. 공통 액세스 시퀀스 식별자는 액세스 시퀀스 식별자 0, 1, 2, 및 3을 포함하고, 또한 기타 대응되는 비율들을 포함한다. 공통 비율은 Y축 상에서 5%, 25%, 45%, 및 95%와 같이 액세스 시퀀스 식별자 0, 1, 2, 및 3에 각각 대응하여 계산된 비율을 포함하고, 또한 기타 다른 값들을 포함한다. (0, 5%), (1, 25%), (2, 45%) 및 (3, 95%)인 점들이 좌표계에서 취해진다. 이 점들은 공통 시퀀스 식별자와 공통 비율에 대해 공통 관계 곡선(601)을 형성하도록 연결된다. 이와 같이, 관계 곡선(601)을 사용함으로써, 공통 비율이 1 내지 2 (50%, 즉, 비율이 50%인 경우, 전체 오류가 가장 적음)인 경우 대응되는 공통 액세스 시퀀스 식별자 TH가 결정될 수 있다. 각 액세스 시퀀스 식별자는 결정된 공통 액세스 시퀀스 식별자 TH와 비교되고, 비교 결과에 대응하는 액세스 시퀀스 식별자를 갖는 캐시 블록이 생존 상태에 있는 캐시 블록 또는 사망 상태에 있는 캐시 블록인지의 여부가 각 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서 결정된다. 구체적으로, 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자가 공통 액세스 시퀀스 식별자 TH보다 적지 않은 경우, 마이크로프로세서는 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 사망 상태에 있을 것으로 예측한다. 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자가 공통 액세스 시퀀스 식별자 TH보다 적은 경우, 마이크로프로세서는 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 생존 상태에 있을 것으로 예측한다. 다른 콤포넌트들의 기능은 실시예 1에서의 것과 동일하며, 상세한 것은 여기에서 중복 설명되지 않는다.
실시예
3
실시예 3은 데이터 백업 장치(70)를 제공한다. 도 7에 도시된 바와 같이, 데이터 백업 장치(70)는 메모리(71) 및 프로세서(72)를 포함한다. 프로세서(72)는 메모리(71) 내의 데이터에 대한 액세스를 제어한다. 메모리(70)는 휘발성 메모리 유닛(710), 비휘발성 메모리 유닛(711), 백업 파워 서플라이(712), 및 예측 모듈(713)을 포함한다. 데이터 백업 장치(70)가 파워 온된 후, 비휘발성 메모리 유닛(711) 내에 백업된 데이터가 복우너된다. 데이터 백업 장치(70)가 파워 오프된 후, 백업 파워 서플라이(712)는 메모리(70)에 전원 공급을 시작한다. 예측 모듈(713)은 휘발성 메모리 유닛(71)에서 사망 블록을 예측하도록 구성된다.
휘발성 메모리 유닛(710)은 실시예 1에서의 휘발성 메모리 유닛(310)과 동일한 구조로 되어 있으며, 여기에서는 중복 설명하지 않는다.
도 8에 도시된 바와 같이, 각 캐시 블록(714)은 RUB(715), 유효 비트(716), 더티 블록 비트(717), 상태 비트(718), 및 태그 태그(719)를 포함한다. RUB(715)는 액세스 시퀀스 식별자를 저장하는 데 사용된다. 유효 비트(716)는 캐시 블록의 유효 식별자를 저장하는 데 사용된다. 더티 블록 비트(717)는 더티 블록 식별자를 저장하는 데 사용되고, 상태 비트(718)는 상태 식별자를 저장하는 데 사용된다. 태그 태그(719)는 캐시 블록의 태그이다. 데이터 액세스 요청이 있느느 경우, 대응되는 캐시 블록(714)은 액세스 요청 내의 데이터 어드레스와 태그 태그를 매칭함으로써 발견될 수 있다.
예측 모듈(713)은 휘발성 메모리 유닛(710)에 연결되고 휘발성 메모리 유닛(710)에서 사망 블록을 예측하도록 구성된다. 예측 모듈(713)은 제1 어드레싱 장치(721) 및 제2 어드레싱 장치(720)를 포함한다. 제1 어드레싱 장치(721) 및 제2 어드레싱 장치(720)의 입력단들은 둘 다 각 캐시 블록(714)에 연결된다.
예측 모듈(713)은 카운팅 유닛(도면에는 도시되지 않음)을 더 포함한다. 카운팅 유닛은 N개의 카운터 그룹(도면에는 도시되지 않음)을 포함한다. N개의 카운터 그룹은 N개의 액세스 시퀀스 식별자와 일대일 대응관계를 갖는다. 각 카운터 그룹은 한 개의 제1 카운터(7136)와 한 개의 제2 카운터(7135)를 포함한다. 제1 카운터(7136)의 입력단은 제1 어드레싱 장치(721)의 출력단에 연결되고, 제2 카운터(7135)의 입력단은 제2 어드레싱 장치(720)의 출력단에 연결된다.
데이터 백업 장치(70)가 파워 온된 후,
프로세서(71)는, 비휘발성 메모리 유닛(711)에 백업된 데이터를 휘발성 메모리 유닛(710)에 복원하고, 각 캐시 블록 세트 내의 각 캐시 블록(714)의 것이면서 시점 T0에 있는 초기 액세스 시퀀스 식별자를 획득하며 캐시 블록(714)의 최근 사용된 비트(recently used bit, RUB)에게 초기 액세스 시퀀스 식별자를 기록하고, 휘발성 메모리 유닛(710) 내의 각 캐시 블록(714)의 상태 비트를 무효인 것으로 설정하도록 구성되며, 여기서 시점 T0는 데이터 백업 장치(70)가 파워 온되는 시점이고;
프로세서(71)는 휘발성 메모리 유닛에 대한 데이터 조작을 수행하도록 추가로 구성되며, 여기서
현재의 데이터 조작에 대응하는 캐시 블록(714)의 상태 식별자가 캐시 블록이 샘플링되지 않은 것으로 데이터 조작에 대응하는 캐시 블록(714)이 액세스된 것으로 결정하는 경우, 프로세서(71)는 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하고, 그 후 현재의 데이터 조작에 대응하는 캐시 블록(714)의 어드레스에 따라서 대응하는 캐시 블록(714)을 발견하고, 시점 T0에서 발견된 캐시 블록(714)의 액세스 시퀀스 식별자를 획득하며, 시점 T0에서 획득된 액세스 시퀀스 식별자에 따라서 시퀀스된 액세스 식별자에 대응하는 제1 카운터(7136)를 획득하고, 제1 카운터(7136)에 대한 카운팅을 수행하도록 제1 어드레싱 장치(721)를 제어하며, 프로세서(71)는 캐시 블록(714)의 상태 식별자를 캐시 블록이 샘플링된 것으로 변경하거나, 또는
현재의 데이터 조작에 대응하는 캐시 블록(714)의 상태 식별자가 캐시 블록이 샘플링되지 않은 것으로 데이터 조작에 대응하는 캐시 블록(714)이 축출된 것으로 결정하는 경우, 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 제2 어드레싱 장치(720)는 현재의 데이터 조작에 대응하는 캐시 블록(714)의 어드레스에 따라서 대응하는 캐시 블록(714)을 발견하고, 시점 T0에서 발견된 캐시 블록(714)의 액세스 시퀀스 식별자를 획득하며, 시점 T0에서 획득된 액세스 시퀀스 식별자에 따라서 시퀀스 액세스 식별자에 대응하는 제2 카운터(7135)를 획득하고, 제2 카운터(7135)에 대한 카운팅을 수행하며, 프로세서(71)는 캐시 블록(714)의 상태 식별자를 캐시 블록이 샘플링된 것으로 변경한다.
예측 모듈(713)은 N개의 천이기(shifter)(7137) 및 N개의 비교기(7138)를 더 포함한다. N개의 천이기(7137)는 각각 제1 카운터(7136)의 출력단에 연결된다. N개의 비교기(7138)의 각 비교기(7138)는 두 개의 입력단을 구비하며, 이들은 각각 카운터 그룹의 제2 카운터(7135)의 출력단과 카운터 그룹의 제1 카운터(7136)에 연결된 천이기(7137)의 출력단에 연결된다.
데이터 백업 장치(70)가 파워 오프된 후, 마이크로프로세서(7139)는 백업 파워 서플라이(712)가 메모리(71)에게 전원을 공급하도록 시작시키고, 각 천이기(7137)는 미리 설정된 임계값에 따라서, 천이기에 연결된 제1 카운터(7136)를 천이시키며, 각 비교기(7138)는 비교기에 연결된 제2 카운터(7135)로부터의 입력과 비교기에 연결된 천이기(7137)로부터의 입력을 비교하고, 마이크로프로세서(7139)는 각 액세스 시퀀스 식별자에 대응하는 비교기(7138)의 출력 결과에 따라서 비교기(7138)에 대응하는 액세스 시퀀스 식별자를 갖는 각 캐시 블록(714)이 생존 상태 또는 사망 상태에 있는 지의 여부를 예측하고, 생존 상태에 있을 것으로 예측되는 캐시 블록(714) 내의 데이터를 비휘발성 메모리 유닛(711)에게 백업한다.
본 실시예에서, 제1 어드레싱 장치(721)는 제1 데이터 선택기(7132) 및 제2 디코더(7134)를 포함하고, 제2 어드레싱 장치(720)는 제2 데이터 선택기(7131) 및 제2 디코더(7133)를 포함하며, 제1 데이터 선택기(7132)와 제2 데이터 선택기(7131)의 입력단들은 둘 다 각 캐시 블록(714)에 연결되고, 제1 디코더(7134)와 제2 디코더(7133)의 입력단들은 제1 데이터 선택기(7134)와 제2 데이터 선택기(7133)의 출력단에 각각 연결되며, 제1 디코더(7134)와 제2 디코더(7133)의 출력단들은 각 카운터 그룹의 제1 카운터(7136)의 입력단과 카운터 그룹의 제2 카운터 그룹(7135)의 입력단에 각각 연결된다.
프로세서(71)가, 현재의 데이터 조작에 대응하는 캐시 블록(714)이 생존 상태에 있는 것으로 결정하는 경우, 제1 데이터 선택기(7132)는 현재의 데이터 조작에 대응하는 캐시 블록(714)의 주소에 따라서 대응하는 캐시 블록을 발견하고, 시점 T0에서 발견된 캐시 블록(714)의 액세스 시퀀스 식별자를 획득하며, 제1 디코더(7134)는 시퀀스 액세스 식별자에 대응하는 제1 카운터(7136)를 획득하기 위해 획득된 액세스 시퀀스를 디코딩한다.
프로세서(71)가 현재의 데이터 조작에 대응하는 캐시 블록(714)이 사망 상태에 있는 것으로 결정하는 경우, 제2 데이터 선택기(7131)는 현재의 데이터 조작에 대응하는 캐시 블록의 주소에 따라서 대응하는 캐시 블록을 발견하고, 시점 T0에서 발견된 캐시 블록의 액세스 시퀀스 식별자를 획득하며, 제2 디코더는 시퀀스 액세스 식별자에 대응하는 제2 카운터(7135)를 획득하기 위해 시점 T0에 획득된 액세스 시퀀스를 디코딩한 후, 제2 카운터(7135)에 대한 카운팅을 수행한다.
실시예
4
실시예 4는 데이터 백업 장치에 적용되는 데이터 백업 방법을 제공한다. 데이터 백업 장치의 구조는 실시예 1에서의 데이터 백업 장치의 구조와 동일하며, 상세한 것은 여기에서 중복 설명되지 않는다.
데이터 백업 방법은 두 가지 부분을 포함한다. 한 가지 부분은 데이터 통계 방법이고, 한 가지 부분은 데이터 백업 방법이다. 데이터 통계 방법은 데이터 백업 장치가 파워 온되는 경우에 실행되고, 데이터 백업 방법은 데이터 백업 장치가 파워 오프되는 경우 실행된다.
도 9에 도시된 바와 같이, 도 9는 데이터 백업 장치가 파워 온되는 경우에 실행되는 데이터 통계 방법의 흐름도이다.
단계 S901: 비휘발성 메모리 유닛에 백업된 데이터를 휘발성 메모리 유닛에 복원하고, 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 시점 T0에 기록하며, 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 캐시 블록이 샘플링되지 않은 것으로 설정하며, 여기서 시점 T0는 데이터 백업 장치가 파워 온되는 시점이다.
단계 902: 휘발성 메모리 유닛에 대한 데이터 조작을 수행한다: 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 캐시 블록이 샘플링되지 않은 것으로 데이터 조작에 대응하는 캐시 블록이 액세스된 것인 경우, 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하고, 시점 T0에서 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하며, 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 캐시 블록이 샘플링된 것으로 업데이트한다.
단계 903: 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 캐시 블록이 샘플링되지 않은 것으로 데이터 조작에 대응하는 캐시 블록이 축출된 것인 경우, 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 시점 T0에서 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며, 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 캐시 블록이 샘플링된 것으로 업데이트한다.
도 10에 도시된 바와 같이, 도 10은 데이터 백업 장치가 파워 오프되는 경우에 실행되는 데이터 백업 방법의 흐름도이다. 데이터 백업 방법은 다음의 단계를 포함한다.
단계 S1001: 메모리에 전원을 공급하도록 백업 파워 서플라이를 시작시킨다.
단계 S1002: N개의 카운터 그룹의 카운트를 읽고, 초기 액세스 시퀀스에 대응하는 사망 상태 캐시 블록의 개수와 초기 액세스 시퀀스에 대응하는 생존 상태 캐시 블록의 개수에 따라서, 시점 T0에서 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하며, 여기서 캐시 블록 상태 비율은 생존 블록에 대한 사망 블록의 비율, 사망 블록에 의해 점유되는 비율, 생존 블록에 의해 점유되는 비율일 수 있다.
단계 S1003: 시점 T0에서 각 초기 액세스 시퀀스 식별자에 대응하는 비율을 미리 설정된 임계값과 비교하고, 시점 T0에서 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서 비휘발성 메모리 유닛 내 캐시 블록이 시점 T1에 생존 상태 또는 사망 상태에 있을 것인지를 예측하며, 여기서 시점 T1은 데이터 백업 장치가 파워 오프되는 시점이다.
단계 S1004: 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 비휘발성 메모리 유닛에 백업한다.
또한, 단계 S1003에서, 시점 T0에서 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서 비휘발성 메모리 유닛 내 캐시 블록이 생존 상태 또는 사망 상태에 있을 것인지를 예측하는 것은,
시점 T0에 있는 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 사망 블록에 의해 점유되는 비율이 미리 설정된 임계값보다 적지 않은 것인 경우, 액세스 시퀀스 식별자를 갖는 캐시 블록이 사망 상태에 있을 것으로 예측하거나, 또는
시점 T0에 있는 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 사망 블록에 의해 점유되는 비율이 미리 설정된 임계값보다 적은 것인 경우, 액세스 시퀀스 식별자를 갖는 캐시 블록이 생존 상태에 있을 것으로 예측하는
것을 포함한다.
또한, 각 캐시 블록은 유효 블록 식별자와 더티 블록 식별자를 더 포함한다. 유효 블록 식별자는 캐시 블록이 유효한지를 식별하는 데 사용되고, 더티 블록 식별자는 캐시 블록이 더티 블록인지를 식별하는 데 사용되고,
액세스 시퀀스 식별자를 갖는 캐시 블록이 사망 상태에 있을 것으로 예측한 후, 액세스 시퀀스 식별자를 가지면서 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 생존 상태에 있을 것이라는 것이 추가로 결정되며,
액세스 시퀀스 식별자를 갖는 캐시 블록이 생존 상태에 있을 것으로 예측한 후, 액세스 시퀀스 식별자를 가지면서 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 사망 상태에 있을 것이라는 것이 추가로 결정된다.
실시예
5
실시예 5는 데이터 백업 장치에 적용되는 데이터 백업 방법을 제공한다. 데이터 백업 장치의 구조는 실시예 2에서의 데이터 백업 장치의 구조와 동일하며, 상세한 것은 여기에서 중복 설명되지 않는다.
데이터 백업 방법은 두 가지 부분을 포함한다. 한 가지 부분은 데이터 통계 방법이고, 한 가지 부분은 데이터 백업 방법이다. 데이터 통계 방법은 데이터 백업 장치가 파워 온되는 경우에 실행되고, 실시예 4에서 설명된 데이터 통계 방법과 동일하다. 상세한 것은 여기에서 중복 설명되지 않는다.
데이터 백업 방법은 데이터 백업 장치가 파워 오프되는 경우 실행된다.
도 11에 도시된 바와 같이, 도 11은 데이터 백업 장치가 파워 오프되는 경우에 실행되는 데이터 백업 방법의 흐름도이다. 본 실시예에서의 데이터 백업 방법에서의 단계 S1101, S1102, 및 S1104는 실시예 4에서의 데이터 백업 방법에서의 단계 S1001, S1002, 및 S1004와 동일하다. 차이는 단계 S1103에만 있다. 본 실시예에서, 단계 S1103에서, 공통 액세스 시퀀스 식별자와 공통 비율 사이의 공통 관계는 시점 T0에 있는 N개의 액세스 시퀀스 식별자와 시점 T0에 있는 N개의 액세스 시퀀스 식별자에 대응하여 각각 계산된 비율에 따라서 구축되고, 공통 비율이 1 내지 2 (50%, 즉, 비율이 50%인 경우, 전체 오류가 가장 적음)인 경우 대응되는 공통 액세스 시퀀스 식별자 TH가 공통 관계에 따라서 결정된다. 공통 관계의 결정을 위해, 실시예 6에서 도 6에서의 관련 설명을 참조하고, 여기에서는 상세한 것에 대해 중복 설명하지 않는다.
시점 T0에서의 각 초기 액세스 시퀀스 식별자는 공통 액세스 시퀀스 식별자 TH와 비교되고, 그 후, 비휘발성 메모리 유닛 내의 캐시 블록이 시점 T1에 생존 상태 또는 사망 상태에 있을 것인지가 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서 예측되며, 여기서 시점 T1은 데이터 백업 장치가 파워 오프되는 시점이다. 구체적으로, 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자가 공통 액세스 시퀀스 식별자 TH보다 적지 않은 경우, 마이크로프로세서는 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 사망 상태에 있을 것으로 예측하고, 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자가 공통 액세스 시퀀스 식별자 TH보다 적은 경우, 마이크로프로세서는 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 생존 상태에 있을 것으로 예측한다. 다른 부분들은 실시예 4에서의 것들과 동일하며, 상세한 것은 여기에서 중복 설명되지 않는다. 통상의 기술자라면 실시예들에서 방법의 모든 또는 일부 단계가 관련된 하드웨어를 명령하는 프로그램에 의해 구현될 수 있다는 것을 이해할 것이다. 이 프로그램은 컴퓨터에 의해 판독 가능한 저장 매체에 저장될 수 있다. 이 저장 매체는 ROM, RAM, 자기 디스크, 또는 광디스크를 포함할 수 있다.
본 발명의 실시예에서 제공되는 데이터 백업 장치 및 방법이 상세하게 설명되었다. 본 발명의 원리 및 구현 방식은 특정 예들을 사용하여 여기에서 설명된다. 전술한 실시예의 설명은 본 발명의 방법 및 핵심 아이디어를 이해하는 것을 돕기 위한 것일 뿐이다. 또한, 당업자라면 본 발명의 사상에 따라 구체적인 구현 방식 및 적용 범위에 대해 수정을 가할 수 있다. 그러므로 본 명세서의 내용은 본 발명에 대해 제한으로 해석되어서는 안된다.
Claims (32)
- 데이터 백업 장치로서,
휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 상기 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 데이터 백업 장치가 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하도록 구성되고, 상기 시점 T0은 상기 데이터 백업 장치가 파워 온되는 시점이고, 그리고, 상기 프로세서는, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고; 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태(live state)에 있는 것으로 결정하며, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는(evicted) 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태(dead state)에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며; 그리고 카운터에 대한 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 샘플링된 것으로 변경하도록 추가로 구성되며,
상기 데이터 백업 장치가 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 N개의 카운터 그룹의 카운트를 읽으며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 비율을 계산하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비율과 미리 설정된 임계값을 비교하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하고, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하며, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점인,
데이터 백업 장치. - 제1항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 것은,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하거나, 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 크지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는,
데이터 백업 장치. - 데이터 백업 장치로서,
휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 데이터 백업 장치가 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하도록 구성되고, 상기 시점 T0은 상기 데이터 백업 장치가 파워 온되는 시점이고, 그리고, 상기 프로세서는, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고; 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하며, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며; 그리고 카운터에 대한 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 샘플링된 것으로 변경하도록 추가로 구성되며,
상기 데이터 백업 장치가 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 N개의 카운터 그룹의 카운트를 읽으며, 상기 시점 T0에서의 상기 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 비율을 계산하고, 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 비율에 따라서, 상기 비율이 1 내지 2인 경우 대응하는 액세스 시퀀스 식별자 임계값을 결정하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 액세스 시퀀스 식별자 임계값을 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하고, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점인,
데이터 백업 장치. - 제3항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에서 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 것은,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 작지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하거나, 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 크지 않은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는,
데이터 백업 장치. - 데이터 백업 장치로서,
휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 최근 사용 비트(recently used bit, RUB) 및 상태 비트를 포함하고, 상기 최근 사용 비트는 상기 캐시 블록의 액세스 시퀀스 식별자를 저장하는 데 사용되고, 상기 상태 비트는 상기 캐시 블록이 샘플링되었는지를 식별하는 상태 식별자를 저장하며,
상기 메모리는,
제1 어드레싱 장치 및 제2 어드레싱 장치 ― 상기 제1 어드레싱 장치 및 상기 제2 어드레싱 장치의 입력단들은 둘 다 각 캐시 블록에 연결됨 ―; 및
카운팅 유닛 ― 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 제1 카운터의 입력단은 상기 제1 어드레싱 장치의 출력단에 연결되고, 상기 제2 카운터의 입력단은 상기 제2 어드레싱 장치의 출력단에 연결됨 ―
을 더 포함하고,
상기 데이터 백업 장치가 파워 온된 후,
상기 프로세서는, 상기 비휘발성 메모리 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하며, 상기 초기 액세스 시퀀스 식별자를 상기 캐시 블록의 최근 사용 비트로 기록하고, 상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 비트를 무효(invalid)로 설정하도록 구성되며, 상기 시점 T0는 상기 데이터 백업 장치가 파워 온되는 시점이고,
상기 프로세서는 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하도록 추가로 구성되고, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않은 것과 상기 데이터 조작에 대응하는 캐시 블록이 액세스된 것으로 결정하는 경우, 상기 프로세서는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하고, 그 후 상기 현재의 데이터 조작에 대응하는 캐시 블록의 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하도록 상기 제1 어드레싱 장치를 제어하며, 상기 시점 T0에서 상기 발견된 캐시 블록의 액세스 시퀀스 식별자를 획득하고, 상기 시점 T0에서 상기 획득된 액세스 시퀀스 식별자에 따라서, 상기 시점 T0에서의 상기 시퀀스 액세스 식별자에 대응하는 제1 카운터를 획득하며, 상기 제1 카운터에 대한 카운팅을 수행하고, 그리고 상기 프로세서는 상기 캐시 블록의 상태 식별자를 샘플링된 것으로 변경하거나; 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출된 것으로 결정하는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 제2 어드레싱 장치는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하며, 상기 시점 T0에 상기 발견된 캐시 블록의 액세스 시퀀스 식별자를 획득하고, 상기 시점 T0에서 상기 획득된 액세스 시퀀스 식별자에 따라서, 상기 시점 T0에서의 상기 시퀀스 액세스 식별자에 대응하는 제2 카운터를 획득하며, 상기 제2 카운터에 대한 카운팅을 수행하고, 그리고 상기 프로세서는 상기 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하며,
상기 메모리는,
상기 N개의 카운터 그룹의 제1 카운터의 출력단에 각각 연결된 N개의 천이기; 및
N개의 비교기 ― 각 비교기는 카운터 그룹의 제2 카운터의 출력단과 카운터 그룹의 제1 카운터에 연결된 천이기의 출력단에 각각 연결된 두 개의 입력단을 가짐 ―
를 더 포함하고,
상기 데이터 백업 장치가 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키도록 구성되고, 각 천이기는, 미리 설정된 임계값에 따라서, 상기 천이기에 연결된 제1 카운터를 천이시키며, 각 비교기는 상기 비교기에 연결된 제2 카운터로부터의 입력과 상기 비교기에 연결된 천이기로부터의 입력을 비교하고, 상기 마이크로프로세서는, 각 액세스 시퀀스 식별자에 대응하는 비교기의 출력 결과에 따라서, 상기 비휘발성 메모리 유닛 내 각 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하고, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하며, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점인,
데이터 백업 장치. - 제5항에 있어서,
상기 제1 어드레싱 장치는 제1 데이터 선택기 및 제1 디코더를 포함하고, 상기 제2 어드레싱 장치는 제2 데이터 선택기 및 제2 디코더를 포함하며, 상기 제1 데이터 선택기 및 상기 제2 선택 유닛의 입력단들은 둘 다 각 캐시 블록에 연결되고, 상기 제1 디코더 및 상기 제2 디코더의 입력단들은 상기 제1 데이터 선택기 및 상기 제2 데이터 선택기의 출력단들에 각각 연결되며, 상기 제1 디코더 및 상기 제2 디코더의 출력단들은 각 카운터 그룹 내 제1 카운터 및 제2 카운터 그룹의 입력단에 각각 연결되고,
상기 프로세서가, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 상기 생존 상태에 있는 것으로 결정하는 경우, 상기 제1 데이터 선택기는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하고, 상기 시점 T0에서 상기 발견된 캐시 블록의 상기 액세스 시퀀스 식별자를 획득하며, 상기 제1 디코더는 상기 시퀀스 액세스 식별자에 대응하는 제1 카운터를 획득하기 위해 상기 획득된 액세스 시퀀스 식별자를 디코딩하고,
상기 프로세서가, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 상기 사망 상태에 있는 것으로 결정하는 경우, 상기 제2 데이터 선택기는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 어드레스에 따라서 상기 대응하는 캐시 블록을 발견하고, 상기 시점 T0에서 상기 발견된 캐시 블록의 상기 액세스 시퀀스 식별자를 획득하며, 상기 제2 디코더는 상기 시퀀스 액세스 식별자에 대응하는 제2 카운터를 획득하기 위해 상기 시점 T0에서 상기 획득된 액세스 시퀀스 식별자를 디코딩하고, 그 후 상기 제2 카운터에 대한 카운팅을 수행하는,
데이터 백업 장치. - 데이터 백업 장치에 적용되는 데이터 백업 방법으로서,
상기 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 방법은,
상기 데이터 백업 장치가 파워 온된 후,
상기 비휘발성 메모리 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하는 단계 ― 상기 시점 T0는 상기 데이터 백업 장치가 파워 온되는 시점임 ―; 및
상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스된 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 업데이트하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 샘플링된 것으로 업데이트하는 단계; 및
상기 데이터 백업 장치가 파워 오프된 후,
상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키는 단계;
상기 N개의 카운터 그룹의 카운트를 읽고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 카운트 비율을 계산하는 단계;
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비율과 미리 설정된 임계값을 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계 ― 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점임 ―; 및
상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계
를 포함하는, 데이터 백업 방법. - 제7항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에서 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 크지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계
를 포함하는, 데이터 백업 방법. - 데이터 백업 장치에 적용되는 데이터 백업 방법으로서,
상기 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록 세트는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 동일한 그룹의 N개의 액세스 시퀀스 식별자를 사용하고, 각 캐시 블록의 액세스 시퀀스 식별자는 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스의 변경을 통해 업데이트되며, 각 캐시 블록은 상태 식별자를 갖도록 추가로 구성되고, 각 상태 식별자는 캐시 블록이 샘플링되었는지를 식별하는 데 사용되며,
상기 데이터 백업 장치는 카운팅 유닛을 추가로 포함하고, 상기 카운팅 유닛은 N개의 카운터 그룹을 포함하며, 각 카운터 그룹은 하나의 제1 카운터 및 하나의 제2 카운터를 포함하고, 상기 N개의 카운터 그룹은 상기 N개의 액세스 시퀀스 식별자와 일대일 대응관계에 있으며,
상기 방법은,
상기 데이터 백업 장치가 파워 온된 후,
상기 비휘발성 메모리 유닛내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 시점 T0에 각 캐시 블록 세트 내의 각 캐시 블록의 초기 액세스 시퀀스 식별자를 획득하여 기록하며, 상기 휘발성 메모리 유닛 내의 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하는 단계 ― 상기 시점 T0은 상기 데이터 백업 장치가 파워 온되는 시점임 ―; 및
상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하고, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 액세스된 것으로 결정되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태에 있는 것으로 결정하며, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제1 카운터에 대한 카운팅을 수행하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자가 샘플링되지 않고 상기 데이터 조작에 대응하는 캐시 블록이 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태에 있는 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 초기 액세스 시퀀스 식별자에 대응하는 제2 카운터에 대한 카운팅을 수행하며; 그리고 카운터에 대한 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하는 단계; 및
상기 데이터 백업 장치가 파워 오프된 후,
상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키는 단계;
상기 N개의 카운터 그룹의 카운트를 읽고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스 식별자에 대응하는 상기 카운터 그룹 내에 있는 제1 카운터 및 제2 카운터의 합에 대한 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 카운터 그룹의 상기 제2 카운터의 비율을 계산하며, 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 비율에 따라서, 상기 비율이 1 내지 2인 경우 대응하는 액세스 시퀀스 식별자 임계값을 결정하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 액세스 시퀀스 식별자 임계값을 비교하는 단계;
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계 ― 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점임 ―; 및
상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계
를 포함하는, 데이터 백업 방법. - 제9항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 작지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 및
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 액세스 시퀀스 식별자 임계값보다 크지 않은 경우, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계
를 포함하는, 데이터 백업 방법. - 데이터 백업 장치로서,
메모리 및 프로세서를 포함하고,
상기 메모리는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하도록 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하도록 구성되며,
상기 데이터 백업 장치가 시점 T1에 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율과 미리 설정된 임계값을 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내의 캐시 블록이 상기 시점 T1에 생존 상태의 캐시 블록 또는 사망 상태의 캐시 블록일지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하도록 구성되는,
데이터 백업 장치. - 제11항에 있어서,
각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원한 후, 상기 프로세서는 상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하도록 추가로 구성되고,
상기 프로세서는, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하도록 추가로 구성되는,
데이터 백업 장치. - 제11항 또는 제12항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 생존 상태의 캐시 블록 또는 사망 상태의 캐시 블록일 것인지를 예측하는 중에, 상기 마이크로프로세서는 구체적으로,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 마이크로프로세서는 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하거나, 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작은 경우, 상기 마이크로프로세서는 상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하도록
구성되는, 데이터 백업 장치. - 제13항에 있어서,
각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티(dirty) 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제1 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 추가로 결정하고,
상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제2 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 추가로 결정하는,
데이터 백업 장치. - 제11항 내지 제14항 중 어느 한 항에 있어서,
상기 마이크로프로세서에 의해, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 것은,
상기 마이크로프로세서에 의해, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는 상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵(skip)하는,
데이터 백업 장치. - 제1항에 있어서,
상기 미리 설정된 임계값은 0.5인,
데이터 백업 장치. - 데이터 백업 장치로서,
메모리 및 프로세서를 포함하고,
상기 메모리는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 마이크로프로세서, 및 백업 파워 서플라이를 포함하는 메모리 및 프로세서를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하는 데 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후, 상기 프로세서는, 상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하도록 구성되며,
상기 데이터 백업 장치가 시점 T1에 파워 오프된 후, 상기 마이크로프로세서는, 상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키고, 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하며, 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자 및 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 상기 계산된 비율에 따라서 공통 액세스 시퀀스 식별자와 공통 비율 사이의 공통 관계를 구축하고, 상기 공통 관계에 따라서, 상기 공통 비율이 1 내지 2인 경우 대응되는 공통 액세스 시퀀스 식별자를 결정하며, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 결정된 공통 액세스 시퀀스 식별자를 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내의 캐시 블록이 시점 T1에 생존 상태 또는 사망 상태에 있을 것인지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하도록 구성되고, 상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점인,
데이터 백업 장치. - 제17항에 있어서,
각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원한 후, 상기 프로세서는 상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된 것으로 변경하도록 추가로 구성되고,
상기 프로세서는, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하도록 추가로 구성되는,
데이터 백업 장치. - 제17항 또는 제18항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 상기 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 중에, 상기 마이크로프로세서는 구체적으로,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 식별자보다 작지 않은 경우, 상기 마이크로프로세서는 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하고,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 시퀀스 식별자보다 작은 경우, 상기 마이크로프로세서는 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하도록
구성되는, 데이터 백업 장치. - 제19항에 있어서,
각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제1 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 추가로 결정하고,
상기 제2 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 마이크로프로세서는, 상기 제2 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 추가로 결정하는,
데이터 백업 장치. - 제17항 내지 제20항 중 어느 한 항에 있어서,
상기 마이크로프로세서에 의해, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 것은,
상기 마이크로프로세서에 의해, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하며, 상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는 상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵하는,
데이터 백업 장치. - 데이터 백업 장치에 적용되는 데이터 백업 방법으로서,
상기 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하는 데 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 방법은,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후,
상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하는 단계; 및
상기 데이터 백업 장치가 시점 T1에 파워 오프된 후,
상기 메모리에 전원을 공급하도록 상기 백업 파워 서플라이를 시작시키는 단계;
상기 시점 T0에서의 각 초기 액세스 시퀀스에 대응하는 캐시 블록 상태 비율을 계산하는 단계;
상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하는 단계; 및
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내 캐시 블록이 상기 시점 T1에 생존 상태의 캐시 블록 또는 사망 상태의 캐시 블록일지를 예측하고, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계
를 포함하는, 데이터 백업 방법. - 제22항에 있어서,
각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하는 단계 후에,
상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 샘플링된 것으로 변경하는 단계;
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출된 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스된 것으로 결정하는 단계이고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출된 것으로 결정하는 단계는,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출된 것으로 결정하는 단계
를 포함하는, 데이터 백업 방법. - 제22항 또는 제23항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작지 않은 경우, 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 또는
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 미리 설정된 임계값보다 작은 경우, 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계
를 포함하는, 데이터 백업 방법. - 제24항에 있어서,
각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 더 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 결정하는 단계를 더 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 결정하는 단계를 더 포함하는,
데이터 백업 방법. - 제22항 내지 제25항 중 어느 한 항에 있어서,
상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계는,
상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하는 단계; 및
상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하는 단계; 또는
상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵하는 단계
를 포함하는, 데이터 백업 방법. - 제22항 내지 제26항 중 어느 한 항에 있어서,
상기 미리 설정된 임계값은 0.5인,
데이터 백업 방법. - 데이터 백업 장치에 적용되는 데이터 백업 방법으로서,
상기 데이터 백업 장치는 휘발성 메모리 유닛, 비휘발성 메모리 유닛, 및 백업 파워 서플라이를 포함하는 메모리를 포함하고,
상기 휘발성 메모리 유닛은 M개의 캐시 블록 세트를 포함하고, 각 캐시 블록 세트는 N개의 캐시 블록을 포함하며, M≥1이고, N>1이며, 각 캐시 블록은 캐시 블록이 캐시 블록 세트에서 액세스되는 시퀀스를 지시하는 데 사용되는 액세스 시퀀스 식별자를 가지고 있고, 상기 M개의 캐시 블록 세트의 모든 캐시 블록 세트에서 동일한 액세스 시퀀스를 갖는 캐시 블록은 동일한 액세스 시퀀스 식별자를 가지며,
상기 방법은,
상기 데이터 백업 장치가 시점 T0에 파워 온된 후,
상기 비휘발성 메모리 유닛 내에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하고, 상기 휘발성 메모리 유닛에 대한 데이터 조작을 수행하며, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 생존 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 생존 상태의 캐시 블록을 카운트하거나, 또는 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 사망 상태의 캐시 블록인 것으로 결정하고, 상기 시점 T0에서 상기 현재의 데이터 조작에 대응하는 캐시 블록의 초기 액세스 시퀀스 식별자에 대응하는 사망 상태의 캐시 블록을 카운트하는 단계;
상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 사망 상태의 캐시 블록의 개수와 상기 시점 T0에서의 상기 초기 액세스 시퀀스에 대응하는 상기 생존 상태의 캐시 블록의 개수에 따라서, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 캐시 블록 상태 비율을 계산하는 단계;
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자 및 상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자에 각각 대응하는 상기 계산된 비율에 따라서 공통 액세스 시퀀스 식별자와 공통 비율 사이의 공통 관계를 구축하고, 상기 공통 관계에 따라서, 상기 공통 비율이 1 내지 2인 경우 대응되는 공통 액세스 시퀀스 식별자를 결정하는 단계; 및
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자와 상기 결정된 공통 액세스 시퀀스 식별자를 비교하고, 상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛 내 캐시 블록이 시점 T1에 생존 상태 또는 사망 상태에 있을 것인지를 예측하며, 상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계
를 포함하고,
상기 시점 T1은 상기 데이터 백업 장치가 파워 오프되는 시점인,
데이터 백업 방법. - 제28항에 있어서,
각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛으로 복원하는 단계 후에,
상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 샘플링된 것으로 변경하는 단계
를 포함하고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하는 단계이고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계인,
데이터 백업 방법. - 제28항 또는 제29항에 있어서,
상기 시점 T0에서의 각 초기 액세스 시퀀스 식별자에 대응하는 비교 결과에 따라서, 상기 비휘발성 메모리 유닛의 캐시 블록이 시점 T1에 상기 생존 상태 또는 상기 사망 상태에 있을 것인지를 예측하는 단계는 구체적으로,
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제1 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 식별자보다 작지 않은 경우, 상기 마이크로프로세서에 의해, 상기 제1 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측하는 단계; 및
상기 시점 T0에 있는 상기 N개의 초기 액세스 시퀀스 식별자들 중 제2 액세스 시퀀스 식별자에 대응하는 비교 결과가 상기 결정된 공통 액세스 시퀀스 식별자보다 작은 경우, 상기 마이크로프로세서에 의해, 상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측하는 단계
를 포함하는, 데이터 백업 방법. - 제30항에 있어서,
각 캐시 블록은 상기 캐시 블록이 유효한지를 식별하는 데 사용되는 유효 블록 식별자 및 상기 캐시 블록이 더티 블록인지를 식별하는 데 사용되는 더티 블록 식별자를 포함하고,
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 사망 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 사망 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 더티 블록 식별자가 유효한 캐시 블록이 상기 생존 상태에 있을 것으로 결정하는 단계;
상기 액세스 시퀀스 식별자를 갖는 캐시 블록이 상기 생존 상태에 있을 것으로 예측한 후, 상기 액세스 시퀀스 식별자를 가지면서 상기 생존 상태에 있을 것으로 예측되는 캐시 블록들 중에서, 유효 식별자가 무효인 캐시 블록이 상기 사망 상태에 있을 것으로 결정하는 단계
를 더 포함하며,
각 캐시 블록은 상태 식별자를 갖도록 구성되고, 상기 비휘발성 메모리 유닛에 백업된 데이터를 상기 휘발성 메모리 유닛에 복원하는 단계 후에,
상기 휘발성 메모리 유닛 내 각 캐시 블록의 상태 식별자를 샘플링되지 않은 것으로 설정하고, 임의의 카운팅을 수행한 후, 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상태 식별자를 상기 캐시 블록이 샘플링된것으로 변경하는 단계
를 더 포함하고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 액세스되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 액세스되는 것으로 결정하는 단계이고,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계는 구체적으로,
상기 현재의 데이터 조작에 대응하는 캐시 블록이 축출되고 상기 현재의 데이터 조작에 대응하는 캐시 블록의 상기 상태 식별자가 샘플링되지 않은 경우, 상기 현재의 데이터 조작에 대응하는 캐시 블록이 파워 온 후 처음으로 축출되는 것으로 결정하는 단계인,
데이터 백업 장치. - 제28항 내지 제31항 중 어느 한 항에 있어서,
상기 생존 상태에 있을 것으로 예측되는 캐시 블록의 데이터를 상기 비휘발성 메모리 유닛에 백업하는 단계는,
상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보를 사망 상태 캐시 블록 기록 테이블에 기록하고, 상기 사망 상태에 있을 것으로 예측되는 캐시 블록에 대한 정보로서 상기 사망 상태 캐시 블록 기록 테이블에 기록된 상기 정보에 따라서, 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록 또는 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인지를 결정하는 단계; 및
상기 현재의 백업될 캐시 블록이 상기 생존 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터를 백업하거나, 또는
상기 현재의 백업될 캐시 블록이 상기 사망 상태에 있을 것으로 예측되는 캐시 블록인 경우, 상기 현재의 백업될 캐시 블록의 데이터의 백업을 스킵하는,
데이터 백업 방법.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510100395 | 2015-03-06 | ||
CN201510100395.7 | 2015-03-06 | ||
CN201610099237.9 | 2016-02-23 | ||
CN201610099237.9A CN105938447B (zh) | 2015-03-06 | 2016-02-23 | 数据备份装置及方法 |
PCT/CN2016/075290 WO2016141817A1 (zh) | 2015-03-06 | 2016-03-02 | 数据备份装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170117532A true KR20170117532A (ko) | 2017-10-23 |
KR102063738B1 KR102063738B1 (ko) | 2020-01-08 |
Family
ID=57152901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177025831A KR102063738B1 (ko) | 2015-03-06 | 2016-03-02 | 데이터 백업 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10203906B2 (ko) |
EP (1) | EP3255547B1 (ko) |
JP (1) | JP6527951B2 (ko) |
KR (1) | KR102063738B1 (ko) |
CN (1) | CN105938447B (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664214B (zh) * | 2017-03-31 | 2023-05-16 | 北京忆恒创源科技股份有限公司 | 用于固态存储设备的分布式缓存的掉电处理方法与装置 |
CN109725825B (zh) * | 2017-10-27 | 2022-03-11 | 伊姆西Ip控股有限责任公司 | 用于管理缓存的方法、设备和计算机程序产品 |
KR102627873B1 (ko) * | 2018-10-25 | 2024-01-23 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법 |
CN110032526B (zh) * | 2019-04-16 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种基于非易失性介质的页缓存方法、系统及设备 |
US11334141B2 (en) * | 2020-01-31 | 2022-05-17 | Dell Products L.P. | System and method for dynamic power control based on a cache size in volatile memory |
CN117472795A (zh) * | 2020-05-29 | 2024-01-30 | 超聚变数字技术有限公司 | 存储介质管理方法及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030016314A (ko) * | 2000-06-29 | 2003-02-26 | 모토로라 인코포레이티드 | 디코딩된 정보를 저장 및 제공하는 캐시를 갖는 장치 및이를 수행하는 방법 |
KR20040041550A (ko) * | 2001-06-26 | 2004-05-17 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적 |
KR20130000326A (ko) * | 2011-06-09 | 2013-01-02 | 애플 인크. | 캐시 블록 코히어런스를 위한 시스템들, 방법들, 및 디바이스들 |
CN103049070A (zh) * | 2012-12-27 | 2013-04-17 | 加弘科技咨询(上海)有限公司 | 缓存数据的掉电保护方法及计算机设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212644A1 (en) * | 2005-03-21 | 2006-09-21 | Acton John D | Non-volatile backup for data cache |
JP4437489B2 (ja) * | 2006-10-25 | 2010-03-24 | 株式会社日立製作所 | 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム |
US8074034B2 (en) * | 2007-07-25 | 2011-12-06 | Agiga Tech Inc. | Hybrid nonvolatile ram |
US7861041B2 (en) * | 2007-09-04 | 2010-12-28 | Advanced Micro Devices, Inc. | Second chance replacement mechanism for a highly associative cache memory of a processor |
US8464002B2 (en) * | 2009-10-14 | 2013-06-11 | Board Of Regents Of The University Of Texas System | Burst-based cache dead block prediction |
CN103135735B (zh) * | 2011-11-25 | 2017-01-25 | 航天信息股份有限公司 | 一种掉电保护的控制方法及系统 |
US8930624B2 (en) * | 2012-03-05 | 2015-01-06 | International Business Machines Corporation | Adaptive cache promotions in a two level caching system |
CN103092774A (zh) | 2013-01-04 | 2013-05-08 | 北京北大众志微系统科技有限责任公司 | 一种处理器末级高速缓存的管理系统及方法 |
US9195606B2 (en) * | 2013-03-15 | 2015-11-24 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
US9218134B2 (en) * | 2013-07-02 | 2015-12-22 | GlobalFoundries, Inc. | Read based temporal locality compression |
CN103678178B (zh) * | 2013-10-10 | 2017-06-09 | 华为技术有限公司 | 一种存储系统的掉电处理方法及系统 |
US9990289B2 (en) * | 2014-09-19 | 2018-06-05 | Advanced Micro Devices, Inc. | System and method for repurposing dead cache blocks |
EP3126987A4 (en) * | 2015-02-26 | 2017-11-22 | Strato Scale Ltd. | Using access-frequency hierarchy for selection of eviction destination |
US10324959B2 (en) * | 2016-09-20 | 2019-06-18 | Futurewei Technologies, Inc. | Garbage collection in storage system |
-
2016
- 2016-02-23 CN CN201610099237.9A patent/CN105938447B/zh active Active
- 2016-03-02 EP EP16761044.3A patent/EP3255547B1/en active Active
- 2016-03-02 JP JP2017546776A patent/JP6527951B2/ja active Active
- 2016-03-02 KR KR1020177025831A patent/KR102063738B1/ko active IP Right Grant
-
2017
- 2017-09-06 US US15/696,183 patent/US10203906B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030016314A (ko) * | 2000-06-29 | 2003-02-26 | 모토로라 인코포레이티드 | 디코딩된 정보를 저장 및 제공하는 캐시를 갖는 장치 및이를 수행하는 방법 |
KR20040041550A (ko) * | 2001-06-26 | 2004-05-17 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적 |
KR20130000326A (ko) * | 2011-06-09 | 2013-01-02 | 애플 인크. | 캐시 블록 코히어런스를 위한 시스템들, 방법들, 및 디바이스들 |
CN103049070A (zh) * | 2012-12-27 | 2013-04-17 | 加弘科技咨询(上海)有限公司 | 缓存数据的掉电保护方法及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105938447B (zh) | 2018-12-14 |
CN105938447A (zh) | 2016-09-14 |
JP2018511123A (ja) | 2018-04-19 |
KR102063738B1 (ko) | 2020-01-08 |
US10203906B2 (en) | 2019-02-12 |
EP3255547B1 (en) | 2019-06-05 |
EP3255547A1 (en) | 2017-12-13 |
US20180074716A1 (en) | 2018-03-15 |
JP6527951B2 (ja) | 2019-06-12 |
EP3255547A4 (en) | 2018-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170117532A (ko) | 데이터 백업 장치 및 방법 | |
US10884940B2 (en) | Method and apparatus for using compression to improve performance of low voltage caches | |
US8341497B2 (en) | Semiconductor storage | |
US20110055464A1 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
Lee et al. | Shortcut-JFS: A write efficient journaling file system for phase change memory | |
CN109086222B (zh) | 固态硬盘的数据恢复方法以及固态硬盘 | |
CN107817950B (zh) | 一种数据处理方法及装置 | |
KR20140035082A (ko) | 메모리 관리방법 | |
CN109508148B (zh) | 一种元数据重建方法、装置和计算机可读存储介质 | |
CN112988467A (zh) | 一种固态硬盘及其数据恢复方法和终端设备 | |
CN107422989B (zh) | 一种Server SAN系统多副本读取方法及存储系统 | |
CN113031876B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US20240160528A1 (en) | Data Storage Method and Apparatus in Storage System | |
CN115328407A (zh) | 一种缓存盘更换方法、装置、设备、存储介质 | |
WO2016141817A1 (zh) | 数据备份装置及方法 | |
TW201321978A (zh) | 電子系統及其記憶體管理方法 | |
Xu et al. | CLRU: a new page replacement algorithm for NAND flash-based consumer electronics | |
CN111338853B (zh) | 一种基于Linux的数据实时存储系统及方法 | |
CN103685359B (zh) | 数据处理方法及装置 | |
CN115686382A (zh) | 一种数据存储及读取方法 | |
CN112306911B (zh) | Cache替换方法、装置及计算机可读存储介质 | |
Van Dai et al. | A novel recovery data technique on MLC NAND flash memory | |
US20030236948A1 (en) | Cache way replacement technique | |
Chung et al. | HYFLUR: recovery for power-off failure in flash memory storage systems using HYbrid FLUsh recovery | |
CN112463052B (zh) | 减少固态硬盘中ddr容量需求的方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |