KR20150144690A - 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 - Google Patents

적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20150144690A
KR20150144690A KR1020150040731A KR20150040731A KR20150144690A KR 20150144690 A KR20150144690 A KR 20150144690A KR 1020150040731 A KR1020150040731 A KR 1020150040731A KR 20150040731 A KR20150040731 A KR 20150040731A KR 20150144690 A KR20150144690 A KR 20150144690A
Authority
KR
South Korea
Prior art keywords
volatile memory
backup
data
adaptive
power failure
Prior art date
Application number
KR1020150040731A
Other languages
English (en)
Other versions
KR102101961B1 (ko
Inventor
홍종 정
키스 찬
이원석
이탁휘
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20150144690A publication Critical patent/KR20150144690A/ko
Application granted granted Critical
Publication of KR102101961B1 publication Critical patent/KR102101961B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2015Redundant power supplies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Library & Information Science (AREA)

Abstract

본 발명의 컴퓨팅 시스템은 비휘발성 메모리로 휘발성 메모리를 백업하기 위한 리저브 전원 소스에 근거하여 적응적 백업 시간을 계산하는 적응적 백업 제어기, 상기 적응적 백업 제어기에 연결되고, 상기 적응적 백업 시간 내 상기 비휘발성 메모리로 상기 휘발성 메모리의 적어도 일부를 백업하는 프로세서 코어를 포함한다.

Description

적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법{COMPUTING SYSTEM WITH ADAPTIVE BACK-UP MECHANISM AND METHOD OF OPERATION THEREOF}
본 발명은 컴퓨팅 시스템에 관한 것으로, 특히, 백업을 갖는 컴퓨팅 시스템에 관한 것이다.
컴퓨팅 시스템들, 서버들, 가전 제품들, 텔레비전들, 셀룰러 폰들, 자동차들, 위성들, 및 장치들의 조합과 같은 현대의 소비자와 산업용 전자 제품들은 현대 생활을 지원하기 위해 기능적으로 증가된 수준들을 제공한다. 반면에, 성능 요건이 소비자 제품들과 산업 또는 상업용 제품들 사이에 다를 수 있는 반면, 데이터의 손실을 피하기 위해 데이터를 보존해야 하는 공통적인 필요성이 있었다.
존재하는 기술들 내에서의 연구 및 개발은 무수히 많은 다른 방향으로 수행될 수 있다. 일부는 전원이 손실될 때, 동작 성능과 데이터의 손실을 회피하기 위해 휘발성 및 비휘발성 메모리의 사용하기 위한 메모리 계층적 접근의 수행을 한다. 그러나, 이용가능 시스템들은 데이터의 비손실을 보장하지 못한다.
따라서, 데이터 손실을 제거하기 위한 백업 매커니즘을 갖는 컴퓨팅 시스템을 위한 요구가 여전히 남아 있었다. 시장 내에서 소비자 기대들의 증가와 의미있는 제품의 차별화를 위한 기회들의 감소에 따라 계속하여 증가하는 상업 경쟁 압박의 관점에서, 이러한 문제들로 발견되는 해답들은 점점 더 중요하다. 추가적으로, 비용을 감소하고, 효율과 성능의 개선을 위한 수요, 및 마주하는 경쟁적인 압박들은 이러한 문제들의 답을 찾기 위해 중요한 필요성으로 더 긴급히 추가된다.
이러한 문제들에 대한 해결책이 오랫동안 추구되었지만, 이전에 개발에서 교시하지 못하거나 어떤 해결책들을 제시하지 못하였으므로, 이러한 문제들의 해결책들은 당업자에게 오랫동안 이룰 수 없었다.
본 발명의 목적은 전원 실패에 따른 데이터 손실을 방지하거나 제거할 수 있는 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법을 제공함에 있다.
본 발명의 다른 목적은 전원 실패 이전에 모든 데이터들의 백업을 보장하는 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법을 제공함에 있다.
본 발명에 따른 컴퓨팅 시스템은 비휘발성 메모리로 휘발성 메모리를 백업하기 위한 리저브 전원 소스에 근거하여 적응적 백업 시간을 계산하는 적응적 백업 제어기, 및 상기 적응적 백업 제어기에 연결되고, 상기 적응적 백업 시간 내 상기 비휘발성 메모리로 상기 휘발성 메모리의 적어도 일부를 백업하는 프로세서 코어를 포함한다.
이 실시예에 있어서, 상기 적응적 백업 제어기는 상기 리저브 전원 소스로 변경에 근거하여 상기 적응적 백업 시간을 조정한다.
이 실시예에 있어서, 상기 적응적 백업 제어기는 상기 리저브 전원 소스를 위한 이용가능 백업 시간을 계산한다.
이 실시예에 있어서, 상기 적응적 백업 제어기는 백업을 위해 상기 휘발성 메모리로부터 쓰기 엔트리 커밋(write entries commit)을 계산하고, 상기 프로세서 코어는 상기 쓰기 엔트리 커밋을 백업한다.
이 실시예에 있어서, 상기 적응적 백업 제어기는 백업을 위해 상기 휘발성 메모리로부터 쓰기 엔트리 커밋을 조정하고, 상기 프로세서 코어는 상기 쓰기 엔트리 커밋을 백업한다.
이 실시예에 있어서, 상기 적응적 백업 제어기는 백업을 위한 상기 휘발성 메모리로부터 비휘발성 지연과 비휘발성 대역에 근거하여 쓰기 엔트리 커밋을 계산한다.
이 실시예에 있어서, 상기 적응적 백업 제어기는 상기 리저브 전원 소스에 근거하여 상기 적응적 백업 시간을 조정하고, 상기 프로세서 코어는 백업을 위해 상기 휘발성 메모리로부터 상기 적응적 백업 시간에 근거하여 쓰기 엔트리 커밋을 조정한다.
이 실시예에 있어서, 상기 프로세서 코어에 연결되고, 전원 실패를 검출하는 전원 검출기, 및 상기 프로세서 코어에 연결되고, 상기 전원 실패에 근거하여 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하는 전원 절감 경로를 더 포함한다.
이 실시예에 있어서, 상기 프로세서 코어에 연결되고, 전원 실패를 검출하는 전원 검출기, 및 상기 프로세서 코어에 연결되고, 상기 비휘발성 메모리로 쓰기를 위한 빠른 쓰기 모드로 프로그램을 하는 프로그램 모드 회로를 더 포함하고,상기 프로세서 코어는 상기 전원 실패에 근거하여 상기 빠른 쓰기 모드에 따라 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업한다.
이 실시예에 있어서, 상기 프로세서 코어에 연결되고, 전원 실패를 검출하는 전원 검출기를 더 포함하고, 상기 프로세서 코어는 상기 전원 실패에 근거하여 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하기 위해 상기 비휘발성 메모리를 위한 데이터 이동 모드를 변경한다.
본 발명에 따른 컴퓨팅 시스템의 동작 방법에 있어서, 비휘발성 메모리로 휘발성 메모리를 백업하기 위해 리저브 전원 소스에 근거하여 적응적 백업 시간을 계산하는 단계, 및 상기 적응적 백업 시간 내에 상기 비휘발성 메모리로 상기 휘발성 메모리의 적어도 일부를 백업하는 단계를 포함한다.
이 실시예에 있어서, 상기 적응적 백업 시간을 계산하는 단계는 상기 리저브 전원 소스로 변경에 근거하여 상기 적응적 백업 시간을 조정하는 단계를 포함한다.
이 실시예에 있어서, 상기 적응적 백업 시간을 계산하는 단계는 상기 리저브 전원 소스를 위한 이용가능 백업 시간을 계산하는 단계를 포함한다.
이 실시예에 있어서, 백업을 위해 상기 휘발성 메모리로부터 쓰기 엔트리 커밋(write entries commit)을 계산하는 단계를 더 포함하고, 상기 휘발성 메모리의 적어도 일부를 백업하는 단계는 상기 쓰기 엔트리 커밋을 백업하는 단계를 포함한다.
이 실시예에 있어서, 백업을 위해 상기 휘발성 메모리로부터 쓰기 엔트리 커밋을 조정하는 단계를 더 포함하고, 상기 적응적 백업 시간 내에서 상기 휘발성 메모리의 적어도 일부를 백업하는 단계는 상기 쓰기 엔트리 커밋을 백업하는 단계를 포함한다.
이 실시예에 있어서, 상기 적응적 백업 시간 내에서 상기 휘발성 메모리의 적어도 일부를 백업하는 단계는 백업을 위한 상기 휘발성 메모리로부터 비휘발성 지연과 비휘발성 대역에 근거하여 쓰기 엔트리 커밋을 계산하는 단계를 포함한다.
이 실시예에 있어서, 상기 적응적 백업 시간을 계산하는 단계는 상기 리저브 전원 소스의 변화에 근거하여 상기 적응적 백업 시간을 조정하는 단계를 포함하고, 상기 적응적 백업 시간 내 상기 비휘발성 메모리로 상기 휘발성 메모리의 적어도 일부를 백업하는 단계는 백업을 위해 상기 휘발성 메모리로부터 상기 적응적 백업 시간에 근거하여 쓰기 엔트리 커밋을 조정하는 단계를 포함한다.
이 실시예에 있어서, 전원 실패를 검출하는 단계, 및 전원 절감 경로를 통해 상기 전원 실패에 근거하여 상기 비휘발성 메모리로 상기 휘발성 메모리의 적어도 일부를 백업하는 단계를 더 포함한다.
이 실시예에 있어서, 전원 실패를 검출하는 단계, 상기 비휘발성 메모리로 쓰기를 위한 빠른 쓰기 모드를 프로그램하는 단계, 및 상기 전원 실패에 근거하여 상기 빠른 쓰기 모드에 따라 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하는 단계를 더 포함한다.
이 실시예에 있어서, 전원 실패를 검출하는 단계, 및 상기 전원 실패에 근거하여 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하기 위해 상기 비휘발성 메모리를 위한 데이터 이동 모드를 변경하는 단계를 더 포함한다.
본 발명의 컴퓨팅 시스템은 데이터의 백업을 보장하기 위한 노멀 데이터 백업 모드들의 시구간들을 적응적으로 제어함으로써, 전원 실패에 따른 데이터 손실을 방지하거나 제거할 수 있다.
도 1은 본 발명의 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면,
도 2는 본 발명의 다른 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면,
도 3은 본 발명의 또 다른 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면,
도 4는 본 발명의 또 다른 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면,
도 5는 컴퓨팅 시스템의 일부를 상세히 도시한 블록 다이어그램,
도 6은 적응적 백업 시스템의 일부를 상세히 도시한 블록 다이어그램,
도 7은 컴퓨팅 시스템을 위한 적응적 백업에 대한 노멀 동작을 도시한 제어 흐름도,
도 8은 컴퓨팅 시스템을 위한 적응적 백업에 대한 전원 실패 동작을 도시한 제어 흐름도,
도 9는 본 발명의 실시예에 따른 적용 예로서 컴퓨팅 시스템을 예시적으로 도시한 도면, 및
도 10은 본 발명의 실시예에 따른 컴퓨팅 시스템의 동작 방법을 도시한 순서도이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한, 잘 알려진 기능들 및 구조들은 상세히 설명되지 않고, 그들의 불필요하게 상세한 응용은 생략할 수 있다.
실시예들은 전체 전원 실패 이전에 모든 데이터의 백업을 보장하기 위한 노멀 데이터 백업 모드들의 시구간들을 적응적으로 제어할 수 있기 때문에 실시예들은 전원 실패일 때, 데이터 손실을 방지하거나 제거한다. 실시예들은 휘발성 메모리로부터 데이터의 백업을 위해 현재 주어진 조건들에 대한 리저브 전원 소스를 위한 가용 백업 시간을 계산한다. 실시예들은 가용 백업 시간에 근거하여 적응적 백업 시간(adaptive back-up time)을 계산할 수 있다. 적응적 백업 시간은 노멀 동작, 일예로, 전원 실패 없는 동안 비휘발성 메모리로 휘발성 메모리 백업의 제어를 도울 수 있다.
다른 실시예들이 전체 전원 실패 이전에 모든 데이터를 백업할 수 있는 것을 보장하기 위해 노멀 데이터 백업 모드들의 시구간들을 동적으로 조절하기 때문에 실시예들은 전원 실패일 때, 데이터 손실을 방지 또는 제거한다. 실시예들은 조건들이 데이터 변화를 백업하는 능력에 영향을 줄 때, 리저브 전원 소스에 의해 가능한 가용 데이터 백업 시간을 조절할 수 있다. 가용 백업 시간은 리저브 전원 소스의 디스차지로서 동적으로 조절되거나 전원 실패가 검출될 때 이용될 수 있다. 가용 백업 시간은 리저브 전원 소스가 적어도 일부 재충전되면, 더 동적으로 조절될 수 있다. 적응적 백업 시간을 위한 동적 조절들은 고정된 시구간과 대조되어 가변될 수 있는 것을 허용한다. 적응적 백업 시간을 위한 동적 조절들은 노멀 동작 동안 비휘발성 메모리로 휘발성 메모리의 백업의 제어를 더 도울 수 있는 반면, 전원 실패가 검출되는 동안 데이터 손실을 피할 수 있다.
또 다른 실시예들에서, 전체 전원 손실 이전에 모든 데이터 백업을 보장하기 위한 노멀 데이터 백업 모드 동안 백업되는 휘발성 메모리로부터 데이터의 양을 적응적으로 제어함으로써, 실시에들은 전원 실패 일때, 데이터 손실을 방지 또는 제거한다. 실시예들은 이용가능 백업 시간, 적응적 백업 시간을 계산하고, 실시예들은 쓰기 엔트리 커밋을 갖는 노멀 동작들 내 백업되기 위해 휘발성 메모리로부터 얼마만큼의 데이터를 필요로 하는지를 계산할 수도 있고, 따라서 리저브 전원 소스 내 남아있는 전하에 근거하여 전원 실패가 검출될 때, 데이터가 손실되지 않는 것을 보장하기 위한 백업들을 스케줄할 수 있다.
또 다른 실시예에서, 실시예들이 전체 전원 손실 이전에 모든 데이터 백업을 보장하기 위해서 노멀 데이터 백업 모드 동안 백업되기 위한 휘발성 메모리로부터 데이터의 양을 조절하기 때문에 전원 실패일 때, 데이터 손실을 방지하거나 제거할 수 있다. 실시예들은 이용가능 백업 시간, 적응적 백업 시간을 조절하고, 실시예들은 전원 실패가 검출될 때, 데이터를 손실되지 않는 것을 보장하기 위해 휘발성 메모리로부터 얼마만큼의 데이터를 조절이 필요한지를 조절할 수도 있고, 백업 절차는 리저브 전원 소스 내 남아있는 전하에 근거한다.
실시예들은 휘발성 메모리 내 원하는 데이터의 손실 회보를 돕기 위해 설정되는 휘발성 메모리의 백업을 개선하는 실시예들로 인해 전원 실패일 때, 데이터 손실을 방지하거나 제거할 수 있다. 실시예들은 전원 실패 동안 데이터 백업의 효율을 개선하기 위해 전체 버스트 길이로 휘발성 메모리로부터 데이터를 이동할 수 있다. 또한, 빠른 쓰기 모드 내 비휘발성 메모리로 쓰기에 의해 비휘발성 메모리로 데이터 백업의 효율을 개선할 수 있다. 추가로, 실시예들은 전원 실패 동안 노멀 데이터 경로 대신에 전원 절감 경로를 통해 데이터의 이동에 의해 데이터 백업을 개선할 수 있다.
다음의 실시예들은 발명을 사용하고 만들기 위해 당업자에게 실행 가능하도록 충분히 상세하게 기술된다. 그것은 본 발명에 근거하여 자명한 것과 본 발명의 실시예의 범위를 벗어나지 않도록 만들어질 수 있는 시스템, 프로세스, 아키텍쳐, 도는 기계적인 변경들인 다른 실시예들로 이해될 수 있다.
다음의 기재들, 많은 특정 상세들은 본 발명의 다양한 실시예들에 의한 이해를 통해 제공되기 위해 주어진다. 그러나, 그것은 이러한 특정 상세들 없이 실행될 수 있는 다양한 실시예들을 나타낸다. 모호한 다양한 실시예들을 회피하기 위하여, 일부 잘 알려진 회로, 시스템, 구성들, 및 프로세스 단계들은 상세히 기술하지 않는다.
시스템의 실시예들을 보여주는 도면들은 제한적으로 도식되고, 비율로 한정되지 않고, 특히, 차원들 중 일부는 보여주는 것을 명확히 하기 위해 도시된 도면들 내 과장되도록 도시될 수 있다. 마찬가지로, 비록 설명의 편의를 위한 도면들 내 시점들이 유사한 방향을 일반적으로 보여주더라도, 이 도면들 내의 묘사는 대부분의 부분에서 임의로 설정된다. 일반적으로 본 발명은 임의의 방향에서 동작할 수 있다.
여기에 나타난 "모듈" 의 용어는 그 용어가 사용된 문맥에 따른 본 발명의 실시예에서 소프트웨어, 하드웨어 또는 그것들의 조합을 포함할 수 있다. 예를 들면, 소프트웨어 모듈은 기계 코드, 펌웨어, 임베디드 코드, 및/또는 응용 소프트웨어를 포함할 수 있다. 또 예를 들면, 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 마이크로전자기계시스템(MEMS: microelectromechanical system), 수동 기기들, 또는 그것들의 조합을 포함할 수 있다. 더욱이, 모듈은 하기에서 장치 청구항들의 영역으로 기술될 수 있고, 모듈들은 장치 청구항들의 범위와 목적을 위한 하드웨어 회로를 포함한 것으로 간주될 수 있다.
실시예들에서 다음과 같이 기술되는 모듈은 기술되거나 도시되는 다른 하나에 연결될 수 있다. 그러한 연결은 연결된 아이템들 사이에 중간 아이템들 각각과 함께 또는 중간 아이템들 없이 각각 직접 또는 간접일 수 있다. 연결은 아이템들 사이의 물리접 접촉 또는 통신에 의한 것일 수 있다.
도 1은 본 발명의 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면이다.
도 1을 참조하면, 데이터가 백업될 수 있는 컴퓨팅 시스템(100)의 일실시예를 도시한 도면이다.
백업의 용어는 데이터 유지를 위한 데이터의 스토리지 또는 컴퓨팅 시스템(100) 또는 컴퓨팅 시스템(100)의 일부에서 전원 실패에 따른 데이터 손실의 회피를 나타낸다.
컴퓨팅 시스템(100)은 인쇄 회로 기판(PCB: Printed Circuit Board), 플러그 인 카드(plug-in card), 메자닌 카드(mezzanine card), 비휘발성 메모리(nonvolatile memory)(104), 휘발성 메모리(volatile memory)(106), 및 로컬 메모리 제어기(local memory controller)(108)와 같은 동일 시스템 보드(미도시) 상에 존재(그러나, 존재할 필요가 없는)하는 호스트 프로세서(host processor)(102)를 실시예로 도시할 수 있다. 호스트 프로세서(102)는 휘발성 메모리(106), 비휘발성 메모리(104), 또는 그것의 조합 내에 데이터를 저장할 수 있다. 호스트 프로세서(102), 로컬 메모리 제어기(108), 또는 그것의 조합은 휘발성 메모리(106)로부터 데이터를 적응적으로 백업하기 위해 비휘발성 메모리(104)를 이용할 수 있으며, 도 6, 7, 8에서 더 상세히 논의하기로 한다.
호스트 프로세서(102)는 휘발성 메모리(106), 비휘발성 메모리(104), 로컬 메모리 제어기(108), 또는 그것들의 조합과 상호 작용을 하기 위한 호스트 메모리 제어기(host memory controller)(110)를 포함할 수 있다. 호스트 메모리 제어기(110)는 휘발성 메모리(106), 비휘발성 메모리(104), 로컬 메모리 제어기(108), 또는 그것들의 조합과 상호 작용을 지원하기 위한 프로토콜을 제공한다.
호스트 프로세서(102)의 예들은 프로세싱 능력을 갖는 일반적 목적의 마이크로프로세서, 멀티코어 프로세서 기기, 디지털 신호 처리기(DSP: Digital Signal Processor), 또는 주문형 반도체(ASIC: Application Specific Integrated Circuit)를 포함할 수 있다. 호스트 메모리 제어기(110)를 위한 예들은 랜덤 액세스 메모리(RAM: Random Access Memory) 제어기를 포함할 수 있다. RAM은 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 또는 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory)일 수 있다. RAM은 고체 상태 플래시 메모리(solid state flash memory)와 같은 비휘발성 메모리를 포함할 수도 있다.
로컬 메모리 제어기(108)는 휘발성 메모리(106)와 비휘발성 메모리(104) 사이에 데이터 이동을 위한 제어를 제공한다. 이러한 예들에서, 로컬 메모리 제어기(108)는 비휘발성 메모리 제어기일 수 있다. 로컬 메모리 제어기(108)는 휘발성 메모리(106)로부터 비휘발성 메모리(104)로 데이터를 적응적으로 백업할 수도 있으며, 도 6, 7, 8에서 더 상세히 설명하기로 한다. 로컬 메모리 제어기(108)는 비휘발성 메모리(104)로 백업되기 위한 적어도 일부의 휘발성 데이터(116)에서 요구되는 전원 실패(114)를 검출하는 전원 검출기(112)를 포함한다. 도 1은 리저브 전원 소스(reserve power source)(118)와 로컬 메모리 제어기(108) 사이의 지시자(indicator)로서 전원 실패(114)를 도시한다.
전원 실패(114)는 비휘발성 메모리(106)에 저장된 데이터의 일부가 손실되거나 복구될 수 없는 리스크(risk)에 도달하는 조건을 나타낸다. 전원 실패(114)는 비휘발성 메모리로 데이터가 쓰기될 수 없는 조건을 나타낸다. 예를 들면, 전원 실패(114)를 위한 이러한 조건들 모두 휘발성 메모리(106) 또는 비휘발성 메모리(104)로 공급되는 불충분한 전원에 따른 것일 수 있다. 또한, 예를 들면, 전원 실패(114)는 비휘발성 메모리(104)로 백업 없이 데이터 손실이 야기될 수 있는 휘발성 메모리(106)와 비휘발성 메모리(104) 사이의 데이터 경로의 일부로 공급되는 불충분한 전원을 나타낼 수도 있다.
전원 실패(114) 조건이 검출될 때, 리저브 전원 소스(118)는 백업 매커니즘을 위한 에너지를 제공한다. 리저브 전원 소스(118)는 컴퓨팅 시스템(100)의 노멀 동작을 위한 전원, 휘발성 메모리(106)와의 데이터 이동, 비휘발성 메모리(104)와 데이터 이동, 또는 그것들의 조합을 위한 전원을 제공하는 주 전원 소스(미도시)에 연결될 수 있다.
리저브 전원 소스(118)는 다수의 방법들로 구현될 수 있다. 예를 들면, 리저브 전원 소스(118)는 배터리(battery) 또는 커패시터(capacitor)로 구현되는 에너지 소스일 수 있다. 리저브 전원 소스(118)는 일예로서, 주 전원 소스를 이용하여 재충전될 수 있다.
도 2는 본 발명의 다른 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면이다.
도 2를 참조하면, 도 1의 컴퓨팅 시스템(100)의 설명은 컴퓨팅 시스템(200)에 적용될 수도 있다. 이러한 실시예에서, 도 1로부터의 설명은 비록 다른 엘리먼트 번호로 분류될 수 있는 엘리먼트들이라고 하더라도, 동일한 엘리먼트 명칭을 갖는 엘리먼트들에 적용될 수 있다. 유사한 대부분은 이러한 실시예의 설명을 간결하게 하기 위해 반복되지 않는다.
컴퓨팅 시스템(200)은 호스트 프로세서(202), 비휘발성 메모리(204), 휘발성 메모리(206), 및 로컬 메모리 제어기(208)를 포함할 수 있다. 컴퓨팅 시스템(200)은 호스트 프로세서(202)가 다른 기기들 대비 다른 시스템 카드(미도시) 상에 위치하는 실시예를 도시한다. 이러한 예에서, 컴퓨팅 시스템(200)은 스토리지 카드(220) 상의 휘발성 메모리(206), 비휘발성 메모리(204), 및 로컬 메모리 제어기(208)를 모두 도시한다.
스토리지 카드(220)는 컴퓨팅 시스템(200), 호스트 프로세서(202) 또는 그것들의 조합으로 저장 능력을 제공한다. 리저브 전원 소스(218)는 스토리지 카드(220) 상에 존재할 수 있다. 예로서, 로컬 메모리 제어기(208)는 휘발성 메모리(206)로부터 비휘발성 메모리(204)로 적응적 백업을 수행할 수 있으며, 도 6, 7, 8에서 상세히 설명하기로 한다.
이러한 예로, 스토리지 카드(220)는 비휘발성 메모리(204)뿐만 아니라 휘발성 메모리(206)를 위한 다수의 기기들을 갖는다. 스토리지 카드(220)의 예들은 플러그 인 카드, 메자닌 카드, 또는 라인 카드일 수 있다. 특정 예들로서, 스토리지 카드(220)는 비휘발성 듀얼 인-라인 메모리 모듈(NVDIMM: Nonvolatile Dual In-line Memory Module)일 수 있고, 로컬 메모리 제어기(208)는 NVDIMM을 위한 비휘발성 메모리 제어기일 수 있다.
도 2는 발명에 따른 로컬 메모리 제어기(208)의 실시예를 위한 일부 예들을 상세히 도시할 수도 있다. 로컬 메모리 제어기(208)는 프로세서 코어(222), 로컬 버퍼(224), 데이터 신뢰도 회로(data reliability circuitry)(226), 휘발성 메모리 인터페이스(228), 및 비휘발성 메모리 인터페이스(230)를 포함할 수 있다. 도 2는 노멀 데이터 경로(normal data path)(232) 및 전원 절감 경로(power saving path)(234)를 도시할 수도 있다.
프로세서 코어(222)는 스토리지 카드(220)의 동작을 위한 적어도 일부 제어들을 제공할 수 있다. 프로세서 코어(222)의 예들은 일반적인 목적의 프로세싱 코어, 유한 상태 머신(finite state machine), 특정한 쓰기가능 제어 저장(specialized writeable control store) 또는 그것들의 조합일 수 있다. 프로세서 코어(222)는 싱글 코어(single core) 또는 동일하거나 다른 타입들의 멀티 코어(multi core)들일 수 있다.
로컬 버퍼(224)는 휘발성 메모리(206)와 비휘발성 메모리(204) 사이에서 이동되는 데이터를 위한 중계 스토리지(intermediary storage)를 제공할 수 있다. 로컬 버퍼(224)는 휘발성 메모리(206)와 비휘발성 메모리(204) 사이의 이동률(transfer rate)의 차이들을 위한 보상을 할 수도 있다. 로컬 버퍼(224)는 휘발성 메모리(206)와 비휘발성 메모리(204) 사이에 저장되는 데이터 사이의 포맷 차이들의 적어도 일부를 제공할 수도 있다. 프로세서 코어(222)는 포맷 내 차이들 내 변환의 적어도 일부를 제공할 수도 있다. 로컬 버퍼(224)의 예들로서, 선입 선출(FIFO: First In First Out) 버퍼, 양방향 쉬프트 레지스터(bidirectional shift register)들, 내부 RAM, 또는 그것들의 조합을 포함할 수 있다.
데이터 신뢰도 회로(226)는 휘발성 메모리(206)와 비휘발성 메모리(204) 사이에 이동되는 데이터를 위한 에러 검출(error detection), 에러 정정(error correction), 또는 그것들의 조합을 위한 기능들을 제공한다. 데이터 신뢰도 회로(226)의 기능은 이동되는 데이터가 이동되는 데이터 포맷의 일부로서 어떤 데이터 보호 기법을 포함하는지의 여부에 의해 결정된다.
예로서, 데이터 신뢰도 회로(226)는 블록 코드(block code)들, 컨볼루션 코드(convolution code)들, 패리티 코드(parity code)들 또는 그것들의 조합을 갖는 보호 기법을 제공할 수 있다. 데이터 신뢰도 회로(226)는 시스터매틱 코드(systematic code)들 또는 비시스터매틱 코드(nonsystematic code)들로 동작할 수도 있다. 데이터 신뢰도 회로(226)에 의해 다루어지는 일부 보호 기법들의 예는 리드-솔로몬(RS: Reed-Solomon), 저밀도 패리티 체크(LDPC: Low Density Parity Check), 순환 중복 검사(CRC: Cyclic Redundancy Check), 또는 그것들의 조합을 포함할 수 있다.
로컬 메모리 제어기(208)는 휘발성 메모리(206)와 비휘발성 메모리(204) 사이의 데이터 이동을 지원할 수 있다. 데이터 이동은 프로세서 코어(222)에 의해 지원되거나 동작될 수도 있다. 예로서, 데이터 이동은 노멀 데이터 경로(232)를 통해 휘발성 메모리 인터페이스(228)와 비휘발성 메모리 인터페이스(230) 사이에 존재할 수 있다.
노멀 데이터 경로(232)는 노멀 동작에서 데이터 이동을 위한 것이다. 노멀 동작은 도 1의 전원 실패(114) 검출없는 스토리지 카드의 더 특정한 예로서, 또는 컴퓨팅 시스템의 동작을 나타낸다. 예를 들면, 노멀 데이터 경로(232)는 로컬 버퍼(224)와 데이터 신뢰도 회로(226)를 통해 가로지르는 것을 포함할 수 있다. 노멀 데이터 경로(232)는 로컬 메모리 제어기(208)의 내부 및 외부의 데이터 경로를 나타낼 수 있다.
휘발성 메모리 인터페이스(228)는 휘발성 메모리로(206)로부터 데이터 이동 또는 휘발성 메모리(206)로 데이터 이동을 위한 기능들을 제공한다. 예를 들면, 휘발성 메모리 인터페이스(228)는 휘발성 메모리(206)와 상호작용을 위한 프로토콜과 물리적 입/출력 인터페이스를 제공할 수 있다. 추가적인 예로서, 휘발성 메모리 인터페이스(228)는 휘발성 메모리(206)로 쓰여지거나 휘발성 메모리(206)로부터 수신될 수 있는 데이터의 포매팅 기능(formatting function)들을 제공할 수도 있다.
비휘발성 메모리 인터페이스(230)는 비휘발성 메모리(204)로 데이터 이동 또는 비휘발성 메모리(204)로부터 데이터 이동을 위한 기능들을 제공한다. 예를 들면, 비휘발성 메모리 인터페이스(230)는 비휘발성 메모리(204)와 상호작용을 위한 프로토콜과 물리적 입/출력 인터페이스를 제공할 수 있다. 추가적인 예로서, 비휘발성 메모리 인터페이스(230)는 비휘발성 메모리(204)로 쓰여지거나 휘발성 메모리로부터 수신될 수 있는 데이터의 포매팅 기능(formatting function)들을 제공할 수 있다.
스토리지 카드(220)는 전원 실패(114)를 검출에 따라 상황이 전환되면, 일부 실시예들에서, 로컬 메모리 제어기(208) 또는 프로세서 코어(222)의 추가적인 특정 실시예는 휘발성 메모리(206)로부터 비휘발성 메모리(204)로의 데이터 이동을 바꿀 수 있고, 반대 방향으로 바꿀 수도 있다. 그것은 데이터가 손실되지 않는 것을 보장하도록 전원 실패(114)가 검출될 때, 데이터 이동을 바꾸기 위한 다수의 방법들이다. 여기에서 기술된 수정들 중의 일부는 전원 절감, 데이터 이동률 증가, 또는 그것들의 조합을 위한 것일 수 있다.
예를 들면, 로컬 메모리 제어기(208)는 전원 절감 경로(234)를 통해 휘발성 메모리 인터페이스(228)로부터 비휘발성 메모리 인터페이스(230)로의 데이터 이동을 수행할 수 있다. 전원 절감 경로(234)는 일반 데이터 경로(232)보다 데이터 이동을 위해 감소된 전원을 필요로 하는 데이터 이동을 위한 데이터 경로이다. 예들로서, 전원 절감 경로(234)는 로컬 메모리 제어기(208) 내에 존재할 수 있거나 로컬 메모리 제어기(208)의 외부의 데이터 경로를 포함할 수도 있다.
전원 절감 경로(234)는 복수의 방법들로 낮은 전원 소비를 달성할 수 있다. 예를 들면, 스토리지 카드(220) 또는 로컬 메모리 제어기(208)는 저 전원 모드(low power mode)에서 회로의 일부로 동작할 수 있다. 저 전원 모드는 로직 전환을 제거하기 위한 블록들로의 슈팅 클록(shutting clock)들을 포함할 수 있고, 그로 인해 금속 산화물 반도체(CMOS: Complementary Metal Oxide Semiconductor) 기술에서 전원 소비를 위한 누설 전류(leakage current)만을 남긴다. 저 전원 모드는 누설 전류만으로 남은 로직 전환들의 제거의 결과일 수 있는 로직의 기능을 디스에이블(disable)하는 것을 포함할 수도 있다. 더욱이, 저 전원 모드는 그러한 회로의 실행을 회피하기 위하여 일부 로직 또는 회로를 바이패스(우회)(bypass)할 수 있고, 또한 전기적인 변환들의 제거를 위해 허용할 수도 있다. 로컬 메모리 제어기(208)의 예로서, 데이터 신뢰도 회로(226)는 바이패스되거나 실행되지 않을 수 있다.
다른 수정 예로서, 스토리지 카드(220) 또는 로컬 메모리 제어기(208)는 비휘발성 메모리(204)로 데이터를 쓰기 위한 이동 매커니즘을 수정할 수 있다. 스토리지 카드(220)는 비휘발성 메모리(204)로 빠른 쓰기 모드(faster write mode)(227)를 허용하기 위한 프로그래밍 모드(programming mode)를 수정할 수 있다. 빠른 쓰기 모드(227)는 다른 고려 대상들과 비교되는 프로그래밍 또는 쓰기 성능의 증가를 위한 비휘발성 메모리(204)로의 쓰기를 나타낸다. 이러한 고려 대상들의 예들은 싱글 레벨 셀(SLC: single level cell) 스토리지와 대조되는 멀티 레벨 셀(MLC: multi level cell)을 위한 메모리 또는 스토리지 밀도일 수 있으며, 이는 도 5에서 상세히 설명하기로 한다.
추가적인 수정 예로서, 스토리지 카드(220) 또는 로컬 메모리 제어기(208)는 휘발성 메모리(206)로부터 이동 매커니즘을 수정할 수 있다. 예로서, 스토리지 카드(220)는 빠른 이동 성능을 위한 버스트 모드, 또는 바이트 투 바이트 모드(byte-to-byte mode) 또는 부분 버스트 모드(partial burst mode)를 대신하는 전체 버스트 모드(full burst mode)에서 이동을 위한 휘발성 메모리(206)를 프로그램할 수 있고, 도 6에서 더 상세히 설명하기로 한다. 스토리지 카드(220)는 이동 성능의 개선 또는 저 전력 소비를 위한 지원이 있으면, 휘발성 메모리(206) 내 임의의 에러 정정 회로(미도시)를 디스에이블할 수도 있다.
도 3은 본 발명의 또 다른 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면이다.
도 3을 참조하면, 도 1의 컴퓨팅 시스템(100)과 도 2의 컴퓨팅 시스템(200)을 위한 설명들은 컴퓨팅 시스템(300)에 적용될 수도 있다. 이러한 실시예를 위해, 도 1과 도 2로부터의 설명들은 비록 다른 엘리먼트 번호로 분류될 수 있는 엘리먼트들이라고 하더라도, 동일한 엘리먼트 명칭을 갖는 엘리먼트들에 적용될 수 있다. 유사한 대부분은 이러한 실시예의 설명을 간결하게 하기 위해 반복되지 않는다.
컴퓨팅 시스템(300)은 호스트 프로세서(302), 비휘발성 메모리(304), 휘발성 메모리(306), 로컬 메모리 제어기(308), 및 버퍼 기기(336)를 포함할 수 있다. 컴퓨팅 시스템(200)과 유사하게, 컴퓨팅 시스템(300)은 호스트 프로세서(302)가 다른 기기들 대비 다른 시스템 카드(미도시) 상에 위치하는 실시예를 도시한다. 이러한 예에서, 컴퓨팅 시스템(300)은 스토리지 카드(320) 상의 휘발성 메모리(306), 비휘발성 메모리(304), 및 로컬 메모리 제어기(308) 모두를 도시한다.
이러한 실시예에서, 버퍼 기기(336)는 노멀 데이터 경로(332)를 위한 것일 수 있는 로컬 메모리 제어기(308)를 갖는 데이터 경로인 반면에 전원 절감 경로(334)의 일부일 수 있다. 예로서, 스토리지 카드(320) 또는 컴퓨팅 시스템(300)이 도 1의 전원 실패(114)를 검출하면, 다음으로 데이터 이동은 전원 절감 경로(334)와 버퍼 기기(336)를 통해 발생될 수 있다. 노멀 데이터 경로(332)는 로컬 메모리 제이기(308) 내 데이터 신뢰도 회로(326)의 기능들을 포함할 수도 있다.
버퍼 기기(336)는 휘발성 메모리(306)와 비휘발성 메모리(304) 사이에 이동되는 데이터를 위한 중계 스토리지를 제공할 수 있다. 버퍼 기기(336)는 휘발성 메모리(306)와 비휘발성 메모리(304) 사이에 이동률의 차이들을 위한 보상을 할 수도 있다. 버퍼 기기(336)는 휘발성 메모리(306)와 비휘발성 메모리(304) 사이에 저장되는 데이터 사이의 포맷 차이들의 적어도 일부를 제공할 수도 있다. 버퍼 기기(336)의 예들로서, 선입 선출(FIFO) 버퍼, 양방향 쉬프트 레지스터들, 내부 RAM, 또는 그것들의 조합을 포함할 수 있다.
리저브 전원 소스(318)는 버퍼 기기(336), 휘발성 메모리(306), 비휘발성 메모리(304), 및 그것들의 조합에 연결될 수 있다. 리저브 전원 소스(318)는 관련없는 디스차지(discharge)를 회피하기 위해 이러한 실시예에서, 로컬 메모리 제어기(308)에 선택적으로 연결되지 않을 수도 있다. 상술한 바와 같이, 리저브 전원 소스(318)는 버퍼기기(336) 및/도는 전원 절감 경로(334)를 통할 수 있는 휘발성 메모리(306)로부터 비휘발성 메모리(304)로의 데이터의 백업을 위한 에너지를 제공한다. 전원 실패(114) 동안 데이터 백업은 리저브 전원 소스(318)가 로컬 메모리 제어기(308)에 연결되지 않으면, 노멀 데이터 경로(332)를 통한 로컬 메모리 제어기(308)의 동작을 포함하지 않을 수 있다.
도 4는 본 발명의 또 다른 실시예에 따른 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템을 도시한 도면이다.
도 4를 참조하면, 도 1의 컴퓨팅 시스템(100)과 도 2의 컴퓨팅 시스템(200)을 위한 설명들은 컴퓨팅 시스템(400)에 적용될 수도 있다. 이러한 실시예를 위해, 도 1과 도 2로부터의 설명들은 비록 다른 엘리먼트 번호로 분류될 수 있는 엘리먼트들이라고 하더라도, 동일한 엘리먼트 명칭을 갖는 엘리먼트들에 적용될 수 있다. 유사한 대부분은 이러한 실시예의 설명을 간결하게 하기 위해 반복되지 않는다.
컴퓨팅 시스템은 호스트 프로세서(402), 비휘발성 메모리(404), 휘발성 메모리(406), 로컬 메모리 제어기(408), 및 리저브 전원 소스(418)를 포함할 수 있다. 컴퓨팅 시스템(400)은 호스트 프로세서(402)가 비휘발성 메모리(404), 휘발성 메모리(406), 로컬 메모리 제어기(408)와 같이 동일한 시스템 카드(미도시)와 동일하거나 다르게 존재하는 실시예를 도시한 것이다.
로컬 메모리 제어기(408)는 비휘발성 메모리(404)로의 백업을 위한 휘발성 데이터(416)의 적어도 일부에서 요구되는 도 1의 전원 실패(114)를 검출하기 위한 전원 검출기(412)를 포함할 수 있다. 전원 검출기(412)는 전원 실패(114)를 지시하는 전원 검출 신호(PDS: Power Detect Signal)(438)를 생성할 수 있다.
로컬 메모리 제어기(408)는 프로세서 코어(422), 로컬 버퍼(424), 데이터 신뢰도 회로(426), 휘발성 메모리 인터페이스(428), 비휘발성 메모리 인터페이스(430), 및 카운터(440)를 포함할 수도 있다. 또한, 도 4는 노멀 데이터 경로(432)와 전원 절감 경로(434)를 도시한다. 이러한 예에서, 전원 절감 경로(434)는 데이터 신뢰도 회로(426)를 바이패스하는 반면에 노멀 데이터 경로(432)는 데이터 신뢰도 회로(426)의 동작을 포함한다.
이러한 실시예는 편의를 위해 제 1 코어(442)와 제 2 코어(444)로 관련된 멀티 코어들을 포함하는 프로세서 코어(422)를 도시한다. 제 1 코어(442)는 휘발성 메모리 인터페이스(428)와 카운터(440)에 연결되는 것을 도시한다. 제 2 코어(444)는 카운터(440)와 데이터 신뢰도 회로(426)에 연결되는 것을 도시한다.
예로서, 제 1 코어(442)는 휘발성 메모리(406)와 로컬 버퍼(424)에 관련된 데이터 유입(data ingress), 데이터 출력(data egress), 또는 그것들의 조합을 관리할 수 있다. 전원 검출 신호(438)가 전원 실패(114)가 없는 것을 지시할 때, 제 1 코어(442)는 데이터 신뢰도 회로(426)로부터 유효한 에러 검출, 에러 정정, 또는 그것들의 조합에 근거하여 데이터의 이동의 관리를 도울 수 있다. 전원 검출 신호(438)가 전원 실패(114)임을 지시할 때, 제 1 코어(442)는 데이터 신뢰도 회로(426)로부터 에러 검출, 에러 정정에 관계없이 데이터 이동의 관리를 할 수 있다.
제 2 코어(444)는 전원 실패(114) 또는 그렇지 않은 것을 지시하는 전원 검출 신호(438)의 상태에 따라 데이터 신뢰도 회로(426)의 동작 또는 바이패스 제어를 할 수 있다. 전원 실패(114)가 검출되지 않으면, 제 2 코어(444)는 적합한 에러 검출, 에러 정정, 또는 그것들의 조합 동작이 완료된 때, 데이터 이동을 위한 데이터 해제를 위한 데이터 신뢰도 회로(426)를 동작시킬 수 있다. 전원 실패(114)가 검출되면, 제 2 코어(444)는 휘발성 메모리(406)로부터 비휘발성 메모리(404)로 또는 이와 반대로 데이터 이동을 위한 데이터 해제를 위한 데이터 신뢰도 회로(426)의 동작을 바이패스할 수 있다.
카운터(440)는 데이터 이송이 해제되기 위한 추적을 제공할 수 있다. 카운터(440)는 다수의 단위 입자들(granularities)로 동작할 수 있다. 카운터(440)는 심볼 또는 바이트 레벨, 전송 프로토콜에 근거한 패킷 단위 입자(packet granularity), 또는 미리 결정된 데이터 크기에 근거하여 증가 또는 감소일 수 있다.
예로서, 카운터(440)의 증가는 로컬 버퍼(424)로 전송되는 데이터에 근거할 수 있고, 해제되면 준비된다. 카운터의 감소(440)는 로컬 버퍼(424)로부터 해제될 때, 전송되는 데이터에 근거할 수 있다. 특정 예에서, 제 1 코어(442)는 카운터(440)를 증가할 수 있고, 제 2 코어(444)는 카운터(440)를 감소할 수 있다.
로컬 메모리 제어기(408)는 그것이 전원 실패(114)이면, 휘발성 메모리(406)로부터 비휘발성 메모리(404)로 데이터 백업을 위한 리저브 전원 소스(418)로부터의 에너지로 동작할 수 있다. 그러나, 로컬 메모리 제어기(408)의 기능은 전원 실패(114)가 검출되지 않으면, 데이터 백업을 위한 것과는 다를 수 있다.
예를 들면, 프로세서 코어(422) 내의 코어들 중의 하나만이 리저브 전원 소스(418)로부터 감소된 에저지를 확장하기 위한 데이터를 백업하기 위해 동작할 수 있다. 데이터 신뢰도 회로(426)는 저 전원 모드, 바이패스, 또는 그러한 것들의 조합에 놓여질 수 있다. 백업은 데이터 신뢰도 회로(426)를 바이패싱하는 전원 절감 경로(434)에서 발생될 수 있다.
도 5는 컴퓨팅 시스템의 일부를 상세히 도시한 블록 다이어그램이다.
도 5를 참조하면, 비록 도 5에서 도 2의 실시예를 기술하지만, 그것은 도 2의 실시예들을 제한하지 않는 기술들로 이해된다.
도 5는 로컬 메모리 제어기(208)와 비휘발성 메모리(204)의 일부를 도시한다. 도 5는 비휘발성 메모리(204)로의 프로그래밍 또는 쓰기가 고속 쓰기 모드(227)로 전환되는 것을 도시한다.
로컬 메모리 제어기(208)는 프로그램 모드 회로(program mode circuitry)(546), 제 1 모드 시퀀서(first mode sequencer)(548), 제 2 모드 시퀀서(second mode sequencer)(550)를 포함한다. 이러한 도면에서 도시하지는 않았지만, 제 1 모드 시퀀서(548), 제 2 모드 시퀀서(550), 또는 그것들의 조합은 도 2의 비휘발성 메모리 인터페이스(230)의 일부이거나 인터페이스일 수 있다.
프로그램 모드 회로(546)는 비휘발성 메모리(204)로 쓰기 모드의 선택 또는 설정을 위해 허용할 수 있다. 프로그램 모드 회로(546)는 비휘발성 메모리(204) 내에 데이터의 쓰기를 위해 위치의 어드레스(552)를 수신할 수 있다. 어드레스(552)는 비휘발성 메모리(204)로 논리적 어드레스 또는 물리적 어드레스일 수 있다. 프로그램 모드 회로(456)는 비휘발성 메모리(204)를 위해 어드레스로(552)부터 물리적 어드레스로 논리적 어드레스를 변환할 수 있다.
프로그램 모드 회로(546)는 비휘발성 메모리(204)가 쓰여질 수 있는 모드(554)를 위한 지시를 수신할 수도 있다. 이러한 실시예에서, 모드(554)는 비휘발성 메모리(204)의 프로그래밍 또는 쓰기를 위한 제 1 모드 시퀀서(548)와 제 2 모드 시퀀서(550) 중 하나로 구체화될 수 있다. 필요에 따라, 모드(554)는 논리적으로부터 물리적으로 어드레스(552)를 변환하기 위해 프로그램 모드 회로(546)에 의해 사용될 수도 있다.
제 1 모드 시퀀서(548)는 제 1 모드(556)에서 비휘발성 메모리(204)의 프로그래밍을 위한 제어들을 제공할 수 있다. 예로서, 제 1 모드(556)는 멀티 레벨 셀(MLC) 프로그래밍일 수 있다. 제 2 모드 시퀀서(550)는 제 2 모드(558) 내 비휘발성 메모리(204)의 프로그래밍을 위한 제어들을 제공한다. 예로서, 제 2 모드(558)는 싱글 레벨 셀(SLC) 프로그래밍일 수 있다. 이러한 예에서, 제 2 모드 시퀀서(550)는 제 1 모드 시퀀서(548)와 비교하여 빠른 쓰기 모드(227)를 나타낸다.
제 1 모드 시퀀서(548)는 제 2 모드 시퀀서(550)는 다수의 방법들로 구현될 수 있다. 예를 들면, 제 1 모드 시퀀서(548), 제 2 모드 시퀀서(550) 도는 그것들의 조합은 유한 상태 머신(finite state machine), 또는 다른 논리 회로들과 같은 회로에 의해 구현될 수 있다.
도 6은 적응적 백업 시스템의 일부를 상세히 도시한 블록 다이어그램이다.
도 6을 참조하면, 적응적 백업 시스템(601)은 도 2의 휘발성 메모리(206)로부터 도 2의 비휘발성 메모리(204)로 데이터를 저장하기 위한 타이밍의 적응을 제공한다. 적응적 백업 시스템(601)은 도 1의 전원 실패(114)가 검출되면, 데이터의 백업을 위한 휘발성 메모리(206)를 위한 전송 매커니즘을 위한 수정을 제공할 수도 있다.
적응적 백업 시스템(601)을 위한 기재들은 도 1의 컴퓨팅 시스템(100), 도 3의 컴퓨팅 시스템(300), 및 도 4의 컴퓨팅 시스템(400), 추가로, 도 2의 컴퓨팅 시스템(200)을 위해 기술된 실시예들에 적용될 수도 있다. 유사한 대부분은 이러한 실시예의 설명을 간결하게 하기 위해 반복되지 않는다.
예들로서, 적응적 백업 시스템(601)은 도 2의 휘발성 메모리 인터페이스(228), 도 2의 로컬 버퍼(224), 도 2의 프로세서 코어(222), 도 2의 비휘발성 메모리 인터페이스(230) 내에 포함될 수 있다. 적응적 백업 시스템(601)은 하드웨어 회로, 소프트웨어, 또는 그것들의 조합으로 구현될 수 있다.
이러한 예를 위해, 적응적 백업 시스템(601)은 적응적 데이터 백업 제어기(660)와 인터페이스 블록(662)을 포함할 수 있다. 인터페이스 블록(662)은 메모리 액세스를 위한 프로토콜 지원을 제공한다. 이러한 예에서, 인터페이스 블록(662)은 휘발성 메모리(206)로 액세스를 위한 프로토콜 지원을 제공할 수 있다. 적응접 백업 제어기(660)는 메모리 액세스를 위한 타이밍의 적응을 제공한다.
이러한 실시예에서, 인터페이스 블록(662)은 어드레스 생성기(664), 이동 모드 블록(666), 타이밍 블록(668), 또는 그것들의 조합을 포함할 수 있다. 적응적 백업 제어기(660)를 위한 설명은, 도 7에서 상세히 설명하기로 한다.
적응적 신호 생성기(664)는 메모리를 액세스하기 위한 메모리 어드레스들(670)을 제공한다. 이동 모드 블록(666)은 휘발성 메모리(206)로부터 읽기 또는 쓰기 이동 모드와 같은 메모리 액세스를 위해 데이터 이동 모드(672)를 위한 제어들을 제공한다. 타이밍 블록(668)은 휘발성 메모리(206)로부터 비휘발성 메모리(204)로 데이터를 백업하기 위한 타이밍 제어를 제공한다.
어드레스 생성기(664)는 프로그래머블될 수 있다. 예들로서, 도 2의 적응적 백업 제어기(660), 프로세서 코어(222), 호스트 프로세서(202), 또는 그것들의 조합은 어드레스 생성기(664)로 프로그램 될 수 있다.
어드레스 생성기(664)는 메모리 어드레스들(670)을 증가 또는 감소할 수 있다. 어드레스 생성기(664)는 데이터 이동 모드(672)에 근거하여 다른 단위 입자들(granularities)의 증가 또는 감소를 할 수 있다. 이동 모드 블록(666)은 크거나 작은 사이즈의 증가 도는 감소를 결정할 수 있다. 어드레스 생성기(664)는 카운터, 유한 상태 머신, 프로그래머블 및 실행가능 제어 저장과 같은 복수의 방법들로 구현될 수 있다.
이동 모드 블록(666)은 프로그래밍될(programmable) 수 있다. 예를 들면, 적응적 백업 제어기(660), 프로세서 코어(222), 호스트 포르세서(202), 또는 그것들의 조합은 이동 모드 블록(666) 내 데이터 이동 모드(672)를 프로그램할 수 있다.
데이터 이동 모드(672)는 휘발성 메모리(206)로 메모리 액세스를 우한 이동 버스트 크기(transfer burst size)를 제공한다. 데이터 이동 모드(672)는 일부 버스트 길이(674)를 위한 특정 값일 수 있는 메모리 액세스를 구체화하거나 전체 버스트 길이(676)를 구체화할 수 있다. 이러한 실시예를 예를 들면, 부분 버스트 길이(674)는 전체 버스트 길이(676)보다 작다.
타이밍 블록(668)은 노멀 동작을 위한 휘발성 메모리(206)로부터 비휘발성 메모리(204)로의 백업 이벤트들 사이의 시구간을 측정할 수 있다. 타이밍 블록(668)은 프로그래밍될 수 있다. 예로서, 적응적 백업 제어기(660), 프로세서 코어(222), 호스트 프로세서(202), 또는 그것들의 조합은 타이밍 블록(668) 내 적응적 백업 시간(678)을 프로그램 할 수 있다. 타이밍 블록(668)은 적응적 백업 제어기(660)의 일부일 수도 있다.
적응적 백업 시간(678)은 비휘발성 메모리(204)를 위한 휘발성 메모리(206)의 백업을 위한 동적 시간을 제공한다. 적응적 백업 시간(678)은 고정된 주기적 타이밍으로 제한되지 않기 때문에 동적이다. 적응적 백업 시간(678)은 다수의 팩터(factor)들에 근거하여 적응적 백업 제어기(660)에 의해 조절될 수 있고, 도 7에서 상세히 기술하기로 한다. 적응적 백업(678)은 노멀 동작 동안 또는 전원 실패(114)의 검출없이 도 1의 휘발성 메모리(106)로부터 비휘발성 메모리(104)로 데이터의 백업을 위해 사용될 수 있다.
도 7은 컴퓨팅 시스템을 위한 적응적 백업에 대한 노멀 동작을 도시한 제어 흐름도이다.
도 7을 참조하면, 도 2의 컴퓨팅 시스템(200), 도 3의 컴퓨팅 시스템(300), 및 도 4의 컴퓨팅 시스템(400)을 지원할 수도 있다. 유사한 대부분은 이러한 실시예의 설명을 간결하게 하기 위해 반복되지 않는다.
도 6에서 도시되듯이, 도 6의 적응적 백업 시간(678)의 계산은 팩터들에 근거한다. 실시예를 위한 예들로서, 팩터들은 다음에 기술되는 것들을 포함할 수 있다.
현재 쓰기 버퍼 점유는 wr_buf_occ(쓰기 버퍼 점유(780)를 나타냄)를 나타낸다. 쓰기 버퍼 엔트리 크기는 wr_buf_entry_size(쓰기 엔트리 크기(782)를 나타냄)를 나타낸다. NVM 내부 쓰기 대역은 nvm_wr_bw(비휘발성 대역폭(784)을 나타냄)을 나타낸다. NVM 내부 쓰기 지연은 nvm_wr_lat(비휘발성 지연(786)을 나타냄)를 나타낸다. 외부 NVDIMM 쓰기 처리율(write throughput)은 nvdimm_wr_thput(비휘발성 처리율(788)을 나타냄)를 나타낸다. 전체 전원 실패를 위한 시간: time_to_power_loss(가용 백업 시간(790)을 나타냄)를 나타낸다.
이러한 팩터들에 근거하여, 도 6의 적응적 백업 제어기(660) 다음과 같이 계산될 수 있다.
다음 데이터 백업을 위한 시간은 time_to_next_databackup(적응적 백업 시간(678)을 나타냄)을 나타낸다. 현재 구간에서 커밋을 위한 쓰기 버퍼는 wr_buf_entries_to_commit(쓰기 엔트리들 커밋(792)을 나타냄)을 나타낸다.
쓰기 엔트리들 커밋(792)은 적응적 백업 시간(678)에서 또는 내에 휘발성 메모리(106)로부터 데이터 백업의 양을 나타내고, 완전히 이후에 더 상세히 설명하기로 한다.
예로서, 적응적 백업 제어기(660)는 휘발성 메모리 이용 계산 모듈(702), 비휘발성 메모리 이용 계산 모듈(704), 전원 실패 시간 계산 모듈(706), 백업 시간 계산 모듈(708), 변화 검출 모듈(710), 버퍼 크기 계산 모듈(712), 노멀 백업 동작모듈(714)을 갖는 인자를 프로세스한다. 흐름은 도 7에 도시된 하나의 모듈로부터 다른 것으로 진행될 수 있고, 이것은 예시적으로 도시된 것으로 이해될 것이다.
휘발성 메모리 이용 계산 모듈(702)은 휘발성 메모리(106)로 액세스하는 메모리를 위한 전원 소비를 결정한다. 비휘발성 메모리 이용 계산 모듈(704)은 비휘발성 메모리(104)로 액세스하는 메모리를 위한 전원 소비를 결정한다. 전원 실패 시간 계산 모듈(706)은 도 1의 리저브 전원 소스(118) 내 충전 용량(charge capacity)에 근거하여 휘발성 메모리(106)와 비휘발성 메모리(104) 사이의 데이터 이동을 위해 이용 가능한 시간의 양을 결정한다. 백업 시간 계산 모듈(708)은 노멀 동작 동안 백업 시간을 결정한다.
변화 검출 모듈(710)은 휘발성 메모리(106)로부터 비휘발성 메모리(104)로 데이터를 백업하는데 영향을 줄 수 있는 조건들을 모니터(monitor)하고 검출한다. 버퍼 크기 계산 모듈(712)은 백업되기 위한 휘발성 메모리(106) 내 데이터의 양을 결정한다. 노멀 백업 동작 모듈(714)은 휘발성 메모리(106)의 적응적 백업을 실행한다.
휘발성 메모리 이용 계산 모듈(702)은 다수의 방법들로 메모리 액세스를 위한 전원 소비를 결정한다. 예를 들면, 소스 소비(716)의 결정은 휘발성 메모리(106)를 위한 데이터 이동 모드(672)에 근거할 수 있다. 소스 소비(716)는 백업되는 데이터의 소스로서 휘발성 메모리(106) 액세스를 위한 전원 소비이다. 소스 소비(716)는 데이터 이동 모드(672)에 근거하여 다양할 수 있다. 소스 소비(716)는 버스트마다 작은 버스트 크기를 위해 감소될 수 있으나, 작은 버스트 크기는 백업을 완료하기 위해 전반적으로 큰 전원 소비로 이어질 수 있다. 예로서, 소스 소비(716)는 데이터 이동 모드(672)가 도 6의 부분 버스트 길이(674)보다 도 6의 전체 버스트 길이(676)로 설정될 때, 감소될 수 있다.
추가적인 예로서, 소스 소비(716)를 위한 결정은 휘발성 메모리(106)의 물리적 인터페이스에 근거할 수 있다. 소스 소비(716)는 휘발성 메모리(106)로 읽기 또는 쓰기 액세스에 근거하여 변화할 수 있다. 소스 소비(716)는 휘발성 메모리(106)의 입/출력을 위한 전기적인 레벨들에 근거하여 변화할 수도 있다. 전기적인 전압 레벨들 또는 전류 요건들을 위한 높은 값들은 입/출력을 위한 것으로, 높은 소스 소비(716)일 수 있다.
비휘발성 메모리 이용 계산 모듈(704)은 휘발성 메모리 이용 계산 모듈(702)의 실행으로서 비휘발성 메모리(104)로 액세스를 위한 전원 소비를 간단히 계산할 수 있다. 타겟 소비(718)는 백업되는 데이터의 타겟으로 비휘발성 메모리(104)의 액세싱을 위한 전원 소비이다. 예를 들면, 타겟 소비(718)의 결정은 비휘발성 메모리(104)를 위한 도 2의 빠른 쓰기 모드(227)에 근거할 수 있다. 추가적인 예로서, 타겟 소비(718)를 위한 결정은 비휘발성 메모리(104)의 물리적 인터페이스에 근거할 수 있다. 타겟 소비(718)는 비휘발성 메모리(104)로 읽기 또는 쓰기 액세스에 근거하여 다양할 수 있다. 타겟 소비(718)는 비휘발성 메모리(104)의 입/출력을 위한 전기적 전압 레벨들 또는 전류 요구들에 근거하여 다양할 수도 있다.
전원 실패 시간 계산 모듈(706)은 리저브 전원 소스(118) 내 남아 있는 전하에 근거하여 휘발성 메모리(106)로부터 비휘발성 메모리(104)로 데이터의 백업을 위한 이용가능 백업 시간(790)의 결정에 사용될 수 있다. 이용 가능 백업 시간(790)은 도 1의 리저브 전원 소스(118) 내 남아있는 전하에 근거하여 비휘발성 메모리(104)로 휘발성 메모리(106)의 백업을 위해 이용가능한 시간의 양이다. 이용가능 백업 시간(790)의 결정은 다수의 방법들로 실행될 수 있다.
예를 들면, 휘발성 메모리(106)와 비휘발성 메모리(104)에 의한 전원 소비와 백업되기 위한 필요들이 데이터의 양에 근거하여 계산될 수도 있다. 소스 소비(716)는 백업을 위한 휘발성 메모리(106)로부터 데이터를 이동할 때, 확장될 수 있는 리저브 전원 소스(118)로부터 얼마만큼의 전하에 대한 정보를 제공할 수 있다. 타겟 소비(718)는 백업을 위한 비휘발성 메모리(104)로 데이터를 쓰기할 때, 확장될 수 있는 리저브 전원 소스(118)로부터 얼마만큼의 전하에 대한 정보를 제공할 수 있다.
결정은 다른 팩터들을 포함할 수도 있다. 예를 들면, 도 1의 로컬 메모리 제어기(108)의 전원 소비 또는, 도 2의 노멀 데이터 경로(232) 또는 도 2의 전원 절감 경로(234)의 이용이 있다. 이전에 기술된 바와 같이, 데이터 백업을 위한 전원 소비는 도 2의 노멀 데이터 경로(232) 또는 도 2의 전원 절감 경로(234)에 대한 또는 도 2의 데이터 신뢰도 회로(226)를 통한 데이터의 이동에 따라 변화할 수 있다. 더욱이, 다른 인자들은 백업 기능을 수행하는 데이터 경로의 일부일 수 있는 다른 기기들을 포함하는 데이터의 백업을 위한 전원 소비에 영향을 줄 수 있다. 다른 기기들의 예를 들면, 도 1의 로컬 메모리 제어기(108)이 될 수 있다.
백업 시간 계산 모듈(708)은 적응적 백업 시간(678)을 결정한다. 이전에 언급한 바와 같이, 적응적 백업 시간(678)은 인자들에 근거하여 동적으로 조절되고 계산될 수 있다. 예들로서, 인자들은 비휘발성 대역폭(nonvolatile bandwidth)(784), 비휘발성 지연(nonvolatile latency)(786), 비휘발성 처리율(nonvolatile throughput)(788), 이용가능 백업 시간(available back-up time)(790), 또는 그것들의 조합을 포함할 수 있다.
비휘발성 대역폭(784)은 비휘발성 메모리(104)로 프로그래밍 또는 쓰기를 위한 데이터 이동률을 나타낸다. 비휘발성 대역폭(784)은 팩터들에 근거할 수 있다. 예를 들면, 빠른 쓰기 모드(227), 전압 레벨들, 및 환경 조건들이 비휘발성 대역폭(784)에 영향을 줄 수 있다.
비휘발성 지연(786)은 비휘발성 메모리(104)로 쓰기 데이터 내 지연을 나타낸다. 비휘발성 지연(786)은 비휘발성 메모리(104)로 백업되는 전체 데이터 또는 것의 일부를 위한 지연을 나타낸다.
비휘발성 처리율(788)은 비휘발성 메모리(104)로 쓰기를 위한 프로그래밍 또는 쓰기 처리율을 나타낸다. 외부의 용어는 도 2의 호스트 프로세서(102)로부터 데이터 경로를 나타낸다. 도 2에 도시된 실시예에서, 외부 부분은 호스트 프로세서(102)로부터 도 2의 휘발성 메모리(106)로 데이터 경로일 수 있다.
적응적 백업 시간(678)은 다음의 수학식 1과 같이 계산될 수 있다.
Figure pat00001
적응적 백업 시간(678)을 위한 수학식 1은 하기의 수학식 2와 같이 표현될 수도 있다.
Figure pat00002
컴퓨팅 시스템(200)은 수학식 2에 의해 계산된 적응적 백업 시간(678) 내 또는 적응적 백업 시간(678)에서 노멀 동작 동안 휘발성 메모리(106)로부터 비휘발성 메모리(104)로의 데이터를 백업할 수 있다. 적응적 백업 시간(678)은 이용가능 백업 시간(790)을 통해 표현되는 리저브 전원 소스(118) 내 충전 용량을 남기기 위한 변화들에 근거하여 동적으로 조절될 수 있다.
이러한 예에서, 수학식 2는 비휘발성 지연(786)을 통해 비휘발성 메모리(104)로 쓰기를 위한 지연이 고려될 수도 있다. 수학식 2는 비휘발성 처리율(788)을 갖는 휘발성 메모리(106) 내 추가적인 데이터 수신을 고려하는 동안 비휘발성 대역폭(784)을 갖는 휘발성 메모리(106) 내 존재하는 데이터의 백업을 위한 비율을 제공할 수도 있다. 이러한 비율을 위한 계산은 전원 실패(114)가 검출될 대, 데이터가 손실되지 않는 것을 보장하기 위한 컴퓨팅 시스템(200)을 허용한다.
추가적인 예로서, 도 1의 전원 실패(114)가 검출되면, 로컬 메모리 제어기(108)는 전송되는 추가적인 데이터로부터 휘발성 메모리(106)로 호스트 프로세서(102)와 같은 외부 시스템으로 통지할 수 있다. 이러한 상황에서, 수학식 2는 비휘발성 대역폭(784)과 비휘발성 처리율(788)의 비율없는 표현으로 간소화될 수 있다. 다른 예에서, 비휘발성 대역폭(784)과 비휘발성 처리율(788)의 비율은 수학식 2에서 1로 설정될 수 있다. 비휘발성 대역폭(784)과 비휘발성 처리율(788)의 비율은 값이 동적이고 변화될 수 있다.
그러한 실시예들에서 전체 전원 실패 이전에 모든 데이터가 백업되는 것을 보장하기 위해 노멀 데이터 백업 모드들의 시구간들이 적응적으로 제어될 수 있기 때문에, 전원 실패(114)일 때, 데이터 손실을 방지하거나 제거하기 위한 실시예들이 발견될 수 있다. 실시예들은 휘발성 메모리(106)로부터 데이터를 백업하기 위한 현재 주어진 조건들을 위한 리저브 전원 소스(118)로 이용가능한 이용가능 백업 시간(790)을 계산한다. 실시예들은 이용가능 백업 시간(790)에 근거하여 적응적 백업 시간(678)을 계산할 수 있다. 적응적 백업 시간(678)은 노멀 동작, 일예로 전원 실패(114)가 없는 동안 비휘발성 메모리(104)로 휘발성 메모리(106)의 백업의 제어를 돕는다.
변화 검출 모듈(710)은 적응적 백업 매커니즘의 영향에 따른 컴퓨팅 시스템(200)의 변화를 결정한다. 예로서, 변화 검출 모듈(710)은 리저브 전원 소스(118) 내 남아있는 변화를 모니터할 수 있다. 리저브 전원 소스(118)는 감소하는 이용가능 백업 시간(790)을 디스차지할 수 있다. 이러한 변화는 조절되거나 재계산될 수 있는 적응적 백업 시간(678)을 야기할 수 있다. 예로서, 그러한 흐름은 백업 시간 계산 모듈(708)로 되돌릴 수 있다.
추가적인 예로서, 전원 실패(114)가 검출되고, 리저브 전원 소스(118) 내 전하의 일부가 휘발성 메모리(106)의 백업을 위해 사용되고, 이후 전원이 회복되면, 리저브 전원 소스(118) 내 남아 있는 전하는 감소한다. 이러한 예는 이용가능 백업 시간(790)을 감소할 수도 있다. 이것은 노멀 동작을 위한 적응적 백업 시간(678)의 조정 또는 재계산을 필요로 할 수도 있다. 예로서, 흐름은 휘발성 메모리 이용 계산 모듈(702), 비휘발성 메모리 이용 계산 모듈(704) 또는 그것들의 조합으로 되돌릴 수 있다.
실시예들은 전원 실패(114)일 때, 데이터 손실을 추가적으로 방지 또는 제어하므로, 실시예들은 모든 데이터가 전체 전원 실패 이전에 백업될 수 있는 것을 보정하기 위해 노멀 데이터 백업 모드들의 시구간들을 동적으로 조절한다. 실시예들은 데이터 변화를 백업하기 위한 능력에 영향을 주는 조건들일 때, 리저브 전원 소스(118)에 의해 이용 가능 백업 시간(790)을 조절한다. 이용가능 백업 시간(790)은 전원 실패(114)가 검출될 때, 디스차지되거나 이용되는 리저브 전원 소스(118)로서 동적으로 조절된다. 이용가능 백업 시간(790)은 리저브 전원 소스(118)가 적어도 일부 재충전될 수 있으면, 더욱 동적으로 조절될 수 있다. 실시예들은 리저브 전원 소스(118)의 이용 가능 백업 시간(790)의 조절들에 근거하여 적응적 백업 시간(678)을 조절할 수 있다. 적응적 백업 시간(678)을 위한 동적 조절들은 고정된 시구간에 반대되어 가변되는 것을 허용한다. 전원 실패(114)가 검출될 때, 데이터 손실을 회피하는 동안 적응적 백업 시간(678)을 위한 동적 조절들은 노멀 동작 동안 비휘발성 메모리(104)로 휘발성 메모리(106)의 백업을 제어하는 것을 더 도울 수 있다.
버퍼 크기 계산 모듈(712)은 노멀 동작 내 백업되기 위한 휘발성 메모리(106) 내 데이터의 양을 결정할 수 있다. 예로서, 버퍼 크기 계산 모듈(712)은 다음 적응적 백업 시간(678) 내 또는 다음 적응적 백업 시간(678)에서 휘발성 메모리(106)로부터 백업을 위한 데이터의 양인 쓰기 엔트리 커밋(792)을 계산할 수 있다. 이것은, 전원 실패(114)가 검출될 때, 데이터의 손실없이 휘발성 메모리(106) 내 남아있는 데이터를 백업할 수 있는 리저브 전원 소스(118) 내 남아있는 전하를 보장한다.
버퍼 크기 계산 모듈(712)은 다수의 팩터들에 근거한 이러한 결정을 만들 수 있다. 예를 들면, 팩터들은 쓰기 버퍼 점유(write buffer occupancy)(780), 쓰기 엔트리 크기(write entry size)(782), 비휘발성 대역폭(nonvolatile bandwidth)(784), 비휘발성 지연(nonvolatile latency)(786), 이용가능 백업 시간(available back-up time)(790)을 포함할 수 있다. 예로서, 쓰기 엔트리 커밋(792)은 다음의 수학식 3과 같이 계산될 수 있다.
Figure pat00003
쓰기 엔트리 커밋을 위한 수학식 3은 다음의 수학식 4와 같이 표현될 수 있다.
Figure pat00004
특정 예로서, 쓰기 엔트리 커밋(792)은 다음 적응적 백업 시간(678) 내 또는 다음 적응적 백업 시간(678)에서 휘발성 메모리(106)로부터 백업으로 커밋을 위한 다수의 엔트리들을 나타낸다. 쓰기 버퍼 점유(780)는 잠재적인 백업될 수 있는 데이터를 갖는 휘발성 메모리(106) 내 다수의 엔트리들을 나타낸다. 쓰기 엔트리 크기(782)는 엔트리들 각각의 크기를 나타낸다. 쓰기 엔트리 크기(782)는 물리적인 메모리 크기 내 절대값 또는 휘발성 메모리(106)를 위한 전체 크기의 백분율과 같은 다수의 방법들로 표현될 수 있다.
수학식 4는 비휘발성 지연(786)에 관련된 이용가능 백업 시간(790)을 고려할 수 있다. 예로서, 비휘발성 지연(786)은 데이터 백업을 위한 지연일 수 있기 때문에 이용 가능 백업 시간(790)으로부터 뺄셈될 수 있다. 추가적으로 지연은 수학식 4에서 비휘발성 대역폭(784)으로 백업될 수 있는 데이터가 얼마나 빠른 속도인지 고려할 수도 있다. 데이터가 얼마나 빠른지의 계산은 쓰기 엔트리 크기(782)를 갖는 휘발성 메모리(106)의 쓰기 엔트리들의 크기를 고려하여 백업될 수도 있다.
이후, 수학식 4는 쓰기 버퍼 점유(790)를 잠재적으로 백업할 수 있는 휘발성 메모리(106)를 점유하는 다수의 쓰기 버퍼들로부터 상술한 계산들의 결과를 뺄셈할 수 있다. 이러한 마지막의 뺄셈의 결과는 적응적 백업 시간(678)에서 다음 백업을 위한 커밋으로 휘발성 메모리(106) 내 쓰기 엔트리 커밋(792)의 결과이다.
노멀 백업 동작 모듈(714)은 적응적 백업 시간(678)에서 휘발성 메모리(106)로부터 데이터의 백업을 수행한다. 노멀 백업 동작 모듈(714)은 적응적 백업 시간(678)에 도달되거나 트리거될 때, 데이터 백업을 수행할 수 있다. 노멀 백업 동작 모듈(714)은 다수의 방법들로 타이밍 기능을 수행할 수 있다. 예를 들면, 도 6의 타임이 블록(668) 또는 로컬 메모리 제어기(108) 내 타이머 기능은 타이머 기능을 제공할 수 있다. 또한, 호스트 프로세서(102)는 타이머 기능을 제공한다.
적응적 백업 시간(678)에 도달하거나 트리거되면, 노멀 백업 동작 모듈(714)은 쓰기 엔트리 커밋(792)에 의해 결정되는 이러한 특정 백업 이벤트에서 백업되는 데이터의 양과 휘발성 메모리(106)를 백업할 수 있다. 적응적 백업 시간(678)은 전원 실패(114)가 검출되지 않기 때문에 노멀 동작 동안 여러 번 트리거될 수 있다. 비록 적응적 백업 시간(678)이 고정된 시구간을 필요로 하지 않더라도, 그것은 노멀 동작 동안 데이터 백업을 위한 시구간을 제공할 수 있고, 조절될 수 있다.
적응적 백업 시간(678)은 다양하거나 비고정된 시간 또는 주기에서 휘발성 메모리(106)의 백업을 수행할 수 있는 노멀 백업 동작 모듈(714)을 동적으로 조절될 수 있다. 또한, 적응적 백업 시간(678)을 위한 조절들은 쓰기 엔트리 커밋(792)를 수정하거나 업데이트할 수도 있다. 이러한 기능들은 전원 실패(114)가 검출될 때, 비휘발성 메모리(104)로 백업되기 위해 충분한 데이터와, 리저브 전원 소스(118) 내 남아있는 전하를 완비할 수 있도록 백업되는 것을 필요로 하는 휘발성 메모리(106) 내 데이터의 양이 동적으로 조절될 수 있다.
모든 데이터가 전체 전원 손실 이전에 백업되는 것을 보장하기 위한 노멀 데이터 백업 모드 동안 백업될 수 있는 휘발성 메모리(106)로부터의 데이터의 양을 적응적으로 제어하는 실시예들로 인해서, 전원 실패(114)일 때, 데이터 손실을 방지 또는 제거하기 위한 추가적인 실시예들이 발견된다. 실시예들은 이용가능 백업 시간(790)과 적응적 백업 시간(678)을 계산하고 조정할 수 있다. 실시예들은 쓰기 엔트리 커밋(792)을 갖는 노멀 동작들에서 백업되는 것을 필요로 하는 휘발성 메모리(106)로부터 얼마만큼의 데이터인지 계산하고, 전원 실패(114)일 때, 데이터가 손실되지 않는 것을 보장하기 위한 백업들을 스케줄할 수 있고, 백업 절차는 리저브 전원 소스(118) 내 남아있는 전하에 근거할 수 있다. 실시예들은 전원 실패(114)가 검출될 때 데이터가 손실되지 않는 것을 보장하기 위해 쓰기 엔트리 커밋(792)을 조절하는 노멀 동작들 내 백업되는 것을 필요로 하는 휘발성 메모리(106)로부터 얼마만큼의 데이터를 조절할 수도 있고, 백업 프로세서는 리저브 전원 소스(118) 내 남아있는 전하에 근거할 수 있다.
도 8은 컴퓨팅 시스템(100)을 위한 적응적 백업에 대한 전원 실패 동작을 도시한 제어 흐름도이다.
도 8을 참조하면, 도 8을 위한 설명들은 도 1의 컴퓨팅 시스템(100), 도 2의 컴퓨팅 시스템(200), 및 도 4의 컴퓨팅 시스템(400)에 적용될 수도 있다. 유사한 대부분은 이러한 실시예의 설명을 간결하게 하기 위해 반복되지 않는다. 도 8의 예에서, 제어 흐름은 쓰기 모드들 결정 모듈(802), 전원 절감 모드들 결정 모듈(804), 전원 실패 검출 모듈(806), 전원 실패 설정 프로그램 모듈(808), 및 전원 실패 백업 모듈(810)을 포함할 수 있다.
쓰기 모드들 결정 모듈(802)은 비휘발성 메모리(104)를 프로그램하기 위한 이용가능 모드들을 결정한다. 예를 들면, 쓰기 모드들 결정 모듈(802)은 비휘발성 메모리(104)로 프로그램 또는 쓰기를 위한 이용가능 모드들을 검출하거나 추출한다. 또한, 쓰기 모드들 결정 모듈(802)은 비휘발성 메모리(104)로 쓰기 또는 프로그램을 위해 빠르거나 전원 효율을 향상시키기 위한 이용 가능 모드들을 계산할 수도 있다. 예로서, 쓰기 모드들 결정 모듈(802)은 도 2의 빠른 쓰기 모드(227)의 존재 여부를 결정할 수 있고, 만약 그렇다면, 전원 실패가 검출될 때, 백업을 위해 가장 효율적이다.
전원 절감 모드들 결정 모듈(804)은 백업 프로세서를 위한 전원 절감 특징들의 유효성을 결정한다. 예를 들면, 전원 절감 모드들 결정 모듈(804)은 도 2의 전원 절감 경로(234)가 존재하는지 또는 컴퓨팅 시스템(100)이 노멀 데이터 경로(232)로 제한되는지의 결정하거나 추출한다. 예로서, 이러한 전원 절감 결정은 도 1의 로컬 메모리 제어기(108), 도 2의 데이터 신뢰도 회로(226), 도 3의 버퍼 기기(336), 도 1의 호스트 프로세서(102), 또는 호스트 프로세서(102)의 상호작용을 위해 만들어질 수 있다.
전원 실패 검출 모듈(806)은 휘발성 메모리(106)로부터 데이터 손실을 야기할 수 있는 전원 실패 이벤트가 검출되는지를 결정한다. 데이터 손실은 데이터 신뢰성을 반드시 포함하지는 않는다. 전원 실패 검출 모듈(806)은 전원 실패(114)가 검출되는지를 결정함으로 인해 컴퓨팅 시스템(100)의 노멀 동작과 도 6의 적응적 백업 시간(678)에서 노멀 동작을 위한 백업 절차를 잠재적으로 차단한다.
전원 실패 설정 프로그램 모듈(808)은 휘발성 메모리(106)의 백업을 위한 컴퓨팅 시스템(100)의 설정을 제공한다. 예를 들면, 전원 실패 설정 프로그램 모듈(808)은 도 1의 리저브 전원 소스(118)에 대한 데이터 백업을 위해 가장 효율이 좋은 비휘발성 메모리(104)로 프로그래밍 또는 쓰기를 위한 도 2의 빠른 쓰기 모드(227)를 위해 적합한 값을 갖는 비휘발성 메모리(104)를 프로그램할 수 있다. 예를 들면, 전원 실패 설정 프로그램(808)은 리저브 전원 소스(118)를 갖는 데이터의 백업을 위해 사용되는 적합한 전원 절감 경로(234)를 결정할 수도 있다. 예를 들면, 전원 실패 설정 프로그램 모듈(808)은 리저브 전원 소스(118)에 대한 백업을 위한 휘발성 메모리(106)로부터 데이터를 이동하기 위한 도 6의 데이터 이동 모듈(672)에 대한 적합한 값을 설정할 수 있다.
전원 실패 백업 동작 모듈(810)은 전원 실패(114)가 검출될 때, 휘발성 메모리(106)의 백업을 수행한다. 전원 실패 백업 동작 모듈(810)은 휘발성 메모리(106) 백업이 완료될 때까지 전원 실패(114) 조건이 존재하거나 노멀 동작이 다시 시작되어, 전원 실패(114) 조건이 더 이상 존재하지 않는 동안 휘발성 메모리(106)의 백업은 계속된다. 전원 실패(114)의 조건으로부터 노멀 동작이 재개되면, 도 7의 적응적 백업 시간(678)과 도 7의 쓰기 엔트리 커밋(792)을 위한 조정들은 만들어질 수 있다.
전원 실패 백업 동작 모듈(810)은 전원 실패 설정 프로그램 모듈(808)로부터 설정에 근거하여 휘발성 메모리(106)로부터 비휘발성 메모리(104)로 백업을 수행할 수 있다. 예를 들면, 휘발성 메모리(106)로부터 이동은 도 5의 전체 버스트 길이(676)로서 데이터 이동 모드(672)가 될 수 있다. 예를 들면, 휘발성 메모리(104)는 SLC 위해 설정되는 빠른 쓰기 모드(227)로 프로그램되거나 쓰여질 수 있다. 예를 들면, 전원 절감 경로(234)는 데이터 신뢰도 회로(226)를 바이패스를 포함하는 노멀 데이터 경로(232) 대신에 이용될 수도 있다.
실시예들은 휘발성 메모리(106) 내 원하는 데이터의 손실의 회피를 돕기 위한 설정들을 갖는 휘발성 메모리(106)의 백업을 개선함으로써, 전원 실패(114)일 때, 실시예들은 데이터 손실을 방지하거나 제거하는 것이 발견된다. 실시예들은 전원 실패(114) 동안 데이터 백업의 효율을 개선하기 위해 전체 버스트 길이(676) 내 휘발성 메모리(106)로부터 데이터 이동일 수 있다. 또한, 실시예들은 빠른 쓰기 모드(227) 내 비휘발성 메모리(104)로 쓰기에 의해 휘발성 메모리(104)로 데이터 백업의 효율을 개선할 수 있다. 더욱이, 실시예들은 전원 실패(114) 동안 노멀 데이터 경로(232) 대신에 전원 절감 경로(234)를 통한 데이터의 이동에 의해 데이터의 백업을 개선할 수 있다.
도 9는 본 발명의 실시예에 따른 적용 예로서 컴퓨팅 시스템(100)을 예시적으로 도시한 도면이다.
도 9를 참조하면, 도 9는 예를 들면, 컴퓨터 서버, 자동차의 대쉬 보드, 및 노트북 컴퓨터와 같은 컴퓨팅 시스템(100)을 위한 다양한 실시예들을 도시한다.
이러한 응용 예들은 전원 차단에도 불구하고 데이터 유지의 개선된 보증을 제공하기 위한 본 발명의 다양한 실시예들의 중요성을 도시한다. 데이터를 보장하기 위한 적응적 백업 매커니즘은 데이터 손실없이 도 1의 휘발성 메모리(106)로부터 도 1의 비휘발성 메모리(104)로 백업이다. 이것은 노멀 동작 동안 휘발성 메모리(106)의 일부로 백업하는 도 5의 적응적 백업 시간(678)과 도 7의 쓰기 엔트리 커밋(792)을 위한 동적 계산들이 성취될 수 있다. 또한, 프로그래밍은 도 1의 전원 실패(114)일 때, 백업을 최적화하기 위해 컴퓨팅 시스템(100)의 일부는 다를 수 있고, 도 7의 리저브 전원 소스(118)만 있어도 비휘발성 메모리(106)로 백업하는 휘발성 메모리(106) 내 원하는 데이터 모두의 보장을 돕는다.
컴퓨터 서버, 대쉬 보드, 노트북 컴퓨터와 같은 컴퓨팅 시스템(100)은 본 발명의 다양한 실시예들을 갖는 인쇄 회로 기판(PCB: Printed Circuit Board) 또는 본 발명의 다양한 실시예들을 갖는 전자 어셈블리(electronic assembly)와 같은 하나 이상의 서브 시스템(미도시)를 포함한다. 컴퓨팅 시스템(100)은 아답터 카드(adapter card)로서 구현될 수도 있다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 시스템(100)의 동작 방법을 도시한 순서도이다.
도 10을 참조하면, 방법(1000)은 다음의 동작 단계들을 포함한다. 1002단계에서, 휘발성 메모리를 비휘발성 메모리로 백업하기 위한 리저브 전원 소스에 근거하여 적응적 백업 시간을 계산한다. 그리고, 1004단계에서, 적응적 백업 시간 내 비휘발성 메모리로 휘발성 메모리의 적어도 일부를 백업한다.
컴퓨팅 시스템(100)과 다른 실시예들은 한 예로서, 모듈 기능들 또는 순서로 기술된다. 컴퓨팅 시스템(100)은 다른 모듈들의 일부일 수 있거나 모듈들의 순서가 다를 수 있다. 예를 들면, 도 8의 전원 실패 설정 프로그램 모듈(808)은 도 8의 전원 실패 검출 모듈(806) 이전에 동작할 수 있다. 예를 들면, 도 7의 버퍼 크기 계산 모듈(712)은 도 7의 변화 검출 모듈(710) 이전에 발생될 수 있다.
모듈들은 컴퓨팅 시스템(100)과 다른 실시예들 내에서 하드웨어 구현(hardware implementation) 또는 하드웨어 가속기(hardware accelerator)들일 수 있는 이러한 응용들로 기술된다. 모듈들은 컴퓨팅 시스템(100) 내부 또는 컴퓨팅 시스템(100)의 외부의 하드웨어 구현 또는 하드웨어 가속기들일 수도 있다.
모듈들은 컴퓨팅 시스템(100) 또는 다른 실시예들에 의해 실행될 수 있는 비트랜지스토리 컴퓨터 읽기 가능 매체(non-transitory computer readable medium) 상에 저장되는 명령들로서 구현될 수 있다. 비트랜지스토리 컴퓨터 읽기 가능 매체는 컴퓨팅 시스템(100)의 내부 또는 외부의 메모리를 포함할 수 있다. 비트랜지스토리 컴퓨터 읽기 가능 매체는 하드 디스크 드라이브(hard disk drive), 비휘발성 랜덤 액세스 메모리(NVRAM: non-volatile random access memory), 고체 상태 스토리지 장치(SSD: solid-state storage device), 컴팩트 디스크(CD: compact disk), 디지털 비디오 디스크(DVD: digital video disk), 또는 범용 시리얼 버스(USB) 플래시 메모리 장치들과 같은 비휘발성 메모리를 포함한다. 비트랜지스토리 컴퓨터 읽기 가능 매체는 컴퓨팅 시스템(100)의 일부로서 통합되거나 컴퓨팅 시스템(100)의 제거가능 일부로서 설치될 수 있다.
방법(method), 절차(process), 장치(apparatus), 기기(device), 제품(product), 및/또는 시스템(system)은 간단하고, 비용효율이 높고, 복잡하지 않고, 효용 가치가 높고, 정확하고, 세심하고, 효율적이며, 쉽게, 효율적, 및 경제적인 제조, 응용, 및 이용을 위해 알려진 구성요소들의 적용에 의해 구현될 수 있다. 본 발명의 실시예에 따른 다른 중요한 관점은 비용들의 감소, 시스템들의 간소화, 및 성능 증가의 역사적인 추세로 가치있는 지원과 서비스를 한다.
본 발명의 실시예의 이러한 것들 및 다른 중요한 관점은 적어도 다음 레벨에서 기술적인 상태의 결과로 더욱 나타난다.
본 발명이 특정 최적 모드와 함께 기술되는 동안, 그것은 많은 대안들, 수정들, 및 변화들이 이전에 기술된 것을 고려하여 기술 분야 내에서 이러한 기능들로 구현됨이 명백한 것으로 이해될 것이다. 따라서, 이것은 특허 청구 범위 내에 포함된 범위 내에 포함되는 대안들, 수정들, 및 변화들 모두를 수용하기 위한 것으로 간주될 수 있다. 첨부된 도면들 내에서 도시되거나 여기에서 기술된 모든 것들은 분명히 보여주는 것으로 해석되고, 제한되지 않는 의미로 해석될 수 있다.
100: 컴퓨팅 시스템 102: 호스트 프로세서
104: 비휘발성 메모리 106: 휘발성 메모리
108: 로컬 메모리 제어기 110: 호스트 메모리 제어기
112: 전력 검출기 114: 전력 실패
116: 휘발성 데이터 118: 리저브 전원 소스
200: 컴퓨팅 시스템 202: 호스트 프로세서
204: 비휘발성 메모리 206: 휘발성 메모리
208: 로컬 메모리 제어기 218: 리저브 전원 소스
220: 스토리지 카드 222: 프로세서 코어
224: 로컬 버퍼 226: 데이터 신뢰도 회로
227: 고속 쓰기 모드 228: 휘발성 메모리 인터페이스
230: 비휘발성 메모리 인터페이스 232: 노멀 데이터 경로
234: 전원 세이빙 경로 300: 컴퓨팅 시스템
302: 호스트 프로세서 304: 비휘발성 메모리
306: 휘발성 메모리 308: 로컬 메모리 제어기
318: 리저브 전원 소스 320: 스토리지 카드
326: 데이터 신뢰도 회로 332: 노멀 데이터 경로
334: 전원 세이빙 경로 336: 버퍼 기기
400: 컴퓨팅 시스템 402: 호스트 프로세서
404: 비휘발성 메모리 406: 휘발성 메모리
408: 로컬 메모리 제어기 412: 전원 검출기
416: 휘발성 데이터 418: 리저브 전원 소스
422: 프로세서 코어 424: 로컬 버퍼
426: 데이터 신뢰도 회로 428: 휘발성 메모리 인터페이스
430: 비휘발성 메모리 인터페이스 432: 노멀 데이터 경로
434: 전원 세이빙 경로 438: 전원 검출 신호
440: 카운터 442: 제 1 코어
444: 제 2 코어 546: 프로그램 모드 회로
548: 제 1 모드 시퀀서 550; 제 2 모드 시퀀서
552: 어드레스 554: 모드
556: 제 1 모드 558: 제 2 모드
601: 적응적 백업 시스템 660: 적응적 백업 제어기
662: 인터페이스 블록 664: 어드레스 생성기
666: 이동 모드 블록 668: 타이밍 블록
670: 메모리 어드레스들 672: 데이터 이동 모드
674: 부분 버스트 길이 676: 전체 버스트 길이

Claims (10)

  1. 비휘발성 메모리로 휘발성 메모리를 백업하기 위한 리저브 전원 소스에 근거하여 적응적 백업 시간을 계산하는 적응적 백업 제어기; 및
    상기 적응적 백업 제어기에 연결되고, 상기 적응적 백업 시간 내 상기 비휘발성 메모리로 상기 휘발성 메모리의 적어도 일부를 백업하는 프로세서 코어를 포함하는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 적응적 백업 제어기는 상기 리저브 전원 소스로 변경에 근거하여 상기 적응적 백업 시간을 조정하는 컴퓨팅 시스템.
  3. 제 1 항에 있어서,
    상기 적응적 백업 제어기는 상기 리저브 전원 소스를 위한 이용가능 백업 시간을 계산하는 컴퓨팅 시스템.
  4. 제 1 항에 있어서,
    상기 적응적 백업 제어기는 백업을 위해 상기 휘발성 메모리로부터 쓰기 엔트리 커밋(write entries commit)을 계산하고,
    상기 프로세서 코어는 상기 쓰기 엔트리 커밋을 백업하는 컴퓨팅 시스템.
  5. 제 1 항에 있어서,
    상기 적응적 백업 제어기는 백업을 위해 상기 휘발성 메모리로부터 쓰기 엔트리 커밋을 조정하고,
    상기 프로세서 코어는 상기 쓰기 엔트리 커밋을 백업하는 컴퓨팅 시스템.
  6. 제 1 항에 있어서,
    상기 적응적 백업 제어기는 백업을 위한 상기 휘발성 메모리로부터 비휘발성 지연과 비휘발성 대역에 근거하여 쓰기 엔트리 커밋을 계산하는 컴퓨팅 시스템.
  7. 제 1 항에 있어서,
    상기 적응적 백업 제어기는 상기 리저브 전원 소스에 근거하여 상기 적응적 백업 시간을 조정하고,
    상기 프로세서 코어는 백업을 위해 상기 휘발성 메모리로부터 상기 적응적 백업 시간에 근거하여 쓰기 엔트리 커밋을 조정하는 컴퓨팅 시스템.
  8. 제 1 항에 있어서,
    상기 프로세서 코어에 연결되고, 전원 실패를 검출하는 전원 검출기; 및
    상기 프로세서 코어에 연결되고, 상기 전원 실패에 근거하여 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하는 전원 절감 경로를 더 포함하는 컴퓨팅 시스템.
  9. 제 1 항에 있어서,
    상기 프로세서 코어에 연결되고, 전원 실패를 검출하는 전원 검출기; 및
    상기 프로세서 코어에 연결되고, 상기 비휘발성 메모리로 쓰기를 위한 빠른 쓰기 모드로 프로그램을 하는 프로그램 모드 회로를 더 포함하고,
    상기 프로세서 코어는 상기 전원 실패에 근거하여 상기 빠른 쓰기 모드에 따라 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하는 컴퓨팅 시스템.
  10. 제 1 항에 있어서,
    상기 프로세서 코어에 연결되고, 전원 실패를 검출하는 전원 검출기를 더 포함하고,
    상기 프로세서 코어는 상기 전원 실패에 근거하여 상기 비휘발성 메모리로 상기 휘발성 메모리의 일부를 백업하기 위해 상기 비휘발성 메모리를 위한 데이터 이동 모드를 변경하는 컴퓨팅 시스템.
KR1020150040731A 2014-06-16 2015-03-24 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 KR102101961B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462012825P 2014-06-16 2014-06-16
US62/012,825 2014-06-16
US14/501,851 2014-09-30
US14/501,851 US9372759B2 (en) 2014-06-16 2014-09-30 Computing system with adaptive back-up mechanism and method of operation thereof

Publications (2)

Publication Number Publication Date
KR20150144690A true KR20150144690A (ko) 2015-12-28
KR102101961B1 KR102101961B1 (ko) 2020-04-21

Family

ID=54836239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150040731A KR102101961B1 (ko) 2014-06-16 2015-03-24 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US9372759B2 (ko)
KR (1) KR102101961B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11257527B2 (en) 2015-05-06 2022-02-22 SK Hynix Inc. Memory module with battery and electronic system having the memory module
US10241727B1 (en) * 2015-10-15 2019-03-26 Rambus Inc. Hybrid memory module with improved inter-memory data transmission path
US9746895B2 (en) 2016-01-22 2017-08-29 Microsoft Technology Licensing, Llc Use of volatile memory as non-volatile memory
US10115442B2 (en) 2016-01-22 2018-10-30 Microsoft Technology Licensing, Llc Demand-based provisioning of volatile memory for use as non-volatile memory
US9760147B2 (en) 2016-01-22 2017-09-12 Microsoft Technology Licensing, Llc Power control for use of volatile memory as non-volatile memory
US10401935B2 (en) * 2016-05-03 2019-09-03 Samsung Electronics Co., Ltd. Storage device with a power source and persistent store that provides backup power to DRAM in a power loss event
US9990158B2 (en) * 2016-06-22 2018-06-05 Sandisk Technologies Llc Storage system and method for burst mode management using transfer RAM
CN107315662A (zh) * 2017-07-05 2017-11-03 郑州云海信息技术有限公司 一种防止硬盘数据丢失的方法及系统
US10824363B2 (en) 2017-07-07 2020-11-03 Dell Products, L.P. System and method of characterization of a system having persistent memory
US10768847B2 (en) * 2017-07-07 2020-09-08 Dell Products, L.P. Persistent memory module and method thereof
US10394618B2 (en) 2017-07-14 2019-08-27 International Business Machines Corporation Thermal and power memory actions
US10635539B2 (en) * 2018-05-01 2020-04-28 Allegro Microsystems, Llc Supply voltage disturbance immunity for digital circuits
US11080210B2 (en) * 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller
US11061751B2 (en) 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller
US11048312B2 (en) * 2019-02-13 2021-06-29 Toshiba Memory Corporation Systems and methods for managing reduced power failure energy requirements on a solid state drive
US20230064781A1 (en) * 2021-08-31 2023-03-02 Micron Technology, Inc. Dynamic buffer limit for at-risk data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132463A (ja) * 1998-10-27 2000-05-12 Hitachi Ltd メモリバックアップ方式
JP2008257650A (ja) * 2007-04-09 2008-10-23 Canon Inc 情報処理装置及びその電力制御方法
KR20110121579A (ko) * 2010-04-30 2011-11-07 주식회사 태진인포텍 반도체 저장장치 백업 및 복구 시스템 및 방법
KR20130047680A (ko) * 2011-10-31 2013-05-08 주식회사 태진인포텍 비대칭 데이터 소스 간의 비동기 데이터 시프트 및 백업
KR20140071135A (ko) * 2012-12-03 2014-06-11 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336174B1 (en) 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
US20040190210A1 (en) 2003-03-26 2004-09-30 Leete Brian A. Memory back up and content preservation
US20060080515A1 (en) 2004-10-12 2006-04-13 Lefthand Networks, Inc. Non-Volatile Memory Backup for Network Storage System
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8036847B2 (en) * 2008-09-25 2011-10-11 Rockwell Automation Technologies, Inc. Maximum information capture from energy constrained sensor nodes
US8065562B2 (en) * 2009-06-26 2011-11-22 Seagate Technology Llc Systems, methods and devices for backup power control in data storage devices
US8230257B2 (en) * 2009-06-26 2012-07-24 Seagate Technology Llc Systems, methods and devices for controlling backup power provided to memory devices and used for storing of sensitive data
US8639976B2 (en) * 2011-02-15 2014-01-28 Coraid, Inc. Power failure management in components of storage area network
GB2510180A (en) * 2013-01-29 2014-07-30 Ibm Selective restoration of data from non-volatile storage to volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132463A (ja) * 1998-10-27 2000-05-12 Hitachi Ltd メモリバックアップ方式
JP2008257650A (ja) * 2007-04-09 2008-10-23 Canon Inc 情報処理装置及びその電力制御方法
KR20110121579A (ko) * 2010-04-30 2011-11-07 주식회사 태진인포텍 반도체 저장장치 백업 및 복구 시스템 및 방법
KR20130047680A (ko) * 2011-10-31 2013-05-08 주식회사 태진인포텍 비대칭 데이터 소스 간의 비동기 데이터 시프트 및 백업
KR20140071135A (ko) * 2012-12-03 2014-06-11 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
US9372759B2 (en) 2016-06-21
KR102101961B1 (ko) 2020-04-21
US20150363272A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
KR102101961B1 (ko) 적응적 백업 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법
US9910775B2 (en) Computing system with adaptive back-up mechanism and method of operation thereof
US20230010660A1 (en) Non-volatile memory storage for multi-channel memory system
JP5402693B2 (ja) ディスクアレイ装置の制御方法及びディスクアレイ装置
US10324645B2 (en) Data storage device and data storage method thereof
US9946478B2 (en) Memory managing method, memory control circuit unit and memory storage apparatus
JP5232516B2 (ja) ディスクアレイ装置
JP4561462B2 (ja) ダーティデータ処理方法、ダーティデータ処理装置およびダーティデータ処理プログラム
US9164929B2 (en) False power failure alert impact mitigation
US20150302930A1 (en) Flash storage device with data integrity protection
JP4465329B2 (ja) コンピュータプロセッサ用の外部状態キャッシュ
US10152280B2 (en) Storage device and control method
EP3142015A1 (en) Low-power memory-access method and associated apparatus
US10831657B2 (en) Debug data recovery after PLI event
JP2016118815A (ja) 不揮発性メモリ装置
US10108469B2 (en) Microcomputer and microcomputer system
KR20210069744A (ko) 스토리지 장치 및 그것의 데이터 백업 방법
US11269715B2 (en) Systems and methods for adaptive proactive failure analysis for memories
CN114115714B (zh) 混合存储器模块中的热事件预测
EP2581804A1 (en) Electronic apparatus using NAND flash and memory management method thereof
US20230376381A1 (en) Checkpoint-progress status
WO2024054450A1 (en) Systems, methods, and media for reducing the impact of drive parameter writes on solid state drive performance
WO2024076850A1 (en) Hold-up capacitor failure handling in data storage devices
JP2003006056A (ja) メモリバックアップ回路
JP2008146307A (ja) タイマ制御装置およびその障害検出方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right