KR101280181B1 - 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법 - Google Patents

메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법 Download PDF

Info

Publication number
KR101280181B1
KR101280181B1 KR1020100046404A KR20100046404A KR101280181B1 KR 101280181 B1 KR101280181 B1 KR 101280181B1 KR 1020100046404 A KR1020100046404 A KR 1020100046404A KR 20100046404 A KR20100046404 A KR 20100046404A KR 101280181 B1 KR101280181 B1 KR 101280181B1
Authority
KR
South Korea
Prior art keywords
block
area
bad
log
bad block
Prior art date
Application number
KR1020100046404A
Other languages
English (en)
Other versions
KR20110126894A (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 KR1020100046404A priority Critical patent/KR101280181B1/ko
Publication of KR20110126894A publication Critical patent/KR20110126894A/ko
Application granted granted Critical
Publication of KR101280181B1 publication Critical patent/KR101280181B1/ko

Links

Images

Classifications

    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

메모리 시스템으로서, 버퍼링을 위한 로그 블록과 배드 블록 대체용 블록을 갖는 예비 영역과 데이터가 저장되는 사용자 영역으로 이루어지는 플래쉬 메모리, 상기 로그 블록 내에 상기 배드 블록 대체용 영역을 병합하고 상기 로그 블록 영역이 상기 배드 블록 대체용 영역 기능을 가지도록 설정하고, 상기 사용자 영역에 배드 블록 발생시마다 상기 로그 블록 영역 중 하나의 블록을 배드 블록으로 설정하는 플래쉬 변환 레이어를 구비한 것을 특징으로 한다. 이에 의하여, 플래쉬 메모리의 예비 영역을 효율적으로 활용할 수 있고, 플래쉬 변환 레이어의 성능을 향상시킬 수 있다.

Description

메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법{MEMORY SYSTEM AND METHOD FOR MANAGING RESERVED AREA OF FLASH TRANSLATION LAYER IN MEMORY SYSTEM}
본 발명은 메모리 시스템에 관한 것으로서 보다 상세하게는 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법에 관한 것이다.
메모리 시스템(100)은 도 1을 참조하면, 중앙처리장치(CPU: Central Processor Unit)(110), 랜덤 액세스 메모리(RAM: Random Access Memory)(120), 낸드 플래쉬 메모리(NAND flash memory)(240)를 포함한다.
낸드 플래쉬 메모리(240)는 당업자에게 잘 알려진 바와 같이, 스트링 구조(string structure)를 갖는 복수의 메모리 셀로 구성된다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 낸드 플래쉬 메모리(240)의 메모리 셀 어레이는 복수의 메모리 블록(memory block)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(page)로 구성된다. 각각의 페이지는 하나의 워드 라인을 공유하는 복수의 메모리 셀로 구성된다. 낸드 플래쉬 메모리(240)는 읽기 및 쓰기 동작의 단위와 소거 동작의 단위가 다르다. 즉, 낸드 플래쉬 메모리(240)는 메모리 블록 단위로 소거 동작을 수행하고, 페이지 단위로 읽기 및 쓰기 동작을 수행한다. 또한, 낸드 플래쉬 메모리(240)는 다른 반도체 메모리 장치와 달리 중복 쓰기(over write)를 지원하지 않는다. 따라서 낸드 플래쉬 메모리(240)는 쓰기 동작 전에 소거 동작을 수행한다.
낸드 플래쉬 메모리(240)의 이와 같은 특성으로 인해, 낸드 플래쉬 메모리(240)를 하드 디스크처럼 사용하기 위해서는, 읽기/쓰기/소거 동작에 대한 별도의 관리가 필요하다. 플래쉬 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 상술한 플래쉬 메모리의 단점들을 극복하고, 플래쉬 메모리(240)를 효율적으로 관리하기 위한 시스템 소프트웨어이다. FTL은 어드레스 맵핑 동작을 수행하며, 랜덤 액세스 메모리(120)에 저장된다.
도 2는 도 1에 도시된 메모리 시스템(100)의 소프트웨어 구조를 보여주는 블록도이다. 도 2를 참조하면, 메모리 시스템(100)은 애플리케이션(210), 파일 시스템(220), FTL(230), 플래쉬 메모리(240) 순으로 소프트웨어 계층 구조를 갖는다.
FTL(230)은 애플리케이션(210) 또는 파일 시스템(220)으로부터 논리 어드레스(LA: Logical Address)를 입력받는다. FTL(230)는 논리 어드레스(LA)를 입력받고, 이를 물리 어드레스(PA: Physical Address)로 변환한다. 물리 어드레스(PA)는 플래쉬 메모리(240)로 제공된다.
FTL(230)은 위와 같은 어드레스 맵핑 동작을 관리하기 위해 어드레스 맵핑 테이블(Address Mapping Table)을 가지고 있다. 어드레스 맵핑 테이블에는 논리 어드레스(Logical Address) 및 이에 대응하는 물리 어드레스(Physical Address)가 기록되어 있다.
낸드 플래쉬 메모리(240)는 데이터 블록 영역과 로그 블록 영역을 포함한다. 데이터 블록 영역은 복수의 데이터 블록으로 구성되며, 사용자 데이터를 저장한다. 로그 블록 영역은 하나 또는 그 이상의 로그 블록으로 구성된다. 로그 블록은 특정 데이터 블록에 할당된다. 특정 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 특정 데이터 블록에 직접 쓰여지는 것이 아니라, 할당되어 있는 로그 블록에 먼저 저장된다. 그 다음에, 머지(merge) 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록으로 복사된다.
그런데, 메모리 블록에는 다양한 원인에 의해 결함이 발생할 수 있다. 예를 들어, 열 페일(column fail), 간섭 문제(disturbance), 마모(wear-out) 등에 의해 결함이 발생할 수 있다. 결함이 있는 블록은 배드 블록(bad block)으로 불린다. 배드 블록에는 데이터가 저장될 수 없기 때문에 배드 블록은 정상 블록으로 교체되어야 한다. 따라서 플래시 메모리(240)에서는 배드 블록을 대체하기 위해 예비 영역(reserved area)이 구비된다. 예비 영역은 하나 이상의 예비 블록을 포함한다.
예비 영역은 메모리 셀 어레이의 일정 비율을 차지하도록 설정된다. 예를 들어, 예비 영역은 메모리 셀 어레이의 약 5 퍼센트를 차지할 수 있다. 한편, 예비 영역은 배드 블록 발생시 대체를 위한 배드 블록 대체 영역외에, 버퍼링(buffering)과 머지(merge)를 위한 로그 블록 영역을 포함한다.
플래시 메모리(240)에서 예비 영역을 제외한 영역은 사용자 영역(user area)으로 정의된다.
즉, 플래쉬 메모리(240)의 메모리 셀 어레이는 사용자 영역과 예비 영역으로 구분된다. 예비 영역에 포함된 예비 블록들은 사용자 영역 내의 데이터 블록이 배드 블록이 된 경우를 대비하여 구비된다. 예비 영역은 사용자에 의해 인식되지 않기 때문에 사용자는 데이터의 저장을 위해 사용자 영역만을 사용할 수 있다.
도 3은 종래의 메모리 셀 어레이의 구조 및 사용자 영역 내의 메모리 블록에 결함이 발생한 경우, 예비 블록으로 배드 블록을 대체하는 방법을 상세하게 보여주는 도면이다. 도 3(a)를 참조하면, 메모리 셀 어레이는 배드 블록 대체를 위한 예비 영역(241), 로그 블록 영역을 위한 예비 영역(242), 사용자 영역(user area)(243)으로 구분된다. 사용자 영역(243)은 하나 이상의 메모리 블록을 포함한다. 사용자 영역(243) 내의 메모리 블록은 용도에 따라 구분될 수 있다.
도 3(b)를 참조하면, 사용자 영역(243) 내의 일부 데이터 블록에 결함이 발생, 즉 배드 블록(bad block)이 발생한 경우가 가정된다. 데이터 블록에 결함이 생긴 경우, 데이터 블록에 저장된 데이터가 소실될 수 있다. 데이터의 소실을 방지하기 위해서 배드 블록에 저장된 데이터는 예비 영역 내의 예비 블록에 저장된다.
그 이후에 예비 블록은 데이터 블록으로 변경되고, 데이터 블록은 예비 블록으로 변경된다. 이러한 변경은 논리 주소와 물리 주소 사이의 대응 관계를 갱신함으로써 수행된다. 대응 관계의 갱신은 맵핑 테이블의 갱신에 의해 수행된다. 즉, 배드 블록에 대응되었던 논리 주소가 결함이 없는 데이터 블록에 대응되도록 변경된다. 따라서, 외부로부터 액세스 요청이 있는 경우, FTL은 맵핑 테이블을 참조하여 요청된 논리 블록 주소에 대응하는 결함이 없는 물리 블록 주소를 플래쉬 메모리(240)에 제공한다.
그런데, 종래의 FTL은 배드 블록 대체용 블록과 로그 블록을 위해 예비 영역을 일정 크기를 갖는 고정 영역으로 할당하여 관리하는 방식이었다. 그리고, 예비 영역에서 배드 블록 대체용 블록은 배드 블록이 발생하는 경우에만 순차적으로 채워지므로 빈 블록이 항상 존재하게 되어 활용성이 저하된다. 그리고, 로그 블록은 머지(merge)를 위해 버퍼링(buffering) 기능을 하므로 그 크기가 클수록 FTL의 성능이 좋아진다.
본 발명은 플래쉬 메모리의 예비 영역을 효율적으로 활용하여 성능이 향상된 FTL을 구비한 메모리 시스템 및 메모리 시스템에서 FTL의 예비 영역 관리 방법을 제공하는 것이다.
본 발명의 일실시예에 따르면, 메모리 시스템으로서, 버퍼링을 위한 로그 블록 영역과 배드 블록 대체용 영역을 갖는 예비 영역과 데이터가 저장되는 사용자 영역으로 이루어지는 플래쉬 메모리; 상기 사용자 영역에 배드 블록 발생시 상기 예비 영역에 배드 블록 대체용 영역을 별도로 설정하지 않고 상기 예비 영역이 모두 로그 블록 영역으로 설정되도록, 상기 로그 블록 영역내에 상기 배드 블록 대체용 영역을 병합하고 상기 로그 블록 영역이 상기 배드 블록 대체용 영역 기능을 가지도록 설정하고, 상기 사용자 영역에 배드 블록 발생시마다 상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록 또는 사용자 영역의 블록으로 설정하고, 상기 설정에 따라 상기 플래쉬 메모리에 저장된 어드레스 맵핑 테이블을 갱신하는 플래쉬 변환 레이어를 구비하고, 상기 로그 블록 영역의 크기는, 플랙서블하게 할당되는 것을 특징으로 한다.
여기서, 상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록으로 설정하는 경우 상기 사용자 영역의 배드 블록과 상기 설정된 배드 블록 대체용 블록의 데이터를 교체하는 것이 바람직하다.
삭제
삭제
본 발명의 다른 실시예에 따르면, 버퍼링을 위한 로그 블록과 배드 블록 대체용 블록을 갖는 예비 영역과, 데이터가 저장되는 사용자 영역으로 이루어지는 플래쉬 메모리를 갖는 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법으로서, 상기 사용자 영역에 배드 블록 발생시 상기 예비 영역에 배드 블록 대체용 영역을 별도로 설정하지 않고 상기 예비 영역이 모두 로그 블록 영역으로 설정되도록, 상기 예비 영역의 배드 블록 대체용 블록을 상기 로그 블록 영역 내에 병합하는 단계; 상기 사용자 영역에 배드 블록 발생시마다 상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록 또는 사용자 영역으로 설정하는 단계; 상기 설정에 따라 어드레스 맵핑 테이블을 갱신하는 단계를 포함하고, 상기 로그 블록 영역의 크기는, 플랙서블하게 할당되는 것을 특징으로 한다.
여기서, 상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록으로 설정하는 경우, 상기 사용자 영역의 배드 블록과 상기 설정된 배드 블록 대체용 블록의 데이터를 교체하는 단계를 포함하는 것이 바람직하다.
본 발명에 의하면, 플래쉬 메모리의 예비 영역을 효율적으로 활용할 수 있고, FTL의 성능을 향상시킬 수 있고, 로그 블록 영역의 크기를 플랙서블하게 할당하여 사용할 수 있다.
도 1은 일반적인 메모리 시스템의 하드웨어 구조를 나타낸 블록도이다.
도 2는 도 1에 도시된 메모리 시스템의 소프트웨어 구조를 나타낸 블록도이다.
도 3은 종래의 플래쉬 메모리의 구조를 나타낸 도면이다.
도 4는 일실시예에 따라 플래쉬 메모리의 배드 블록 발생시 예비 블록의 사용 상태를 나타낸 간략 도면이다.
도 5는 일실시예에 따라 플래쉬 메모리의 배드 블록 발생시 예비 블록의 사용 상태를 나타낸 상세 도면이다.
도 6은 일실시예에 따른 FTL의 예비 영역 관리 방법을 보인 순서도이다.
도 7은 다른 실시예에 따른 FTL의 예비 영역 관리 방법을 보인 순서도이다.
본 발명에 따른 실시예에 있어서, 플래쉬 메모리는 사용자 영역 및 예비 영역으로 구분되는 메모리 셀 어레이를 포함하고, 상기 예비 영역은 상기 사용자 영역 내의 배드 블록을 교체하기 위하여 구비되며, 예비 영역 중 배드 블록 대체용 영역을 따로 설정하지 않고 예비 영역 전체를 로그 블록 영역으로 전용(diversion)하고, 배드 블록의 발생시 로그 블록 영역의 로그 블록 중 하나를 배드 블록 대체 블록으로 사용한다.
본 발명에 따른 메모리 시스템의 소프트웨어 구조는 종래의 도 2와 동일하고, FTL의 기능이 변경된 것이므로 FTL에 대해서만 설명하고, 나머지 구성의 상세한 설명은 생략한다.
본 발명에 따라 메모리 시스템의 FTL은 로그 블록 내에 배드 블록 대체용 영역을 병합하고 로그 블록 영역이 배드 블록 대체용 영역 기능을 가지도록 설정하고, 사용자 영역에 배드 블록 발생시마다 로그 블록 영역 중 하나의 블록을 배드 블록으로 설정한다. 즉, 메모리 시스템의 FTL은 플래쉬 메모리의 예비 영역 중 배드 블록 대체용 영역을 로그 블록 영역으로 병합하여 사용하면서 배드 블록의 발생시마다, 로그 블록 영역을 배드 블록 대체용 예비 영역으로 전환한다. 이와 같이, 플래쉬 메모리의 예비 영역에서 배드 블록 대체용 영역을 따로 두지 않고, 배드 블록 발생시마다 교체한다.
한편, 본 발명에 따라 메모리 시스템의 FTL은 배드 블록 발생시마다 로그 블록 영역 중 하나의 블록을 사용자 블록 영역으로 교체한다. 이에 의해, 줄어드는 로그 블록의 개수에 맞춰 버퍼링(buffering)이 가능하게 된다.
본 발명에 따른 FTL은 로그 블록 영역의 크기를 플랙시블하게 할당하는 것이 효과적이다.
한편, FTL은 애플리케이션 또는 파일 시스템으로부터 논리적 어드레스(Logical Address)를 입력받고, 이를 물리적 어드레스(Physical Address)로 변환한 다음에, 변환한 물리적 어드레스를 플래쉬 메모리(240)로 제공한다. 어드레스 변환을 위한 맵핑 테이블은 랜덤 액세스 메모리(120)에 저장된다. 어드레스 맵핑 테이블에는 논리적 어드레스 및 이에 대응하는 물리적 어드레스가 표시되어 있다. 물리적 어드레스는 실제 플래쉬 메모리(240)에서 사용할 어드레스이다. 따라서, 본 발명에 따른 FTL은 로그 영역을 배드 블록 대체용 예비 영역으로 전환하거나 사용자 영역으로 전환하는 경우 어드레스 맵핑 테이블을 갱신한다.
도 4는 일실시예에 따라 플래쉬 메모리의 배드 블록 발생시 예비 블록의 사용 상태를 보인 간략 도면이고, 도 5는 일실시예에 따라 플래쉬 메모리의 배드 블록 발생시 예비 블록의 사용 상태를 보인 상세 도면이다.
즉, 도 4 및 도 5는 일실시예에 따라 사용자 영역 내의 메모리 블록에 배드 블록이 발생한 경우 배드 블록을 대체하는 방법을 설명하는 도면이다.
도 4(a)에 보인 바와 같이, 플래쉬 메모리(40)의 예비 영역에서 배드 블록 대체용 영역을 별도로 설정하지 않고, 로그 영역(41)으로 모두 설정하여 활용한다. 이에 따라, 예비 영역은 로그 블록으로만 이루어진다. 그러나, 도 4(b), 도 4(c)에 보인 바와 같이 사용자 영역(43)에 배드 블록(43a, 43b)의 발생시마다 로그 영역(41) 중 하나의 블록씩을 배드 블록 대체용 영역으로 설정한다.
이에 대해, 도 5를 참조하여 보다 상세히 설명한다. 본 실시예에서는 도 5(a)에 보인 바와 같이, 플래쉬 메모리(50)에서 예비 영역(51)이 n+1개(block_0~block_n)로 이루어지고, 사용자 영역(53)이 n+1개(block_0~block_n)로 이루어지는 경우를 전제로 하여 설명한다.
먼저, 도 5(b)에 보인 바와 같이, 사용자 영역(53)의 여섯번째 블록(block_5)(53a)에 결함이 발생하여 배드 블록이 된 경우, 예비 영역(51)의 첫 번째 블록(block_0)(51a)을 배드 블록 대체용 영역으로 설정한다. 그 다음 도 5(c)에 보인 바와 같이, 사용자 영역(53)의 n번째 블록(block_n-1)(53b)에 결함이 발생하여 배드 블록이 된 경우, 예비 영역(51)의 두 번째 블록(block_1)(51b)을 배드 블록 대체용 영역으로 설정한다. 도 5(d)에 보인 바와 같이, 그 다음 사용자 영역(53)의 세 번째 블록(block_2)(53c)에 결함이 발생하여 배드 블록이 된 경우, 예비 영역(51)의 세 번째 블록(block_2)(51c)을 배드 블록 대체용 영역으로 설정한다. 이와 같이, 사용자 영역(53)에 배드 블록이 발생시마다 예비 영역(51)의 하나의 블록을 배드 블록 대체용 영역으로 설정한다.
한편, FTL이 배드 블록 발생시마다 로그 블록 영역 중 하나의 블록씩 사용자 블록 영역으로 교체하는 방법에도 동일하게 적용될 수 있다.
도 6은 일실시예에 따른 FTL의 예비 영역 관리 방법을 보인 순서도이다. 본 실시예는, 예비 영역 중 배드 블록 대체용 영역을 모두 로그 영역으로 설정하는 것을 전제로 한다. 도 6에 보인 바와 같이, FTL이 예비 영역에서 배드 블록 대체용 블록을 로그 블록 영역에 병합하고(S10), 맵핑 테이블을 갱신한다(S11). 사용자 영역에 배드 블록이 발생하면(S12), FTL이 로그 블록 영역 중 하나의 블록을 배드 블록 대체용으로 설정한다(S13). FTL이 사용자 영역의 배드 블록과 예비 영역의 배드 블록 대체용 블록의 데이터를 교체하고(S14), 어드레스 맵핑 테이블을 갱신한다(S15).
도 7은 다른 실시예에 따른 FTL의 예비 영역 관리 방법을 보인 순서도로서, 배드 블록 발생시 로그 영역 중 하나의 블록을 사용자 영역으로 교체하는 방법을 설명한 것이다. 본 실시예는, 예비 영역 중 배드 블록 대체용 영역을 모두 로그 영역으로 설정하는 것을 전제로 한다. 도 7에 보인 바와 같이, FTL이 예비 영역에서 배드 블록 대체용 블록을 로그 블록 영역으로 병합하고(S20), 맵핑 테이블을 갱신한다(S21). 사용자 영역에 배드 블록이 발생하면(S22), FTL이 로그 영역 중 하나의 블록을 사용자 영역으로 설정하고(S23), 맵핑 테이블을 갱신한다(S24).
이러한 구성에 의하여, 플래쉬 메모리에서 예비 영역을 효율적으로 관리하여 성능이 향상된 FTL이 제공되고, 로그 블록 영역의 크기를 플랙서블하게 할당하여 사용할 수 있다.
40 : 플래쉬 메모리 41, 51 : 로그 블록 영역
42 : 예비 영역 41a, 41b, 41c : 배드 블록 대체 영역
43, 53 : 사용자 영역 43a, 43b, 43c : 배드 블록
51a, 51b, 51c : 배드 블록 대체 영역
53a, 53b, 53c : 배드 블록

Claims (6)

  1. 메모리 시스템으로서,
    버퍼링을 위한 로그 블록 영역과 배드 블록 대체용 영역을 갖는 예비 영역과 데이터가 저장되는 사용자 영역으로 이루어지는 플래쉬 메모리;
    상기 사용자 영역에 배드 블록 발생시 상기 예비 영역에 배드 블록 대체용 영역을 별도로 설정하지 않고 상기 예비 영역이 모두 로그 블록 영역이 되도록, 상기 로그 블록 영역내에 상기 배드 블록 대체용 영역을 병합하고 상기 로그 블록 영역이 상기 배드 블록 대체용 영역 기능을 가지도록 설정하고, 상기 사용자 영역에 배드 블록 발생시마다 상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록 또는 사용자 영역의 블록으로 설정하고, 상기 각 설정에 따라 상기 플래쉬 메모리에 저장된 어드레스 맵핑 테이블을 갱신하는 플래쉬 변환 레이어를 구비하고,
    상기 로그 블록 영역의 크기는, 플랙서블하게 할당되는 것을 특징으로 하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록으로 설정하는 경우 상기 사용자 영역의 배드 블록과 상기 설정된 배드 블록 대체용 블록의 데이터를 교체하는 것을 특징으로 하는 메모리 시스템.
  3. 버퍼링을 위한 로그 블록과 배드 블록 대체용 블록을 갖는 예비 영역과, 데이터가 저장되는 사용자 영역으로 이루어지는 플래쉬 메모리를 갖는 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법으로서,
    상기 사용자 영역에 배드 블록 발생시 상기 예비 영역에 배드 블록 대체용 영역을 별도로 설정하지 않고 상기 예비 영역이 모두 로그 블록 영역이 되도록, 상기 예비 영역의 배드 블록 대체용 블록을 상기 로그 블록 영역 내에 병합하고 상기 로그 블록 영역이 상기 배드 블록 대체용 영역 기능을 가지도록 설정하는 단계;
    상기 사용자 영역에 배드 블록 발생시마다 상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록 또는 사용자 영역으로 설정하는 단계;
    상기 각 설정에 따라 어드레스 맵핑 테이블을 갱신하는 단계를 포함하고,
    상기 로그 블록 영역의 크기는, 플랙서블하게 할당되는 것을 특징으로 하는 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법.
  4. 제3항에 있어서,
    상기 로그 블록 영역 중 하나의 블록을 배드 블록 대체용 블록으로 설정하는 경우, 상기 사용자 영역의 배드 블록과 상기 설정된 배드 블록 대체용 블록의 데이터를 교체하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법.
  5. 삭제
  6. 삭제
KR1020100046404A 2010-05-18 2010-05-18 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법 KR101280181B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100046404A KR101280181B1 (ko) 2010-05-18 2010-05-18 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100046404A KR101280181B1 (ko) 2010-05-18 2010-05-18 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법

Publications (2)

Publication Number Publication Date
KR20110126894A KR20110126894A (ko) 2011-11-24
KR101280181B1 true KR101280181B1 (ko) 2013-07-05

Family

ID=45395772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100046404A KR101280181B1 (ko) 2010-05-18 2010-05-18 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법

Country Status (1)

Country Link
KR (1) KR101280181B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030010176A (ko) * 2001-07-25 2003-02-05 이병두 은행 열매 추출물과 호도 열매 추출물을 이용한 천식 치료제
US11150819B2 (en) 2019-05-17 2021-10-19 SK Hynix Inc. Controller for allocating memory blocks, operation method of the controller, and memory system including the controller

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220019570A (ko) 2020-08-10 2022-02-17 에스케이하이닉스 주식회사 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040087245A (ko) * 2003-04-04 2004-10-13 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
KR20080010965A (ko) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 메모리 장치 및 메모리 장치의 불량블록 관리 방법
KR20090131224A (ko) * 2008-06-17 2009-12-28 주식회사 셀픽 플래시 메모리 관리 방법
KR20100024258A (ko) * 2008-08-25 2010-03-05 삼성전자주식회사 배드 블록 리맵핑 기능을 갖는 불휘발성 메모리 장치 및 그배드 블록 리맵핑 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040087245A (ko) * 2003-04-04 2004-10-13 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
KR20080010965A (ko) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 메모리 장치 및 메모리 장치의 불량블록 관리 방법
KR20090131224A (ko) * 2008-06-17 2009-12-28 주식회사 셀픽 플래시 메모리 관리 방법
KR20100024258A (ko) * 2008-08-25 2010-03-05 삼성전자주식회사 배드 블록 리맵핑 기능을 갖는 불휘발성 메모리 장치 및 그배드 블록 리맵핑 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030010176A (ko) * 2001-07-25 2003-02-05 이병두 은행 열매 추출물과 호도 열매 추출물을 이용한 천식 치료제
US11150819B2 (en) 2019-05-17 2021-10-19 SK Hynix Inc. Controller for allocating memory blocks, operation method of the controller, and memory system including the controller

Also Published As

Publication number Publication date
KR20110126894A (ko) 2011-11-24

Similar Documents

Publication Publication Date Title
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US9329995B2 (en) Memory device and operating method thereof
US7844772B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
TWI689817B (zh) 記憶體系統及控制方法
RU2666241C2 (ru) Перераспределение сегментов памяти для решения проблемы фрагментации
TWI399644B (zh) 非揮發記憶體區塊管理方法
US8341336B2 (en) Region-based management method of non-volatile memory
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
KR20130096881A (ko) 플래시 메모리 장치
JP2007199905A (ja) 半導体記憶装置の制御方法
JP6139711B2 (ja) 情報処理装置
JP2011186562A (ja) メモリ管理装置及び方法
US20140207998A1 (en) System and method of wear leveling for a non-volatile memory
JP2011186555A (ja) メモリ管理装置及び方法
JP2011186561A (ja) メモリ管理装置
KR101280181B1 (ko) 메모리 시스템 및 메모리 시스템에서 플래쉬 변환 레이어의 예비 영역 관리 방법
KR101190001B1 (ko) 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템
JP2011186563A (ja) メモリ管理装置およびメモリ管理方法
CN113590505A (zh) 地址映射方法、固态硬盘控制器及固态硬盘
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
CN105630403A (zh) 文件存储系统及其文件存储控制方法与装置
KR20150139383A (ko) 반도체 장치
KR101119866B1 (ko) 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템
JP2011186554A (ja) メモリ管理装置及び方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170525

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 7