KR100882740B1 - 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치 - Google Patents

맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치 Download PDF

Info

Publication number
KR100882740B1
KR100882740B1 KR1020070017769A KR20070017769A KR100882740B1 KR 100882740 B1 KR100882740 B1 KR 100882740B1 KR 1020070017769 A KR1020070017769 A KR 1020070017769A KR 20070017769 A KR20070017769 A KR 20070017769A KR 100882740 B1 KR100882740 B1 KR 100882740B1
Authority
KR
South Korea
Prior art keywords
map
history information
block
allocated
valid
Prior art date
Application number
KR1020070017769A
Other languages
English (en)
Other versions
KR20080078129A (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 KR1020070017769A priority Critical patent/KR100882740B1/ko
Priority to US12/071,498 priority patent/US8745312B2/en
Publication of KR20080078129A publication Critical patent/KR20080078129A/ko
Application granted granted Critical
Publication of KR100882740B1 publication Critical patent/KR100882740B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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

Abstract

물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들을 기록하기 위한 복수의 맵 블록들을 포함하는 불휘발성 메모리의 매핑 방법 및 저장 장치가 개시된다. 신규의 맵 블록의 할당시 이전에 할당된 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치에 관한 이력 정보를 작성한다. 작성된 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 전체 매핑 정보를 포함하는 맵 테이블을 구성한다. 따라서 맵 오픈 시간을 단축시키고 불휘발성 메모리를 이용한 저장장치 및 이를 포함하는 시스템의 성능을 향상시킬 수 있다.
맵 유닛, 맵 테이블, 맵 오픈, 플래시 메모리, 맵 오픈 타임

Description

맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장 장치 {METHOD AND STORAGE DEVICE OF MAPPING A NONVOLATILE MEMORY BASED ON MAP HISTORY}
도 1은 불휘발성 메모리에 포함된 맵 영역을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 불휘발성 메모리의 매핑 방법을 나타내는 순서도이다.
도 3은 본 발명의 일 실시예에 따른 저장 장치를 나타내는 블록도이다.
도 4는 도 3의 저장 장치에 포함된 불휘발성 메모리를 나타내는 도면이다.
도 5는 도 4의 불휘발성 메모리에 포함된 이력 정보를 나타내는 도면이다.
도 6은 도 4의 불휘발성 메모리의 맵 영역을 나타내는 도면이다.
도 7은 도 3의 저장 장치에서 이력 정보 작성을 포함하는 기입 동작의 일 예를 나타내는 도면이다.
도 8은 도 3의 저장 장치에서 이력 정보 작성을 포함하는 기입 동작의 다른 예를 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
1000: 반도체 메모리 장치 300: 불휘발성 메모리
310: 관리 영역 320: 맵 영역
330: 데이터 영역
HI: 이력 정보 SN: 일련번호
ADDMU1, ADDMU2, ADDMU3: 맵 유닛 주소
321, 322, 323, 324: 맵 블록
본 발명은 불휘발성 메모리의 매핑에 관한 것으로서, 더욱 상세하게는 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장 장치에 관한 것이다.
반도체 메모리는 전원 공급이 중단될 때 저장된 데이터를 상실하는지 여부에 따라, 휘발성 메모리(volatile memory)와 불휘발성 메모리(nonvolatile memory)로 구분될 수 있다. 불휘발성 메모리는 전기적으로 소거 및 프로그램이 가능한 EEPROM(Electrically Erasable and Programmable ROM)을 포함한다.
EEPROM의 동작 모드는 메모리 셀의 문턱 전압을 프로그램 하는 기입 모드(write mode or program mode), 메모리 셀에 저장된 데이터를 판독하는 독출 모드(read mode), 및 저장된 데이터를 삭제하여 메모리 셀을 초기화하는 소거 모드(erase mode)로 구분될 수 있다.
플래시 메모리는 EEPROM에 속하고, 소거 동작이 블록 단위로 동시에 수행되며, 공통의 워드라인에 연결된 메모리 셀들에 대하여 페이지 단위로 프로그램 동작 이 수행된다. 플래시 메모리는 메모리 셀 어레이의 구조에 따라, 비트라인과 접지 사이에 셀 트랜지스터들이 직렬로 배치된 NAND형 플래시 메모리와, 병렬로 배치된 NOR형 플래시 메모리로 구분된다. NOR형 플래시 메모리와 비교할 때, NAND형 플래시 메모리는 독출 동작 및 프로그램 동작시 바이트 단위의 접근이 불가능한 단점이 있으나, 프로그램 속도 및 소거 속도가 빠른 장점이 있다.
불휘발성 메모리는 소거(erase) 및 접근(access, 즉 기입 및/또는 독출)이 행해지는 단위가 상이하고 소거/기입 횟수에 일정한 제한이 있다. 이러한 제한을 극복하기 위해 불휘발성 메모리의 물리적 주소와 퍼스널 컴퓨터와 같은 호스트의 파일 시스템이 생성한 논리적 주소를 효율적으로 매핑(mapping)하기 위한 중간처리 과정이 필요하다. 예를 들어, 하드 디스크용 파일 시스템을 사용하는 호스트와 플래시 메모리 사이에는 미들웨어 형태의 플래시 변환 계층(FTL, Flash Translation Layer)이 포함되어 논리적 주소와 물리적 주소의 효율적인 매핑을 매개한다.
논리적 주소와 물리적 주소간의 매핑 정보는 불휘발성 메모리에 산재한다. 일반적으로 불휘발성 메모리의 액세스 속도를 증가시키기 위해 불휘발성 메모리의 초기화 단계에서 산재하는 매핑 정보가 맵 테이블로 구성된다.
도 1은 불휘발성 메모리에 포함된 맵 영역을 나타내는 도면이다.
도 1을 참조하면, 맵 영역(10)은 매핑 정보를 저장하는 복수의 맵 블록들(11, 12, 13, 14)을 포함한다. 도 1에는 하나의 페이지의 크기가 2K(즉, 2046) 바이트이고, 하나의 메모리 블록이 64개의 페이지들(P0 ~ P63)로 구성되며, 맵 영역(10)이 4개의 맵 블록들(11, 12, 13, 14)로 구성된 예가 도시되어 있다. 도 1에 서 빗금친 부분은 맵 유닛이 기록되어 사용된 공간(Used Space)를 나타내고 점선으로 표시된 부분은 미사용 공간(Unused Space)를 나타낸다.
논리적 주소와 물리적 주소간의 매핑 정보는 일정한 단위의 맵 유닛들로 분할되어 관리될 수 있다. 도 1에는 하나의 페이지가 512 바이트 크기의 네 개의 맵 유닛들로 구성된 예가 도시되어 있다. 블록 소거 등에 의해 특정한 맵 유닛의 매핑 정보가 변경되면 종전의 맵 유닛은 폐기되고 유효한 매핑 정로로 갱신된 맵 유닛이 작성된다. 폐기된 맵 유닛과 구별하여 최근에 갱신되어 유효한 매핑 정보를 포함하고 있는 맵 유닛을 유효 맵 유닛이라 부르기로 한다. 맵 블록의 저장 공간이 모두 사용되면, 미사용 맵 블록 중 하나가 이후에 갱신되는 맵 유닛들을 기록하기 위한 맵 블록으로 할당된다.
이러한 유효 맵 유닛들은 맵 블록에 산재해 있으므로, 최근의 유효 맵 유닛들의 위치 정보를 확인하여 맵 테이블을 구성하기 위해서는 사용된 맵 블록들을 모두 순차적으로 검색(Scan)해야 한다.
도 1의 예에서는, 맵 오픈(즉, 메모리의 초기화 단계에서의 맵 테이블을 구성하는 것)시 이전에 할당된 첫 번째 맵 블록(11)과 두 번째 맵 블록(12)을 모두 검색하고 최근에 할당된 세 번째 맵 블록(13)을 독출(Read)한 후 맵 테이블을 구성하게 된다.
예를 들어, n개의 페이지를 각각 포함하는 m개의 사용된 맵 블록이 불활성 메모리에 존재하고 페이지 당 스캔 시간이 tR인 경우, 종래의 방법으로는 맵 테이블을 구성하기 위한 시간이 이 값들을 곱한 n * m * tR 가 된다.
이와 같은 종래의 기술에 의하면, 맵 테이블을 구성하기 위해서는 사용된 맵 블록을 모두 스캔하여 유효 맵 유닛을 찾아야 하므로, 사용된 맵 블록의 수가 증가하게 되면 맵 테이블을 구성하기 위한 검색 시간 역시 증가하게 된다. 메모리 장치의 밀도(density)가 증가하면서 불활성 메모리에 포함되는 메모리 블록의 개수 및 블록 당 페이지 수가 증가하는 것이 현재 추세이며, 이에 따라 맵 오픈 시간이 급속히 증가한다.
따라서 종래의 기술에 의하면 많은 수의 맵 블록이 존재하는 경우에 맵 테이블을 구성하는 시간의 증가로 인하여 불활성 메모리가 포함된 저장 장치의 초기화 시간이 많이 소요된다. 이러한 초기화 시간의 증가는 저장 장치 및 이를 포함하는 전체 시스템의 성능을 저하시키고, 나아가 일정한 규격 (예를 들어, Host Open Time Specification)의 위반을 유발하는 문제가 발생한다.
상기와 같은 문제점을 해결하기 위하여, 본 발명은 맵 오픈 타임을 단축할 수 있는 불휘발성 메모리의 매핑 방법을 제공하는 것을 일 목적으로 한다.
또한, 본 발명은 맵 오픈 타임을 단축할 수 있는 불휘발성 메모리를 포함하는 저장 장치를 제공하는 것을 일 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 불휘발성 메모리의 매핑 방법은, 이력 정보를 작성하는 단계 및 맵 테이블을 구성하는 단계를 포함한다.
물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들을 기록하기 위한 복수의 맵 블록들을 포함하는 불휘발성 메모리의 매핑을 위하여, 신규의 맵 블록의 할당시 이전에 할당된 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치에 관한 이력 정보를 작성한다. 상기 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 전체 매핑 정보를 포함하는 맵 테이블을 구성한다.
상기 맵 테이블을 구성하는 단계는, 상기 이력 정보에 기초하여 상기 이전에 할당된 맵 블록에 포함된 상기 유효 맵 유닛들의 매핑 정보를 랜덤 액세스 메모리에 로드하는 단계, 및 상기 최근에 할당된 맵 블록을 검색하여 상기 로드된 매핑 정보를 갱신하는 단계를 포함할 수 있다.
상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 매핑 정보를 상기 랜덤 액세스 메모리에 로드하는 단계는, 맵 블록들의 할당시 각각 작성된 복수의 이력 정보들 중 최근의 이력 정보를 판별하는 단계, 및 상기 최근의 이력 정보에 포함된 유효 맵 유닛들의 위치에 저장된 매핑 정보를 로드하는 단계를 포함할 수 있다.
상기 이력 정보는 상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 물리적 주소 및 상기 이력 정보가 작성된 순서를 나타내는 일련번호를 포함할 수 있다.
상기 이력 정보를 작성하는 단계는, 신규의 맵 유닛의 기록이 필요한 경우 신규의 맵 블록의 할당이 필요한지 여부를 판단하는 단계, 신규의 맵 블록의 할당 이 필요한 경우 미사용 맵 블록들 중 하나를 할당하는 단계, 및 상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 상기 이력 정보로서 기록하는 단계를 포함할 수 있다.
예를 들면, 상기 신규의 맵 블록의 할당이 필요한지 여부를 판단하는 단계는, 최근에 할당된 맵 블록에 상기 신규의 맵 유닛을 기록하기 전에, 상기 최근에 할당된 맵 블록에 상기 신규의 맵 유닛을 기록할 공간이 존재하는지 여부를 판단하는 단계일 수 있다. 또한, 상기 신규의 맵 블록의 할당이 필요한지 여부를 판단하는 단계는, 최근에 할당된 맵 블록에 상기 신규의 맵 유닛을 기록한 후에, 상기 최근에 할당된 맵 블록에 다음에 기록될 맵 유닛을 위한 공간이 존재하는지 여부를 판단하는 단계일 수 있다.
상기 이력 정보를 작성하는 단계는, 상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 상기 할당된 신규의 맵 블록에 기록하는 단계를 포함할 수 있다. 이 경우 상기 이력 정보를 작성하는 단계는, 상기 이력 정보가 작성된 순서를 나타내는 일련번호를 상기 이력 정보에 기록하는 단계를 더 포함할 수 있다. 상기 불휘발성 메모리의 맵 블록은 기입 및 독출의 단위가 되는 복수의 페이지를 포함하고, 상기 이력 정보는 상기 할당된 신규의 맵 블록의 첫 번째 페이지에 기록될 수 있다.
상기 불휘발성 메모리는 상기 복수의 맵 블록들을 포함하는 맵 영역, 데이터가 저장되는 데이터 영역 및 상기 맵 영역과 상기 데이터 영역의 관리를 위한 정보가 기록되는 관리 영역을 포함할 수 있고, 이 경우 상기 이력 정보를 작성하는 단 계는, 상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 상기 불휘발성 메모리의 관리 영역에 기록하는 단계를 포함할 수 있다.
다른 실시예에서, 상기 이력 정보를 작성하는 단계는, 상기 이전에 할당된 맵 블록들 및 상기 최근에 할당된 맵 블록에 포함된 모든 유효 맵 유닛의 물리적 주소를 포함하는 유효 맵 유닛 주소 정보를 랜덤 액세스 메모리에 저장하는 단계, 신규의 맵 유닛을 기록하는 경우 상기 랜덤 액세스 메모리에 저장된 유효 맵 유닛 주소 정보를 갱신하는 단계, 및 신규의 맵 블록의 할당시 상기 랜덤 액세스 메모리에 저장된 유효 맵 유닛 주소 정보에 포함된 물리적 주소에 기초하여 상기 이력 정보를 작성하는 단계를 포함할 수 있다.
상기 실시예들과 관련하여, 상기 불휘발성 메모리는 플래시 메모리일 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 불휘발성 메모리를 포함하는 저장 장치는, 불휘발성 메모리, 메모리 컨트롤러 및 랜덤 액세스 메모리를 포함한다.
상기 불휘발성 메모리는 물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들을 기록하기 위한 복수의 맵 블록들을 포함하고, 이전에 할당된 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치에 관한 이력 정보가 기록된다. 상기 메모리 컨트롤러는 신규의 맵 블록의 할당시 상기 이력 정보를 작성하고, 상기 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 맵 테이블을 구성한다. 상기 랜던 액세스 메모리는 상기 구성된 맵 테이블을 저장한다.
상기 이력 정보는 상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 물리적 주소 및 상기 이력 정보가 작성된 순서를 나타내는 일련번호를 포함할 수 있다.
상기 이력 정보는 상기 신규의 맵 블록에 기록될 수 있다. 상기 불휘발성 메모리의 맵 블록은 기입 및 독출의 단위가 되는 복수의 페이지를 포함할 수 있으며, 이 경우 상기 이력 정보는 상기 할당된 신규의 맵 블록의 첫 번째 페이지에 기록될 수 있다.
상기 불휘발성 메모리는 상기 복수의 맵 블록들을 포함하는 맵 영역, 데이터가 저장되는 데이터 영역 및 상기 맵 영역과 상기 데이터 영역의 관리를 위한 정보가 기록되는 관리 영역을 포함할 수 있고, 이 경우 상기 이력 정보는 상기 불휘발성 메모리의 관리 영역에 포함될 수 있다.
상기 컨트롤러는, 상기 이전에 할당된 맵 블록들 및 상기 최근에 할당된 맵 블록에 포함된 모든 유효 맵 유닛의 물리적 주소를 포함하는 유효 맵 유닛 주소 정보를 상기 랜덤 액세스 메모리에 저장할 수 있다. 이 경우 상기 메모리 컨트롤러는 신규의 맵 유닛을 기록하는 경우 상기 랜덤 액세스 메모리에 저장된 유효 맵 유닛 주소 정보를 갱신하며, 신규의 맵 블록의 할당시 상기 랜덤 액세스 메모리에 저장된 유효 맵 유닛 주소 정보에 포함된 물리적 주소에 기초하여 상기 이력 정보를 작성할 수 있다.
상기 불휘발성 메모리는 플래시 메모리일 수 있으며, 상기 저장 장치는 솔리 드 상태 디스크 (SSD, Solid State Disk) 및 시에프 카드 (Compact Flash Card) 중 하나일 수 있다.
따라서 불휘발성 메모리를 포함하는 저장 장치의 맵 오픈 시간을 단축할 수 있으며, 상기 저장 장치 이를 포함하는 전체 시스템의 성능을 향상시킬 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되지 않아야 한다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지 않아야 한다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있 을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 도면에 포함된 순서도는 발명의 이해가 용이하도록 예시한 것으로서 복수의 단계들이 순서도에 도시된 순서에 의해서만 행해지는 것으로 해석되지 않아야 한다. 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자는 발명의 상세한 설명을 통하여 순서도에 포함된 단계들은 그 순서가 바뀌어 수행될 수도 있고 동시에 수행될 수도 있음을 이해할 것이다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 불휘발성 메모리의 매핑 방법을 나타내는 순서도이다.
도 2에는 복수의 맵 블록들을 포함하는 불휘발성 메모리의 매핑 방법이 도시되어 있다. 각각의 맵 블록에는 물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들이 기록된다.
도 2를 참조하면, 신규의 맵 블록의 할당시 이전에 할당된 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치에 관한 이력 정보를 작성(단계 S100)한다. 매핑 정보의 변경에 의해 폐기된 맵 유닛과 구별하여 최근에 갱신되어 유효한 매핑 정보를 포함하고 있는 맵 유닛을 유효 맵 유닛이라 부르기로 한다.
작성된 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 전체 매핑 정보를 포함하는 맵 테이블을 구성(단계 S200)한다. 최근에 할당된 맵 블록이라 함은 현재 사용 중인 맵 블록으로서 매핑 정보의 변경이 있는 경우 신규의 맵 유닛이 기록되는 맵 블록을 의미한다. 이에 대하여 이전에 할당된 맵 블록이라 함은 최근에 할당된 맵 블록을 제외한 이미 사용된 맵 블록을 의미한다.
예를 들어, 맵 테이블을 구성(단계 S200)하기 위하여, 작성된 이력 정보에 기초하여 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 매핑 정보를 랜덤 액세스 메모리(RAM, Random Access Memory)에 로드(단계 S210)할 수 있다. 그리고 상기 최근에 할당된 맵 블록을 검색하여 상기 로드된 매핑 정보를 갱신(단계 S220)할 수 있다.
상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 매핑 정보를 상기 랜덤 액세스 메모리에 로드하는 것은 다양하게 실시될 수 있다. 예를 들어, 맵 블록들의 할당시 각각 작성된 복수의 이력 정보들 중 최근의 이력 정보를 판별하고, 상기 최근의 이력 정보에 포함된 유효 맵 유닛들의 위치에 저장된 매핑 정보를 로드할 수 있다.
이하에서는 본 발명의 일 실시예에 따른 저장 장치를 먼저 설명한 후에 이력 정보의 작성(단계 S100) 등과 관련하여 도 2에 도시된 불휘발성 메모리의 매핑 방법을 더욱 상세히 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 저장 장치를 나타내는 블록도이다.
도 3을 참조하면, 저장 장치(1000)는 메모리 컨트롤러(100), 랜덤 액세스 메모리(RAM, Random Access Memory, 200) 및 불휘발성 메모리(300)를 포함한다. 저장 장치(1000)는 호스트와의 연결을 위한 인터페이스(400)를 더 포함할 수 있다.
불휘발성 메모리(300)는 복수의 맵 블록들을 포함하고, 각각의 맵 블록에는 물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들이 기록된다. 하나의 맵 블록에 신규의 맵 유닛을 기록할 공간이 없으면 미사용 맵 블록들 중 하나가 신규의 맵 블록으로 할당된다.
불휘발성 메모리(300)에는 이력 정보가 기록된다. 이력 정보는 신규의 맵 블록이 할당될 때마다 작성되며 신규의 맵 블록의 할당 이전에 먼저 할당되었던 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치를 포함한다.
메모리 컨트롤러(100)는 저장 장치(1000)의 전반적인 동작을 제어한다. 메모리 컨트롤러(100)는 신규의 맵 블록의 할당시 이력 정보를 작성하고, 작성된 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 맵 테이블을 구성한다.
랜덤 액세스 메모리(200)에는 맵 오픈시 구성된 맵 테이블이 저장된다. 신규의 맵 유닛이 기록되어 매핑 정보의 변경이 있는 경우 랜덤 액세스 메모리(200)에 저장된 맵 테이블도 함께 갱신된다. 랜덤 액세스 메모리(200)는 SRAM 또는 DRAM과 같이 접근 속도가 빠르고 바이트 단위의 접근이 가능한 메모리로 구현될 수 있다.
저장 장치(1000)는, 예를 들어, 솔리드 상태 디스크 (SSD, Solid State Disk), 시에프 카드 (Compact Flash Card) 등과 같은 저장 매체일 수 있다. 또한 저장 장치(1000)에 포함된 컨트롤러(100) 및 랜덤 액세스 메모리(200)는 도 3에 도시된 바와 같이 불휘발성 메모리(300)와 함께 하나의 독립된 장치로 구현될 수 있다. 도 3에 도시된 것과는 다르게, 컨트롤러(100) 및 랜덤 액세스 메모리(200)는 카드 리더기와 같은 별개의 장치에 분산될 수도 있으며, 불휘발성 메모리(300)의 동작을 제어하기 위한 기능 이외의 다른 목적을 위한 기능을 함께 수행할 수 있다.
한편, 랜덤 액세스 메모리(200)에는 호스트와로부터 수신된 기입 데이터 또는 불휘발성 메모리로부터의 독출 데이터 저장되는 버퍼 공간이 할당될 수 있다. 또한 이전에 할당된 맵 블록들 및 최근에 할당된 맵 블록에 포함된 모든 유효 맵 유닛의 물리적 주소를 포함하는 유효 맵 유닛 주소 정보가 저장될 수 있다. 유효 맵 유닛 주소 정보에 대해서는 후술하기로 한다.
도 4는 도 3의 저장 장치에 포함된 불휘발성 메모리를 나타내는 도면이다.
도 4를 참조하면, 불휘발성 메모리(300)는 관리 영역(310), 맵 영역(320) 및 데이터 영역(330)으로 분할될 수 있다.
맵 영역(320)은 복수의 맵 블록들을 포함하고, 데이터 영역(330)은 데이터가 저장되는 복수의 데이터 블록들을 포함한다. 맵 블록들, 데이터 블록들과 같이 불휘발성 메모리(300)에 포함된 메모리 블록들은 그 용도에 관계없이 동일한 물리적 구성을 가질 수 있다. 예를 들어 플래시 메모리의 경우 실질적으로 동일한 구성을 갖는 복수의 메모리 블록들을 포함하며 속하는 영역에 따라 관리 블록, 맵 블록, 데이터 블록 등으로 구분될 수 있다. 복수의 메모리 블록들은 각각의 물리적 주소를 가지며 물리적 주소는 순차적으로 부여될 수 있다.
관리 영역(또는 헤더, 310)에는 맵 영역(320)과 데이터 영역(330)의 관리를 위한 정보가 기록된다. 관리 영역(310)은 불휘발성 메모리(300)의 모델, 메모리 용량, 불량 블록에 대한 정보, 할당된 맵 블록들의 정보와 같은 전반적인 정보를 포함할 수 있다.
도 5는 도 4의 불휘발성 메모리에 포함된 이력 정보를 나타내는 도면이다.
도 5를 참조하면, 이력 정보(HI, History Information)는 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 물리적 주소(ADDMU1, ADDMU2, ADDMU3) 및 이력 정보(HI)가 작성된 순서를 나타내는 일련번호(SN, Serial Number)를 포함할 수 있다.
이력 정보(HI)는 신규의 맵 블록이 할당될 때마다 이에 상응하여 각각 작성되며, 이력 정보(HI)가 작성된 순서를 나타내는 일련번호(SN)에 기초하여 최근에 작성된 맵 블록을 판별할 수 있다.
이력 정보(HI)에 포함된 유효 맵 유닛들의 물리적 주소(ADDMU1, ADDMU2, ADDMU3)는 각각의 유효 맵 유닛이 존재하는 위치를 나타내며, 블록 주소 및 블록 내의 페이지 주소를 포함할 수 있다. 하나의 페이지에 복수의 맵 유닛들이 기록되는 경우, 유효 맵 유닛들의 물리적 주소(ADDMU1, ADDMU2, ADDMU3)는 각 유효 맵 유닛의 페이지 내에서의 위치도 포함한다.
도 6은 도 4의 불휘발성 메모리의 맵 영역을 나타내는 도면이다.
도 6을 참조하면, 맵 영역(320a)은 매핑 정보를 저장하는 복수의 맵 블록들을 포함한다. 도 6에는 설명의 편의상 제 1 내지 제 4 맵 블록들(321, 322, 323, 324)이 도시되어 있으나, 불휘발성 메모리(300)의 전체 용량에 따라 맵 블록의 개수는 달라질 수 있다. 제 1 및 제 2 맵 블록들(321, 322)은 이전에 할당된 맵 블록이고, 제 3 맵 블록(323)은 최근에 할당된 맵 블록으로서 현재 사용 중인 맵 블록이다. 제 4 맵 블록(324)은 미사용 맵 블록으로서 제 3 맵 블록(323)에 맵 유닛을 저장할 수 있는 미사용 공간(Unused Space)이 소진되면 신규의 맵 블록으로 할당된 다.
매핑 정보의 변경에 의해 폐기된 맵 유닛(IMU, Invalid Map Unit)과 구별하여 최근에 갱신되어 유효한 매핑 정보를 포함하고 있는 맵 유닛을 유효 맵 유닛(VMU, Valid Map Unit)이라 부르기로 한다.
논리적 주소와 물리적 주소간의 매핑 정보는 일정한 단위의 맵 유닛들로 분할되어 관리될 수 있다. 도 6에 도시된 바와 같이, 맵 블록들(321, 322, 323, 324)은 기입 및 독출의 단위가 되는 n개의 페이지(P0~Pn-1)를 포함할 수 있다. 각각의 페이지는 복수의 맵 유닛을 포함할 수 있으며, 하나의 맵 유닛에 상응하는 메모리 블록의 개수 및 매핑 정보의 형식에 따라 하나의 페이지에 포함되는 맵 유닛의 개수는 달라질 수 있다.
도 6에는, 할당된 맵 블록(321, 322, 323)에 이력 정보(HI1, HI2, HI3)가 기록되는 실시예가 도시되어 있다. 이 경우 이력 정보(HI1, HI2, HI3)는 상기 할당된 각각의 맵 블록의 첫 번째 페이지(P0)에 기록될 수 있으며, 실시예에 따라 두 개 이상의 페이지에 기록될 수도 있다.
다른 실시예에서, 이력 정보(HI1, HI2, HI3)는 도 4에 도시된 불휘발성 메모리(1000)의 관리 영역(310)에 포함될 수 있다. 이 경우 각각의 이력 정보(HI1, HI2, HI3)에는 상응하는 맵 블록의 물리적 주소가 포함될 수 있다.
이와 같이 작성된 이력 정보를 이용함으로써, 최근에 할당된 맵 블록만을 검색하여 맵 테이블을 작성할 수 있으므로 맵 오픈 시간을 단축할 수 있다. 예를 들어, 불활성 메모리에 n개의 페이지를 각각 포함하는 m개의 사용된 맵 블록이 존재 하고 페이지 당 스캔 시간이 tR인 경우, 종래의 방법으로는 맵 테이블을 구성하기 위한 시간이 이 값들을 곱한 n * m * tR 가 된다. 그러나 본 발명의 일 실시예에 따른 매핑 방법으로는 (n + m) * tR이 되므로, 맵 오픈 시간은 사용된 맵 블록의 수가 증가할수록 종래의 방법을 이용한 경우보다 현저하게 감소될 수 있다.
도 7은 도 3의 저장 장치에서 이력 정보 작성을 포함하는 기입 동작의 일 예를 나타내는 도면이다.
호스트로부터의 명령 대기 중에 저장 장치(1000)에 기입 명령이 수신(단계 S10)된다. 데이터가 새로운 물리적 주소에 기입되는지 또는 물리적 주소의 변경 없이 종전의 물리적 주소에 기입되는지를 판단하여 신규의 맵 유닛의 기록이 필요한지 여부를 판단(단계 S20)한다. 신규의 맵 유닛의 기록이 불필요(단계 S20: NO)한 경우 종전의 물리적 주소에 데이터를 기입(단계 S30)하고 저장 장치(1000)는 명령 대기(단계 S10) 상태로 복귀한다.
신규의 맵 유닛의 기록이 필요(단계 S20: YES)한 경우 신규의 맵 블록의 할당이 필요한지 여부를 판단(단계 S110a)한다. 신규의 맵 블록의 할당이 필요(단계 S110a: YES)한 경우 미사용 맵 블록들 중 하나를 신규의 맵 유닛을 기록하기 위한 맵 블록으로 할당(단계 S120a)한다. 상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 할당된 신규의 맵 블록에 상응하는 이력 정보로서 기록(단계 S130a)한다.
상기 설명한 바와 같이, 상기 이력 정보는 실시예에 따라, 도 6에 도시된 바와 같이 할당된 신규의 맵 블록에 기록될 수도 있고, 도 4에 도시된 관리 영 역(310)에 도시될 수도 있다.
할당된 신규의 맵 블록에 맵 유닛을 기록(단계 S40)하고, 상응하는 물리적 주소에 데이터를 기입(단계 S50)한다. 한편 신규의 맵 블록의 할당이 불필요(단계 S110a: NO)한 경우 신규의 맵 블록 할당(단계 S120a) 및 이력 정보 기록(단계 S130a)을 거치지 않고, 최근에 할당된 맵 블록에 맵 유닛을 기록(단계 S40)한다.
이와 같이, 도 7에 도시된 실시예에서는, 최근에 할당된 맵 블록에 신규의 맵 유닛을 기록하기 전에 최근에 할당된 맵 블록에 신규의 맵 유닛을 기록할 공간이 존재하는지 여부를 판단한다.
도 8은 도 3의 저장 장치에서 이력 정보 작성을 포함하는 기입 동작의 다른 예를 나타내는 도면이다.
도 7과 관련하여 중복된 설명은 생략하고 상이한 점에 대해서만 설명한다.
도 7에 도시된 실시예와는 다르게 도 8에 도시된 실시예에서는, 최근에 할당된 맵 블록에 신규의 맵 유닛을 기록한 후에, 다음에 기록될 맵 유닛을 위한 공간이 최근에 할당된 맵 블록에 존재하는지 여부를 판단한다.
도 8을 참조하면, 신규의 맵 유닛의 기록이 필요(단계 S20: YES)한 경우, 최근에 할당된 신규의 맵 블록에 맵 유닛을 기록(단계 S40b)하고, 상응하는 물리적 주소에 데이터를 기입(단계 S50b)한다. 맵 유닛의 기록 및 데이터의 기입이 완료된 후에 신규의 맵 블록의 할당이 필요한지 여부를 판단(단계 S110b)한다. 신규의 맵 블록의 할당이 필요(단계 S110b: YES)한 경우 미사용 맵 블록들 중 하나를 신규의 맵 유닛을 기록하기 위한 맵 블록으로 할당(단계 S120b)한다. 이전에 할당된 맵 블 록들에 포함된 유효 맵 유닛들의 물리적 주소를 이력 정보로서 기록(단계 S130b)한 후에 명령 대기(단계 S10) 상태로 복귀한다. 한편 신규의 맵 블록의 할당이 불필요(단계 S110b: NO)한 경우, 신규의 맵 블록 할당(단계 S120b) 및 이력 정보 기록(단계 S130b)을 거치지 않고 명령 대기(단계 S10) 상태로 복귀한다.
이와 같이, 도 8의 실시예에서는 신규의 맵 유닛의 기록함으로써 최근에 할당된 맵 블록의 공간이 모두 사용된 경우에 다음에 기록될 맵 유닛을 기록하기 위한 신규의 맵 블록을 미리 할당한다.
다시 도 3을 참조하면, 랜덤 액세스 메모리(200)는 맵 테이블을 구성하면서 맵 테이블과 함께 유효 맵 유닛 주소 정보를 저장할 수 있다. 유효 맵 유닛 주소 정보는 이전에 할당된 맵 블록들 및 최근에 할당된 맵 블록에 포함된 모든 유효 맵 유닛의 물리적 주소를 포함하고, 유효 맵 유닛 주소 정보는 신규의 맵 유닛을 기록할 때마다 갱신된다.
이와 같이 액세스가 용이하고 신속한 랜덤 액세스 메모리(200) 내에 모든 유효 맵 유닛의 물리적 주소를 유지하는 경우 신속하게 이력 정보를 작성할 수 있다. 즉, 이력 정보를 작성하기 위하여 이전에 할당된 맵 블록들은 물론 최근에 할당된 맵 블록을 검색할 필요가 없으며, 상기 유효 맵 유닛 주소 정보에 포함된 모든 유효 맵 유닛들의 물리적 주소에 기초하여 이력 정보를 신속하게 작성할 수 있다.
상기에서는, 플래시 메모리 장치와 같이 블록 단위로 소거 동작이 수행되고 페이지 단위로 기입 및 독출 동작이 수행되는 플래시 메모리를 중심으로 본 발명의 기술적 사상 및 실시예들을 설명하였으나, 저장 장치에 포함되는 불휘발성 메모리 는 플래시 메모에만 한정되는 것은 아니며, 호스트의 파일 시스템과 호환되기 위한 논리적 주소와 물리적 주소의 매핑이 요구되는 모든 불휘발성 메모리에 본 발명이 적용될 수 있다.
상술한 바와 같이, 본 발명의 실시예들에 따른 불휘발성 메모리의 매핑방법 및 저장 장치는 이력 정보와 같은 맵 히스토리에 기초하여 맵 테이블을 구성함으로써 맵 오픈 시간을 단축할 수 있으며, 이에 따라 불휘발성 메모리를 포함하는 저장 장치 및 이를 포함하는 시스템의 성능을 향상시킬 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (21)

  1. 물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들을 기록하기 위한 복수의 맵 블록들을 포함하는 불휘발성 메모리의 매핑 방법으로서,
    신규의 맵 블록의 할당시 이전에 할당된 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치에 관한 이력 정보를 작성하는 단계; 및
    상기 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 전체 매핑 정보를 포함하는 맵 테이블을 구성하는 단계를 포함하고,
    상기 이력 정보는 상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 물리적 주소 및 상기 이력 정보가 작성된 순서를 나타내는 일련번호를 포함하는 불휘발성 메모리의 매핑 방법.
  2. 제 1 항에 있어서, 상기 맵 테이블을 구성하는 단계는,
    상기 이력 정보에 기초하여 상기 이전에 할당된 맵 블록에 포함된 상기 유효 맵 유닛들의 매핑 정보를 랜덤 액세스 메모리에 로드하는 단계; 및
    상기 최근에 할당된 맵 블록을 검색하여 상기 로드된 매핑 정보를 갱신하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  3. 제 2 항에 있어서, 상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 매핑 정보를 상기 랜덤 액세스 메모리에 로드하는 단계는,
    맵 블록들의 할당시 각각 작성된 복수의 이력 정보들 중 최근의 이력 정보를 판별하는 단계; 및
    상기 최근의 이력 정보에 포함된 유효 맵 유닛들의 위치에 저장된 매핑 정보를 로드하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  4. 삭제
  5. 제 1 항에 있어서, 상기 이력 정보를 작성하는 단계는,
    신규의 맵 유닛의 기록이 필요한 경우 신규의 맵 블록의 할당이 필요한지 여부를 판단하는 단계;
    신규의 맵 블록의 할당이 필요한 경우 미사용 맵 블록들 중 하나를 할당하는 단계; 및
    상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 상기 이력 정보로서 기록하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  6. 제 5 항에 있어서, 상기 신규의 맵 블록의 할당이 필요한지 여부를 판단하는 단계는,
    최근에 할당된 맵 블록에 상기 신규의 맵 유닛을 기록하기 전에, 상기 최근에 할당된 맵 블록에 상기 신규의 맵 유닛을 기록할 공간이 존재하는지 여부를 판단하는 단계인 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  7. 제 5 항에 있어서, 상기 신규의 맵 블록의 할당이 필요한지 여부를 판단하는 단계는,
    최근에 할당된 맵 블록에 상기 신규의 맵 유닛을 기록한 후에, 상기 최근에 할당된 맵 블록에 다음에 기록될 맵 유닛을 위한 공간이 존재하는지 여부를 판단하는 단계인 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  8. 제 1 항에 있어서, 상기 이력 정보를 작성하는 단계는,
    상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 상기 할당된 신규의 맵 블록에 기록하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  9. 삭제
  10. 삭제
  11. 제 1 항에 있어서,
    상기 불휘발성 메모리는 상기 복수의 맵 블록들을 포함하는 맵 영역, 데이터가 저장되는 데이터 영역 및 상기 맵 영역과 상기 데이터 영역의 관리를 위한 정보가 기록되는 관리 영역을 포함하고,
    상기 이력 정보를 작성하는 단계는, 상기 이전에 할당된 맵 블록들에 포함된 유효 맵 유닛들의 물리적 주소를 상기 불휘발성 메모리의 관리 영역에 기록하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리의 매핑 방법.
  12. 삭제
  13. 삭제
  14. 물리적 주소와 논리적 주소간의 매핑 정보를 나타내는 복수의 맵 유닛들을 기록하기 위한 복수의 맵 블록들을 포함하고, 이전에 할당된 맵 블록에 포함된 맵 유닛들 중 유효한 매핑 정보를 나타내는 유효 맵 유닛들의 위치에 관한 이력 정보가 기록된 불휘발성 메모리;
    신규의 맵 블록의 할당시 상기 이력 정보를 작성하고, 상기 이력 정보를 이용하고 최근에 할당된 맵 블록을 검색하여 맵 테이블을 구성하는 메모리 컨트롤러; 및
    상기 구성된 맵 테이블을 저장하는 랜덤 액세스 메모리를 포함하고,
    상기 이력 정보는 상기 이전에 할당된 맵 블록에 포함된 유효 맵 유닛들의 물리적 주소 및 상기 이력 정보가 작성된 순서를 나타내는 일련번호를 포함하는 저장 장치.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제 14 항에 있어서,
    상기 저장 장치는 솔리드 상태 디스크 (SSD, Solid State Disk) 및 시에프 카드 (Compact Flash Card) 중 하나인 것을 특징으로 하는 저장 장치.
KR1020070017769A 2007-02-22 2007-02-22 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치 KR100882740B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070017769A KR100882740B1 (ko) 2007-02-22 2007-02-22 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
US12/071,498 US8745312B2 (en) 2007-02-22 2008-02-21 Storage device and method of mapping a nonvolatile memory based on a map history

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070017769A KR100882740B1 (ko) 2007-02-22 2007-02-22 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치

Publications (2)

Publication Number Publication Date
KR20080078129A KR20080078129A (ko) 2008-08-27
KR100882740B1 true KR100882740B1 (ko) 2009-02-09

Family

ID=39717259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070017769A KR100882740B1 (ko) 2007-02-22 2007-02-22 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치

Country Status (2)

Country Link
US (1) US8745312B2 (ko)
KR (1) KR100882740B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101014149B1 (ko) * 2008-11-13 2011-02-14 (주)인디링스 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러
KR101077904B1 (ko) * 2010-07-12 2011-10-31 (주)이더블유비엠코리아 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
KR20120134919A (ko) 2011-06-03 2012-12-12 삼성전자주식회사 메모리 장치
JP5874525B2 (ja) * 2012-05-11 2016-03-02 ソニー株式会社 制御装置、記憶装置、記憶制御方法
US10915256B2 (en) 2015-02-25 2021-02-09 SK Hynix Inc. Efficient mapping scheme with deterministic power transition times for flash storage devices
KR20180016679A (ko) 2016-08-04 2018-02-19 삼성전자주식회사 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법
US10643707B2 (en) * 2017-07-25 2020-05-05 Western Digital Technologies, Inc. Group write operations for a data storage device
KR20200089547A (ko) 2019-01-17 2020-07-27 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020060419A (ko) * 2001-01-11 2002-07-18 최웅림 메모리 접근 방법
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
KR20040072875A (ko) * 2003-02-11 2004-08-19 유비시스테크놀러지 주식회사 낸드 플래시 메모리를 이용한 저장장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124384A (ja) 1996-08-28 1998-05-15 Toshiba Corp 不揮発性半導体メモリの制御方法
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
KR100457812B1 (ko) 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US20080276036A1 (en) * 2005-12-21 2008-11-06 Nxp B.V. Memory with Block-Erasable Location
KR100706808B1 (ko) * 2006-02-03 2007-04-12 삼성전자주식회사 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
US20080189473A1 (en) * 2007-02-07 2008-08-07 Micron Technology, Inc Mlc selected multi-program for system management
US8095723B2 (en) * 2007-02-16 2012-01-10 Electronics And Telecommunications Research Institute Log-based flash translation layer and operating method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020060419A (ko) * 2001-01-11 2002-07-18 최웅림 메모리 접근 방법
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
KR20040072875A (ko) * 2003-02-11 2004-08-19 유비시스테크놀러지 주식회사 낸드 플래시 메모리를 이용한 저장장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system

Also Published As

Publication number Publication date
US8745312B2 (en) 2014-06-03
KR20080078129A (ko) 2008-08-27
US20080209161A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
KR100882740B1 (ko) 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
JP5002201B2 (ja) メモリシステム
JP4948793B2 (ja) バッドブロック管理部を含むフラッシュメモリシステム
US7787297B2 (en) Flash memory device and flash memory system
US8250286B2 (en) Block management method, and storage system and controller using the same
KR100684887B1 (ko) 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US20190220396A1 (en) Data Storage Device
US8127072B2 (en) Data storage device and method for accessing flash memory
US7328301B2 (en) Dynamically mapping block-alterable memories
US8074128B2 (en) Block management and replacement method, flash memory storage system and controller using the same
CN109521944A (zh) 数据储存装置以及数据储存方法
KR100914646B1 (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
CN112230849B (zh) 存储器控制方法、存储器存储装置及存储器控制器
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR20120069954A (ko) 블럭 보호 기능을 갖는 비휘발성 메모리 시스템 및 블럭 상태 제어 방법
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法
KR20110070656A (ko) 플래시 메모리의 데이터 처리 방법 및 장치
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4284331B2 (ja) 不揮発性半導体記憶装置のアクセス方法
JP4888333B2 (ja) フラッシュディスク装置
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN107643987B (zh) 减少固态硬盘中dram使用的方法及使用其的固态硬盘
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130131

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 7