KR101774496B1 - 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 - Google Patents

비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 Download PDF

Info

Publication number
KR101774496B1
KR101774496B1 KR1020100124839A KR20100124839A KR101774496B1 KR 101774496 B1 KR101774496 B1 KR 101774496B1 KR 1020100124839 A KR1020100124839 A KR 1020100124839A KR 20100124839 A KR20100124839 A KR 20100124839A KR 101774496 B1 KR101774496 B1 KR 101774496B1
Authority
KR
South Korea
Prior art keywords
memory
stripe
data
block
stored
Prior art date
Application number
KR1020100124839A
Other languages
English (en)
Other versions
KR20120063734A (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 KR1020100124839A priority Critical patent/KR101774496B1/ko
Priority to US13/289,701 priority patent/US8904090B2/en
Publication of KR20120063734A publication Critical patent/KR20120063734A/ko
Application granted granted Critical
Publication of KR101774496B1 publication Critical patent/KR101774496B1/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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 장치의 동작 방법이 개시되다. 상기 메모리 장치의 동작 방법은 제1블록에 저장된 복수의 유효 데이터 중 일부를 제2블록으로 카피하는 단계; 버퍼 메모리에 저장된 제1데이터를 상기 제2블록으로 카피하는 단계; 및 상기 제1블록에 저장된 상기 복수의 유효 데이터 중 나머지를 상기 제2블록으로 카피하는 단계를 포함한다.

Description

비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법{Non-volatile memory device, devices having the same, method of operating the same}
본 발명의 개념에 따른 실시 예는 플래시 메모리(flash memory)에 포함된 블록들의 가비지 컬렉션(garbage collection)에 관한 것으로, 특히 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 함으로써 플래시 메모리의 라이트 성능을 높을 수 있는 방법과 상기 방법을 수행할 수 있는 장치들에 관한 것이다.
비휘발성 메모리 장치에 있어서, 상기 메모리 장치에 저장된 데이터는 상기 메모리 장치의 저장 능력을 개선(reclaim)하기 위해 주기적으로 가비지가 수집(collect)된다.
일반적으로 상기 메모리 장치는 가비지 컬렉션 동작이 끝난 후에 새로운 데이터를 라이트할 수 있다. 따라서 상기 가비지 컬렉션 동작에 의해 라이트 지연이 발생한다.
본 발명이 이루고자 하는 기술적인 과제는 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 함으로써 플래시 메모리의 라이트 성능을 높을 수 있는 방법과 상기 방법을 수행할 수 있는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 메모리 장치의 동작 방법은 제1블록에 저장된 복수의 유효 데이터 중 일부를 제2블록으로 카피하는 단계, 버퍼 메모리에 저장된 제1데이터를 상기 제2블록으로 카피하는 단계, 및 상기 제1블록에 저장된 상기 복수의 유효 데이터 중 나머지를 상기 제2블록으로 카피하는 단계를 포함한다.
실시 예에 따라, 상기 메모리 장치의 동작 방법은 상기 버퍼 메모리에 저장된 제2데이터를 상기 제2블록으로 카피하는 단계를 더 포함한다.
상기 버퍼 메모리에서 상기 제2블록으로 카피되는 데이터의 수는 무효 데이터가 저장된 상기 제1블록의 페이지들의 수보다 작다.
실시 예에 따라, 상기 메모리 장치의 동작 방법은 상기 복수의 유효 데이터의 논리적 주소와 상기 제1데이터의 논리적 주소 각각을 상기 제2블록의 물리적 주소와 맵핑하기 위한 맵핑 테이블을 갱신하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 전자 장치의 동작 방법은 제1스트라이프에 저장된 복수의 데이터에서 유효 데이터를 선택하는 단계와 상기 선택된 유효 데이터를 상기 제1스트라이프에서 제2스트라이프로 카피하는 단계를 포함한다.
상기 제1스트라이프는 복수의 메모리칩들 각각의 메모리 셀 어레이에 구현된 N(N은 자연수)번째 페이지의 집합이고, 상기 제2스트라이프는 상기 복수의 메모리칩들 각각의 메모리 셀 어레이에 구현된 M(M은 자연수)번째 페이지의 집합이다.
상기 유효 데이터가 상기 제1스트라이프의 상기 복수의 메모리칩들 중에서 제L(L은 자연수)번째 메모리칩의 메모리 셀 어레이에 구현된 상기 N(N은 자연수)번째 페이지에 저장될 때, 상기 선택된 유효 데이터는 상기 제2스트라이프의 상기 복수의 메모리칩들 중에서 상기 제L번째 메모리칩의 메모리 셀 어레이에 구현된 상기 M(M은 자연수)번째 페이지로 카피된다.
실시 예에 따라 상기 전자 장치의 동작 방법은 버퍼 메모리에 저장된 제1데이터를 상기 제2스트라이프로 카피하는 단계를 더 포함한다.
실시 예에 따라 상기 전자 장치의 동작 방법은 상기 버퍼 메모리로부터 카피된 상기 제1데이터와 상기 제2스트라이프로 카피된 유효 데이터를 이용하여 패러티를 생성하는 단계와 상기 패러티를 상기 제2스트라이프에 저장하는 단계를 더 포함한다.
상기 버퍼 메모리에 저장된 상기 제1데이터를 상기 제2스트라이프로 카피하는 단계는 상기 유효 데이터가 저장되지 않은 상기 제1스트라이프의 페이지들 각각에서 상기 페이지들 각각과 대응되는 P(P는 자연수)번째 스트라이프의 페이지들 각각까지 무효 데이터를 포함하는 페이지의 수를 카운팅하는 단계와, 상기 제1데이터를 가장 높은 카운팅 값을 가지는 페이지와 대응되는 상기 제2스트라이프의 페이지로 카피하는 단계를 포함한다.
실시 예에 따라, 상기 전자 장치의 동작 방법은 상기 유효 데이터의 논리적 주소를 상기 제2스트라이프의 물리적 주소와 맵핑하기 위한 맵핑 테이블을 갱신하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 메모리 장치는 다수의 블록들을 포함하는 플래시 메모리와 상기 다수의 블록들 중 제1블록에 저장된 복수의 유효 데이터 중 일부를 상기 다수의 블록들 중 제2블록으로 카피하고, 버퍼 메모리에 저장된 제1데이터를 상기 제2블록으로 카피하고, 상기 제1블록에 저장된 복수의 유효 데이터 중 나머지를 상기 제2블록으로 카피하도록 제어하는 메모리 컨트롤러를 포함한다.
상기 메모리 컨트롤러는 상기 버퍼 메모리에 저장된 제2데이터를 상기 제2블록으로 카피하도록 상기 플래시 메모리를 제어한다.
상기 메모리 컨트롤러는 상기 복수의 유효 데이터의 논리적 주소와 상기 제1데이터의 논리적 주소 각각을 상기 제2블록의 물리적 주소와 맵핑하기 위한 맵핑 테이블을 갱신하도록 제어한다.
본 발명의 실시 예에 따른 전자 장치는 각각이 복수의 스트라이프들 각각의 일부를 형성하는 복수의 플래시 메모리칩들과, 상기 복수의 스트라이프들 중 제1스트라이프에 저장된 복수의 데이터에서 유효 데이터를 선택하고 선택된 유효 데이터를 상기 제1스트라이프에서 제2스트라이프로 카피하도록 상기 복수의 플래시 메모리칩들을 제어하는 메모리 컨트롤러를 포함한다.
상기 제1스트라이프는 복수의 메모리칩들 각각의 메모리 셀 어레이에 구현된 N(N은 자연수)번째 페이지의 집합이고, 상기 제2스트라이프는 상기 복수의 메모리칩들 각각의 메모리 셀 어레이에 구현된 M(M은 자연수)번째 페이지의 집합이다.
상기 메모리 컨트롤러는 상기 유효 데이터가 상기 제1스트라이프의 상기 복수의 메모리칩들 중에서 제L(L은 자연수)번째 메모리칩의 메모리 셀 어레이에 구현된 상기 N(N은 자연수)번째 페이지에 저장될 때, 상기 선택된 유효 데이터를 상기 제2스트라이프의 상기 복수의 메모리칩들 중에서 상기 제L번째 메모리칩의 메모리 셀 어레이에 구현된 상기 M(M은 자연수)번째 페이지로 카피하도록 상기 복수의 플래시 메모리칩들을 제어한다.
상기 메모리 컨트롤러는 버퍼 메모리에 저장된 제1데이터를 상기 제2스트라이프로 카피하도록 상기 복수의 플래시 메모리칩들을 제어한다.
상기 메모리 컨트롤러는 상기 버퍼 메모리로부터 카피된 제1데이터와 상기 제2스트라이프로 카피된 유효 데이터를 이용하여 패러티를 생성하고, 상기 패러티를 상기 제2스트라이프에 저장하도록 제어한다.
상기 메모리 컨트롤러는 상기 유효 데이터의 논리적 주소를 상기 제2스트라이프의 물리적 주소와 맵핑하기 위한 맵핑 테이블을 갱신하도록 제어한다.
본 발명의 실시 예에 따른 메모리 장치는 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 함으로써 플래시 메모리의 라이트 성능을 높을 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 메모리 장치의 대략적인 구성을 나타낸 블록도이다.
도 2는 도 1에 도시된 플래시 메모리의 대략적인 구성을 나타낸 블록도이다.
도 3은 도 2의 메모리 셀 어레이가 3차원 메모리 셀 어레이로 구현될 때의 메모리 어레이, 로우 디코더 및 페이지 버퍼의 블록도를 나타낸다.
도 4a는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 전의 블록들과 맵핑 테이블을 나타낸다.
도 4b는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중의 블록들과
맵핑 테이블을 나타낸다.
도 4c는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 후의 블록들과 맵핑 테이블을 나타낸다.
도 5는 도 1에 도시된 메모리 컨트롤러의 동작방법을 나타낸 순서도이다.
도 6은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 7은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 8은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 9는 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 10은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 11은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 12는 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 13은 도 12에 도시된 복수의 플래시 메모리칩들에 구현된 메모리 셀의 어레이의 대략적인 구성과 맵핑 테이블을 나타내는 블락도이다.
도 14는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중 복수의 스트라이프 블록들과 버퍼메모리를 나타내는 블락도이다.
도 15는 본 발명의 다른 실시 예에 따른 가비지 컬렉션 동작 후 복수의 스트라이프 블록들과 버퍼메모리를 나타내는 블락도이다.
도 16은 도 12에 도시된 메모리 컨트롤러의 동작방법을 나타낸 순서도이다.
도 17은 도 12에 도시된 전자 장치를 포함하는 데이터 처리 장치의 실시 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 장치의 대략적인 구성을 나타낸 블록도이다.
도 1을 참조하면, 메모리 장치(10)는 입출력 인터페이스(I/O Interface; 20), CPU(30), 메모리(Memory; 40), 메모리 컨트롤러(Memory Controller; 50) 및 플래시 메모리(Flash Memory; 60)을 포함할 수 있다.
입출력 인터페이스(20)는 호스트(HOST)와 메모리 장치(10) 사이에서 데이터 교환을 인터페이스한다. 입출력 인터페이스(20)는 호스트(HOST)로부터 프로그램 명령 또는 상기 프로그램 명령에 대응하는 데이터를 수신한다. 또한, 입출력 인터페이스 (20)는 호스트(HOST)로부터 출력된 프로그램 명령 또는 데이터를 데이터 버스(12)를 통하여 CPU(30)로 전달한다.
CPU(30)는 메모리 장치(10)의 전반적인 동작을 제어한다. CPU(30)는 호스트(HOST)와 I/O 인터페이스(20) 사이에서 데이터의 교환을 제어할 수 있다. 또한 CPU(30)는 호스트(HOST)로부터 출력된 명령에 따른 동작을 수행하도록 메모리 장치(10)를 제어한다. CPU(30)는 데이터 버스(12)를 통하여 호스트(HOST)로부터 프로그램 명령 또는 상기 프로그램 명령에 대응하는 데이터를 수신한다. CPU(30)는 상기 프로그램 명령에 대응하는 데이터를 메모리(40) 또는 플래시 메모리(60)에 프로그램하기 위하여 메모리 장치(10)를 제어할 수 있다.
실시 예에 따라 CPU(30)는 플래시 메모리(60)에 데이터를 프로그램하기 위하여 메모리 컨트롤러(50)로 상기 데이터를 프로그램하기 위한 프로그램 명령 또는 제어 신호를 전송한다. 따라서 플래시 메모리(60)는 메모리 컨트롤러(50)에 제어 하에 상기 프로그램 명령에 대응하는 데이터를 메모리 셀 어레이에 프로그램할 수 있다. 여기서, 상기 프로그램 명령은 라이트 명령을 의미한다.
메모리(40)는 메모리 장치(10)의 동작을 제어하기 위한 각종 데이터를 저장한다. 메모리(40)는 CPU(30)의 동작을 제어할 수 있는 프로그램 코드를 저장할 수 있는 비휘발성 메모리, 예컨대 ROM으로 구현될 수도 있다.
CPU(30)는 호스트(HOST)로부터 출력된 프로그램 명령 또는 상기 프로그램 명령에 대응하는 데이터를 버퍼 메모리(45)에 저장하도록 제어한다. 즉, 버퍼 메모리(45)는 라이트 버퍼로서 동작한다.
버퍼 메모리(45)는 호스트(HOST)와 CPU(30)의 사이에 주고 받는 데이터를 저장할 수 있는 휘발성 메모리, 예컨대 DRAM으로 구현될 수도 있다. 실시 예에 따라, 버퍼 메모리(45)는 메모리 컨트롤러(50) 내부에 구현될 수 있다.
메모리 컨트롤러(50)는 플래시 메모리(60)의 동작을 제어한다.
메모리 컨트롤러(50)는 플래시 메모리(60)에 포함된 메모리 셀 어레이에 구현된 다수의 블록들에 대하여 가비지 컬렉션(garbage collection)을 수행할 수 있다. 즉, 메모리 컨트롤러(50)는 상기 다수의 블록들 중 제1블록에 저장된 복수의 유효 데이터 중 일부를 상기 다수의 블록들 중 제2블록으로 카피하고, 버퍼 메모리(45)에 저장된 제1데이터를 상기 제2블록으로 카피하고, 상기 제1블록에 저장된 복수의 유효 데이터 중 나머지를 상기 제2블록으로 카피하도록 제어한다.
플래시 메모리(60)는 다수의 블록들을 포함하며, 메모리 컨트롤러(50)의 제어 하에 각종 데이터를 저장한다.
도 2는 도 1에 나타난 플래시 메모리의 대략적인 구성을 나타낸 블록도이다.
플래시 메모리(60)는 메모리 셀 어레이(Memory Cell Array; 62), 고전압 발생기(High Voltage Generator; 64), 로우 디코더(Row Decoder; 66), 컨트롤 로직 (Control Logic; 68), 칼럼 디코더(Column Decoder; 70), 페이지 레지스터 및 감지 증폭기 블록(Page Register & /A; 72), Y-게이팅 회로(Y-Gating Circuit; 74) 및 입출력 버퍼 및 래치 블록(Input/Output Buffer and Latches; 76)을 포함한다.
메모리 셀 어레이(62)는 다수개의 셀 스트링들(62-1, 62-2, ..., 62-m; m은 자연수)을 포함한다. 다수개의 셀 스트링들(62-1, 62-2, ..., 62-m) 각각은 다수개의 메모리 셀들을 포함한다.
각 셀 스트링(62-1, 62-2, ..., 62-m)은 도 2에 도시된 바와 같이 2차원적으로 동일한 평면에 배치(또는 구현)될 수 있고, 또한 도 3에 도시된 바와 같이 3차원적으로 서로 다른 평면 또는 레이어(layer)에 배치(또는 구현)될 수 있다.
도 3에 도시된 바와 같이, 제1셀 스트링(62'-1)은 제1레이어(61-1)에 배치될 수 있고, 제2셀 스트링(62'-2)은 제1레이어(61-1)와 서로 다른 제2레이어 (61-2)에 배치될 수 있고, 제k셀 스트링(62'-k)은 제2레이어(61-2)와 서로 다른 레이어(61-k)에 3차원적으로 배치될 수 있다.
도 2에 도시된 셀 스트링(62-1)은 비트 라인(BL1)에 접속된 제1선택 트랜지스터(ST1)와 접지에 접속된 제2선택 트랜지스터(ST2) 사이에 직렬로 접속된 다수개의 메모리 셀들을 포함하고, 셀 스트링(62-2)은 비트 라인(BL2)에 접속된 제3선택 트랜지스터(ST3)와 접지에 접속된 제4선택 트랜지스터(ST4) 사이에 직렬로 접속된 다수개의 메모리 셀들을 포함하고, 셀 스트링 (62-m)은 비트 라인(BLm)에 접속된 제5선택 트랜지스터(ST5)와 접지에 접속된 제6선택 트랜지스터(ST6) 사이에 직렬로 접속된 다수개의 메모리 셀들을 포함한다.
각 셀 스트링(62-1, 62-2, ..., 62-m)에 포함된 다수개의 메모리 셀들 각각은 1-비트 또는 그 이상의 비트들을 저장할 수 있는 EEPROM(Electrically Erasable Programmable Read-Only Memory)으로 구현될 수 있다. 실시 예에 따라 상기 다수개의 메모리 셀들 각각은 1-비트 또는 그 이상의 비트들을 저장할 있는 NAND 플래시 메모리, 예컨대 SLC(single level cell) 또는 MLC(multi-level cell)로 구현될 수 있다. 따라서 각 셀 스트링(62-1, 62-2, ..., 62-m)은 NAND 스트링이라고 불릴 수 있다.
컨트롤 로직(68)의 제어에 따라, 고전압 발생기(64)는 프로그램 동작을 수행하기 위하여 필요한 프로그램 전압을 포함하는 다수개의 전압들, 읽기 동작을 수행하기 위하여 필요한 읽기 전압을 포함하는 다수개의 전압들, 검증 동작을 수행하기 위하여 필요한 검증 전압을 포함하는 다수개의 전압들, 또는 소거 동작을 수행하기 위하여 필요한 소거 전압을 포함하는 다수개의 전압들을 발생하고, 각 동작을 수행하기 위하여 필요한 전압들을 로우 디코더(66)로 출력한다.
컨트롤 로직(68)은 외부로부터 입력되는 명령, 예컨대 프로그램 명령, 읽기 명령, 또는 소거 명령 등에 따라 고전압 발생기(64), 컬럼 디코더(70), 및 페이지 버퍼 및 감지 증폭기 블록(72)의 동작을 제어할 수 있다.
페이지 레지스터 및 감지 증폭기 블록(72)는 다수개의 페이지 버퍼들(72-1, 72-2, ..., 72-m)을 포함한다. 다수개의 페이지 버퍼들(72-1~72-m) 각각은 컨트롤 로직(68)의 제어 하에 프로그램 동작 시에는 메모리 셀 어레이(62)로 데이터를 프로그램하기 위한 드라이버로써 동작한다.
다수개의 페이지 버퍼들(72-1~72-m) 각각은 컨트롤 로직(68)의 제어 하에 읽기 동작 또는 검증 동작 시에는 메모리 셀 어레이(62)의 다수개의 메모리 셀들 중에서 선택된 메모리 셀의 문턱 전압을 판별할 수 있는 감지 증폭기로써 동작할 수 있다.
컬럼 디코더(70)는 컨트롤 로직(68)의 제어 하에 칼럼 어드레스들을 디코딩하여 디코딩 신호들을 Y-게이팅 회로(74)로 출력한다.
Y-게이팅 회로(74)는 칼럼 디코더(70)로부터 출력된 디코딩 신호들에 응답하여 페이지 레지스터 및 감지 증폭기 블록(72)과 입출력 버퍼 및 래치 블록(76) 사이의 데이터의 전송을 제어할 수 있다.
입출력 버퍼 및 래치 블록(76)은 데이터를 Y-게이팅 회로(74)로 전송하거나 데이터 버스를 통하여 외부로 전송할 수 있다.
도 3은 도 2의 메모리 셀 어레이가 3차원 메모리 셀 어레이로 구현될 때의 메모리 셀 어레이, 로우 디코더 및 페이지 버퍼의 블록도를 나타낸다. 도 3에 도시된 바와 같이, 메모리 셀 어레이(62')에 구현된 다수개의 레이어들(61-1, 61-2, ..., 61-k; k는 자연수) 각각은 다수개의 셀 스트링들을 포함한다. 다수개의 레이어들(L1~Ln)은 웨이퍼 형태의 적층, 칩 형태의 적층 또는 셀 적층으로 구현될 수 있다. 각 레이어 사이의 전기적 연결은 TSV(through silicon via), 와이어 본딩(wire bonding) 또는 범프(bump)를 이용할 수 있다.
제1레이어(61-1)에 구현되는 제1셀 스트링(62'-1)은 다수개의 선택 트랜지스터들(ST11과 ST21) 사이에 직렬로 접속된 다수개의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
제2레이어(61-2)에 구현되는 제2셀 스트링(62'-2)은 다수개의 선택 트랜지스터들(ST12과 ST22) 사이에 직렬로 접속된 다수개의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
제k레이어(61-k)에 구현되는 제k셀 스트링(62'-k)은 다수개의 선택 트랜지스터들(ST1k과 ST2k) 사이에 직렬로 접속된 다수개의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
도 3에 도시된 로우 디코더(66')는 각 레이어(61-1, 61-2, ..., 61-k)에 구현된 각 제1선택 트랜지스터(ST11, ST12, ..., ST1k)의 각 게이트에 접속된 각 스트링 선택 라인(SSL1, SSL2, ..., SSLk)으로 선택 신호를 공급할 수 있다. 따라서, 각 제1선택 트랜지스터(ST11, ST12, ..., ST1k)는 선택적으로 턴-온 또는 턴-오프 될 수 있다.
또한, 로우 디코더(66')는 각 레이어(61-1, 61-2, ..., 61-k)에 구현된 각 제2선택 트랜지스터(ST21, ST22, ..., ST2k)의 각 게이트에 접속된 각 접지 선택 라인(GSL1, GSL2, ..., GSLk)으로 선택 신호를 공급할 수 있다. 따라서 각 제2선택 트랜지스터(ST21, ST22, ..., ST2k)는 선택적으로 턴-온 또는 턴-오프될 수 있다. 즉, 각 레이어(21-1, 21-2, ..., 21-k)에 구현된 각 셀 스트링(62'-1, 62'-2, ..., 62'-m)은 로우 디코더(66')에 의하여 선택될 수 있다.
도 3에 도시된 바와 같이, 각 셀 스트링(62'-1, 62'-2, ..., 62'-k)은 다수개의 워드 라인들(WL1~WLn), 공통 소스 라인(CSL) 및 각 비트 라인(BL1~BLm)을 공유할 수 있다. 즉, 각 레이어(61-1~61-k)에서 대응되는 위치에 구현된 각 셀 스트링은 페이지 레지스터 및 감지 증폭기 블록(72)에 구현된 각 페이지 버퍼(72-1, 72-2, ..., 72-m)에 접속될 수 있다.
이하에서는 3차원 메모리 셀 어레이(62')에 구현된 다수개의 레이어들(61-1~61-k) 중에서 로우 디코더(66')에 의하여 어느 하나의 레이어, 예컨대 제1레이어 (61-1)에 구현된 셀 스트링(62'-1)이 선택된 경우를 가정하여 플래시 메모리(60)의 동작을 설명하기로 한다.
따라서 본 명세서에서 사용되는 메모리 셀 어레이(62)는 도 2에 도시된 2차원 메모리 셀 어레이(62)와 도 3에 도시된 3차원 메모리 셀 어레이(62')를 총괄적으로 나타내고, 로우 디코더(66)는 도 2에 도시된 로우 디코더(66)와 도 3에 도시된 로우 디코더(66')를 총괄적으로 나타낸다.
도 4a는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 전의 블록들과 맵핑 테이블을 나타낸다.
도 1, 도 2, 및 도 4a를 참조하면, 메모리 셀 어레이(62)는 복수의 블록들(예컨대, B1, 및 B2)을 포함한다. 복수의 블록들(B1, 및 B2) 각각은 16개의 페이지들(P0~P15)을 포함한다. 실시 예에 따라, 복수의 블록들 각각은 8개, 32개, 또는 그 이상의 페이지들을 포함할 수 있다.
도 4a에서 제1블록(B1)의 복수의 페이지들(P0~P15) 각각은 데이터를 저장함을 나타낸다. 상기 데이터는 유효 데이터 또는 무효 데이터이다. 상기 유효 데이터와 상기 무효 데이터 각각은 도 4a의 복수의 맵핑 테이블들(63-1과 63-2) 각각에서 'O'과 'X'로 나타낸다.
도 4a에서 제2블록(B2)의 복수의 페이지들(P0~P15) 각각은 데이터를 저장하고 있지 않음을 나타낸다.
호스트(HOST)는 제1데이터(XX)와 제2데이터(YY)를 생성하고, 제1데이터(XX)와 제2데이터(YY) 각각에 제1논리적 주소(xx)와 제2논리적 주소(yy) 각각을 할당한다.
버퍼 메모리(45)는 호스트(HOST)의 라이트 명령에 대응하는 제1데이터(XX)와 제2데이터(YY)를 임시적으로 저장한다.
메모리 장치(10)는 제1데이터(XX), 또는 제2데이터(YY)를 호스트(HOST)에 의해 할당된 제1논리 주소(xx) 또는, 제2논리 주소(yy)에 의해 참조(reference)하지 않고, 물리적 주소에 의해 참조한다.
메모리 장치(10)는 호스트(HOST)에 의해 제공된 논리적 주소를 메모리 셀 어레이(62) 내의 물리적 주소로 변환한다.
상기 변환은 소프트웨어로 구현될 수 있으며, 상기 소프트웨어를 플래시 변환 레이어(flash translation layer; FTL)이라고 한다. 상기 소프트웨어는 버퍼 메모리(45)에 저장될 수 있다.
복수의 맵핑 테이블들(63-1과 63-2) 각각은 물리적 주소 대 논리적 주소 변환 테이블을 나타낸다. 도 4a의 복수의 맵핑 테이블들(63-1과 63-2) 각각의 'n/a'는 제1블록(B1)과 제2블록(B2) 각각의 물리적 주소와 논리적 주소가 맵핑되지 않음을 의미한다.
예컨대, 제1맵핑 테이블(63-1)은 논리적 주소(LA) '25'는 제1블록(B1)의 제1페이지(P1)의 물리적 주소와 맵핑되고, 논리적 주소(LA) '1'은 제1블록(B1)의 제3페이지의 물리적 주소와 맵핑됨을 보여준다.
복수의 맵핑 테이블들(63-1과 63-2)은 버퍼 메모리(45)에 저장될 수 있다.
도 4b는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중의 블록들과
맵핑 테이블을 나타낸다.
도 1, 도 2, 및 도 4b를 참조하면, 가비지 콜렉션 동작이 수행될 때, 메모리 컨트롤러(50)는 제1블록(B1)에 저장된 복수의 유효 데이터 중 일부를 제2블록(B2)으로 카피하도록 제어한다.
예컨대, 제1블록(B1)의 복수의 페이지들(P1, P3, P5, 및 P6) 각각에 저장된 유효 데이터는 제2블록(B2)의 복수의 페이지들(P0, P1, P2, 및 P3) 각각으로 카피된다.
또한, 메모리 컨트롤러(50)는 버퍼 메모리(45)에 저장된 제1데이터(XX)를 제2블록(B2)의 제4페이지(P4)으로 카피하도록 제어한다.
메모리 컨트롤러(50)는 제1맵핑 테이블(63-1)과 제2맵핑 테이블(63-2) 각각을 제1블록(B1)에서 제2블록(B2)으로의 카피 동작에 따라 갱신하도록 제어한다.
예컨대, 제1블록(B1)의 복수의 페이지들(P1, P3, P5, 및 P6) 각각에 저장된 유효 데이터가 제2블록(B2)의 복수의 페이지들(P0, P1, P2, 및 P3) 각각으로 카피됨에 따라, 제1블록(B1)의 물리적 주소와 맵핑되었된 논리적 주소 25, 1, 36, 또는 19와 버퍼 메모리(45)에 저장된 논리적 주소 xx는 제2블록(B2)의 물리적 주소와 맵핑된다. 도 4b에 도시된 제2맵핑 테이블(3-2)은 논리적 주소 25, 1, 36, 19, 및 xx 가 제2블록(B2)의 물리적 주소와 맵핑되었음을 보여준다.
제1블록(B1)에서 유효 데이터가 남아 있기 때문에, 상기 가비지 컬렉션 동작은 완료될 수 없다.
도 4c는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 후의 블록들과 맵핑 테이블을 나타낸다.
도 1, 도 2, 및 도 4c를 참조하면, 제1블록(B1)에 저장된 복수의 유효 데이터 중 일부와 버퍼 메모리(45)에 저장된 제1데이터(XX)가 제2블록(B2)으로 카피된 후, 메모리 컨트롤러(50)는 제1블록(B1)에 저장된 복수의 유효 데이터 중 나머지를 제2블록(B2)으로 카피하도록 제어한다.
예컨대, 제1블록(B1)의 복수의 페이지들(P8, P11, P13, 및 P15) 각각에 저장된 유효 데이터는 제2블록(B2)의 복수의 페이지들(P5, P6, P7, 및 P8) 각각으로 카피된다. 따라서, 상기 가비지 컬렉션 동작은 완료된다.
또한, 메모리 컨트롤러(50)는 버퍼 메모리(45)에 저장된 제2데이터(YY)를 제2블록(B2)의 제9페이지(P9)으로 카피하도록 제어한다.
유사하게, 메모리 컨트롤러(50)는 제1맵핑 테이블(63-1)과 제2맵핑 테이블(63-2) 각각을 제1블록(B1)에서 제2블록(B2)으로의 카피 동작에 따라 갱신하도록 제어한다.
예컨대, 제1블록(B1)의 복수의 페이지들(P8, P11, P13, 및 P15) 각각에 저장된 유효 데이터가 제2블록(B2)의 복수의 페이지들(P5, P6, P7, 및 P8) 각각으로 카피됨에 따라, 제1블록(B1)의 물리적 주소와 맵핑되었된 논리적 주소 21, 10, 23, 및 32와 버퍼 메모리(45)에 저장된 논리적 주소 yy는 제2블록(B2)의 물리적 주소와 맵핑된다. 도 4c에 도시된 제2맵핑 테이블(3-2)은 논리적 주소 21, 10, 23, 10, 및 yy가 제2블록(B2)의 물리적 주소와 맵핑되었음을 보여준다.
상기 가비지 컬렉션 동작 중 메모리 장치(10)는 호스트(HOST)로부터 새로운 데이터인 제3데이터(ZZ)와, 제3데이터(ZZ)와 대응하는 논리적 주소(zz)를 수신받아 버퍼 메모리(45)에 저장하도록 할 수 있다. 도 4b에서 버퍼 메모리(45)에서 저장된 제1데이터(XX)가 제2블록(B2)으로 카피되어, 버퍼 메모리(45)에 여유 공간이 생성되었기 때문이다. 따라서 상기 가비지 컬렉션 동작에 의해 라이트 지연이 발생하지 않아 플래시 메모리(60)의 라이트 성능이 향상된다.
또한, 상기 가비지 컬렉션 동작이 완료될 때, 제1블록(B1)이 삭제된다. 따라서 라이트 가능한 페이지들의 갯수는 증가한다.
버퍼 메모리(45)에 저장되는 데이터(예컨대, 제1데이터(XX), 제2데이터(YY), 또는 제3데이터(YY))의 수는 무효 데이터가 저장된 제1블록(B1)의 페이지들(P0, P2, P4, P7, P9, P10, P12, 및 P14)의 수보다 작다. 만약, 버퍼 메모리(45)에 저장되는 데이터의 수가 무효 데이터가 저장된 제1블록(B1)의 페이지들(P0, P2, P4, P7, P9, P10, P12, 및 P14)의 수보다 크다면, 제1블록(B1)의 페이지에 저장된 유효 데이터가 제2블록(B2)으로 모두 카피될 수 없어서, 상기 가비지 컬렉션이 완료될 수 없다. 따라서, 플래시 메모리(60)의 저장 능력이 개선(reclaim)될 수 없다.
도 5는 도 1에 도시된 메모리 컨트롤러의 동작방법을 나타낸 순서도이다.
도 1, 도 4a, 도 4b, 도 4c, 및 도 5를 참조하면, 메모리 컨트롤러(50)는 제1블록(B1)에 저장된 복수의 유효 데이터 중 일부를 제2블록(B2)으로 카피하도록 제어한다(S10).
메모리 컨트롤러(50)는 버퍼 메모리(45)에 저장된 제1데이터(XX)를 제2블록(B2)으로 카피하도록 제어한다(S20).
메모리 컨트롤러(50)는 제1블록(B1)에 저장된 상기 복수의 유효 데이터 중 나머지를 제2블록(B2)으로 카피하도록 제어한다(S30).
도 6은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 6을 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 무선 인터넷 장치로서 구현될 수 있는 전자 장치(190)는 플래시 메모리(60)와 플래시 메모리(60)의 동작을 제어할 수 있는 메모리 컨트롤러(50)를 포함할 수 있다. 또한, 메모리 컨트롤러(50)는 전자 장치(190)의 전반적인 동작을 제어하는 프로세서(191)에 의하여 제어된다. 메모리 컨트롤러(50)는 프로세서(191)의 제어하에 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 한다.
플래시 메모리(60)에 저장된 데이터는 프로세서(191)의 제어 하에 디스플레이(Display; 193)를 통하여 디스플레이될 수 있다.
무선 송수신기(Radio Transceiver; 195)는 안테나(ANT)를 통하여 무선 신호들을 주거나 받을 수 있다.
예컨대, 무선 송수신기(195)는 안테나(ANT)를 통하여 수신된 무선 신호들을 프로세서(191)가 처리할 수 있는 신호들로 변환할 수 있다. 따라서 프로세서 (191)는 무선 송수신기(195)로부터 출력된 신호들을 처리하고, 처리된 신호들을 플래시 메모리(60)에 저장하거나 또는 디스플레이(193)를 통하여 디스플레이할 수 있다.
또한 무선 송수신기(195)는 프로세서(191)로부터 출력된 신호들을 무선 신호들로 변환하고, 변환된 무선 신호들을 안테나(ANT)를 통하여 외부로 출력할 수 있다.
입력 장치(197)는 프로세서(191)의 동작을 제어하기 위한 제어 신호들 또는 프로세서(191)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(191)는 플래시 메모리(60)로부터 출력된 데이터, 무선 송수신기 (195)로부터 출력된 무선 신호들, 또는 입력 장치(197)로부터 출력된 데이터가 디스플레이(193)를 통하여 디스플레이될 수 있도록 디스플레이(193)의 동작을 제어할 수 있다.
도 7은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 7을 참조하면, PC(personal computer), 테블릿 컴퓨터(tablet computer), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(200)는 플래시 메모리(60)와 플래시 메모리(60)의 동작을 제어할 수 있는 메모리 컨트롤러(50)를 포함한다.
또한, 전자 장치(200)는 전자 장치(200)의 전반적인 동작을 제어하기 위한 프로세서(210)를 포함할 수 있다. 메모리 컨트롤러(50)는 전자 장치(200)의 전반적인 동작을 제어하는 프로세서(210)에 의하여 제어된다. 예컨대, 메모리 컨트롤러(50)는 프로세서(210)의 제어하에 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 한다.
프로세서(210)는 입력 장치(220)에 의하여 발생한 입력 신호에 따라 플래시 메모리(60)에 저장된 데이터를 디스플레이(230)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(220)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
도 8은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 8을 참조하면, 전자 장치(300)는 카드 인터페이스(Card Interface; 310), 메모리 컨트롤러(320), 적어도 하나의 비휘발성 메모리(Non-Volatile Memory; 60), 예컨대 플래시 메모리를 포함한다.
전자 장치(300)는 카드 인터페이스(310)를 통하여 호스트(HOST)와 데이터를 주거나 받을 수 있다. 실시 예에 따라 카드 인터페이스(310)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(310)는 전자 장치(300)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(320) 사이에서 데이터 교환을 인터페이스할 수 있다.
메모리 컨트롤러(320)는 전자 장치(300)의 전반적인 동작을 제어하며, 카드 인터페이스(310)와 비휘발성 메모리 장치(60) 사이에서 데이터의 교환을 제어할 수 있다. 또한 메모리 컨트롤러(320)의 버퍼 메모리(325)는 카드 인터페이스(310)와 비휘발성 메모리 장치(330) 사이에서 주고받는 데이터를 버퍼링할 수 있다.
메모리 컨트롤러(320)는 데이터 버스(DATA) 및 어드레스 버스(ADDRESS)를 통하여 카드 인터페이스(310)와 비휘발성 메모리(60)와 연결된다. 실시 예에 따라 메모리 컨트롤러(320)는 카드 인터페이스(310)로부터 리드 또는 라이트하고자 하는 데이터의 어드레스를 어드레스 버스(ADDRESS)를 통하여 수신하고 이를 비휘발성 메모리(60)로 전달한다.
또한, 메모리 컨트롤러(320)는 카드 인터페이스(310) 또는 비휘발성 메모리 (60) 각각에 연결된 데이터 버스(DATA)를 통하여 리드 또는 라이트하고자 하는 데이터를 수신하거나 전송한다. 실시 예에 따라 도 8에 도시된 메모리 컨트롤러(320)는 도 1에 도시된 메모리 컨트롤러(50)와 동일 또는 유사한 기능을 수행할 수 있다. 따라서 메모리 컨트롤러(320)는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 한다.
도 8의 전자 장치(300)가 컴퓨터, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트 (HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(310)와 메모리 컨트롤러 (320)를 통하여 적어도 하나의 비휘발성 메모리(60)에 저장된 데이터를 주거나 받을 수 있다.
도 9는 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 9를 참조하면, 전자 장치(300)는 카드 인터페이스(Card Interface; 410), 메모리 컨트롤러(420), 적어도 하나의 비휘발성 메모리(Non-Volatile Memory; 60), 예컨대 플래시 메모리를 포함한다.
전자 장치(400)는 카드 인터페이스(410)를 통하여 호스트(HOST)와 데이터 통신을 수행할 수 있다. 실시 예에 따라 카드 인터페이스(410)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(410)는 전자 장치(400)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(420) 사이에서 데이터 통신을 수행할 수 있다.
메모리 컨트롤러(420)는 전자 장치(400)의 전반적인 동작을 제어하며, 카드 인터페이스(410)와 적어도 하나의 비휘발성 메모리 장치(60) 사이에서 데이터의 교환을 제어할 수 있다.
또한, 메모리 컨트롤러(420)에 포함된 버퍼 메모리(425)는 전자 장치(400)의 전반적인 동작을 제어하기 위하여 각종 데이터를 저장할 수 있다. 메모리 컨트롤러(420)는 데이터 버스(DATA) 및 로지컬 어드레스 버스(LOGICAL ADDRESS)를 통하여 카드 인터페이스(410)와 비휘발성 메모리(60)와 접속될 수 있다. 실시 예에 따라 메모리 컨트롤러(420)는 카드 인터페이스(410)로부터 읽거나 또는 쓰고자 하는 데이터의 어드레스를 로지컬 어드레스 버스(LOGICAL ADDRESS)를 통하여 수신하고, 피지컬 어드레스 버스(PHYSICAL ADDRESS)를 통하여 비휘발성 메모리 (60)로 전달할 수 있다.
또한, 메모리 컨트롤러(420)는 카드 인터페이스(410) 또는 비휘발성 메모리 (60) 각각에 접속된 데이터 버스(DATA)를 통하여 읽거나 또는 쓰고자 하는 데이터를 수신하거나 전송할 수 있다. 메모리 컨트롤러(420)는 도 1에 도시된 메모리 컨트롤러(50)와 동일 또는 유사한 기능을 수행할 수 있다. 따라서 메모리 컨트롤러(420)는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 한다.
적어도 하나의 비휘발성 메모리(60)에는 각종 데이터가 저장된다.
실시 예에 따라 전자 장치(400)의 메모리 컨트롤러(420)는 버퍼 메모리 (425) 내에 맵핑 테이블(Mapping Table; 426)을 포함할 수 있다. 상기 어드레스 변환 테이블에는 외부로부터 입력된 논리적 주소와 비휘발성 메모리(60)에 액세스하기 위한 논리적 주소가 포함될 수 있다. 라이트 동작시, 메모리 컨트롤러(420)는 임의의 물리적 주소에 새로운 데이터를 라이트하고, 상기 맵핑 테이블을 업데이트할 수 있다.
도 9의 전자 장치(400)가 컴퓨터, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(410)와 메모리 컨트롤러(420)를 통하여 적어도 하나의 비휘발성 메모리(60)에 저장된 데이터를 주거나 받을 수 있다.
도 10은 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 10을 참조하면, 전자 장치(500)는 플래시 메모리(60)와 플래시 메모리 (60)의 데이터 처리 동작을 제어하기 위한 메모리 컨트롤러(50), 및 전자 장치 (500)의 전반적인 동작을 제어할 수 있는 프로세서(510)를 포함한다. 메모리 컨트롤러(50)는 프로세서(510)의 제어하에 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 한다.
전자 장치(500)의 이미지 센서(520)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 프로세서(510)의 제어 하에 플래시 메모리 (60)에 저장되거나 또는 디스플레이(530)를 통하여 디스플레이된다. 또한, 플래시 메모리(60)에 저장된 상기 디지털 신호들은 프로세서(510)의 제어 하에 디스플레이 (530)를 통하여 디스플레이된다.
도 11은 도 1에 도시된 플래시 메모리를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 11을 참조하면, 전자 장치(600)는 플래시 메모리(60), 플래시 메모리 (60)의 동작을 제어하기 위한 메모리 컨트롤러(50), 및 전자 장치(600)의 전반적인 동작을 제어할 수 있는 CPU(610)를 포함한다.
전자 장치(600)는 CPU(610)의 동작 메모리(operation memory)로서 사용될 수 있는 메모리 장치(650)를 포함한다. 메모리 장치(650)는 ROM과 같은 비휘발성 메모리 또는 DRAM같은 휘발성 메모리로 구현될 수 있다.
전자 장치(600)에 접속된 호스트(HOST)는 메모리 컨트롤러(50)와 호스트 인터페이스(640)를 통하여 플래시 메모리(60)와 데이터를 주거나 받을 수 있다. 이때 메모리 컨트롤러(50)는 메모리 인터페이스, 예컨대 플래시 메모리 인터페이스의 기능을 수행할 수 있다. 메모리 컨트롤러(50)는 CPU(610)의 제어하에 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 한다.
CPU(610)의 제어에 따라 동작하는 ECC(error correction code) 블록(630)은 메모리 컨트롤러(50)를 통하여 메모리 장치(60)로부터 리드된 데이터에 포함된 에러를 검출하고 정정할 수 있다.
CPU(610)는 버스(601)를 통하여 메모리 컨트롤러(50), ECC 블록(630), 호스트 인터페이스(640), 및 메모리 장치(650) 사이에서 데이터의 교환을 제어할 수 있다.
전자 장치(600)는 USB(Universal Serial Bus) 메모리 드라이브 또는 메모리 스틱(memory stick) 등으로 구현될 수 있다.
도 12는 도 1에 도시된 메모리 컨트롤러를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 12를 참조하면, 전자 장치(700)는 SSD(solid state drive)와 같은 데이터 저장 장치로 구현될 수 있다. 전자 장치(700)는 다수개의 플래시 메모리칩(60-1~60-n)과 다수개의 플래시 메모리칩들(60-1~60-n) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(710)를 포함할 수 있다. 메모리 컨트롤러(710)는 버퍼 메모리(720)를 포함할 수 있다. 버퍼 메모리(720)는 호스트(HOST)의 라이트 명령에 대응하는 데이터를 저장한다.
전자 장치(700)는 메모리 시스템 또는 메모리 모듈로 구현될 수 있다. 실시 예에 따라 메모리 컨트롤러(710)는 전자 장치(700)의 내부 또는 외부에 구현될 수 있으며, 복수의 메모리 컨트롤러들로 구현될 수 있다.
도 13은 도 12에 도시된 복수의 플래시 메모리칩들에 구현된 메모리 셀의 어레이의 대략적인 구성과 맵핑 테이블을 나타내는 블락도이다.
도 12와 도 13을 참조하면, 전자 장치(700)가 메모리 시스템으로 구현될 때,
전자 장치(700)는 복수의 메모리칩들(60-1~60-n)을 포함한다. 복수의 메모리칩들(60-1~60-n) 각각에 구현된 메모리 어레이는 복수의 블록들(BL1~BLn)을 포함한다. 복수의 블록들(BL1~BLn) 각각은 복수의 페이지들로 나누어진다.
실시 예에 따라, 복수의 메모리 칩들(60-1~60-n) 중 어느 하나(예컨대, 60-n)의 페이지 각각에는 에러 검출을 위한 패러티가 저장될 수 있다.
복수의 메모리칩들(60-1~60-n) 각각에 구현된 메모리 어레이는 복수의 스트라이프 블록들(SB1~SBn)로 나누어질 수 있고, 복수의 스트라이프 블록들(SB1~SBn) 각각은 복수의 스트라이프들을 포함한다.
스트라이프는 복수의 메모리칩들(60-1~60-n) 각각의 메모리 셀 어레이에 구현된 N(N은 자연수)번째 페이지의 집합으로 정의한다. 예컨대, 도 13에서 제3스트라이프(S3)는 복수의 메모리칩들(60-1~60-n) 각각의 메모리 셀 어레이에 구현된 세번째 페이지의 집합이다.
버퍼 메모리(720)는 각각이 복수의 메모리칩들(60-1~60-n)에 구현된 메모리 어레이의 스트라이프 블록의 물리적 주소에 대한 논리적 주소 변환 테이블을 나타내는 복수의 맵핑 테이블들(64-1~64-n)을 포함할 수 있다.
복수의 메모리 칩들(60-1~60-n) 중 어느 하나(예컨대, 60-n)의 페이지 각각에는 에러 검출을 위한 패러티가 저장될 때, 복수의 맵핑 테이블들(64-1~64-n) 각각은 패러티가 저장된 물리적 주소와 패리티의 논리적 주소를 맵핑하지 않을 수 있다.
도 14는 본 발명의 실시 예에 따른 가비지 컬렉션 동작 중 복수의 스트라이프 블록들과 버퍼메모리를 나타내는 블락도이다.
도 12 내지 도 14를 참조하면, 희생 스트라이프 블록(VSB)은 도 13에 도시된 복수의 스트라이프 블록들(SB1~SBn) 중 가비지 컬렉션의 대상이 되는 스트라이프 블록을 나타낸다.
희생 스트라이프 블록(VSB)은 유효 데이터 또는, 무효 데이터를 저장한다.
희생 스트라이프 블록(VSB)에 대한 맵핑 테이블(65-1)에서 'n/a'는 희생 스트라이프 블록(VSB)의 물리적 주소와 논리적 주소가 맵핑되지 않음을 의미하고, 나머지 문자들은 희생 스트라이프 블록(VSB)의 물리적 주소와 논리적 주소가 맵핑되었음을 의미한다. 예컨대, 희생 스트라이프 블록(VSB)에 대한 맵핑 테이블(65-1)에서 문자 'L'은 논리적 주소를 나타내며, 논리적 주소 'L'은 희생 스트라이프 블록(VSB)에서 세번째 스트라이프(VS3)의 첫번째 메모리칩의 물리적 주소와 맵핑됨을 나타낸다.
자유 스트라이프 블록(FSB)은 도 13에 도시된 복수의 스트라이프 블록들(SB1~SBn) 중 가비지 컬렉션의 목적이 되는 스트라이프 블록을 나타낸다.
자유 스트라이프 블록(FSB)은 삭제된 스트라이프 블록이다.
메모리 컨트롤러(710)는 스트라이프 단위로 유효 데이터가 희생 스트라이프 블록(VSB)에서 자유 스트라이프 블록(FSB)으로 카피되도록 제어한다.
도 14를 참조하면, 희생 스트라이프 블록(VSB)의 첫번째 스트라이프(VS1)에 저장된 유효 데이터(예컨대, a, b, c, 및 d)가 자유 스트라이프 블록(FSB)의 첫번째 스트라이프(FS1)로 카피된다.
상기 유효 데이터가 자유 스트라이프 블록(FSB)의 첫번째 스트라이프(FS1)로 카피된 후, 버퍼 메모리(720)에 저장된 데이터(예컨대, d1, d2, 및 d3)가 자유 스트라이프 블록(FSB)의 첫번째 스트라이프(FS1)로 카피된다.
이 때, 자유 스트라이프 블록(FSB)에 대한 맵핑 테이블(65-2)은 데이터(예컨대, a, b, c, d, d1, d2, 및 d3)가 저장된 자유 스트라이프 블록(FSB)의 두번째 스트라이프(VS2)의 물리적 주소와 상기 데이터의 논리적 주소가 맵핑되도록 갱신되며, 희생 스트라이프 블록(VSB)에 대한 맵핑 테이블(65-1)은 데이터(예컨대, a, b, c, 및 d)가 저장된 희생 스트라이프 블록(VSB)의 두번째 스트라이프(FS2)의 물리적 주소와 상기 데이터의 논리적 주소가 맵핑되지 않도록 갱신된다.
즉, 자유 스트라이프 블록(FSB)에 대한 맵핑 테이블(65-2)에서 상기 데이터 (예컨대, a, b, c, d, d1, d2, 및 d3)가 저장된 자유 스트라이프 블록(FSB)의 첫번째 스트라이프(FS1)의 물리적 주소는 논리적 주소(예컨대, A, B, C, D, D1, D2, 및 D3)으로 맵핑되었고, 희생 스트라이프 블록(VSB)에 대한 맵핑 테이블(65-1)에서 데이터(예컨대, a, b, c, 및 d)가 저장된 희생 스트라이프 블록(VSB)의 첫번째 스트라이프(VS1)의 물리적 주소는 논리적 주소(예컨대, A, B, C, 및 D)으로 맵핑되지 않게 되었다.
실시 예에 따라, 메모리 컨트롤러(710)는 희생 스트라이프 블록(VSB)의 첫번째 스트라이프(VS1)에 저장된 유효 데이터(예컨대, a, b, c, 및 d)와 버퍼 메모리(720)에 저장된 데이터(예컨대, d1, d2, 및 d3)를 이용하여 에러 검출을 위한 새로운 패러티(p1')를 생성하여 자유 스트라이프 블록(FSB)의 첫번째 스트라이프(FS1)에 저장하도록 제어할 수 있다.
실시 예에 따라, 상기 패러터(p1')는 희생 스트라이프 블록(VSB)의 첫번째 스트라이프(VS1)에 저장된 유효 데이터(예컨대, a, b, c, 및 d)와 버퍼 메모리(720)에 저장된 데이터(예컨대, d1, d2, 및 d3)를 XOR 논리 연산을 수행하여 생성되거나, 리드-솔로몬(Reed-Solomon) 코드를 이용하여 생성될 수 있다.
희생 스트라이프 블록(VSB)의 첫번째 스트라이프(VS1)의 유효 데이터(예컨대, a, b, c, 및 d)와 버퍼 메모리(702)에 저장된 데이터(d1, d2, 및 d3)가 자유 스트라이프 블록(FSB)의 첫번째 스트라이프(FS1)로 카피된 후, 희생 스트라이프 블록(VSB)의 두번째 스트라이프(VS2)의 유효 데이터(예컨대, e, f, g, 및 h)가 자유 스트라이프 블록(FSB)의 두번째 스트라이프(FS2)로 카피된다.
호스트(HOST)의 라이트 명령에 대응하는 버퍼 메모리(720)에 저장된 새로운 데이터(예컨대, d4, d5, 및 d6)는 자유 스트라이프 블록(FSB)의 두번째 스트라이프(FS2)로 카피된다.
이 때, 자유 스트라이프 블록(FSB)에 대한 맵핑 테이블(65-2)은 데이터(예컨대, e, f, g, h, d4, d5, 및 d6)가 저장된 자유 스트라이프 블록(FSB)의 물리적 주소와 상기 데이터의 논리적 주소가 맵핑되도록 갱신한다.
실시 예에 따라, 메모리 컨트롤러(710)는 희생 스트라이프 블록(VSB)의 두번째 스트라이프(VS2)에 저장된 유효 데이터(예컨대, e, f, g, 및 h)와 버퍼 메모리(720)에 저장된 데이터(예컨대, d4, d5, 및 d6)를 이용하여 에러 검출을 위한 새로운 패러티(p2')를 생성하여 자유 스트라이프 블록(FSB)의 두번째 스트라이프(FS2)에 저장하도록 제어할 수 있다.
도 15는 본 발명의 다른 실시 예에 따른 가비지 컬렉션 동작 후 복수의 스트라이프 블록들과 버퍼메모리를 나타내는 블락도이다.
도 12 내지 15를 참조하면, 희생 스트라이프 블록(VSB)의 세번째 스트라이프(VS3)에 저장된 유효 데이터(예컨대, l, m, n, 및 o)가 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)로 카피된다.
이 때, 메모리 컨트롤러(710)는, 유효 데이터(예컨대, l, m, n, 및 o)가 희생 스트라이프 블록(VSB)의 세번째 스트라이프(VS3)의 첫번째, 두번째, 네번째, 및 여섯번째 페이지에 각각 저장될 때, 상기 유효 데이터(예컨대, l, m, n, 및 o)를 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 첫번째, 두번째, 네번째, 및 여섯번째 페이지에 각각 카피하도록 제어한다.
전자 장치(700)는 상기 유효 데이터를 외부로 리드하여 카피하지 않고, 복수의 플래시 메모리칩들(60-1~60-n) 각각에서 각각 동일한 플래시 메모리칩으로 카피하도록 함으로써, 외부 버스 대역폭을 효율적으로 사용할 수 있다. 이는 플래시 메모리의 인터널 카피백(internal copyback) 또는, 플래시 메모리의 세미-익스터널 카피백(semi-external copyback)과 유사하다.
예컨대, 희생 스트라이프 블록(VSB)의 세번째 스트라이프(VS3)의 네번째 플래시 메모리칩(60-4)에 저장된 유효 데이터 'n'은 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 세번째 플래시 메모리칩(60-3)이 아니라 네번째 플래시 메모리칩(60-4)으로 카피된다.
따라서, 도 15를 참조하면, 희생 스트라이프 블록(VSB)의 세번째 스트라이프(VS3)의 유효 데이터 'l', 'm', 'n', 및 'o'는 세번째 스트라이프(VS3)의 첫번째, 두번째, 네번째, 및 여섯번째 플래시 메모리칩(60-1, 60-2, 60-4, 및 60-6)에 각각 저장되어 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 첫번째, 두번째, 네번째, 및 여섯번째 플래시 메모리칩(60-1, 60-2, 60-4, 및 60-6)으로 각각 카피되므로, 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 세번째, 다섯번째, 일곱번째 플래시 메모리칩(60-3, 60-5, 및 60-7)는 비어있다.
호스트(HOST)의 라이트 명령에 대응하는 버퍼 메모리(720)에 저장된 새로운 데이터(d7과 d8)는 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)로 카피된다.
메모리 컨트롤러(710)는 버퍼 메모리(720)에 저장된 새로운 데이터(d7과 d8)를 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 어느 플래시 메모리칩에 카피할지를 결정하기 위해, 자유 스트라이프 블록(FSB)의 세번째 스트라이프(VS3)의 페이지들 각각에서 상기 페이지들 각각과 대응되는 n번째 스트라이프(VSn)의 페이지들 각각까지 무효 데이터를 가지는 페이지의 수를 카운팅한다. 상기 카운트의 수를 FIPC(forward invalid page count)라고 정의한다.
예컨대, 세번째 스트라이프(VS3)의 첫번째 페이지에서의 FIPC는 n번째 스트라이프(VSn)의 첫번째 페이지까지 3개의 무효 데이터를 가지는 3개의 페이지들이 있으므로, FIPC는 3이다.
유사하게, 세번째 스트라이프(VS3)의 페이지들 각각에서의 FIPC는 3,3,0,4,1,2, 및 2이다.
자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 세번째, 다섯번째, 일곱번째 플래시 메모리칩(60-3, 60-5, 및 60-7)은 비어있으므로, 비어있는 플래시 메모리칩들(60-3, 60-5, 및 60-7) 각각의 FIPC는 0, 1, 및 2이다.
여기서, 버퍼 메모리(720)에 저장된 데이터(d7와 d8)은 비어있는 플래시 메모리칩들(60-3, 60-5, 및 60-7) 각각의 FIPC 중 큰 값을 가지는 페이지 순서대로 카피된다. 예컨대, 버퍼 메모리(720)에 저장된 데이터 'd7'는 비어있는 플래시 메모리칩들(60-3, 60-5, 및 60-7) 각각의 FIPC 중 일곱번째 플래시 메모리칩(60-7)이 가장 높은 카운트값인 2를 가지므로, 데이터 'd7'는 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 일곱번째 플래시 메모리칩(60-7)으로 카피된다.
버퍼 메모리(720)에 저장된 데이터 'd7'가 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 일곱번째 플래시 메모리칩(60-7)에 카피된 후, 버퍼 메모리(720)에 저장된 데이터 'd8'는 두 번째로 높은 카운트값인 1을 가지는 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 다섯번째 플래시 메모리칩(60-5)으로 카피된다.
실시 예에 따라, 희생 스트라이프 블록(VSB)의 네번째 스트라이프(VS4)의 세번째 페이지에 저장된 데이터 'q'는 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 남은 플래시 메모리칩인 세번째 플래시 메모리칩(60-3)으로 카피될 수 있다. 데이터 'q'도 마찬가지로 네번째 스트라이프(VS4)의 플래시 메모리(60-3)에서 세번째 스트라이프(FS3)의 동일한 플래시 메모리(60-3)로 카피된다.
이 때, 자유 스트라이프 블록(FSB)에 대한 맵핑 테이블(65-2)은 데이터(예컨대, l, m, q, n, d8, o, 및 d7)가 저장된 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 물리적 주소와 상기 데이터의 논리적 주소가 맵핑되도록 갱신한다.
또한, 실시 예에 따라, 메모리 컨트롤러(710)는 희생 스트라이프 블록(VSB)의 세번째 스트라이프(VS3)에 저장된 유효 데이터(예컨대, l, m, n, 및 o), 네번째 스트라이프(VS4)에 저장된 유효 데이터(예컨대, q), 및 버퍼 메모리(720)에 저장된 데이터(예컨대, d7과 d8)를 이용하여 에러 검출을 위한 새로운 패러티(p3')를 생성하여 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)에 저장하도록 제어할 수 있다.
희생 스트라이프 블록(VSB)의 모든 스트라이프들(VS1~VSn)이 자유 스트라이프 블록(FSB)의 모든 스트라이프들(FS1~FSn)으로 카피될 때, 가비지 컬렉션 동작이 완료된다. 전자 장치(700)는 가비지 컬렉션 동작 중 새로운 데이터를 라이트할 수 있게 함으로써, 복수의 메모리칩들(60-1~60-n)의 라이트 성능을 높을 수 있다.
도 16은 도 12에 도시된 메모리 컨트롤러의 동작방법을 나타낸 순서도이다.
도 12 내지 도 16을 참조하면, 메모리 컨트롤러(710)는 제1스트라이프(예컨대, VS1)에 저장된 복수의 데이터에서 유효 데이터(예컨대, a,b, c, 및 d)를 선택하도록 제어한다(S100).
메모리 컨트롤러(710)는 선택된 유효 데이터(예컨대, a,b, c, 및 d)를 제1스트라이프(예컨대, VS1)에서 제2스트라이프(예컨대, FS1)로 카피하도록 제어한다(S200).
실시 예에 따라, 선택된 유효 데이터가 도 15의 희생 스트라이프 블록(VSB)의 세번째 스트라이프(VS3)에 도시된 l, m, n, 및 o라고 할 때, 메모리 컨트롤러(710)는 상기 유효 데이터(예컨대, l, m, n, 및 o)를 자유 스트라이프 블록(FSB)의 세번째 스트라이프(FS3)의 첫번째, 두번째, 네번째, 및 여섯번째 페이지에 각각 카피하도록 제어할 수 있다.
메모리 컨트롤러(710)는 버퍼 메모리(720)에 저장된 제1데이터(예컨대, d1)를 제2스트라이프(예컨대, FS1)로 카피하도록 제어한다(S300).
실시 예에 따라, 메모리 컨트롤러(710)는 FIPC를 이용하여 버퍼 메모리(720)에 저장된 제1데이터를 제2스트라이프의 어느 페이지에 카피할 것인지 결정하도록 제어할 수 있다.
또한, 실시 예에 따라, 메모리 컨트롤러(710)는 선택된 유효 데이터(예컨대, a,b, c, 및 d)와 버퍼 메모리(720)에 저장된 제1데이터(예컨대, d1)를 이용하여 에러 검출을 위한 패러티(예컨대, p1')를 생성할 수 있다(S400).
메모리 컨트롤러(710)는 상기 패리터(예컨대, p1')를 제2스트라이프(예컨대, FS2)의 일곱번째 플래시 메모리칩에 저장하도록 제어할 수 있다(S500).
도 17은 도 12에 도시된 전자 장치를 포함하는 데이터 처리 장치의 실시 예를 나타낸다.
도 12와 도 17을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(800)는 RAID 컨트롤러(810)와 다수개의 메모리 시스템들(700-1~700-n; n는 자연수)을 포함할 수 있다.
다수개의 메모리 시스템들(700-1~700-n) 각각은 도 12에 도시된 전자 장치 (700)일 수 있다. 다수개의 메모리 시스템들(700-1~700-n)은 RAID 어레이를 구성할 수 있다. 데이터 저장 장치(800)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
라이트 동작시 RAID 컨트롤러(810)는 호스트로부터 출력된 데이터를 다수개의 RAID 레벨들 중에서 상기 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라 다수개의 메모리 시스템들(700-1~700-n) 중에서 어느 하나의 메모리 시스템으로 출력할 수 있다.
또한, 읽기 동작시 RAID 컨트롤러(810)는 다수개의 RAID 레벨들 중에서 상기 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라 다수개의 메모리 시스템(700-1~700-n) 중에서 어느 하나의 메모리 모듈로부터 읽혀진 데이터를 상기 호스트로 전송할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 메모리 장치
20: I/0 인터페이스
30: CPU
40: 메모리
45: 버퍼 메모리
50: 메모리 컨트롤러
60: 플래시 메모리

Claims (10)

  1. 가비지 컬렉션 동작이 수행될 때, 제1블록에 저장된 복수의 유효 데이터 중 일부와 버퍼 메모리에 저장된 제1데이터를 제2블록으로 카피하는 단계;
    상기 가비지 컬렉션 동작 중 호스트로부터 출력된 라이트 명령을 수신하고, 상기 라이트 명령에 대응하는 제3데이터를 상기 버퍼 메모리에 저장하는 단계;
    상기 제1블록에 저장된 상기 복수의 유효 데이터 중 나머지를 상기 제2블록으로 카피하여 상기 가비지 컬렉션 동작을 완료하는 단계; 및
    상기 버퍼 메모리에 저장된 제2데이터를 상기 제2블록으로 카피하는 단계를 포함하고,
    상기 버퍼 메모리에서 상기 제2블록으로 카피되는 상기 제1데이터와 상기 제2데이터의 수는 상기 제1블록의 복수의 페이지들 중에서 무효 데이터가 저장된 페이지들의 수보다 작은 메모리 장치의 동작 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 메모리 장치의 동작 방법은,
    상기 복수의 유효 데이터의 논리적 주소와 상기 제1데이터의 논리적 주소 각각을 상기 제2블록의 물리적 주소와 맵핑하기 위한 맵핑 테이블을 갱신하는 단계를 더 포함하는 메모리 장치의 동작 방법.
  5. 가비지 컬렉션 동작이 수행될 때 제1스트라이프에 저장된 복수의 데이터에서 유효 데이터를 선택하고, 선택된 유효 데이터를 상기 제1스트라이프에서 제2스트라이프로 카피하는 단계; 및
    상기 가비지 컬렉션 동작 중 버퍼 메모리에 저장된 제1데이터를 상기 제2스트라이프로 카피하는 단계를 포함하고,
    상기 버퍼 메모리에 저장된 상기 제1데이터를 상기 제2스트라이프로 카피하는 단계는,
    상기 유효 데이터가 저장되지 않은 상기 제1스트라이프의 페이지들 각각에서 상기 페이지들 각각과 대응되는 P(P는 자연수)번째 스트라이프의 페이지들 각각까지 무효 데이터를 포함하는 페이지의 수를 카운팅하는 단계; 및
    상기 제1데이터를 가장 높은 카운팅 값을 가지는 페이지와 대응되는 상기 제2스트라이프의 페이지로 카피하는 단계를 포함하는 전자 장치의 동작 방법.
  6. 제5항에 있어서, 상기 제1스트라이프는,
    복수의 메모리칩들 각각의 메모리 셀 어레이에 구현된 N(N은 자연수)번째 페이지의 집합이고,
    상기 제2스트라이프는,
    상기 복수의 메모리칩들 각각의 메모리 셀 어레이에 구현된 M(M은 자연수)번째 페이지의 집합인 전자 장치의 동작 방법.
  7. 제6항에 있어서, 상기 유효 데이터가 상기 제1스트라이프의 상기 복수의 메모리칩들 중에서 제L(L은 자연수)번째 메모리칩의 메모리 셀 어레이에 구현된 상기 N(N은 자연수)번째 페이지에 저장될 때,
    상기 선택된 유효 데이터는 상기 제2스트라이프의 상기 복수의 메모리칩들 중에서 상기 제L번째 메모리칩의 메모리 셀 어레이에 구현된 상기 M(M은 자연수)번째 페이지로 카피되는 전자 장치의 동작 방법.
  8. 삭제
  9. 제5항에 있어서, 상기 전자 장치의 동작 방법은,
    상기 버퍼 메모리로부터 카피된 상기 제1데이터와 상기 제2스트라이프로 카피된 유효 데이터를 이용하여 패러티를 생성하는 단계; 및
    상기 패러티를 상기 제2스트라이프에 저장하는 단계를 더 포함하는 전자 장치의 동작 방법.
  10. 삭제
KR1020100124839A 2010-12-08 2010-12-08 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 KR101774496B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100124839A KR101774496B1 (ko) 2010-12-08 2010-12-08 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
US13/289,701 US8904090B2 (en) 2010-12-08 2011-11-04 Non-volatile memory device, devices having the same, and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100124839A KR101774496B1 (ko) 2010-12-08 2010-12-08 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120063734A KR20120063734A (ko) 2012-06-18
KR101774496B1 true KR101774496B1 (ko) 2017-09-05

Family

ID=46200575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100124839A KR101774496B1 (ko) 2010-12-08 2010-12-08 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US8904090B2 (ko)
KR (1) KR101774496B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036629B2 (en) 2019-06-27 2021-06-15 SK Hynix Inc. Controller, memory system and operating method thereof

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
JP2009282678A (ja) * 2008-05-21 2009-12-03 Hitachi Ltd フラッシュメモリモジュール及びストレージシステム
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
TWI477966B (zh) * 2012-05-31 2015-03-21 Silicon Motion Inc 資料儲存裝置與快閃記憶體操作方法
JP2013254537A (ja) 2012-06-06 2013-12-19 Toshiba Corp 半導体記憶装置及びコントローラ
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
JP6051733B2 (ja) * 2012-09-25 2016-12-27 日本電気株式会社 制御システム、制御方法、及び、制御プログラム
KR20140040998A (ko) * 2012-09-27 2014-04-04 삼성전자주식회사 로그기반 데이터 저장 시스템의 관리방법
KR20140080660A (ko) * 2012-12-13 2014-07-01 에스케이하이닉스 주식회사 반도체 메모리 장치 및 시스템의 동작 방법
KR20140078893A (ko) 2012-12-18 2014-06-26 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
KR102072829B1 (ko) 2013-06-14 2020-02-03 삼성전자주식회사 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US10007428B2 (en) * 2013-08-16 2018-06-26 Micron Technology, Inc. Data storage management
US9235509B1 (en) * 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9645924B2 (en) 2013-12-16 2017-05-09 International Business Machines Corporation Garbage collection scaling
US20150170747A1 (en) * 2013-12-17 2015-06-18 Skymedi Corporation Method and system for programming a multi-bit per cell non-volatile memory
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
KR102166924B1 (ko) 2013-12-26 2020-10-16 삼성전자주식회사 저장 장치의 구동 방법
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
KR102200489B1 (ko) * 2014-05-30 2021-01-11 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9652381B2 (en) * 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9875039B2 (en) 2014-09-30 2018-01-23 Sandisk Technologies Llc Method and apparatus for wear-leveling non-volatile memory
US11347637B2 (en) 2014-10-30 2022-05-31 Kioxia Corporation Memory system and non-transitory computer readable recording medium
JP6276208B2 (ja) * 2014-10-30 2018-02-07 東芝メモリ株式会社 メモリシステム及びプログラム
US10102118B2 (en) * 2014-10-30 2018-10-16 Toshiba Memory Corporation Memory system and non-transitory computer readable recording medium
KR20160075229A (ko) * 2014-12-19 2016-06-29 삼성전자주식회사 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템
US20160188233A1 (en) * 2014-12-26 2016-06-30 Mediatek Inc. Method for interrupting cleaning procedure of flash memory
KR102368071B1 (ko) * 2014-12-29 2022-02-25 삼성전자주식회사 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템
KR101718713B1 (ko) * 2015-05-29 2017-03-22 주식회사 이에프텍 비휘발성 메모리 시스템
CN106326136A (zh) * 2015-07-02 2017-01-11 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
US10031670B2 (en) * 2015-09-04 2018-07-24 Toshiba Memory Corporation Control unit and control method for controlling writes and background operations of multiple semiconductor storage devices
US9792068B2 (en) * 2015-09-10 2017-10-17 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
CN105278876B (zh) * 2015-09-23 2018-12-14 华为技术有限公司 一种固态硬盘的数据擦除方法及装置
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US20170123666A1 (en) * 2015-10-30 2017-05-04 Sandisk Technologies Inc. System and method for managing maintenance scheduling in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
KR20170050953A (ko) * 2015-11-02 2017-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US9804787B2 (en) * 2015-11-03 2017-10-31 Samsung Electronics Co., Ltd. Mitigating GC effect in a raid configuration
CN106802867B (zh) * 2015-11-25 2020-12-01 建兴储存科技(广州)有限公司 固态储存装置及其数据编程方法
US10229049B2 (en) * 2015-12-17 2019-03-12 Toshiba Memory Corporation Storage system that performs host-initiated garbage collection
KR20170078315A (ko) * 2015-12-29 2017-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10649681B2 (en) * 2016-01-25 2020-05-12 Samsung Electronics Co., Ltd. Dynamic garbage collection P/E policies for redundant storage blocks and distributed software stacks
JP6696280B2 (ja) * 2016-04-13 2020-05-20 富士通株式会社 情報処理装置、raid制御方法、およびraid制御プログラム
US10268385B2 (en) * 2016-05-03 2019-04-23 SK Hynix Inc. Grouped trim bitmap
CN107544748B (zh) * 2016-06-28 2020-06-16 建兴储存科技(广州)有限公司 固态储存装置及其数据写入方法
KR102673873B1 (ko) * 2016-06-30 2024-06-10 삼성전자주식회사 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
JP2018041153A (ja) 2016-09-05 2018-03-15 東芝メモリ株式会社 ストレージシステムおよび入出力処理方法
US10528462B2 (en) * 2016-09-26 2020-01-07 Intel Corporation Storage device having improved write uniformity stability
KR20180093152A (ko) * 2017-02-09 2018-08-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10613772B2 (en) * 2017-03-16 2020-04-07 Qualcomm Incorporated Methods and apparatuses for copying a data page in an unmanaged flash memory device
TWI649653B (zh) * 2017-08-30 2019-02-01 群聯電子股份有限公司 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
CN109471806B (zh) * 2017-09-07 2022-12-13 群联电子股份有限公司 数据存储方法、存储器存储装置及存储器控制电路单元
TWI656442B (zh) * 2017-11-30 2019-04-11 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
US11537513B2 (en) * 2017-12-11 2022-12-27 SK Hynix Inc. Apparatus and method for operating garbage collection using host idle
KR102516539B1 (ko) * 2018-01-24 2023-04-03 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11029856B2 (en) * 2018-03-02 2021-06-08 Qualcomm Incorporated Flash memory device with data fragment function
TW202001565A (zh) * 2018-06-21 2020-01-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI695263B (zh) 2018-08-01 2020-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
CN110888593B (zh) * 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI768346B (zh) * 2018-09-07 2022-06-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI703438B (zh) * 2018-09-11 2020-09-01 慧榮科技股份有限公司 映射表更新方法
TWI718710B (zh) * 2019-06-25 2021-02-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130749B (zh) 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11099758B2 (en) * 2019-07-16 2021-08-24 Facebook Technologies, Llc Memory management of computing devices
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
KR20220103340A (ko) * 2021-01-15 2022-07-22 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN114327254A (zh) * 2021-11-16 2022-04-12 三星(中国)半导体有限公司 存储数据的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034175A1 (en) * 2006-08-04 2008-02-07 Shai Traister Methods for phased garbage collection
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184255A (ja) 1999-12-27 2001-07-06 Casio Comput Co Ltd 電子機器、メモリ制御プログラムが記憶された記憶媒体
JP2007193883A (ja) 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
US8285918B2 (en) * 2009-12-11 2012-10-09 Nimble Storage, Inc. Flash memory cache for data storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034175A1 (en) * 2006-08-04 2008-02-07 Shai Traister Methods for phased garbage collection
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036629B2 (en) 2019-06-27 2021-06-15 SK Hynix Inc. Controller, memory system and operating method thereof

Also Published As

Publication number Publication date
KR20120063734A (ko) 2012-06-18
US20120151124A1 (en) 2012-06-14
US8904090B2 (en) 2014-12-02

Similar Documents

Publication Publication Date Title
KR101774496B1 (ko) 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
CN109542675B (zh) 存储器系统及其操作方法
US8954708B2 (en) Method of storing data in non-volatile memory having multiple planes, non-volatile memory controller therefor, and memory system including the same
JP6262426B2 (ja) メモリシステム及びそれのブロック複写方法
KR102503177B1 (ko) 메모리 시스템 및 그것의 동작 방법
US20140281174A1 (en) Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system
CN110413535B (zh) 存储器控制器及存储器控制器的操作方法
US20120066438A1 (en) Non-volatile memory device, operation method thereof, and device having the same
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
KR102578188B1 (ko) 메모리 컨트롤러 및 이의 동작 방법
CN110310691B (zh) 存储器系统中的工作负载预测及其方法
US20120284469A1 (en) Memory system and bad block management method
US10990539B2 (en) Controller, memory system including the same, and method of operating memory system
US10896125B2 (en) Garbage collection methods and memory systems for hybrid address mapping
CN111324300B (zh) 控制器以及控制器的操作方法
US11269769B2 (en) Memory system and method of operating the same
CN111381772B (zh) 半导体存储器装置的控制器及其操作方法
CN110309075B (zh) 存储器控制器以及具有存储器控制器的存储器系统
US20200226064A1 (en) Method of reverse mapping and data consolidation to enhance random performance
CN111755061A (zh) 检查存储器系统中的存储器装置的操作状态的设备及方法
CN111736756A (zh) 存储器系统及操作存储器系统的方法
CN110851382B (zh) 存储控制器及其操作方法和具有存储控制器的存储器系统
CN111209223B (zh) 存储器系统及其操作方法
US11210008B2 (en) Memory system for multi-clustering read thresholds and method thereof
CN115220950A (zh) 存储器系统和数据处理系统

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