KR20100056750A - 불휘발성 메모리 시스템 및 그것의 액세스 방법 - Google Patents

불휘발성 메모리 시스템 및 그것의 액세스 방법 Download PDF

Info

Publication number
KR20100056750A
KR20100056750A KR1020080115711A KR20080115711A KR20100056750A KR 20100056750 A KR20100056750 A KR 20100056750A KR 1020080115711 A KR1020080115711 A KR 1020080115711A KR 20080115711 A KR20080115711 A KR 20080115711A KR 20100056750 A KR20100056750 A KR 20100056750A
Authority
KR
South Korea
Prior art keywords
write
file system
translation layer
user data
flash translation
Prior art date
Application number
KR1020080115711A
Other languages
English (en)
Other versions
KR101543431B1 (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 KR1020080115711A priority Critical patent/KR101543431B1/ko
Priority to US12/621,324 priority patent/US8370563B2/en
Priority to CN200910224797.2A priority patent/CN101901114B/zh
Publication of KR20100056750A publication Critical patent/KR20100056750A/ko
Application granted granted Critical
Publication of KR101543431B1 publication Critical patent/KR101543431B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 플래시 변환 계층을 사용하는 불휘발성 메모리의 액세스 방법은, (a) 파일 시스템으로부터 데이터의 쓰기 요청을 받는 단계; 그리고 (b) 상기 쓰기 요청에 응답하여 상기 플래시 변환 계층이 상기 데이터를 불휘발성 메모리 장치에 쓰는 단계를 포함하되, 상기 플래시 변환 계층은 상기 데이터에 대한 컨펌 정보의 기입 여부를 상기 파일 시스템으로부터 제공받는다.

Description

불휘발성 메모리 시스템 및 그것의 액세스 방법{NON-VOLATILE MEMROY SYSTEM AND ACCESS METHOD THEREOF}
본 발명은 불휘발성 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치를 액세스하기 위한 파일 시스템과 플래시 변환 계층에 관한 것이다.
일반적으로, 운영 체제(Operating System: OS)는 자신이 설치된 시스템상에 존재하는 데이터를 관리하기 위해 파일 시스템(File system)을 사용한다. 파일 시스템이란 파일을 관리하기 위해 가장 먼저 구성되어야 하는 논리적인 구조이다. 예를 들어, 마이크로 소프트 윈도 운영 체제(Microsoft Windows OS)에서의 포맷(Format) 명령은 이러한 파일 시스템을 만들고 초기화하는 과정이다. 이와 같이 파일 시스템이 생성된 후에야, 사용자는 비로소 파일을 저장하거나 삭제할 수 있게 된다. 그런데 파일 시스템은 운영 체제(OS)에 따라서 그 종류가 매우 다양하다. 마이크로소프트(Microsoft) 사의 윈도(Windows) 계열의 운영 체제에서는 FAT(File Allocation Table) 또는 NTFS(New Technology File System)라는 파일 시스템이, 유닉스/리눅스(Unix/Linux) 계열의 운영 체제에서는 UFS(Unix File System), EXT2(Extended 2), EXT3(Extended 3), JFS(Journaling File System) 등 다양한 파일 시스템이 존재한다.
또한, 파일 시스템에 의해서 생성된 파일의 저장 매체로서 플래시 메모리가 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크 대신 플래시 메모리가 저장장치로서 널리 사용되고 있다. 그러나 플래시 메모리에 데이터를 기입하기 위해서는 소거 동작이 반드시 선행되어야 하며, 기입되는 데이터의 단위보다 삭제되는 데이터의 단위가 크다는 특징이 있다. 이러한 특징은 플래시 메모리를 주 메모리로 사용하는 것을 어렵게 할 뿐만 아니라, 플래시 메모리가 보조기억장치로 사용되는 경우에도 일반 하드디스크용 파일 시스템(File System)을 그대로 활용하는 것을 저해하는 요인이 된다. 따라서, 플래시 메모리의 삭제 연산을 감추기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(flash translation layer; 이하, FTL이라 칭함)이 사용된다. FTL은, 플래시 메모리의 기입 동작시, 파일 시스템이 생성한 논리 주소를 삭제 연산이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행한다. FTL의 어드레스 맵핑 기능으로 인해, 호스트는 플래시 메모리 장치를 하드디스크 드라이버(또는 SRAM)로 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다.
본 발명의 목적은 불휘발성 메모리 장치로의 데이터 쓰기 동작의 성능을 높일 수 있는 방법 및 메모리 시스템을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따르면, 플래시 변환 계층을 사용하는 불휘발성 메모리의 액세스 방법은, (a) 파일 시스템으로부터 데이터의 쓰기 요청을 받는 단계; 그리고 (b) 상기 쓰기 요청에 응답하여 상기 플래시 변환 계층이 상기 데이터를 불휘발성 메모리 장치에 쓰는 단계를 포함하되, 상기 플래시 변환 계층은 상기 데이터에 대한 컨펌 정보의 기록 여부를 상기 파일 시스템으로부터 제공받는다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 플래시 변환 계층을 사용하는 휘발성 메모리의 액세스 방법은, (a) 쓰기 요청에 응답하여 유저 데이터와 복수의 메타 데이터들을 포함하는 파일을 생성하는 단계; 그리고 (b) 상기 유저 데이터 또는 상기 복수의 메타 데이터들을 상기 불휘발성 메모리 장치에 기입하도록 상기 플래시 변환 계층에 요청하되, 상기 유저 데이터 또는 상기 복수의 메타 데이터들의 속성에 따라 상기 플래시 변환 계층이 상기 불휘발성 메모리에 기입하는 컨펌 정보의 기입 여부를 지시하는 단계를 포함하되, 상기 플래시 변환 계층은 상기 지시에 따라서 상기 유저 데이터 또는 상기 복수의 메타 데이터들에 대한 컨펌 정보를 기입한다.
상기 목적을 달성하기 위한 본 발명의 메모리 시스템은, 파일 시스템(File system)이 구동되는 호스트; 상기 호스트로부터의 제공되는 파일을 저장하기 위한 불휘발성 메모리 장치; 그리고 상기 호스트의 파일 쓰기 요청을 상기 불휘발성 메모리 장치의 쓰기 요청으로 변환하는 메모리 컨트롤러를 포함하되, 상기 파일을 상기 불휘발성 메모리 장치로 쓰는 동작시, 상기 메모리 컨트롤러는 상기 파일을 구성하는 복수의 데이터들 각각에 대응하는 컨펌 정보를 상기 호스트로부터의 지시에 따라 선택적으로 기입한다.
이상과 같은 본 발명에 따른 방법 및 메모리 시스템에 따르면, 플래시 변환 계층의 연산 횟수가 감소하여 메모리 시스템의 쓰기 성능을 높일 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 쓰기 요청된 데이터의 불휘발성 메모리 장치로의 기입이 완료되었음을 컨펌 정보(Confirm Mark)에 대해서 기술될 것이다. 컨펌 정보(Confirm Mark)는 쓰기 동작중에 발생하는 비정상적인 전원 오류를 복구하기 위한 데이터이다. 컨펌 정보(Confirm Mark)는 파일 시스템으로부터 요청된 쓰기 요청에 대해 플래시 변환 계층의 트랜잭션에 해당하는 데이터의 쓰기가 완료되었음을 불휘발성 메모리 장치에 마킹하는 정보이다. 컨펌 정보의 기록 여부에 따라 플래시 변환 계층 은 데이터에 대한 정상적인 기록 또는 비정상적인 기록으로 판단하게 될 것이다.
본 발명의 특징 및 기능을 설명하기 위한 파일 시스템(File system)으로 FAT32를 한 예로서 사용할 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 플래시 메모리를 저장 매체로 사용하는 컴퓨터 시스템의 파일 시스템 아키텍처를 간략히 보여주는 블록도이다. 도 1을 참조하면, 플래시 파일 시스템(Flash file system)은 애플리케이션 프로그램(10)과 그에 따라 파일을 생성하고 관리하기 위한 파일 시스템(20), 플래시 변환 계층(30)으로 구성된다. 이러한 단계를 경유하여 불휘발성 메모리 장치(40)로의 액세스가 이루어진다.
애플리캐이션 프로그램(10)은 시스템에 장착되는 특정 목적을 위한 프로그램이다. 애플리캐이션 프로그램(10)의 동작에 따라 파일 시스템(20)은 파일의 생성 및 저장을 실행한다. 파일 시스템(20)은 자료를 계층적으로 저장, 탐색, 접근, 조작하기 위한 추상적 자료 구조의 집합으로 정의된다. 본 발명의 파일 시스템(20)은 하나의 파일을 생성하기 위해 사용자(User)로부터 제공받은 유저 데이터(User data)와 유저 데이터에 대한 제어 정보를 가진 메타 데이터(Meta data)를 생성한다. 플래시 변환 계층(30)은 파일 시스템(20)으로부터의 액세스 요청(섹터 단위)에 응답하여 불휘발성 메모리 장치(40)의 액세스 단위(블록, 페이지 단위)로 데이터를 기입하거나 읽어낸다.
앞서 간략히 설명된 바와 같이, 파일 시스템(20)이 관리하는 데이터는 유저 데이터(User data)와 유저 데이터(User data)를 관리하기 위한 메타 데이터(Meta data)로 분류된다. 유저 데이터(User data)는 애플리케이션(10)이나 유저에 의해서 쓰기 요청된 데이터를 의미한다. 쓰기 요청에 따라, 하나의 파일을 생성하기 위해서는 FAT 테이블, 디렉토리 엔트리(Directory Entry), 복구를 위한 로그 정보(Log information) 등과 같은 메타 데이터(Meta data)가 기록되어야 한다. 파일 시스템(20)은 하나의 파일을 생성하여 불휘발성 메모리 장치(40)에 기입하기 위하여 파일 단위로 유저 데이터(User data)와 메타 데이터(Meta data)를 플래시 변환 계층(30)으로 전달한다. 그러면, 플래시 변환 계층(30)은 로직 어드레스(Logical Address)와 함께 제공되는 유저 데이터(User data)와 메타 데이터(Meta data)를 물리 어드레스(Physical Address)로 변환하여 불휘발성 메모리 장치(40)에 기입한다. 플래시 변환 계층(30)의 액세스 단위는 페이지(Page) 또는 블록(Block)이다. 플래시 변환 계층(30)은 불휘발성 메모리 장치(40)에 액세스 단위의 데이터를 기입한 후에 컨펌 정보(Confirm mark)를 기록한다. 불휘발성 메모리 장치(40)에 프로그램된 데이터에 대응하는 컨펌 정보(Confirm Mark)는 하나의 페이지(page) 또는 하나의 섹터(sector) 또는 특정 사이즈의 데이터 복구를 위한 정보로 사용될 수 있다. 즉, 프로그램 동작 중에 발생하는 전원 오류(Power failure)와 같은 상황에서 컨펌 정보(Confirm Mark)가 포함된 프로그램 데이터는 유효한 데이터(Valid data)로 판 단될 수 있다. 본 발명의 플래시 변환 계층(30)은 모든 쓰기 요청에 대해서 컨펌 정보(Confirm Mark)를 기입하지 않고, 파일 시스템(20)으로부터 지정된 데이터 단위에 대해서만 컨펌 정보(Confirm Mark)를 기입한다. 이러한 컨펌 정보(Confirm Mark)의 기입 방법에 따라 본 발명의 메모리 시스템은 쓰기 연산의 오버헤드(Overhead)를 줄일 수 있다.
도 2는 상술한 파일 시스템(20, 도 1 참조)에 의해서 제어되는 플래시 변환 계층(30)의 컨펌 정보(Confirm Mark)의 기입 시점을 보여주는 다이어그램이다. 도 2를 참조하여, 하나의 파일에 대한 불휘발성 메모리 장치(40)에 프로그램되기까지의 과정이 단계별로 설명될 것이다.
(a) 단계는 유저(User)나 애플리케이션 프로그램으로부터 하나의 파일에 대한 쓰기 요청을 보여준다. 애플리케이션이나 유저로부터 쓰기 요청되는 파일은 하나의 유저 데이터(110)로 구성되는 것으로 가정한다. 파일 시스템(20)은 쓰기 요청된 파일을 오픈하고, 요청된 쓰기 동작을 완료한 이후에 파일을 닫을 것이다. 여기서, 오픈된 파일명은 이미 불휘발성 메모리 장치(40)에 존재하는 파일일 수도 있고, 새롭게 지정되는 파일일 수도 있다. 이처럼 파일 시스템(20)의 목적은 쓰기 요청된 하나의 파일을 불휘발성 메모리 장치(40)에 안전하게 기록하는 것이다.
(b) 단계에서, 쓰기 요청되는 하나의 파일(110)은 파일 시스템(20)에 의해서 파일명(File name)과 파일 크기(File size)를 할당받는다. 특히, 파일 시스템(20)은 유저 데이터(110)로부터 파일을 관리하고 제어하기 위한 복수의 메타 데이터(Meta1, Meta2)를 생성한다. 메타 데이터(120, 130)들은 유저 데이터(110)에 대 한 제어 정보, 에러의 발생 시에 필요한 복구 정보 등이 포함된다.
(c) 단계에서는 파일 시스템(20)이 플래시 변환 계층(30)으로 전달하는 쓰기 요청의 방법을 보여준다. 파일 시스템(20)은 메타 데이터들(120, 130) 각각에 대한 쓰기 요청에 대해서 1회의 컨펌 정보(150, 160)들의 쓰기 요청을 플래시 변환 계층(30)으로 전달한다. 또한, 파일 시스템(20)은 유저 데이터(110)에 대해서도 1회의 컨펌 정보(Confirm Mark) 쓰기 요청을 플래시 변환 계층(30)으로 전달한다. 유저 데이터(110)의 파일 크기가 비록 크다 할지라도, 파일 시스템(20)은 쓰기 요청되는 유저 데이터(110)에 대해서 1회의 컨펌 정보(140)의 쓰기 요청을 할당한다.
(d) 단계에서는 상술한 파일 시스템(20)의 요청에 응답하여 플래시 변환 계층(30)의 불휘발성 메모리 장치(40)로의 쓰기 동작이 설명되고 있다. 파일 시스템으로부터 쓰기 요청된 유저 데이터(110)의 파일 사이즈가 불휘발성 메모리 장치(40)의 1회 트랜잭션 단위보다 크다면, 복수의 트랜잭션을 통하여 유저 데이터가 불휘발성 메모리 장치(40)에 프로그램될 것이다. 비교적 사이즈가 작은 메타 데이터(120)의 프로그램이 완료되면, 메타 데이터(120)에 대응하는 컨펌 정보(150)가 기입된다. 메타 데이터(130)의 프로그램이 완료되면, 메타 데이터(130)에 대응하는 컨펌 정보(160)가 기입된다. 반면에, 유저 데이터의 프로그램은 복수의 트랜잭션을 통해서 플래시 변환 계층에 전달된다. 즉, 트랜잭션 단위로 분할된 유저 데이터들(210, 220, 230)이 파일 시스템(20)으로부터 플래시 변환 계층(30)으로 전달될 것이다. 트랜잭션 단위로 분할된 서브 유저 데이터(210)에 대한 쓰기 요청 시, 파일 시스템(20)은 컨펌 정보(Confirm Mark)의 기입을 지시하지 않는다. 또한, 분할 된 서브 유저 데이터(220)의 쓰기 요청 시에도 파일 시스템(20)은 컨펌 정보(Confirm Mark)의 기입을 지시하지 않는다. 하지만, 쓰기 요청된 유저 데이터(110)의 마지막 서브 유저 데이터(230)의 쓰기 요청을 플래시 변환 계층(30)으로 전달할 때에는 컨펌 정보(240)를 기입하도록 지시한다. 따라서, 플래시 변환 계층(30)은 하나의 유저 데이터에 대해서 1회의 컨펌 정보(Confirm information)를 기입하게 된다.
컨펌 정보의 기입 시점을 파일 시스템(20)이 관리함으로써, 본 발명의 메모리 시스템에서 플래시 변환 계층(30)에 의한 무분별한 컨펌 정보의 기입이 차단된다. 따라서, 파일 시스템(20)에서 파일을 닫지 않은 무효(Invalid)한 파일이라 할지라도, 플래시 변환 계층(30)에서 기입된 컨펌 정보에 의해서 유효하게 관리되는 오버헤드가 본 발명의 쓰기 방식에 따라 차단될 수 있다.
도 3은 본 발명의 파일 시스템(20) 및 플래시 변환 계층(30)의 동작에 따라 불휘발성 메모리 장치(40)로 기입되는 데이터의 형태를 간략히 보여주는 도면이다. 도 3을 참조하면, 파일 시스템(20)은 쓰기 요청되는 유저 데이터(User data)로부터 메타 데이터(Meta data)를 생성한다. 메타 데이터(Meta data)로는 로그 정보(320), FAT 테이블(330), 디렉토리 엔트리(340) 등이 있다. 파일 시스템(20)은 플래시 변환 계층(30)으로 로그 정보(320)의 쓰기 요청 시에는 컨펌 정보(360)의 기입을 지시한다. 파일 시스템(20)은 플래시 변환 계층(30)으로 FAT 테이블(330)의 쓰기 요청 시에는 컨펌 정보(370)의 기입을 지시한다. 파일 시스템(20)은 플래시 변환 계층(30)으로 디렉토리 엔트리(340)의 쓰기 요청 시에는 컨펌 정보(380)의 기입을 지 시한다. 그리고, 파일 시스템(20)은 플래시 변환 계층(30)으로 복수의 서브 유저 데이터와 최후에 1회의 컨펌 정보가 기록되도록 인용번호 (310)과 같은 단위로 쓰기 요청을 발행한다. 각각의 서브 유저 데이터들(311, 312, 313)은 파일 시스템(20)과 플래시 변환 계층(30)의 1회 트랜잭션 처리량에 대응한다. 복수의 분할된 서브 유저 데이터들 중 마지막으로 쓰기 요청되는 서브 유저 데이터(313)가 기입되는 시점에 컨펌 정보(350)를 기입되도록 파일 시스템(20)은 플래시 변환 계층(30)으로 지시한다.
이러한 파일 시스템(20)과 플래시 변환 계층(30)의 유기적인 컨펌 정보(Confirm Mark)의 기입 결정은 하위 계층에서 독립적으로 실행하는 데이터의 보호 동작을 상위 계층으로 넘겨주는 것을 의미한다. 플래시 변환 계층(30)과 같은 하위 계층은 하나의 파일에 대한 쓰기 요청 시, 각 트랜잭션 단위로 전달되는 데이터들의 중요도와 가치를 알 수 없다. 따라서, 모든 데이터들을 동일한 가중치를 가지고 관리할 수밖에 없다. 이것은 메모리 시스템의 고속화를 방해하는 요소이다. 그러나, 하나의 파일을 구성하는 데이터들의 중요도를 결정하는 상위 계층에서 데이터 보호 동작의 일부를 위임 받음으로써, 데이터의 쓰기 횟수를 줄일 수 있다. 즉, 앞서 설명된 컨펌 정보(Confirm Mark)의 쓰기 횟수를 줄일 수 있다.
도 4는 본 발명의 파일 시스템과 플래시 변환 계층 간의 인터페이싱을 간략히 보여주는 블록도이다. 도 4를 참조하여, 파일 시스템(410)과 플래시 변환 계층(430)의 쓰기 요청과 쓰기 요청에 대응하는 플래시 변환 계층(430)의 응답이 간략히 설명될 것이다.
파일 시스템(410)은 하나의 파일의 생성이 완료되면, 파일의 생성에 따라 발생하는 유저 데이터(User data) 또는 메타 데이터(Meta data)를 쓰기 위한 쓰기 요청을 플래시 변환 계층(430)에 전달한다. 쓰기 요청 시, 파일 시스템(410)은 현재 쓰기 가능한 시작 섹터 번호(Start sector number)와 섹터 개수(Sector count)를 요청한다. 한 번의 쓰기 요청은 플래시 변환 계층(430) 입장에서는 한 번의 트랜잭션(Transaction)으로 처리된다. 파일 시스템(410)은 플래시 변환 계층(430)으로부터 받은 시작 섹터 번호 및 섹터 개수를 참조하여 한 번의 트랜잭션에 제공되는 데이터와 그리고 컨펌 정보(Confirm Mark)의 기입 여부를 알려준다. 메타 데이터의 쓰기 연산시, 파일 시스템(410)은 플래시 변환 계층(430)으로부터 받은 시작 섹터 번호 및 섹터 개수를 참조하여 메타 데이터를 쓰고 컨펌 정보(Confirm Mark)를 기입하도록 인터페이스 유닛(420)을 통하여 플래시 변환 계층(430)에 지시한다. 즉, 파일 시스템(410)은 플래시 변환 계층(430)으로부터 받은 시작 섹터 번호 및 섹터 개수를 참조하여 로그 정보, FAT 테이블, 디렉토리 엔트리 각각에 대응하는 데이터마다 컨펌 정보(Confirm Mark)를 쓰도록 플래시 변환 계층(430)에 지시한다. 그러나, 유저 데이터의 쓰기 요청에서, 파일 시스템(410)은 플래시 변환 계층(430)으로부터 받은 시작 섹터 번호 및 섹터 개수를 참조하여 분할된 서브 유저 데이터들 각각을 쓰되, 최종 서브 유저 데이터가 기입되는 트랜잭션에서만 컨펌 정보(Confirm Mark)를 쓰도록 플래시 변환 계층(430)에 지시한다. 이후에 설명되겠지만, 컨펌 정보(Confirm Mark)는 최종 서브 유저 데이터가 아니라 하더라도, 하나의 논리 블록을 초과하여 또 다른 논리 블록에 이어서 하나의 서브 유저 데이터가 기입되는 경 우에도 기입될 수 있다. 즉, 쓰기 동작중 하나의 블록이 종료되는 경우라면, 유저 데이터의 마지막 트랜잭션이 아니라 할지라도 컨펌 정보를 기입하여 이전까지 기입된 정보들을 보호할 수 있다.
플래시 변환 계층(430)은 파일 시스템(410)으로부터 컨펌 정보의 기입 여부에 대한 정보를 받기 위한 함수를 인터페이스 유닛(420)에 제공한다. 도시된 바와 같이, 플래시 변환 계층(430)은 파일 시스템(410)으로부터 제공된 쓰기 요청에 대한 정보를 얻기 위하여 쓰기 함수 FTL_Write()을 제공한다. 쓰기 함수 FTL_Write()의 파라미터에는 파일 시스템(410)이 요청한 시작 섹터 번호, 섹터 수, 데이터를 저장할 버퍼 어드레스 등이 포함될 것이다. 더불어, 쓰기 함수 FTL_Write()의 파라미터에는 쓰기 요청된 데이터에 대한 컨펌 정보의 기입 여부를 요청하는 변수가 추가적으로 제공되어야 할 것이다. 컨펌 정보의 기입 여부를 요청하는 변수에 응답하여 파일 시스템(410)으로부터 컨펌 정보의 기입 여부를 제공받은 플래시 변환 계층(430)은 해당하는 트랜잭션에 대한 컨펌 정보를 기록 또는 스킵한다.
도 5는 상술한 도 4에서 간략히 기술된 쓰기 함수 FTL_Write()의 파라미터 구성을 간략히 보여주는 표이다. 도 5를 참조하면, 파일 시스템(410)으로부터의 컨펌 정보(Confirm Mark)의 쓰기 여부를 제공받기 위해 플래시 변환 계층(430)이 전달하는 쓰기 함수는 아래 수학식 1과 같다.
FTL_Write(Lsn, nSectorCount, pBuffer, Attr);
파라미터 (Lsn)은 해당 트랜잭션에서의 유저 데이터 또는 메타 데이터들의 쓰기 시작 섹터의 주소를 나타낸다. 파라미터 (nSectorCount)는 쓰기 요청된 데이터들을 기입하기 위한 섹터 수를 의미한다. 그리고, 파라미터 (pBuffer)는 쓰기 요청된 데이터가 저장될 버퍼 주소를 나타낸다. 파라미터 (Attr)은 본 발명의 컨펌 정보의 기입 시점에 대한 판단을 파일 시스템(410)에 넘겨 주기 위한 파라미터이다. 즉, 파라미터 (Attr)은 파일 시스템(410)과 쓰기 동작에 대해서 정보를 교환하기 위한 파라미터이다.
도 6은 파일 시스템(410)의 쓰기 요청 방법의 일 실시예를 보여주는 순서도이다. 도 6을 참조하여 하나의 파일을 쓰기 위한 파일 시스템(410)의 동작이 도 4의 구성들을 참조하여 설명될 것이다.
사용자 또는 애플리케이션으로부터 파일 쓰기에 대한 요청이 발생하면, 파일 시스템(410)은 쓰기 요청된 파일에 대한 불휘발성 메모리 장치로의 쓰기 동작을 시작한다. 파일 시스템(410)은 쓰기 요청된 파일을 오픈한다(S10). 파일 시스템(410)은 오픈된 파일로부터 메타 데이터(Meta data)를 생성한다. 메타 데이터(Meta data)는 로그 정보, FAT 테이블, 디렉토리 엔트리 등을 포함한다(S20). 생성된 파일에 대한 쓰기 요청을 위하여, 파일 시스템(410)은 파일을 구성하는 데이터들 중 어느 하나를 선택할 것이다. 예를 들면, 파일 시스템(410)은 로그 정보, FAT 테이블, 디렉토리 엔트리와 같은 메타 데이터나 유저 데이터 중 어느 하나를 선택한다(S30). 그리고 선택된 데이터에 대한 데이터 타입(Data type)을 판단한다(S40). 쓰기 요청을 위하여 선택된 데이터가 메타 데이터라면, 각각의 기능별로 생성된 메타 데이터들 각각은 보호되어야 한다. 따라서, 선택된 트랜잭션 단위의 메타 데이 터들 각각에 대한 쓰기 요청에서 파일 시스템(410)은 컨펌 정보(Confirm Mark)를 기입하도록 플래시 변환 계층(430)으로 지시할 것이다(S50). 최초 선택된 메타 데이터에 대한 쓰기 요청이 완료되면, 파일 시스템(410)은 다음의 쓰기 요청을 위하여 생성된 파일을 구성하는 데이터들 중 어느 하나를 선택한다(S60). 파일 시스템(410)은 다음에 선택된 데이터의 쓰기 요청을 위해 파일 타입을 판단하는 단계(S40)로 복귀한다.
파일 타입을 판단하는 단계(S40)에서, 만일 유저 데이터들 중 어느 하나가 선택된 것으로 판단되면, 파일 시스템(410)은 유저 데이터에 대한 쓰기 요청을 위한 단계(S70)로 동작 절차를 이동한다. 유저 데이터의 쓰기 요청들 중 최종 쓰기 요청에서만 컨펌 정보가 기입되어야 한다. 따라서, 선택된 유저 데이터가 쓰기 요청되는 최종 서브 유저 데이터인지를 판단한다(S70). 선택된 서브 유저 데이터가 쓰기 요청되는 최종 서브 유저 데이터가 아니라면, 파일 시스템(410)은 컨펌 정보의 기입없이 선택된 서브 유저 데이터를 쓰도록 플래시 변환 계층(430)에 요청한다. 이어서, 최종 서브 유저 데이터가 선택되어 쓰기 요청될 때까지, 컨펌 정보의 기입을 동반하지 않는 서브 유저 데이터들에 대한 쓰기 요청이 동작 루프(S60-S40-S70-S80)에 따라 반복될 것이다.
만일, 유저 데이터의 쓰기 요청을 위한 단계(S70)에서 선택된 서브 유저 데이터가 쓰기 요청된 파일을 구성하는 최종 서브 유저 데이터인 경우를 고려하자. 그러면, 파일 시스템(410)은 선택된 서브 유저 데이터를 기입하도록 요청하되, 대응하는 컨펌 정보를 기입하도록 플래시 변환 계층(430)에 요청할 것이다. 유저 데 이터의 최종 서브 유저 데이터와 그에 대응하는 컨펌 정보의 쓰기 요청이 완료되면, 파일 시스템(410)의 파일 쓰기 동작은 완료된다. 따라서, 파일 시스템(410)은 오픈된 파일을 닫는다(S90).
이상에서는 메타 데이터(Meta data)가 유저 데이터(User data)보다 먼저 쓰기 요청되는 것으로 본 실시예를 설명하였으나, 본 발명은 이에 국한되지 않는다. 즉, 메타 데이터(Meta data)와 유저 데이터(User data)의 쓰기 요청의 시퀀스는 달라질 수 있다. 또한, 유저 데이터가 하나의 트랜잭션 이내에서 쓰기 요청이 완료될 수 있다. 또한, 메타 데이터들이 하나의 트랜잭션에서 쓰기 요청되는 것으로 나타내었으나, 어느 하나의 메타 데이터(Meta data)가 복수의 트랜잭션을 통해서 쓰기 요청되어야 하는 속성을 가진 경우가 존재할 수 있다. 이 경우, 메타 데이터의 중요성을 고려할 때, 매 쓰기 요청마다 컨펌 정보를 쓰도록 요청하여 메타 데이터를 보호할 수 있다. 즉, 로그 정보가 2회의 트랜잭션을 통해서 쓰기 요청되어야 하는 경우, 유저 데이터와는 달리 2회의 쓰기 요청 각각에 대한 컨펌 정보를 기록하도록 파일 시스템(410)이 구성될 수 있다.
도 7은 본 발명의 다른 실시예에 따른 파일 시스템(410)의 쓰기 요청 방법을 보여주는 순서도이다.
사용자 또는 애플리케이션으로부터 파일 쓰기에 대한 요청이 발생하면, 파일 시스템은 쓰기 요청된 파일에 대한 불휘발성 메모리 장치로의 쓰기 동작을 시작한다. 파일 시스템(410)은 쓰기 요청된 파일을 오픈한다(S110). 파일 시스템(410)은 오픈된 파일로부터 메타 데이터를 생성한다. 메타 데이터(Meta data)는 로그 정보, FAT 테이블, 디렉토리 엔트리 등을 포함한다(S120). 생성된 파일에 대한 쓰기 요청을 위하여, 파일 시스템(410)은 파일을 구성하는 데이터들 중 어느 하나를 선택할 것이다. 예를 들면, 파일 시스템(410)은 로그 정보, FAT 테이블, 디렉토리 엔트리와 같은 메타 데이터나 유저 데이터 중 어느 하나를 선택한다(S130). 그리고 선택된 데이터에 대한 데이터 타입을 판단한다(S140). 쓰기 요청을 위하여 선택된 데이터가 메타 데이터라면, 각각의 기능별로 생성된 메타 데이터들 각각은 보호되어야 한다. 따라서, 선택된 트랜잭션 단위의 메타 데이터들 각각에 대한 쓰기 요청에서 파일 시스템(410)은 컨펌 정보(Confirm Mark)를 기입하도록 플래시 변환 계층(430)으로 지시할 것이다(S150). 최초 선택된 메타 데이터에 대한 쓰기 요청이 완료되면, 파일 시스템(410)은 다음의 쓰기 요청을 위하여 생성된 파일을 구성하는 데이터들 중 어느 하나를 선택한다(S160). 파일 시스템(410)은 다음에 선택된 데이터의 쓰기 요청을 위해 파일 타입을 판단하는 단계(S140)로 복귀한다.
파일 타입을 판단하는 단계(S140)에서, 만일 유저 데이터들 중 어느 하나가 선택된 것으로 판단되면, 파일 시스템(410)은 유저 데이터에 대한 쓰기 요청을 위한 단계(S170)로 동작 절차를 이동한다. 유저 데이터의 쓰기 요청들 중 최종 쓰기 요청에서만 컨펌 정보가 기입되어야 한다. 따라서, 선택된 유저 데이터가 쓰기 요청되는 최종 서브 유저 데이터인지를 판단한다(S170). 만일, 유저 데이터의 쓰기 요청을 위한 단계(S170)에서 선택된 서브 유저 데이터가 쓰기 요청된 파일을 구성하는 최종 서브 유저 데이터인 경우를 가정하자. 그러면, 파일 시스템(410)은 선택된 서브 유저 데이터를 기입하도록 요청하되, 대응하는 컨펌 정보를 기입하도록 플 래시 변환 계층(430)에 요청할 것이다. 유저 데이터의 최종 서브 유저 데이터와 그에 대응하는 컨펌 정보의 쓰기 요청이 완료되면, 파일 시스템(410)의 파일 쓰기 동작은 완료된다. 따라서, 파일 시스템(410)은 오픈된 파일을 닫는다(S190).
반면에, 선택된 서브 유저 데이터가 쓰기 요청되는 최종 서브 유저 데이터가 아니라면, 파일 시스템(410)은 쓰기 요청된 논리 블록의 종료 영역에 할당되었는지를 판단한다. 하나의 논리 블록에 선택된 서브 유저 데이터가 기입될 메모리 영역이 부족한 경우, 하나의 논리 블록으로의 서브 유저 데이터의 쓰기 요청 시에는 컨펌 정보를 기입하도록 요청하여 현재까지 기입된 데이터를 보호할 수 있다. 그러나, 쓰기 요청된 서브 유저 데이터가 하나의 논리 블록 이내에 기입 가능한 경우, 컨펌 정보의 기입없이 선택된 서브 유저 데이터를 쓰도록 플래시 변환 계층(430)에 요청한다(S175). 이어서, 최종 서브 유저 데이터가 선택되어 쓰기 요청될 때까지, 컨펌 정보의 기입을 동반하지 않는 서브 유저 데이터들에 대한 쓰기 요청이 동작 루프(S160-S140-S170-S175-S180)에 따라 반복될 것이다.
이상에서는 메타 데이터가 유저 데이터보다 먼저 쓰기 요청되는 것으로 본 실시예를 설명하였으나, 본 발명은 이에 국한되지 않는다. 즉, 메타 데이터와 유저 데이터의 쓰기 요청의 시퀀스는 달라질 수 있다. 또한, 유저 데이터가 하나의 트랜잭션 이내에서 쓰기 요청이 완료될 수 있다. 또한, 메타 데이터들이 하나의 트랜잭션에서 쓰기 요청되는 것으로 나타내었으나, 어느 하나의 메타 데이터가 복수의 트랜잭션을 통해서 쓰기 요청되어야 하는 속성을 가진 경우가 존재할 수 있다. 이 경우, 메타 데이터의 중요성을 고려할 때, 매 쓰기 요청마다 컨펌 정보를 쓰도록 요 청하여 메타 데이터를 보호할 수 있다. 즉, 로그 정보가 2회의 트랜잭션을 통해서 쓰기 요청되어야 하는 경우, 유저 데이터와는 달리 2회의 쓰기 요청 각각에 대한 컨펌 정보를 기록하도록 파일 시스템(410)이 구성될 수 있다.
도 8은 상술한 파일 시스템(410)의 쓰기 요청에 따라 실행되는 플래시 변환 계층(430)의 동작을 간략히 보여주는 순서도이다. 도 8을 참조하면, 컨펌 정보의 쓰기 여부를 전적으로 파일 시스템(410)의 지시에 의존하는 본 발명의 플래시 변환 계층(430)의 동작 절차가 설명될 것이다.
파일 시스템(410)으로부터의 요청에 따른 플래시 변환 계층(430)의 쓰기 동작은 파일 시스템(410)으로부터 쓰기 요청을 받는 것으로부터 시작된다. 플래시 변환 계층(430)은 파일 시스템(410)으로부터의 쓰기 요청이 인터페이스 유닛(420)을 경유하여 플래시 변환 계층(430)에 전달되었는지를 모니티링한다. 그리고, 쓰기 요청이 존재하는 경우, 앞서 도 5에서 기술된 쓰기 함수 FTL_Write(int Lsn, nSectorCount, pBuffer, Attr)를 인터페이스 유닛(420)으로 전달하게 될 것이다. 그러면, 파일 시스템(410)으로부터 쓰기 요청이 컨펌 정보의 쓰기를 동반하는지의 정보가 파라미터(Attr)에 대한 응답으로 플래시 변환 계층(430)으로 제공될 것이다(S210).
플래시 변환 계층(430)은 제공되는 파라미터(Attr)를 참조하여, 현재 쓰기 요청되는 데이터의 쓰기에 뒤따르는 컨펌 정보(Confirm mark)의 쓰기 여부를 판단하게 된다. 만일, 파라미터(Attr)를 통해서 제공되는 정보에 컨펌 정보(Confirm mark)의 기입을 지시하는 내용이 포함되는 경우, 플래시 변환 계층(430)은 단 계(S230)로 동작 절차를 이동한다. 단계(S230)에서, 플래시 변환 계층(430)은 단순히 쓰기 요청된 데이터를 불휘발성 메모리 장치에 기입한다. 이어서, 플래시 변환 계층(430)은 쓰기 요청된 데이터의 보호를 위한 컨펌 정보(Confirm Mark)를 불휘발성 메모리 장치(NVM)의 지정된 메모리 영역에 프로그램할 것이다(S240).
반면, 파라미터(Attr)를 통해 쓰기 요청된 데이터에 대한 컨펌 정보(Confirm Mark)가 존재하지 않는 경우, 플래시 변환 계층(430)은 단순히 쓰기 요청된 데이터만을 불휘발성 메모리 장치(NVM)에 기입할 것이다(S250). 컨펌 정보(Confirm Mark)의 기입을 동반하는 데이터의 쓰기 요청 또는 컨펌 정보의 기입 없는 쓰기 요청의 절차들이 종료되면, 하나의 쓰기 요청에 응답하여 실시되는 플래시 변환 계층(430)의 쓰기 동작은 종료된다.
이상에서 플래시 변환 계층(430)의 컨펌 정보의 기입 여부를 파일 시스템(410)의 지시에 의존하는 본 발명의 실시예가 설명되었다. 플래시 변환 계층(430)의 입장에서는 파일을 구성하는 데이터들의 중요도를 알 수 없다. 특히, 전원 오류와 같은 치명적이 오류의 발생시 복구를 위한 데이터로 사용되는 메타 데이터들에 대한 쓰기 요청 시 이들 데이터들을 보호하기 위한 컨펌 정보의 기입은 파일 시스템(410) 계층에 의해서 지시되어야 할 것이다. 또한, 유저 데이터와 같은 파일의 구성 요소에 대한 컨펌 정보의 기입을 최소화하면 쓰기 퍼포먼스의 향상을 기대할 수 있을 것이다.
도 9는 본 발명의 파일 시스템(FS) 및 플래시 변환 계층(FTL)에 의해서 쓰기 동작을 수행하는 메모리 시스템(500)을 보여주는 블록도이다. 도 9를 참조하면, 본 발명에 따른 메모리 시스템(500)은 파일 시스템(FS)이 장착되는 호스트(510)와 불휘발성 메모리 장치(530)와 메모리 컨트롤러(520)를 포함할 것이다. 메모리 컨트롤러(520)는 불휘발성 메모리 장치(530)를 제어하도록 구성될 것이다. 불휘발성 메모리 장치(530)와 메모리 컨트롤러(520)의 결합에 의해 메모리 카드 또는 반도체 디스크 장치(Solid State Disk: SSD)로 제공될 수 있을 것이다.
호스트(510)는 본 발명의 파일 시스템(FS)이 구동되는 정보 처리 시스템으로 구성될 수 있다. 호스트(510)의 쓰기 요청은 유저 인터페이스를 통한 유저의 명령에 따라, 또는 애플리케이션의 요청에 따라 발생한다. 이때마다 파일 시스템(FS)은 하나의 파일을 구성하는 데이터들의 중요도에 따라 분류하고 컨펌 정보에 대한 기입을 결정한다. 그리고, 메모리 컨트롤러(520)에 구현되는 플래시 변환 계층(FTL)에 파일의 쓰기 요청을 제공할 때 중요도에 따라 컨펌 정보의 기입 여부를 지시한다.
메모리 컨트롤러(520)는 파일 시스템(FS)으로부터의 쓰기 요청 및 컨펌 정보의 기입 요청에 응답하여 전달되는 데이터를 불휘발성 메모리 장치(530)에 프로그램한다. SRAM(521)은 프로세싱 유닛(522)의 동작 메모리로써 사용된다. 호스트 인터페이스(523)는 호스트(510)의 데이터 교환 프로토콜을 구비한다. 에러 정정 블록(524)은 불휘발성 메모리 장치(530)로부터 독출된 데이터에 포함되는 에러를 검출 및 정정한다. 메모리 인터페이스(525)는 본 발명의 불휘발성 메모리 장치(530)와 인터페이싱 한다. 프로세싱 유닛(522)은 메모리 컨트롤러(520)의 데이터 교환을 위한 제반 제어 동작을 수행한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따 른 메모리 시스템(500)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 불휘발성 메모리 장치(500)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다.
이상의 본 발명의 메모리 시스템(500)은 호스트(510)의 쓰기 요청이 발생하면 고속으로 불휘발성 메모리 장치(530)로 데이터를 기입할 수 있다. 따라서, 본 발명의 메모리 시스템(500)은 고용량, 고신뢰성을 갖는 저장 매체로 제공될 수 있다. 특히, 최근 활발히 연구되고 있는 반도체 디스크 장치(Solid State Disk: 이하 SSD)와 같은 메모리 시스템에서 본 발명의 파일 시스템(File system) 및 플래시 변환 계층(FTL)이 장착될 수 있다. 이 경우, 메모리 컨트롤러(520)는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 또한, 파일 시스템(FS)과 플래시 변환 계층(FTL) 각각이 구동되는 디바이스로서 호스트(510)와 메모리 컨트롤러(520)를 구분하여 설명되었으나 본 발명은 이에 국한되지 않는다. 기술의 진보 및 효율성을 위해 파일 시스템(FS) 및 플래시 변환 계층(FTL)의 구동 영역은 어느 하나에만 한정되지 않을 수 있다.
불휘발성 메모리 장치중 특히 플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지로서 뿐만 아니라 코드 스토리지로서 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 애플리케이션에 사용될 수 있다.
도 10은 본 발명의 파일 시스템(FS) 및 플래시 변환 계층(FTL)에 의하여 쓰기 동작을 수행하는 퓨전 메모리 시스템(600)을 간략히 보여주는 블록도이다. 예를 들면, 퓨전 메모리 장치로서 원낸드 플래시 메모리 장치(620)에 본 발명의 기술적 특징이 적용될 수 있다. 도 10을 참조하면, 호스트(610)는 본 발명의 파일 시스템(FS)이 구동되는 정보 처리 시스템으로 구성될 수 있다.
호스트(610)의 쓰기 요청은 유저 인터페이스(미도시됨)를 통한 유저의 명령에 따라, 또는 애플리케이션의 요청에 따라 발생한다. 이 때마다 파일 시스템(FS)은 하나의 파일을 구성하는 데이터들의 중요도에 따라 분류하고 컨펌 정보에 대한 기입을 결정한다. 그리고, 원낸드 플래시 메모리 장치(620)에 탑재되는 플래시 변환 계층(FTL)에 파일의 쓰기 요청을 제공할 때 중요도에 따라 컨펌 정보의 기입 여부를 지시한다.
원낸드 플래시 메모리 장치(620)는 서로 다른 프로토콜을 사용하는 장치와의 각종 정보 교환을 위한 호스트 인터페이스(621)와, 메모리 장치를 구동하기 위한 코드를 내장하거나 데이터를 일시적으로 저장하는 버퍼 램(622)과, 외부에서 주어지는 제어 신호와 명령어에 응답하여 읽기와 프로그램 및 모든 상태를 제어하는 제어부(623)와, 명령어와 어드레스, 메모리 장치 내부의 시스템 동작 환경을 정의하는 설정(Configuration) 등의 데이터가 저장되는 레지스터(624) 및 불휘발성 메모리 셀과 페이지 버퍼로 구성된 낸드 플래시 셀 어레이(625)를 포함한다. 도 9에서 설명된 것과 마찬가지로, 파일 시스템(FS)과 플래시 변환 계층(FTL) 각각이 구동되는 디바이스로서 호스트(610)와 원낸드 플래시 메모리 장치(620)를 구분하여 설명되었으나 본 발명은 이에 국한되지 않는다. 기술의 진보 및 효율성을 위해 파일 시스템(FS) 및 플래시 변환 계층(FTL)의 구동 영역은 어느 하나에만 한정되지 않을 수 있다.
도 11에는 본 발명에 따른 쓰기 동작을 수행하는 컴퓨팅 시스템(700)이 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템(700)은 시스템 버스(760)에 전기적으로 연결된 마이크로프로세서(720), 램(730), 사용자 인터페이스(740), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(750) 및 메모리 시스템(710)을 포함한다. 메모리 시스템(710)은 도 9 또는 도 10에 도시된 것과 실질적으로 동일하게 구성될 수 있다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(700)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 시스템(710)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 시스템(710)은, 퓨전 플래시 메모리(예를 들면, 원낸드 플래시 메모리)로 제공될 수 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 파일 시스템 아키텍처를 간략히 보여주는 블록도;
도 2는 본 발명의 쓰기 동작을 보여주는 다이어그램;
도 3은 본 발명에 따른 파일의 불휘발성 메모리 장치로의 기록 동작을 보여주는 도면;
도 4는 본 발명의 플래시 변환 계층과 파일 시스템 간의 인터페이싱 관계를 보여주는 블록도;
도 5는 본 발명의 FTL 쓰기 함수를 보여주는 표;
도 6은 본 발명에 따른 파일 시스템의 제 1 실시예에 따른 동작을 보여주는 순서도;
도 7은 본 발명에 따른 파일 시스템의 제 2 실시예에 따른 동작을 보여주는 순서도;
도 8은 본 발명에 따른 플래시 변환 계층의 동작을 보여주는 순서도;
도 9는 본 발명에 따른 메모리 시스템의 일예를 보여주는 블록도;
도 10은 본 발명에 따른 퓨전 메모리 시스템을 보여주는 블록도;
도 11은 본 발명에 따른 컴퓨팅 시스템을 보여주는 블록도.
*도면의 주요 부분에 대한 부호의 설명*
10 : 애플리케이션 20 : 파일 시스템
30 : 플래시 변환 계층 40 : 불휘발성 메모리 장치
110, 311, 312, 313 : 유저 데이터
120, 130 : 메타 데이터
140, 150, 160, 240, 350, 360, 370, 380 : 컨펌 정보
320 : 로그 정보 330 : FAT 테이블
340 : 디렉토리 엔트리 410 : 파일 시스템
420 : 인터페이스 유닛 430 : 플래시 변환 계층
510, 610 : 호스트 520 : 메모리 컨트롤러
530 : 불휘발성 메모리 장치 620 : 원낸드 플래시 메모리 장치
710 : 메모리 시스템 720 : 중앙처리장치
730 : 램 740 : 유저 인터페이스
750 : 모뎀 760 : 시스템 버스

Claims (25)

  1. 플래시 변환 계층을 사용하는 불휘발성 메모리의 액세스 방법에 있어서:
    (a) 파일 시스템으로부터 데이터의 쓰기 요청을 받는 단계; 그리고
    (b) 상기 쓰기 요청에 응답하여 상기 플래시 변환 계층이 상기 데이터를 불휘발성 메모리 장치에 쓰는 단계를 포함하되,
    상기 플래시 변환 계층은 상기 데이터에 대한 컨펌 정보의 기입 여부를 상기 파일 시스템으로부터 지시받는 액세스 방법.
  2. 제 1 항에 있어서,
    상기 파일 시스템은 상기 데이터의 속성을 참조하여 상기 컨펌 정보의 기입 여부를 지시하는 액세스 방법.
  3. 제 2 항에 있어서,
    상기 파일 시스템은 상기 데이터가 유저 데이터인 경우에는 1회의 컨펌 정보를 기입하도록 상기 플래시 변환 계층에 요청하는 액세스 방법.
  4. 제 3 항에 있어서,
    상기 파일 시스템은 상기 유저 데이터가 상기 플래시 변환 계층의 트랜잭션 단위보다 큰 경우에는 상기 유저 데이터를 구성하는 서브 유저 데이터들 중 최후에 상기 플래시 변환 계층으로 전달되는 어느 하나의 서브 유저 데이터의 쓰기 동작시에 상기 컨펌 정보를 기입하도록 요청하는 액세스 방법.
  5. 제 4 항에 있어서,
    상기 파일 시스템은 2개의 논리 블록에 걸쳐서 상기 서브 유저 데이터들 중 어느 하나가 기입되는 경우에는 상기 먼저 쓰여진 논리 블록으로의 기입이 완료되면 컨펌 정보를 더 기입하도록 상기 플래시 변환 계층에 요청하는 액세스 방법.
  6. 제 2 항에 있어서,
    상기 파일 시스템은 상기 데이터가 메타 데이터인 경우에는 상기 플래시 변환 계층의 트랜잭션당 1회의 컨펌 정보를 기입하도록 상기 플래시 변환 계층에 요청하는 액세스 방법.
  7. 제 6 항에 있어서,
    상기 메타 데이터는 로그 정보, FAT 테이블, 디렉토리 엔트리들 중 어느 하나인 것을 특징으로 하는 액세스 방법.
  8. 제 6 항에 있어서,
    상기 파일 시스템은 2개의 논리 블록에 걸쳐서 상기 메타 데이터들 중 어느 하나가 기입되는 경우에는 상기 먼저 쓰여진 논리 블록으로의 쓰기 동작이 완료되 면 컨펌 정보를 더 기입하도록 상기 플래시 변환 계층에 요청하는 액세스 방법 .
  9. 제 1 항에 있어서,
    상기 플래시 변환 계층은 상기 파일 시스템과의 정보 교환을 위한 쓰기 함수를 상기 파일 시스템으로 전달하되, 상기 쓰기 함수는 상기 컨펌 정보의 기입 여부를 제공받기 위한 파라미터를 포함하는 액세스 방법.
  10. 플래시 변환 계층을 사용하는 불휘발성 메모리의 액세스 방법에 있어서:
    (a) 쓰기 요청에 응답하여 유저 데이터와 복수의 메타 데이터들을 포함하는 파일을 생성하는 단계;
    (b) 상기 유저 데이터 또는 상기 복수의 메타 데이터들을 상기 불휘발성 메모리 장치에 기입하도록 상기 플래시 변환 계층에 요청하며, 상기 유저 데이터 또는 상기 복수의 메타 데이터들의 속성에 따라 상기 플래시 변환 계층이 상기 불휘발성 메모리에 기입하는 컨펌 정보의 기입 여부를 지시하는 단계를 포함하되,
    상기 플래시 변환 계층은 상기 지시에 따라서 상기 유저 데이터 또는 상기 복수의 메타 데이터들에 대한 컨펌 정보를 기입하는 액세스 방법.
  11. 제 10 항에 있어서,
    상기 유저 데이터가 상기 플래시 변환 계층의 트랜잭션 단위보다 큰 경우에는 상기 트랜잭션 단위로 상기 플래시 변환 계층에 전달되는 상기 유저 데이터의 최종 서브 유저 데이터의 기록시에 상기 컨펌 정보를 기록하도록 요청하는 액세스 방법.
  12. 제 11 항에 있어서,
    상기 유저 데이터가 2개의 논리 블록에 걸쳐서 상기 서브 유저 데이터들 중 어느 하나가 기록되는 경우에는 상기 먼저 쓰여진 논리 블록으로의 기입이 완료되면 컨펌 정보를 기록하도록 상기 플래시 변환 계층에 요청하는 액세스 방법
  13. 제 10 항에 있어서,
    상기 복수의 메타 데이터들은 상기 유저 데이터에 대한 로그 정보, FAT 테이블, 디렉토리 엔트리를 포함하는 액세스 방법.
  14. 제 13 항에 있어서,
    상기 복수의 메타 데이터들 각각의 쓰기 요청 시에는 상기 컨펌 정보를 기록하도록 요청하는 액세스 방법.
  15. 제 10 항에 있어서,
    상기 (a) 단계 및 상기 (b) 단계는 상기 불휘발성 메모리를 장착하는 호스트의 파일 시스템에 의해서 수행되는 액세스 방법.
  16. 제 15 항에 있어서,
    상기 플래시 변환 계층은 상기 파일 시스템과의 상기 컨펌 정보의 기록 여부를 제공받기 위한 파라미터를 포함하는 쓰기 함수를 교환하는 액세스 방법.
  17. 파일 시스템(File system)이 구동되는 호스트;
    상기 호스트로부터 제공되는 파일을 저장하기 위한 불휘발성 메모리 장치; 그리고
    상기 호스트의 파일 쓰기 요청을 상기 불휘발성 메모리 장치의 쓰기 요청으로 변환하는 메모리 컨트롤러를 포함하되, 상기 파일을 상기 불휘발성 메모리 장치에 쓰는 동작시, 상기 메모리 컨트롤러는 상기 파일을 구성하는 복수의 데이터들 각각에 대응하는 컨펌 정보를 상기 호스트로부터의 지시에 따라 선택적으로 상기 불휘발성 메모리 장치에 기입하는 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 메모리 컨트롤러는 상기 파일 시스템으로부터의 쓰기 요청을 상기 불휘발성 메모리 장치의 쓰기 요청으로 변환하는 플래시 변환 계층을 더 포함하는 메모리 시스템.
  19. 제 17 항에 있어서,
    상기 복수의 데이터들은 상기 파일로부터 생성된 복수의 메타 데이터들과 유 저 데이터를 포함하는 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 호스트는 상기 복수의 메타 데이터들의 쓰기 요청 시에는 상기 컨펌 정보를 기록하도록 상기 메모리 컨트롤러에 요청하는 메모리 시스템.
  21. 제 19 항에 있어서,
    상기 호스트는 상기 유저 데이터의 쓰기 요청 시에는 상기 유저 데이터의 사이즈에 관계없이 상기 컨펌 정보를 1회 쓰도록 상기 메모리 컨트롤러에 요청하는 메모리 시스템.
  22. 제 21 항에 있어서,
    상기 호스트는 상기 메모리 컨트롤러의 트랜잭션 사이즈에 따라 상기 유저 데이터를 상기 불휘발성 메모리 장치에 복수 회 기입하는 것으로 판단되면, 상기 유저 데이터를 기입하는 최후의 쓰기 동작에서 상기 컨펌 정보를 기입하도록 상기 메모리 컨트롤러에 요청하는 메모리 시스템.
  23. 파일 시스템(File system)이 구동되는 호스트;
    상기 호스트로부터 제공되는 파일을 저장하는 불휘발성 메모리 장치를 포함하되,
    상기 불휘발성 메모리 장치는 상기 파일을 상기 불휘발성 메모리에 쓰는 동작시, 상기 파일을 구성하는 복수의 데이터들 각각에 대응하는 컨펌 정보를 상기 호스트로부터의 지시에 따라 선택적으로 기입하는 메모리 시스템.
  24. 제 23 항에 있어서,
    상기 불휘발성 메모리는 원낸드 플래시 메모리 장치(OneNAND flash memroy device)인 것을 특징으로 하는 메모리 시스템.
  25. 제 23 항에 있어서,
    상기 호스트는 상기 복수의 데이터들 각각의 속성을 참조하여 상기 컨펌 정보의 기입 여부를 지시하는 메모리 시스템.
KR1020080115711A 2008-11-20 2008-11-20 불휘발성 메모리 시스템 및 그것의 액세스 방법 KR101543431B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080115711A KR101543431B1 (ko) 2008-11-20 2008-11-20 불휘발성 메모리 시스템 및 그것의 액세스 방법
US12/621,324 US8370563B2 (en) 2008-11-20 2009-11-18 Non-volatile memory system and access method thereof utilizing a confirm mark when data has been successfully recorded therein
CN200910224797.2A CN101901114B (zh) 2008-11-20 2009-11-20 非易失性存储器系统及其存取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080115711A KR101543431B1 (ko) 2008-11-20 2008-11-20 불휘발성 메모리 시스템 및 그것의 액세스 방법

Publications (2)

Publication Number Publication Date
KR20100056750A true KR20100056750A (ko) 2010-05-28
KR101543431B1 KR101543431B1 (ko) 2015-08-11

Family

ID=42172875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080115711A KR101543431B1 (ko) 2008-11-20 2008-11-20 불휘발성 메모리 시스템 및 그것의 액세스 방법

Country Status (3)

Country Link
US (1) US8370563B2 (ko)
KR (1) KR101543431B1 (ko)
CN (1) CN101901114B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650379B2 (en) 2010-12-08 2014-02-11 Samsung Electronics Co., Ltd. Data processing method for nonvolatile memory system
CN108399047A (zh) * 2017-02-06 2018-08-14 中兴通讯股份有限公司 一种闪存文件系统及其数据管理方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012051600A2 (en) * 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102094475B1 (ko) 2013-04-29 2020-03-27 삼성전자주식회사 멀티-트랜잭션의 아토믹 라이트 방법
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
KR102403202B1 (ko) * 2015-03-13 2022-05-30 삼성전자주식회사 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
US20170220252A1 (en) * 2016-01-29 2017-08-03 Faraday&Future Inc. Flash emulated eeprom wrapper
KR102652293B1 (ko) * 2016-03-03 2024-03-29 에스케이하이닉스 주식회사 메모리 관리방법
CN108664218A (zh) * 2018-04-23 2018-10-16 浙江大华技术股份有限公司 一种基于数据特征的ssd存储方法、装置及系统
CN111367476B (zh) * 2020-03-11 2024-01-30 楚天龙股份有限公司 一种sim卡的数据读取方法及装置
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
CN113093997B (zh) * 2021-04-19 2021-09-28 深圳市安信达存储技术有限公司 一种基于Host Based FTL架构分离数据的方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265785A (ja) 1992-03-12 1993-10-15 Nec Corp ファイル転送に於ける誤り回復方法
US5544312A (en) * 1994-04-29 1996-08-06 Intel Corporation Method of detecting loss of power during block erasure and while writing sector data to a solid state disk
JPH09319645A (ja) * 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
JP3862395B2 (ja) 1998-01-08 2006-12-27 株式会社アドバンテスト デバイス書込装置の制御方法及びこの制御方法を用いたデバイス書込装置
JP4031190B2 (ja) * 2000-09-29 2008-01-09 株式会社東芝 メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置
CN1255733C (zh) * 2001-07-25 2006-05-10 索尼株式会社 非易失性存储器和非易失性存储器的数据改写方法
US7181672B2 (en) * 2003-09-25 2007-02-20 Intel Corporation Method, system, and apparatus for supporting power loss recovery in ECC enabled memory devices
JPWO2005083573A1 (ja) * 2004-02-27 2007-11-29 松下電器産業株式会社 半導体メモリ装置
KR100632940B1 (ko) * 2004-05-06 2006-10-12 삼성전자주식회사 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치
US20060002197A1 (en) * 2004-06-30 2006-01-05 Rudelic John C Method and apparatus to detect invalid data in a nonvolatile memory following a loss of power
KR100632952B1 (ko) * 2004-09-30 2006-10-11 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
KR100626393B1 (ko) 2005-04-07 2006-09-20 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법
US7783955B2 (en) * 2006-01-18 2010-08-24 Sandisk Il Ltd. Method for implementing error-correction codes in flash memory
US7366017B2 (en) * 2006-08-22 2008-04-29 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array
KR100845137B1 (ko) * 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US7379341B2 (en) * 2006-10-05 2008-05-27 Macronix International Co., Ltd. Loading data with error detection in a power on sequence of flash memory device
US7934050B2 (en) * 2006-12-07 2011-04-26 Denso Corporation Microcomputer for flash memory rewriting
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP2008198310A (ja) * 2007-02-15 2008-08-28 Megachips Lsi Solutions Inc ビットエラーの修復方法および情報処理装置
KR101393622B1 (ko) 2007-08-30 2014-05-13 삼성전자주식회사 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법
US9152496B2 (en) * 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
TW200951960A (en) * 2008-06-12 2009-12-16 Genesys Logic Inc Flash memory control apparatus having sequential writing and method thereof
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650379B2 (en) 2010-12-08 2014-02-11 Samsung Electronics Co., Ltd. Data processing method for nonvolatile memory system
CN108399047A (zh) * 2017-02-06 2018-08-14 中兴通讯股份有限公司 一种闪存文件系统及其数据管理方法
CN108399047B (zh) * 2017-02-06 2022-11-29 中兴通讯股份有限公司 一种闪存文件系统及其数据管理方法

Also Published As

Publication number Publication date
CN101901114A (zh) 2010-12-01
KR101543431B1 (ko) 2015-08-11
CN101901114B (zh) 2014-05-28
US8370563B2 (en) 2013-02-05
US20100125702A1 (en) 2010-05-20

Similar Documents

Publication Publication Date Title
KR101543431B1 (ko) 불휘발성 메모리 시스템 및 그것의 액세스 방법
KR102148889B1 (ko) 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US9053007B2 (en) Memory system, controller, and method for controlling memory system
JP5405513B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US9128618B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
KR101993704B1 (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법
KR101856506B1 (ko) 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US20050080985A1 (en) Data storage device
EP2631916A1 (en) Data deletion method and device
US20110208898A1 (en) Storage device, computing system, and data management method
CN110879793B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
KR20110119408A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2009099149A (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
EP2759935B1 (en) Storage device, flash memory, and operating method
CN107239225B (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
CN106775479B (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
CN109690465B (zh) 一种存储设备管理方法及用户终端
CN112306898A (zh) 存储设备、其操作方法及包括其的电子设备
TWI702496B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN111737165B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN112051971A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
JP5649709B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法およびプログラム
KR20160119607A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112799601A (zh) 有效数据合并方法、存储器存储装置及控制电路单元

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 5