KR20150106778A - 메모리 시스템 및 메모리 시스템의 제어 방법 - Google Patents

메모리 시스템 및 메모리 시스템의 제어 방법 Download PDF

Info

Publication number
KR20150106778A
KR20150106778A KR1020140029268A KR20140029268A KR20150106778A KR 20150106778 A KR20150106778 A KR 20150106778A KR 1020140029268 A KR1020140029268 A KR 1020140029268A KR 20140029268 A KR20140029268 A KR 20140029268A KR 20150106778 A KR20150106778 A KR 20150106778A
Authority
KR
South Korea
Prior art keywords
controller
host
control command
memory system
memory
Prior art date
Application number
KR1020140029268A
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 KR1020140029268A priority Critical patent/KR20150106778A/ko
Priority to US14/620,305 priority patent/US9715344B2/en
Publication of KR20150106778A publication Critical patent/KR20150106778A/ko

Links

Images

Classifications

    • 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
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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

Abstract

본 발명의 일 실시예에 따른 비휘발성 메모리 시스템은 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 장치에 대한 백그라운드 동작을 제어하고, 호스트로부터 수신된 제1 제어명령이 빠른 처리를 요하는지에 따라서 백그라운드 동작을 종료할지 여부를 결정하는 컨트롤러를 포함할 수 있다.

Description

메모리 시스템 및 메모리 시스템의 제어 방법 {Memory Device and Controlling Method of Memory Device}
본 발명은 메모리 시스템 및 메모리 시스템의 제어 방법에 관한 것으로, 특히 일정한 수명을 보장할 수 있는 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법에 관한 것이다.
플래시 메모리 시스템은 고집적화의 요구에 따라 스케일링 다운(scaling down)되고, 각 메모리 셀에 저장되는 비트의 수가 증가되고 있다. 또한, 메모리 장치 또는 메모리 시스템에서 처리가 요구되는 데이터의 양이 증가되고 있다. 이에 따라 데이터 처리에 대한 속도 향상 요구되고 있다.
플래시 메모리 시스템은 가비지 콜렉션(Garbage Collection) 또는 리드 리클레임(Read Reclaim)을 수행한다. 이러한 동작들은 시스템의 신뢰성을 향상시키는데 중요하다.
한편, 빠른 응답을 필요로하지 않는 리드 요청(Read Request)를 수신하는 경우, 가비지 콜렉션(Garbage Collection) 또는 리드 리클레임(Read Reclaim)을 중단한다면, 메모리 시스템은 효율적으로 동작하지 못하게 된다.
본 발명이 이루고자 하는 기술적 과제는, 백그라운드 가비지 콜렉션 또는 리드 리클레임 같은 동작을 수행하면서도 불필요한 수명 소모를 방지하고, 사용자가 느끼는 성능이 향상된 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법을 제공하는 데 있다.
본 발명의 일 실시예에 따른 비휘발성 메모리 시스템은, 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 장치에 대한 백그라운드 동작을 제어하고, 호스트로부터 수신된 제1 제어명령이 빠른 처리를 요하는지에 따라서 백그라운드 동작을 종료할지 여부를 결정하는 컨트롤러를 포함할 수 있다.
예를 들어, 상기 백그라운드 동작은 백그라운드 가비지 콜렉션, 이레이즈 동작, 리드 리클레임 및 상기 메모리 셀 어레이에 대한 상태 확인 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.
예를 들어, 상기 컨트롤러는 상기 제1 제어명령에 포함된 정보를 확인하여 상기 수신된 명령이 빠른 처리을 요하는지 여부를 판단 할 수 있다.
예를 들어, 상기 컨트롤러는 상기 호스트와 연결된 인터페이스를 통하여 상기 수신된 명령이 빠른 처리를 요하는지 여부를 판단 할 수 있다.
예를 들어, 상기 제1 제어명령은 어느 정도 빠른 처리를 요하는지에 대한 정보를 포함하고, 상기 컨트롤러는 상기 제1 제어명령이 어느 정도 빠른 처리를 요하는지에 대한 정보에 따라서 백그라운드 동작을 종료할지 여부를 결정 할 수 있다.
예를 들어, 상기 컨트롤러는 상기 호스트로 저장장치가 백그라운 동작을 수행하고 있는지 여부에 대한 정보를 전달하고, 상기 호스트는 그 정보를 비트 신호로 저장하고, 상기 호스트에 빠른 응답이 필요하지 않은 사용자 요청이 들어온 경우, 사용자 요청을 지연시키는 것을 특징으로 할 수 있다.
예를 들어, 상기 컨트롤러는 상기 백그라운드 동작을 처리하기 위하여 필요한 시간에 대한 정보를 상기 호스트에 전달하는 것을 특징으로 할 수 있다.
예를 들어, 상기 호스트는 일정시간 입력이 없는 경우 또는 상기 플래시 메모리 시스템이 포함된 디스플레이 장치의 화면이 일정시간 오프(Off)되어 있는 경우, 상기 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단하는 것을 특징으로 할 수 있다.
예를 들어, 상기 컨트롤러는 일정시간 입력이 없는 경우, 상기 제1 제어명령이 빠른 처리를 요하지 않는 것으로 판단하는 것을 특징으로 할 수 있다.
예를 들어, 상기 컨트롤러는 상기 백그라운드 동작이 완료된 후에 상기 호스트로부터 상기 제1 제어명령을 처리하는 것을 특징으로 할 수 있다.
예를 들어, 상기 컨트롤러는 상기 제1 제어명령이 빠른 처리를 요하는지에 대한 정보에 대한 비트 신호를 저장하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 따른 컨트롤러와 메모리 장치를 포함하는 메모리 시스템의 제어 방법은, 호스트로부터 상기 메모리 장치에 대한 제1 제어 명령을 수신하는 단계; 상기 컨트롤러가 백그라운드 동작을 수행하는지 판단하는 단계; 상기 제1 제어명령이 빠른 처리를 요하는지 판단하는 단계를 포함할 수 있다.
예를 들어, 상기 제1 제어명령이 빠른 처리를 요하는지에 따라서 상기 백그라운드 동작을 종료할지 여부를 결정하는 단계를 더 포함 할 수 있다.
예를 들어, 상기 백그라운드 동작은 백그라운드 가비지 콜렉션, 이레이즈 동작, 리드 리클레임 및 상기 메모리 셀 어레이에 대한 상태 확인 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.
예를 들어, 상기 백그라운드 동작이 완료된 후에 상기 호스트로부터 수신된 상기 제1 제어명령을 처리하는 것을 특징으로 할 수 있다.
상술한 발명의 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법에 의하면, 백그라운드 가비지 콜렉션 또는 리드 리클레임 같은 동작을 수행하면서도 일정한 수명을 보장하고 사용자가 느끼는 성능을 향상시킬 수 있다.
도 1은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템의 구성을 보여주는 도면이다.
도 2는 본 발명의 메모리 시스템의 동작을 설명하기 위한 순서도이다.
도 3는 본 발명의 일 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 4a 내지 도 4c는 도 3의 메모리 셀 어레이을 설명하는 도면들이다.
도 5은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템의 구성을 보여주는 도면이다.
도 6은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템의 구성을 보여주는 도면이다.
도 7은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템의 구성을 보여주는 도면이다.
도 8는 본 발명의 메모리 시스템의 동작을 설명하기 위한 순서도이다.
도 9는 본 발명의 메모리 시스템의 동작을 설명하기 위한 순서도이다.
도 10는 본 발명의 메모리 시스템의 동작을 설명하기 위한 순서도이다.
도 11는 본 발명의 메모리 시스템의 동작을 설명하기 위한 순서도이다.
도 12는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 제어 방법을 채용하는 컴퓨팅 시스템을 설명하는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
반도체 메모리 장치는 DRAM, SRAM등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 불휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단되면 저장된 데이터를 잃지만, 불휘발성 메모리 장치는 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 가지기 때문에, 컴퓨터 시스템 등에서 저장 매체로 광범위하게 사용되고 있다.
도 1은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템(200)의 구성을 보여주는 도면이다.
도 1을 참조하면, 메모리 시스템(200)은 컨트롤러(220)와 메모리 장치(230)로 구성될 수 있다. 메모리 장치(230)는 플래시 메모리와 같은 불휘발성 메모리로 구성되는 메모리 셀 어레이(210)를 포함할 수 있다. 컨트롤러(220)는 메모리 장치(230)를 제어하도록 구성될 수 있다. 메모리 시스템(200)은 휴대폰, 테블릿 PC와 같은 모바일 장치에 내장될 수 있다.
본 발명에서는 메모리 셀 어레이(210)가 낸드 플래시 메모리로 구성되는 경우에 대해 예시적으로 설명될 것이다. 메모리 셀 어레이(210)에 적용되는 불휘발성 메모리는 특정 종류 및 특정 형태에만 국한되지 않고 다양한 형태로 구성될 수 있다. 본 명세서에서 메모리 장치(230)는 하나의 메모리 셀 어레이(210)를 포함하는 것으로 도시하였으나, 메모리 장치(230)는 다양한 어플리케이션에 따라서 하나 이상의 메모리 셀 어레이(210)을 포함할 수 있다.
메모리 셀 어레이(210)의 각 메모리 셀에 저장되는 데이터 비트 수는 다양한 형태로 구성될 수 있다. 예를 들면, 메모리 셀 어레이(210)는 하나의 메모리 셀에 1-비트 데이터를 저장하는 싱글 비트 셀들(single-bit cells) 또는 싱글 레벨 셀들(single-level cells: SLCs)로 구성될 수도 있고, 하나의 메모리 셀에 멀티 비트 데이터(예를 들어, 2 비트 이상)를 저장하는 멀티 비트 셀들(multi-bit cells), 멀티 레벨 셀들(multi-level cells: MLCs) 또는 멀티 스테이트 셀들(multi-state cells)로 구성될 수도 있다. 멀티 비트 셀들(MLCs)은 메모리의 고집적화에 유리한 장점을 갖는다.
메모리 셀 어레이(210)는 메모리 셀의 전하 저장층의 구조가 다양한 형태로 구성될 수 있다. 예를 들면, 플래시 메모리 셀의 전하 저장층이 전도성이 있는 다결정 실리콘 등으로 구성될 수도 있고, Si3N4, Al2O3, HfAl0, HfSiO 등과 같은 절연막을 이용하여 구성될 수도 있다.
컨트롤러(220)는 USB(Universal Serial Bus), MMC(MultiMediaCard), PCI-E(PCIExpress), ATA(Advanced Technology Attachment), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SAS(Serial Attached Small Computer System), SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card), ESDI(Enhanced Small Disk Interface) 등과 같은 다양한 인터페이스들 중 하나를 통해 호스트(20)와 데이터를 주고 받을 수 있다. 컨트롤러(220)와 호스트(20) 사이의 인터페이스는 컨트롤러(220)에 구비되는 호스트 인터페이스에서 수행될 수 있다.
컨트롤러(220)는 호스트(20)로부터 입력된 커맨드에 응답하여 메모리 셀 어레이(210)의 기록, 소거, 및 읽기 동작을 제어할 수 있다. 예를 들어, 컨트롤러(220)는 호스트(20)로부터 제어 커맨드를 수신하여 메모리 셀 어레이(210)에 대해서, 각종 동작을 수행할 수 있다. 예를 들어, 컨트롤러(220)는 호스트(20)로부터 제어 커맨드를 수신하여 메모리 셀 어레이(210)에 대해서, 가비지 콜렉션(Background Garbage Collection), 프리블록의 이레이즈(Erase) 동작, 리드 리클레임(Read Reclaim) 동작, 메모리 셀 상태 체크 등을 수행할 수 있다.
컨트롤러(220)는 내장된 펌웨어(FW)만에 의하여도 각종 백그라운 동작을 수행할 수 있다. 예를 들어, 컨트롤러(220)는 내장된 펌웨어(FW)에 의하여 일정 시간 이상 스크린 오프(Screen Off) 상태가 계속되는 경우, 백그라운드 가비지 콜렉션(Background Garbage Collection)을 수행할 수 있다. 백그라운드 가비지 콜렉션은 호스트(20)로부터 가비지 콜렉션에 대한 별도의 요청이 없는 경우 컨트롤러(220)의 판단으로 수행되는 가비지 콜렉션을 의미할 수 있다.
컨트롤러(220)는 메모리 셀 어레이(210)의 가비지 콜렉션 동작을 수행할 수 있다. 예를 들어, 유효 데이터 블록인 데이터 블록(BLK_1 및 BLK_2)에 기록되어 있는 데이터를 프리 데이터 블록인 데이터 블록(BLK_4)에 복사하고, 데이터 블록(BLK_1 및 BLK_2)에 저장된 데이터는 이레이즈(Erase)하여 데이터 블록(BLK_1 및 BLK_2)을 프리 블록으로 만들 수 있다.
또한, 컨트롤러(220)는 N개의 유효 데이터 블록에 기록되어 있는 데이터를 M개의 프리 데이터 블록으로 복사하고, 상기 N개의 유효 데이터 블록에 기록되어 있는 데이터는 이레이즈(Erase)하여 프리 블록으로 만들 수 있다. (N과 M은 자연수, M은 N보다 작음) 컨트롤러(220)는 백그라운드 가비지 콜렉션 동작을 계속적으로 반복할 수 있다.
본 발명의 일 실시예에 따른 컨트롤러(220)는 호스트(20)로 메모리 시스템(200)의 상태 정보를 전달할 수 있다. 예를 들어, 컨트롤러(220)는 호스트(20)로 메모리 시스템(200)이 백그라운 동작을 수행하고 있는지 여부에 대한 상태 정보를 전달할 수 있다. 예를 들어, 컨트롤러(220)는 호스트(20)로 메모리 시스템(200)이 수행 중인 백그라운 동작이 완료되기 위하여 필요한 시간에 대한 정보를 전달할 수 있다.
본 발명의 일 실시예에 따른 호스트(20)는 스토리지 관리부(Storage Manager, SM)을 포함할 수 있다. 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 관리할 수 있다.
스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 비트 정보로 관리할 수 있다. 스토리지 관리부(SM)는 제어 명령(CTRL CMD)을 발생시키는 사용자의 요청이 빠른 응답이 필요하지 않은 경우 사용자의 요청을 지연시킬 수 있다.
예를 들어, 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 어느 정도 빠른 처리를 요하는지에 대한 정보를 관리할 수 있다. 예를 들어, 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 어느 정도 빠른 처리를 요하는지에 대한 정보를 1단계에서 10단계로 구분하여 관리할 수 있다. 예를 들어, 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 어느 정도 빠른 처리를 요하는지에 대한 정보를 제어 명령(CTRL CMD)이 리드(read), 프로그램(program), 이레이즈(erase) 인지에 따라서 구분하여 관리할 수 있다. 예를 들어, 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 어느 정도 빠른 처리를 요하는지에 대한 정보를 비트 신호 관리할 수 있다.
스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 판단을 할 수 있다.
스토리지 관리부(SM)는 호스트에 일정시간 입력이 없는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다. 스토리지 관리부(SM)는 메모리 시스템(200)이 포함된 디스플레이 장치(미도시)의 화면이 일정시간 오프(Off)되어 있는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다. 이하, 본 발명의 메모리 시스템(200)의 동작에 대해서 도 2 를 통하여 설명한다.
도 2는 본 발명의 메모리 시스템(200)의 동작을 설명하기 위한 순서도이다.
도 2를 참조하면, 호스트(20)는 메모리 시스템(200)의 동작에 대한 제어 명령(CTRL CMD)를 생성할 수 있다. 예를 들어, 호스트(20)는 메모리 시스템(200)의 리드(Read), 프로그램(Program), 이레이즈(Erase) 동작에 대한 제어 명령(CTRL CMD)을 생성할 수 있다. 예를 들어, 호스트(20)는 메모리 시스템(200)의 가비지 콜렉션(Garbage Collection), 리드 리클레임(Read Reclaim) 동작에 대한 제어 명령(CTRL CMD)을 생성할 수 있다.
호스트(20)에 포함된 스토리지 관리부(SM)은 생성되는 제1 제어 명령이 빠른 처리를 요하는지 여부를 판단할 수 있다. 예를 들어, 스토리지 관리부(SM)는 생성되는 메모리 시스템(200)에 대한 리드(read) 명령이 빠른 처리를 요하는지 여부를 판단할 수 있다. 스토리지 관리부(SM)의 판단결과는 리드(read) 명령에 포함되어 컨트롤러(220)에 전달될 수 있다. 스토리지 관리부(SM)의 판단결과는 리드(read) 명령을 전달하는 인터페이스와 다른 인터페이스를 통하여 컨트롤러(220)에 전달될 수 있다.
컨트롤러(220)는 호스트(20)로부터 제1 제어명령(예를 들어, 리드 명령)을 수신할 수 있다(S610). 컨트롤러(220)는 제1 제어명령(예를 들어, 리드 명령)을 수신하면 컨트롤러(220)가 각종 백그라운드 동작을 수행하고 있는지 여부에 대해서 판단할 수 있다(S620). 예를 들어 컨트롤러(220)는 백그라운드 가비지 콜렉션, 리드 리클레임, 이레이즈 동작, 메모리 셀 상태 체크 동작을 수행하고 있는지 여부를 판단할 수 있다.
본 명세서에서 백그라운 동작이란, 백그라운드 가비지 콜렉션, 이레이즈 동작, 리드 리클레임, 메모리 셀 상태 체크 등 사용자의 요청이 없을 때 메모리 시스템이 할 수 있는 동작을 의미할 수 있다.
컨트롤러(220)가 각종 백그라운드 동작을 수행하고 있는 경우, 컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다(S630).
컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 필요로한다면, 컨트롤러(220)는 진행중인 백그라운드 동작을 종료할 수 있다(S640). 컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 필요로 하지 않는다면, 제1 제어명령에 대한 처리를 보류하고 백그라운드 동작을 계속 수행할 수 있다(S650). 상기 계속 수행한 백그라운드 동작이 종료할때, 컨트롤러(220)는 보류된 제1 제어명령에 대한 처리를 수행할 수 있다. 상술한 동작은 컨트롤러(220)에 포함된 펌웨어(FW)에 의하여 동작할 수 있다. 메모리 시스템(200)의 구체적인 동작에 대한 설명은 도 8 내지 도 11을 참조한다.
따라서, 본 발명의 일 실시예에 따른 메모리 시스템(100)은 컨트롤러(220)에서 수신된 제1 제어명령이 빠른 처리를 필요로하는지 여부에 따라서, 백그라운드 동작을 계속적으로 수행할지 여부를 결정하여, 백그라운드 동작을 수행하면서도 일정한 수명을 보장할 수 있고, 사용자가 느끼는 성능을 향상시킬 수 있다.
도 3는 본 발명의 일 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 3를 참조하면, 메모리 시스템(600)은 컨트롤러(610)와 메모리 장치(620)를 포함한다. 비휘발성 메모리 장치(620)로 낸드 플래시 메모리 장치를 예로 들었으나, 이에 한정되는 것은 아니다. 비휘발성 메모리 장치(620)는 다수의 낸드 플래시 메모리 장치를 포함할 수 있다. 비휘발성 메모리 장치(620)는 평면 구조의 메모리 셀 구조 및 적층으로 형성된 3차원 메모리 셀 구조를 포함한다.
비휘발성 메모리 장치(620)는 셀 어레이(622), X-decoder(행선택회로, 621), 전압발생회로(625), 입출력 패드(Input/output pad, 627) 입출력 버퍼(Input output buffer, 624), 페이지 버퍼(623), 컨트롤 로직(626)을 포함할 수 있다.
셀 어레이(622)는 다수의 워드라인(W/L)과 다수의 비트라인(B/L)을 포함하며, 각 메모리 셀은 1-비트 데이터 또는 M-비트(멀티-비트) 데이터(M은 2 또는 그 보다 큰 자연수)를 저장할 수 있다. 각 메모리 셀은 플로팅 게이트 또는 전하 트랩층과 같은 전하 저장층을 갖는 메모리 셀 또는 가변 저항 소자를 갖는 메모리 셀로 구현될 수 있다.
셀 어레이(622)는 다수의 블록 및 다수의 페이지를 포함 할 수 있다. 하나의 블록은 다수의 페이지를 포함한다. 페이지는 프로그램 및 리드 동작시 단위가 될 수 있으며, 블록은 이레이즈(erase) 동작의 단위가 될 수 있다. 리드는 하나의 페이지에 프로그램된 데이터를 리드하는 것이다.
셀 어레이(622)는 단층 어레이 구조(single-layer array structure) 또는 다층 어레이 구조(multi-layer array structure)로 구현될 수 있다.
컨트롤 로직(626)은 비휘발성 메모리 장치(620)의 동작을 전반적으로 제어한다. 컨트롤러(610)로부터 명령어(CMD)가 입력되면, 컨트롤 로직(626)은 명령어(CMD)를 해석을 하고 비휘발성 메모리 장치(620)가 해석된 명령어에 따른 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 리드 리트라이(read retry) 동작, 이레이즈(erase) 동작 등을 수행 하도록 한다.
X-디코더(621)는 컨트롤 로직(626)에 의해서 제어되며, 로우 어드레스에 따라 셀 어레이(622)에 구현된 다수의 워드 라인들 중에서 적어도 하나의 워드 라인을 구동한다.
전압발생회로(625)는 컨트롤 로직(626)의 제어에 따라 프로그램 동작, 제1 리드 동작, 제2 리드 동작 또는 이레이즈 동작에 필요한 적어도 하나의 전압을 생성하고, X-디코더(621)에 의하여 선택된 적어도 하나로 생성된 적어도 하나의 전압을 공급한다.
레지스터(628)는 컨트롤러(610)로부터 입력되는 정보들을 저장하는 공간이며, 다수의 래치(latch)들을 포함할 수 있다. 예를 들어, 레지스터(628)는 리드 전압 정보를 그룹핑하여 테이블로 형성한 정보를 저장할 수 있다.
페이지 버퍼(623)는 컨트롤 로직(626)에 의해서 제어되며, 동작 모드, 예컨대 리드 동작 또는 프로그램 동작에 따라 감지 증폭기로서 또는 라이트 드라이버로서 동작한다.
입출력 패드(627), 입출력 버퍼(624)는 외부 장치, 예컨대 컨트롤러(610) 또는 호스트와 비휘발성 메모리 장치(620)사이에서 주고 받는 데이터의 입출력 경로가 될 수 있다.
컨트롤러(610)는 마이크로프로세서(microprocessor, 611), 롬(ROM, 613), 램(RAM, 612), ECC 디코더(ECC decoder, 615), ECC 인코더(ECC encoder, 614), 메모리 인터페이스(616), 버스(617)를 포함 할 수 있다. 컨트롤러(610)의 구성요소들(611, 612, 613, 614, 615, 616)은 버스(617)를 통하여 서로 전기적으로 연결될 수 있다.
마이크로프로세서(611)는 컨트롤러(610)를 포함한 메모리 시스템(600)의 동작을 전반적으로 제어한다. 메모리 시스템(600)에 전원이 인가되면, 마이크로프로세서(611)는 롬(613)에 저장된 상기 메모리 시스템(600) 동작을 위한 펌웨어(firmware)를 램(612)상에서 구동시킴으로써 상기 메모리 시스템(600)의 전반적인 동작을 제어할 수 있다.
마이크로프로세서(611)는 도 1의 펌웨어에 의하여 동작할 수 있다. 따라서, 마이크로프로세서(611)는 호스트로부터 수신된 제어명령이 빠른 처리를 요하는지에 따라서, 메모리 장치(620)에서 수행되고 있는 각종 백그라운드 동작을 중지 할지 여부를 판단할 수 있다.
도 3에서 상기 메모리 시스템(600)의 구동 펌웨어 코드는 롬(613)에 저장되나 본 발명의 범위가 이에 한정되는 것은 아니다. 펌웨어 코드는 롬(613)이외의 다양한 비휘발성 메모리 장치(620)에 저장될 수도 있다. 따라서, 마이크로프로세서(611)의 제어 또는 개입이란, 마이크로프로세서(611)의 직접적 제어뿐만 아니라, 마이크로프로세서(611)에 의해서 구동되는 소프트웨어인 펌웨어의 간섭도 포함 할 수 있다.
램(612)은 버퍼(buffer)역할을 하는 메모리로, 호스트로부터 입력되는 최초 명령어, 데이터, 각종 변수들 또는 비휘발성 메모리 장치(620)로부터 출력되는 데이터들을 저장할 수 있다. 비휘발성 메모리 장치(620)로 입력되고 출력되는 데이터, 각종 파라미터 및 변수들을 저장할 수 있다.
메모리 인터페이스(616)는 컨트롤러(610)와 비휘발성 메모리 장치(620) 사이의 인터페이스를 수행할 수 있다. 메모리 인터페이스(616)는 비휘발성 메모리 장치(620)의 I/O 패드(627)와 연결되어 있으며, 데이터를 주고 받을 수 있다. 또한 메모리 인터페이스(616)는 비휘발성 메모리에 적합한 명령어를 형성하고 I/O 패드(627)에 비휘발성 메모리 장치(620)에 적합한 명령어를 제공할 수 있다. 메모리 인터페이스(616)는 비휘발성 메모리 장치(620)가 수행하고자 하는 명령어와 비휘발성 메모리 장치(620)의 주소(ADD)를 제공해 준다.
ECC 디코더(615) 및 ECC 인코더(614)는 에러 비트 정정을 수행한다. ECC 인코더(614)는 비휘발성 메모리 장치(620)로 제공되는 데이터의 오류 정정 인코딩을 하여, 패리티(parity) 비트가 부가된 데이터를 형성한다. 패리티 비트는 비휘발성 메모리 장치(620)에 저장될 수 있다.
도 4a 내지 도 4c는 도 3의 메모리 셀 어레이(622)을 설명하는 도면들이다.
도 4a를 참조하면, 메모리 셀 어레이(622)는 복수개의 메모리 블록(BLK1-BLKn)을 포함한다. 각 메모리 블록(BLK1-BLKn)은 3차원 구조 (또는 수직 구조)를 갖는다. 예를 들면, 각 메모리 블록(BLK1-BLKn)은 제1 내지 제3 방향들을 따라 신장된(expanding) 구조물들을 포함할 수 있다. 각 메모리 블록(BLK1-BLKn)은 제3 방향(Z)을 따라 신장된 복수의 셀 스트링들(CSs)을 포함할 수 있다. 복수의 셀 스트링들(CSs)은 제1 방향(X) 및 제2 방향(Y)을 따라 서로 이격될 수 있다.
도 4b는 도 4a의 제1 블록(BLK1) 일부분의 사시 단면도를 보여준다.
도 4b를 참조하면, 제1 내지 제3 방향들(X, Y, Z)을 따라 신장된 3차원 구조물이 제공된다. 기판(701)이 제공된다. 예시적으로, 기판(701)은 제1 도전형을 갖는 웰(well)일 수 있다. 기판(701)은 P 도전형의 웰일 수 있다. 기판(701) 상에 제2 방향(Y)을 따라 신장되고, 제1 방향(X)을 따라 서로 이격된 복수의 공통 소스 영역들(CSR)이 제공된다. 복수의 공통 소스 영역들(CSR)은 공통으로 연결되어 공통 소스 라인(CSL)을 구성할 수 있다. 복수의 공통 소스 영역들(CSR)은 기판(701)과 상이한 제2 도전형을 갖는다. 예를 들면, 복수의 공통 소스 영역들(CSR)은 N 도전형을 가질 수 있다.
복수의 공통 소스 영역들(CSR) 중 인접한 두개의 공통 소스 영역들 사이에, 복수의 절연 물질들(702a, 702)이 기판(701)과 수직한 방향인 제3 방향(Z)을 따라 기판(701) 상에 순차적으로 제공된다. 복수의 절연 물질들(702a, 702)은 제3 방향(Z)을 따라 서로 이격되고, 제2 방향(Y)을 따라 신장된다. 복수의 절연 물질들(702a, 702)은 반도체 산화막과 같은 절연 물질을 포함할 수 있다. 복수의 절연 물질들(702a, 702) 중 기판(701)과 접촉하는 절연 물질(702a)의 두께는 다른 절연 물질(702)의 두께보다 얇을 수 있다.
인접한 두개의 공통 소스 영역들(CSR) 사이에서, 제1 방향(X)을 따라 서로 이격되어 배치되며 제3 방향(Z)을 따라 복수의 절연 물질들(702a, 702)을 관통하는 복수의 필라들(pilla, PL)이 제공된다. 복수의 필라들(PL)은 절연 물질들(702a, 702)을 관통하여 기판(701)과 접촉할 수 있다. 복수의 필라들(PL)은 채널막들(704)과 채널막들(704) 내부의 내부 물질들(705)을 포함할 수 있다. 채널막들(704)은 기판(701)과 동일한 도전형인 제1 도전형을 갖는 반도체 물질 (예컨대, 실리콘)을 포함할 수 있다. 내부 물질들(705)은 실리콘 산화막과 같은 절연 물질을 포함할 수 있다.
인접한 두개의 공통 소스 영역들(CSR) 사이에서, 절연 물질들(702a, 702) 및 필라들(PL)의 노출된 표면들에 정보 저장막들(706)이 제공된다. 정보 저장막들(706)은 전하를 포획 또는 유출함으로써 정보를 저장할 수 있다.
인접한 두개의 공통 소스 영역들(CSR) 사이에서 그리고 절연 물질들(702a, 702) 사이에서, 정보 저장막들(706)의 노출된 표면들에 도전 물질(CM1-CM8)이 제공된다. 도전 물질들(CM1-CM8)은 제2 방향(Y)을 따라 신장될 수 있다. 공통 소스 영역들(CSR) 상에서, 도전 물질들(CM1-CM8)은 워드라인 컷(WL cut)에 의해 분리될 수 있다. 워드라인 컷(WL_cut)은 제2 방향(Y)을 따라 신장될 수 있고, 공통 소스 영역들(CSR)을 노출시킬 수 있다. 도전 물질들(CM1-CM8)은 금속성 도전 물질을 포함할 수 있다. 도전 물질(CM1-CM8)은 폴리 실리콘 등과 같은 비금속성 도전 물질을 포함할 수 있다. 도전 물질(CM1-CM8)은 기판(701)으로부터의 순서에 따라 제1 내지 제8 높이를 가질 수 있다.
복수의 필라들(PL) 상에 복수의 드레인들(707)이 제공된다. 드레인들(707)은 제2 도전형을 갖는 반도체 물질 (예컨대, 실리콘)을 포함할 수 있다. 드레인들(707)은 필라들(PL)의 채널막들(704)의 상부들로 확장될 수 있다. 드레인들(707) 상에, 제1 방향(X)으로 신장되고, 제2 방향(Y)을 따라 서로 이격된 비트라인들(BL)이 제공된다. 비트라인들(BL)은 드레인들(707)과 연결된다. 예컨대, 드레인들(707)과 비트라인들(BL)은 콘택 플러그들을 통해 연결될 수 있다. 비트라인들(BL)은 금속성 도전 물질을 포함할 수 있다. 비트라인들(BL)은 폴리 실리콘 등과 같은 비금속성 도전 물질을 포함할 수 있다.
복수의 필라들(PL)은 정보 저장막들(706) 및 복수의 도전 물질들(CM1-CM8)과 함께 복수의 셀 스트링들을 형성한다. 셀 스트링들 각각은 기판(701)과 수직한 방향으로 적층된 복수의 셀 트랜지스터들을 구성한다. 셀 트랜지스터들(CT)은 도전 물질들(CM1-CM8), 필라들(PL) 그리고 도전 물질들(CM1-CM8)과 필라들(PL) 사이에 제공되는 정보 저장막들(706)으로 구성된다.
도전 물질들(CM1-CM8)은 셀 트랜지스터들(CT)의 게이트들 (또는 제어 게이트들)로 동작한다. 예시적으로, 제1 도전 물질들(CM1)은 정보 저장막들(706) 및 필라들(PL)과 함께 접지 선택 트랜지스터들(GST)을 구성할 수 있다. 제1 도전 물질(CM1)은 서로 연결되어 공통으로 연결된 하나의 접지 선택 라인(GSL)을 구성할 수 있다. 제2 내지 제7 도전 물질들(CM2-CM7)은 정보 저장막들(706) 및 필라들(PL)과 함께 제1 내지 제6 메모리 셀들(MC1-MC6)을 구성할 수 있다. 제2 내지 제7 도전 물질들(CM2-CM7)은 제1 내지 제6 워드라인들(WL1-WL6)을 구성할 수 있다. 제8 도전 물질(CM8)은 정보 저장막들(706) 및 필라들(PL)과 함께 스트링 선택 트랜지스터들(CST)을 구성할 수 있다. 제8 도전 물질(CM1)은 스트링 선택 라인들(SSL1, SSL2)을 구성할 수 있다.
도 4c는 도 4a의 제1 블록((BLK1)의 일부분에 따른 등가 회로를 보여준다.
도 4c를 참조하면, 비트라인들(BL1, BL2) 및 공통 소스 라인(CSL) 사이에 셀 스트링들(CS11, CS12, CS21, CS22)이 제공된다. 셀 스트링들(CS11, CS12, CS21, CS22)은 스트링 선택 라인(SSL)에 연결되는 스트링 선택 트랜지스터(SST), 복수의 워드라인들(WL1-WL6)에 각각 연결된 복수의 메모리 셀들(MC1-MC6) 그리고 접지 선택 라인(GSL)에 연결된 접지 선택 트랜지스터(GST)를 포함할 수 있다.
동일한 높이의 메모리 셀들은 하나의 워드라인에 공통으로 연결되어 있다. 따라서, 특정 높이의 워드라인에 전압이 공급될 때 모든 셀 스트링들(CS11, CS12, CS21, CS22)에 전압이 인가된다.
서로 다른 행의 셀 스트링들(CS11, CS12, CS21, CS22)은 서로 다른 스트링 선택 라인들(SSL1, SSL2)에 각각 연결된다. 제1 및 제2 스트링 선택 라인들(SSL1, SSL2)을 선택 및 비선택함으로써, 셀 스트링들(CS11, CS12, CS21, CS22)이 행 단위로 선택 및 비선택될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)은 열 단위로 비트라인들(BL1, BL2)에 연결된다. 제1 비트라인(BL1)과 공통 소스 라인(CSL) 사이에 셀 스트링들(CS11, CS21)이 연결되고, 제2 비트라인(BL2)과 공통 소스 라인(CSL) 사이에 셀 스트링들(CS12, CS22)이 연결된다. 비트라인들(BL1, BL2)을 선택 및 비선택함으로써, 셀 스트링들(CS11, CS12, CS21, CS22)이 열 단위로 선택 및 비선택될 수 있다.
복수의 메모리 셀들(MC1-MC6)에 데이터를 기록하기 위해서는, 먼저 메모리 셀들이 소정의 음(negative) 문턱전압을 갖도록 이레이즈(Erase) 동작이 수행된다. 이레이즈(Erase) 동작은 블록 단위(BLK1-BLKn)로 이루어진다. 이 후, 선택된 메모리 셀과 연결된 워드라인으로 소정 시간 동안 고전압(Vpgm)을 인가하여 선택된 메모리 셀에 대한 프로그램 동작이 수행된다.
도 5은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템(300)의 구성을 보여주는 도면이다.
도 5을 참조하면, 메모리 시스템(300)은 컨트롤러(320)와 메모리 장치(330)로 구성될 수 있다. 컨트롤러(320)는 메모리 장치(330)를 제어하도록 구성될 수 있다. 메모리 시스템(300)은 휴대폰, 테블릿 PC와 같은 모바일 장치에 내장될 수 있다. 메모리 장치(330)는 도 1의 메모리 장치와 유사하게 구성될 수 있다.
본 발명의 일 실시예에 따른 컨트롤러(320)는 스토리지 관리부(Storage Manager, SM)을 포함할 수 있다. 즉, 본 실시예의 스토리지 관리부(SM)은 도 1의 경우와 달리 컨트롤러(320)에 포함될 수 있다.
스토리지 관리부(SM)는 호스트(30)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 관리할 수 있다. 스토리지 관리부(SM)는 호스트(30)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 판단을 할 수 있다.
스토리지 관리부(SM)는 호스트에 일정시간 입력이 없는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다. 스토리지 관리부(SM)는 메모리 시스템(200)이 포함된 디스플레이 장치(미도시)의 화면이 일정시간 오프(Off)되어 있는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다.
도 6은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템(400)의 구성을 보여주는 도면이다.
도 6을 참조하면, 메모리 시스템(400)은 컨트롤러(420)와 메모리 장치(430)로 구성될 수 있다. 컨트롤러(420)는 메모리 장치(430)를 제어하도록 구성될 수 있다. 메모리 시스템(400)은 휴대폰, 테블릿 PC와 같은 모바일 장치에 내장될 수 있다. 메모리 장치(430)는 도 1의 메모리 장치와 유사하게 구성될 수 있다.
본 발명의 일 실시예에 따른 호스트(20)는 스토리지 관리부(Storage Manager, SM)을 포함할 수 있다. 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 판단을 할 수 있다.
본 발명의 일 실시예에 따른 컨트롤러(420)는 메모리(MEM)를 포함하여, 호스트(40)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 저장할 수 있다.
본 발명의 일 실시예에 따른 컨트롤러(420)는 메모리(MEM)를 포함하여, 호스트(40)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 저장할 수 있다. 컨트롤러(420)는 호스트(40)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 호스트(40)로부터 수신하여 메모리(MEM)에 저장할 수 있다.
도 7은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 제어 방법들을 이용하는 메모리 시스템(500)의 구성을 보여주는 도면이다.
도 7을 참조하면, 메모리 시스템(500)은 컨트롤러(520)와 메모리 장치(530)로 구성될 수 있다. 컨트롤러(520)는 메모리 장치(530)를 제어하도록 구성될 수 있다. 메모리 시스템(200)은 휴대폰, 테블릿 PC와 같은 모바일 장치에 내장될 수 있다.
본 발명의 일 실시예에 따른 호스트(50)는 스토리지 관리부(Storage Manager, SM)을 포함할 수 있다. 스토리지 관리부(SM)는 호스트(50)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 관리할 수 있다. 본 발명의 일 실시예에 따른 스토리지 관리부(SM)는 제1 제어 명령이 빠른 처리를 필요로 하는지에 대한 정보를 메모리 장치와 호스트를 연결하는 제2 인터페이스(IF2)를 통하여 전달할 수 있다.
도 8는 본 발명의 메모리 시스템(200)의 동작을 설명하기 위한 순서도이다.
도 8를 참조하면, 컨트롤러(220)는 호스트(20)로부터 제1 제어명령(예를 들어, 리드 명령)을 수신할 수 있다(S710). 컨트롤러(220)는 제1 제어명령(예를 들어, 리드 명령)을 수신하면 컨트롤러(220)가 각종 백그라운드 동작을 수행하고 있는지 여부에 대해서 판단할 수 있다(S720). 예를 들어 컨트롤러(220)는 백그라운드 가비지 콜렉션, 리드 리클레임, 이레이즈 동작을 수행하고 있는지 여부를 판단할 수 있다. 컨트롤러(220)가 각종 백그라운드 동작을 수행하고 있는 경우, 컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다(S730).
컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 필요로한다면, 컨트롤러(220)는 진행중인 백그라운드 동작을 종료할 수 있다(S740). 컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 필요로 하지 않는다면, 제1 제어명령에 대한 처리를 보류하고 백그라운드 동작을 계속 수행할 수 있다(S750).
상기 계속 수행한 백그라운드 동작이 종료할때, 컨트롤러(220)는 보류된 제1 제어명령에 대한 처리를 수행할 수 있다.
예를 들어, 컨트롤러(220)는 상기 계속 수행한 백그라운드 동작이 종료하면, 다른 백그라운드 동작을 더 수행해야하는지 판단하고, 다른 백그라운드 동작을 수행할 필요가 없는 경우, 상기 보류된 제1 제어명령에 대한 처리를 수행할 수 있다. 예를 들어, 컨트롤러(220)는 상기 계속 수행한 백그라운드 동작이 종료하면, 상기 계속 수행한 백그라운드 동작이 수행되는 동안, 보류된 제1 제어명령 내지 제n 제어명령에 대한 동작을 수행할 수 있다. 예를 들어, 컨트롤러(220)는 상기 계속 수행한 백그라운드 동작이 종료하면, 상기 계속 수행한 백그라운드 동작이 수행되는 동안, 보류된 제1 제어명령 내지 제n 제어명령에 대한 동작을 우선순위에 따라서 수행할 수 있다.
도 9는 본 발명의 메모리 시스템(200)의 동작을 설명하기 위한 순서도이다.
도 9를 참조하면, 컨트롤러(220)는 호스트(20)로부터 제1 제어명령(예를 들어, 리드 명령)을 수신할 수 있다(S810). 컨트롤러(220)는 제1 제어명령(예를 들어, 리드 명령)을 수신하면 컨트롤러(220)가 각종 백그라운드 동작을 수행하고 있는지 여부에 대해서 판단할 수 있다(S820). 예를 들어 컨트롤러(220)는 백그라운드 가비지 콜렉션, 리드 리클레임, 이레이즈 동작을 수행하고 있는지 여부를 판단할 수 있다.
컨트롤러(220)가 각종 백그라운드 동작을 수행하고 있는 경우, 컨트롤러(220)는 호스트(20)로부터 수신한 제1 제어명령에 포함된 정보를 분석하여 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다(S825, S830).
예를 들어, 컨트롤러(220)가 수신한 제1 제어명령의 비트 신호에 따라서 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다. 예를 들어, 컨트롤러(220)가 수신한 제1 제어명령의 인코딩된 데이터에 따라서 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다. 예를 들어, 컨트롤러(220)가 수신한 제1 제어명령의 미리 정한 하나 이상의 비트 신호의 배열에 따라서 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다.
컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 필요로 한다면, 컨트롤러(220)는 진행중인 백그라운드 동작을 종료할 수 있다(S840). 컨트롤러(220)가 수신한 제1 제어명령이 빠른 처리를 필요로 하지 않는다면, 제1 제어명령에 대한 처리를 보류하고 백그라운드 동작을 계속 수행할 수 있다(S850).
도 10는 본 발명의 메모리 시스템(500)의 동작을 설명하기 위한 순서도이다.
도 10를 참조하면, 컨트롤러(520)는 호스트(50)로부터 제1 제어명령(예를 들어, 리드 명령)을 수신할 수 있다(S910). 컨트롤러(220)는 제1 제어명령(예를 들어, 리드 명령)을 수신하면 컨트롤러(520)가 각종 백그라운드 동작을 수행하고 있는지 여부에 대해서 판단할 수 있다(S920). 예를 들어 컨트롤러(520)는 백그라운드 가비지 콜렉션, 리드 리클레임, 이레이즈 동작을 수행하고 있는지 여부를 판단할 수 있다.
컨트롤러(520)가 각종 백그라운드 동작을 수행하고 있는 경우, 컨트롤러(520)는 제1 제어명령을 수신한 인터페이스와 제2 인터페이스(IF2)를 통하여 수신한 정보를 분석하여 제1 제어명령이 빠른 처리를 요하는지 판단할 수 있다(S925, S930).
컨트롤러(520)가 수신한 제1 제어명령이 빠른 처리를 필요로 한다면, 컨트롤러(520)는 진행중인 백그라운드 동작을 종료할 수 있다(S640). 컨트롤러(520)가 수신한 제1 제어명령이 빠른 처리를 필요로 하지 않는다면, 제1 제어명령에 대한 처리를 보류하고 백그라운드 동작을 계속 수행할 수 있다(S650).
도 11는 본 발명의 메모리 시스템(200)의 동작을 설명하기 위한 순서도이다.
도 11를 참조하면, 호스트(20)에 사용자 요청이 발생하면 메모리 장치(230)가 각종 백그라운드 동작 중인지 판단할 수 있다(S1010, S1020). 예를 들어 컨트롤러(220)는 메모리 장치(230)가 백그라운드 가비지 콜렉션, 리드 리클레임, 이레이즈 동작, 메모리 셀 상태 체크를 수행하고 있는지 여부를 판단할 수 있다.
메모리 장치(230)에서 각종 백그라운드 동작이 수행 중이라면, 호스트(20)에 발생된 사용자 요청이 빠른 응답이 필요한지 여부를 판단한다(S1030). 예를 들어, 메모리 장치(230)는 호스트(20)의 스토리지 관리부(SM)로 메모리 장치(230)가 백그라운드 동작을 수행하고 있는지에 대한 정보를 전달할 수 있다. 예를 들어, 메모리 장치(230)는 호스트(20)의 스토리지 관리부(SM)로 메모리 장치(230)가 어떤 백그라운드 동작을 수행하고 있는지에 대한 정보를 전달할 수 있다. 이러한 정보는 스토리지 관리부(SM)에 포함된 메모리에 저장될 수 있다.
호스트(20)에 발생된 사용자 요청이 빠른 응답이 필요하지 않은 경우에는 백그라운드 동작을 계속 수행하다가, 백그라운드 동작이 중지되면 사용자 요청을 처리한다(S1030, S1060, S1050). 예를 들어, 스토리지 관리부(SM)는 호스트에 일정시간 입력이 없는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다. 스토리지 관리부(SM)는 메모리 시스템(200)이 포함된 디스플레이 장치(미도시)의 화면이 일정시간 오프(Off)되어 있는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다.
호스트(20)에 발생된 사용자 요청이 빠른 응답이 필요한 경우에는 호스트(20)는 메모리 장치(230)의 백그라운드 동작을 중지하고(S1040), 사용자 요청을 처리한다(S1050). 호스트(20)에 발생된 사용자 요청이 빠른 응답이 필요한 경우, 호스트(20)는 사용자 요청이 어느 정도로 빠른 처리를 요하는지에 대해서 분석할 수 있다.
도 12는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 제어 방법을 채용하는 컴퓨팅 시스템을 설명하는 도면이다.
도 12를 참조하면, 컴퓨팅 시스템(1000)은 시스템 버스(1060)에 전기적으로연결되는 마이크로프로세서(1020), 램(1030), 사용자 인터페이스(1040), 베이스밴드 칩셋(Baseband Chipset)과 같은 모뎀(1050) 그리고 메모리 시스템(100)을 포함할 수 있다.
메모리 시스템(200)은 컨트롤러(220)와 메모리 장치(230)를 포함할 수 있다. 컨트롤러(220)는 시스템 버스(1060)를 통해 마이크로프로세서(1020)와 메모리 장치(230)를 연결시킬 수 있다. 컨트롤러(220)는 마이크로프로세서(1020)의 버스 포맷(Bus format)에 대응하여 메모리 장치(230)와의 인터페이싱을 제공할 수 있다. 메모리 시스템(100)은 반도체 디스크 장치(Solid State Disk: SSD)를 구성할 수 있다. 이 경우, 컨트롤러(220)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신할 수 있도록 구성될 것이다.
컨트롤러(220)는 도 1에 도시된 컨트롤러와 동일하게 구성될 수 있다. 또한, 컨트롤러(220)는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 제어 방법들을 적용할 수 있다. 메모리 장치(230)는 도 1에 도시된 플래쉬 메모리와 동일하게 구성될 수 있다.
본 발명의 일 실시예에 따른 마이크로프로세서(1020) 또는 컨트롤러(220)는 스토리지 관리부(SM)를 포함할 수 있다. 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 정보를 관리할 수 있다. 스토리지 관리부(SM)는 호스트(20)에서 발행하는 제어 명령(CTRL CMD)이 빠른 처리를 필요로 하는지 여부에 대한 판단을 할 수 있다.
스토리지 관리부(SM)는 제1 제어 명령이 빠른 처리를 필요로 하는지에 대한 정보를 제1 제어 명령에 포함하여 컨트롤러(220)에 전달할 수 있다. 스토리지 관리부(SM)는 제1 제어 명령이 빠른 처리를 필요로 하는지에 대한 정보를 메모리 장치와 호스트를 연결하는 별도의 인터페이스를 통하여 전달할 수 있다.
스토리지 관리부(SM)는 호스트에 일정시간 입력이 없는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다. 스토리지 관리부(SM)는 메모리 시스템(200)이 포함된 디스플레이 장치(미도시)의 화면이 일정시간 오프(Off)되어 있는 경우, 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단할 수 있다.
컴퓨팅 시스템(1000)이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 것이다. 또한, 컴퓨팅 시스템(1000)에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있다.
본 발명에 따른 컨트롤러(220) 및/또는 메모리 장치(230)는 다양한 형태의 패키지를 이용하여 실장될 수 있다. 예를 들면, 컨트롤러(220) 및/또는 메모리 장치(230)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic MetricQuad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다. 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 당업자라면 쉽게 구현할 수 있을 것이다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 메모리 셀 어레이를 포함하는 메모리 장치; 및
    상기 메모리 장치에 대한 백그라운드 동작을 제어하고, 호스트로부터 수신된 제1 제어명령이 빠른 처리를 요하는지에 따라서 백그라운드 동작을 종료할지 여부를 결정하는 컨트롤러를 포함하는 비휘발성 메모리 시스템.
  2. 제1항에 있어서, 상기 백그라운드 동작은 백그라운드 가비지 콜렉션, 이레이즈 동작, 리드 리클레임 및 상기 메모리 셀 어레이에 대한 상태 확인 중 적어도 하나를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제1항에 있어서, 상기 컨트롤러는 상기 제1 제어명령에 포함된 정보를 확인하여 상기 수신된 명령이 빠른 처리을 요하는지 여부를 판단하는 비휘발성 메모리 시스템.
  4. 제1항에 있어서, 상기 컨트롤러는 상기 호스트와 연결된 인터페이스를 통하여 상기 수신된 명령이 빠른 처리를 요하는지 여부를 판단하는 비휘발성 메모리 시스템.
  5. 제1항에 있어서, 상기 제1 제어명령은 어느 정도 빠른 처리를 요하는지에 대한 정보를 포함하고, 상기 컨트롤러는 상기 제1 제어명령이 어느 정도 빠른 처리를 요하는지에 대한 정보에 따라서 백그라운드 동작을 종료할지 여부를 결정하는 비휘발성 메모리 시스템.
  6. 제1항에 있어서, 상기 컨트롤러는 상기 호스트로 저장장치가 백그라운 동작을 수행하고 있는지 여부에 대한 정보를 전달하고, 상기 호스트는 그 정보를 비트 신호로 저장하고,
    상기 호스트에 빠른 응답이 필요하지 않은 사용자 요청이 들어온 경우, 사용자 요청을 지연시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제1항에 있어서, 상기 컨트롤러는 상기 백그라운드 동작을 처리하기 위하여 필요한 시간에 대한 정보를 상기 호스트에 전달하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제1항에 있어서, 상기 호스트는 일정시간 입력이 없는 경우 또는 상기 플래시 메모리 시스템이 포함된 디스플레이 장치의 화면이 일정시간 오프(Off)되어 있는 경우, 상기 컨트롤러로 전달하는 명령이 빠른 처리를 요하지 않는 것으로 판단하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  9. 제1항에 있어서, 상기 컨트롤러는 일정시간 입력이 없는 경우, 상기 제1 제어명령이 빠른 처리를 요하지 않는 것으로 판단하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 제1항에 있어서, 상기 컨트롤러는 상기 백그라운드 동작이 완료된 후에 상기 호스트로부터 상기 제1 제어명령을 처리하는 것을 특징으로 하는 비휘발성 메모리 시스템.
KR1020140029268A 2014-03-12 2014-03-12 메모리 시스템 및 메모리 시스템의 제어 방법 KR20150106778A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140029268A KR20150106778A (ko) 2014-03-12 2014-03-12 메모리 시스템 및 메모리 시스템의 제어 방법
US14/620,305 US9715344B2 (en) 2014-03-12 2015-02-12 Memory device and controlling method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140029268A KR20150106778A (ko) 2014-03-12 2014-03-12 메모리 시스템 및 메모리 시스템의 제어 방법

Publications (1)

Publication Number Publication Date
KR20150106778A true KR20150106778A (ko) 2015-09-22

Family

ID=54068918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140029268A KR20150106778A (ko) 2014-03-12 2014-03-12 메모리 시스템 및 메모리 시스템의 제어 방법

Country Status (2)

Country Link
US (1) US9715344B2 (ko)
KR (1) KR20150106778A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190118016A (ko) * 2018-04-09 2019-10-17 에스케이하이닉스 주식회사 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11144225B2 (en) 2019-06-28 2021-10-12 SK Hynix Inc. Memory system, memory controller, and operation method thereof utilizing at least first and second operational modes
US11416366B2 (en) 2019-05-09 2022-08-16 SK Hynix Inc. Controller and memory system having the same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959078B2 (en) * 2015-01-30 2018-05-01 Sandisk Technologies Llc Multi-die rolling status mode for non-volatile storage
US10114690B2 (en) 2015-02-13 2018-10-30 Sandisk Technologies Llc Multi-die status mode for non-volatile storage
US9940234B2 (en) * 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6982468B2 (ja) 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
US11526435B2 (en) * 2020-02-04 2022-12-13 Western Digital Technologies, Inc. Storage system and method for automatic data phasing
US11562018B2 (en) 2020-02-04 2023-01-24 Western Digital Technologies, Inc. Storage system and method for optimized surveillance search
US11328511B2 (en) 2020-03-13 2022-05-10 Western Digital Technologies, Inc. Storage system and method for improved playback analysis
CN111400201B (zh) 2020-03-19 2022-08-16 合肥兆芯电子有限公司 快闪存储器的数据整理方法、存储装置及控制电路单元
TWI738272B (zh) * 2020-03-30 2021-09-01 大陸商合肥兆芯電子有限公司 快閃記憶體之資料整理方法、快閃記憶體儲存裝置及快閃記憶體控制電路單元
US11240540B2 (en) 2020-06-11 2022-02-01 Western Digital Technologies, Inc. Storage system and method for frame trimming to optimize network bandwidth
KR20210157157A (ko) * 2020-06-19 2021-12-28 삼성전자주식회사 메모리 컨트롤러의 구동방법, 호스트의 구동방법 및 스토리지 장치

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594687B1 (ko) 1998-12-24 2006-10-04 엘지전자 주식회사 휴대용단말기에서 대량의 데이타 저장 방법
JP2002318714A (ja) 2001-04-23 2002-10-31 Casio Comput Co Ltd フラッシュメモリ最適化装置及びプログラム
JP2004133752A (ja) 2002-10-11 2004-04-30 Fujitsu Ltd 世代gcを有するサーバ・システム
JP2004178417A (ja) 2002-11-28 2004-06-24 Hitachi Ltd 不揮発性メモリ手段を備える処理装置および不揮発性メモリ制御方法
US7437557B2 (en) 2003-06-03 2008-10-14 Lg Electronics Inc. Garbage collection system and method for a mobile communication terminal
KR101091208B1 (ko) 2004-10-28 2011-12-07 엘지전자 주식회사 휴대용 단말기 및 그의 메모리 데이터 정리방법
JP2008217972A (ja) * 2007-02-28 2008-09-18 Samsung Electronics Co Ltd 不揮発性メモリ素子の作動方法
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US8364918B1 (en) 2007-04-06 2013-01-29 Marvell International Ltd. Sensed opportunistic garbage collection in memory components
US7743203B2 (en) * 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
KR101017067B1 (ko) 2008-04-08 2011-02-25 재단법인서울대학교산학협력재단 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US20100287217A1 (en) 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
KR101067018B1 (ko) 2009-04-17 2011-09-22 서울대학교산학협력단 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치
US9323658B2 (en) 2009-06-02 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Multi-mapped flash RAID
US8402242B2 (en) 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
KR20110100466A (ko) 2010-03-04 2011-09-14 삼성전자주식회사 휘발성 메모리 장치를 구비하는 시스템의 파워다운 방법
KR20120049604A (ko) 2010-11-09 2012-05-17 삼성전자주식회사 모바일 디바이스의 메모리 관리 방법 및 장치
JP5845571B2 (ja) 2010-11-30 2016-01-20 富士通株式会社 計算システムおよび計算システム管理方法
GB2500153A (en) 2010-11-30 2013-09-11 Ibm A Method, Computer Program and System to Optimize Memory Management of An Application Running on a Virtual Machine
JP5618796B2 (ja) 2010-12-02 2014-11-05 株式会社日立製作所 計算機、計算機の制御方法及びプログラム
US8499010B2 (en) 2010-12-22 2013-07-30 International Business Machines Corporation Garbage collection in a multiple virtual machine environment
CN102981959B (zh) * 2011-09-05 2015-11-04 光宝科技股份有限公司 固态存储装置及其垃圾搜集动作的控制方法
KR101907059B1 (ko) 2011-12-21 2018-10-12 삼성전자 주식회사 비휘발성 메모리 장치의 블록 관리 방법 및 블록 관리 시스템
US8902657B2 (en) * 2012-09-07 2014-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device and controller
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190118016A (ko) * 2018-04-09 2019-10-17 에스케이하이닉스 주식회사 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11416366B2 (en) 2019-05-09 2022-08-16 SK Hynix Inc. Controller and memory system having the same
US11144225B2 (en) 2019-06-28 2021-10-12 SK Hynix Inc. Memory system, memory controller, and operation method thereof utilizing at least first and second operational modes
US11500562B2 (en) 2019-06-28 2022-11-15 SK Hynix Inc. Memory system, memory controller, and operation method thereof utilizing at least first and second operational modes

Also Published As

Publication number Publication date
US20150261452A1 (en) 2015-09-17
US9715344B2 (en) 2017-07-25

Similar Documents

Publication Publication Date Title
KR20150106778A (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
KR102024850B1 (ko) 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR101716713B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
CN106157999B (zh) 包括虚设存储单元的半导体存储器件及其操作方法
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR102226367B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템
KR101997572B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
US9053794B2 (en) Nonvolatile memory device and related method of operation
US20170031626A1 (en) Storage device including non-volatile memory device and program method thereof
US9443599B2 (en) Method of controlling erase operation of a memory and memory system implementing the same
KR102225989B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102360211B1 (ko) 메모리 시스템의 동작 방법
KR102128825B1 (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
KR20160127524A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170085286A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US8817540B2 (en) Nonvolatile memory device and program method thereof
KR102254099B1 (ko) 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템
US20190019563A1 (en) Semiconductor memory device and method of operating the same
TWI683317B (zh) 包含三維陣列結構的半導體記憶體裝置和包含其之記憶體系統
CN111128280B (zh) 存储装置及其操作方法
KR20160063493A (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR102069274B1 (ko) 메모리 제어 방법
KR20140011667A (ko) 복수의 불휘발성 메모리 칩들을 포함하는 저장 장치 및 그것의 제어 방법
US11340802B2 (en) Semiconductor memory device, controller, memory system and method thereof
KR20130130484A (ko) 읽기 카운터 로직을 포함하는 플래시 메모리 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application