KR100533682B1 - 플래시 메모리의 데이터 관리 장치 및 방법 - Google Patents

플래시 메모리의 데이터 관리 장치 및 방법 Download PDF

Info

Publication number
KR100533682B1
KR100533682B1 KR10-2003-0097486A KR20030097486A KR100533682B1 KR 100533682 B1 KR100533682 B1 KR 100533682B1 KR 20030097486 A KR20030097486 A KR 20030097486A KR 100533682 B1 KR100533682 B1 KR 100533682B1
Authority
KR
South Korea
Prior art keywords
address
physical
data operation
data
flash memory
Prior art date
Application number
KR10-2003-0097486A
Other languages
English (en)
Other versions
KR20050066228A (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 KR10-2003-0097486A priority Critical patent/KR100533682B1/ko
Priority to US11/003,400 priority patent/US7526600B2/en
Priority to EP04257934A priority patent/EP1548600B1/en
Priority to DE602004004494T priority patent/DE602004004494T2/de
Priority to JP2004369991A priority patent/JP2005196769A/ja
Priority to CNB2004101017114A priority patent/CN1321378C/zh
Publication of KR20050066228A publication Critical patent/KR20050066228A/ko
Application granted granted Critical
Publication of KR100533682B1 publication Critical patent/KR100533682B1/ko

Links

Classifications

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

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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 물리적인 데이터 연산 단위인 페이지별로 물리 주소를 구분하고, 각 페이지별로 해당 물리 주소를 추출하여 데이터 연산을 수행함으로써, 논리적인 데이터 연산 단위에 비하여 물리적인 데이터 연산 단위가 큰 대블록 플래시 메모리에서의 데이터 연산시 소요되는 시간을 감소시켜 최적의 데이터 연산을 수행할 수 있는 효과가 있다.

Description

플래시 메모리의 데이터 관리 장치 및 방법{Data managing device and method for flash memory}
본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 대블럭 플래시 메모리에서 논리적인 데이터 연산 단위가 물리적인 연산 단위보가 작기 때문에 발생하는 비효율적인 데이터 연산 방식을 개선할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Emdedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 플래시 메모리(Flash Memory)를 사용할 수 있다.
상기 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자이다. 마그네틱 디스크 메모리를 기반으로 한 저장 매체에 비해 플래시 메모리를 기반으로 한 저장 매체는 전력 소모가 적으면서도 하드 디스크와 같은 빠른 엑세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기에 등에 적합하다.
또한, 상기 플래시 메모리는 하드웨어적 특성상 이미 쓰여진 데이터에 덮어 쓰기를 할 경우 해당 데이터가 기록된 블록 전체를 지우는 과정이 필요하다.
이와 같이 상기 플래시 메모리에서 데이터의 쓰기 및 지우기 단위의 불일치로 인해 발생될 수 있는 플래시 메모리의 성능 저하을 방지하기 위해 논리 주소와 물리 주소의 개념이 도입되었다.
이때, 상기 논리 주소는 사용자가 소정의 사용자 프로그램을 통하여 상기 플래시 메모리에서의 데이터 읽기 및 쓰기 등의 데이터 연산을 수행할 경우 사용하는 주소이고, 상기 물리 주소는 실제 플래시 메모리에 데이터에서의 데이터 읽기 및 쓰기 등의 데이터 연산을 수행할 경우 사용하는 주소이다.
또한, 상기 플래시 메모리는 일반적으로 소블록 플래시 메모리와 대블록 플래시 메모리로 구분되는데, 상기 소블록 플래시 메모리는 논리적인 데이터 연산 단위와 실제 물리적인 데이터 연산 단위가 동일한 반면, 상기 대블록 플래시 메모리는 상기 논리적인 데이터 연산 단위에 비하여 상기 실제 물리적인 데이터 연산 단위가 작은 특성을 가진다.
일반적인 대블록 플래시 메모리의 구조를 개략적으로 살펴보면, 도 1 과 같이 상기 논리적인 데이터 연산 단위인 섹터(11)와, 물리적인 데이터 연산 단위인 페이지(12) 및 데이터 삭제 단위인 블록(13)으로 이루어진다.
이때, 상기 대블록 플래시 메모리는 소정의 섹터가 모여 하나의 페이지를 구성하는 반면, 상기 소블록 플래시 메모리는 하나의 섹터가 모여 하나의 페이지를 구성한다.
상기 대블록 플래시 메모리의 데이터 관리 장치는 도 2 에 도시된 바와 같이, 사용자가 소정의 논리 주소를 사용하여 상기 플래시 메모리에서의 데이터 연산을 요청하는 사용자 요청부(21)와, 상기 데이터 연산 요청시 사용한 논리 주소를 소정의 맵핑 테이블을 통해 물리 주소로 변환하는 변환부(22)와, 상기 변환된 물리 주소에 따라 상기 플래시 메모리를 동작을 제어하는 디바이스 드라이버(24)를 통해 상기 플래시 메모리에서 소정의 데이터 연산을 수행하는 연산부(23)를 포함한다.
상기와 같이 구성되는 대블럭 플래시 메모리의 데이터 관리 장치의 동작은 도 3 에 도시된 바와 같이, 사용자가 소정의 논리 주소를 사용하여 상기 플래시 메모리에서의 데이터 연산을 요청한다.(S1)
이때, 상기 사용자는 상기 사용자 요청부(21)가 포함하는 소정의 사용자 프로그램을 통해 상기 데이터 연산을 요청할 수 있다.
상기 논리 주소는 상기 변환부(22)에서 소정의 맵핑 테이블을 통해 실제 플래시 메모리의 물리 주소로 변환된다.(S2)
상기 변환된 물리 주소를 통하여 상기 연산부(23)가 상기 플래시 메모리의 동작을 제어하는 디바이스 드라이버(24)를 제어하여 상기 사용자가 요청한 데이터 연산이 수행되도록 한다.(S3)
이때, 상기 사용자가 사용한 모든 논리 주소에 대한 데이터 연산이 완료되었는지를 판단하고(S4), 상기 판단 결과 모든 논리 주소에 대한 데이터 연산이 완료되지 않은 경우 다음 논리 주소를 물리 주소로 변환하고(S5), 상기 변환된 물리 주소에 데이터 연산을 수행하는 과정(S3)을 반복적으로 수행한다.
즉, 상기 대블록 플래시 메모리의 경우를 예를 들어 설명하면, 상기 사용자가 데이터 연산 요청시 사용한 논리 주소에 해당하는 물리 주소인 섹터가 각각 다른 페이지에 포함된 경우 상기 연산부(23)는 상기 논리 주소의 순서에 따라 해당 물리 주소가 포함된 페이지로 접근하여 데이터 연산을 수행한다.
따라서, 동일한 페이지에 포함된 물리 주소라 할지라도 그 순서가 연속되지 않는 경우, 상기 연산부(23)는 해당 페이지를 반복적으로 접근하여 데이터 연산을 수행한다.
이때, 상기 연산부(23)에 의한 데이터 연산 중 데이터 읽기를 예를 들어 설명하면, 우선 상기 사용자가 사용한 논리 주소가 논리 주소0~논리주소5 이고 그에 해당하는 물리 주소가 도 4a 와 같다면, 상기 연산부(23)는 논리 주소0 에 해당하는 물리 주소에 대한 연산을 시작으로 하여 논리 주소1, 논리 주소2, 논리 주소3, 논리 주소4 및 논리 주소 5 의 순서로 데이터 연산을 수행한다.
즉, 도 4b 에 도시된 바와 같이, 논리 주소에 해당하는 물리 주소가 포함된 페이지에 순차적으로 접근하여 해당 논리 주소에 대한 물리 주소에 데이터 연산을 수행한다.
이때, 상기 연산부(23)는 하나의 페이지에 다수개의 물리 주소가 존재할지라도 연속된 물리 주소가 아닌 경우 해당 순서의 물리 주소에 대한 데이터 연산만을 수행한다.
따라서, 상기 논리 주소0 내지 논리 주소5 에 대한 데이터 연산을 모두 수행하기 위해서는 총 6 회의 페이지 접근이 필요하게 된다.
그러나, 상기와 같은 플래시 메모리의 데이터 관리 장치는 동일한 페이지에 포함된 물리 주소라 할지라도 해당하는 논리 주소의 순서가 연속적이지 않는 경우, 동일한 페이지를 반복적으로 접근하여 데이터 연산을 수행하게 된다.
따라서, 동일한 페이지의 반복적인 접근으로 인해 데이터 연산시 소요되는 시간이 증가하기 때문에 상기 플래시 메모리의 성능 저하를 야기시키는 문제점이 있다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 그 목적은 동일한 페이지에 포함되는 물리 주소에 대한 데이터 연산을 한번의 페이지 접근을 통해 수행할 수 있도록 하여 최적의 데이터 연산을 수행할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법을 제공하는데 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 플래시 메모리의 데이터 관리 장치는 논리 주소를 물리 주소로 변환하는 변환부와, 물리적인 데이터 연산 단위별로 물리 주소를 구분하여 재배열하는 재배열부와, 상기 재배열된 물리 주소를 상기 물리적인 데이터 연산 단위로 추출하여 소정의 데이터 연산을 수행하는 연산부를 포함한다.
바람직하게는 상기 재배열부는 상기 변환된 물리 주소와 해당 논리 주소로 이루어지는 주소 정보를 상기 물리 주소의 순서에 따라 나열한 주소 리스트를 생성한다.
바람직하게는 상기 재배열부는 상기 주소 리스트에 포함된 주소 정보를 각 페이지별로 구분한다.
바람직하게는 상기 연산부에서 데이터 연산을 위해 추출된 주소 정보를 상기 주소 리스트로부터 삭제된다.
한편, 본 발명에 따른 플래시 메모리의 데이터 관리 방법은 논리 주소를 물리 주소로 변환하는 제 1 단계와, 물리 주소의 순서에 따라 상기 변환된 물리 주소를 재배열하는 제 2 단계와, 상기 재배열된 물리 주소를 물리적인 데이터 연산 단위별로 구분하는 제 3 단계를 포함한다.
바람직하게는 상기 제 2 단계는 상기 변환된 물리 주소와 해당 논리 주소로 이루어진 주소 정보를 생성하는 제 1 과정과, 상기 생성된 주소 정보를 상기 변환된 물리 주소의 순서에 따라 나열한 주소 리스트를 생성하는 제 2 과정을 포함한다.
바람직하게는 상기 물리적인 데이터 연산 단위로 주소 정보를 추출하는 제 4 단계와, 상기 추출된 주소 정보에 해당하는 물리 주소로 데이터의 연산을 수행하는 제 5 단계를 더 포함한다.
바람직하게는 상기 제 5 단계는 상기 데이터 연산에 사용된 주소 정보를 상기 주소 리스트로부터 삭제하는 과정을 더 포함한다.
이하, 첨부된 도면을 참조로 하여 본 발명의 바람직한 실시 예를 상세하게 설명한다.
일반적으로 플래시 메모리는 크게 소블럭 플래시 메모리와 대블럭 플래시 메모리로 나누어진다.
상기 소블럭 플래시 메모리는 실제 물리적인 데이터 연산 단위인 페이지의 크기가 논리적인 데이터 연산 단위인 섹터의 크기와 동일한 반면, 상기 대블럭 플래시 메모리는 실제 물리적인 데이터 연산 단위인 페이지가 논리적인 데이터 연산 단위인 섹터에 비하여 큰 크기를 가진다.
여기서, 상기 섹터는 소정의 사용자 프로그램을 통하여 사용자가 상기 플래시 메모리로의 데이터의 연산 즉, 데이터의 읽기, 쓰기 등의 연산을 수행하는 논리적인 데이터 연산 단위이다.
또한, 상기 페이지는 실제 상기 플래시 메모리에서 수행되는 데이터의 연산을 수행하는 물리적인 데이터 연산 단위로서, 상기 플래시 메모리에서의 데이터 읽기 및 상기 플래시 메모리로의 데이터 쓰기 등의 연산 단위이다.
이때, 상기 물리적인 데이터 연산 단위는 상기 페이지에 한정되지 않고, 사용하는 장치에 따라 블럭 등의 다양한 단위로 사용될 수 있다.
이때, 상기 대블럭 플래시 메모리는 도 5 에 도시된 바와 같이, 블록(100)은 다수개의 섹터(110)로 이루어지는 다수개의 페이지(120)로 이루어진다.
본 실시예에서는 상기 페이지(110, 120, 130)가 상기 섹터(140)의 4배, 즉 상기 섹터(140)가 512byte이 경우, 상기 각 페이지(110, 120, 130)는 2Kbyte인 경우를 예를 들어 설명한다.
여기서, 상기 섹터(140)는 논리적인 연산 단위이며, 상기 페이지(110, 120, 130)는 물리적인 연산 단위이다.
이때, 상기 사용자는 상기 플래시 메모리에 소정의 데이터 연산을 수행하기 위하여 논리 주소를 요청하게 되고, 상기 논리 주소는 상기 플래시 메모리에서 소정의 섹터에 맵핑될 수 있다.
즉, 상기 도 5 와 같이, 소정 섹터에 대하여 물리 주소가 설정된 경우 도 6 와 같은 소정의 맵핑 테이블을 사용하여 상기 각 논리 주소에 해당하는 물리 주소를 맵핑시킬 수 있다.
따라서, 사용자가 소정의 논리 주소를 통하여 데이터의 연산을 수행하는 경우 상기 플래시 메모리에서는 상기 맵핑 테이블에 따른 물리 주소에 실제 데이터의 연산이 수행되는 것이다.
이때, 상기 사용자가 요청한 논리 주소에 따라 해당 물리 주소로 데이터의 연산을 수행하는데, 소정의 물리 주소가 동일한 페이지에 포함된 경우라 할지라도 상기 논리 주소의 순서에 따라 데이터의 연산을 수행하기 때문에 각각 별도로 데이터의 연산을 수행하기 때문에 이로 인해 최적의 데이터 연산을 수행할 수 없게 된다.
본 실시예는 하나의 페이지에 다수개의 물리 주소가 포함된 경우 최적화된 데이터 연산을 수행하기 위한 것으로서, 도 7 에 도시된 바와 같이, 사용자가 소정의 논리 주소를 사용하여 요청하는 데이터 연산을 요청하는 사용자 요청부(200)와, 상기 요청된 논리 주소를 상기 맵핑 테이블을 통해 물리 주소로 변환하는 변환부(300)와, 상기 변환된 물리 주소가 포함된 페이지를 판단하고, 상기 페이지의 순서에 따라 상기 물리 주소의 순서를 재배열하는 재배열부(400)와, 상기 재배열된 물리 주소 중 페이지 단위로 해당 페이지에 포함된 물리 주소를 추출하여 소정의 데이터 연산을 수행하는 연산부(500)와, 상기 플래시 메모리의 동작을 제어하며, 상기 연산부(500)의 제어에 따라 해당 물리 주소에서 실제 데이터 연산을 수행하는 디바이스 드라이버(600)를 포함한다.
여기서, 상기 사용자 요청부(200)는 사용자가 상기 논리 주소를 통하여 소정의 데이터 연산을 요청할 수 있는 사용자 프로그램을 포함한다.
상기 변환부(300)는 상기 사용자가 사용한 논리 주소를 해당 물리 주소로 변환시 필요한 맵핑 테이블을 포함한다.
상기 변환부(300)에 의해 변환된 물리 주소는 해당 논리 주소와 함께 상기 재배열부(400)로 전달되고, 상기 재배열부(400)는 상기 변환된 물리 주소 및 해당 논리 주소로 이루어지는 주소 정보를 생성하고, 상기 주소 정보를 상기 물리 주소의 순서에 따라 나열한 주소 리스트를 생성한다.
이후, 상기 연산부(500)는 상기 재배열부(400)에서 재배열된 주소 정보를 각 페이지 단위로 추출하고, 추출된 페이지에 포함된 주소 정보를 판독하여 해당 물리 주소에 데이터 연산을 수행한다.
또한, 상기 데이터 연산을 수행한 물리 주소에 대한 주소 정보는 상기 주소 리스트로부터 삭제할 수 있다.
상기와 같이 구성되는 본 발명에 따른 플래시 메모리의 데이터 관리 방법을 살펴본다.
본 발명에 따른 플래시 메모리의 데이터 관리 방법은 도 8 에 도시된 바와 같이, 먼저 사용자가 소정의 논리 주소를 사용하여 상기 플래시 메모리에서의 데이터 연산을 요청한다.(S110)
이때, 상기 소블럭 플래시 메모리인 경우에는 논리적인 데이터 연산 단위와 실제 물리적인 데이터 연산 단위가 동일하기 때문에 상기 요청된 논리 주소와 실제 물리 주소가 동일하다.
한편, 상기 대블럭 플래시 메모리인 경우에는 상기 논리적인 데이터 연산 단위가 실제 물리적인 데이터 연산 단위보다 작기 때문에 상기 요청된 논리 주소를 실제 물리 주소로 변환하는 과정이 요구된다.
본 실시예에서는 상기 플래시 메모리가 대블럭 플래시 메모리인 경우를 예를 들어 설명한다.
상기 요청된 논리 주소가 상기 변환부(300)에 전달되면, 상기 맵핑 테이블에 의해 상기 논리 주소가 실제 플래시 메모리의 물리 주소로 변환된다.(S120)
상기 변환된 물리 주소와 해당 논리 주소는 상기 재배열부(400)로 전달되고, 상기 재배열부(400)는 상기 변환된 물리 주소와 해당 논리 주소로 이루어지는 주소 정보를 생성한다.(S130)
이때, 상기 주소 정보는 상기 사용자가 사용한 논리 주소와 상기 논리 주소가 상기 맵핑 테이블에 의해 맵핑된 물리 주소로 이루어진다.
상기 재배열부(400)는 상기 생성된 주소 정보를 상기 변환된 물리 주소의 순서에 따라 재배열한 주소 리스트를 생성한다.(S140)
상기 주소 리스트는 도 9 에 도시된 바와 같이, 상기 변환부(300)에 의해 변환된 물리 주소(710)와 해당 논리 주소(720)로 이루어지는 주소 정보(700)를 상기 물리 주소(710)의 순서에 따라 나열된다.
상기 주소 리스트를 생성한 후 상기 재배열부(400)는 상기 주소 리스트에 포함된 각 주소 정보를 물리적인 데이터 연산 단위인 페이지별로 구분한다.(S150)
즉, 도 10 에 도시된 바와 같이, 상기 재배열부(400)에 의해 생성된 주소 리스트내의 주소 정보에 포함된 물리 주소에 따라 상기 주소 정보를 페이지별로 구분하는 것이다.
이후, 상기 연산부(500)가 상기 주소 리스트에 포함된 주소 정보중 첫번째 페이지 즉, 페이지0 에 포함된 주소 정보를 추출하고(S160), 상기 추출된 주소 정보의 물리 주소에 사용자가 요청한 데이터 연산을 수행한다.(S170)
상기 데이터 연산이 수행완료된 주소 정보는 상기 주소 리스트에서 삭제되고(S180), 상기 주소 리스트에 포함된 모든 주소 정보가 추출되었는지를 판단한다.(S190)
이때, 상기 주소 리스트에 포함된 모든 주소 정보가 추출되지 않은 경우 다음 페이지에 포함되는 주소 정보를 추출하여 상기 데이터 연산을 수행하는 과정(S170, S180)을 반복적으로 수행한다.(S200)
이때, 상기 데이터 연산을 위해 추출된 주소 정보는 상기 데이터 연산 후 상기 주소 리스트로부터 삭제될 수 있다.
이하, 상기와 같은 플래시 메모리의 데이터 관리 방법을 통한 데이터 연산의 바람직한 실시예로 데이터 읽기와 데이터 쓰기의 경우를 예를 들어 간략히 살펴본다.
우선, 상기 데이터 읽기 연산 과정을 간략히 살펴보면, 도 11 에 도시된 바와 같이, 사용자가 논리 주소를 사용하여 데이터 읽기 연산을 요청한다.(S310)
상기 논리 주소가 상기 변환부(300)에서 상기 맵핑 테이블을 통해 물리 주소로 변환된다.(S320)
상기 변환된 물리 주소는 해당 논리 주소와 함께 상기 재배열부(400)로 전달되고, 상기 재배열부(400)는 상기 변환된 물리 주소와 해당 논리 주소로 이루어지는 주소 정보를 생성한다.(S330)
또한, 상기 재배열부(400)는 상기 생성된 주소 정보를 상기 물리 주소의 순서에 따라 재배열한 주소 리스트를 생성한다.(S340)
상기 연산부(500)는 첫번째 페이지에 포함된 물리 주소를 가지는 주소 정보를 상기 주소 리스트로부터 추출한다.(S350)
이후, 상기 연산부(500)는 상기 추출된 주소 정보에 포함된 물리 주소에 기록된 소정의 데이터를 읽어들인다.(S360)
상기 데이터를 읽어들인 주소 정보를 상기 주소 리스트로부터 삭제 후(S370) 상기 주소 리스트에 포함된 모든 주소 정보를 추출하였는지를 판단한다.(S380)
상기 판단 결과 상기 주소 리스트에 추출되지 않은 주소 정보가 있는 경우 다음 페이지에 포함된 주소 정보인 것으로 판단하고, 다음 페이지에 포함된 주소 정보를 추출한다.(S390)
이후, 상기 추출된 주소 정보의 물리 주소에 기록된 데이터를 읽어 들이는 과정(S360, S370)을 상기 주소 리스트에 포함된 모든 주소 정보를 추출할때까지 페이지별로 추출하여 반복적으로 수행한다.
상기와 같은 데이터 읽기 연산을 도 12 를 참조로 하여 보다 상세하게 살펴보면, 사용자가 사용한 논리 주소가 논리 주소0 내지 논리 주소5인 경우를 예를 들어 설명하면, 상기 논리 주소0 내지 논리 주소5 는 상기 맵핑 테이블에 의해 세개의 페이지에 모두 포함될 수 있다.
따라서, 상기 연산부(500)는 3회에 걸쳐 각 페이지에 포함된 물리 주소를 가지는 주소 정보를 상기 주소 리스트를 추출하여 해당 물리 주소에 기록된 데이터를 읽어들일 수 있다.
한편, 상기 플래시 메모리로의 데이터 쓰기 연산 과정을 간략히 살펴보면, 도 13 에 도시된 바와 같이, 데이터 쓰기 연산을 수행할 논리 주소를 사용하여 사용자가 데이터 쓰기 연산을 요청한다.(S410)
상기 데이터 쓰기 연산시 사용한 논리 주소가 상기 변환부(300)에서 상기 맵핑 테이블에 의해 실제 플래시 메모리의 물리 주소로 변환된다.(S420)
상기 변환된 물리 주소와 해당 논리 주소가 상기 재배열부(400)로 전달되고, 상기 재배열부(400)는 상기 변환된 물리 주소와 해당 논리 주소로 이루어지는 주소 정보를 생성한다.(S430)
상기 재배열부(400)는 상기 생성된 주소 정보를 상기 주소 정보에 포함된 물리 주소의 순서에 따라 재배열하여 나열한 주소 리스트를 생성한다.(S440)
상기 연산부(500)는 상기 생성된 주소 리스트 중 각 페이지에 포함된 주소 정보를 구분한 후 첫번째 페이지에 포함된 주소 정보를 추출한다.(S450)
상기 추출된 주소 정보의 물리 주소에 소정의 데이터를 기록한다.(S460)
상기 데이터 기록이 완료된 물리 주소를 가지는 주소 정보를 상기 주소 리스트로부터 삭제한다.(S470)
이후, 상기 주소 리스트에 포함된 모든 주소 정보를 추출하였는지를 판단하고(S480), 상기 판단 결과 모든 주소 정보가 추출되지 않은 경우 다음 페이지에 포함되는 주소 정보가 있는 것으로 판단하여 다음 페이지에 포함되는 주소 정보를 추출한다.(S490)
그 다음, 다음 페이지에 포함된 주소 정보를 추출하고, 상기 추출된 주소 정보의 물리 주소에 소정의 데이터를 쓰는 과정(S460, S470)을 상기 주소 리스트에 포함된 모든 주소 정보를 추출할때까지 반복한다.
상기 데이터 쓰기 연산을 도 14 을 참조로 하여 보다 상세하게 살펴보면, 사용자가 사용한 논리 주소가 논리 주소0 내지 논리 주소5인 경우를 예를 들어 설명하면, 상기 논리 주소0 내지 논리 주소5 는 상기 맵핑 테이블에 의해 세개의 페이지에 모두 포함될 수 있다.
따라서, 상기 연산부(500)는 3회에 걸쳐 각 페이지에 포함된 물리 주소를 가지는 주소 정보를 상기 주소 리스트를 추출하여 해당 물리 주소에 소정의 데이터를 기록할 수 있다.
이상에서 본 발명에 대하여 상세히 기술하였지만, 본 발명이 속하는 기술 분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음은 자명하며, 따라서 본 발명의 실시예에 따른 단순한 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
상기한 본 발명에 의하면, 물리적인 데이터 연산 단위인 각 페이지에 포함된 물리 주소를 구분하고, 상기 구분된 물리 주소에 소정의 데이터 연산을 수행하여 논리적인 데이터 연산 단위에 비하여 물리적인 데이터 연산 단위가 큰 대블록 플래시 메모리에서의 데이터 연산시 소요되는 시간을 감소시켜 최적의 데이터 연산을 수행할 수 있는 효과가 있다.
도 1 은 일반적인 대블럭 플래시 메모리의 구조가 도시된 도면.
도 2 는 종래의 기술에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 3 은 종래의 기술에 따른 플래시 메모리의 데이터 관리 방법이 도시된 도면.
도 4a 는 논리 주소와 맵핑 테이블에 의해 변환된 물리 주소가 도시된 도면.
도 4b 는 종래의 기술에 따른 플래시 메모리의 데이터 읽기 연산이 도시된 도면.
도 5 는 본 발명에 적용되는 플래시 메모리 구조가 도시된 도면.
도 6 은 본 발명에 적용되는 맵핑 테이블이 도시된 도면.
도 7 은 본 발명에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 8 은 본 발명에 따른 플래시 메모리의 데이터 관리 방법이 도시된 도면.
도 9 는 본 발명에 따른 주소 리스트가 도시된 도면.
도 10 은 본 발명에 따른 주소 리스트에 포함된 주소 정보가 페이지별로 구분된 도면.
도 11 은 본 발명에 따른 플래시 메모리의 데이터 읽기 연산 방법이 도시된 도면.
도 12 는 본 발명에 따른 플래시 메모리의 데이터 읽기 연산에서의 페이지 읽기 과정이 도시된 도면.
도 13 은 본 발명에 따른 플래시 메모리의 데이터 쓰기 연산 방법이 도시된 도면.
도 14 는 본 발명에 따른 플래시 메모리의 데이터 쓰기 연산에서의 페이지 쓰기 과정이 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
200: 사용자 요청부 300: 변환부
400: 재배열부 500: 연산부
600: 디바이스 드라이버

Claims (8)

  1. 논리 주소를 물리 주소로 변환하는 변환부와,
    물리적인 데이터 연산 단위별로 물리 주소를 구분하여 재배열하는 재배열부와,
    상기 재배열된 물리 주소를 상기 물리적인 데이터 연산 단위로 추출하여 소정의 데이터 연산을 수행하는 연산부를 포함하는 플래시 메모리의 데이터 관리 장치.
  2. 제 1 항에 있어서,
    상기 재배열부는 상기 변환된 물리 주소와 해당 논리 주소로 이루어지는 주소 정보를 상기 물리 주소의 순서에 따라 나열한 주소 리스트를 생성하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  3. 제 2 항에 있어서,
    상기 재배열부는 상기 주소 리스트에 포함된 주소 정보를 각 페이지별로 구분하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  4. 제 3 항에 있어서,
    상기 연산부에서 데이터 연산을 위해 추출된 주소 정보를 상기 주소 리스트로부터 삭제되는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  5. 논리 주소를 물리 주소로 변환하는 제 1 단계와,
    물리 주소의 순서에 따라 상기 변환된 물리 주소를 재배열하는 제 2 단계와,
    상기 재배열된 물리 주소를 물리적인 데이터 연산 단위별로 구분하는 제 3 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 제 2 단계는 상기 변환된 물리 주소와 해당 논리 주소로 이루어진 주소 정보를 생성하는 제 1 과정과,
    상기 생성된 주소 정보를 상기 변환된 물리 주소의 순서에 따라 나열한 주소 리스트를 생성하는 제 2 과정을 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  7. 제 6 항에 있어서,
    상기 물리적인 데이터 연산 단위로 주소 정보를 추출하는 제 4 단계와,
    상기 추출된 주소 정보에 해당하는 물리 주소로 데이터의 연산을 수행하는 제 5 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  8. 제 7 항에 있어서,
    상기 제 5 단계는 상기 데이터 연산에 사용된 주소 정보를 상기 주소 리스트로부터 삭제하는 과정을 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
KR10-2003-0097486A 2003-12-26 2003-12-26 플래시 메모리의 데이터 관리 장치 및 방법 KR100533682B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR10-2003-0097486A KR100533682B1 (ko) 2003-12-26 2003-12-26 플래시 메모리의 데이터 관리 장치 및 방법
US11/003,400 US7526600B2 (en) 2003-12-26 2004-12-06 Data management device and method for flash memory
EP04257934A EP1548600B1 (en) 2003-12-26 2004-12-17 Data management device and method for flash memory
DE602004004494T DE602004004494T2 (de) 2003-12-26 2004-12-17 Datenverwaltungs-Vorrichtung und -Methode für einen Flash-Speicher
JP2004369991A JP2005196769A (ja) 2003-12-26 2004-12-21 フラッシュメモリのデータ管理装置及び方法
CNB2004101017114A CN1321378C (zh) 2003-12-26 2004-12-23 用于闪速存储器的数据管理装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0097486A KR100533682B1 (ko) 2003-12-26 2003-12-26 플래시 메모리의 데이터 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050066228A KR20050066228A (ko) 2005-06-30
KR100533682B1 true KR100533682B1 (ko) 2005-12-05

Family

ID=34545912

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0097486A KR100533682B1 (ko) 2003-12-26 2003-12-26 플래시 메모리의 데이터 관리 장치 및 방법

Country Status (6)

Country Link
US (1) US7526600B2 (ko)
EP (1) EP1548600B1 (ko)
JP (1) JP2005196769A (ko)
KR (1) KR100533682B1 (ko)
CN (1) CN1321378C (ko)
DE (1) DE602004004494T2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100659475B1 (ko) * 2005-05-26 2006-12-20 영남대학교 산학협력단 Zigbee MAC 계층의 재정렬 송신 버퍼 구조
US8566479B2 (en) * 2005-10-20 2013-10-22 International Business Machines Corporation Method and system to allow logical partitions to access resources
JP4984666B2 (ja) * 2006-06-12 2012-07-25 ソニー株式会社 不揮発性メモリ
JP4498341B2 (ja) * 2006-11-20 2010-07-07 株式会社東芝 メモリシステム
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
WO2008150927A2 (en) * 2007-05-30 2008-12-11 Schooner Information Technology System including a fine-grained memory and a less-fine-grained memory
US8732386B2 (en) 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US20090265521A1 (en) * 2008-04-18 2009-10-22 Mediatek Inc. Pattern protection method and circuit
JP5066209B2 (ja) * 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8677055B2 (en) 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8666939B2 (en) 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
CN102467460B (zh) * 2010-11-12 2014-02-26 群联电子股份有限公司 资料管理方法、存储器控制器与存储器储存装置
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
TWI454913B (zh) * 2012-06-26 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103049389B (zh) * 2012-12-14 2016-08-03 锐迪科科技有限公司 Nand闪存控制器及其写入控制方法
US9778848B2 (en) * 2014-12-23 2017-10-03 Intel Corporation Method and apparatus for improving read performance of a solid state drive
US11126369B1 (en) 2020-02-28 2021-09-21 Western Digital Technologies, Inc. Data storage with improved suspend resume performance
US20210272619A1 (en) * 2020-02-28 2021-09-02 Western Digital Technologies, Inc. Data Storage With Improved Read Performance By Avoiding Line Discharge

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53129923A (en) 1977-04-20 1978-11-13 Hitachi Ltd Control system for input/output device
GB2251323B (en) 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JPH04278651A (ja) 1991-03-07 1992-10-05 Nec Corp 主記憶装置
US6757800B1 (en) * 1995-07-31 2004-06-29 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JPH0991975A (ja) 1995-09-28 1997-04-04 Nec Corp 不揮発性メモリへのデータ格納装置
JP3702515B2 (ja) 1995-12-04 2005-10-05 富士通株式会社 フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット
US6112265A (en) 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US6078985A (en) * 1997-04-23 2000-06-20 Micron Technology, Inc. Memory system having flexible addressing and method using tag and data bus communication
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
KR19990079321A (ko) 1998-04-03 1999-11-05 김영환 플래시 메모리의 데이터 리드 및 라이트방법
US6427186B1 (en) 1999-03-30 2002-07-30 Frank (Fong-Long) Lin Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers
KR20010105824A (ko) 2000-05-18 2001-11-29 서진원 인터넷의 웹사이트 게시판을 이용한 자동광고시스템
JP3472256B2 (ja) 2000-10-17 2003-12-02 株式会社東芝 データ処理装置およびデータ処理方法
US7020739B2 (en) * 2000-12-06 2006-03-28 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows

Also Published As

Publication number Publication date
EP1548600A1 (en) 2005-06-29
US7526600B2 (en) 2009-04-28
JP2005196769A (ja) 2005-07-21
EP1548600B1 (en) 2007-01-24
CN1637724A (zh) 2005-07-13
DE602004004494D1 (de) 2007-03-15
KR20050066228A (ko) 2005-06-30
CN1321378C (zh) 2007-06-13
US20050144421A1 (en) 2005-06-30
DE602004004494T2 (de) 2007-10-31

Similar Documents

Publication Publication Date Title
KR100533682B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
KR102584018B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
JP4832521B2 (ja) フラッシュメモリメディアにおけるデータ管理方法
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
KR100218871B1 (ko) 반도체 디스크 장치
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
JP2006216036A (ja) フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法
KR20090026941A (ko) 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
JP2006172458A (ja) 不揮発性保存装置にマルチメディアデータをブロック単位で保存する方法及び装置
KR20060080972A (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US20180366158A1 (en) Method for accessing shingled magnetic recording smr disk, and server
KR101374065B1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
JP2010146326A (ja) 記憶装置、その制御方法及びその記憶装置を用いた電子装置
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
JP2005222534A (ja) フラッシュメモリのデータ管理装置及び方法
KR20120054502A (ko) 반도체 기억 장치
US20180357280A1 (en) Trie search engine
US20100153624A1 (en) Data managing method for non-volatile memory and non-volatile memory device using the same
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
KR100479170B1 (ko) 메모리 억세스 제어장치 및 방법
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof
JP5206103B2 (ja) ストレージ装置、ストレージ装置制御システム、ストレージ装置の制御方法、及びプログラム
WO1999015969A1 (en) File system block sub-allocator
RU2752782C1 (ru) Способ записи секторных данных в кэш-память
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 15