KR100739722B1 - 플래시 메모리 관리 방법 및 플래시 메모리 시스템 - Google Patents

플래시 메모리 관리 방법 및 플래시 메모리 시스템 Download PDF

Info

Publication number
KR100739722B1
KR100739722B1 KR1020050076546A KR20050076546A KR100739722B1 KR 100739722 B1 KR100739722 B1 KR 100739722B1 KR 1020050076546 A KR1020050076546 A KR 1020050076546A KR 20050076546 A KR20050076546 A KR 20050076546A KR 100739722 B1 KR100739722 B1 KR 100739722B1
Authority
KR
South Korea
Prior art keywords
flash memory
file
write operation
file system
data
Prior art date
Application number
KR1020050076546A
Other languages
English (en)
Other versions
KR20070021849A (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 KR1020050076546A priority Critical patent/KR100739722B1/ko
Priority to US11/362,720 priority patent/US20070043900A1/en
Publication of KR20070021849A publication Critical patent/KR20070021849A/ko
Application granted granted Critical
Publication of KR100739722B1 publication Critical patent/KR100739722B1/ko

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 효과적인 파일 삭제를 수행하는 플래시 메모리 관리 방법 및 플래시 메모리 시스템에 관한 것으로, 입력된 섹터 쓰기 연산이 파일시스템의 파일 삭제를 위한 것인지 판단하고, 파일 삭제를 위한 것이면 그 파일에 해당하는 플래시 메모리 내의 데이터를 삭제하는 인터페이스를 포함하는 것을 특징으로 하여,플래시 메모리와 파일시스템의 인터페이스 계층에서 파일시스템의 삭제 연산을 인지함으로써, 추후 Garbage Collection 과정에서 불필요한 데이터의 복사를 방지할 수 있고, 파일 삭제시 실제 데이터 블록에 대한 지우기가 수행되므로 향후 다시쓰기 연산의 빠른 수행이 가능하다.
플래시 메모리, 삭제 연산, 플래시 변환 계층, 파일시스템

Description

플래시 메모리 관리 방법 및 플래시 메모리 시스템{A method for managing a flash memory and a flash memory system}
도 1은 플래시 메모리를 사용하는 장치의 일반적인 하드웨어 구성도,
도 2는 플래시 변환 계층을 이용한 플래시 메모리 시스템의 소프트웨어 구성도,
도 3은 플래시 변환 계층의 주소 변환 원리를 도시한 도면,
도 4는 플래시 변환 계층의 수행 연산을 도시한 도면,
도 5는 플래시 변환 계층의 주소 변환 메커니즘 중 블록 맵핑 방식을 도시한 도면,
도 6은 FAT 테이블의 구조를 예시한 도면,
도 7은 플래시 변환 계층에서의 Garbage Collection 과정을 예시한 도면,
도 8은 본 발명에 따른 플래시 메모리 관리 방법의 메커니즘 흐름도,
도 9는 파일 삭제 전후의 FAT 테이블의 내용을 비교한 도면,
도 10은 본 발명에 따른 플래시 메모리 시스템의 구성도,
도 11은 종래 기술과 본 발명에 의한 플래시 관리 방법의 성능을 비교한 실험 결과 그래프.
본 발명은 플래시 메모리(flash memory)에 관한 것으로, 보다 상세하게는 효과적인 파일 삭제를 수행하는 플래시 메모리 관리 방법 및 플래시 메모리 시스템에 관한 것이다.
플래시 메모리는 일종의 EEPROM(Electrically Erasable and Programmable ROM)으로 크게 바이트 I/O를 지원하는 NOR형과 페이지 I/O만을 지원하는 NAND형이 있다. NOR형 플래시 메모리는 읽기 속도가 빠른데 반하여 쓰기 속도가 느려 주로 코드용 메모리로 사용하며, NAND형 플래시 메모리는 쓰기 속도가 상대적으로 빠르고 단위 공간당 단가가 낮아 주로 대용량 데이터 저장장치로 사용된다.
하지만 플래시 메모리는 디스크 장치와는 달리 다시쓰기(rewrite)를 하기 위해 지우기(erase) 연산이 선행되어야 하며, 플래시 지우기 연산의 단위는 쓰기 단위보다 훨씬 큰 블록 단위로 수행되고 수행 시간이 오래 걸린다. 이러한 특성은 플래시 메모리를 보조기억장치로 사용하는 경우에 일반 하드디스크용 파일시스템을 그대로 활용하는 것을 저해한다. 이를 해결하기 위한 방안으로, 대한민국 특허 제389867호 및 미국 특허 제5,404,485호 등에서 디스크 파일시스템과 플래시 메모리 사이의 미들웨어인 플래시 변환 계층(Flash Translation Layer, 이하 'FTL'이라 함)이 제안되었다. FTL은 플래시 메모리를 기존의 하드디스크 장치와 마찬가지로 자유롭게 읽고 쓰는 것이 가능하도록 하기 위한 인터페이스 계층이다.
도 1은 플래시 메모리를 사용하는 장치의 일반적인 하드웨어 구성을 도시한 것이다. CPU(101)는 통상 RAM(104)에 저장되어 있는 응용 프로그램을 실행하고 플래시 메모리(103)에 대한 일련의 읽기 또는 쓰기 명령을 내리며, 플래시 컨트롤러(102)는 플래시 메모리를 직접 제어한다.
도 2는 FTL을 이용한 플래시 메모리 시스템의 소프트웨어 스택을 도시한 것으로, 애플리케이션(201), 파일시스템(202), FTL(203) 및 플래시 메모리(204)로 구성되어 있다. 애플리케이션(201)으로부터 읽기/쓰기(read/write) 요청을 받은 파일 시스템(202)은 읽기/쓰기 대상인 섹터의 주소(sector addr)를 FTL(203)로 전달하고, FTL은 섹터 주소를 물리 주소(block. page)로 변환하여 출력한다.
도 3에 도시된 바와 같이, FTL은 가상 디스크 상의 논리 주소인 섹터 번호(sector no)를 플래시 메모리 상의 물리 주소인 블록 번호 및 페이지 번호(block no, page no)로 변환한다. 또한, 도 4에 도시된 바와 같이, 상위 계층의 프로그램에게 실제 플래시 장치에서 수행되는 플래시 읽기/프로그램/지우기(read/program/erase) 연산 대신 디스크 장치에서와 같은 읽기/쓰기가 수행되는 것처럼 보이게 에뮬레이트(emulate)하는 역할을 하는 계층이 FTL이다.
FTL의 주소 변환은 가상 맵핑 테이블을 통해 이루어질 수 있다. 맵핑 방식은 크게 페이지 맵핑과 블록 맵핑 방식이 있다. 페이지 맵핑은 페이지 단위(2KB 이하)로 주소 변환을 하며 블록 맵핑은 블록 단위(128KB 이하)로 주소 변환을 한다. 도 5는 블록 맵핑 방식에 의해 주소 변환을 하는 원리를 도시한 것이다. 예컨대, 논리 주소인 '섹터 6'은 논리 블록 번호(Logical Block Number) 및 논리 오프셋(Logical Offset)으로 분리되고, 이들은 각각 물리 블록 번호(Physical Block Number) 및 물리 오프셋(Physical Offset)으로 맵핑되어, 플래시 메모리 상의 '0번 블록의 2번 페이지'로 변환된다.
이러한 방식에 의하여 FTL이 플래시 장치를 랜덤 읽기/쓰기가 가능한 디스크처럼 보일 수 있도록 에뮬레이트하기 때문에 FTL 상위에 FAT(File Allocation Table) 파일시스템과 같은 디스크 기반 파일시스템이 올라갈 수 있는 것이다. 도 6은 FAT 파일시스템의 FAT 테이블 구조를 예시한 것으로, 파일은 실제 데이터가 저장된 주소의 연결 목록(linked list) 형태로 표현되며 이 정보는 테이블의 형태로 관리된다. 도 6을 참조하면, FAT 항목 0, 1, 5는 데이터가 쓰여 있지 않은 자유(free) 영역을 가리키며, 파일 A는 FAT 항목 4, 7, 2가, 파일 B는 FAT 항목 6, 3이 가리키는 영역에 저장되어 있다. FAT 테이블은 파일의 내용이 저장되어 있는 곳과는 별도로 디스크 앞부분에 저장되며, 파일 삭제(delete)시 FAT 테이블만 갱신되며 FAT 테이블이 가리키고 있던 실제 데이터 블록의 내용은 그대로 남아 있게 된다.
다시 말해, FTL 상위 계층에 FAT 파일 시스템을 이용하는 경우, 파일을 지웠을 때 파일이 실제로 삭제되는 것이 아니라 해당 파일의 FAT 테이블과 디렉토리 엔트리만을 갱신하므로, 하위 계층인 FTL 계층에서는 해당 파일의 섹터들이 무효화되었음을 알지 못한다. 대부분의 다른 파일시스템에서도 마찬가지로, 해당 파일의 메타데이터만 갱신되며 파일이 실제로 기록되어 있던 섹터의 데이터는 플래시 메모리에 그대로 남아 있다.
이러한 방법은 하드디스크와 같이 덮어쓰기(overwrite)가 무한정 가능한 장치에서는 효과적이나 플래시 장치에서는 매우 비효율적이다. FTL은 논리적으로는 다시쓰기(rewrite)가 가능하도록 Abstraction을 제공하지만, 실제에 있어서는 다시쓰기가 발생하면 플래시 메모리 상의 빈 공간을 찾아 기록해야 하며 빈 공간이 없을 경우 새로운 빈 블록을 생성하는 Garbage Collection 또는 병합(merge)을 수행해야 하므로 오버헤드가 크다.
도 7은 상기 대한민국 특허 제389867호에서 제안한 FTL의 Garbage Collection 과정을 도시한 것이다. 여기서, 하나의 논리적 블록은 최개 2개의 블록(데이터 블록과 로그 블록)에 기록될 수 있으며, 지속적인 다시쓰기로 인해 더이상 여기에 다시쓰기가 불가능하면, 2개의 블록을 하나로 합치는 병합을 수행하고 난 후 다시쓰기를 진행한다. 즉, 도 7에서 데이터 블록과 로그 블록은 자유 블록에 병합되고 난 후 지우기 가능 블록이 되는 것이다. 이 방법에 의하면, 하나의 섹터 쓰기를 위해 블록 복사 및 2개의 플래시 지우기 연산이 수행되는 시간이 소요된다. 또한, 파일시스템에서는 이미 삭제한 파일이라 하더라도 FAT 테이블과 같은 메타데이터만 갱신하고 실제 데이터 블록은 그대로 남아 있게 되므로, FTL에서는 삭제된 파일의 데이터도 모두 유효 페이지로 인식하여 복사하는 문제가 있다. 만일 FTL 계층에서 어떤 섹터가 실제로는 지워진 파일의 데이터를 가지고 있는지 알 수 있다면, 이러한 오버헤드를 없앨 수 있을 것이다.
본 발명은 상기 문제를 해결하기 위한 것으로, FTL 계층과 같은 인터페이스 모듈에서 상위 계층인 파일시스템의 파일 삭제를 인지하여 삭제된 파일에 해당하는 플래시 메모리 영역을 무효화(invalidate)시키거나 지우기(erase)를 수행함으로써, Garbage Collection시 불필요한 데이터의 복사로 인한 부하를 줄이고, 플래시 메모리의 파일을 삭제한 후 다시 파일을 쓸 때 처음과 같은 일관된 쓰기 속도를 보장하는, 플래시 메모리 관리 방법 및 플래시 메모리 시스템을 제공하는데 그 목적이 있다.
상기 목적의 달성을 위해 본 발명은, 파일시스템으로부터 메타데이터에 대한 쓰기 연산이 입력되었을 때 이를 감지하고 그 연산이 파일 삭제를 위한 것인지 판단하여 효율적인 쓰기 연산을 수행하는 플래시 메모리 관리 방법 및 플래시 메모리 시스템을 제공한다.
본 발명의 특징은, 파일시스템을 사용하는 플래시 메모리 관리 방법에 있어서, 섹터 쓰기 연산이 입력되는 단계; 상기 섹터 쓰기 연산이 상기 파일시스템의 메타데이터가 저장되어 있는 영역을 대상으로 하는지 판단하는 단계; 및 상기 판단에 따라 플래시 메모리를 관리하는 단계를 포함하는 것이다.
본 발명의 다른 특징은, 상기 플래시 메모리를 관리하는 단계가, 상기 섹터 쓰기 연산이 상기 메타데이터가 저장되어 있는 영역을 대상으로 하는 경우, 상기 메타데이터 영역의 정보와 상기 섹터 쓰기 연산의 쓰기 버퍼의 정보를 비교하여 상기 섹터 쓰기 연산의 목적을 판단하는 단계를 포함하는 것이다.
본 발명의 다른 특징은, 상기 플래시 메모리를 관리하는 단계가, 상기 섹터 쓰기 연산의 목적이 파일의 삭제인 경우, 상기 파일에 해당하는 플래시 메모리의 데이터를 삭제하는 단계를 더 포함하는 것이다.
본 발명의 다른 특징은, 상기 데이터를 삭제하는 단계가, 상기 데이터가 저장되어 있는 상기 플래시 메모리 상의 페이지들이 삭제된 영역임을 표시함으로써 상기 페이지들을 무효화시키는 단계를 포함하는 것이다.
본 발명의 다른 특징은, 상기 데이터를 삭제하는 단계가, 상기 무효화된 페이지들이 속한 블록들의 상태를 검사하는 단계; 및 상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지우는 단계를 더 포함하는 것이다.
본 발명의 다른 특징은, 상기 플래시 메모리를 관리하는 단계가, 상기 메타데이터 영역에 상기 쓰기 버퍼의 정보를 기록하는 단계를 더 포함하는 것이다.
본 발명의 다른 특징은, 파일시스템을 사용하는 플래시 메모리 관리 방법에 있어서, 상기 파일시스템 마운트시 부트 섹터의 정보를 읽는 단계; 상기 정보를 조사하여 상기 파일시스템에 대한 정보를 획득하는 단계; 및 상기 파일시스템에 대한 정보에 따라 플래시 메모리를 관리하는 단계를 포함하는 것이다.
본 발명의 다른 특징은, 상기 플래시 메모리를 관리하는 단계가, 상기 파일시스템에 대한 정보를 이용하여 상기 파일시스템의 유형 및 메타데이터가 저장되어 있는 영역의 위치를 구하는 단계를 포함하는 것이다.
본 발명의 다른 특징은, 파일시스템을 사용하는 플래시 메모리 시스템에 있어서, 플래시 메모리; 및 상기 파일시스템의 메타데이터를 조사함으로써 입력된 섹터 쓰기 연산이 상기 파일시스템의 파일 삭제를 위한 것인지 판단하고, 파일 삭제를 위한 것이면 상기 파일에 해당하는 상기 플래시 메모리 내의 데이터를 삭제하는 인터페이스를 포함하는 것이다.
본 발명의 다른 특징은, 상기 메타데이터가 기록되는 비휘발성 RAM을 더 포함하는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 8은 본 발명에 따른 플래시 메모리 관리 방법에 의해 섹터 쓰기 연산을 처리하는 메커니즘을 도시한 흐름도이다. FTL과 같은 인터페이스에서 파일시스템에 대한 기본 정보를 획득하는 방법은 부트 섹터를 조사하는 것이다. 부트 섹터는 파일시스템을 마운트할 때와 파일시스템을 생성할 때 읽을 수 있으며, 부트 섹터의 정보를 조사하면 파일시스템이 어떤 유형인지, 파일시스템의 메타데이터가 어디에 기록되어 있는지 등 파일시스템의 기본 정보를 알 수 있고, 이 정보를 플래시 메모리의 관리에 이용할 수 있게 된다. 여기서는 FAT 파일시스템을 기준으로 본 발명의 실시예에 대해 설명하나, 본 발명이 특정 파일시스템에 한정되어 적용되는 것은 아니다.
먼저 FTL에 섹터 쓰기 연산이 입력되면, 섹터 쓰기의 연산이 부트 섹터를 대상으로 한 것인지 판단하고(S801), 부트 섹터에 대한 것이면 부트 섹터의 정보를 조사하고(S808) 그 조사 결과를 바탕으로 FTL 쓰기 연산을 수행한다(S807).
한편, 부트 섹터에 대한 섹터 쓰기 연산이 아니면, 섹터 쓰기 연산이 파일시스템의 메타데이터가 저장되어 있는 영역을 대상으로 하는 연산인지 판단한다(S802). 상술한 바와 같이 파일시스템 마운트시 획득한 파일시스템에 대한 정보를 이용하면 파일시스템의 메타데이터 위치를 파악할 수 있으므로 섹터 쓰기 연산의 대상이 메타데이터인지 알 수 있는 것이다. 이 실시예에서는 FAT 테이블이 저장되어 있는 영역에 대한 섹터 쓰기 연산인지 판단한다.
입력된 섹터 쓰기 연산이 FAT 영역에 대한 쓰기가 아닌 경우이면, 섹터 쓰기 연산에 대응하는 일반적인 FTL 쓰기를 수행한다(S807). 즉, FTL에서는 섹터 쓰기 연산의 대상인 논리 주소를 물리 주소로 변환하고 플래시 메모리의 해당 주소에 쓰기 버퍼의 내용을 기록할 것이다.
섹터 쓰기 연산이 메타데이터가 저장되어 있는 영역을 대상으로 하는 경우는, 다음과 같은 방법으로 메타데이터 영역에 기록되어 있는 기존 정보와 섹터 쓰기 연산의 쓰기 버퍼에 저장되어 있는 정보를 비교함으로써 섹터 쓰기 연산의 목적을 판단한다.
FAT 영역에 대한 섹터 쓰기 연산일 경우, 플래시 메모리로부터 섹터 쓰기 연산의 목적지에 해당하는 섹터의 메타데이터 정보 즉 FAT 항목들을 읽은 후(S803), 새로 써야 하는 쓰기 버퍼의 내용인 새로운 FAT 항목들과 비교하여(S804), 새로이 삭제되는 FAT 항목(entry)이 있는지 조사한다(S805). 플래시 메모리의 쓰기 단위가 섹터이기 때문에 해당 섹터 전체를 대상으로 비교를 해야 한다. 즉, 쓰기 연산의 목적지인 섹터와 쓰기 버퍼에 저장되어 있는 섹터에 포함된 각 FAT 항목별로 모두 비교하여 변경된 항목들이 어떤 것인지 조사한다. FAT 테이블의 i 번째 FAT 항목을 비교할 때, 기존의 i 번째 항목이 '0'이 아닌데 새로 써야 하는 데이터가 0이라면, 즉 old(i) != '0' 이고 new(i) == '0'이면, i 번째 항목은 파일시스템의 파일 삭제 연산에 의해 삭제된 플래시 메모리 영역을 가리키며, 이러한 FAT 항목들이 발견되면 입력된 섹터 쓰기 연산은 파일 삭제를 위한 것이다.
상기의 비교 과정에서 삭제된 FAT 항목이 가리키는 논리 블록 주소는 FTL의 맵핑 기능을 통해 실제 플래시 메모리 상의 블록 번호 및 페이지 번호로 변환될 수 있으므로, 삭제되는 파일에 대응하는 물리 주소를 구할 수 있다. 이 물리 주소를 이용하여 삭제되는 파일에 해당하는 플래시 메모리의 데이터를 삭제하며, 플래시 메모리의 데이터 삭제는 무효화(invalidate)나 지우기(erase) 연산을 통해서 수행된다. 다시 말해, 상기에서 구한 물리 주소를 가진 페이지들에 대해서는 삭제된 영역임을 표시함으로써 무효화하고, 이 페이지들이 속한 블록들의 상태를 검사하여 모든 페이지가 무효화된 블록이 있으면 플래시 지우기 연산을 통해 지움으로써 새로운 깨끗한 블록을 생성한다(S806).
마지막으로, 처음에 입력된 섹터 쓰기 연산에 따라, FAT 영역의 해당 섹터에 쓰기 버퍼에 포함된 정보를 기록한다(S807).
도 9는 파일 삭제 전(a)과 파일 삭제 후(b)의 FAT 테이블의 내용을 비교한 것이다. 도시된 예는, 초기에 파일 A와 B가 존재하고 있다가, 파일 A가 삭제된 경우의 FAT 테이블의 내용 변화를 나타내고 있다. 도 9의 (a)에 도시된 바와 같이 파일 A에 대한 FAT 항목 4, 7, 2의 값이 각각 '7', '2', 'eof' 인데, 쓰기 버퍼의 내용을 분석한 결과 FAT 항목 4, 7, 2에 새로이 써야 하는 데이터가 모두 '0'이라면, 입력된 섹터 쓰기 연산의 목적이 파일 A의 삭제임을 인식할 수 있다. 이 경우, 도 8에 도시된 알고리즘에 따라 FAT 항목 4, 7, 2에 대응하는 플래시 메모리의 영역들도 모두 무효화 또는 지워지며, 도 9의 (b)에 도시된 바와 같이 해당 FAT 항목들의 값이 모두 '0'으로 변경된다.
도 10은 본 발명에 따른 플래시 메모리 시스템(1000)의 구성을 도시한 것으로, 플래시 메모리(1001)와 인터페이스(1002)를 포함하며, 파일시스템(1004)과 연동하고 있다. 또한, 플래시 메모리 시스템(1000)에 NVRAM(Nonvolatile Random Access Memory, 비휘발성 RAM, 1003)을 추가하여 성능을 더욱 개선할 수도 있다.
인터페이스(1002)는 상술한 플래시 메모리 관리방법을 수행하는 수단으로서, 파일시스템(1004)의 현재 메타데이터의 내용을 읽어 조사하고 입력된 섹터 쓰기 연산의 쓰기 버퍼 내용과 비교함으로써, 연산이 파일 삭제를 위한 것인지 판단한다. 만일, 파일 삭제를 위한 연산이면 그 파일에 해당하는 플래시 메모리(1001) 내의 데이터를 실제로 삭제하도록 지시한다. 파일시스템의 메타데이터를 NVRAM(1003)에 저장하면, 쓰기 연산의 목적 판단시 메타데이터를 플래시 메모리(1001)에서 읽은 후 새로이 써야하는 데이터와 비교하는 대신, NVRAM(1003) 상에서 직접 비교할 수 있으므로 수행 시간이 감소된다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같은 본 발명의 구성에 의하면, FTL 계층에서 상위 계층의 삭제 연산을 인식할 수 있으며, 추후 Garbage Collection 과정에서 불필요한 데이터의 복사를 방지할 수 있고, 파일 삭제시 실제 데이터 블록에 대한 지우기가 수행되므로 향후 다시쓰기 연산의 빠른 수행이 가능하다는 장점이 있다.
상기와 같은 특성은 특히 캠코더와 같이 저장시의 실시간성이 중요한 제품에 있어서 매우 유용한데, 종래의 방법을 캠코더에 사용하는 경우 반복해서 레코딩을 할 때 쓰기 속도가 실시간 요구사항을 만족시키지 못할 수 있으나, 본 발명을 채용하게 되면 다시쓰기시에도 처음쓰기와 유사한 성능을 얻을 수 있으므로 실시간 성능을 크게 향상시킬 수 있다.
도 11은 이러한 특성을 확인할 수 있는 실험 결과를 나타낸 그래프이다. 이 그래프는 왼쪽부터 차례로 미국 특허 제5,404,485호에 의한 플래시 파일시스템을 구현한 경우(1101), 대한민국 특허 제389867호에 의한 플래시 메모리 관리 방법을 구현한 경우(1102), 본 발명에 따른 플래시 메모리 관리 방법을 적용한 경우(1103)의 실험 결과이다. 조건은 모두 동일하며, (1) 처음에 데이터를 가득 쓴 경우 (▨), (2) (1)에서 기록한 데이터를 삭제한 경우 (▩), (3) 다시 데이터를 가득 채운 경우 (□)에 소요되는 시간을 각각 측정한 결과이다. 도시된 바와 같이, 본 발명에 따르면 다시쓰기에 있어서도 처음쓰기와 거의 동일한 쓰기 속도를 유지할 수 있음을 확인할 수 있다.
또한, 본 발명에 따르면 FAT 테이블을 VNRAM에 저장하여 NVRAM 상에서 직접 신ㆍ구 데이터 비교가 가능하므로 성능이 더욱 향상될 수 있다.

Claims (17)

  1. 파일시스템을 사용하는 플래시 메모리 관리 방법에 있어서,
    상기 파일시스템으로부터 섹터 쓰기 연산이 입력되는 단계;
    상기 섹터 쓰기 연산이 상기 파일시스템의 메타데이터가 저장되어 있는 영역을 대상으로 하는지 판단하는 단계; 및
    상기 판단에 따라 플래시 메모리를 관리하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  2. 제 1 항에 있어서,
    상기 플래시 메모리를 관리하는 단계는,
    상기 섹터 쓰기 연산이 상기 메타데이터가 저장되어 있는 영역을 대상으로 하는 경우, 상기 메타데이터 영역의 정보와 상기 섹터 쓰기 연산의 쓰기 버퍼의 정보를 비교하여 상기 섹터 쓰기 연산의 목적을 판단하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  3. 제 2 항에 있어서,
    상기 플래시 메모리를 관리하는 단계는,
    상기 섹터 쓰기 연산의 목적이 파일의 삭제인 경우, 상기 파일에 해당하는 플래시 메모리의 데이터를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 플래 시 메모리 관리 방법.
  4. 제 3 항에 있어서,
    상기 데이터를 삭제하는 단계는,
    상기 데이터가 저장되어 있는 상기 플래시 메모리 상의 페이지들이 삭제된 영역임을 표시함으로써 상기 페이지들을 무효화시키는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  5. 제 4 항에 있어서,
    상기 데이터를 삭제하는 단계는,
    상기 무효화된 페이지들이 속한 블록들의 상태를 검사하는 단계; 및
    상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지우는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  6. 제 5 항에 있어서,
    상기 플래시 메모리를 관리하는 단계는,
    상기 메타데이터 영역에 상기 쓰기 버퍼의 정보를 기록하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  7. 삭제
  8. 파일시스템을 사용하는 플래시 메모리 관리 방법에 있어서,
    상기 파일시스템 마운트시 부트 섹터의 정보를 읽는 단계;
    상기 부트 섹터의 정보를 조사하여 상기 파일시스템에 대한 정보를 획득하는 단계; 및
    상기 파일시스템에 대한 정보에 따라 플래시 메모리를 관리하는 단계를 포함하고,
    상기 플래시 메모리를 관리하는 단계는,
    상기 파일시스템에 대한 정보를 이용하여 상기 파일시스템의 유형 및 메타데이터가 저장되어 있는 영역의 위치를 구하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  9. 제 8 항에 있어서,
    상기 플래시 메모리를 관리하는 단계는,
    섹터 쓰기 연산이 입력되는 단계;
    상기 섹터 쓰기 연산이 상기 메타데이터가 저장되어 있는 영역을 대상으로 하는지 판단하는 단계; 및
    상기 섹터 쓰기 연산이 상기 메타데이터가 저장되어 있는 영역을 대상으로 하는 경우, 상기 메타데이터 영역의 정보와 상기 섹터 쓰기 연산의 쓰기 버퍼의 정보를 비교하여 상기 섹터 쓰기 연산의 목적을 판단하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  10. 제 9 항에 있어서,
    상기 플래시 메모리를 관리하는 단계는,
    상기 섹터 쓰기 연산의 목적이 파일의 삭제인 경우, 상기 파일에 해당하는 플래시 메모리의 데이터를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  11. 제 10 항에 있어서,
    상기 데이터를 삭제하는 단계는,
    상기 데이터가 저장되어 있는 상기 플래시 메모리의 페이지들이 삭제된 영역임을 표시함으로써 상기 페이지들을 무효화시키는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  12. 제 11 항에 있어서,
    상기 데이터를 삭제하는 단계는,
    상기 무효화된 페이지들이 속한 블록들의 상태를 검사하는 단계; 및
    상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지우는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  13. 파일시스템을 사용하는 플래시 메모리 시스템에 있어서,
    플래시 메모리; 및
    상기 파일시스템의 메타데이터를 조사함으로써 입력된 섹터 쓰기 연산이 상기 파일시스템의 파일 삭제를 위한 것인지 판단하고, 파일 삭제를 위한 것이면 상기 파일에 해당하는 상기 플래시 메모리 내의 데이터를 삭제하는 인터페이스를 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  14. 제 13 항에 있어서,
    상기 인터페이스는,
    상기 섹터 쓰기 연산의 대상이 상기 메타데이터가 저장되어 있는 영역인 경우, 상기 메타데이터 영역의 정보와 상기 섹터 쓰기 연산의 쓰기 버퍼의 정보를 비교함으로써 상기 섹터 쓰기 연산이 파일 삭제를 위한 것임을 판단하는 것을 특징으로 하는 플래시 메모리 시스템.
  15. 제 13 항 또는 제 14 항에 있어서,
    상기 인터페이스는,
    상기 데이터가 저장되어 있는 상기 플래시 메모리의 페이지들이 삭제된 영역임을 표시하여 상기 페이지들을 무효화시킴으로써 상기 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 인터페이스는,
    상기 무효화된 페이지들이 속한 블록들의 상태를 검사하고, 상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지움으로써 상기 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리 시스템.
  17. 제 13 항에 있어서,
    상기 메타데이터가 기록되는 비휘발성 RAM을 더 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
KR1020050076546A 2005-08-20 2005-08-20 플래시 메모리 관리 방법 및 플래시 메모리 시스템 KR100739722B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050076546A KR100739722B1 (ko) 2005-08-20 2005-08-20 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US11/362,720 US20070043900A1 (en) 2005-08-20 2006-02-28 Flash memory management method and flash memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050076546A KR100739722B1 (ko) 2005-08-20 2005-08-20 플래시 메모리 관리 방법 및 플래시 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20070021849A KR20070021849A (ko) 2007-02-23
KR100739722B1 true KR100739722B1 (ko) 2007-07-13

Family

ID=37768482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050076546A KR100739722B1 (ko) 2005-08-20 2005-08-20 플래시 메모리 관리 방법 및 플래시 메모리 시스템

Country Status (2)

Country Link
US (1) US20070043900A1 (ko)
KR (1) KR100739722B1 (ko)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091761A1 (en) * 2002-08-06 2008-04-17 Stt Webos, Inc. Method and apparatus for information exchange over a web based environment
EP2309391A2 (en) * 2004-03-31 2011-04-13 Sanyo Electric Co., Ltd. Information recording method and information recording/reproduction device
US20060004096A1 (en) * 2004-05-28 2006-01-05 Joseph Larner Method of Treating Endothelial Dysfunction, Oxidative Stress and Related Diseases
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US7594067B2 (en) * 2005-10-20 2009-09-22 Stec, Inc. Enhanced data access in a storage device
KR100766561B1 (ko) * 2006-04-27 2007-10-11 텔코웨어 주식회사 분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현방법 및 시스템
KR100809319B1 (ko) * 2006-09-13 2008-03-05 삼성전자주식회사 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
KR100816763B1 (ko) 2007-02-13 2008-03-25 삼성전자주식회사 플래시 메모리 모듈을 주기억장치로 사용하는 전자 시스템및 그것의 부팅 방법
US9207876B2 (en) 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
KR100895429B1 (ko) * 2007-04-27 2009-05-07 중앙대학교 산학협력단 플래시 메모리 파일 장치 및 그 마운트 방법
US8332575B2 (en) * 2007-06-20 2012-12-11 Samsung Electronics Co., Ltd. Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance
US20090013148A1 (en) 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
KR101433859B1 (ko) 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
JP4164118B1 (ja) * 2008-03-26 2008-10-08 眞澄 鈴木 フラッシュメモリを用いた記憶装置
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
US8370603B2 (en) * 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
KR101067018B1 (ko) * 2009-04-17 2011-09-22 서울대학교산학협력단 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치
TWI405214B (zh) * 2009-05-06 2013-08-11 A Data Technology Co Ltd 快閃記憶體儲存系統之資料燒錄方法
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
US9134918B2 (en) * 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、系统和方法
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9092337B2 (en) 2011-01-31 2015-07-28 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
JP5405513B2 (ja) * 2011-03-22 2014-02-05 株式会社東芝 メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US20140040536A1 (en) * 2012-08-01 2014-02-06 Genusion Inc. Storage medium using nonvolatile semiconductor storage device, data terminal having the storage medium mounted thereon, and file erasing method usable for the same
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9665743B2 (en) * 2015-02-26 2017-05-30 Whitecanyon Software, Inc. Selective storage device wiping system and method
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
CN105205019B (zh) * 2015-10-30 2018-01-02 上海斐讯数据通信技术有限公司 基于高通平台手机的nv参数读写系统及方法
CN112269547B (zh) * 2020-10-26 2022-07-01 武汉轻工大学 无需操作系统的、主动、可控硬盘数据删除方法及装置
CN112379835B (zh) * 2020-11-12 2022-07-01 厦门市美亚柏科信息股份有限公司 一种oob区数据提取方法、终端设备及存储介质
KR102422680B1 (ko) * 2020-12-16 2022-07-18 조완호 보안 기능이 내재된 플래시 스토리지 시스템
CN113553006A (zh) * 2021-07-12 2021-10-26 山东华芯半导体有限公司 一种实现向只读分区写数据的安全加密存储系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003208352A (ja) 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ
KR20030095438A (ko) * 2002-06-10 2003-12-24 삼성전자주식회사 플래쉬 메모리용 파일 시스템
KR20060007667A (ko) * 2004-07-20 2006-01-26 엘지전자 주식회사 플래시 메모리 관리 방법과 장치 및 그 구조
KR20060067611A (ko) * 2004-12-15 2006-06-20 삼성전자주식회사 비휘발성 저장장치에 멀티미디어 데이터를 블록 단위로저장하는 방법 및 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5357475A (en) * 1992-10-30 1994-10-18 Intel Corporation Method for detaching sectors in a flash EEPROM memory array
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
JP2000076117A (ja) * 1998-08-31 2000-03-14 Kano Densan Hongkong Yugenkoshi 電子機器及びその制御方法及び記憶媒体
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6412080B1 (en) * 1999-02-23 2002-06-25 Microsoft Corporation Lightweight persistent storage system for flash memory devices
CN100442393C (zh) * 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6950918B1 (en) * 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
JP2004241068A (ja) * 2003-02-07 2004-08-26 Sony Corp 電子機器及びその再生制御方法
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003208352A (ja) 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ
KR20030095438A (ko) * 2002-06-10 2003-12-24 삼성전자주식회사 플래쉬 메모리용 파일 시스템
KR20060007667A (ko) * 2004-07-20 2006-01-26 엘지전자 주식회사 플래시 메모리 관리 방법과 장치 및 그 구조
KR20060067611A (ko) * 2004-12-15 2006-06-20 삼성전자주식회사 비휘발성 저장장치에 멀티미디어 데이터를 블록 단위로저장하는 방법 및 장치

Also Published As

Publication number Publication date
US20070043900A1 (en) 2007-02-22
KR20070021849A (ko) 2007-02-23

Similar Documents

Publication Publication Date Title
KR100739722B1 (ko) 플래시 메모리 관리 방법 및 플래시 메모리 시스템
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
KR101404083B1 (ko) 반도체 디스크 및 그것의 동작 방법
US9928167B2 (en) Information processing system and nonvolatile storage unit
EP2955633B1 (en) Data erasing method and device for flash memory
KR101054153B1 (ko) 기억 장치
JP3944504B2 (ja) 変換索引バッファのレイジー・フラッシング
US8024545B2 (en) Efficient prefetching and asynchronous writing for flash memory
US9489297B2 (en) Pregroomer for storage array
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US8738882B2 (en) Pre-organization of data
US8838875B2 (en) Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon
US11782632B2 (en) Selective erasure of data in a SSD
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
US10445022B1 (en) Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices
US6256232B1 (en) Data access method capable of reducing the number of erasing to flash memory and data patch and access device using the same
JP2007133487A (ja) ファイル管理方法、装置、およびプログラム
TWI699650B (zh) 記憶裝置及電腦系統
KR20140112303A (ko) 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
Park et al. Compression support for flash translation layer
CN116069681A (zh) 一种磁盘空间回收方法、装置、电子设备以及存储介质
US20030046482A1 (en) Data management in flash memory
JP5036078B2 (ja) 記憶装置
Singh et al. Secure file deletion for solid state drives

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
G170 Re-publication after modification of scope of protection [patent]
LAPS Lapse due to unpaid annual fee