KR20210069744A - 스토리지 장치 및 그것의 데이터 백업 방법 - Google Patents

스토리지 장치 및 그것의 데이터 백업 방법 Download PDF

Info

Publication number
KR20210069744A
KR20210069744A KR1020190158696A KR20190158696A KR20210069744A KR 20210069744 A KR20210069744 A KR 20210069744A KR 1020190158696 A KR1020190158696 A KR 1020190158696A KR 20190158696 A KR20190158696 A KR 20190158696A KR 20210069744 A KR20210069744 A KR 20210069744A
Authority
KR
South Korea
Prior art keywords
power
nonvolatile memory
backup
controller
buffer
Prior art date
Application number
KR1020190158696A
Other languages
English (en)
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 KR1020190158696A priority Critical patent/KR20210069744A/ko
Priority to US17/016,901 priority patent/US11630587B2/en
Priority to SG10202010054SA priority patent/SG10202010054SA/en
Priority to DE102020128785.2A priority patent/DE102020128785A1/de
Priority to CN202011258965.2A priority patent/CN112908383A/zh
Publication of KR20210069744A publication Critical patent/KR20210069744A/ko
Priority to US18/125,909 priority patent/US11977746B2/en

Links

Images

Classifications

    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • 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/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/2017Error 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 memory access, memory control or I/O control functionality is redundant
    • 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/1448Management of the data involved in backup or backup restore
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup 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/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/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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/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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/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
    • 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/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Abstract

본 발명의 실시 예에 따른 스토리지 컨트롤러, 버퍼 메모리, 그리고 복수의 불휘발성 메모리 장치들을 포함하는 스토리지 장치의 데이터 백업 방법은, 상기 스토리지 장치에 제공되는 외부 전원의 파워 오프 이벤트를 검출하는 단계, 상기 파워 오프 이벤트에 응답하여 상기 스토리지 컨트롤러의 호스트 인터페이스를 비활성화(Inactivate)시키는 단계, 상기 버퍼 메모리에 저장된 백업 데이터를 상기 스토리지 컨트롤러 내의 에스램으로 이동시키는 단계, 상기 버퍼 메모리의 전원을 차단하는 단계, 상기 복수의 불휘발성 메모리 장치들의 인터리빙 모드를 최소 전력 모드로 설정하는 단계, 그리고 상기 에스램에 이동된 백업 데이터를 상기 불휘발성 메모리 장치로 프로그램하는 단계를 포함한다.
상술한 본 발명의 실시 예에 따르면, 파워 오프 이벤트가 발생하는 경우에 보조 전원 장치로부터 제공되는 전력을 효율적으로 사용하여 백업 동작의 신뢰성을 높일 수 있다.

Description

스토리지 장치 및 그것의 데이터 백업 방법{STORAGE DEVICE AND DATA BACKUP METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 스토리지 장치 및 그것의 데이터 백업 방법에 관한 것이다.
스토리지 장치(Storage device)는 컴퓨터, 스마트 폰, 스마트 패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 자기 디스크를 저장 매체(Storage medium)로 하는 하드 디스크 드라이브(이하, HDD)나 반도체 메모리를 저장 매체로 사용하는 솔리드 스테이트 드라이브(Solid State Drive: 이하, SSD), 메모리 카드 등이 있다.
스토리지 장치는 대부분 외부 전원을 사용하여 구동된다. 스토리지 장치는 외부 전원의 오류나 파워 오프(이하, 서든 파워 오프를 포함)로 인해, 데이터 손실 등과 같은 치명적인 손상을 입을 수 있다. 따라서, 이런 문제를 해결하기 위해 스토리지 장치의 내부에는 백업을 위한 보조 전원 장치(Auxiliary Power Supply)를 구비하고 있다. 하지만, 파워 오프 시에 수행되는 스토리지 장치의 데이터 백업에는 보조 전원 장치로부터 제공되는 한정된 에너지를 사용해야 한다는 문제가 있다. 만일, 백업 동작중에 문제가 생기면 보조 전원 장치가 제공하는 전원으로 데이터 백업을 완료하지 못할 수도 있다. 이러한 문제는 스토리지 장치가 고용량화 또는 고성능화됨에 따라 백업 데이터의 양이 증가하고 있는 상황에서 백업 데이터의 신뢰성에 영향을 미칠 수 있다. 따라서, 고용량화 및 고성능화되는 스토리지 장치의 백업 신뢰성을 보장하기 위한 효율적인 백업 관리 정책이 절실한 실정이다.
본 발명의 목적은, 파워 오프 이벤트시에 백업 전력을 효율적으로 사용하기 위한 스토리지 장치 및 그것의 데이터 백업 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 스토리지 컨트롤러, 버퍼 메모리, 그리고 복수의 불휘발성 메모리 장치들을 포함하는 스토리지 장치의 데이터 백업 방법은, 상기 스토리지 장치에 제공되는 외부 전원의 파워 오프 이벤트를 검출하는 단계, 상기 파워 오프 이벤트에 응답하여 상기 스토리지 컨트롤러의 호스트 인터페이스를 비활성화(Inactivate)시키는 단계, 상기 버퍼 메모리에 저장된 백업 데이터를 상기 스토리지 컨트롤러 내의 에스램으로 이동시키는 단계, 상기 버퍼 메모리의 전원을 셧 다운하는 단계, 상기 복수의 불휘발성 메모리 장치들의 인터리빙 모드를 최소 전력 모드로 설정하는 단계, 그리고 상기 에스램에 이동된 백업 데이터를 상기 불휘발성 메모리 장치로 프로그램하는 단계를 포함한다.
본 발명의 실시 예에 따른 보조 전원 장치를 포함하는 스토리지 장치는, 외부 전원을 모니터링하여 파워 오프 이벤트를 검출하고, 상기 파워 오프 이벤트가 검출되면, 파워 오프 검출 신호를 생성하고, 상기 보조 전원 장치를 장치 전원으로 선택하는 파워 로스 방지 로직 회로, 상기 스토리지 장치의 저장 매체로 제공되는 복수의 불휘발성 메모리 장치들, 상기 복수의 불휘발성 메모리 장치들과 호스트 사이에서 교환되는 데이터를 일시 저장하는 버퍼 메모리, 그리고 상기 파워 오프 검출 신호에 응답하여 상기 호스트와의 통신을 수행하는 상기 버퍼 메모리에 저장된 백업 데이터를 내부 메모리에 이동한 후에 상기 복수의 불휘발성 메모리 장치들 중 적어도 하나에 프로그램하는 스토리지 컨트롤러를 포함하되, 상기 스토리지 컨트롤러는 호스트 인터페이스를 비활성화(Inactivate)시키고, 상기 백업 데이터의 이동에 따라 상기 버퍼 메모리의 전원을 셧 다운한다.
본 발명의 실시 예에 따른 파워 오프 이벤트시 보조 전원 장치를 사용하여 데이터 백업을 수행하는 스토리지 장치의 데이터 백업 방법은, 상기 파워 오프 이벤트에 응답하여 스토리지 컨트롤러의 호스트 인터페이스를 비활성화(Inactivate)시키는 단계, 불휘발성 메모리 장치에 액세스하기 위한 복수의 인터리빙 모드들 중에서 최소 전력을 소모하는 어느 하나의 인터리빙 모드로 설정하는 단계, 그리고 버퍼 메모리에 저장된 백업 데이터를 상기 설정된 인터리빙 모드에 따라 상기 불휘발성 메모리 장치에 프로그램하는 단계를 포함한다.
이상과 같은 본 발명의 실시 예에 따르면, 스토리지 장치의 파워 -오프 이벤트가 발생하는 경우에 보조 전원 장치가 제공하는 전원을 효율적으로 사용할 수 있고, 백업 데이터의 신뢰성도 높일 수 있다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 2는 도 1의 파워 로스 방지 장치의 구성 및 동작을 예시적으로 보여주는 도면이다.
도 3은 도 1의 스토리지 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 4는 도 3의 스토리지 컨트롤러가 수행하는 본 발명의 실시 예에 따른 백업 방법을 예시적으로 보여주는 순서도이다.
도 5는 도 3의 호스트 인터페이스를 예시적으로 보여주는 블록도이다.
도 6은 버퍼 메모리로부터 에스램으로의 백업 데이터의 이동을 간략히 보여주는 도면이다.
도 7은 본 발명의 불휘발성 메모리 장치와 플래시 컨트롤러를 예시적으로 보여주는 블록도이다.
도 8은 본 발명의 인터리빙 모드의 변경을 보여주는 테이블이다.
도 9a 및 도 9b는 본 발명의 백업 동작시 플래시 인터페이스와 불휘발성 메모리 장치 사이의 전원 연결 방법을 예시적으로 보여주는 도면들이다.
도 10은 본 발명의 백업 데이터가 저장되는 불휘발성 메모리 장치의 메모리 영역을 간략히 보여주는 블록도이다.
도 11은 본 발명의 백업 방법을 사용할 수 있는 스토리지 장치들의 다른 예를 간략히 보여주는 블록도이다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 카드를 보여주는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 플래시 메모리 장치를 사용하는 스토리지 장치가 본 발명의 특징 및 기능을 설명하기 위한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
더불어, 전원의 제어에 관련된 용어로 이하에서는 '셧 다운(Shut-down)'이 사용될 것이다. '셧 다운' 상태는 실질적으로 전원이 차단된 '턴-오프(Turn-off)' 상태의 의미와 전원은 공급되지만 기능이 차단되는 스탠바이(Stand-by) 상태(또는, Idle 상태)의 의미를 모두 포괄하는 의미로 사용될 것이다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다. 도 1을 참조하면, 스토리지 장치(1000)는 보조 전원 장치(1100), 파워 로스 방지 로직(1200), 스토리지 컨트롤러(1300), 불휘발성 메모리 장치(1400), 그리고 버퍼 메모리(1500)를 포함할 수 있다.
보조 전원 장치(1100)는 외부 전원(External Power)이 차단되는 파워 오프(Power-off) 이벤트가 발생할 때, 축적된 에너지를 스토리지 장치(1000)에 공급한다. 스토리지 장치(1000)는 보조 전원 장치(1100)로부터의 에너지를 사용하여 수행 중인 동작을 완료하고, 데이터 백업 동작을 수행할 것이다. 하지만, 스토리지 장치(1000)의 고용량화 또는 고성능화에 따라 백업 동작에 소요되는 에너지도 증가하는 추세이다. 따라서, 보조 전원 장치(1100)에 축적된 한정된 에너지를 효율적으로 사용해야 백업 동작의 신뢰성이 높아질 수 있다.
파워 로스 방지 로직(1200)은 스토리지 장치(1000)로 공급되는 전력의 손실을 방지하기 위한 구성이다. 파워 로스 방지 로직(1200)은 집적 회로(IC), 칩(Chip), 또는 소자로 형성될 수 있다. 외부 전원(External Power)이 정상적으로 공급되는 상황에서, 파워 로스 방지 로직(1200)은 외부 전원(External Power)을 스토리지 장치(1000)가 사용하는 장치 전원(D_PWR)으로 제공한다. 반면, 파워 로스 방지 로직(1200)은 외부 전원(External Power)이 차단되면 보조 전원 장치(1100)의 출력을 스토리지 장치(1000)가 사용하는 장치 전원(D_PWR)으로 제공한다.
더불어, 파워 로스 방지 로직(1200)은 외부 전원(External Power)의 차단이나 심각한 전압 강하와 같은 파워 오프 이벤트(PO Event)를 검출할 수 있다. 파워 로스 방지 로직(1200)은 파워 오프 이벤트(PO Event)가 검출되면, 스토리지 컨트롤러(1300)에 파워 오프 검출 신호(PO_DET)를 제공할 수 있다. 그리고 파워 로스 방지 로직(1200)은 스토리지 장치(1000)를 구동하기 위한 장치 전원(D_PWR)의 소스를 외부 전원(External Power)에서 보조 전원 장치(1100)로 스위칭할 수 있다. 파워 로스 방지 로직(1200)의 예시적인 구성은 도 2에서 보다 상세히 설명하기로 한다.
스토리지 컨트롤러(1300)는 호스트(Host)로부터의 명령어나 제어에 따라 불휘발성 메모리 장치(1400) 및 버퍼 메모리(1500)를 제어하도록 구성될 수 있다. 예를 들어, 스토리지 컨트롤러(1300)는 호스트(Host)의 요청에 따라 불휘발성 메모리 장치(1400)에 데이터를 기입하거나 또는 불휘발성 메모리 장치(1400)에 저장된 데이터를 독출할 수 있다. 이러한 불휘발성 메모리 장치(1400)로의 접근을 위하여, 스토리지 컨트롤러(1300)는 명령어, 어드레스, 데이터 그리고 제어 신호를 불휘발성 메모리 장치(1400)에 제공할 수 있다.
특히, 스토리지 컨트롤러(1300)는 본 발명의 실시 예에 따른 효율적 전력 사용이 가능한 백업 동작을 수행할 수 있다. 스토리지 컨트롤러(1300)는 파워 로스 방지 로직(1200)으로부터 파워 오프 검출 신호(PO_DET)를 전달받으면, 현재 수행 중이던 동작을 중단한다. 그리고 스토리지 컨트롤러(1300)는 백업 동작 모드로 진입하여 버퍼 메모리(1500)에 저장된 데이터를 불휘발성 메모리 장치(1400)에 백업한다. 스토리지 컨트롤러(1300)는 이때, 호스트와의 통신을 담당하는 기능 블록이나 인터페이스 회로들에 대한 동작을 디스에이블(Disable)시킬 수 있다. 그리고, 스토리지 컨트롤러(1300)는 버퍼 메모리(1200)에 저장된 백업 데이터를 스토리지 컨트롤러(1300) 내부의 에스램(SRAM)으로 이동하고, 이어서 버퍼 메모리(1500)를 셧 다운시킬 수 있다. 즉, 스토리지 컨트롤러(1300)는 백업 데이터의 이동 후에 버퍼 메모리(1500)에 스탠바이 명령어(Stand-by Command)를 제공하거나 전원을 차단할 수 있다. 그리고 스토리지 컨트롤러(1300)는 에스램(SRAM)에 저장된 백업 데이터를 불휘발성 메모리 장치(1400)에 최소 전력 모드로 프로그램할 수 있다. 최소 전력 모드는 불휘발성 메모리 장치(1400)의 부분적이 셧 다운(Shut-down)을 적용하여 구현될 수 있다. 이러한 스토리지 컨트롤러(1300)의 백업 동작은 백업 매니저(1345)에 의해서 수행될 수 있다. 백업 매니저(1345)는 하드웨어 형태로 스토리지 컨트롤러(1300)에 구비되거나, 펌웨어 또는 소프트웨어 형태로도 구현될 수 있다. 스토리지 컨트롤러(1300)의 구체적인 구성이나 동작은 후술하는 도면들을 통해서 보다 상세히 설명될 것이다.
불휘발성 메모리 장치(1400)는 스토리지 컨트롤러(1300)의 제어에 따라 스토리지 컨트롤러(1300)로부터 수신된 데이터를 저장하거나 또는 저장된 데이터를 스토리지 컨트롤러(1300)로 전송할 수 있다. 불휘발성 메모리 장치(1400)는 스토리지 장치(1000)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1400)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1400)는 복수의 플래시 메모리 장치들을 포함할 수 있다.
일반적으로 복수의 플래시 메모리 장치들은 채널 단위로 스토리지 컨트롤러(1300)와 연결된다. 하나의 채널에는 동일한 데이터 버스를 통해서 통신하는 복수의 플래시 메모리 장치들이 연결된다. 불휘발성 메모리 장치(1400)는 채널/웨이(Channel/Way) 인터리빙 방식으로 스토리지 컨트롤러(1300)와 통신할 수 있다. 특히, 불휘발성 메모리 장치(1400)는 파워 오프 이벤트가 발생하면, 스토리지 컨트롤러(1300)와 최소 전력으로 통신하기 위한 인터리빙 모드로 동작할 것이다.
버퍼 메모리(1500)는 스토리지 장치(1000)와 호스트와의 데이터 교환을 위한 데이터 버퍼로 사용될 수 있다. 더불어, 버퍼 메모리(1500)는 스토리지 장치(1000)에 제공되는 논리 어드레스(LBA)와 불휘발성 메모리 장치(1400)의 어드레스 맵핑을 위한 맵핑 테이블(Mapping Table)이 저장될 수 있다. 버퍼 메모리(1500)에는 호스트로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1400)로부터 읽혀진 데이터가 일시 저장된다. 호스트의 읽기 요청시에 불휘발성 메모리 장치(1400)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1500)는 캐시된 데이터를 직접 호스트로 제공하는 캐시 기능을 지원한다. 버퍼 메모리(1500)는 대용량의 보조 기억 장치로 사용되는 스토리지 장치(1000)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1500)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
이상의 본 발명의 실시 예에 따르면, 스토리지 장치(1000)는 파워 오프 이벤트가 발생하면 스토리지 컨트롤러(1300)의 호스트와 인터페이싱을 수행하는 블록들의 전원을 차단 또는 비활성화시킬 수 있다. 그리고 스토리지 컨트롤러(1300)는 백업 동작시 많은 대기 전력을 소모하는 버퍼 메모리(1500)의 데이터를 에스램(SRAM)으로 이동한 후에 버퍼 메모리(1500)를 셧 다운(Shut-down)시킬 수 있다. 그리고 스토리지 컨트롤러(1300)는 에스램(SRAM)에 이동된 백업 데이터를 최소 전력 모드로 불휘발성 메모리 장치(1400)에 프로그램할 수 있다. 최소 전력 모드는, 예를 들면, 싱글 레벨 셀(SLC) 영역으로의 프로그램 또는 불휘발성 메모리 장치(1400)의 부분적인 셧 다운을 적용하여 웨이 인터리빙을 최소화하는 프로그램 방식이 포함될 수 있다. 본 발명의 실시 예에 따르면, 스토리지 장치(1000)의 백업 동작시 소비되는 전력을 최소화하여 백업 데이터의 신뢰성을 높일 수 있다. 더불어, 고용량화, 고성능화되는 스토리지 장치(1000)의 백업 데이터의 용량 증가에 유연하게 대처할 수 있다.
도 2는 도 1의 파워 로스 방지 장치의 구성 및 동작을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 파워 로스 방지 장치(1200)는 파워-오프 검출기(1220)와 파워 선택 스위치(PSSW, 1240)를 포함할 수 있다.
파워-오프 검출기(1220)는 외부 전원(External Power)의 레벨을 모니터링하고, 그 결과에 따라 파워 선택 신호(SEL) 및 파워 오프 검출 신호(PO_DET)를 생성한다. 파워-오프 검출기(1220)는 외부 전원(External Power)이 차단되거나 외부 전원(External Power)의 전압이 기준치 이하로 강하되는 경우를 감지하여 파워 오프 이벤트(Power-off Event)로 판단할 수 있다. 이 경우, 파워-오프 검출기(1220)는 파워 선택 스위치(1240)가 외부 전원이 아닌 보조 전원 장치(1100)를 선택하도록 제어한다. 그리고 파워-오프 검출기(1220)는 스토리지 컨트롤러(1300)의 백업 동작을 트리거(Trigger)하도록 파워 오프 검출 신호(PO_DET)를 전송할 것이다. 파워 오프 검출 신호(PO_DET)는, 예를 들면, 범용 입출력 인터페이스(GPIO)를 통해서 전달될 수 있을 것이다.
파워 선택 스위치(1240)는 파워-오프 검출기(1220)에서 제공되는 파워 선택 신호(SEL)에 따라 외부 전원(External Power) 또는 보조 전원 장치(1100)를 장치 전원(D_PWR)으로 제공한다. 외부 전원(External Power)이 정상적으로 공급되는 상황에서는 파워-오프 검출기(1220)는 파워 선택 스위치(1240)가 외부 전원(External Power)을 장치 전원으로 바이패스(Bypass)하도록 제어할 것이다. 하지만, 파워-오프 검출기(1220)가 파워 오프 이벤트를 검출하는 경우, 파워 선택 스위치(1240)는 보조 전원 장치(1100)를 장치 전원(D_PWR)으로 선택할 것이다.
보조 전원 장치(1100)는 외부 전원(External Power)이 공급되는 시점에는 외부 전원으로부터 제공되는 에너지를 축적할 수 있다. 예를 들면, 보조 전원 장치(1100)는 전하를 충전하는 하나 또는 복수의 커패시터들(1110, 1120, 1130)을 포함할 수 있다. 보조 전원 장치(1100)는 스토리지 장치(1000)의 백업 동작을 충분히 감당할 수 있는 양의 에너지를 저장할 수 있어야 한다. 따라서, 복수의 커패시터들(1110, 1120, 1130)은 안정성이 큰 용량 소자들로 형성될 수 있을 것이다. 예를 들면, 복수의 커패시터들(1110, 1120, 1130)은 전해 커패시터, 필름 커패시터, 탄탈 커패시터, 세라믹 커패시터(예를 들면, MLCC(Multi-Layer Ceramic Condenser))와 같은 소자들 중 적어도 하나로 제공될 수 있을 것이다. 하지만, 보조 전원 장치(1000)의 커패시터들(1110, 1120, 1130)의 종류가 상술한 것들에 한정되는 것은 아니다.
도 3은 도 1의 스토리지 컨트롤러의 구성을 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 스토리지 컨트롤러(1300)는 범용 입출력 인터페이스(GPIO, 1310), 중앙처리장치(CPU, 1320), 에스램(SRAM, 1330), 코드 메모리(CM, 1340), 호스트 인터페이스(1350), 버퍼 컨트롤러(1360), DMA 엔진(1370), 플래시 인터페이스(1380), 그리고 시스템 버스(1390)를 포함할 수 있다.
범용 입출력 인터페이스(1310)는 스토리지 컨트롤러(1300)와 직접 통신을 위한 인터페이스를 제공한다. 특히, 본 발명의 범용 입출력 인터페이스(1310)는 파워 로스 방지 로직(1200)으로부터 제공되는 파워 오프 검출 신호(PO_DET)를 수신하기 위한 용도로 사용될 수 있다. 범용 입출력 인터페이스(1310)는 파워 오프 검출 신호(PO_DET)를 수신하여 중앙처리장치(1320)에 전달할 수도 있다.
중앙처리장치(1320)는 마이크로-프로세서(Micro-processor)와 같은 프로세싱 유닛(Processing unit)을 포함할 수 있다. 중앙처리장치(1320)는 스토리지 컨트롤러(1300)의 제반 동작을 주관한다. 중앙처리장치(1320)는 스토리지 컨트롤러(1300)를 구동하기 위한 펌웨어(Firmware)를 구동하도록 구성된다. 중앙처리장치(1320)는, 예를 들면, 코드 메모리(1340)에 로드되는 다양한 펌웨어들을 실행할 수 있다. 특히, 중앙처리장치(1320)는 본 발명의 백업 매니저(1345)를 실행하여, 백업에 소요되는 에너지를 최소화시킬 수 있다. 백업 매니저(1345)의 실행에 따라, 중앙처리장치(1320)는 백업에 필요한 다양한 제어 정보를 나머지 구성들에게 전달할 수 있다.
예를 들면, 백업 매니저(1345)의 실행에 따라 중앙처리장치(1320)는 스토리지 장치(1000)의 파워 오프 이벤트를 검출한다. 그리고, 파워 오프 이벤트의 검출시 중앙처리장치(1320)는 미리 설정된 절차에 따라 호스트 인터페이스(1350)와 DMA 엔진(1370)과 같이 호스트와의 통신을 수행하는 구성들을 디스에이블(Disable) 또는 비활성화(Inactivate)시킨다. 그리고 중앙처리장치(1320)는 버퍼 메모리(1500)에 남아있는 백업 데이터를 스토리지 컨트롤러(1300) 내부에 존재하는 에스램(1330)으로 이동시킨다. 이어서, 중앙처리장치(1320)는 명령어 또는 제어 신호를 사용하여 버퍼 메모리(1500) 및 버퍼 컨트롤러(1360)의 전원을 셧 다운(Shut down)하거나 비활성화 모드로 설정한다. 마지막으로, 중앙처리장치(1320)는 에스램(1330)으로 이동된 백업 데이터를 불휘발성 메모리 장치(1400)에 프로그램한다. 이때에도, 중앙처리장치(1320)의 제어에 따라 플래시 인터페이스(1380)는 인터리빙 방식을 제어하여 백업 데이터를 최소 전력 모드로 불휘발성 메모리 장치(1400)에 프로그램할 수 있다.
에스램(1330)은 중앙처리장치(1320)의 동작 메모리, 캐시 메모리로 사용될 수 있다. 에스램(1330)은 중앙처리장치(1320)가 실행하는 코드들 및 명령들을 저장할 수 있다. 에스램(1330)은 중앙처리장치(1320)에 의해 처리되는 데이터를 저장할 수 있다. 특히, 에스램(1330)에는 호스트와의 인터페이싱을 위한 데이터가 저장될 수도 있다. 파워 오프 이벤트가 발생하면, 호스트와의 데이터 교환 기능은 차단되기 때문에, 실질적으로 에스램(1330)의 기능은 제한적이다. 이때, 본 발명의 실시 예에 따르면, 버퍼 메모리(1500)에 대기중인 백업 데이터가 에스램(1330)으로 이동(Move)될 수 있다. 즉, 파워 오프 이벤트가 발생하면, 전력 소모가 큰 버퍼 메모리(1500)를 대신하여 에스램(1330)이 백업 데이터를 버퍼링하게 된다.
코드 메모리(1340)에는 스토리지 컨트롤러(1300)를 구동 또는 제어하기 위한 코드(Code)들이나 펌웨어(Firmware)들을 로드된다. 예를 들면, 특정 목적을 위해 제조되는 스토리지 컨트롤러(1300)의 기본적인 기능들을 수행하기 위한 펌웨어가 코드 메모리(1340)에 로드될 수 있다. 특히, 본 발명의 코드 메모리(1340)에는 백업 매니저(1345)가 저장된다. 백업 매니저(1345)는 파워 오프 이벤트의 발생을 검출하면, 버퍼 메모리(1500)나 에스램(1330)의 데이터를 불휘발성 메모리 장치(1400)로 백업하기 위한 제반 절차를 제어한다. 그리고 백업 매니저(1345)가 중앙처리장치(1320)에 의해서 실행되면, 백업 데이터의 이동에 따라 호스트 인터페이스(1350), DMA 엔진(1370), 버퍼 메모리(1500), 버퍼 컨트롤러(1360), 그리고 불휘발성 메모리 장치(1400)의 일부 전원을 순차적으로 셧 다운 또는 차단된다. 여기서, 코드 메모리(1340)는 펌웨어나 코드를 로드할 수 있는 메모리를 통칭한다.
호스트 인터페이스(1350)는 호스트(Host)와 스토리지 컨트롤러(1300) 사이의 인터페이스를 제공한다. 파워 오프 이벤트가 발생하는 경우에는 스토리지 장치(1000)와 호스트와의 제반 통신은 차단된다. 따라서, 파워 오프 이벤트의 발생시에는 호스트 인터페이스(1350)는 디스에이블(Disable) 또는 비활성화(Inactivate)되어도 무방하다. 따라서, 이때 호스트와의 통신을 담당하는 호스트 인터페이스(1350)의 물리 계층(PHY)에 제공되는 전원이 차단될 수 있다. 또는 파워 오프 이벤트의 발생시 호스트 인터페이스(1350)의 물리 계층(PHY)에 제공되는 클록 신호가 차단될 수 있다. 호스트와 스토리지 컨트롤러(1300)는 다양한 표준 인터페이스들(Standardized Interfaces) 중 하나를 통해 연결될 수 있다. 여기에서, 표준 인터페이스들은 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral component Interconnection), PCIe(PCI Express), USB(Universal Serial Bus), IEEE 1394, UFS(Universal Flash Storage), Card 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함한다.
버퍼 컨트롤러(1360)는 버퍼 메모리(1500)의 읽기 및 쓰기 동작들을 제어한다. 예를 들면, 버퍼 컨트롤러(1360)는 중앙처리장치(1320)나 DMA 엔진(1370)의 제어에 따라 쓰기 데이터(Write data)나 읽기 데이터(Read data)를 버퍼 메모리(1500)에 일시 저장한다. 예를 들면, 버퍼 컨트롤러(1360)는 중앙처리장치(1320)의 제어에 따라 버퍼 메모리(1500)의 메모리 영역을 스트림 단위로 구분하여 관리할 수 있다. 버퍼 컨트롤러(1360)는 중앙처리장치(1320)의 제어에 따라 링 버퍼(Ring buffer) 또는 환상 버퍼(Circular buffer)로 구성되는 버퍼 메모리(1500)의 헤드 포인터(Head Pointer)나 테일 포인터(Tail Pointer)를 업데이트하고 외부로 출력할 수 있다. 특히, 버퍼 컨트롤러(1360)는 파워 오프 이벤트가 발생하면, 버퍼 메모리(1500)에 저장된 백업 데이터를 에스램(1330)으로 이동하기 위해 버퍼 메모리(1500)를 제어한다. 버퍼 메모리(1360)에 저장된 백업 데이터의 읽기 동작이 완료되면, 백업 매니저(1345)는 버퍼 메모리(1360)에 제공되는 전원을 셧 다운(Shut down)시킬 수 있다. 버퍼 메모리(1360)의 셧 다운은 물리적인 파워 게이팅 스위치(Power gating switch)를 사용하여 수행될 수 있다. 또는, 버퍼 메모리(1360)의 셧 다운을 위해 버퍼 메모리(1360)에 전원을 제공하는 PMIC(Power Management IC)나 전압 레귤레이터(Voltage Regulator)를 I2C와 같은 제어 채널을 사용하여 전원 차단 명령어를 전달하여 제어할 수 있다. 버퍼 메모리(1360)가 셧 다운되면, 버퍼 컨트롤러(1360)도 중앙처리장치(1320)의 제어에 따라 부분적으로 또는 전체적으로 전원이 차단되거나 클록 신호의 공급이 차단될 수 있다.
DMA 엔진(1370)은 스토리지 장치(1300)의 직접 메모리 액세스(DMA) 동작을 제어한다. DMA 엔진(1370)은 중앙처리장치(1320)의 제어에 따라 호스트 또는 다른 외부 장치와의 데이터 전송을 수행한다. 예를 들면, DMA 엔진(1370)은 DMA 전송 모드에서 버퍼 메모리(1500)에 로드되는 읽기 데이터를 스트림 형태로 호스트에 전송할 수 있다. 또는, DMA 엔진(1370)은 DMA 전송 모드에서 호스트에서 제공되는 스트림 데이터를 버퍼 메모리(1500)에 저장할 수 있다. 실질적으로 DMA 엔진(1370)은 호스트와 버퍼 메모리(1500)의 직접 메모리 액세스(DMA) 동작을 수행한다. 파워 오프 이벤트가 발생하는 시점에서는 실질적으로 직접 메모리 액세스(DMA) 동작은 차단된다. 따라서, 버퍼 메모리(1360)에 저장된 백업 데이터가 에스램(1330)으로 이동하면, DMA 엔진(1370)의 전원이나 클록 신호가 차단될 것이다.
플래시 인터페이스(1380)는 스토리지 컨트롤러(1300)와 불휘발성 메모리 장치(1400) 사이에서 인터페이싱을 제공한다. 예를 들면, 중앙처리장치(1320)에 의해서 처리된 데이터가 플래시 인터페이스(1380)를 통해 불휘발성 메모리 장치(1400)에 저장된다. 특히, 파워 오프 이벤트가 발생하면, 플래시 인터페이스(1380)는 불휘발성 메모리 장치(1400)와 최소 전력 모드로 통신한다. 플래시 인터페이스(1380)는 백업 데이터를 채널들(CH1, CH2, …, CHn) 각각에 연결된 불휘발성 메모리 장치(1400)와 최소 인터리빙 모드로 데이터를 전달할 수 있다. 플래시 인터페이스(1380)는 중앙처리장치(1320)의 제어에 따라 불휘발성 메모리 장치(1400)에 대한 인터리빙 방식을 조정할 수 있다. 중앙처리장치(1320)의 제어에 따라, 플래시 인터페이스(1380)는 채널들 각각의 웨이(Way) 인터리빙 수를 필요한 범위 내에서 최소로 줄일 수 있다.
이상에서 예시적으로 설명된 스토리지 컨트롤러(1300)의 구성들이 설명되었다. 본 발명의 스토리지 컨트롤러(1300)의 기능에 따르면, 파워 오프 이벤트가 발생하면, 백업 동작에 필요한 최소한의 구성들에만 남기고 백업과 관련없는 구성들의 전원을 차단 또는 비활성화시킬 수 있다. 따라서, 파워 오프 이벤트가 발생하면 보조 전원 장치(1100)의 한정된 에너지가 효율적으로 사용될 수 있다.
도 4는 도 3의 스토리지 컨트롤러가 수행하는 본 발명의 실시 예에 따른 백업 방법을 예시적으로 보여주는 순서도이다. 도 4를 참조하면, 스토리지 컨트롤러(1300)는 파워 오프 이벤트가 발생하면, 최소한의 전력 소모를 위한 순차적인 백업 동작을 수행한다.
S110 단계에서, 스토리지 컨트롤러(1300)는 파워 오프 이벤트의 발생 여부를 모니터링한다. 스토리지 컨트롤러(1300)는 파워 로스 방지 로직(1200, 도 1 참조)으로부터 제공되는 파워 오프 검출 신호(PO_DET)를 모니터링한다. 파워 로스 방지 로직(1200)은 외부 전원(External Power)이 차단되거나 외부 전원의 전압이 기준치 이하로 낮아지면, 파워 오프 검출 신호(PO_DET)를 스토리지 컨트롤러(1300)에 제공할 것이다. 그리고 파워 로스 방지 로직(1200)은 장치 전원(D_PWR)으로 보조 전원 장치(1100)를 사용한다.
S120 단계에서, 스토리지 컨트롤러(1300)는 파워 로스 방지 로직(1200)으로부터 파워 오프 검출 신호(PO_DET)를 모니터링하여 파워 오프 이벤트의 발생을 감지한다. 만일, 파워 오프 검출 신호(PO_DET)가 활성화되면, 본 발명의 백업 동작의 실행을 위해 절차는 S130 단계로 이동한다. 반면, 파워 오프 검출 신호(PO_DET)가 여전히 비활성화 상태이면, 절차는 S110 단계로 복귀하여 파워 오프 이벤트에 대한 모니터링을 지속한다.
S130 단계에서, 스토리지 컨트롤러(1300)는 호스트와의 통신을 위한 스토리지 장치(1000)의 제반 구성의 전원을 차단하거나 비활성화시킨다. 예를 들면, 스토리지 컨트롤러(1300)는 호스트와의 인터페이싱을 담당하는 호스트 인터페이스(1350)에 제공되는 클록 신호를 차단할 수 있다. 예를 들면, 스토리지 컨트롤러(1300)는 호스트 인터페이스(1350) 내에 구비된 호스트와의 데이터 교환을 위해 사용되는 위상 고정 루프(PLL)를 비활성화시킬 수 있다. 더불어, 호스트와의 직접 메모리 액세스(DMA)를 담당하는 DMA 엔진(1370)의 전원도 차단할 수 있다. 이러한 전원의 차단은 기능 블록(Intellectual Property: IP) 단위의 명령어나 파워 게이팅 제어를 통해서 달성될 수 있을 것이다.
S140 단계에서, 버퍼 메모리(1500) 상에 존재하는 데이터의 에스램(1330)으로의 이동이 수행된다. 주로 동기식 디램(SDRAM)으로 구성되는 버퍼 메모리(1500)는 지속적인 리프레쉬가 필요하기 때문에 상대적으로 큰 전력을 소비한다. 따라서, 전력 소모를 최소화하기 위해서는 버퍼 메모리(1500)에 남아있는 백업 데이터는 상대적으로 전력 소모가 적은 에스램(1330)으로 이동해야 한다.
S150 단계에서, 백업 데이터의 이동이 완료된 버퍼 메모리(1500)의 셧 다운이 수행된다. 버퍼 메모리(1500)의 셧 다운을 위해, 버퍼 메모리(1500)로의 전원을 제공하는 전원 라인상에 존재하는 파워 게이팅 스위치를 제어할 수 있다. 또는 버퍼 메모리(1500)의 셧 다운을 위해, 버퍼 메모리(1500)에 전원을 제공하는 PMIC나 전압 레귤레이터를 제어하기 위한 I2C 인터페이스의 명령어를 사용할 수 있을 것이다.
S160 단계에서, 버퍼 컨트롤러(1360)가 셧 다운된다. 버퍼 메모리(1500)와의 인터페이싱을 담당하는 버퍼 컨트롤러(1360)는 버퍼 메모리(1500)의 셧 다운 이후에는 더 이상 불필요하게 된다. 즉, 버퍼 컨트롤러(1360)의 유휴 상태(Idle state)에서의 전력 소모를 차단하기 위해 버퍼 컨트롤러(1360)의 전원을 차단하거나, 버퍼 컨트롤러(1360)가 비활성화될 수 있을 것이다.
S170 단계에서, 중앙처리장치(1320)는 플래시 인터페이스(1380)와 불휘발성 메모리 장치(1400) 사이의 통신을 최소 전력 모드로 설정한다. 예를 들면, 중앙처리장치(1320)는 플래시 인터페이스(1380)의 인터리빙 모드를 최소 대역폭에 대응하는 모드로 조정할 수 있다. 예를 들면, 외부 전원에 의해서 구동되는 경우, 플래시 인터페이스(1380)는 최대 성능을 제공하기 위한 인터리빙 모드로 불휘발성 메모리 장치(1400)와 통신할 수 있을 것이다. 이때, 플래시 인터페이스(1380)의 인터리빙 모드는 채널들 각각에 연결된 모든 불휘발성 메모리 장치들을 사용하는 인터리빙 모드(예를 들면, 32 Way 모드)를 사용할 수 있을 것이다. 하지만, 파워 오프 이벤트가 발생하면, 플래시 인터페이스(1380)는 성능보다는 최소 전력을 사용하기 위한 인터리빙 모드로 불휘발성 메모리 장치(1400)와 통신해야 한다. 이때, 플래시 인터페이스(1380)의 인터리빙 모드는 최소한의 대역폭만을 제공하는 인터리빙 모드(예를 들면, 8 Way 모드)를 사용할 수 있을 것이다. 물론, 이때 사용하지 않는 채널 또는 웨이에 대응하는 불휘발성 메모리 장치들은 비활성화 모드로 설정되거나 또는 이들 불휘발성 메모리 장치에 제공되는 전원이 차단될 수 있다.
S180 단계에서, 에스램(1330)에 저장된 백업 데이터는 보조 전원이 제공되는 불휘발성 메모리 장치에 프로그램된다. 백업 데이터의 사이즈가 상대적으로 크지 않고, 전원이 제공되는 불휘발성 메모리 장치(1400)는 일부이기 때문에, 보조 전원 장치(1100)에서 제공되는 전력으로도 백업에 소요되는 전력을 충분히 커버할 수 있다.
이상에서는 본 발명의 실시 예에 따른 스토리지 장치(1000)의 백업 방법이 간략히 설명되었다. 파워 오프 이벤트가 발생하면, 백업에 사용되지 않는 구성들과, 백업 경로에서 사용 완료된 구성들의 전원을 차단함으로써 보조 전원 장치(1100)의 한정된 에너지를 효율적으로 사용할 수 있다.
도 5는 도 3의 호스트 인터페이스를 예시적으로 보여주는 블록도이다. 도 5를 참조하면, 호스트 인터페이스(1350)는 호스트 인터페이스 물리 계층(1352), 호스트 인터페이스 로직(1354), 그리고 클록 발생기(1356)을 포함할 수 있다.
호스트 인터페이스 물리 계층(1352)은 호스트의 고속 인터페이스 규격을 지원한다. 호스트 인터페이스 물리 계층(1352)에 의해서 스토리지 장치(1000)는 호스트의 인터페이스 규격(예를 들면, SATA, SAS, PCIe, USB)에 따른 통신을 수행할 수 있다. 호스트 인터페이스 물리 계층(1352)은 호스트와의 통신을 위한 전송 프로토콜에 따라 출력 신호를 송신하고, 호스트로부터 전달되는 수신 신호를 수신할 수 있다. 예를 들면, 호스트 인터페이스 물리 계층(1352)은 MIPI M-PHY를 포함할 수 있다
호스트 인터페이스 로직(1354)은 호스트 인터페이스 물리 계층(1352)의 전송 프로토콜을 지원하기 위한 제어 동작 및 버퍼링을 수행한다. 예를 들면, 버퍼 메모리(1500)로부터 호스트로 데이터를 전송하는 경우, 호스트 인터페이스 로직(1354)은 데이터를 전송하기 위한 전송 프로토콜에 대응하는 명령어나 인터럽트와 같은 제어 동작을 수행할 수 있다.
클록 발생기(1356)는 호스트 인터페이스(1350)의 구동을 위한 클록 신호들(CLK0, CLK1)을 생성한다. 예를 들면, 클록 발생기(1356)는 위상 고정 루프(PLL) 회로로 구성될 수 있다. 클록 발생기(1356)는 디스에이블 신호(DIS)에 응답하여 클록 신호들(CLK0, CLK1) 중 적어도 하나의 생성을 중단할 수 있다. 만일, 클록 신호(CLK0)가 비활성화되는 경우, 호스트 인터페이스 물리 계층(1352)의 동작이 중단된다. 클록 신호(CLK1)가 비활성화되는 경우, 호스트 인터페이스 로직(1354)의 동작이 중단될 것이다.
파워 오프 이벤트가 발생하면, 호스트와의 데이터 송수신 동작은 전혀 고려될 필요가 없다. 이때, 스토리지 컨트롤러(1300) 내에서 호스트와의 통신을 담당하는 호스트 인터페이스 물리 계층(1352)과 호스트 인터페이스 로직(1354)은 사용되지 않는다. 백업 매니저(1345)의 구동에 따라 중앙처리장치(1320)는 호스트 인터페이스(1350)의 전원을 차단하거나, 클록 발생기(1356)를 비활성화(Inactivate) 또는 디스에이블(Disable)시킬 수 있다. 따라서, 파워 오프 이벤트가 발생하는 경우에 호스트 인터페이스(1350)에서 발생하는 유휴 전력(Idle Power)의 소모를 차단할 수 있다.
도 6은 버퍼 메모리로부터 에스램으로의 백업 데이터의 이동을 간략히 보여주는 도면이다. 도 6을 참조하면, 중앙처리장치(1320)는 버퍼 메모리(1500)에 남아있는 백업 데이터를 에스램(1330)으로 이동하도록 버퍼 컨트롤러(1360)를 제어할 수 있다.
호스트 인터페이스 물리 계층(1352) 및 DMA 엔진(1370)의 전원 또는 클록 차단 이후에, 버퍼 메모리(1500)의 백업 데이터의 에스램(1330)으로의 이동(Moving)이 시작된다. 여전히 버퍼 메모리(1500)로의 액세스는 가능해야 하기 때문에, 버퍼 컨트롤러(1360)의 전원은 제공되고 있어야 한다. 먼저, 중앙처리장치(1320)는 버퍼 메모리(1500)에 남아있는 백업 데이터를 읽어 내도록 버퍼 컨트롤러(1360)를 제어한다. 버퍼 컨트롤러(1360)는 중앙처리장치(1320)의 제어에 따라 버퍼 메모리(1500)에 존재하는 백업 데이터(Backup data)를 읽어낸다. 그리고 버퍼 컨트롤러(1360)는 중앙처리장치(1320)의 제어에 따라 읽어낸 백업 데이터(Backup data)를 에스램(1330)으로 전달할 것이다.
중앙처리장치(1320)의 제어에 따라 에스램(1330)은 백업 데이터를 저장할 것이다. 만일, 에스램(1330)에 백업 데이터를 저장하기 위한 메모리가 부족한 경우에는 스토리지 컨트롤러(1300) 내에 존재하는 캐시 메모리들이나 동작 메모리들을 활용할 수 있을 것이다. 또는, 백업 데이터 중에서 중요도에 따라 선별적으로 에스램(1330)에 저장될 수도 있다. 예를 들면, 맵핑 데이터와 같은 메타 데이터들이 우선적으로 에스램(1330)에 저장될 수도 있을 것이다.
도 7은 본 발명의 불휘발성 메모리 장치와 플래시 컨트롤러를 예시적으로 보여주는 블록도이다. 도 7을 참조하면, 플래시 인터페이스(1380)는 복수의 채널(CH1, CH2, …, CHn)을 통해서 불휘발성 메모리 장치(1400)와 연결될 수 있다.
제 1 채널(CH1)에는 m개(m은 자연수)의 불휘발성 메모리 장치들(MEM_11, MEM_12, MEM_1m) 각각의 입출력 포트가 연결된다. 제 2 채널(CH2) 내지 제 n 채널(CHn) 각각에도 동일한 방식으로 복수의 불휘발성 메모리 장치들(NVM_ij)이 연결된다. 그리고 동일한 채널에 연결된 불휘발성 메모리 장치들은 입출력 포트들을 공유한다.
파워 오프 이벤트가 발생하면, 중앙처리장치(1320)는 플래시 인터페이스(1380)와 불휘발성 메모리 장치(1400)와의 통신 모드를 최소 전력 모드로 설정할 수 있다. 예를 들면, 플래시 인터페이스(1380)는 채널/웨이 인터리빙 방식을 최소 전력 모드에 대응하는 방식으로 인터리빙 모드를 재설정할 수 있다. 예를 들면, 외부 전원을 사용하는 정상 모드에서는 플래시 인터페이스(1380)는 n 개의 채널과 m 개의 웨이를 모두 사용하는 풀 채널/웨이 인터리빙(Fully interleaving) 방식으로 불휘발성 메모리 장치(1400)와 통신할 수 있을 것이다. 하지만, 파워 오프 이벤트가 발생하면, 플래시 인터페이스(1380)는 n 개의 채널 중에서 일부 또는 m 개의 웨이들 중 일부만을 사용하는 부분 인터리빙(Partial interleaving) 방식으로 불휘발성 메모리 장치(1400)와 통신할 수 있을 것이다.
백업 데이터의 프로그램에 소요되는 불휘발성 메모리 장치(1400)의 메모리 사이즈는 상대적으로 크지 않다. 따라서, 보조 전원 장치(1100)로부터 장치 전원을 제공받는 백업 동작에서는 소모 전력이 큰 풀 채널/웨이 인터리빙(Fully interleaving) 방식을 사용할 필요는 없다. 오히려, 최소 전력을 사용할 수 있는 부분 인터리빙 방식으로 인터리빙 모드를 전환하더라도 백업 데이터의 프로그램은 가능하다.
도 8은 본 발명의 인터리빙 모드의 변경을 보여주는 테이블이다. 도 8을 참조하면, 플래시 인터페이스(1380)는 파워 오프 이벤트가 발생한 경우에 설정되는 백업 모드(Back mode)와 외부 전원이 제공되는 정상 모드(Normal Mode)로 구분하여 동작할 수 있다.
정상 모드(Normal Mode)에서는 모든 웨이들이 인터리빙에 적용되는 풀파워 모드에 대응한다. 예를 들면, 하나의 채널당 32개의 불휘발성 메모리 장치들이 연결되는 경우, 채널에 연결된 모든 불휘발성 메모리 장치들이 인터리빙되는 32 웨이(32 Way) 인터리빙 방식이 적용될 수 있다.
백업 모드(Back mode)에서는 채널의 일부 불휘발성 메모리 장치들만이 인터리빙에 사용되고, 나머지 불휘발성 메모리 장치들은 전원이 차단되거나 스탠바이 명령을 통해서 비활성화 모드로 변경될 수 있다. 따라서, 플래시 인터페이스(1380)와 불휘발성 메모리 장치는 최소 전력 모드로 동작할 수 있다.
이상에서는 웨이 인터리빙 방식에서 최소 전력을 소모하는 인터리빙 모드를 예로 들어 본 발명의 이점이 설명되었다. 하지만, 이러한 인터리빙 방식은 예시에 지나지 않으며, 소모 전력을 최소화하기 위한 다양한 채널/웨이 인터리빙 방식으로 조정될 수 있음은 잘 이해될 것이다.
도 9a, 도 9b 및 도 9c는 본 발명의 백업 동작시 플래시 인터페이스와 불휘발성 메모리 장치 사이의 전원 연결 방법을 예시적으로 보여주는 도면들이다.
도 9a를 참조하면, 플래시 인터페이스(1380)는 파워 오프 이벤트가 발생하고, 중앙처리장치(1320, 도 3 참조)로부터 파셜 셧 다운 명령(PSD_CMD)을 수신할 수 있다. 이때, 플래시 인터페이스(1380)는 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)의 상태는 유지하고, 불휘발성 메모리 장치들(NVM1~NVM32)로는 스탠바이 명령어(SB_CMD)를 전달할 수 있다.
반면, 외부 전원(External Power)이 정상적으로 스토리지 장치(1000)에 제공되는 정상 모드에서는 불휘발성 메모리 장치들(NVM1~NVM32)에 별도의 상태 제어 명령어를 전달하지 않을 수 있다. 따라서, 불휘발성 메모리 장치들(NVM1~NVM32) 모두는 정상적으로 인터리빙을 수행할 수 있다.
하지만, 파워 오프 이벤트가 발생하면, 중앙처리장치(1320)로부터 제공되는 파셜 셧 다운 명령(PSD_CMD)에 따라 플래시 인터페이스(1380)는 일부 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)에만 스탠바이 명령어(SB_CMD)를 전달할 것이다. 따라서, 백업에 사용될 일부 불휘발성 메모리 장치들(NVM1~NVM8)만이 활성화 상태를 유지하고, 불휘발성 메모리 장치들(NVM9~NVM32)은 스탠바이 모드로 천이할 것이다.
여기서, 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)은 웨이 인터리빙 모드에서 웨이(Way1~Way8)를 구성하는 장치들일 수 있다. 그리고 불휘발성 메모리 장치들(NVM9~NVM32)은 웨이 인터리빙 모드에서 나머지 웨이들(Way9~Way32)을 구성하는 장치들일 수 있다.
도 9b를 참조하면, 플래시 인터페이스(1380)는 파워 오프 이벤트가 발생하고, 중앙처리장치(1320, 도 3 참조)로부터 파셜 셧 다운 명령(PSD_CMD)을 수신할 수 있다. 이때, 플래시 인터페이스(1380)는 불휘발성 메모리 장치(1400)에 전원을 공급하기 위한 구성(예를 들면, 전압 레귤레이터)을 제어하여 백업에 사용될 일부 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)에만 전원을 제공할 수 있다.
외부 전원(External Power)이 정상적으로 스토리지 장치(1000)에 제공되는 정상 모드에서는 플래시 인터페이스(1380)는 제 1 및 제 2 전압 레귤레이터들(1382, 1384)이 모두 활성화될 것이다. 그러면, 불휘발성 메모리 장치들(NVM1~NVM32) 모두에 전원이 정상적으로 공급될 수 있다.
하지만, 파워 오프 이벤트가 발생하면, 중앙처리장치(1320)로부터 제공되는 파셜 셧 다운 명령(PSD_CMD)에 따라 플래시 인터페이스(1380)는 일부 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)에만 전원을 공급할 수 있다. 즉, 플래시 인터페이스(1380)는 파셜 셧 다운 명령(PSD_CMD)에 응답하여 제 1 전압 레귤레이터(1382)만을 활성화시키고, 제 2 전압 레귤레이터(1384)는 비활성화시킬 수 있다. 따라서, 전원은 백업에 사용될 일부 불휘발성 메모리 장치들(NVM1~NVM8)에게만 제공될 것이다.
여기서, 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)은 웨이 인터리빙 모드에서 웨이(Way1~Way8)를 구성하는 장치들일 수 있다. 그리고 불휘발성 메모리 장치들(NVM9~NVM32)은 웨이 인터리빙 모드에서 나머지 웨이들(Way9~Way32)을 구성하는 장치들일 수 있다. 즉, 파워 오프 이벤트가 발생하면, 백업을 위해 채널 또는 웨이 인터리빙 방식이 최소 전력을 사용하는 모드로 변경될 수 있다.
도 9c를 참조하면, 플래시 인터페이스(1380)는 파워 오프 이벤트가 발생하면, 불휘발성 메모리 장치(1400)의 전원을 부분적으로만 제공할 수 있다. 이를 위해, 플래시 인터페이스(1380)는 일부 불휘발성 메모리 장치들에 선택적으로 전원을 공급하기 위한 파워 게이팅 스위치들(SW1, SW2)을 포함할 수 있다.
외부 전원(External Power)이 정상적으로 스토리지 장치(1000)에 제공되는 정상 모드에서는 플래시 인터페이스(1380)는 파워 게이팅 스위치들(SW1, SW2)을 모두 턴온 상태로 유지할 것이다. 이때에는 외부 전원(External Power)이 장치 전원(D_PWR)으로 바이패스될 것이다.
반면, 파워 오프 이벤트가 발생하면, 중앙처리장치(1320)의 제어에 플래시 인터페이스(1380)는 장치 전원(D_PWR)을 백업에 사용될 일부 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)에게만 제공할 수 있다. 이를 위해, 중앙처리장치(1320)의 제어에 따라 플래시 인터페이스(1380)는 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)에 전원을 공급하는 파워 게이팅 스위치(SW1)를 턴온(Turn-on)시킬 수 있다. 그리고 플래시 인터페이스(1380)는 백업에 사용되지 않는 나머지 불휘발성 메모리 장치들(예를 들면, NVM9~NVM32)에 전원을 공급하는 파워 게이팅 스위치(SW2)를 턴오프(Turn-off)시킬 수 있다.
여기서, 불휘발성 메모리 장치들(예를 들면, NVM1~NVM8)은 웨이 인터리빙 모드에서 웨이(Way1~Way8)를 구성하는 장치들일 수 있다. 그리고 불휘발성 메모리 장치들(NVM9~NVM32)은 웨이 인터리빙 모드에서 나머지 웨이들(Way9~Way32)을 구성하는 장치들일 수 있다. 즉, 파워 오프 이벤트가 발생하면, 백업을 위해 채널 또는 웨이 인터리빙 방식이 최소 전력을 사용하는 모드로 변경될 수 있다.
이상에서는 백업을 위해 최소 전력을 사용하는 인터리빙 모드가 웨이 인터리빙을 축소하는 방향으로 설명되었다. 하지만, 본 발명에서는 다양한 방식으로 채널 또는 웨이 인터리빙 모드가 최소 전력 소모 조건으로 조정될 수 있음은 잘 이해될 것이다.
도 10은 본 발명의 백업 데이터가 저장되는 불휘발성 메모리 장치의 메모리 영역을 간략히 보여주는 블록도이다. 도 10을 참조하면, 에스램(1330)에 저장된 백업 데이터는 선택된 불휘발성 메모리 장치(1410)의 싱글 레벨 셀(SLC) 영역으로 프로그램될 수 있다.
불휘발성 메모리 장치(1410)는 하나의 셀에 저장되는 비트 수가 다른 복수의 영역을 포함할 수 있다. 예를 들면, 불휘발성 메모리 장치(1410)는 하나의 셀에 1-비트가 저장되는 싱글 레벨 셀(SLC) 영역(1412)과 하나의 셀에 3-비트의 데이터가 저장되는 트리플 레벨 셀(TLC) 영역(1414)을 포함할 수 있다. 일반적으로 트리플 레벨 셀(TLC) 영역(1414)으로의 프로그램은 상대적으로 큰 전력이 필요하다. 반면, 싱글 레벨 셀(SLC) 영역(1412)으로의 프로그램에 소요되는 전력은 상대적으로 적다. 따라서, 한정된 에너지로 동작하는 백업 모드에서는 에스램(1330)에 저장된 백업 데이터는 불휘발성 메모리 장치(1410)의 싱글 레벨 셀(SLC) 영역(1412)으로 프로그램되는 것이 바람직하다.
도 11은 본 발명의 백업 방법을 사용할 수 있는 스토리지 장치들의 다른 예를 간략히 보여주는 블록도이다. 도 11을 참조하면, 스토리지 장치(2000)는 호스트(Host)의 제어에 따라 동작할 수 있다. 예를 들어, 스토리지 장치(2000)는 메모리 컨트롤러(2210) 및 불휘발성 메모리 장치(2220)를 포함할 수 있다. 메모리 컨트롤러(2210)는 호스트(Host)로부터 수신된 커맨드에 응답하여 동작할 수 있다. 예를 들어, 메모리 컨트롤러(2210)는 호스트(Host)로부터 쓰기 커맨드 및 쓰기 데이터를 수신하고, 수신된 쓰기 커맨드에 응답하여, 수신된 쓰기 데이터를 불휘발성 메모리 장치(2220)에 저장할 수 있다.
또는 메모리 컨트롤러(2210)는 호스트(Host)로부터 읽기 커맨드를 수신하고, 수신된 읽기 커맨드에 응답하여, 불휘발성 메모리 장치(2220)에 저장된 데이터를 읽을 수 있다. 이후에, 메모리 컨트롤러(2210)는 읽은 데이터를 호스트(Host)로 전송할 수 있다. 예시적인 실시 예에서, 불휘발성 메모리 장치(2220)는 낸드 플래시 메모리 장치일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
예시적인 실시 예에서, 호스트(Host)는 JEDEC 표준에 의해 정의된 UFS(universal flash storage) 인터페이스를 기반으로 스토리지 장치(2000)와 통신할 수 있다. 예를 들어, 호스트(Host) 및 스토리지 장치(2000)는 UFS 프로토콜 정보 단위(UPIU)(UFS protocol information unit)의 형태를 갖는 패킷을 교환할 수 있다. UPIU는 호스트(Host) 및 스토리지 장치(2000) 사이의 인터페이스(예를 들어, UFS 인터페이스)에 의해 정의된 다양한 정보를 포함할 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
예시적으로 스토리지 장치(2000)는 파워 오프 이벤트가 발생하면, 호스트 인터페이스와 DMA 엔진의 전원을 먼저 차단할 수 있다. 이어서, 에스램이나 디램에 존재하는 백업 데이터는 불휘발성 메모리 장치(2220)로 프로그램될 것이다. 이때, 불휘발성 메모리 장치(2220)는 최소 전력을 소모하기 위한 인터리빙 방식으로 조정될 수 있을 것이다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 카드를 보여주는 블록도이다. 도 12를 참조하면, 메모리 카드(3000)는 메모리 컨트롤러(3210) 및 불휘발성 메모리(3220)를 포함한다. 메모리 카드(3000)는 SD(Secure Digital), MMC(MultiMedia Card)나 착탈 가능한 이동식 저장 장치(예를 들면, USB 메모리 등)와 같이 불휘발성 메모리를 포함하는 저장 장치를 모두 포함한다.
메모리 컨트롤러(3210)는 중앙처리장치(3211), 에스램(3213), 호스트 인터페이스(3215), 에러 정정 블록(3217), 플래시 인터페이스(3219)를 포함한다. 그리고 도시되지는 않았지만 보조 전원 장치를 포함할 것이다. 보조 전원 장치는 메모리 컨트롤러(3210) 내에 위치할 수도 있고, 밖에 위치할 수도 있다. 보조 전원 장치는 앞의 실시 예들과 동일한 구성 및 동작 원리를 갖는다.
메모리 카드(3000)는 호스트와 연결되어 사용된다. 메모리 카드(3000)는 호스트 인터페이스(3215)를 통해 호스트와 데이터를 주고 받으며, 플래시 인터페이스(3219)를 통해 불휘발성 메모리(3220)와 데이터를 주고 받는다. 메모리 카드(3000)는 호스트로부터 전원을 공급받아서 내부 동작을 수행한다. 보조 전원 장치는 호스트로부터의 전원이 갑자기 차단되는 경우에, 에스램(3213)로부터 불휘발성 메모리(3220)로의 데이터 백업 동작 등을 수행하기 위한 보조 전원을 제공한다. 특히, 메모리 컨트롤러(3210)는 데이터 백업 동작시 백업 경로를 구성하지 않는 구성들의 전원을 차단한 후에 데이터 백업을 수행할 수 있다. 즉, 메모리 컨트롤러(3210)는 파워 오프 이벤트가 발생하면, 데이터 백업 경로를 제외하고는 전원 또는 클록 신호를 차단할 수 있다. 그리고 메모리 컨트롤러(3210)는 불휘발성 메모리 장치(3220)와의 인터리빙 방식도 최소 전력을 소모하는 방식으로 조정할 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 스토리지 컨트롤러, 버퍼 메모리, 그리고 복수의 불휘발성 메모리 장치들을 포함하는 스토리지 장치의 데이터 백업 방법에 있어서:
    상기 스토리지 장치에 제공되는 외부 전원의 파워 오프 이벤트를 검출하는 단계;
    상기 파워 오프 이벤트에 응답하여 상기 스토리지 컨트롤러의 호스트 인터페이스를 비활성화(Inactivate)시키는 단계;
    상기 버퍼 메모리에 저장된 백업 데이터를 상기 스토리지 컨트롤러 내의 에스램으로 이동시키는 단계;
    상기 버퍼 메모리의 전원을 차단하거나 또는 비활성화하는 단계;
    상기 복수의 불휘발성 메모리 장치들의 인터리빙 모드를 최소 전력 모드로 설정하는 단계; 그리고
    상기 에스램에 이동된 백업 데이터를 상기 불휘발성 메모리 장치로 프로그램하는 단계를 포함하는 데이터 백업 방법.
  2. 제 1 항에 있어서,
    상기 파워 오프 이벤트의 검출시, 상기 스토리지 장치의 장치 전원이 외부 전원으로부터 보조 전원 장치로 변경되는 데이터 백업 방법.
  3. 제 1 항에 있어서,
    상기 호스트 인터페이스를 비활성화(Inactivate)시키는 단계에서, 상기 스토리지 컨트롤러에 구비된 직접 메모리 액세스(DMA) 엔진의 전원이 차단되는 데이터 백업 방법.
  4. 제 1 항에 있어서,
    상기 버퍼 메모리의 전원이 차단 또는 비활성화된 후에 상기 버퍼 메모리를 제어하는 버퍼 컨트롤러의 전원을 차단하거나 비활성화하는 단계를 더 포함하는 데이터 백업 방법.
  5. 제 1 항에 있어서,
    상기 호스트 인터페이스를 비활성화(Inactivate)시키는 단계는, 상기 호스트 인터페이스를 구동하는 클록 신호를 생성하는 클록 발생기를 비활성화시키는 단계를 포함하는 데이터 백업 방법.
  6. 제 1 항에 있어서,
    상기 인터리빙 모드를 최소 전력 모드로 설정하는 단계에서, 상기 복수의 불휘발성 메모리 장치들과 상기 메모리 컨트롤러 사이의 채널 또는 웨이의 인터리빙 단위가 미리 설정된 인터리빙 단위들 중에서 최소 단위로 설정되는 데이터 백업 방법.
  7. 제 6 항에 있어서,
    상기 백업 데이터는 상기 인터리빙 단위로 선택된 불휘발성 메모리 장치의 싱글 레벨 셀(SLC) 영역에 프로그램되는 데이터 백업 방법.
  8. 보조 전원 장치를 포함하는 스토리지 장치에 있어서:
    외부 전원을 모니터링하여 파워 오프 이벤트를 검출하고, 상기 파워 오프 이벤트가 검출되면, 파워 오프 검출 신호를 생성하고, 상기 보조 전원 장치를 장치 전원으로 선택하는 파워 로스 방지 로직 회로;
    상기 스토리지 장치의 저장 매체로 제공되는 복수의 불휘발성 메모리 장치들;
    상기 복수의 불휘발성 메모리 장치들과 호스트 사이에서 교환되는 데이터를 일시 저장하는 버퍼 메모리; 그리고
    상기 파워 오프 검출 신호에 응답하여 상기 호스트와의 통신을 수행하는 상기 버퍼 메모리에 저장된 백업 데이터를 내부 메모리에 이동한 후에 상기 복수의 불휘발성 메모리 장치들 중 적어도 하나에 프로그램하는 스토리지 컨트롤러를 포함하되,
    상기 스토리지 컨트롤러는 호스트 인터페이스를 비활성화(Inactivate)시키고, 상기 백업 데이터의 이동에 따라 상기 버퍼 메모리의 전원을 차단하거나 비활성화하는 스토리지 장치.
  9. 제 8 항에 있어서,
    상기 스토리지 컨트롤러는:
    상기 파워 오프 검출 신호에 응답하여 백업 동작을 수행하는 중앙처리장치;
    상기 중앙처리장치의 제어에 따라 상기 버퍼 메모리를 제어하는 버퍼 컨트롤러; 그리고
    채널 단위로 상기 복수의 불휘발성 메모리 장치들과 연결되며, 채널(Channel) 또는 웨이(Way) 인터리빙 방식으로 상기 복수의 불휘발성 메모리 장치들에 액세스하는 플래시 컨트롤러를 포함하되,
    상기 중앙처리장치는 상기 백업 데이터가 상기 내부 메모리에 저장된 후에는 상기 버퍼 컨트롤러의 전원을 차단하거나 비활성화하는 스토리지 장치.
  10. 제 9 항에 있어서,
    상기 스토리지 컨트롤러는 상기 호스트와 직접 메모리 액세스(DMA) 동작을 제어하는 직접 메모리 액세스(DMA) 엔진을 포함하고, 상기 중앙처리장치는 상기 호스트 인터페이스의 비활성화(Inactivate)와 함께 상기 직접 메모리 액세스(DMA) 엔진을 비활성화(Inactivate)시키는 스토리지 장치.
  11. 제 9 항에 있어서,
    상기 호스트 인터페이스는 상기 호스트와의 통신을 위한 클록 신호를 제공하는 클록 발생기를 포함하고, 상기 중앙처리장치는 상기 클록 발생기를 턴오프시켜 상기 호스트 인터페이스를 비활성화(Inactivate)시키는 스토리지 장치.
  12. 제 9 항에 있어서,
    상기 내부 메모리는 에스램(SRAM)을 포함하는 스토리지 장치.
  13. 제 9 항에 있어서,
    상기 플래시 인터페이스는 상기 복수의 불휘발성 메모리 장치들에 적어도 2개의 인터리빙 모드로 액세스하며, 상기 백업 동작시에는 상기 적어도 2개의 인터리빙 모드 중에서 최소 전력에 대응하는 인터리빙 모드로 상기 복수의 불휘발성 메모리 장치들에 액세스하는 스토리지 장치.
  14. 제 13 항에 있어서,
    상기 최소 전력에 대응하는 인터리빙 모드시, 상기 플래시 인터페이스는 상기 복수의 불휘발성 메모리 장치들의 싱글 레벨 셀(SLC) 영역에 상기 백업 데이터를 프로그램하는 스토리지 장치.
  15. 제 13 항에 있어서,
    상기 최소 전력에 대응하는 인터리빙 모드시, 선택되지 않은 불휘발성 메모리 장치들의 전원은 차단되거나 비활성화되는 스토리지 장치.
  16. 파워 오프 이벤트시 보조 전원 장치를 사용하여 데이터 백업을 수행하는 스토리지 장치의 데이터 백업 방법에 있어서:
    상기 파워 오프 이벤트에 응답하여 스토리지 컨트롤러의 호스트 인터페이스를 비활성화(Inactivate)시키는 단계;
    불휘발성 메모리 장치에 액세스하기 위한 복수의 인터리빙 모드들 중에서 최소 전력을 소모하는 어느 하나의 인터리빙 모드로 설정하는 단계; 그리고
    버퍼 메모리에 저장된 백업 데이터를 상기 설정된 인터리빙 모드에 따라 상기 불휘발성 메모리 장치에 프로그램하는 단계를 포함하는 데이터 백업 방법.
  17. 제 16 항에 있어서,
    상기 호스트 인터페이스를 비활성화(Inactivate)시키는 단계에서, 상기 스토리지 컨트롤러에 포함되는 직접 메모리 액세스(DMA) 엔진의 전원 공급을 차단하는 데이터 백업 방법.
  18. 제 16 항에 있어서,
    상기 버퍼 메모리에 저장된 상기 백업 데이터를 상기 스토리지 컨트롤러에 포함되는 에스램으로 이동하는 단계를 더 포함하는 데이터 백업 방법.
  19. 제 18 항에 있어서,
    상기 백업 데이터의 상기 에스램으로의 이동이 완료된 후에, 상기 버퍼 메모리 또는 상기 버퍼 메모리를 제어하기 위한 버퍼 컨트롤러의 전원을 차단하거나 비활성화하는 단계를 더 포함하는 데이터 백업 방법.
  20. 제 16 항에 있어서,
    상기 백업 데이터는 상기 불휘발성 메모리 장치의 싱글 레벨 셀(SLC) 영역에 프로그램되는 데이터 백업 방법.
KR1020190158696A 2019-12-03 2019-12-03 스토리지 장치 및 그것의 데이터 백업 방법 KR20210069744A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190158696A KR20210069744A (ko) 2019-12-03 2019-12-03 스토리지 장치 및 그것의 데이터 백업 방법
US17/016,901 US11630587B2 (en) 2019-12-03 2020-09-10 Storage device and a data backup method thereof
SG10202010054SA SG10202010054SA (en) 2019-12-03 2020-10-09 Storage device and a data backup method thereof
DE102020128785.2A DE102020128785A1 (de) 2019-12-03 2020-11-02 Speichereinrichtung und datensicherungsverfahren dafür
CN202011258965.2A CN112908383A (zh) 2019-12-03 2020-11-12 存储设备及其数据备份方法
US18/125,909 US11977746B2 (en) 2019-12-03 2023-03-24 Storage device and a data backup method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190158696A KR20210069744A (ko) 2019-12-03 2019-12-03 스토리지 장치 및 그것의 데이터 백업 방법

Publications (1)

Publication Number Publication Date
KR20210069744A true KR20210069744A (ko) 2021-06-14

Family

ID=76091638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190158696A KR20210069744A (ko) 2019-12-03 2019-12-03 스토리지 장치 및 그것의 데이터 백업 방법

Country Status (4)

Country Link
US (1) US11630587B2 (ko)
KR (1) KR20210069744A (ko)
CN (1) CN112908383A (ko)
SG (1) SG10202010054SA (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020128785A1 (de) 2019-12-03 2021-06-10 Samsung Electronics Co., Ltd. Speichereinrichtung und datensicherungsverfahren dafür
US11144203B2 (en) * 2019-12-03 2021-10-12 Micron Technology, Inc. Selectively operable memory device
US11861186B2 (en) * 2021-04-10 2024-01-02 Innogrit Technologies Co., Ltd. System and method for managing solid state storage devices in low temperature environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0511895A (ja) 1991-07-04 1993-01-22 Toshiba Corp ポータブルコンピユータ
US6272642B2 (en) * 1998-12-03 2001-08-07 Intel Corporation Managing a system's performance state
KR20010038651A (ko) 1999-10-26 2001-05-15 서평원 데이터 처리 시스템의 비휘발성 정보 저장 장치 및 방법
US6862651B2 (en) * 2000-12-20 2005-03-01 Microsoft Corporation Automotive computing devices with emergency power shut down capabilities
JP4135510B2 (ja) 2003-01-20 2008-08-20 株式会社デンソー 電子制御装置およびプログラム
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
CN104077174B (zh) 2009-03-27 2018-05-01 希捷科技有限公司 用于提供存储系统逻辑块地址的数据固化的方法及系统
US9042197B2 (en) 2013-07-23 2015-05-26 Western Digital Technologies, Inc. Power fail protection and recovery using low power states in a data storage device/system
US9715939B2 (en) * 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
KR102401578B1 (ko) 2015-09-03 2022-05-24 삼성전자주식회사 보조 전원 검사 방법 및 이를 적용한 전자 장치
US10139884B2 (en) * 2015-12-23 2018-11-27 Toshiba Memory Corporation Power loss protection for solid state drives
US10521305B2 (en) 2016-04-29 2019-12-31 Toshiba Memory Corporation Holdup time measurement for solid state drives
US10705129B2 (en) 2017-09-13 2020-07-07 Toshiba Memory Corporation Techniques for testing PLP capacitors
KR102406667B1 (ko) 2017-11-28 2022-06-08 삼성전자주식회사 보조 전원 장치의 모니터링 장치와 방법, 및 그 장치를 포함한 메모리 시스템
KR102080089B1 (ko) * 2018-05-18 2020-02-21 최영준 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치

Also Published As

Publication number Publication date
SG10202010054SA (en) 2021-07-29
US11630587B2 (en) 2023-04-18
CN112908383A (zh) 2021-06-04
US20210165581A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
US20240020024A1 (en) Non-volatile memory storage for multi-channel memory system
US9639131B2 (en) Systems, methods and devices for control of the operation of data storage devices using solid-state memory
US9250676B2 (en) Power failure architecture and verification
KR101243999B1 (ko) 반도체 저장소 장치를 위한 알람 기반 백업 및 복구
US11630587B2 (en) Storage device and a data backup method thereof
KR101498225B1 (ko) 데이터 저장 장치 및 그것의 전원 관리 방법
KR102329762B1 (ko) 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
US9645769B2 (en) Performance acceleration during shutdown of a data storage device
KR102114109B1 (ko) 데이터 저장 장치
US10324645B2 (en) Data storage device and data storage method thereof
US20130205065A1 (en) Methods and structure for an improved solid-state drive for use in caching applications
TW201712528A (zh) 用於管理操作狀態資料之方法、記憶體模組及主機裝置
CN110764964B (zh) 存储装置及其控制方法
KR102100707B1 (ko) 데이터 저장 장치
WO2022221564A1 (en) User configurable slc memory size
KR101512741B1 (ko) 반도체 저장 장치를 위한 네트워크 사용 가능 raid 컨트롤러
US20190087275A1 (en) Memory system
KR101599835B1 (ko) 보조 전원 장치 및 그것을 포함하는 사용자 장치
US11977746B2 (en) Storage device and a data backup method thereof
KR20150020843A (ko) 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템
KR102553275B1 (ko) 전원 오동작시 메모리의 안정적인 동작을 보장하는 반도체 장치 및 그 방법
US20240111434A1 (en) Hold-Up Capacitor Failure Handling in Data Storage Devices
KR102343599B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
US20230384944A1 (en) Storage system including battery module and method for operating the same

Legal Events

Date Code Title Description
A201 Request for examination