KR101655508B1 - 메모리 장치 및 그 동작 방법 - Google Patents

메모리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR101655508B1
KR101655508B1 KR1020130146513A KR20130146513A KR101655508B1 KR 101655508 B1 KR101655508 B1 KR 101655508B1 KR 1020130146513 A KR1020130146513 A KR 1020130146513A KR 20130146513 A KR20130146513 A KR 20130146513A KR 101655508 B1 KR101655508 B1 KR 101655508B1
Authority
KR
South Korea
Prior art keywords
data
block
written
memory device
log
Prior art date
Application number
KR1020130146513A
Other languages
English (en)
Other versions
KR20150062019A (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 KR1020130146513A priority Critical patent/KR101655508B1/ko
Publication of KR20150062019A publication Critical patent/KR20150062019A/ko
Application granted granted Critical
Publication of KR101655508B1 publication Critical patent/KR101655508B1/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
    • 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

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)

Abstract

메모리 장치의 동작 방법이 제공된다. 상기 메모리 장치의 동작 방법은, 데이터 블록 및 로그 블록을 포함하는 메모리 시스템에 있어서, 상기 데이터 블록에 제1 데이터를 기입하고, 상기 로그 블록에 상기 제1 데이터와 다른 타입의 제2 데이터를 기입하는 단계, 데이터가 기입되지 않고 비어있는 상기 데이터 블록의 페이지들의 일부를 예약 페이지(reserved page)로 설정하는 단계, 및 상기 데이터 블록과 상기 로그 블록에 기입된 데이터가 합병 연산(merge)되는 경우, 상기 로그 블록에 기입된 상기 제2 데이터를 상기 데이터 블록의 상기 예약 페이지에 기입하는 단계를 포함한다.

Description

메모리 장치 및 그 동작 방법{Memory device and method of operating for the same}
본 발명은 메모리 장치 및 그 동작 방법에 관련된 것으로, 보다 상세하게는, 데이터 블록 내에 설정된 예약 페이지에 임의 데이터(random data)를 기입하는 것을 포함하는 메모리 장치 및 그 동작 방법에 관련된 것이다.
일반적으로, 플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 특히, 최근에는 스마트폰, PDA, 디지털카메라 등과 같은 휴대용 정보 기기의 사용이 급증함에 따라, 하드 디스크를 대신하여 플래시 메모리가 저장장치로 널리 사용되고 있다. 상술한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재생 기능)을 제공하기 위해서 점차 대용량의 저장 장치들을 필요로 하고 있다.
플래시 메모리는 복수의 플레인(palne)으로 구성되며, 각각의 플레인은 복수의 블록(block)을 포함하고 있으며, 다시 각각의 블록은 복수의 페이지(page)로 나누어진다. 플래시 메모리에서 쓰기 연산은 페이지 단위로 수행되며, 소거 연산은 블록 단위로 수행된다. 또한, 플래시 메모리서 덮어쓰기(overwrite) 연산은 불가능하며, 이를 위해서는, 소거 연산 후 새롭게 쓰기 연산을 수행해야 한다.
일반적으로 플래시 메모리를 소거할 수 있는 횟수는 SLC(single level cell)의 경우 약 10만 번이며, MLC(multi level cell)의 경우 약 1만 번 정도이다. 이에 따라, 플래시 메모리의 소거 횟수를 평준화하기 위한 다양한 마모도 평준화(wear leveling) 기술들이 개발되고 있다.
대한민국 특허 공개 공보 10-2013-0017748(출원번호 10-2011-0080360) 에서는 블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분하고, 구분된 핫 페이지가 복수개인 경우, 이들 각각을 서로 다른 타겟 블록들에 배치하는 주소 변환부를 이용하여 마모도를 평준화시키는 기술이 제시되었다.
본 발명이 해결하고자 하는 일 기술적 과제는 장수명을 갖는 메모리 장치 및 그 동작 방법을 제공하는 데 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는 고신뢰성을 갖는 메모리 장치 및 그 동작 방법을 제공하는 데 있다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 마모도가 평준화된 메모리 장치 및 그 동작 방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위해, 본 발명은 메모리 장치의 동작 방법을 제공한다.
상기 메모리 장치의 동작 방법은, 데이터 블록 및 로그 블록을 포함하는 메모리 시스템에 있어서, 상기 데이터 블록에 제1 데이터를 기입하고, 상기 로그 블록에 상기 제1 데이터와 다른 타입의 제2 데이터를 기입하는 단계, 데이터가 기입되지 않고 비어있는 상기 데이터 블록의 페이지들의 일부를 예약 페이지(reserved page)로 설정하는 단계, 및 상기 데이터 블록과 상기 로그 블록에 기입된 데이터가 합병 연산(merge)되는 경우, 상기 로그 블록에 기입된 상기 제2 데이터를 상기 데이터 블록의 상기 예약 페이지에 기입하는 단계를 포함한다.
상기 제1 데이터는 연속 데이터(sequential data)이고, 상기 제2 데이터는 임의 데이터(random data)인 것을 포함할 수 있다.
상기 데이터 블록은 하나의 예약 페이지를 갖는 것을 포함할 수 있다.
상기 데이터 블록은, 제1 데이터가 기입된 제1 데이터 블록, 및 데이터가 기입되지 않은 제2 데이터 블록을 포함하고, 상기 제1 데이터 블록의 예약 페이지에 제3 데이터가 기록되어 있는 경우, 상기 제1 데이터 및 상기 제2 데이터를 상기 제2 데이터 블록에 기입하여, 상기 데이터 블록과 상기 로그 블록의 데이터를 합병 연산하는 것을 포함할 수 있다.
상기 데이터 블록은, 상기 제2 데이터 블록보다 더 적은 소거 횟수를 갖고 데이터가 기입되지 않은 제3 데이터 블록을 더 포함할 수 있다.
상기 데이터 블록 및 상기 로그 블록의 데이터가 합병 연산되는 경우, 상기 제1 데이터 블록은 프리 블록(free block)이 되는 것을 포함할 수 있다.
상기 제3 데이터는 임의 데이터인 것을 포함할 수 있다.
상기 데이터 블록 및 상기 로그 블록의 데이터가 합병 연산되는 경우, 상기 제3 데이터는 삭제되는 것을 포함할 수 있다.
상기 기술적 과제를 해결하기 위해, 본 발명은 메모리 장치를 제공한다.
상기 메모리 장치는, 제1 데이터가 기입된 데이터 블록, 및 상기 제1 데이터와 다른 타입의 제2 데이터가 기입된 로그 블록을 포함하는 메모리, 및 데이터가 기입되지 않고 비어있는 상기 데이터 블록의 페이지들의 일부를 예약 페이지로 설정하여, 상기 데이터 블록과 상기 로그 블록에 기입된 데이터가 합병 연산되는 경우, 상기 로그 블록에 저장된 제2 데이터를 상기 데이터 블록의 상기 예약 페이지에 기록하는 제어부를 포함한다.
상기 제1 데이터는 연속 데이터(sequential data)이고, 상기 제2 데이터는 임의 데이터(random data)인 것을 포함할 수 있다.
상기 데이터 블록은, 제1 데이터가 기입된 제1 데이터 블록, 및 데이터가 기입되지 않은 제2 데이터 블록을 포함하고, 상기 제1 데이터 블록의 예약 페이지에 제3 데이터가 기록되어 있는 경우, 상기 제어부는, 상기 제1 데이터 및 상기 제2 데이터를 상기 제2 데이터 블록에 기입하여, 상기 데이터 블록과 상기 로그 블록의 데이터를 합병 연산하는 것을 포함할 수 있다.
상기 데이터 블록은, 상기 제2 데이터 블록보다 더 적은 소거 횟수를 갖고 데이터가 기입되지 않은 제3 데이터 블록을 더 포함할 수 있다.
상기 제3 데이터는 임의 데이터이고, 상기 데이터 블록 및 상기 로그 블록의 데이터가 합병 연산되는 경우, 상기 제3 데이터는 삭제되는 것을 포함할 수 있다.
본 발명의 실시 예에 따르면, 데이터가 기입되어 있지 않고 비어 있는 데이터 블록의 페이지들의 일부를 예약 페이지로 설정하고, 합병 연산되는 경우, 로그 블록에 기입된 임이 데이터가, 상기 예약 페이지에 기입될 수 있다. 이에 따라, 데이터 블록의 마모도가 평준화되어, 장수명 및 고신뢰성의 메모리 장치 및 그 동작 방법이 제공될 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 장치를 포함하는 메모리 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 장치를 포함하는 사용자 장치를 설명하기 위한 블록도이다.
도 3은 도 2를 참조하여 설명된 메모리 장치를 구동하기 위한 소프트웨어의 계층 구조를 설명하기 위한 도면이다.
도 4a 및 도 4b는 본 발명의 실시 예에 따른 메모리 장치 및 그 동작 방법을 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 메모리 장치 및 그 동작 방법의 변형 예를 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 메모리 장치의 성능을 테스트하기 위한 트레이스 분석도이다.
도 7a 및 도 7b는 본 발명의 실시 예의 비교 예에 따른 메모리 블록의 소거 횟수를 도시한 그래프이다.
도 7c는 본 발명의 실시 예에 따른 메모리 블록의 소거 횟수를 도시한 그래프이다.
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명할 것이다. 그러나 본 발명의 기술적 사상은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화 될 수도 있다. 오히려, 여기서 소개되는 실시 예는 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서의 다양한 실시 예 들에서 제1, 제2, 제3 등의 용어가 다양한 영역, 구성요소 등을 기술하기 위해서 사용되었지만, 이들 영역, 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 소정영역 또는 구성요소를 다른 영역 또는 구성요소과 구별시키기 위해서 사용되었을 뿐이다. 따라서, 어느 한 실시 예에 제 1 구성요소로 언급된 것이 다른 실시 예에서는 제 2 구성요소로 언급될 수도 있다. 여기에 설명되고 예시되는 각 실시 예는 그것의 상보적인 실시 예도 포함한다.
이하에서는, 본 발명의 특징 및 기능을 설명하기 위한 불휘발성 저장 매체로서 플래시 메모리 장치를 한 예로서 사용할 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 장치를 포함하는 메모리 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시 에에 따른 메모리 시스템은 중앙처리장치(10, CPU), 랜덤 액세스 메모리(20, random access memory), 및 플래시 메모리 장치(40)를 포함한다. 상기 플래시 메모리 장치(40)는 플래시 메모리 제어기(42) 및 플래시 메모리(44)를 포함할 수 있다.
상기 플래시 메모리 장치(40)는 읽기(read) 및 쓰기(program) 동작의 단위와 소거(erase) 동작의 단위가 다르다. 다시 말해, 상기 플래시 메모리 장치(40)는 페이지 단위로 읽기 및 쓰기 동작이 수행되고, 복수의 페이지로 구성된 블록 단위로 소거 동작이 수행된다. 또한, 상기 플래시 메모리 장치(40)는 덮어쓰기(overwrite)를 지원하지 않는다.
이로 인해, 상기 플래시 메모리 장치(40)의 읽기, 쓰기, 및 소거 동작에 대한 별도의 관리가 필요하며, 플래시 변환 계층(Flash Translation Layer, FTL)을 이용하여 이를 수행한다. 상기 플래시 변환 계층은 상기 플래시 메모리 장치(40) 내부에 설정되는 플래시 메모리 제어기(42)에 의해서 구성될 수 있다.
또는, 이와는 달리, 중앙 처리 장치(10)와 랜덤 엑세스 메모리(20)에 의해 상술된 FTL이 구성될 수도 있다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 장치를 포함하는 사용자 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 메모리 장치를 포함하는 사용자 장치는 호스트(60)와 플래시 메모리 장치(40)를 포함한다. 상기 플래시 메모리 장치(40)는 도 1을 참조하여 설명된 것과 같이, 플래시 메모리 제어기(42) 및 플래시 메모리(44)를 포함할 수 있다.
상기 호스트(60)는 쓰기 요청이 발생하면, 쓰기 데이터와 논리 어드레스(Logical Address: LA)를 상기 플래시 메모리 장치(40)로 전달할 수 있다. 개인용 컴퓨터나, 노트북과 같은 사용자 장치에서 논리 어드레스(LA)는 섹터(Sector) 단위로 제공될 수 있다. 즉, 쓰기 요청 시, 상기 호스트(60)는 데이터의 기입을 위한 시작 어드레스와 섹터의 수를 상기 플래시 메모리 장치(40)로 제공할 수 있다.
상기 플래시 메모리 제어기(42)는 상기 호스트(60)와 플래시 메모리 장치(44)를 인터페이싱할 수 있다. 상기 플래시 메모리 제어기(42)는 상기 호스트(60)의 쓰기 명령에 응답하여, 상기 호스트(60)로부터 제공되는 데이터를, 상기 플래시 메모리 장치(44)에 기입하기 위하여, 상기 플래시 메모리 장치(44)를 제어할 수 있다. 또한, 상기 플래시 메모리 제어기(42)는 상기 호스트(60)로부터의 읽기 명령에 응답하여 상기 플래시 메모리 장치(44)의 독출 동작을 제어한다.
상기 플래시 메모리 장치(44)는 상기 플래시 메모리 제어기(42)의 제어에 따라, 소거 동작, 읽기 동작 또는 쓰기 동작을 수행한다. 상기 플래시 메모리 장치(44)는 복수의 메모리 블록으로 구성된다. 각각의 메모리 블록은 복수의 페이지(page)로 구성된다. 복수의 플래시 메모리가 적어도 2개의 채널을 통해서 연결되는 경우, 퍼포먼스의 향상을 위해서 상기 플래시 메모리 장치(44)는 메모리 인터리빙(interleaving) 방식에 따라 제어될 수 있다.
하나의 채널에는 복수의 메모리 장치들이 연결되며, 이들 메모리 장치들은 각각 동일한 데이터 버스에 연결된다. 저장 매체로서 메모리 장치들이 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 그리고 저장 매체로서 휘발성 메모리 장치(예를 들면, DRAM)가 포함될 수도 있다.
특히, 최근 활발히 진행되는 반도체 디스크 장치(Solid State Disk: 이하, SSD)와 같은 메모리 시스템에서 본 발명의 기술적 특징이 채용될 수 있다. 이 경우, 플래시 메모리 제어기(42)는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
도 3은 도 2를 참조하여 설명된 메모리 장치를 구동하기 위한 소프트웨어의 계층 구조를 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 메모리 장치를 구동하기 위한 소프트웨어 계층은, 애플리케이션(110, application), 파일 시스템(120), 플래시 변환 계층(130), 및 플래시 메모리 장치(140)를 포함한다.
상기 애플리케이션(110)은 사용자 장치에서 구동되는 다양한 응용 프로그램들을 나타낸다. 예를 들어, 상기 애플리케이션(110)은 문선 편집기, 인터넷 탐색기, 음성 및 화상 재생기들을 포함할 수 있다.
상기 파일 시스템(120)은 상기 플래시 메모리 장치(140)의 저장 공간을 관리하고, 상기 플래시 메모리 장치(140)에 저장되는 데이터를 관리한다. 예를 들어, 상기 파일 시스템(120)은 FAT, FAT32, NTFS, HFS, JSF2, XFS, ODS-5, UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다.
상기 플래시 변환 계층(130)은, 상기 애플리케이션(110), 파일 시스템(120)으로부터 상기 플래시 메모리 장치(140)를 액세스하기 위해 전달되는 논리 어드레스를 상기 플래시 메모리 장치(140)의 물리 어드레스로 변환하기 위한 사상 정보를 포함한다. 상기 플래시 변환 계층(130)은 사상 정보를 이용하여 논리 어드레스를 상기 플래시 메모리 장치(140)의 물리 어드레스로 변환하는 맵핑 테이블을 구성할 수 있다. 더불어, 상기 플래시 변환 계층(130)은 상기 플래시 메모리 장치(140)의 가비지 컬렉션(Garbage Collection) 및 머지(Merge) 등과 같은 배경 동작(Background Operations)을 수행하도록 구성될 수 있다.
도 4a 및 도 4b는 본 발명의 실시 예에 따른 메모리 장치 및 그 동작 방법을 설명하기 위한 도면이다.
도 4a 및 도 4b를 참조하면, 본 발명의 실시 예에 따른 메모리 장치는 데이터 블록(data block) 및 로그 블록(log block)을 포함할 수 있다. 상기 데이터 블록은 제1 및 제2 데이터 블록(DBLK1, DBLK2)을 포함하고, 상기 로그 블록은 제1 및 제2 로그 블록(LBLK1, LBLK2)을 포함할 수 있다.
호스트로부터 기입(write) 요청과 메모리 장치에 저장될 데이터가 입력될 수 있다. 메모리 제어부는, 상기 입력된 데이터가 프로그램 순서에 따라 동일한 메모리 블록에 연속적으로 쓰여질 연속 데이터(sequential data)인지, 또는 이전의 쓰기 동작이 수행된 메모리 블록과 다른 메모리 블록에 쓰여질 임의 데이터(random data)인지 판단할 수 있다. 예를 들어, 입력된 데이터의 길이와 기준 길이를 비교하여 연속 데이터 및 임의 데이터 여부를 판단할 수 있다. 상기 기준 길이는 시스템의 특성 및 데이터의 전송 특성 등을 고려하여 가변적으로 변형될 수 있다.
메모리 제어부에 의해, 상기 제1 및 제2 데이터 블록들(DBLK1, DBLK2)에 제1 데이터들이 기입되고, 상기 제1 및 제2 로그 블록들(LBLK1, LBLK2)에 제2 데이터들이 기입될 수 있다. 상기 제1 데이터들은 연속 데이터이고, 상기 제2 데이터들은 임의 데이터일 수 있다.
메모리 제어부는, 상기 제1 및 제2 데이터 블록들(DBLK1, DBLK2)에서 상기 제1 데이터가 기입되지 않고 비어 있는 페이지들의 일부를 예약 페이지(214, 224, reserved page)로 설정할 수 있다. 이에 따라, 상기 제1 및 제2 데이터 블록들(DBLK1, DBLK2) 각각은, 연속 데이터인 상기 제1 데이터가 기입된 페이지들(212, 222)과 상기 예약 페이지(214, 224)를 포함할 수 있다.
일 실시 예에 따르면, 상기 제1 및 제2 데이터 블록들(DBLK1, DBLK2)은 각각 하나의 예약 페이지를 갖도록 제어될 수 있다. 이와는 달리, 다른 실시 예에 따르면, 상기 제1 및 제2 데이터 블록들(DBLK1, DBLK2)은 각각 복수의 예약 페이지를 갖도록 제어될 수 있다. 또 다른 실시 예에 따르면, 상기 제1 데이터 블록(DBLK1)은 상기 제2 데이터 블록(DBLK2)보다 많은 수의 예약 페이지를 갖도록 제어될 수 있다.
상기 로그 블록들(LBLK1, LBLK2)이 가득 차는 경우(가비지 콜렉션이 발생하는 경우), 상기 데이터 블록들(DBLK1, DBLK2)과 상기 로그 블록들(LBLK1, LBLK2)에 기입된 데이터들이 합병 연산(merge)될 수 있다. 이 경우, 상기 메모리 제어부는, 상기 로그 블록들(LBLK1, LBLK2)에 기입된 상기 제2 데이터(임의 데이터) 중에서 기준 횟수 이상으로 자주 갱신되는 데이터를 상기 데이터 블록들(DBLK1, DBLK2)의 상기 예약 페이지들(214, 224)에 기입할 수 있다. 구체적으로, 상기 제1 로그 블록(LBLK1)에 기입되었던 임의 데이터는 상기 제1 데이터 블록(DBLK1)의 상기 예약 페이지(214)에 기입될 수 있고, 상기 제2 로그 블록(LBLK2)에 기입되었던 임이 데이터는 상기 제2 데이터 블록(DBLK2)의 상기 예약 페이지(224)에 기입될 수 있다.
상술된 실시 예에서, 연속 데이터가 기입된 데이터 블록의 예약 페이지에 이미 임의 데이터가 기입되어 있는 경우, 소거 횟수가 적은 데이터 블록을 선택하여 프리 블록으로 이동하여 갱신된다. 이를 도 5a 및 도 5b를 참조하여 설명한다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 메모리 장치 및 그 동작 방법의 변형 예를 설명하기 위한 도면이다.
도 5a 및 도 5b를 참조하면, 본 발명의 실시 예에 따른 메모리 장치는 제1 내지 제4 데이터 블록들(DBLK1~DBLK4), 및 제1 및 제2 로그 블록들(LBLK1, LBLK2)을 포함할 수 있다. 상기 제1 내지 제4 데이터 블록들(DBLK1~DBLK4)의 소거 횟수는 각각 A, B, C, D이고, C는 B보다 큰 양의 정수이고, D는 A보다 큰 양의 정수일 수 있다.
상기 제1 및 제4 데이터 블록들(DBLK1, DBLK4)은 각각, 도 4a 및 도 4b를 참조하여 설명된 것과 같이, 메모리 제어부에 의해, 제1 데이터들(연속 데이터)이 기입된 페이지들(212, 242)를 포함할 수 있다. 또한, 도 4a 및 도 4b를 참조하여 설명된 것과 같이, 상기 제1 및 제4 데이터 블록들(DBLK1, DBLK4)의 예약 페이지들(214, 244)에는 제3 데이터들(임의 데이터)가 기입되어 있을 수 있다. 상기 제2 및 제3 데이터 블록들(DBLK2, DBLK3)은 프리 블록이고, 상기 제1 로그 블록(LBLK1)은 제2 데이터(임의 데이터)가 기입된 페이지를 포함할 수 있다.
상기 데이터 블록들(DBLK1~DBLK4)과 상기 로그 블록들(LBKL1, LBLK2)에 기입된 데이터가 합병 연산(merge)되는 경우, 상기 제1 데이터(연속 데이터)가 기입되어 있는 상기 제1 및 제4 데이터 블록들(DBLK1, DBLK4) 중에서, 소거 횟수가 적은 상기 제1 데이터 블록들(DBLK1)에 기입된 상기 제1 데이터 및 상기 제1 로그 블록(LBLK1)의 상기 제2 데이터(임의 데이터)가, 상기 제2 및 제3 데이터 블록들(DBLK2, DBLK3) 중에서 소거 횟수가 적은 상기 제2 데이터 블록(DBLK2)에 기입되고, 상기 제1 데이터 블록(DBKL1)은 프리 블록이 될 수 있다. 상기 제1 데이터 블록(DBHL1)의 상기 예약 페이지(214)에 기입된 상기 제3 데이터(임의 데이터)는 소거될 수 있다.
합병 연산에 의해, 상기 제1 데이터 블록(DBLK1) 및 상기 제4 데이터 블록(DBLK4) 중에서 소거 횟수가 적은 상기 제1 데이터 블록(DBLK1)의 소거 횟수가 증가하게 되고, 상기 제2 데이터 블록(DBLK2) 및 상기 제3 데이터 블록(DBLK3) 중에서 소거 횟수가 적은 상기 제2 데이터 블록(DBLK2)에 데이터가 기입될 수 있다.
본 발명의 실시 예에 따르면, 연속 데이터가 기입되어 갱신이 발생하지 않는 데이터 블록에 임의 데이터를 기입하고, 합병 연산 시 갱신이 발생하도록 하여 메모리 블록들의 마모도가 평준화될 수 있다. 또한, 연속 데이터가 기입된 데이터 블록의 일부 페이지를 예약 페이지로 설정하여, 상기 예약 페이지에 로그 블록의 임의 데이터가 기입될 수 있다. 이에 따라, 데이터 블록의 페이지 활용도가 증가될 수 있다. 또한, 추가적인 연산 없이, 데이터 블록들의 소거 횟수가 평준화되어, 장수명 및 고신뢰성을 갖는 메모리 장치 및 그 동작 방법이 제공될 수 있다.
도 6은 본 발명의 실시 예에 따른 메모리 장치의 성능을 테스트하기 위한 트레이스 분석도이고, 도 7a 및 도 7b는 본 발명의 실시 예의 비교 예에 따른 메모리 블록의 소거 횟수를 도시한 그래프이고, 도 7c는 본 발명의 실시 예에 따른 메모리 블록의 소거 횟수를 도시한 그래프이다.
도 6을 참조하면, 본 발명의 실시 예에 따른 메모리 장치의 성능을 테스트하기 위해 SNIA("Advancing Storage and Information Technology", http://snia.org/)에서 제공하는 마이크로소프트사 캠브리지 연구소의 트레이스 데이터 일부를 추출하였다. 도 6은 데이터들이 물리주소에 접근하는 양을 나타내고 있으며, 본 발명의 실시 예에 따른 메모리 장치의 성능을 테스트하기 위해 사용된 데이터는 연속 데이터(sequential data) 및 임의 데이터(random data)로 구성되어 있는 것을 확인할 수 있다.
도 7a 내지 도 7c 를 참조하면, 도 7a 및 도 7b는 각각 라운드 로빈(Round Robin) 방식 및 그리디(Greedy) 방식으로 물리 주소에 따른 블록의 소거 횟수를 측정한 것이고, 도 7c는 본 발명의 실시 예에 따른 메모리 장치의 동작 방법으로 물리 주소에 따른 블록의 소거 횟수를 측정한 것이다.
라운드 로빈 방식은 블록의 소거 횟수와 상관없이 갱신이 발생하기 때문에, 메모리 블록에 따라 소거 횟수의 편차가 큰 것을 확인 할 수 있다. 그리디 방식은 라운드 로빈 방식에 비해서 블록의 소거 횟수가 평준화되었으나, 특정 메모리 블록의 경우 다른 것들에 비해서 현저하게 높은 소거 횟수를 갖는 것을 확인할 수 있다. 반면, 본 발명의 실시 예에 따른 메모리 장치의 동작 방법은 거의 모든 메모리 블록들에 대해서 소거 횟수가 평준화된 것을 확인할 수 있다.
이상, 본 발명을 바람직한 실시 예를 사용하여 상세히 설명하였으나, 본 발명의 범위는 특정 실시 예에 한정되는 것은 아니며, 첨부된 특허청구범위에 의하여 해석되어야 할 것이다. 또한, 이 기술분야에서 통상의 지식을 습득한 자라면, 본 발명의 범위에서 벗어나지 않으면서도 많은 수정과 변형이 가능함을 이해하여야 할 것이다.
10: 중앙처리장치 20: 랜덤 액세스 메모리
40: 플래시 메모리 장치 42: 플래시 메모리 제어기
44: 플래시 메모리 60: 호스트
110: 애플리케이션, 120: 파일시스템
130: 플래시 변환 계층 140: 플래시 메모리 장치
DBLK1, DBLK2, DBLK3, DBLK4: 제1 내지 제4 데이터 블록
LBLK1, LBLK2: 제1 및 제2 로그 블록
212, 222: 연속 데이터가 기입된 페이지
214, 224: 예약 페이지

Claims (13)

  1. 데이터 블록 및 로그 블록을 포함하는 메모리 장치의 동작 방법에 있어서,
    제1 데이터 블록에 연속적으로 쓰여지는 연속 데이터인 제1 데이터를 기입하고, 상기 로그 블록에 임의 데이터인 제2 데이터를 기입하는 단계;
    상기 제1 데이터 블록에서 상기 제1 데이터가 기입되지 않고 비어있는 잔존 페이지들의 일부를 예약 페이지(reserved page)로 설정하는 단계; 및
    상기 제1 데이터 블록과 상기 로그 블록에 기입된 데이터가 합병 연산(merge)되는 경우, 상기 로그 블록에 기입된 상기 제2 데이터를 상기 제 1 데이터가 기입되지 않고 비어있는 상기 예약 페이지에 기입하고, 상기 제1 데이터 블록의 상기 예약 페이지에 임의 데이터인 제3 데이터가 기입되어 있는 경우, 상기 제1 데이터 및 상기 제2 데이터를 데이터가 기입되지 않고 비어있는 제2 데이터 블록에 기입하는 단계를 포함하는 메모리 장치의 동작 방법.
  2. 제 1 항에 있어서,
    상기 제2 데이터 블록은 데이터가 기입되지 않고 비어있는 제3 데이터 블록보다 소거 횟수가 적은 것을 특징으로 하는 메모리 장치의 동작 방법.
  3. 제1 항에 있어서,
    상기 제1 데이터 블록은 하나의 예약 페이지를 갖는 것을 포함하는 메모리 장치의 동작 방법.
  4. 삭제
  5. 삭제
  6. 제1 항에 있어서,
    상기 제1 데이터 블록 및 상기 로그 블록의 데이터가 합병 연산되는 경우, 상기 제1 데이터 블록은 프리 블록(free block)이 되는 것을 포함하는 메모리 장치의 동작 방법.
  7. 삭제
  8. 제6 항에 있어서,
    상기 제1 데이터 블록 및 상기 로그 블록의 데이터가 합병 연산되는 경우, 상기 제3 데이터는 삭제되는 것을 포함하는 메모리 장치의 동작 방법.
  9. 연속적으로 쓰여지는 연속 데이터인 제1 데이터가 기입된 제1 데이터 블록, 데이터가 기입되지 않은 제2 데이터 블록 및 임의 데이터인 제2 데이터가 기입된 로그 블록을 포함하는 메모리; 및
    상기 제1 데이터 블록에서 상기 제 1 데이터가 기입되지 않고 비어있는 잔존 페이지들의 일부를 예약 페이지로 설정하여, 상기 제1 데이터 블록과 상기 로그 블록에 기입된 데이터가 합병 연산되는 경우, 상기 로그 블록에 저장된 제2 데이터를 상기 제 1 데이터가 기입되지 않고 비어있는 상기 예약 페이지에 기록하고, 상기 제1 데이터 블록의 상기 예약 페이지에 임의 데이터인 제3 데이터가 기입되어 있는 경우, 상기 제1 데이터 및 상기 제2 데이터를 상기 제2 데이터 블록에 기입하는 제어부를 포함하는 메모리 장치.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 제2 데이터 블록은 데이터가 기입되지 않고 비어있는 제3 데이터 블록보다 소거 횟수가 적은 것을 특징으로 하는 메모리 장치.
  12. 삭제
  13. 제9 항에 있어서,
    상기 제1 데이터 블록 및 상기 로그 블록의 데이터가 합병 연산되는 경우, 상기 제3 데이터는 삭제되는 것을 포함하는 메모리 장치.
KR1020130146513A 2013-11-28 2013-11-28 메모리 장치 및 그 동작 방법 KR101655508B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130146513A KR101655508B1 (ko) 2013-11-28 2013-11-28 메모리 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130146513A KR101655508B1 (ko) 2013-11-28 2013-11-28 메모리 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20150062019A KR20150062019A (ko) 2015-06-05
KR101655508B1 true KR101655508B1 (ko) 2016-09-07

Family

ID=53499938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130146513A KR101655508B1 (ko) 2013-11-28 2013-11-28 메모리 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR101655508B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101257691B1 (ko) * 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
KR101403922B1 (ko) * 2011-08-25 2014-06-09 인하대학교 산학협력단 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Also Published As

Publication number Publication date
KR20150062019A (ko) 2015-06-05

Similar Documents

Publication Publication Date Title
KR102580123B1 (ko) Raid 스토리지 장치 및 그것의 관리 방법
KR101528714B1 (ko) 메모리 유닛 동작 방법 및 메모리 제어기
KR101467941B1 (ko) 비휘발성 저장부에 대한 가변 오버­프로비저닝
KR102580820B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR101759811B1 (ko) 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템
KR101447188B1 (ko) 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
US20140122783A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US20140281173A1 (en) Nonvolatile memory system, system including the same, and method of adaptively adjusting user storage region in the same
US10324661B2 (en) Storage device and operating method thereof
US20110264884A1 (en) Data storage device and method of operating the same
KR20190057887A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20140112303A (ko) 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
KR100854032B1 (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
US20100125697A1 (en) Computing device having storage, apparatus and method of managing storage, and file system recorded recording medium
KR20210144249A (ko) 저장 장치 및 이의 동작 방법
CN112306898A (zh) 存储设备、其操作方法及包括其的电子设备
CN115390747A (zh) 存储设备及其操作方法
KR20170033480A (ko) 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
KR101146082B1 (ko) 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112825025A (zh) 控制器及其操作方法
CN114327240A (zh) 计算机可读存储介质、闪存存储器的数据存储方法及装置

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
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190603

Year of fee payment: 4