KR20070008403A - 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법 - Google Patents

복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR20070008403A
KR20070008403A KR1020060064017A KR20060064017A KR20070008403A KR 20070008403 A KR20070008403 A KR 20070008403A KR 1020060064017 A KR1020060064017 A KR 1020060064017A KR 20060064017 A KR20060064017 A KR 20060064017A KR 20070008403 A KR20070008403 A KR 20070008403A
Authority
KR
South Korea
Prior art keywords
data
buffer
write
data storage
flash memory
Prior art date
Application number
KR1020060064017A
Other languages
English (en)
Other versions
KR101257848B1 (ko
Inventor
임근수
유정준
박정근
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20070008403A publication Critical patent/KR20070008403A/ko
Application granted granted Critical
Publication of KR101257848B1 publication Critical patent/KR101257848B1/ko

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Abstract

복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작 방법이 개시되어 있다. 개시된 본 발명은 호스트부와 스토리지부사이에 제1 I/O버스를 포함하는 데이터 저장 시스템에 있어서, 상기 스토리지부는 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고, 상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며, 상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하여 데이터를 병렬방식으로 입출력시킬 수 있는 것을 특징으로 하는 데이터 저장 시스템을 제공하고, 쓰기 요청이 있을 때, 쓰기 요청 빈도에 따라 상기 쓰기 요청을 복수 등급으로 분류하는 단계 및 쓰기 요청 빈도의 등급에 따라 쓰기 요청된 데이터를 쓰기 버퍼 또는 플래시 메모리에 구분하여 저장하는 단계를 포함하는 동작방법을 제공한다. 상기 플래시 메모리는 SLC 플래시 메모리와 MLC 플래시 메모리를 포함할 수 있다.

Description

복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작 방법{Data storing apparatus comprising complex memory and method of operating the same}
도 1은 본 발명의 제1 실시예에 의한 복합 메모리를 구비하는 데이터 저장 장치의 블록도이다.
도 2는 도 1의 스토리지부에 대한 구성을 나타낸 블록도이다.
도 3은 본 발명의 제2 실시예에 의한 복합 메모리 포함하는 데이터 저장 시스템의 블록도이다.
도 4는 도 3의 스토리지부에 대한 구성을 나타낸 블록도이다.
도 5는 본 발명의 제1 또는 제2 실시예에 의한 데이터 저장 시스템에서 클록 사이클에 따른 쓰기 과정을 나타낸 블록도이다.
도 6은 본 발명의 제1 또는 제2 실시예에 의한 데이터 저장 시스템에서 클록 사이클에 따른 읽기 과정을 나타낸 블록도이다.
도 7은 본 발명의 제3 실시예에 따른 복합 메모리를 포함하는 데이터 저장 시스템을 나타낸 블록도이다.
도 8은 본 발명의 제4 실시예에 따른 복합 메모리를 포함하는 데이터 저장 시스템에서의 데이터 저장방법을 나타내는 흐름도이다.
*도면의 주요 부분에 대한 부호설명*
40, 50:호스트부 40a:파일 시스템
42, 44c:제1 및 제2 I/O버스 44, 54:스토리지부
44a, 50c, 130:플래시 변환 계층 44b, 54a:불휘발성 메모리부
44d, 54b:플래시 메모리부
44b1, 44b2, 44b(n-1), 44b(n):제1 내지 제n 버퍼
44d1, 44d2, 44d(m-1), 44d(m):제1 내지 제m 뱅크
50b:별도의 파일 시스템 50d:디바이스 드라이버
52:I/O버스 70, 74, 78:제1 내지 제3 버퍼
80, 90:제1 및 제2 뱅크 80a, 90a :제1 페이지
80b, 90b :제2 페이지 80c, 90c :제3 페이지
80d, 90d :제4 페이지 80e, 90e :제5 페이지
100:호스트 120:입출력 인터페이스
131:메모리 제어부 133:페이지 분류부
132:RAM 140:쓰기 버퍼
150:플래시 메모리 150a:NAND형 SLC 플래시 메모리
150b:NAND형 MLC 플래시 메모리 M1:메모리부
D:제2 데이터 저장 시스템 p1, p2:뱅크를 구성하는 페이지
1. 발명의 분야
본 발명은 데이터 저장 장치 및 방법에 관한 것으로서, 보다 자세하게는 플래시 메모리를 포함하는 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작 방법에 관한 것이다.
2. 관련기술의 설명
플래시 메모리 소자를 이용한 데이터 저장 장치는 임베디드 시스템(embedded system)과 모바일 시스템(mobile system)에서 널리 사용된다. 플래시 메모리 소자를 이용한 데이터 저장 장치는 EEPROM의 일종으로 읽기 및 쓰기 동작 외에 쓰기 동작에 앞서 수행해야 하는 삭제 동작을 갖는다. 플래시 메모리 소자를 이용한 데이터 저장 장치의 경우, 읽기 동작 속도는 빠른 반면 쓰기와 삭제 동작 속도는 느린 단점이 있다.
플래시 메모리 소자를 이용한 데이터 저장 장치에서 데이어 입출력 단위는 페이지(NOR형 플래시 메모리 소자의 경우, 2B 또는 4B이고, NAND형 플래시 메모리 소자의 경우, 512B 또는 2KB의 크기를 가짐)이고, 삭제 동작의 단위는 블록(NOR형 플래시 메모리 소자의 경우, 128KB이고, NAND형 플래시 메모리 소자의 경우, 16KB 또는 64KB의 크기를 가짐)이다.
구체적으로, NOR형 플래시 메모리 소자의 경우는 상기한 바와 같이 2 바이트(Byte, 이하 B)를 쓰는데 약 400μs가 소요되고 NAND형 플래시 메모리 소자의 경우, 512B를 쓰는데 약 220μs가 소요되는 반면, 삭제 동작에는 2ms~2s 정도로 상대적으로 긴 시간이 소요된다. 이러한 삭제 동작은 기존의 메모리 및 저장장치에서는 일반적으로 존재하지 않던 동작이다.
반면, RAM은 한 워드를 저장하는데 수십 나노초(nano second)가 소요되는 바, 플래시 메모리 소자를 이용한 데이터 저장 장치는 RAM에 비해 쓰기 속도가 훨씬 느리다.
이에 따라 플래시 메모리 소자의 응용은 쓰기 동작이 적은 코드용 메모리 소자와 쓰기 성능이 크게 중요하지 않은 보조기억장치로 제한된다. 또한, 플래시 메모리 소자를 이용한 데이터 저장 장치는 실시간 멀티미디어 데이터의 저장이 어려운데, 이러한 원인으로 디지털 제품, 예컨대 디지털 카메라와 캠코더 등에 플래시 메모리 소자를 이용한 데이터 저장 장치의 사용이 제한된다.
따라서 종래 기술에서는 삭제 동작을 플래시 변환 계층(Flash Translation Layer, 이하 FTL)이라고 하는, 하드웨어 또는 소프트웨어로 구성된 계층을 사용하여 논리적으로 그리고 효율적으로 감추는데 초점을 맞추고 있다(USP6,311,290, J. Kim, et al. 및 "A Space-Efficient Flash Translation Layer for CompactFlash Systems," IEEE Trans. Consumer Elec., Vol. 48, No. 2, pp. 366-375, 2002 참조).
이와 같이 FTL을 사용하여 삭제 동작을 감춘다 하더라도 플래시 메모리 소자의 쓰기 동작 속도 그 자체가 RAM에 비해 느리기 때문에, 대용량 데이터를 저장하는 경우, 플래시 메모리 소자를 이용한 데이터 저장 장치의 쓰기 동작 속도는 하드디스크보다 느리게 된다. 이러한 이유로 플래시 메모리 소자는 쓰기 동작이 적은 코드 메모리나 쓰기 동작이 중요하지 않는 시스템을 위한 보조기억장치로만 사용된 다. 특히, 디지털 카메라, 캠코더, 그리고 휴대폰과 같이 실시간으로 멀티미디어 데이터를 가공하고 저장하는 장치에서의 플래시 메모리 소자의 활용은 제한된다.
종래 기술에 의한 데이터 저장 장치 중에는 플래시 메모리 소자의 입출력 성능을 입출력 버퍼(또는 캐시)를 사용하여 개선한 경우가 있다. 상기 입출력 버퍼(또는 캐시)로서 SRAM 또는 DRAM을 사용하는 경우는 대한민국 특허출원 제2003-0032552호에 개시되어 있다. 그리고 자기 램(Magnetic RAM)을 쓰기 버퍼로 활용하여 쓰기 성능을 개선한 경우는 선행기술(US 2004/0193782 A1)에 개시되어 있다.
전자의 경우, 플래시 메모리 소자의 입출력 패턴에서 나타나는 시공간적 지역성을 활용하여 자주 접근되는 데이터를 빠른 입출력 속도를 제공하는 캐시에 유지함으로써 입력 성능을 개선할 수 있다는 장점을 갖고 있으나, 쓰기 동작을 캐시에서만 수행할 경우 플래시 메모리 소자에 데이터를 저장하기 이전에 전원 부족 등의 예외 상황이 발생하면 데이터를 잃게 되므로, 데이터 저장 장치의 기본 조건인 데이터 일관성 유지를 보장할 수 없다. 따라서 전자의 경우는 읽기 성능을 개선하는데 효율적인 반면, 쓰기 동작의 성능 개선에 사용하는 것에는 한계가 있다.
후자의 경우, 사용되는 MRAM의 용량보다 큰 쓰기 동작이 연속적으로 요청될 경우 상기 MRAM에서 오버플로우(overflow)가 발생하고, 이후의 쓰기 요청은 플래시 메모리 소자에서 직접 수행되기 때문에 쓰기 성능을 개선하는 효과가 상쇄되는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 상술한 종래의 문제점을 개선하기 위한 것으로써, 쓰기 동작에서 발생하는 지역성을 이용하여 앞으로 수정될 확률이 높은 데이터만을 쓰기 버퍼에서 관리함으로써 쓰기속도를 높일 수 있고, 쓰기버퍼의 크기를 줄이면서 쓰기버퍼를 사용해 얻는 이득인 플래시 메모리에 대한 쓰기 및 삭제 동작의 횟수를 줄일 수 있는, 복합 메모리를 구비하는 데이터 저장 시스템을 제공함에 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 상기 데이터 저장 시스템의 동작방법을 제공함에 있다.
상기 기술적 과제를 이루기 위한 본 발명은, 호스트부, 스토리지부, 상기 호스트부와 상기 스토리지부사이에서 인터페이스 역할을 하는 제1 I/O버스를 포함하는 데이터 저장 시스템에 있어서, 상기 스토리지부는 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고, 상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며, 상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하여 데이터를 병렬방식으로 입출력시킬 수 있는 것을 특징으로 하는 데이터 저장 시스템을 제공한다.
상기 복수의 버퍼 수는 상기 복수의 데이터 저장 매체 수보다 클 수 있다.
상기 버퍼는 소정의 데이터 저장 용량을 갖는 뱅크일 수 있다.
상기 버퍼는 불휘발성 메모리 칩일 수 있다.
상기 데이터 저장 매체는 뱅크이고, 상기 뱅크는 소정의 데이터 저장 용량을 갖는 복수의 페이지를 포함할 수 있다.
상기 데이터 저장 매체는 플래시 메모리 칩일 수도 있다.
상기 버퍼의 데이터 저장 용량은 상기 페이지의 데이터 저장 용량과 같거나 그 보다 N배(N=1, 2, 3) 클 수 있다.
상기 버퍼의 데이터 저장 용량은 플래시 메모리의 삭제 단위인 블록의 크기와 같거나 그 크기의 N배(N=1, 2, 3)일 수 있다.
상기 다른 기술적 과제를 달성하기 위하여, 본 발명은 호스트부, 스토리지부, 상기 호스트부와 상기 스토리지부사이에서 인터페이스 역할을 하는 제1 I/O버스를 포함하고, 상기 스토리지부는 적어도 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고, 상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며, 상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하는 데이터 저장 시스템의 기록 방법에 있어서, 상기 복수의 버퍼 중 제1 버퍼에 데이터를 기록하는 제1 단계; 상기 제1 버퍼에 데이터를 기록한 후, 상기 복수의 버퍼 중 제2 버퍼에 데이터를 기록하는 제2 단계; 상기 제2 버퍼에 데이터를 기록한 후, 상기 복수의 버퍼 중 제3 버퍼에 데이터를 기록하는 제3 단계; 상기 제1 버퍼에 기록된 데이터를 상기 복수의 데이터 저장 매체 중 제1 데이터 저장 매체의 제1 페이지에 기록하는 제4 단계; 및 상기 제2 버퍼에 기록된 데이터를 상기 복수의 데이터 저장 매체 중 제2 데이터 저장 매체의 제1 페이지에 기록하는 제5 단계를 포함하되, 상기 제2 단계와 상기 제4 단계는 동시에 실시되고, 상기 제3 단계와 상기 제5 단계는 동시에 실시되는 것을 특징으로 하는 데이터 저장 시스템의 기록방법을 제공한다.
이러한 기록 방법에서, 상기 제3 버퍼에 기록된 데이터를 상기 제1 데이터 저장 매체의 제2 페이지에 기록하면서 상기 제1 버퍼에 새로운 데이터를 기록할 수 있다. 또한, 상기 제1 버퍼에 새로운 데이터를 기록하기 전에 상기 제1 버퍼에 기록된 데이터를 소거할 수 있다.
상기 버퍼 수는 상기 데이터 저장 매체의 수보다 클 수 있고, 상기 버퍼는 소정의 데이터 저장 용량을 갖는 뱅크일 수 있다.
본 발명은 또한 상기 다른 기술적 과제를 달성하기 위하여, 호스트부, 스토리지부, 상기 호스트부와 상기 스토리지부사이에서 인터페이스 역할을 하는 제1 I/O버스를 포함하고, 상기 스토리지부는 적어도 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고, 상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며, 상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하는 데이터 저장 시스템의 읽기 방법에 있어서, 상기 복수의 데이터 저장 매체 중 제1 데이터 저장 매체의 제1 페이지에 기록된 데이터를 상기 복수의 버퍼 중 제1 버퍼에 기록하는 제1 단계; 상기 복수의 데이터 저장 매체 중 제2 데이터 저장 매체의 제1 페이지에 기록된 데이터를 상기 복수의 버퍼 중 제2 버퍼에 기록하는 제2 단계; 및 상기 제1 데이터 저장 매체의 제2 페이지에 기록된 데이터를 상기 복수의 버퍼 중 제3 버퍼에 기록하는 제3 단계를 포함하되, 상기 제2 단계는 상기 제1 단계가 시작된 후 시작되어 상기 제1 단계가 완료된 후 완료되고, 상기 제3 단계는 상기 제2 단계가 시작된 후 시작되어 상기 제2 단계가 완료된 후 완료되며, 상기 제2 단계가 실시되는 동안에 상기 제1 버퍼에 기록된 데이터를 읽고, 상기 제3 단 계가 실시되는 동안에 상기 제2 버퍼에 기록된 데이터를 읽는 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법을 제공한다.
이러한 읽기 방법에서, 상기 제1 버퍼에 기록된 데이터를 읽은 후, 상기 제3 단계가 완료되기 전에 상기 제2 데이터 저장 매체의 제2 페이지에 기록된 데이터를 상기 제1 버퍼에 기록하는 단계를 더 포함할 수 있다.
본 발명은 또한 상기 다른 기술적 과제를 달성하기 위하여, 플래시 메모리 및 쓰기 버퍼를 포함하는 데이터 저장 장치에 데이터를 저장하는 방법에 있어서, 쓰기 요청이 있을 때, 쓰기 요청 빈도에 따라 상기 쓰기 요청을 복수 등급으로 분류하는 단계; 및 상기 쓰기 요청 빈도의 등급에 따라 쓰기 요청된 데이터를 상기 쓰기 버퍼 및 상기 플래시 메모리 중 어느 하나에 구분하여 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법을 제공한다.
이 방법의 상기 저장하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 페이지를 상기 쓰기 버퍼에 저장하고, 이 과정에서 상기 쓰기 버퍼가 가득 찼을 때, 상기 쓰기 버퍼에 저장된 어느 한 페이지를 상기 플래시 메모리로 저장할 수 있다.
또한, 상기 저장하는 단계는 상기 쓰기 요청을 2개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하는 단계를 포함할 수 있다.
본 발명의 실시예에 의하면, 상기 저장하는 단계는 상기 쓰기 요청을 2개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데 이터를 상기 복수 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 의하면, 상기 저장하는 단계는 상기 쓰기 요청을 3개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 실시예에 의하면, 상기 저장하는 단계는 상기 쓰기 요청을 3개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제3 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 의하면, 상기 분류하는 단계 전에, 상기 쓰기 요청에 대한 페이지가 상기 쓰기 버퍼에 존재하면, 상기 쓰기 요청의 분류와 관계없이 상기 쓰기 버퍼의 해당 페이지를 갱신(update)하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 의하면, 상기 분류하는 단계는 하나 이상의 LRU(Least Recently Used) 큐를 사용하여 상기 쓰기 요청을 핫 페이지 혹은 콜드 페이지로 분류할 수 있다.
본 발명의 또 다른 실시예에 의하면, 상기 분류하는 단계는 상기 쓰기 요청에 카운트를 추가하여, 상기 카운트가 소정의 시간을 경과하였는지의 여부를 기준으로 상기 쓰기 요청을 분류할 수 있다.
상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장하는 과정에서 상기 쓰기 버퍼에 데이터가 가득 찬 경우, 상기 쓰기 버퍼에 저장된 데이터 중 사용 빈도가 낮은 데이터를 상기 플래시 메모리에 저장한 다음, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장할 수 있다.
상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장한 후, 메타데이터를 갱신할 수 있다.
본 발명은 또한 상기 기술적 과제를 달성하기 위하여, 적어도 플래시 메모리를 포함하는 데이터 저장 장치에 있어서, 상기 플래시 메모리와 함께 쓰기 버퍼를 포함하는 메모리부; 및 쓰기 요청이 있을 때, 쓰기 요청 빈도에 따라 상기 쓰기 요청을 복수의 등급으로 분류하는 페이지 분류부를 포함하며, 상기 페이지 분류부에서 분류된 등급에 따라 쓰기 요청된 데이터를 상기 쓰기 버퍼와 상기 플래시 메모리 중 어느 하나에 구분하여 저장하는 메모리 제어부를 포함하는 것을 특징으로 하는 데이터 저장장치를 제공한다.
상기 메모리 제어부는 상기 페이지 분류부가 상기 쓰기 요청을 2개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저 장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하도록 구비될 수 있다.
상기 쓰기 버퍼는 복수의 쓰기 버퍼가 병렬로 구성될 수 있다.
상기 메모리 제어부는 상기 페이지 분류부가 상기 쓰기 요청을 2개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하도록 구비될 수 있다.
또한, 상기 메모리 제어부는 상기 페이지 분류부가 상기 쓰기 요청을 3개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하도록 구비될 수 있다.
또한, 상기 메모리 제어부는 상기 페이지 분류부가 상기 쓰기 요청을 3개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제3 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하도록 구비될 수 있다.
상기 기술적 과제와 상기 다른 기술적 과제를 달성하기 위하여 제공하는 데이터 시스템 또는 데이터 저장장치와 그 동작방법에서,
상기 버퍼는 소정의 데이터 저장 용량을 갖는 뱅크 또는 불휘발성 메모리 칩일 수 있다. 그리고 상기 제1 및 제2 데이터 저장 매체는 각각 제1 및 제2 뱅크이고, 각 뱅크는 복수의 페이지를 포함할 수 있다. 또한, 상기 제1 및 제2 데이터 저장 매체는 각각 제1 및 제2 플래시 메모리 칩일 수 있다.
상기 제1 버퍼의 데이터 저장 용량은 상기 제1 페이지의 데이터 저장 용량과 같거나 그 보다 N배(N=1, 2, 3) 클 수 있다. 또는, 상기 제1 버퍼의 데이터 저장 용량은 플래시 메모리의 삭제 단위인 블록의 크기와 같거나 그 크기의 N배(N=1, 2, 3)일 수 있다.
상기 불휘발성 메모리부와 상기 플래시 메모리부는 하나의 칩에 구성될 수 있다.
상기 스토리지부는 플래시 변환 계층을 구비하고, 상기 플래시 메모리부와 상기 불휘발성 메모리 버퍼부사이에서 인터페이스 역할을 하는 제2 I/O버스를 더 구비할 수 있다.
상기 스토리지부는 상기 호스트부에 탈착될 수 있는 카드 형태일 수 있다.
상기 호스트부는 파일 시스템, 별도의 파일 시스템, 상기 파일 시스템과 인터페이싱하는 플래시 변환 계층, 상기 별도의 파일 시스템과 인터페이싱하는 디바이스 드라이버를 더 포함할 수 있다.
상기 쓰기 버퍼는 MRAM, FRAM, PRAM 및 비휘발성 폴리머 메모리로 이루어진 군 중 어느 하나 또는 이들의 조합일 수 있다.
상기 쓰기 버퍼는 배터리 부착형 비휘발성 메모리일 수 있다.
상기 쓰기 버퍼는 휘발성 메모리일 수 있다.
상기 플래시 메모리는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리 중 어느 하나일 수 있다.
이러한 본 발명을 이용하면, 플래시 메모리 소자에 데이터를 저장하지 않은 상태에서 전원 공급이 차단되는 등의 예외 상황에서 데이터가 휘발되는 것을 방지하여 데이터의 일관성을 유지할 수 있다. 또한, 스토리지부를 병렬 입출력이 가능한 형태로 구성하여 불휘발성 메모리 버퍼부, 곧 쓰기 버퍼부에 저장된 데이터를 병렬로 빠르게 저장할 수 있다. 예를 들면 불휘발성 메모리 버퍼부의 쓰기 속도가 플래시 메모리 소자의 그것보다 N배 빠른 경우 플래시 메모리 칩을 N개 사용하여 플래시 메모리 소자의 입출력 대역폭을 N배 확장할 수 있다. 이를 통해서 대용량 데이터를 연속적으로 상기 불휘발성 메모리 버퍼부에 기록할 수 있고, 그 과정에서 오버 플로우가 발생되는 것을 방지할 수 있다. 또한, 불휘발성 메모리 버퍼부를 읽기 동작을 위한 캐시로 활용할 수 있고, 또한 이를 통해 바이트 단위의 입출력을 지원해서 NAND형 플래시 메모리에 XIP(eXecution In Place) 기능을 지원할 수도 있다.
또한, 본 발명을 이용하면, 쓰기 속도를 증가시킬 수 있다. 쓰기 버퍼는 MRAM, PRAM, FRAM 등과 같은 불휘발성 RAM으로 이루어지기 때문에, 데이터를 영구적으로 저장할 수 있고, 플래시 메모리의 페이지 단위보다 작은 용량의 데이터, 예 를 들면 8바이트의 데이터를 기록하거나 읽을 수 있다. 또한, 플래시 메모리의 구성을 SLC와 MLC 플래시 메모리로 구성함에 따라 같은 메모리 구성 효율을 높일 수 있고, 가격 대비 성능도 높일 수 있다. 또한, 콜드 페이지로 분류된 데이터만 플래시 메모리에 기록되는 바, 플래시 메모리에 대한 쓰기동작 횟수를 줄일 수 있다. 플래시 메모리에 대한 쓰기동작 횟수가 감소함에 따라 이에 비례하는 특성이 있는 삭제동작 횟수도 감소시킬 수 있다. 플래시 메모리에 대한 삭제동작이 감소됨으로써 플래시 메모리의 평균 수명을 연장시킬 수 있다.
이하, 첨부 도면을 참조하여 본 발명의 실시예에 의한 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법을 설명한다.
먼저, 본 발명의 제1 실시예에 의한 데이터 저장 시스템(이하, 제1 시스템)에 대해 설명한다. 도 1은 상기 제1 시스템의 구성을 보여준다.
도 1을 참조하면, 제1 시스템은 호스트부(40)를 포함하고, 데이터 저장장치를 이루는 스토리지부(44)와 제1 I/O버스(42)를 포함한다. 제1 I/O버스(42)는 호스트부(40)와 스토리지부(44)사이의 인터페이스 역할을 한다. 호스트부(40)는 컴퓨터의 본체에 해당하는 것으로 소정의 파일 시스템(40a)이 내장되어 있다. 스토리지부(44)는 플래시 변환계층(Flash Translation Layer)(44a), 불휘발성 메모리 버퍼부(44b), 제2 I/O버스(44c) 및 플래시 메모리부(44d)를 포함한다. 플래시 변환 계층(44a)은 하드 웨어 형태로 구비되어 플래시 메모리부(44d)의 어디에 어떤 데이터가 기록되어 있는지 파악하고, 삭제 동작을 수행하기도 하며, 불휘발성 메모리 버퍼부(44b)에 어떤 데이터가 기록되어 있는지도 파악한다. 따라서 플래시 변환 계 층(44a)을 이용하면, 불휘발성 메모리 버퍼부(44b)에 기록된 데이터도 읽을 수 있다. 제2 I/O버스(44c)는 불휘발성 메모리 버퍼부(44b)와 플래시 메모리부(44d)사이에서 인터페이스 역할을 한다. 스토리지부(44)는 호스트부(40)에 탈착될 수 있고, 휴대할 수 있는 것으로써, 예를 들면 컴팩 플래시 카드(Compact Flash Card), 스마트 미디어 카드(Smart Media Card), 멀티 미디어 카드(Multi Media Card), 보안 디지털 카드(Secure Digital Card), 메모리 스틱 또는 USB 저장 장치일 수 있다.
도 2를 참조하면, 불휘발성 메모리 버퍼부(44b)는 제1 내지 제n 불휘발성 메모리 버퍼(이하, 버퍼)(44b1, 44b2...44b(n-1), 44b(n))를 포함한다. 제1 내지 제n 버퍼(44b1, 44b2...44b(n-1), 44b(n))는 병렬로 연결되어 있다. 제1 내지 제n 버퍼(44b1, 44b2...44b(n-1), 44b(n))는 각각 소정의 용량을 갖는 뱅크 혹은 칩일 수 있다. 이때, 상기 뱅크나 칩은 불휘발성 메모리 소자, 예를 들면 MRAM, FRAM, PRAM 또는 불휘발성 폴리머 메모리 등일 수 있다. 플래시 메모리부(44d)는 제1 내지 제m 뱅크(44d1, 44d2...44d(m-1), 44d(m))를 포함할 수 있다. 제1 내지 제m 뱅크(44d1, 44d2...44d(m-1), 44d(m))는 병렬로 연결되어 있다. 제1 내지 제m 뱅크(44d1, 44d2...44d(m-1), 44d(m))는 각각 복수의 페이지(p1)를 포함한다. 각 페이지(p1)는 소정의 용량을 갖는데, 바람직하게는 제1 내지 제n 버퍼(44b1, 44b2.. 44b(n-1), 44b(n)) 각각의 용량과 같다. 곧, 불휘발성 메모리 버퍼부(44b)를 이루는 버퍼들 중 하나의 용량과 제1 내지 제m 뱅크(44d1, 44d2...44d(m-1), 44d(m)) 중 어느 한 뱅크를 이루는 복수의 페이지들 중 하나의 용량은 갖다. 예를 들어, 불휘발성 메모리 버퍼부(44b)를 이루는 버퍼들 각각의 용량이 512바이트라고 할 때, 제1 내지 제m 뱅크(44d1, 44d2...44d(m-1), 44d(m)) 중 어느 한 뱅크를 이루는 복수의 페이지(p1)들 중 하나의 용량 역시 512바이트인 것이 바람직하다. 제1 내지 제m 뱅크들 (44d1, 44d2...44d(m-1), 44d(m)) 각각은 플래시 메모리 칩으로 대체될 수 있다. 플래시 메모리부(44d)는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리를 포함할 수 있다. 이때, 상기 SLC 및 MLC 플래시 메모리들은 각각 상기한 바와 같이 병렬로 연결된 복수의 뱅크를 포함할 수 있다.
불휘발성 메모리 버퍼부(44b)의 한 버퍼의 데이터 저장 용량과 플래시 메모리부(44d)의 뱅크의 한 페이지의 데이터 저장 용량은 같은 것이 바람직하나, 상기 버퍼의 데이터 저장 용량은 상기 페이지의 데이터 저장 용량보다 N배 클 수도 있고(N은 1,2,3), 상기 페이지의 데이터 저장 용량보다 작을 수도 있다. 또한, 상기 버퍼의 데이터 저장 용량은 플래시 메모리의 삭제 단위인 블록의 크기와 같거나 그 크기의 N배일 수 있다(N은 1,2,3).
한편, 제n 버퍼(44b(n))에서 n은 불휘발성 메모리 버퍼부(44b)에 포함된 버퍼(혹은 뱅크)의 수를 나타낸다. 상기 n은 2p+1과 같다. 여기서, p는 플래시 메모리부(44d)에 포함된 플래시 메모리 소자들의 병렬화 정도를 나타낸다. 상기 병렬화 정도는 플래시 메모리 소자의 쓰기 속도를 불휘발성 메모리 소자의 쓰기 속도로 나눈 값과 같거나 작은 자연수이다. 예를 들어, 제1 내지 제n 버퍼(44b1, 44b2 ..44b(n-1), 44b(n))가 각각 FRAM 소자이고, 플래시 메모리부(44d)의 제1 내지 제m 뱅크 (44d1, 44d2 ..44d(m-1), 44d(m)) 각각이 NAND형 플래시 메모리 소자인 경우, FRAM 소자의 쓰기 속도는 100(ns/워드) 이고, 상기 NAND형 플래시 메모리 소자 의 쓰기 속도는 500(ns/워드) 정도이므로, FRAM 소자의 쓰기 속도와 NAND형 플래시 메모리 소자의 쓰기 속도는 5배의 차이가 난다. 곧, 상기한 플래시 메모리 소자의 병렬화 정도를 나타내는 상기 p의 값은 5가 된다. 이 경우, 불휘발성 메모리 버퍼부(44b)는 총 11개(2*5+1)의 버퍼(혹은 뱅크)를 포함하고, 플래시 메모리부(44d)는 입출력이 가능한 5개의 논리 뱅크를 포함하게 된다.
도 3은 본 발명의 제2 실시예에 의한 병렬 입출력이 가능한 플래시 메모리 소자가 포함된 복합 메모리를 구비하는 데이터 저장 시스템(이하, 제2 시스템)의 구성을 보여준다.
도 3을 참조하면, 제2 시스템(D)은 호스트부(50)를 포함하고, 데이터 저장장치를 이루는 I/O버스(52) 및 스토리지부(54)를 포함한다. 이때, 호스트부(50), I/O버스(52) 및 스토리지부(54)는 하나의 본체내에 구비되어 있다. 곧, 도 1의 제1 시스템에서 스토리지부(44)는 디스켓 등과 같은 형태로 호스트부(40)에 탈착될 수 있는 부재인 반면, 제2 시스템(D)의 스토리지부(54)와 호스트부(50)는 동일한 PCB 기판에 장착되는 칩일 수 있다. 제2 시스템(D)에서 호스트부(50)는 기존의 파일 시스템(50a)과 별도의 파일 시스템(50b)을 포함하고, 기존의 파일 시스템(50a)의 운영과 관련된 플래시 변환 계층(50c)과 별도의 파일 시스템(50b)의 운영과 관련된 디바이스 드라이버(50d)를 포함한다. 디바이스 드라이버(50d)는 소프트 웨어 형태로 구비되어 있다. 제2 시스템(D)에서 I/O버스(52)는 호스트부(50)와 스토리지부(54)사이에서 인터페이스 역할을 한다. 스토리지부(54)는 불휘발성 메모리부(54a)와 플래시 메모리부(54b)를 포함한다. 이때, 플래시 메모리부(54b)는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리를 포함할 수 있다.
도 4는 제2 시스템(D)의 스토리지부(54)의 구성을 보다 자세하게 보여준다.
도 4를 참조하면, 스토리지부(54)의 불휘발성 메모리부(54a)는 복수의 버퍼(54a1, 54a2...54a(n-1), 54(n))를 포함하고, 플래시 메모리부(54b)는 복수의 뱅크(54b1, 54b2...54b(m-1), 54(m))를 포함한다. 상기 복수의 버퍼(54a1, 54a2...54a(n-1), 54(n))는 각각 병렬로 구비되어 있고, 복수의 뱅크(54b1, 54b2...54b(m-1), 54(m)) 또한 각각 병렬로 구비되어 있다. 복수의 버퍼(54a1, 54a2...54a(n-1), 54(n))와 복수의 뱅크(54b1, 54b2...54b(m-1), 54(m))가 병렬로 구비되어 있다는 것은 구조적 형태가 그렇다는 것을 의미할 수도 있지만, 동작면에서, 예컨대 쓰기 동작에서 복수의 버퍼 (54a1, 54a2...54a(n-1), 54(n))와 복수의 뱅크(54b1, 54b2...54b(m-1), 54(m))에 데이터가 병렬로 기록되는 것을 의미하는 바가 더욱 크다. 복수의 버퍼(54a1, 54a2...54a(n-1), 54(n))는 제1 시스템에서 설명한 복수의 버퍼(44b1, 44b2...44b(n-1), 44b(n))와 같을 수 있다. 복수의 뱅크 (54b1, 54b2...54b(m-1), 54(m))는 각각 복수의 페이지(p2)를 포함할 수 있다. 따라서 복수의 뱅크 (54b1, 54b2...54b(m-1), 54(m))는 제1 시스템에서 설명한 복수의 뱅크(44d1, 44d2...44d(m-1), 44d(m))와 같을 수 있다. 복수의 뱅크(54b1, 54b2...54b(m-1), 54b(m))는 하나의 칩 내에 구비된 것일 수 있다. 또한, 복수의 뱅크(54b1, 54b2...54b(m-1), 54b(m)) 각각은 플래시 메모리 칩으로 대체될 수도 있다.
한편, 도 1 및 도 3에 도시한 제1 및 제2 시스템의 플래시 메모리부(44d, 54b)는 NAND형 플래시 메모리를 포함하는데, NOR형 플래시 메모리를 포함할 수도 있다. 플래시 메모리부(44d, 54b)가 NOR형일 때, 바이트 또는 워드 단위로 데이터 입출력이 가능하지만, 이렇게 하는 경우, 관리가 어려울 수 있다.
따라서 본 발명에서는 플래시 메모리부(44d, 54b)가 NOR형이라 하더라도 플래시 메모리부(44d, 54b)를 이루는 복수 뱅크의 페이지 구성은 플래시 메모리부(44d, 54b)가 NAND형일 때와 같은 개념의 논리적인 페이지로 구성한다. 또한, 플래시 메모리부(44d, 54b)가 NOR형일 때, 복수 뱅크의 페이지 크기는 플래시 메모리부(44d, 54b)가 NAND형일 때의 복수 뱅크의 페이지 크기와 같거나 다를 수 있다.
플래시 메모리부(44d, 54b)가 NOR형일 때, 복수 뱅크의 페이지 구성을 플래시 메모리부(44d, 54b)가 NAND형일 때와 동일하게 구성할 경우, 플래시 메모리부(44d, 54b)의 동작 방식은 후술되는 플래시 메모리부(44d, 54b)가 NAND형일 때의 동작 방식과 동일하게 된다.
다음, 도 5를 참조하여 본 발명의 제1 시스템 또는 제2 시스템(D)에 대한 쓰기 동작을 수행하는 과정을 설명한다.
도 5에서 불휘발성 메모리 버퍼부에서 플래시 메모리부로 향하는 화살표는 데이터의 흐름을 나타낸다. 곧, 불휘발성 메모리 버퍼부에 기록된 데이터가 플래시 메모리부로 이동되는 것을 의미한다.
도 5와 도 6에서는 비휘발성 메모리의 읽기와 쓰기에는 1클록(clock)과 2클록이 소요되고 플래시 메모리의 읽기와 쓰기에는 2클록과 4클록이 소요된다고 가정한다. 실제로 읽기 및 쓰기 속도는 비휘발성 메모리의 종류와 플래시 메모리의 종 류에 의존한다. 비휘발성 메모리의 읽기 및 쓰기와 플래시 메모리의 읽기 및 쓰기 성능의 상대적 비율은 비휘발성 메모리의 버퍼 수와 플래시 메모리의 뱅크 수를 결정하는 설계 인자이다.
또한, 도 5에서 불휘발성 메모리 버퍼부는 편의 상 병렬로 나열된 제1 내지 제3 버퍼(70, 74, 76)를 포함하고, 플래시 메모리부는 병렬로 나열된 제1 및 제2 뱅크(80, 90)을 포함하는 것으로 간주한다. 이때, 제1 뱅크(80)는 제1 내지 제5 페이지(80a, 80b, 80c, 80d, 80e)를 포함하고, 제2 뱅크(90)도 제1 내지 제5 페이지(90a, 90b, 90c, 90d, 90e)를 포함한다. 제1 내지 제3 버퍼(70, 74, 76)는 상술한 불휘발성 메모리 버퍼부(44b 또는 54a)에 포함된 버퍼들 중 일부일 수 있다. 그리고 제1 및 제2 뱅크(80, 90)는 상술한 플래시 메모리부(44d, 54b)에 포함된 복수의 뱅크들 중 일부일 수 있다.
도 5를 참조하면, 클록 사이클의 첫째 클록(clock)(1)에서 불휘발성 메모리 버퍼부의 제1 버퍼(70)에 데이터가 기록된다. 제1 버퍼(70)에 대한 데이터 기록은 클록 사이클의 둘째 클록(2)이 나타날 때까지 계속된다. 제1 버퍼(70)에 대한 데이터 기록이 완료된 후, 셋째 클록(3)에서 제1 버퍼(70)에 기록된 데이터는 플래시 메모리부의 제1 뱅크(80)의 제1 페이지(80a)에 기록되기 시작한다. 제1 버퍼(70)에 기록된 데이터를 제1 뱅크(80)의 제1 페이지(80a)에 기록하는 과정은 여섯째 클록(6)이 나타날 때까지 계속된다. 제1 버퍼(70)에 기록된 데이터를 제1 뱅크(80)의 제1 페이지(80a)에 기록하는데 소요되는 시간은 불휘발성 메모리 버퍼부의 어느 한 버퍼에 데이터를 기록하는데 소요되는 시간의 2배이다. 따라서 제1 버퍼(70)에 기 록된 데이터를 제1 뱅크(80)의 제1 페이지(80a)에 기록하는 동안에 제1 버퍼(70)에는 데이터를 기록할 수 없다. 그러므로 제1 버퍼(70)에 기록된 데이터가 제1 뱅크(80)의 제1 페이지(80a)에 기록되는 동안에는 불휘발성 메모리 버퍼부에 입력되는 데이터는 제2 및 제3 버퍼(74, 76)에 순차적으로 기록된다. 제2 및 제3 버퍼(74, 76)에 데이터가 기록되는 시점은 불휘발성 메모리 버퍼부에 입력되는 데이터가 시간적으로 연속적이냐 불연속적이냐에 따라 달라질 수 있다. 불휘발성 메모리 버퍼부에 입력되는 데이터가 시간적으로 불연속적인 경우, 예컨대 제1 버퍼(70)에 기록된 데이터가 제1 뱅크(80)의 제1 페이지(80a)로 완전히 옮겨질 때까지 불휘발성 메모리 버퍼부에 입력되는 데이터가 없다면, 이후 불휘발성 메모리 버퍼부에 입력되는 데이터는 다시 제1 버퍼(70)에 기록될 수 있다. 반면, 불휘발성 메모리 버퍼부에 데이터가 연속적으로 입력된다고 할 때, 제1 버퍼(70)에 데이터가 입력된 후 입력되는 데이터는 제2 버퍼(74)에 기록된다. 곧, 제2 버퍼(74)에 대한 데이터 기록은 세째 클록(3)이 나타나면서 시작되어 네번째 클록(4)이 나타날 때 완료된다. 클록 사이클을 보면, 제1 버퍼(70)에 기록된 데이터를 제1 뱅크(80)의 제1 페이지(80a)에 기록하는 과정은 제2 버퍼(74)에 데이터를 완전히 기록한 시점인 네째 클록에서도 진행중에 있다. 제2 버퍼(74)에 대한 데이터 기록이 완료된 후, 바로 다음 클록에서, 곧 다섯째 클록(5)에서 제2 버퍼(74)에 기록된 데이터는 제2 뱅크(90)의 제1 페이지(90a)로 기록되기 시작한다. 제2 버퍼(74)에 기록된 데이터를 제2 뱅크(90)의 제1 페이지(90a)에 기록하는 과정은 다섯째 클록(5)에서 시작되어 여덟째 클록(8)이 나타날 때까지 계속된다. 제1 버퍼(70)에 기록된 데이터를 제1 뱅크(80)의 제1 페이지(80a)에 기록하는 과정은 셋째 클록(3)에서 시작되어 여섯째 클록(6)이 나타날 때까지 계속되므로, 다섯째 및 여섯째 클록(5, 6)이 나타날 동안에는 제1 및 제2 버퍼(70, 74)에 대한 데이터 기록은 할 수 없게 되고, 제2 버퍼(74)의 경우, 여덟째 클록(8)이 나타날 때까지 데이터를 기록할 수 없다. 따라서 제2 버퍼(74)에 데이터가 기록된 이후, 다섯째 클록(5)에서 불휘발성 메모리 버퍼부에 입력되는 데이터는 제3 버퍼(76)에 기록된다. 제3 버퍼(76)에 대한 데이터 기록은 여섯째 클록(6)이 나타날 때까지 계속된다. 여섯째 클록(6)에서는 제3 버퍼(76)에 대한 데이터 기록이 완료될 뿐만 아니라 제1 버퍼(70)에 기록된 데이터를 제1 뱅크(80)의 제1 페이지(80a)로 옮겨 기록하는 과정도 완료된다. 그러나 제2 버퍼(74)에 기록된 데이터를 제2 뱅크(90)의 제1 페이지(90a)에 기록하는 과정은 계속 진행중에 있다. 이와 같이 클록 사이클의 여섯째 클록(6)에서 제3 버퍼(76)에 대한 데이터 기록이 완료되고, 불휘발성 메모리 버퍼부의 제1 버퍼(70)는 빈 상태가 되므로, 일곱째 클록(7)에서 불휘발성 메모리 버퍼부에 입력되는 데이터는 다시 제1 버퍼(70)에 기록된다.
다음에는 상기한 제1 또는 제2 시스템에서의 읽기 동작을 설명한다.
본 발명에 의한 제1 또는 제2 시스템에서의 읽기 동작은 일반적인 데이터 캐싱 기법과 유사하게 자주 사용되는 주소 영역을 하드웨어 캐시를 사용하거나 소프트웨어 LRU(Least Recently Used) 등을 사용하여 유지하고 이를 불휘발성 RAM의 일부를 사용하여 유지하고 있다가 이후에 불휘발성 RAM에 유지하고 있는 데이터에 대한 읽기 요청이 발생하면 플래시 메모리를 사용하지 않고 불휘발성 RAM에서 빠르게 읽어 전송하는 방법이다. 이러한 읽기 방법과 관련해서 본 발명에서 중요한 점은 추가적으로 선인출(prefetching) 기법을 사용할 수 있는 이와 같은 경우에도 동일하게 병렬 구조를 활용하여 빠르게 플래시 메모리부의 선택된 뱅크에서 데이터를 읽어서 불휘발성 메모리 버퍼부의 선택된 버퍼로 선인출 할 수 있다는 점이다.
이러한 읽기 방법은 쓰기 방법의 경우와 동일하게 비휘발성 RAM과 플래시메모리의 읽기 성능의 상대적 비율만큼의 병렬화 정도를 사용하여 앞으로 읽을 것으로 예상되는 데이터를 불휘발성 메모리 버퍼부의 버퍼에 올려 두고 읽은 데이터를 밀어내는 방식이다.
이와 같은 읽기 방법에서는 앞으로 읽을 데이터에 대한 예측이 정확할 경우, 용량이 적은 버퍼를 사용하더라도 계속적으로 불휘발성 RAM에서 읽는 것과 같은 속도로 데이터를 읽을 수 있다.
도 6은 상기 제1 시스템 또는 제2 시스템의 읽기 과정을 클록 사이클에 맞춰 보여준다. 도 6의 화살표는 도 5의 화살표와 같이 데이터의 흐름 방향을 나타낸다.
도 6을 참조하면, 플래시 메모리부의 제1 뱅크(80)의 제1 페이지(80a)에 기록된 데이터를 읽어서 불휘발성 메모리 버퍼부의 제1 버퍼(70)에 기록(이하, 제1 기록)한다. 이때, 제1 뱅크(80)는 플래시 메모리부의 상기 SLC 플래시 메모리에 속한 뱅크 중 하나이거나 상기 MLC 플래시 메모리에 속한 뱅크 중 하나일 수 있다. 읽기 동작은 쓰기 동작보다 빠르기 때문에 상기 제1 기록은 제1 클록(1)이 나타나면서 시작해서 제2 클록(2)이 나타날 때까지 계속된다. 상기 제1 기록이 이루어지는 동안에 제2 뱅크(90)의 제1 페이지(90a)에 기록된 데이터를 읽어서 불휘발성 메 모리 버퍼부의 제2 버퍼(74)에 기록(이하, 제2 기록)한다. 상기 제2 기록은 상기 제1 기록이 시작된 후, 한 클록이 소요된 이후에 시작한다. 곧, 상기 제2 기록은 제2 클록(2)에서 시작해서 제3 클록(3)이 나타날 때까지 실시한다. 상기 제2 기록이 진행되는 동안에 제1 뱅크(80)의 제2 페이지(80b)에 기록된 데이터를 읽어서 제3 버퍼(76)에 기록(이하, 제3 기록)한다. 상기 제3 기록은 제3 클록(3)에서 시작해서 제4 클록(4)이 나타날 때까지 실시한다.
상기한 제1 내지 제3 기록 과정을 거쳐 플래시 메모리부로부터 불휘발성 메모리 버퍼부의 제1 내지 제3 버퍼(70, 74, 76)에 기록된 데이터는 순차적으로 읽혀질 수 있다. 곧, 제1 버퍼(70)에 기록된 데이터는 제1 뱅크(80)의 제1 페이지(80a)에 기록된 데이터가 제1 버퍼(70)에 쓰여진 후 바로 읽혀진다. 곧, 상기 제1 기록에 의해 제1 뱅크(80)의 제1 페이지(80a)에서 제1 버퍼(70)로 옮겨진 데이터는 제3 클록(3)이 나타날 동안 읽혀진다. 제3 클록(3)이 나타나면서 제2 뱅크(90)의 제1 페이지(90a)에 기록된 데이터를 제2 버퍼(74)로 기록하는 상기 제2 기록이 완료된다. 그러므로 제3 클록(3)이 나타날 동안 제1 버퍼(70)에 기록된 데이터를 읽은 다음, 바로 제4 클록(4)에서 제2 버퍼(74)에 기록된 데이터를 읽을 수 있다. 동일한 과정을 거쳐 제4 클록(4)에서 제2 버퍼(74)에 기록된 데이터를 읽은 다음에는 바로 제5 클록(5)에서 제3 버퍼(76)에 기록된 데이터를 읽을 수 있다.
다음, 도 7은 본 발명의 제3 실시예에 따른 복합 메모리를 구비하는 데이터 저장 시스템(이하, 제3 시스템)의 블록도이다.
도 7을 참조하면, 제3 시스템은 데이터 저장장치(100) 및 호스트(host)(110) 를 포함한다. 데이터 저장장치(100)는 입출력 인터페이스부(120), 플래시 변환계층(130) 및 메모리부(memory part)(M1)를 포함할 수 있다. 메모리부(M1)는 쓰기 버퍼(140) 및 플래시 메모리(150)를 포함할 수 있다. 데이터 저장장치(100)는 호스트(110)에 탈착될 수 있고 휴대할 수 있는데, 예를 들어 컴팩트 플래시 카드(Compact Flash Card), 스마트 미디어 카드(Smart Media Card), 멀티미디어 카드(Multi-media Card), 보안 디지털 카드(Secure Digital Card), 메모리 스틱 또는 USB(Universal Serial Bus) 저장장치일 수 있다. 호스트(110)는 플래시 변환계층(130)의 메모리 제어부(131)를 통해 플래시 메모리(150)를 제어한다. 호스트(110)는 플래시 메모리의 데이터를 기록할 장소를 지정하는 논리 어드레스를 메모리 플래시 변환계층(130)으로 전달한다. 호스트(100)는 퍼스널 컴퓨터(PC) 및 디지털 카메라, MP3 플레이어와 같은 휴대용 전자기기를 포함할 수 있다.
입출력 인터페이스부(120)는 호스트(110)와 데이터 저장장치(100)간에 데이터를 중계하여 데이터 저장장치(100) 내의 각 기능부와 호스트(110)와의 사이에서의 데이터교환을 실현한다. 입출력 인터페이스부(120)는 호스트(110)로부터 플래시 메모리(150)에 대한 데이터 읽기 명령을 수신할 때, 상기 읽기 명령을 해독하여 읽기 대상(Read target) 페이지를 지정하는 논리 주소를 플래시 변환계층(130)으로 보낸다. 또한, 입출력 인터페이스부(120)는 메모리 제어부(131)에 의해 플래시 메모리(150)로부터 전송된 읽기대상 데이터를 외부버스를 통하여 호스트(110)로 송출한다. 입출력 인터페이스부(120)는 호스트(110)로부터 플래시 메모리(150)에 대한 데이터 쓰기 명령을 수신할 때, 상기 쓰기 명령을 해독하여 쓰기 대상 페이지를 지 정하는 논리 주소를 플래시 변환계층(130)으로 보낸다.
플래시 변환 계층(130)은 플래시 메모리(150)를 하드 디스크와 같은 블록 디바이스로 사용할 수 있도록 중재하는 역할을 한다. 플래시 변환 계층(130)은 가상의 블록 디바이스 상의 논리 주소와 플래시 메모리 상의 물리 주소간의 사상(mapping)정보를 유지하면서 소정의 논리 주소에 대해 쓰기/읽기 동작이 요청이 있을 때, 상기 사상 정보를 이용하여 논리 주소를 물리 주소로 변환하는 역할을 수행한다. 특히, 논리 주소에 대해 데이터를 변경하는 쓰기 동작이 요청되는 경우, 논리 주소에 대응하는 물리 주소를 전기적으로 소거한 후 재기록하거나 또는 논리 주소를 다른 물리 주소로 재 사상하는 역할을 수행한다. 이러한 플래시 변환 계층(130)은 메모리 제어부(131) 및 RAM(132)을 포함할 수 있다. 그리고 메모리 제어부(131)는 쓰기 요청을 복수의 등급으로 분류하는 페이지 분류부(133)를 포함할 수 있다. 메모리 제어부(131)는 입출력 인터페이스부(110)를 통해 수신된 쓰기 요청에 대한 논리 주소를 RAM(132)에 저장시킨다. 페이지 분류부(133)는 입출력 인터페이스부(110)를 통해 쓰기 요청이 수신될 때, 쓰기 요청 빈도에 따라 쓰기 요청을 복수 등급으로 분류한다. 페이지 분류부(133)는 후술하는 바와 같이 쓰기 요청을 2개 등급 또는 3개 등급으로 분류할 수 있다.
메모리 제어부(131)는 페이지 분류부(133)에 분류된 등급에 따라 쓰기 요청된 데이터를 쓰기 버퍼(140) 또는 플래시 메모리(150)에 구분하여 저장한다. 메모리 제어부(131)는 페이지 분류부(133)가 2개의 등급으로 분류하는 경우, 쓰기 요청 빈도가 높은 등급의 데이터를 쓰기 버퍼(140)에 임시 저장하고, 쓰기 요청 빈도가 낮은 등급의 데이터를 플래시 메모리(150)에 저장한다.
쓰기 버퍼(140)에는 메모리 제어부(131)의 제어하에 입출력 인터페이스부(120)를 통해 수신한 데이터가 페이지 단위로 임시 저장된다. 쓰기 버퍼(140)는 불휘발성 메모리일 수 있는데, 예를 들면 MRAM, FRAM, PRAM 및 비휘발성 폴리머 메모리로 이루어진 군 중 어느 하나 또는 이들의 조합일 수 있다. 또한, 쓰기 버퍼(140)는 배터리 부착형 비휘발성 메모리일 수 있다. 또한, 쓰기 버퍼(140)는 휘발성 메모리일 수도 있다. 이러한 쓰기 버퍼(140)는 각각이 소정의 용량을 갖는 뱅크 또는 칩 형태의 복수개의 쓰기 버퍼가 병렬 형태로 이루어질 수 있다.
플래시 메모리(150)는 각각이 일정 크기를 갖는 복수의 물리블록으로 분할되어 있다. 상기 각 물리블록(physical block)은 고유의 물리블록번호(0, 1, 2,..., n-1)를 가지고 있기 때문에, 개별적으로 지정 가능하며 전기적 삭제 단위로 사용된다. 또한, 각 물리블록은 복수의 일정 크기를 갖는 물리 페이지(physical page)로 분할된다. 각 물리페이지는 소속된 물리블록의 오프셋으로 접근 가능하며 읽기와 쓰기의 단위로 사용된다. 물리블록의 크기와 물리페이지의 크기는 NAND형 플래시 제품마다 다르게 정해질 수 있다. 예를 들면, 전체 용량이 128 MByte이면서 블록의 크기가 16 KByte이고 페이지의 크기가 512 Byte인 플래시 메모리는 8,192개의 물리블록으로 구성되며 각 물리블록은 32개의 물리페이지로 구성된다. 이러한 플래시 메모리(150)는 NAND형 SLC 플래시 메모리(150a)와 NAND형 MLC 플래시 메모리(150b)를 포함할 수 있다. 이때, SLC 플래시 메모리(150a)와 MLC 플래시 메모리(150b)는 각각 상기한 복수의 물리 블록을 포함할 수 있다.
다음, 상기 제3 시스템에서의 데이터 저장방법을 설명한다.
본 발명은 쓰기 동작에서 나타나는 시간적 근접성(temporal locality)을 활용하여 쓰기 버퍼의 크기를 줄이면서 쓰기 동작의 횟수를 줄이는 이득을 충분히 취할 수 있는 있다는 점에 기초한다.
컴퓨터 시스템에서 메모리 접근패턴에 시공간적 근접성이 있는 것과 유사하게 저장장치의 입출력 패턴에서도 시공간적 근접성이 나타난다. 이때 시간적 근접성은 최근에 접근된 데이터가 앞으로도 접근될 확률이 높다는 것이다. 그리고 공간적 근접성(spatial locality)은 최근에 접근된 블록, 파일, 또는 디렉토리와 인접한 블록, 파일, 또는 디렉토리에 앞으로 접근할 확률이 높다는 것이다.
보다 상세하게는 20:80 법칙과 유사하게 일부 주소 공간은 빈번하게 쓰기 요청이 발생하며 그 외 주소 공간은 한번 쓰기 요청이 발생하면 그 이후에는 거의 수정 요청이 발생하지 않는다. 빈번하게 쓰기 요청이 발생하는 영역을 핫(Hot) 페이지라고 하고 그렇지 않은 영역을 콜드(Cold) 페이지라고 한다. 이러한 핫 페이지 및 콜드 페이지의 분류 및 분류된 데이터의 저장에 대해서는 도 8을 참조하여 상세히 설명하기로 한다.
도 8은 상기 제3 시스템의 데이터 저장 장치에 대한 데이터 저장 방법의 흐름도를 보여준다. 하기에서 데이터 저장 방법은 도 7의 구성요소와 결부시켜 설명한다.
도 7 및 도 8을 참조하면, 메모리 제어부(131)는 호스트(110)로부터 입출력 인터페이스부(120)를 통해 데이터의 쓰기 요청을 수신한다(200 단계). 여기서 데이 터는 페이지 단위로 전달되며, 쓰기대상 페이지를 지정하는 논리 주소를 함께 수신한다. 메모리 제어부(131)는 쓰기대상 페이지를 지정하는 논리 주소를 RAM(132)에 저장한다. 메모리 제어부(131)는 메모리부(M1)의 쓰기 버퍼(140)에 상기 쓰기 요청에 대한 쓰기 대상 페이지와 동일한 주소의 쓰기 대상 페이지가 존재하는지의 여부를 판정한다(210 단계). 쓰기 버퍼(140)에 이미 동일한 주소의 쓰기 대상 페이지가 존재하면, 페이지 분류와 무관하게 이를 쓰기 버퍼(140) 상에 직접 갱신한다(220 단계).
쓰기 버퍼(140)에 동일한 주소의 쓰기 대상 페이지가 존재하지 않으면, 페이지 분류부(133)는 쓰기 요청 빈도에 따라 상기 쓰기 요청을 핫 페이지 또는 콜드 페이지로 분류한다(230 단계). 페이지 분류부(133)는 쓰기 동작에서 나타나는 시간적 근접성을 활용하여 앞으로 수정될 확률을 예측하고 이를 바탕으로 수정될 확률이 높은 핫 페이지와 그렇지 않은 콜드 페이지로 분류한다. 페이지 분류는 다음과 같은 방법으로 수행될 수 있다.
첫째, LRU(least recently used)를 이용한 방법이다. LRU를 이용한 방법은, 일반적으로 가장 오랫동안 액세스되지 않았던 페이지는 조만간에도 액세스되지 않을 확률이 가장 크다는 시간적 근접성에 기반을 두고 있는 것으로서, 하나의 LRU 큐를 관리하고 새로운 쓰기 요청이 들어오면 상기 쓰기 요청에 해당하는 주소 영역이 LRU 큐에 등록이 되어 있는지 여부를 검사하는 것이다. 만약 상기 쓰기 요청에 해당하는 주소 영역이 LRU 큐에 이미 등록되어 있다면, 이는 이전의 쓰기 동작 중에 상기 주소 영역에 대한 쓰기 요청이 존재한 것이기 때문에, 상기 쓰기 요청을 핫 페이지로 분류하고, 그렇지 않으면 상기 쓰기 요청을 콜드 페이지로 분류하여 LRU 큐에 추가하는 것이다.
둘째, 쓰기 요청된 주소에 카운트를 추가하여 관리하는 방법을 이용한다. 쓰기 요청이 발생한 시점에 특정 카운트 값을 설정하고 시간이 경과함에 따라 이 값을 감소시켜 소정의 시간(예를 들어, 10분)이 경과하면 카운트를 0으로 설정한다. 이 때 카운트 값이 0이 아닌 영역에 발생한 쓰기 요청은 핫 페이지로 분류하고 그렇지 않은 영역에 발생하는 요청은 콜드 페이지로 분류한다.
이외에도 하드웨어 캐시의 구조를 응용하는 등 다양한 방법으로 근접성을 추출하여 페이지를 분류할 수 있다.
상기에서 쓰기 요청을 그 빈도에 따라 핫 페이지와 콜드 페이지 2개 등급으로 분류하였지만, 쓰기 요청은 그 빈도에 따라 3개 등급으로 분류할 수 있는데, 예를 들면 높은 등급, 중간 등급 및 낮은 등급으로 분류할 수도 있다.
계속해서, 상기 쓰기 요청에 대한 페이지가 핫 페이지인가를 판정하는 단계(240)에서 판정 결과가 콜드 페이지일 때(NO), 메모리 제어부(131)는 콜드 페이지로 분류된 상기 쓰기 요청된 데이터를 쓰기 버퍼(140)를 경유하지 않고 플래시 메모리(150)에 직접 저장한다(250 단계). 이때, 상기 쓰기 요청된 데이터는 플래시 메모리(150)의 MLC 플래시 메모리(150b)에 저장될 수 있다. 다른 방법으로, 성능 개선을 위해서 기본적으로 쓰기 버퍼(140)를 사용하는 경우, 상기 쓰기 요청된 데이터를 쓰기 버퍼(140)를 경유하여 MLC 플래시 메모리(150b)에 저장할 수도 있다. 이렇게 함으로써, 플래시 메모리(150)의 삭제 동작 횟수를 줄일 수 있다.
상기 판정단계(240)에서 상기 쓰기 요청에 대한 페이지가 핫 페이지라고 판정하면(YES), 메모리 제어부(131)는 쓰기 버퍼(140)가 가득 찼는지의 여부를 판정한다(260 단계). 쓰기 버퍼(140)가 가득 찼다면, 쓰기 버퍼(140) 상의 페이지 중에서 근접성이 낮은 페이지, 곧 사용 빈도가 가장 낮은 페이지를 플래시 메모리(150)에 저장한다(270 단계). 이때, 상기 근접성이 낮은 페이지는 플래시 메모리(150)의 SLC 플래시 메모리(150a)에 저장하는 것이 바람직하나, MLC 플래시 메모리(150b)에 저장할 수도 있다.
보다 구체적으로 설명하면, 쓰기 버퍼(140)에 저장된 페이지 중 가장 오랜 시간 전에 수정된 페이지를 선택하여 플래시 메모리(150)의 SLC 플래시 메모리(150a)에 저장하고, 다음 단계에서 쓰기 버퍼(140)의 상기 수정된 페이지가 저장되었던 영역에 상기 핫 페이지를 저장한다.
계속해서, 쓰기 버퍼(140)가 가득 차지 않았거나, S270 단계를 통해서 쓰기 버퍼(140)에 여유 공간이 생긴 경우, 쓰기 요청된 데이터를 쓰기 버퍼(140)에 저장한다(280 단계). 예를 들어 주소 공간 A~Z에 대한 쓰기 요청이 A1, B, A2, C, D, E, F, G, H, A3 순으로 발생한다고 가정한다. A를 핫 페이지로 분류하고 B~H 페이지를 콜드 페이지로 분류한 경우 쓰기 버퍼는 1개의 플래시 페이지만 저장할 수 있는 크기여도 A1, A2, A3을 모두 쓰기 버퍼에서 수행하고 실제로 플래시 메모리에는 A3만 저장하는 이득을 얻을 수 있다.
도면에 도시하지는 않았지만, 다른 방법으로는, 쓰기 버퍼(140)가 복수의 쓰기 버퍼로 이루어진 경우, 핫 페이지로 분류된 데이터를 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 저장하고, 콜드 페이지로 분류된 데이터를 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 저장할 수 있다. 이후, 상기 제2 쓰기 버퍼에 저장된, 상기 콜드 페이지로 분류된 데이터는 플래시 메모리(150)의 SLC 플래시 메모리(150a)로 이동하여 저장할 수 있다.
다른 방법으로, 페이지 분류부(133)가 상기 쓰기 요청된 데이터를 3개 등급으로 분류하는 경우, 메모리 제어부(131)는 쓰기 요청 빈도가 높은 등급의 데이터를 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 쓰기 요청 빈도가 낮은 등급의 데이터를 플래시 메모리(150)의 MLC 플래시 메모리(150b)에 저장할 수 있다.
또 다른 방법으로, 메모리 제어부(131)는 쓰기 요청 빈도가 높은 등급의 데이터를 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 쓰기 요청 빈도가 중간인 등급의 데이터를 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제3 쓰기 버퍼에 임시 저장한다. 이후, 상기 제3 쓰기 버퍼에 저장된 데이터를 플래시 메모리(150)의 SLC 플래시 메모리(150a) 및 MLC 플래시 메모리(150b) 중 어느 하나로 이동하여 저장할 수 있다.
상기한 바에 따라 상기 쓰기 요청된 데이터를 쓰기 버퍼(140)에 저장한 후, 메타데이터(metadata)를 갱신한다(290).
상기한 설명에서 많은 사항이 구체적으로 기재되어 있으나, 그들은 발명의 범위를 한정하는 것이라기보다, 바람직한 실시예의 예시로서 해석되어야 한다. 예들 들어 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 호스트부 또는 스토리지부 등에 상술한 구성외의 다른 구성을 추가할 수도 있고, 호스트부와 스토리지부사이에 I/O버스외의 다른 구성을 더 추가할 수도 있을 것이다. 또한, 쓰기 버퍼를 이루는 불휘발성 메모리 칩을 상술하지 않은 다른 불휘발성 메모리 칩으로 대체할 수 있다. 또한, 이종의 불휘발성 메모리 소자를 함께 사용하여 쓰기 버퍼를 구성할 수도 있을 것이다. 또한, 플래시 메모리로써 SLC 플래시 메모리를 단독으로 사용할 수도 있고, MLC 플래시 메모리를 단독으로 사용할 수도 있을 것이다. 때문에 본 발명의 범위는 설명된 실시예에 의하여 정하여 질 것이 아니고 특허 청구범위에 기재된 기술적 사상에 의해 정하여져야 한다.
상술한 바와 같이, 본 발명에 의한 데이터 저장장치에서 데이터 기록 과정은 불휘발성 메모리 소자와 플래시 메모리 소자사이의 동작 속도를 고려하여 각각 적정 수의 불휘발성 메모리 버퍼와 플래시 메모리 뱅크를 병렬 구조로 구비하고, 이들에 대해 병렬 입출력 방식으로 데이터를 기록하거나 읽는다. 그러므로 본 발명의 데이터 저장장치를 이용하면, 대용량의 데이터를 중단됨이 없이 연속적으로 처리할 수 있어, 오버플로우를 방지할 수 있고, 동작 속도(쓰기 및 읽기 속도)도 증가시킬 수 있다.
또한, 플래시 메모리 소자에 데이터를 저장하지 않은 상태에서 전원 공급이 차단되는 등의 예외 상황에서 데이터가 휘발되는 것을 방지하여 데이터의 일관성을 유지할 수 있다.
또한, 불휘발성 메모리 버퍼부를 읽기 동작을 위한 캐시로 활용할 수 있고, 이를 통해 바이트 단위의 데이터 입출력을 지원해서 NAND형 플래시 메모리에 XIP(eXecution In Place) 기능을 지원할 수도 있다.
또한, 본 발명을 이용하면, 쓰기 요청 빈도가 높은 페이지(핫 페이지)로 분류된 데이터는 쓰기 버퍼(불휘발성 RAM)에 기록하고, 쓰기 요청 빈도가 낮은 페이지(콜드 페이지)로 분류된 데이터는 플래시 메모리에 각각 구분하여 기록할 수 있는 바, 쓰기 속도를 증가시킬 수 있다. 또한, 쓰기 버퍼는 MRAM, PRAM, FRAM 등과 같은 불휘발성 RAM으로 이루어지기 때문에, 데이터를 영구적으로 저장할 수 있고, 플래시 메모리의 페이지 단위보다 작은 용량의 데이터, 예를 들면 8바이트의 데이터를 기록하거나 읽을 수 있다. 또한, 플래시 메모리의 구성을 SLC와 MLC 플래시 메모리로 구성함에 따라 같은 메모리 구성 효율을 높일 수 있고, 가격 대비 성능도 높일 수 있다. 또한, 콜드 페이지로 분류된 데이터만 플래시 메모리에 기록되는 바, 플래시 메모리에 대한 쓰기 동작 횟수를 줄일 수 있다. 플래시 메모리에 대한 쓰기 동작 횟수가 감소함에 따라 이에 비례하는 특성이 있는 삭제 동작 횟수도 감소시킬 수 있다. 플래시 메모리에 대한 삭제 동작이 감소됨으로써 플래시 메모리의 평균 수명을 연장시킬 수 있다.

Claims (68)

  1. 호스트부, 스토리지부, 상기 호스트부와 상기 스토리지부사이에서 인터페이스 역할을 하는 제1 I/O버스를 포함하는 데이터 저장 시스템에 있어서,
    상기 스토리지부는 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고,
    상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며,
    상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하여 데이터를 병렬방식으로 입출력시킬 수 있는 것을 특징으로 하는 데이터 저장 시스템.
  2. 제 1 항에 있어서, 상기 복수의 버퍼 수는 상기 복수의 데이터 저장 매체 수보다 큰 것을 특징으로 하는 데이터 저장 시스템.
  3. 제 1 항에 있어서, 상기 버퍼는 소정의 데이터 저장 용량을 갖는 뱅크인 것을 특징으로 하는 데이터 저장 시스템.
  4. 제 1 항에 있어서, 상기 버퍼는 불휘발성 메모리 칩인 것을 특징으로 하는 데이터 저장 시스템.
  5. 제 1 항에 있어서, 상기 데이터 저장 매체는 뱅크이고, 상기 뱅크는 소정의 데이터 저장 용량을 갖는 복수의 페이지를 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  6. 제 1 항에 있어서, 상기 데이터 저장 매체는 플래시 메모리 칩인 것을 특징으로 하는 데이터 저장 시스템.
  7. 제 5 항에 있어서, 상기 버퍼의 데이터 저장 용량은 상기 페이지의 데이터 저장 용량과 같거나 그 보다 N배(N=1, 2, 3) 큰 것을 특징으로 하는 데이터 저장 시스템.
  8. 제 1 항에 있어서, 상기 버퍼의 데이터 저장 용량은 플래시 메모리의 삭제 단위인 블록의 크기와 같거나 그 크기의 N배(N=1, 2, 3)인 것을 특징으로 하는 데이터 저장 시스템.
  9. 제 4 항에 있어서, 상기 불휘발성 메모리 칩은 MRAM, PRAM, FRAM 및 불휘발성 폴리머 메모리 칩으로 이루어진 군 중 어느 하나인 것을 특징으로 하는 데이터 저장 시스템.
  10. 제 1 항에 있어서, 제1 I/O버스는 USB, PCMCIA, ISA 및 PCI 중 어느 하나인 것을 특징으로 하는 데이터 저장 시스템.
  11. 제 1 항에 있어서, 상기 불휘발성 메모리부와 상기 플래시 메모리부는 하나의 칩에 구성된 것을 특징으로 하는 데이터 저장 시스템.
  12. 제 1 항에 있어서, 상기 스토리지부는 플래시 변환 계층을 구비하고, 상기 플래시 메모리부와 상기 불휘발성 메모리 버퍼부 사이에서 인터페이스 역할을 하는 제2 I/O버스를 더 구비하는 것을 특징으로 하는 데이터 저장 시스템.
  13. 제 1 항 또는 제 12 항에 있어서, 상기 스토리지부는 상기 호스트부에 탈착될 수 있는 카드 형태인 것을 특징으로 하는 데이터 저장 시스템.
  14. 제 1 항에 있어서, 상기 호스트부는 파일 시스템, 별도의 파일 시스템, 상기 파일 시스템과 인터페이싱하는 플래시 변환 계층, 상기 별도의 파일 시스템과 인터페이싱하는 디바이스 드라이버를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  15. 제 1 항에 있어서, 상기 플래시 메모리부는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리를 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  16. 호스트부, 스토리지부, 상기 호스트부와 상기 스토리지부사이에서 인터페이 스 역할을 하는 제1 I/O버스를 포함하고, 상기 스토리지부는 적어도 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고, 상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며, 상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하는 데이터 저장 시스템의 기록 방법에 있어서,
    상기 복수의 버퍼 중 제1 버퍼에 데이터를 기록하는 제1 단계;
    상기 제1 버퍼에 데이터를 기록한 후, 상기 복수의 버퍼 중 제2 버퍼에 데이터를 기록하는 제2 단계;
    상기 제2 버퍼에 데이터를 기록한 후, 상기 복수의 버퍼 중 제3 버퍼에 데이터를 기록하는 제3 단계;
    상기 제1 버퍼에 기록된 데이터를 상기 복수의 데이터 저장 매체 중 제1 데이터 저장 매체의 제1 페이지에 기록하는 제4 단계; 및
    상기 제2 버퍼에 기록된 데이터를 상기 복수의 데이터 저장 매체 중 제2 데이터 저장 매체의 제1 페이지에 기록하는 제5 단계를 포함하되,
    상기 제2 단계와 상기 제4 단계는 동시에 실시되고, 상기 제3 단계와 상기 제5 단계는 동시에 실시되는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  17. 제 16 항에 있어서, 상기 제3 버퍼에 기록된 데이터를 상기 제1 데이터 저장 매체의 제2 페이지에 기록하면서 상기 제1 버퍼에 새로운 데이터를 기록하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  18. 제 17 항에 있어서, 상기 제1 버퍼에 새로운 데이터를 기록하기 전에 상기 제1 버퍼에 기록된 데이터를 소거하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  19. 제 16 항에 있어서, 상기 버퍼 수는 상기 데이터 저장 매체의 수보다 큰 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  20. 제 16 항에 있어서, 상기 버퍼는 소정의 데이터 저장 용량을 갖는 뱅크인 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  21. 제 16 항에 있어서, 상기 버퍼는 불휘발성 메모리 칩으로써, MRAM, PRAM, FRAM 및 불휘발성 폴리머 메모리 칩으로 이루어진 군 중 어느 하나인 인 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  22. 제 16 항에 있어서, 상기 제1 및 제2 데이터 저장 매체는 제1 및 제2 뱅크이고, 각 뱅크는 소정의 데이터 저장 용량을 갖는 복수의 페이지를 포함하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  23. 제 16 항에 있어서, 상기 제1 및 제2 데이터 저장 매체는 제1 및 제2 플래시 메모리 칩인 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  24. 제 22 항에 있어서, 상기 버퍼의 데이터 저장 용량은 상기 페이지의 데이터 저장 용량과 같거나 그 보다 N배(N=1, 2, 3) 큰 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  25. 제 16 항에 있어서, 상기 버퍼의 데이터 저장 용량은 플래시 메모리의 삭제 단위인 블록의 크기와 같거나 그 크기의 N배(N=1, 2, 3)인 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  26. 제 16 항에 있어서, 상기 불휘발성 메모리부와 상기 플래시 메모리부는 하나의 칩에 구성된 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  27. 제 16 항에 있어서, 상기 스토리지부는 플래시 변환 계층을 구비하고, 상기 플래시 메모리부와 상기 불휘발성 메모리 버퍼부사이에서 인터페이스 역할을 하는 제2 I/O버스를 더 구비하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  28. 제 16 항에 있어서, 상기 스토리지부는 상기 호스트부에 탈착될 수 있는 카드 형태인 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  29. 제 16 항에 있어서, 상기 호스트부는 파일 시스템, 별도의 파일 시스템, 상 기 파일 시스템과 인터페이싱하는 플래시 변환 계층, 상기 별도의 파일 시스템과 인터페이싱하는 디바이스 드라이버를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  30. 제 16 항에 있어서, 상기 플래시 메모리부는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리를 포함하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  31. 호스트부, 스토리지부, 상기 호스트부와 상기 스토리지부사이에서 인터페이스 역할을 하는 제1 I/O버스를 포함하고, 상기 스토리지부는 적어도 불휘발성 메모리 버퍼부와 플래시 메모리부를 포함하고, 상기 불휘발성 메모리부는 병렬로 구성된 복수의 버퍼를 포함하며, 상기 플래시 메모리부는 병렬로 구성된 복수의 데이터 저장 매체를 포함하는 데이터 저장 시스템의 읽기 방법에 있어서,
    상기 복수의 데이터 저장 매체 중 제1 데이터 저장 매체의 제1 페이지에 기록된 데이터를 상기 복수의 버퍼 중 제1 버퍼에 기록하는 제1 단계;
    상기 복수의 데이터 저장 매체 중 제2 데이터 저장 매체의 제1 페이지에 기록된 데이터를 상기 복수의 버퍼 중 제2 버퍼에 기록하는 제2 단계; 및
    상기 제1 데이터 저장 매체의 제2 페이지에 기록된 데이터를 상기 복수의 버퍼 중 제3 버퍼에 기록하는 제3 단계를 포함하되,
    상기 제2 단계는 상기 제1 단계가 시작된 후 시작되어 상기 제1 단계가 완료 된 후 완료되고, 상기 제3 단계는 상기 제2 단계가 시작된 후 시작되어 상기 제2 단계가 완료된 후 완료되며,
    상기 제2 단계가 실시되는 동안에 상기 제1 버퍼에 기록된 데이터를 읽고, 상기 제3 단계가 실시되는 동안에 상기 제2 버퍼에 기록된 데이터를 읽는 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  32. 제 31 항에 있어서, 상기 제1 버퍼에 기록된 데이터를 읽은 후, 상기 제3 단계가 완료되기 전에 상기 제2 데이터 저장 매체의 제2 페이지에 기록된 데이터를 상기 제1 버퍼에 기록하는 단계를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  33. 제 31 항에 있어서, 상기 버퍼는 소정의 데이터 저장 용량을 갖는 뱅크 또는 불휘발성 메모리 칩인 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  34. 제 31 항에 있어서, 상기 제1 및 제2 데이터 저장 매체는 각각 제1 및 제2 뱅크이고, 각 뱅크는 복수의 페이지를 포함하는 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  35. 제 31 항에 있어서, 상기 제1 및 제2 데이터 저장 매체는 각각 제1 및 제2 플래시 메모리 칩인 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  36. 제 31 항에 있어서, 상기 제1 버퍼의 데이터 저장 용량은 상기 제1 페이지의 데이터 저장 용량과 같거나 그 보다 N배(N=1, 2, 3) 큰 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  37. 제 31 항에 있어서, 상기 제1 버퍼의 데이터 저장 용량은 플래시 메모리의 삭제 단위인 블록의 크기와 같거나 그 크기의 N배(N=1, 2, 3)인 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  38. 제 31 항에 있어서, 상기 불휘발성 메모리부와 상기 플래시 메모리부는 하나의 칩에 구성된 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  39. 제 31 항에 있어서, 상기 스토리지부는 플래시 변환 계층을 구비하고, 상기 플래시 메모리부와 상기 불휘발성 메모리 버퍼부사이에서 인터페이스 역할을 하는 제2 I/O버스를 더 구비하는 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  40. 제 31 항에 있어서, 상기 스토리지부는 상기 호스트부에 탈착될 수 있는 카드 형태인 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  41. 제 31 항에 있어서, 상기 호스트부는 파일 시스템, 별도의 파일 시스템, 상 기 파일 시스템과 인터페이싱하는 플래시 변환 계층, 상기 별도의 파일 시스템과 인터페이싱하는 디바이스 드라이버를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템의 읽기 방법.
  42. 제 31 항에 있어서, 상기 플래시 메모리부는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리를 포함하는 것을 특징으로 하는 데이터 저장 시스템의 기록방법.
  43. 플래시 메모리 및 쓰기 버퍼를 포함하는 데이터 저장 장치에 데이터를 저장하는 방법에 있어서,
    쓰기 요청이 있을 때, 쓰기 요청 빈도에 따라 상기 쓰기 요청을 복수 등급으로 분류하는 단계; 및
    상기 쓰기 요청 빈도의 등급에 따라 쓰기 요청된 데이터를 상기 쓰기 버퍼 및 상기 플래시 메모리 중 어느 하나에 구분하여 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법.
  44. 제 43 항에 있어서, 상기 저장하는 단계는,
    상기 쓰기 요청을 2개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하는 단계를 포함하는 것 을 특징으로 하는 데이터 저장방법.
  45. 제 43 항에 있어서, 상기 쓰기 버퍼는,
    복수 쓰기 버퍼가 병렬로 구성된 것을 특징으로 하는 데이터 저장방법.
  46. 제 45 항에 있어서, 상기 저장하는 단계는,
    상기 쓰기 요청을 2개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법.
  47. 제 45 항에 있어서, 상기 저장하는 단계는
    상기 쓰기 요청을 3개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법.
  48. 제 45 항에 있어서, 상기 저장하는 단계는
    상기 쓰기 요청을 3개 등급으로 분류할 때, 상기 분류하는 단계에서 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제3 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법.
  49. 제 43 항에 있어서, 상기 분류하는 단계 전에,
    상기 쓰기 요청에 대한 페이지가 상기 쓰기 버퍼에 존재하면, 상기 쓰기 요청의 분류와 관계없이 상기 쓰기 버퍼의 해당 페이지를 갱신(update)하는 단계를 더 포함하는 것을 특징으로 하는 데이터 저장방법.
  50. 제 43 항에 있어서, 상기 분류하는 단계는,
    하나 이상의 LRU(Least Recently Used) 큐를 사용하여 상기 쓰기 요청을 핫 페이지 혹은 콜드 페이지로 분류하는 것을 특징으로 하는 데이터 저장방법.
  51. 제 43 항에 있어서, 상기 분류하는 단계는,
    상기 쓰기 요청에 카운트를 추가하여, 상기 카운트가 소정의 시간을 경과하였는지의 여부를 기준으로 상기 쓰기 요청을 분류하는 것을 특징으로 하는 데이터 저장방법.
  52. 제 43 항에 있어서, 상기 저장하는 단계는,
    상기 쓰기 요청 빈도가 높은 등급의 페이지를 상기 쓰기 버퍼에 저장하고, 이 과정에서 상기 쓰기 버퍼가 가득 찼을 때, 상기 쓰기 버퍼에 저장된 어느 한 페이지를 상기 플래시 메모리로 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법.
  53. 제 43 항에 있어서, 상기 쓰기 버퍼는,
    MRAM, FRAM, PRAM 및 비휘발성 폴리머 메모리로 이루어진 군 중 어느 하나 또는 이들의 조합인 것을 특징으로 하는 데이터 저장방법.
  54. 제 43 항에 있어서, 상기 쓰기 버퍼는,
    배터리 부착형 비휘발성 메모리인 것을 특징으로 하는 데이터 저장방법.
  55. 제 43 항에 있어서, 상기 플래시 메모리는 NAND형 SLC 플래시 메모리와 NAND형 MLC 플래시 메모리를 포함하는 것을 특징으로 하는 데이터 저장방법.
  56. 제 44 항, 제 46 항 , 제 47 항 및 제 48 항 중 어느 한 항에서 상기 플래시 메모리는 NAND형 SLC 플래시 메모리 또는 NAND형 MLC 플래시 메모리인 것을 특징으 로 하는 데이터 저장방법.
  57. 제 44 항에 있어서, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장하는 과정에서 상기 쓰기 버퍼에 데이터가 가득 찬 경우, 상기 쓰기 버퍼에 저장된 데이터 중, 사용 빈도가 낮은 데이터를 상기 플래시 메모리에 저장한 다음, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장하는 것을 특징으로 하는 데이터 저장방법.
  58. 제 44 항, 제 52 항 및 제 57 항 중 어느 한 항에 있어서, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장한 후, 메타데이터를 갱신하는 것을 특징으로 하는 데이터 저장방법.
  59. 적어도 플래시 메모리를 포함하는 데이터 저장 장치에 있어서,
    상기 플래시 메모리와 함께 쓰기 버퍼를 포함하는 메모리부; 및
    쓰기 요청이 있을 때, 쓰기 요청 빈도에 따라 상기 쓰기 요청을 복수의 등급으로 분류하는 페이지 분류부를 포함하며, 상기 페이지 분류부에서 분류된 등급에 따라 쓰기 요청된 데이터를 상기 쓰기 버퍼와 상기 플래시 메모리 중 어느 하나에 구분하여 저장하는 메모리 제어부를 포함하는 것을 특징으로 하는 데이터 저장장치.
  60. 제 59 항에 있어서, 상기 메모리 제어부는,
    상기 페이지 분류부가 상기 쓰기 요청을 2개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 쓰기 버퍼에 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하도록 구비된 것을 특징으로 하는 데이터 저장장치.
  61. 제 59 항에 있어서, 상기 쓰기 버퍼는,
    복수의 쓰기 버퍼가 병렬로 구성된 것을 특징으로 하는 데이터 저장장치.
  62. 제 61 항에 있어서, 상기 메모리 제어부는,
    상기 페이지 분류부가 상기 쓰기 요청을 2개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하도록 구비된 것을 데이터 저장장치.
  63. 제 61 항에 있어서, 상기 메모리 제어부는,
    상기 페이지 분류부가 상기 쓰기 요청을 3개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰 기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 플래시 메모리에 저장하도록 구비된 것을 특징으로 하는 데이터 저장장치.
  64. 제 61 항에 있어서, 상기 메모리 제어부는,
    상기 페이지 분류부가 상기 쓰기 요청을 3개 등급으로 분류하는 경우, 상기 쓰기 요청 빈도가 높은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제1 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 중간인 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제2 쓰기 버퍼에 임시 저장하고, 상기 쓰기 요청 빈도가 낮은 등급의 데이터를 상기 복수의 쓰기 버퍼 중 제3 쓰기 버퍼에 임시 저장한 후, 상기 플래시 메모리에 저장하도록 구비된 것을 특징으로 하는 데이터 저장장치.
  65. 제 59 항에 있어서, 상기 쓰기 버퍼는 MRAM, FRAM, PRAM 및 비휘발성 폴리머 메모리로 이루어진 군 중 어느 하나 또는 이들의 조합인 것을 특징으로 하는 데이터 저장장치.
  66. 제 59 항에 있어서, 상기 쓰기 버퍼는 배터리 부착형 비휘발성 메모리인 것을 특징으로 하는 데이터 저장장치.
  67. 제 59 항에 있어서, 상기 쓰기 버퍼는 휘발성 메모리인 것을 특징으로 하는 데이터 저장장치.
  68. 제 59 항, 제 60 항, 제 62 항, 제 63 항 및 제 64 항 중 어느 한 항에 있어서, 상기 플래시 메모리는 SLC 플래시 메모리와 MLC 플래시 메모리 중 어느 하나인 것을 특징으로 하는 데이터 저장장치.
KR1020060064017A 2005-07-13 2006-07-07 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법 KR101257848B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20050063301 2005-07-13
KR1020050063301 2005-07-13
KR20050076368 2005-08-19
KR1020050076368 2005-08-19

Publications (2)

Publication Number Publication Date
KR20070008403A true KR20070008403A (ko) 2007-01-17
KR101257848B1 KR101257848B1 (ko) 2013-04-24

Family

ID=37743880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060064017A KR101257848B1 (ko) 2005-07-13 2006-07-07 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법

Country Status (2)

Country Link
US (2) US7689761B2 (ko)
KR (1) KR101257848B1 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100783988B1 (ko) * 2006-10-31 2007-12-07 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작방법
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
CN101369451A (zh) * 2007-08-14 2009-02-18 三星电子株式会社 固态存储器、包含其的计算机系统和操作其的方法
KR100907477B1 (ko) * 2007-07-16 2009-07-10 한양대학교 산학협력단 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
KR100939145B1 (ko) * 2006-12-15 2010-01-28 가부시끼가이샤 도시바 메모리 디바이스
KR20110041675A (ko) * 2009-10-16 2011-04-22 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR20110054788A (ko) * 2009-11-18 2011-05-25 삼성전자주식회사 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
WO2013165108A1 (ko) * 2012-05-03 2013-11-07 주식회사 디에이아이오 비휘발성 메모리 시스템
KR20150025274A (ko) * 2013-08-28 2015-03-10 삼성전자주식회사 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템
US8995203B2 (en) 2012-12-12 2015-03-31 Samsung Electronics Co., Ltd. Non-volatile memory device, driving method of memory controller controlling the non-volatile memory device and memory system including the memory controller and the non-volatile memory device
US9176863B2 (en) 2011-03-15 2015-11-03 Samsung Electronics Co., Ltd. Memory controller controlling a nonvolatile memory
US9223694B2 (en) 2012-06-29 2015-12-29 SK Hynix Inc. Data storage device and operating method thereof
KR20190081770A (ko) * 2017-12-29 2019-07-09 한양대학교 산학협력단 문자 종류 개수에 기반한 데이터 구분 방법, 데이터 분류기 및 스토리지 시스템

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
US7852654B2 (en) * 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
US8223736B2 (en) * 2007-01-31 2012-07-17 Broadcom Corporation Apparatus for managing frequency use
US20090197641A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Computing device with handheld and extended computing units
US8289944B2 (en) * 2007-01-31 2012-10-16 Broadcom Corporation Apparatus for configuration of wireless operation
US8200156B2 (en) * 2007-01-31 2012-06-12 Broadcom Corporation Apparatus for allocation of wireless resources
US8239650B2 (en) * 2007-01-31 2012-08-07 Broadcom Corporation Wirelessly configurable memory device addressing
US8204075B2 (en) * 2007-01-31 2012-06-19 Broadcom Corporation Inter-device wireless communication for intra-device communications
US20080320293A1 (en) * 2007-01-31 2008-12-25 Broadcom Corporation Configurable processing core
US8280303B2 (en) * 2007-01-31 2012-10-02 Broadcom Corporation Distributed digital signal processor
US9486703B2 (en) 2007-01-31 2016-11-08 Broadcom Corporation Mobile communication device with game application for use in conjunction with a remote mobile communication device and methods for use therewith
US8238275B2 (en) * 2007-01-31 2012-08-07 Broadcom Corporation IC with MMW transceiver communications
US8438322B2 (en) * 2007-01-31 2013-05-07 Broadcom Corporation Processing module with millimeter wave transceiver interconnection
US8121541B2 (en) * 2007-01-31 2012-02-21 Broadcom Corporation Integrated circuit with intra-chip and extra-chip RF communication
US8116294B2 (en) * 2007-01-31 2012-02-14 Broadcom Corporation RF bus controller
US20090017910A1 (en) * 2007-06-22 2009-01-15 Broadcom Corporation Position and motion tracking of an object
US8125950B2 (en) * 2007-01-31 2012-02-28 Broadcom Corporation Apparatus for wirelessly managing resources
US8254319B2 (en) * 2007-01-31 2012-08-28 Broadcom Corporation Wireless programmable logic device
US20090011832A1 (en) * 2007-01-31 2009-01-08 Broadcom Corporation Mobile communication device with game application for display on a remote monitor and methods for use therewith
US8010735B2 (en) * 2007-07-31 2011-08-30 Broadcom Corporation Flash memory with millimeter wave host interface and method for use therewith
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8024545B2 (en) * 2007-10-19 2011-09-20 Inha-Industry Partnership Institute Efficient prefetching and asynchronous writing for flash memory
WO2009084724A1 (en) 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device
US20090198798A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Handheld computing unit back-up system
US8175646B2 (en) * 2008-02-06 2012-05-08 Broadcom Corporation Networking of multiple mode handheld computing unit
US8117370B2 (en) * 2008-02-06 2012-02-14 Broadcom Corporation IC for handheld computing unit of a computing device
US8717974B2 (en) * 2008-02-06 2014-05-06 Broadcom Corporation Handheld computing unit coordination of femtocell AP functions
US8195928B2 (en) * 2008-02-06 2012-06-05 Broadcom Corporation Handheld computing unit with merged mode
US8064952B2 (en) * 2008-02-06 2011-11-22 Broadcom Corporation A/V control for a computing device with handheld and extended computing units
US8430750B2 (en) * 2008-05-22 2013-04-30 Broadcom Corporation Video gaming device with image identification
US8244961B2 (en) * 2008-05-27 2012-08-14 Initio Corporation SSD with distributed processors
US8060719B2 (en) 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
KR101573047B1 (ko) * 2009-01-23 2015-12-02 삼성전자주식회사 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
US8583893B2 (en) * 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
EP2273373A1 (en) 2009-07-02 2011-01-12 Vodafone Holding GmbH Storing of frequently modified data in an IC card
TW201115582A (en) * 2009-10-29 2011-05-01 Acer Inc Method for determining data correlation and data processing method for memory
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US9092340B2 (en) * 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
CN102110057B (zh) * 2009-12-25 2013-05-08 澜起科技(上海)有限公司 存储器模组及存储器模组内的数据交换方法
US8793290B1 (en) 2010-02-24 2014-07-29 Toshiba Corporation Metadata management for pools of storage disks
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US9146875B1 (en) 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
EP2418584A1 (en) * 2010-08-13 2012-02-15 Thomson Licensing Method and apparatus for storing at least two data streams into an array of memories, or for reading at least two data streams from an array of memories
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8683295B1 (en) 2010-08-31 2014-03-25 Western Digital Technologies, Inc. Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8825977B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8670205B1 (en) 2010-09-29 2014-03-11 Western Digital Technologies, Inc. Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold
US8699171B1 (en) 2010-09-30 2014-04-15 Western Digital Technologies, Inc. Disk drive selecting head for write operation based on environmental condition
US8429343B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk
US8612798B1 (en) 2010-10-21 2013-12-17 Western Digital Technologies, Inc. Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
US8427771B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors
US8560759B1 (en) 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
TWI417721B (zh) * 2010-11-26 2013-12-01 Etron Technology Inc 衰減熱資料之方法
US9183135B2 (en) * 2011-01-21 2015-11-10 Micron Technology, Inc. Preparation of memory device for access using memory access type indicator signal
US8909850B2 (en) * 2011-03-10 2014-12-09 Deere & Company Memory life extension method and apparatus
KR20120119092A (ko) * 2011-04-20 2012-10-30 삼성전자주식회사 반도체 메모리 시스템 및 이의 구동 방법
US9461486B2 (en) * 2011-07-02 2016-10-04 Leonid Rozenboim Accumulator battery monitoring over power circuit
US8630056B1 (en) 2011-09-12 2014-01-14 Western Digital Technologies, Inc. Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory
US8909889B1 (en) 2011-10-10 2014-12-09 Western Digital Technologies, Inc. Method and apparatus for servicing host commands by a disk drive
US8977804B1 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Varying data redundancy in storage systems
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US8904091B1 (en) 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems
US10114750B2 (en) * 2012-01-23 2018-10-30 Qualcomm Incorporated Preventing the displacement of high temporal locality of reference data fill buffers
US9747107B2 (en) * 2012-11-05 2017-08-29 Nvidia Corporation System and method for compiling or runtime executing a fork-join data parallel program with function calls on a single-instruction-multiple-thread processor
US8959281B1 (en) 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
US8984251B2 (en) * 2012-12-04 2015-03-17 Apple Inc. Hinting of deleted data from host to storage device
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US20150134916A1 (en) * 2013-11-12 2015-05-14 Nvidia Corporation Cache filter
US9684568B2 (en) 2013-12-26 2017-06-20 Silicon Motion, Inc. Data storage device and flash memory control method
KR102164617B1 (ko) 2014-03-24 2020-10-12 삼성전자주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
KR20150127434A (ko) * 2014-05-07 2015-11-17 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법
US9626112B2 (en) * 2014-12-08 2017-04-18 Symbol Technologies, Llc eMMC functionality expander
KR102309471B1 (ko) 2014-12-19 2021-10-07 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
US10108546B2 (en) * 2014-12-30 2018-10-23 Sandisk Technologies Llc Method and system for using non-volatile memory as a replacement for volatile memory
CN104793901B (zh) * 2015-04-09 2018-01-23 北京鲸鲨软件科技有限公司 一种存储装置及存储方法
US10067872B2 (en) * 2015-06-22 2018-09-04 Advanced Micro Devices, Inc. Memory speculation for multiple memories
CN104951403B (zh) * 2015-07-06 2018-01-30 中国科学技术大学 一种低开销且无差错的冷热数据识别方法
US10013174B2 (en) 2015-09-30 2018-07-03 Western Digital Technologies, Inc. Mapping system selection for data storage device
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
CN105739921A (zh) * 2016-01-26 2016-07-06 上海新储集成电路有限公司 一种混合硬盘的缓存结构及方法
CN110018897B (zh) 2018-01-09 2023-05-26 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
KR102538222B1 (ko) * 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법
TWI671756B (zh) * 2018-11-13 2019-09-11 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
KR20200085522A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법
KR102251869B1 (ko) 2019-05-24 2021-05-12 서강대학교 산학협력단 파일 시스템 및 이를 이용한 단일 파일 쓰기 병렬화 방법
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
KR20210001508A (ko) 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템의 MLC(Multi Level Cell)영역에 데이터를 안전하게 저장하기 위한 장치 및 그 방법
KR20220048869A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN114116191B (zh) * 2021-06-24 2023-09-01 荣耀终端有限公司 内存冷页的处理方法及电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4740894A (en) * 1985-09-27 1988-04-26 Schlumberger Systems And Services, Inc. Computing processor with memoryless function units each connected to different part of a multiported memory
EP1031992B1 (en) * 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
US5671388A (en) * 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
SE514348C2 (sv) * 1995-06-09 2001-02-12 Saab Dynamics Ab Minnesstruktur anpassad för lagring och hämtning av vektorer
US6014727A (en) 1996-12-23 2000-01-11 Apple Computer, Inc. Method and system for buffering messages in an efficient but largely undivided manner
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US6311290B1 (en) * 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6021470A (en) * 1997-03-17 2000-02-01 Oracle Corporation Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system
JP3821536B2 (ja) * 1997-05-16 2006-09-13 沖電気工業株式会社 不揮発性半導体ディスク装置
JPH11194899A (ja) * 1997-12-26 1999-07-21 Toshiba Corp ディスク記憶システム及び同システムに適用するデータ更新方法
JP2000067574A (ja) * 1998-08-21 2000-03-03 Mitsubishi Electric Corp 半導体記憶装置
JP2000148395A (ja) 1998-11-11 2000-05-26 Keii Sho タッチパッドカバー
US6427186B1 (en) * 1999-03-30 2002-07-30 Frank (Fong-Long) Lin Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers
US6356980B1 (en) * 1999-11-09 2002-03-12 International Business Machines Corporation Method and system for bypassing cache levels when casting out from an upper level cache
CA2312444A1 (en) * 2000-06-20 2001-12-20 Ibm Canada Limited-Ibm Canada Limitee Memory management of data buffers incorporating hierarchical victim selection
JP3949912B2 (ja) 2000-08-08 2007-07-25 株式会社エヌ・ティ・ティ・ドコモ 携帯型電子機器、電子機器、振動発生器、振動による報知方法および報知制御方法
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US20030204675A1 (en) * 2002-04-29 2003-10-30 Dover Lance W. Method and system to retrieve information from a storage device
AU2003279475A1 (en) 2002-12-04 2004-06-23 Koninklijke Philips Electronics N.V. Graphic user interface having touch detectability
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US20040193782A1 (en) 2003-03-26 2004-09-30 David Bordui Nonvolatile intelligent flash cache memory
KR100481943B1 (ko) 2003-05-22 2005-04-14 학교법인연세대학교 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법
JP4478436B2 (ja) 2003-11-17 2010-06-09 ソニー株式会社 入力装置、情報処理装置、リモートコントロール装置および入力装置の制御方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100783988B1 (ko) * 2006-10-31 2007-12-07 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작방법
KR100939145B1 (ko) * 2006-12-15 2010-01-28 가부시끼가이샤 도시바 메모리 디바이스
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US8745309B2 (en) 2007-02-01 2014-06-03 Samsung Electronics Co., Ltd. Cooperative memory management
KR100907477B1 (ko) * 2007-07-16 2009-07-10 한양대학교 산학협력단 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
US8626996B2 (en) 2007-08-14 2014-01-07 Samsung Electronics Co., Ltd. Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US20110138115A1 (en) * 2007-08-14 2011-06-09 Samsung Electronics Co., Ltd. Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
CN101369451A (zh) * 2007-08-14 2009-02-18 三星电子株式会社 固态存储器、包含其的计算机系统和操作其的方法
US9208079B2 (en) 2007-08-14 2015-12-08 Samsung Electronics Co., Ltd. Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US8565021B2 (en) 2008-06-13 2013-10-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8614919B2 (en) 2008-06-13 2013-12-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8625344B2 (en) 2008-06-13 2014-01-07 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8638585B2 (en) 2008-06-13 2014-01-28 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8705272B2 (en) 2008-06-13 2014-04-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8760918B2 (en) 2008-06-13 2014-06-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR20110041675A (ko) * 2009-10-16 2011-04-22 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR20110054788A (ko) * 2009-11-18 2011-05-25 삼성전자주식회사 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법
US9176863B2 (en) 2011-03-15 2015-11-03 Samsung Electronics Co., Ltd. Memory controller controlling a nonvolatile memory
WO2013165108A1 (ko) * 2012-05-03 2013-11-07 주식회사 디에이아이오 비휘발성 메모리 시스템
US9223694B2 (en) 2012-06-29 2015-12-29 SK Hynix Inc. Data storage device and operating method thereof
US8995203B2 (en) 2012-12-12 2015-03-31 Samsung Electronics Co., Ltd. Non-volatile memory device, driving method of memory controller controlling the non-volatile memory device and memory system including the memory controller and the non-volatile memory device
KR20150025274A (ko) * 2013-08-28 2015-03-10 삼성전자주식회사 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템
KR20190081770A (ko) * 2017-12-29 2019-07-09 한양대학교 산학협력단 문자 종류 개수에 기반한 데이터 구분 방법, 데이터 분류기 및 스토리지 시스템

Also Published As

Publication number Publication date
KR101257848B1 (ko) 2013-04-24
US8812771B2 (en) 2014-08-19
US20070038808A1 (en) 2007-02-15
US20090144501A2 (en) 2009-06-04
US7689761B2 (en) 2010-03-30
US20100153630A1 (en) 2010-06-17

Similar Documents

Publication Publication Date Title
KR101257848B1 (ko) 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US10838859B2 (en) Recency based victim block selection for garbage collection in a solid state device (SSD)
US11055230B2 (en) Logical to physical mapping
TWI267862B (en) Flash controller cache architecture
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US8108590B2 (en) Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
JP4834676B2 (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP5728672B2 (ja) ハイブリッドメモリ管理
US10496334B2 (en) Solid state drive using two-level indirection architecture
TWI421684B (zh) 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法
US8452940B2 (en) Optimized memory management for random and sequential data writing
KR100901551B1 (ko) 비휘발성 메모리 시스템에서 블록 캐싱을 수행하는 방법 및 시스템
US10572391B2 (en) Methods and apparatus for implementing a logical to physical address mapping in a solid state drive
KR101391270B1 (ko) Mram을 이용하는 비휘발성 메모리 시스템
CN110955384B (zh) 数据储存装置以及非挥发式存储器控制方法
JP2016026346A (ja) 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
US20090132761A1 (en) Storage management method and system using the same
CN111158579B (zh) 固态硬盘及其数据存取的方法
CN112201292A (zh) 控制器及其操作方法
CN106802870B (zh) 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法
CN111694510B (zh) 数据储存装置与数据处理方法
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
KR101374065B1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
US20210157721A1 (en) Memory controller, storage device including the memory controller, and operating method of the memory controller and the storage device
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170321

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180320

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190320

Year of fee payment: 7