KR20210048349A - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR20210048349A
KR20210048349A KR1020190132520A KR20190132520A KR20210048349A KR 20210048349 A KR20210048349 A KR 20210048349A KR 1020190132520 A KR1020190132520 A KR 1020190132520A KR 20190132520 A KR20190132520 A KR 20190132520A KR 20210048349 A KR20210048349 A KR 20210048349A
Authority
KR
South Korea
Prior art keywords
memory
memory units
index
target
units
Prior art date
Application number
KR1020190132520A
Other languages
English (en)
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 KR1020190132520A priority Critical patent/KR20210048349A/ko
Priority to US16/876,407 priority patent/US11437113B2/en
Priority to CN202010622023.1A priority patent/CN112698784B/zh
Publication of KR20210048349A publication Critical patent/KR20210048349A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/005Circuit means for protection against loss of information of semiconductor storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

메모시 시스템은 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및 서든 파워 오프에 의해 메모리 덤프 동작을 수행할 때 상기 메모리 유닛들 중 라이트 소요 시간이 나머지 메모리 유닛들보다 짧을 것으로 추정되는 하나 이상의 타겟 메모리 유닛들에 데이터를 저장하도록 구성된 컨트롤러를 포함한다.

Description

메모리 시스템{MEMORY SYSTEM}
본 발명은 메모리 시스템에 관한 것으로, 더욱 상세하게는 비휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템은 호스트 장치의 라이트 요청에 응답하여, 호스트 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 메모리 시스템은 호스트 장치의 리드 요청에 응답하여, 저장된 데이터를 호스트 장치로 제공하도록 구성될 수 있다. 호스트 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 메모리 시스템은 호스트 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 호스트 장치에 연결됨으로써 동작할 수 있다.
본 발명의 실시 예는 메모리 덤프 동작을 효과적으로 제어할 수 있는 메모리 시스템을 제공하는 데 있다.
본 발명의 실시 예에 따른 메모리 시스템은 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및 서든 파워 오프에 의해 메모리 덤프 동작을 수행할 때 상기 메모리 유닛들 중 라이트 소요 시간이 나머지 메모리 유닛들보다 짧을 것으로 추정되는 하나 이상의 타겟 메모리 유닛들에 데이터를 저장하도록 구성된 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및 테이블에 근거하여 상기 복수의 메모리 유닛들 중 타겟 메모리 유닛들을 포함하는 타겟 메모리 유닛 세트를 선택하고, 상기 타겟 메모리 유닛 세트를 사용하여 메모리 덤프 동작을 수행하도록 구성된 컨트롤러를 포함하되, 상기 테이블은 상기 복수의 메모리 유닛들이 그룹핑된 메모리 유닛 세트들에 대한 정보를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및 서든 파워 오프 발생 시, 상기 복수의 메모리 유닛들 중 라이트 소요 시간에 따라 그룹핑된 타겟 메모리 유닛 세트에 대해 메모리 덤프 동작을 수행하도록 구성된 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 메모리 덤프 동작을 효과적으로 제어할 수 있다.
도1은 본 발명의 실시 예에 따른 메모리 시스템을 도시한 블록도,
도2는 본 발명의 실시 예에 따라 도1의 메모리 영역의 구조를 도시한 도면,
도3은 본 발명의 실시 예에 따라 메모리 영역들에 포함된 메모리 유닛들 각각의 라이트 소요 시간을 도시하는 도면,
도4는 본 발명의 실시 예에 따라 도1의 테이블이 결정되는 방법을 도시하는 도면,
도5는 본 발명의 실시 예에 따라 도1의 컨트롤러가 테이블을 참조하여 메모리 덤프 동작을 수행하는 방법을 도시하는 도면,
도6a는 본 발명의 실시 예에 따라 도1의 테이블이 결정되는 방법을 도시하는 도면,
도6b는 본 발명의 실시 예에 따라 각 인덱스 세트에 대응하는 라이트 소요 시간의 총합을 도시하는 그래프,
도7은 본 발명의 실시 예에 따라 도1의 컨트롤러가 테이블을 참조하여 메모리 덤프 동작을 수행하는 방법을 도시하는 도면,
도8은 본 발명의 실시 예에 따라 도1의 테이블이 결정되는 방법을 도시하는 도면,
도 9는 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면,
도 10은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면,
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면,
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 도시하는 도면,
도 13은 본 발명의 실시 예에 따른 메모리 시스템에 포함된 비휘발성 메모리 장치를 예시적으로 도시하는 블럭도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 메모리 시스템(100)을 도시한 블록도이다.
메모리 시스템(100)은 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 메모리 시스템(100)은 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다.
메모리 시스템(100)은 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어 카드, 메모리 스틱, 다양한 멀티 미디어 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 SSD(Solid State Drive)를 포함할 수 있다.
메모리 시스템(100)은 컨트롤러(110) 및 저장 매체(120)를 포함할 수 있다.
컨트롤러(110)는 메모리 시스템(100)의 제반 동작을 제어할 수 있다. 컨트롤러(110)는 외부 장치의 지시에 따라 포그라운드 동작을 수행하기 위해 저장 매체(120)를 제어할 수 있다. 포그라운드 동작은 외부 장치의 지시, 즉, 라이트 요청 및 리드 요청에 따라 저장 매체(120)에 데이터를 라이트하고 저장 매체(120)로부터 데이터를 리드하는 동작을 포함할 수 있다.
또한, 컨트롤러(110)는 외부 장치와 독립적으로 내부적으로 필요한 백그라운드 동작을 수행하기 위해서 저장 매체(120)를 제어할 수 있다. 백그라운드 동작은 저장 매체(120)에 대한 웨어 레벨링 동작, 가비지 컬렉션 동작, 소거 동작, 리드 리클레임 동작, 리프레시 동작, 및 복구 동작을 포함할 수 있다. 백그라운드 동작은 포그라운드 동작처럼 저장 매체(120)에 데이터를 라이트하고 저장 매체(120)로부터 데이터를 리드하는 동작을 포함할 수 있다.
컨트롤러(110)는 메모리 시스템(100)의 외부에서 서든 파워 오프가 발생할 때 메모리(111)에 대한 메모리 덤프 동작을 수행할 수 있다. 컨트롤러(110)는 저장 매체(120)의 타겟 메모리 영역(TMR)에 포함된 메모리 유닛들(MU11~MU1n) 중 하나 이상의 타겟 메모리 유닛들(TMU)을 사용하여 메모리 덤프 동작을 수행할 수 있다. 컨트롤러(110)는 테이블 저장부(112)에 저장된 테이블(TBL)을 참조하여 타겟 메모리 영역(TMR)에서 메모리 덤프 동작을 위한 타겟 메모리 유닛들(TMU)을 결정할 수 있다. 한편, 실시 예에 따라 타겟 메모리 유닛들(TMU)의 개수는 도1에 도시된 것처럼 2개로 제한되지 않고 하나 이상일 수 있다.
컨트롤러(110)는 메모리(111)에 저장되어 있던 데이터, 프로그램, 및 동작 정보 등을 타겟 메모리 유닛들(TMU)에 저장함으로써 메모리 덤프 동작을 수행할 수 있다. 메모리 시스템(100)의 외부에서 서든 파워 오프가 발생할 때, 컨트롤러(110)는 메모리 시스템(100)의 예비 파워 저장부(미도시됨)에 저장된 파워를 이용하여 메모리 덤프 동작을 수행할 수 있다. 메모리 덤프 동작을 통해, 메모리 시스템(100)의 중요한 데이터 및 정보가 저장 매체(120)에 저장되고 복구될 수 있다.
따라서, 메모리 덤프 동작의 신속한 완료는 메모리 시스템(100)의 성능을 크게 개선시킬 수 있다. 또한, 메모리 덤프 동작의 수행 시간의 변동폭(Variation)이 작을 경우, 다른 말로 하면, 매 메모리 덤프 동작의 수행 시간이 고를 경우, 메모리 덤프 동작이 원활하게 제어될 수 있고, 이 또한 메모리 시스템(100)의 성능 향상으로 이어질 수 있다.
메모리 덤프 동작을 효과적으로 수행하기 위해서, 컨트롤러(110)는 타겟 메모리 영역(TMR)에 포함된 메모리 유닛들(MU11~MU1n) 중, 라이트 소요 시간이 나머지 메모리 유닛들보다 짧을 것으로 추정되는 메모리 유닛들(도시된 바에 따르면, 메모리 유닛들(MU13, MU1n))을 타겟 메모리 유닛들(TMU)로 사용할 수 있다. 컨트롤러(110)는 그러한 타겟 메모리 유닛들(TMU)을 테이블(TBL)에 근거하여 메모리 유닛들(MU11~MU1n) 중에서 선택할 수 있다.
테이블(TBL)은 테스트 메모리 유닛들 중에서 라이트 소요 시간이 짧은 순으로 선택된 하나 이상의 테스트 메모리 유닛들에 대한 정보를 포함할 수 있다. 테이블(TBL)은 하나 이상의 테스트 메모리 유닛들의 인덱스들을 테스트 메모리 유닛들에 대한 정보로서 포함할 수 있다. 컨트롤러(110)는 메모리 유닛들(MU11~MU1n) 중 테이블(TBL)에 포함된 인덱스들과 동일한 인덱스들을 가진 메모리 유닛들을 타겟 메모리 유닛들(TMU)로 선택할 수 있다.
한편, 테스트 메모리 유닛들은 저장 매체(120)에 포함된 메모리 영역들(MR1~MRm) 중 어느 하나의 테스트 메모리 영역에 포함된 메모리 유닛들일 수 있다. 테스트 메모리 유닛들 각각은 메모리 유닛들(MU11~MU1n) 중 동일한 인덱스를 가진 메모리 유닛과 라이트 소요 시간에 대해 동일 또는 유사한 특성을 가질 수 있다. 따라서, 테스트 메모리 유닛들에 근거하여 테이블(TBL)이 생성되더라도, 컨트롤러(110)는 테이블(TBL)을 메모리 유닛들(MU11~MU1n) 또는 다른 메모리 영역들(MR2~MRm)에 적용할 수 있다.
컨트롤러(110)는 타겟 메모리 영역(TMR)을 사용하여 메모리 덤프 동작을 수행한 뒤, 저장 매체(120)에 포함된 다른 메모리 영역들(MR2~MRm) 중 새로운 타겟 메모리 영역을 선택하여 후속 메모리 덤프 동작을 수행할 수 있다. 즉, 컨트롤러(110)는 메모리 덤프 동작을 수행할 때마다 저장 매체(120)에 포함된 복수의 메모리 영역들(MR1~MRm) 중 새로운 타겟 메모리 영역에서 새로운 타겟 메모리 유닛들을 선택할 수 있다. 이와 같은 컨트롤러(110)의 동작 방법은 도4 및 도5를 참조하여 상세하게 설명될 것이다.
실시 예에 따라, 컨트롤러(110)는 테이블(TBL)에 근거하여 메모리 유닛들(MU11~MU1n) 중 타겟 메모리 유닛들(TMU)을 포함하는 타겟 메모리 유닛 세트를 선택하고, 타겟 메모리 유닛 세트를 사용하여 메모리 덤프 동작을 수행할 수 있다. 이때 테이블(TBL)은 메모리 유닛들(MU11~MU1n)이 그룹핑된 메모리 유닛 세트들에 대한 정보를 포함할 수 있다. 구체적으로, 테이블(TBL)은 메모리 유닛 세트들에 각각 대응하는 인덱스 세트들을 메모리 유닛 세트들에 대한 정보로서 포함할 수 있다. 여기서 인덱스 세트들 각각은 서로 다른 테스트 메모리 유닛들의 인덱스들을 포함할 수 있다.
인덱스 세트들은 소정 방식으로 생성될 수 있다. 실시 예에 따라, 인덱스 세트들을 생성하는 방식은, 각 테스트 메모리 유닛들의 라이트 소요 시간에 기초하여, 라이트 소요 시간이 짧은 순서로 제1 개수씩 인덱스들을 포함하고 라이트 소요 시간이 긴 순서로 제2 개수씩 인덱스들을 포함하도록, 인덱스 세트들을 순서대로 생성하는 단계를 포함할 수 있다. 다른 말로 하면, 인덱스 세트들을 생성하는 방식은, 복수의 테스트 메모리 유닛들의 인덱스들을 테스트 메모리 유닛들 각각의 라이트 소요 시간의 오름차순으로 정렬하는 단계; 및 정렬된 인덱스들 중에서 앞에서부터 제1 개수씩 인덱스들을 순서대로 포함하고 동시에 뒤에서부터 제2 개수씩 인덱스들을 순서대로 포함하도록, 인덱스 세트들을 순서대로 생성하는 단계를 포함할 수 있다. 제1 개수 및 제2 개수는 덤프 개수의 절반 또는 절반에 가장 가까운 두 정수들일 수 있다. 덤프 개수는 컨트롤러(110)가 1회의 메모리 덤프 동작을 수행하기 위해 필요한 메모리 유닛들의 개수일 수 있다.
테이블(TBL)에 포함된 인덱스 세트들은, 대응하는 테스트 메모리 유닛들의 라이트 소요 시간의 총합이 동일 또는 유사하도록 생성될 수 있다. 이러한 인덱스 세트들의 생성 방식은 도6a를 참조하여 상세하게 설명될 것이다.
컨트롤러(110)는 테이블(TBL)에 포함된 인덱스 세트들 중 타겟 인덱스 세트에 포함된 인덱스들과 동일한 인덱스들을 가진 메모리 유닛들, 예를 들어, 메모리 유닛들(MU13, MU1n)을 타겟 메모리 유닛들(TMU)로 선택할 수 있다. 이후 컨트롤러(110)는 메모리 덤프 동작을 수행할 때마다 테이블(TBL)에 포함된 인덱스 세트들을 순서대로 타겟 인덱스 세트로서 선택함으로써 타겟 메모리 영역(TMR)이 다 찰 때까지 타겟 메모리 영역(TMR)을 사용할 수 있다. 이러한 컨트롤러(110)의 동작 방법은 도7을 참조하여 상세하게 설명될 것이다.
실시 예에 따라, 인덱스 세트들을 생성하는 방식은, 복수의 테스트 메모리 유닛들의 인덱스들을 테스트 메모리 유닛들 각각의 라이트 소요 시간의 오름차순으로 정렬하는 단계; 정렬된 인덱스들 사이에서 라이트 소요 시간의 증가량이 임계값보다 큰 하나 이상의 포인트들을 기준으로, 정렬된 인덱스들을 인덱스 그룹들로 분리하는 단계; 각 인덱스 그룹에 포함된 인덱스들의 총 개수에 근거하여 각 인덱스 그룹마다 그룹 비율을 계산하는 단계; 덤프 개수 및 그룹 비율에 근거하여 각 인덱스 그룹마다 할당 개수를 계산하는 단계; 각 인덱스 그룹에서 각각이 할당 개수의 인덱스들을 포함하는 서브 인덱스 세트들을 순서대로 생성하는 단계; 및 인덱스 그룹들에서 동일한 순서의 서브 인덱스 세트들을 대응하는 순서의 인덱스 세트로 통합하는 단계를 포함할 수 있다.
여기에서, 각 인덱스 그룹에서 순서대로 생성된 서브 인덱스 세트들은, 각 인덱스 그룹에서 라이트 소요 시간의 오름차순으로 정렬된 인덱스들 중에서, 앞에서부터 제1 개수씩 인덱스들을 순서대로 포함하고, 동시에 뒤에서부터 제2 개수씩 인덱스들을 순서대로 포함할 수 있다. 제1 개수 및 상기 제2 개수는 할당 개수의 절반 또는 절반에 가장 가까운 두 정수들일 수 있다. 이러한 인덱스 세트들의 생성 방식은 도8을 참조하여 상세하게 설명될 것이다.
실시 예에 따라, 컨트롤러는 타겟 메모리 유닛들(TMU)에 대한 메모리 덤프 동작을 포그라운드 동작 및/또는 백그라운드 동작으로서 수행할 수 있다.
컨트롤러(110)는 메모리(111) 및 테이블 저장부(112)를 포함할 수 있다.
메모리(111)는 동작 메모리로서 메모리 시스템(100)을 동작시키기 위해 컨트롤러(110)에 의해 구동되는 다양한 프로그램들 및 소프트웨어들을 저장할 수 있다. 메모리(111)는 버퍼 메모리로서 외부 장치 및 저장 매체(120) 간에 전송되는 데이터를 임시 저장할 수 있다. 메모리(111)는 캐시 메모리로서 캐시 데이터를 저장할 수 있다.
메모리(111)는 하나 이상의 휘발성 메모리 장치들을 포함할 수 있다. 메모리(111)는 DRAM(Dynamic Random Access Memory) 또는 SRAM(Static Random Access Memory)을 포함할 수 있다.
메모리(111)는 하나 이상의 비휘발성 메모리 장치들을 포함할 수 있다. 메모리(111)는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory)을 포함할 수 있다.
메모리(111)는 도시된 바와 같이 컨트롤러(110)의 내부에 포함될 수 있다. 실시 예에 따라, 메모리(111)는 도시된 바와 달리 컨트롤러(110)의 외부에 포함될 수도 있다.
테이블 저장부(112)는 테이블(TBL)을 저장할 수 있다. 테이블(TBL)은 상술한 생성 방식들에 따라 외부 장치에 의해 생성되고 테이블 저장부(112)에 저장될 수 있다. 실시 예에 따라, 테이블(TBL)은 메모리 시스템(100)의 사용 중에 컨트롤러(110)에 의해 생성되고 테이블 저장부(112)에 저장될 수 있다.
실시 예에 따라, 테이블(TBL)은 저장 매체(120)에도 저장되고, 메모리 시스템(100)의 동작 중 필요 시에 저장 매체(120)로부터 테이블 저장부(112)로 로딩되어 사용될 수 있다.
테이블 저장부(112)는 도시된 바와 같이 메모리(111)와 별개의 메모리로 구성될 수 있다. 실시 예에 따라, 테이블 저장부(112)는 도시된 바와 달리 메모리(111)에 포함될 수도 있다.
저장 매체(120)는 컨트롤러(110)의 제어에 따라, 컨트롤러(110)로부터 전송된 데이터를 저장하고, 저장된 데이터를 리드하여 컨트롤러(110)로 전송할 수 있다. 저장 매체(120)는 데이터를 저장하기 위한 복수의 메모리 영역들(MR1~MRm)을 포함할 수 있다. 메모리 영역(MR1)이 복수의 메모리 유닛들(MU11~MU1n)을 포함한 것처럼, 메모리 영역들(MR2~MRm) 각각은 복수의 메모리 유닛들을 포함할 수 있다.
저장 매체(120)는 하나 이상의 비휘발성 메모리 장치들을 포함할 수 있다. 저장 매체(120)는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory)를 포함할 수 있다.
도2는 본 발명의 실시 예에 따라 도1의 메모리 영역(MR1)의 구조를 도시한 도면이다. 도2에 도시된 메모리 영역(MR1)의 구조는 도1의 다른 메모리 영역들(MR2~MRm) 각각의 구조와 동일할 수 있다.
도2를 참조하면, 메모리 영역(MR1)은 복수의 메모리 블록들(BLK1~BLKi)을 포함할 수 있다. 실시 예에 따라 메모리 블록은 저장 매체(120)에 포함된 비휘발성 메모리 장치가 한번에 소거 동작을 수행할 수 있는 메모리의 단위일 수 있다. 그러나 메모리 블록은 이러한 단위로 한정되지 않고, 다른 단위에 대응할 수도 있다.
메모리 블록들(BLK1~BLKi)은 저장 매체(120)에 포함된 하나 이상의 비휘발성 메모리 장치들에 분포될 수 있다.
메모리 블록들(BLK1~BLKi) 각각은 복수의 페이지들을 포함할 수 있다. 예를 들어, 메모리 블록(BLK1)은 복수의 페이지들(P11~P1n)을 포함하고 메모리 블록(BLKi)은 복수의 페이지들(Pi1~Pin)을 포함할 수 있다.
실시 예에 따라 페이지는 저장 매체(120)에 포함된 비휘발성 메모리 장치가 한번에 라이트 동작 및 리드 동작을 수행할 수 있는 메모리의 단위일 수 있다. 실시 예에 따라 페이지는 저장 매체(120)에 포함된 비휘발성 메모리 장치가, 대응하는 워드라인을 통해 액세스할 수 있는 메모리의 단위일 수 있다. 이 경우, 저장 매체(120)에 포함된 비휘발성 메모리 장치는 페이지에 대응하는 워드라인을 통해 페이지를 액세스할 수 있다. 그러나 페이지는 이러한 단위로 한정되지 않고, 다른 단위에 대응할 수도 있다.
메모리 블록들(BLK1~BLKi)에 포함된 페이지들은 메모리 유닛들(MU11~MU1n)로 그룹핑될 수 있다. 실시 예에 따라, 메모리 블록들(BLK1~BLKi) 각각에서 상대적으로 동일한 위치에 있는 페이지들이 메모리 유닛들(MU11~MU1n)로 그룹핑될 수 있다. 실시 예에 따라, 메모리 블록들(BLK1~BLKi) 각각에서 동일한 어드레스를 가진 페이지들이 메모리 유닛들(MU11~MU1n)로 그룹핑될 수 있다. 실시 예에 따라, 메모리 블록들(BLK1~BLKi) 각각에서 상대적으로 동일한 위치에 있는 워드라인들에 대응하는 페이지들이 메모리 유닛들(MU11~MU1n)로 그룹핑될 수 있다.
메모리 유닛은 저장 매체(120)가 한번에 라이트 동작 및 리드 동작을 수행할 수 있는 메모리의 단위일 수 있다. 그러나 메모리 유닛은 이러한 단위로 한정되지 않고, 다른 단위에 대응할 수도 있다.
실시 예에 따라, 메모리 영역은 도2 도시된 바와 달리 하나의 메모리 블록을 포함할 수 있다. 이러한 경우, 각 메모리 유닛은 하나의 페이지를 포함할 수 있다.
도3은 본 발명의 실시 예에 따라 메모리 영역들(MR1, MR2)에 포함된 메모리 유닛들(MU11~MU1n, MU21~MU2n) 각각의 라이트 소요 시간을 도시하는 도면이다.
메모리 유닛의 라이트 소요 시간은 메모리 유닛에 데이터를 저장하기 위한 소정 절차들의 처리 시간일 수 있다.
도3을 참조하면, 서로 다른 메모리 영역들(MR1, MR2)에서 상대적으로 동일한 위치에 있는 메모리 유닛들은 서로 유사한 라이트 소요 시간을 가질 수 있다. 예를 들어, 메모리 유닛들(MU11, MU21)이 서로 유사한 라이트 소요 시간을 가지고, 메모리 유닛들(MU12, MU22)이 서로 유사한 라이트 소요 시간을 가질 수 있다.
이처럼, 도1의 모든 메모리 영역들(MR1~MRm)에서 상대적으로 동일한 위치에 있는 메모리 유닛들은 서로 유사한 라이트 소요 시간을 가질 수 있다. 따라서, 만일 어떤 메모리 영역에 대해서 라이트 소요 시간에 관한 특성을 파악하면, 다른 메모리 영역도 라이트 소요 시간에 관해 비슷한 특성을 가지는 것으로 추정될 수 있다. 예를 들어, 어떤 메모리 영역에서 라이트 소요 시간이 비교적 짧은 메모리 유닛들의 위치를 파악하면, 다른 메모리 영역에서 해당 위치의 메모리 유닛들도 짧은 라이트 소요 시간을 가질 것으로 추정될 수 있다.
한편, 메모리 유닛의 인덱스는 메모리 유닛에 부여된 어드레스, 또는 메모리 유닛을 식별할 수 있는 번호, 또는 메모리 유닛을 구별할 수 있는 정보일 수 있다. 따라서, 서로 다른 메모리 영역들에서 동일한 인덱스를 가진 메모리 유닛들은 유사한 라이트 소요 시간을 가질 수 있다.
후술될 바와 같이, 테스트 메모리 유닛들 각각에 대한 라이트 소요 시간에 근거하여 메모리 덤프 동작에서 사용될 타겟 메모리 유닛들이 결정되고, 결과적으로 메모리 덤프 동작에서 소요되는 라이트 소요 시간이 효과적으로 제어될 수 있다.
도4는 본 발명의 실시 예에 따라 도1의 테이블(TBL)이 결정되는 방법을 도시하는 도면이다.
도4를 참조하면, 위의 그래프(41)에서 가로축은 테스트 메모리 유닛의 인덱스이고 세로축은 라이트 소요 시간일 수 있다. 가로축의 1부터 n까지의 인덱스들은 테스트 메모리 영역에 포함된 n개의 테스트 메모리 유닛들에 각각 대응할 수 있다. 인덱스는 테스트 메모리 유닛들에 부여된 어드레스, 또는 테스트 메모리 유닛들을 식별할 수 있는 번호, 또는 테스트 메모리 유닛들을 구별할 수 있는 정보일 수 있다. 세로축의 라이트 소요 시간은 대응하는 인덱스를 가진 테스트 메모리 유닛의 라이트 소요 시간일 수 있다.
한편, 테스트 메모리 영역은 저장 매체(120)의 메모리 영역들(MR1~MRm) 중 어느 하나일 수 있다. 테스트 장치 또는 컨트롤러(110)는 테스트 메모리 영역에 포함된 모든 메모리 유닛들, 즉, 테스트 메모리 유닛들에 대해 라이트 동작을 수행해 봄으로써 그래프(41)와 같은 라이트 소요 시간을 파악할 수 있다. 도3을 참조하여 설명한 바와 같이, 어떤 테스트 메모리 영역에 대한 라이트 소요 시간의 특성은 도1의 메모리 영역들(MR1~MRm) 각각에 대해서도 동일 또는 유사할 수 있다. 즉, 테스트 메모리 유닛들 각각은 어떤 메모리 영역에서 동일한 인덱스를 가진 메모리 유닛과 라이트 소요 시간에 대해 동일 또는 유사한 특성을 가질 수 있다. 따라서, 도1의 메모리 영역들(MR1~MRm) 각각은 그래프(41)와 유사한 라이트 소요 시간의 특성을 가질 수 있다.
도4의 그래프(42)는 라이트 소요 시간의 오름차순으로 테스트 메모리 유닛의 인덱스들을 재정렬한 결과일 수 있다. 여기에서 앞에서부터, 즉, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 소정 개수, 예를 들어 인덱스들 {50, 75, 3, 12}이 테이블(TBL)을 구성하도록 선택될 수 있다.
테이블(TBL)에 포함된 인덱스들은 1회의 메모리 덤프 동작에서 사용될 타겟 메모리 유닛들의 인덱스들일 수 있다. 즉, 메모리 덤프 동작은 테이블(TBL)을 참조하여 타겟 메모리 영역에서 인덱스들 {50, 75, 3, 12}을 가지는 타겟 메모리 유닛들에 대해 수행될 수 있다.
한편, 테이블(TBL)을 구성하도록 선택되는 인덱스들의 총 개수, 즉, 메모리 덤프 동작에서 사용되는 타겟 메모리 유닛들의 개수(이하 덤프 개수)는 메모리(111)의 저장 용량에 따라 결정될 수 있다.
도5는 본 발명의 실시 예에 따라 도1의 컨트롤러(110)가 테이블(TBL)을 참조하여 메모리 덤프 동작을 수행하는 방법을 도시하는 도면이다. 테이블(TBL)은 예를 들어 도4에서 결정된 것일 수 있다.
도5를 참조하면, 컨트롤러(110)는 메모리 덤프 동작들(DP1, DP2) 각각을 수행할 때마다 도1의 복수의 메모리 영역들(MR1~MRm) 중 새로운 타겟 메모리 영역(TMR)에 대해 메모리 덤프 동작을 수행할 수 있다. 이때, 컨트롤러(110)는 메모리 덤프 동작들(DP1, DP2) 각각을 수행할 때마다 테이블(TBL)을 참조하여 타겟 메모리 영역(TMR)에서 라이트 소요 시간이 짧을 것으로 추정되는 메모리 유닛들만 메모리 덤프 동작의 타겟 메모리 유닛들(TMU)로서 사용할 수 있다. 타겟 메모리 영역(TMR)에서 타겟 메모리 유닛들(TMU)을 제외한 나머지 메모리 유닛들은 메모리 덤프 동작에서 사용되지 않을 수 있다.
구체적으로, 제1 서든 파워 오프에 의해 메모리 덤프 동작(DP1)을 수행할 때, 컨트롤러(110)는 메모리 영역(MR1)을 메모리 덤프 동작(DP1)의 타겟 메모리 영역(TMR)으로서 사용할 수 있다. 컨트롤러(110)는 타겟 메모리 영역(MR1)에 포함된 메모리 유닛들 중 테이블(TBL)에 포함된 인덱스들 {50, 75, 3, 12}의 타겟 메모리 유닛들(TMU)에 대해 메모리 덤프 동작(DP1)을 수행할 수 있다. 메모리 영역(MR1)의 타겟 메모리 유닛들(TMU)은 메모리 영역(MR1)의 나머지 메모리 유닛들보다 짧은 라이트 소요 시간을 가질 수 있다.
제2 서든 파워 오프에 의해 메모리 덤프 동작(DP2)을 수행할 때, 컨트롤러(110)는 메모리 영역(MR2)을 메모리 덤프 동작(DP2)의 타겟 메모리 영역(TMR)으로서 사용할 수 있다. 컨트롤러(110)는 타겟 메모리 영역(MR2)에 포함된 메모리 유닛들 중 테이블(TBL)에 포함된 인덱스들 {50, 75, 3, 12}의 타겟 메모리 유닛들(TMU)에 대해 메모리 덤프 동작(DP2)을 수행할 수 있다. 메모리 영역(MR2)의 타겟 메모리 유닛들(TMU)은 메모리 영역(MR2)의 나머지 메모리 유닛들보다 짧은 라이트 소요 시간을 가질 수 있다.
한편, 각 메모리 덤프 동작에서 타겟 메모리 유닛들(TMU)에 대해 라이트 동작이 수행되는 순서는, 테이블(TBL)에서 인덱스들이 정렬된 순서와 동일할 수 있다.
실시 예에 따라, 각 메모리 덤프 동작에서 타겟 메모리 유닛들(TMU)에 대해 라이트 동작이 수행되는 순서는, 테이블(TBL)에서 인덱스들이 정렬되는 순서와 무관할 수 있다. 예를 들어, 테이블(TBL)에서 인덱스들 {50, 75, 3, 12}이 어떤 순서로 정렬되든지, 라이트 동작은 {3, 12, 50, 75} 순서 또는 어떤 다른 순서로 수행될 수 있다. 그 이유는, 테이블(TBL)의 인덱스들에 대응하는 라이트 소요 시간의 총합은 결국 라이트 동작이 수행되는 순서와 무관하게 일정하기 때문이다.
또한 상기와 같은 이유로, 테이블(TBL)의 인덱스들은 각 인덱스에 대응하는 라이트 소요 시간과 무관하게 정렬될 수 있다.
정리하면, 컨트롤러(110)는 타겟 메모리 영역(TMR)에서 다른 메모리 유닛들보다 라이트 소요 시간이 짧을 것으로 추정되는 타겟 메모리 유닛들(TMU)에 대해 메모리 덤프 동작을 수행함으로써 메모리 덤프 동작을 신속하게 완료할 수 있다. 따라서, 메모리 시스템(100)의 성능이 향상될 수 있다.
도6a는 본 발명의 실시 예에 따라 도1의 테이블(TBL)이 결정되는 방법을 도시하는 도면이다.
도6a를 참조하면, 위의 그래프에서 가로축은 테스트 메모리 유닛의 인덱스이고 세로축은 대응하는 테스트 메모리 유닛의 라이트 소요 시간일 수 있다. 도6a의 그래프는 도4의 그래프(42)와 같이 라이트 소요 시간의 오름차순으로 테스트 메모리 유닛의 인덱스들을 재정렬한 결과일 수 있다.
상술한 바와 같이, 복수의 인덱스 세트들(SET1~SETk)이 테이블(TBL)을 구성하도록 생성될 수 있다. 인덱스 세트들(SET1~SETk) 각각은 서로 다른 테스트 메모리 유닛들의 인덱스들을 포함할 수 있다. 인덱스 세트들(SET1~SETk)은, 라이트 소요 시간의 오름차순으로 정렬된 인덱스들 중에서 앞에서부터 제1 개수씩 인덱스들을 순서대로 포함하고 동시에 뒤에서부터 제2 개수씩 인덱스들을 순서대로 포함할 수 있다.
예를 들어, 제1 개수 및 제2 개수는 각각 2일 수 있다. 이러한 경우, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 2개의 인덱스들 {50, 75}과, 라이트 소요 시간이 가장 긴 인덱스부터 내림차순으로 2개의 인덱스들 {43, 23}이 제1 인덱스 세트(SET1)를 구성하도록 선택될 수 있다.
그리고, 제1 인덱스 세트(SET1)를 제외한 나머지 인덱스들 중, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 2개의 인덱스들 {3, 12}과, 라이트 소요 시간이 가장 긴 인덱스부터 내림차순으로 2개의 인덱스들 {35, 20}이 제2 인덱스 세트(SET2)를 구성하도록 선택될 수 있다.
상술한 인덱스 세트 생성 방식은 제1 인덱스 세트(SET1) 및 제2 인덱스 세트(SET2)를 제외한 모든 나머지 인덱스들에도 동일하게 반복될 수 있다.
한편, 제1 개수 및 제2 개수는 동일하거나 다를 수 있다. 실시 예에 따라, 덤프 개수가 짝수일 때, 제1 개수 및 제2 개수는 덤프 개수의 절반일 수 있다. 실시 예에 따라, 덤프 개수가 홀수일 때, 제1 개수 및 제2 개수는 덤프 개수의 절반에 가장 가까운 두 정수들일 수 있다.
테이블(TBL)에 포함된 인덱스 세트들(SET1~SETk)은 메모리 덤프 동작이 수행될 때마다 순서대로 사용될 수 있다. 즉, 각 인덱스 세트에 포함된 인덱스들은 1회의 메모리 덤프 동작에서 사용될 타겟 메모리 유닛들의 인덱스들일 수 있다.
도6b는 본 발명의 실시 예에 따라 각 인덱스 세트에 대응하는 라이트 소요 시간의 총합을 도시하는 그래프이다. 도6b의 그래프에서 가로축은 인덱스 세트들(SET1~SETk)이고, 세로축은 각 인덱스 세트를 구성하는 인덱스들에 대응하는 라이트 소요 시간의 총합일 수 있다.
도6a를 참조하여 설명된 인덱스 세트 생성 방식에 따르면, 6b에 도시된 바와 같이, 각각의 인덱스 세트들(SET1~SETk)에 대응하는 라이트 소요 시간의 총합들이 서로 비슷할 수 있다. 따라서, 메모리 덤프 동작이 인덱스 세트들(SET1~SETk)에 대해 순서대로 수행되는 동안, 메모리 덤프 동작의 수행 시간의 변동폭은 극히 작을 수 있다. 따라서, 메모리 덤프 동작이 원활하게 제어될 수 있고, 메모리 시스템(100)의 성능이 개선될 수 있다.
도7은 본 발명의 실시 예에 따라 도1의 컨트롤러(110)가 테이블(TBL)을 참조하여 메모리 덤프 동작을 수행하는 방법을 도시하는 도면이다. 테이블(TBL)은 예를 들어 도6a에서 결정된 것일 수 있다.
도7을 참조하면, 도5에서 타겟 메모리 영역(TMR)마다 일부만 메모리 덤프 동작에 사용한 점과 달리, 컨트롤러(110)는 타겟 메모리 영역(TMR)이 다 찰 때까지 타겟 메모리 영역(TMR)에 대해 메모리 덤프 동작을 계속 수행할 수 있다. 이때, 메모리 덤프 동작이 수행될 때마다 타겟 메모리 영역(TMR)에서 테이블(TBL)의 인덱스 세트들(SET1~SETk)이 순서대로 타겟 인덱스 세트로서 참조될 수 있다.
구체적으로, 제1 서든 파워 오프에 의해 메모리 덤프 동작(DP1)을 수행할 때, 컨트롤러(110)는 메모리 영역(MR1)을 메모리 덤프 동작(DP1)의 타겟 메모리 영역(TMR)으로서 사용할 수 있다. 컨트롤러(110)는 인덱스 세트들(SET1~SETk) 중 제1 인덱스 세트(SET1)를 타겟 인덱스 세트(TSET)로서 참조하여 타겟 메모리 영역(TMR)에서 타겟 메모리 유닛 세트(TMUS)를 선택하고, 타겟 메모리 유닛 세트(TMUS)에 대해 메모리 덤프 동작(DP1)을 수행할 수 있다. 메모리 덤프 동작(DP1)의 타겟 메모리 유닛 세트(TMUS)는 제1 인덱스 세트(SET1)의 인덱스들 {50, 75, 43, 23}의 타겟 메모리 유닛들로 구성될 수 있다.
제2 서든 파워 오프에 의해 메모리 덤프 동작(DP2)을 수행할 때, 컨트롤러(110)는 타겟 메모리 영역(TMR)을 계속 사용할 수 있다. 컨트롤러(110)는 인덱스 세트들(SET1~SETk) 중 제2 인덱스 세트(SET2)를 타겟 인덱스 세트(TSET)로서 참조하여 타겟 메모리 영역(TMR)에서 타겟 메모리 유닛 세트(TMUS)를 선택하고, 타겟 메모리 유닛 세트(TMUS)에 대해 메모리 덤프 동작(DP2)을 수행할 수 있다. 메모리 덤프 동작(DP2)의 타겟 메모리 유닛 세트(TMUS)는 제2 인덱스 세트(SET2)의 인덱스들 {3, 12, 35, 20}의 타겟 메모리 유닛들로 구성될 수 있다.
제k 서든 파워 오프에 의해 메모리 덤프 동작(DPk)을 수행할 때, 컨트롤러(110)는 타겟 메모리 영역(TMR)을 계속 사용할 수 있다. 컨트롤러(110)는 인덱스 세트들(SET1~SETk) 중 제k 인덱스 세트(SETk)를 타겟 인덱스 세트(TSET)로서 참조하여 타겟 메모리 영역(TMR)에서 타겟 메모리 유닛 세트(TMUS)를 선택하고, 타겟 메모리 유닛 세트(TMUS)에 대해 메모리 덤프 동작(DPk)을 수행할 수 있다. 메모리 덤프 동작(DPk)의 타겟 메모리 유닛 세트(TMUS)는 제k 인덱스 세트(SETk)의 인덱스들의 타겟 메모리 유닛들로 구성될 수 있다.
그리고 이후에 서든 파워 오프가 발생할 때 타겟 메모리 영역(TMR)은 다 찼으므로, 컨트롤러(110)는 도1의 메모리 영역들(MR2~MRm) 중 어느 하나를 새로운 타겟 메모리 영역으로 선택하고 상술한 방법과 유사하게 메모리 덤프 동작을 수행할 수 있다.
한편, 테이블(TBL)의 인덱스 세트들(SET1~SETk)은 메모리 덤프 동작이 수행될 때마다 테이블(TBL)에서 정렬된 순서대로 사용될 수 있다. 다만 도6b에서 설명한 바와 같이, 각각의 인덱스 세트들(SET1~SETk)에 대응하는 라이트 소요 시간의 총합들은 비슷하기 때문에, 인덱스 세트들(SET1~SETk)은 생성된 순서와 무관하게 테이블에서 정렬될 수도 있다.
도8은 본 발명의 실시 예에 따라 도1의 테이블(TBL)이 결정되는 방법을 도시하는 도면이다.
도8을 참조하면, 그래프에서 가로축은 테스트 메모리 유닛의 인덱스이고 세로축은 대응하는 테스트 메모리 유닛의 라이트 소요 시간일 수 있다. 도8의 그래프는 도4의 그래프(42)와 같이 라이트 소요 시간의 오름차순으로 테스트 메모리 유닛의 인덱스들을 재정렬한 결과일 수 있다.
테이블(TBL)은 복수의 인덱스 세트들(SET1~SETk)을 포함할 수 있다. 도8의 인덱스 세트들(SET1~SETk)은 도6a의 인덱스 세트들(SET1~SETk)과 다른 방식으로 생성될 수 있다.
구체적으로, 우선, 라이트 소요 시간의 오름차순으로 정렬된 인덱스들 사이에서 라이트 소요 시간의 증가량이 임계값(TH)보다 큰 하나 이상의 포인트들이 있을 때, 해당 포인트들을 기준으로 인덱스들이 복수의 인덱스 그룹들로 분리될 수 있다. 다른 말로 하면, 라이트 소요 시간의 오름차순으로 정렬된 인덱스들에 대해 앞선 인덱스와 후속 인덱스의 라이트 소요 시간의 차이를 산출하고 차이가 임계값(TH)을 초과하는 포인트들이 있을 때, 해당 포인트들을 기준으로 인덱스들이 복수의 인덱스 그룹들로 분리될 수 있다. 예를 들어, 포인트(PT1)에서 라이트 소요 시간의 증가량이 임계값(TH)보다 클 때, 포인트(PT1)를 기준으로 인덱스들이 2개의 인덱스 그룹들(IDG1, IDG2)로 분리될 수 있다.
그리고, 각 인덱스 그룹에 포함된 인덱스들의 총 개수에 근거하여 각 인덱스 그룹마다 그룹 비율이 계산될 수 있다. 그룹 비율은 각 인덱스 그룹에 포함된 인덱스들의 총 개수를 테스트 메모리 유닛들의 총 개수로 나누어 계산될 수 있다. 예를 들어, 인덱스 그룹(IDG1)의 그룹 비율은 0.7이고, 인덱스 그룹(IDG2)의 그룹 비율은 0.3일 수 있다.
그리고, 덤프 개수 및 그룹 비율에 근거하여 각 인덱스 그룹마다 할당 개수가 계산될 수 있다. 할당 개수는 덤프 개수에 그룹 비율을 곱하여 계산될 수 있다. 예를 들어, 덤프 개수가 10일 때, 인덱스 그룹(IDG1)의 할당 개수는 7이고, 인덱스 그룹(IDG2)의 할당 개수는 3일 수 있다.
그리고, 각 인덱스 그룹에서 각각이 할당 개수의 인덱스들을 포함하는 서브 인덱스 세트들이 순서대로 생성될 수 있다. 각 인덱스 그룹에서 각각이 할당 개수의 인덱스들을 포함하는 서브 인덱스 세트들을 순서대로 생성하는 방식은, 도6a에서 전체 n개의 인덱스들에서 각각이 덤프 개수의 인덱스들을 포함하는 인덱스 세트들을 순서대로 생성하는 방식과 유사할 수 있다.
구체적으로, 각 인덱스 그룹에서 서브 인덱스 세트들은, 각 인덱스 그룹에서 라이트 소요 시간의 오름차순으로 정렬된 인덱스들 중에서, 앞에서부터 제1 개수씩 인덱스들을 순서대로 포함하고, 동시에 뒤에서부터 제2 개수씩 인덱스들을 순서대로 포함할 수 있다.
예를 들어, 인덱스 그룹(IDG1)에서 제1 개수는 3이고 제2 개수는 4일 수 있다. 이러한 경우, 인덱스 그룹(IDG1)에서, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 3개의 인덱스들(S11)과 라이트 소요 시간이 가장 긴 인덱스부터 내림차순으로 4개의 인덱스들(S12)이 인덱스 그룹(IDG1)의 제1 서브 인덱스 세트(IDG1_S1)를 구성하도록 선택될 수 있다. 그리고, 인덱스 그룹(IDG1)에서, 제1 서브 인덱스 세트(IDG1_S1)를 제외한 나머지 인덱스들 중, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 3개의 인덱스들(S21)과 라이트 소요 시간이 가장 긴 인덱스부터 내림차순으로 4개의 인덱스들(S22)이 인덱스 그룹(IDG1)의 제2 서브 인덱스 세트(IDG1_S2)를 구성하도록 선택될 수 있다. 상술한 서브 인덱스 세트 생성 방식은 인덱스 그룹(IDG1)에서 제1 서브 인덱스 세트(IDG1_S1) 및 제2 서브 인덱스 세트(IDG1_S2)를 제외한 모든 나머지 인덱스들에도 동일하게 반복될 수 있다.
그리고 예를 들어, 인덱스 그룹(IDG2)에서 제1 개수는 2이고 제2 개수는 1일 수 있다. 이러한 경우, 인덱스 그룹(IDG2)에서, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 2개의 인덱스들(S13)과 라이트 소요 시간이 가장 긴 인덱스부터 내림차순으로 1개의 인덱스(S14)가 인덱스 그룹(IDG2)의 제1 서브 인덱스 세트(IDG2_S1)를 구성하도록 선택될 수 있다. 그리고, 인덱스 그룹(IDG2)에서, 제1 서브 인덱스 세트(IDG2_S1)를 제외한 나머지 인덱스들 중, 라이트 소요 시간이 가장 짧은 인덱스부터 오름차순으로 2개의 인덱스들(S23)과 라이트 소요 시간이 가장 긴 인덱스부터 내림차순으로 1개의 인덱스(S24)가 인덱스 그룹(IDG2)의 제2 서브 인덱스 세트(IDG2_S2)를 구성하도록 선택될 수 있다. 상술한 서브 인덱스 세트 생성 방식은 인덱스 그룹(IDG2)에서 제1 서브 인덱스 세트(IDG2_S1) 및 제2 서브 인덱스 세트(IDG2_S2)를 제외한 모든 나머지 인덱스들에도 동일하게 반복될 수 있다.
한편, 각 인덱스 그룹에서 제1 개수 및 제2 개수의 합은 각 인덱스 그룹에 대응하는 할당 개수와 일치할 수 있다. 각 인덱스 그룹의 할당 개수가 짝수일 때, 각 인덱스 그룹에서 제1 개수 및 제2 개수 각각은 각 인덱스 그룹의 할당 개수의 절반일 수 있다. 각 인덱스 그룹의 할당 개수가 홀수일 때, 각 인덱스 그룹에서 제1 개수 및 제2 개수는 각 인덱스 그룹의 할당 개수의 절반에 가장 가까운 두 정수들일 수 있다.
그리고, 모든 인덱스 그룹들에서 동일한 순서의 서브 인덱스 세트들이 해당 순서의 인덱스 세트로 통합될 수 있다. 예를 들어, 인덱스 그룹(IDG1)의 제1 서브 인덱스 세트(IDG1_S1)와 인덱스 그룹(IDG2)의 제1 서브 인덱스 세트(IDG2_S1)가 제1 인덱스 세트(SET1)로 통합될 수 있다. 그리고, 인덱스 그룹(IDG1)의 제2 서브 인덱스 세트(IDG1_S2)와 인덱스 그룹(IDG2)의 제2 서브 인덱스 세트(IDG2_S2)가 제2 인덱스 세트(SET2)로 통합될 수 있다.
도8을 참조하여 설명된 인덱스 세트 생성 방식에 따르면, 각각의 인덱스 세트들(SET1~SETk)에 대응하는 라이트 소요 시간의 총합들이 서로 비슷할 수 있다. 특히 포인트(PT1)와 같은 갭이 있을 때, 도8을 참조하여 설명된 인덱스 세트 생성 방식은 인덱스들을 인덱스 세트들(SET1~SETk)에 더 고르게 분산시킴으로써 도6a를 참조하여 설명된 방식보다 그러한 효과를 더 잘 달성할 수 있다.
한편, 컨트롤러(110)가 도8의 테이블(TBL)을 참조하여 메모리 덤프 동작을 수행하는 방법은, 도7을 참조하여 설명한 방법과 실질적으로 동일하므로, 그에 대한 상세한 설명은 생략될 것이다.
도 9는 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면이다. 도 9를 참조하면, 데이터 처리 시스템(1000)은 호스트 장치(1100)와 솔리드 스테이트 드라이브(solid state drive)(1200)(이하, SSD라 칭함)를 포함할 수 있다.
SSD(1200)는 컨트롤러(1210), 버퍼 메모리 장치(1220), 비휘발성 메모리 장치들(1231~123n), 전원 공급기(1240), 신호 커넥터(1250) 및 전원 커넥터(1260)를 포함할 수 있다.
컨트롤러(1210)는 SSD(1200)의 제반 동작을 제어할 수 있다. 컨트롤러(1210)는 도1의 컨트롤러(110)와 실질적으로 동일하게 동작할 수 있다.
컨트롤러(1210)는 호스트 인터페이스 유닛(1211), 컨트롤 유닛(1212), 랜덤 액세스 메모리(1213), 에러 정정 코드(ECC) 유닛(1214) 및 메모리 인터페이스 유닛(1215)을 포함할 수 있다.
호스트 인터페이스 유닛(1211)은 신호 커넥터(1250)를 통해서 호스트 장치(1100)와 신호(SGL)를 주고 받을 수 있다. 여기에서, 신호(SGL)는 커맨드, 어드레스, 데이터 등을 포함할 수 있다. 호스트 인터페이스 유닛(1211)은, 호스트 장치(1100)의 프로토콜에 따라서, 호스트 장치(1100)와 SSD(1200)를 인터페이싱할 수 있다. 예를 들면, 호스트 인터페이스 유닛(1211)은, 시큐어 디지털(secure digital), USB(universal serial bus), MMC(multi-media card), eMMC(embedded MMC), PCMCIA(personal computer memory card international association), PATA(parallel advanced technology attachment), SATA(serial advanced technology attachment), SCSI(small computer system interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI Expresss), UFS(universal flash storage)와 같은 표준 인터페이스 프로토콜들 중 어느 하나를 통해서 호스트 장치(1100)와 통신할 수 있다.
컨트롤 유닛(1212)은 호스트 장치(1100)로부터 입력된 신호(SGL)를 분석하고 처리할 수 있다. 컨트롤 유닛(1212)은 SSD(1200)를 구동하기 위한 펌웨어 또는 소프트웨어에 따라서 백그라운드 기능 블럭들의 동작을 제어할 수 있다. 랜덤 액세스 메모리(1213)는 이러한 펌웨어 또는 소프트웨어를 구동하기 위한 동작 메모리로서 사용될 수 있다. 랜덤 액세스 메모리(1213)는 도1의 메모리(111)에 대응할 수 있다.
에러 정정 코드(ECC) 유닛(1214)은 비휘발성 메모리 장치들(1231~123n)로 전송될 데이터의 패리티 데이터를 생성할 수 있다. 생성된 패리티 데이터는 데이터와 함께 비휘발성 메모리 장치들(1231~123n)에 저장될 수 있다. 에러 정정 코드(ECC) 유닛(1214)은 패리티 데이터에 근거하여 비휘발성 메모리 장치들(1231~123n)로부터 독출된 데이터의 에러를 검출할 수 있다. 만약, 검출된 에러가 정정 범위 내이면, 에러 정정 코드(ECC) 유닛(1214)은 검출된 에러를 정정할 수 있다.
메모리 인터페이스 유닛(1215)은, 컨트롤 유닛(1212)의 제어에 따라서, 비휘발성 메모리 장치들(1231~123n)에 커맨드 및 어드레스와 같은 제어 신호를 제공할 수 있다. 그리고 메모리 인터페이스 유닛(1215)은, 컨트롤 유닛(1212)의 제어에 따라서, 비휘발성 메모리 장치들(1231~123n)과 데이터를 주고받을 수 있다. 예를 들면, 메모리 인터페이스 유닛(1215)은 버퍼 메모리 장치(1220)에 저장된 데이터를 비휘발성 메모리 장치들(1231~123n)로 제공하거나, 비휘발성 메모리 장치들(1231~123n)로부터 읽혀진 데이터를 버퍼 메모리 장치(1220)로 제공할 수 있다.
버퍼 메모리 장치(1220)는 비휘발성 메모리 장치들(1231~123n)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(1220)는 비휘발성 메모리 장치들(1231~123n)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(1220)에 임시 저장된 데이터는 컨트롤러(1210)의 제어에 따라 호스트 장치(1100) 또는 비휘발성 메모리 장치들(1231~123n)로 전송될 수 있다.
비휘발성 메모리 장치들(1231~123n)은 SSD(1200)의 저장 매체로 사용될 수 있다. 비휘발성 메모리 장치들(1231~123n) 각각은 복수의 채널들(CH1~CHn)을 통해 컨트롤러(1210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 비휘발성 메모리 장치가 연결될 수 있다. 하나의 채널에 연결되는 비휘발성 메모리 장치들은 동일한 신호 버스 및 데이터 버스에 연결될 수 있다.
전원 공급기(1240)는 전원 커넥터(1260)를 통해 입력된 전원(PWR)을 SSD(1200) 백그라운드에 제공할 수 있다. 전원 공급기(1240)는 보조 전원 공급기(1241)를 포함할 수 있다. 보조 전원 공급기(1241)는 서든 파워 오프(sudden power off)가 발생되는 경우, SSD(1200)가 정상적으로 종료될 수 있도록 전원을 공급할 수 있다. 보조 전원 공급기(1241)는 대용량 캐패시터들(capacitors)을 포함할 수 있다.
신호 커넥터(1250)는 호스트 장치(1100)와 SSD(1200)의 인터페이스 방식에 따라서 다양한 형태의 커넥터로 구성될 수 있다.
전원 커넥터(1260)는 호스트 장치(1100)의 전원 공급 방식에 따라서 다양한 형태의 커넥터로 구성될 수 있다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면이다. 도 10을 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 메모리 시스템(2200)을 포함할 수 있다.
호스트 장치(2100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(2100)는 호스트 장치의 기능을 수행하기 위한 백그라운드 기능 블럭들을 포함할 수 있다.
호스트 장치(2100)는 소켓(socket), 슬롯(slot) 또는 커넥터(connector)와 같은 접속 터미널(2110)을 포함할 수 있다. 메모리 시스템(2200)은 접속 터미널(2110)에 마운트(mount)될 수 있다.
메모리 시스템(2200)은 인쇄 회로 기판과 같은 기판 형태로 구성될 수 있다. 메모리 시스템(2200)은 메모리 모듈 또는 메모리 카드로 불릴 수 있다. 메모리 시스템(2200)은 컨트롤러(2210), 버퍼 메모리 장치(2220), 비휘발성 메모리 장치(2231~2232), PMIC(power management integrated circuit)(2240) 및 접속 터미널(2250)을 포함할 수 있다.
컨트롤러(2210)는 메모리 시스템(2200)의 제반 동작을 제어할 수 있다. 컨트롤러(2210)는 도1에 도시된 컨트롤러(110) 또는 도 9에 도시된 컨트롤러(1210)와 동일하게 구성될 수 있다.
버퍼 메모리 장치(2220)는 비휘발성 메모리 장치들(2231~2232)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(2220)는 비휘발성 메모리 장치들(2231~2232)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(2220)에 임시 저장된 데이터는 컨트롤러(2210)의 제어에 따라 호스트 장치(2100) 또는 비휘발성 메모리 장치들(2231~2232)로 전송될 수 있다.
비휘발성 메모리 장치들(2231~2232)은 메모리 시스템(2200)의 저장 매체로 사용될 수 있다.
PMIC(2240)는 접속 터미널(2250)을 통해 입력된 전원을 메모리 시스템(2200) 백그라운드에 제공할 수 있다. PMIC(2240)는, 컨트롤러(2210)의 제어에 따라서, 메모리 시스템(2200)의 전원을 관리할 수 있다.
접속 터미널(2250)은 호스트 장치의 접속 터미널(2110)에 연결될 수 있다. 접속 터미널(2250)을 통해서, 호스트 장치(2100)와 메모리 시스템(2200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 접속 터미널(2250)은 호스트 장치(2100)와 메모리 시스템(2200)의 인터페이스 방식에 따라 다양한 형태로 구성될 수 있다. 접속 터미널(2250)은 메모리 시스템(2200)의 어느 한 변에 배치될 수 있다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면이다. 도 11을 참조하면, 데이터 처리 시스템(3000)은 호스트 장치(3100)와 메모리 시스템(3200)을 포함할 수 있다.
호스트 장치(3100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(3100)는 호스트 장치의 기능을 수행하기 위한 백그라운드 기능 블럭들을 포함할 수 있다.
메모리 시스템(3200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(3200)은 솔더 볼(solder ball)(3250)을 통해서 호스트 장치(3100)에 마운트될 수 있다. 메모리 시스템(3200)은 컨트롤러(3210), 버퍼 메모리 장치(3220) 및 비휘발성 메모리 장치(3230)를 포함할 수 있다.
컨트롤러(3210)는 메모리 시스템(3200)의 제반 동작을 제어할 수 있다. 컨트롤러(3210)는 도1에 도시된 컨트롤러(110) 또는 도 9에 도시된 컨트롤러(1210)와 동일하게 구성될 수 있다.
버퍼 메모리 장치(3220)는 비휘발성 메모리 장치(3230)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(3220)는 비휘발성 메모리 장치들(3230)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(3220)에 임시 저장된 데이터는 컨트롤러(3210)의 제어에 따라 호스트 장치(3100) 또는 비휘발성 메모리 장치(3230)로 전송될 수 있다.
비휘발성 메모리 장치(3230)는 메모리 시스템(3200)의 저장 매체로 사용될 수 있다.
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 도시하는 도면이다. 도 11를 참조하면, 네트워크 시스템(4000)은 네트워크(4500)를 통해서 연결된 서버 시스템(4300) 및 복수의 클라이언트 시스템들(4410~4430)을 포함할 수 있다.
서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)로 데이터를 제공할 수 있다.
서버 시스템(4300)은 호스트 장치(4100) 및 메모리 시스템(4200)을 포함할 수 있다. 메모리 시스템(4200)은 도 1의 메모리 시스템(100), 도 9의 SSD(1200), 도 10의 메모리 시스템(2200), 도 11의 메모리 시스템(3200)으로 구성될 수 있다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템에 포함된 비휘발성 메모리 장치를 예시적으로 도시하는 블럭도이다. 도 13을 참조하면, 비휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 행 디코더(320), 데이터 읽기/쓰기 블럭(330), 열 디코더(340), 전압 발생기(350) 및 제어 로직(360)을 포함할 수 있다.
메모리 셀 어레이(310)는 워드 라인들(WL1~WLm)과 비트 라인들(BL1~BLn)이 서로 교차된 영역에 배열된 메모리 셀(MC)들을 포함할 수 있다.
행 디코더(320)는 워드 라인들(WL1~WLm)을 통해서 메모리 셀 어레이(310)와 연결될 수 있다. 행 디코더(320)는 제어 로직(360)의 제어에 따라 동작할 수 있다. 행 디코더(320)는 외부 장치(도시되지 않음)로부터 제공된 어드레스를 디코딩할 수 있다. 행 디코더(320)는 디코딩 결과에 근거하여 워드 라인들(WL1~WLm)을 선택하고, 구동할 수 있다. 예시적으로, 행 디코더(320)는 전압 발생기(350)로부터 제공된 워드 라인 전압을 워드 라인들(WL1~WLm)에 제공할 수 있다.
데이터 읽기/쓰기 블럭(330)은 비트 라인들(BL1~BLn)을 통해서 메모리 셀 어레이(310)와 연결될 수 있다. 데이터 읽기/쓰기 블럭(330)은 비트 라인들(BL1~BLn) 각각에 대응하는 읽기/쓰기 회로들(RW1~RWn)을 포함할 수 있다. 데이터 읽기/쓰기 블럭(330)은 제어 로직(360)의 제어에 따라 동작할 수 있다. 데이터 읽기/쓰기 블럭(330)은 동작 모드에 따라서 쓰기 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 예를 들면, 데이터 읽기/쓰기 블럭(330)은 쓰기 동작 시 외부 장치로부터 제공된 데이터를 메모리 셀 어레이(310)에 저장하는 쓰기 드라이버로서 동작할 수 있다. 다른 예로서, 데이터 읽기/쓰기 블럭(330)은 읽기 동작 시 메모리 셀 어레이(310)로부터 데이터를 독출하는 감지 증폭기로서 동작할 수 있다.
열 디코더(340)는 제어 로직(360)의 제어에 따라 동작할 수 있다. 열 디코더(340)는 외부 장치로부터 제공된 어드레스를 디코딩할 수 있다. 열 디코더(340)는 디코딩 결과에 근거하여 비트 라인들(BL1~BLn) 각각에 대응하는 데이터 읽기/쓰기 블럭(330)의 읽기/쓰기 회로들(RW1~RWn)과 데이터 입출력 라인(또는 데이터 입출력 버퍼)을 연결할 수 있다.
전압 발생기(350)는 비휘발성 메모리 장치(300)의 백그라운드 동작에 사용되는 전압을 생성할 수 있다. 전압 발생기(350)에 의해서 생성된 전압들은 메모리 셀 어레이(310)의 메모리 셀들에 인가될 수 있다. 예를 들면, 프로그램 동작 시 생성된 프로그램 전압은 프로그램 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다. 다른 예로서, 소거 동작 시 생성된 소거 전압은 소거 동작이 수행될 메모리 셀들의 웰-영역에 인가될 수 있다. 다른 예로서, 읽기 동작 시 생성된 읽기 전압은 읽기 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다.
제어 로직(360)은 외부 장치로부터 제공된 제어 신호에 근거하여 비휘발성 메모리 장치(300)의 제반 동작을 제어할 수 있다. 예를 들면, 제어 로직(360)은 비휘발성 메모리 장치(300)의 읽기, 쓰기, 소거 동작을 제어할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 메모리 시스템
110: 컨트롤러
111: 메모리
112: 테이블 저장부
120: 저장 매체
MR1~MRm: 메모리 영역들
MU11~MU1n: 메모리 유닛들

Claims (20)

  1. 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및
    서든 파워 오프에 의해 메모리 덤프 동작을 수행할 때 상기 메모리 유닛들 중 라이트 소요 시간이 나머지 메모리 유닛들보다 짧을 것으로 추정되는 하나 이상의 타겟 메모리 유닛들에 데이터를 저장하도록 구성된 컨트롤러를 포함하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 컨트롤러는 테이블에 근거하여 상기 메모리 유닛들 중 상기 타겟 메모리 유닛들을 선택하고,
    상기 테이블은 테스트 메모리 유닛들 중에서 라이트 소요 시간이 짧은 순서로 선택된 하나 이상의 테스트 메모리 유닛들에 대한 정보를 포함하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 테이블은 상기 하나 이상의 테스트 메모리 유닛들의 인덱스들을 포함하고,
    상기 컨트롤러는 상기 복수의 메모리 유닛들 중 상기 하나 이상의 테스트 메모리 유닛들의 상기 인덱스들과 동일한 인덱스들을 가진 메모리 유닛들을 상기 타겟 메모리 유닛들로 선택하는 메모리 시스템.
  4. 제2항에 있어서,
    상기 테스트 메모리 유닛들 각각은 상기 메모리 유닛들 중 동일한 인덱스를 가진 메모리 유닛과 라이트 소요 시간에 대해 동일 또는 유사한 특성을 가지는 메모리 시스템.
  5. 제1항에 있어서,
    상기 저장 매체는 복수의 메모리 영역들을 포함하고,
    상기 컨트롤러는 상기 메모리 덤프 동작을 수행할 때마다 상기 복수의 메모리 영역들 중 새로운 타겟 메모리 영역에서 새로운 타겟 메모리 유닛들을 선택하는 메모리 시스템.
  6. 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및
    테이블에 근거하여 상기 복수의 메모리 유닛들 중 타겟 메모리 유닛들을 포함하는 타겟 메모리 유닛 세트를 선택하고, 상기 타겟 메모리 유닛 세트를 사용하여 메모리 덤프 동작을 수행하도록 구성된 컨트롤러를 포함하되,
    상기 테이블은 상기 복수의 메모리 유닛들이 라이트 소요 시간에 따라 그룹핑된 메모리 유닛 세트들에 대한 정보를 포함하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 테이블은 상기 메모리 유닛 세트들에 각각 대응하는 인덱스 세트들을 포함하고, 상기 인덱스 세트들 각각은 서로 다른 테스트 메모리 유닛들의 인덱스들을 포함하고,
    상기 컨트롤러는 상기 인덱스 세트들 중 타겟 인덱스 세트에 포함된 인덱스들과 동일한 인덱스들을 가진 메모리 유닛들을 상기 타겟 메모리 유닛들로 선택하는 메모리 시스템.
  8. 제7항에 있어서,
    상기 인덱스 세트들은 소정 방식으로 생성되고, 상기 방식은,
    복수의 테스트 메모리 유닛들의 인덱스들을 상기 테스트 메모리 유닛들 각각의 라이트 소요 시간의 오름차순으로 정렬하는 단계; 및
    정렬된 인덱스들 중에서 앞에서부터 제1 개수씩 인덱스들을 순서대로 포함하고 동시에 뒤에서부터 제2 개수씩 인덱스들을 순서대로 포함하도록, 상기 인덱스 세트들을 순서대로 생성하는 단계를 포함하는 메모리 시스템.
  9. 제8항에 있어서,
    상기 제1 개수 및 제2 개수는 덤프 개수의 절반 또는 절반에 가장 가까운 두 정수들이고,
    상기 덤프 개수는 상기 메모리 덤프 동작을 수행하기 위해 필요한 메모리 유닛들의 개수인 메모리 시스템.
  10. 제7항에 있어서,
    상기 인덱스 세트들은 소정 방식으로 생성되고, 상기 방식은,
    복수의 테스트 메모리 유닛들의 인덱스들을 상기 테스트 메모리 유닛들 각각의 라이트 소요 시간의 오름차순으로 정렬하는 단계;
    정렬된 인덱스들 사이에서 상기 라이트 소요 시간의 증가량이 임계값보다 큰 하나 이상의 포인트들을 기준으로, 상기 정렬된 인덱스들을 인덱스 그룹들로 분리하는 단계;
    각 인덱스 그룹에 포함된 인덱스들의 총 개수에 근거하여 상기 각 인덱스 그룹마다 그룹 비율을 계산하는 단계;
    덤프 개수 및 상기 그룹 비율에 근거하여 상기 각 인덱스 그룹마다 할당 개수를 계산하는 단계;
    상기 각 인덱스 그룹에서 각각이 상기 할당 개수의 인덱스들을 포함하는 서브 인덱스 세트들을 순서대로 생성하는 단계; 및
    상기 인덱스 그룹들에서 동일한 순서의 서브 인덱스 세트들을 대응하는 순서의 인덱스 세트로 통합하는 단계를 포함하는 메모리 시스템.
  11. 제10항에 있어서,
    상기 각 인덱스 그룹에서 순서대로 생성된 상기 서브 인덱스 세트들은, 상기 각 인덱스 그룹에서 상기 라이트 소요 시간의 오름차순으로 정렬된 상기 인덱스들 중에서, 앞에서부터 제1 개수씩 인덱스들을 순서대로 포함하고, 동시에 뒤에서부터 제2 개수씩 인덱스들을 순서대로 포함하는 메모리 시스템.
  12. 제11항에 있어서,
    상기 제1 개수 및 상기 제2 개수는 상기 할당 개수의 절반 또는 절반에 가장 가까운 두 정수들인 메모리 시스템.
  13. 제7항에 있어서,
    상기 테스트 메모리 유닛들 각각은 동일한 인덱스를 가진 메모리 유닛과 라이트 소요 시간에 대해 동일 또는 유사한 특성을 가지는 메모리 시스템.
  14. 제7항에 있어서,
    상기 인덱스 세트들은 대응하는 테스트 메모리 유닛들의 라이트 소요 시간의 총합이 동일 또는 유사하도록 생성되는 메모리 시스템.
  15. 제7항에 있어서,
    상기 컨트롤러는 상기 메모리 덤프 동작을 수행할 때마다 상기 인덱스 세트들을 차례대로 상기 타겟 인덱스 세트로 선택함으로써 상기 타겟 메모리 영역이 다 찰 때까지 상기 타겟 메모리 영역을 사용하는 메모리 시스템.
  16. 복수의 메모리 유닛들을 포함하는 타겟 메모리 영역을 포함하는 저장 매체; 및
    서든 파워 오프 발생 시, 상기 복수의 메모리 유닛들 중 라이트 소요 시간에 따라 그룹핑된 타겟 메모리 유닛 세트에 대해 메모리 덤프 동작을 수행하도록 구성된 컨트롤러를 포함하는 메모리 시스템.
  17. 제16항에 있어서,
    상기 타겟 메모리 유닛 세트는 상기 메모리 유닛들 중 상기 라이트 소요 시간이 짧은 순으로 선택된 소정 개수의 메모리 유닛들을 포함하는 메모리 시스템.
  18. 제17항에 있어서,
    상기 컨트롤러는 상기 복수의 메모리 유닛들 중 상기 타겟 메모리 유닛 세트만 사용하는 메모리 시스템.
  19. 제16항에 있어서,
    상기 타겟 메모리 유닛 세트는 상기 메모리 유닛들 중 상기 라이트 소요 시간이 짧은 순으로 선택된 제1 개수의 메모리 유닛들과 상기 라이트 소요 시간이 긴 순으로 선택된 제2 개수의 메모리 유닛들을 포함하는 메모리 시스템.
  20. 제16항에 있어서,
    상기 타겟 메모리 유닛 세트는, 상기 메모리 유닛들이 분리된 메모리 유닛 그룹들 각각에서, 상기 라이트 소요 시간이 짧은 순으로 선택된 제1 개수의 메모리 유닛들과 상기 라이트 소요 시간이 긴 순으로 선택된 제2 개수의 메모리 유닛들을 포함하고,
    상기 메모리 유닛 그룹들은 상기 라이트 소요 시간의 오름차순으로 정렬된 상기 메모리 유닛들 중에서 앞선 메모리 유닛과 후속 메모리 유닛의 라이트 소요 시간의 차이가 임계값보다 큰 하나 이상의 포인트들을 기준으로 분리되는 메모리 시스템.
KR1020190132520A 2019-10-23 2019-10-23 메모리 시스템 KR20210048349A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190132520A KR20210048349A (ko) 2019-10-23 2019-10-23 메모리 시스템
US16/876,407 US11437113B2 (en) 2019-10-23 2020-05-18 Memory system
CN202010622023.1A CN112698784B (zh) 2019-10-23 2020-06-30 存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190132520A KR20210048349A (ko) 2019-10-23 2019-10-23 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20210048349A true KR20210048349A (ko) 2021-05-03

Family

ID=75505559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190132520A KR20210048349A (ko) 2019-10-23 2019-10-23 메모리 시스템

Country Status (3)

Country Link
US (1) US11437113B2 (ko)
KR (1) KR20210048349A (ko)
CN (1) CN112698784B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201113B (zh) * 2021-12-13 2023-06-02 建信金融科技有限责任公司 多对象存储桶的选择方法、装置及处理器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4200362B2 (ja) * 2003-02-20 2008-12-24 ソニー株式会社 記録媒体の記録制御方法、記録制御装置および電子機器
CN101203847B (zh) * 2005-03-11 2010-05-19 雅虎公司 用于管理列表的系统和方法
US8380925B2 (en) * 2009-05-22 2013-02-19 Hitachi, Ltd. Storage system comprising plurality of processor units
US8180994B2 (en) 2009-07-08 2012-05-15 Sandisk Technologies Inc. Optimized page programming order for non-volatile memory
KR102174030B1 (ko) * 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
CN104476923B (zh) * 2015-01-06 2016-08-10 珠海天威技术开发有限公司 耗材芯片及耗材容器、耗材芯片存储单元的供电方法
KR20160104389A (ko) * 2015-02-26 2016-09-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2019040470A (ja) * 2017-08-25 2019-03-14 東芝メモリ株式会社 メモリシステム
KR102578191B1 (ko) * 2018-04-09 2023-09-14 에스케이하이닉스 주식회사 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US20190163628A1 (en) * 2019-01-30 2019-05-30 Intel Corporation Multi-level system memory with a battery backed up portion of a non volatile memory level
US11099986B2 (en) * 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents

Also Published As

Publication number Publication date
US20210125679A1 (en) 2021-04-29
CN112698784A (zh) 2021-04-23
CN112698784B (zh) 2023-12-19
US11437113B2 (en) 2022-09-06

Similar Documents

Publication Publication Date Title
US11487669B2 (en) Memory system for storing data of log-structured merge tree structure and data processing system including the same
KR20200095103A (ko) 데이터 저장 장치 및 그 동작 방법
US20200117559A1 (en) Data storage device and operating method thereof
KR102592803B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11681462B2 (en) Memory system, operating method thereof and computing system
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US11704048B2 (en) Electronic device
US10747660B2 (en) Method and system for forming and using memory superblocks based on performance grades
KR102544162B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20200150898A1 (en) Memory system and operating method thereof
KR20190128498A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
KR20210156010A (ko) 저장 장치 및 그 동작 방법
KR20210048349A (ko) 메모리 시스템
US10776008B2 (en) Memory system and operating method thereof
KR20200142698A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210079894A (ko) 데이터 저장 장치 및 그것의 동작 방법
US12026398B2 (en) Memory system performing flush operation for buffer region
KR20210002190A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20200078101A (ko) 메모리 시스템 및 그것의 동작 방법
KR20190061942A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11954347B2 (en) Memory system and operating method thereof
US11954351B2 (en) Memory system, operating method thereof, and data processing system for processing duplicate data
US11379362B2 (en) Memory system and operating method thereof
KR102668125B1 (ko) 메모리 시스템 및 그것의 동작 방법
US20210223956A1 (en) Memory system and data processing system including the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal