KR20110046243A - 사용자 장치 및 그것의 맵핑 데이터 관리 방법 - Google Patents

사용자 장치 및 그것의 맵핑 데이터 관리 방법 Download PDF

Info

Publication number
KR20110046243A
KR20110046243A KR1020100068117A KR20100068117A KR20110046243A KR 20110046243 A KR20110046243 A KR 20110046243A KR 1020100068117 A KR1020100068117 A KR 1020100068117A KR 20100068117 A KR20100068117 A KR 20100068117A KR 20110046243 A KR20110046243 A KR 20110046243A
Authority
KR
South Korea
Prior art keywords
power
storage device
data
host
memory
Prior art date
Application number
KR1020100068117A
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 KR1020100068117A priority Critical patent/KR20110046243A/ko
Priority to US12/912,847 priority patent/US20110099325A1/en
Publication of KR20110046243A publication Critical patent/KR20110046243A/ko

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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/065Replication 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 사용자 장치는, 사용자로부터 입력된 파워 오프 커멘드에 응답해서 운용 중인 데이터를 저장하고 파워 오프 통지 신호를 발생하는 호스트, 그리고 상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 저장 장치를 포함할 수 있다.

Description

사용자 장치 및 그것의 맵핑 데이터 관리 방법{USER DEVICE AND MAPPING DATA MANAGEMENT METHOD THEREOF}
본 발명은 사용자 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리를 기반으로 하는 저장 장치를 구비한 사용자 장치 및 그것의 맵핑 데이터 관리 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다.
불휘발성 반도체 메모리 장치로는 마스크 롬(Mask read-only memory, MROM), 프로그램 가능한 롬(Programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(Erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그램 가능한 롬(Electrically erasable programmable read-only memory, EEPROM) 등이 있다.
불휘발성 메모리들 중에서도 플래시 메모리는 컴퓨터, 휴대폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등(이하, '호스트'라 함)과 같은 정보기기들의 음성 및 영상 데이터 저장매체로서 널리 사용되고 있다.
또한, 플래시 메모리는 예를 들면 멀티미디어 카드(MMC), 시큐어 디지털 카드(SD card), 스마트미디어 카드(Smartmedia Card)나 컴팩트플래시카드(Compact Flash Card) 등과 같이 탈착 가능한 카드 형태로 구성될 수 있고, USB 메모리, 솔리드 스테이트 드라이브(SSD) 등과 같은 대용량 저장 장치에 주 저장 장치로서 포함될 수 있다. 플래시 메모리를 포함하는 저장 장치는 사용자의 요구에 따라 사용자 장치(user device)에 삽입되어 이용되거나 그것으로부터 분리될 수 있다.
사용자 장치들의 기능이 다양화됨에 따라, 플래시 메모리에 저장되는 데이터, 프로그램, 및 동작 모드들의 종류가 다양해지고 있다. 따라서, 다양해진 플래시 메모리의 데이터, 프로그램, 및 동작 모드들을 효과적으로 지원할 수 있는 데이터 관리 방법이 요구되고 있다.
본 발명의 목적은 어드레스 맵핑 테이블의 정보 유지 비용을 줄일 수 있는 사용자 장치 및 그것의 맵핑 데이터 관리 방법을 제공하는데 있다.
본 발명의 다른 목적은 재부팅 동작시 플래시 메모리에 대한 초기 인식 시간을 최소화할 수 있는 사용자 장치 및 그것의 맵핑 데이터 관리 방법을 제공하는데 있다.
본 발명의 다른 목적은 플래시 메모리를 탑재한 저장 장치의 성능을 향상시킬 수 있는 사용자 장치 및 그것의 맵핑 데이터 관리 방법을 제공하는데 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 맵핑 데이터 관리 방법은, 사용자로부터 입력된 파워 오프 커멘드에 응답해서 호스트가 운용 중인 데이터를 저장하는 단계; 상기 호스트가 저장 장치로 파워 오프 통지 신호를 발생하는 단계; 그리고 상기 저장 장치가 상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 파워 오프 통지 신호는 상기 호스트에 탑재된 운영체제에서 발생될 수 있다.
일 실시예에 있어서, 서든 파워 오프의 발생시 상기 저장 장치가 보조 전원을 이용하여 상기 휘발성 메모리에 저장된 상기 맵핑 데이터를 상기 불휘발성 메모리에 저장하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 휘발성 메모리에는 활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 1 맵핑 테이블이 구성될 수 있다.
일 실시예에 있어서, 상기 불휘발성 메모리에는 비활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 2 맵핑 테이블이 구성될 수 있다.
일 실시예에 있어서, 상기 휘발성 메모리에 저장된 상기 맵핑 데이터는 상기 제 2 테이블에 저장될 수 있다.
일 실시예에 있어서, 상기 저장 장치를 재 부팅하는 단계; 상기 저장 장치가 상기 제 2 테이블의 제 1 영역을 상기 비활성화 영역에서 활성화 영역으로 설정하는 단계; 상기 저장 장치가 상기 제 1 영역의 맵핑 데이터를 상기 휘발성 메모리에 저장하는 단계; 상기 파워 오프 신호가 입력되면, 상기 저장 장치가 상기 휘발성 메모리에 저장된 맵핑 데이터를 상기 제 1 영역에 저장하는 단계; 그리고 상기 저장 장치가 상기 제 1 영역을 상기 비활성화 영역으로 재설정하는 단계를 더 포함할 수 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 맵핑 데이터 관리 방법은, 운영 체제가 사용자로부터 입력된 파워 오프 커멘드를 받아들이는 단계; 상기 운영 체제가 상기 파워 오프 커멘드에 응답해서 호스트에서 운용 중인 데이터를 저장하는 단계; 상기 운영 체제가 저장 장치로 파워 오프 통지 신호를 발생하는 단계; 그리고 상기 저장장치가 상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 단계를 포함할 수 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 사용자 장치는, 사용자로부터 입력된 파워 오프 커멘드에 응답해서 운용 중인 데이터를 저장하고 파워 오프 통지 신호를 발생하는 호스트; 그리고 상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 저장 장치를 포함할 수 있다.
일 실시예에 있어서, 상기 호스트는 상기 파워 오프 커멘드에 응답해서 상기 저장 장치로 상기 파워 오프 통지 신호를 발생하는 운영체제를 탑재할 수 있다.
일 실시예에 있어서, 상기 저장 장치는, 상기 불휘발성 메모리를 데이터 저장 수단으로 포함하는 주 저장부; 그리고 상기 주 저장부의 동작을 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 상기 휘발성 메모리를 포함할 수 있다.
일 실시예에 있어서, 상기 저장 장치는 서든 파워 오프의 발생시 상기 저장 장치로 전원을 공급할 수 있는 보조 전원을 더 포함하며, 상기 보조 전원으로부터 전원이 공급되는 동안 상기 휘발성 메모리에 저장된 상기 맵핑 데이터가 상기 불휘발성 메모리에 저장될 수 있다.
일 실시예에 있어서, 상기 휘발성 메모리에는 활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 1 맵핑 테이블이 구성될 수 있다.
일 실시예에 있어서, 상기 불휘발성 메모리에는 비활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 2 맵핑 테이블이 구성될 수 있다.
일 실시예에 있어서, 상기 휘발성 메모리에 저장된 상기 맵핑 데이터는 상기 제 2 테이블에 저장될 수 있다.
일 실시예에 있어서, 상기 저장 장치가 재 부팅된 후 상기 제 2 테이블의 제 1 영역이 활성화 영역으로 설정될 수 있다.
일 실시예에 있어서, 노말 동작 시 상기 제 1 영역의 맵핑 데이터는 플래시 변환 계층의 제어에 따라서 상기 휘발성 메모리에 저장 내지 갱신될 수 있다.
일 실시예에 있어서, 상기 파워 오프 신호가 입력되면, 상기 휘발성 메모리에 저장된 맵핑 데이터는 플래시 변환 계층의 제어에 따라서 상기 제 1 영역에 저장되고, 상기 제 1 영역은 상기 비활성화 영역으로 재설정될 수 있다.
일 실시예에 있어서, 상기 플래시 변환 계층은, 상기 제 1 영역에 대응되는 로그 영역을 활성화 상태 또는 비활성화 상태로 설정함에 의해서, 상기 제 1 영역을 상기 활성화 영역 또는 상기 비활성화 영역으로 설정될 수 있다.
일 실시예에 있어서, 상기 플래시 변환 계층은, 상기 제 1 영역에 대응되는 부가 정보를 메타 데이터 형태로 설정함에 의해서, 상기 제 1 영역을 상기 활성화 영역 또는 상기 비활성화 영역으로 설정할 수 있다.
본 발명에 따르면, 저장장치의 전원이 오프 되기에 앞서 휘발성 메모리에 저장되어 있던 맵핑 정보가 불휘발성 메모리에 모두 저장될 수 있다.
따라서, 저장장치의 재부팅 동작시 맵핑 테이블을 재구성할 필요가 없고, 플래시 메모리에 대한 초기 인식 시간이 최소화될 수 있다. 또한, 어드레스 맵핑 테이블의 정보 유지 비용이 감소할 수 있고, 플래시 메모리를 탑재한 저장 장치의 성능이 향상될 수 있다.
도 1은 본 발명의 실시예에 따른 저장장치 및 이를 구비한 사용자 장치의 구성을 예시적으로 보여주는 도면이다.
도 2는 도 1에 도시된 컨트롤러의 일 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 3은 도 1에 도시된 컨트롤러의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 4는 도 1에 도시된 사용자 장치의 상세 구성을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 다른 실시예에 따른 사용자 장치의 구성을 예시적으로 보여주는 도면이다.
도 6은 본 발명에 따른 맵핑 테이블의 구성을 예시적으로 보여주는 도면이다.
도 7 내지 도 10은 본 발명에 따른 맵핑 데이터의 관리 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 맵핑 데이터 관리 방법을 수행하기 위한 호스트 측의 동작을 보여주는 흐름도이다.
도 12는 본 발명의 다른 실시예에 따른 맵핑 데이터 관리 방법을 수행하기 위한 호스트 측의 동작을 보여주는 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 저장장치에서의 맵핑 데이터 관리 방법을 보여주는 흐름도이다.
도 14 및 15는 저장 장치에 보조 전원이 구비된 사용자 장치의 구성을 예시적으로 보여주는 도면이다.
도 16은 저장 장치에 보조 전원이 없을 경우 서든 파워 오프가 발생되었을 때 수행될 수 있는 어드레스 맵핑 데이터의 복원 방법을 설명하기 위한 도면이다.
도 17은 본 발명의 또 다른 실시예에 따른 사용자 장치의 구성을 예시적으로 보여주는 도면이다.
도 18은 본 발명의 다른 실시예에 따른 저장 장치의 구성을 예시적으로 보여주는 도면이다.
본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 이하 상세히 설명될 수 있다. 아래에서 설명될 본 발명의 저장 장치의 회로 구성 및 동작은 예를 들어 설명한 것으로, 본 발명의 저장 장치는 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다. 예를 들면, 본 발명에서는 반도체 메모리 중에서도 플래시 메모리를 주 저장장치로서 채택한 SSD가 저장 장치로서 설명될 것이다. 그러나, 본 발명에 따른 저장 장치 및 그것의 데이터 저장 방법은 SSD 뿐만 아니라 다양한 형태의 저장 장치, 예를 들면, 메모리 카드 등에도 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 저장장치(storage device, 1200) 및 이를 구비한 사용자 장치(user device, 1000)의 구성을 예시적으로 보여주는 도면이다.
도 1을 참조하면, 본 발명의 사용자 장치(1000)는 호스트(1100)와 저장 장치(1200)를 포함할 수 있다. 호스트(1100)는 저장 장치(1200)를 제어하도록 구성될 수 있다. 호스트(1100)는, 예를 들면, 개인용/휴대용 컴퓨터, PDA(Personal Digital Assistant), PMP(portable media player), MP3 플레이어 등과 같은 휴대용 전자 장치를 포함할 수 있다. 호스트(1100)와 저장 장치(1200)는 USB, SCSI, ESDI, SATA, SAS, PCI-express, 또는 IDE 인터페이스와 같은 표준 인터페이스(standardized interface)에 의해서 연결될 수 있다. 호스트(1100)와 저장 장치(1200)를 연결하기 위한 인터페이스 방식은 특정 형태에 국한되지 않고, 다양하게 구성될 수 있다.
저장 장치(1200)는 반도체 디스크(Solid State Disk 또는 Solid State Drive, 이하 SSD라 칭함) 장치를 구성할 수 있다. 본 발명에서는 저장 장치(1200)가 SSD로 구성되는 경우가 예시적으로 설명될 것이다. 그러나, 이는 본 발명이 적용되는 일 예에 불과하며, 저장 장치(1200)는 SSD에만 국한되지 않고 다양한 형태로 구성 가능하다. 예를 들면, 저장 장치(1200)는 하나의 반도체 장치로 집적되어, PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMC-micro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등을 구성할 수도 있다.
저장 장치(1200)는 저장장치 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다. 저장장치 컨트롤러(1220)는 호스트(1100)로부터의 요청에 응답하여 주 저장부(1240)의 읽기/쓰기/소거 동작을 제어할 수 있다.
도 2는 도 1에 도시된 저장장치 컨트롤러(1220)의 일 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 2를 참조하면, 저장장치 컨트롤러(1220A)는 저장 장치(1200)가 SSD를 구성하는 경우, SSD 컨트롤러로 구성될 수 있다. 저장장치 컨트롤러(1220A)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 프로세싱 유닛(1226), 그리고 로컬 메모리(1228)를 포함할 수 있다. 도 2에 도시된 저장장치 컨트롤러(1220A)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 2에 도시되어 있지는 않지만 저장장치 컨트롤러(1220A)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다.
 호스트 인터페이스(1222)는 호스트(1100)와의 인터페이스를 제공하고, 플래시 인터페이스(1224)는 주 저장부(1240)와의 인터페이스를 제공할 수 있다. 프로세싱 유닛(1226)은 저장장치 컨트롤러(1220A)의 제반 동작을 제어할 수 있다. 예시적인 실시예에 있어서, 프로세싱 유닛(1226)는 상업적으로 이용 가능한 또는 맞춤형 마이크로 프로세서일 수 있다.
로컬 메모리(1228)는 본 발명에 따른 저장 장치(1220)를 동작시키기 위한 소프트웨어 및 데이터를 포함하는 하나 또는 그 이상의 범용 메모리 장치일 수 있다. 로컬 메모리(1228)는 캐시, ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM을 포함할 수 있다. 또한, 로컬 메모리(1228)는 주 저장부(1240)에 저장될 또는 주 저장부(1240)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 수 있다.
도 3은 도 1에 도시된 저장장치 컨트롤러(1220)의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다. 도 3에는 저장장치 컨트롤러(1220B) 내부에 복수의 프로세싱 유닛(1226_1~1226_N)이 구비된 경우가 예시적으로 도시되어 있다. 도 3과 같이 저장장치 컨트롤러(1220B) 내에 복수의 프로세싱 유닛(1226_1~1226_N)이 구비된 경우를 멀티 코어 프로세서라 하고, 도 2와 같이 저장장치 컨트롤러(1220A) 내에 하나의 프로세싱 유닛(1226)이 구비된 경우를 단일 코어 프로세서라 한다.
저장장치 컨트롤러(1220B)는 복수의 프로세싱 유닛(1226_1~1226_N)을 통해 제반 동작을 수행할 수 있다. 저장장치 컨트롤러(1220B)는 복수의 제어 동작들을 소정의 개수로 나눈 후에, 나누어진 제어 동작을 복수의 프로세싱 유닛들(1226_1~1226_N)로 할당할 수 있다. 이와 같은 구성에 따르면, 복수의 제어 동작들이 병렬로 수행될 수 있게 된다. 예시적인 실시예에 있어서, 복수의 프로세싱 유닛(1226_1~1226_N)은 복수의 채널들(CH1∼CHn) 각각에 대응되어, 각각의 채널에 대해 독립적인 제어를 수행하도록 구성될 수 있다. 이와 같은 구성에 따르면, 저장장치 컨트롤러(1220B)가 낮은 주파수 클록에 의해 구동되더라도, 복수의 프로세싱 유닛(1226_1~1226_N)을 포함하는 저장장치 컨트롤러(1220B)의 성능이 향상될 수 있다.
다시 도 1을 참조하면, 저장장치 컨트롤러(1220)는 복수의 채널들(CH1∼CHn)을 통해 주 저장부(1240)와 연결될 수 있다.
주 저장부(1240)는 복수의 불 휘발성 메모리 칩들, 예컨대 복수의 플래시 메모리들로 구성될 수 있다. 각각의 채널(CH1∼CHn)에는 복수의 플래시 메모리 칩들이 공통으로 연결될 수 있다. 다른 실시예에 있어서, 주 저장부(1240)는 플래시 메모리 칩들 대신 다른 불 휘발성 메모리 칩들(예를 들면, PRAM, FRAM, MRAM, 등)로 구성될 수도 있다. 또는, 주 저장부(1240)는 DRAM 또는 SRAM과 같은 휘발성 메모리로 구성되거나, 적어도 두 종류 이상의 메모리들이 혼합된 하이브리드 형태로 구성될 수 있다.
주 저장부(1240)가 복수의 불 휘발성 메모리 칩들(예를 들면, 복수의 플래시 메모리 침들)로 구성되는 경우, 저장 장치(1200)는 전원이 차단되더라도 저장된 데이터를 유지할 수 있다. 주 저장부(1240)를 구성하는 플래시 메모리 칩들 각각은 스트링 구조(string structure)를 갖는 복수의 메모리 셀들(memory cells)로 구성될 수 있다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 주 저장부(1240)의 메모리 셀 어레이는 복수의 블록들(blocks)로 구성될 수 있다. 각각의 블록은 복수의 페이지들(pages)로 구성될 수 있다. 각각의 페이지는 하나의 워드라인을 공유하는 복수의 메모리 셀들로 구성될 수 있다. 하나의 워드라인에는 하나 또는 그 이상의 페이지들에 대응되는 메모리 셀들이 대응될 수 있다. 각각의 메모리 셀에는 1-비트 데이터 또는 K-비트 데이터(K는 2 이상의 정수)가 저장될 수 있다.
주 저장부(1240)는 블록 단위로 소거 동작이 이루어지며, 페이지 단위로 읽기 및 쓰기 동작이 이루어진다. 다른 실시예에 있어서, 읽기 및 쓰기 동작의 단위는 복수의 페이지 단위로 수행될 수도 있고, 하나의 페이지 보다 작은 서브 페이지 단위로 수행될 수도 있다. 이상에서 설명된 바와 같이, 플래시 메모리로 구성된 주 저장부(1240)는 읽기/쓰기 동작의 단위와 소거 동작의 단위가 다르다. 또한, 주 저장부(1240)는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는다. 따라서 주 저장부(1240)는 쓰기 동작을 수행하기 이전에 반드시 소거 동작이 수행되어야 한다.
그런데, 기존의 파일 시스템(file system) (통상, 파일 시스템은 호스트 측에 소프트웨어 형태로 저장됨)은 하드디스크 드라이브(HDD)와 같이 겹쳐쓰기가 가능한 저장 장치를 고려 하여 설계되어 있기 때문에, 쓰기 동작 이전에 소거 동작이 선행되어야 하는 플래시 메모리의 동작 특성이 반영되어 있지 않다. 게다가 플래시 메모리에서 쓰여지는 데이터의 단위는, 소거되는 데이터의 단위와 다르기 때문에, 파일 시스템(file system)에서 제공된 어드레스와, 데이터가 쓰여진 플래시 메모리의 어드레스가 불일치(mismatch)될 수 있다.
이러한 특징은 플래시 메모리를 주 메모리로 사용하는 것을 어렵게 할 뿐만 아니라, 플래시 메모리가 보조기억장치로 사용되는 경우에도 일반 하드디스크 드라이브용 파일 시스템을 그대로 활용하는 것을 저해하는 요인이 된다. 따라서, 플래시 메모리의 소거 동작이 파일 시스템 측에 감춰지도록 하기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(flash translation layer, 이하 FTL이라 칭함)이 사용될 수 있다. FTL은 주 저장부(1240)의 일 영역에 저장되어 있다가, 파워 온 동작 시 저장장치 컨트롤러(1220)로 로딩될 수 있다. 저장장치 컨트롤러(1220)로 로딩된 FTL은 로컬 메모리(1228)에 저장되어 구동될 수 있다.
FTL은 논리 어드레스-물리 어드레스 맵핑 정보 관리, 배드 블록 관리, 예상치 못한 전원 차단에 따른 데이터 보존성 관리, 마모도 관리 등을 수행할 수 있다. 예를 들면, FTL은 플래시 메모리의 기입 동작시 파일 시스템이 생성한 논리 주소를 소거 동작이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행할 수 있다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(Address mapping table)을 사용할 수 있다. FTL의 어드레스 맵핑 기능으로 인해, 호스트(1100)는 플래시 메모리 장치를 마치 하드디스크 드라이브(또는, SRAM)로 인식할 수 있고, 하드디스크 드라이브와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다.
또한, FTL은 전원이 나갔을 때에도 사용자의 데이터를 보장해 줄 수 있어야 한다. 이를 위해서는, 파워 온 동작 시 어드레스 맵핑 테이블이 저장 장치에 전원이 오프 되기 이전과 동일한 상태로 복구되어야만 한다. 그러나, 저장 장치(1200) 및 주 저장부(1240)의 용량이 증가하고 플래시 메모리의 집적도가 높아질수록, 필요로 하는 어드레스 맵핑 테이블의 용량 또한 증가하게 된다. 어드레스 맵핑 테이블의 용량의 증가는 어드레스 맵핑 테이블의 관리 비용의 증가를 초래할 수 있고, 어드레스 맵핑 테이블이 복구되는데 걸리는 시간이 길어질 수 있다.
이와 같은 문제를 해결하기 위해, 본 발명에서는 어드레스 맵핑 테이블을 플래시 메모리로 구성된 주 저장부(1240)와 로컬 메모리(1228)로 분산하여 구성할 수 있다. 그리고, 파워 오프 동작이 수행될 때(즉, 전원 공급이 차단되기 이전에) 로컬 메모리(1228)에 저장되어 있던 어드레스 맵핑 정보를 주 저장부(1240)에 저장할 수 있다. 예를 들어, 사용자로부터 파워 오프 커멘드가 입력될 경우, 저장장치 컨트롤러(1220)는 호스트(1100)로부터 발생된 파워 오프 통지(Power Off Notification) 신호에 응답해서 로컬 메모리(1228)에 저장되어 있는 어드레스 맵핑 정보를 주 저장부(1240)에 저장할 수 있다.
만일 파워 오프 이전에 로컬 메모리(1228)에 저장되어 있는 어드레스 맵핑 정보가 주 저장부(1240)에 저장되지 않는다면, 로컬 메모리(1228)에 저장되어 있는 어드레스 맵핑 정보는 별도의 복원 과정을 통해 복구되어야만 할 것이다.
파워 오프 동작은 사용자가 정상적으로 전원을 차단하는 노말 파워 오프(normal power off)와, 정전, 배터리의 분리, 또는 배터리 전원의 고갈로 인해 비정상적으로 발생된 서든 파워 오프(sudden power off)로 구분될 수 있다. 지금 수행된 파워 오프 동작이 노말 파워 오프인지, 아니면 서든 파워 오프인지 여부는 사용자로부터 직접 파워 오프 커멘드를 받아들이는 호스트(1100) 측의 운영 체제(OS; Operating System)에서만 구분될 수 있다. 즉, 저장 장치(1200) 측의 FTL은 지금 수행된 파워 오프 동작이 노말 파워 오프인지, 아니면 서든 파워 오프인지 여부를 구분할 수 없다. 따라서, 시스템의 안정을 보장하기 위해서는, 통상적으로 최악의 경우인 서든 파워 오프를 고려하여 재 부팅 동작이 수행될 때마다 어드레스 맵핑 테이블이 복구될 수 있다. 이 경우 어드레스 맵핑 테이블의 복구를 위해서는, FTL이 주 저장부(1240)의 메모리 블록에 저장되어 있는 부가 정보를 스캔 하는 동작이 요구될 수 있다. 상기 스캔 동작에 소요되는 시간은 주 저장부(1240)의 데이터 저장 용량이 커질수록 길어지게 될 것이고, 재부팅 동작시 플래시 메모리에 대한 초기 인식 시간이 길어지게 될 것이다.
그러나, 본 발명에 따른 저장 장치(1200)는 파워 오프 이전에 로컬 메모리(1228)에 저장되어 있는 어드레스 맵핑 정보가 주 저장부(1240)에 모두 저장될 수 있기 때문에, 재 부팅 동작시 어드레스 맵핑 정보가 복원될 필요가 없고, 플래시 메모리의 초기 인식 시간이 줄어들게 된다. 이와 같은 본 발명의 초기 인식 특성은 저장 장치(1200) 및 주 저장부(1240)의 용량이 증가하고 플래시 메모리의 집적도가 높아질수록 그 효과는 더욱 커지게 될 것이다.
도 4는 도 1에 도시된 사용자 장치(1000)의 상세 구성을 예시적으로 보여주는 도면이다.
도 4를 참조하면, 사용자 장치(1000)는 호스트(1100)와 저장 장치(1200)를 포함할 수 있다. 호스트(1100) 및 저장 장치(1200)는 ATA, SATA, SAS, PATA, USB, SCSI, ESDI, IEEE 1394, IDE, PCI-express 및/또는 카드 인터페이스와 같은 표준 인터페이스를 포함할 수 있다.
호스트(1100) 내부에는 사용자 장치(1000)의 동작을 제어하는 프로세서(미 도시됨)가 구비될 수 있다. 프로세서는 상업적으로 이용 가능한 또는 맞춤형(custom) 프로세서일 수 있다. 호스트(1100)에 구비된 프로세서는 중앙처리장치(CPU), 마이크로프로세서, 그리고 그와 같은 것을 포함할 수 있다. 예시적인 실시예에 있어서, 프로세서는 중앙처리장치로 구현될 수 있다. 프로세서에는 사용자 장치(1000)를 동작 시키기 위한 소프트웨어 및 데이터를 저장하는 하나 또는 그 이상의 메모리 장치가 접속될 수 있다. 상기 메모리 장치는, 캐시, ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM과 같은 형태의 장치를 포함할 수 있다.
호스트(1100)에 구비된 메모리 장치에는 운영 체제(OS)가 탑재될 수 있다. 운영체제는 호스트(1100)의 제반 동작을 제어하도록 구성될 수 있다. 예를 들면, 운영 체제는 호스트(1100)의 소프트웨어 및/또는 하드웨어 자원(resource)을 제어할 수 있으며, 프로세서에 의한 프로그램 실행을 제어할 수 있다. 또한, 운영체제는 사용자로부터 파워 오프가 요청되면, 호스트(1100)에서 운용 중이던 정보가 안전한 장소에 저장될 수 있도록 제어할 수 있다. 그리고, 호스트(1100)에서 운용 중이던 정보가 안전한 장소에 저장되고 나면, 저장 장치(1200)로 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 저장 장치(1200)는 호스트(1100)로부터 제공된 파워 오프 통지 신호에 응답해서 휘발성 메모리 영역에 저장되어 있는 어드레스 맵핑 데이터를 불휘발성 메모리 영역에 저장할 수 있다. 파워 오프시 수행되는 본 발명에 따른 어드레스 맵핑 데이터의 저장 동작에 대해서는 아래에서 상세히 설명될 것이다.
저장 장치(1200)는 주 저장부(1240_1) 및 저장장치 컨트롤러(1220)를 포함할 수 있다. 주 저장부(1240_1)는 데이터(문서 데이터, 영상 데이터, 음악 데이터, 그리고 프로그램과 같은 저장 가능한 모든 형식의 데이터를 포함함)를 저장하기 위한 것으로, 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다. 도 4에는 주 저장부(1240_1)를 구성하는 복수의 플래시 메모리들 중 하나의 구성이 예시적으로 도시되어 있다. 하지만, 주 저장부(1240_1)가 여기에 개시된 것에 국한되지 않고, 다양한 형태로 구성될 수 있다.
저장장치 컨트롤러(1220)는 호스트(1100)로부터의 액세스 요청에 응답해서 주 저장부(1240_1)를 제어하도록 구성될 수 있다. 저장장치 컨트롤러(1220)에는 프로세싱 유닛(1226)과, 로컬 메모리(local memory, 1228)가 포함될 수 있다. 로컬 메모리(1228)는 내부 메모리, 워크 메모리, 또는 버퍼 메모리로 불리기도 한다.
로컬 메모리(1228)는 호스트(1100)와 주 저장부(1240_1) 사이의 원활한 데이터 전송을 위해 사용되며, DRAM 또는 SRAM과 같은 고속 휘발성 메모리, 또는 MRAM, PRAM, FRAM, NAND 플래시 메모리, 또는 NOR 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다.
로컬 메모리(1228)는 쓰기 버퍼로 동작할 수 있다. 예를 들면, 로컬 메모리(1228)는 호스트(1100)의 요청에 따라 주 저장부(1240_1)에 쓰여질 데이터를 임시 저장하기 위한 쓰기 버퍼로 동작할 수 있다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라 호스트(1100)에서 전달된 데이터는 쓰기 버퍼 즉, 로컬 메모리(1228)를 경유하지 않고 주 저장부(1240_1)로 직접 전송될 수 있다. 저장 장치(1200)의 이러한 기능은 쓰기 바이패스 기능(write bypass function)이라 불린다.
또는, 로컬 메모리(1228)는 읽기 버퍼로 동작할 수 있다. 예를 들면, 로컬 메모리(1228)는 호스트(1100)의 요청에 따라 주 저장부(1240_1)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 동작할 수 있다. 로컬 메모리(1228)에는 하나 또는 복수의 메모리들이 포함될 수 있다. 이 경우, 각각의 메모리는 쓰기 버퍼, 읽기 버퍼, 또는 2개의 기능(쓰기 및 읽기 기능)을 모두 갖는 버퍼로서 사용될 수 있다. 로컬 메모리(1228)는 특정 형태에 국한되지 않고 다양한 형태로 구성 가능하다.
프로세싱 유닛(1226)은 로컬 메모리(1228) 및 주 저장부(1240_1)를 제어하도록 구성될 수 있다. 호스트(1100)로부터 읽기 커멘드가 입력될 때, 프로세싱 유닛(1226)은 주 저장부(1240_1)에 저장된 데이터가 호스트(1100)로 이동되도록 주 저장부(1240_1)를 제어할 수 있다. 또는, 호스트(1100)로부터 읽기 커멘드가 입력될 때, 프로세싱 유닛(1226)은 주 저장부(1240_1)로부터 로컬 메모리(1228)로 제공된 데이터가 호스트(1100)로 이동될 수 있도록 주 저장부(1240_1) 및 로컬 메모리(1228)를 제어할 수 있다.
호스트(1100)로부터 쓰기 커멘드가 입력될 때, 프로세싱 유닛(1226)은 쓰기 커멘드와 관련된 데이터를 로컬 메모리(1228)에 임시 저장할 수 있다. 로컬 메모리(1228)에 임시 저장된 데이터의 전부 또는 일부는 노말 동작시 로컬 메모리(1228)의 여유 공간이 부족할 때, 또는 유휴 시간(호스트로부터 요청이 없을 때 생기는 저장장치 컨트롤러(1220)의 유휴 시간)이 생길 때 프로세싱 유닛(1226)의 제어에 따라 주 저장부(1240_1)로 옮겨질 수 있다. 이와 같이 로컬 메모리(1228)에 저장되어 있는 데이터를 강제적으로 주 저장부(1240_1)에 저장하는 동작을 플러시라 한다. 플러시 동작은 노말 동작은 물론, 파워 오프 동작 중에서도 수행될 수 있다.
이 외에도, 로컬 메모리(1228)에는 FTL이 저장될 수 있다. 또한, 로컬 메모리(1228)에는 맵핑 테이블(Table1)이 구성되어, FTL에 의해 수행된 어드레스 맵핑 결과를 저장할 수 있다. 본 발명에서는 로컬 메모리(1228)에 저장된 맵핑 테이블(Table1)을 제 1 맵핑 테이블이라 부르기로 한다. 로컬 메모리(1228)에 저장된 제 1 맵핑 테이블(Table1)의 데이터는 프로세싱 유닛(1226)의 제어에 따라 수행되는 플러시 동작을 통해 주 저장부(1240_1)에 저장될 수 있다.
예를 들면, 사용자로부터 호스트(1100)로 파워 오프 커멘드가 입력될 경우, 호스트(1100)는 OS를 통해 저장장치 컨트롤러(1220)로 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 예시적인 실시예에 있어서, 파워 오프 통지 신호는 호스트(1100)에서 운용 중이던 데이터가 안전한 장소에 저장된 후에 발생될 수 있다. 프로세싱 유닛(1226)는 호스트(1100)로부터 발생된 파워 오프 통지 신호에 응답해서 로컬 메모리(1228)에서 플러시 동작이 수행되도록 제어할 수 있다. 그 결과, 파워 오프 이전에 모든 어드레스 맵핑 데이터가 불휘발성 메모리인 주 저장부(1240_1)에 저장될 수 있게 되어, 재 부팅시 어드레스 맵핑 데이터를 복구하지 않고도 데이터의 일관성을 보장할 수 있게 된다.
다른 실시예에 있어서, 제 1 맵핑 테이블(Table1)의 데이터를 주 저장부(1240_1)에 저장하는 플러시 동작은 프로세싱 유닛(1226)의 제어에 따라 소정의 주기마다 수행될 수도 있다. 제 1 맵핑 테이블(Table1)의 데이터에 대한 플러시 동작은 다양한 형태로 구현 가능하다.
플래시 메모리로 구성된 주 저장부(1240_1)는 데이터 영역(20), 로그 영역(30), 그리고 메타 영역(40)을 포함할 수 있다.
로그 영역(30)의 로그 블록들은 데이터 영역(20)의 데이터 블록들에 각각 대응될 수 있다. 데이터 영역(20)의 데이터 블록에 데이터를 쓰고자 하는 경우, 상기 데이터는 데이터 블록에 직접 쓰여지지 않고 상기 데이터 블록에 대응되는 로그 블록에 저장될 수 있다. 그러나 데이터 영역(20)의 데이터 블록에 대응되는 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(30)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(1100)의 요청이 있는 경우에는 머지 동작이 수행될 있다. 머지 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록 또는 로그 블록에 저장될 수 있다. 머지 동작이 수행되거나, 사용자의 요청에 의해 쓰기 또는 소거 동작이 수행되면 맵핑 정보가 변경될 수 있다.
변경된 맵핑 정보는 메타 영역(40)에 테이블 형태(Table2)로 저장될 수 있다. 본 발명에서는 주 저장부(1240_1)의 메타 영역(40)에 저장된 맵핑 테이블(Table2)을 제 2 맵핑 테이블이라 부르기로 한다. 사용자로부터 파워 오프 커멘드가 입력될 경우, 제 1 맵핑 테이블(Table1)의 데이터는 메타 영역(40)의 제 2 맵핑 테이블(Table2)에 저장될 수 있다.
또한, 도 4에는 도시되어 있지는 않지만, 주 저장부(1240_1)는 자유 영역(free region)을 더 포함할 수 있다. 자유 영역에는 복수의 자유 블록들이 포함될 수 있다. 어드레스 맵핑 동작 중 로그 블록이 부족할 경우, 자유 블록이 로그 블록으로 할당되어 사용될 수 있다.
도 5는 본 발명의 다른 실시예에 따른 사용자 장치(2000)의 구성을 예시적으로 보여주는 도면이다.
도 5를 참조하면, 사용자 장치(2000)는 호스트(2100) 및 저장 장치(2200)를 포함할 수 있다. 본 발명의 실시 예에 따르면, 호스트(2100)는 PDA(personal digital assistance), 컴퓨터, 디지털 오디오 플레이어, 디지털 카메라, 그리고 모바일 터미널일 수 있다.
호스트(2100) 및 저장 장치(2200)는 인터페이스(2210)를 통해 연결될 수 있다. 인터페이스(2210)는 ATA, SATA, SAS, PATA, USB, SCSI, ESDI, IEEE 1394, IDE, PCI-express 및/또는 카드 인터페이스와 같은 표준 인터페이스일 수 있다.
호스트(2100)는 어드레스/데이터 버스(2120)를 통해 호스트 메인 메모리 (2130)와 통신하는 호스트 프로세서(2110)를 포함할 수 있다. 예시적인 실시예에 있어서, 호스트 프로세서(2110)는 상업적으로 이용 가능한 또는 맞춤형(custom) 프로세서일 수 있다. 호스트 메인 메모리(2130)는 사용자 장치(2000)를 동작시키기 위한 소프트웨어 및 데이터를 포함하는 하나 또는 그 이상의 범용 메모리 장치로 구성될 수 있다. 호스트 메인 메모리(2130)는 ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM과 같은 형태의 장치를 포함할 수 있다.
도 5에 도시된 바와 같이, 호스트 메인 메모리(2130)는 복수의 소프트웨어 및/또는 데이터 카테고리를 포함할 수 있다. 소프트웨어 및/또는 데이터 카테고리는 운영 체제(Operating System, 2140), 어플리케이션(application, 2150), 파일 시스템(2160), 메모리 매니저(memory manager, 2170), 그리고 입출력 드라이버(I/O driver(s), 2180)가 포함될 수 있다.
운영 체제(2140)는 호스트(2100)의 동작을 제어 할 수 있다. 더 상세하게는, 운영 체제(2140)는 호스트(2100)의 소프트웨어 및/또는 하드웨어 자원(resource)을 제어할 수 있으며, 호스트 프로세서(2110)에서 수행되는 프로그램의 실행을 제어할 수 있다. 어플리케이션(2150)은 호스트(2100)에서 실행되는 다양한 응용 프로그램들을 포함할 수 있다.
또한, 운영 체제(2140)는 사용자로부터 파워 오프가 요청되면, 호스트(2100)에서 운용 중이던 정보가 안전한 장소에 저장될 수 있도록 제어할 수 있다. 그리고, 호스트(2100)에서 운용 중이던 정보가 안전한 장소에 저장되고 나면, 저장 장치(2200)로 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 저장 장치(2200)는 호스트(2100)로부터 제공된 파워 오프 통지 신호에 응답해서 휘발성 메모리 영역에 저장되어 있는 어드레스 맵핑 데이터를 불휘발성 메모리 영역에 저장할 수 있다.
파일 시스템(2160)은 컴퓨터 파일들 및/또는 데이터를 호스트 메인 메모리(2130) 및/또는 저장 장치(2200)와 같은 저장 영역에 저장하거나 조직화할 수 있다. 파일 시스템(2160)은 호스트(2100)에서 실행되는 특정한 운영 체제(2140)에 따라 사용될 수 있다. 메모리 매니저(2170)는 호스트(2100) 내부의 호스트 메인 메모리(2130)에서 수행되는 메모리 액세스 동작을 수행할 수 있고, 호스트(2100) 외부의 저장 장치(2200)에서 수행되는 메모리 액세스 동작을 제어할 수 있다. 입출력 드라이버(2180)는 저장 장치(2200)와 같은 다른 장치, 컴퓨터 시스템, 또는 네트워크(예를 들면, 인터넷) 및 호스트(2100) 사이의 정보 전달을 수행할 수 있다.
저장 장치(2200)는 어드레스/데이터 버스(2260)를 통해 주 저장부(2240)와 통신하는 저장장치 컨트롤러(2220)를 포함할 수 있다. 주 저장부(2240)는 쓰기 동작 전에 소거 동작이 수행되는 다양한 형태의 메모리일 수 있다. 또한, 주 저장부(2240)는 전원이 오프 된 이후에도 데이터가 보존되는 불휘발성 특성을 갖는 메모리일 수 있다. 예시적으로, 본 발명에 따른 저장 장치(2200)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 장치, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치일 수 있다.
저장장치 컨트롤러(2220)는 어드레스/데이터 버스(2270)를 통해 로컬 메모리(2280)와 통신하는 저장장치 프로세서(2230)를 포함할 수 있다. 예시적인 실시예에 있어서, 저장장치 프로세서(2230)는 상업적으로 이용 가능한 또는 맞춤형 마이크로 프로세서일 수 있다.
로컬 메모리(2280)는 본 발명에 따른 저장 장치(2200)를 동작시키기 위한 소프트웨어 및 데이터가 탑재된 하나 또는 그 이상의 메모리 장치일 수 있다. 로컬 메모리(2280)는 ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM을 포함할 수 있다. 로컬 메모리(2280)에는 복수의 소프트웨어 및/또는 데이터 카테고리들이 포함될 수 있다. 예를 들면, 로컬 메모리(2280)에는 소프트웨어 및/또는 데이터 카테고리로서 플래시 변환 계층(FTL; Flash Transition Layer) 모듈(2283), 그리고 제 1 테이블(2285)이 저장될 수 있다.
플래시 변환 계층 모듈(2283)은 주 저장부(1240)의 일 영역(예를 들면, 메타 영역)에 저장되어 있다가, 파워 온 동작 시 로컬 메모리(2280)로 로딩될 수 있다. 플래시 변환 계층 모듈(2283)은 논리 어드레스-물리 어드레스 맵핑 정보 관리, 배드 블록 관리, 예상치 못한 전원 차단에 따른 데이터 보존성 관리, 마모도 관리 등을 수행할 수 있다. 예를 들면, 플래시 변환 계층 모듈(2283)은 플래시 메모리의 기입 동작시 파일 시스템이 생성한 논리 주소를 소거 동작이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행할 수 있다. 플래시 변환 계층 모듈(2283)은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(Address mapping table)을 사용할 수 있다. 본 발명에서는 어드레스 맵핑 테이블이 로컬 메모리(2280)와 주 저장부(2240)에 각각 분산되도록 구성될 수 있다.
도 6은 본 발명에 따른 맵핑 테이블의 구성을 예시적으로 보여주는 도면이다.
도 6을 참조하면, 본 발명에 따른 어드레스 맵핑 테이블은 제 1 어드레스 맵핑 테이블(Table1)과 제 2 어드레스 맵핑 테이블(Table2)로 구분될 수 있다. 예를 들면, 로컬 메모리(1228, 2280)에는 제 1 어드레스 맵핑 테이블(Table1)이 저장될 수 있고, 주 저장부(1240, 2240)에는 제 2 어드레스 맵핑 테이블(Table2)이 각각 저장될 수 있다. 제 1 및 제 2 어드레스 맵핑 테이블(Table1, Table2)은 모두 플래시 변환 계층 모듈(2283)에 의해 구성 및 업데이트 될 수 있다.
저장 장치(1200, 2200) 및 주 저장부(1240, 2240)의 데이터 저장 용량이 증가함에 따라, 어드레스 맵핑 테이블의 용량 또한 증가하게 된다. 어드레스 맵핑 테이블은 데이터의 쓰기 및 소거 동작은 물론, 머지 동작이 수행될 때마다 빈번하게 갱신되어야만 한다. 따라서, 어드레스 맵핑 테이블을 주 저장부(1240, 2240)에만 구성하는 경우에는, 덮어 쓰기가 불가능한 플래시 메모리의 특성상 저장 장치(1200, 2200)의 성능이 저하될 수 있다. 또한, 플래시 메모리는 허용 가능한 소거 횟수(예를 들면, 100,000회)가 정해져 있기 때문에, 맵핑 데이터의 갱신을 위해 수반되는 빈번한 소거 동작은 플래시 메모리의 수명의 단축을 유발할 수 있다. 이와 같은 문제를 방지하기 위해, 본 발명에서는 어드레스 맵핑 테이블을 휘발성 메모리와 불휘발성 메모리로 분산하여 구성 및 관리할 수 있다.
도 6에 도시된 바와 같이, 휘발성 메모리인 로컬 메모리(1228, 2280)에 저장되는 맵핑 테이블 영역을 활성화 영역(active area)으로, 그리고 불휘발성 메모리인 주 저장부(1240, 2240)에 저장되는 맵핑 테이블 영역을 비활성화 영역(inactive area)으로 정의할 수 있다. 활성화 영역은 설계자에 의해 다양한 형태로 설정 및 변경 가능하다.
활성화 영역에 대응되는 맵핑 데이터는 제 1 어드레스 맵핑 테이블(Table1)에 저장될 수 있다. 비활성화 영역에 대응되는 맵핑 데이터는 제 2 어드레스 맵핑 테이블(Table2)에 저장될 수 있다. 제 1 어드레스 맵핑 테이블(Table1)에 저장된 맵핑 데이터는 호스트(1100, 2100)로부터 파워 오프 요청이 발생되면, 제 1 어드레스 맵핑 테이블(Table1)로부터 제 2 어드레스 맵핑 테이블(Table2)에 저장될 수 있다. 그 결과, 파워 오프시 모든 어드레스 맵핑 데이터가 불휘발성 메모리인 주 저장부(1240, 2240)에 저장될 수 있게 된다.
이와 같은 본 발명의 구성에 따르면, 활성화 영역의 맵핑 데이터는 노말 동작 시 덮어쓰기 및 소거 횟수에 제약을 받지 않고 자유롭게 갱신될 수 있고, 파워 오프시에는 불휘발성 메모리에 보존될 수 있다. 따라서, 재 부팅 동작 시 맵핑 데이터를 복구할 필요가 없게 된다. 그 결과, 어드레스 맵핑 테이블의 정보 유지 비용을 줄일 수 있고, 재부팅 동작시 플래시 메모리에 대한 초기 인식 시간을 최소화할 수 있게 된다. 활성화 영역의 크기가 증가할수록 어드레스 맵핑 테이블의 정보 유지 비용 및 성능이 더욱 향상될 것이다.
도 7 내지 도 10은 본 발명에 따른 맵핑 데이터의 관리 방법을 설명하기 위한 도면이다. 도 7 내지 도 10에는 어드레스 맵핑 테이블의 예시적인 구조와, 그것의 활성화/비활성화 상태에 따른 맵핑 데이터의 관리 방법이 도시되어 있다.
도 7에는 노말 동작 시 활성화 영역과 비활성화 영역에 각각 대응되는 맵핑 테이블의 구성 예가 도시되어 있다.
도 7을 참조하면, 어드레스 맵핑 테이블은 복수의 맵핑 데이터를 포함할 수 있다. 도 7에 도시된 맵핑 데이터는 페이지 단위의 맵핑 데이터일 수 있고, 블록 단위의 맵핑 데이터일 수도 있다. 도 7에 도시된 맵핑 데이터의 구성은 적용되는 맵핑 방식에 따라 다양하게 구성될 수 있다.
각각의 맵핑 데이터는 도 7에 도시된 바와 같이 논리 주소(logical address)와 물리 주소(physical address)의 대응 관계를 정의할 수 있다. 도 7에는 0번부터 M번까지의 논리 주소가 표시되어 있고, 1번부터 N번까지의 물리 주소가 표시되어 있다. 이러한 논리 어드레스와 물리 어드레스의 대응 관계는 플래시 변환 계층(FTL)의 어드레스 맵핑 동작에 의해 결정될 수 있다. 플래시 변환 계층은, 어드레스 맵핑 동작은 물론, 맵핑 결과를 관리하는 기능을 모두 수행할 수 있다.
도 7에 도시된 바와 같이, 본 발명의 맵핑 데이터 관리 방법에 따르면, 각각의 맵핑 데이터가 활성화 영역에 속하는지 또는 비활성화 영역에 속하는지를 설정할 수 있다. 이와 같은 부가 정보의 설정 역시 플래시 변환 계층에 의해 수행될 수 있다. 활성화 상태로 설정된 맵핑 데이터는 휘발성 메모리인 로컬 메모리(1228, 2280)에 구성된 제 1 어드레스 맵핑 테이블(Table1)에 저장될 수 있다. 그리고, 비활성화 상태로 설정된 맵핑 데이터는 불휘발성 메모리인 주 저장부(1240, 2240)에 구성된 제 2 어드레스 맵핑 테이블(Table2)에 저장될 수 있다. 노말 동작 시 제 1 및 제 2 어드레스 맵핑 테이블(Table1, Table2)의 맵핑 데이터는 플래시 변환 계층의 제어에 의해 각각 갱신될 수 있다.
도 8에는 파워 오프 동작 시 활성화 영역에 대응되는 맵핑 테이블을 비활성화 영역에 대응되는 맵핑 테이블에 저장하는 구성이 예시적으로 도시되어 있다.
도 8을 참조하면, 사용자로부터 파워 오프가 요청되면, 운영체제는 호스트(1100, 2100)에서 운용 중이던 정보가 안전한 장소에 저장될 수 있도록 제어할 수 있다. 그리고, 호스트(1100, 2100)에서 운용 중이던 정보가 안전한 장소에 저장되고 나면, 저장 장치(1200, 2200)로 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 저장 장치(1200, 2200)에 탑재된 플래시 변환 계층은, 호스트(1100, 2100)로부터 발생된 파워 오프 통지(Power Off Notification) 신호에 응답해서 활성화 영역의 맵핑 테이블(즉, 제 1 어드레스 맵핑 테이블(Table1))의 맵핑 데이터를 비활성화 영역의 맵핑 테이블(즉, 제 2 어드레스 맵핑 테이블(Table2))에 저장할 수 있다. 이와 같은 본 발명에 따른 맵핑 데이터의 저장 동작에 따르면 파워 오프 동작 시 맵핑 테이블의 활성화 영역이 비활성화 영역으로 변환될 수 있게 된다. 이는 파워 오프 동작 시 모든 어드레스 맵핑 데이터가 불휘발성 메모리에 보존될 수 있음을 의미할 수 있다.
도 9에는 파워 오프 및 재 부팅이 수행될 때의 맵핑 테이블의 구성을 예시적으로 보여주는 도면이다.
도 9를 참조하면, 파워 오프가 수행될 때 모든 어드레스 맵핑 데이터는 비활성화 영역에 속하게 된다. 이 경우, 모든 어드레스 맵핑 데이터는 주 저장부(1240, 2240)에 구성된 제 2 어드레스 맵핑 테이블(Table2)에 저장될 수 있다. 이러한 상태에서 저장 장치(1200, 2200)는 재 부팅될 수 있다. 제 2 어드레스 맵핑 테이블(Table2)의 비휘발성 특성으로 인해, 파워 오프가 수행될 때의 어드레스 맵핑 데이터는 재 부팅이 수행되더라도 그대로 유지될 수 있게 된다.
이와 같은 구성에 따르면, 파워 오프가 수행될 때의 어드레스 맵핑 데이터와 재 부팅이 수행될 때의 어드레스 맵핑 데이터가 모두 일치하기 때문에, 어드레스 맵핑 데이터를 복구하는 동작이 수행될 필요가 없게 된다. 그 결과, 재 부팅 동작 시 플래시 메모리의 초기 인식 시간이 단축된다.
도 10에는 재 부팅 이후의 맵핑 테이블의 관리 방법이 예시적으로 도시되어 있다.
도 10을 참조하면, 재 부팅 이후에 새로운 쓰기 동작(write operation), 소거 동작(erase operation), 또는 머지 동작이 수행되는 경우, 재 부팅 이전에 활성화 영역에 속하였던 맵핑 테이블의 영역이 비활성화 상태에서 활성화 상태로 변경될 수 있다. 또는, 비활성화 영역에 속하는 일부 영역이 활성화 상태로 설정될 수 있다. 이 경우, 제 2 어드레스 맵핑 테이블(Table2)의 일 영역은 비활성화 상태에서 활성화 상태로 변환되었음이 마킹될 수 있다. 제 2 어드레스 맵핑 테이블(Table2)의 마킹 동작은 플래시 변환 계층에 의해 수행될 수 있다.
재 부팅 이후에 활성화 상태로 변환된 제 2 어드레스 맵핑 테이블(Table2)의 해당 영역에는 갱신된 맵핑 데이터가 저장되지 않게 된다. 이 때 갱신된 맵핑 데이터는 제 2 어드레스 맵핑 테이블(Table2) 대신 제 1 어드레스 맵핑 테이블(Table1)에 저장될 수 있다. 예를 들면, 재 부팅 이후의 쓰기 동작 시 제 1 어드레스 맵핑 테이블(Table1)의 맵핑 데이터는 덮어쓰기 및 소거 횟수에 제약을 받지 않고 자유롭게 갱신될 수 있다. 이 경우, 활성화 상태로 변환된 제 2 어드레스 맵핑 테이블(Table2)의 해당 영역의 맵핑 데이터와, 이에 대응되는 제 1 어드레스 맵핑 테이블(Table1)의 맵핑 데이터는 서로 일치하지 않게 된다.
한편, 재 부팅 이후에 저장된 제 1 어드레스 맵핑 테이블(Table1)의 맵핑 데이터는 파워 오프 동작시 제 2 어드레스 맵핑 테이블(Table2)의 대응되는 영역(즉, 활성화 상태로 마킹된 영역)에 저장될 수 있다. 제 1 어드레스 맵핑 테이블(Table1)의 데이터가 제 2 어드레스 맵핑 테이블(Table2)에 저장되고 나면, 제 2 어드레스 맵핑 테이블(Table2)의 해당 영역은 활성화 상태에서 비활성화 상태로 변환될 수 있다. 이 경우, 제 1 어드레스 맵핑 테이블(Table1)의 맵핑 데이터와, 제 1 어드레스 맵핑 테이블(Table1)의 데이터가 저장된 제 2 어드레스 맵핑 테이블(Table2)의 해당 영역의 맵핑 데이터는 서로 일치하게 된다.
앞에서 설명된 맵핑 테이블의 활성화/비활성화 영역의 설정과, 제 2 어드레스 맵핑 테이블(Table2)의 활성화/비활성화 여부의 마킹 동작은 플래시 변환 계층의 제어에 의해서 로그 영역을 활성화/비활성화 상태로 설정함으로써 달성될 수 있다.
예를 들면, 재 부팅이 수행된 이후에 새로운 쓰기 동작(write operation), 소거 동작(erase operation), 또는 머지 동작 등이 수행되는 경우, 비활성화 상태의 제 2 어드레스 맵핑 테이블(Table2) 중 일부는 활성화 상태로 설정될 수 있다. 예시적인 실시예에 있어서, 제 2 어드레스 맵핑 테이블(Table2)의 활성화 및/또는 비활성화 상태의 설정은, 상기 제 2 어드레스 맵핑 테이블(Table2)에 대응되는 로그 영역을 활성화/및 비활성화 상태로 설정함에 의해 구현될 수 있다. 예를 들면, 제 2 어드레스 맵핑 테이블(Table2)에 대응되는 로그 그룹의 상태가 활성화 상태로 설정된 경우, 활성화 상태로 설정된 로그 그룹에 대응되는 맵핑 데이터가 갱신되더라도 갱신된 맵핑 데이터는 제 2 어드레스 맵핑 테이블(Table2)에 저장되지 않게 된다. 이 경우, 갱신된 맵핑 데이터는 제 2 어드레스 맵핑 테이블(Table2) 대신 제 1 어드레스 맵핑 테이블(Table1)에 저장될 수 있다. 반면에, 제 2 어드레스 맵핑 테이블(Table2)에 대응되는 로그 그룹의 상태가 비활성화 상태로 설정된 경우, 대응되는 맵핑 데이터는 제 2 어드레스 맵핑 테이블(Table2)에 저장될 수 있게 된다. 이상에서는 어드레스 맵핑 동작에 로그 맵핑 기법이 적용되는 경우가 예시적으로 설명되었다. 그러나, 이는 본 발명이 적용되는 일 예에 불과하며, 본 발명에 적용될 수 있는 맵핑 기법은 다양하게 변경 및 변형 가능하다. 예를 들어, 본 발명에 따른 어드레스 맵핑 방식이 로그 맵핑 방식을 따르지 않을 경우, 맵핑 테이블의 활성화/비활성화 영역의 설정과, 제 2 어드레스 맵핑 테이블(Table2)의 활성화/비활성화 여부에 대한 정보는 플래시 변환 계층의 제어에 의해 메타 데이터를 설정함으로써 달성될 수 있다.
이러한 맵핑 테이블의 관리에 사용될 수 있는 컴퓨터 프로그램 코드는 JAVA, C, 및/또는 C++와 같은 하이-레벨(high level) 프로그램 언어로 작성될 수 있다. 또한, 본 발명의 실시 예에 따른 동작을 수행하기 위한 컴퓨터 프로그램 코드는 해석 언어(interpreted language)로 작성될 수 있다. 동작 성능 및/또는 메모리 사용을 개선하기 위해, 일부 모듈들 또는 루틴들은 어셈블리 언어(assembly language) 또는 마이크로 코드(micro-code)로 작성될 수 있다. 일부 또는 모든 프로그램 모듈들의 기능은 개별적인 하드웨어 구성요소들, 하나 또는 그 이상의 주문형 반도체(ASIC, application specific integrated circuits), 또는 프로그램된 디지털 신호 프로세서 또는 마이크로 컨트롤러로 구현될 수 있다.
이하에서, 본 발명의 실시 예에 따른 방법, 시스템, 장치, 및/또는 컴퓨터 프로그램 제품을 보여주는 메시지의 흐름, 순서도 및/또는 블록도를 참조하여 본 발명이 설명될 수 있다. 메시지의 흐름, 순서도 및/또는 블록도는 외부 데이터 저장 장치를 포함하는 데이터 프로세싱 시스템을 동작시키기 위한 일반적인 동작들을 보여줄 것이다. 메시지의 흐름, 순서도 및/또는 블록도의 도면들 각각 및 이들의 조합은 컴퓨터 프로그램 커멘드 및/또는 하드웨어 동작에 의해 구현될 수 있다. 컴퓨터 프로그램 커멘드는 범용 컴퓨터(general purpose computer), 특수 목적 컴퓨터(special purpose computer), 또는 다른 프로그램 가능한 데이터 프로세싱 기구의 프로세서에 제공될 수 있다. 컴퓨터 프로그램 커멘드는 컴퓨터 또는 프로그램 가능한 데이터 프로세싱 기구를 통해 수행되어, 메시지의 흐름, 순서도 및/또는 블록도에 기술된 기능들을 구현하기 위한 수단을 제공할 수 있다.
컴퓨터 프로그램 커멘드들은 컴퓨터에 의해 사용 가능한 또는 컴퓨터가 읽을 수 있는 메모리에 저장될 수 있으며, 컴퓨터 또는 다른 프로그램 가능한 데이터 프로세싱 기구들이 특정한 방법으로 동작하게 할 수 있다. 즉, 컴퓨터가 사용 가능한 또는 컴퓨터가 읽을 수 있는 메모리에 저장되어 있는 커멘드들은 메시지의 흐름, 순서도 및/또는 블록도에 기술된 기능을 구현하는 커멘드들을 제공할 수 있다.
컴퓨터 또는 다른 프로그램 가능한 기구에서 수행될 일련의 동작 단계들을 유발하여, 컴퓨터로 수행되는 프로세스를 제공하기 위해, 컴퓨터 프로그램 커멘드들은 컴퓨터 또는 다른 프로그램 가능한 데이터 프로세싱 기구에 로딩될 수 있다. 즉, 컴퓨터 또는 다른 프로그램 가능한 기구에서 수행되는 커멘드들은 메시지의 흐름, 순서도 및/또는 블록도에 기술된 기능들을 구현하기 위한 동작 단계들을 제공할 것이다.
도 11은 본 발명의 일 실시예에 따른 맵핑 데이터 관리 방법을 수행하기 위한 호스트 측의 동작을 보여주는 흐름도이다. 도 11에는 파워 오프 동작 시 호스트(1100, 2100)에서 수행될 수 있는 맵핑 데이터 관리 방법이 도시되어 있다.
도 11을 참조하면, S1000 단계에서 호스트(1100, 2100)는 서든 파워 오프의 발생 여부를 판별할 수 있다. 예를 들면, 호스트(1100, 2100)에는 갑작스런 전원의 변화를 모니터링 하여 서든 파워 오프를 판별하는 전원 감지부가 구비될 수 있다. 전원 감지부는 호스트(1100, 2100)로 제공되는 전원의 레벨이 급격히 떨어지거나, 또는 호스트(1100, 2100)가 배터리로 동작하는 모바일 장치일 경우 배터리의 용량이 소정 레벨 이하가 되면, 호스트(1100, 2100)에 서든 파워 오프가 발생될(된) 것으로 판별할 수 있다.
S1000 단계에서의 판별 결과 서든 파워 오프가 발생되지 않은 경우, S1100 단계에서 호스트(1100, 2100)는 사용자가 해당 시스템(즉, 사용자 장치(1000, 2000))에 대한 파워 오프를 수행하길 원하는지 여부를 판별할 수 있다. 사용자가 파워 오프를 수행하길 원하는지 여부는 사용자로부터 호스트(1100, 2100)로 파워 오프 커멘드가 입력되었는지 여부에 따라 결정될 수 있다. 사용자로부터 호스트(1100, 2100)로 입력된 파워 오프 커멘드는 호스트(1100, 2100)에 탑재된 운영 체제(OS)로 제공될 수 있다. 운영체제는 사용자로부터 파워 오프가 요청되면, 호스트(1100, 2100)에서 운용 중이던 정보가 안전한 장소에 저장될 수 있도록 제어할 수 있다. 따라서, S1200 단계에서는 호스트(1100, 2100)에서 운용 중이던 데이터에 대한 백업 또는 저장 동작이 수행될 수 있다.
S1200 단계에서 호스트(1100, 2100)에서 운용 중이던 데이터에 대한 백업 또는 저장 동작이 수행되고 나면, S1300 단계에서 운영 체제(OS)는 저장 장치(1200, 2200)로 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 저장 장치(1200, 2200)는 호스트(1100, 2100)로부터 제공된 파워 오프 통지 신호에 응답해서, 저장 장치(1200, 2200)에 버퍼링 되어 있던 유저 데이터와 활성화 영역의 어드레스 맵핑 데이터를 불휘발성 메모리 영역에 저장할 수 있다. 호스트(1100, 2100)로부터 제공된 파워 오프 통지 신호에 응답해서 저장 장치(1200, 2200)에서 수행되는 동작에 대해서는 도 13을 참조하여 아래에서 상세히 설명될 것이다.
저장 장치(1200, 2200)에서 유저 데이터 및 어드레스 맵핑 데이터가 불휘발성 메모리 영역에 저장되고 나면, S1400 단계에서 호스트(1100, 2100)는 저장 장치(1200, 2200)로부터 파워 오프 준비 신호(Power-Off Ready)를 수신할 수 있다. 파워 오프 준비 신호(Power-Off Ready)는 저장 장치(1200, 2200)에서 파워 오프에 대한 준비가 완료되었음을 의미할 수 있다. 호스트(1100, 2100)는 수신된 파워 오프 준비 신호(Power-Off Ready)에 응답해서, 전원을 공급을 차단할 수 있다. 그 결과, 호스트(1100, 2100)의 전원 공급이 차단되기 이전에 호스트(1100, 2100) 및 저장 장치(1200, 2200)에서 운용 중이던 데이터 및 어드레스 맵핑 데이터가 안전한 영역에 저장될 수 있게 된다.
만일 S1000 단계에서의 판별 결과 서든 파워 오프가 발생된 경우, S1500 단계에서 호스트(1100, 2100)에 부가 전원(secondary power)이 존재하는지 여부가 판별될 수 있다. S1500 단계에서의 판별 결과 호스트(1100, 2100)에 부가 전원이 존재하지 않는 경우, 수순은 종료될 것이다. 그리고, S1500 단계에서의 판별 결과 호스트(1100, 2100)에 부가 전원이 존재하는 경우, 수순은 S1200 단계로 진행할 수 있다.
S1200 단계에서는 호스트(1100, 2100)에서 운용 중이던 데이터에 대한 백업 또는 저장 동작이 수행되고 나면, S1300 단계 및 S1400 단계를 거쳐 저장 장치(1200, 2200)에 버퍼링 되어 있던 유저 데이터와 활성화 영역의 어드레스 맵핑 데이터가 불휘발성 메모리 영역에 저장될 수 있다. 그리고 나서, 호스트(1100, 2100)의 전원 공급이 차단될 수 있다. 서든 파워 오프시 저장장치(1200, 2200)로 제공되는 전원은 호스트(1100, 2100)에 구비된 부가 전원으로부터 제공될 수 있다. 예를 들면, 호스트(1100, 2100)의 주 전원(primary power)가 AC 전원일 경우, 서든 파워 오프시 호스트(1100, 2100)로 전원을 공급하는 부가 전원은 배터리 또는 배터리 팩이 될 수 있다. 그리고, 호스트(1100, 2100)의 주 전원(primary power)이 배터리 또는 배터리 팩일 경우, 서든 파워 오프시 호스트(1100, 2100)로 전원을 공급하는 부가 전원은 소형 배터리, 충전기, 또는 이에 준하는 전원 공급원(예를 들면, 충전 소자, 대용량 커패시터 등)이 될 수 있다.
도 12는 본 발명의 다른 실시예에 따른 맵핑 데이터 관리 방법을 수행하기 위한 호스트의 동작을 보여주는 흐름도이다. 도 12에는 호스트(1100, 2100)의 주 전원이 랩탑 컴퓨터와 같이 배터리에 의해 전원을 공급받을 수 있는 모바일 장치일 경우, 배터리의 잔여 용량(battery remaining capacity)에 따라서 수행될 수 있는 동작이 예시적으로 도시되어 있다.
도 12를 참조하면, S2000 단계에서는 주 전원이 배터리인지 여부가 판별될 수 있다. S2000 단계에서의 판별 결과, 주 전원이 배터리가 아닐 경우 수순은 도 11의 S1000 단계로 진행하여, 도 11에서 설명된 호스트(1100, 2100)의 동작을 수행할 수 있다. 그리고, S2000 단계에서의 판별 결과, 주 전원이 배터리인 경우, S2100 단계에서 배터리의 잔여 용량이 소정의 기준값(C) 보다 작은지 여부를 판별할 수 있다. 이를 위해, 호스트(1100, 2100)에는 배터리의 전원의 변화 내지 배터리의 용량을 모니터링 하는 전원 감지부가 구비될 수 있다.
S2100 단계에서의 판별 결과, 배터리의 잔여 용량이 소정의 기준값(C) 보다 작지 않으면, 수순은 도 11의 S1000 단계로 진행하여, 도 11에서 설명된 호스트(1100, 2100)의 동작을 수행할 수 있다. 그리고, S2100 단계에서의 판별 결과, 배터리의 잔여 용량이 소정의 기준값(C) 보다 작으면, S2200 단계에서 호스트(1100, 2100)에 탑재되어 있는 운영 체제(OS)는 전원 감지부로부터 제공된 감지신호에 응답해서 호스트(1100, 2100)에서 운용 중이던 정보가 안전한 장소로 백업 또는 저장될 수 있도록 제어할 수 있다.
S2200 단계에서 호스트(1100, 2100)에서 운용 중이던 데이터에 대한 백업 또는 저장 동작이 수행되고 나면, S2300 단계에서 운영 체제(OS)는 저장 장치(1200, 2200)로 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 저장 장치(1200, 2200)는 호스트(1100, 2100)로부터 제공된 파워 오프 통지 신호에 응답해서, 저장 장치(1200, 2200)에 버퍼링 되어 있던 유저 데이터와 활성화 영역의 어드레스 맵핑 데이터를 불휘발성 메모리 영역에 저장할 수 있다.
저장 장치(1200, 2200)에서 유저 데이터 및 어드레스 맵핑 데이터가 불휘발성 메모리 영역에 저장되고 나면, S2400 단계에서 호스트(1100, 2100)는 저장 장치(1200, 2200)로부터 파워 오프 준비 신호(Power-Off Ready)를 수신할 수 있다. 그리고, 호스트(1100, 2100)는 수신된 파워 오프 준비 신호(Power-Off Ready)에 응답해서, 전원을 공급을 차단할 수 있다.
그 결과, 호스트(1100, 2100)의 주 전원(primary power)의 공급이 차단되기 이전에, 또는 서든 파워 오프가 발생되기 이전에, 호스트(1100, 2100) 및 저장 장치(1200, 2200)에서 운용 중이던 데이터 및 어드레스 맵핑 데이터가 안전한 영역에 저장될 수 있게 된다.
도 13은 본 발명의 일 실시예에 따른 저장장치(1200, 2200)에서의 맵핑 데이터 관리 방법을 보여주는 흐름도이다.
도 13을 참조하면, S3000 단계에서 저장장치(1200, 2200)는 서든 파워 오프의 발생 여부를 판별할 수 있다. 예를 들면, 저장장치(1200, 2200)에는 호스트(1100, 2100)의 갑작스런 전원의 변화를 모니터링 하여 서든 파워 오프를 판별하는 전원 감지부가 구비될 수 있다. 전원 감지부는 호스트(1100, 2100)로 제공되는 전원의 레벨이 급격히 떨어지거나, 또는 호스트가 배터리로 동작하는 모바일 장치일 경우 배터리의 용량이 소정 레벨 이하가 되면, 서든 파워 오프가 발생될(된) 것으로 판별할 수 있다.
S3000 단계에서의 판별 결과 서든 파워 오프가 발생되지 않은 경우, S3100 단계에서 저장장치(1200, 2200)는 호스트(1100, 2100)로부터 파워 오프 통지(Power Off Notification) 신호가 수신되었는지 여부를 판별할 수 있다.
S3100 단계에서의 판별 결과, 호스트(1100, 2100)로부터 저장장치(1200, 2200)로 파워 오프 통지(Power Off Notification) 신호가 수신되었으면, S3200 단계에서 저장장치(1200, 2200)는 저장장치 컨트롤러(1220, 2220)의 제어에 의해 로컬 메모리(1228, 2280)에 버퍼링 되어 있던 유저 데이터를 주 저장부(1240, 2240)로 저장할 수 있다.
예를 들면, 저장장치 컨트롤러(1220, 2220)의 프로세싱 유닛은 호스트(1100, 2100)로부터 수신된 파워 오프 통지(Power Off Notification) 신호에 응답해서, 로컬 메모리(1228, 2280)로 플러시 제어 신호를 발생할 수 있다. 로컬 메모리(1228, 2280)는 저장장치 컨트롤러(1220, 2220)로부터 발생된 플러시 제어 신호에 응답해서, 로컬 메모리(1228, 2280)에 저장되어 있던 유저 데이터를 강제적으로 주 저장부(1240, 2240)에 저장할 수 있다. 플러시 동작에 의해 유저 데이터가 주 저장부(1240, 2240)에 저장되고 나면, 해당 데이터에 대한 맵핑 어드레스는 업데이트되어, 대응되는 어드레스 맵핑 데이터의 영역에 저장될 것이다.
S3300 단계에서, 저장장치 컨트롤러(1220, 2220)의 프로세싱 유닛은 활성화 영역의 어드레스 맵핑 데이터가 비활성화 영역에 저장되도록 제어할 수 있다.
예시적인 실시예에 있어서, 휘발성 메모리인 로컬 메모리(1228, 2280)에 저장되는 맵핑 테이블 영역을 활성화 영역(active area)으로, 그리고 불휘발성 메모리인 주 저장부(1240, 2240)에 저장되는 맵핑 테이블 영역을 비활성화 영역(inactive area)으로 정의할 수 있다. 활성화 영역의 어드레스 맵핑 데이터를 비활성화 영역에 저장하는 동작은, 저장장치 컨트롤러(1220, 2220)의 프로세싱 유닛으로부터 발생된 플러시 제어 신호에 응답해서 수행될 수 있다.
S3300 단계에서 활성화 영역의 어드레스 맵핑 데이터가 비활성화 영역에 저장되고 나면, S3400 단계에서 저장장치 컨트롤러(1220, 2220)의 프로세싱 유닛은 호스트(1100, 2100)로 파워 오프 준비 신호(Power-Off Ready)를 발생할 수 있다.
한편, S3000 단계에서의 판별 결과 서든 파워 오프가 발생된 경우, S3500 단계에서 저장 장치(1200, 2200)에 보조 전원(auxiliary power)이 존재하는지 여부가 판별될 수 있다. S3500 단계에서의 판별 결과 저장 장치(1200, 2200)에 보조 전원이 존재하지 않는 경우, 수순은 종료될 것이다.
그리고, S3500 단계에서의 판별 결과 저장 장치(1200, 2200)에 보조 전원이 존재하는 경우, 수순은 S3200 단계로 진행할 수 있다. S3200 단계에서 저장 장치(1200, 2200)는 저장장치 컨트롤러(1220, 2220)의 제어에 의해 로컬 메모리(1228, 2280)에 버퍼링 되어 있던 유저 데이터를 주 저장부(1240, 2240)로 저장할 수 있다. 그리고 나서, S3300 단계에서 활성화 영역의 어드레스 맵핑 데이터가 비활성화 영역에 저장될 수 있다.
예시적인 실시예에 있어서, 서든 파워 오프가 감지되면 저장 장치(1200, 2200)는 호스트(1100, 2100)로부터 별도의 커멘드를 수신하지 않더라도, 자체적으로 저장 장치(1200, 2200)에 버퍼링 되어 있던 유저 데이터와 활성화 영역의 어드레스 맵핑 데이터를 불휘발성 메모리 영역(즉, 주 저장부)에 저장하도록 구성될 수 있다. 이 경우, 저장장치(1200, 2200)로 제공되는 전원은, 저장장치(1200, 2200)에 구비된 보조 전원으로부터 자체적으로 제공될 수 있다. 여기서, 보조 전원은 배터리, 또는 이에 상응하는 전원 공급장치(예를 들면, 충전 소자, 대용량 커패시터 등)을 포함할 수 있다. 저장 장치(1200, 2200)에 구비될 수 있는 보조 전원의 구성 및 그것의 구동 방법은 US. Patent Application No. 12/654,035에, "AUXILIARY POWER SUPPLY AND USER DEVICE INCLUDING THE SAME"라는 제목으로 게재되어 있고, 레퍼런스로 포함된다.
도 14 및 15는 저장 장치(1200, 2200)에 보조 전원이 구비된 사용자 장치(3000, 4000)의 구성을 예시적으로 보여주는 도면이다. 보조 전원의 구성 및 그것의 구동 방법은 한국특허 출원번호 2008-26963에, "플래시 메모리 시스템"이라는 제목으로 게재되어 있고, 레퍼런스로 포함된다.
도 14를 참조하면, 사용자 장치(3000)는 호스트(3100), 저장 장치(3200), 충전부(310), 및 풀다운 구동부(320)를 포함할 수 있다.
호스트(3100)는 도 1 및 도 5에 도시된 호스트(1100, 2100)와 동일한 구성을 가질 수 있다. 저장 장치(3200)는 도 1 및 도 5에 도시된 저장 장치(1200, 2200)와 동일한 구성을 가질 수 있다. 따라서, 호스트(3100) 및 저장 장치(3200)에 대한 중복되는 설명은 이하 생략하기로 한다.
호스트(3100)는 활성화된 커멘드 래치 인에이블(Command Latch Enable) 신호를 저장 장치(3200)로 제공할 수 있다. 저장 장치(3200)는 활성화된 커멘드 래치 인에이블(이하, CLE라 칭함) 신호에 응답해서 호스트(3100)로부터 커멘드를 제공받을 수 있다. 저장 장치(3200)는 호스트(3100)로부터 제공받은 커멘드에 응답해서, 해당되는 동작(프로그램 또는 소거 동작)을 수행할 수 있다. CLE 신호가 비활성화될 경우, 저장 장치(3200)는 비 활성화된 CLE신호에 응답해서 호스트(3100)로부터 커멘드를 제공받지 않을 수 있다.
예시적인 실시예에 있어서, 풀다운 구동부(320)는 저항(R)으로 구성될 수 있다. 여기서, 저항(R)은 풀 다운 저항으로 구성될 수 있다. 풀다운 구동부(320)는, 서든 파워 오프시 CLE 신호를 접지 전압으로 방전시켜, 비 활성화시킬 수 있다. CLE신호가 비 활성화됨에 따라, 서든 파워 오프 동안 저장 장치(3200)는 호스트(3100)로부터 추가적인 커멘드를 제공받지 않을 수 있다.
예시적인 실시예에 있어서, 충전부(310)는 커패시터(C1)로 구성될 수 있다. 충전부(310)는 서든 파워 오프가 발생된 경우, 서든 파워 오프 이전에 전송된 커멘드에 따른 저장 장치(3200)의 동작이 안정적으로 수행되도록 충전된 파워를 저장 장치(3200)에 공급할 수 있다. 이 때, 저장 장치(3200)는 비활성화된 CLE신호에 응답해서, 활성화 영역의 어드레스 맵핑 데이터를 비활성화 영역에 저장할 수 있다. 이러한 어드레스 맵핑 데이터의 저장 동작은 서든 파워 오프 이전에 전송된 커멘드에 따른 저장 장치(3200)의 동작이 안정적으로 수행된 이후에 수행될 수 있다.
계속해서 도 15를 참조하면, 본 발명의 다른 실시 예에 따른 사용자 장치(4000)는 호스트(4100), 저장 장치(4200), 스위치(4300), 전원 감지부(4400), 제 1 충전부(410), 제 2 충전부(420), 및 풀다운 구동부(430)를 포함할 수 있다. 호스트(4100), 저장 장치(4200), 풀다운 구동부(430), 및 제 1 충전부(410)의 연결 구성 및 동작은 도 14에 도시된 구성과 실질적으로 동일하다. 따라서, 중복되는 설명은 이하 생략될 것이다.
제 2 충전부(420)는 커패시터(C2)로 구성될 수 있다. 제 2 충전부(420)는 서든 파워 오프시에도 전원 감지부(4400)가 정상적으로 동작할 수 있도록 충전된 파워를 전원 감지부(4400)로 공급할 수 있다.
전원 감지부(4400)는 전원(VDD)에 연결되어, 전원(VDD)이 갑자기 오프 되는 서든 파워 오프의 발생을 감지할 수 있다. 전원 감지부(4400)는 감지 결과를 근거로 하여 스위치(4300)의 온/오프 동작을 제어할 수 있다. 예를 들면, 전원 감지부(4400)는 서든 파워 오프가 감지되면 스위치(4300)가 오프 되도록 제어할 수 있다. 스위치(4300)가 오프 되면 CLE신호는 저장 장치(3200)에 전송되지 않게 되고, 서든 파워 오프 이후에 추가적인 커멘드가 호스트(4100)로부터 저장 장치(3200)로 전송되지 않게 된다.
예시적인 실시예에 있어서, 제 1 충전부(410)는 커패시터(C1)로 구성될 수 있다. 제 1 충전부(410)는 서든 파워 오프가 발생된 경우, 서든 파워 오프 이전에 전송된 커멘드에 따른 저장 장치(4200)의 동작이 안정적으로 수행되도록 충전된 파워를 저장 장치(4200)로 공급할 수 있다. 이러한 상태에서, 저장 장치(4200)는 비활성화된 CLE신호에 응답해서 활성화 영역의 어드레스 맵핑 데이터를 비활성화 영역에 저장할 수 있다.
이상과 같은 본 발명의 구성에 따르면, 노말 파워 오프는 물론, 예기치 않은 서든 파워 오프가 발생되더라도 전원이 차단되기 전에 활성화 영역의 어드레스 맵핑 결과를 비활성화 영역에 저장할 수 있게 된다.
도 16은 저장 장치(1200, 2200)에 보조 전원이 없을 경우 서든 파워 오프가 발생되었을 때 수행될 수 있는 어드레스 맵핑 데이터의 복원 방법을 설명하기 위한 도면이다.
도 16을 참조하면, 플래시 메모리 장치와 같은 메모리 장치는 동작 중에 심각한 오류의 발생으로 재부팅(Re-booting) 해야 하는 상황이 발생할 수 있다. 대표적으로, 예상치 못한 전원 오류(일례로 정전과 같은 상황)로 인한 서든 파워 오프를 예로 들 수 있다. 전원 오류가 발생하게 되면, 재부팅 동작시 블록들의 어드레스 맵핑 정보를 복구함으로써 데이터를 복구하게 된다. 도 16에는 휘발성 메모리에 저장될 수 있는 제 1 어드레스 맵핑 테이블(Table1)의 맵핑 정보를 복구하는 방법이 예시적으로 도시되어 있다. 도 16의 어드레스 맵핑 테이블에서 LBN으로 표시된 부분은 논리 블록 어드레스를 의미하고, PBN으로 표시된 부분은 물리 블록 어드레스를 의미할 수 있다.
예시적인 실시예에 있어서, 재부팅 동작시 블록들을 스캐닝 하여 각각의 블록들의 특정 영역에 저장되어 있는 부가 정보를 읽어오고, 이를 이용하여 어드레스 맵핑 정보를 복구하게 된다. 예를 들면, 플래시 메모리의 일부 영역(예를 들면, 메타 데이터 영역)에는 블록의 어드레스 맵핑 정보를 복구하는데 이용될 수 있는 힌트(hint)가 저장될 수 있다.
예를 들면, 플래시 메모리의 일부 영역에 저장되는 힌트에는 트리 형태로 구성된 블록 정렬 정보, 웨어 레벨링 정보, 블록 할당 정보, 소거 정보, 가비지 정보 등이 포함될 수 있다. 플래시 변환 계층은 재부팅 동작시 이상과 같은 힌트를 이용하여 전원이 오프 되기 직전의 상태로 어드레스 맵핑 정보를 복구할 수 있다. 복구되는 어드레스 맵핑 정보는, 활성화 영역(즉, Table1) 에 포함되는 맵핑 정보로서 갑작스런 파워 오프로 인해 미쳐 비활성화 영역에 저장되지 못한 맵핑 정보에 해당될 수 있다. 이 경우, 활성화 영역은 전체 맵핑 테이블 영역의 일부에 불과하므로, 활성화 영역의 어드레스 맵핑 정보는 재부팅 동작시 짧은 시간 동안 충분히 복구될 수 있다.
사용자 장치의 동작 특성으로 볼 때, 서든 파워 오프의 발생 빈도는 사용자의 요청에 의해 수행되는 노말 파워 오프의 발생 빈도에 비해 극히 낮다. 따라서, 대부분의 경우는 노말 파워 오프를 통해 활성화 영역의 맵핑 데이터가 모두 비활성화 영역에 저장된 이후에 전원이 차단될 것이다. 즉, 사용자 장치를 구동함에 있어, 활성화 영역에 포함된 맵핑 정보를 복구해야 하는 경우는 극히 드물게 발생될 것이다.
그러므로, 본 발명의 맵핑 데이터 관리 방법이 적용되는 사용자 장치는 저장 장치에 고가의 보조 전원 또는 충전부가 구비되어 있지 않다 하더라도, 어드레스 맵핑 테이블의 정보 유지 비용을 감소시킬 수 있고, 플래시 메모리를 탑재한 저장 장치의 성능을 충분히 향상시킬 수 있다.
도 17은 본 발명의 또 다른 실시예에 따른 사용자 장치(5000)의 구성을 예시적으로 보여주는 도면이다. 도 17에는 본 발명에 따른 저장 장치(1200)를 포함하는 사용자 장치(5000)의 구성이 도시되어 있다.
도 17을 참조하면, 본 발명의 사용자 장치(5000)는 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PDA 등과 같은 모바일 장치를 구성할 수 있다. 본 발명의 사용자 장치(5000)는 호스트(5100) 및 저장 장치(1200)로 구분될 수 있다.
호스트(5100)에는 시스템 버스(550)에 전기적으로 연결된 사용자 인터페이스(5200), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(5400), 및 프로세서(5600)가 포함될 수 있다. 비록 도 17에는 도시되어 있지는 않지만, 호스트(5100) 내부에는 다양한 종류의 메모리(예를 들면, DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리)가 더 포함될 수 있다. 호스트(5100)는 사용자 인터페이스(5200)를 통해 외부 장치와 인터페이싱을 수행할 수 있다. 사용자 인터페이스(5200)는 USB, MMC, PCI-E, SAS, SATA, SAS, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 지원할 수 있다.
저장 장치(1200)는 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(SSD), 하드 디스크 드라이브(HDD) 등과 같은 저장 장치를 구성 할 수 있다. 저장 장치(1200)는 호스트 인터페이스(1210), 저장장치 컨트롤러(1220) 및 주 저장부(1240)를 포함할 수 있다.
호스트 인터페이스(1210)는 시스템 버스(550)와 저장장치 컨트롤러(1220) 사이에 접속되어, 호스트(5100)와 저장 장치(1200)와의 물리적 연결을 제공할 수 있다. 저장장치 컨트롤러(1220)는 호스트(5100)의 버스 포맷(Bus format)을 지원하는 호스트 인터페이스(1210)를 통하여 주 저장부(1240)와의 인터페이싱을 수행할 수 있다. 예를 들면, 저장장치 컨트롤러(1220)는 USB, MMC, PCI-E, SAS, SATA, SAS, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 지원하도록 구성될 수 있다. 여기서, 호스트 인터페이스(1210)는 저장장치 컨트롤러(1220) 내부에 구비될 수도 있고, 저장장치 컨트롤러(1220) 외부에 구비될 수도 있다. 호스트 인터페이스(1210)의 구성 형태는 특정 형태에 국한되지 않고 다양하게 변경 및 변형 가능하다. 이 외에도, 저장 장치(1200)에는 플래시 인터페이스(미 도시됨)가 구비되어, 저장장치 컨트롤러(1220)와 주 저장부(1240)간의 인터페이스를 제공할 수 있다.
주 저장부(1240)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수 있다. 주 저장부(1240)는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리를 포함할 수 있다.
저장장치 컨트롤러(1220)는 프로세서(5600)로부터의 요청에 응답하여 주 저장부(1240)의 읽기/쓰기/소거 동작을 제어할 수 있다. 또한, 저장장치 컨트롤러(1220)에는 플래시 변환 계층이 구비되어 있어, 논리 어드레스-물리 어드레스 맵핑 정보 관리, 배드 블록 관리, 예상치 못한 전원 차단에 따른 데이터 보존성 관리, 마모도 관리 등을 수행할 수 있다.
예를 들면, FTL은 플래시 메모리의 기입 동작시 파일 시스템이 생성한 논리 주소를 소거 동작이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행할 수 있다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(Address mapping table)을 사용할 수 있다. 본 발명에서 어드레스 맵핑 테이블은 어드레스 맵핑 데이터가 휘발성 메모리에 저장되는 활성화 영역과, 어드레스 맵핑 데이터가 불휘발성 메모리에 저장되는 비활성화 영역으로 구분될 수 있다. 도 17에서, 활성화 영역에 대응되는 어드레스 맵핑 테이블은 Table1로, 비활성화 영역에 대응되는 어드레스 맵핑 테이블은 Table2로 표시되어 있다. 활성화 영역(Table1)의 어드레스 맵핑 데이터는 호스트(미 도시됨) 또는 프로세서(5600)로부터 발생된 파워 오프 통지(Power Off Notification) 신호에 응답해서, 전원이 오프 되기 이전에 비활성화 영역(Table2)에 저장될 수 있다. 그 결과, 파워 오프 이전에 모든 어드레스 맵핑 데이터가 불휘발성 메모리에 저장될 수 있게 되어, 재 부팅시 어드레스 맵핑 데이터를 복구하지 않고도 데이터의 일관성을 보장할 수 있게 된다.
본 발명에 따른 사용자 장치(5000)이 랩탑 컴퓨터 등과 같은 모바일 장치인 경우, 사용자 장치(5000)의 동작 전압을 공급하기 위한 배터리(5300)가 추가적으로 제공될 것이다. 비록 도면에는 도시되어 있지 않았지만, 본 발명에 따른 사용자 장치(5000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다.
사용자 장치(5000)는 배터리(5300)의 전원의 레벨이 급격히 떨어지거나 또는 배터리(5300)의 용량이 소정 레벨 이하가 되면, 사용자 장치(5000)에 서든 파워 오프가 발생될(된) 것으로 판별할 수 있다. 이 경우, 사용자 장치(5000)는 배터리(5300)의 용량이 모두 소진되기 이전에 프로세서(5600)를 통해 파워 오프 통지(Power Off Notification) 신호를 발생함으로써, 저장 장치(1200)가 활성화 영역(Table1)의 어드레스 맵핑 데이터를 비활성화 영역(Table2)에 저장할 수 있도록 할 수 있다.
그리고, 사용자 장치(5000)는 배터리(5300)의 보조 전원으로서 보조 배터리 또는 이에 상응하는 전원 공급장치(예를 들면, 충전 소자, 대용량 커패시터 등)를 더 포함할 수 있다. 사용자 장치(5000)는 배터리(5300)로부터 전원 공급이 원활하지 않을 경우, 보조 전원을 이용하여 사용자 장치(5000)에 전원을 공급할 수 있다. 그리고, 보조 전원에 의해 사용자 장치(5000)에 전원이 공급되는 동안 프로세서(5600)를 통해 파워 오프 통지(Power Off Notification) 신호를 발생할 수 있다. 그 결과, 저장 장치(1200)는 상기 파워 오프 통지(Power Off Notification) 신호에 응답해서 활성화 영역(Table1)의 어드레스 맵핑 데이터를 비활성화 영역(Table2)에 저장할 수 있게 된다.
이 외에도, 보조 전원은 저장 장치(1200)에도 구비될 수 있다. 일 실시예에 있어서, 사용자 장치(5000)의 배터리(5300)에 의해 전원이 공급되지 않더라도, 저장 장치(1200)에 구비된 보조 전원에 의해 저장 장치(1200)로 일정시간 동안 전원이 공급될 수 있다. 즉, 저장 장치(1200)에 구비된 보조 전원으로부터 저장 장치(1200)로 전원이 공급되는 동안 활성화 영역(Table1)의 어드레스 맵핑 데이터가 비활성화 영역(Table2)에 저장될 수 있다.
도 18은 본 발명의 다른 실시예에 따른 저장 장치(storage device, 6000)의 구성을 예시적으로 보여주는 도면이다.
도 18을 참조하면, 본 발명에 따른 저장 장치(6000)는 저장장치 컨트롤러(6220)와 주 저장부(6240)를 포함할 수 있다.
도 18에 도시된 주 저장부(6240)는 도 1, 도 4 및 도 17에 도시된 주 저장부(1240)와, 도 5에 도시된 주 저장부(2240)와 동일하게 구성될 수 있다. 예시적인 실시예에 있어서, 주 저장부(6240)는 불휘발성 메모리 중에서도 플래시 메모리로 구성될 수 있다. 그리고, 도 18에 도시된 저장 장치(6000)은, 이상에서 설명된 본 발명의 맵핑 데이터 관리 방법을 따를 수 있다. 따라서, 전원이 오프 되기 이전에 휘발성 메모리에 저장되어 있는 활성화 영역의 어드레스 맵핑 데이터가 불휘발성 메모리에 저장되어 있는 비활성화 영역으로 저장될 수 있다.
저장장치 컨트롤러(6220)는 주 저장부(6240)를 제어하도록 구성될 수 있다. 저장장치 컨트롤러(6220)는 도 1, 도 4 및 도 17에 도시된 저장장치 컨트롤러(1220)와, 도 5에 도시된 저장장치 컨트롤러(2220)와 동일하게 구성될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.
본 발명에 따른 저장 장치(6000)는, 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나에 적용될 수 있다.
그리고, 저장 장치(6000)는 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나에 적용될 수 있고, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나에 적용될 수 있다. 이 외에도, 저장 장치(6000)는 RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나(예를 들면, 반도체 드라이브(SSD), 메모리 카드 등)에 적용될 수 있다. 예를 들면, 주 저장부(6240)와 저장장치 컨트롤러(6220)의 결합에 의해 메모리 카드 또는 SSD를 구성할 수 있다. 이 경우, 저장장치 컨트롤러(6220)는 메모리 컨트롤러로서의 기능을 수행하게 된다.
SRAM(610)은 프로세싱 유닛(620)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(630)는 저장 장치(6000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 저장장치 컨트롤러(6220)에 구비된 에러 정정 회로(640)는 주 저장부(6240)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(650)는 본 발명의 주 저장부(6240)와 인터페이싱 할 수 있다. 프로세싱 유닛(620)은 저장장치 컨트롤러(6220)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 저장 장치(6000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있다.
주 저장부(6240)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다. 이상의 본 발명의 저장 장치(6000)은 에러의 발생 확률이 낮은 고신뢰성의 저장 매체를 구성할 수 있다. 특히, 최근 활발히 연구되고 있는 SSD와 같은 메모리 시스템을 구성할 수 있다. 이 경우, 저장장치 컨트롤러(6220)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
또한, 이상에서 설명된 본 발명의 저장 장치(6000)는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 예를 들면, 주 저장부(6240) 및/또는 저장장치 컨트롤러(6220)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다. 이와 같은 저장 장치의 패키지 실장 특성은, 도 18에 도시된 저장장치(6000)뿐만 아니라, 도 1, 도 4 및 도 17에 도시된 저장장치(1200)와, 도 5에 도시된 저장장치(2200), 도 14에 도시된 저장장치(3200), 및 도 15에 도시된 저장 장치(4200)에도 동일하게 적용될 수 있다. 이상에서와 같이 도면과 명세서에서 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1100, 2100, 3100, 4100 : 호스트
1200, 2200, 3200, 4200, 6000 : 저장 장치
1220, 2220, 6220 : 저장장치 컨트롤러
1240, 2240, 6240 : 주 저장부
1228, 2280 : 로컬 메모리
Table 1 : 제 1 어드레스 맵핑 테이블(활성화 영역)
Table 2 : 제 2 어드레스 맵핑 테이블(비활성화 영역)
1000, 2000, 3000, 4000, 5000 : 사용자 장치

Claims (10)

  1. 사용자로부터 입력된 파워 오프 커멘드에 응답해서 호스트가 운용 중인 데이터를 저장하는 단계;
    상기 호스트가 저장 장치로 파워 오프 통지 신호를 발생하는 단계; 그리고
    상기 저장 장치가 상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 단계를 포함하는 맵핑 데이터 관리 방법.
  2. 제 1 항에 있어서,
    상기 파워 오프 통지 신호는 상기 호스트에 탑재된 운영체제에서 발생되는 맵핑 데이터 관리 방법.
  3. 제 1 항에 있어서,
    서든 파워 오프의 발생시 상기 저장 장치가 보조 전원을 이용하여 상기 휘발성 메모리에 저장된 상기 맵핑 데이터를 상기 불휘발성 메모리에 저장하는 단계를 더 포함하는 맵핑 데이터 관리 방법.
  4. 제 1 항에 있어서,
    상기 휘발성 메모리에는 활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 1 맵핑 테이블이 구성되는 맵핑 데이터 관리 방법.
  5. 제 4 항에 있어서,
    상기 불휘발성 메모리에는 비활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 2 맵핑 테이블이 구성되는 맵핑 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 휘발성 메모리에 저장된 상기 맵핑 데이터는 상기 제 2 맵핑 테이블에 저장되는 맵핑 데이터 관리 방법.
  7. 제 5 항에 있어서,
    상기 저장 장치를 재 부팅하는 단계;
    상기 저장 장치가 상기 제 2 맵핑 테이블의 제 1 영역을 상기 비활성화 영역에서 상기 활성화 영역으로 설정하는 단계;
    상기 저장 장치가 상기 제 1 영역의 맵핑 데이터를 상기 휘발성 메모리에 저장하는 단계;
    상기 파워 오프 신호가 입력되면, 상기 저장 장치가 상기 휘발성 메모리에 저장된 맵핑 데이터를 상기 제 1 영역에 저장하는 단계; 그리고
    상기 저장 장치가 상기 제 1 영역을 상기 비활성화 영역으로 재설정하는 단계를 더 포함하는 맵핑 데이터 관리 방법.
  8. 운영 체제가 사용자로부터 입력된 파워 오프 커멘드를 받아들이는 단계;
    상기 운영 체제가 상기 파워 오프 커멘드에 응답해서 호스트에서 운용 중인 데이터를 저장하는 단계;
    상기 운영 체제가 저장 장치로 파워 오프 통지 신호를 발생하는 단계; 그리고
    상기 저장장치가 상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 단계를 포함하는 맵핑 데이터 관리 방법.
  9. 사용자로부터 입력된 파워 오프 커멘드에 응답해서 운용 중인 데이터를 저장하고 파워 오프 통지 신호를 발생하는 호스트; 그리고
    상기 파워 오프 통지 신호에 응답해서 휘발성 메모리에 저장된 맵핑 데이터를 불휘발성 메모리에 저장하는 저장 장치를 포함하는 사용자 장치.
  10. 제 9 항에 있어서,
    상기 휘발성 메모리에는 활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 1 맵핑 테이블이 구성되고, 상기 불휘발성 메모리에는 비활성화 영역으로 설정된 맵핑 데이터를 저장하는 제 2 맵핑 테이블이 구성되고,
    상기 파워 오프 신호가 입력되면, 상기 휘발성 메모리에 저장된 맵핑 데이터는 플래시 변환 계층의 제어에 따라서 상기 제 2 테이블에 저장되는 사용자 장치.
KR1020100068117A 2009-10-27 2010-07-14 사용자 장치 및 그것의 맵핑 데이터 관리 방법 KR20110046243A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100068117A KR20110046243A (ko) 2009-10-27 2010-07-14 사용자 장치 및 그것의 맵핑 데이터 관리 방법
US12/912,847 US20110099325A1 (en) 2009-10-27 2010-10-27 User device and mapping data management method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61/255,119 2009-10-27
KR1020100068117A KR20110046243A (ko) 2009-10-27 2010-07-14 사용자 장치 및 그것의 맵핑 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR20110046243A true KR20110046243A (ko) 2011-05-04

Family

ID=43899349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100068117A KR20110046243A (ko) 2009-10-27 2010-07-14 사용자 장치 및 그것의 맵핑 데이터 관리 방법

Country Status (2)

Country Link
US (1) US20110099325A1 (ko)
KR (1) KR20110046243A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140094170A (ko) * 2013-01-21 2014-07-30 삼성전자주식회사 메모리 시스템
KR20150003577A (ko) * 2013-07-01 2015-01-09 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR101676175B1 (ko) * 2015-06-16 2016-11-14 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US11243709B2 (en) 2019-08-22 2022-02-08 SK Hynix Inc. Data storage apparatus and operating method thereof
US11288189B2 (en) 2019-09-20 2022-03-29 SK Hynix Inc. Memory controller and method of operating the same
US11487627B2 (en) 2019-12-16 2022-11-01 SK Hynix Inc. Storage device and method of operating the same
US11734175B2 (en) 2019-08-22 2023-08-22 SK Hynix Inc. Storage device and method of operating the same
US11762769B2 (en) 2019-09-20 2023-09-19 SK Hynix Inc. Memory controller based on flush operation and method of operating the same

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI467579B (zh) * 2011-01-14 2015-01-01 Mstar Semiconductor Inc 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
KR101890767B1 (ko) * 2011-07-01 2018-09-28 시게이트 테크놀로지 인터내셔날 주소 사상 정보 관리 방법 이를 적용한 저장 장치
TWI521343B (zh) * 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
TWI432962B (zh) * 2011-10-06 2014-04-01 Mstar Semiconductor Inc 電子系統及其記憶體管理方法
KR20130084846A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
JP2013215975A (ja) * 2012-04-09 2013-10-24 Canon Inc 画像形成装置、画像形成装置の制御方法、及びプログラム
US9548916B1 (en) * 2012-06-28 2017-01-17 EMC IP Holding Company LLC Performing discovery of a virtual environment
US9892798B2 (en) 2012-09-11 2018-02-13 Seagate Technology Llc Data protection for unexpected power loss
US20140219021A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Data protection for unexpected power loss
KR20140070686A (ko) * 2012-11-08 2014-06-11 삼성전자주식회사 화상형성장치, 화상형성방법 및 컴퓨터 판독가능 기록매체
KR20140066391A (ko) 2012-11-23 2014-06-02 삼성전자주식회사 서든 파워 오프 감지 회로를 포함하는 불휘발성 메모리 장치 및 그것의 서든 파워 오프 감지 방법
KR102081923B1 (ko) 2013-02-04 2020-02-26 삼성전자주식회사 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US20140223213A1 (en) * 2013-02-05 2014-08-07 Kabushiki Kaisha Toshiba Memory system
KR20140104617A (ko) * 2013-02-20 2014-08-29 삼성전자주식회사 서든 파워 오프 가능성 정보를 사용하는 모바일 장치 및 그것의 동작 방법
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9274899B2 (en) 2013-07-11 2016-03-01 Red Hat, Inc. Providing non-volatile memory for suspend-to-random access memory
TW201533657A (zh) * 2014-02-18 2015-09-01 Toshiba Kk 資訊處理系統及記憶體系統
TWI525428B (zh) * 2014-06-04 2016-03-11 仁寶電腦工業股份有限公司 複合儲存單元的管理方法及其電子裝置
US11308085B2 (en) * 2014-12-08 2022-04-19 Teradata Us, Inc. Map intelligence for mapping data to multiple processing units of database systems
KR102403202B1 (ko) 2015-03-13 2022-05-30 삼성전자주식회사 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
US9507711B1 (en) * 2015-05-22 2016-11-29 Sandisk Technologies Llc Hierarchical FTL mapping optimized for workload
US10705952B2 (en) 2015-11-04 2020-07-07 Sandisk Technologies Llc User space data storage management
TWI607309B (zh) * 2016-03-16 2017-12-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN107229413B (zh) * 2016-03-23 2020-05-12 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器储存装置
KR102664665B1 (ko) * 2016-08-22 2024-05-16 에스케이하이닉스 주식회사 메모리 시스템
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10372351B2 (en) * 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US10739840B2 (en) * 2017-07-31 2020-08-11 Dell Products L.P. System and method of utilizing operating context information
US10789130B1 (en) 2018-03-09 2020-09-29 Toshiba Memory Corporation Capacitor energy management for unexpected power loss in datacenter SSD devices
CN109491601B (zh) * 2018-10-26 2021-11-26 深圳市硅格半导体有限公司 固态硬盘数据的并行处理方法、装置及可读存储介质
KR102605566B1 (ko) * 2018-11-22 2023-11-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20220058944A (ko) * 2019-09-10 2022-05-10 마이크론 테크놀로지, 인크. 메모리 매핑 디바이스 및 방법
JP7446963B2 (ja) * 2020-09-23 2024-03-11 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
EP4283456A1 (en) * 2022-05-23 2023-11-29 Samsung Electronics Co., Ltd. Memory device, storage device, and computing system including memory device and storage device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
GB2395302B (en) * 2002-11-13 2005-12-28 Advanced Risc Mach Ltd Hardware driven state save/restore in a data processing system
US7401174B2 (en) * 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7536506B2 (en) * 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7769945B2 (en) * 2007-01-18 2010-08-03 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US8095723B2 (en) * 2007-02-16 2012-01-10 Electronics And Telecommunications Research Institute Log-based flash translation layer and operating method thereof
US20080282024A1 (en) * 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
US7743203B2 (en) * 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
CA2700872A1 (en) * 2007-10-05 2009-04-09 Diskeeper Corporation Solid state drive optimizer
US8015420B2 (en) * 2007-11-21 2011-09-06 Dell Products L.P. System and method for power management of a storage enclosure
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
US8806271B2 (en) * 2008-12-09 2014-08-12 Samsung Electronics Co., Ltd. Auxiliary power supply and user device including the same
US20100185806A1 (en) * 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140094170A (ko) * 2013-01-21 2014-07-30 삼성전자주식회사 메모리 시스템
KR20150003577A (ko) * 2013-07-01 2015-01-09 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR101676175B1 (ko) * 2015-06-16 2016-11-14 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US11243709B2 (en) 2019-08-22 2022-02-08 SK Hynix Inc. Data storage apparatus and operating method thereof
US11734175B2 (en) 2019-08-22 2023-08-22 SK Hynix Inc. Storage device and method of operating the same
US11288189B2 (en) 2019-09-20 2022-03-29 SK Hynix Inc. Memory controller and method of operating the same
US11762769B2 (en) 2019-09-20 2023-09-19 SK Hynix Inc. Memory controller based on flush operation and method of operating the same
US11487627B2 (en) 2019-12-16 2022-11-01 SK Hynix Inc. Storage device and method of operating the same

Also Published As

Publication number Publication date
US20110099325A1 (en) 2011-04-28

Similar Documents

Publication Publication Date Title
KR20110046243A (ko) 사용자 장치 및 그것의 맵핑 데이터 관리 방법
CN109634517B (zh) 进行存取管理的方法、记忆装置、电子装置和其控制器
CN108399134B (zh) 存储装置及存储装置的操作方法
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
KR101930092B1 (ko) 데이터 이용가능성의 마운트타임 조정
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20150019794A1 (en) Data storage device and operating method thereof
US9443591B2 (en) Storage device out-of-space handling
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
US9965400B2 (en) Memory management method, memory control circuit unit and memory storage device
KR20110103165A (ko) 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
TWI660271B (zh) 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置
US11614885B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
CN107045890B (zh) 数据保护方法、存储器控制电路单元及存储器存储装置
US11314653B2 (en) Memory controller
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
KR20200058867A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 블록의 반복 접근을 줄이는 방법 및 장치
KR20200016076A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US11449321B2 (en) Controller and method for installing and executing bridge firmware data
US11662940B2 (en) Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short
US11392310B2 (en) Memory system and controller
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
CN111610937A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN107229413B (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置
US11809314B2 (en) Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid