KR100965051B1 - 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 - Google Patents

플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 Download PDF

Info

Publication number
KR100965051B1
KR100965051B1 KR1020080096581A KR20080096581A KR100965051B1 KR 100965051 B1 KR100965051 B1 KR 100965051B1 KR 1020080096581 A KR1020080096581 A KR 1020080096581A KR 20080096581 A KR20080096581 A KR 20080096581A KR 100965051 B1 KR100965051 B1 KR 100965051B1
Authority
KR
South Korea
Prior art keywords
block
blocks
group
fusion
sequential
Prior art date
Application number
KR1020080096581A
Other languages
English (en)
Other versions
KR20100037319A (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 KR1020080096581A priority Critical patent/KR100965051B1/ko
Priority to US12/572,165 priority patent/US8200889B2/en
Publication of KR20100037319A publication Critical patent/KR20100037319A/ko
Application granted granted Critical
Publication of KR100965051B1 publication Critical patent/KR100965051B1/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/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies

Abstract

플래시 메모리를 포함하는 스토리지 디바이스에서 플래시 변환 계층 (Flash Translation Layer, FTL)을 구현하는 방법 및 장치가 제공된다. 본 발명의 FTL은 쓰기 요청의 지역성에 따라 블록을 순차그룹 및 융합그룹으로 구분할 수 있다. 본 발명의 FTL은 융합그룹에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터를 저장하고, 순차그룹에 포함되는 블록에는 블록 사상 기법 또는 순차적으로 데이터를 저장할 수 있다. 본 발명의 FTL은 이를 통해 한정된 여유 블록을 이용하여 수행되는 가비지 콜렉션 연산의 효율을 높이고 비순차 참조 연산의 효율 또한 높일 수 있다.
FTL, fusion, 순차, 비순차, 페이지 사상, page mapping

Description

플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치 {VARIABLE SPACE PAGE MAPPING METHOD AND APPARATUS FOR FLASH MEMORY DEVICE}
본 실시예들은 메모리 장치 및 메모리 장치의 관리 방법에 관한 것으로서, 특히 비휘발성 메모리(non-volatile memory)에 기반한 메모리 장치(memory device) 및 메모리 장치의 관리 방법에 관한 것이다.
데이터를 저장하는 스토리지 디바이스로는 자기 디스크(magnetic disk), 반도체 메모리 등이 있을 수 있다. 스토리지 디바이스는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 물리적 특성에 상응하는 관리 방법이 필요하다.
종래의 스토리지 디바이스로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기/쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기/쓰기 시간이 달라지는 특성을 가진다.
최근에는 자기 디스크에 비하여 읽기/쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성 메모리 장치가 급속하게 자기 디스크를 대체하 고 있다. 이는 비휘발성 메모리 장치의 대용량화가 이루어졌기 때문에 가능한 결과이다.
비휘발성 메모리 장치는 전기적으로 읽기(read), 쓰기(write) 및 소거(erase)가 가능하며, 공급 전원이 없는 상태에서도 저장된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.
비휘발성 메모리 장치에 대한 프로그래밍은 페이지 단위로 수행될 수 있고 소거는 블록 단위로 수행될 수 있다. 블록은 복수의 페이지들을 포함할 수 있다. 비휘발성 메모리 장치의 컨트롤러는 외부의 호스트(host) 또는 프로세서(processor)에 논리 주소 (logical address)를 제공하고, 비휘발성 메모리 장치에 대해서는 물리 주소 (physical address)를 제공할 수 있다. 컨트롤러는 물리 주소를 이용하여 비휘발성 메모리 장치를 관리하고, 물리 주소를 논리 주소로 변환할 수 있다. 이처럼 물리 주소 및 논리 주소의 변환이 수행되는 계층을 플래시 변환 계층 (Flash Translation Layer)라 하기도 한다. FTL에서 수행되는 판정, 분류, 정렬 등의 연산(operation)은 플래시 메모리 장치의 관리 방법이라고 불리기도 한다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 한정된 여유 블록을 이용하는 가비지 콜렉션 (garbage collection) 연산의 효율을 높이기 위하여 비순차 블록 및 여유 블록을 융합그룹으로 지정하고 관리할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 순차적으로 데이터가 저장된 블록의 재사용 비용을 줄이기 위하여 순차적으로 데이터가 저장된 블록을 순차그룹으로 지정하고 별도로 관리할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 비순차 참조 연산으로 인한 데이터 갱신 비용을 줄이기 위하여 융합그룹으로 선택된 블록 내에서는 페이지 사상 (page mapping) 기법을 적용할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 비휘발성 메모리 전체에 대한 데이터 갱신 비용을 줄이기 위하여 순차 참조 및 비순차 참조를 구분하고 각 참조 연산에 대하여 교환 병합 또는 페이지 사상 기법을 선택적으로 적용할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 융합그룹을 최적화하기 위하여 참조 연산 비용 및 가비지 콜렉션 연산 비용에 대한 수학적 모델을 설립하고 이용할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치는 비휘발성 메모리에 포함되는 복수의 블록들을 상기 복수의 블록들 각각에 대한 접근 연산의 지역성에 기초하여 순차그룹 및 융합그룹으로 구분하는 블록 지정부, 및 상기 순차그룹에 포함되는 블록에 데이터 섹터를 순차적으로 저장하고, 상기 융합그룹에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터 섹터를 저장하는 사상부를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 방법은 비휘발성 메모리에 포함되는 복수의 블록들 각각에 대한 접근 연산의 지역성을 판정하는 단계, 상기 판정된 지역성에 기초하여 상기 복수의 블록들 각각을 순차 블록, 비순차 블록 및 여유 블록으로 구분하는 단계, 상기 비순차 블록 및 상기 여유 블록의 일부를 융합그룹으로 지정하는 단계, 및 상기 융합그룹에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터 섹터를 저장하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 일부 비순차 쓰기 지역성을 보이는 블록 과 일부 여유 블록을 융합그룹으로 지정하고 관리함으로써 한정된 여유 블록을 이용하는 가비지 콜렉션 (garbage collection) 연산의 효율을 높일 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 순차적으로 데이터가 저장된 블록을 순차그룹으로 지정하고 별도로 관리함으로써 순차적으로 데이터가 저장된 블록의 재사용 비용을 줄일 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 융합그룹으로 선택된 블록 내에서는 페이지 사상 (page mapping) 기법을 적용함으로써 비순차 참조 연산으로 인한 데이터 갱신 비용을 줄일 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 순차 참조 및 비순차 참조를 구분하고 각 참조 연산에 대하여 교환 병합 또는 페이지 사상 기법을 선택적으로 적용함으로써 비휘발성 메모리 전체에 대한 데이터 갱신 비용을 줄일 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 융합그룹에 소속된 블록을 동적으로 순차 블록으로 전환하고, 순차 블록을 동적으로 융합그룹에 포함시켜 참조 패턴에 유연하게 대처하여 성능을 향상시킬 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 또는 방법은 참조 연산 비용 및 가비지 콜렉션 연산 비용에 대한 수학적 모델을 설립하고 이용함으로써 융합그룹을 최적화할 수 있다.
이하에서, 본 발명의 일 실시예에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
본 명세서에서 사용되는 메모리 장치 (memory device)는 데이터를 저장하는 스토리지 장치 (storage device) 및 비휘발성 메모리 (non-volatile memory)를 포함하는 개념이다.
도 1은 본 발명의 일 실시예에 따른 메모리 관리 장치에 의하여 관리되는 플래시 메모리 (100)의 예를 도시하는 도면이다.
메모리 관리 장치는 플래시 메모리 (100)의 복수의 블록들을 메타 블록 (110), 순차(sequential) 그룹 (120), 융합(fusion) 그룹 (130) 및 여유(free) 블록 (140)으로 구분할 수 있다.
메타 블록 (110)은 플래시 메모리 (100)의 복수의 블록들 각각에 사상 (mapping)되는 논리 블록, 논리 페이지 정보를 저장하고, 부팅 시 필요한 정보를 저장할 수 있다.
메모리 관리 장치는 플래시 메모리 (100)의 복수의 블록들 중 논리 페이지가 논리 블록에 순차적으로 저장된 블록을 순차그룹 (120)으로 지정할 수 있다.
메모리 관리 장치는 플래시 메모리 (100)의 복수의 블록들 중 비순차적으로 데이터가 저장된 블록 및 여유 블록 중 일부를 융합 (fusion) 그룹 (130)으로 지정할 수 있다. 메모리 관리 장치는 융합그룹 (130)에 포함되는 물리 블록 (physical block)에는 하나 이상의 논리 블록 (logical block)에 포함된 논리 페이지를 페이지 레벨 사상 기법을 적용하여 저장할 수 있다.
여유 블록 (140)은 논리적인 데이터를 저장하기 위한 블록 이외에 FTL이 다른 목적으로 사용하는 블록이다. 여유 블록의 일부는 융합그룹 (130)에 소속되어 가비지 콜렉션을 위해 사용되고, 일부는 순차 블록의 병합 연산에 사용된다.
본 명세서에서 '물리 블록' 및 '물리 페이지'는 각각 플래시 메모리 (100)의 블록 및 페이지를 의미한다. '논리 블록' 및 '논리 페이지'는 플래시 메모리 (100)의 외부의 호스트가 인식하는 블록 및 페이지를 의미한다. 메모리 관리 장치는 하나의 물리 페이지에 하나의 논리 페이지를 매핑할 수 있다. 논리 페이지에는 섹터 데이터가 순차적으로 저장된다. 논리 페이지에 저장되는 섹터의 수는 논리 페이지의 크기에 따라 결정된다.
메모리 관리 장치가 블록 사상 기법을 사용하는 경우 하나 이상의 물리 블록에 논리 블록을 사상(매핑)하고, 매핑 정보에 기초하여 플래시 메모리 (100)를 관리할 수 있다. 융합그룹과 같이 메모리 관리 장치가 페이지 사상 기법을 사용하는 경우 특정 논리 블록은 특정 물리 블록에 사상되지 않고 논리 블록의 논리 페이지는 다수의 물리 블록에 저장되며, 매핑 정보는 각 논리 페이지의 위치를 사상한다.
본 발명에 제시된 메모리 관리 방법은 가변 공간 페이지 사상 (Variable Space Page Mapping, VSPM)이라 명명될 수 있다. 그러나 VSPM이라는 명칭이 본 발명의 권리 범위를 제한되는 일이 없도록 해석되어야 함은 기술 분야의 종사자에게 자명하다.
도 2는 본 발명의 일 실시예에 따른 메모리 관리 장치 (200)를 도시하는 도면이다.
메모리 관리 장치 (200)는 파일 시스템 (240)으로부터 플래시 메모리 (100)에 대한 접근 연산 또는 참조 연산을 수신한다. 파일 시스템 (240)은 호스트에 의하여 인식되며, 운영 체제 (operating system)와도 관련된다. 파일 시스템 (240)은 호스트에 의하여 인식되는 파일 및 프로세스 정보를 플래시 메모리 (100)에 대 한 논리 주소 정보로 변환할 수 있다. 논리 주소 정보는 논리 블록 주소 (또는 논리 블록 번호) 및 논리 페이지 주소 (또는 논리 페이지 번호)를 포함할 수 있다.
파일 시스템 (240)은 논리 주소 정보를 메모리 관리 장치 (200)로 전송할 수 있다. 메모리 관리 장치 (200)는 플래시 변환 계층 (Flash Translation Layer, FTL)이라고도 불리며, 논리 주소 정보를 플래시 메모리 (100)의 물리 주소 정보로 변환할 수 있다. 메모리 관리 장치 (200)는 논리 블록 및 논리 페이지를 물리 블록 및 물리 페이지로 매핑할 수 있다.
접근 연산 (access operation) 또는 참조 연산 (refer operation) 은 메모리(예를 들어, 플래시 메모리 (100))의 하나 이상의 섹터에 대한 읽기 및/또는 쓰기 연산을 포함할 수 있다.
메모리 관리 장치 (200)는 패턴 검출기 (210), 블록 지정부 (220) 및 사상부 (230)를 포함할 수 있다.
메모리 관리 장치 (200)는 플래시 메모리 (100)에 포함되는 복수의 블록들 각각에 대한 접근 연산의 지역성에 기초하여 상기 복수의 블록들을 순차그룹 및 융합그룹으로 구분할 수 있다.
호스트는 플래시 메모리 (100)에 저장된 데이터를 한꺼번에 순차적으로 읽거나 쓰려는 경향이 있다. 이를 공간적 지역성 (spatial locality)이라 하기도 한다.
한편 호스트는 한번 접근한 데이터에 또 다시 접근하는 경향이 있다. 호스트는 한번 접근했던 데이터에 비교적 가까운 시간 내에 다시 접근하는데 이를 시간 적 지역성 (temporal locality)이라 하기도 한다.
패턴 검출기 (210)는 플래시 메모리 (100)의 복수의 블록들 각각에 대한 접근 연산에 대응하는 논리 블록의 패턴을 검출할 수 있다. 예를 들어 접근 연산이 임계치 이상의 수의 연속적인 논리 블록들에 접근하는 경우, 패턴 검출기 (210)는 접근 연산이 순차 접근 (sequential access)이라고 간주할 수 있다. 반대로 접근 연산이 불연속적인 논리 블록들에 접근하거나 연속적인 논리 블록들의 수가 상기 임계치 미만인 경우 패턴 검출기 (210)는 접근 연산이 비순차 접근이라고 간주할 수 있다.
블록 지정부 (220)는 상기 복수의 블록들 각각에 대한 접근 연산이 순차 접근인지 여부에 기초하여 상기 복수의 블록들을 순차그룹 (120) 또는 융합그룹 (130)으로 지정할 수 있다. 블록 지정부 (220)는 접근 연산이 순차 접근이면 접근 연산에 대응하는 블록을 순차그룹 (120)으로 지정하고, 접근 연산이 비순차 접근이면 접근 연산에 대응하는 블록을 융합그룹 (130)으로 지정할 수 있다.
순차그룹 (120) 은 순차 접근에 대응하는 블록들의 집합체(set)이고, 논리 주소 또는 물리 주소에 의해 제한되지는 않는다. 순차그룹 (120)은 정제 영역 (refined area)이라 불려도 무방하다.
융합그룹 (130) 또한 비순차 접근에 대응하는 블록들의 집합체이고, 논리 주소 또는 물리 주소에 의해 제한되지는 않는다.
사상부 (230)는 순차그룹 (120)에 포함되는 블록에 데이터 섹터를 순차적으로 저장하고, 융합그룹 (130)에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터 섹터를 저장한다.
사상부 (230)는 융합그룹 (130)에 포함되는 블록 (물리 블록) 중 버퍼 블록을 선택하고, 버퍼 블록에 하나 이상의 논리 블록에 포함되는 논리 페이지를 매핑할 수 있다.
블록 지정부 (220)는 접근 연산의 지역성에 기초하여 상기 복수의 블록들 중 비순차 접근에 대응하는 블록을 융합그룹 (130)으로 지정하고, 데이터가 저장되어 있지 않은 여유 블록 중 일부를 융합그룹 (130)으로 지정할 수 있다.
데이터가 저장되어 있지 않은 여유 블록들의 순수한 집합체 (pure set)가 여유 블록 (140)으로 도시되어 있다. 여유 블록 (140)중 일부는 융합그룹에 포함되어 있으며, 일부는 융합그룹 (130)에도 포함되어 있지 않은 순수한 형태를 가지고 있으며, 도 2에서 별도의 여유 블록 (140) 형태를 가진다.
블록 지정부 (220) 또는 패턴 검출기 (210)는 현재 융합그룹 (130)에 포함되어 있는 블록이더라도, 상기 블록이 순차 조건을 만족하는 경우 상기 블록을 융합그룹 (130) 집합으로부터 추출하여 순차그룹 (120)으로 지정할 수 있다. 이러한 연산을 융합 해제 연산이라 하기도 한다.
메모리 관리 장치 (200)는 플래시 메모리 (100)의 각 블록을 동적으로 순차그룹 (120) 또는 융합그룹 (130)으로 지정할 수 있다.
블록 지정부 (220) 또는 패턴 검출기 (210)는 현재 순차그룹 (120)에 포함되어 있는 블록이더라도, 상기 블록이 순차 조건을 만족하지 않는 경우 상기 블록을 융합그룹 (130)으로 지정할 수 있다. 순차 조건은 블록 내의 페이지가 순차적으로 저장되어 있을 조건이다.
순차 조건은 블록 내의 페이지가 주소 상의 순서대로 저장되어 있지 않더라도 하나의 블록 내에서 페이지 각각이 한번씩 저장되어 있으면 성립할 수 있다. 즉, 블록 지정부 (220)는 복수의 블록들 중 데이터 섹터 각각이 한번씩 저장된 블록을 순차그룹 (120)으로 지정할 수 있다.
메모리 관리 장치 (200)는 융합그룹 (130)에 포함된 블록을 대상으로 가비지 콜렉션 연산을 수행할 수 있다. 가비지 콜렉션 연산 (garbage collection operation)은 여유 블록을 얻기 위하여 블록에 저장된 데이터를 병합 (merge)하는 과정을 의미한다.
메모리 관리 장치 (200)는 융합그룹 (130)에 대하여 페이지 사상 기법을 적용하고, 순차그룹 (120)에 대하여 블록 사상 기법을 적용할 수 있다. 이 때 페이지 사상 기법은 블록 사상 기법의 수퍼셋과 같은 역할을 할 수 있으므로, 플래시 메모리 (100) 내의 모든 블록에 페이지 사상 기법이 적용되는 것과 유사하다.
페이지 사상 기법이 블록 사상 기법의 수퍼셋과 같은 역할을 하는 경우 메모리 관리 장치 (200)는 순차그룹 (120) 에 대응하는 모든 논리 페이지들을 특정 논리 블록 내에 할당함으로써 블록 사상 기법과 유사한 결과를 얻을 수 있다.
블록 사상 기법은 논리 블록을 물리 블록으로 매핑하는 기법이므로, 하나의 논리 블록에 포함되는 모든 논리 페이지들은 대응하는 물리 블록 내의 물리 페이지에 매핑된다. 페이지 사상 기법은 논리 페이지를 물리 페이지로 매핑하는 기법이므로, 하나의 논리 블록에 포함되는 서로 다른 논리 페이지들은 서로 다른 물리 블 록에 저장될 수 있다. 결국 페이지 사상 기법으로 관리되는 하나의 물리 블록은 서로 다른 논리 블록에 포함된 논리 페이지를 저장할 수 있다.
융합그룹 (130)에는 더 이상 특정 논리 블록에 어떤 물리 블록이 대응되는지와 같은 사상 정보는 존재하지 않는다. 어떤 논리 블록이 융합그룹 (130)에 포함되면, 특정 논리 블록은 그에 대응되는 물리 블록을 가지지 않는다. 융합그룹 (130)에 어떤 논리 블록들이 포함되어 있으며, 몇 개의 여유 블록이 융합그룹에 포함되어 있는지만 의미가 있다. 논리 블록은 융합그룹 (130)에 융합될 때 자신에게 할당되어 있던 물리 블록을 융합그룹에 포함시킨다. 그리고 이러한 물리 블록과 여유 블록들은 이제 하나의 융합그룹 (130)을 형성하며, 융합그룹 (130)에 포함된 모든 논리 페이지들을 위한 저장 공간 및 쓰레기 수집 공간을 제공한다.
메모리 관리 장치 (200)는 가비지 콜렉션 연산 및 융합 해제 연산을 위하여 융합그룹 (130) 내에 모든 페이지가 전혀 사용되지 않는 순수한 빈 블록 두 개 이상을 유지한다. 융합그룹 (130) 내부적으로 두 개 이상의 빈 블록을 유지하거나 또는 융합그룹 (130) 내부에 빈 블록을 유지하지 않고 필요할 때 여유 블록 (140) 에서 빈 블록을 가져다 사용하고 연산이 종료된 후 하나의 블록을 여유 블록 (140)으로 반환하는 것은 모두 동일한 효과를 가진 동일 기법이다.
도 3은 도 2의 메모리 관리 장치 (200)의 동작의 일 예를 도시하는 도면이다.
패턴 검출기 (210)는 블록을 순차그룹 (120) 또는 융합그룹 (130) 중 어느 하나로 지정할 수 있다.
워크로드 (workload) 검출기 (240)는 융합그룹 (130) 내에서 재참조되는 요청의 특성을 검출하여 융합그룹 (130)에 포함되는 논리 블록의 수를 조정할 수 있다. 만약 하나의 논리 블록을 융합그룹 (130)에서 제거하여 순차 블록으로 지정하면 해당 논리 블록을 저장하기 위한 물리 블록이 필요하며, 따라서 융합그룹 (130)에 포함된 물리 블록의 수가 감소한다.
메모리 관리 장치 (200)는 융합 연산 (fusion operation)을 수행함으로써 순차그룹 (120)에 포함되는 블록을 융합그룹 (130)으로 지정할 수 있고, 융합 해제 연산을 수행함으로써 융합그룹 (130)에 포함되는 블록을 순차그룹 (120)으로 지정할 수 있다.
메모리 관리 장치 (200)는 순차그룹 (120)에 포함되는 블록에 대하여 스위치 병합 (switch merge) 연산을 수행함으로써 여유 블록 (140)으로 변환할 수 있고, 융합그룹 (130)에 포함되는 블록에 대하여 가비지 콜렉션 연산을 수행함으로써 융합그룹 (130)내 빈 블록 또는 여유 블록 (140)으로 변환할 수 있다.
메모리 관리 장치 (200)는 플래시 메모리 (100)의 블록 각각의 현재 상태 (포함되는 그룹)를 메인 메모리 상의 맵에서 갱신할 수도 있고, 갱신된 맵을 메타 블록 (110)에 저장할 수도 있다.
도 4는 도 2의 메모리 관리 장치 (200)의 동작의 일 예를 도시하는 도면이다.
융합그룹 (400)은 물리 블록 B3, B4, B5, B6, B7을 포함한다.
B6, B7은 소거된(erased) 여유 블록이고, B1, B2는 순차그룹에 포함된다.
블록 B1은 논리 블록 B1'에 대응하고 논리 페이지 P11, P12, P13, P14, P15를 저장한다. 블록 B2은 논리 블록 B2'에 대응하고 논리 페이지 P21, P22, P23, P24, P25를 저장한다.
융합그룹 (400)에는 페이지 사상 기법이 적용되므로 하나의 논리 블록이 하나의 물리 블록에만 대응하지 않을 수 있다.
융합그룹 내에서 논리 블록은 그에 대응되는 특정 물리 블록을 가지지 않는다. 도 4에서 논리 블록 B3'의 논리 페이지들은 물리 블록 B3 및 B5에 저장되어 있다. 이해를 돕기 위하여 도 4에서 각 물리 블록에 특정 논리 블록의 페이지가 저장되어 있으면 해당 논리 블록을 표시하였으나, 이러한 표시가 특정 논리 블록이 하나의 또는 다수의 물리 블록에 대응됨을 의미하지는 않는다. 물리 블록 B3는 논리 페이지 P31, P32, P34를 저장할 수 있다. X는 물리 블록에 저장된 데이터가 무효 (invalid)함을 나타낸다. 유효한 (valid) 논리 페이지 P33, P35는 물리 블록 B5에 저장된다.
논리 블록 B4'의 페이지는 물리 블록 B4, B5에 저장될 수 있다. 물리 블록 B4는 논리 페이지 P42, P43, P44, P45를 저장한다. 유효한 논리 페이지 P41는 물리 블록 B5에 저장된다.
메모리 관리 장치 (200)는 물리 블록 B5를 버퍼링 블록 (buffering block)으로 선택할 수 있다. 버퍼링 블록에는 융합그룹 (400)에 포함되는 모든 논리 블록들(도 4의 예에서 B3'과 B4')의 논리 페이지 중 변경되는 새로운 페이지를 기록할 수 있다. 메모리 관리 장치 (200)는 하나 또는 복수의 블록을 버퍼링 블록으로 선택할 수 있다.
도 5는 도 2의 메모리 관리 장치 (200)의 융합 연산의 일 예를 도시하는 도면이다.
논리 블록 B2’는 순차그룹에 포함되어 있으며 물리 블록 B2가 대응되어 있다. 만약 논리 블록 B2’가 더 이상 순차 조건을 만족하지 못한다고 판단되면 메모리 관리부는 논리 블록 B2’를 융합 영역(500)에 포함시킨다. 이제 논리 블록 B2’는 융합 영역(500)에 포함되며, 논리 블록 B2’에 대응되었던 물리 블록 B2 역시 융합그룹의 멤버가 된다. 그리고 논리 블록 B2’의 논리 페이지 P22, P23이 갱신되면, 이제는 융합 영역의 버퍼링 블록 B5에 갱신된 논리 페이지 P22, P23 이 저장된다. 그리고 메모리 관리 장치 (200)는 논리 블록 B2'의 이전 논리 페이지가 저장된 물리 블록 B2에서 이전 논리 페이지 P22, P23를 무효화 (invalidate)한다. 이 제 버퍼링 블록 B5는 논리 블록 B2', B3', B4'의 논리 페이지를 가진다.
도 6은 도 2의 메모리 관리 장치 (200)의 가비지 콜렉션 연산의 일 예를 도시하는 도면이다.
이 때 도 5 및 도 6을 참조하면, 메모리 관리 장치 (200)는 유효한 페이지의 개수가 가장 작은 물리 블록 B2, B3 중 어느 하나를 가비지 콜렉션 연산의 대상으로 선택할 수 있다.
메모리 관리 장치 (200)가 물리 블록 B3을 가비지 콜렉션 연산의 대상으로 선택했다고 가정한다. 메모리 관리 장치 (200)는 물리 블록 B3에 저장되었던 논리 페이지 P31, P32, P34를 물리 블록 B6에 카피할 수 있다. 이 때 논리 블록 B3'의 논리 페이지는 물리 블록 B5, B6에 저장된다.
메모리 관리 장치 (200)는 물리 블록 B3을 소거할 수 있다. 메모리 관리 장치 (200)는 물리 블록 B3을 완전히 빈 블록으로 만들 수 있다.
메모리 관리 장치 (200)는 가비지 콜렉션 연산 및 융합 해제 연산을 위하여 둘 이상의 빈 블록을 융합그룹 (500)에 유지한다. 따라서 메모리 관리 장치 (200)는 빈 블록 B3 및 B7을 융합그룹 (500) 내에 유지할 수 있다. 구현에 따라 융합그룹 (500)에 빈 블록을 유지하지 않을 수 있으며, 이 경우 필요할 때 여유 블록 (140)에서 빈 블록을 가져다 사용하고 연산이 끝나면 동일한 개수의 빈 블록을 여유 블록 (140)으로 반환한다. 그러나 실시 예를 설명할 때는 융합그룹 (500)에 둘 이상의 빈 블록이 유지되는 것을 가정한다.
도 7은 도 2의 메모리 관리 장치 (200)의 융합 해제 연산의 일 예를 도시하는 도면이다.
도 6 및 도 7을 참조하면 논리 블록 B3'의 페이지는 물리 블록 B5, B6에 저장되어 있다.
논리 블록 B3'에 대한 접근 연산이 빈번하지 않으면 메모리 관리 장치 (200)는 논리 블록 B3'을 융합그룹 (700)으로부터 분리할 수 있다.
메모리 관리 장치 (200)는 물리 블록 B5로부터 논리 페이지 P33, P35를 물리 블록 B7로 카피하고 물리 블록 B6으로부터 논리 페이지 P31, P32, P34를 물리 블록 B7로 카피할 수 있다.
메모리 관리 장치 (200)는 물리 블록 B5, B6의 무효한 논리 페이지를 무효화 할 수 있다.
메모리 관리 장치 (200)는 논리 블록 B3'의 데이터가 모두 물리 블록 B7에 저장되어 있으므로 물리 블록 B7 및 논리 블록 B3'을 융합그룹 (700)으로부터 분리할 수 있다.
이 때 물리 블록 B7에는 논리 블록 B3'의 모든 논리 페이지들이 한 번씩 저장되어 있으므로 물리 블록 B7은 순차 조건을 만족한다.
융합그룹 (700) 내에 빈 블록이 하나 밖에 남지 않았으므로 메모리 관리 장치 (200)는 가비지 콜렉션 연산을 수행하여 빈 블록을 추가할 수 있다.
이 때 메모리 관리 장치 (200)는 유효한 페이지의 개수가 가장 작은 물리 블록 B6을 가비지 콜렉션 연산의 대상으로 선택할 수 있다. 물리 블록 B6은 유효한 페이지를 저장하고 있지 않으므로 메모리 관리 장치 (200)는 부가적인 카피 과정 없이 물리 블록 B6을 소거함으로써 가비지 콜렉션 연산을 수행할 수 있다.
가비지 콜렉션 연산이 완료되면 융합그룹 (700)은 두 개의 빈 블록들 B3, B6을 포함할 수 있다.
논리 블록 B2'의 페이지는 물리 블록 B2 및 B5에 존재하고, 논리 블록 B4'의 페이지는 물리 블록 B4 및 B5에 존재한다.
다시 도 2를 참조하면, 블록 지정부 (220)는 융합그룹 (130) 내의 논리 블록의 수 (또는 기존에 논리 블록에 대응되었던 물리 블록의 수) 및 융합그룹 (130)에 참여한 여유 블록의 수를 결정할 수 있다. 이 때 블록 지정부 (220)는 플래시 메모리 (100)에 대한 접근 연산 중 융합그룹 (130)에 대한 접근 연산의 비율에 기초하여 융합그룹 (130) 내의 논리 블록의 수(또는 기존의 논리 블록에 대응되었던 물리 블록의 수) 및 융합그룹 (130)에 참여한 여유 블록의 수를 결정할 수 있다.
본 명세서에서는 설명의 편의 상 플래시 메모리 (100)에 대한 접근 연산 중 융합그룹 (130)에 대한 접근 연산의 비율을 참조 확률이라고 정의하기로 한다.
블록 지정부 (220)에 의하여 융합그룹 (130)에 참여한 여유 블록의 수가 고정되어 있다고 가정한다. 설명의 편의 상 융합그룹 (130) 내에 참여한 논리 블록의 수를 융합그룹 (130) 내에 존재하는 모든 블록의 수 (융합그룹 (130)내 논리 블록의 수와 융합그룹 (130)에 참여한 여유 블록의 수의 합)로 나눈 값을 융합그룹 (130)의 이용율이라고 정의한다. 융합그룹 (130)에 참여한 여유 블록의 수는 고정되어 있는 경우 많은 수의 논리 블록이 융합그룹 (130)에 참여할수록 이용율이 증가한다. 예를 들어 융합그룹 (130)이 10개의 여유 블록들을 고정적으로 포함한다고 할 때 5개의 논리 블록들이 융합그룹 (130)에 할당되어 있다면 융합그룹 (130)의 이용율은 5/15라 할 수 있다. 10개의 논리 블록들이 융합그룹 (130)에 할당되어 있다면 융합그룹 (130)의 이용율은 10/20이 된다.
이용율이 높아질수록 융합그룹 (130)에 대한 가비지 콜렉션 연산의 비용이 증가한다. 한편, 융합그룹 (130)에 할당된 논리 블록의 수가 증가할수록 융합그룹 (130) 내에 위치하는 섹터가 참조(갱신)될 확률이 높다. 융합그룹 (130) 내에 위치하는 섹터가 갱신되는 경우를 융합그룹 (130) 적중 (hit)이라 부를 수도 있다. 융합그룹 (130)에 많은 수의 논리 블록이 할당되면 적중 비율 (hit ratio)은 높아진다.
융합그룹 (130) 내의 섹터에 쓰기가 요청되면 해당 섹터는 비교적 적은 비용으로 쓰기 버퍼링 블록에 갱신될 수 있다. 융합그룹 (130) 내 섹터 갱신에 대한 평균 비용을 계산하기 위해 가비지 콜렉션 비용을 각 섹터의 갱신이 분담하는 모델이 고려될 수 있다.
호스트는 시간적 지역성 및 공간적 지역성을 가지고 섹터를 참조할 확률이 높으므로, 비교적 최근에 참조 (또는 갱신)된 섹터들이 포함된 블록이 융합그룹 (130)에 할당되면 동일한 섹터가 다시 참조 되거나 또는 같은 블록 내 인접 섹터가 참조될 가능성이 높다. 따라서 융합그룹 (130)에 많은 수의 논리 블록이 할당될수록 융합그룹 (130)에 대한 적중 비율이 높아진다. 한편, 메모리 관리 장치 (200)는 융합그룹 (130) 내의 한정된 여유 공간 (free space), 더 정확히 융합그룹 (130)에 참여하고 있는 빈 블록이 만들어내는 공간을 이용하여 가비지 콜렉션 연산을 수행하므로 융합그룹 (130)의 이용율이 증가할수록 가비지 콜렉션 연산의 비용은 증가한다. 요약하면 이용율이 증가할수록 융합그룹 (130)에 대한 적중 비율이 높아지는 반면 가비지 콜렉션 연산의 평균 비용이 증가할 것으로 예측된다. 따라서 메모리 관리 장치 (200)는 이용율 및 가비지 콜렉션 연산의 평균 비용에 대한 수학적 모델을 이용하여 융합그룹 (130)에 대한 최적의 이용율을 계산할 수 있다. 최적의 이용율은 융합그룹 (130) 내의 섹터 갱신 비용을 최소화하는 이용율로 설정될 수 있다.
본 명세서에서, 연산의 비용은 연산이 수행되기 위해 필요로 하는 자원을 의 미한다. 자원은, 예를 들어, 시간을 의미할 수도 있고, 플래시 메모리 (100)의 공간을 의미할 수도 있다. 이하의 명세서에서는 시간에 대한 수학적 모델이 제시되지만 본 발명이 시간에 국한되는 것이 아님은 기술 분야의 종사자에게 자명하다.
메모리 관리 장치 (200)는 융합 연산의 비용, 융합 해제 연산의 비용 및 융합그룹 (130)의 페이지 갱신 비용에 대한 수학적 모델을 정의할 수 있다. 플래시 메모리 (100)의 메타 블록 (110) 또는 메인 메모리에 저장되는 맵 정보에 대한 갱신 비용은 다른 연산의 비용보다 현저하게 작다고 간주될 수 있으므로 메모리 관리 장치 (200)는 맵 정보의 갱신 비용은 고려하지 않을 수 있다.
예를 들어 융합 연산의 경우, 도 5의 실시예에서 물리 블록 B2 및 논리 블록 B2'가 융합그룹 (500)에 포함되었음을 맵 정보에 표시하는 것으로 충분하므로 맵 정보의 갱신 비용은 현저하게 작다고 할 수 있다.
융합 해제 연산의 비용을 정의하기 위해서는 융합그룹 (130)의 페이지 갱신 비용 및 융합그룹 (130)의 가비지 콜렉션 연산의 비용이 정의되어야 한다. 가비지 콜렉션 연산의 비용은 융합그룹 (130)의 이용율에 비례한다. 융합그룹 (130)의 이용율을 uf라 하면, 가비지 콜렉션 연산의 대상이 되는 블록의 이용율 u는 하기 수학식 1과 같이 정의될 수 있다. u는 uf보다 작거나 uf와 같을 수 있다.
Figure 112008069058707-pat00001
여기서 ln은 자연 대수 (natural log)를 의미한다.
가비지 콜렉션 연산의 평균 비용 CGC은 하기 수학식 2와 같이 정의될 수 있다.
Figure 112008069058707-pat00002
여기서 NP는 하나의 블록이 포함할 수 있는 페이지의 개수, CCP는 하나의 블록에서 다른 블록으로 페이지를 복사(copy)하는 비용, CE는 블록의 소거(erase) 비용이다.
가비지 콜렉션 연산은 CE의 비용으로 블록을 소거하여 여유 블록을 생성하고, 가비지 콜렉션 연산의 대상으로 선택된 블록에서 상기 생성된 여유 블록으로 u x NP 개의 페이지들을 복사함으로써 수행된다.
가비지 콜렉션 연산이 수행되면 상기 페이지가 복사된 블록은 쓰기 버퍼링 블록이 되며, 쓰기 버퍼링 블록은 새로운 데이터를 기록할 수 있는 (1-u) x NP 개의 빈 페이지를 가진다. 따라서 평균적으로 (1-u) x NP 개의 페이지가 기록될 때마다 융합그룹 (130)에 대하여 한 번의 가비지 콜렉션 연산이 수행된다고 간주할 수 있다. 페이지 쓰기 연산을 수행할 때 분담해야 하는 쓰레기 수집 비용은 아래와 같으며 이러한 비용을 페이지 쓰기 평균 비용으로 정의한다. 페이지 쓰기 평균 비용 CPW은 하기 수학식 3과 같이 정의될 수 있다.
Figure 112008069058707-pat00003
융합 해제 연산은 융합 해제 대상 논리 블록을 선택한 후, CE의 비용으로 블록을 소거하여 여유 블록을 생성하고, 융합그룹 (130) 내에 분산되어 있는 융합 해제 대상 논리 블록의 모든 페이지들을 상기 생성된 여유 블록으로 복사한다. 이 때의 복사 비용은 NP x CCP이다.
융합그룹 (130)에서 유효한 (valid) 페이지의 수가 가장 작은 블록을 선택한 후 상기 선택된 블록의 모든 페이지들을 쓰기 버퍼링 블록으로 복사하여 여유 블록을 생성하는데, 그 비용은 u x NP x CPW 이다. 복사하는 도중 가비지 콜렉션이 수행될 수도 있기 때문에 복사 비용은 평균 페이지 쓰기 비용으로 계산된다. 이들을 종합하면 융합 해제 연산의 비용 Cdef은 하기 수학식 4와 같이 정의될 수 있다.
Figure 112009040961700-pat00011

메모리 관리 장치 (200)가 이용율 u를 유지한다고 가정한다. 새로운 논리 블록이 융합그룹 (130)에 할당되면 메모리 관리 장치 (200)는 융합그룹 (130)에 포함되는 다른 논리 블록을 융합 해제할 수 있다. 참조 확률 (플래시 메모리 (100)에 대한 섹터 갱신 요청 중 융합그룹 (130) 내의 섹터에 대한 요청의 비율)을 r이라 하면, (1-r)의 확률로 융합그룹 (130) 이외의 섹터에 대한 참조 요청이 수행된다.
메모리 관리 장치 (200)의 평균 쓰기 비용 Cavgw은 페이지 쓰기 비용 CPW에 (1-r)의 확률로 수행되는 융합 해제 연산의 비용을 더한 값이 된다. 이러한 관계가 하기 수학식 5와 같이 정의될 수 있다.
Figure 112009040961700-pat00012

참조 확률 r은 융합그룹 (130)의 이용율 uf에 의존한다. 호스트는 시간적 지역성 및 공간적 지역성을 가지고 플래시 메모리 (100)에 접근하므로 uf가 높을수록 r도 증가하는 경향을 가질 것으로 예측할 수 있다.
어플리케이션에 따라서는, 호스트가 비교적 큰 지역성을 가지고 플래시 메모리 (100)에 접근하는 경우가 있을 수 있고, 호스트가 비교적 랜덤하게 플래시 메모리 (100)에 접근하는 경우가 있을 수 있다.
이용율 uf가 증가할수록 참조 확률 r이 증가하지만, 호스트의 접근 경향에 따라 참조 확률 r의 증가 경향은 포화(saturate)될 수 있다.
예를 들어, 호스트가 비교적 큰 지역성을 가지고 플래시 메모리 (100)에 접근하는 경우, 이용율 uf이 3/4 이상이면 참조 확률 r이 0.8에 수렴할 수 있다. 반대로 호스트가 비교적 랜덤하게 플래시 메모리 (100)에 접근하는 경우 이용율 uf이 3/5 이상이면 참조 확률 r이 0.7에 수렴할 수 있다.
이용율 uf가 0에 가까운 값에서 증가하면 참조 확률 r이 증가하면서 평균 쓰기 비용 Cavgw는 감소한다. 그러나 이용율 uf가 더욱 증가하면 참조 확률 r의 증가 경향은 둔화되고, 가비지 콜렉션 연산의 비용이 증가하므로 평균 쓰기 비용 Cavgw가 다시 증가한다.
따라서 메모리 관리 장치 (200)는 평균 쓰기 비용 Cavgw를 최소화하는 이용율 uf를 선택할 수 있고, 상기 선택된 이용율 uf를 최적화 이용율로 정의할 수 있다.
파일 시스템 (240)이 운영 체제로부터의 파일 접근 요청을 플래시 메모리 (100)에 대한 순차적인 참조로 변환하도록 최적화된다면, 메모리 관리 장치 (200) 및 FTL에 대한 순차 참조 비율이 증가할 수 있다.
메모리 관리 장치 (200)는 순차그룹 (120)에 포함되는 블록에는 데이터를 순차적으로 저장하므로 순차 참조 비율이 증가할수록 빈번하게 교환 병합 (switch merge)으로 블록을 재사용할 수 있다. 교환 병합의 비용은 융합 해제 연산 또는 융합그룹 (130) 내의 가비지 콜렉션 연산의 비용보다 작으므로 메모리 관리 장치 (200)는 최적화된 파일 시스템 (240)과 결합되면 평균 쓰기 비용을 더욱 줄일 수 있다.
본 발명의 일 실시예에 따른 메모리 관리 장치 (200)에서 수행되는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명 령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명의 일 실시예에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 구현될 수 있다. 예를 들면, 본 발명의 일 실시예에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 구현될 수 있다.
플래시 메모리 장치와 메모리 컨트롤러는 메모리 카드를 구성할 수 있다. 이러한 경우, 메모리 컨트롤러는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 비휘발성 메모리 장치이다. 셀룰러 폰, PDA, 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용될 수 있다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템 또는 호스트는 버스에 전기적으로 연결된 마이크로프로세서, 사용자 인터페이스, 베이스밴드 칩셋(baseband chipset)과 같은 모뎀, 메모리 컨트롤러, 그리고 플래시 메모리 장치를 포함한다. 플래시 메모리 장치에는 마이크로프로세서에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 컨트롤러를 통해 저장될 것이다. 본 발명의 일 실시예에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 것이다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 컨트롤러와 플래시 메모리 장치는, 예를 들면, 데이터를 저장하는 데 비휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 관리 장치에 의하여 관리되는 플래시 메모리 (100)의 예를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 관리 장치 (200)를 도시하는 도면이다.
도 3은 도 2의 메모리 관리 장치 (200)의 동작의 일 예를 도시하는 도면이다.
도 4는 도 2의 메모리 관리 장치 (200)의 동작의 일 예를 도시하는 도면이다.
도 5는 도 2의 메모리 관리 장치 (200)의 융합 연산의 일 예를 도시하는 도면이다.
도 6은 도 2의 메모리 관리 장치 (200)의 가비지 콜렉션 연산의 일 예를 도시하는 도면이다.
도 7은 도 2의 메모리 관리 장치 (200)의 융합 해제 연산의 일 예를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 메타 블록
120: 순차그룹
130: 융합그룹
140: 여유 블록

Claims (15)

  1. 비휘발성 메모리에 포함되는 복수의 블록들을 상기 복수의 블록들 각각에 대한 접근 연산의 지역성에 기초하여 순차그룹 및 융합그룹으로 구분하는 블록 지정부; 및
    상기 순차그룹에 포함되는 블록에 데이터 섹터를 순차적으로 저장하고, 상기 융합그룹에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터 섹터를 저장하는 사상부
    를 포함하는 메모리 관리 장치.
  2. 제1항에 있어서,
    상기 블록 지정부는
    상기 접근 연산의 지역성에 기초하여 상기 복수의 블록들 중 비순차 접근 연산에 대응하는 블록 및 여유 블록을 상기 융합그룹으로 지정하는 메모리 관리 장치.
  3. 제1항에 있어서,
    상기 블록 지정부는
    상기 융합그룹에 포함된 블록 중 순차 조건을 만족하는 블록을 상기 융합그룹으로부터 분리하고 상기 순차그룹으로 지정하는 메모리 관리 장치.
  4. 제1항에 있어서,
    상기 블록 지정부는
    상기 순차그룹에 포함된 블록 중 순차 조건을 만족하지 않는 블록을 상기 순차그룹으로부터 분리하고 상기 융합그룹으로 지정하는 메모리 관리 장치.
  5. 제1항에 있어서,
    상기 블록 지정부는
    상기 복수의 블록들 중 데이터 섹터 각각이 한번씩 저장된 블록을 상기 순차그룹으로 지정하는 메모리 관리 장치.
  6. 제1항에 있어서,
    상기 블록 지정부는
    가비지 콜렉션 연산 및 융합 해제 연산을 위하여 둘 이상의 빈 블록을 융합그룹에서 유지하거나 여유 블록 공간에서 둘 이상의 빈 블록을 유지하는 메모리 관리 장치.
  7. 제1항에 있어서,
    상기 블록 지정부는
    융합 해제 연산의 평균 비용, 페이지 쓰기 연산의 평균 비용 및 상기 비휘발성 메모리에 대한 접근 연산 중 상기 융합그룹에 대한 접근 연산의 비율에 기초하여 상기 융합그룹 내의 블록의 수 및 여유 블록의 수를 결정하는 메모리 관리 장치.
  8. 제7항에 있어서,
    상기 블록 지정부는
    상기 융합그룹에 대한 가비지 콜렉션 연산의 평균 비용에 기초하여 상기 융합 해제 연산의 평균 비용 및 상기 페이지 쓰기 연산의 평균 비용을 얻는 메모리 관리 장치.
  9. 비휘발성 메모리에 포함되는 복수의 블록들 각각에 대한 접근 연산의 지역성을 판정하는 단계;
    상기 판정된 지역성에 기초하여 상기 복수의 블록들 각각을 순차 블록, 비순차 블록 및 여유 블록으로 구분하는 단계;
    상기 비순차 블록 및 상기 여유 블록을 융합그룹으로 지정하는 단계; 및
    상기 융합그룹에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터 섹터를 저장하는 단계
    를 포함하는 메모리 관리 방법.
  10. 제9항에 있어서,
    상기 융합그룹에 포함된 블록 중 순차 조건을 만족하는 블록을 상기 융합그룹으로부터 분리하고 상기 순차 블록으로 지정하는 단계
    를 더 포함하는 메모리 관리 방법.
  11. 제9항에 있어서,
    상기 순차 블록 중 순차 조건을 만족하지 않는 블록을 상기 융합그룹으로 지정하는 단계
    를 더 포함하는 메모리 관리 방법.
  12. 제9항에 있어서,
    상기 복수의 블록들 각각을 순차 블록, 비순차 블록 및 여유 블록으로 구분하는 단계는
    상기 복수의 블록들 중 데이터 섹터 각각이 한번씩 저장된 블록을 상기 순차블록으로 지정하는 메모리 관리 방법.
  13. 제9항에 있어서,
    융합 해제 연산의 평균 비용, 페이지 쓰기 연산의 평균 비용 및 상기 비휘발성 메모리에 대한 접근 연산 중 상기 융합그룹에 대한 접근 연산의 비율에 기초하여 상기 융합그룹 내에 포함되는 논리 블록의 수 및 여유 블록의 수를 결정하는 단계
    를 더 포함하는 메모리 관리 방법.
  14. 제13항에 있어서,
    상기 융합그룹 내에 포함되는 논리 블록의 수 및 여유 블록의 수를 결정하는 단계는
    상기 융합그룹에 대한 가비지 콜렉션 연산의 평균 비용에 기초하여 상기 융합 해제 연산의 평균 비용 및 상기 페이지 쓰기 연산의 평균 비용을 얻는 메모리 관리 방법.
  15. 제9항 내지 제14항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020080096581A 2008-10-01 2008-10-01 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 KR100965051B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080096581A KR100965051B1 (ko) 2008-10-01 2008-10-01 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치
US12/572,165 US8200889B2 (en) 2008-10-01 2009-10-01 Variable space page mapping method and apparatus for flash memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080096581A KR100965051B1 (ko) 2008-10-01 2008-10-01 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치

Publications (2)

Publication Number Publication Date
KR20100037319A KR20100037319A (ko) 2010-04-09
KR100965051B1 true KR100965051B1 (ko) 2010-06-21

Family

ID=42058812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080096581A KR100965051B1 (ko) 2008-10-01 2008-10-01 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치

Country Status (2)

Country Link
US (1) US8200889B2 (ko)
KR (1) KR100965051B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830260B2 (en) 2013-03-25 2017-11-28 Ajou University Industry-Academic Cooperation Foundation Method for mapping page address based on flash memory and system therefor
KR20200081692A (ko) * 2018-12-28 2020-07-08 (주) 글루시스 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543757B2 (en) * 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US9684590B2 (en) 2010-10-25 2017-06-20 Seagate Technology Llc Storing corresponding data units in a common storage unit
KR101157763B1 (ko) * 2010-12-27 2012-06-25 서울시립대학교 산학협력단 Trim 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치
US10140208B2 (en) * 2011-03-31 2018-11-27 Oracle International Corporation NUMA-aware garbage collection
US11099982B2 (en) 2011-03-31 2021-08-24 Oracle International Corporation NUMA-aware garbage collection
US10089017B2 (en) * 2011-07-20 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for SSD storage access
KR20130076429A (ko) * 2011-12-28 2013-07-08 삼성전자주식회사 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치
US9026887B2 (en) 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
US20130290606A1 (en) * 2012-04-30 2013-10-31 Apple Inc. Power management for a system having non-volatile memory
KR20140004429A (ko) 2012-07-02 2014-01-13 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
KR20140040998A (ko) * 2012-09-27 2014-04-04 삼성전자주식회사 로그기반 데이터 저장 시스템의 관리방법
JP5952152B2 (ja) * 2012-09-28 2016-07-13 株式会社メガチップス 半導体記憶装置
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
KR102449192B1 (ko) 2015-09-10 2022-09-29 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
KR20170109108A (ko) * 2016-03-17 2017-09-28 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
US10031845B2 (en) 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US10019198B2 (en) * 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
KR102570367B1 (ko) 2016-04-21 2023-08-28 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
KR102544162B1 (ko) * 2017-07-11 2023-06-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107943719B (zh) * 2017-11-28 2020-07-21 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法
KR20220020008A (ko) 2020-08-11 2022-02-18 삼성전자주식회사 비휘발성 메모리를 포함하는 메모리 저장 장치 및 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484147B1 (ko) 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
KR100526188B1 (ko) 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100684942B1 (ko) 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484147B1 (ko) 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
KR100526188B1 (ko) 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830260B2 (en) 2013-03-25 2017-11-28 Ajou University Industry-Academic Cooperation Foundation Method for mapping page address based on flash memory and system therefor
KR20200081692A (ko) * 2018-12-28 2020-07-08 (주) 글루시스 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러
KR102202107B1 (ko) 2018-12-28 2021-01-12 (주)글루시스 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러

Also Published As

Publication number Publication date
US20100082886A1 (en) 2010-04-01
KR20100037319A (ko) 2010-04-09
US8200889B2 (en) 2012-06-12

Similar Documents

Publication Publication Date Title
KR100965051B1 (ko) 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
US10789162B2 (en) Memory system and method for controlling nonvolatile memory
US11474702B2 (en) Storage device that writes data from a host during garbage collection
KR101553532B1 (ko) 스토리지 장치
US10209894B2 (en) Memory system and method for controlling nonvolatile memory
US8171239B2 (en) Storage management method and system using the same
US9244619B2 (en) Method of managing data storage device and data storage device
JP2021114038A (ja) メモリシステムおよび制御方法
US20130080689A1 (en) Data storage device and related data management method
JP2012108912A (ja) データ格納装置、使用者装置及びそれの住所マッピング方法
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
JP2018160189A (ja) メモリシステム
WO2017022082A1 (ja) フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム
KR101157763B1 (ko) Trim 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치
JP6552701B2 (ja) メモリシステムおよび制御方法
JP6721765B2 (ja) メモリシステムおよび制御方法
JP6666405B2 (ja) メモリシステムおよび制御方法
KR101791855B1 (ko) 스토리지 장치 및 이의 공간 재수거 방법

Legal Events

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

Payment date: 20130610

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140610

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150611

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160503

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee