KR101185617B1 - 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 - Google Patents

외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 Download PDF

Info

Publication number
KR101185617B1
KR101185617B1 KR1020060030381A KR20060030381A KR101185617B1 KR 101185617 B1 KR101185617 B1 KR 101185617B1 KR 1020060030381 A KR1020060030381 A KR 1020060030381A KR 20060030381 A KR20060030381 A KR 20060030381A KR 101185617 B1 KR101185617 B1 KR 101185617B1
Authority
KR
South Korea
Prior art keywords
logical
blocks
group
flash
wear leveling
Prior art date
Application number
KR1020060030381A
Other languages
English (en)
Other versions
KR20070099234A (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 KR1020060030381A priority Critical patent/KR101185617B1/ko
Priority to US11/730,652 priority patent/US7788441B2/en
Publication of KR20070099234A publication Critical patent/KR20070099234A/ko
Application granted granted Critical
Publication of KR101185617B1 publication Critical patent/KR101185617B1/ko

Links

Images

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

외부 메모리의 부하를 줄일 수 있도록 개선된 웨어 레벨링 기법에 의한 플래시 파일 시스템의 동작 방법이 게시된다. 본 발명에 의하면, 다수의 논리 블록들을 m(여기서, m은 2 이상의 자연수)개의 논리 그룹들로 분할하는 제1 과정과; 상기 논리 그룹들 각각의 삭제횟수정보를 플래시 메모리의 메타 블록영역에 상기 논리 그룹별로 저장하는 제2 과정과; 소정의 데이터 파일에 대한 작업 요청이 입력되는 경우, 상기 메타 블록에 상기 논리 그룹별로 저장된 상기 삭제횟수정보가 외부 메모리에 상기 논리 그룹별로 개별적으로 로딩되는 제3 과정과; 상기 외부 메모리에 그룹별로 로딩된 상기 삭제횟수정보에 근거하여, 웨어 레벨링(wear leveling)을 수행되도록 상기 논리 블록들이 물리 블록들에 맵핑되는 제4 과정; 및 상기 맵핑과정에 따라 상기 소정의 데이터 파일에 포함된 데이터를 상기 플래시 메모리의 데이터 블록에 저장하는 제5 과정을 포함한다.
웨어 레벨링, 플래시 파일 시스템, 스캔

Description

외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에 의한 플래시 파일 시스템의 동작 방법{THE OPERATION METHOD OF A FLASH FILE SYSTEM BY A WEAR LEVELING WHICH CAN REDUCE THE LOAD OF AN OUTSIDE MEMORY}
본 발명의 상세한 설명에서 사용되는 도면을 보다 충분히 이해하기 위하여, 각 도면의 간단한 설명이 제공된다.
도 1은 일반적인 플래시 파일 시스템(flash file system)을 나타내는 도면이다.
도 2는 종래의 웨어 레벨링 기법에 의한 논리 블록들의 스캔작업을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 플래시 메모리를 포함하는 통상의 호스트 시스템을 개략적으로 나타내는 도면이다.
도 4는 본 발명의 실시예에서 채용되는 플래시 메모리의 구조를 개략적으로 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 논리 블록들의 스캔방식을 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 전체 논리 블록들을 m개의 논리 블록들로 그룹화하는 방법을 개념적으로 나타낸다.
도 7은 본 발명에 따른 플래시 파일 시스템의 동작방법을 나타내는 도면이다.
도 8은 본 발명에 따른 상기 메타 블록의 구조를 개략적으로 나타내는 도면이다.
* 도면의 주요부분에 대한 부호의 설명 *
11: 논리 블록 12: 맵
13: 물리 블록 120: SRAM
140: 플래시 메모리 150: 플래시 컨트롤러
본 발명은 플래시 파일 시스템(flash file system)의 동작방법에 관한 것으로서, 특히 외부 메모리의 부하를 줄일 수 있도록 개선된 웨어 레벨링 기법이 적용된 플래시 파일 시스템의 동작 방법에 관한 것이다.
플래시 메모리는 높은 안정성과 큰 용량, 상대적으로 싼 가격으로 인하여 작은 사이즈의 메모리(예, SRAM)와 함께 연동되는 임베디드 시스템(Embedded system; 예, 모바일 시스템)에서 일반적으로 채택되고 있다. 이러한 플래시 메모리는 램(RAM)과 같은 일반적인 메모리와는 다른 파일 시스템을 가지며 사용법과 동작에도 제한이 있다.
도 1은 일반적인 플래시 파일 시스템(flash file system)을 나타내는 도면이다. 일반적인 플래시 파일 시스템은 특정 파일을 식별할 수 있는 논리 어드레스(logic address)가 저장되어 있는 논리 블록(11; logic block)과 실제 데이터가 저장되는 물리 블록 (13; physical block)및 이들의 관계를 저장하고 있는 맵(map; 12)으로 구성된다. 응용 프로그램에서 데이터 파일(data file)에 대한 작업요청이 들어오면 플래시 파일 시스템은 데이터 파일의 논리 어드레스를 결정한 후 맵(12)을 통하여 물리 블록(13)에 억세스하도록 되어있다. 데이터 파일에 대한 작업요청으로 읽기, 쓰기, 갱신 등이 있다.
이러한 플래시 파일 시스템 하에서는 파일의 내용을 수정하거나 갱신할 때 삭제 유닛(erase unit) 단위로 작업을 수행한다. 즉, 플래시 메모리는 일반적으로 128KB 정도의 블록(block) 단위로 구성되어 있으며, 어떤 위치에 쓰기(write)를 하게 되면, 그 위치에 다른 내용을 쓰기 위해서는 삭제 유닛 전체를 지우고 나서 다시 쓰기를 해야만 한다.
플래시 메모리의 수명(life time)은 삭제주기(erase cycle)에 의해서 결정되는데, SLC(Single Level Cell)의 경우에는 대략 100,000번 정도를 지우면 그 수명이 다한다. 따라서 플래시 메모리가 제대로 활용되기 위해서는 이 삭제주기를 플래시 메모리의 모든 영역(예컨대, '저장영역')에 골고루 분산시켜야만 한다.
이와 같이, 플래시 메모리(flash memory)의 저장 영역을 특정 블록에 한정하 지 않고 전체 블록에 골고루 확장시킬 수 있는 기술로서, 통상적으로 소프트웨어적으로 이를 해결하는 웨어 레벨링(wear leveling) 기법이 사용되고 있다.
이 웨어 레벨링 기법은, 간략히 기술하면, 도 1에 도시된 논리 블록들(11)이 맵핑되는 물리 블록들(13)의 물리적 위치를 변화시키는 기법이다. 이 웨어 레벨링 기법에 의하면, 외부로부터 소정의 데이터 파일에 대한 쓰기 요청이 입력되는 경우에, 도 2에 도시되는 바와 같이, 물리 블록들(13) 전체의 삭제횟수정보가 순차적으로 또는 규정된 방식에 따라 스캔된다. 그리고 스캔된 데이터 파일에 포함된 데이터가 저장될 영역의 블록이 미리 규정된 최대삭제횟수에 도달한 경우 상기한 스캔 정보를 근거로 하여, 상대적으로 삭제횟수가 적은 블록의 물리적 위치로 변경되어 저장된다. 이와 같이, 웨어 레벨링 기술은 논리 블록들(11)이 가지는 각각의 논리 어드레스가 동일한 물리 블록들(13)의 물리적 위치들에 계속적으로 매핑되지 않도록 설정하는 일종의 알고리즘이라 할 수 있다.
그런데, 종래의 웨어 레벨링 기술은 상술한 바와 같이 모든 블록에 대해서 삭제횟수정보를 스캔하여야 하는데, 이러한 스캔작업은 외부의 메모리(예, SRAM 등)에서 그 작업공간을 할당받아 수행된다. 전술한 바와 같이, 작은 메모리 공간(예, SRAM 등)을 고려할 때, 모든 블록에 대해서 행해지는 상기한 스캔작업은 전체 시스템의 성능을 떨어뜨린다. 물론 전체 메모리 공간을 늘리면 이러한 문제를 해결할 수 있다. 그러나, 일반적인 임베디드 시스템에서의 외부 메모리의 사이즈 증가는 전체 시스템의 가격 상승으로 이어지므로 바람직한 해결책은 아니다. 또한, 전체 블록에 대해서 스캔작업이 수행되므로, 이를 처리하는데 많은 처리시간이 소요 되는 문제점이 있다.
따라서, 상기와 같은 문제점을 해결하기 위해 본 발명은 작은 사이즈의 외부 메모리에서도 전체 시스템의 성능저하 없이 스캔작업이 수행되며, 그것에 소요되는 처리시간을 줄일 수 있는 웨어 레벨링에 의한 플래시 파일시스템의 데이터 저장방법을 제공하는 데 있다.
상기와 같은 기술적 과제를 달성하기 위한 본 발명의 일면은 플래시 파일 시스템의 동작방법에 관한 것이다. 본 발명의 일면에 따른 플래시 파일 시스템의 동작방법은 논리 블록들을 m(여기서, m은 2 이상의 자연수)개의 논리 그룹들로 분할하는 제1 과정과; 상기 논리 그룹들 각각의 삭제횟수정보를 상기 플래시 메모리의 메타 블록영역에 상기 논리 그룹별로 저장하는 제2 과정과; 소정의 데이터 파일에 대한 작업 요청이 입력되는 경우, 상기 메타 블록에 상기 논리 그룹별로 저장된 상기 삭제횟수정보가 외부 메모리에 상기 논리 그룹별로 개별적으로 로딩되는 제3 과정과; 상기 외부 메모리에 그룹별로 로딩된 상기 삭제횟수정보에 근거하여, 웨어 레벨링(wear leveling)을 수행되도록 상기 논리 블록들이 물리 블록들에 맵핑되는 제4 과정; 및 상기 맵핑과정에 따라 상기 소정의 데이터 파일에 포함된 데이터를 상기 플래시 메모리의 데이터 블록에 저장하는 제5 과정을 포함한다.
또한, 상기와 같은 기술적 과제를 달성하기 위한 본 발명에서는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하다.
본 발명과 본 발명의 동작상의 잇점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 각 도면을 이해함에 있어서, 동일한 부재는 가능한 한 동일한 참조부호로 도시하고자 함에 유의해야 한다. 그리고, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 기술은 생략된다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다.
도 3은 본 발명의 실시예에 따른 플래시 메모리를 포함하는 통상의 호스트 시스템(host system; 100)을 개략적으로 나타내는 도면으로서, 도 3은 본 발명에서 제안되는 웨어 레벨링(wear leveling) 기법에 의한 데이터 저장방법이 구현될 수 있는 호스트 시스템(100)의 개략적인 하드웨어 구성을 보여준다.
도 3에 도시되는 호스트 시스템(100)은 통상적으로, 디지털 카메라, 비디오 카메라, 셀룰러 통신 장치, 휴대용 계산 장치, 오디오 플레이어, 비디오 플레이어 또는 MP3 플레이어와 같은 시스템일 수 있다. 또한, 단지 데이터를 기록하거나 단지 데이터를 검색하는 시스템일 수 있다.
도 3을 참조하면, 본 발명의 실시예에 따른 호스트 시스템(100)은 프로세 서(110), 외부 기기와 데이터를 교환하는 입출력부(130), 랜덤 액세스 메모리(120; Random Access Memory, 본 예에서는 'SRAM' 을 이용), 외부로부터의 데이터 파일을 불휘발적으로 보존하는 플래시 메모리(140; flash memory), 상기 플래시 메모리로의 데이터 파일(data file)의 읽기(read), 쓰기(write) 및 갱신(update) 등의 일련의 동작을 제어하는 플래시 컨트롤러(150; flash controller) 및 이들을 통신 시키는 시스템 버스(160)를 포함한다. 도면에 도시되지는 않았으나, 상기 호스트 시스템(100)은 디스플레이 장치들 및 네트워킹 장치를 더 포함할 수 있다.
상기 프로세서(110)는 상기 입출력부(130)를 이용하여 외부로부터 데이터 파일의 소정의 작업요청(예를 들면, 쓰기 내지 갱신)이 있는 경우에, 상기 SRAM(120)의 일부 영역을 작업공간으로 할당하고, 상기 SRAM(120)이 할당받은 작업공간에서 상기 플래시 메모리(140) 내의 데이터를 반복적으로 읽어드려 상기 데이터 파일을 수정(예를 들면, 데이터 파일의 갱신)을 행한다. 여기서, 상기 데이터 파일은 실제의 데이터 내용과 상기 실제의 데이터 내용의 파일크기, 갱신 시점, 논리 어드레스 정보 등과 같은 상기 실제의 데이터의 일종의 관리정보를 포함한다. 이에 대한 구체적인 기술은 후술하기로 한다. 그리고, 상기 데이터 파일의 수정이 완료된 후, 상기 수정된 데이터 파일은 플래시 메모리(140)의 소정의 영역에 기록된다. 구체적으로, 상기 프로세서(110)는 플래시 메모리(140) 내에 저장된 수정 대상에 해당하는 데이터 파일을 상기 SRAM(120)상으로 불러 들이는 '읽기 명령'과 수정완료된 데이터 파일의 '쓰기 명령' 등을 상기 플래시 컨트롤러(150)에 출력한다.
상기 플래시 컨트롤러(150)는 상기 프로세서(110)의 제어 명령에 따라 상기 플래시 메모리(140)로부터 출력되는 데이터 파일을 해석하며, 상기 플래시 메모리(140)로 입력되는 데이터 파일을 저장 및 삭제(erase) 등의 상기 플래시 메모리(140)로/로부터의 데이터 파일을 관리하고 제어한다. 구체적으로는, 상기 플래시 컨트롤러(150)는 플래시 메모리(140)의 수명을 저하시키는 특정 영역에의 빈번한 데이터 파일의 삭제 및 기록을 회피하도록 소프트웨어적으로 프로그래밍 된다. 이 소프트웨어적인 프로그래밍은 '웨어 레벨링(wear leveling)기법'으로 널리 알려져 있다. 이와 같은 프로그램밍 기법이 적용된 플래시 컨트롤러(150)는 데이터 파일의 쓰기 가능한 영역을 연산하여 플래시 메모리(140)의 데이터 파일 저장영역을 전체 저장영역으로 균등하게 분산시킨다. 이 균등 분산 처리에 대한 구체적인 내용은 후술하기로 한다.
상기 플래시 메모리(140)는 데이터 파일을 기록하는 다수의 블록을 포함한다. 도 4는 본 발명에 따른 실시예에서 채용되는 플래시 메모리의 구조를 개략적으로 나타내는 도면이다. 상기 플래시 메모리(140)는 다수의 물리 블록(physical block, 예를 들면 1024개의 물리 블록)을 구비한다. 1개의 물리 블록은 다수의 페이지(page)의 영역(예컨대, 32개의 페이지)으로 분할될 수 있으며, 각 페이지는 4 개의 섹터(sector)들로 구성될 수 있다.
이 플래시 메모리(140)는 블록 단위로 데이터 파일의 삭제를 행하고, 페이지 단위로 상기 데이터 파일을 해석하고 기록을 행할 수 있다. 해석과 기록의 최소단위인 1페이지는 512바이트(byte)의 데이터 영역과 에러 정정 부호(ECC 부호)등을 기록하는 16 바이트의 스페어 영역으로 구분될 수 있다.
상기 플래시 메모리의 다수의 물리 블록들은 데이터 블록(data block)과 메타 블록(meta block)을 포함한다. 상기 데이터 블록은 실제의 데이터가 저장되는 블록으로서, 상기 데이터 블록은 플래시 메모리(140)의 블록을 일정한 크기의 논리적 파티션(partition)으로 나누어 놓은 것이다. 상기 메타 블록은 데이터 파일의 이름, 데이터 파일의 크기, 데이터 파일의 논리 어드레스, 논리 블록들이 물리 블록들에 맵핑되는 맵핑정보, 상기 물리 블록들에 대응하는 논리 블록들의 삭제횟수정보 등을 나타내는 정보가 저장되어 있다.
이하, 상술한 하드웨어적인 구성을 기초로 하여 본 발명에 따라 개선된 웨어 레벨링 기법에 의한 데이터 저장방법이 기술된다.
도 2를 참조한 종래의 웨어 레벨링(wear leveling) 기술의 문제점에서도 언급하였듯이, 종래의 웨어 레벨링 방식은 플래시 메모리(140)의 모든 블록들에 대한 삭제횟수(the number of erase)정보를 SRAM(120) 상에 할당된 작업공간에서 전체 블록들의 삭제횟수정보를 스캔(scan)하여야 한다. 임베디드 시스템(100)과 같은 저성능의 시스템은 일반 데스크 탑과 같은 고성능의 시스템에 내장된 프로세서(CPU)에 비하여 그 성능이 우월하지 못하며, 또한 제품의 가격 정책에서 큰 사이즈(size)의 SRAM(120)을 채택할 수가 없는 실정이다. 다시 말해, 임베디드 시스템(100)에 채용된 작은 사이즈의 SRAM(120) 상에서 상술한 바와 같이 모든 블록들에 대한 스캔작업은 전체 시스템의 성능을 떨어뜨리는 주요인이 된다.
이에 본 발명의 웨어 레벨링 기법은 다음과 같은 방식을 제안한다. 도 5는 본 발명에서 제안하는 플래시 메모리의 전체 블록들(논리 블록들)의 스캔방식을 나 타내는 도면이다. 도 5를 참조하면, 본 발명에서 제안하는 스캔방식은 상기 SRMA(120) 상에서 전체 논리 블록들(0-N)의 스캔작업을 일시에 수행하지 않고, 전체 논리 블록들(0-N)을 소정의 방식에 따라 m개의 논리 그룹들로 그룹화하여 분할된 그룹별로 개별적으로 스캔작업을 수행한다(여기서, 논리 그룹들의 그룹방식은 하기에서 상세히 기술됨). 즉, 그룹별로 상기 SRAM(120) 상에 로딩(loading) 되어 개별적으로 스캔작업이 수행되도록 한다.
다시 말해, 전체 논리 블록(0-N)에 대한 웨어 레벨링이 수행되는 것이 아니라 각 그룹별로 상기 SRAM(120) 상의 작업공간을 할당받아 웨어 레벨링이 수행된다. 따라서, 본 발명에 따른 웨어 레벨링에서 요구되는 SRAM(120) 상의 작업공간이 종래의 웨어 레벨링에서의 그 작업공간에 비해 1/m로 줄어들게 되므로, 작은 사이즈의 SRAM(120)에서도 전체 시스템(100)의 성능 저하 없이 원활한 웨어 레벨링을 수행할 수 있다.
한편, 전체 논리 블록들(0-N)이 어떠한 방식으로 그룹화 (grouping) 되는지를 기술하면 다음과 같다. 도 6은 전체 논리 블록들을 m개의 논리 블록들로 그룹화하는 방법을 개념적으로 나타낸다. 본 실시예에서는, 4개의 그룹(제1 논리 그룹, 제2 논리 그룹, 제3 논리 그룹 및 제4 논리 그룹)으로 분할된 실시예가 기술되지만, 그 이상의 논리 그룹들로 충분히 그룹화될 수 있음이 이해되어야 한다. 도 6에서는 테이블(TABLE) 형태의 N개의 논리 블록들을 볼 수 있으며, 도 5에 수평적으로 나열된 논리 블록들과 동일한 논리 블록들이다. 다만, 본 발명에 따른 그룹화 방법의 이해를 돕기 위해 도시되는 바와 같이 테이블 형태로 나타내었다점에서 그 차이 가 있을 뿐이다. 그리고, 각 논리 블록들에 표기된 숫자들은 각 논리 블록들의 논리적 어드레스(logical address)로 언급될 수 있다. 실질적으로는, 상기 각 논리 블록들에 표기된 숫자들은 데이터 비트(data bit) 형태의 이진 코드 (binary code)로 표현될 수도 있다.
도 6에는 수직적으로 그룹화(vertical grouping)된 4개의 그룹들(제1 논리 그룹, 제2 논리 그룹, 제3 논리 그룹 및 제4 논리 그룹)이 나타난다. 도 6에 도시되는 바와 같이, 전체 논리 블록들(0-N)이 수직적으로 그룹화함으로써, 각 그룹들에 포함된 논리 블록들(0-N)은 비연속적인 논리적 어드레스들을 갖는 논리 블록들(0-N)로 그룹화된다. 한편, 각 논리 그룹들(제1 논리 그룹, 제2 논리 그룹, 제3 논리 그룹 및 제4 논리 그룹)을 유심히 살펴보면, 각 논리 그룹들은 일정한 등차 값으로 증가되는 논리 어드레스들끼리 그룹화된다. 본 실시예에서는 공차가 '4'인 등차수열의 형태의 각 수직적 논리 그룹들(제1 논리 그룹, 제2 논리 그룹, 제3 논리 그룹 및 제4 논리 그룹)을 형성한다. 여기서, 상기 공차값은 분할된 그룹의 갯수에 의해 결정된다. 다시 말해, 본 실시예에서와 같이, 전체 논리 블록들이 4 개의 그룹들로 그룹화되는 경우, 상기 공차값은 '4'로 설정된다. 즉, 각 그룹들은 '4'씩 증가하는 논리 어드레스들에 대응하는 논리 블록들로 그룹화된다. 만약, 전체 논리 블록들이 5 개의 그룹들로 분할되면, 각 그룹들은 '4'씩 증가하는 논리 어드레스들에 대응하는 논리 블록들로 그룹화된다. 분할된 그룹의 갯수에 따라 각 그룹별로 포함되는 논리 블록들 각자에 대응하는 논리 어드레스 증가분(공차)이 결정된다.
이하, 상기한 바와 같은 그룹화 방식이 적용된 플래시 파일 시스템(flash file system 또는 Flash Translation Layer; FTL)의 동작방법이 기술된다. 도 7은 본 발명에 따른 플래시 파일 시스템의 동작방법을 나타내는 도면이다.
먼저, 상술한 그룹화 방식에 따라 전체의 논리 블록들을 m(여기서 m은 2 이상의 자연수)개의 논리그룹들로 분할되도록 상기 플래시 파일 시스템이 프로그램된다(710).
이후, 응용 프로그램의 작업 요청이 있을 때마다, 액세스되는 논리 그룹들의 삭제 횟수정보가 카운팅되어 메타 블록의 소정의 영역에 상기 논리 그룹별로 저장된다(720). 한편, 상기 논리 그룹들의 삭제 횟수는 상기 메타 블록의 페이지 단위로 저장된다. 좀더 구체적으로 설명하면, 도 8은 상기 메타 블록의 구조를 개략적으로 나타내는 도면으로서, 상기 메타 블록은 다수의 페이지를 구비하며, 각 페이지는 4개의 섹터 영역들로 나누어질 수 있다. 상기 삭제 횟수는 상기 섹터 영역들 중 일부 영역에 저장된다. 본 실시예에서는, 도면에 도시되는 바와 같이, 상기 논리 그룹들의 삭제 횟수가 3번 섹터 영역에 각각 논리 그룹별로 저장된다. 더불어, 상기 논리 그룹들에 대응하는 물리 블록들의 맵핑 정보들은 2번섹터 영역에 각각 논리 그룹별로 저장된다.
계속해서, 이미 존재하는 데이터 파일에 대한 쓰기 작업 요청이 있는 경우에 먼저, 상기 메타 블록에 저장된 상기 삭제횟수정보가 외부 메모리 즉, SDRAM(도 3의 '120')에 로딩(load) 된다(730). 특히, 본 발명에 따른 웨어 레벨링 기법에 따르면, 상기 메타 블록에 저장된 삭제횟수정보가 상기 외부 메모리에 그룹별로 로딩 되어 스캔(scan) 되므로, SDRAM의 부하를 크게 줄일 수 있다.
이어서, 상기 SDRAM(120)에 그룹별로 로딩된 상기 삭제횟수정보를 스캔하여 웨어 레벨링(wear leveling)을 수행되도록 상기 논리 블록들이 물리 블록들에 맵핑된다(740). 이어서, 상기 맵핑과정에 따라 데이터 파일에 포함된 실제의 데이터를 상기 플래시 메모리의 데이터 블록에 저장한다(730).
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터 파일의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체 및 캐리어 웨이브 (예를 들면, 인터넷을 통한 전송)와 같은 저장 매체를 포함한다.
상술한 바와 같이, 본 발명은 종래의 방법에서와 달리 전체 논리 블록들이 다수의 그룹을 형성하고 각 그룹별로 외부 메모리(도 3의 SDRAM)에서 삭제횟수정보에 대한 스캔작업이 수행된다. 그러므로, 스캔작업에 따른 큰 메모리 용량이 요구되지 않으며, 스캔작업을 처리하는데 소요되는 시간을 줄일 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (7)

  1. 파일의 각종 정보를 저장하는 메타 블록과 실제의 데이터가 저장되는 데이터 블록으로 구분될 수 있는 불휘발성 플래시 메모리로서, 상기 플래시 메모리는 상기 메타 블록과 상기 데이터 블록을 포함하는 다수의 물리 블록을 포함하되, 상기 물리적 블록들은 각자의 물리적 어드레스를 가지며, 별개의 범위의 논리 어드레스들을 가지는 논리 블록들이 상기 물리적 어드레스를 가지는 상기 물리적 블록들로 매핑(mapping)되는 플래시 파일 시스템의 동작방법에 있어서,
    상기 논리 어드레스들을 가지는 논리 블록들을 m(여기서, m은 2 이상의 자연수)개의 논리 그룹들로 분할하는 제1 과정;
    상기 논리 그룹들 각각의 삭제횟수정보를 상기 플래시 메모리의 메타 블록영역에 상기 논리 그룹별로 저장하는 제2 과정;
    소정의 데이터 파일에 대한 작업 요청이 입력되는 경우, 상기 메타 블록에 상기 논리 그룹별로 저장된 상기 삭제횟수정보가 외부 메모리에 상기 논리 그룹별로 개별적으로 로딩되는 제3 과정;
    상기 외부 메모리에 그룹별로 로딩된 상기 삭제횟수정보에 근거하여, 웨어 레벨링(wear leveling)을 수행되도록 상기 논리 블록들이 물리 블록들에 맵핑되는 제4 과정; 및
    상기 맵핑과정에 따라 상기 소정의 데이터 파일에 포함된 데이터를 상기 플래시 메모리의 데이터 블록에 저장하는 제5 과정을 포함하는 것을 특징으로 하는 플래시 파일 시스템의 동작방법.
  2. 제1 항에 있어서, 상기 제1 과정은,
    상기 분할되는 각 논리 그룹들이 m의 공차를 가지는 등차수열의 형태로 구성되는 것을 특징으로 하는 플래시 파일 시스템의 동작방법.
  3. 제1 항에 있어서, 상기 제2 과정은,
    상기 메타 블록의 다른 영역에 상기 저장된 삭제횟수정보와 더불어 상기 m개의 논리그룹들이 상기 물리 블록들에 매핑되는 매핑 정보가 상기 논리 그룹별로 저장되는 과정을 포함하는 것을 특징으로 하는 플래시 파일 시스템의 동작방법.
  4. 제3 항에 있어서, 상기 매핑 정보는 외부 메모리에 로딩되는 상기 삭제횟수정보와 더불어 상기 외부 메모리에 논리 그룹별로 로딩되는 것을 특징으로 하는 플래시 파일 시스템의 동작방법.
  5. 제1 항에 있어서, 상기 제3 과정의 웨어 레벨링은
    논리 그룹별로 개별적으로 수행되는 것을 특징으로 하는 플래시 파일 시스템의 동작방법.
  6. 제1 항에 있어서,
    상기 외부 메모리는 휘발성 메모리인 것을 특징으로 하는 플래시 파일 시스템의 동작방법.
  7. 제1 항 내지 제5 항 중 어느 한 항에 기재된 동작방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060030381A 2006-04-04 2006-04-04 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 KR101185617B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060030381A KR101185617B1 (ko) 2006-04-04 2006-04-04 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US11/730,652 US7788441B2 (en) 2006-04-04 2007-04-03 Method for initializing and operating flash memory file system and computer-readable medium storing related program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060030381A KR101185617B1 (ko) 2006-04-04 2006-04-04 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20070099234A KR20070099234A (ko) 2007-10-09
KR101185617B1 true KR101185617B1 (ko) 2012-09-24

Family

ID=38560793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060030381A KR101185617B1 (ko) 2006-04-04 2006-04-04 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법

Country Status (2)

Country Link
US (1) US7788441B2 (ko)
KR (1) KR101185617B1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101404083B1 (ko) 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
KR100843133B1 (ko) * 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8352671B2 (en) 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP4551940B2 (ja) 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
TWI370969B (en) * 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
KR101466585B1 (ko) 2008-07-10 2014-11-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
KR101103061B1 (ko) * 2008-07-28 2012-01-06 주식회사 팍스디스크 반도체 스토리지 시스템 및 그 제어 방법
KR100974215B1 (ko) * 2008-10-02 2010-08-06 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
KR101571693B1 (ko) 2009-04-15 2015-11-26 삼성전자주식회사 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
KR101674015B1 (ko) 2009-06-23 2016-11-08 시게이트 테크놀로지 엘엘씨 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
KR101097438B1 (ko) 2009-10-29 2011-12-23 주식회사 하이닉스반도체 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
JP5556189B2 (ja) * 2010-01-20 2014-07-23 ソニー株式会社 記憶装置およびデータの書込み方法
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
KR101131560B1 (ko) * 2010-07-15 2012-04-04 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US9164676B2 (en) 2011-11-30 2015-10-20 International Business Machines Corporation Storing multi-stream non-linear access patterns in a flash based file-system
KR102003930B1 (ko) 2012-07-31 2019-07-25 삼성전자주식회사 불휘발성 메모리 장치의 데이터 라이팅 제어방법 및 웨어레벨링 제어 기능을 가지는 메모리 콘트롤러
JP2015001908A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
KR102085096B1 (ko) * 2013-07-30 2020-03-05 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법
KR20160070920A (ko) * 2014-12-10 2016-06-21 에스케이하이닉스 주식회사 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US10599352B2 (en) * 2015-08-14 2020-03-24 Samsung Electronics Co., Ltd. Online flash resource allocation manager based on a TCO model
KR102553170B1 (ko) 2016-06-08 2023-07-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10303401B2 (en) * 2017-01-26 2019-05-28 International Business Machines Corporation Data caching for block storage systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4772214B2 (ja) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
AU2003282544A1 (en) 2002-10-28 2004-05-25 Sandisk Corporation Automated wear leveling in non-volatile storage systems
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
JP4357304B2 (ja) * 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7783845B2 (en) * 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories

Also Published As

Publication number Publication date
US20070233941A1 (en) 2007-10-04
KR20070099234A (ko) 2007-10-09
US7788441B2 (en) 2010-08-31

Similar Documents

Publication Publication Date Title
KR101185617B1 (ko) 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US11748258B2 (en) Method for managing a memory apparatus
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US7039788B1 (en) Method and apparatus for splitting a logical block
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
US11232041B2 (en) Memory addressing
US7962687B2 (en) Flash memory allocation for improved performance and endurance
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
US20050015557A1 (en) Nonvolatile memory unit with specific cache
US20130227198A1 (en) Flash memory device and electronic device employing thereof
US20100042775A1 (en) Block management method for flash memory, and storage system and controller using the same
KR20100114381A (ko) 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
US11182286B2 (en) Data storage device and control method for non-volatile memory
TWI829363B (zh) 資料處理方法及對應之資料儲存裝置

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: 20150831

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 8