KR100843135B1 - 비휘발성 메모리 관리 방법 및 장치 - Google Patents

비휘발성 메모리 관리 방법 및 장치 Download PDF

Info

Publication number
KR100843135B1
KR100843135B1 KR1020060114788A KR20060114788A KR100843135B1 KR 100843135 B1 KR100843135 B1 KR 100843135B1 KR 1020060114788 A KR1020060114788 A KR 1020060114788A KR 20060114788 A KR20060114788 A KR 20060114788A KR 100843135 B1 KR100843135 B1 KR 100843135B1
Authority
KR
South Korea
Prior art keywords
block
offset
page
pages
logical
Prior art date
Application number
KR1020060114788A
Other languages
English (en)
Other versions
KR20080045556A (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 KR1020060114788A priority Critical patent/KR100843135B1/ko
Priority to US11/828,017 priority patent/US20080120488A1/en
Priority to JP2007276619A priority patent/JP4740216B2/ja
Priority to CNA2007101680290A priority patent/CN101187898A/zh
Priority to EP07120519A priority patent/EP1923792A1/en
Publication of KR20080045556A publication Critical patent/KR20080045556A/ko
Application granted granted Critical
Publication of KR100843135B1 publication Critical patent/KR100843135B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 비휘발성 메모리에 관한 것으로, 보다 상세하게는 비휘발성 메모리의 성능을 향상시킬 수 있으며, 논리 페이지 및 물리 페이지 간의 매핑 정보가 없이도, 연산이 요청된 논리 페이지가 기록된 물리 페이지의 오프셋을 찾을 수 있는 비휘발성 메모리 관리 방법 및 장치에 관한 것이다.
본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는, 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리, 및 상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판별한 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 연산부를 포함한다.
비휘발성 메모리(Nonvolatile memory), 물리 페이지, 논리 페이지, 페이지 정렬

Description

비휘발성 메모리 관리 방법 및 장치{Apparatus and method for managing nonvolatile memory}
도 1a는 종래 기술에 따른 페이지 매핑 방법을 나타낸 도면이다.
도 1b는 종래 기술에 따른 블록 매핑 방법을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 플래시 메모리 관리 장치를 도시한 도면이다.
도 3은 도 2에 도시된 비휘발성 메모리의 구조를 도시한 도면이다.
도 4는 도 2에 도시된 비휘발성 메모리의 데이터 블록과 로그 블록 간의 관계를 나타낸 도면이다.
도 5는 도 2에 도시된 비휘발성 메모리의 영역 분할을 도시한 도면이다.
도 6은 본 발명의 실시예에 따른 병합 연산 중 교환 병합(switch merge)을 도시한 도면이다.
도 7은 본 발명의 실시예에 따른 병합 연산 중 복사 병합(copy merge)을 도시한 도면이다.
도 8은 본 발명의 실시예에 따른 병합 연산 중 완전 병합(full merge)을 도시한 도면이다.
도 9는 본 발명의 실시예에 따른 쓰기 연산 과정을 도시한 흐름도이다.
도 10은 본 발명의 실시예에 따른 병합 연산 과정을 도시한 흐름도이다.
도 11은 본 발명의 실시예에 따른 읽기 연산 과정을 도시한 흐름도이다.
도 12는 본 발명의 실시예에 따라 병합 연산이 수행된 블록을 예시한 도면이다.
<도면의 주요 부분에 관한 부호의 설명>
100: 입력부 200: 저장부
300: 비휘발성 메모리 400: 연산부
본 발명은 비휘발성 메모리에 관한 것으로서, 더욱 상세하게는 비휘발성 메모리의 성능을 향상시킬 수 있으며, 논리 페이지와 물리 페이지 간의 매핑 정보 없이도 요청된 논리 페이지가 기록된 물리 페이지의 오프셋을 알 수 있는 비휘발성 메모리 관리 방법 및 장치에 관한 것이다.
비휘발성 메모리는 데이터의 기록 및 삭제가 자유로운 램(RAM: Random Access Memory)의 장점과 전원 공급 없이도 저장된 데이터를 보존하는 롬(ROM: Read Only Memory)의 장점을 동시에 지니고 있어, 최근 디지털 카메라, PDA, MP3 플레이어와 같은 휴대용 전자기기의 저장 매체로 널리 사용되고 있다.
이러한 비휘발성 메모리는 기존의 RAM이나 비휘발성 저장 장치, 마그네틱 등과 마찬가지로 특정 위치에 저장된 데이터를 임의로 접근할 수 있지만, 데이터를 수정하거나 삭제하는 방법에 있어서는 기존의 저장장치와 다르게 삭제블록(Erase block, 이하 '블록'이라 한다)을 기본단위로 하여 액세스가 이루어진다.
즉, 이전의 데이터를 수정 또는 삭제하고자 하는 경우, 해당 데이터를 포함하는 블록을 삭제한 후 데이터를 다시 기록해야 하는데, 일 예로, 글자나 알파벳을 하나씩 수정하는 대신 '삭제'키를 눌러 전체 단어를 다 삭제한 후 다시 수정하는 것과 같다.
이하, 사용되는 용어 가운데 물리적으로 연속된 주소를 갖는 바이트들을 섹터라 하는데, 섹터(Sector)는 비휘발성 메모리에 대한 판독/쓰기 연산의 기본 단위이고, 다수의 섹터들로 구성되는 블록(Block)은 비휘발성 메모리에서 한번의 삭제 연산으로 지울 수 있는 삭제 연산의 기본 단위이다.
이와 같은 비휘발성 메모리에서는 기록 전 삭제(erase before write)로 인해 비휘발성 메모리에 기록된 데이터의 물리 주소(Physical Address)가 변경되어도 동일한 논리 주소(Logical Address)로 비휘발성 메모리에 기록된 데이터에 접근할 수 있도록 논리-물리 사상(logical-physical) 방법을 지원한다.
즉, 사상 기법은 특정 데이터에 대한 논리 주소와 물리 주소간의 사상 정보를 소정의 사상 테이블(mapping table)을 통해 관리하는 것으로, 섹터 사상 방법, 블록 사상 방법을 예로 들 수 있다.
도 1a는 종래의 섹터 사상 방법에 따른 비휘발성 메모리 액세스 방법을 개략적으로 나타낸 것이다.
도 1a에 도시한 바와 같이, 섹터 사상 방법은 비휘발성 메모리의 섹터 단위 로 사상 정보를 유지하여 논리 섹터 정보를 이용한 비휘발성 메모리의 물리 섹터 접근이 가능하도록 하는 것이다.
일 예로, 소정의 데이터에 대해 기록 동작 요구와 함께 논리 섹터 번호(Logical Sector Number: LSN)가 9번으로 지정되면, 비휘발성 메모리 액세스 장치에서는 사상 테이블을 참조하여 LSN 9번에 상응하는 물리 섹터 번호(Physical Sector Number: PSN)인 PSN 6번을 검색한다.
그 다음, 비휘발성 메모리의 6번 섹터에 해당 데이터를 기록하는데, 만일, 해당 섹터에 다른 데이터가 기록되어 있으면 비휘발성 메모리의 비어 있는 물리 섹터에 데이터를 기록하고 사상 테이블에서 LSN 9번에 상응하는 PSN을 변경시킨다.
도 1b는 종래의 블록 사상 방법에 따른 비휘발성 메모리 액세스 방법을 개략적으로 나타낸 것이다.
도 1b에 도시한 바와 같이, 블록 사상 방법은 비휘발성 메모리의 블록 단위로 사상 정보를 유지하여 논리 섹터 정보를 논리 블록 정보로 변환시킨 후 논리 블록 정보와 오프셋 정보를 이용한 비휘발성 메모리의 물리 섹터 접근이 가능하도록 하는 것이다.
일 예로, 4개의 페이지가 1 개의 블록(Block)을 이루는 경우, 소정의 데이터에 대해 기록 동작 요구와 함께 LSN 9번으로 지정되면, 비휘발성 메모리 액세스 장치에서는 논리 섹터 번호 9번의 논리 블록 번호(Logical Block Number: LBN) 9/4=2를 구한 후 사상 테이블을 참조하여 LBN에 상응하는 물리 블록 번호(Physical Block Number: PBN)를 구한다.
이 때, 논리 블록의 오프셋과 물리 블록의 오프셋을 일치시켜 산출된 PBN인 1번에서 오프셋 1에 상응하는 섹터에 데이터를 기록한다.
만일, 해당 섹터에 다른 데이터가 기록되어 있으면 오프셋을 일치시켜 비휘발성 메모리의 비어 있는 물리 섹터에 데이터를 기록하고 사상 테이블에서 LBN 2번에 상응하는 PBN을 변경시킨다.
이와 같은 종래의 사상 방법 가운데 섹터 사상 방법은 비휘발성 메모리의 섹터 단위로 사상 정보를 유지하기 위한 사상 정보가 너무 많아서 실제 비휘발성 메모리에 응용하기는 어려운 문제점이 있었다.
이와 같은 종래 기술의 문제점을 보완하기 위하여 사상 정보를 덜 필요로 하는 블록 사상 방법이 사용되어 오고 있다.
한국 공개특허 제 2002-0092487호(발명의 명칭: 비휘발성 메모리 관리 방법)는 일부 블록에 대해서만 사상정보를 제공하고, 나머지 블록들에 대해서는 병합 연산을 수행하여, 논리 페이지의 오프셋과 물리 페이지의 오프셋을 일치시킴으로써, 사상정보 없이도 논리 페이지가 기록된 물리 페이지의 오프셋을 알 수 있는 방법을 개시하고 있다.
상기 기술에 따르면, 복사 병합(copy merge) 연산보다는 완전 병합(full merge) 연산이 빈번하게 요구되는데, 상기 완전 병합 연산이 수행되기 위해서는 하나의 블록에 대한 삭제 연산 및 다수의 페이지에 대한 쓰기 연산이 요구된다. 그런데 이와 같이 빈번한 삭제/쓰기 연산은 비휘발성 메모리의 성능을 저하시키는 원인이 된다.
따라서, 완전 병합 연산의 횟수를 줄임으로써, 비휘발성 메모리 시스템의 성능을 향상 시킬 수 있는 비휘발성 메모리 관리 방법 및 장치가 요구된다.
본 발명은 비휘발성 메모리를 관리하는데 있어 완전 병합 연산이 실행되는 횟수를 감소시킴으로써, 비휘발성 메모리의 성능을 향상시킬 수 있는 방법 및 장치를 제공하는데 그 목적이 있다.
그러나 본 발명의 목적은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는, 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리, 및 상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판별한 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 연산부를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는, 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적이면서 순환적으로 증가하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리, 제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 입력부, 및 상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근한 후, 상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 연산부를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법은, 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리를 관리하는 방법에 있어서, 상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판단하는 단계, 및 상기 판단 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 단계를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법은, 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적이면서 순환적으로 증가하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리를 관리하는 방법에 있어서, 제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 단계, 상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근하는 단계, 및 상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법 및 장치에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들) 에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 2는 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치의 구조를 도시한 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치는 입력부(100)와, 저장부(200)와, 연산부(400)와, 비휘발성 메모리(300)를 포함하여 구성될 수 있다.
입력부(100)는 사용자로부터 소정 논리 페이지에 대한 읽기/쓰기 요청 등을 입력받는다.
연산부(400)는 논리적 주소에 대한 쓰기/읽기 요청을 물리적 주소에 대한 쓰기/읽기 요청으로 변환한다. 즉, 연산부(400)는 사용자가 요청한 논리 페이지에 대한 요청을 비휘발성 메모리(300) 상의 물리적 주소로 변환하여, 쓰기/읽기 연산을 수행한다.
저장부(200)는 연산부(400)가 비휘발성 메모리(300)로 접근하는데 필요한 접근 코드를 저장한다. 예를 들면, 저장부(200)는 사용자에 의해 요청된 논리적 주소와 비휘발성 메모리(300) 상의 물리적 주소 간의 매핑 관계를 나타내는 매핑 테이블을 저장한다. 이러한 저장부(200)는 RAM(Random Access Memory) 또는 플래시 메모리(Flash memory)를 비롯한 외부 메모리를 포함할 수 있다.
비휘발성 메모리(300)는 사용자가 기록하려는 데이터를 저장한다. 비휘발성 메모리(300)의 구조에 대한 보다 상세한 설명을 위해 도 3을 참조하기로 한다.
도 3은 도 2에 도시된 비휘발성 메모리(300)의 구조를 도시한 도면이다. 도 3에 도시된 바와 같이, 비휘발성 메모리(300)는 다수개의 페이지를 포함하는 다수개의 블록을 포함한다.
페이지는 읽기/쓰기 연산의 기본 단위로서, 각 페이지는 데이터 영역과 스페어 영역으로 구분될 수 있다. 이 때, 데이터 영역에는 데이터가 저장되며, 스페어 영역에는 해당 물리 페이지에 기록된 논리 페이지의 오프셋이 기록된다.
블록은 삭제 연산의 기본 단위로서, 크게 데이터 블록, 로그 블록 및 자유 블록으로 구분될 수 있다. 여기서, 자유 블록이란, 데이터가 기록되어 있지 않은 블록 즉, 비어 있는 블록을 의미한다. 그리고 데이터 블록이란, 일반 데이터를 저 장하는 블록을 의미한다. 이에 비하여, 로그 블록이란, 데이터 블록에 기록된 데이터 중 특정 부분을 수정하고자 하는 경우에 할당되어, 수정 내용을 기록하는 용도로 활용되는 블록을 의미한다. 따라서, 로그 블록은 도 4와 같이, 단 하나의 데이터 블록에 대응되며, 대응되는 데이터 블록의 수정된 페이지들을 저장한다. 때문에 로그 블록의 페이지들은 데이터 블록의 페이지보다 우선적으로 참조될 수 있다. 이하의 설명에서는 로그 블록에서 우선적으로 참조되는 페이지를 '유효한 페이지'라 하고, 물리적으로 유효한 데이터가 기록되어 있더라도 유효한 페이지에 의해 그 내용이 무시되는 페이지를 '무효한 페이지'라 칭하기로 한다.
도 5를 참조하면, 전술한 비휘발성 메모리(300)는 논리적으로 크게 맵 영역, 데이터 블록 영역, 로그 블록 영역 및 자유 블록 영역으로 구분될 수 있다. 상기 맵 영역은 주소변환 정보를 저장한다. 그리고 데이터 블록 영역은 다수개의 데이터 블록을 포함하며, 로그 블록 영역은 다수개의 로그 블록을 포함한다. 자유 블록 영역은 데이터 블록 또는 로그 블록으로 할당되기 위한 다수개의 자유 블록을 포함한다. 도 5에 도시된 각 영역들은 논리적인 분할을 도시한 것으로서, 각 영역에 포함하는 데이터 블록, 로그 블록 및 자유 블록은 물리적으로 서로 연속적으로 존재할 수도 있으며, 비연속적으로 산재하여 존재할 수도 있다.
한편, 본 발명에 따르면, 비휘발성 메모리(300)를 관리하기 위해 '블록 병합(block merge)' 이 수행될 수 있다. 블록 병합이란, 데이터 블록의 유효 페이지 및 로그 블록의 유효 페이지들을 모아 새로운 데이터 블록을 생성하고, 기존의 로그 블록 및 기존의 데이터 블록을 대상으로 삭제 연산을 수행함으로써, 자유 블록 을 만들어 내는 것을 말한다. 블록 병합은 로그 블록에 쓰기 가능한 자유 페이지가 더 이상 존재하지 않는 경우에 수행될 수 있다.
블록 병합의 종류에는 교환 병합(switch merge), 복사 병합(copy merge) 및 완전 병합(full merge)을 예로 들 수 있는데, 블록 병합이 수행될 때에는 블록 병합 대상이 되는 블록의 상태에 따라서 세 가지 중 어느 하나가 실행될 수 있다.
교환 병합은 도 6과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하며 순환되고, 로그 블록에서 유효한 논리 페이지의 개수가 상기 로그 블록에 포함된 물리 페이지의 총 개수와 동일한 경우에 수행된다. 교환 병합은 로그 블록을 데이터 블록으로 전이시키고 주소변환 정보를 갱신한 다음, 기존 데이터 블록에 기록된 데이터를 삭제함으로써 이루어진다. 즉, 교환 병합에서는 데이터 블록이나 로그 블록에 기록되어 있는 데이터를 복사하는 과정 없이 주소변환 정보만을 갱신함으로써 이루어진다. 이 때, 기존의 데이터 블록은 삭제 가능한 블록(erasable block)이 된다.
복사 병합은 도 7과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하면서 순환적이고, 로그 블록에서 유효한 페이지의 개수와 로그 블록에 포함된 물리 페이지의 총 개수가 서로 일치하지 않는 경우에 수행된다. 복사 병합은 데이터 블록에서 유효한 논리 페이지를 로그 블록의 자유 페이지에 복사한 다음, 로그 블록을 데이터 블록으로 전이시킴으로써 이루어진다. 이 때, 기존의 데이터 블록은 삭제 가능한 블록(erasable block)이 된다.
완전 병합은 도 8과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환적이지 않은 경우에 수행된다. 완전 병합은 자유 블록을 할당 받은 다음, 로그 블록 및 데이터 블록에서 유효한 논리 페이지를 할당 받은 자유 블록에 복사함으로써 이루어진다. 이 때, 기존 데이터 블록과 기존 로그 블록은 삭제 가능한 블록(erasable block)이 된다.
다음으로, 도 9 내지 도 12를 참조하여, 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법을 설명하기로 한다.
도 9는 본 발명의 실시예에 따른 쓰기 연산 과정을 도시한 흐름도이다.
사용자로부터 제1 논리 페이지의 오프셋과 함께 쓰기 연산이 요청되면, 연산부(400)는 매핑 정보를 참조하여, 제1 논리 페이지의 오프셋에 대응하는 물리 페이지의 오프셋을 검색한다. 그 다음, 검색된 물리 페이지가 사용가능한 상태인지를 판단한다(S810).
상기 판단 결과, 해당 물리 페이지가 사용 가능하다면(S810, 예), 연산부(400)는 해당 물리 페이지에 데이터를 기록한다(S860). 이 때, 데이터는 해당 페이지의 데이터 영역에 기록될 수 있다. 데이터 영역에 데이터가 기록될 때, 해당 물리 페이지의 스페어 영역에는 제1 논리 페이지의 오프셋이 기록되는 것이 바람직하다. 데이터 쓰기가 완료되면, 연산부(400)는 맵 영역의 매핑 정보를 갱신한다.
상기 판단 결과, 해당 물리 페이지가 사용 불가능하다면(S810, 아니오), 다시 말해 해당 물리 페이지에 이미 데이터가 기록되어 있는 상태라면, 연산부(400)는 자유 페이지 할당이 가능한지를 판단한다(S820).
판단 결과, 자유 페이지를 할당하는 것이 가능하다면(S820, 예), 연산 부(400)는 자유 페이지를 할당하고, 할당된 자유 페이지의 데이터 영역에 데이터를 기록한다. 동시에 상기 자유 페이지의 스페어 영역에는 제1 논리 페이지의 오프셋을 기록한다(S880).
판단 결과, 자유 페이지를 할당하는 것이 불가능하다면(S820, 아니오), 연산부(400)는 로그 블록 할당이 가능한지를 판단한다(S830). 즉, 남아 있는 자유 블록의 개수가 충분한지를 판단한다.
판단 결과, 남아 있는 자유 블록의 개수가 충분하여 새로운 로그 블록을 할당할 수 있다면(S830, 예), 연산부(400)는 자유 블록들 중에서 소정 자유 블록을 로그 블록으로 할당한다(S850). 그리고, 할당된 로그 블록의 물리 페이지에 데이터를 기록한다(S860). 이 때, 연산부(400)는 해당 물리 페이지의 데이터 영역에는 데이터를 기록하고, 상기 물리 페이지의 스페어 영역에는 제1 논리 페이지의 오프셋을 기록하는 것이 바람직하다. 데이터 쓰기가 완료되면, 연산부(400)는 맵 영역의 매핑 정보를 갱신한다(S870).
판단한 결과, 남아 있는 자유 블록의 개수가 충분하지 못하여 새로운 로그 블록을 할당할 수 없다면(S830, 아니오), 연산부(400)는 병합 연산을 수행하여 새로운 자유 블록을 생성하고(S840), 상기 자유 블록을 로그 블록으로 할당한다(S850). 그리고 할당된 로그 블록의 물리 페이지에 쓰기를 수행한다. 이 후, 연산부(400)는 맵 영역의 매핑 정보를 갱신한다(S870).
도 9를 참조한 설명에서는 사용자로부터 쓰기 연산이 요청된 경우, 자유 블록을 생성하기 위한 방법의 하나로 병합 연산이 수행되는 것을 예로 들어 설명하였 지만, 병합 연산은 비휘발성 메모리의 블록 상태가 사전 지정된 기준을 만족하는 경우에 자동적으로 수행될 수도 있다. 예를 들면, 사용자로부터 쓰기가 요청된 경우가 아니더라도, 자유 블록의 개수가 사전 지정된 개수 미만이 되는 경우에 수행될 수 있다.
도 10은 본 발명의 실시예에 따른 병합 연산 과정을 도시한 흐름도이다.
먼저, 연산부(400)는 병합 대상이 되는 로그 블록의 논리 페이지 정렬 상태를 확인한다. 구체적으로, 상기 로그 블록에서, 연속된 물리 페이지의 스페어 영역을 확인하여, 상기 스페어 영역에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환되는지를 판단한다(S901). 여기서, 순차적으로 증가하며 순환된다는 것은, 논리 페이지의 오프셋이 순차적으로 증가함과 동시에, 오프셋이 최대인 논리 페이지와 오프셋이 최소인 논리 페이지가 서로 연속하여 존재하는 것을 의미한다.
상기 S901 단계에서의 판단 결과, 도 8과 같이, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환적이지 않은 경우(S901, 아니오), 연산부(400)는 해당 로그 블록을 대상으로, 완전 병합(full merge)을 수행한다. 완전 병합을 수행하기 위해, 연산부(400)는 우선, 새로운 자유 블록을 할당 받는다(S908). 그 다음, 로그 블록 및 데이터 블록에서 유효한 논리 페이지를 상기 자유 블록에 복사한다(S909). 이 때, 연산부(400)는 상기 유효한 논리 페이지를 오프셋에 따라 순차적으로 자유 블록에 복사함으로써, 상기 유효한 논리 페이지를 모두 자유 블록에 복사하였을 때, 상기 논리 페이지의 오프셋이 순차적으로 증가하며 순환될 수 있도록 한다. 로그 블록 및 데이터 블록에서 유효한 논리 페이지가 모두 자유 블록으로 복사되면, 연산부(400)는 상기 자유 블록을 데이터 블록으로 전이시킨 다음(S910), 매핑 정보를 갱신한다(S911). 그리고, 이전의 데이터 블록 및 로그 블록을 대상으로 삭제 연산을 수행하여, 새로운 자유 블록을 생성한다(S912).
한편, 상기 S901 단계에서의 판단 결과, 로그 블록에서 연속된 물리 페이지에 기록된 논리 페이지의 오프셋이 순차적으로 증가하며, 순환되는 경우(S901, 예), 연산부(400)는 해당 로그 블록에서 유효한 논리 페이지의 개수가 해당 로그 블록에 포함된 물리 페이지의 총 개수와 일치하는지를 판단한다(S902).
상기 S902 단계에서의 판단 결과, 도 7과 같이, 해당 로그 블록에서 유효한 논리 페이지의 개수와 물리 페이지의 총 개수가 서로 동일하지 않은 경우(S902, 아니오), 연산부(400)는 복사 병합을 수행한다. 복사 병합을 수행하기 위해 연산부(400)는 우선, 로그 블록에 대응하는 데이터 블록에서, 유효한 논리 페이지를 상기 로그 블록의 자유 페이지에 기록한다(S903). 이 때, 연산부(400)는 상기 유효한 논리 페이지를 논리 페이지의 오프셋에 따라 순차적으로 로그 블록에 복사함으로써, 복사 과정이 완료된 후 상기 로그 블록의 상태를 확인하였을 때, 논리 페이지의 오프셋이 순차적으로 증가하며 순환될 수 있도록 한다. 복사 과정이 완료되면, 연산부(400)는 로그 블록을 데이터 블록으로 전이시키고(S904), 매핑 정보를 갱신한다(S905). 그 다음, 연산부(400)는 이전의 데이터 블록에 대하여 삭제 연산을 수행함으로써, 새로운 자유 블록을 생성한다(S906).
상기 S902 단계에서의 판단 결과, 도 6과 같이, 로그 블록에서 유효한 논리 페이지의 개수와 물리 페이지의 총 개수가 서로 동일한 경우(S902, 예), 연산부(400)는 교환 병합을 수행한다. 구체적으로, 연산부(400)는 해당 로그 블록을 데이터 블록으로 전이시킨 다음(S904), 매핑 정보를 갱신한다(S905). 이 후, 연산부(400)는 이전의 데이터 블록에 대하여 삭제 연산을 수행함으로써, 새로운 자유 블록을 생성한다(S906).
다음으로, 도 11은 본 발명의 실시예에 따른 읽기 연산 과정을 도시한 흐름도이다.
사용자로부터 제1 논리 페이지의 오프셋과 함께 읽기 연산이 요청되면, 연산부(400)는 상기 제1 논리 페이지의 오프셋(이하, '제1 오프셋'이라 한다)과 동일한 오프셋을 가지는 제1 물리 페이지에 접근한다(S10).
이 후, 연산부(400)는 상기 제1 물리 페이지의 스페어 영역을 확인하여, 제2 논리 페이지의 오프셋(이하, '제2 오프셋'이라 한다)을 획득한다(S20).
이 후, 연산부(400)는 상기 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리적 페이지의 오프셋을 획득한다(S30). 구체적으로, 제1 오프셋을 X, 제2 오프셋을 Y, 제1 오프셋과 제2 오프셋의 차를 Z라 하고, 블록에 포함되는 물리 페이지의 총 개수를 N이라 할 때, 연산부(400)는 다음의 [수학식1]에 근거하여, 제2 물리 페이지의 오프셋 X'를 구한다.
X'= (X+Z+N) mod N
즉, 연산부(400)는 제1 오프셋과 제2 오프셋의 차(Z)에 제1 오프셋(X)과 블록에 포함되는 물리 페이지의 총 개수(N)가 각각 더하여진 결과값을 상기 물리 페이지의 총 개수(N)로 나누었을 때의 나머지를 구함으로써, 제2 물리 페이지의 오프셋(X')을 획득한다.
[수학식1]에 의해 제2 물리 페이지의 오프셋(X')이 획득되면, 연산부(400)는 제2 물리 페이지를 읽는다(S40).
여기서, 읽기 연산 과정에 대한 이해를 돕기 위하여 도 12를 참조하기로 한다. 도 12는 본 발명의 실시예에 따른 블록을 예시한 도면이다. 도 12에 도시된 블록은 총 8개의 물리 페이지(페이지 0~7)를 포함하는 것을 알 수 있다. 그리고, 각 물리 페이지의 스페어 영역에는 논리 페이지의 오프셋이 기록되어 있는 것을 알 수 있다. 또한, 각 스페어 영역에 기록되어 있는 논리 페이지의 오프셋은 순차적으로 증가하며 순환되는 것을 알 수 있다. (페이지 4에 기록된 논리 페이지의 오프셋은 7이며, 페이지 5에 기록된 논리 페이지의 오프셋은 0이므로, 논리 페이지의 오프셋이 순환되고 있음을 알 수 있다.)
이와 같은 상태에서, 오프셋이 7인 제1 논리 페이지에 대한 읽기 요청이 입력되면, 연산부(400)는 우선, 제1 논리 페이지의 오프셋과 동일한 오프셋을 갖는 제1 물리 페이지에 접근한다. 구체적으로, 제1 논리 페이지의 오프셋은 7이므로, 연산부(400)는 7이라는 오프셋을 갖는 제1 물리 페이지 즉, 페이지 7에 접근한다.
이 후, 연산부(400)는 페이지 7의 스페어 영역을 확인하여, 제2 논리 페이지의 오프셋(Y) 즉, 2를 획득한다.
그 다음, 연산부(400)는 페이지 7의 스페어 영역에 기록되어 있는 제2 논리 페이지의 오프셋(Y)근거하여, 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋(X')을 구한다. 구체적으로, 연산부(400)는 [수학식1]에 근거하여, 제2 물리 페이지의 오프셋(X')을 구한다. 도 12의 경우, 제2 물리 페이지의 오프셋 X'= (7+5+8) mod 8 = 4 임을 알 수 있다.
제2 물리 페이지의 오프셋 X'이 획득되면, 연산부(400)는 해당 블록에서 오프셋이 4인 물리 페이지 즉, 다섯 번째 페이지를 읽는다. 도 12에서 다섯 번째 페이지인 페이지 4의 스페어 영역을 살펴보면, 논리 페이지의 주소로서 7이 기억되어 있는 것을 알 수 있다.
이상과 같이 본 발명에 따른 비휘발성 메모리 관리 방법 및 장치를 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명에 의한 비휘발성 메모리 관리 방법 및 장치에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
블록에 포함되는 논리 페이지를 정렬할 때, 논리 페이지의 오프셋이 순차적으로 증가하며 순환되도록 함으로써, 완전 병합 연산이 수행되는 횟수를 감소시킬 수 있으며, 이로 인해 비휘발성 메모리의 쓰기 연산 속도를 향상시킬 수 있는 효과가 있다.
물리 페이지의 스페어 영역에 상기 물리 페이지에 기록된 논리 페이지의 오 프셋을 기록함으로써, 물리 페이지와 논리 페이지 간의 매핑 정보 없이도 요청된 논리 페이지가 기록된 물리 페이지의 오프셋을 알 수 있다.

Claims (20)

  1. 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리; 및
    상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판별한 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 연산부를 포함하는, 비휘발성 메모리 관리 장치.
  2. 제 1 항에 있어서, 상기 물리 페이지는,
    데이터가 기록되는 데이터 영역; 및
    상기 오프셋이 기록되는 스페어 영역을 포함하는, 비휘발성 메모리 관리 장치.
  3. 제 1 항에 있어서, 상기 연산부는,
    상기 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환하지 않는 경우, 상기 제1 블록 및 상기 제2 블록에서 유효한 논리 페이지를 데이터가 기록되어 있지 않은 자유 블록에 복사하는 완전 병합(full merge)를 수행하는, 비휘발성 메모리 관리 장치.
  4. 제 3 항에 있어서, 상기 연산부는,
    상기 유효한 논리 페이지들의 오프셋이 순차적으로 증가하며 순환하도록 상기 유효한 논리 페이지들을 상기 자유 블록에 복사하는, 비휘발성 메모리 관리 장치.
  5. 제 1 항에 있어서, 상기 연산부는,
    상기 각 논리 페이지의 오프셋이 순차적으로 증가하며 순환하고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록의 총 물리 페이지 개수가 일치하지 않는 경우, 상기 제2 블록에서 유효한 논리 페이지를 상기 제1 블록에서 데이터가 기록되어 있지 않은 자유 페이지에 복사하는 복사 병합(copy merge)을 수행하는, 비휘발성 메모리 관리 장치.
  6. 제 5 항에 있어서, 상기 연산부는,
    상기 유효한 논리 페이지들의 오프셋이 순차적으로 증가하며 순환하도록 상기 유효한 논리 페이지들을 상기 제1 블록의 자유 페이지에 복사하는, 비휘발성 메모리 관리 장치.
  7. 제 1 항에 있어서, 상기 연산부는,
    상기 각 논리 페이지의 오프셋이 순차적으로 증가하며 순환하고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록에 포함된 물리 페이지의 총 개수가 일치하는 경우, 상기 제1 블록을 제3 블록으로 전이시키는 교환 병합을 수행하는, 비휘발성 메모리 관리 장치.
  8. 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적이면서 순환적으로 증가하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리;
    제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 입력부; 및
    상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근한 후, 상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 연산부를 포함하는, 비휘발성 메모리 관리 장치.
  9. 제 8 항에 있어서, 상기 물리 페이지는,
    데이터가 기록되는 데이터 영역; 및
    상기 오프셋이 기록되는 스페어 영역을 포함하는, 비휘발성 메모리 관리 장치.
  10. 제 8 항에 있어서, 상기 제2 물리 페이지의 오프셋은,
    상기 제1 물리 페이지의 오프셋에서 상기 제2 논리 페이지의 오프셋을 뺀 값에, 상기 제1 물리 페이지의 오프셋과 상기 블록의 총 페이지 개수가 각각 합하여진 결과값을 상기 총 페이지 개수로 나눈 나머지인, 비휘발성 메모리의 관리 장치.
  11. 적어도 하나의 물리 페이지를 포함하는 제1 블록 및 제2 블록을 포함하는 비휘발성 메모리를 관리하는 방법에 있어서,
    상기 제1 블록에서 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적으로 증가하며 순환하는지를 판단하는 단계; 및
    상기 판단 결과에 따라서, 상기 제1 블록 및 상기 제2 블록의 병합을 위한 연산 종류를 결정하는 단계를 포함하는, 비휘발성 메모리 관리 방법.
  12. 제 11 항에 있어서, 상기 물리 페이지는,
    데이터가 기록되는 데이터 영역; 및
    상기 오프셋이 기록되는 스페어 영역을 포함하는, 비휘발성 메모리 관리 방법.
  13. 제 11 항에 있어서, 상기 결정하는 단계는,
    상기 논리 페이지의 오프셋이 순차적으로 증가하지 않거나, 순환하지 않는 경우, 상기 제1 블록 및 상기 제2 블록에서 유효한 논리 페이지들을 데이터가 기록되어 있지 않은 자유 블록에 복사하는 단계; 및
    상기 제1 블록과 상기 제2 블록을 대상으로 삭제 연산을 수행하여 새로운 자유 블록을 생성하는 단계를 포함하는, 비휘발성 메모리 관리 방법.
  14. 제 13 항에 있어서, 상기 복사하는 단계는,
    상기 유효한 논리 페이지들의 오프셋이 순차적으로 증가하며 순환하도록 상기 유효한 논리 페이지들을 상기 자유 블록에 차례로 복사하는 단계를 포함하는, 비휘발성 메모리 관리 방법.
  15. 제 11 항에 있어서, 상기 결정하는 단계는,
    상기 오프셋이 순차적으로 증가하면서 순환적이고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록의 총 물리 페이지 개수가 일치하지 않는 경우, 상기 제2 블록에서 유효한 논리 페이지를 상기 제1 블록에서 데이터가 기록되어 있지 않은 자유 페이지에 복사하는 단계; 및
    상기 제2 블록을 대상으로 삭제 연산을 수행하여 새로운 자유 블록을 생성하는 단계를 포함하는, 비휘발성 메모리 관리 방법.
  16. 제 15 항에 있어서, 상기 복사하는 단계는,
    상기 제2 블록에서 유효한 논리 페이지들의 오프셋이 순차적으로 증가하며 순환하도록 상기 제2 블록에서 유효한 논리 페이지들을 정렬하여 상기 자유 페이지에 복사하는 단계를 포함하는, 비휘발성 메모리 관리 방법.
  17. 제 11 항에 있어서, 상기 결정하는 단계는,
    상기 오프셋이 순차적으로 증가하면서 순환적이고, 상기 제1 블록에서 유효한 논리 페이지의 개수와 상기 제1 블록에 포함된 물리 페이지의 총 개수가 일치하는 경우, 상기 제1 블록을 제3 블록으로 전이시키는 단계; 및
    상기 제2 블록을 대상으로 삭제 연산을 수행하여 새로운 자유 블록을 생성하는 단계를 포함하는, 비휘발성 메모리 관리 방법.
  18. 연속된 물리 페이지에 기록되어 있는 논리 페이지의 오프셋이 순차적이면서 순환적으로 증가하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리를 관리하는 방법에 있어서,
    제1 논리 페이지의 오프셋과 함께 읽기 연산 요청을 입력 받는 단계;
    상기 블록에서 상기 제1 논리 페이지의 오프셋과 동일한 오프셋을 가지는 제1 물리 페이지에 접근하는 단계; 및
    상기 제1 물리 페이지로부터 획득된 제2 논리 페이지의 오프셋에 근거하여, 상기 제1 논리 페이지의 오프셋이 기록된 제2 물리 페이지의 오프셋을 획득하는 단계를 포함하는, 비휘발성 메모리 관리 방법
  19. 제 18 항에 있어서, 상기 물리 페이지는,
    데이터가 기록되는 데이터 영역; 및
    상기 오프셋이 기록되는 스페어 영역을 포함하는, 비휘발성 메모리 관리 방법.
  20. 제 18 항에 있어서, 상기 제2 물리 페이지의 오프셋은,
    상기 제1 물리 페이지의 오프셋에서 상기 제2 논리 페이지의 오프셋을 뺀 값에, 상기 제1 물리 페이지의 오프셋과 상기 블록의 총 페이지 개수가 각각 합하여진 결과값을 상기 총 페이지 개수로 나눈 나머지인, 비휘발성 메모리의 관리 방법.
KR1020060114788A 2006-11-20 2006-11-20 비휘발성 메모리 관리 방법 및 장치 KR100843135B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060114788A KR100843135B1 (ko) 2006-11-20 2006-11-20 비휘발성 메모리 관리 방법 및 장치
US11/828,017 US20080120488A1 (en) 2006-11-20 2007-07-25 Apparatus and method of managing nonvolatile memory
JP2007276619A JP4740216B2 (ja) 2006-11-20 2007-10-24 不揮発性メモリ管理方法及び装置
CNA2007101680290A CN101187898A (zh) 2006-11-20 2007-11-02 管理非易失性存储器的设备和方法
EP07120519A EP1923792A1 (en) 2006-11-20 2007-11-12 Apparatus and method of managing nonvolatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060114788A KR100843135B1 (ko) 2006-11-20 2006-11-20 비휘발성 메모리 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080045556A KR20080045556A (ko) 2008-05-23
KR100843135B1 true KR100843135B1 (ko) 2008-07-02

Family

ID=39020750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060114788A KR100843135B1 (ko) 2006-11-20 2006-11-20 비휘발성 메모리 관리 방법 및 장치

Country Status (5)

Country Link
US (1) US20080120488A1 (ko)
EP (1) EP1923792A1 (ko)
JP (1) JP4740216B2 (ko)
KR (1) KR100843135B1 (ko)
CN (1) CN101187898A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101510120B1 (ko) 2008-11-21 2015-04-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180929B2 (en) * 2007-04-24 2012-05-15 Samsung Electronics Co., Ltd. Method for managing logical address and device thereof
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
CN101788955B (zh) * 2009-01-23 2012-05-02 群联电子股份有限公司 闪存数据的存取方法及其储存***与控制器***
KR100929371B1 (ko) * 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
WO2011068109A1 (ja) * 2009-12-03 2011-06-09 株式会社日立製作所 記憶装置、およびメモリコントローラ
TWI414940B (zh) * 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
US9141289B2 (en) 2010-03-30 2015-09-22 Os Nexus, Inc. Intelligent data storage utilizing one or more records
KR101734200B1 (ko) * 2010-12-03 2017-05-11 삼성전자주식회사 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
WO2012100145A1 (en) * 2011-01-21 2012-07-26 Blackbird Technology Holdings, Inc. Method and apparatus for memory management
CN102736985B (zh) * 2011-03-30 2015-10-14 群联电子股份有限公司 数据合并方法、控制器与储存装置
JP5520880B2 (ja) * 2011-05-13 2014-06-11 株式会社東海理化電機製作所 フラッシュメモリ装置
CN102289411B (zh) * 2011-06-27 2014-03-26 北京握奇数据***有限公司 一种智能卡资源调度的方法和智能卡
TWI457755B (zh) * 2011-08-22 2014-10-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
CN102968385B (zh) * 2011-08-31 2016-01-20 群联电子股份有限公司 数据写入方法、存储器控制器与储存装置
US9026887B2 (en) 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
KR101997572B1 (ko) * 2012-06-01 2019-07-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
JP5813589B2 (ja) * 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
CN103761193B (zh) * 2013-12-17 2016-09-14 记忆科技(深圳)有限公司 抑制逻辑页碎片产生的方法及***
US20150205531A1 (en) * 2014-01-20 2015-07-23 Seagate Technology Llc Adding Storage Capacity to an Object Storage System
CN105917289A (zh) * 2014-03-13 2016-08-31 联发科技股份有限公司 控制存储阵列装置以节省更多功率的方法及其相关装置
KR102586628B1 (ko) * 2015-06-05 2023-10-11 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
KR102329924B1 (ko) 2015-10-27 2021-11-23 삼성전자 주식회사 전자 장치 및 이의 메모리 관리 방법
US9996463B2 (en) * 2015-11-10 2018-06-12 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
KR102552689B1 (ko) * 2018-04-26 2023-07-05 삼성전자주식회사 데이터 저장 장치
KR20200043676A (ko) * 2018-10-18 2020-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200055349A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11194666B2 (en) * 2019-04-26 2021-12-07 EMC IP Holding Company LLC Time addressable storage in a content addressable storage system
CN112148203B (zh) * 2019-06-27 2023-12-05 龙芯中科技术股份有限公司 存储器管理方法、装置、电子设备及存储介质
US11127467B1 (en) * 2020-06-19 2021-09-21 Western Digital Technologies, Inc. Hybrid erase mode for high data retention in memory device
US11841794B2 (en) * 2020-12-16 2023-12-12 Micron Technology, Inc. Memory sub-system write sequence track

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002133892A (ja) 2000-10-25 2002-05-10 Fujitsu Ltd フラッシュメモリの欠陥管理方法
KR20020092261A (ko) * 2002-08-31 2002-12-11 지인정보기술 주식회사 멀티-플레인 구조의 플래시 메모리 관리 방법
JP2005092678A (ja) 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd 半導体メモリカード及び不揮発性メモリのデータ消去処理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR20070007265A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법
KR100526188B1 (ko) 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
KR100533683B1 (ko) * 2004-02-03 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP4253272B2 (ja) * 2004-05-27 2009-04-08 株式会社東芝 メモリカード、半導体装置、及び半導体メモリの制御方法
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002133892A (ja) 2000-10-25 2002-05-10 Fujitsu Ltd フラッシュメモリの欠陥管理方法
KR20020092261A (ko) * 2002-08-31 2002-12-11 지인정보기술 주식회사 멀티-플레인 구조의 플래시 메모리 관리 방법
JP2005092678A (ja) 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd 半導体メモリカード及び不揮発性メモリのデータ消去処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101510120B1 (ko) 2008-11-21 2015-04-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
US9292435B2 (en) 2008-11-21 2016-03-22 Samsung Electronics Co., Ltd. Memory device and method of operation

Also Published As

Publication number Publication date
EP1923792A1 (en) 2008-05-21
JP2008130088A (ja) 2008-06-05
US20080120488A1 (en) 2008-05-22
JP4740216B2 (ja) 2011-08-03
KR20080045556A (ko) 2008-05-23
CN101187898A (zh) 2008-05-28

Similar Documents

Publication Publication Date Title
KR100843135B1 (ko) 비휘발성 메모리 관리 방법 및 장치
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US9684462B2 (en) Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
KR101257990B1 (ko) 인덱스 캐시 트리
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
JP2004127185A (ja) メモリカード
JP2008112445A (ja) 不揮発性メモリを管理する装置及び方法
US20050246480A1 (en) System and method capable of sequentially writing data to a flash memory
JPWO2005106673A1 (ja) 不揮発性記憶装置及びデータ書込み方法
KR100703807B1 (ko) 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
TW201437808A (zh) 分割實體區塊之方法及記憶體系統
KR101336258B1 (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
KR20100063495A (ko) 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
KR101022001B1 (ko) 플래시 메모리 시스템 및 플래시 메모리의 관리 방법
CN113703671B (zh) 一种数据块擦除方法及相关装置
CN108073362B (zh) 一种延长PairBlock使用寿命的方法及装置
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
JP2008299513A (ja) データ記憶装置およびその制御方法
JP2009199211A (ja) メモリ制御方法及び装置、コンピュータプログラム

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee