KR102549548B1 - 메모리 시스템, 그것의 동작 방법 및 전자 장치 - Google Patents

메모리 시스템, 그것의 동작 방법 및 전자 장치 Download PDF

Info

Publication number
KR102549548B1
KR102549548B1 KR1020180052751A KR20180052751A KR102549548B1 KR 102549548 B1 KR102549548 B1 KR 102549548B1 KR 1020180052751 A KR1020180052751 A KR 1020180052751A KR 20180052751 A KR20180052751 A KR 20180052751A KR 102549548 B1 KR102549548 B1 KR 102549548B1
Authority
KR
South Korea
Prior art keywords
groups
memory
adjustment amount
memory blocks
controller
Prior art date
Application number
KR1020180052751A
Other languages
English (en)
Other versions
KR20190128498A (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 KR1020180052751A priority Critical patent/KR102549548B1/ko
Priority to US16/199,520 priority patent/US10824557B2/en
Priority to CN201811463186.9A priority patent/CN110456981B/zh
Publication of KR20190128498A publication Critical patent/KR20190128498A/ko
Application granted granted Critical
Publication of KR102549548B1 publication Critical patent/KR102549548B1/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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/064Management of blocks
    • 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
    • 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
    • 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/0608Saving storage space on 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/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/7202Allocation control and policies
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명의 실시 예에 따른 메모리 시스템은, 각각이 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리 장치들 및 복수의 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 관리하고, 선택된 하나 이상의 메모리 블록들의 리드 카운트들 근거하여 슈퍼 블록에 대한 리클레임 동작을 수행하도록 구성된 컨트롤러를 포함할 수 있고, 컨트롤러는, 슈퍼 블록을 복수의 그룹들로 분할하고, 리드 카운트에 기초하여 복수의 그룹들 중 하나 이상의 그룹을 선택하여 리클레임 동작을 수행할 수 있다.

Description

메모리 시스템, 그것의 동작 방법 및 전자 장치{MEMORY SYSTEM, OPERATING METHOD THEREOF AND ELECTRONIC DEVICE}
본 발명은 메모리 시스템 및 전자 장치에 관한 것으로, 더욱 상세하게는 비휘발성 메모리 장치들을 포함하는 메모리 시스템 및 전자 장치에 관한 것이다.
메모리 시스템은 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 메모리 시스템은 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 메모리 시스템은 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결됨으로써 동작할 수 있다.
메모리 장치를 이용한 메모리 시스템은 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 메모리 시스템은 USB(Universal Serial Bus) 메모리 장치, 다양한 인터페이스를 갖는 메모리 카드, UFS(Universal Flash Storage) 장치, 솔리드 스테이트 드라이브(Solid State Drive, 이하, SSD라 칭함)를 포함한다.
본 발명의 실시 예는, 리클레임 동작이 수행되는 그룹들의 개수를 가변적으로 적용하는 메모리 시스템을 제공하는 데 있다.
본 발명의 실시 예에 따른 메모리 시스템은, 각각이 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리 장치들 및 복수의 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 관리하고, 선택된 하나 이상의 메모리 블록들의 리드 카운트에 근거하여 슈퍼 블록에 대한 리클레임 동작을 수행하도록 구성된 컨트롤러를 포함할 수 있고, 컨트롤러는, 슈퍼 블록을 복수의 그룹들로 분할하고, 리드 카운트에 기초하여 복수의 그룹들 중 하나 이상의 그룹들을 선택하여 리클레임 동작을 수행할 수 있다.
본 발명의 실시 예에 따른 각각이 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리 장치들을 포함하는 메모리 시스템의 동작 방법은, 컨트롤러가, 복수의 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 구성하는 단계, 컨트롤러가, 슈퍼 블록을 복수의 그룹들로 분할하는 단계, 컨트롤러가, 그룹들 중 하나 이상의 그룹들을 선택하는 단계 및 선택된 하나 이상의 그룹들에 대하여 리클레임 동작을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 복수의 메모리 블록들을 포함하고, 컨트롤러에 의해 수행 가능한 인스트럭션들이 부호화되어 저장된 비 일시적 기계 판독 가능 저장 매체 및 컨트롤러를 포함할 수 있고, 인스트럭션들은, 메모리 블록들 중 하나 이상의 선택된 메모리 블록들을 슈퍼 블록으로 구성하고, 슈퍼 블록을 복수의 그룹들로 분할하고, 선택된 메모리 블록들의 리드 카운트에 근거하여, 슈퍼 블록에 대한 리클레임이 수행될 타겟 그룹의 개수를 결정하고, 결정된 개수의 그룹에 대한 리클레임 동작을 수행하도록 제어하는 인스트럭션을 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은, 리클레임 동작이 수행되는 그룹의 개수를 가변적으로 적용함으로써 백그라운드에서 수행되는 동작의 효율성을 향상시킬 수 있다.
또한, 리클레임 동작 수행을 통하여 데이터의 손실을 방지하고, 메모리 시스템의 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템의 구성을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 실시 예에 따른 슈퍼 블록의 구성을 예시적으로 도시한다.
도 3a 및 도 3b는 본 발명의 실시 예에 따라 슈퍼 블록을 복수의 그룹들로 분할하는 구성을 예시적으로 도시한다.
도 4는 본 발명의 실시 예에 따라, 리드 카운트들의 최대값의 차이를 예시적으로 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따라, 조절량이 결정되는 과정을 예시적으로 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 메모리 시스템의 구성을 상세하게 도시한 블록도이다.
도 7 내지 도 10은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 예시적으로 설명하는 순서도이다.
도 11은 본 발명의 실시 예에 따른 SSD를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 14는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 메모리 시스템에 포함된 비휘발성 메모리 장치를 예시적으로 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 예시적으로 보여주는 블록도이다.
메모리 시스템(100)은 휴대폰, MP3 플레이어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 차량용 인포테인먼트(in-vehicle infotainment) 시스템 등과 같은 호스트 장치(도시되지 않음)에 의해서 액세스되는 데이터를 저장할 수 있다.
메모리 시스템(100)은 호스트 장치와의 전송 프로토콜을 의미하는 호스트 인터페이스에 따라서 다양한 종류의 저장 장치들 중 어느 하나로 제조될 수 있다. 예를 들면, 메모리 시스템(100)은 SSD, MMC, eMMC, RS-MMC, micro-MMC 형태의 멀티 미디어 카드(multimedia card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(secure digital) 카드, USB(universal storage bus) 저장 장치, UFS(universal flash storage) 장치, PCMCIA(personal computer memory card international association) 카드 형태의 저장 장치, PCI(peripheral component interconnection) 카드 형태의 저장 장치, PCI-E(PCI express) 카드 형태의 저장 장치, CF(compact flash) 카드, 스마트 미디어(smart media) 카드, 메모리 스틱(memory stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구성될 수 있다.
메모리 시스템(100)은 다양한 종류의 패키지(package) 형태들 중 어느 하나로 제조될 수 있다. 예를 들면, 메모리 시스템(100)은 POP(package on package), SIP(system in package), SOC(system on chip), MCP(multi chip package), COB(chip on board), WFP(wafer-level fabricated package), WSP(wafer-level stack package) 등과 같은 다양한 종류의 패키지 형태들 중 어느 하나로 제조될 수 있다.
도 1을 참조하면, 본 발명의 실시 예에 따른 메모리 시스템은, 각각이 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리 장치들(300) 및 비휘발성 메모리 장치들(300)에 걸쳐서 구성된 슈퍼 블록들(SB0, SB1)에 대한 리클레임 동작을 개시하도록 구성될 컨트롤러(200)를 포함할 수 있다.
메모리 시스템(100)은 리드 리클레임(Read reclaim)이란 동작 모드를 적용하고 있다. 어느 하나의 메모리 블록이 반복적으로 읽혀지는 경우, 읽기 교란(Read disturbance)과 같은 문제로 에러 비트가 증가하게 된다. 메모리 블록에 저장된 데이터에서 정정 불가 에러(Uncorrectable Error)가 발생하기 전에 메모리 블록에 저장된 데이터를 다른 메모리 블록으로 이동시키는 동작을 리드 리클레임(Read reclaim)이라 한다. 본 명세서에서 기술하는 리클레임 동작은, 상술한 리드 리클레임을 의미할 수 있다.
리클레임 동작은, 복수의 블록들을 포함하는 슈퍼 블록 단위로 수행될 수 있다. 슈퍼 블록에 포함되는 블록들의 리드 카운트들을 측정하고, 적어도 하나의 블록의 리드 카운트가 기설정된 기준 이상인 경우, 슈퍼 블록에 포함되는 블록들 전체에 대하여 리클레임을 수행할 수 있다. 이 경우, 슈퍼 블록에 포함되는 블록들에 저장된 데이터를 한번의 리클레임 동작을 통하여 다른 블록들로 백업할 수 있으나, 슈퍼 블록에 포함되는 블록들 각각의 상태(예를 들어, 각 블록마다 상이한 리드 카운트)을 반영하지 못하여, 불필요한 E/W(Erase/Write) 사이클 횟수를 증가시킬 수 있다.
도 2는 본 발명의 실시 예에 따른 슈퍼 블록의 구성을 예시적으로 도시한다.
도 1 및 도 2를 참조하면, 컨트롤러(200)는 비휘발성 메모리 장치들(301, 302, 303)에 걸쳐서 하나 이상의 선택된 메모리 블록들을 슈퍼 블록으로 구성할 수 있다. 또한 메모리 블록들 각각은 복수의 페이지들을 포함할 수 있다. 설명의 편의를 위하여 3개의 비휘발성 메모리 장치들(301, 302, 303) 각각은 2개의 오프셋(0, 1)을 가지는 메모리 블록들을 포함하고, 각각의 메모리 블록들은 5개의 오프셋(0, 1, 2, 3, 4)을 가지는 페이지들을 포함하는 것으로 도시하였으나, 이에 한정되지 않고 비휘발성 메모리 장치들(301, 302, 303), 메모리 블록들 및 페이지들 각각은 하나 이상의 개수로 구성될 수 있다.
슈퍼 블록들(SB0, SB1)은 비휘발성 메모리 장치들(301, 302, 303)에 걸쳐 형성될 수 있다. 슈퍼 블록들(SB0, SB1) 각각은 비휘발성 메모리 장치들(301, 302, 303)에서 동일한 블록 오프셋을 가진 블록들을 포함할 수 있다. 예를 들어, 슈퍼 블록(SB0)은 비휘발성 메모리 장치들(301, 302, 303) 각각에서 블록 오프셋 "0"을 가진 블록들(B0_0, B1_0, B2_0)을 포함할 수 있다. 슈퍼 블록(SB1)은 비휘발성 메모리 장치들(301, 302, 303) 각각에서 블록 오프셋 "1"을 가진 블록들(B0_1, B1_1, B2_1)을 포함할 수 있다. 다만, 블록 오프셋은 슈퍼 블록을 분류하기 위한 기준이 아닐 수 있고, 동일한 슈퍼 블록을 형성하기 위해 사용되는 블록들은 이들의 각각의 비휘발성 메모리 장치 내에 동일한 상대적 위치로 제약될 필요는 없다.
도 3a 및 도 3b는 본 발명의 실시 예에 따라 슈퍼 블록을 복수의 그룹들로 분할하는 구성을 예시적으로 도시한다. 설명의 편의를 위하여, 각각의 메모리 블록들은 6개의 오프셋(0, 1, 2, 3, 4, 5)을 가지는 페이지들을 포함하는 것으로 도시하였으나, 메모리 블록들에 포함되는 페이지의 개수는 이에 제한되지는 않는다.
도 3a 및 도 3b를 참조하면, 실시 예에 따라, 각각의 그룹들(371 내지 376, 381 내지 383)은 메모리 블록들(B0_0, B1_0, B2_0) 각각에서 적어도 하나의 페이지를 포함할 수 있다.
실시 예에 따라, 그룹들(371 내지376) 각각은 메모리 블록들(B0_0, B1_0, B2_0) 각각에서 하나의 페이지를 포함할 수 있다. 특히, 동일한 페이지 오프셋을 가지는 페이지들이 같은 그룹으로 구성될 수 있다. 예를 들어, 도 3a에 도시된 바와 같이, 페이지 오프셋 "0"을 가지는 페이지들(P0_0, P1_0, P2_0)은 제 1 그룹(371)을 형성할 수 있다. 마찬가지로, 각각이 페이지 오프셋 "1" 내지 "5"를 가지는 페이지들은 각각 제2 그룹(372) 내지 제6 그룹(372)을 형성할 수 있다. 즉, 페이지 오프셋은 어떤 슈퍼 블록 내의 그룹들로 분류하기 위한 기준이 될 수 있다.
실시 예에 따라, 그룹들(381, 382, 383) 각각은 메모리 블록들(B0_0, B1_0, B2_0) 각각에서 2개의 페이지들을 포함할 수 있다. 도 3c를 참조하면, 제1 그룹(381)은 블록들(B0_0, B1_0, B2_0) 각각에 포함되는 페이지 오프셋 "0" 및 "1"을 가지는 페이지들(P0_0, P0_1, P1_0, P1_1, P2_0, P2_1)로 구성될 수 있다. 마찬가지로, 제2 그룹(382) 및 제3 그룹(383)은 블록들(B0_0, B1_0, B2_0) 각각에 포함되는 2개의 페이지 오프셋을 가지는 페이지들로 구성될 수 있다.
설명의 편의를 위하여 3개의 블록들(B0_0, B1_0, B2_0) 및 6개의 페이지 오프셋("0" 내지 "5")을 가지는 페이지들을 예로써 설명하였으나, 블록들의 개수 및 페이지 오프셋의 개수는 이에 한정되지 않고, 적어도 하나 이상으로 구성될 수 있음은 물론이다.
도 4는 본 발명의 실시 예에 따라, 리드 카운트들의 최대값의 차이를 예시적으로 설명하기 위한 도면이다. 설명의 편의를 위하여, 리클레임 동작의 대상이 되는 슈퍼 블록은 도 3a에 도시된 3개의 블록들(B0_0, B1_0, B2_0)을 포함한다고 가정한다.
도 1, 도 3a 및 도 4를 참조하면, 블록들(B0_0, B1_0, B2_0)에서 측정된 리드 카운트들의 최대값의 차이를 구할 수 있다. 실시 예에 따라, 리클레임 동작이 수행되는 그룹의 수(예를 들어, 제1 개수)는 조절량에 근거하여 결정될 수 있고, 조절량은 리드 카운트들의 차이 값 및 임계 기준을 비교하여 결정될 수 있다. 조절량이 결정되는 실시 예에 대한 설명은, 도 5에서 후술하도록 한다.
제1 시점(T1)에, 컨트롤러(200)는 슈퍼 블록에 포함되는 3개의 블록들(B0_0, B1_0, B2_0)의 리드 카운트를 측정할 수 있다. 제1 시점(T1)에서 블록(B0_0), 블록(B1_0), 블록(B2_0)의 리드 카운트는 각각 150k, 100k, 30k로 측정되었다고 가정한다.
제2 시점(T2)에, 컨트롤러(200)는 블록들(B0_0, B1_0, B2_0)의 리드 카운트를 측정할 수 있고, 블록(B0_0), 블록(B1_0), 블록(B2_0)의 리드 카운트는 각각 180k, 110k, 50k라고 예시한다. 제1 시점(T1)에서는 블록(B0_0)의 리드 카운트가 150k로 최대이고, 제2 시점(T2)에서 또한 블록(B0_0)의 리드 카운트가 180k로 최대이다. 따라서, 제1 시점(T1)과 제2 시점(T2)의 리드 카운트의 차이 값은 30k가 된다.
제3 시점(T3)에, 컨트롤러(200)는 블록들(B0_0, B1_0, B2_0)의 리드 카운트를 측정할 수 있고, 블록(B0_0), 블록(B1_0), 블록(B2_0)의 리드 카운트는 각각 200k, 220k, 180k라고 예시한다. 제2 시점(T2)에서는 블록(B0_0)의 리드 카운트가 180k로 최대이고, 제3 시점(T3)에서는 블록(B1_0)의 리드 카운트가 220k로 최대이다. 따라서, 제1 시점(T1)과 제2 시점(T2)의 리드 카운트의 차이 값은 40k이다. 즉, 리드 카운트의 차이 값은 동일 블록에서의 비교가 아닌, 각 시점에서 측정된 각 블록의 리드 카운트들 중 최대값을 비교하여, 리드 카운트의 비교 대상이 되는 블록들은 서로 상이할 수 있다.
실시 예에 따라, 슈퍼 블록에 대한 리클레임 동작이 처음 시작되는 시점은 제1 시점(T1)일 수 있다. 컨트롤러(200)는 슈퍼 블록에 포함되는 메모리 블록들 중 어느 하나에 대한 리드 카운트가 기설정된 소정의 값에 도달하는 경우, 해당 슈퍼 블록에 대한 리클레임 동작이 개시되도록 제어할 수 있다. 이 경우, 컨트롤러(200)는 제1 시점(T1)에서의 리드 카운트에 근거하여 제1 시점(T1)에 수행되는 리클레임 동작의 대상이 되는 그룹의 개수를 결정할 수 있고, 제1 시점(T1)에 리클레임 동작의 대상이 되는 그룹의 개수는, 기준 개수가 될 수 있다.
또한, 컨트롤러(200)는 제1 시점(T1)과 제2 시점(T2)에서의 리드 카운트들의 차이 값에 근거하여, 제2 시점(T2) 에 수행되는 리클레임 동작의 대상이 되는 그룹의 개수를 결정할 수 있다.
본 발명의 실시 예에 따라, 슈퍼 블록의 리클레임 동작이 수행되는 단위를 복수의 그룹으로 나누고, 리클레임 동작이 수행될 때마다 수행되는 그룹의 개수를 가변적으로 적용할 수 있다. 구체적으로, 신속한 리클레임 동작이 필요한 경우 일시에 리클레임 동작이 수행되는 그룹들의 개수를 증가시킴으로써 데이터 손실을 방지할 수 있고, 상대적으로 완만한 리클레임 동작이 허용되는 경우 일시에 리클레임 동작이 수행되는 그룹들의 개수를 감소시킴으로써 다른 동작(예를 들어, 호스트 디바이스의 요청에 의한 데이터의 라이트 동작)을 신속하게 수행할 수 있게 되어 효율적인 메모리 시스템의 제어가 가능하다.
도 5는 본 발명의 실시 예에 따라, 조절량이 결정되는 과정을 예시적으로 설명하기 위한 도면이다. 제1 임계 기준(REF1) 및 제2 임계 기준(REF2)은 메모리 블록들의 각 시점에서의 최대값의 차이에 대한 비교 대상이 되는 기준일 수 있다. 또한, 조절량은 리클레임이 수행되는 단위인 그룹들의 개수가 변화되는 개수를 의미할 수 있다. 설명의 편의를 위하여, 슈퍼 블록은 6개의 그룹들(G1, G2, G3, G4, G5, G6)로 분할된다고 가정하였으나, 본 발명의 실시 예로서 적용될 수 있는 그룹들의 개수는 이에 제한되지 않는다. 또한, 2개의 임계 기준들(REF1, REF2)을 예시하였으나, 이에 한정되지 않고 적어도 하나의 임계 기준들로 설정될 수 있음은 물론이다. 이하에서, 도 1 및 도 5를 참조하여, 조절량이 결정되는 과정을 설명한다.
(a)단계에서, 컨트롤러(200)는 제1 그룹(G1) 및 제2 그룹(G2)에 대한 리클레임 동작을 수행할 수 있다. 예시적으로 두 개의 그룹에 대한 리클레임 동작이 일시에 수행되었다고 가정하여 설명한다. 즉, 기준 개수는 2일 수 있다. 실시 예에 따라, 제1 그룹(G1) 및 제2 그룹(G2)에 대한 리클레임 동작 수행 후 바로 다음에 수행될 리클레임 동작은, 기준 개수 및 조절량을 합산한 개수의 그룹들에 대하여 일시에 수행될 수 있다. 조절량은 도 4에서 설명한 리드 카운트들의 차이 값(DV) 및 임계 기준들(REF1, REF2)을 비교하여 결정될 수 있다. 또한, 임계 기준들(REF1, REF2)은 컨트롤러(200)에 의하여 설정될 수 있고, 메모리 시스템(100)의 동작 환경에 따라 컨트롤러(200)에 의하여 변경 가능할 수 있다.
후술할 (case1) 내지 (case3)는, (a)단계에서 수행된 리클레임 동작 후 바로 다음에 수행되는 리클레임 동작이라고 가정한다.
실시 예에 따라, 컨트롤러(200)는 리드 카운트들의 차이 값(DV)이 제1 임계 기준(REF1) 미만인 때, 조절량을 음수로 결정할 수 있다. (case1) 에서, 컨트롤러(200)에 의하여 리드 카운트들의 차이 값(DV)이 제1 임계 기준(REF1) 미만으로 결정된 경우, 조절량은 "-1"로 결정될 수 있다. 이에 따라, 리클레임이 수행될 그룹의 수는 이전에 수행된 리클레임의 대상이었던 그룹들의 수보다 1만큼 적을 수 있다. 도시된 바와 같이, 제3 그룹(G3), 즉 하나의 그룹에 대하여 리클레임 동작이 수행될 수 있다.
실시 예에 따라, 컨트롤러(200)는 리드 카운트들의 차이 값(DV)이 제1 임계 기준(REF1) 이상 및 제2 임계 기준(REF2) 이하인 때, 조절량을 "0"으로 결정할 수 있다. (case2) 에서, 컨트롤러(200)에 의하여 리드 카운트들의 차이 값(DV)이 제1 임계 기준(REF1) 이상 및 제2 임계 기준(REF2) 이하인 것으로 결정된 경우, 조절량은 "0"으로 결정될 수 있다. 이에 따라, 리클레임이 수행될 그룹의 수는 이전에 수행된 리클레임의 대상이었던 그룹의 수와 동일할 수 있다. 도시된 바와 같이, 제3 그룹(G3) 및 제4 그룹(G4), 즉, 2개의 그룹들에 대하여 리클레임 동작이 수행될 수 있다.
실시 예에 따라, 컨트롤러(200)는 리드 카운트들의 차이 값(DV)이 제2 임계 기준(REF2)을 초과한 때, 조절량을 양수로 결정할 수 있다. (case3) 에서, 컨트롤러(200)에 의하여 리드 카운트들의 차이 값(DV)이 제2 임계 기준(REF2)을 초과하는 것으로 결정된 경우, 조절량은 "1"로 결정될 수 있다. 이에 따라, 리클레임이 수행될 그룹의 수는 이전에 수행된 리클레임의 대상이었던 그룹의 수보다 1만큼 많을 수 있다. 도시된 바와 같이, 제3 그룹(G3) 내지 제5 그룹(G5), 즉 3개의 그룹들에 대하여 리클레임 동작이 수행될 수 있다.
실시 예에 따라, 리클레임 동작이 수행되는 그룹들의 개수는 다양하게 설정될 수 있다. 도 5에서는 차이 값(DV)과 임계 기준들(REF1, REF2)의 비교에 따라서 조절량이 "-1", "0", "1"로 결정된다고 예시하였으나, 이에 제한되지는 않고 설정에 따라 다양하게 구현될 수 있다. 또한, 임계 기준들의 개수 역시 2개로 한정되지 않고, 다양하게 설정될 수 있음은 물론이다.
실시 예에 따라, 슈퍼 블록(SB)에 포함되는 모든 그룹들(G1 내지 G6)에 대하여 리클레임 동작이 수행될 때까지, 차이 값(DV)을 결정하고, 차이 값(DV)을 임계 기준(REF1, REF2)과 비교하여 조절량을 결정하고, 결정된 조절량에 근거하여 리클레임 동작을 수행하는 과정이 반복해서 수행될 수 있다.
또한, 실시 예에 따라, 해당 슈퍼 블록(SB)에 포함되는 그룹들(G1 내지 G6) 중 리클레임 동작이 수행되지 않은 그룹의 수가 기준 개수 이하인 경우, 리클레임 동작이 수행되지 않은 모든 그룹에 대하여 일시에 리클레임 동작을 수행할 수 있다. 예를 들면, case 3의 과정이 수행된 이후, 리클레임 동작이 수행되지 않은 그룹은 제6 그룹(G6)이 남게 된다. 즉, 기준 개수인 2보다 적은 하나의 그룹이 남아있게 되고, 이 후 조절량을 결정하는 동작이 생략되고, 제6 그룹(G6)에 대하여 리클레임 동작이 수행될 수 있을 것이다.
본 발명의 실시 예에 따른 메모리 시스템은, 비 일시적 기계 판독 가능 저장 매체를 포함하는 전자 장치의 형태로 구현될 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 복수의 메모리 블록들을 포함하고, 컨트롤러에 의해 수행 가능한 인스트럭션들이 부호화되어 저장된 비 일시적 기계 판독 가능 저장 매체 및 컨트롤러를 포함할 수 있고, 인스트럭션들은, 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 관리하고, 슈퍼 블록을 복수의 그룹들로 분할하고, 선택된 하나 이상의 메모리 블록들의 리드 카운트에 근거하여, 슈퍼 블록에 대한 리클레임이 수행될 타겟 그룹의 개수를 결정하고, 결정된 개수의 그룹에 대한 리클레임 동작을 수행하도록 제어하는 인스트럭션을 포함할 수 있다.
실시 예에 따라, 비 일시적 기계 판독 가능 저장 매체는 비휘발성 메모리 장치로 구성될 수 있다. 비휘발성 메모리 장치는 낸드(NAND) 플래시 메모리 장치, 노어(NOR) 플래시 메모리 장치, 강유전체 커패시터를 이용한 강유전체 램(ferroelectric random access memory: FRAM), 티엠알(tunneling magneto-resistive: TMR) 막을 이용한 마그네틱 램(magnetic random access memory: MRAM), 칼코겐 화합물(chalcogenide alloys)을 이용한 상 변화 램(phase change random access memory: PCRAM), 전이금속 산화물(transition metal oxide)을 이용한 저항성 램(resistive random access memory: RERAM) 등과 같은 다양한 형태의 비휘발성 메모리 중 어느 하나로 구성될 수 있다.
도 6은 본 발명의 실시 예에 따른 메모리 시스템의 구성을 상세하게 도시한 블록도이다.
메모리 시스템(100)은 컨트롤러(200)를 포함할 수 있다. 컨트롤러(200)는 컨트롤 유닛(210), 랜덤 액세스 메모리(220), 호스트 인터페이스 유닛(230) 및 메모리 컨트롤 유닛(240)을 포함할 수 있다.
컨트롤 유닛(210)은 마이크로 컨트롤 유닛(micro control unit)(MCU), 중앙 처리 장치(central processing unit)(CPU)로 구성될 수 있다. 컨트롤 유닛(210)은 호스트 장치로부터 전송된 리퀘스트를 처리할 수 있다. 컨트롤 유닛(210)은, 리퀘스트를 처리하기 위해서, 랜덤 액세스 메모리(220)에 로딩된 코드 형태의 명령(instruction) 또는 알고리즘, 즉, 펌웨어(FW)를 구동하고, 내부의 기능 블록들 및 비휘발성 메모리 장치들(300)를 제어할 수 있다.
랜덤 액세스 메모리(220)는 동적 랜덤 액세스 메모리(DRAM) 또는 정적 랜덤 액세스 메모리(SRAM)와 같은 랜덤 액세스 메모리로 구성될 수 있다. 랜덤 액세스 메모리(220)는 컨트롤 유닛(210)에 의해서 구동되는 펌웨어(FW)를 저장할 수 있다. 또한, 랜덤 액세스 메모리(220)는 펌웨어(FW)의 구동에 필요한 데이터, 예를 들면, 메타 데이터를 저장할 수 있다. 즉, 랜덤 액세스 메모리(220)는 컨트롤 유닛(210)의 동작 메모리(working memory)로서 동작할 수 있다.
호스트 인터페이스 유닛(230)는 호스트 디바이스(도시하지 않음)와 메모리 시스템(100)을 인터페이싱할 수 있다. 예시적으로, 호스트 인터페이스 유닛(230)은 시큐어 디지털(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 Express), UFS(universal flash storage)와 같은 표준 전송 프로토콜들 중 어느 하나, 즉, 호스트 인터페이스를 이용해서 호스트 디바이스(400)와 통신할 수 있다.
메모리 컨트롤 유닛(240)은 컨트롤 유닛(210)의 제어에 따라서 저장매체를 제어할 수 있다. 메모리 컨트롤 유닛(240)은 메모리 인터페이스 유닛으로도 불릴 수 있다. 메모리 컨트롤 유닛(240)은 제어 신호들을 비휘발성 메모리 장치들(300)로 제공할 수 있다. 제어 신호들은 비휘발성 메모리 장치들(300)를 제어하기 위한 커맨드, 어드레스, 제어 신호 등을 포함할 수 있다. 메모리 컨트롤 유닛(240)은 데이터를 비휘발성 메모리 장치들(300)로 제공하거나, 비휘발성 메모리 장치들(300)로부터 데이터를 제공 받을 수 있다.
도 7 내지 도 10은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 예시적으로 설명하는 순서도이다.
도 1 및 도 7을 참조하면, 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은, 컨트롤러(200)가, 복수의 비휘발성 메모리 장치들(300)에 걸쳐서 하나 이상의 선택된 메모리 블록들을 슈퍼 블록으로 구성하는 단계(S100), 컨트롤러(200)가, 슈퍼 블록을 복수의 그룹들로 분할하는 단계(S200), 컨트롤러(200)가, 그룹들 중 하나 이상의 그룹들을 선택하는 단계(S400) 및 선택된 그룹들에 대하여 리클레임 동작을 간헐적으로 수행하는 단계(S500)를 포함할 수 있다.
또한, 슈퍼 블록을 복수의 그룹들로 분할하는 단계(S200)에서, 컨트롤러(200)가, 선택된 메모리 블록들 각각에서 적어도 하나의 페이지를 포함하는 복수의 그룹들로 슈퍼 블록을 분할할 수 있다.
도 1 및 도 8을 참조하면, 선택된 그룹들에 대하여 리클레임 동작을 간헐적으로 수행하는 단계(S500)은, 컨트롤러(200)가, 선택된 메모리 블록들의 리드 카운트들에 근거하여 결정된 개수의 그룹들에 대해 리클레임 동작을 일시에 수행하는 단계(S510)를 포함할 수 있다.
도 1 및 도 9를 참조하면, 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은, 컨트롤러(200)가, 선택된 메모리 블록들의 리드 카운트들에 근거하여 슈퍼 블록에 대한 리클레임 동작을 개시하는 단계(S300)를 더 포함할 수 있다.
도 1 및 도 10을 참조하면, 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은, 컨트롤러(200)가, 제1 시점부터 제2 시점까지의 선택된 메모리 블록들의 리드 카운트들의 변화에 근거하여 조절량을 결정하는 단계(S520) 및 컨트롤러(200)가, 제2 시점에, 기준 개수와 조절량을 합산한 제1 개수의 그룹들에 대하여 리클레임 동작을 일시에 수행하는 단계(S530)를 더 포함할 수 있다.
실시 예에 따라, 리드 카운트들의 변화에 근거하여 조절량을 결정하는 단계(S520)에서, 컨트롤러(200)가, 제1 시점에서의 리드 카운트들의 최대값과 제2 시점에서의 리드 카운트들의 최대값의 차이 값에 근거하여 조절량을 결정할 수 있다. 또한, 컨트롤러(200)가, 차이 값 및 임계 기준을 비교하여 조절량을 결정할 수 있다.
도 11은 본 발명의 실시 예에 따른 SSD를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 11을 참조하면, 데이터 처리 시스템(1000)은 호스트 장치(1100)와 SSD(1200)를 포함할 수 있다.
SSD(1200)는 컨트롤러(200), 버퍼 메모리 장치(1220), 비휘발성 메모리 장치들(301~30n), 전원 공급기(1240), 신호 커넥터(1250) 및 전원 커넥터(1260)를 포함할 수 있다.
컨트롤러(200)는 SSD(1200)의 제반 동작을 제어할 수 있다. 컨트롤러(200)는 호스트 인터페이스 유닛(230), 컨트롤 유닛(210), 랜덤 액세스 메모리(220), 에러 정정 코드(ECC) 유닛(1214) 및 메모리 컨트롤 유닛(240)을 포함할 수 있다.
호스트 인터페이스 유닛(230)은 신호 커넥터(1250)를 통해서 호스트 장치(1100)와 신호(SGL)를 주고 받을 수 있다. 여기에서, 신호(SGL)는 커맨드, 어드레스, 데이터 등을 포함할 수 있다. 호스트 인터페이스 유닛(230)은, 호스트 장치(1100)의 프로토콜에 따라서, 호스트 장치(1100)와 SSD(1200)를 인터페이싱할 수 있다. 예를 들면, 호스트 인터페이스 유닛(230)은, 시큐어 디지털(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 Express), UFS(universal flash storage)와 같은 표준 인터페이스 프로토콜들 중 어느 하나를 통해서 호스트 장치(1100)와 통신할 수 있다.
컨트롤 유닛(210)은 호스트 장치(1100)로부터 입력된 신호(SGL)를 분석하고 처리할 수 있다. 컨트롤 유닛(210)은 SSD(1200)를 구동하기 위한 펌웨어 또는 소프트웨어에 따라서 내부 기능 블록들의 동작을 제어할 수 있다. 랜덤 액세스 메모리(220)는 이러한 펌웨어 또는 소프트웨어를 구동하기 위한 동작 메모리로서 사용될 수 있다.
에러 정정 코드(ECC) 유닛(1214)은 비휘발성 메모리 장치들(301~30n)로 전송될 데이터의 패리티 데이터를 생성할 수 있다. 생성된 패리티 데이터는 데이터와 함께 비휘발성 메모리 장치들(301~30n)에 저장될 수 있다. 에러 정정 코드(ECC) 유닛(1214)은 패리티 데이터에 근거하여 비휘발성 메모리 장치들(301~30n)로부터 독출된 데이터의 에러를 검출할 수 있다. 만약, 검출된 에러가 정정 범위 내이면, 에러 정정 코드(ECC) 유닛(1214)은 검출된 에러를 정정할 수 있다.
메모리 컨트롤 유닛(240)은, 컨트롤 유닛(210)의 제어에 따라서, 비휘발성 메모리 장치들(301~30n)에 커맨드 및 어드레스와 같은 제어 신호를 제공할 수 있다. 그리고 메모리 컨트롤 유닛(240)은, 컨트롤 유닛(210)의 제어에 따라서, 비휘발성 메모리 장치들(301~30n)과 데이터를 주고받을 수 있다. 예를 들면, 메모리 컨트롤 유닛(240)은 버퍼 메모리 장치(1220)에 저장된 데이터를 비휘발성 메모리 장치들(301~30n)로 제공하거나, 비휘발성 메모리 장치들(301~30n)로부터 읽혀진 데이터를 버퍼 메모리 장치(1220)로 제공할 수 있다.
버퍼 메모리 장치(1220)는 비휘발성 메모리 장치들(301~30n)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(1220)는 비휘발성 메모리 장치들(301~30n)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(1220)에 임시 저장된 데이터는 컨트롤러(200)의 제어에 따라 호스트 장치(1100) 또는 비휘발성 메모리 장치들(301~30n)로 전송될 수 있다.
비휘발성 메모리 장치들(301~30n)은 SSD(1200)의 저장 매체로 사용될 수 있다. 비휘발성 메모리 장치들(301~30n) 각각은 복수의 채널들(CH1~CHn)을 통해 컨트롤러(200)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 비휘발성 메모리 장치가 연결될 수 있다. 하나의 채널에 연결되는 비휘발성 메모리 장치들은 동일한 신호 버스 및 데이터 버스에 연결될 수 있다.
전원 공급기(1240)는 전원 커넥터(1260)를 통해 입력된 전원(PWR)을 SSD(1200) 내부에 제공할 수 있다. 전원 공급기(1240)는 보조 전원 공급기(1241)를 포함할 수 있다. 보조 전원 공급기(1241)는 서든 파워 오프(sudden power off)가 발생되는 경우, SSD(1200)가 정상적으로 종료될 수 있도록 전원을 공급할 수 있다. 보조 전원 공급기(1241)는 대용량 캐패시터들(capacitors)을 포함할 수 있다.
신호 커넥터(1250)는 호스트 장치(1100)와 SSD(1200)의 인터페이스 방식에 따라서 다양한 형태의 커넥터로 구성될 수 있다.
전원 커넥터(1260)는 호스트 장치(1100)의 전원 공급 방식에 따라서 다양한 형태의 커넥터로 구성될 수 있다.
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다. 도 12를 참조하면, 데이터 처리 시스템(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)는 도 11에 도시된 컨트롤러(200)와 동일하게 구성될 수 있다.
버퍼 메모리 장치(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)의 어느 한 변에 배치될 수 있다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다. 도 13을 참조하면, 데이터 처리 시스템(3000)은 호스트 장치(3100)와 메모리 시스템(3200)을 포함할 수 있다.
호스트 장치(3100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(3100)는 호스트 장치의 기능을 수행하기 위한 내부 기능 블록들을 포함할 수 있다.
메모리 시스템(3200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(3200)은 솔더 볼(solder ball)(3250)을 통해서 호스트 장치(3100)에 마운트될 수 있다. 메모리 시스템(3200)은 컨트롤러(3210), 버퍼 메모리 장치(3220) 및 비휘발성 메모리 장치(3230)를 포함할 수 있다.
컨트롤러(3210)는 메모리 시스템(3200)의 제반 동작을 제어할 수 있다. 컨트롤러(3210)는 도 11에 도시된 컨트롤러(200)와 동일하게 구성될 수 있다.
버퍼 메모리 장치(3220)는 비휘발성 메모리 장치(3230)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(3220)는 비휘발성 메모리 장치들(3230)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(3220)에 임시 저장된 데이터는 컨트롤러(3210)의 제어에 따라 호스트 장치(3100) 또는 비휘발성 메모리 장치(3230)로 전송될 수 있다.
비휘발성 메모리 장치(3230)는 메모리 시스템(3200)의 저장 매체로 사용될 수 있다.
도 14는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 보여주는 도면이다. 도 14를 참조하면, 네트워크 시스템(4000)은 네트워크(4500)를 통해서 연결된 서버 시스템(4300) 및 복수의 클라이언트 시스템들(4410~4430)을 포함할 수 있다.
서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)로 데이터를 제공할 수 있다.
서버 시스템(4300)은 호스트 장치(4100) 및 메모리 시스템(4200)을 포함할 수 있다. 메모리 시스템(4200)은 도 1의 메모리 시스템(100), 도 11의 SSD(1200), 도 12의 메모리 시스템(2200), 도 13의 메모리 시스템(3200)로 구성될 수 있다.
도 15는 본 발명의 실시 예에 따른 메모리 시스템에 포함된 비휘발성 메모리 장치를 예시적으로 보여주는 블록도이다. 설명의 편의를 위하여, 도 1에 도시된 비휘발성 메모리 장치들(300)에 포함되는 비휘발성 메모리 장치(301)을 예시적으로 설명한다.
도 15를 참조하면, 비휘발성 메모리 장치(301)는 메모리 셀 어레이(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)는 비휘발성 메모리 장치(301)의 내부 동작에 사용되는 전압을 생성할 수 있다. 전압 발생기(350)에 의해서 생성된 전압들은 메모리 셀 어레이(310)의 메모리 셀들에 인가될 수 있다. 예를 들면, 프로그램 동작 시 생성된 프로그램 전압은 프로그램 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다. 다른 예로서, 소거 동작 시 생성된 소거 전압은 소거 동작이 수행될 메모리 셀들의 웰-영역에 인가될 수 있다. 다른 예로서, 읽기 동작 시 생성된 읽기 전압은 읽기 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다.
제어 로직(360)은 외부 장치로부터 제공된 제어 신호에 근거하여 비휘발성 메모리 장치(301)의 제반 동작을 제어할 수 있다. 예를 들면, 제어 로직(360)은 비휘발성 메모리 장치(301)의 읽기, 쓰기, 소거 동작을 제어할 수 있다.
본 발명의 일 실시 예에 따른 방법과 관련하여서는 전술한 시스템에 대한 내용이 적용될 수 있다. 따라서, 방법과 관련하여, 전술한 시스템에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.
이상에서, 본 발명은 구체적인 실시 예를 통해 설명되고 있으나, 본 발명은 그 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있음은 잘 이해될 것이다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위 및 이와 균등한 것들에 의해 정해져야 한다. 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 잘 이해될 것이다.
100 : 메모리 시스템
200 : 컨트롤러
300 : 비휘발성 메모리 장치들

Claims (20)

  1. 각각이 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리 장치들; 및
    상기 복수의 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 관리하고, 상기 선택된 하나 이상의 메모리 블록들의 리드 카운트에 근거하여 상기 슈퍼 블록에 대한 리클레임 동작을 수행하도록 구성된 컨트롤러를 포함하고,
    상기 컨트롤러는 상기 슈퍼 블록을 복수의 그룹들로 분할하고, 제1 시점부터 제2 시점까지의 상기 리드 카운트의 변화에 근거하여 조절량을 결정하고, 기준 개수에 상기 조절량을 반영하여 제1 개수를 결정하며, 상기 복수의 그룹들 중 상기 제1 개수의 그룹을 선택하고, 상기 제2 시점 이후에 상기 제1 개수의 그룹에 대한 상기 리클레임 동작을 수행하는,
    메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 복수의 비휘발성 메모리 장치들은, 상기 복수의 메모리 블록들 각각이 복수의 페이지들을 포함하고,
    상기 컨트롤러는, 상기 슈퍼 블록을 상기 선택된 하나 이상의 메모리 블록들 각각의 복수의 페이지들 중 적어도 하나의 페이지를 포함하는 상기 복수의 그룹들로 분할하는,
    메모리 시스템.
  3. 삭제
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 컨트롤러는,
    상기 선택된 하나 이상의 메모리 블록들의 리드 카운트 중 상기 제1 시점에서의 최대값을 가지는 제1 최대 리드 카운트와 상기 제2 시점에서의 최대값인 제2 최대 리드 카운트의 차이 값에 근거하여 상기 조절량을 결정하는,
    메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제4항에 있어서,
    상기 컨트롤러는,
    상기 차이 값 및 적어도 하나의 임계 기준을 비교하여 상기 조절량을 결정하는,
    메모리 시스템.
  6. 각각이 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리 장치들을 포함하는 메모리 시스템의 동작 방법에 있어서,
    컨트롤러가, 상기 복수의 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 구성하는 단계;
    상기 컨트롤러가, 상기 슈퍼 블록을 복수의 그룹들로 분할하는 단계;
    상기 컨트롤러가, 제1 시점부터 제2 시점까지의 상기 선택된 하나 이상의 메모리 블록들의 리드 카운트의 변화에 근거하여 조절량을 결정하는 단계;
    기준 개수에 상기 조절량을 반영하여 제1 개수를 결정하는 단계;
    상기 복수의 그룹들 중 상기 제1 개수의 그룹을 선택하는 단계; 및
    상기 제2 시점 이후에, 상기 제1 개수의 그룹에 대한 리클레임 동작을 수행하는 단계를 포함하는, 방법.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 하나 이상의 그룹들을 선택하는 단계는,
    상기 선택된 하나 이상의 메모리 블록들의 리드 카운트에 근거하여, 상기 하나 이상의 그룹들을 선택하는 단계를 포함하는, 방법.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 컨트롤러가, 상기 선택된 메모리 블록의 리드 카운트에 근거하여 상기 슈퍼 블록에 대한 리클레임 동작을 개시하는 단계를 더 포함하는, 방법.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 슈퍼 블록을 복수의 그룹들로 분할하는 단계는,
    상기 컨트롤러가, 상기 선택된 하나 이상의 메모리 블록들 각각의 복수의 페이지들 중 적어도 하나의 페이지를 포함하는 상기 복수의 그룹들로 상기 슈퍼 블록을 분할하는 단계를 포함하는, 방법.
  10. 삭제
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 조절량을 결정하는 단계는,
    상기 컨트롤러가, 상기 선택된 하나 이상의 메모리 블록들의 리드 카운트 중 상기 제1 시점에서의 최대값을 가지는 제1 최대 리드 카운트와 상기 제2 시점에서의 최대값인 제2 최대 리드 카운트의 차이 값에 근거하여 상기 조절량을 결정하는 단계를 포함하는, 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 조절량을 결정하는 단계는,
    상기 컨트롤러가, 상기 차이 값과 적어도 하나의 임계 기준의 비교에 근거하여 상기 조절량을 결정하는 단계를 포함하는, 방법.
  13. 컨트롤러; 및
    복수의 메모리 블록들을 포함하고, 상기 컨트롤러에 의해 수행 가능한 인스트럭션들이 부호화되어 저장된 비 일시적 기계 판독 가능 저장 매체를 포함하되,
    상기 인스트럭션들은,
    상기 메모리 블록들 중에서 선택된 하나 이상의 메모리 블록들을 슈퍼 블록으로 관리하고,
    상기 슈퍼 블록을 복수의 그룹들로 분할하고,
    상기 선택된 하나 이상의 메모리 블록들의 리드 카운트에 근거하여, 상기 슈퍼 블록에 대한 리클레임이 수행될 타겟 그룹의 개수를 결정하고,
    상기 결정된 개수의 그룹에 대한 리클레임 동작을 수행하도록 제어하는 인스트럭션을 포함하고,
    상기 타겟 그룹의 개수를 결정하는 인스트럭션은,
    제1 시점부터 제2 시점까지의 상기 리드 카운트의 변화에 근거하여 조절량을 결정하고,
    기준 개수에 상기 조절량을 반영하여 상기 타겟 그룹의 개수를 결정하는 인스트럭션을 포함하고,
    상기 리클레임 동작을 수행하도록 제어하는 인스트럭션은,
    상기 제2 시점 이후, 상기 결정된 타겟 그룹의 개수에 대응하는 타겟 그룹에 대한 리클레임 동작을 수행하도록 제어하는 인스트럭션을 포함하는, 전자 장치.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 복수의 메모리 블록들 각각이 복수의 페이지들을 포함하고, 상기 복수의 그룹들 각각은 상기 선택된 하나 이상의 메모리 블록들 각각에서 적어도 하나의 페이지를 포함하는, 전자 장치.
  15. 삭제
  16. 삭제
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 조절량을 결정하는 인스트럭션은,
    상기 선택된 하나 이상의 메모리 블록들의 리드 카운트 중 상기 제1 시점에서의 최대값을 가지는 제1 최대 리드 카운트와 상기 제2 시점에서의 최대값인 제2 최대 리드 카운트의 차이 값에 근거하여 상기 조절량을 결정하는, 전자 장치.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    상기 조절량을 결정하는 인스트럭션은,
    상기 차이 값 및 적어도 하나의 임계 기준의 비교에 기초하여 상기 조절량을 결정하는, 전자 장치.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    상기 조절량을 결정하는 인스트럭션은,
    상기 차이 값이 임계 기준 이상인 경우, 상기 조절량을 양수로 결정하는, 전자 장치
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    상기 조절량을 결정하는 인스트럭션은,
    상기 차이 값이 임계 기준 미만인 경우, 상기 조절량을 음수로 결정하는, 전자 장치.
KR1020180052751A 2018-05-08 2018-05-08 메모리 시스템, 그것의 동작 방법 및 전자 장치 KR102549548B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180052751A KR102549548B1 (ko) 2018-05-08 2018-05-08 메모리 시스템, 그것의 동작 방법 및 전자 장치
US16/199,520 US10824557B2 (en) 2018-05-08 2018-11-26 Memory system performing variable read reclaim operation
CN201811463186.9A CN110456981B (zh) 2018-05-08 2018-12-03 存储器系统、存储器系统的操作方法以及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180052751A KR102549548B1 (ko) 2018-05-08 2018-05-08 메모리 시스템, 그것의 동작 방법 및 전자 장치

Publications (2)

Publication Number Publication Date
KR20190128498A KR20190128498A (ko) 2019-11-18
KR102549548B1 true KR102549548B1 (ko) 2023-06-30

Family

ID=68464721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180052751A KR102549548B1 (ko) 2018-05-08 2018-05-08 메모리 시스템, 그것의 동작 방법 및 전자 장치

Country Status (3)

Country Link
US (1) US10824557B2 (ko)
KR (1) KR102549548B1 (ko)
CN (1) CN110456981B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220133693A (ko) 2021-03-25 2022-10-05 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN114333941B (zh) * 2021-12-15 2023-11-10 西安紫光国芯半导体有限公司 三维堆叠的存储芯片、数据读写方法以及电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9570198B2 (en) * 2014-05-16 2017-02-14 SK Hynix Inc. Read disturb detection
KR20150140496A (ko) * 2014-06-05 2015-12-16 삼성전자주식회사 실시간 데이터 복구를 위한 리드 리클레임 방법 및 그에 따른 메모리 시스템
KR102128406B1 (ko) * 2014-09-26 2020-07-10 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102233074B1 (ko) * 2014-10-08 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 신뢰성 검증 방법
KR102277521B1 (ko) * 2015-01-23 2021-07-16 삼성전자주식회사 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
US10147500B2 (en) * 2015-05-22 2018-12-04 SK Hynix Inc. Hybrid read disturb count management
KR20170024307A (ko) * 2015-08-25 2017-03-07 삼성전자주식회사 내장형 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치
KR102437591B1 (ko) 2015-12-03 2022-08-30 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법 및 메모리 컨트롤러의 동작 방법
US10339044B2 (en) * 2016-03-30 2019-07-02 Sandisk Technologies Llc Method and system for blending data reclamation and data integrity garbage collection
KR102614083B1 (ko) * 2016-08-31 2023-12-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20180040288A (ko) * 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
US10755793B2 (en) * 2017-10-31 2020-08-25 Micron Technology, Inc. SLC page read
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks

Also Published As

Publication number Publication date
KR20190128498A (ko) 2019-11-18
CN110456981B (zh) 2023-08-01
US10824557B2 (en) 2020-11-03
CN110456981A (zh) 2019-11-15
US20190347196A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
US10838653B2 (en) Electronic device and operating method thereof
US20190317892A1 (en) Memory system, data processing system, and operating method of memory system
US20200218653A1 (en) Controller, data storage device, and operating method thereof
US10902928B2 (en) Memory system, operation method thereof, and nonvolatile memory device
US10922000B2 (en) Controller, operating method thereof, and memory system including the same
US10698819B2 (en) Memory system and operating method thereof
US20180239557A1 (en) Nonvolatile memory device, data storage device including the same, and operating method of data storage device
KR20200048978A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10754768B2 (en) Memory system using descriptor lookup tables to access setting information for a non-volatile memory, and an operating method thereof
US20200150898A1 (en) Memory system and operating method thereof
KR102549548B1 (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
US11231882B2 (en) Data storage device with improved read performance and operating method thereof
KR102645786B1 (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102475688B1 (ko) 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법
US11385834B2 (en) Data storage device, storage system using the same, and method of operating the same
KR102655360B1 (ko) 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
US10776008B2 (en) Memory system and operating method thereof
US10628067B2 (en) Memory system and operating method thereof
US20190179749A1 (en) Memory system, operating method thereof and nonvolatile memory device
KR20210028405A (ko) 서치 회로 및 컨트롤러
US11450394B2 (en) Controller and operating method thereof
US11537514B2 (en) Data storage device and operating method thereof
US10628322B2 (en) Memory system and operating method thereof
US10719270B2 (en) Raising usage rates of memory blocks with a free MSB page list

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