KR100739722B1 - 플래시 메모리 관리 방법 및 플래시 메모리 시스템 - Google Patents
플래시 메모리 관리 방법 및 플래시 메모리 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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
도 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 항에 있어서,상기 플래시 메모리를 관리하는 단계는,상기 섹터 쓰기 연산의 목적이 파일의 삭제인 경우, 상기 파일에 해당하는 플래시 메모리의 데이터를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 플래 시 메모리 관리 방법.
- 제 3 항에 있어서,상기 데이터를 삭제하는 단계는,상기 데이터가 저장되어 있는 상기 플래시 메모리 상의 페이지들이 삭제된 영역임을 표시함으로써 상기 페이지들을 무효화시키는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 4 항에 있어서,상기 데이터를 삭제하는 단계는,상기 무효화된 페이지들이 속한 블록들의 상태를 검사하는 단계; 및상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지우는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 5 항에 있어서,상기 플래시 메모리를 관리하는 단계는,상기 메타데이터 영역에 상기 쓰기 버퍼의 정보를 기록하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 삭제
- 파일시스템을 사용하는 플래시 메모리 관리 방법에 있어서,상기 파일시스템 마운트시 부트 섹터의 정보를 읽는 단계;상기 부트 섹터의 정보를 조사하여 상기 파일시스템에 대한 정보를 획득하는 단계; 및상기 파일시스템에 대한 정보에 따라 플래시 메모리를 관리하는 단계를 포함하고,상기 플래시 메모리를 관리하는 단계는,상기 파일시스템에 대한 정보를 이용하여 상기 파일시스템의 유형 및 메타데이터가 저장되어 있는 영역의 위치를 구하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 8 항에 있어서,상기 플래시 메모리를 관리하는 단계는,섹터 쓰기 연산이 입력되는 단계;상기 섹터 쓰기 연산이 상기 메타데이터가 저장되어 있는 영역을 대상으로 하는지 판단하는 단계; 및상기 섹터 쓰기 연산이 상기 메타데이터가 저장되어 있는 영역을 대상으로 하는 경우, 상기 메타데이터 영역의 정보와 상기 섹터 쓰기 연산의 쓰기 버퍼의 정보를 비교하여 상기 섹터 쓰기 연산의 목적을 판단하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 9 항에 있어서,상기 플래시 메모리를 관리하는 단계는,상기 섹터 쓰기 연산의 목적이 파일의 삭제인 경우, 상기 파일에 해당하는 플래시 메모리의 데이터를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 10 항에 있어서,상기 데이터를 삭제하는 단계는,상기 데이터가 저장되어 있는 상기 플래시 메모리의 페이지들이 삭제된 영역임을 표시함으로써 상기 페이지들을 무효화시키는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 11 항에 있어서,상기 데이터를 삭제하는 단계는,상기 무효화된 페이지들이 속한 블록들의 상태를 검사하는 단계; 및상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지우는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 파일시스템을 사용하는 플래시 메모리 시스템에 있어서,플래시 메모리; 및상기 파일시스템의 메타데이터를 조사함으로써 입력된 섹터 쓰기 연산이 상기 파일시스템의 파일 삭제를 위한 것인지 판단하고, 파일 삭제를 위한 것이면 상기 파일에 해당하는 상기 플래시 메모리 내의 데이터를 삭제하는 인터페이스를 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
- 제 13 항에 있어서,상기 인터페이스는,상기 섹터 쓰기 연산의 대상이 상기 메타데이터가 저장되어 있는 영역인 경우, 상기 메타데이터 영역의 정보와 상기 섹터 쓰기 연산의 쓰기 버퍼의 정보를 비교함으로써 상기 섹터 쓰기 연산이 파일 삭제를 위한 것임을 판단하는 것을 특징으로 하는 플래시 메모리 시스템.
- 제 13 항 또는 제 14 항에 있어서,상기 인터페이스는,상기 데이터가 저장되어 있는 상기 플래시 메모리의 페이지들이 삭제된 영역임을 표시하여 상기 페이지들을 무효화시킴으로써 상기 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리 시스템.
- 제 15 항에 있어서,상기 인터페이스는,상기 무효화된 페이지들이 속한 블록들의 상태를 검사하고, 상기 블록들 중 모든 페이지가 무효화된 상태인 블록을 플래시 지우기 연산으로 지움으로써 상기 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리 시스템.
- 제 13 항에 있어서,상기 메타데이터가 기록되는 비휘발성 RAM을 더 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
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)
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)
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)
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 |
-
2005
- 2005-08-20 KR KR1020050076546A patent/KR100739722B1/ko not_active IP Right Cessation
-
2006
- 2006-02-28 US US11/362,720 patent/US20070043900A1/en not_active Abandoned
Patent Citations (4)
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 |