KR100725390B1 - 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 - Google Patents

수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 Download PDF

Info

Publication number
KR100725390B1
KR100725390B1 KR1020050001264A KR20050001264A KR100725390B1 KR 100725390 B1 KR100725390 B1 KR 100725390B1 KR 1020050001264 A KR1020050001264 A KR 1020050001264A KR 20050001264 A KR20050001264 A KR 20050001264A KR 100725390 B1 KR100725390 B1 KR 100725390B1
Authority
KR
South Korea
Prior art keywords
data
nonvolatile
cache unit
nonvolatile cache
storing
Prior art date
Application number
KR1020050001264A
Other languages
English (en)
Other versions
KR20060080972A (ko
Inventor
윤희철
전유성
최명순
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050001264A priority Critical patent/KR100725390B1/ko
Publication of KR20060080972A publication Critical patent/KR20060080972A/ko
Application granted granted Critical
Publication of KR100725390B1 publication Critical patent/KR100725390B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Abstract

수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치 및 방법에 관한 것이다.
본 발명의 일 실시예에 따른 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치는 데이터를 저장하기 전에 가비지를 삭제하는 비휘발성 대용량 저장부, 수정 빈도가 임계치를 넘는 데이터를 저장하는 비휘발성 캐쉬부, 및 상기 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부를 제어하며, 데이터의 수정 빈도에 따라 상기 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부에 선택적으로 상기 데이터를 저장하는 메모리 제어부를 포함한다.
플래쉬 메모리, 비휘발성 램, 캐쉬, FTL 매핑 테이블

Description

수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치 및 방법{Apparatus and method for storing data in nonvolatile cache memory considering update ratio}

도 1은 종래에 플래쉬 메모리에 데이터를 입출력하기 위해 사용하는 FTL 계층의 동작 과정을 보여주는 일 실시예이다.

도 2는 종래에 FTL을 통해 논리적 주소가 물리적 주소로 변환되는 과정을 보여주는 일 실시예이다.

도 3은 본 발명의 일 실시예에 따른 대용량 저장 장치의 구성을 보여주는 구성도이다.

도 4는 본 발명의 일 실시예에 따른 비휘발성 캐쉬부에 저장되는 데이터를 보여주는 예시도이다.

도 5는 본 발명의 일 실시예에 따른 핫스팟 엔트리와 비휘발성 캐쉬부의 관계를 보여주는 예시도이다.

도 6은 본 발명의 일 실시예에 따른 데이터 입출력시의 장치들간의 관계를 보여주는 일 실시예이다.

도 7은 본 발명의 일 실시예에 따른 데이터를 읽는 과정을 보여주는 순서도이다.

도 8은 본 발명의 일 실시예에 따른 데이터를 저장하는 과정을 보여주는 순서도이다.

<도면의 주요 부분에 대한 부호의 설명>

100 : 대용량 저장 장치 110 : 메모리 제어부

120 : 비휘발성 대용량 저장부 130 : 비휘발성 캐쉬부

수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치 및 방법에 관한 것이다.

멀티미디어 기술의 발달로 데이터가 대용량화되고 있다. 또한, 컴퓨터가 아닌 디지털 카메라, 디지털 캠코더, 디지털 녹음기 등 멀티미디어 데이터의 저장을 필요로 하는 기기가 다양화되면서 멀티미디어 데이터를 저장하는 비휘발성 저장장치에 대한 관심도 증가하고 있다. 이러한 비휘발성 저장장치 중에서는 NAND 플래쉬 메모리와 같이 쓰기 작업을 수행하기 전에 삭제 작업을 필요로 하는 메모리가 있다.

플래쉬 저장 장치는 전기적으로 소거 가능하고 프로그래밍 가능한 비휘발성 메모리로, 전력 소비가 적고 부피가 작다는 장점이 있다. 그러나, 플래쉬 메모리등의 경우 데이터를 저장하기 위해서는 삭제를 선행해야 하는데, 한번에 삭제를 하는 단위가 한번에 저장하는 단위보다 큰 경우가 있다. 저장 단위가 512byte, 삭제 단 위가 16 kbyte인 경우를 예로 들 경우, 저장 작업은 512 byte로 수행된다. 그런데, 저장이 수행될 부분이 삭제되지 않은 부분에 속해있다면 먼저 삭제를 수행해야 한다. 따라서, 512byte를 쓰기 위해 16kbyte를 삭제한 후에 다시 512byte를 써야 하는 경우가 발생한다. 플래쉬 메모리 등의 경우 삭제된 상태(Erased)와 삭제가 되지 않은 상태(Nonerased) 두 가지가 존재하기 때문이다.

반면, 자기 디스크(마그네틱 디스크)와 같은 저장장치는 데이터가 이미 저장된 부분(섹터)에도 삭제 작업 없이 데이터를 저장할 수 있다. 따라서 자기 디스크를 쓰는 방식과 플래쉬 메모리에서 데이터를 쓰는 방식은 차이가 있다. 따라서 통상의 파일 시스템을 사용하는 시스템에서 플래쉬 메모리를 사용하기 위해서는 FTL(Flash Translation Layer)를 사용한다.

도 1은 종래에 플래쉬 메모리에 데이터를 입출력하기 위해 사용하는 FTL 계층의 동작 과정을 보여주는 일 실시예이다.

(a)는 종래에 FTL을 통해 어플리케이션이 플래쉬 메모리에 데이터를 저장하고 읽는 구조를 보여주고 있다.

어플리케이션(10)은 플래쉬 메모리에 저장된 데이터를 파일 시스템(20)에 저장된 데이터를 사용하듯이 읽고, 저장한다. 파일 시스템(20)은 직접 플래쉬 메모리에 접근하는 것이 아니라 FTL(File Translation Layer) 계층(30)을 통해 데이터를 읽고 저장한다. 따라서 어플리케이션이나 파일 시스템에는 전술한 플래쉬 메모리의 쓰기와 관련된 삭제 작업이 가시적으로 드러나지 않는다.

FTL(30)은 쓰기 연산시에 파일 시스템이 생성한 논리적 주소를 플래쉬 메모 리(100) 상의 이미 삭제 연산을 수행한 영역에 대한 물리적 주소로 변환하는 역할을 수행한다. 빠른 주소 변환을 위해 주소변환 테이블은 비교적 단가가 높은 SRAM(Static RAM)을 사용한다. FTL(30)을 사용함으로써 호스트에서는 FAT과 같은 일반적인 자기디스크용 파일 시스템으로도 플래쉬 메모리를 효율적으로 제어할 수 있다.

(b)는 FTL의 변환 작업을 보여주는 일 실시예이다. 논리적 주소(logical addres)를 물리적 주소(physical address)로 변환시켜 주는 작업을 수행한다. 논리적 주소는 디스크의 섹터와 같은 개념으로 섹터 넘버(Sector number)가 될 수 있다. 물리적 주소는 플래쉬 메모리를 구성하는 블록 넘버(block number, block address)와 페이지 넘버(page number, page address)가 될 수 있다.

(c)는 FTL을 통해 읽기와 저장이 수행되는 방식을 보여준다. 파일 시스템이 FTL에 읽기 명령(read sector)을 수행하면, FTL은 논리적 주소인 해당 섹터 넘버를 기준으로 블록과 페이지 넘버로 구성된 물리적 주소를 찾아서 플래쉬 메모리에 저장된 데이터를 읽어온다. 파일 시스템(20)이 FTL(30)에 쓰기 명령(write sector)을 수행하면, FTL(30)은 플래쉬 메모리에서 저장시 삭제가 필요하지 않은 블록(Erased block)을 선택하여 데이터를 저장하고, 상기 논리적 주소인 섹터 넘버에 대해 새로이 저장한 블록과 페이지 정보를 저장한다.

도 2는 종래에 FTL을 통해 논리적 주소가 물리적 주소로 변환되는 과정을 보여주는 일 실시예이다.

FTL에 의해 논리적 주소를 물리적 주소로 변환하는 과정을 매핑(mapping)이 라 한다. 이 매핑 방식에는 크게 페이지(page) 매핑 방식과 블록(block) 매핑 방식이 존재한다.

(a)는 페이지 매핑 방식을 보여주고 있다. 페이지 매핑 방식은 플래쉬 메모리의 페이지 주소를 논리적 주소와 매핑시키는 방식이다. (a)에서 논리적 섹터 번호인 6과 물리적 주소인 (0, 2)에 매핑되어 있다. 이는 0 번 블록의 2번 페이지(page 2)와 매핑되어 있음을 알 수 있다.

(b)의 블록 매핑 방식은 플래쉬 메모리의 블록과 페이지를 따로 표시하여 블록내에서 해당 페이지의 오프셋을 표시하는 방식이다. (b)에서 섹터 6은 01 과 10으로 표시하고 있다. 01은 1번째 블록을 살펴보아 저장된 블록에 대한 정보를 가져온다는 것을 알려준다. 페이지에 대한 정보인 10은 블록 내에서 해당 페이지가 2(이진수 10)인 페이지를 참조함을 나타내고 있다.

(a), (b)와 같이 논리적 섹터 번호와 물리적 주소를 매핑시키면, 물리적 주소가 바뀐다 하여도 매핑 정보만 수정하면 논리적 섹터를 통해 데이터를 읽어들이는 파일 시스템과 어플리케이션에는 문제가 없다. 따라서, 저장된 데이터를 수정하는 작업시에 플래쉬 메모리의 특성을 고려하여 삭제작업이 필요없는 위치에 새로이 데이터를 저장하는 방식을 도입할 수 있다.

미국 특허(6587915B1)는 페이지 매핑과 블록 매핑의 장점을 모두 취하여 기본적으로 블록 매핑 방식을 사용하되 작은 크기(페이지)의 다시 쓰기를 저장하기 위해 대응되는 하나의 로그 블록을 생성하여 여기에 변경된 페이지를 순차적으로 기록하여 플래쉬와 메모리의 낭비가 없도록 하고 있다. 그러나, 로그 블록 역시 반 복적으로 저장해야 한다는 점에서 잦은 업데이트를 유발하고 있다.

한편, 논리적 주소와 물리적 주소를 연결하는 매핑 테이블은 플래쉬 메모리에서 데이터를 읽어들이기 위한 가장 중요한 정보이므로, 이 정보가 실제 저장 상태와 다르면 데이터를 읽거나 쓰지 못한다. 종래에는 매핑 정보를 플래쉬에 저장하고, 초기화시 플래쉬로부터 램과 같은 휘발성 메모리로 매핑 테이블을 복원하였다. 그리고 쓰기 작업등에 의해 매핑 정보가 변경될 경우에는 데이터를 저장하는 작업 외에도 추가적으로 변경된 매핑 정보도 플래쉬 메모리에 저장하여, 전원의 차단 등으로 램에 저장된 데이터에 문제가 발생할 경우에도 매핑 정보를 유지할 수 있다.

그러나 플래쉬 메모리는 전술한 바와 같이 쓰기 작업이 수행되고 수정 작업이 뒤따르는 경우, 삭제를 반드시 수행해야 한다는 점에서 이러한 매핑 정보를 플래쉬 메모리에 유지한다는 것은 속도 개선에 큰 걸림돌이 될 수 있다. 또한, 플래쉬 메모리는 삭제 작업의 회수에 한계가 있다는 점에서 매핑 정보의 잦은 업데이트는 플래쉬 메모리의 수명을 단축시키는 요인이 될 수 있다.

또한, 특정 영역에 대한 작은 크기의 데이터를 반복적으로 쓰는 경우에는 시스템 성능에 나쁜 영향을 미친다. 이러한 접근 패턴은 파일 시스템의 메타 데이터의 기록에서도 빈번하게 발생한다. 특히, FAT 파일 시스템의 경우, 고정된 영역에 FAT 테이블이 있으며, 파일에 대한 생성, 쓰기 등의 연산시에 이 FAT 테이블의 값을 변경하게 되므로 FAT 테이블에 대한 매우 빈번한 쓰기 작업이 발생한다.

따라서, FTL 매핑 테이블, FAT 테이블과 같이 빈번한 수정이 일어나는 데이터의 경우 플래쉬 메모리에 저장하지 않으면서 전원의 공급 없이도 데이터를 유지 하는 방안이 필요하다.

본 발명의 기술적 과제는 수정 빈도가 높은 데이터를 비휘발성 캐쉬를 사용하여 저장하는데 있다.

본 발명의 다른 기술적 과제는 캐쉬에 저장된 데이터를 전원이 공급되지 않아도 유지되도록 하는데 있다.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.

수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치 및 방법에 관한 것이다.

본 발명의 일 실시예에 따른 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치는 데이터를 저장하기 전에 가비지를 삭제하는 비휘발성 대용량 저장부, 수정 빈도가 임계치를 넘는 데이터를 저장하는 비휘발성 캐쉬부, 및 상기 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부를 제어하며, 데이터의 수정 빈도에 따라 상기 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부에 선택적으로 상기 데이터를 저장하는 메모리 제어부를 포함한다.

본 발명의 일 실시예에 따른 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법은 데이터 저장 요청을 수신하는 단계, 및 상기 데이터의 수정 빈도에 따라 비휘발성 대용량 저장부와 비휘발성 캐쉬부에 상기 데이터를 선택적으로 저장하는 단계를 포함하며, 상기 비휘발성 대용량 저장부는 저장하기 전에 가비지를 삭제하며, 상기 비휘발성 캐쉬부는 수정 빈도가 임계치를 넘는 데이터를 저장한다.

설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그렇지만 용어의 설명은 본 명세서의 이해를 돕기 위한 것으로서 명시적으로 본 발명을 한정하는 사항으로 기재하지 않은 경우에 본 발명의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.

- 비휘발성 램(Nonvolatile RAM)

기존의 램(RAM Random Access Memory)은 전원이 공급되지 않으면 저장된 데이터가 사라지는 휘발성이었다. 비휘발성 램은 전원이 없는 경우에도 데이터를 보존하는 램(RAM)이다. 최근 FeRAM(Ferro-electric RAM), MRAM(Magneto-resistive RAM), PRAM(Phase-change RAM) 등이 등장하였다.

- 플래쉬 메모리(Flash memory)

일종의 EEPROM(Electrically Erasable and Programable Read Only Memory)으로 크게 바이트 단위 I/O(Input/Output)를 지원하는 NOR 형과 페이지 단위 I/O를 지원하는 NAND 형이 있다. NOR 형 플래쉬 메모리는 읽기가 빠른 반면 쓰기가 느리고, NAND 형 메모리는 쓰기 속도가 빠르고 단위 단가가 낮아 주로 대용량 데이터의 저장 장치에 사용된다. 비휘발성 메모리로 전원이 공급되지 않아도 데이터가 보존된다. 플래쉬 메모리에는 이외에도 DINOR 형, T-Poly 형, AND 형이 있다. 본 명세 서에서 언급하게 되는 플래쉬 메모리는 데이터를 저장하기 전에 가비지(Garbage)가 이미 있는 경우, 삭제 작업이 선행되어야 하는 메모리를 의미하며, 한번에 삭제할 수 있는 범위가 한번에 저장할 수 있는 범위보다 크다는 특성을 가지고 있다.

전술한 바와 같이, 수정 빈도가 높은 데이터의 경우, 플래쉬 메모리와 같은 비휘발성 대용량 저장부에 저장하는 것은 성능을 줄일 수 있다. 또한, 램과 같은 휘발성 메모리에 저장할 경우, 데이터의 불일치가 발생할 수 있다. 따라서, 비휘발성 램을 캐쉬로 사용하여 수정 빈도가 높은 데이터를 저장하는 방안이 필요하다.

도 3은 본 발명의 일 실시예에 따른 대용량 저장 장치의 구성을 보여주는 구성도이다.

본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.

본 명세서에서의 대용량 저장 장치는 독립적인 장치로 구성되어, 착탈 가능한 메모리 카드 형태일 수 있으며, 내장형 메모리로서 디지털 장치의 내부에 장착될 수 있다. 그러나 이들은 디지털 장치와의 결합관계에 있어서의 차이이며, 본 명세서에서 구현하고자 하는 방식은 상기 두 방식 모두에 적용 가능하다. 이하 본 명세서에 따른 대용량 저장 장치는 외장형과 내장형을 모두 포함한다.

대용량 저장 장치는 메모리 제어부(Memory Controller), 비휘발성 대용량 저장부(Nonvolatile mass storage unit), 비휘발성 캐쉬부(Nonvolatile Cache unit)를 포함한다. 또한 성능 향상을 위하여 휘발성 메모리(volatile memory unit)을 포함할 수 있다.

비휘발성 대용량 저장부(120)은 플래쉬 메모리 소자로 구성된 것으로, 전술한 플래쉬 메모리처럼 삭제 단위가 저장 단위보다 큰 메모리를 의미한다. 비휘발성 대용량 저장부(120)는 전원이 공급되지 않아도 데이터가 보존되며, 데이터를 저장하기 전에 가비지(Garbage)가 있는 경우, 가비지를 삭제하는 작업이 선행된다. 그리고 삭제하는 단위와 저장하는 단위가 다른데, 통상 저장하는 단위는 페이지(page)라 하고, 삭제하는 단위는 둘 이상의 페이지로 구성된 블록이라 부른다.

비휘발성 캐쉬부(130)는 비휘발성 대용량 저장부(120)에 저장할 데이터 중에서 일부를 저장한다. 비휘발성 캐쉬부(130)는 전원이 공급되지 않아도 데이터를 보존한다는 점에서는 비휘발성 대용량 저장부(120)와 동일하다. 그러나, 비휘발성 대 용량 저장부(120)와 달리 쓰기 작업시 삭제를 선행해야 하는 오버헤드를 가지지 않는다. 비휘발성 캐쉬부(130)로는 FeRAM, MRAM, PRAM 등이 될 수 있다. 비휘발성 캐쉬부(130)에 저장할 데이터로는 잦은 업데이트가 일어나는 데이터가 될 수 있으며, 그 예로는 비휘발성 대용량 저장부(120)에 저장된 파일들에 대한 관리 정보, FTL 매핑 테이블과 같은 메타 데이터, 파일 시스템 정보, 그리고 잦은 업데이트가 일어나는 데이터 파일 등이 될 수 있다.

메모리 제어부(Memory Controller)(110)는 메모리에 데이터를 입출력하고, 데이터를 관리하는 작업을 수행한다. 비휘발성 대용량 저장부(120)에서 데이터를 읽고, 쓰는 과정을 수행하면서, 추가로 필요한 삭제 작업을 수행한다. 또한 저장할 데이터가 비휘발성 캐쉬부(130)에 저장할 데이터인지, 또는 비휘발성 대용량 저장부(120)에 저장할 데이터 인지를 판단하여 해당 저장부에 데이터를 저장할 수 있다. 또한, 비휘발성 캐쉬부(130)에 저장할 데이터의 종류에 대해 설정하는 작업을 수행할 수 있다. 메모리 제어부(110)는 간단하게 저장된 데이터를 입출력하고 삭제를 하는 기능부터, DRM(Digital Rights Management)등의 기능을 수행할 수 있는 중앙처리부(CPU)의 기능까지 다양하게 포함할 수 있다. 이는 해당 플래쉬 메모리를 포함하는 저장 장치의 성격에 따라 달라질 수 있다.

이러한 구성 외에도 추가적으로 휘발성 메모리(140)를 포함할 수 있다. 휘발성 메모리(140)는 DRAM, SRAM 등이 될 수 있다. 휘발성 메모리(140)는 종래에 플래쉬 메모리를 포함하는 저장 장치에서 입출력 속도를 높이기 위해 사용되었다. 본 명세서에서 휘발성 메모리(140)는 입출력 속도를 높이기 위해 추가할 수 있으나, 휘발성 메모리(140)의 기능을 비휘발성 캐쉬부(130)가 대신할 수 있으므로, 이는 개발 단가와 공정에 따라 선택적으로 휘발성 메모리(140)를 포함할 수 있다.

비휘발성 캐쉬부(130)가 저장할 정보의 가장 주요한 특징은 잦은 업데이트가 일어나는 부분이다. 잦은 업데이트는 플래쉬 메모리의 삭제 작업을 유도한다. 일 실시예로 비휘발성 캐쉬부(130)에는 FTL과 같이 논리적 주소를 물리적 주소로 변환하는 매핑 테이블(131)을 포함할 수 있다. 매핑 테이블은 도 2에서 살펴본 바와 같이, 논리적 주소를 플래쉬 메모리의 물리적 주소로 변환시키는 테이블로써, 데이터를 입출력 할 때, 파일 시스템은 논리적 주소를 통해 데이터에 접근하고, FTL은 이러한 논리적 주소를 물리적 주소로 바꾸어준다.

이외에도, 파일을 관리하기 위한 정보를 포함할 수 있다. 예를 들어, 비휘발성 대용량 저장부(120)에 저장된 파일의 이름, 사이즈, 크기, 속성 등에 대한 정보 및 파일의 섹터 맵핑 정보등을 포함할 수 있다. 예를 들어 FAT 파일시스템의 FAT(File Allocation Table) 또는 유닉스 파일시스템의 inode 의 전부 또는 일부를 비휘발성 캐쉬부(130)에 저장할 수 있다.

이외에도 대용량 저장 장치에 저장되는 데이터의 성격에 따라 비휘발성 캐쉬부(130)에 저장하는 데이터가 달라질 수 있다. 예를 들어, DRM 기능이 적용되어, 권리 객체(Rights Object)를 사용할 경우, 미디어의 성격에 따라 지속적으로 권리 객체를 수정하는 경우가 발생한다. 이때, 권리 객체의 전부 또는 일부를 비휘발성 캐쉬부(130)에 저장하여 미디어를 재생하는 도중에 발생하는 수정을 처리할 수 있다.

도 4는 본 발명의 일 실시예에 따른 비휘발성 캐쉬부에 저장되는 데이터를 보여주는 예시도이다.

비휘발성 캐쉬부(130)는 전술한 바와 같이, 비휘발성 대용량 저장부(120)에 저장할 데이터를 관리하기 위한 정보, 또는 매핑 데이터를 저장할 수 있으며, 이외에도 자주 수정되는 데이터를 저장하여 플래쉬 메모리의 삭제 작업을 줄이도록 한다.

업데이트가 잦은 FTL 매핑 테이블(131)과 핫스팟 엔트리(hotspot entry)(132)가 데이터 구조 영역(Data structure area)에 저장되며, 캐쉬 영역(Cache area)(137)에는 캐쉬할 데이터를 저장한다. FTL 매핑 테이블은 도 2에서 살펴본 매핑 정보를 저장한다. 핫스팟 엔트리는 핫스팟이 비휘발성 캐쉬부(130)에 저장되었는지 여부에 대한 정보를 저장한다. 핫스팟이란 작은 크기의 반복적인 쓰기가 발생하는 부분을 의미하며, 본 명세서에서 비휘발성 캐쉬부(130)에 저장가능한 데이터를 의미한다. 그러나 비휘발성 캐쉬부(130)의 저장 공간의 한계 때문에 모든 핫스팟을 저장할 수 없다. 따라서 어떤 핫스팟에 현재 비휘발성 캐쉬부(130)에 저장되어 있는지, 또는 언제 수정되었는지 등에 대한 정보를 보유하는 것이 핫스팟 엔트리이다.

핫스팟 중에서 일부 핫스팟은 캐쉬 영역(137)에 저장된다. 이 데이터는 소정의 정책에 따라 삭제될 수 있고, 삭제할 데이터는 비휘발성 대용량 저장부에 저장한 후에 삭제한다.

핫스팟 엔트리의 구조의 예는 도 4의 식별부호 [132]로 지시된 바와 같이 논리적 주소, 비휘발성 캐쉬부(130)에서의 주소, 그리고 수정 시간 또는 수정 횟수에 대한 정보인 타임스탬프(TimeStamp)를 포함한다. 논리적 주소는 논리적인 섹터 주소이며, 또한 FTL 매핑 테이블(131)에서의 논리적 주소이기도 하다. 비휘발성 캐쉬부에서의 위치란 도 4의 식별부호 [137]로 지시된 바와 같이 캐쉬 영역에서 저장된 주소를 의미한다.

어떤 섹터를 비휘발성 캐쉬부에 저장할 것인가는 저장 장치를 생산시에 미리 정할 수도 있고, 사용자 또는 결합하는 디바이스에서 설정을 할 수 있다.

또한, 메모리 제어부가 데이터 수정의 빈도를 측정하여 저장할 수 있다. 예를 들어, 비휘발성 캐쉬부의 일정 부분을 업데이트 히스토리를 관리하도록 하여, 일정 빈도 이상의 수정이 일어나면 해당 부분을 핫스팟 엔트리로 등록시켜서 이후 수정이 발생할 경우에는 핫스팟으로 간주하여 비휘발성 캐쉬부에 저장가능하다. 같은 방식으로, 업데이트가 거의 일어나지 않는 부분은 핫스팟 엔트리에서 제거하여 추후 이 데이터를 읽거나 쓰는 경우에는 비휘발성 대용량 저장부에서 읽고 쓸 수 있도록 한다.

도 5는 본 발명의 일 실시예에 따른 핫스팟 엔트리와 비휘발성 캐쉬부의 관계를 보여주는 예시도이다.

(a)는 핫스팟 엔트리의 정보와 비휘발성 캐쉬부가 연관된 예를 보여준다. 논리적 주소가 1인 핫스팟은 비휘발성 캐쉬부의 0번지에 저장되어 있으며, 논리적 주소가 5인 핫스팟은 비휘발성 캐쉬부의 1번지에 저장되어 있다. 한편, 논리적 주소가 9인 핫스팟은 비휘발성 캐쉬부의 주소가 -1로 비휘발성 캐쉬부에 저장되어 있지 않다. 이후 논리적 주소가 9인 핫스팟의 데이터를 읽거나 쓰는 경우에 비휘발성 대 용량 저장부에 저장된 데이터를 비휘발성 캐쉬부로 읽어들이는 작업이 필요하다.

(b)는 FAT 엔트리들이 비휘발성 캐쉬부의 한 페이지에 저장된 예를 보여준다. 여기에서 페이지의 크기는 2KB이고 하나의 FAT 엔트리는 32bit (FAT32의 경우) 일 때의 저장 예이다. FAT 정보가 저장되어 있는 논리적 주소에 대한 입출력이 있을 경우 먼저 해당 주소에 대한 핫스팟 엔트리를 검사하여 비휘발성 캐쉬부에 저장되어 있는지의 여부를 판독하고 비휘발성 캐쉬부에 저장되어 있지 않은 경우, 플래쉬 메모리와 같은 비휘발성 대용량 저장부에서 데이터를 읽어와서 비휘발성 캐쉬부에 저장할 수 있다.

도 6은 본 발명의 일 실시예에 따른 데이터 입출력시의 장치들간의 관계를 보여주는 일 실시예이다.

저장 장치와 결합한 시스템, 또는 저장 장치가 장착된 시스템에서 논리적 주소를 넘겨주면, 메모리 제어부(110)는 이 논리적 주소가 핫스팟인지를 체크한다. 핫스팟인지 여부는 핫스팟 엔트리와 같이 핫스팟과 관련된 정보를 저장하는 부분을 살펴보는 것을 통해 체크할 수 있다. 핫스팟 엔트리에 해당 주소가 없다면 핫스팟이 아니므로 비휘발성 대용량 저장부(120)에 저장한다.

핫스팟인 경우 비휘발성 캐쉬부(130)에서 데이터를 읽거나 저장한다. 만약 핫스팟이지만 비휘발성 캐쉬부(130)에 저장되어 있지 않다면, 비휘발성 대용량 저장부(120)에서 비휘발성 캐쉬부(130)로 데이터를 복사할 수 있다. 한편 핫스팟이 아니라면, FTL 매핑 테이블과 같이 논리적 주소와 물리적 주소를 매핑한 테이블을 참조하여 비휘발성 대용량 저장부(120)에서 데이터를 읽거나 저장할 수 있다.

도 7은 본 발명의 일 실시예에 따른 데이터를 읽는 과정을 보여주는 순서도이다.

데이터를 읽기 위해서는 논리적 주소를 기준으로 핫스팟 엔트리를 검색한다(S110). 검색한 결과 핫스팟 엔트리에 읽고자 하는 데이터의 논리적 주소가 존재하면(S120) 해당 엔트리가 유효한지를 검토한다(S130). 유효한지 여부의 검토는 도 4에서 살펴본 비휘발성 캐쉬부의 주소를 참조하여, -1과 같은 값이 저장된 경우에는 비휘발성 캐쉬부에 저장되지 않은 것으로 판단한다. 해당 엔트리가 유효하면, 비휘발성 캐쉬부에서 데이터를 읽어들인다(S140). S120 단계에서 비휘발성 캐쉬부에 저장할 성질의 데이터가 아니거나, 비휘발성 캐쉬부에 저장할 성질의 데이터이지만 비휘발성 캐쉬부에 저장되지 않은 경우, 비휘발성 대용량 저장부에서 데이터를 읽어들인다(S150).

한편, 비휘발성 캐쉬부에 저장할 수 있는 데이터이지만 비휘발성 캐쉬부에 아직 저장되지 않은 데이터의 경우, 비휘발성 대용량 저장부에서 읽는 S150 과정 다음으로 읽은 데이터를 비휘발성 캐쉬부에 저장할 수 있다. 저장시에는 핫스팟 엔트리를 수정하는 과정이 부가된다.

도 8은 본 발명의 일 실시예에 따른 데이터를 저장하는 과정을 보여주는 순서도이다.

데이터를 읽은 방식과 같이 저장할 데이터의 논리적 주소로 핫스팟 엔트리를 검색한다(S210). 검색한 엔트리가 존재하지 않으면(S220) 비휘발성 대용량 저장부에 데이터를 저장한다(S240). 만약 해당 엔트리가 존재하면 그 엔트리가 유효한지 를 살펴본다(S230). 엔트리가 존재한다는 것은 저장할 데이터가 비휘발성 캐쉬부에 저장할 수 있는 데이터임을 의미한다. 따라서, 이 데이터가 실제 비휘발성 캐쉬부에 저장되어 있는지를 알기위해 도 4에서 살펴본 비휘발성 캐쉬부의 물리적 주소에 대한 정보를 검토한다. 예를 들어 -1이 저장되어 있으면, 이 데이터는 비휘발성 캐쉬부에 저장되지 않은, 유효하지 않은 엔트리이다. 따라서, 비휘발성 캐쉬부로 저장하는 과정(S231, S232, S233, S234)을 수행한다. 먼저 비휘발성 캐쉬부에 빈 페이지가 존재하는지 검토한다(S231). 빈 페이지가 없다면, 비휘발성 캐쉬부에 저장된 페이지 중에서 비휘발성 대용량 저장부로 저장할 페이지를 선택한다(S232). 선택을 하는 기준으로는 얼마나 자주 입출력 작업이 이루어졌는가에 대한 정보를 토대로 선택할 수 있다. 또는 가장 오래전에 저장된 데이터를 선택할 수도 있다. 선택을 위한 기준은 캐쉬 사용 정책의 한 예를 통해 구현할 수 있다. 선택한 페이지는 비휘발성 대용량 저장부로 저장한다(S233). 그리고 핫스팟 엔트리에 비휘발성 캐쉬부에서의 페이지 주소를 저장한다(S234). 그리고 추가적으로 타임스탬프 등과 같은 정보를 설정한다. 그리고 비휘발성 캐쉬부에 데이터를 저장한다(S250). 만약 빈 페이지가 존재한다면 S234 과정을 바로 수행한다.

지금까지 살펴본 바와 같이 비휘발성 캐쉬부에 어떤 데이터를 저장할 것인지에 대한 정책이 없이 통상의 캐쉬부로 사용한다면, 플래쉬 메모리에서 발생하는 저장, 삭제 작업을 크게 줄일 수 없다. 그러나 잦은 수정이 일어나는 데이터를 비휘발성 캐쉬부에 저장하여 사용한다면, 입출력 속도를 향상시킬 수 있다.

전술한 바와 같이 FTL 매핑 테이블과 같은 메타 데이터, FAT 을 위한 파일 시스템에 대한 정보를 저장하는 것 외에, 메모리 제어부에서 플래쉬 메모리에 저장되는 데이터의 성격에 따라 달리 설정할 수도 있다. DRM의 경우 현재 실행되거나 복사되는 권리 객체를 비휘발성 캐쉬부에 저장할 수 있다. 한편, 잠시 사용한 후에 제거되는 데이터들, 예를 들어 일정 시간동안만 유효한 암호화 키, 인증서와 같은 데이터들도 비휘발성 캐쉬부에 저장할 수 있다.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

본 발명을 구현함으로써 수정 빈도가 높은 데이터를 비휘발성 캐쉬에 저장하여 저장 속도를 줄일 수 있다.

본 발명을 구현함으로써 캐쉬에 저장된 데이터를 전원이 공급되지 않아도 유지할 수 있다.

Claims (20)

  1. 데이터를 저장하기 전에 가비지를 삭제하는 비휘발성 대용량 저장부;
    수정 빈도가 임계치를 넘는 데이터를 저장하는 비휘발성 캐쉬부; 및
    상기 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부를 제어하고, 데이터의 수정 빈도를 측정하여 상기 비휘발성 캐쉬부에 관리하고, 상기 측정된 수정 빈도가 상기 임계치를 넘는지의 여부에 따라 상기 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부에 선택적으로 상기 데이터를 저장하는 메모리 제어부를 포함하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  2. 제 1항에 있어서,
    상기 비휘발성 캐쉬부는 상기 수정빈도가 임계치를 넘는 데이터에 대한 논리적 주소, 상기 비휘발성 캐쉬부 상의 주소, 및 상기 수정 빈도를 포함하는 핫스팟 엔트리를 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  3. 제 1항에 있어서,
    상기 비휘발성 캐쉬부는 데이터를 저장하기 전에 삭제 작업을 필요로 하지 않는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  4. 제 1항에 있어서,
    상기 메모리 제어부가 상기 비휘발성 캐쉬부에 데이터를 저장하는 경우, 상기 비휘발성 캐쉬부에 여유 공간이 없으면 상기 비휘발성 캐쉬부의 제 1 공간에 저장된 데이터를 상기 비휘발성 대용량 저장부에 저장하고, 상기 제 1 공간에 상기 저장할 데이터를 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  5. 제 1항에 있어서,
    상기 비휘발성 대용량 저장부는 플래쉬 메모리 소자로 구성된, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  6. 제 1항에 있어서,
    상기 비휘발성 캐쉬부는 비휘발성 램으로 구성된, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  7. 제 1항에 있어서,
    상기 메모리 제어부는, 상기 비휘발성 대용량 저장부에 저장된 데이터의 논리적 주소와 물리적 주소를 연결시키는 매핑 테이블을 구성하는 데이터를 상기 비휘발성 캐쉬부에 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  8. 제 1항에 있어서,
    상기 메모리 제어부는 상기 비휘발성 캐쉬부에 FAT을 구성하는 데이터를 저 장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  9. 제 1항에 있어서,
    상기 메모리 제어부는 상기 비휘발성 캐쉬부에 inode를 구성하는 데이터를 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 장치.
  10. 데이터 저장 요청을 수신하는 단계;
    상기 데이터의 수정 빈도를 측정하여 비휘발성 캐쉬부에 관리하는 단계; 및
    상기 측정된 수정 빈도가 임계치를 넘는지의 여부에 따라 비휘발성 대용량 저장부와 상기 비휘발성 캐쉬부에 상기 데이터를 선택적으로 저장하는 단계를 포함하며,
    상기 비휘발성 대용량 저장부는 저장하기 전에 가비지를 삭제하며,
    상기 비휘발성 캐쉬부는 상기 수정 빈도가 상기 임계치를 넘는 데이터를 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  11. 제 10항에 있어서,
    상기 저장하는 단계는,
    상기 데이터를 비휘발성 캐쉬부에 저장하는 경우, 상기 비휘발성 캐쉬부에 상기 수정 빈도가 임계치를 넘는 데이터에 대한 논리적 주소, 상기 비휘발성 캐쉬부 상의 주소, 및 상기 수정 빈도를 포함하는 핫스팟 엔트리를 저장하는 단계를 포함하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  12. 제 10항에 있어서,
    상기 저장하는 단계는,
    상기 데이터를 비휘발성 캐쉬부에 저장하는 경우, 상기 비휘발성 캐쉬부에 대해 삭제하는 작업을 수행하지 않고 저장하는 단계인, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  13. 제 10항에 있어서,
    상기 저장하는 단계는,
    상기 비휘발성 캐쉬부에 여유 공간이 없으면 상기 비휘발성 캐쉬부의 제 1 공간에 저장된 데이터를 상기 비휘발성 대용량 저장부에 저장하는 제 1 저장 단계; 및
    상기 제 1 공간에 상기 저장할 데이터를 저장하는 제 2 저장 단계를 포함하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  14. 제 10항에 있어서,
    상기 비휘발성 대용량 저장부는 플래쉬 메모리 소자로 구성된, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  15. 제 10항에 있어서,
    상기 비휘발성 캐쉬부는 비휘발성 램으로 구성된, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  16. 제 10항에 있어서,
    상기 저장하는 단계는,
    상기 비휘발성 대용량 저장부에 저장된 데이터의 논리적 주소와 물리적 주소를 연결시키는 매핑 테이블을 구성하는 데이터를 상기 비휘발성 캐쉬부에 저장하는 단계인, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  17. 제 10항에 있어서,
    상기 저장하는 단계는,
    상기 비휘발성 캐쉬부에 FAT을 구성하는 데이터를 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  18. 제 10항에 있어서,
    상기 저장하는 단계는,
    상기 비휘발성 캐쉬부에 inode를 구성하는 데이터를 저장하는, 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에 저장하는 방법.
  19. 삭제
  20. 삭제
KR1020050001264A 2005-01-06 2005-01-06 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 KR100725390B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050001264A KR100725390B1 (ko) 2005-01-06 2005-01-06 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020050001264A KR100725390B1 (ko) 2005-01-06 2005-01-06 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US11/304,883 US20060149902A1 (en) 2005-01-06 2005-12-16 Apparatus and method for storing data in nonvolatile cache memory considering update ratio
CN 200510097425 CN1822217A (zh) 2005-01-06 2005-12-28 将数据存储在非易失性高速缓冲存储器中的设备和方法

Publications (2)

Publication Number Publication Date
KR20060080972A KR20060080972A (ko) 2006-07-12
KR100725390B1 true KR100725390B1 (ko) 2007-06-07

Family

ID=36642013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050001264A KR100725390B1 (ko) 2005-01-06 2005-01-06 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법

Country Status (3)

Country Link
US (1) US20060149902A1 (ko)
KR (1) KR100725390B1 (ko)
CN (1) CN1822217A (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426606B2 (en) * 2006-03-31 2008-09-16 Intel Corporation Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system
US7406560B2 (en) * 2006-06-21 2008-07-29 Intel Corporation Using multiple non-volatile memory devices to store data in a computer system
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
KR100818797B1 (ko) * 2006-10-19 2008-04-01 삼성전자주식회사 메모리 용량 조절 방법과 메모리 용량 조절 장치
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
KR100823171B1 (ko) 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US20080201288A1 (en) * 2007-02-15 2008-08-21 International Business Machines Corporation Method, system and program product for identifying caching opportunities
JP4356782B2 (ja) * 2007-09-12 2009-11-04 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
KR101297563B1 (ko) 2007-11-15 2013-08-19 삼성전자주식회사 스토리지 관리 방법 및 관리 시스템
US8140746B2 (en) * 2007-12-14 2012-03-20 Spansion Llc Intelligent memory data management
US20100049920A1 (en) * 2008-08-20 2010-02-25 International Business Machines Corporation Dynamically adjusting write cache size
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
KR20100055565A (ko) * 2008-11-18 2010-05-27 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8407403B2 (en) * 2009-12-07 2013-03-26 Microsoft Corporation Extending SSD lifetime using hybrid storage
JP5434738B2 (ja) * 2010-03-26 2014-03-05 日本電気株式会社 ディスク装置
CN103092526B (zh) * 2011-10-31 2016-03-30 国际商业机器公司 在存储设备间进行数据迁移的方法和装置
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US8782344B2 (en) * 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission
EP2733617A4 (en) * 2012-06-30 2014-10-08 Huawei Tech Co Ltd Data buffer device, data storage system and method
KR102002830B1 (ko) 2012-09-28 2019-07-23 삼성전자 주식회사 세그먼트 클리닝 장치 및 방법
US9076530B2 (en) 2013-02-07 2015-07-07 Seagate Technology Llc Non-volatile write buffer data retention pending scheduled verification
US9552288B2 (en) 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US9424946B2 (en) 2013-02-08 2016-08-23 Seagate Technology Llc Non-volatile buffering to enable sloppy writes and fast write verification
CN104883256B (zh) * 2014-02-27 2019-02-01 中国科学院数据与通信保护研究教育中心 一种抵抗物理攻击和系统攻击的密钥保护方法
KR20160070920A (ko) * 2014-12-10 2016-06-21 에스케이하이닉스 주식회사 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
WO2016122491A1 (en) * 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Page cache in a non-volatile memory
US10289544B2 (en) * 2016-07-19 2019-05-14 Western Digital Technologies, Inc. Mapping tables for storage devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980021002A (ko) * 1996-09-13 1998-06-25 문정환 비휘발성 메모리 소자의 데이터 기입 장치 및 방법
KR19990019377A (ko) * 1997-08-29 1999-03-15 윤종용 플래시 메모리 이용 보조기억장치 및 그 방법
KR20000041918A (ko) * 1998-12-24 2000-07-15 서평원 휴대용단말기에서 대량의 데이타 저장 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가나이 쯔또무 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6282605B1 (en) * 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
US6976073B2 (en) * 2001-11-29 2005-12-13 Hewlett-Packard Development Company, L.P. Transparent remote data storage device and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980021002A (ko) * 1996-09-13 1998-06-25 문정환 비휘발성 메모리 소자의 데이터 기입 장치 및 방법
KR19990019377A (ko) * 1997-08-29 1999-03-15 윤종용 플래시 메모리 이용 보조기억장치 및 그 방법
KR20000041918A (ko) * 1998-12-24 2000-07-15 서평원 휴대용단말기에서 대량의 데이타 저장 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1001283040000
1020000041918

Also Published As

Publication number Publication date
KR20060080972A (ko) 2006-07-12
US20060149902A1 (en) 2006-07-06
CN1822217A (zh) 2006-08-23

Similar Documents

Publication Publication Date Title
US10482011B2 (en) Method for managing a memory apparatus
US9548108B2 (en) Virtual memory device (VMD) application/driver for enhanced flash endurance
US9477596B2 (en) LBA bitmap usage
US8533391B2 (en) Storage device and user device including the same
US8667213B2 (en) Flash management techniques
US8949512B2 (en) Trim token journaling
US9378131B2 (en) Non-volatile storage addressing using multiple tables
US20150309927A1 (en) Hybrid Non-Volatile Memory System
US8812771B2 (en) Data storage system with complex memory and method of operating the same
US9164887B2 (en) Power-failure recovery device and method for flash memory
US8041887B2 (en) Memory device and control method thereof
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US8051258B2 (en) Apparatus and methods using invalidity indicators for buffered memory
EP2631916B1 (en) Data deletion method and apparatus
US20140372685A1 (en) Memory system, data storage device, user device and data management method thereof
US8166233B2 (en) Garbage collection for solid state disks
US8166258B2 (en) Skip operations for solid state disks
TWI405082B (zh) 記憶體系統及其映射方法
US9134918B2 (en) Physical compression of data with flat or systematic pattern
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US8386746B2 (en) Storage unit management methods and systems
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
JP4155463B2 (ja) 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法
US8230166B2 (en) Apparatus and method for processing data of flash memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
G170 Publication of correction
LAPS Lapse due to unpaid annual fee