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

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

Info

Publication number
KR100533683B1
KR100533683B1 KR10-2004-0007002A KR20040007002A KR100533683B1 KR 100533683 B1 KR100533683 B1 KR 100533683B1 KR 20040007002 A KR20040007002 A KR 20040007002A KR 100533683 B1 KR100533683 B1 KR 100533683B1
Authority
KR
South Korea
Prior art keywords
data
flash memory
block
internal memory
log
Prior art date
Application number
KR10-2004-0007002A
Other languages
English (en)
Other versions
KR20050078916A (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-2004-0007002A priority Critical patent/KR100533683B1/ko
Priority to JP2005004564A priority patent/JP2005222534A/ja
Priority to EP05250382A priority patent/EP1562121A3/en
Priority to US11/047,779 priority patent/US20050169058A1/en
Priority to CNA2005100052539A priority patent/CN1652088A/zh
Publication of KR20050078916A publication Critical patent/KR20050078916A/ko
Application granted granted Critical
Publication of KR100533683B1 publication Critical patent/KR100533683B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/54Systems for transmission via power distribution lines
    • H04B3/546Combination of signalling, telemetering, protection
    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2203/00Indexing scheme relating to line transmission systems
    • H04B2203/54Aspects of powerline communications not already covered by H04B3/54 and its subgroups
    • H04B2203/5462Systems for power line communications
    • H04B2203/5479Systems for power line communications using repeaters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인한 공간 낭비 및 성능 저하를 방지할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 장치는 소정의 데이터 연산을 수행하고자 하는 물리 블록에 존재하는 데이터를 상기 내부 메모리로 복사하고, 상기 내부 메모리에서 소정의 데이터 연산을 수행하여 상기 물리 블록으로 이동시킨다.

Description

플래시 메모리의 데이터 관리 장치 및 방법{Data managing device and method for flash memory}
본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 대블록 플래시 메모리에서 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인해 발생될 수 있는 공간 낭비 및 성능 저하를 방지할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
상기 비휘발성 메모리 중에서 주로 사용되는 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자로서, 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같은 빠른 액세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기의 저장 매체로 널리 사용되고 있다.
또한, 상기 플래시 메모리는 하드웨어적 특성상 기존의 램(Random Access Memory, RAM)이나 비휘발성 저장 매체, 마그네틱 저장 매체등과 마찬가지로 특정 위치에 저장된 데이터를 임의로 접근할 수 있지만, 데이터를 삭제할 경우에는 기존의 저장 매체와는 다르게 블록(Block) 단위로 삭제가 이루어진다.
이러한 플래시 메모리를 기반으로 하는 일반적인 플래시 메모리 시스템은 도 1 에 도시된 바와 같이, 플래시 메모리(10)와, 사용자가 상기 플래시 메모리(10)에서 소정의 데이터 연산을 요청할 수 있는 소정의 사용자 프로그램(21)을 탑재하여, 상기 사용자의 요청에 따라 상기 플래시 메모리(10)에서 소정의 데이터 연산이 수행되도록 하는 제어부(20)를 포함한다.
이때, 상기 제어부(20)는 상기 사용자 프로그램을 탑재하는 파일 시스템(22)과, 상기 사용자의 요청에 따른 소정의 데이터 연산 즉, 상기 플래시 메모리(10)의 읽기/쓰기 동작을 상기 플래시 메모리(10)에 전달하는 플래시 변환 계층(Flash Translation Layer, 이하 FTL라 함)(23)을 포함한다.
상기 FTL(23)은 상기 플래시 메모리(10)를 블록 디바이스처럼 사용할 수 있게 하는 소프트웨어로서, 일반적으로 상기 플래시 메모리(10)를 관리하기 위한 블록 재사상(Remapping) 기법을 지원한다.
참고로, 상기 블록 재사상 기법은 수정 또는 삭제로 인하여 상기 플래시 메모리(10)에 기록된 물리 블록 번호(Physical Block Number, 이하 PBN라 함)가 변경되어도 동일한 논리 블록 번호(Logical Block Number, 이하 LBN이라 함)로 플래시 메모리(10)에 기록된 데이터에 접근할 수 있도록, 특정 데이터에 대한 LBN과 PBN간의 사상 정보를 관리하는 것이다.
상기 플래시 메모리(10)를 사용하기 위해서는 상기 FTL에 의해 로우 레벨 포멧(Low Level Format)이 수행되는데, 상기 플래시 메모리(10)는 상기 Low Level Format에 의해 도 2에 도시된 바와 같이, 각각 적어도 하나 이상의 블록으로 이루어지는 맵 영역(31), 로그 영역(32), 데이터 영역(33) 및 여유 영역(34)으로 구분된다.
이때, 상기 맵 영역(31)은 상기 LBN을 PBN으로 변환하는 블록 맵핑 테이블(Block Mapping Table)을 포함하는데, 상기 블록 맵핑 테이블은 상기 데이터 영역(33)에서 상기 LBN에 해당하는 PBN을 저장하고 있으며 상기 블록 맵핑 테이블이 갱신된 경우 이를 상기 맵블록(11)에 기록한다.
또한, 상기 로그 영역(32)은 상기 플래시 메모리(10)에서 데이터 연산을 수행할 경우 우선적으로 사용되는 영역으로서 상기 데이터 영역(33)에 우선하여 데이터의 쓰기/읽기가 이루어지는 영역이다.
또한, 상기 로그 영역(32)에는 사용자의 데이터 연산 요청시 사용한 LBN을 상기 로그 영역(32)내의 소정 PBN에 맵핑시키는 로그 테이블(Log Table)이 저장된다.
이러한 로그 테이블은 도 3에 도시된 바와 같이, 상기 LBN(32a), 상기 LBN(32a)에 맵핑되는 상기 로그 블록(32)내의 소정 블록에 대한 PBN(32b) 및 상기 로그 블록(32)내의 소정 블록에서 데이터가 존재하는 페이지 번호(32c)를 포함한다.
여기서, 상기 페이지는 실제 플래시 메모리의 소정 블록에서의 데이터 연산 단위로서, 하나의 블록은 다수의 페이지로 이루어진다.
이때, 상기 페이지 번호(32c)는 상기 로그 영역(32)에 데이터를 쓰는 경우, 상기 데이터가 쓰여져야 하는 페이지와 무관하게 비어있는 페이지에 데이터가 쓰여지기 때문에 소정 페이지에 쓰여진 데이터가 원래는 어느 페이지에 쓰여져야 하는지를 나타낸다.
따라서, 상기 페이지 번호(32c)는 상기 로그 영역(32)의 소정 블록에 존재하는 데이터를 상기 데이터 영역(33)의 소정 블록 이동시킬 경우, 도 4에 도시된 바와 같이, 상기 로그 영역(32)의 소정 로그 블록(33d)의 각 페이지에 쓰여진 데이터가 상기 페이지 번호(32c)를 통하여 상기 데이터 영역(33)의 소정 데이터 블록(33a)에는 원래의 페이지에 쓰여질 수 있는 것이다.
상기 데이터 영역(33)은 블록 단위로 접근될 수 있도록 상기 FTL(23)에 의해 일정한 크기의 블록으로 분할된 다수의 블록으로 이루어지고, 각 블록은 순차적으로 부여되는 PBN을 가진다.
상기 여유 영역(34)은 상기 로그 영역(32)에 데이터가 존재할 수 있는 공간이 없는 경우 사용할 수 있는 블록으로 이루어진다.
상기한 바와 같은 플래시 메모리를 이용한 데이터 연산 방법을 살펴본다.
우선, 상기 플래시 메모리에 데이터를 쓰는 경우를 예를 들어 설명하면, 도 5에 도시된 바와 같이, 먼저 사용자가 사용한 LBN이 상기 맵 영역(31)에 저장된 블록 맵핑 테이블에 의해 데이터 영역(33)의 PBN으로 변환된다.(S51)
또한, 상기 LBN은 상기 로그 영역(32)에 저장된 로그 테이블에 의해 상기 로그 영역(32)의 PBN으로 변환된다.(S52)
이하, 상기 데이터 영역(33)의 PBN은 데이터 PBN이라 칭하고, 상기 로그 영역(32)의 PBN은 로그 PBN이라 칭한다.
이때, 상기 데이터가 쓰여질 로그 PBN이 존재하고(S53), 상기 LBN에 따른 상기 로그 PBN의 해당 페이지에 데이터를 쓸 수 있는 경우(S54), 상기 해당 페이지에 데이터를 쓰게 된다.(S55)
만일, 상기 데이터를 쓰려고 하는 페이지에 다른 데이터가 존재하는 경우, 상기 로그 PBN내에서 다른 페이지를 할당할 수 있는지를 판단하고(S56), 다른 페이지가 존재하는 경우 새로 할당된 페이지에 데이터를 쓰게 된다.(S57)
만일, 상기 LBN이 상기 로그 테이블에 의해 변환된 로그 PBN에 다른 데이터가 존재하는 경우, 상기 로그 영역(32)내에서 다른 블록을 할당할 수 있는지를 판단한다.(S58)
상기 판단 결과 다른 블록을 할당하지 못하는 경우, 상기 로그 블록(32)내의 머지(Merge)연산을 통해 블록을 병합하고, 데이터가 쓰여지지 않은 블록을 할당한다.(S59)
이후, 상기 블록 병합을 통해 할당된 블록에 데이터를 쓰게 된다.(S60)
이때, 상기 블록 병합을 거치지 않고 다른 블록을 할당할 수 있는 경우에는 해당 블록에 데이터를 쓰게 된다.
상기한 바와 같은 데이터 쓰기가 완료되면, 상기 로그 테이블을 갱신한다.(S61))
한편, 다른 실시예로 데이터 읽기의 경우에는 도 6에 도시된 바와 같이, 먼저 상기 LBN을 통하여 상기 로그 PBN을 검색한다.(S71)
상기 검색 결과 해당 로그 PBN가 존재하면(S72), 상기 로그 PBN으로 접근하여 데이터가 쓰여진 페이지를 검색한다.(S73)
상기 페이지 검색 결과 해당 데이터가 하는 경우, 상기 로그 PBN의 해당 페이지에서 데이터를 읽어 들인다.(S74)
만일, 상기 LBN에 해당하는 로그 PBN이 존재하지 않는 않거나 상기 검색된 로그 PBN에서 데이터가 쓰여진 페이지를 검색하지 못한 경우, 상기 블록 맵핑 테이블에 의한 데이터 영역(33)의 데이터 PBN을 통해 데이터를 검색하여 읽어 들이게 된다.(S75)
이러한 플래시 메모리는 크게 소블록 플래시 메모리와 대블록 플래시 메모리로 나뉘어질 수 있다.
상기 소블록 플래시 메모리는 논리적인 연산 단위와 물리적인 연산 단위가 동일한 반면, 상기 대블록 플래시 메모리는 상기 논리적인 연산 단위에 비하여 물리적인 연산 단위가 큰 특징을 가진다.
따라서, 상기 대블록 플래시 메모리의 경우 적어도 하나 이상의 논리적인 연산 단위가 모여 하나의 물리적인 연산 단위를 이루기 때문에 비효율적인 데이터 연산으로 인해 플래시 메모리의 상당 부분을 사용하지 못하는 결과를 초래할 수 있다.
즉, 상기 대블록 플래시 메모리에서 논리적인 연산 단위가 512byte이고, 물리적인 연산 단위가 2048byte인 경우를 예를 들어 설명하면, 상기 512byte 단위로 데이터 연산이 수행될 경우, 실제 플래시 메모리에서는 2048byte중 512byte만 사용하고 나머지 1536byte는 사용되지 않아 전체 용량의 75%를 낭비하게 되는 문제점이 있다.
본 발명은 대블록 플래시 메모리에서 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인해 발생되는 플래시 메모리에서의 공간 낭비를 최소화할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에거 명확하게 이해되어 질 수 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 장치는 소정의 내부 메모리를 포함하는 플래시 메모리의 데이터 관리 장치에 있어서, 소정의 데이터 연산을 수행하고자 하는 물리 블록에 존재하는 데이터를 상기 내부 메모리로 복사하고, 상기 내부 메모리에서 소정의 데이터 연산을 수행하여 상기 물리 블록으로 이동시킨다.
바람직하게는 상기 내부 메모리로 물리적인 연산 단위에 해당하는 데이터가 복사된다.
바람직하게는 상기 물리 블록으로 이동되는 데이터는 상기 내부 메모리로 복사된 데이터가 논리적인 연산 단위로 수정된다.
한편, 본 실시예에 따른 플래시 메모리의 데이터 관리 방법은 소정의 내부 메모리를 포함하는 플래시 메모리의 데이터 관리방법에 있어서, 소정의 데이터 연산을 수행하는 물리 블록에 존재하는 데이터를 상기 내부 메모리로 복사하는 제 1 단계와, 상기 내부 메모리에서 소정의 데이터 연산을 수행하는 제 2 단계를 포함한다.
바람직하게는 상기 제 1 단계는 데이터 연산을 수행하는 논리 블록에 해당하는 물리 블록을 검색하는 제 1 과정과, 상기 물리 블록에 존재하는 데이터를 물리적인 연산 단위로 상기 내부 메모리에 복사하는 제 2 과정을 포함한다.
바람직하게는 상기 제 4 단계는 상기 논리 블록 번호를 소정의 물리 블록 번호에 맵핑시키는 테이블을 통해 해당 물리 블록을 검색한다.
바람직하게는 상기 제 2 단계는 상기 내부 메모리에 복사된 데이터상에서 논리적인 연산 단위로 데이터 연산을 수행한다.
바람직하게는 상기 내부 메모리에서 데이터 연산이 완료된 데이터를 상기 물리 블록으로 이동시키는 제 3 단계를 더 포함한다.
바람직하게는 상기 제 3 단계는 상기 물리 블록으로 데이터 이동 후 상기 테이블을 갱신하는 과정을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
일반적으로 플래시 메모리는 크게 소블록 플래시 메모리와 대블록 플래시 메모리로 나뉘어질 수 있다.
상기 소블록 플래시 메모리는 논리적인 연산 단위와 물리적인 연산 단위의 크기가 동일한 반면, 상기 대블록 플래시 메모리는 논리적인 연산 단위에 비하여 물리적인 연산 단위의 크기가 큰 특징을 가진다.
즉, 상기 소블록 플래시 메모리는 도 7a에 도시된 바와 같이, 논리적인 연산 단위(51)와 물리적인 연산 단위(52)가 동일하고, 상기 대블록 플래시 메모리는 도 7b에 도시된 바와 같이, 물리적인 연산 단위(53)는 적어도 하나 이상의 논리적인 연산 단위(54)를 포함한다.
여기서, 상기 논리적인 연산 단위는 사용자측에서의 데이터 연산 단위로서 일반적으로 섹터라 칭하고, 상기 물리적인 연산 단위는 실제 플래시 메모리에서의 데이터 연산 단위로서 일반적으로 페이지라 칭한다.
또한, 상기 논리적인 연산 단위 및 물리적인 연산 단위는 상기 플래시 메모리가 사용되는 장치에 따라 다양한 크기로 사용될 수 있다.
이때, 상기 소블록 플래시 메모리는 상기 논리적인 연산 단위와 물리적인 연산 단위가 동일하기 때문에 용이한 데이터 연산이 가능하지만 상기 대블록 플래시 메모리는 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인해 비효율적인 데이터 연산이 수행될 수 있다.
즉, 상기 대블록 플래시 메모리에서 논리적인 연산 단위의 크기가 512byte이고, 상기 물리적인 연산 단위의 크기가 2048byte인 경우를 예를 들어 설명하면, 상기 사용자측에서는 512byte단위로 데이터 연산을 수행하기 때문에 상기 플래시 메모리에서는 전체 2048byte중 512byte만 사용하게 되어 나머지 공간을 낭비하게 된다.
본 실시예는 상기 대블록 플래시 메모리에서 상기 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인한 공간 낭비와 성능 저하를 개선할 수 있는 플래시 메모리의 데이터 관리 장치에 관한 것으로서, 상기 플래시 메모리의 데이터 관리 장치는 도 8에 도시된 바와 같이, 소정의 내부 메모리(110)를 포함하는 플래시 메모리(100)를 블록 디바이스처럼 사용할 수 있도록 하고, 상기 플래시 메모리(100)에서의 LBN과 PBN간의 맵핑 정보를 포함하는 FTL(200)과, 상기 맵핑 정보에 따라 상기 플래시 메모리(100)에서 동일한 포함된 다수의 논리 주소에 대한 데이터 연산 수행시 해당 물리 주소의 데이터를 상기 내부 메모리(110)로 이동시키고, 상기 내부 메모리(110)에서 소정의 데이터 연산을 수행하는 제어부(300)를 포함한다.
상기 FTL(200)은 상기 플래시 메모리(100)를 사용하기 위해 로우 레벨 포멧을 수행하게 되는데, 상기 플래시 메모리(100)는 도 9에 도시된 바와 같이, 상기 로우 레벨 포멧에 의해 각각 적어도 하나 이상의 블록으로 이루어지는 FTL 정보 영역(101), 로그 영역(102), 여유 영역(103) 및 데이터 영역(104)으로 구분될 수 있다.
이때, 상기 FTL 정보 영역(101)에는 사용자측에서 사용한 LBN을 상기 데이터 영역(104)의 PBN으로 맵핑시키는 블록 맵핑 테이블을 포함한다.
이러한 블록 맵핑 테이블은 도 10에 도시된 바와 같이, 사용자가 사용한 소정의 LBN(510)에 대응되는 상기 데이터 영역(104)의 PBN(520)으로 이루어진다.
또한, 상기 로그 영역(102)에는 상기 LBN을 상기 로그 영역(102)내의 PBN으로 맵핑시키는 로그 테이블이 저장된다.
즉, 상기 로그 영역(102)은 상기 플래시 메모리(100)에 소정의 데이터 연산을 수행할 경우, 우선적으로 데이터 연산이 수행되는 영역으로서 상기 LBN을 상기 로그 영역(102)의 PBN으로 맵핑시키는 로그 테이블을 포함한다.
또한, 상기 로그 영역(102)의 각 PBN은 상기 데이터 영역(104)의 PBN에 맵핑되는데, 도 11에 도시된 바와 같이, 상기 로그 영역(102)의 각 PBN(530)은 상기 데이터 영역(104)의 PBN(540)과 맵핑된다.
이러한 로그 테이블은 도 12에 도시된 바와 같이, 소정의 LBN(610)에 맵핑되는 PBN(620), 상기 PBN(620)에 포함되는 각 페이지의 번호(630)를 포함한다.
상기 여유 영역(103)은 상기 로그 영역(102)에 비어있는 공간이 존재하지 않을 경우 사용되는 영역이다.
즉, 상기 플래시 메모리(100)에서 소정의 데이터 연산 수행시 상기 로그 영역(102)에서 데이터 연산을 수행할 빈 공간이 존재하지 않는 경우, 상기 여유 영역(104)를 맵핑시켜 데이터 연산이 수행되도록 한다.
상기 제어부(300)는 상기 플래시 메모리(100)에 소정의 데이터 연산을 수행할 LBN에 해당하는 PBN에 존재하는 데이터를 상기 내부 메모리(100)로 이동시키고 데이터 연산을 수행하게 된다.
이때, 상기 LBN은 데이터 연산을 수행할 PBN뿐만 아니라 상기 PBN에 포함된 논리적인 연산 단위인 섹터와 물리적인 연산 단위인 페이지의 정보도 함께 포함한다.
즉, 상기 섹터의 크기가 512byte이고 상기 페이지의 크기가 2048byte인 경우를 예를 들어 설명하면, 도 13a와 같이 소정 페이지(710)의 단일 섹터 단위로 데이터 연산을 수행하거나, 도 13b와 같이 각 페이지(720, 730, 740)에서 적어도 하나 이상의 섹터에 대한 데이터 연산을 같이 수행할 수 있다.
따라서, 상기 제어부(300)는 상기 플래시 메모리(100)의 소정 페이지에 이미 존재하는 데이터를 상기 내부 메모리(110)로 복사한 후, 해당 섹터에 대한 데이터 연산을 수행하고 이를 다시 해당 페이지에 이동시키는 것이다.
본 실시예에서는 상기 데이터 연산을 수행할 물리 주소가 이미 소정의 데이터가 존재하여 빈 공간이 존재하지 않는 경우를 예를 들어 설명한다.
따라서, 해당 페이지의 데이터를 상기 내부 메모리(100)로 복사시키고, 해당 섹터의 데이터를 오버랩시키게 되면 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인한 공간의 낭비를 방지할 수 있게 된다.
상기와 같이 구성되는 본 실시예에 따른 플래시 메모리의 데이터 관리 장치의 동작을 살펴보면 다음과 같다.
본 실시예에 따른 플래시 메모리의 데이터 관리 방법을 데이터 쓰기와 데이터 읽기를 예를 들어 설명한다.
우선, 본 실시예에 따른 플래시 메모리의 데이터 쓰기 방법은 도 14에 도시된 바와 같이, 먼저 사용자가 소정의 LBN에 데이터를 쓰고자 하는 경우, 상기 로그 테이블에 의해 상기 LBN이 PBN으로 변환된다.(S110)
이때, 상기 데이터는 우선적으로 상기 로그 영역(102)에 쓰여지므로 상기 LBN은 상기 로그 영역(102)의 PBN으로 변환된다.
만일, 상기 LBN에 맵핑되는 PBN이 없는 경우(S120), 상기 LBN을 소정의 PBN을 맵핑시켜 이를 상기 로그 테이블에 추가한다.(S130)
이후, 상기 LBN이 PBN으로 변환되면, 해당 PBN에서의 페이지를 검색한다.(S140)
해당 페이지가 검색되면, 상기 페이지에 포함된 모든 섹터에 데이터를 쓸것인지의 여부를 판단한다.(S150)
상기 판단 결과 모든 섹터에 데이터를 쓰는 경우, 해당 페이지에 데이터를 쓰게 된다.(S160)
만일, 상기 판단 결과 일부 섹터에 데이터를 쓰는 경우, 해당 페이지의 데이터를 상기 내부 메모리(110)로 복사한다.(S170)
즉, 도 15에 도시된 바와 같이, 상기 LBN의 페이지 3에서 섹터1과 섹터2에 데이터를 쓰고, 도 16에 도시된 바와같이 상기 로그 테이블에 의해 상기 데이터가 상기 LBN에 해당하는 로그 영역(102)의 PBN의 페이지 1에 쓰여지는 경우를 예를 들어 설명하면, 도 17에 도시된 바와 같이, 상기 LBN에 해당하는 데이터 영역(104)의 PBN에서 페이지 3에 존재하는 데이터를 상기 내부 메모리(110)로 복사한다.
이때, 상기 데이터 영역(104)의 데이터가 상기 내부 메모리(110)로 복사되었으나 상기 내부 메모리(110)에 복사되는 데이터는 상기 로그 영역(102)의 데이터일 수도 있다.
이후, 상기 내부 메모리(110)에 복사된 데이터를 수정하여 상기 페이지에 상기 수정된 데이터를 쓰게 된다.(S180)
즉, 도 18에 도시된 바와 같이, 상기 LBN에 해당하는 상기 로그 영역(102)의 PBN의 페이지 1에는 상기 데이터 영역(104)에서 상기 내부 메모리(110)으로 복사된 데이터에서 섹터1과 섹터2가 수정되어 상기 로그 영역(102)에서 PBN의 페이지1에 쓰여지는 것이다.
상기 페이지에 데이터 쓰기가 완료되면, 상기 로그 테이블을 갱신한다.(S190)
한편, 다른 실시예로 플래시 메모리에서 데이터를 읽기 위한 방법을 살펴본다.
본 실시예에 따른 플래시 메모리에서 데이터를 읽는 방법은 도 18에 도시된 바와 같이, 먼저 사용자가 소정의 LBN을 통하여 데이터 읽기를 요청하면(S210), 상기 FTL 정보 영역(101)에 저장된 로그 테이블을 상기 LBN에 해당하는 PBN이 상기 로그 영역(102)에 존재하는지의 여부를 판단한다.(S220)
상기 판단 결과 상기 로그 영역(102)에 해당 PBN이 존재하는 경우, 상기 PBN에 데이터가 존재하는 페이지가 존재하는지의 여부를 판단한다.(S230)
상기 판단 결과 상기 로그 영역(102)에 해당 데이터가 존재하는 페이지가 존재하는 경우, 상기 페이지에서 데이터를 읽어들인다.(S240)
만일, 상기 로그 영역(102)의 해당 데이터가 존재하는 페이지가 존재하지 않는 경우, 상기 로그 테이블을 통해 상기 데이터 영역(104)의 소정 블록의 페이지에서 해당 데이터를 읽어 들인다.(S250)
이상과 같이 본 발명에 따른 플래시 메모리의 데이터 관리 장치 및 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 플래시 메모리의 데이터 관리 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 대블록 플래시 메모리에서 논리적인 연산 단위와 물리적인 연산 단위의 불일치로 인해 발생되는 공간의 낭비를 효과적으로 방지할 수 있는 장점이 있다.
둘째, 플래시 메모리의 공간의 효율적인 사용이 가능하기 때문에 플래시 메모리의 성능을 향상시킬 수 있는 장점도 있다.
도 1 은 종래의 기술에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 2 는 로우 레벨 포멧을 거친 플래시 메모리의 구조가 도시된 도면.
도 3 은 일반적인 로그 테이블이 도시된 도면.
도 4 는 일반적인 로그 테이블을 통한 로그 블록과 데이터 블록간의 데이터 이동이 도시된 도면.
도 5 는 종래의 기술에 따른 플래시 메모리에서의 데이터 쓰기 방법이 도시된 도면.
도 6 은 종래의 기술에 따른 플래시 메모리에서의 데이터 읽기가 도시된 도면.
도 7a 은 일반적인 소블록 플래시 메모리가 도시된 도면.
도 7b 는 일반적인 대블록 플래시 메모리가 도시된 도면.
도 8 은 본 발명에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 9 는 본 발명에 따른 FTL에 의해 로우 레벨 포멧을 거친 플래시 메모리의 구조가 도시된 도면.
도 10 은 본 발명에 따른 블록 맵핑 테이블이 도시된 도면.
도 11 은 본 발명에 따른 로그 영역과 데이터 영역의 맵핑이 도시된 도면.
도 12 는 본 발명에 따른 로그 테이블이 도시된 도면.
도 13a 은 일반적인 단일 섹터에 대한 데이터 쓰기가 도시된 도면.
도 13b 는 일반적인 다중 섹터에 대한 데이터 쓰기가 도시된 도면.
도 14 는 본 발명에 따른 플래시 메모리에서의 데이터 쓰기가 도시된 도면.
도 15 는 본 발명에 따른 플래시 메모리에서 데이터를 쓰려고 하는 섹터가 도시된 도면.
도 16 은 본 발명에 따른 로그 블록에서 데이터를 쓰려고 하는 페이지가 도시된 도면.
도 17 은 본 발명에 따른 내부 메모리로 복사될 데이터 블록의 페이지가 도시된 도면.
도 18 은 본 발명에 따른 내부 메모리에 복사된 데이터가 수정되어 로그 블록으로 이동된 도면.
도 19 는 본 발명에 따른 플래시 메모리에서의 데이터 읽기가 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
100: 플래시 메모리 110: 내부 메모리
200: FTL 300: 제어부

Claims (9)

  1. 소정의 내부 메모리를 포함하는 플래시 메모리의 데이터 관리 장치에 있어서,
    소정의 데이터 연산을 수행하고자 하는 물리 블록에 존재하는 데이터를 상기 내부 메모리로 복사하고, 상기 내부 메모리에서 소정의 데이터 연산을 수행하여 상기 물리 블록으로 이동시키는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  2. 제 1 항에 있어서,
    상기 내부 메모리로 물리적인 연산 단위에 해당하는 데이터가 복사되는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  3. 제 2 항에 있어서,
    상기 물리 블록으로 이동되는 데이터는 상기 내부 메모리로 복사된 데이터가 논리적인 연산 단위로 수정된 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  4. 소정의 내부 메모리를 포함하는 플래시 메모리의 데이터 관리방법에 있어서,
    소정의 데이터 연산을 수행하는 물리 블록에 존재하는 데이터를 상기 내부 메모리로 복사하는 제 1 단계와,
    상기 내부 메모리에서 소정의 데이터 연산을 수행하는 제 2 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  5. 제 4 항에 있어서,
    상기 제 1 단계는 데이터 연산을 수행하는 논리 블록에 해당하는 물리 블록을 검색하는 제 1 과정과,
    상기 물리 블록에 존재하는 데이터를 물리적인 연산 단위로 상기 내부 메모리에 복사하는 제 2 과정을 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 제 4 단계는 상기 논리 블록 번호를 소정의 물리 블록 번호에 맵핑시키는 테이블을 통해 해당 물리 블록을 검색하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  7. 제 6 항에 있어서,
    상기 제 2 단계는 상기 내부 메모리에 복사된 데이터상에서 논리적인 연산 단위로 데이터 연산을 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  8. 제 7 항에 있어서,
    상기 내부 메모리에서 데이터 연산이 완료된 데이터를 상기 물리 블록으로 이동시키는 제 3 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  9. 제 8 항에 있어서,
    상기 제 3 단계는 상기 물리 블록으로 데이터 이동 후 상기 테이블을 갱신하는 과정을 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
KR10-2004-0007002A 2004-02-03 2004-02-03 플래시 메모리의 데이터 관리 장치 및 방법 KR100533683B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2004-0007002A KR100533683B1 (ko) 2004-02-03 2004-02-03 플래시 메모리의 데이터 관리 장치 및 방법
JP2005004564A JP2005222534A (ja) 2004-02-03 2005-01-11 フラッシュメモリのデータ管理装置及び方法
EP05250382A EP1562121A3 (en) 2004-02-03 2005-01-26 Data management apparatus and method used for flash memory
US11/047,779 US20050169058A1 (en) 2004-02-03 2005-02-02 Data management apparatus and method used for flash memory
CNA2005100052539A CN1652088A (zh) 2004-02-03 2005-02-03 用于闪速存储器的数据管理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2004-0007002A KR100533683B1 (ko) 2004-02-03 2004-02-03 플래시 메모리의 데이터 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050078916A KR20050078916A (ko) 2005-08-08
KR100533683B1 true KR100533683B1 (ko) 2005-12-05

Family

ID=34675997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-0007002A KR100533683B1 (ko) 2004-02-03 2004-02-03 플래시 메모리의 데이터 관리 장치 및 방법

Country Status (5)

Country Link
US (1) US20050169058A1 (ko)
EP (1) EP1562121A3 (ko)
JP (1) JP2005222534A (ko)
KR (1) KR100533683B1 (ko)
CN (1) CN1652088A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1895418B1 (en) * 2005-12-09 2015-04-01 Panasonic Corporation Nonvolatile memory device, method of writing data, and method of reading out data
JP2007249662A (ja) 2006-03-16 2007-09-27 Toshiba Corp メモリカード及びメモリカードの制御方法
JP5066894B2 (ja) * 2006-11-07 2012-11-07 富士ゼロックス株式会社 記憶媒体制御装置
KR100843135B1 (ko) * 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
KR100823171B1 (ko) 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP2010518463A (ja) * 2008-02-29 2010-05-27 株式会社東芝 情報処理装置及び不揮発性半導体メモリドライブ
EP2189895A1 (en) 2008-11-24 2010-05-26 Deutsche Thomson OHG Flash based memory comprising a Flash translation layer and method for storing a file therein
JP2010211618A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 半導体記憶装置
US20100293309A1 (en) * 2009-05-13 2010-11-18 Yun-Ching Lin Production Tool For Low-Level Format Of A Storage Device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
JP3485938B2 (ja) * 1992-03-31 2004-01-13 株式会社東芝 不揮発性半導体メモリ装置
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
JPH09171486A (ja) * 1995-10-16 1997-06-30 Seiko Epson Corp Pcカード
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
US6040997A (en) * 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
GB2349242A (en) * 1999-04-20 2000-10-25 Inventec Corp Flash memory architecture and rewrite method
US6407949B1 (en) * 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory
GB2361783B (en) * 2000-04-27 2004-11-10 Ubinetics Ltd Non-volatile storage method
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6675281B1 (en) * 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US6871257B2 (en) * 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
JP2004133677A (ja) * 2002-10-10 2004-04-30 Renesas Technology Corp 記憶装置

Also Published As

Publication number Publication date
KR20050078916A (ko) 2005-08-08
JP2005222534A (ja) 2005-08-18
US20050169058A1 (en) 2005-08-04
EP1562121A3 (en) 2007-12-05
CN1652088A (zh) 2005-08-10
EP1562121A2 (en) 2005-08-10

Similar Documents

Publication Publication Date Title
US7594067B2 (en) Enhanced data access in a storage device
KR100526190B1 (ko) 플래시 메모리의 재사상 방법
KR101433859B1 (ko) 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US7844772B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US7516266B2 (en) System and method capable of sequentially writing data to a flash memory
US20080098195A1 (en) Memory system including flash memory and mapping table management method
EP1895418A1 (en) Nonvolatile memory device, method of writing data, and method of reading out data
US20140143481A1 (en) Management of memory array with magnetic random access memory (mram)
KR100533682B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
JP2005222534A (ja) フラッシュメモリのデータ管理装置及び方法
US10552335B2 (en) Method and electronic device for a mapping table in a solid-state memory
CN108073359B (zh) 数据储存装置的操作方法
JP2007220107A (ja) 不揮発性メモリのマッピング情報管理装置及び方法
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
KR100638638B1 (ko) 플래시 메모리의 제어 방법
US8341378B2 (en) Data storage device and data access method
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
KR20090047880A (ko) 비휘발성 메모리의 관리 방법 및 관리 시스템
KR100801072B1 (ko) 플래시 메모리, 이를 위한 맵핑 장치 및 방법
KR100791324B1 (ko) 플래시 메모리의 메타데이터 기록 장치 및 검색 방법
CN117908784A (zh) L2p表格数据的缓存方法、设备及计算机可读存储介质

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

LAPS Lapse due to unpaid annual fee