[go: up one dir, main page]

KR100684887B1 - 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 - Google Patents

플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 Download PDF

Info

Publication number
KR100684887B1
KR100684887B1 KR1020050010750A KR20050010750A KR100684887B1 KR 100684887 B1 KR100684887 B1 KR 100684887B1 KR 1020050010750 A KR1020050010750 A KR 1020050010750A KR 20050010750 A KR20050010750 A KR 20050010750A KR 100684887 B1 KR100684887 B1 KR 100684887B1
Authority
KR
South Korea
Prior art keywords
data block
block
page
data
flash memory
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020050010750A
Other languages
English (en)
Other versions
KR20060089491A (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 KR1020050010750A priority Critical patent/KR100684887B1/ko
Priority to US11/319,281 priority patent/US7487303B2/en
Priority to DE102006003261A priority patent/DE102006003261A1/de
Priority to JP2006016686A priority patent/JP2006216036A/ja
Publication of KR20060089491A publication Critical patent/KR20060089491A/ko
Application granted granted Critical
Publication of KR100684887B1 publication Critical patent/KR100684887B1/ko
Priority to US12/347,243 priority patent/US20090172269A1/en
Priority to US12/775,767 priority patent/US8122193B2/en
Priority to US13/365,485 priority patent/US8533391B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B8/00Diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/44Constructional features of the ultrasonic, sonic or infrasonic diagnostic device
    • A61B8/4411Device being modular
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B8/00Diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/46Ultrasonic, sonic or infrasonic diagnostic devices with special arrangements for interfacing with the operator or the patient
    • A61B8/467Ultrasonic, sonic or infrasonic diagnostic devices with special arrangements for interfacing with the operator or the patient characterised by special input means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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]
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B2560/00Constructional details of operational features of apparatus; Accessories for medical measuring apparatus
    • A61B2560/04Constructional details of apparatus
    • A61B2560/0443Modular apparatus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Veterinary Medicine (AREA)
  • Radiology & Medical Imaging (AREA)
  • Pathology (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Biophysics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지 방법에 관한 것이다. 본 발명에 따른 데이터 저장 장치는 플래시 메모리와 컨트롤러를 포함한다. 상기 플래시 메모리는 FAT 정보를 저장한다. 그리고 상기 컨트롤러는 머지 동작 시 상기 FAT 정보를 참조하여 상기 플래시 메모리의 데이터 블록에 저장된 데이터를 새로운 데이터 블록으로 선택적으로 복사한다. 본 발명에 따른 데이터 저장 장치 및 그것의 머지 방법은 FAT 정보를 참조하여 머지 동작을 선택적으로 수행하기 때문에 종래의 머지 방법에 비하여 머지 동작 시간을 줄일 수 있다.

Description

플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지 방법 {DATA STORING DEVICE INCLUDING FLASH MEMORY AND MERGE METHOD OF THEREOF}
도 1 내지 도 3은 일반적인 사상 기법들을 설명하기 위한 도면들이다.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 저장 장치를 보여주는 블록도이다.
도 5는 본 발명에 따른 데이터 저장 장치의 머지 방법을 보여주는 개념도이다.
도 6은 본 발명에 따른 데이터 저장 장치의 선택적 머지 방법을 보여주는 순서도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 호스트 200 : 데이터 저장 장치
210 : 플래시 메모리 211 : FAT 영역
212 : 데이터 영역 213 : 로그 영역
214 : 메타 영역 220 : 컨트롤러
221 : 제어로직 222 : 워크 메모리
본 발명의 플래시 메모리를 포함한 데이터 저장 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지 방법에 관한 것이다.
최근 데스크 탑 컴퓨터 및 노트북 컴퓨터와 같은 다양한 형태의 개인용 컴퓨터들이 시장에 출시되고 있다. 일반적으로, 이러한 개인용 컴퓨터들은 메인 메모리와 외부 저장 장치를 포함하고 있다. 여기에서, 외부 저장 장치는 디스크 저장 매체를 이용한 하드 디스크 드라이브(HDD) 또는 플로피 디스크 드라이브(FDD)이다. 이러한 디스크 저장 장치들은 일반적으로 가격이 낮고 메모리 용량이 크지만, 마그네틱 헤드로 다양한 동작들 (예를 들면, 디스크 탐색 동작)을 수행하기 때문에 물리적인 충격에 의해 쉽게 손상될 수 있고 다른 형태의 메모리 장치보다 신뢰성이 낮은 단점이 있다.
디스크 저장 장치들의 이와 같은 문제점들로 인해, 플래시 메모리와 같은 반도체 메모리를 이용한 데이터 저장 장치들이 개발되고 있다. 플래시 메모리를 이용한 데이터 저장 장치 (이하, 데이터 저장 장치라고 한다)들은 일반적으로 전력을 적게 소모하고, 콤팩트하고, 가볍고, 물리적인 충격에 손상이 적은 장점이 있다.
호스트는 논리적 어드레스(logical address)를 제공함으로써 데이터 저장 장치를 액세스한다. 호스트에서 제공된 논리적 어드레스는 데이터 저장 장치의 물리적 메모리 공간을 액세스하기 위해서 물리적 어드레스(physical address)로 변환된다.
일반적으로, 데이터 저장 장치는 액세스 동작 동안 호스트와의 호환성을 위해서 디스크 에뮬레이션 소프트웨어 (disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 액세스 동작 동안, 호스트와 데이터 저장 장치 사이의 호환성은 플래시 변환 레이어(Flash Translation Layer; 이하 FTL 이라 함)와 같은 내장 시스템을 운영함으로써 달성될 수 있다. 다시 말해서, 호스트는 데이터 저장 장치를 하드 디스크와 같이 인식하여 하드 디스크와 동일한 방식으로 데이터 저장 장치를 액세스한다.
FTL의 기능들은 논리적 어드레스-물리적 어드레스 사상 정보 관리, 배드 블럭 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리, 마모도 관리 등을 포함한다. FTL의 기능들 중 핵심적인 기능은 사상 기법에 관련된 것으로, 예시적인 사상 기법들이 U.S. Patent No. 5,404,485에 "FLASH FILE SYSTEM"이라는 제목으로, U.S. Patent No. 5,937,425에 "FLASH FILE SYSTEM OPTIMIZED FOR PAGE-MODE FLASH TECHNOLOGIES"라는 제목으로, 그리고 U.S. Patent No. 6,381,176에 "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
플래시 메모리가 블록 단위로 액세스되는 경우에, 플래시 메모리는 복수의 블록들로 분할된다. 분할된 블록에 순차적으로 할당된 번호는 물리 블록 번호라 불리며, 사용자가 생각하는 분할된 블록의 가상 번호는 논리 블록 번호라 불린다. 논리 블록 번호와 물리 블록 번호 간의 사상을 제공하는 방법은 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법을 포함한다. 사상 기법을 이용한 FTL에서는 논리적으로 연속된 어드레스를 가지는 데이터가 물리적으로는 서로 상이한 위치에 기록되어 있을 수 있다. 플래시 메모리는 쓰기 (또는 프로그램) 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블록을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 공간으로 모으는 작업을 필요로 하며, 이러한 과정을 머지 동작이라고 한다.
머지 동작에는 크게 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법이 이용된다. 머지 동작을 설명하기에 앞서, 플래시 메모리가 복수 개의 메모리 블록들로 분할되어 있고 각 메모리 블록은 복수 개의 페이지들로 구성된다고 가정하자. 기호 "PBN"은 물리 블록 번호를 나타내고, 기호 "PPN"은 물리 페이지 번호를 나타내며, 기호 "LPN"은 논리 페이지 번호를 나타낸다.
블록 사상 기법
블록 사상 기법에 따른 머지 동작이 도 1을 참조하여 이하 설명된다. 블록 사상 기법에 따르면, 임의의 메모리 블록에 데이터를 저장하는 경우, 메모리 블록의 페이지들에 순차적으로 데이터가 저장된다. 물리 블록 번호가 '2'인 메모리 블록 (예를 들면, PBN2)의 i번째 페이지 (PPNi)에 데이터를 업데이트하는 경우, 먼저, 업데이터가 요청된 물리 페이지 번호가 'i'인 페이지 (PPNi)를 제외한 나머지 페이지들에 저장된 데이터가 빈 메모리 블록 (예를 들면, PBN3)의 대응하는 페이지들로 각각 복사된다. 그 다음에, 메모리 블록 (PBN2)의 페이지 (PPNi)에 저장될 데이터는 메모리 블록 (PBN3)의 i번째 페이지에 업데이트된다. 이후, 메모리 블록 (PBN2)은 소거되어 빈 메모리 블록 (free memory block)이 된다. 블록 사상 기법에 의하면, 앞서 설명된 머지 동작은 데이터가 저장된 페이지에 다른 데이터가 업데이트될 때마다 수행되어야 한다. 블록 사상 기법에 있어서, 물리 블록 번호와 논리 블록 번호 사이의 블록 사상 정보는 블록 사상 테이블을 사용하여 관리된다.
페이지 사상 기법
페이지 사상 기법에 따른 머지 동작이 도 2a 및 도 2b를 참조하여 이하 설명된다. 페이지 사상 기법에 의하면, 메모리 블록의 페이지들에 순차적으로 데이터가 쓰여진다. 논리 페이지 (LPN0)의 데이터는 물리 페이지 (PPN0)에 저장되고, 논리 페이지 (LPN1)의 데이터는 물리 페이지 (PPN1)에 저장되며, 논리 페이지 (LPN2)의 데이터는 물리 페이지 (PPN2)에 저장된다. 논리 페이지 (예를 들면, LPN1)에 데이터를 업데이트하고자 하는 경우, 논리 페이지 (LPN1)의 데이터는 물리 페이지 (PPN3)에 저장되고, 물리 페이지 (PPN1)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2a에서 "X"로 표기됨). 또한, 논리 페이지 (예를 들면, LPN0)에 데이터를 업데이트하고자 하는 경우, 논리 페이지 (LPN0)의 데이터는 물리 페이지 (PPN4)에 저장되고, 물리 페이지 (PPN0)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2a에서 "X"로 표기됨). 만약 메모리 블록 (PBN0)에 빈 페이지가 존재하지 않는 경우, 메모리 블록 (PBN0)에 쓰기 동작이 요구될 때 머지 동작이 수행된다. 도 2a에 도시된 바와 같이, 메모리 블록 (PBN0)의 유효 데이터만 즉, 물리 페이지들 (PPN2-PPN5)이 빈 메모리 블록 (PBN1)의 대응하는 페이지들 (PPN10-PPN13)로 복사 되고, 쓰기 동작이 요구된 논리 페이지 (LPN0)의 데이터가 메모리 블록 (PBN1)의 물리 페이지 (PPN14)에 저장된다. 이때, 메모리 블록 (PBN1)의 물리 페이지 (PPN10)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2a에서 "X"로 표기됨). 그 다음에 메모리 블록 (PBN0)은 소거될 것이다. 변경되는 사상 테이블은 FTL에 의해서 관리되며, 도 2b에 도시된 바와 같이 변경된다.
로그 사상 기법
로그 사상 기법을 이용한 머지 동작이 도 3a 및 3b를 참조하여 이하 상세히 설명된다. 도 3a를 참조하면, 데이터 저장 장치에서, 플래시 메모리는 데이터 영역, 로그 영역, 그리고 메타 영역으로 구분된다.
로그 사상 기법에 따르면, 로그 영역의 메모리 블록들은 데이터 영역의 메모리 블록들 중 일부 메모리 블록들에 각각 지정된다. 예를 들어, 플래시 메모리는 9개의 메모리 블록들 (PBN0-PBN8)을 포함한다고 가정하자. 9개의 메모리 블록들 중에서, 메모리 블록들 (PBN0-PBN4)은 데이터 영역으로, 메모리 블록들 (PBN5-PBN7)은 로그 영역으로, 그리고 메모리 블록 (PBN8)은 메타 영역으로 각각 정의되어 있다. 이때, 로그 영역의 메모리 블록들 (PBN5, PBN6)은 데이터 영역의 메모리 블록들 (PBN0, PBN2)에 각각 지정되며, 로그 영역의 메모리 블록 (PBN7)은 빈 메모리 블록으로 지정되어 있다고 가정한다.
데이터 영역의 메모리 블록 (PBN0)에 데이터를 쓰고자 하는 경우, 데이터는 메모리 블록 (PBN0)에 직접 쓰여지는 것이 아니라 메모리 블록 (PBN0)에 대응하는 로그 영역의 메모리 블록 (PBN5)에 쓰여진다. 메모리 블록 (PBN1)에 데이터를 쓰고자 하는 경우, 메모리 블록 (PBN1)에 대응하는 로그 영역의 메모리 블록이 지정되어 있지 않기 때문에, 아래와 같이 머지 동작이 수행된다.
로그 영역에 빈 메모리 블록 (PBN7)이 있는 경우, 로그 영역의 메모리 블록 (PBN5)에 저장된 유효 데이터가 빈 메모리 블록 (PBN7)으로 복사된다. 그리고, 메모리 블록 (PBN5)에 대응하는 데이터 영역의 메모리 블록 (PBN0)에 저장된 유효 데이터가 메모리 블록 (PBN7)으로 복사된다.
한편, 머지 동작에 따른 메모리 블록의 사상(mapping) 정보는 변경되며, 변경된 사상 정보는 FTL에 의해서 관리되며, 플래시 메모리의 메타 영역(PBN8)에 저장된다.
도 3b는 로그 사상 기법에 따른 머지 동작을 보여준다. 도 3b를 참조하면, 로그 블록(PBN5) 및 데이터 블록(PBN0)의 유효한 페이지들은 새로운 데이터 블록(PBN7)으로 복사된다. 이때 로그 블록(PBN5)은 최근에 쓰여진 데이터이므로 사용자가 쓰여지길 원하는 데이터일 가능성이 높지만, 데이터 블록(PBN0)에 쓰여진 데이터는 이미 지워진, 즉 더 이상 유효하지 않은 데이터를 가능성이 있다. 이 경우, FTL의 입장에서는 데이터 블록(PBN0)에 쓰여진 데이터가 유효한지 아니면 무효한지의 여부를 전혀 알 수 없다. 즉, 데이터 블록(PBN0)의 유효한 페이지들은 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 무효한 페이지일 수 있다. 예를 들면, 데이터 블록(PBN0)의 두번째 유효한 페이지에 쓰여진 파일이 파일 시스템 관점에서 이미 지워진 데이터라고 하면, 해당 페이지의 머지 동작은 파일 시스 템 관점에서 불필요한 동작이 된다.
머지 동작은 FTL의 필요에 의해 일어나는 동작이기 때문에 호스트는 머지 동작이 유발되는지 여부를 알 수 없다. 또한, 종래의 데이터 저장 장치에서 FTL은 파일 시스템의 정보를 참조하지 않기 때문에 머지 동작의 대상이 되는 데이터 블록의 해당 페이지가 파일 시스템 관점에서 유효한지 알 수 없다. 따라서 FTL은 데이터 블록의 해당 페이지에 대한 유효성 검사 없이 해당 페이지에 데이터가 존재하면 새로운 데이터 블록으로 머지 동작을 수행한다. 따라서 종래의 데이터 저장 장치의 머지 동작은 파일 시스템 관점에서 지워진 데이터를 복사함으로 인해 머지 동작에 불필요한 시간 낭비를 초래하는 문제점이 있다.
본 발명의 목적은 FAT 정보를 참조하여 선택적으로 머지 동작을 수행하는 데이터 저장 장치 및 그것의 머지 방법을 제공하는데 있다.
본 발명에 따른 데이터 저장 장치는 플래시 메모리와 컨트롤러를 포함한다. 상기 플래시 메모리는 FAT 정보를 저장한다. 그리고 상기 컨트롤러는 상기 FAT 정보를 읽고 머지 동작을 수행한다.
이 실시예에 있어서, 상기 컨트롤러는 머지 동작 시 상기 FAT 정보를 참조하여 상기 플래시 메모리에 저장된 데이터를 선택적으로 복사하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 컨트롤러는 상기 플래시 메모리의 데이터 블록에 저장된 데이터를 페이지 단위로 선택적으로 복사하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 컨트롤러는 상기 데이터 블록에 저장된 파일이 상기 FAT 정보에 할당된 경우에, 상기 파일을 저장한 페이지를 새로운 데이터 블록으로 복사하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 컨트롤러는 머지 동작 시 상기 데이터 블록에 저장된 파일이 삭제된 경우에, 상기 파일이 저장된 페이지를 새로운 데이터 블록으로 복사하지 않는 것을 특징으로 한다.
이 실시예에 있어서, 상기 컨트롤러는 상기 FAT 정보를 읽고 머지 동작을 수행하기 위한 플래시 변환 레이어를 저장하는 워크 메모리를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리 및 상기 컨트롤러는 메모리 카드를 구성하는 것을 특징으로 한다.
본 발명에 따른 데이터 저장 장치의 머지 방법은, a) 플래시 메모리의 FAT 영역을 읽는 단계; 및 b) 상기 FAT 영역을 참조하여 머지 동작을 수행하는 단계를 포함한다.
이 실시예에 있어서, 상기 머지 방법은, 상기 a) 단계 전에, 상기 플래시 메모리의 데이터 블록의 페이지를 논리 페이지로 변환하는 단계를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 b) 단계는, 상기 FAT 정보를 참조하여 상기 플래시 메모리에 저장된 데이터를 페이지 단위로 선택적으로 복사하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 b) 단계는, 상기 플래시 메모리의 데이터 블록에 저장된 파일이 상기 FAT 정보에 할당된 경우에, 상기 파일을 저장한 페이지를 새로운 데이터 블록으로 복사하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 머지 방법은, 상기 데이터 블록에 저장된 파일이 상기 FAT 정보에 할당되어 있지 않은 경우에, 상기 파일이 저장된 페이지를 새로운 데이터 블록으로 복사하지 않는 것을 특징으로 한다. 여기에서, 상기 FAT 정보에 할당되어 있지 않은 경우는 해당 페이지에서 파일이 삭제된 경우인 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다. 도 4에 도시된 메모리 시스템(400)은 호스트(100) 및 데이터 저장 장치(200)를 포함한다.
상기 호스트(100)의 입장에서 볼 때, 상기 데이터 저장 장치(200)는 마치 하드 디스크처럼 읽기(read), 쓰기(write), 그리고 소거(erase) 동작이 자유로운 저장 매체로 인식된다. 상기 데이터 저장 장치(200)는 데이터를 저장하는 플래시 메 모리(210)와 상기 호스트(100)와 상기 플래시 메모리(210)에서 인터페이스 역할을 하는 컨트롤러(220)를 포함한다.
상기 플래시 메모리(210)는 바람직하게는 낸드 플래시 메모리이다. 낸드 플래시 메모리는, 이 기술분야에서 통상의 지식을 가진 자에게 잘 알려진 바와 같이, 스트링 구조(string structure)를 갖는 많은 수의 메모리 셀들(memory cells)로 이루어진다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 낸드 플래시 메모리의 메모리 셀 어레이는 복수개의 블록들(Blocks)로 구성된다. 각각의 블록은 복수개의 페이지들(Pages)로 구성된다. 각각의 페이지는 하나의 워드라인을 공유하는 복수개의 메모리 셀들(Memory Cells)로 구성된다. 낸드 플래시 메모리는 블록 단위로 소거 동작이 이루어지며, 페이지 단위로 읽기 및 쓰기 동작이 이루어진다.
이와 같이 낸드 플래시 메모리는 읽기 및 쓰기 동작의 단위와 소거 동작의 단위가 다른 특성을 가지고 있다. 또한 낸드 플래시 메모리는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는 특성을 가지고 있다. 따라서 낸드 플래시 메모리는 쓰기 동작을 수행하기 전에 반드시 소거 동작을 수행하게 된다. 낸드 플래시 메모리의 이러한 특성들로 인해, 본 발명에 따른 데이터 저장 장치(200)는 상기 플래시 메모리(210)를 하드 디스크처럼 사용하기 위해서는 읽기, 쓰기, 그리고 소거 동작의 단위에 대한 관리가 별도로 필요하다. 플래시 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 이러한 목적으로 개발된 시스템 소프트웨어이다.
도 4를 참조하면, 상기 플래시 메모리(210)는 FAT 영역(211) 이외에 데이터 영역(212), 로그 영역(213), 그리고 메타 영역(214)을 포함한다.
상기 FAT 영역(211)에는 파일 할당 테이블(File Allocation Table; 이하 FAT라 함) 정보가 저장되어 있다.
상기 로그 영역(213)의 로그 블록들은 앞에서 설명한 로그 사상 기법에 따라 상기 데이터 영역(212)의 데이터 블록들 중 일부 데이터 블록들에 각각 지정된다. 즉, 상기 데이터 영역(212)의 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 데이터 블록에 직접 쓰여지는 것이 아니라 상기 로그 영역(213)의 대응하는 로그 블록에 저장된다.
그러나 상기 데이터 영역(212)의 데이터 블록에 대응하는 상기 로그 영역(213)의 로그 블록이 지정되어 있지 않은 경우, 또는 상기 로그 영역(213)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 상기 호스트(100)의 요청이 있는 경우에는 머지 동작이 수행된다. 머지 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록 또는 로그 블록으로 복사된다. 머지 동작이 수행되면, 사상 정보가 변경되는데, 변경된 사상 정보는 메타 영역(214)에 저장된다.
상기 컨트롤러(220)는 상기 호스트(100)로부터 액세스 요청이 있을 때 상기 플래시 메모리(200)를 제어하도록 구성된다. 도 4에 도시된 바와 같이, 상기 컨트롤러(220)는 제어로직(221)과 워크 메모리(work memory)(222)를 포함한다. 상기 워크 메모리(222)에는 플래시 변환 레이어(FTL)가 저장된다. 상기 제어로직(221)은 상기 호스트(100)로부터의 액세스 요청이 있을 때, 상기 워크 메모리(222)에 저장된 플래시 변환 레이어(FTL)가 동작하도록 한다.
도 5는 본 발명에 따른 데이터 저장 장치의 머지 방법을 보여주는 개념도이다. 도 5를 참조하면, 로그 블록(510)의 유효한 페이지(511, 513) 및 데이터 블록(520)의 유효한 페이지(522)는 새로운 데이터 블록(530)으로 복사된다. 로그 블록(510)의 제 1 및 제 3 페이지(511, 513)는 새로운 데이터 블록(530)의 제 1 및 제 3 페이지(531, 533)로 각각 복사된다. 그리고 데이터 블록(520)의 제 2 페이지(522)는 새로운 데이터 블록(530)의 제 2 페이지(532)로 복사된다.
여기에서, 본 발명에 따른 데이터 저장 장치의 머지 방법은 FAT 정보(540)를 참조하여 데이터 블록(520)의 유효한 페이지들을 선택적으로 새로운 데이터 블록(530)으로 복사한다.
도 5를 참조하면, 플래시 메모리(도 4 참조)(210)에 저장된 FAT 정보(540)는 데이터 블록(520)의 해당 페이지의 할당(Allocation) 여부에 대한 정보를 저장한다. 예를 들어, 데이터 블록(520)의 제 1 페이지(521)는 파일을 저장하는데 사용되지 않은 페이지이므로, FAT 정보(540)에 NA(Not Allocation)로 표시되어 있다. 데이터 블록(520)의 제 2 페이지(522)는 파일을 저장하고 있는 유효한 페이지이므로, FAT 정보(540)에 할당(Allocate)을 나타내는 A로 표시되어 있다. 데이터 블록(520)의 제 3 및 제 5 페이지(523, 525)에 해당하는 FAT 정보(540)에는 NA로 표시되어 있다. 그리고 데이터 블록(520)의 제 4 페이지(524)는 파일을 저장하고 있는 유효한 페이지이지만, 파일 시스템 관점에서는 지워진 페이지이므로 삭제(Delete)를 나 타내는 D로 표시되어 있다. 즉, 데이터 블록(520)의 제 4 페이지(524)에 저장된 데이터는 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 삭제된 더 이상 유효하지 않은 페이지이다. 따라서 데이터 블록(520)의 제 4 페이지(524)가 파일 시스템 관점에서 지워진 데이터를 가지고 있다면, 해당 페이지의 데이터는 새로운 데이터 블록(530)으로 복사되지 않는다.
따라서 본 발명에 따른 데이터 저장 장치의 머지 동작은 FAT 정보를 참조하여 더 이상 유효하지 않은 데이터의 머지 동작을 방지하는데 있다. 본 발명에 따른 데이터 저장 장치의 머지 동작은 파일 시스템 관점에서 필요하지 않은 페이지의 복사를 수행하지 않음으로써 전체 머지 동작 시간을 줄일 수 있다.
도 6은 본 발명에 따른 데이터 저장 장치의 선택적 머지 방법을 보여주는 순서도이다.
S610 단계에서는, 새로운 데이터 블록(도 5 참조)(530)의 물리적 페이지를 논리적 페이지로 변환한다. S620 단계에서는, FTL이 플래시 메모리(도 4 참조)(210)의 FAT 영역(211)에서 FAT 정보를 읽는다. S630 단계에서는, FAT 정보를 참조하여 데이터 블록의 해당 페이지가 복사의 대상이 되는 유효한 페이지인지를 판단한다. 즉, FAT 영역의 해당 페이지가 파일을 저장하는데 할당되어 있는지를 판단한다. 만약, 파일이 저장되어 있지 않은 페이지이거나 삭제된 페이지이면, 새로운 데이터 블록으로 복사하지 않고 다음 단계(S650)를 진행한다. S640 단계에서는, 데이터 블록의 해당 페이지가 파일이 저장되어 있는 유효한 페이지이면, 새로운 데이터 블록으로 복사를 한다. S650 단계에서는, 데이터 블록의 나머지 페이지에 대해 서 S630 단계 내지 S640 단계를 반복 수행한다. 데이터 블록의 페이지 복사가 모두 수행된 다음에는, 로그 블록의 페이지 복사를 수행하고 머지 동작을 종료한다.
이상에서 살펴 본 바와 같이, 본 발명에 따른 데이터 저장 장치 및 그것의 머지 방법은 데이터를 복사하는 과정에서 FAT 정보를 참조하여 파일 시스템 관점에서 유효하지 않는 데이터의 복사를 방지하여 머지 동작 시간을 줄인다. 머지 동작에서 가장 많은 시간을 소요하는 부분은 데이터 블록의 페이지 데이터를 복사하는 구간이다. 본 발명은 데이터 블록의 페이지에 대해 선택적으로 복사를 함으로써 복사 구간의 시간을 줄인다.
예를 들어, 로그 블록에 유효한 페이지가 x개이고, 데이터 블록에 데이터가 존재하는 페이지가 y개이며, 한 페이지를 복사하는데 소요되는 시간을 z라고 하면, 머지 동작에 소요되는 전체 시간은 (x+y)*z가 된다. 이때 파일 시스템의 관점에서 삭제된 페이지의 수가 i개라고 하면, 머지 수행 시간 중에서 i*z 시간은 불필요한 시간이라고 할 수 있다. 따라서 본 발명에 따른 데이터 저장 장치 및 머지 방법에 의해 줄어 든 머지 수행 시간은 (i*z-(FAT 영역을 읽는 시간))이 된다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
이상에서 살펴본 바와 같이, 본 발명에 따른 데이터 저장 장치 및 그것의 머지 방법에 의하면, FAT 정보를 참조하여 데이터 블록의 페이지를 선택적으로 복사함으로써 전체 머지 동작 시간을 줄일 수 있다.

Claims (14)

  1. 하나 또는 그 이상의 데이터 블록, 상기 데이터 블록에 대응하는 로그 블록, 그리고 상기 데이터 블록의 해당 페이지의 할당 여부에 대한 정보(이하, FAT 정보라 함)를 저장하는 FAT 영역을 포함하는 플래시 메모리; 및
    머지 동작 시에, 상기 FAT 정보를 참조하여 상기 데이터 블록의 해당 페이지를 새로운 데이터 블록으로 선택적으로 복사하기 위한 컨트롤러를 포함하되,
    상기 컨트롤러는 상기 데이터 블록의 해당 페이지가 파일 시스템 관점에서 삭제된 경우에는 상기 새로운 데이터 블록으로의 복사를 차단하는 데이터 저장 장치.
  2. 제 1 항에 있어서,
    상기 컨트롤러는 상기 데이터 블록에 대응하는 로그 블록이 지정되어 있지 않거나 상기 로그 블록에 빈 페이지(empty page)가 없는 경우에 상기 머지 동작을 수행하는 데이터 저장 장치.
  3. 제 2 항에 있어서,
    상기 컨트롤러는 상기 데이터 블록에 저장된 데이터를 페이지 단위로 복사하는 데이터 저장 장치.
  4. 제 3 항에 있어서,
    상기 컨트롤러는 상기 데이터 블록에 저장된 파일이 상기 FAT 정보에 할당된 경우에, 상기 파일을 저장한 페이지를 새로운 데이터 블록으로 복사하는 데이터 저장 장치.
  5. 제 3 항에 있어서,
    상기 컨트롤러는 머지 동작 시에 상기 데이터 블록에 저장된 파일이 삭제된 경우에, 상기 파일이 저장된 페이지를 새로운 데이터 블록으로 복사되는 것을 차단하는 데이터 저장 장치.
  6. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 FAT 정보를 읽고 머지 동작을 수행하기 위한 플래시 변환 레이어를 저장하는 워크 메모리를 포함하는 것을 특징으로 하는 데이터 저장 장치.
  7. 제 1 항에 있어서,
    상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 데이터 저장 장치.
  8. 제 1 항에 있어서,
    상기 플래시 메모리 및 상기 컨트롤러는 메모리 카드를 구성하는 것을 특징으로 하는 데이터 자장 장치.
  9. 데이터 저장 장치의 머지 방법에 있어서:
    상기 데이터 저장 장치는 하나 또는 그 이상의 데이터 블록, 상기 데이터 블록에 대응하는 로그 블록, 그리고 상기 데이터 블록의 해당 페이지의 할당 여부에 대한 정보(이하, FAT 정보라 함)를 저장하는 FAT 영역을 갖는 플래시 메모리를 포 함하고,
    상기 데이터 저장 장치의 머지 방법은
    a) 상기 플래시 메모리에 저장된 FAT 정보를 읽는 단계; 및
    b) 상기 FAT 정보를 참조하여 상기 데이터 블록의 해당 페이지를 새로운 데이터 블록으로 선택적으로 복사하는 단계를 포함하되,
    상기 데이터 블록의 해당 페이지가 파일 시스템 관점에서 삭제된 경우에는 상기 새로운 데이터 블록으로의 복사를 차단하는 머지 방법.
  10. 제 9 항에 있어서,
    상기 a) 단계 전에, 상기 플래시 메모리의 데이터 블록의 페이지를 논리 페이지로 변환하는 단계를 더 포함하는 것을 특징으로 하는 머지 방법.
  11. 제 9 항에 있어서,
    상기 머지 동작은 상기 데이터 블록에 대응하는 로그 블록이 지정되어 있지 않거나, 상기 로그 블록에 빈 페이지(empty page)가 없는 경우에 수행되는 머지 방법.
  12. 제 9 항에 있어서,
    상기 b) 단계는, 상기 플래시 메모리의 데이터 블록에 저장된 파일이 상기 FAT 정보에 할당된 경우에, 상기 파일을 저장한 페이지를 새로운 데이터 블록으로 복사하는 것을 특징으로 하는 머지 방법.
  13. 제 12 항에 있어서,
    상기 데이터 블록에 저장된 파일이 상기 FAT 정보에 할당되어 있지 않은 경우에, 상기 파일이 저장된 페이지를 새로운 데이터 블록으로 복사하지 않는 것을 특징으로 하는 머지 방법.
  14. 제 13 항에 있어서,
    상기 FAT 정보에 할당되어 있지 않은 경우는, 해당 페이지에서 파일이 삭제된 경우인 것을 특징으로 하는 머지 방법.
KR1020050010750A 2004-12-21 2005-02-04 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 Expired - Fee Related KR100684887B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020050010750A KR100684887B1 (ko) 2005-02-04 2005-02-04 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US11/319,281 US7487303B2 (en) 2005-02-04 2005-12-29 Flash memory device and associated data merge method
DE102006003261A DE102006003261A1 (de) 2005-02-04 2006-01-19 Speichersystem und Verfahren zur Datenzusammenführung
JP2006016686A JP2006216036A (ja) 2005-02-04 2006-01-25 フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法
US12/347,243 US20090172269A1 (en) 2005-02-04 2008-12-31 Nonvolatile memory device and associated data merge method
US12/775,767 US8122193B2 (en) 2004-12-21 2010-05-07 Storage device and user device including the same
US13/365,485 US8533391B2 (en) 2004-12-21 2012-02-03 Storage device and user device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050010750A KR100684887B1 (ko) 2005-02-04 2005-02-04 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법

Publications (2)

Publication Number Publication Date
KR20060089491A KR20060089491A (ko) 2006-08-09
KR100684887B1 true KR100684887B1 (ko) 2007-02-20

Family

ID=36776360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050010750A Expired - Fee Related KR100684887B1 (ko) 2004-12-21 2005-02-04 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법

Country Status (4)

Country Link
US (1) US7487303B2 (ko)
JP (1) JP2006216036A (ko)
KR (1) KR100684887B1 (ko)
DE (1) DE102006003261A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101079937B1 (ko) 2009-03-17 2011-11-04 가부시끼가이샤 도시바 컨트롤러 및 메모리 시스템

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101404083B1 (ko) 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US7594067B2 (en) * 2005-10-20 2009-09-22 Stec, Inc. Enhanced data access in a storage device
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
WO2008127458A2 (en) 2006-12-06 2008-10-23 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a shared, front-end, distributed raid
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
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
US8510533B2 (en) 2006-12-27 2013-08-13 Intel Corporation Method of managing data on a non-volatile memory
US8095723B2 (en) * 2007-02-16 2012-01-10 Electronics And Telecommunications Research Institute Log-based flash translation layer and operating method thereof
US9207876B2 (en) * 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
WO2009017289A1 (en) * 2007-07-27 2009-02-05 Lg Electronics Inc. Method for emulating optical disk, optical disk drive using the same, and optical disk including security zone
KR20090012010A (ko) 2007-07-27 2009-02-02 엘지전자 주식회사 광디스크 에뮬레이션 방법 및 이를 이용한 광디스크드라이브
JP5034754B2 (ja) * 2007-08-06 2012-09-26 パナソニック株式会社 記録媒体複製装置及び記録媒体複製方法
JP5010444B2 (ja) * 2007-11-29 2012-08-29 株式会社東芝 半導体記憶装置およびその駆動方法
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
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
KR101465789B1 (ko) * 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
KR101017067B1 (ko) * 2008-04-08 2011-02-25 재단법인서울대학교산학협력재단 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
DE102008059352A1 (de) * 2008-11-27 2010-06-02 Giesecke & Devrient Gmbh Speicherzugriff auf einen portablen Datenträger
US9098396B2 (en) * 2009-02-13 2015-08-04 Sandisk Il Ltd. Enhancement of efficiency in power failure handling in flash memory
TWI402747B (zh) * 2009-02-17 2013-07-21 E Ten Information Sys Co Ltd 合併資料的方法及其電子裝置與電腦程式產品
KR101574540B1 (ko) 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
CN101930387A (zh) * 2009-06-19 2010-12-29 上海惠普有限公司 用于更新压缩只读文件系统的改进的容错方法及装置
WO2011031796A2 (en) 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for caching data on a solid-state storage device
CN102598019B (zh) 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
WO2011031900A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
TWI446349B (zh) * 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
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
TWI579692B (zh) 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
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
US8527693B2 (en) 2010-12-13 2013-09-03 Fusion IO, Inc. Apparatus, system, and method for auto-commit 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
KR20120067136A (ko) * 2010-12-15 2012-06-25 삼성전자주식회사 전자 장치 및 이에 적용되는 파일 삭제 방지 방법
TWI553654B (zh) * 2010-12-16 2016-10-11 群聯電子股份有限公司 資料管理方法、記憶體控制器與記憶體儲存裝置
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc 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
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
TW201310235A (zh) * 2011-08-24 2013-03-01 Novatek Microelectronics Corp 記憶體裝置及其寫入方法
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
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
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
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
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
US9268635B2 (en) * 2014-05-21 2016-02-23 Sandisk Technologies Inc. Error correction using multiple data sources
TWI539282B (zh) 2014-10-13 2016-06-21 慧榮科技股份有限公司 非揮發性儲存裝置與控制器
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
US10318185B2 (en) * 2016-07-01 2019-06-11 Intel Corporation Method and apparatus to provide both storage mode and memory mode access to non-volatile memory within a solid state drive
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
CN110069455B (zh) * 2017-09-21 2021-12-14 北京华为数字技术有限公司 一种文件合并方法及装置
US10997066B2 (en) 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
US11755237B2 (en) * 2021-08-31 2023-09-12 Micron Technology, Inc. Overwriting at a memory system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010110073A (ko) * 2000-06-06 2001-12-12 가나이 쓰토무 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
KR20020092487A (ko) * 2001-06-04 2002-12-12 삼성전자 주식회사 플래시 메모리 관리방법
KR20030061948A (ko) * 2002-01-14 2003-07-23 엘지전자 주식회사 정보 저장 장치 및 그를 이용한 파일 관리 방법
JP2003308234A (ja) 2002-02-18 2003-10-31 Matsushita Electric Ind Co Ltd ファイル再生装置及びファイル再生方法
JP2004118989A (ja) * 2002-09-30 2004-04-15 Sony Corp 再生装置および方法、記録媒体、並びにプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3727982B2 (ja) * 1995-09-28 2005-12-21 キヤノン株式会社 フラッシュrom管理方法及び装置
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
KR100330164B1 (ko) 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2003015928A (ja) 2001-07-04 2003-01-17 Nec System Technologies Ltd フラッシュメモリのデータ格納装置及びそれに用いるデータ格納方法
JP4812192B2 (ja) * 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US7234036B1 (en) * 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7181611B2 (en) * 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010110073A (ko) * 2000-06-06 2001-12-12 가나이 쓰토무 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
KR20020092487A (ko) * 2001-06-04 2002-12-12 삼성전자 주식회사 플래시 메모리 관리방법
KR20030061948A (ko) * 2002-01-14 2003-07-23 엘지전자 주식회사 정보 저장 장치 및 그를 이용한 파일 관리 방법
JP2003308234A (ja) 2002-02-18 2003-10-31 Matsushita Electric Ind Co Ltd ファイル再生装置及びファイル再生方法
JP2004118989A (ja) * 2002-09-30 2004-04-15 Sony Corp 再生装置および方法、記録媒体、並びにプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101079937B1 (ko) 2009-03-17 2011-11-04 가부시끼가이샤 도시바 컨트롤러 및 메모리 시스템

Also Published As

Publication number Publication date
US7487303B2 (en) 2009-02-03
KR20060089491A (ko) 2006-08-09
US20060179263A1 (en) 2006-08-10
DE102006003261A1 (de) 2006-08-24
JP2006216036A (ja) 2006-08-17

Similar Documents

Publication Publication Date Title
KR100684887B1 (ko) 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
JP4988215B2 (ja) 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム
KR100568115B1 (ko) 점진적 머지 방법 및 그것을 이용한 메모리 시스템
KR100389867B1 (ko) 플래시 메모리 관리방법
JP5221332B2 (ja) メモリシステム
US7516295B2 (en) Method of remapping flash memory
US7386700B2 (en) Virtual-to-physical address translation in a flash file system
JP2006221636A (ja) Run単位アドレスマッピングテーブル及びそれの構成方法
KR20120115243A (ko) 고체-상태 매체들을 포함하는 디바이스들을 위한 파일 관리 시스템
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
KR100882740B1 (ko) 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
TW201222249A (en) Storage device
JP5338859B2 (ja) 記憶装置および情報処理システム
KR100845552B1 (ko) Ftl의 어드레스 매핑 방법
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
KR20090047880A (ko) 비휘발성 메모리의 관리 방법 및 관리 시스템
JP5264459B2 (ja) 半導体記憶装置
KR20080038613A (ko) 플래시메모리 관리방법
KR20090113624A (ko) 솔리드 스테이트 드라이브 및 그 동작 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

FPAY Annual fee payment

Payment date: 20120131

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20130214

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20130214