KR20170068373A - 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 - Google Patents

메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20170068373A
KR20170068373A KR1020160114505A KR20160114505A KR20170068373A KR 20170068373 A KR20170068373 A KR 20170068373A KR 1020160114505 A KR1020160114505 A KR 1020160114505A KR 20160114505 A KR20160114505 A KR 20160114505A KR 20170068373 A KR20170068373 A KR 20170068373A
Authority
KR
South Korea
Prior art keywords
fpw
host processor
data
storage device
system memory
Prior art date
Application number
KR1020160114505A
Other languages
English (en)
Other versions
KR102329762B1 (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 KR20170068373A publication Critical patent/KR20170068373A/ko
Application granted granted Critical
Publication of KR102329762B1 publication Critical patent/KR102329762B1/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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

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)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

전자 시스템은 호스트 프로세서, 상기 호스트 프로세서에 의해 확인된 데이터 지속 영역들을 포함하며 상기 호스트 프로세서에 연결된 시스템 메모리, 속경로 기입(FPW) 예비구역을 포함하며 상기 시스템 메모리로부터의 사용자 데이터를 비휘발성 매체내에 저장하도록 구성된 비휘발성 스토리지 장치, 및 상기 호스트 프로세서에 연결되고, 주파워 실패 검출기에 의해 파워 로스를 검출하고 파워 로스 검출 제어를 주장하도록 구성된 파워 모니터부를 포함한다. 상기 호스트 프로세서는, 상기 파워 로스 검출 제어가 행사될 때, 상기 비휘발성 매체 내에서 상기 데이터 지속 영역들의 내용을 상기 속경로 기입(FPW) 예비구역으로 이동시키기 위한 RAM 플러시 드라이버를 관여하도록 구성된다.

Description

메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법{ELECTRONIC SYSTEM WITH MEMORY DATA PROTECTION MECHANISM AND METHOD OF OPERATION THEREOF}
본 발명은 전자 시스템에 관한 것으로, 보다 구체적으로, 전자 시스템의 데이터 스토리지 기능들을 위한 시스템에 관한 것이다.
데이터 처리 시스템에서, 데이터 보호는 주된 요건이다. 대규모 데이터 센터에서, 관리자는 시설이 모든 경제적으로 실행 가능한 데이터 보호 조치를 채택 하도록 보장해야 한다. 주요 관심사는 시스템 메모리에 유지되는 임시 데이터의 보호와 보존이다. 임시 데이터는 데이터베이스, 계산, 부분적으로 처리된 데이터, 문서 열기, 또는 이들의 모든 조합을 포함할 수 있다.
수년에 걸쳐, 다양한 데이터 손실 방지 대책들은 배터리 백업 유닛 (BBU) 방법, 무정전 전원 공급 장치 (UPS) 방법, 탄소 계 연료 (예: 디젤) 생성 방법, 및 전하 저장 커패시터 기반 방법에 이르기까지 등장하고 있다. 각 방식 및 그 조합은, 휘발성 메모리 (예컨대 DRAM)에 저장된 데이터를 보존하는 것을 시도한다. 그러나, 오늘날의 비즈니스 환경의 강력한 비용 경쟁력에 기인하여, 데이터 손실 방지를 얻는데 보다 값싼 방법에 대한 연구가 계속되고 있다.
따라서, 컴퓨팅 환경에서의 신뢰성과 성능을 향상시키기 위해 메모리 데이터 보호 메커니즘을 가지는 전자 시스템에 대한 필요성이 여전히 남아있다. 늘어나는 상업적인 경쟁 압력의 관점에서, 성장하는 소비자 기대와 시장에서 쓸모 있는 제품 차별화에 대한 기회 감소와 함께, 이 문제들에 대하여 찾는 해답이 점점 중요해지고 있다. 또한 비용 절감의 필요성, 효율성 및 성능 개선의 필요성, 및 경쟁 압력을 충족할 필요성이 이들 문제에 대한 답을 찾기 위한 중요한 필요성에 더 큰 긴급성을 더한다.
이러한 문제에 대한 해결책은 오랫동안 추구되어 왔지만 이전의 개발은 어떤 해답을 가르치거나 암시하지 않는다. 따라서, 이러한 문제에 대한 해답은 오랫동안 당업자를 회피해왔다.
본 발명이 해결하고자 하는 기술적 과제는, 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법을 제공함에 있다.
본 발명의 실시 예는 전자 시스템을 제공한다. 상기 전자 시스템은 호스트 프로세서, 및 상기 호스트 프로세서에 의해 확인된 데이터 지속 영역들을 포함하며 상기 호스트 프로세서에 연결된 시스템 메모리를 포함한다. 상기 전자 시스템은 속경로 기입(FPW) 예비구역을 포함하며, 상기 시스템 메모리로부터의 사용자 데이터를 비휘발성 매체 내에 저장하도록 구성된 비휘발성 스토리지 장치를 포함한다. 상기 전자 시스템은 상기 호스트 프로세서에 연결되고, 주파워 실패 검출기에 의해 파워 로스를 검출하고 파워 로스 검출 제어를 주장하도록 구성된 파워 모니터부를 구비한다. 상기 호스트 프로세서는, 상기 파워 로스 검출 제어가 주장될 때, 상기 비휘발성 매체 내에서 상기 데이터 지속 영역들의 내용을 상기 속경로 기입(FPW) 예비구역으로 이동시키기 위한 RAM 플러시 드라이버를 관여하도록 구성된다.
본 발명의 일 실시 예는 전자 시스템의 동작 방법을 제공한다. 상기 동작 방법은, 호스트 프로세서에 의해, 시스템 메모리 내에서 데이터 지속 영역들을 규명하는 것을 포함하는 상기 시스템 메모리를 억세스하고, 상기 시스템 메모리로부터 사용자 데이터를 비휘발성 스토리지 장치의 비휘발성 매체에 저장하고, 파워 로스 검출 제어를 상기 호스트 프로세서로 주장하고, 및 상기 파워 로스 검출 제어가 주장될 때, 상기 비휘발성 매체 내에서 상기 데이터 지속 영역들의 내용을 상기 속경로 기입(FPW) 예비구역으로 이동시키기 위한 RAM 플러시 드라이버를 관여하는 것을 포함한다.
본 발명의 어떤 실시 예들은 상기 언급된 경우 내에 혹은 부가적으로 다른 단계들 및 구성요소들을 가진다. 상기 단계들 혹은 구성요소들은 첨부 도면들을 참조로, 이하의 상세한 설명을 읽음에 의해 본 분야의 당업자에게 명백해질 수 있을 것이다.
본 발명의 실시 예에 따르면, 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그 것의 동작 방법이 구현된다.
도 1은 본 발명의 일 실시 예에 따라 메모리 데이터 보호 메커니즘을 갖는 전자 시스템의 구성 블록도이다.
도 2는 본 발명의 일 실시 예에 따라 비휘발성 스토리지 장치로 캐시 데이터의 휘발성 메모리 플러시의 플로우챠트이다.
도 3은 본 발명의 일 실시 예에 따라 비휘발성 스토리지 장치로부터 캐시 데이터의 휘발성 메모리 복원의 플로우챠트이다.
도 4는 본 발명의 일 실시 예에 따라 비휘발성 스토리지 장치의 파워 온 초기화 과정의 플로우챠트이다.
도 5는 본 발명의 추가 실시 예에 따라 전자 시스템의 동작 방법의 플로우챠트이다.
다양한 실시 예들은 일시적 데이터에 대한 메모리 데이터 보호 메커니즘을 제공한다. 메모리 데이터 보호 메커니즘은 데이터 보존 구역들(zones)로서 지정될 수 있는 시스템 메모리 내의 영역들을 식별할 수 있게 한다. 메모리 데이터 보호 메커니즘은 예기치 못한 파워 다운에 기인하는 손실로부터 데이터 보존 구역들 내의 데이터를 지키도록 즉각(on-the-fly)구성될 수 있다. 실시 예들은 지정된 데이터 보존 구역들 내에 있는 데이터를 영구(persistent) 스토리지 장치내의 예비 위치 (reserved location)로 전달함에 의해 예기치 못한 파워 로스에 대응할 수 있다.
이하의 실시 예들은 본 분야의 통상의 지식을 가진 자들이 본 발명을 만들고 사용할 수 있도록 상세히 설명된다. 다른 실시 예들이 본 발명의 개시에 근거하여 명백해질 수 있음이 이해될 것이며, 시스템, 프로세스, 또는 기계적인 변화들은 본 발명의 실시 예의 범위를 벗어남이 없이 만들어질 수 있을 것이다.
이하의 설명에서, 다양한 특정 상세들이 본 발명의 철저한 이해를 제공하기 위해 주어진다. 그렇지만, 본 발명이 그러한 특정 상세들 없이도 실시될 수 있다는 것이 명백해질 것이다. 본 발명의 실시 예를 흐리지 않도록 하기 위해, 일부 공지 회로들, 시스템 구성들, 및 프로세스 단계들은 상세히 설명되지 않는다.
시스템의 실시 예들을 보여주는 도면들은 반 도식적(semi-diagrammatic) 이고, 축적대로 되어 있지 않으며, 특히 일부 치수들은 표시의 명확화를 위한 것이며 도면들 내에서 과장되게 나타나 있다. 유사하게, 설명의 편의상 도면들 내의 관점은 일반적으로 유사한 방향을 보여주지만, 도면들 내의 이들 묘사는 대부분의 경우에 임의적이다. 일반적으로 본 발명은 임의의 방향으로 동작될 수 있다.
본 명세서에서 사용된 용어 "모듈"은 본 발명의 실시 예에서 사용되는 문맥에 따라 소프트웨어, 하드웨어 또는 이들의 조합을 포함할 수 있다. 예를 들어, 소프트웨어는 머신 코드, 펌웨어, 임베디드 코드 및 애플리케이션 소프트웨어가 될 수 있다. 또한 예를 들어, 상기 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어, 압력 센서, 관성 센서, 마이크로 전자 기계 시스템 (MEMS), 수동 소자, 또는 이들의 조합일 수 있다. 모듈이 이후의 장치 청구항들 내에 기재되는 경우에 그 모듈은 장치 청구항들의 의도 및 범위를 위해 하드웨어 회로를 포함하는 것으로 간주된다.
본 명세서에서 언급되는 용어 "부(unit)"는 특정 기능을 위해 사용되는 하드웨어 구성 요소 또는 하드웨어 상태 머신(state machine)으로 이루어지는 회로이다. 상기 "부"는 중요한 기능 타이밍에 사용될 수 있고 반드시 소프트웨어 기능 또는 지원을 포함하지 않을 수 있다. 본 명세서에서 언급되는 "주파워"는 소스 전압이다. 상기 소스 전압은 감소된 전압이나 직류 파워 소스를 제공하기 위한 파워 서플라이에 의해 처리될 수 있다. 본 명세서에서 언급되는 용어 "보조 파워"는 파워 서플라이에 의해 제공되는 조절된 직류 전압이다.
본원에서 언급된 "주파워 페일"라는 용어는 파워 서플라이에 대한 주 전압의 하드웨어 검출 페일이며, 이는 나중에 보조 파워 페일을 초래할 수 있다. 상기 파워 서플라이의 상기 보조 파워는 프로세서, 메모리, 인터페이스 컨트롤러, 스토리지 장치 등과 같은 전자 기능을 위한 전압 소스가 될 수 있음이 이해될 것이다.
이제 도 1을 참조하면, 본 발명의 일 실시 예에 따라 메모리 데이터 보호 메커니즘을 갖는 전자 시스템(100)의 구성 블록도가 보여진다. 전자 시스템(100)은 비휘발성 스토리지 장치(102)를 포함한다. 그러한 장치들의 예들은 솔리드 스테이트 스토리지 장치(SSSD)를 포함할 수 있다. 상기 솔리드 스테이트 스토리지 장치(SSSD)는 플래시 메모리(Flash memory), 자기 랜덤 억세스 메모리(magnetic random access memory: MRAM), 저항성 랜덤 억세스 메모리(Resistive Random Access Memory: RRAM), 및 상변화 메모리(Phase Change Memory: PCM) 등에 기반하는 장치일 수 있다. 또한, 비휘발성 스토리지 장치(102)는하이브리드 디스크 스토리지 장치(hybrid disk storage devices) 및 키값 스토리지 어댑터(key value storage adapters)일 수 있다. 비휘발성 스토리지 장치(102)는 물리 인터페이스(104)를 통해 억세스될 수 있다. 비휘발성 스토리지 장치(102)는 물리 인터페이스(104)를 경유하여 사용자 데이터를 저장하고 억세스하는 비휘발성 데이터 스토리지 메커니즘일 수 있다. 물리 인터페이스(104)는 비휘발성 스토리지 장치(102)와 호스트 프로세서(106) 사이의 통신 경로일 수 있다. 상기 통신 경로는 광 채널(fibre channel: FC), 퍼스널 컴퓨터 인터페이스 익스프레스(personal computer interface express: PCI-e), 소형 컴퓨터 시스템 인터페이스(small computer system interface: SCSI), 직렬 부착(serial attached) SCSI (SAS), 직렬 진보 기술 아키텍쳐(serial advanced technology architecture: SATA), 병렬 진보 기술 아키텍쳐(parallel advanced technology architecture: PATA), 이더넷(Ethernet), 또는 기가비트 이더넷(Giga-bit Ethernet)을 포함하는, 직렬 인터페이스(serial interface), 병렬 인터페이스(parallel interface), 또는 이들의 조합을 활용한다. 물리 인터페이스(104)는 서브 유닛 어드레싱(sub-unit addressing), 세컨드 유닛 어드레싱(second unit addressing), 또는 분리 스트림 ID(separate stream-IDs)를 수행할 수 있다.
물리 인터페이스(104)는 상기 비휘발성 스토리지 장치(102)를 상기 호스트 프로세서(106)에 연결(link)할 수 있다. 상기 호스트 프로세서(106)는 마이크로프로세서, 범용 컴퓨터(general purpose computer), 컴퓨터 네트워크(computer network), 서버(server), 스토리지 프로세서(storage processor), 그래픽 프로세싱 유닛(graphics processing unit: GPU), 응용 특정 집적회로(application specific integrated circuit: ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array: FPGA), 프로그래머블 로직 장치(programmable logic device: PLD), 또는 기타 등등일 수 있다. 상기 호스트 프로세서(106)는 응용 소프트웨어(application software: 110)를 저장하고 실행하기 위한 시스템 메모리(108)에 연결될 수 있다. 상기 시스템 메모리(108)는 휘발성 메모리, 전형적으로 다이나믹 랜덤 억세스 메모리(DRAM)일 수 있다. 상기 DRAM은 상기 호스트 프로세서(106)를 위한 작업공간(workspace)을 제공한다. 상기 시스템 메모리(108)는 상기 DRAM 메모리의 전체 용량을 포함한다. 상기 호스트 프로세서(106)는 상기 시스템 메모리(108) 내에 메타데이터(metadata: 111)를 저장할 수 있다. 상기 메타데이터(111)는 메모리 맵(memory map), 조건 플래그(condition flags), 우선 식별자(priority indicators), 및 상기 응용 소프트웨어(110)를 실행하기 위해 요구되는 임의의 포인터(any pointers)를 포함할 수 있다.
시스템 메모리(108)의 일부는 데이터 캐시(data cache: 112)로 전용될 수 있다. 상기 데이터 캐시는 상기 응용 소프트웨어(110)으로부터의 일시적 데이터를 저장하는데 사용될 수 있다. 상기 데이터 캐시(112)는 상기 비휘발성 스토리지 장치(102)로 일시적 데이터를 이동시키는 것에 비해 상기 일시적 데이터의 신속 저장을 제공한다. 시스템 메모리(108)는 휘발성 메모리이므로, 응용 소프트웨어(110)와 데이터 캐시(112)의 내용(contents)은 주파워 실패 검출기(113)에 의해 식별되는 이벤트 동안에 소실되기 쉽다. 주파워 실패 검출기(113)는 2차 파워(DC)가 여전히 있는 동안 주파워(AC)의 부재를 검출할 수 있다.
파워 모니터부(114)는 전자 시스템(100)중에서 교류 전원(AC)등과 같은 주파워를 주파워 실패 검출기(113)로 감시하는 하드웨어 장치일 수 있다. 파워 모니터부(114)는 제한된 타임구간 동안에 직류(DC) 파워와 같은 보조 파워를 유지하기 위해 상기 호스트 프로세서(106)에 연결될 수 있다. 상기 파워 모니터부(114)는 파워 서플라이, 파워 컨디셔너, 배터리 백업 유닛, 언인터럽터블 파워 서플라이(uninterruptible power supply: UPS), 또는 이들의 조합을 포함할 수 있다. 파워 모니터부(114)로부터 발원된 파워 로스 검출 제어(116)는 호스트 프로세서(106)로 상기 보조 파워의 임박한 로스(loss)를 경보할 수 있다.
정상 동작(normal operation) 동안, 상기 호스트 프로세서(106)는 비휘발성 스토리지 장치(102)로부터의 응용 소프트웨어(110)를, 스토리지 장치 컨트롤러(120)내의 표준 I/O 모듈(118)을 통해, 시스템 메모리(108)에 로딩할 수 있다. 표준 I/O 모듈(118)은 응용 소프트웨어(110)를 저장하는 비휘발성 메모리 구조와 같은 스토리지 매체(122)를 억세스하기 위해 스토리지 장치 컨트롤러(120)의 하드웨어 자원을 활용할 수 있다. 표준 I/O 모듈(118)은 스토리지 장치 컨트롤러(120)의 주 어드레스(121)를 통해 억세스될 수 있고, 사용자 데이터(124)뿐만 아니라 응용 소프트웨어(110)를 저장하기 위해 일반적으로 억세스 가능하다. 물리 인터페이스(104)를 통한 통신은 표준 장치 드라이버(126)에 의해 조정된다. 표준 장치 드라이버(126)는 표준 I/O 모듈(118)에 의해 인식된 커맨드들을 물리 인터페이스(104)에 의해 전달될 수 있는 포맷으로 변환할 수 있다.
호스트 프로세서(106)의 운영 시스템은 캐시 매니저, 파일 시스템, 응용 운영 인터페이스, 및 블록 계층(layer)과 같은 지원 기능을 포함할 수 있으며, 상기 블록 계층은 비휘발성 스토리지 장치(102)로 또는 비휘발성 스토리지 장치(102)로부터의 전달에서 요청될 수 있는 논리 블록 어드레스들(LBA's)의 개수를 결정한다. 정상 동작 동안 호스트 프로세서(106)는 응용 소프트웨어(110)의 실행을 관리하기 위해 운영 체제를 활용할 수 있다. 응용 소프트웨어(110)의 실행은 비휘발성 스토리지 장치(102)내에서 데이터를 라이팅 및 리딩하는 것과, 응용 소프트웨어(110)의 실행을 빠르게 할 목적으로 데이터 캐시(112)를 관리하는 것을 포함할 수 있다.
일 실시 예에서, 호스트 프로세서(106)는 데이터 지속 영역들(128)로서 시스템 메모리(108)내에서 임의 개수의 영역들을 식별할 수 있다. 데이터 지속 영역들(128)은 캐시 데이터, 메타데이터, 응용 리스트 등을 포함할 수 있는 시스템 메모리(108)내에서의 고 우선 영역들이다. 호스트 프로세서(106)는 인접 부분들, 시스템 메모리(108)의 전체, 혹은 시스템 메모리(108)의 산재된 덩어리들(scattered chunks)을 데이터 지속 영역들(128)로서 지정할 수 있다. 데이터 지속 영역들(128)은 응용 소프트웨어(110), 메타데이터(111), 데이터 캐시(112), 혹은 호스트 프로세서(106)에 의해 지정된 시스템 메모리(108)의 임의의 부분을 포함할 수 있다. 파워 로스 검출 제어(116)의 행사 시에, RAM 플러시 드라이버(130)는 데이터 지속 영역들(128)의 내용을 비휘발성 메모리(122)내의 FPW 예약 공간(134)으로 전달하기 위해, 스토리지 장치 컨트롤러(120)내에서 속경로 라이트(fast path write: FPW) 서브 유닛(132)과 연결될 수 있다. 속경로 라이트 서브 유닛(132)이 FPW 예약 공간(134)을 제어하기 위해 전용된 하드웨어 및 소프트웨어를 포함할 수 있음이 이해될 수 있을 것이다. 상기 FPW 예약 공간(134)은 물리 인터페이스(104)의 FPW 서브 유닛 어드레스(131)을 통해 RAM 플러시 드라이버(130)에 의해 억세스 된다. 또한, RAM 플러시 드라이버(130)가 하나 이상의 비휘발성 스토리지 장치(102)에 대해 데이터 지속 영역들(128)의 부분들을 지정할 수 있음이 이해될 수 있을 것이다.
RAM 플러시 드라이버(130)는 FPW 서브 유닛(132)를 비휘발성 스토리지 장치(102)의 2차 유닛 ID로서 어드레싱하기 위해, 물리 인터페이스(104)의 FPW 서브 유닛 어드레스(131)를 억세스할 수 있다. RAM 플러시 드라이버(130)가 비휘발성 스토리지 장치(102)의 임의 개수의 유닛들을 어드레싱할 수 있음은 이해될 수 있을 것이다. 데이터 지속 영역들(128)의 전체 내용은 임의의 예비 파워가 격감되어 시스템 메모리(108)의 내용이 소실되기 이전에 FPW 예약 공간(134)으로 전달된다. FPW 서브 유닛(132)은 파워 로스 검출 제어(116)의 행사를 나타내기 위해 파워 실패(PF) 조건 플래그(133)을 제어할 수 있다. 파워 실패(PF) 조건 플래그(133)는 비휘발성 메모리 내에 유지되고, 파워다운 조건을 지나서도 지속된다. PF 조건 플래그(133)는 RAM 플러시 드라이버(130)의 커맨드에서 FPW 서브 유닛(132)에 의해 제어된다.
데이터 지속 영역들(128)이 어느 때라도 호스트 프로세서(106)에 의해 재배열될 수 있음은 이해될 수 있을 것이다. 정상 파워다운 과정 하에서, 호스트 프로세서(106)는 RAM 플러시 드라이버(130)나 FPW 예약 공간(134)을 억세싱함이 없이도, 시스템 메모리(108)내에 있는 임의의 데이터를 적절히 저장할 수 있다. 파워다운이 예기치 않게 되면, RAM 플러시 드라이버(130)는 데이터 지속 영역들(128)의 내용을 저장하기 위해 자동적으로 개입된다.
FPW 서브 유닛(132)은 PF 조건 플래그(133)를 저장할 수 있다. PF 조건 플래그(133)는 파워 로스 검출 제어(116)가 행사되었다는 것과, FPW 예약 공간(134)이 데이터 지속 영역들(128)로부터의 데이터와 시스템 메모리(108)내의 데이터의 위치를 나타내는 메타데이터를 포함한다는 것을 나타낸다. 이후의 파워 업 시, RAM 플러시 드라이버(130)는 FPW 서브 유닛(132)를 조회하여, 파워 로스 검출 제어(116)의 행사를 나타내는 PF 조건 플래그(133)가 설정되었음을 결정하면, FPW 예약 공간(134)의 내용은 시스템 메모리(108)의 데이터 지속 영역들(128)내에 복원될 수 있다. 상기 복원은 호스트 프로세서(106)의 동작을 가능한 한 빠르게 재개하기 위해서이다.
전자 시스템(100)이, 비휘발성 스토리지 장치(102)가 표준 I/O 모듈(118)을 통해 정상 동작을 위해서 물리 인터페이스(104)상에서 준비 상태를 나타내기 이전에, 데이터 지속 영역들(128)의 내용이 시스템 메모리(108)내에 자동적으로 저장되도록 함에 의해 호스트 프로세서(106)의 성능을 개선할 수 있음이 확인되었다. 이러한 복구 과정은 호스트 프로세서(106)가 초기 상태로부터 응용 소프트웨어(110)을 다시 시작 하도록 요구함으로 인해 통상 소실될 수도 있는 키 데이터를 보호할 수 있다
RAM 플러시 드라이버(130)가 예기치 못한 파워다운 시에 개입될 수 있고, 파워 로스 검출 제어(116)가 정상 파워다운 과정 동안 호스트 프로세서(106)에 의해 디스에이블될 수 있다는 것이 이해될 수 있을 것이다. 호스트 프로세서(106)는 파워 로스 검출 제어(116)의 행사 없이, RAM 플러시 드라이버(130)를 개입시킬 것인 지를 주기적으로 선택할 수 있다. 이는, 주 파워 실패 검출기(113)가 파워 로스를 검출하지 못한 경우에, 비휘발성 스토리지 장치(102)에 데이터 지속 영역들(128)을 저장하는데 요구되는 타임을 줄이기 위해서이다. 호스트 프로세서(106)는 증가 저장 요구를 충족시키기 위해 데이터 지속 영역들(128)의 정의를 변화시킬 수 있다. 또한, RAM 플러시 드라이버(130)가 비휘발성 스토리지 장치(102)의 FPW 서브 유닛 어드레스(131)를 통해, FPW 서브유닛(132)과 오로지 통신할 수 있다는 것이 이해될 수 있을 것이다. 이 것은 FPW 예약 공간(134)에 대한 직접 억세스를 제공한다.
RAM 플러시 드라이버(130)는 호스트 프로세서(106)의 매 파워업 사이클 마다 PF 조건 플래그(133)의 상태를 검증할 수 있다. 데이터 지속 영역(128)의 복원이 호스트 프로세서(106)의 시스템 부트 타임을 연장할 수 있다는 것이 또한 이해될 수 있을 것이다.
전자 시스템(100)이, 시스템 메모리 (108)의 민감도를 해결하고 데이터 지속 영역들(128)을 플러시하고 복원하는데 요구되는 타임을 줄이기 위해, 하나 이상의 RAM 플러시 드라이버(130)를 활용할 수 있다는 것이 또한 이해될 수 있을 것이다. 이 방법은 전자 시스템(100)이 다중 호스트 프로세서(106) 혹은 다중 비휘발성 스토리지 장치(102)를 포함할 때, 극도로 유리할 수 있다. 데이터 지속 영역들(128)을 플러시하고 복원하는데 요구되는 타임을 줄임에 의해, 파워 모니터 유닛(114)의 복잡도 및 비용은 감소될 수 있다.
이제 도 2를 참조하면, 일 실시 예에서 비휘발성 스토리지 장치(102)에 대한 캐시 데이터의 휘발성 메모리 플러시(201)의 플로우챠트가 보여진다. 도 1의 비휘발성 스토리지 장치(102)에 대한 캐시 데이터의 휘발성 메모리 플러시(201)의 플로우챠트는 도 1의 RAM 플러시 드라이버(130)가 예기치 못한 파워다운에 의해 개입되는 과정을 나타낸다. 블록(202)내에서 예기치 못한 주 파워 실패의 검출은 도 1의 파워 모니터 유닛(114)에 의해 수행될 수 있고, 이는 보조 파워(DC)가 얼마 간 지속하는 동안 주 파워(AC)의 로스를 나타내는 주 파워 실패 검출기(113)에 의해 검출될 수 있다. 파워 모니터 유닛(114)은 도 1의 파워 로스 검출 제어(116)를 행사(발생)함에 의해 도 1의 호스트 프로세서(106)로 이 조건을 알릴 수 있다. 호스트 프로세서(106)는 예기된 파워다운 과정 동안 파워 로스 검출 제어(116)의 행사를 막을 수 있다.
플로우는 전달을 위한 캐시로부터의 휘발성 메모리 데이터를 수집하는 블록(204)을 진행한다. 파워 로스 검출 제어(116)가 일단 행사되면, 도 1의 RAM 플러시 드라이버(130)는 호스트 프로세서(106)에 의해 도 1의 데이터 지속 영역들(128)로서 식별된 위치들을 불러오기 위해 도 1의 시스템 메모리(108)를 억세스할 수 있다. RAM 플러시 드라이버(130)는 데이터 지속 영역들(128)을 억세스하고 캐시 플러시 동작을 위한 전체 바이트 총수를 확인하기 위해 산재/모음 기법(scatter/gather technique)을 활용할 수 있다.
플로우는 FPW 인터페이스 통해 스토리지 장치에 연결하는 블록(206)을 진행한다. RAM 플러시 드라이버(130)는 데이터 지속 영역들(128)의 내용을 수신하기 위한 비휘발성 스토리지 장치(102)를 준비하기 위하여 도 1의 FPW 서브 유닛(132)에 연결할 수 있다. FPW 서브 유닛(132)가 데이터 지속 영역들(128)에 대해 고정된 크기의 스토리지로 구성될 수 있거나 가변 스토리지 용량으로 구성될 수 있음이 이해될 수 있을 것이다. 전달 조건들은 미리 조정될 수 있다. 전달 조건들은 패킷 사이즈, 인터페이스 승인 전에 전달되는 패킷들의 개수, 버퍼 할당 길이, 및 인터페이스 타이밍 등을 포함할 수 있다.
플로우는 그러면 FPW 인터페이스를 통해 스토리지 장치내의 예약된 위치로 휘발성 메모리 데이터를 전달하는 블록(208)을 진행한다. RAM 플러시 드라이버(130)는 시스템 메모리(108)에서 도 1의 비휘발성 매체(122)내의 FPW 예약 공간(134)으로 데이터 지속 영역들(128)의 내용 전달을 실행할 수 있다.
호스트 프로세서(106)가 파워 로스 검출 제어(116)의 행사에 대해 알림을 받고, 도 1의 응용 소프트웨어(110)의 실행을 정지할 수 있음이 이해될 것이다. 한편, RAM 플러시 드라이버(130)는 FPW 서브 유닛(132)과 통신하기 위해 도 1의 물리 인터페이스(104)를 활용하고, 보조 파워가 결핍되기 이전에 데이터 지속 영역들(128)의 내용을 FPW 예약 공간(134)으로 전달할 수 있다.
도 1의 전자 시스템(100)의 실시 예가 데이터 지속 영역들(128)로서 호스트 프로세서(106)에 의해 지정된 시스템 메모리(108)의 영역들 내에 저장된 데이터를 보존할 수 있음이 확인되었다. 보조 파워가 제한된 타임 동안 활성화로 유지되는 동안 주 파워의 실패를 검출하는 것에 기인하여 파워 로스 검출 제어(116)가 행사될 때, 데이터 지속 영역들(128)의 내용은 비휘발성 스토리지 장치(102)의 FPW 예약 공간(134)으로 전달될 수 있다. 데이터 지속 영역들(128)의 데이터 내용의 보존은 처음부터 응용 소프트웨어(110)을 재시작함이 없이도 파워 실패로부터 복구를 가능케 한다.
도 3을 참조하면, 실시 예에서 도 1의 비휘발성 스토리지 장치(102)로부터 캐시 데이터의 휘발성 메모리 복원(301)의 플로우챠트가 보여진다. 비휘발성 스토리지 장치(102)로부터 캐시 데이터의 휘발성 메모리 복원(301)의 플로우챠트는 도 1의 전자 시스템(100)의 파워 온(power-on) 시퀀스를 가리킨다. 블록(302)에서 도 1의 호스트 프로세서(106)는 도 1의 RAM 플러시 드라이버(130)가 스토리지 장치내의 파워 실패 플래그에 대한 체크를 실행하도록 하기 위해 FPW 서브 유닛(132)에서 정보를 얻도록 유발할 수 있다. FPW 서브 유닛(132)은 도 1의 PF 조건 플래그(133)의 상태를 RAM 플러시 드라이버(130)로 다시 패스(pass)할 수 있다.
파워 실패 체크 블록(304)은 PF 조건 플래그(133)의 조건을 검출할 수 있다. PF 조건 플래그(133)가 행사되어, 도 1의 주 파워 실패 검출기(113)가 파워 로스를 검출하지 못한 것을 나타내면 플로우는 캐시 배치를 위해 메타데이터(metadata)를 불러오는 블록(306)을 진행한다. 도 1의 메타데이터(111)는 도 1의 시스템 메모리(108)내의 위치 및 길이로써 도 1의 데이터 지속 영역들(128)의 설명하는 내용을 포함할 수 있다. RAM 플러시 드라이버(130)는 시스템 메모리(108)의 복원 동안 응용 소프트웨어(110) 및 캐시 데이터(112)의 위치를 식별하기 위하여 산재 /모음 기능으로 메타데이터(111)를 로딩할 수 있다.
플로우는 그러면 스토리지 장치에서 휘발성 메모리로 라이트 캐시 데이터를 전달하는 블록(308)을 진행한다. 도 1의 FPW 예약 공간(134)의 내용은 FPW 서브 유닛(132)과 RAM 플러시 드라이버(130)에 의해 전달될 수 있고, 시스템 메모리(108)내의 파워 실패 전의 위치(pre-power failure location)에 복원될 수 있다. FPW 서브 유닛(132)은, FPW 예약 공간(134)으로부터 전달의 완료 시에, 시퀀스 종료를 RAM 플러시 드라이버(130)로 제공할 수 있다.
플로우는 그러면 데이터 포인터들 및 테이블들을 복원하는 블록(310)을 진행한다. RAM 플러시 드라이버(130)는 도 1의 응용 소프트웨어(110)의 실행 동안 시스템 메모리(108)를 억세싱 시에 호스트 프로세서(106)에 의해 사용되는 LBA 테이블들을 로딩할 수 있다. 데이터 포인터들은 데이터 지속 영역들(128)에 복원되었던 데이터에 관련되는 현재 실행 포인트를 나타낼 수 있다.
플로우는 그러면 파워 실패 검출 플래그를 리셋하는 블록(312)을 진행한다. RAM 플러시 드라이버(130)는 PF 조건 플래그(133)를 무효화 상태로 초기화하기 위해 FPW 서브 유닛(132)를 명령할 수 있다. PF 조건 플래그(133)의 초기화에 앞서, 파워 로스의 반복이 주 파워 실패 검출기(113)에 검출되면 휘발성 메모리 복원의 전체 절차(301)는 어떤 데이터도 손실 없이 반복될 수 있다. PF 조건 플래그(133)가 초기화된 후, RAM 플러시 드라이버(130)는 데이터 지속 영역들(128)의 내용을 보존하기 위해 도 2의 휘발성 메모리 플러시 절차(201)를 수행할 준비가 재개될 수 있다. 비휘발성 스토리지 장치(102)가 도 1의 표준 장치 드라이버(126)에 의해 인터페이스 동작들에 대한 준비가 실질적으로 되기 이전에, 데이터 지속 영역들(128)의 내용의 복원이 일어날 수 있음이 이해될 것이다. 비휘발성 스토리지 장치(102)가 일단 동작 준비이면, 호스트 프로세서(106)은 응용 소프트웨어(110)의 동일 단계에서 동작을 재개할 수 있다. 여기서 상기 동일 단계는 도 1의 파워 로스 검출 제어(116)의 행사 이전에 실행되었던 단계이다.
플로우는 그러면 스토리지 장치가 정상적으로 준비된 상태로 가도록 허여하는 블록(314)을 진행한다. 이것은, 파워 실패 체크 블록(304)이 발행되었던 PF 조건 플래그(133)을 검출하지 못하면, 또한 진입 포인트이다. 비휘발성 스토리지 장치(102)는 인터페이스의 표준 초기화 및 배경 작업들을 수행하기 위해 도 1의 FPW 서브 유닛(132)에서 표준 I/O 모듈(118)로 제어를 전환할 수 있다. 비휘발성 스토리지 장치(102)의 초기화 완료 시 표준 I/O 모듈(118)은 표준 장치 드라이버(126)에 대해 준비 조건을 나타낼 수 있다.
비휘발성 스토리지 장치(102)로부터의 캐시 데이터의 휘발성 메모리 복원(301)은 주 파워 실패 검출기(113)에 의해 검출된 파워 로스가 발생되지 않은 것처럼, 호스트 프로세서(106)가 동작을 재개하도록 할 수 있음이 확인되었다. 모든 일시적 데이터의 손상 없이 동일한 위치에서 응용 소프트웨어(110)을 재 시작함에 의해, 처리 타임의 많은 부분이 절감된다. 호스트 프로세서(106)가 데이터 지속 영역들(128)로서 지정하였던 시스템 메모리(108)의 부분들 만에 대해 휘발성 메모리 복원(301)을 제한함에 의해, 임의의 크리티컬(중요) 데이터는 전자 시스템(100)을 초기화하기 위해 요하는 타임을 급격히 증가시킴이 없이 복원될 수 있다.
이제 도 4를 참조하면, 본 발명의 실시 예에서 비휘발성 스토리지 장치의 파워 온 초기화 과정(401)의 플로우챠트가 보여진다. 도 1의 비휘발성 스토리지 장치의 파워 온 초기화 과정(401)의 플로우챠트는 스토리지 장치 파워 온 부트업 처리 블록(402)을 가리킨다. 상기 처리 블록(402)은 도 1의 표준 I/O 모듈(118)이 비휘발성 스토리지 장치(102)의 파워 온 초기화를 시작할 수 있는 블록이다. 플로우는 파워 실패 검출 블록(404)에 대한 체크를 진행할 수 있다. 표준 I/O 모듈(118)은 도 1의 PF 조건 플래그(133)을 리드할 수 있다. 이 동작은 PF 조건 플래그(133)가 행사되는 경우를 결정하기 위해서이다.
PF 조건 플래그(133)가 행사되면, 플로우는 인터페이스 상에 조건적 대기를 나타내는 블록(406)으로 진행한다. 표준 I/O 모듈(118)은 도 1의 FPW 서브 유닛(132)으로 과정의 제어를 패스할 수 있다. FPW 서브 유닛(132)은 도 1의 RAM 플러시 드라이버(130)와 통신을 개시하기 위하여, 도 1의 물리 인터페이스(104)내에 도 1의 FPW 서브 유닛 어드레스(131)를 초기화할 수 있다. 물리 인터페이스(104)내의 서브 유닛 어드레스(131)의 초기화는 비휘발성 스토리지 장치(102)가 특정 목적 통신만을 위해 준비되었다는 것을 나타낼 수 있다. 이 조건은 도 1의 데이터 지속 영역들(128)의 복원을 위한 조건적 대기로서 RAM 플러시 드라이버(130)에 의해 인식될 수 있지만, 도 1의 표준 장치 드라이버(126)에 의해서는 인식되지 않는다. 물리 인터페이스(104)내에 FPW 서브 유닛 어드레스(131)의 초기화에 의해 유발되는 이 조건적 대기는 도 3의 휘발성 메모리 복원(301)을 시작하기 위해 RAM 플러시 드라이버(130)를 트리거링할 수 있다.
플로우는 그러면 메타데이터와 캐시 데이터에 대한 예비 영역을 억세스하는 블록(408)을 진행한다. FPW 서브 유닛(132)은 도 1의 FPW 예약 공간(134)으로부터 메타데이터와 캐시 데이터를 불러올 수 있다. FPW 예약 공간(134)이 설정된 예비 용량을 가지는 고정된 위치일 수 있음이 이해될 것이다. 상기 고정된 위치는 데이터 지속 영역들(128)의 보존 및 복원을 위해서만 억세스되는 위치이다. FPW 예약 공간(134)은 PF 조건 플래그(133)가 초기화된 후 가비지 콜렉션 과정등과 같은 배경 과정에 의해서만 억세스되며, 비휘발성 스토리지 장치(102)의 정상 동작 동안 에는 제공되지 않는다.
플로우는 그러면 호스트로 메타데이터와 캐시 데이터를 전달하는 블록(410)을 진행한다. FPW 서브 유닛(132)은 초기적으로 메타데이터를 전달하기 위해 물리 인터페이스(104)에 의해 요청되는 프로토콜을 관찰할 수 있다. 상기 메타데이터에 뒤이어서는 데이터 지속 영역들(128)의 데이터 내용이 뒤따른다. FPW 서브 유닛(132)은 물리 인터페이스(104)에 의해 요구되는 완전한 전달 및 핸드쉐이크 과정들을 지원할 수 있다. FPW 서브 유닛(132)과 관련된 모든 전달은, RAM 플러시 드라이버(130)와 직접적으로 통신하는 물리 인터페이스(104)내에서 도 1의 FPW 서브 유닛 어드레스(131)를 통해, 일어날 수 있음이 이해될 것이다.
전달의 성공적 완료 시에, 플로우는 리셋 파워 실패 검출 플래그를 기다리는 블록(412)을 진행한다. FPW 서브 유닛(132)은 PF 조건 플래그(133)을 초기화하기 위해 RAM 플러시 드라이버(130)로부터 커맨드를 기다릴 수 있다. 이 커맨드는 데이터 지속 영역들(128)의 내용이 성공적으로 복원되었고, PF 조건 플래그(133)가 무효화될 수 있다는 것을 나타낸다. FPW 서브 유닛(132)은 그러면 도 1의 파워 로스 검출 제어(116)의 다음 행사를 위한 준비로 FPW 예약 공간(134)을 클리어 할 수 있다.
플로우는 그러면 스토리지 장치가 대기이고 온라인이라는 것을 나타내는 블록(414)을 진행한다. 이는 또한, 파워 실패 검출 블록(404)의 체크가 PF 조건 플래그(133)가 이미 초기화되었음을 결정하면, 일반적 파워다운 과정이 발생되었음을 나타내는 진입 포인트이다. 비휘발성 스토리지 장치(102)의 제어는 표준 I/O 모듈(118)로 패스될 수 있다. 상기 표준 I/O 모듈(118)은 정상 동작들에 대한 준비 시에 스토리지 장치 컨트롤러(120)의 초기화를 수행할 수 있다. 표준 I/O 모듈(118)은 물리 인터페이스(140)상의 도 1의 주 어드레스(121)를 초기화할 수 있다. 이 초기화는 비휘발성 스토리지 장치(102)가 표준 장치 드라이버(126)를 통해 데이터 교환을 개시할 준비가 되었다는 것을 나타내기 위함이다.
표준 I/O 모듈(118)이 비휘발성 스토리지 장치(102)의 정상 동작들을 지원하기 위해 동작적인 펌웨어를 실행하는 장치 프로세서를 포함할 수 있음이 이해될 것이다. 또한, FPW 서브 유닛(132)이 동일한 장치 프로세서 혹은 추가적인 장치 프로세서에서 실행하는 대안적 펌웨어 세트일 수 있음이 이해될 것이다.
이제 도 5를 참조하면, 본 발명의 추가 실시 예에서 전자 시스템(100)의 동작 방법(500)의 플로우챠트가 보여진다. 방법(500)은 블록(502)에서 호스트 프로세서에 의해, 시스템 메모리 내에서 데이터 지속 영역들을 식별하는 것을 포함하는 시스템 메모리를 억세스하는 것을 포함한다. 또한, 상기 방법(500)은 블록(504)에서 상기 시스템 메모리로부터 사용자 데이터를 비휘발성 스토리지 장치의 비휘발성 매체에 저장하고, 블록(506)에서 파워 로스 검출 제어를 상기 호스트 프로세서로 행사하는 것을 포함한다. 또한, 상기 방법(500)은 블록(508)에서, 상기 파워 로스 검출 제어가 행사될 때, 상기 데이터 지속 영역들의 내용을 상기 비휘발성 매체 내 상기 속경로 기입(FPW) 예비구역으로 이동시키기 위한 RAM 플러시 드라이버를 관여하는 것을 포함한다.
생성 방법, 프로세스, 장치, 소자, 제품 및/또는 시스템이 간단, 비용 절감, 비복잡, 고 다양성, 정확, 민감, 및 효과적이며, 이들은 준비, 효율, 및 경제적 제조를 위한 공지의 구성요소들과, 어플리케이션 및 활용을 적용시킴으로써 구현될 수 있다. 본 발명의 실시 예의 또 다른 중요한 측면은 비용 절감, 시스템 단순화, 및 성능을 증가시키는 여태까지의 추세를 가치 있게 지원하고 서비스하는 것이다.
본 발명의 실시 예의 이들 및 다른 값진 측면들은 결과적으로 기술들의 상태를 적어도 다음의 레벨로 더 진보시킬 수 있다는 것이다.
본 발명은 특정한 최상의 모드와 관련하여 설명되었지만, 많은 대안, 수정, 및 변형이 전술한 설명의 관점에서 당업자에게 명백한 것으로 이해되어야 한다. 따라서, 본 발명은 부속 청구항의 범위 내에 있는 모든 대안, 변형 및 변경을 포함하도록 의도된다. 첨부 도면에서 설명 또는 도시된 모든 사항은 예시적이고 비 제한적인 의미로 해석된다.

Claims (10)

  1. 호스트 프로세서;
    상기 호스트 프로세서에 의해 확인된 데이터 지속 영역들을 포함하며 상기 호스트 프로세서에 연결된 시스템 메모리;
    속경로 기입(FPW) 예비구역을 포함하며, 상기 시스템 메모리로부터의 사용자 데이터를 비휘발성 매체내에 저장하도록 구성된 비휘발성 스토리지 장치; 및
    상기 호스트 프로세서에 연결되고, 주파워 실패 검출기에 의해 파워 로스를 검출하고 파워 로스 검출 제어를 행사하도록 구성된 파워 모니터부를 구비하고,
    상기 호스트 프로세서는, 상기 파워 로스 검출 제어가 행사될 때, 상기 데이터 지속 영역들의 내용을 상기 비휘발성 매체 내에 상기 속경로 기입(FPW) 예비구역으로 이동시키기 위한 RAM 플러시 드라이버를 관여하도록 구성된 전자 시스템.
  2. 제1항에 있어서, 상기 호스트 프로세서는 RAM 플러시 드라이버를 관여하도록 구성되고, 상기 RAM 플러시 드라이버에 의해 억세스되는 상기 비휘발성 스토리지 장치의 속경로 기입(FPW) 서브 유닛 어드레스를 포함하는 전자 시스템.
  3. 제1항에 있어서, 상기 호스트 프로세서는, 비휘발성 스토리지 장치의 스토리지 장치 컨트롤러 내에서, 상기 FPW 예비구역을 제어하기 위해 제공된 FPW 서브 유닛을 억세스하기 위해 RAM 플러시 드라이버를 관여하도록 구성되는 전자 시스템.
  4. 제1항에 있어서, 상기 호스트 프로세서는 파워 온 시에 상기 FPW 예비구역으로부터의 상기 데이터 지속 영역들의 상기 내용을 복원하기 위한 RAM 플러시 드라이버를 관여하도록 구성된 전자 시스템.
  5. 제1항에 있어서, 상기 호스트 프로세서와 상기 비휘발성 스토리지 장치 간에, 주 어드레스 및 FPW 서브 유닛 어드레스를 제공하는 물리 인터페이스를 더 포함하는 전자 시스템.
  6. 제1항에 있어서, 상기 비휘발성 스토리지 장치 내에서 상기 사용자 데이터를 상기 표준 장치 드라이버를 경유하여 상기 시스템 메모리로 전달하도록 구성된 표준 I/O 모듈을 더 포함하는 전자 시스템.
  7. 제1항에 있어서, 상기 데이터 지속 영역들은 상기 파워 실패 검출 제어의 주장 시에 상기 FPW 예비구역으로 복사되고, 연속 파워 온시에 상기 시스템 메모리로 복원되는 전자 시스템.
  8. 표준 I/O 모듈 및 속경로 기입(FPW) 서브 유닛을 포함하는 스토리지 장치 컨트롤러; 및
    상기 속경로 기입(FPW) 서브 유닛에 의해서만 억세스되는 FPW 예비 구역을 포함하며, 상기 스토리지 장치 컨트롤러에 연결된 스토리지 매체를 포함하는 비휘발성 스토리지 장치.
  9. 제8항에 있어서, 상기 비휘발성 스토리지 장치는 상기 데이터 지속 영역들의 상기 내용을 나타내기 위해 FPW 서브 유닛에 의해 제어되고 상기 FPW 예비 구역에 저장되는 파워 실패(PF) 조건 플래그를 포함하는 비휘발성 스토리지 장치.
  10. 호스트 프로세서에 의해, 시스템 메모리 내에서 데이터 지속 영역들을 식별하는 것을 포함하는 상기 시스템 메모리를 억세스하고;
    상기 시스템 메모리로부터 사용자 데이터를 비휘발성 스토리지 장치의 비휘발성 매체에 저장하고;
    파워 로스 검출 제어를 상기 호스트 프로세서로 행사하고; 및
    상기 파워 로스 검출 제어가 행사될 때, 상기 데이터 지속 영역들의 내용을 상기 비휘발성 매체 내에 상기 속경로 기입(FPW) 예비구역으로 이동시키기 위한 RAM 플러시 드라이버를 관여하는 전자 시스템의 동작 방법.
KR1020160114505A 2015-12-09 2016-09-06 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 KR102329762B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562265047P 2015-12-09 2015-12-09
US62/265,047 2015-12-09
US15/063,302 US10049004B2 (en) 2015-12-09 2016-03-07 Electronic system with memory data protection mechanism and method of operation thereof
US15/063,302 2016-03-07

Publications (2)

Publication Number Publication Date
KR20170068373A true KR20170068373A (ko) 2017-06-19
KR102329762B1 KR102329762B1 (ko) 2021-11-23

Family

ID=59019988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160114505A KR102329762B1 (ko) 2015-12-09 2016-09-06 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US10049004B2 (ko)
KR (1) KR102329762B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200108367A (ko) * 2018-02-05 2020-09-17 마이크론 테크놀로지, 인크. 영구 메모리로의 cpu 캐시 플러싱

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198320B2 (en) * 2014-10-31 2019-02-05 Hewlett-Packard Development Company, L.P. Power-loss protection
TW201742063A (zh) * 2016-05-30 2017-12-01 慧榮科技股份有限公司 資料儲存方法及發生電源中斷事件後之系統初始化之方法
JP6851110B2 (ja) * 2016-10-31 2021-03-31 日立Astemo株式会社 電子制御装置
US10198354B2 (en) * 2017-03-21 2019-02-05 Intel Corporation Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory
KR102244921B1 (ko) * 2017-09-07 2021-04-27 삼성전자주식회사 저장 장치 및 그 리프레쉬 방법
DE102017124188A1 (de) * 2017-10-17 2019-04-18 Hyperstone Gmbh Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts
TWI757874B (zh) * 2020-09-17 2022-03-11 宏碁股份有限公司 記憶體儲存裝置的待機方法與記憶體儲存系統
KR20220066741A (ko) * 2020-11-16 2022-05-24 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
TWI798680B (zh) * 2021-04-14 2023-04-11 群聯電子股份有限公司 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
CN112965670B (zh) * 2021-04-22 2023-08-01 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元
US20230315317A1 (en) * 2022-04-04 2023-10-05 Seagate Technology Llc Partial block performance management

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080091801A (ko) * 2006-01-06 2008-10-14 어드밴스드 마이크로 디바이시즈, 인코포레이티드 동적으로 자기-감퇴하는 디바이스 아키텍쳐
KR20120021210A (ko) * 2010-08-31 2012-03-08 애플 인크. 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링
US20130132652A1 (en) * 2010-01-27 2013-05-23 Fusion-Io, Inc. Managing non-volatile media
US20140237147A1 (en) * 2012-08-31 2014-08-21 Fusion-Io, Inc. Systems, methods, and interfaces for adaptive persistence
US20140297929A1 (en) * 2010-09-28 2014-10-02 Fusion-Io, Inc. Non-volatile memory interface

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US20090046512A1 (en) * 2007-08-17 2009-02-19 Munif Farhan Halloush Reliability System for Use with Non-Volatile Memory Devices
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8489855B2 (en) 2010-05-07 2013-07-16 Ocz Technology Group Inc. NAND flash-based solid state drive and method of operation
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9478292B2 (en) * 2013-10-27 2016-10-25 Sandisk Technologies Llc Read operation for a non-volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080091801A (ko) * 2006-01-06 2008-10-14 어드밴스드 마이크로 디바이시즈, 인코포레이티드 동적으로 자기-감퇴하는 디바이스 아키텍쳐
US20130132652A1 (en) * 2010-01-27 2013-05-23 Fusion-Io, Inc. Managing non-volatile media
KR20120021210A (ko) * 2010-08-31 2012-03-08 애플 인크. 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링
US20140297929A1 (en) * 2010-09-28 2014-10-02 Fusion-Io, Inc. Non-volatile memory interface
US20140237147A1 (en) * 2012-08-31 2014-08-21 Fusion-Io, Inc. Systems, methods, and interfaces for adaptive persistence

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200108367A (ko) * 2018-02-05 2020-09-17 마이크론 테크놀로지, 인크. 영구 메모리로의 cpu 캐시 플러싱

Also Published As

Publication number Publication date
US20170168890A1 (en) 2017-06-15
KR102329762B1 (ko) 2021-11-23
US10049004B2 (en) 2018-08-14

Similar Documents

Publication Publication Date Title
KR102329762B1 (ko) 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
US9342423B2 (en) Selective restoration of data from non-volatile storage to volatile memory
US9043656B2 (en) Securing crash dump files
KR101749466B1 (ko) 비휘발성 메모리에 대한 데이터의 이벤트 트리거링된 저장
US8892831B2 (en) Memory subsystem hibernation
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
EP2966571B1 (en) Method for migrating memory data and computer therefor
US20170060697A1 (en) Information handling system with persistent memory and alternate persistent memory
JP2011164780A (ja) ディスクアレイ装置の制御方法及びディスクアレイ装置
US8411526B2 (en) Storage device, electronic device, and storage device control method
US8589647B2 (en) Apparatus and method for synchronizing a snapshot image
KR102219122B1 (ko) 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들
CN110780811B (zh) 数据保护方法、装置及存储介质
JP2010044635A (ja) ファイルサーバシステム及びファイルサーバシステム起動方法
KR20100039182A (ko) 반도체 디스크 장치, 그것을 포함하는 컴퓨팅 시스템, 그리고 그것의 동작 방법
US10025670B2 (en) Information processing apparatus, memory dump method, and storage medium
US10401935B2 (en) Storage device with a power source and persistent store that provides backup power to DRAM in a power loss event
US20220019506A1 (en) High Availability For Persistent Memory
US9684475B2 (en) Multi-mode hybrid storage drive
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
US20190042355A1 (en) Raid write request handling without prior storage to journaling drive
US8479040B2 (en) Storage system and control method
US10838818B2 (en) Memory persistence from a volatile memory to a non-volatile memory
JP6677021B2 (ja) 情報処理装置、情報処理方法、プログラム
EP4155894A1 (en) Technologies for memory mirroring across an interconnect

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant