KR102277728B1 - 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법 - Google Patents

데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법 Download PDF

Info

Publication number
KR102277728B1
KR102277728B1 KR1020170097088A KR20170097088A KR102277728B1 KR 102277728 B1 KR102277728 B1 KR 102277728B1 KR 1020170097088 A KR1020170097088 A KR 1020170097088A KR 20170097088 A KR20170097088 A KR 20170097088A KR 102277728 B1 KR102277728 B1 KR 102277728B1
Authority
KR
South Korea
Prior art keywords
data
core
storage
data information
write operation
Prior art date
Application number
KR1020170097088A
Other languages
English (en)
Other versions
KR20190013086A (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 삼성전자주식회사
Priority to KR1020170097088A priority Critical patent/KR102277728B1/ko
Priority to US15/944,858 priority patent/US10613782B2/en
Priority to CN201810841693.5A priority patent/CN109324932B/zh
Publication of KR20190013086A publication Critical patent/KR20190013086A/ko
Application granted granted Critical
Publication of KR102277728B1 publication Critical patent/KR102277728B1/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/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/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
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0727Error 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 storage system, e.g. in a DASD or network based storage system
    • 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
    • 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/2053Error 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 where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • 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
    • 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/0688Non-volatile semiconductor memory arrays
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에는 데이터 저장 시스템이 제공된다. 데이터 저장 시스템은, 제1 저장소(first storage) 및 제1 저장소와 물리적으로 분리된 제2 저장소(second storage)를 포함하는 저장 장치(storage device), 제1 저장소에 라이트(write)될 제1 데이터와 관련된 제1 데이터 정보를 포함하는 제1 코어, 제2 저장소에 라이트될 제2 데이터와 관련된 제2 데이터 정보를 포함하는 제2 코어, 제1 및 제2 코어가 액세스(access)할 수 있는 공유 메모리(shared memory), 및 외부에서 공급되는 전력이 데이터 저장 시스템의 최소 요구 전력 미만인 제1 모드에서, 예비 전력을 제1 및 제2 코어에 공급하는 비상 전력 시스템을 포함하되, 제1 모드에서 제2 코어의 라이트 동작 오류(error)가 감지되면, 제1 코어는 제2 데이터 정보를 제3 데이터 정보로 제1 저장소에 라이트하고, 제1 코어는 제2 데이터 정보를 참조하여 제2 데이터를 제3 데이터로 제1 저장소에 라이트하는 것을 포함한다.

Description

데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법{A SYSTEM AND METHOD FOR DATA STORAGE, AND A METHOD OF MANUFACTURING A SSD USING THIS}
본 발명은, 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법에 관한 것이다.
휘발성 메모리에 데이터를 저장하는 것은, 속도가 빠르다는 장점이 있지만, 전원이 오프(off)되면 휘발성 메모리에 저장된 데이터를 보존할 수 없는 단점이 있다. 그러나, 비휘발성 메모리는 영구적 또는 반 영구적으로 데이터를 보존할 수 있는 장점이 있는 반면, 속도가 상대적으로 느리다는 단점이 있다.
따라서, 휘발성 메모리를 버퍼로서 이용한 데이터 저장 시스템이 이용될 수 있다. 예를 들어, 작업 시 임시로 휘발성 메모리로 구현된 버퍼에 데이터를 저장하여 속도 측면에서 이득을 보되, 특정 주기로 버퍼에 존재하는 데이터를 비휘발성 메모리로 플러쉬(flush)하여 데이터를 저장할 수 있다. 다만, 외부 요인에 의하여 전원이 급작스럽게 오프되는 예를 들어, 파워 페일(power fail)이 발생할 경우, 버퍼에 존재하던 데이터가 손실될 수 있다. 이를 방지하기 위해, PLP(power loss protection)를 적용할 수 있다.
PLP가 적용된 경우, 파워 로스(power loss)시, 예비 전력을 공급하여 버퍼 플러쉬(buffer flush)동작을 수행함으로써 버퍼에 존재하는 데이터를 강제로 비휘발성 메모리로 이동시킬 수 있다. 다만, PLP가 적용된 경우에도, 내부 구성요소의 이상 동작으로 버퍼 플러쉬 동작이 제대로 수행되지 않는 경우가 발생하는데, 이와 같은 경우 버퍼에 존재하던 데이터가 유실되는 상황이 발생할 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 데이터 저장 시스템으로 공급되는 전력이 일정 수준 미만으로 떨어지고, 제1 코어가 라이트 동작을 수행하지 못하는 경우, 제2 코어는, 제1 코어가 라이트해야 할 데이터를 라이트하는 신뢰성 있게 데이터를 저장할 수 있는 데이터 저장 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 제1 코어가 라이트해야 할 데이터를 제2 코어가 라이트한 경우, 제1 코어가 다음 파워 사이클(power cycle)에서 해당 데이터를 다시 라이트하여, 데이터를 복구할 수 있는 데이터 저장 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 데이터 손실을 방지하는 솔리드 스테이트 드라이브(solid state drive: SSD) 제조 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 데이터 저장 시스템은, 제1 저장소(first storage) 및 제1 저장소와 물리적으로 분리된 제2 저장소(second storage)를 포함하는 저장 장치(storage device), 제1 저장소에 라이트(write)될 제1 데이터와 관련된 제1 데이터 정보를 포함하는 제1 코어, 제2 저장소에 라이트될 제2 데이터와 관련된 제2 데이터 정보를 포함하는 제2 코어, 제1 및 제2 코어가 액세스(access)할 수 있는 공유 메모리(shared memory), 및 외부에서 공급되는 전력이 데이터 저장 시스템의 최소 요구 전력 미만인 제1 모드에서, 예비 전력을 제1 및 제2 코어에 공급하는 비상 전력 시스템을 포함하되, 제1 모드에서 제2 코어의 라이트 동작 오류(error)가 감지되면, 제1 코어는 제2 데이터 정보를 제3 데이터 정보로 제1 저장소에 라이트하고, 제1 코어는 제2 데이터 정보를 참조하여 제2 데이터를 제3 데이터로 제1 저장소에 라이트한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 데이터 저장 시스템은, 제1 저장소(first storage) 및 제1 저장소와 물리적으로 분리된 제2 저장소(second storage)를 포함하는 저장 장치(storage device), 제1 저장소에 라이트(write)될 제1 데이터와 관련된 제1 데이터 정보를 포함하는 제1 코어, 제2 저장소에 라이트될 제2 데이터와 관련된 제2 데이터 정보를 포함하는 제2 코어, 및 제1 및 제2 코어가 액세스(access)할 수 있는 공유 메모리(shared memory)를 포함하되, 제2 코어의 라이트 동작 오류 기록이 감지되면, 제2 코어는, 제1 데이터 정보와 다르고 제1 저장소에 라이트되어 있는 제3 데이터 정보를 참조하여, 제1 데이터와 다르고 제1 저장소에 라이트되어 있는 제3 데이터를 제2 저장소에 라이트한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 데이터 저장 방법은, 외부에서 공급되는 전력이 데이터 저장 시스템의 최소 요구 전력 미만인 제1 모드에서, 미리 저장된 예비 전력을 제1 코어 및 제2 코어에 공급하고, 제1 및 제2 코어가 공유 메모리(shared memory)에 액세스(access)하여, 제1 코어는 제1 코어에 포함된 제1 데이터 정보를 참조하여, 공유 메모리에 존재하는 제1 데이터를, 저장 장치에 포함된 제1 저장소에 라이트하고, 제2 코어는 제2 코어에 포함된 제2 데이터 정보를 참조하여, 공유 메모리에 존재하는 제2 데이터를, 저장 장치에 포함되고 제1 저장소와 다른 제2 저장소에 라이트하는 것을 포함하되, 제2 코어의 라이트 동작 오류가 감지된 경우, 제1 코어는 제2 데이터 정보를 제3 데이터 정보로 제1 저장소에 라이트하고, 제1 코어는 제2 데이터 정보를 참조하여, 제2 데이터를 제3 데이터로 제1 저장소에 라이트한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 솔리드 스테이트 드라이브 제조 방법은, 적어도 하나의 다른 반도체 장치를 포함하는 기판이나 패키지의 일부로서, 제1 코어와 제2 코어를 제공하고, 제1 저장소(first storage) 및 제1 저장소와 물리적으로 분리된 제2 저장소(second storage)를 포함하는 저장 장치(storage)를 제공하고, 제1 및 제2 코어가 액세스(access)할 수 있는 공유 메모리(shared memory)를 제공하고, 예비 전력을 제1 및 제2 코어에 공급하는 커패시터(capacitor)를 제공하는 것을 포함하되, 외부에서 공급되는 전력이 솔리드 스테이트 드라이브의 최소 요구 전력 미만인 제1 모드에서, 커패시터는 예비 전력을 제1 및 제2 코어에 공급하고, 제2 코어의 라이트 동작 오류(error)가 감지되면, 제1 코어는 제2 데이터 정보를 제3 데이터 정보로 제1 저장소에 라이트하고, 제1 코어는 제2 데이터 정보를 참조하여, 제2 데이터를 제3 데이터로 제1 저장소에 라이트한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템을 설명하기 위한 예시적인 블록도이다.
도 2는 본 발명의 몇몇 실시예들에 따른 코어의 구성을 설명하기 위한 예시적인 블록도이다.
도 3은 본 발명의 몇몇 실시예들에 따른 공유 메모리를 설명하기 위한 예시적인 블록도이다.
도 4는 본 발명의 몇몇 실시예들에 따른 저장소를 설명하기 위한 예시적인 블록도이다.
도 5는 본 발명의 몇몇 실시예들에 따라, 예비 전력 공급 상태에서, 데이터 저장 시스템이 데이터를 라이트하는 것을 설명하기 위한 예시적인 블록도이다.
도 6은 본 발명의 몇몇 실시예들에 따른 코어의 라이트 동작 오류를 설명하기 위한 예시적인 블록도이다.
도 7 및 도 8은 본 발명의 몇몇 실시예들에 따른, 코어의 라이트 동작 오류가 있는 경우에서의 데이터를 라이트하는 방법을 설명하기 위한 예시적인 순서도와 블록도이다.
도 9 내지 도 10b는 본 발명의 몇몇 실시예에 따른 제2 코어의 라이트 동작 오류를 감지하는 방법을 설명하기 위한 예시적인 순서도 및 도면이다.
도 11 및 도 12는 본 발명의 몇몇 실시예들에 따른 데이터 복구 과정을 설명하기 위한 예시적인 순서도 및 블록도이다.
도 13은 본 발명의 몇몇 실시예에 따른 라이트 동작 오류 기록을 감지하는 방법을 설명하기 위한 예시적인 순서도이다.
도 14는 본 발명의 다른 몇몇 실시예들에 따른 데이터 저장 시스템을 설명하기 위한 예시적인 블록도이다.
도 15 및 도 16은 도 14의 데이터 저장 시스템에서, 코어의 라이트 동작 오류가 있는 경우에서의 데이터를 라이트하는 방법을 설명하기 위한 예시적인 순서도와 블록도이다.
도 17은 본 발명의 다른 몇몇 실시예들에 따른 데이터 복구 과정을 설명하기 위한 예시적인 블록도이다.
도 18는 본 발명의 몇몇 실시예들에 따른 솔리드 스테이트 드라이브의 제조 방법에 대한 예시적인 순서도이다.
도 1은 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템을 설명하기 위한 예시적인 블록도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(data storage system, 100)은 제1 코어(first core, 110_1), 제2 코어(second core, 110_2), 공유 메모리(shared memory, 120), 저장 장치(storage device, 130), 및 비상 전력 시스템(emergency power system, 140)을 포함할 수 있다. 이러한 데이터 저장 시스템(100)은 예를 들어, 솔리드 스테이트 드라이브(solid state drive: SSD)일 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
본 발명의 몇몇 실시예들에 따르면, 호스트로부터 명령이 입력되면, 제1 코어(110_1) 및 제2 코어(110_2)는 해당되는 명령을 수행할 수 있다. 예를 들어, 제1 코어(110_1) 및 제2 코어(110_2)는 호스트로부터의 라이트 명령(write operation)에 의해 라이트 동작을 수행할 수 있다. 본 발명의 몇몇 실시예들에 따른 제1 코어(110_1) 및 제2 코어(110_2)를 더 구체적으로 설명하기 위해, 도 2를 참조하여 설명하도록 한다.
도 2는 본 발명의 몇몇 실시예들에 따른 코어의 구성을 설명하기 위한 예시적인 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 몇몇 실시예들에 따른 제1 코어(110_1)와, 제1 코어(110_1)와 다른 제2 코어(110_2)는 상호간에 직접 액세스(access)할 수 없다. 제1 코어(110_1)는 제1 TCM(tightly coupled memory, 111_1)을 포함할 수 있다. 본 발명의 몇몇 실시예들에 따른 제2 코어(110_2)는 제2 TCM(111_2)를 포함할 수 있다.
본 발명의 제1 TCM(111_1) 및 제2 TCM(111_2)은 각각 제1 코어(110_1) 및 제2 코어(110_2)에 포함되는, 공유 불가능한 캐쉬 메모리로서 이용될 수 있고, 제1 TCM(111_1) 및 제2 TCM(111_2)은 각각 제1 데이터 정보(112_1) 및 제2 데이터 정보(112_2)를 포함할 수 있다. 본 발명의 제1 TCM(111_1) 및 제2 TCM(111_2)은 SRAM 또는 Faster-SRAM으로 구현될 수 있으나, 이에 제한되는 것은 아니다.
본 발명의 몇몇 실시예들에 따르면, 제1 데이터 정보(112_1)는 제1 데이터(120_1)와 관련된 내용을 포함할 수 있다. 또한, 제2 코어(110_2)의 제2 TCM(111_2)에 포함된 제2 데이터 정보(112_2)는 제2 데이터(120_2)와 관련된 내용을 포함할 수 있다.
예를 들어, 제1 데이터 정보(112_1)는 제1 데이터(120_1)의 제1 유효성 정보(114_1), 제1 데이터(120_1)의 제1 공유 메모리 어드레스(116_1), 제1 데이터(120_1)의 제1 저장소 어드레스(118_1) 및/또는 제1 데이터(120_1)의 종류에 관한 정보를 포함할 수 있다. 마찬가지로, 예를 들어, 제2 데이터 정보(112_2)는 제2 데이터(120_2)의 제2 유효성 정보(114_2), 제2 데이터(120_2)의 제2 공유 메모리 어드레스(116_2), 제2 데이터(120_2)의 제2 저장소 어드레스(118_2) 및/또는 제2 데이터(120_2)의 종류에 관한 정보를 포함할 수 있다. 그러나, 본 발명의 제1 데이터 정보(112_1)와 제2 데이터 정보(112_2)가 이에 제한되는 것은 아니다.
예를 들어, 제1 유효성 정보(114_1) 및 제2 유효성 정보(114_2)는 라이트될 저장소(130_1, 130_2)의 유효(valid) 페이지에 관한 정보를 포함할 수 있다. 제1 공유 메모리 어드레스(116_1) 및 제2 공유 메모리 어드레스(116_2)는 각각 제1 데이터(120_1)의 어드레스와 제2 데이터(120_2)의 어드레스를 포함할 수 있다. 제1 저장소 어드레스(118_1) 및 제2 저장소 어드레스(118_2)는 각각 제1 데이터(120_1)가 라이트되어야 할 제1 저장소(130_1) 및 제2 데이터(120_2)가 라이트되어야 할 제2 저장소(130_2)의 어드레스를 포함할 수 있다.
비록, 도 1 및 도 2에, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(100)이 2개의 코어(110_1, 110_2)를 갖는 것으로 도시하였으나, 본 발명이 이에 제한되는 것은 아니다. 예를 들어, 본 발명의 데이터 저장 시스템(100)은 듀얼 코어, 쿼드 코어, 헥사 코어, 또는 옥타 코어를 포함할 수 있다. 그러나, 이하에서는 설명의 편의를 위해, 본 발명의 데이터 저장 시스템(100)이 2개의 코어(110_1, 110_2)를 갖는 경우를 가정하여 설명하도록 한다.
다시 도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 공유 메모리(120)는 제1 코어(110_1) 및 제2 코어(110_2)와 저장 장치(130)사이의 버퍼 메모리로서 이용될 수 있다. 예를 들어, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(100)에 데이터가 라이트될 때, 라이트될 데이터는 우선 버퍼로서 공유 메모리(120)에 저장할 수 있다. 본 발명의 몇몇 실시예들에 따른 공유 메모리(120)를 더욱 구체적으로 설명하기 위해, 도 3을 참조하여 설명하도록 한다.
도 3은 본 발명의 몇몇 실시예들에 따른 공유 메모리를 설명하기 위한 예시적인 블록도이다.
도 1 및 도 3을 참조하면, 본 발명의 몇몇 실시예들에 따른 공유 메모리(120)는 버퍼 영역(122)과 예비 영역(124)을 포함할 수 있다. 버퍼 영역(122)은 제1 데이터(120_1) 및 제2 데이터(120_2)를 포함할 수 있다. 제1 데이터(120_1) 및 제2 데이터(120_2)는 각각 복수개의 페이지(page, 126)를 포함할 수 있다. 달리 말해서, 제1 데이터(120_1) 및 제2 데이터(120_2)는 각각 복수개의 페이지(126) 단위로 구성될 수 있다. 즉, 본 명세서에서 제1 데이터(120_1) 및 제2 데이터(120_2)는 복수개의 페이지(126)의 집합을 의미할 수 있다.
본 발명의 몇몇 실시예들에 따른 공유 메모리(120)는 휘발성 메모리로 구현될 수 있다. 휘발성 메모리는 DRAM(Dynamic Ramdom Access Memory), SRAM(Static Random Access Memory) 또는 DDR SDRAM (Double Data Rate Synchronous DRAM)일 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
도 1 및 도 3을 참조하면, 제1 코어(110_1)와 제2 코어(110_2)는 공유 메모리(120)에 액세스할 수 있다. 따라서, 제1 코어(110_1)와 제2 코어(110_2)는 공유 메모리(120)의 버퍼 영역(122) 및/또는 예비 영역(124) 어느 영역에도 액세스할 수 있다. 예를 들어, 제1 코어(110_1)는 제1 데이터(120_1)는 물론, 제2 데이터(120_2)에도 액세스할 수 있다. 마찬가지로, 제2 코어(110_2)는 제2 데이터(120_2)는 물론, 제1 데이터(120_1)에도 액세스할 수 있다. 뿐만 아니라, 제1 코어(110_1) 및 제2 코어(110_2)는 공유 메모리(120)의 예비 영역(124)에 액세스할 수 있다. 결론적으로, 제1 코어(110_1) 및 제2 코어(110_2)는, 각 코어(110_1, 110_2)가 포함하는 데이터 정보(112_1, 112_2)에 포함된 공유 메모리 어드레스(116_1, 116_2)에 의해, 공유 메모리(120)의 어떤 영역에 액세스할지 정해질 수 있다.
다시 도 1을 참조하면, 공유 메모리(120)는 제1 데이터(120_1) 및 제2 데이터(120_2)를 특정 신호 또는 특정 주기에 따라 공유 메모리(120)에 저장된 데이터를 저장 장치(130)로 플러쉬(flush)할 수 있다. 예를 들어, 특정 신호는 제1 코어(110_1) 및 제2 코어(110_2)로부터의 신호를 의미할 수 있다. 본 발명의 몇몇 실시예들에 따른 저장 장치(130)를 더욱 구체적으로 설명하기 위해, 도 4를 참조하도록 한다.
도 4는 본 발명의 몇몇 실시예들에 따른 저장소를 설명하기 위한 예시적인 블록도이다.
도 4를 참조하면, 본 발명의 몇몇 실시예들에 따른 저장 장치(130)는 제1 저장소(130_1)와 제2 저장소(130_2)를 포함할 수 있다. 본 명세서에서, 제1 저장소(130_1)는 제1 코어(110_1)가 데이터를 라이트하는 저장소를 의미한다. 마찬가지로, 제2 저장소(130_2)는 제2 코어(110_2)가 데이터를 라이트하는 저장소를 의미한다. 본 명세서에서, 제1 저장소(130_1) 및 제2 저장소(130_2)는 각각 복수개의 기억 장치로 구현될 수 있다. 또한, 본 명세서에서, 저장 장치(130)라고 함은 하나의 반도체 장치를 의미하는 것이 아니라, 영구적/반영구적으로 데이터를 저장할 수 있는 저장소들의 집합을 의미한다.
예를 들어, 기억 장치로 낸드 플래시 메모리(NAND flash memory)를 사용한다고 가정했을 때, 제1 코어(110_1)가 데이터를 4개의 낸드 플래시 메모리에 라이트할 수 있다면, 이 4개의 낸드 플래시 메모리는 본 발명에서 제1 저장소(130_1)로 명명될 것이다. 마찬가지로, 제2 코어(110_2)가 데이터를 제1 저장소(130_1)와 다른 4개의 낸드 플래시 메모리에 라이트할 수 있다면, 이 4개의 낸드 플래시 메모리는 본 발명에서 제2 저장소(130_2)로 명명할 것이다. 여기에서, 제1 저장소(130_1)와 제2 저장소(130_2)의 집합을, 본 명세서에서는 편의상 저장 장치(130)라 명명하여 사용한다.
제1 저장소(130_1) 및 제2 저장소(130_2)는 저장 영역(132_1, 132_2)과 예비 영역(134_1, 134_2)를 포함할 수 있다. 저장 영역은 복수개의 페이지(136) 단위로 구성될 수 있다. 예비 영역(134_1, 134_2)은 예를 들어, 오버 프로비저닝(over provisioning)을 위한 영역일 수 있다. 비록 도 4에는 각 저장소에 하나의 저장 영역과 하나의 예비 영역을 갖는 것으로 도시하였으나, 본 발명이 이에 제한되는 것은 아니다. 예를 들어, 제1 저장소(130_1)가 4개의 낸드 플래시 메모리를 포함하고, 각 낸드 플래시 메모리가 저장 영역과 오버 프로비저닝 영역을 가지는 경우, 제1 저장소(130_1)는 4개의 저장 영역과 4개의 예비 영역을 가질 수 있다.
본 발명의 몇몇 실시예들에 따른 저장 장치(130)는 비휘발성 메모리(non-volatile memory)로 구현될 수 있다. 예를 들어, 본 발명의 저장 장치(130)는 EEPROM(Electrically Erasable Programmable Read-Only Memory), FRAM(Ferroelectrics Random Access Memory), PRAM(Phase-change Random Access Memory), MRAM(Magnetic Random Access Memory), RRAM(Resistive Random Access Memory), 낸드 플래시 메모리(NAND flash memory), 노어 플래시 메모리(NOR flash memory) 및/또는 이들의 조합일 수 있으나, 이에 한정되는 것은 아니다.
도 1 내지 도 4를 참조하여, 본 발명의 복수의 코어(110_1, 110_2)가 복수의 데이터(120_1, 120_2)를 복수의 저장소(130_1, 130_2)에 라이트하는 동작을 설명한다. 제1 코어(110_1)가 제1 데이터(120_1)를 제1 저장소(130_1)에 라이트할 수 있다. 또한, 제2 코어(110_2)가 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트할 수 있다. 제1 데이터(120_1) 및 제2 데이터(120_2)를 각각 제1 저장소(130_1) 및 제2 저장소(130_2)에 라이트 하는 것은, 공유 메모리(120)에 일시적으로 저장되어 있는 제1 데이터(120_1) 및 제2 데이터(120_2)를 비휘발성 메모리인 제1 저장소(130_1) 및 제2 저장소(130_2)에 각각 저장하는 것을 의미할 수 있다. 이때, 제1 코어(110_1)는 제1 데이터 정보(112_1)를 참조하여, 제1 데이터(120_1)를 제1 저장소(130_1)에 라이트할 수 있다. 또한, 제2 코어(110_2)는 제2 데이터 정보(112_2)를 참조하여, 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트할 수 있다.
예를 들어, 제1 코어(110_1)는 제1 공유 메모리 어드레스(116_1)를 이용하여 상기 공유 메모리(120) 내에서 제1 데이터(120_1)의 위치를 찾고, 제1 저장소 어드레스(118_1)가 가리키는 제1 저장소(130_1)에 라이트할 수 있다. 이때, 제1 데이터(120_1)는 복수개의 페이지(126) 단위로 구성될 수 있고, 각 페이지를 제1 저장소(130_1)에 페이지(136) 단위로 라이트할 수 있다.
마찬가지로, 제2 코어(110_2)는 제2 공유 메모리 어드레스(116_2)를 이용하여 상기 공유 메모리(120) 내에서 제2 데이터(120_2)의 위치를 찾고, 제2 저장소 어드레스(118_2)가 가리키는 제2 저장소(130_2)에 라이트할 수 있다. 이때, 제2 데이터(120_2)는 복수개의 페이지(126) 단위로 구성될 수 있고, 각 페이지를 제2 저장소(130_2)에 페이지(136) 단위로 라이트할 수 있다.
다시 도 1을 참조하면, 비상 전력 시스템(140)은, 외부로부터 데이터 저장 시스템(100)에 공급되는 전력이 데이터 저장 시스템(100)이 구동하기 위한 최소 전력 미만으로 공급되는 경우, 비상 전력 시스템(140)에 예비 전력을 공급할 수 있다. 또한, 전력 시스템(140)은, 데이터 저장 시스템(100)이 외부로부터 전력을 공급 받을 때, 그 전력의 일부를 저장할 수 있고 이를 예비 전력으로 출력할 수 있다. 본 발명의 몇몇 실시예에 따른 비상 전력 시스템(140)은 커패시터(capacitor), 및/또는 UPS(uninterruptible power supply)로 구현될 수 있으나 이에 제한되는 것은 아니다.
도 5는 본 발명의 몇몇 실시예들에 따라, 예비 전력 공급 상태에서, 데이터 저장 시스템이 데이터를 라이트하는 것을 설명하기 위한 예시적인 블록도이다.
이하에서 설명의 편의를 위해 본 발명의 공유 메모리(120)가 DRAM으로 구현된 예로서 설명할 것이나, 실시예들에서 공유 메모리가(120) DRAM으로 구현되는 것에 한정되는 것은 아니다. 본 발명의 기술분야에서 통상의 지식을 가진자가 알고있듯이, DRAM은 휘발성 메모리이므로, 외부로부터의 전원 공급이 원활하지 않은 경우 DRAM에 포함된 데이터는 보관되지 않아, 데이터의 유실이 생길 수 있다. 따라서, 도 5를 참조하여, 외부로부터의 전원 공급이 원활하지 않은 경우 DRAM에 포함된 데이터를 비휘발성 메모리로 구현될 수 있는 저장 장치(130)에 라이트하여, 데이터를 저장하는 과정에 대해 설명한다.
도 5를 참조하면, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(100)은 외부로부터 전력을 공급받아 구동한다. 그러나, 외부 요인에 의해 외부로부터의 전력이 데이터 저장 시스템(100)이 구동하기 위한 최소 요구 전력 미만으로 공급되거나, 외부로부터의 전력이 차단된 경우, 본 발명의 비상 전력 시스템(140)이 제1 코어(110_1) 및 제2 코어(110_2)로 예비 전력을 공급할 수 있다.
예비 전력이 제1 코어(110_1)에 공급되면, 제1 코어(110_1)는 강제적으로 제1 데이터(120_1)를 제1 저장소(130_1)에 라이트할 수 있다. 예를 들어, 제1 코어(110_1)는 제1 데이터 정보(112_1)에 포함된 제1 공유 메모리 어드레스(116_1)를 참조하여 제1 데이터(120_1)에 액세스할 수 있다. 또한, 제1 코어(110_1)는 제1 데이터 정보(112_1)에 포함된 제1 저장소 어드레스(118_1)를 참조하여, 제1 데이터(120_1)를 제1 저장소(130_1)에 라이트할 수 있다.
마찬가지로, 예비 전력이 제2 코어(110_2)에 공급되면, 제2 코어(110_2)는 강제적으로 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트할 수 있다. 예를 들어, 제2 코어(110_2)는 제2 데이터 정보(112_2)에 포함된 제2 공유 메모리 어드레스(116_2)를 참조하여 제2 데이터(120_2)에 액세스할 수 있다. 또한, 제2 코어(110_2)는 제2 데이터 정보(112_2)에 포함된 제2 저장소 어드레스(118_2)를 참조하여, 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트할 수 있다.
예비 전력이 공급되는 상태에서 제1 코어(110_1)와 제2 코어(110_2)가 라이트를 완료하면, 예비 전력의 공급을 중단할 수 있다. 제1 코어(110_1)와 제2 코어(110_2)가 DRAM에 포함되어 있는 제1 데이터(120_1)와 제2 데이터(120_2)를 각각 비휘발성 메모리로 구현되는 제1 저장소(130_1)와 제2 저장소(130_2)에 강제적으로 라이트함으로써, 전원 공급이 중단되어도 신뢰성 있게 데이터를 저장할 수 있다.
도 6은 본 발명의 몇몇 실시예들에 따른 코어의 라이트 동작 오류를 설명하기 위한 예시적인 블록도이다.
도 6을 참조하면, 앞서 설명 하였듯이, 외부 요인에 의해 외부로부터의 전력이 데이터 저장 시스템(100)이 구동하기 위한 최소 요구 전력 미만으로 공급되거나, 외부로부터의 전력이 차단된 경우, 본 발명의 비상 전력 시스템(140)이 제1 코어(110_1) 및 제2 코어(110_2)로 예비 전력을 공급하고, 제1 코어(110_1) 및 제2 코어(110_2)는 라이트 동작을 수행할 수 있다.
이때, 제2 코어(110_2)가 라이트 동작 오류로 인해 제2 데이터(120_2)를 제2 저장소(130_2)에 저장하지 못한 경우, 예비 전력마저 공급이 중단되면, 제2 데이터(120_2)는 유실될 수 있다. 다시 말해서, 제2 코어(110_2)의 라이트 동작 오류로 인해, DRAM에 저장되어 있는 제2 데이터(120_2)가 비휘발성 메모리로 구현될 수 있는 제2 저장소(130_2)로 라이트될 수 없기 때문에, 제2 데이터(120_2)는 외부로부터의 전력 또는 예비 전력의 차단으로 인해 휘발될 수 있다.
제2 코어(110_2)의 라이트 동작 오류는, 예를 들어, 어썰트(assert), 코어 행(core hang) 및/또는 제2 저장소(130_2)의 이상동작을 포함할 수 있다. 예를 들어, 코어 행으로 인해, 제2 코어(110_2)에 입력된 라이트 명령을 수행 하지 못하거나, 제2 저장소(130_2)에 오류가 발생하여, 제2 데이터(120_2)가 라이트되지 못하는 경우 등 제2 코어(110_2)가 제2 데이터(120_2)를 라이트하지 못하는 모든 경우를 포함할 수 있다.
도 7 및 도 8은 본 발명의 몇몇 실시예들에 따른, 코어의 라이트 동작 오류가 있는 경우에서의 데이터를 라이트하는 방법을 설명하기 위한 예시적인 순서도와 블록도이다.
설명의 편의를 위해, 앞서 설명한 내용과 중복되는 설명은 가급적 피하고, 차이점을 위주로 설명하도록 한다. 또한, 설명의 편의를 위해 앞서 사용한 도면부호를 사용하여 설명하도록 한다.
도 7을 참조하면, 외부 요인에 의해 외부로부터의 전력이 데이터 저장 시스템(100)이 구동하기 위한 최소 요구 전력 미만으로 공급되거나, 외부로부터의 전력이 차단된 경우(S700), 본 발명의 비상 전력 시스템(140)이 예비 전력을 공급한다(S710). 예비 전력이 공급되면, 제1 코어(110_1) 및 제2 코어(110_2)는 각각 제1 데이터 정보(112_1) 및 제2 데이터 정보(112_2)를 공유 메모리(130)에 제공한다(S720).
구체적으로, 예를 들어, 도 8을 참조하여 설명한다. 도 8을 참조하면, 예비 전력이 제1 코어(110_1)에 공급되면, 제1 코어(110_1)는 제1 코어(110_1)에 포함된 제1 데이터 정보(112_1)를 공유 메모리(120)에 제공할 수 있다. 제2 코어(110_2) 역시, 제2 코어(110_2)에 포함된 제2 데이터 정보(112_2)를 공유 메모리(120)에 제공할 수 있다. 이때, 제1 코어(110_1)는 제1 코어(110_1)에 포함된 제1 데이터 정보(112_1)를, 공유 메모리(120)의 제1 데이터(120_1) 및 제2 데이터(120_2) 이외의 버퍼 영역(도 3의 122) 또는 공유 메모리(120)의 예비 영역(도 3의 124)에 제공할 수 있다. 결과적으로, 제1 코어(110_1)와 제2 코어(110_2)가 공유 메모리(120)로 제1 데이터 정보(112_1)와 제2 데이터 정보(112_2)를 제공함으로써, 제1 코어(110_1)는 제2 데이터 정보(112_2)를 참조할 수 있고, 제2 코어(110_2)는 제1 데이터 정보(112_1)를 참조할 수 있게 된다. 다시 말해서, 제1 코어(110_1)와 제2 코어(110_2)가 공유 메모리(120)로 제1 데이터 정보(112_1)와 제2 데이터 정보(112_2)를 제공함으로써, 제1 데이터 정보(112_1)와 제2 데이터 정보(112_2)는 공유가 가능해질 수 있다.
다시 도 7을 참조하면, 제1 코어(110_1) 및 제2 코어(110_2)는 각각 제1 데이터(120_1) 및 제2 데이터(120_2)를 각각 제1 저장소(130_1) 및 제2 저장소(130_2)에 라이트한다(S730).
구체적으로, 예를 들어, 도 8을 참조하면, 제1 코어(110_1)는 제1 코어(110_1)에 포함된 제1 데이터 정보(112_1) 또는 공유 메모리(120)에 제공된 제1 데이터 정보(112_1)를 참조하여, 제1 데이터(120_1)를 제1 저장소(130_1)에 라이트할 수 있다. 마찬가지로, 제2 코어(110_2)는 제2 코어(110_2)에 포함된 제2 데이터 정보(112_2) 또는 공유 메모리(120)에 제공된 제2 데이터 정보(112_2)를 참조하여, 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트할 수 있다.
다시 도 7을 참조하면, 제2 코어(110_2)의 라이트 동작 오류가 없는 경우, 즉, 제1 코어(110_1) 및 제2 코어(110_2)가 각각 제1 데이터(120_1) 및 제2 데이터(120_2)를 저장 장치(130)에 라이트를 완료한 경우(S740), 예비 전력의 공급을 중단한다(S760).
만약, 제2 코어(110_2)의 라이트 동작 오류가 감지되면(S740), 제1 코어(110_1)는 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 제1 저장소(130_1)에 라이트한다(S750).
구체적으로, 예를 들어, 도 8을 참조하면, 제2 코어(110_2)가 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트하지 못한 경우, 다시 말해서, 제1 코어(110_1)가 제2 코어(110_2)의 라이트 동작 오류를 감지한 경우, 제1 코어(110_1)가 제2 데이터 정보(112_2)를 제3 데이터 정보(112_3)로 제1 저장소(130_1)에 라이트할 수 있다. 또한, 제1 코어(110_1)는 제2 데이터 정보(112_2)를 참조하여, 제2 데이터(120_2)를 제3 데이터(112_3)로 제1 저장소(130_1)에 라이트할 수 있다.
예를 들어, 제1 코어(110_1)는 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 각각 제3 데이터 정보(112_3)와 제3 데이터(120_3)로 제1 저장소(130_1)의 제1 저장 영역(132_1)에 라이트 할 수 있다.
예를 들어, 제1 코어(110_1)는 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 각각 제3 데이터 정보(112_3)와 제3 데이터(120_3)로 제1 저장소(130_1)의 제1 예비 영역(134_1)에 라이트할 수 있다.
예를 들어, 제1 코어(110_1)는 제2 데이터 정보(112_2)를 제3 데이터 정보(112_3)로 제1 저장소(130_1)의 제1 예비 영역(134_1)에 라이트하고, 제1 코어(110_1)는 제2 데이터(120_2)를 제3 데이터(120_3)로 제1 저장소(130_1)의 저장 영역(132_1)에 라이트할 수 있다.
제1 코어(110_1)가 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 제3 데이터 정보(112_3)와 제3 데이터(120_3)로 제1 저장소(130_1)에 라이트할 때, 이후 데이터 복구 과정에 이용하기 위해, 제1 코어(110_1)는 제2 데이터 정보(112_2)와 제2 데이터(120_2)임을 나타내기 위한 제2 데이터 정보(112_2)의 시그니처 비트(signature bit)와 제2 데이터(120_2)의 시그니처 비트를 함께 라이트 할 수 있다.
예를 들어, 제3 데이터 정보(112_3)는 제2 데이터 정보(112_2)와 제2 데이터 정보(112_2)의 시그니처 비트를 포함할 수 있다. 마찬가지로, 제3 데이터(120_3)는 제2 데이터(120_2)와 제2 데이터(120_2)의 시그니처 비트를 포함할 수 있다. 그러나, 본 발명이 이에 제한되지는 않는다. 예를 들어, 제3 데이터 정보(112_3)는 제2 데이터 정보(112_2)와 동일할 수 있고, 제3 데이터(120_3)는 제2 데이터(120_2)와 동일할 수 있다.
예를 들어, 제1 코어(110_1)는 제2 데이터(120_2), 제2 데이터(120_2)의 시그니처 비트, 제2 데이터 정보(112_2), 및 제2 데이터 정보(112_2)의 시그니처 비트를 제1 저장소(130_1)의 제1 저장 영역(132_1)에 라이트할 수 있다.
예를 들어, 제1 코어(110_1)는 제2 데이터(120_2), 제2 데이터(120_2)의 시그니처 비트, 제2 데이터 정보(112_2), 및 제2 데이터 정보(112_2)의 시그니처 비트를 제1 저장소(130_1)의 제1 예비 영역(134_1)에 라이트할 수 있다.
예를 들어, 제1 코어(110_1)는 제2 데이터(120_2) 및 제2 데이터(120_2)의 시그니처 비트를 제1 저장소(130_1)의 제1 저장 영역(132_1)에 라이트하고, 제1 코어(110_1)는 제2 데이터 정보(112_2) 및 제2 데이터 정보(112_2)의 시그니처 비트를 제1 저장소(130_1)의 제1 예비 영역(134_1)에 라이트할 수 있다.
예를 들어, 제2 데이터(120_2)의 시그니처 비트는 제2 데이터(120_2)가 제2 코어(110_2)와 관련되어 있음을 표시하는 비트이거나 제2 데이터(120_2)가 제2 저장소(130_2)에 라이트될 데이터임을 표시하는 비트이거나 이들의 조합일 수 있다. 또한, 예를 들어, 제2 데이터 정보(112_2)의 시그니처 비트는 제2 데이터(112_2)가 제2 코어(110_2)와 관련되어 있음을 표시하는 비트이거나 제2 데이터 정보(112_2)가 제2 저장소(130_2)에 라이트될 데이터와 관련된 정보임을 표시하는 비트이거나 이들의 조합일 수 있다.
다시 도 7을 참조하면, 제1 코어(110_1)가 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 제1 저장소(130_1)에 라이트하는 것을 완료한 경우, 예비 전력의 공급을 중단한다(S760).
정리하면, 예비 전력이 공급되면, 제1 코어(110_1)와 제2 코어(110_2)는 각각 제1 데이터 정보(112_1)와 제2 데이터 정보(112_2)를 공유 메모리(120)에 제공할 수 있다. 이때, 제2 코어(110_2)의 라이트 동작 오류가 감지되면, 제1 코어(110_1)는 공유 메모리(120)에 제공된 제2 데이터 정보(112_2)를 제3 데이터 정보(112_3)로 제1 저장소(130_1)에 라이트하고, 제1 코어(110_1)는 공유 메모리(120)에 제공된 제2 데이터 정보(112_2)를 참조하여 제2 데이터(120_2)를 제3 데이터(120_3)로 제1 저장소(130_1)에 라이트할 수 있다. 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템을 통해, 외부로부터의 전력 또는 예비 전력의 공급이 차단되는 경우(또는, 최소 요구 전력 미만으로 공급되는 경우) 유실될 수 있는 제2 데이터(120_2)를 제1 코어(110_1)가 저장 장치(130)에 라이트함으로써, 데이터의 유실을 막을 수 있다.
도 9 내지 도 10b는 본 발명의 몇몇 실시예에 따른 제2 코어의 라이트 동작 오류를 감지하는 방법을 설명하기 위한 예시적인 순서도 및 도면이다.
도 9를 참조하면, 제1 코어(110_1)는 제2 코어(110_2)가 미리 정한 시점내에 라이트 동작을 완료하는지 확인할 수 있다(S900). 예를 들어, 미리 정한 시점에 도달하면 제1 코어(110_1)가 제2 코어(110_2)의 라이트 동작 완료 여부를 확인할 수 있다. 이때, 제2 코어(110_2)가 미리 정한 시점에 이미 라이트 동작을 완료하였으면(S910), 제1 코어(110_1)는 제2 코어(110_2)의 라이트 동작 오류가 없는 것으로 결정할 수 있다(S920). 반면, 제2 코어(110_2)가 미리 정한 시점에도 라이트 동작을 수행하고 있다면(S910), 제1 코어(110_1)는 제2 코어(110_2)의 라이트 동작 오류가 발생한 것으로 결정할 수 있다(S930). 결국, 미리 정해진 시점 내에 제2 코어(110_2)가 라이트 동작을 완료하지 못한 경우, 제2 코어(110_2)의 라이트 동작에 오류가 있는 것으로 판단할 수 있다. 이 과정을 통해 제1 코어(110_1)는 제2 코어(110_2)의 라이트 동작 오류를 감지할 수 있다.
도 10a 및 도 10b를 참조하면, 제2 코어(110_2)는 제2 데이터(120_2)의 라이트를 완료하면, 타이머(timer, 1010)를 턴-오프(turn-off)한다. 다시 말해서, 제2 코어(110_2)가 정상적으로 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트하면, 제2 코어(110_2)는 타이머(1010)의 동작을 중단시킨다(S1000). 중단된 타이머(1010)는 어떠한 신호도 발생시키지 않는다. 제1 코어(110_1)는 제2 코어(110_2)나 타이머(1010)로부터 어떠한 신호도 수신하지 않을 수 있다. 그러므로, 타이머(1010)가 중단되는 경우(S1010), 즉, 제1 코어(110_1)가 제2 코어(110_2)나 타이머(1010)로부터 어떠한 신호도 수신하지 않은 경우, 제2 코어(110_2)의 라이트 동작 오류는 존재하지 않는다(S1020).
제2 코어(110_2)가 라이트 동작을 완료하지 못하면, 타이머(1010)는 중단되지 않고, 결국 타이머(1010)는 미리 정해진 시점에 도달하게 된다. 타이머(1010)가 턴-오프되지 않고 미리 정해진 시점에 도달한 경우(S1010), 타이머(1010)는 인터럽트(interrupt) 신호를 생성하여 제2 코어(110_2)로 전달할 수 있다(S1030). 이때, 타이머(1010)로부터의 인터럽트 신호에 의해 제2 코어(110_2)는 인터럽트 동작을 수행할 수 있다(S1040). 인터럽트 동작은 제1 코어(110_1)로 제2 코어(110_2)의 라이트 동작 오류 알람을 전송하는 것을 포함할 수 있다. 또는, 타이머(1010)가 턴-오프되지 않고 미리 정해진 시점에 도달한 경우 타이머(1010)는 제1 코어(110_1)로 직접 제2 코어(110_2)의 라이트 동작 오류 알람을 전송할 수 있다.
제2 코어(110_2)가 인터럽트 동작을 수행하거나, 제1 코어(110_1)가 타이머(1010)로부터 제2 코어(110_2)의 라이트 동작 오류 알람을 수신하면, 제1 코어(110_1)는 제2 코어(110_2)의 라이트 동작 오류로 판단하고(S1040), 앞서 설명한 제2 데이터(120_2)와 제2 데이터 정보(112_2)를 저장 장치(130)에 라이트할 수 있다. 예를 들어, 제2 코어(110_2)가 인터럽트 동작을 수행하여 제1 코어(110_1)로 제2 코어(110_2)의 라이트 동작 오류 알람을 전송하거나, 타이머(1010)가 제1 코어(110_1)로 제2 코어(110_2)의 라이트 동작 오류 알람을 전송하면, 제1 코어(110_1)는 제2 데이터(120_2)와 제2 데이터 정보(112_2)를 각각 제3 데이터(120_3)와 제3 데이터 정보(112_3)로 저장 장치(130)에 라이트할 수 있다.
다만, 도 9 내지 도 10b를 통해 설명한 제2 코어(110_2)의 라이트 동작 오류 감지 방법은 단지 예시적인 것일 뿐, 본 발명이 이에 제한 또는 한정되지는 않음은 자명하다. 제2 코어(110_2)의 라이트 동작 오류를 감지하기 위해, 본 발명의 기술분야에서 통상의 지식을 가진자는 펌웨어(firmware), 소프트웨어(software), 및/또는 하드웨어(hardware)로 구현하거나 이들의 조합 및 변형을 통해 다양한 방식으로 구현할 수 있다.
도 11 및 도 12는 본 발명의 몇몇 실시예들에 따른 데이터 복구 과정을 설명하기 위한 예시적인 순서도 및 블록도이다.
도 11을 참조하면, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(100)이 외부로부터 공급받는 전력이, 데이터 저장 시스템(100)이 구동하기 위한 최소 요구 전력 이상으로 재공급되면, 제2 코어(110_2)의 라이트 동작 오류 기록이 존재하는지 판단한다(S1100). 만약, 제2 코어(110_2)의 라이트 동작 오류 기록이 존재하지 않은 경우, 복구 과정은 필요 없을 수 있다(S1120). 만약 제2 코어(110_2)의 라이트 동작 오류 기록이 존재하는 경우, 제2 코어(110_2)는 제3 데이터 정보(112_3)를 참조하여, 제3 데이터(120_3)를 제2 저장소(130_2)에 라이트한다(S1110). 본 발명의 몇몇 실시예들에 따른 데이터 복구 방법에 대한 구체적인 설명을 위해, 도 12를 참조하여 설명하도록 한다.
도 12를 참조하면, 도 1 내지 도 10b의 과정을 통해 제1 저장소(130_1)에 제3 데이터 정보(112_3) 및 제3 데이터(120_3)가 라이트되어 있다. 앞서 설명하였듯이, 예비 전력이 공급되는 상태에서, 제2 코어(110_2)의 라이트 동작 오류가 감지되면, 제1 코어(110_1)는 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 각각 제3 데이터 정보(112_3)와 제3 데이터(120_3)로 제1 저장소(130_1)에 라이트할 수 있다. 이때 저장 장치(130)에 라이트된 제3 데이터 정보(112_3)와 제3 데이터(120_3)를 도 11에서 제1 저장소(130_1)에 포함되어 있는 것처럼 도시하였다. 예를 들어, 제3 데이터 정보(112_3)와 제3 데이터(120_3)는 제1 저장소(130_1)의 제1 저장 영역(132_1) 또는 제1 저장소(130_1)의 제1 예비 영역(134_1)에 라이트되어 있을 수 있다.
예를 들어, 외부로부터 데이터 저장 시스템(100)에 공급되는 전력이 데이터 저장 시스템(100)이 구동하기 위한 최소 전력 이상으로 공급되는 상태에서, 제2 코어(110_2)의 라이트 동작 오류 기록이 감지되면, 제1 코어(110_1)는 제1 저장소(130_1)의 제1 저장 영역(132_1) 또는 제1 저장소(130_1)의 제1 예비 영역(134_1)에 라이트되어 있던 제3 데이터 정보(112_3)와 제3 데이터(120_3)를 공유 메모리(120)의 버퍼 영역(도 3의 122) 또는 공유 메모리(120)의 예비 영역(도 3의 124)에 제공할 수 있다.
이후, 제2 코어(110_2)는 제3 데이터 정보(112_3)를 참조하여, 제3 데이터(112_3)를 제2 저장소(130_2)에 라이트할 수 있다. 이때, 제3 데이터(112_3)가 제2 데이터(112_2)의 시그니처 비트를 포함하고 있다면, 제2 코어(110_2)는 제2 데이터(112_2)만 제2 저장소(130_2)에 라이트할 수 있다.
도 13은 본 발명의 몇몇 실시예에 따른 라이트 동작 오류 기록을 감지하는 방법을 설명하기 위한 예시적인 순서도이다.
도 13을 참조하면, 저장 장치(130)에 제2 데이터 정보(112_2)의 시그니처 비트(signature bit)와 제2 데이터(120_2)의 시그니처 비트가 존재하는 경우(S1300), 제1 코어(110_1) 또는 제2 코어(110_2)는 제2 코어(110_2)의 라이트 동작 오류가 있었던 것으로 판단할 수 있다. 이때, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(100)의 데이터 복구 과정이 필요하다(S1310). 반면, 저장 장치(130)에 제2 데이터 정보(112_2)의 시그니처 비트와 제2 데이터(120_2)의 시그니처 비트가 존재하지 않는 경우(S1300), 제1 코어(110_1) 또는 제2 코어(110_2)는 제2 코어(110_2)의 라이트 동작 오류가 없었던 것으로 판단할 수 있다. 이때, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(100)의 데이터 복구 과정은 필요하지 않을 수 있다(S1320).
이상에서 제2 코어(110_2)의 라이트 동작 오류 기록을 감지하는 방법에 대해 설명하였으나, 본 발명의 몇몇 실시예들에 따른 라이트 동작 오류 기록을 감지하는 방법은 단지 예시적인 것일 뿐, 본 발명이 이에 제한 또는 한정되지 않음은 자명하다. 예를 들어 본 발명의 기술 분야에서 통상의 지식을 가진자들은 라이트 동작 오류 기록을 감지하는 방법을 펌웨어(firmware), 소프트웨어(software), 하드웨어(hardware)로 구현하거나 이들의 조합 및 변형을 통해 다양한 방식으로 구현할 수 있다.
도 14는 본 발명의 다른 몇몇 실시예들에 따른 데이터 저장 시스템을 설명하기 위한 예시적인 블록도이다. 여기에서, 도 1 내지 도 13에서 설명한 바와 동일 또는 유사한 기능을 갖는 구성요소는 동일한 도면부호를 이용하여 표현하였다. 또한, 설명의 편의를 위해, 앞서 설명한 바와 다른 점을 중심으로 설명한다.
도 14를 참조하면, 본 발명의 몇몇 실시예들에 따른 데이터 저장 시스템(1400)은 제1 코어(1411_1), 제2 코어(1411_2), 공유 메모리(120), 저장 장치(130), 비상 전력 시스템(140), 및 버스(bus, 1450)를 포함할 수 있다. 본 발명의 몇몇 실시예에 따른 제1 코어(1411_1)와 제2 코어(1411_2)는 버스(1450)를 통해 접속되어 있어 상호간에 액세스(access)할 수 있으므로, 제1 데이터 정보(112_1)와 제2 데이터 정보(112_2)는 공유가 가능하다.
도 15 및 도 16은 도 14의 데이터 저장 시스템에서, 코어의 라이트 동작 오류가 있는 경우에서의 데이터를 라이트하는 방법을 설명하기 위한 예시적인 순서도와 블록도이다. 설명의 편의를 위해, 앞서 설명한 바와 다른 점을 중심으로 설명한다.
도 15을 참조하면, 외부 요인에 의해 외부로부터의 전력이 데이터 저장 시스템(1400)이 구동하기 위한 최소 요구 전력 미만으로 공급되거나, 외부로부터의 전력이 차단된 경우(S1500), 본 발명의 비상 전력 시스템(140)이 예비 전력을 공급한다(S1510). 제1 코어(1411_1) 및 제2 코어(1411_2)는 각각 제1 데이터(120_1) 및 제2 데이터(120_2)를 각각 제1 저장소(130_1) 및 제2 저장소(130_2)에 라이트한다(S1520).
제2 코어(1411_2)의 라이트 동작 오류가 감지되면(S1530), 제1 코어(1411_1)는 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 제1 저장소(130_1)에 라이트한다(S1540).
구체적으로, 예를 들어, 도16을 참조하면, 제2 코어(1411_2)가 제2 데이터(120_2)를 제2 저장소(130_2)에 라이트하지 못한 경우, 다시 말해서, 제1 코어(1411_1)가 제2 코어(1411_2)의 라이트 동작 오류를 감지한 경우, 제1 코어(1411_1)가 제2 코어(1411_2)에 직접 액세스하여, 제2 데이터 정보(112_2)를 제3 데이터 정보(112_3)로 제1 저장소(130_1)에 라이트할 수 있다. 또한, 제1 코어(1411_1)가 제2 코어(1411_2)에 직접 액세스하여, 제2 데이터 정보(112_2)를 참조하여, 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 제3 데이터(112_3)로 제1 저장소(130_1)에 라이트할 수 있다.
다시 도 15를 참조하면, 제1 코어(1411_1)가 제2 데이터 정보(112_2)와 제2 데이터(120_2)를 제1 저장소(130_1)에 라이트하는 것을 완료한 경우, 예비 전력의 공급을 중단한다(S1550). 제2 코어(1411_2)의 라이트 동작 오류가 없는 경우, 즉, 제1 코어(1411_1) 및 제2 코어(1411_2)가 각각 제1 데이터(120_1) 및 제2 데이터(120_2)를 각각 제1 저장소(130_1) 및 제2 저장소(130_2)에 라이트를 완료한 경우(S1530), 예비 전력의 공급을 중단한다(S1550).
도 17은 본 발명의 다른 몇몇 실시예들에 따른 데이터 복구 과정을 설명하기 위한 예시적인 블록도이다. 설명의 편의를 위해, 앞서 설명한 바와 다른 점을 중심으로 설명한다.
외부로부터 데이터 저장 시스템(1400)에 공급되는 전력이 데이터 저장 시스템(1400)이 구동하기 위한 최소 전력 이상으로 공급되는 상태에서, 제2 코어(1411_2)의 라이트 동작 오류 기록이 감지되면, 제2 코어(1411_2)는 버스(1450)를 통해 제1 코어(1411_1)에 액세스하여, 제1 저장소(130_1)에 라이트되어 있던 제3 데이터 정보(112_3)와 제3 데이터(120_3)를 공유 메모리(120)의 버퍼 영역(122) 또는 공유 메모리(120)의 예비 영역(124)에 제공할 수 있다. 본 발명의 다른 몇몇 실시예들에 따른 데이터 저장 시스템(1400)은, 예비 전력이 공급될 때, 제2 코어(1411_2)가 어떠한 동작도 하지 않는 경우, 제1 코어(1411_1)가 직접 제2 코어(1411_2)에 액세스하여, 제2 코어(1411_2)에 포함된 제2 데이터 정보(110_2)를 참조할 수 있다.
본 발명의 다른 몇몇 실시예들에 따른 데이터 저장 시스템(1400)은, 예비 전력이 공급될 때, 제1 코어(1411_1) 및 제2 코어(1411_2)가 각각 제1 데이터 정보(112_1) 및 제2 데이터 정보(112_2)를 공유 메모리(120)에 제공하지 않아도 되므로, 제1 코어(1411_1) 및 제2 코어(1411_2)는 각각 제1 데이터(120_1) 및 제2 데이터(120_2)의 라이트를 빠르게 수행할 수 있다.
또한, 본 발명의 다른 몇몇 실시예들에 따른 데이터 저장 시스템(1400)은, 제2 코어(1411_2)의 라이트 동작 오류가 발생한 경우, 제1 코어(1411_1)만 동작하여, 제2 데이터 정보(112_2) 및 제2 데이터(120_2)를 제1 저장소(130_1)에 라이트할 수 있다.
또한, 본 발명의 다른 몇몇 실시예들에 따른 데이터 저장 시스템(1400)은, 제2 코어(1411_2)의 라이트 동작 오류 기록이 있는 경우, 제2 코어(1411_2)만 동작하여, 제3 데이터(120_3)를 제2 저장소(130_2)에 라이트할 수 있다.
도 18는 본 발명의 몇몇 실시예들에 따른 솔리드 스테이트 드라이브의 제조 방법에 대한 예시적인 순서도이다.
도 18를 참조하면, 적어도 하나의 다른 반도체 장치를 포함하는 기판이나 패키지의 일부로서, 제1 및 제2 코어를 제공할 수 있다. 저장 장치를 제공하고, 공유 메모리를 제공하고, 커패시터를 제공할 수 있다(S1800). 이때, 솔리드 스테이트 드라이브는 하기와 같은 동작을 수행할 수 있다. 외부에서 공급되는 전력이 솔리드 스테이트 드라이브가 구동하기 위한 최소 요구 전력 미만일 때, 미리 저장된 예비 전력을 데이터 저장 시스템의 제1 및 제2 코어에 공급하고(S1810), 예비 전력을 공급받은 제1 및 제2 코어는 각각 제1 및 제2 데이터를 각각 제1 저장소(130_1) 및 제2 저장소(130_2)에 라이트할 수 있다(S1820). 이때, 솔리드 스테이트 드라이브의 제2 코어에 라이트 동작 오류가 발생하면(S1830), 제1 코어가 라이트 동작 오류가 발생한 제2 코어와 제2 데이터와 제2 데이터 정보를 각각 제3 데이터와 제3 데이터 정보로 제1 저장소에 라이트할 수 있다(S1840). 반면, 솔리드 스테이트 드라이브의 제1 및 제2 코어가 모두 라이트 동작 오류 없이 라이트 동작을 완료하면(S1830), 예비 전력의 공급을 중단할 수 있다(S1850). 이후, 외부에서 공급되는 전력이 솔리드 스테이트 드라이브가 구동하기 위한 최소 요구 전력 이상일 때(S1860), 제2 코어의 라이트 동작 오류 기록이 있는지 판단할 수 있다(S1870). 솔리드 스테이트 드라이브의 제2 코어의 라이트 동작 오류 기록이 없으면, 데이터 복구 과정은 필요 없을 수 있다. 솔리드 스테이트 드라이브의 제2 코어의 라이트 동작 오류 기록이 있으면, 제2 코어는, 라이트된 제3 데이터 정보를 참조하여, 라이트된 제3 데이터를 제2 저장소에 라이트하는 동작을 수행할 수 있다(S1880).
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
110_1, 1411_1: 제1 코어(first core)
110_2, 1411_2: 제2 코어(second core)
120: 공유 메모리(shared memory) 120_1: 제1 데이터(first data)
120_2: 제2 데이터(second data) 130: 저장 장치(storage device)
130_1: 제1 저장소(first storage) 130_2: 제2 저장소(second storage)
1450: 버스(bus)

Claims (10)

  1. 제1 저장소(first storage) 및 상기 제1 저장소와 물리적으로 분리된 제2 저장소(second storage)를 포함하는 저장 장치(storage device);
    적어도 상기 제1 저장소에 라이트(write)될 제1 데이터와 관련된 제1 데이터 정보를 포함하는 제1 코어 및
    상기 제2 저장소에 라이트될 제2 데이터와 관련된 제2 데이터 정보를 포함하는 제2 코어를 포함하는 복수의 코어들;
    상기 제1 코어 및 상기 제2 코어가 액세스(access)할 수 있는 공유 메모리(shared memory); 및
    데이터 저장 시스템에 공급되는 외부 전력이 최소 요구 전력 미만일 때, 제1 모드에서 예비 전력을 상기 제1 코어 및 상기 제2 코어에 공급하는 비상 전력 시스템을 포함하되,
    상기 제1 모드에서 상기 제2 코어의 라이트 동작 오류(error)의 감지가 발생하면, 상기 제1 코어는 상기 제2 데이터 정보를 상기 제1 데이터 정보와 상이한 제3 데이터 정보를 저장하기로 지정된 영역 내 상기 제1 저장소에 라이트하고, 상기 제1 코어는 상기 제2 데이터 정보의 저장소 어드레스를 참조하여 상기 제2 데이터를 상기 제3 데이터 정보와 관련된 제3 데이터를 저장하기로 지정된 상기 영역 내 상기 제1 저장소에 라이트하고,
    상기 제1 모드에서 상기 제2 코어의 라이트 동작 오류의 감지는, 상기 제2 코어가 미리 설정된 시점 이전에 타이머(Timer)를 턴-오프(turn-off)하지 못한 경우, 상기 타이머에 의해 발생된 인터럽트(interrupt) 신호를 기반으로 한 상기 제2 코어의 라이트 동작 오류의 감지를 포함하는 데이터 저장 시스템.
  2. 제 1항에 있어서,
    상기 제1 모드에서,
    상기 제1 코어는 상기 공유 메모리로 상기 제1 데이터 정보를 제공하고, 상기 제2 코어는 상기 공유 메모리로 상기 제2 데이터 정보를 제공하고, 상기 제1 코어 및 상기 제2 코어는 상기 공유 메모리를 통해 상기 제1 및 제2 데이터 정보를 공유하는 데이터 저장 시스템.
  3. 제 1항에 있어서,
    상기 제1 코어는 상기 제1 및 제2 데이터 정보를 액세스하고, 상기 제2 코어는 상기 제1 및 제2 데이터 정보를 액세스하는 데이터 저장 시스템.
  4. 삭제
  5. 삭제
  6. 제 1항에 있어서,
    제2 모드에서, 상기 제2 코어의 라이트 동작 오류 기록을 감지하고, 상기 데이터 저장 시스템에 제공되는 외부 전력이 최소 요구 전력 이상이거나 같으면, 상기 제2 데이터 정보에 저장된 저장소 정보를 참조하여 상기 제3 데이터를 상기 제2 저장소에 라이트하는 데이터 저장 시스템.
  7. 제1 저장소(first storage) 및 상기 제1 저장소와 물리적으로 분리된 제2 저장소(second storage)를 포함하는 저장 장치(storage device);
    상기 제1 저장소에 라이트(write)될 제1 데이터와 관련된 제1 데이터 정보를 포함하는 제1 코어 및 상기 제2 저장소에 라이트될 제2 데이터와 관련된 제2 데이터 정보를 포함하는 제2 코어를 저장하는 복수의 코어 및
    상기 제1 코어 및 상기 제2 코어가 액세스(access)할 수 있는 공유 메모리(shared memory)를 포함하되,
    상기 제2 코어의 라이트 동작 오류 기록이 감지되면, 상기 제2 코어는, 상기 제1 데이터 정보와 다르고 상기 제1 저장소에 라이트되어 있는 제3 데이터 정보를 참조하여, 상기 제1 데이터와 다르고 상기 제1 저장소에 라이트되어 있는 제3 데이터를 상기 제2 저장소에 라이트하는 데이터 저장 시스템.
  8. 제 7항에 있어서,
    외부에서 공급되는 전력이 데이터 저장 시스템의 최소 요구 전력 미만인 제1 모드에서, 예비 전력을 상기 제1 코어 및 상기 제2 코어에 공급하는 비상 전력 시스템을 더 포함하되,
    상기 제1 모드에서 상기 제2 코어의 라이트 동작 오류가 감지되면,
    상기 제1 코어는, 상기 제2 데이터 정보를 참조하여 상기 제2 데이터를 상기 제3 데이터를 저장하도록 지정된 영역 내 상기 제1 저장소에 라이트하고, 상기 제2 데이터 정보를 상기 제3 데이터 정보를 저장하도록 지정된 상기 영역 내 상기 제1 저장소에 라이트하는 데이터 저장 시스템.
  9. 제 7항에 있어서,
    상기 제2 코어와 관련된 상기 제3 데이터의 시그니처 비트(signature bit)와 상기 제2 코어와 관련된 상기 제3 데이터 정보의 시그니처 비트가 상기 제1 저장소에 존재하는 지 확인하는 것을 기반으로 하여 상기 제2 코어의 상기 라이트 동작 오류 기록이 감지되는 데이터 저장 시스템.
  10. 외부에서 공급되는 전력이 데이터 저장 시스템의 최소 요구 전력 미만인 제1 모드에서, 비상 전력 시스템에 의해, 미리 저장된 예비 전력을 제1 코어 및 제2 코어에 공급하는 단계,
    상기 예비 전력을 공급받은 상기 제1 코어 및 상기 제2 코어가 공유 메모리(shared memory)에 액세스(access)하는 단계,
    상기 제1 코어는 상기 제1 코어에 포함된 제1 데이터 정보의 제1 저장소 어드레스를 참조하여, 상기 공유 메모리에서 액세스되는 제1 데이터를, 저장 장치에 포함된 제1 저장소에 라이트하는 단계,
    상기 제2 코어는 상기 제2 코어에 포함된 제2 데이터 정보의 제2 저장소 어드레스를 참조하여, 상기 공유 메모리에서 액세스되는 제2 데이터를, 상기 저장 장치에 포함되고 상기 제1 저장소와 다른 제2 저장소에 라이트하는 단계,
    상기 제1 모드에서 상기 제2 코어의 라이트 동작 오류가 감지하는 것에 대응하여, 상기 제1 코어는 상기 제2 데이터 정보를 상기 제1 데이터 정보와 상이한 제3 데이터 정보를 저장하도록 지정된 영역 내 상기 제1 저장소에 라이트하고, 상기 제1 코어는 상기 제2 데이터 정보의 저장소 어드레스를 참조하여, 상기 제2 데이터를 제3 데이터를 저장하도록 지정된 영역 내 상기 제1 저장소에 라이트하는 단계를 포함하되,
    상기 제1 데이터 정보는 상기 제1 데이터와 관련된 정보를 포함하고, 상기 제2 데이터 정보는 상기 제2 데이터와 관련된 정보를 포함하고, 상기 제3 데이터 정보는 상기 제3 데이터와 관련된 정보를 포함하고,
    상기 제1 모드에서 상기 제2 코어의 라이트 동작 오류의 감지는, 상기 제2 코어가 미리 설정된 시점 이전에 타이머(Timer)를 턴-오프(turn-off)하지 못한 경우, 상기 타이머에 의해 발생된 인터럽트(interrupt) 신호를 기반으로 한 상기 제2 코어의 라이트 동작 오류의 감지를 포함하는 데이터 저장 방법.
KR1020170097088A 2017-07-31 2017-07-31 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법 KR102277728B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170097088A KR102277728B1 (ko) 2017-07-31 2017-07-31 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법
US15/944,858 US10613782B2 (en) 2017-07-31 2018-04-04 Data storage system, data storage method of the data storage system, and method of manufacturing solid-state
CN201810841693.5A CN109324932B (zh) 2017-07-31 2018-07-27 数据存储系统、数据存储方法以及制造固态驱动器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170097088A KR102277728B1 (ko) 2017-07-31 2017-07-31 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법

Publications (2)

Publication Number Publication Date
KR20190013086A KR20190013086A (ko) 2019-02-11
KR102277728B1 true KR102277728B1 (ko) 2021-07-14

Family

ID=65037841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170097088A KR102277728B1 (ko) 2017-07-31 2017-07-31 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법

Country Status (3)

Country Link
US (1) US10613782B2 (ko)
KR (1) KR102277728B1 (ko)
CN (1) CN109324932B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110866291B (zh) * 2019-11-15 2023-03-24 北京工业大学 一种基于双重安全机制的废旧电子产品信息清除方法
US11379141B2 (en) 2020-07-31 2022-07-05 Kioxia Corporation SSD supporting read-only mode after PLP backup failure
US20230010516A1 (en) * 2021-07-06 2023-01-12 Vmware, Inc. Input/output (i/o) quiescing for sequential ordering of operations in a write-ahead-log (wal)-based storage system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526159A (ja) 2000-02-28 2003-09-02 ハイパーロール・イスラエル・リミテッド 多次元データベースおよび統合集約サーバ
US20100313068A1 (en) 2006-10-30 2010-12-09 Yasuo Watanabe Information system and data transfer method
US20110252201A1 (en) 2010-03-29 2011-10-13 Kaminario Technologies Ltd. Smart flushing of data to backup storage
US20140310574A1 (en) 2012-12-28 2014-10-16 Super Talent Technology, Corp. Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance
US20160118121A1 (en) 2014-10-24 2016-04-28 Microsoft Technology Licensing, Llc Configurable Volatile Memory Data Save Triggers
US20160132382A1 (en) * 2014-11-12 2016-05-12 Samsung Electronics Co., Ltd. Computing system with debug assert mechanism and method of operation thereof

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938184B2 (en) * 2002-10-17 2005-08-30 Spinnaker Networks, Inc. Method and system for providing persistent storage of user data
JP4401788B2 (ja) * 2004-01-06 2010-01-20 株式会社日立製作所 ストレージ制御装置
JP2005267111A (ja) * 2004-03-17 2005-09-29 Hitachi Ltd 記憶制御システム及び記憶制御システムの制御方法
JP2009205555A (ja) * 2008-02-28 2009-09-10 Toshiba Corp メモリシステム
US8289801B2 (en) * 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US8631284B2 (en) 2010-04-30 2014-01-14 Western Digital Technologies, Inc. Method for providing asynchronous event notification in systems
US9069719B2 (en) * 2012-02-11 2015-06-30 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
WO2013184923A1 (en) * 2012-06-07 2013-12-12 Violin Memory, Inc. Memory system management
US9582287B2 (en) * 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US9830257B1 (en) * 2013-06-12 2017-11-28 Western Digital Technologies, Inc. Fast saving of data during power interruption in data storage systems
KR102094393B1 (ko) * 2013-11-18 2020-03-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10114691B2 (en) * 2014-04-21 2018-10-30 Hitachi, Ltd. Information storage system
KR102189757B1 (ko) * 2014-07-30 2020-12-11 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템, 및 이의 동작 방법
US10489237B2 (en) * 2014-12-19 2019-11-26 Hewlett Packard Enterprise Development Lp Flushing data content in response to a power loss event to a processor
KR102359979B1 (ko) * 2015-11-16 2022-02-08 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
US10007579B2 (en) * 2016-03-11 2018-06-26 Microsoft Technology Licensing, Llc Memory backup management in computing systems
US10402361B2 (en) * 2017-04-28 2019-09-03 Hitachi, Ltd. Storage system
US11023135B2 (en) * 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US20190324859A1 (en) * 2018-04-20 2019-10-24 Cnex Labs, Inc. Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US11010079B2 (en) * 2019-04-09 2021-05-18 Intel Corporation Concept for storing file system metadata within solid-stage storage devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526159A (ja) 2000-02-28 2003-09-02 ハイパーロール・イスラエル・リミテッド 多次元データベースおよび統合集約サーバ
US20100313068A1 (en) 2006-10-30 2010-12-09 Yasuo Watanabe Information system and data transfer method
US20110252201A1 (en) 2010-03-29 2011-10-13 Kaminario Technologies Ltd. Smart flushing of data to backup storage
US20140310574A1 (en) 2012-12-28 2014-10-16 Super Talent Technology, Corp. Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance
US20160118121A1 (en) 2014-10-24 2016-04-28 Microsoft Technology Licensing, Llc Configurable Volatile Memory Data Save Triggers
US20160132382A1 (en) * 2014-11-12 2016-05-12 Samsung Electronics Co., Ltd. Computing system with debug assert mechanism and method of operation thereof

Also Published As

Publication number Publication date
US20190034107A1 (en) 2019-01-31
KR20190013086A (ko) 2019-02-11
CN109324932B (zh) 2023-04-21
US10613782B2 (en) 2020-04-07
CN109324932A (zh) 2019-02-12

Similar Documents

Publication Publication Date Title
US11231992B2 (en) Memory systems for performing failover
JP4805696B2 (ja) 半導体集積回路装置およびそのデータ記録方式
US8812901B2 (en) Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system
KR102277728B1 (ko) 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법
US20150370655A1 (en) Memory module controller supporting extended writes
CN107239408B (zh) 非易失性存储器模块及其操作方法
US20190065320A1 (en) Memory module, module controller of memory module, and operation method of memory module
JP2017510891A (ja) 寿命の終わりの条件に到達したときにソリッドステートメモリへの書き込むを制限するための方法及び装置
US9836312B2 (en) Storage control device, storage device, and storage control method thereof
US20140122972A1 (en) Storage control apparatus, storage apparatus, information processing system, and storage control method
KR102574354B1 (ko) 비정상적 셧다운과 연관된 효율적인 데이터 저장 이용
CN107239368B (zh) 非易失性存储器模块及其操作方法
CN114077393A (zh) 将存储器系统数据传送到主机系统
TW201734815A (zh) 非揮發性雙列直插式記憶體系統的斷電中斷
US11036493B2 (en) Memory system and operating method thereof
KR102504765B1 (ko) 메모리 시스템 및 그것의 동작 방법
JP2018067072A (ja) 半導体記憶装置及びその制御方法
US11169871B2 (en) Data storage device and operating method thereof
US10713105B2 (en) Operating method of memory controller, storage device including the same, and operating method of storage device
US9064605B2 (en) Semiconductor system and method for reparing the same
US9916103B2 (en) Memory control device, memory device, and memory control method
US20190163534A1 (en) Memory system and operating method thereof
US20210026736A1 (en) Memory system re-performing access operation and operating method thereof
US10922025B2 (en) Nonvolatile memory bad row management
US20190179749A1 (en) Memory system, operating method thereof and nonvolatile memory device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant