KR20230072363A - Storage device and mehtod of operating storage device - Google Patents
Storage device and mehtod of operating storage device Download PDFInfo
- Publication number
- KR20230072363A KR20230072363A KR1020220005071A KR20220005071A KR20230072363A KR 20230072363 A KR20230072363 A KR 20230072363A KR 1020220005071 A KR1020220005071 A KR 1020220005071A KR 20220005071 A KR20220005071 A KR 20220005071A KR 20230072363 A KR20230072363 A KR 20230072363A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory area
- write
- memory
- mode
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 252
- 239000000872 buffer Substances 0.000 claims abstract description 152
- 238000013508 migration Methods 0.000 claims abstract description 41
- 230000005012 migration Effects 0.000 claims abstract description 41
- 238000012546 transfer Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 31
- 238000013500 data storage Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 5
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 229910052751 metal Inorganic materials 0.000 description 70
- 239000002184 metal Substances 0.000 description 70
- 239000010410 layer Substances 0.000 description 57
- 239000000758 substrate Substances 0.000 description 34
- 238000010586 diagram Methods 0.000 description 28
- 230000002093 peripheral effect Effects 0.000 description 22
- 239000004065 semiconductor Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 150000002739 metals Chemical class 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 8
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 8
- 230000004913 activation Effects 0.000 description 8
- 102100023607 Homer protein homolog 1 Human genes 0.000 description 7
- 101001048469 Homo sapiens Homer protein homolog 1 Proteins 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 239000010949 copper Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 4
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 4
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 4
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 4
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 229910052802 copper Inorganic materials 0.000 description 4
- 101150064834 ssl1 gene Proteins 0.000 description 4
- 229910052782 aluminium Inorganic materials 0.000 description 3
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 3
- 239000004020 conductor Substances 0.000 description 3
- 239000011229 interlayer Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 3
- 229910052721 tungsten Inorganic materials 0.000 description 3
- 239000010937 tungsten Substances 0.000 description 3
- 101150053844 APP1 gene Proteins 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 2
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 2
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 2
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 2
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101150062870 ssl3 gene Proteins 0.000 description 2
- 102100028043 Fibroblast growth factor 3 Human genes 0.000 description 1
- 102100034826 Homeobox protein Meis2 Human genes 0.000 description 1
- 101000944098 Homo sapiens Cbp/p300-interacting transactivator 2 Proteins 0.000 description 1
- 101001019057 Homo sapiens Homeobox protein Meis2 Proteins 0.000 description 1
- 101001019059 Homo sapiens Homeobox protein Meis3 Proteins 0.000 description 1
- 101000575036 Homo sapiens Putative homeobox protein Meis3-like 1 Proteins 0.000 description 1
- 101000777293 Homo sapiens Serine/threonine-protein kinase Chk1 Proteins 0.000 description 1
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 1
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 1
- 102100024370 Integrator complex subunit 11 Human genes 0.000 description 1
- 101710149806 Integrator complex subunit 11 Proteins 0.000 description 1
- 108050002021 Integrator complex subunit 2 Proteins 0.000 description 1
- 101710092886 Integrator complex subunit 3 Proteins 0.000 description 1
- 101710092887 Integrator complex subunit 4 Proteins 0.000 description 1
- 102100025254 Neurogenic locus notch homolog protein 4 Human genes 0.000 description 1
- 102100037075 Proto-oncogene Wnt-3 Human genes 0.000 description 1
- 102100025551 Putative homeobox protein Meis3-like 1 Human genes 0.000 description 1
- 102100031081 Serine/threonine-protein kinase Chk1 Human genes 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 101100204286 Ustilago maydis (strain 521 / FGSC 9021) ust1 gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 239000011810 insulating material Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 150000002736 metal compounds Chemical class 0.000 description 1
- 239000007769 metal material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
본 발명은 반도체 집적 회로에 관한 것으로, 보다 상세하게는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다. The present invention relates to a semiconductor integrated circuit, and more particularly, to a storage device and a method of operating the storage device.
반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile Memory Device) 및 비휘발성 메모리 장치(Nonvolatile Memory Device)로 구분된다.Semiconductor memory devices are largely classified into volatile memory devices and nonvolatile memory devices.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 반면에 비휘발성 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 비휘발성 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 비휘발성 메모리 장치 중 하나인 플래시 메모리장치는 저소음, 저전력, 빠른 동작 속도 등의 장점을 갖기 때문에, 다양한 분야에서 사용된다. 예를 들어, 스마트폰, 태블릿 PC와 같은 모바일 시스템은 스토리지 매체로서 대용량 플래시 메모리 장치를 사용한다. A volatile memory device is a memory device in which stored data is lost when power supply is cut off. On the other hand, non-volatile memory devices retain their contents even when power supply is interrupted. Therefore, non-volatile memory devices are used to store contents to be preserved regardless of whether power is supplied or not. A flash memory device, which is one of nonvolatile memory devices, has advantages such as low noise, low power consumption, and high operating speed, and thus is used in various fields. For example, mobile systems such as smart phones and tablet PCs use large-capacity flash memory devices as storage media.
비휘발성 메모리 장치와 스토리지 컨트롤러를 포함하는 스토리지 장치가 모바일 장치에 채용되는 경우, 스토리지 컨트롤러의 크기를 감소시키는 기법들이 개발되고 있다. When a storage device including a non-volatile memory device and a storage controller is used in a mobile device, techniques for reducing the size of the storage controller are being developed.
본 발명의 일 목적은 스토리지 컨트롤러의 크기를 감소시킬 수 있는 스토리지 장치를 제공하는 것이다. One object of the present invention is to provide a storage device capable of reducing the size of a storage controller.
본 발명의 일 목적은 스토리지 컨트롤러의 크기를 감소시킬 수 있는 스토리지 장치의 동작 방법을 제공하는 것이다.One object of the present invention is to provide a method of operating a storage device capable of reducing the size of a storage controller.
상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 스토리지 장치는 비휘발성 메모리 장치 및 스토리지 컨트롤러를 포함한다. 상기 비휘발성 메모리 장치는 제1 기입 속도를 가지는 제1 메모리 영역과 상기 제1 기입 속도보다 느린 제2 기입 속도를 가지는 제2 메모리 영역을 구비한다. 상기 스토리지 컨트롤러는 상기 제1 메모리 영역에 기저장된 제2 데이터를 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역에 저장되도록 데이터 마이그레이션 동작을 제어한다.A storage device according to embodiments of the present invention for achieving the above object includes a non-volatile memory device and a storage controller. The nonvolatile memory device includes a first memory area having a first write speed and a second memory area having a second write speed lower than the first write speed. The storage controller performs a plurality of read-and-transfer operations of reading second data pre-stored in the first memory area by a first unit and providing the read first unit of data to a data input/output circuit of the nonvolatile memory device. and controls a data migration operation so that the second data provided to the data input/output circuit is stored in the second memory area.
상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 제1 기입 속도를 가지는 제1 메모리 영역과 상기 제1 기입 속도보다 느린 제2 기입 속도를 가지는 제2 메모리 영역을 구비하는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하는 스토리지 컨트롤러를 포함하는 스토리지 장치의 동작 방법에서는, 상기 스토리지 컨트롤러가 외부의 호스트로부터 제1 데이터를 수신하고, 상기 스토리지 컨트롤러가 상기 제1 메모리 영역에 기저장된 제2 데이터를 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-전달 동작을 복수의 횟수만큼 수행하고, 상기 비휘발성 메모리 장치가 상기 데이터 입출력 회로에 제공된 상기 제2 데이터를 상기 제2 메모리 영역에 프로그램한다. A non-volatile memory device having a first memory area having a first write speed and a second memory area having a second write speed slower than the first write speed according to embodiments of the present invention for achieving the above object; and In the operating method of a storage device including a storage controller controlling the non-volatile memory device, the storage controller receives first data from an external host, and the storage controller receives second data pre-stored in the first memory area. by a first unit, and performing a read-and-transfer operation of providing the read first unit of data to a data input/output circuit of the nonvolatile memory device a plurality of times, and the nonvolatile memory device performs the data input/output circuit. The second data provided to the circuit is programmed into the second memory area.
상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 스토리지 장치는 비휘발성 메모리 장치 및 스토리지 컨트롤러를 포함한다. 상기 비휘발성 메모리 장치는 제1 기입 속도를 가지는 제1 메모리 영역과 상기 제1 기입 속도보다 느린 제2 기입 속도를 가지는 제2 메모리 영역을 구비한다. 상기 스토리지 컨트롤러는 제1 모드에서는 외부로부터 제공되는 제1 데이터를 상기 제1 메모리 영역에 우선적으로 저장하고, 내부 버퍼를 구비한다. 상기 스토리지 컨트롤러는 상기 제1 메모리 영역에 기저장된 제2 데이터를 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역에 저장되도록 데이터 마이그레이션 동작을 제어한다. 상기 스토리지 컨트롤러는 프로세서, 프로그램/마이그레이션 매니저 및 에러 정정 코드(error correction code; ECC) 엔진을 포함한다. 상기 프로세서는 상기 제1 데이터와 관련된 기입 리퀘스트에 기초하여 상기 제1 데이터와 관련된 기입 모드를 상기 제1 모드와 상기 제1 데이터를 상기 제2 메모리 영역에 저장하는 제2 모드 중 하나로 결정한다. 상기 프로그램/마이그레이션 매니저는 상기 프로세서의 제어에 기초하여 프로그램 동작과 상기 데이터 마이그레이션 동작을 제어한다. 상기 ECC 엔진은 상기 독출된 제1 단위의 데이터에 대하여 ECC 디코딩을 수행하여 상기 독출된 제1 단위의 데이터의 에러를 정정한다. A storage device according to embodiments of the present invention for achieving the above object includes a non-volatile memory device and a storage controller. The nonvolatile memory device includes a first memory area having a first write speed and a second memory area having a second write speed lower than the first write speed. The storage controller preferentially stores first data provided from the outside in the first memory area in a first mode and includes an internal buffer. The storage controller performs a plurality of read-and-transfer operations of reading second data pre-stored in the first memory area by a first unit and providing the read first unit of data to a data input/output circuit of the nonvolatile memory device. and controls a data migration operation so that the second data provided to the data input/output circuit is stored in the second memory area. The storage controller includes a processor, a program/migration manager and an error correction code (ECC) engine. The processor determines a write mode related to the first data as one of the first mode and a second mode for storing the first data in the second memory area based on a write request related to the first data. The program/migration manager controls the program operation and the data migration operation based on the control of the processor. The ECC engine corrects errors in the read first unit data by performing ECC decoding on the read first unit data.
본 발명의 실시예들에 따른 스토리지 장치 및 스토리지 장치의 동작 방법에서는 기입 속도가 빠른 제1 메모리 영역에 제1 데이터를 프로그램하고자 하는 경우, 제1 메모리 영역에 기저장된 제2 데이터를 스토리지 컨트롤러의 내부 버퍼에 순차적으로 이동시킨 후, 제2 데이터를 제1 기입 속도보다 느린 제2 기입 속도를 가지는 제2 메모리 영역에 프로그램하는 데이터 마이그레션 동작을 수행할 수 있다. 내부 버퍼의 데이터 저장 용량이 제1 메모리 영역의 데이터 저장 용량보다 작아도 되므로, 내부 버퍼의 크기를 감소시켜 스토리지 컨트롤러의 크기를 감소시킬 수 있다.In the storage device and method of operating the storage device according to embodiments of the present invention, when first data is to be programmed in a first memory area having a high write speed, second data pre-stored in the first memory area is stored inside the storage controller. After sequentially moving the data to the buffer, a data migration operation may be performed in which the second data is programmed into a second memory area having a second write speed slower than the first write speed. Since the data storage capacity of the internal buffer may be smaller than the data storage capacity of the first memory area, the size of the storage controller may be reduced by reducing the size of the internal buffer.
도 1은 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 도 1의 호스트를 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 도 1의 스토리지 장치에서 스토리지 컨트롤러의 구성을 나타내는 블록도이다.
도 4a는 도 1의 스토리지 장치에서 스토리지 컨트롤러와 하나의 비휘발성 메모리 장치의 연결을 나타내는 블록도이다.
도 4b는 도 4a에서 프로세서와 프로그램/마이그레이션 매니저를 나타낸다.
도 4c는 도 4a의 스토리지 장치의 동작을 설명하기 위한 타이밍도이다.
도 5는 본 발명의 실시예들에 따른 도 4a에서 비휘발성 메모리 장치를 나타내는 블록도이다.
도 6은 도 5의 비휘발성 메모리 장치에서 메모리 셀 어레이를 나타내는 블록도이다.
도 7a는 도 6의 메모리 블록들 중 하나의 메모리 블록을 나타내는 회로도이다.
도 7b는 도 6의 메모리 블록들 중 하나의 메모리 블록을 나타내는 사시도이다.
도 7c는 도 6의 메모리 블록들 중 하나의 메모리 블록을 나타내는 평면도이다.
도 8은 도 7a의 메모리 블록의 하나의 낸드 스트링의 구조의 예를 나타낸다.
도 9는 제1 메모리 영역의 메모리 셀들의 문턱 전압 분포와 제2 메모리 영역의 제2 메모리 셀들의 문턱 전압 분포를 나타낸다.
도 10과 도 11은 각각 본 발명의 실시예들에 따른 도 5의 메모리 셀 어레이의 예를 나타내는 블록도들이다.
도 12 및 도 13은 각각 도 4의 스토리지 장치가 제1 모드와 제2 모드에서 기입 동작을 수행하는 것을 나타낸다.
도 14는 도 4의 스토리지 장치가 제1 모드에서 데이터 마이그레이션 동작을 수행하는 것을 나타낸다.
도 15a는 본 발명의 실시예들에 따른 도 14의 스토리지 장치의 동작 시퀀스를 나타낸다.
도 15b는 본 발명의 실시예들에 따른 도 14의 스토리지 장치의 제1 모드에서의 동작 시퀀스의 다른 예를 나타낸다.
도 16은 본 발명의 실시예들에 따른 도 5의 메모리 셀 어레이를 예시적으로 나타낸다.
도 17 및 도 18은 도 16의 터보 라이트 버퍼 타입을 설명하기 위한 도면들이다.
도 19는 도 1의 스토리지 시스템의 동작을 예시적으로 보여주는 순서도이다.
도 20은 도 1의 스토리지 장치의 물리적 저장 공간을 예시적으로 보여주는 블록도이다.
도 21은 본 발명의 실시예들에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 단면도이다.
도 23은 본 발명의 실시예들에 따른 반도체 장치를 포함하는 전자 시스템을 나타내는 블록도이다.
도 24는 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.
도 25는 스토리지 시스템에 본 발명의 실시 예가 적용된 개념도를 보여준다.1 is a block diagram illustrating a storage system according to example embodiments.
2 is a block diagram illustrating the host of FIG. 1 according to embodiments of the present invention.
FIG. 3 is a block diagram illustrating a configuration of a storage controller in the storage device of FIG. 1 according to example embodiments.
FIG. 4A is a block diagram illustrating a connection between a storage controller and one nonvolatile memory device in the storage device of FIG. 1 .
Figure 4b shows the processor and program/migration manager in Figure 4a.
4C is a timing diagram for explaining an operation of the storage device of FIG. 4A.
5 is a block diagram illustrating the non-volatile memory device of FIG. 4A according to example embodiments.
FIG. 6 is a block diagram illustrating a memory cell array in the nonvolatile memory device of FIG. 5 .
FIG. 7A is a circuit diagram illustrating one memory block among the memory blocks of FIG. 6 .
FIG. 7B is a perspective view illustrating one memory block among the memory blocks of FIG. 6 .
7C is a plan view illustrating one memory block among the memory blocks of FIG. 6 .
8 shows an example of a structure of one NAND string of the memory block of FIG. 7A.
9 illustrates threshold voltage distributions of memory cells in a first memory area and threshold voltage distributions of second memory cells in a second memory area.
10 and 11 are block diagrams each illustrating an example of the memory cell array of FIG. 5 according to example embodiments.
12 and 13 show that the storage device of FIG. 4 performs a write operation in a first mode and a second mode, respectively.
14 illustrates that the storage device of FIG. 4 performs a data migration operation in a first mode.
15A illustrates an operation sequence of the storage device of FIG. 14 according to embodiments of the present invention.
15B shows another example of an operation sequence in the first mode of the storage device of FIG. 14 according to embodiments of the present invention.
16 illustratively illustrates the memory cell array of FIG. 5 according to embodiments of the present invention.
17 and 18 are diagrams for explaining the turbo write buffer type of FIG. 16 .
19 is a flowchart illustrating an operation of the storage system of FIG. 1 as an example.
FIG. 20 is a block diagram showing a physical storage space of the storage device of FIG. 1 as an example.
21 is a flowchart illustrating a method of operating a storage device according to example embodiments.
22 is a cross-sectional view illustrating a nonvolatile memory device according to example embodiments.
23 is a block diagram illustrating an electronic system including a semiconductor device according to example embodiments.
24 is a block diagram illustrating a storage system according to example embodiments.
25 shows a conceptual diagram to which an embodiment of the present invention is applied to a storage system.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. The same reference numerals are used for the same components in the drawings, and redundant descriptions of the same components are omitted.
도 1은 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a storage system according to example embodiments.
도 1을 참조하면, 스토리지 시스템(50)은 호스트(100) 및 스토리지 장치(200)를 포함할 수 있다. 호스트(100)는 스토리지 인터페이스(140)를 포함한다.Referring to FIG. 1 , a
도 1의 스토리지 장치(200)는 데이터를 저장할 수 있는 임의의 종류의 저장 장치일 수 있다. The
스토리지 장치(200)는 스토리지 컨트롤러(300), 복수의 비휘발성 메모리 장치들(400a~400k, k는 2 이상의 자연수), 전력관리 집적회로(이하 'PMIC', 600) 및 호스트 인터페이스(240)를 포함할 수 있다. 호스트 인터페이스(240)는 신호 커넥터(241) 및 전원 커넥터(243)를 포함할 수 있다. 스토리지 장치(200)는 버퍼 메모리(BM, 250)를 더 포함할 수 있다.The
복수의 비휘발성 메모리 장치들(400a~400k)은 스토리지 장치(200)의 저장 매체로서 사용된다. 비휘발성 메모리 장치들(400a~400k) 각각은 플래시 메모리 또는 수직형 낸드 메모리 장치로 구현될 수 있다. 스토리지 컨트롤러(300)는 복수의 채널들(CHK1~CHk) 각각을 통하여 비휘발성 메모리 장치들(400a~400k) 각각과 연결된다. The plurality of
스토리지 컨트롤러(300)는 신호 커넥터(241)를 통해 호스트(100)로부터 리퀘스트(REQ)를 수신하고, 호스트(100)와 데이터(DTA)를 송수신한다. 스토리지 컨트롤러(300)는 호스트(100)로부터 수신되는 리퀘스트(REQ)에 기초하여 비휘발성 메모리 장치들(400a~400k)에 데이터(DTA)를 기입하거나 비휘발성 메모리 장치들(400a~400k)로부터 데이터(DTA)를 독출한다. The
이 경우에, 스토리지 컨트롤러(300)는 버퍼 메모리(250)를 입출력 버퍼로서 사용하여 호스트(100)와 데이터(DTA)를 송수신할 수 있다. 일 실시예에 있어서, 버퍼 메모리(250)는 DRAM(Dynamic Random Access Memory)을 포함할 수 있다.In this case, the
PMIC(600)는 전원 커넥터(243)를 통해 호스트(100)로부터 복수의 전원 전압들(또는 외부 전원전압들, VES1~VESt)을 수신할 수 있다. 예를 들어, 전원 커넥터(243)는 복수의 전력 라인들(P1~Pt)을 포함하고, PMIC(600)는 호스트(100)로부터 전력 라인들(P1~Pt)을 통해 전원 전압들(VES1~VESt)을 각각 수신할 수 있다. 여기서, t는 2 이상의 양의 정수를 나타낸다. The
PMIC(600)는 전원 전압들(VES1~VESt)에 기초하여 스토리지 컨트롤러(300)의 동작에 필요한 적어도 하나의 제1 동작 전압(VOP1), 비휘발성 메모리 장치들(400a~400k)의 동작에 필요한 적어도 하나의 제2 동작 전압(VOP2), 및 버퍼 메모리(250)의 동작에 필요한 적어도 하나의 제3 동작 전압(VOP3)을 생성할 수 있다.The
예를 들어, PMIC(600)는 호스트(100)로부터 전원 전압들(VES1~VESt)을 모두 수신하는 경우, 전원 전압들(VES1~VESt)을 모두 사용하여 적어도 하나의 제1 동작 전압(VOP1), 적어도 하나의 제2 동작 전압(VOP2), 및 적어도 하나의 제3 동작 전압(VOP3)을 생성할 수 있다. 반면에, PMIC(500)는 호스트(100)로부터 전원 전압들(VES1~VESt) 중의 일부만을 수신하는 경우, 상기 수신되는 일부의 전원 전압들을 모두 사용하여 적어도 하나의 제1 동작 전압(VOP1), 적어도 하나의 제2 동작 전압(VOP2), 및 적어도 하나의 제3 동작 전압(VOP3)을 생성할 수 있다.For example, when the
도 2는 본 발명의 실시예들에 따른 도 1의 호스트를 나타내는 블록도이다.2 is a block diagram illustrating the host of FIG. 1 according to embodiments of the present invention.
도 2를 참조하면, 호스트(100)는 중앙 처리 장치(central processing unit, 이하 CPU; 110), ROM(120), 메인 메모리(130), 스토리지 인터페이스(140), 사용자 인터페이스(150) 및 버스(160)를 포함할 수 있다.Referring to FIG. 2 , the
버스(160)는 호스트(100)의 CPU(110), 롬(120), 메인 메모리(130), 스토리지 인터페이스(140) 및 사용자 인터페이스(150) 간의 데이터를 전송하는 전송로를 의미한다. 롬(120)에는 다양한 어플리케이션(application) 프로그램들이 저장되어 있다. 실시예에 있어서, ATA(Advanced Technology Attachment), SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card), UFS(Unix File System) 등과 같은 스토리지 프로토콜을 지원하는 애플리케이션 프로그램들이 롬(120)에 저장될 수 있다. The
메인 메모리(130)에는 데이터 또는 프로그램이 일시적으로 저장될 수 있다. 사용자 인터페이스(150)는 사용자와 호스트 기기, 컴퓨터 프로그램 등 사이에서 정보를 주고받을 수 있는 물리적 또는 가상적 매개체로서 물리적인 하드웨어와 논리적인 소프트웨어를 포함한다. 즉, 사용자 인터페이스(150)는 사용자가 호스트(100)를 조작할 수 있는 입력 장치와 사용자 입력에 대한 처리 결과를 표시하는 출력 장치를 포함할 수 있다.Data or programs may be temporarily stored in the
CPU(110)는 호스트(100)의 전반적인 동작을 제어한다. CPU(110)는 ROM(120)에 저장된 어플리케이션(application) 또는 툴(tool)을 이용하여 스토리지 장치(200)에 데이터를 저장하기 위한 리퀘스트(또는 커맨드) 또는 스토리지 장치(200)로부터 데이터를 읽어내기 위한 커맨드와 전원 전압들(VES1~VESt)을 생성시켜 스토리지 인터페이스(140)를 통하여 스토리지 장치(200)로 전달하도록 제어할 수 있다.The
도 3은 본 발명의 실시예들에 따른 도 1의 스토리지 장치에서 스토리지 컨트롤러의 구성을 나타내는 블록도이다.FIG. 3 is a block diagram illustrating a configuration of a storage controller in the storage device of FIG. 1 according to example embodiments.
도 3을 참조하면, 스토리지 컨트롤러(300)는 버스(305)를 통하여 서로 연결되는 프로세서(310), 에러 정정 코드(error correction code, 이하 'ECC') 엔진(320), 온-칩 메모리(330), 랜더마이저(340), 호스트 인터페이스(350), 롬(360), 내부 버퍼(380) 및 메모리 인터페이스(370)를 포함할 수 있다.Referring to FIG. 3 , the
프로세서(310)는 스토리지 컨트롤러(300)의 제반 동작을 제어한다. 프로세서(310)는 온-칩 메모리(330), ECC 엔진(320), 랜더마이저(340), 내부 버퍼(380) 및 메모리 인터페이스(370)를 제어할 수 있다. The
프로세서(310)는 하나 이상의 코어들(예를 들어, 동종 멀티-코어 또는 이종 멀티-코어)을 포함할 수 있다. 예를 들어, 프로세서(310)는 CPU(Central Processing Unit), ISP(Image Signal Processing Unit), DSP(Digital Signal Processing Unit), GPU(Graphics Processing Unit), VPU(Vision Processing Unit), 및 NPU(Neural Processing Unit) 중 적어도 하나를 포함할 수 있다. 프로세서(310)는 온-칩 메모리(330)에 로드된 다양한 응용 프로그램들(예를 들어, 플래시 변환 계층(Flash Translation layer, 이하 'FTL')), 펌웨어 등)을 실행할 수 있다.
온-칩 메모리(330)는 프로세서(310)에 의해 실행되는 다양한 응용 프로그램들을 저장할 수 있다. 온-칩 메모리(330)는 프로세서(310)에 인접한 캐시 메모리로서 동작할 수 있다. 온-칩 메모리(330)는 프로세서(310)에 의해 처리될 명령, 어드레스, 데이터 등을 저장하거나 프로세서(310)의 처리 결과를 저장할 수 있다. 예를 들어, 온-칩 메모리(330)는 래치(Latch), 레지스터(Register), SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory), TRAM(Thyristor Random Access Memory), TCM(Tightly Coupled Memory) 등을 포함하는 저장 매체 또는 워킹 메모리일 수 있다. The on-
프로세서(310)는 온-칩 메모리(330)에 로드된 FTL(335)을 실행할 수 있다. The
FTL(335)은 비휘발성 메모리 장치들(400a~400k) 중 하나에 저장된 펌웨어 또는 프로그램으로서 온-칩 메모리(330)에 로드될 수 있다. FTL(335)은 논리 어드레스와 비휘발성 메모리 장치들(400a~400k)의 물리 어드레스 간의 맵핑을 관리하고 갱신하는 어드레스 맵핑 테이블 관리자를 포함할 수 있다. FTL(335)은 상술한 어드레스 맵핑 이외에도 가비지 컬렉션(Garbage Collection), 웨어 레벨링(Wear Leveling) 등을 더 수행할 수 있다. FTL(335)은 비휘발성 메모리 장치들(400a~400k)이 갖는 제약(예를 들어 덮어쓰기(Overwrite 또는 In-place Write) 불가, 메모리 셀의 수명, 한정된 P/E(Program-Erase) 사이클, 소거 속도가 기입 속도보다 느림, 등)을 해소하기 위해 프로세서(310)에 의해 실행될 수 있다.The
특히 FTL(335)은 비휘발성 메모리 장치들(400a~400k) 각각의 제1 메모리 영역 및 제2 메모리 영역의 프로그램/소거 사이클 정보, 상기 제1 메모리 영역 및 상기 제2 메모리 영역 내의 프리 블록들의 개수 및 상기 제1 메모리 영역 및 상기 제2 메모리 영역의 데이터 보유 시간 정보 중 적어도 하나를 저장하고 저장된 정보를 상태 정보(sinf)로서 프로세서(310)에 제공할 수 있다.In particular, the
프로세서(310)는 온-칩 메모리(330)에 로드된 프로그램/마이그레이션 매니저(331)를 실행할 수 있다.The
프로그램/마이그레이션 매니저(331)는 프로세서(310)에 제어에 따라서 제1 모드에서 비휘발성 메모리 장치들(400a~400k)중 타겟 비휘발성 메모리 장치의 상기 제1 메모리 영역의 데이터를 저장할 수 있는 유효 영역의 크기가 프로그램될 제1 데이터의 크기보다 작은 경우, 상기 제1 메모리 영역에 기저장된 제2 데이터를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-정정-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역에 저장되도록 프로그램 동작과 데이터 마이그레이션 동작을 제어할 수 있다. The program/
비휘발성 메모리 장치들(400a~400k)에 포함된 메모리 셀들은 프로그램 경과 시간, 온도, 프로그램 교란, 독출 교란 등과 같은 요인들로 인하여 문턱 전압 분포가 변화하는 물리적 특성을 갖는다. 즉, 상술된 요인들로 인하여 비휘발성 메모리 장치들(400a~400k)에 저장된 데이터에 오류가 발생할 수 있다. Memory cells included in the
스토리지 컨트롤러(300)는 이러한 오류들을 정정하기 위하여 다양한 에러 정정 기법을 사용할 수 있다. 예를 들어, 스토리지 컨트롤러(300)는 ECC 엔진(320)을 포함할 수 있다. ECC 엔진(320)은 비휘발성 메모리 장치들(400a~400k)에 저장된 데이터에 발생한 오류들을 정정한다. ECC 엔진(320)은 ECC 인코더(321) 및 ECC 디코더(323)를 포함할 수 있다. ECC 인코더(321)는 비휘발성 메모리 장치들(400a~400k)에 저장될 데이터에 대하여 ECC 인코딩을 수행하고, ECC 디코더(323)는 비휘발성 메모리 장치들(400a~400k)로부터 독출된 데이터에 대하여 ECC 디코딩을 수행하여 독출된 데이터의 에러를 정정할 수 있다. The
ROM(360)은 스토리지 컨트롤러(300)가 동작하는데 요구되는 다양한 정보를 펌웨어 형태로 저장할 수 있다. The
랜더마이저(340)는 비휘발성 메모리 장치들(400a~400k) 중 하나에 저장될 데이터를 랜더마이징(randomizing)할 수 있다. 예를 들어, 랜더마이저(340)는 비휘발성 메모리 장치들(400a~400k) 중 하나에 저장될 데이터를 워드라인 단위로 랜더마이징할 수 있다.The
예를 들어, 랜더마이저(340)는 페이지 데이터를 랜더마이징할 수 있다. 예시적으로, 간결한 설명을 위하여 이상적인(ideal) 랜더마이저(340)의 구성이 설명되었다. 그러나, 본 발명의 기술적 사상이 이에 한정되는 것은 아니며, 실제 랜더마이저(340)는 하나의 워드라인에 연결된 메모리 셀들 중 소거 상태 및 제 1 내지 제7 프로그램 상태들 각각을 갖는 메모리 셀들의 개수가 실질적으로 서로 동일한 값에 가깝도록 데이터를 랜더마이징할수 있다. 즉, 실제 랜더마이징된 데이터(randomized data)가 저장된 메모리 셀들은 실질적으로 서로 비슷한 개수의 프로그램 상태들을 가질 수 있다.For example, the
내부 버퍼(380)는 제1 단위의 데이터를 저장할 수 있는 데이터 저장 용량을 가질 수 있다. 제1 단위의 데이터는 비휘발성 메모리 장치들(400a~400k) 각각의 제1 메모리 영역과 제2 메모리 영역의 페이지 단위에 해당할 수 있다. 내부 버퍼(380)가 페이지 단위의 데이터를 저장할 수 있는 데이터 저장 용량을 가지므로, 내부 버퍼(380)의 크기를 감소시켜, 스토리지 컨트롤러(300)의 점유 면적을 감소시킬 수 있다.The
스토리지 컨트롤러(300)는 호스트 인터페이스(350)를 통해 호스트(100)와 통신할 수 있다. 예를 들어, 호스트 인터페이스(350)는 USB(Universal Serial Bus), MMC(multimedia card), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface), NVMe(Nonvolatile Memory-express), UFS(Universal Flash Storage) 등과 같은 다양한 인터페이스들 중 적어도 하나로 제공될 수 있다. The
스토리지 컨트롤러(300)는 메모리 인터페이스(370)를 통해 비휘발성 메모리 장치들(400a~400k)과 통신할 수 있다.The
도 4a는 도 1의 스토리지 장치에서 스토리지 컨트롤러와 하나의 비휘발성 메모리 장치의 연결을 나타내는 블록도이다. 도 4b는 도 4a에서 프로세서와 프로그램/마이그레이션 매니저를 나타낸다.FIG. 4A is a block diagram illustrating a connection between a storage controller and one nonvolatile memory device in the storage device of FIG. 1 . Figure 4b shows the processor and program/migration manager in Figure 4a.
도 4a에서는 설명의 편의를 위하여 스토리지 시스템(200a)이 스토리지 컨트롤러(300)와 비휘발성 메모리 장치(400a)를 포함하는 것으로 가정한다.In FIG. 4A , for convenience of description, it is assumed that the
도 4a를 참조하면, 스토리지 컨트롤러(300)는 제1 동작 전압(VOP1)을 기반으로 동작한다.Referring to FIG. 4A , the
비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 소거, 기입, 독출 동작 등을 수행할 수 있다. 이를 위하여, 비휘발성 메모리 장치(400a)는 입출력 라인을 통해 커맨드(CMD) 및 어드레스(ADDR)를 입력받고 버퍼 메모리(250)를 통하여 데이터(DTA)를 입력받는다. 또한, 비휘발성 메모리 장치(400a)는 제어 라인을 통하여 제어 신호(CTRL)를 제공받을 수 있고 파워 라인을 통해 파워(PWR1)를 제공받을 수 있다. 또한, 비휘발성 메모리 장치(400a)는 제어 라인을 통하여 상태 신호(RnB)를 스토리지 컨트롤러(300)에 제공할 수 있다. 또한, 비휘발성 메모리 장치(400a)는 버퍼 메모리(250)를 이용하여 데이터(DTA)를 스토리지 컨트롤러(300)에 제공할 수 있다.The
비휘발성 메모리 장치(400a)는 제1 메모리 영역(MRG1, 421) 및 제2 메모리 영역(MRG2, 423)을 포함할 수 있다.The
제1 메모리 영역(421)은 제1 기입 속도를 가질 수 있고, 제2 메모리 영역(423)는 제1 기입 속도와는 다르고, 제1 기입 속도보다 빠른 제2 기입 속도를 가질 수 있다. 제1 메모리 영역(421)의 제1 메모리 셀들 각각에는 N-비트 데이터(N은 자연수)가 저장되고, 제2 메모리 영역(423)의 제2 메모리 셀들 각각에는 M-비트 데이터(M은 N보다 큰 자연수)가 저장될 수 있다.The
실시예에 있어서, 제1 메모리 영역(421)은 SLC(single level cell) 영역이고, 제2 메모리 영역(423)은 TLC(triple level cell) 영역일 수 있다. In an embodiment, the
스토리지 컨트롤러(300)는 프로세서(310), ECC 엔진(320), 프로그램/마이그레이션 매니저(331) 및 내부 버퍼(380)를 포함할 수 있다.The
ECC 엔진(320)은 제1 메모리 영역(421) 및 제2 메모리 영역(423) 중 하나에 프로그램될 데이터에 대하여 ECC 인코딩을 수행하고, 제1 메모리 영역(421) 및 제2 메모리 영역(423) 중 하나에서 독출된 데이터에 대하여 ECC 디코딩을 수행할 수 있다.The
프로그램/마이그레이션 매니저(331)는 프로세서(310)의 제어에 따라 제1 메모리 영역(421)의 데이터를 저장할 수 있는 유효 영역의 크기가 제1 데이터의 크기보다 작은 경우, 상기 제1 메모리 영역에 기저장된 제2 데이터를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 상기 비휘발성 메모리 장치(400a)의 데이터 입출력 회로에 제공하는 독출-정정-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역(423)에 저장되도록 프로그램 동작과 데이터 마이그레이션 동작을 제어할 수 있다.The program/
제1 메모리 영역(421)은 SLC(single level cell) 영역이고, 제2 메모리 영역(423)은 TLC(triple level cell) 영역인 경우, 상기 독출-정정-전달 동작은 3회 수행될 수 있다. If the
프로세서(310)는 제1 데이터를 비휘발성 메모리 장치(400a)에 프로그램하는 경우, 제1 데이터와 관련된 기입 모드를 제1 데이터를 제1 메모리 영역(421)에 우선적으로 저장하는 제1 모드 및 제1 데이터를 제2 메모리 영역(423)에 저장하는 제2 모드 중 하나로 결정할 수 있다. When the
도 4b를 참조하면, 프로세서(310)는 제1 데이터와 관련된 기입 리퀘스트에 기초하여 상기 기입 모드를 제1 모드 및 제2 모드 중 하나로 결정할 수 있다. 프로세서(310)는 유휴 시간을 기초로 호스트(100)로부터이 기입 리퀘스트(REQ)에 대한 연속성을 판단하고, 상기 판단 결과에 따라서 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정할 수 있다. 상기 유휴 시간은 상기 기입 리퀘스트 이전에 수신된 기입 리퀘스트 사이의 유휴 시간을 나타낼 수 있다. 예시적으로, 유휴 시간은 스토리지 장치(200a)의 유휴 상태가 지속되는 시간을 가리키고, 유휴 상태는 스토리지 장치(200a)가 동작하지 않거나 또는 호스트(100)로부터의 리퀘스트가 없는 상태를 나타낸다. 즉, 상술된 제1 기입 리퀘스트 및 제2 기입 리퀘스트 사이의 유휴 시간은 제1 기입 리퀘스트에 대한 동작이 완료된 시점으로부터 제2 기입 리퀘스트가 수신된 시점까지의 시간을 가리킬 수 있다.Referring to FIG. 4B , the
프로세서(310)는 유휴 시간 및 기준 시간(RT)을 비교하고, 상기 유휴 시간이 상기 기준 시간 미만인 경우, 상기 기입 커맨드가 연속인 것으로 판단하고, 상기 유휴 시간이 상기 기준 시간 이상인 경우, 상기 기입 커맨드가 불연속인 것으로 판단하고, 제1 모드와 제2 모드를 지시하는 모드 신호(MS)를 프로그램/마이그레이션 매니저(331)에 제공할 수 있다.The
프로세서(310)는 상기 기입 리퀘스트가 연속인 것으로 판단된 경우, 상기 제1 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하고, 상기 기입 리퀘스트가 불연속인 것으로 판단된 경우, 상기 제2 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하는 상기 제2 모드를 기반으로 상기 기입 커맨드에 대한 기입 동작을 수행할 수 있다.When it is determined that the write request is continuous, the
실시예에 있어서, 프로세서(310)는 제1 데이터(DTA)의 크기에 기초하여 상기 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정할 수 있다. 프로세서(310)는 제1 데이터(DTA)의 크기가 기준 크기(RSZ) 이상인 것에 응답하여 상기 제1 데이터를 제1 메모리 영역(421)에 저장하고, 제1 데이터(DTA)의 크기가 기준 크기(RSZ) 미만인 것에 응답하여 제1 데이터를 제2 메모리 영역(423)에 저장할 수 있다. 프로세서(310)는 제1 데이터(DTA)와 기준 크기(RSZ)를 비교하고 비교의 결과에 따라 제1 모드와 제2 모드 중 하나를 지정하는 모드 신호(MS)를 프로그램/마이그레이션 매니저(331)에 제공할 수 있다.In an embodiment, the
실시예에 있어서, 프로세서(310)는 프로그램/마이그레이션 매니저(331)로부터 제공되는, 제1 메모리 영역(421)과 제2 메모리 영역(423)의 상태 정보(SINF)에 기초하여 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정할 수 있다. 상태 정보는 제1 메모리 영역(421)과 제2 메모리 영역(423)의 프로그램/소거 사이클 정보, 제1 메모리 영역(421)과 제2 메모리 영역(423) 내의 프리(free) 블록들의 개수 및 제1 메모리 영역(421)과 제2 메모리 영역(423)의 데이터 보유 시간 정보 중 적어도 하나를 포함할 수 있다. 프로세서(310)는 상태 정보(SINF)에 기초하여 제1 모드와 제2 모드 중 하나를 지정하는 모드 신호(MS)를 프로그램/마이그레이션 매니저(331)에 제공할 수 있다. In an embodiment, the
도 4c는 도 4a의 스토리지 장치의 동작을 설명하기 위한 타이밍도이다.4C is a timing diagram for explaining an operation of the storage device of FIG. 4A.
도 4a 내지 도 4c를 참조하면, 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제1 내지 제3 기입 동작들(WR1, WR2, WR3)을 수행할 수 있다. 제1 내지 제3 기입 동작들(WR1, WR2, WR3)은 각각 호스트(100)로부터의 기입 리퀘스트들(REQ1, REQ2, REQ3) 각각과 대응되는 동작일 수 있다.4A to 4C , the
비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제1 기입 동작(WR1)을 수행할 수 있다. 제1 기입 동작(WR1)은 제2 모드에서 수행될 수 있다. 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 데이터를 제2 메모리 영역(423)에 프로그램할 수 있다.The
제1 기입 동작(WR1)이 완료된 시점으로부터 제1 유휴 시간(t1)이 경과한 이후에 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제2 기입 동작(WR2)을 수행할 수 있다. 프로세서(310)는 제1 기입 동작(WR1)이 완료된 시점으로부터 기입 리퀘스트(REQ2)가 수신된 시점(또는 제2 기입 동작이 시작되는 시점)까지의 제1 유휴 시간(t1)을 기준 시간(RT)과 비교할 수 있다. 제1 유휴 시간(t1)이 기준 시간(RT)보다 크므로 프로세서(310)는 기입 리퀘스트(REQ2)가 기입 리퀘스트(REQ1)와 불연속인 것으로 판단한다. 따라서, 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제2 기입 동작(WR2)을 제2 모드에서 수행할 수 있다.After the first idle time t1 has elapsed from the completion of the first write operation WR1 , the
제2 기입 동작(WR2)이 완료된 시점으로부터 제2 유휴 시간(t2)이 경과한 이후에 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제3 기입 동작(WR3)을 수행할 수 있다. 프로세서(310)는 제3 기입 동작(WR3)이 완료된 시점으로부터 기입 리퀘스트(REQ3)가 수신된 시점(또는 제3 기입 동작이 시작되는 시점)까지의 제3 유휴 시간(t3)을 기준 시간(RT)과 비교할 수 있다. 제2 유휴 시간(t2)이 기준 시간(RT)보다 작으므로 프로세서(310)는 기입 리퀘스트(REQ3)가 기입 리퀘스트(REQ2)와 불연속인 것으로 판단한다. 따라서, 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제3 기입 동작(WR3)을 제1 모드에서 수행할 수 있다.After the second idle time t2 has elapsed from the completion of the second write operation WR2 , the
도 5는 본 발명의 실시예들에 따른 도 4a에서 비휘발성 메모리 장치를 나타내는 블록도이다. 5 is a block diagram illustrating the non-volatile memory device of FIG. 4A according to example embodiments.
도 5를 참조하면, 비휘발성 메모리 장치(400a)는 메모리 셀 어레이(420), 어드레스 디코더(450), 페이지 버퍼 회로(430), 데이터 입출력 회로(440), 제어 회로(460) 및 전압 생성기(470)를 포함할 수 있다. Referring to FIG. 5 , a
메모리 셀 어레이(420)는 스트링 선택 라인(SSL), 복수의 워드라인들(WLs) 및 접지 선택 라인(GSL)을 통해 어드레스 디코더(450)와 연결될 수 있다. 또한, 메모리 셀 어레이(420)는 복수의 비트라인들(BLs)을 통해 페이지 버퍼 회로(430)와 연결될 수 있다. 메모리 셀 어레이(420)는 복수의 워드라인들(WLs) 및 복수의 비트라인들(BLs)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(420)는 제1 메모리 영역(421) 및 제2 메모리 영역(423)을 포함할 수 있다.The
일 실시예에 있어서, 메모리 셀 어레이(420)는 기판 상에 삼차원 구조(또는 수직 구조)로 형성되는 삼차원(three dimensional) 메모리 셀 어레이일 수 있다. 이 경우, 메모리 셀 어레이(420)는 서로 적층되어 형성되는 복수의 메모리 셀들을 포함하는 복수의 낸드 스트링들을 포함할 수 있다. In one embodiment, the
도 6은 도 5의 비휘발성 메모리 장치에서 메모리 셀 어레이를 나타내는 블록도이다. FIG. 6 is a block diagram illustrating a memory cell array in the nonvolatile memory device of FIG. 5 .
도 6을 참조하면, 메모리 셀 어레이(420)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 복수의 메모리 블록들(BLK1~BLKz)은 제1 수평 방향(HD1), 제2 수평 방향(HD2) 및 수직 방향(VD)을 따라 신장된다. 실시예에 있어서, 메모리 블록들(BLK1~BLKz)은 도 5에 도시된 어드레스 디코더(450)에 의해 선택된다. 예를 들면, 어드레스 디코더(450)는 메모리 블록들(BLK1~BLKz) 중 블록 어드레스에 대응하는 메모리 블록(BLK)을 선택할 수 있다.Referring to FIG. 6 , the
도 7a는 도 6의 메모리 블록들 중 하나의 메모리 블록을 나타내는 회로도이다. FIG. 7A is a circuit diagram illustrating one memory block among the memory blocks of FIG. 6 .
도 7a에 도시된 메모리 블록(BLKia)은 기판(SUB) 상에 삼차원 구조로 형성되는 삼차원 메모리 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 낸드 스트링들은 상기 기판(SUB)과 수직한 방향(VD)으로 적층될 수 있다.The memory block BLKia shown in FIG. 7A represents a three-dimensional memory block formed on the substrate SUB in a three-dimensional structure. For example, a plurality of memory NAND strings included in the memory block BLKi may be stacked in a direction VD perpendicular to the substrate SUB.
도 7a를 참조하면, 메모리 블록(BLKia)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링들(NS11~NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. Referring to FIG. 7A , the memory block BLKia may include a plurality of memory NAND strings NS11 to NS33 connected between the bit lines BL1 , BL2 , and BL3 and the common source line CSL. Each of the plurality of memory NAND strings NS11 to NS33 may include a string select transistor SST, a plurality of memory cells MC1, MC2, ..., MC8, and a ground select transistor GST.
스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 상응하는 워드 라인(WL1, WL2, ..., WL8)에 연결될 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다. The string select transistor SST may be connected to corresponding string select lines SSL1 , SSL2 , and SSL3 . The plurality of memory cells MC1 , MC2 , ..., MC8 may be connected to corresponding word lines WL1 , WL2 , ..., WL8 , respectively. The ground select transistor GST may be connected to corresponding ground select lines GSL1 , GSL2 , and GSL3 . The string select transistor SST may be connected to corresponding bit lines BL1 , BL2 , and BL3 , and the ground select transistor GST may be connected to the common source line CSL.
동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 각각 분리될 수 있다. Word lines (eg, WL1) having the same height may be commonly connected, and ground select lines GSL1, GSL2, and GSL3 and string select lines SSL1, SSL2, and SSL3 may be separated from each other.
도 7b는 도 6의 메모리 블록들 중 하나의 메모리 블록을 나타내는 사시도이다.FIG. 7B is a perspective view illustrating one memory block among the memory blocks of FIG. 6 .
도 7b를 참조하면, 메모리 블록(BLKi) 워드라인 컷 영역들(WLC) 사이에 적어도 하나의 접지 스트링 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)이 수직 방향(VD)으로 기판(SUB) 위에 적층되는 형태로 구현될 수 있다. 워드라인 컷 영역들(WLC)의 기판(SUB) 상부에는 도핑 영역들(DOP)이 형성될 수 있고, 도핑 영역들(DOP)은 공통 소스 전압이 공급되는 공통 소스 라인(CSL: common source line) 또는 또는 공통 소스 노드(CSN: common source node)로 이용될 수 있다. 적어도 하나의 스트링 선택 라인(SSL)은 제1 수평 방향(HD1)으로 연장되는 스트링 선택 라인 컷 영역(SSLC)에 의하여 구분될 수 있다.Referring to FIG. 7B , at least one ground string line GSL, a plurality of word lines WLs, and at least one string select line SSL are provided between the word line cut regions WLC of the memory block BLKi. It may be implemented in a form of being stacked on the substrate SUB in the vertical direction VD. Doped regions DOP may be formed on the substrate SUB of the word line cut regions WLC, and the doped regions DOP are formed by a common source line (CSL) to which a common source voltage is supplied. Alternatively, it may be used as a common source node (CSN). At least one string selection line SSL may be divided by a string selection line cut area SSLC extending in the first horizontal direction HD1.
복수의 수직 채널들 또는 채널 홀들이 적어도 하나의 접지 스트링 라인 기판(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)을 관통한다. 여기서 적어도 하나의 접지 스트링 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)은 기판 형태로 구현될 수 있다. 복수의 수직 채널들의 상부면에는 제2 수평 방향(HD2)으로 연장되는 비트라인들(BL)이 연결된다.A plurality of vertical channels or channel holes pass through at least one ground string line substrate (GSL), a plurality of word lines (WLs), and at least one string select line (SSL). Here, at least one ground string line (GSL), a plurality of word lines (WLs), and at least one string select line (SSL) may be implemented in the form of a substrate. Bit lines BL extending in the second horizontal direction HD2 are connected to upper surfaces of the plurality of vertical channels.
도 7c는 도 6의 메모리 블록들 중 하나의 메모리 블록을 나타내는 평면도이다.7C is a plan view illustrating one memory block among the memory blocks of FIG. 6 .
도 7c에서 점을 찍지 않은 원(white circle) 원은 인너(inner) 셀 또는 인너 채널 홀을 나타내고 점을 찍은 원(dotted circle)은 아우터(outer) 셀 또는 아우터 채널 홀을 나타낸다. 워드라인 컷 영역(WLC) 내부에는 도 7b에 도시된 도핑 영역들(DOP)에 상응하는 공통 소스 라인들이 배치된다. In FIG. 7C, a white circle represents an inner cell or inner channel hole, and a dotted circle represents an outer cell or outer channel hole. Common source lines corresponding to the doped regions DOP shown in FIG. 7B are arranged in the word line cut region WLC.
도 7c를 참조하면, 메모리 블록(BLKi)에는 채널 홀들이 지그-재그(Zig-Zag) 구조로 배치될 수 있다. 이러한 지그-재그 구조는 메모리 블록(BLKi)을 포함하는 메모리 셀 어레이의 면적을 감소시키는 효과가 있다. 메모리 블록(BLKi)에는 서로 인접하는 두 개의 워드라인 컷 영역들(WLC) 사이에 제2 수평 방향(HD2)으로 아우터 채널 홀들 및 인너 채널 홀들이 배치될 수 있다. 이와 같이 제2 수평 방향(HD2)으로 배치된 아우터 채널 홀들 및 인너 채널 홀 중 하나는 짝수 번째 비트라인에 연결되고 다른 하나는 홀수 번째 비트라인에 연결될 수 있다. 도 7c에는 편의상 하나의 비트라인 쌍(BLin, BLot)이 도시되어 있으며, 다른 비트라인들은 생략되어 있다.Referring to FIG. 7C , channel holes may be arranged in a zig-zag structure in the memory block BLKi. This zig-zag structure has an effect of reducing the area of the memory cell array including the memory block BLKi. In the memory block BLKi, outer channel holes and inner channel holes may be disposed in the second horizontal direction HD2 between two adjacent word line cut regions WLC. As such, one of the outer channel holes and inner channel holes arranged in the second horizontal direction HD2 may be connected to an even-numbered bit line and the other may be connected to an odd-numbered bit line. In FIG. 7C, for convenience, one bit line pair (BLin, BLot) is shown, and other bit lines are omitted.
도 8은 도 7a의 메모리 블록의 하나의 낸드 스트링의 구조의 예를 나타낸다. 8 shows an example of a structure of one NAND string of the memory block of FIG. 7A.
도 7a 및 도 8을 참조하면, 낸드 스트링(NS11)에는 기판(SUB) 위에 기판과 수직인 방향으로 신장되어 기판(SUB)과 접촉하는 필라(PL)가 제공될 수 있다. 도 7a에 도시된 접지 선택 라인(GSL1), 워드 라인들(WL1~WL8), 그리고 스트링 선택 라인(SSL1)은 각각 기판(SUB)과 평행한 도전 물질들, 예를 들어 금속 물질들로 형성될 수 있다. 필라(PL)는 접지 선택 라인(GSL1), 워드 라인들(WL1~WL8), 그리고 스트링 선택 라인(SSL1)을 형성하는 도전 물질들을 관통하여 기판(SUB)과 접촉할 수 있다.Referring to FIGS. 7A and 8 , the NAND string NS11 may be provided with a pillar PL extending in a direction perpendicular to the substrate SUB and contacting the substrate SUB. The ground select line GSL1, the word lines WL1 to WL8, and the string select line SSL1 shown in FIG. 7A may be formed of conductive materials parallel to the substrate SUB, for example, metal materials. can The pillar PL may contact the substrate SUB by passing through conductive materials forming the ground select line GSL1 , the word lines WL1 to WL8 , and the string select line SSL1 .
도 8에서, 절단 선(V-V')에 따른 단면도가 함께 도시되어 있다. 예시적으로, 제1 워드 라인(WL1)에 대응하는 제1 메모리 셀(MC1)의 단면도가 도시된다. 필라(PL)는 원통형의 바디(BD)를 포함할 수 있다. 바디(BD)의 내부에 에어갭(AG)이 제공될 수 있다. In Fig. 8, a cross-sectional view along the cutting line V-V' is also shown. Exemplarily, a cross-sectional view of the first memory cell MC1 corresponding to the first word line WL1 is shown. The pillar PL may include a cylindrical body BD. An air gap AG may be provided inside the body BD.
바디(BD)는 P-타입 실리콘을 포함하며, 채널이 형성되는 영역일 수 있다. 필라(PL)는 바디(BD)를 둘러싸는 원통형의 터널 절연막(TI) 및 터널 절연막(TI)을 둘러싸는 원통형의 전하 포획 막(CT)을 더 포함할 수 있다.The body BD may include P-type silicon and may be a region in which a channel is formed. The pillar PL may further include a cylindrical tunnel insulating layer TI surrounding the body BD and a cylindrical charge trapping layer CT surrounding the tunnel insulating layer TI.
제1 워드라인(WL1) 및 필라(PL)의 사이에 블로킹 절연막(BI)이 제공될 수 있다. 바디(BD), 터널 절연막(TI), 전하 포획 막(CT), 블로킹 절연막(BI), 그리고 제1 워드라인(WL1)은 기판(SUB) 또는 기판(SUB)의 상부 면과 수직인 방향으로 형성된 전하 포획형 트랜지스터일 수 있다. 스트링 선택 트랜지스터(SST), 접지 선택 트랜지스터(GST) 및 다른 메모리 셀들은 제1 메모리 셀(MC1)과 동일한 구조를 가질 수 있다.A blocking insulating layer BI may be provided between the first word line WL1 and the pillar PL. The body BD, the tunnel insulating layer TI, the charge trapping layer CT, the blocking insulating layer BI, and the first word line WL1 are formed in a direction perpendicular to the substrate SUB or an upper surface of the substrate SUB. It may be a formed charge trapping transistor. The string select transistor SST, the ground select transistor GST, and other memory cells may have the same structure as the first memory cell MC1.
도 9는 제1 메모리 영역의 메모리 셀들의 문턱 전압 분포와 제2 메모리 영역의 제2 메모리 셀들의 문턱 전압 분포를 나타낸다.9 illustrates threshold voltage distributions of memory cells in a first memory area and threshold voltage distributions of second memory cells in a second memory area.
도 9에서 참조 번호(511)는 소거 상태(E)와 제1 프로그램 상태(P11)를 포함하는 제1 메모리 영역(421)의 제1 메모리 셀들의 문턱 전압 분포를 나타내고, 참조 번호(513)는 소거 상태(E)와 제1 내지 제7 프로그램 상태들(P1~P7)을 포함하는 제2 메모리 영역(423)의 제1 메모리 셀들의 문턱 전압 분포의 문턱 전압 분포를 나타낸다.In FIG. 9 ,
도 9를 참조하면, 독출 전압(Vr)을 이용하여 소거 상태(E)와 제1 프로그램 상태(P11)를 구분하고, 독출 전압들(Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, Vr7) 각각을 이용하여 소거 상태(E)와 제1 내지 제7 프로그램 상태들(P1~P7) 중 인접한 두 개의 상태를 구분할 수 있다.Referring to FIG. 9, the erase state E and the first program state P11 are distinguished using the read voltage Vr, and the read voltages Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, and Vr7 are respectively An erased state E and two adjacent states among the first to seventh program states P1 to P7 may be distinguished by using .
도 10과 도 11은 각각 본 발명의 실시예들에 따른 도 5의 메모리 셀 어레이의 예를 나타내는 블록도들이다.10 and 11 are block diagrams each illustrating an example of the memory cell array of FIG. 5 according to example embodiments.
도 10을 참조하면, 메모리 셀 어레이(420a)는 제1 메모리 영역(421a) 및 제2 메모리 영역(423a)를 포함할 수 있다. 제1 메모리 영역(421a)은 복수의 SLC 블록들(SLC_BLK1~TLC_BLKj, j는 2 이상의 자연수)을 포함하고, 제2 메모리 영역(423a)은 복수의 TLC 블록들(TLC_BLK1~TLC_BLKj)을 포함할 수 있다.Referring to FIG. 10 , a
도 11을 참조하면, 메모리 셀 어레이(420a)는 복수의 블록들(425)를 포함할 수 있고, 필요에 따라 각 블록을 SLC 블록 또는 TLC 블록으로 사용할 수 있다.Referring to FIG. 11 , the
도 12 및 도 13은 각각 도 4의 스토리지 장치가 제1 모드와 제2 모드에서 기입 동작을 수행하는 것을 나타낸다.12 and 13 show that the storage device of FIG. 4 performs a write operation in a first mode and a second mode, respectively.
도 12를 참조하면, 스토리지 장치(200a)가 제1 모드에서 기입 동작을 수행하는 경우, 스토리지 컨트롤러(300)는 리퀘스트(REQ)에 응답하여 기입 모드를 제1 모드로 지정하고, ECC 엔진(320)는 기입 데이터(DTA)에 ECC 인코딩을 수행하여 패리티 데이터(PRT)를 생성하고, 프로그램/마이그레이션 매니저(331)는 참조 번호(521)가 나타내는 바와 같이 기입 데이터(DTA)와 패리티 데이터(PRT)를 비휘발성 메모리 장치(400a)의 제1 메모리 영역(421)에 저장한다.Referring to FIG. 12 , when the
도 13을 참조하면, 스토리지 장치(200a)가 제2 모드에서 기입 동작을 수행하는 경우, 스토리지 컨트롤러(300)는 리퀘스트(REQ)에 응답하여 기입 모드를 제2 모드로 지정하고, ECC 엔진(320)는 기입 데이터(DTA)에 ECC 인코딩을 수행하여 패리티 데이터(PRT)를 생성하고, 프로그램/마이그레이션 매니저(331)는 참조 번호(521)가 나타내는 바와 같이 기입 데이터(DTA)와 패리티 데이터(PRT)를 비휘발성 메모리 장치(400a)의 제2 메모리 영역(423)에 저장한다. Referring to FIG. 13 , when the
도 14는 도 4의 스토리지 장치가 제1 모드에서 데이터 마이그레이션 동작을 수행하는 것을 나타낸다.14 illustrates that the storage device of FIG. 4 performs a data migration operation in a first mode.
도 14를 참조하면, 스토리지 컨트롤러(300)는 리퀘스트(REQ)에 응답하여 기입 모드를 제1 모드로 지정하고, 제1 모드에서 제1 데이터(DTA1)을 제1 메모리 영역(421)에 저장하는 기입 동작을 수행하려고 하는 경우, 제1 메모리 영역(421)의 데이터를 저장할 수 있는 유효 영역의 크기가 제1 데이터(DTA)의 크기보다 작은 경우, 프로그램/마이그레이션 매니저(331)의 제어에 따라 비휘발성 메모리 장치(400a)는 제1 메모리 영역(421)에 기저장된 제2 데이터(DTA2)를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 독출하여 내부 버퍼(380)에 제공한다(531). 여기서 제1 단위의 데이터는 제2 데이터(DTA2)의 부분에 해당하는 부분 사용자 데이터 및 부분 패리티 데이터를 포함할 수 있다.Referring to FIG. 14 , the
내부 버퍼(380)는 제1 단위의 데이터를 ECC 엔진(320)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 ECC 디코딩을 수행하여 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 내부 버퍼(380)에 제공할 수 있다(533). The
내부 버퍼(380)는 에러가 정정된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공하면서(535), 제1 메모리 영역(421)으로부터 독출된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)로부터 수신한다(541).The
내부 버퍼(380)는 제1 단위의 데이터를 ECC 엔진(320)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 ECC 디코딩을 수행하여 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 내부 버퍼(380)에 제공할 수 있다(543). The
내부 버퍼(380)는 에러가 정정된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공하면서(545), 제1 메모리 영역(421)으로부터 독출된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)로부터 수신한다(551). The
내부 버퍼(380)는 제1 단위의 데이터를 ECC 엔진(320)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 ECC 디코딩을 수행하여 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 내부 버퍼(380)에 제공할 수 있다(553). The
내부 버퍼(380)는 에러가 정정된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공하고(555), 페이지 버퍼 회로(420)는 제2 데이터(DTA2)를 제2 메모리 영역(423)에 저장하여(560) 데이터 마이그레이션 동작을 완료할 수 있다.The
도 15a는 본 발명의 실시예들에 따른 도 14의 스토리지 장치의 동작 시퀀스를 나타낸다.15A illustrates an operation sequence of the storage device of FIG. 14 according to embodiments of the present invention.
도 14 및 도 15a를 참조하면, 제1 구간(INT11)에서 제1 메모리 영역(421)에 기저장된 제2 데이터(DTA2)를 제1 단위만큼 독출하여(SLC read, 531) 내부 버퍼(380)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 대하여 ECC 디코딩을 수행하고(533), 내부 버퍼(380)는 에러 정정된 제1 단위의 데이터를 데이터 입출력 회로(440)에 입력시키고(535), 제2 구간(INT12)에서 제1 메모리 영역(421)에 기저장된 제2 데이터(DTA2)를 제1 단위만큼 독출하여(541) 내부 버퍼(380)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 대하여 ECC 디코딩을 수행하고(543), 내부 버퍼(380)는 에러 정정된 제1 단위의 데이터를 데이터 입출력 회로(440)에 입력시키고(545), 제3 구간(INT13)에서 제1 메모리 영역(421)에 기저장된 제2 데이터(DTA2)를 제1 단위만큼 독출하여(551) 내부 버퍼(380)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 대하여 ECC 디코딩을 수행하고(553), 내부 버퍼(380)는 에러 정정된 제1 단위의 데이터를 데이터 입출력 회로(440)에 입력시키고(555), 제4 구간(INT14)에서 페이지 버퍼 회로(420)는 제2 데이터(DTA2)를 제2 메모리 영역(423)에 저장하여(TLC PGM, 560) 데이터 마이그레이션 동작을 완료할 수 있다. 14 and 15A, the second data DTA2 pre-stored in the first memory area 421 is read as much as the first unit (SLC read, 531) in the first period INT11, and the internal buffer 380 , the ECC engine 320 performs ECC decoding on the data of the first unit (533), the internal buffer 380 inputs the error-corrected data of the first unit to the data input/output circuit 440, (535), in the second interval (INT12), the second data (DTA2) pre-stored in the first memory area 421 is read as much as the first unit (541) and provided to the internal buffer 380, and the ECC engine 320 ) performs ECC decoding on the data of the first unit (543), the internal buffer 380 inputs the error-corrected data of the first unit to the data input/output circuit 440 (545), and the third section ( INT13), the second data DTA2 pre-stored in the first memory area 421 is read as much as the first unit (551) and provided to the internal buffer 380, and the ECC engine 320 reads the data of the first unit ECC decoding is performed on (553), the internal buffer 380 inputs the data of the first error-corrected unit to the data input/output circuit 440 (555), and the page buffer circuit 420 in the fourth interval (INT14) ) may store the second data DTA2 in the second memory area 423 (TLC PGM, 560) to complete the data migration operation.
도 15a에서 상태 신호(RnB)는 제1 내지 제3 구간(INT1, INT2, INT3) 각각에서 독출 동작이 수행되는 구간(531, 541, 551)과 제4 구간(INT4)의 프로그램이 수행되는 구간에서 로우 레벨로서 비지 상태를 나타낸다.In FIG. 15A, the state signal RnB corresponds to
도 15b는 본 발명의 실시예들에 따른 도 14의 스토리지 장치의 제1 모드에서의 동작 시퀀스의 다른 예를 나타낸다.15B shows another example of an operation sequence in the first mode of the storage device of FIG. 14 according to embodiments of the present invention.
도 15b에서는 도 14의 제2 영역(423)이 QLC(quadruple level cell) 영역이고, 제1 제1 메모리 영역(421)의 데이터를 저장할 수 있는 유효 영역의 크기가 제1 데이터(DTA)의 크기보다 작은 경우를 가정한다.In FIG. 15B , the
도 15b를 참조하면, 제1 내지 제4 구간(INT21, INT22, INT23, INT24) 각각에서 제1 메모리 영역(421)에 기저장된 제2 데이터(DTA2)를 제1 단위만큼 독출하여(SLC read) 내부 버퍼(380)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 대하여 ECC 디코딩을 수행하고, 내부 버퍼(380)는 에러 정정된 제1 단위의 데이터를 데이터 입출력 회로(440)에 입력시키고, 제5 구간(INT25)에서 페이지 버퍼 회로(420)는 제2 데이터(DTA2)를 제2 메모리 영역(423)에 저장하여(QLC PGM) 데이터 마이그레이션 동작을 완료할 수 있다.Referring to FIG. 15B, in each of the first to fourth sections INT21, INT22, INT23, and INT24, the second data DTA2 previously stored in the
즉 본 발명의 실시예는 제2 영역(423)의 메모리 셀들이 QLC이거나 QLC 보다 데이터 비트들을 저장하는 경우에도 적용될 수 있다.That is, the embodiment of the present invention may be applied even when the memory cells of the
도 16은 본 발명의 실시예들에 따른 도 5의 메모리 셀 어레이를 예시적으로 나타낸다.16 illustratively illustrates the memory cell array of FIG. 5 according to embodiments of the present invention.
메모리 셀 어레이(420c)는 비휘발성 메모리 장치(400a)의 물리적 저장 공간이라고 호칭될 수 있다. 물리적 저장공간은 비휘발성 메모리 장치(400a)에서 실제 사용자 데이터가 저장되는 물리적인 영역을 가리킬 수 있다. 즉, 물리적 저장 공간은 호스트(100)에 의해 스토리지 장치(200a)의 용량으로 식별될 수 있는 공간일 수 있다. The
도 16을 참조하면, 메모리 셀 어레이(420c)는 터보 라이트 버퍼 영역(TWB)(Turbo Write Buffer area)(이하에서, 설명의 편의를 위하여, "터보 라이트 버퍼"라 칭함.) 및 사용자 스토리지 영역(UST)(User Storage area)(이하에서, 설명의 편의를 위하여, "사용자 스토리지(User Storage)"라 칭함.)을 포함할 수 있다.Referring to FIG. 16 , the
터보 라이브 버퍼(TWB)는 스토리지 장치(200)의 비휘발성 메모리 장치(400a)의 물리적 저장 공간 중 일부(a)와 대응될 수 있다. 사용자 스토리지(UST)는 스토리지 장치(200)의 비휘발성 메모리 장치(400a)의 물리적 저장 공간 중 나머지 일부(b)와 대응되거나 또는 비휘발성 메모리 장치(400a)의 물리적 저장 공간(PS) 전부(a+b)와 대응될 수 있다.The turbo live buffer TWB may correspond to part (a) of the physical storage space of the
예시적인 실시 예에서, 터보 라이트 버퍼(TWB)에 대응되는 메모리 셀들 각각은 단일 레벨 셀(SLC; single level cell)로서 사용될 수 있고, 사용자 스토리지(UST)에 대응되는 메모리 셀들 각각은 삼중 레벨 셀(TLC; triple level cell)로서 사용될 수 있다. 또는 터보 라이트 버퍼(TWB)에 대응되는 메모리 셀들 각각은 n-비트(n은 양의 정수)의 데이터를 저장하도록 구성될 수 있고, 사용자 스토리지(UST)에 대응되는 메모리 셀들 각각은 m-비트의 데이터(단, m은 n보다 큰 양의 정수)를 저장하도록 구성될 수 있다. 즉, 터보 라이트 버퍼(TWB)는 사용자 스토 리지(UST)보다 빠른 고속 쓰기를 지원하는 영역을 가리킬 수 있다.In an exemplary embodiment, each of the memory cells corresponding to the turbo write buffer (TWB) may be used as a single level cell (SLC), and each of the memory cells corresponding to the user storage (UST) may be a triple level cell ( TLC; can be used as a triple level cell). Alternatively, each of the memory cells corresponding to the turbo write buffer TWB may be configured to store n-bit (n is a positive integer) data, and each of the memory cells corresponding to the user storage UST may store m-bit data. It may be configured to store data (where m is a positive integer greater than n). That is, the turbo write buffer (TWB) may indicate an area that supports high-speed writing faster than the user storage (UST).
실시예에 있어서, 기호 "a" 및 "b"는 각 저장 공간에 대응하는 메모리 블록들의 개수를 의미할 수 있다. 터보 라이트 버퍼(TWB) 및 사용자 스토리지(UST)의 크기 및 터보 라이트 버퍼(TWB) 및 사용자 스토리지(UST)의 구현 방식(예를 들어, SLC, MLC, TLC, QLC 등)에 따라, "a" 및 "b"의 값은 다양하게 가변될 수 있다.In an embodiment, symbols “a” and “b” may mean the number of memory blocks corresponding to each storage space. Depending on the size of the Turbo Light Buffer (TWB) and User Storage (UST) and how the Turbo Light Buffer (TWB) and User Storage (UST) are implemented (e.g. SLC, MLC, TLC, QLC, etc.), "a" And the value of "b" can be varied in various ways.
스토리지 장치(200a)는 노멀 라이트(Normal write) 및 터보 라이트(Turbo write) 기능을 지원할 수 있다. 호스트(100)에 의해 터보 라이트 기능이 활성화된 경우, 스토리지 장치(1200)는 터보 라이트 동작을 수행할 수 있다. 호스트(100)에 의해 터보 라이트 기능이 비활성화된 경우, 스토리지 장치(200a)는 노멀 라이트 동작을 수행할 수 있다. The
예를 들어, 터보 라이트 기능이 활성화된 경우, 스토리지 장치(200a)는 호스트(100)로부터 수신된 기입 데이터를 터보 라이트 버퍼(TWB)에 우선 기입할 수 있다. 이 경우, 호스트(100)로부터 수신된 기입 데이터가 터보 라이트 버퍼(TWB)에 기입(예를 들어, SLC 프로그램)되기 때문에, 사용자 스토리지(UST)에 대한 노멀 라이트 동작(예를 들어, TLC 프로그램)이 수행되는 경우보다 빠른 동작 속도가 보장될 수 있다. 터보 라이트 기능이 비활성화된 경우, 스토리지 장치(200)는 기입 데이터를 터보 라이트 버퍼(TWB)에 우선 기입하지 않을 수 있다. 스토리지 장치(1200)는 내부적으로 정해진 정책(예를 들어, 노멀 라이트 정책)에 따라, 기입 데이터를 사용자 스토리지(UST)에 직접 기입하거나 또는 터보 라이트 버퍼(TWB)에 기입할 수 있다. 기입 데이터를 어떻게 기입하는지는 노멀 라이트 정책에 따라, 터보 라이트 버퍼(TWB)의 데이터 점유율, 물리적 저장 공간(PS)의 상태 등과 같은 다양한 요인들을 반영하여 결정될 수 있다.For example, when the turbo write function is activated, the
예시적인 실시 예에서, 터보 라이트 버퍼(TWB)에 기입된 데이터는 호스트(1100)로부터의 명시적인 커맨드 또는 내부적으로 정해진 정책에 따라 사용자 영역(UST)으로 플러쉬(Flush) 또는 마이그레이션(Migration)될 수 있다.In an exemplary embodiment, data written in the turbo write buffer (TWB) may be flushed or migrated to the user space (UST) according to an explicit command from the host 1100 or an internally determined policy. there is.
도 17 및 도 18은 도 16의 터보 라이트 버퍼 타입을 설명하기 위한 도면들이다. 17 and 18 are diagrams for explaining the turbo write buffer type of FIG. 16 .
도 4, 도 16, 도 17 및 도 18을 참조하면, 스토리지 장치(200a)는 제 1 내지 제 4 논리 유닛들(LU1~LU4)을 포함할 수 있다. 제1 내지 제4 논리 유닛들(LU1~LU4) 각각은 호스트(100)로부터의 커맨드를 처리하는, 외부적으로 관리 가능하고, 독립적인 처리 객체를 가리킬 수 있다. 호스트(100)는 제 1 내지 제 4 논리 유닛들(LU1~LU4)을 통해 스토리지 장치(200a)의 저장 공간을 관리할 수 있다. 제1 내지 제4 논리 유닛들(LU1~LU4) 각각은 스토리지 장치(200)에서 사용자 데이터를 저장하기 위하여 사용될 수 있다.Referring to FIGS. 4, 16, 17, and 18 , the
제1 내지 제4 논리 유닛들(LU1~LU4)의 각각은 비휘발성 메모리 장치(400a)의 적어도 하나의 메모리 블록과 연관될 수 있다. 다양한 용도로 사용되는 다양한 종류의 논리 유닛들이 존재하지만, 여기에서 제1 내지 제4 논리 유닛들(LU1~LU4) 물리적 저장 공간에 대응하며 호스트(100)의 데이터를 저장하는 데에 사용되는 것으로 가정된다.Each of the first to fourth logic units LU1 to LU4 may be associated with at least one memory block of the
비록 도 17 및 도 18에서, 제1 내지 제4 논리 유닛들(LU1~LU4)이 도시되어 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 스토리지 장치(200a)는 제1 내지 제4 논리 유닛들(LU1~LU4) 이외에 사용자 데이터를 저장하고 관리하기 위한 다른 논리 유닛들을 더 포함할 수 있다. 또는 스토리지 장치(200)는 제1 내지 제4 논리 유닛들(LU1~LU4) 이외에, 다양한 기능들을 지원하기 위한 다른 논리 유닛들을 더 포함할 수 있다.Although the first to fourth logic units LU1 to LU4 are shown in FIGS. 17 and 18 , the scope of the present invention is not limited thereto. For example, the
본 발명의 실시 예에 따른 스토리지 장치(200a)의 터보 라이트 버퍼(TWB)는 다양한 타입들(types)로 구성될 수 있다. 터보 라이트 버퍼(TWB)는 논리 유닛 전용 버퍼 타입(LU dedicated buffer type) 및 공유 버퍼 타입(shared buffer type) 중 어느 하나의 타입으로 구성될 수 있다.The turbo write buffer TWB of the
논리 유닛 전용 버퍼 타입(LU dedicated buffer type)의 경우, 논리 유닛(LU)마다 터보 라이트 버퍼(TWB)가 독립적으로 또는 개별적으로 구성될 수 있다. 예를 들어, 도 17a에 도시된 바와 같이, 논리 유닛 전용 버퍼 타입에서, 제1 내지 제4 논리 유닛들(LU1~LU4) 중 제1 논리 유닛(LU1)에 대하여 제1 터보 라이트 버퍼(TWB1)가 구성될 수 있고, 제3 논리 유닛(LU3)에 대하여 제 3 터보 라이트 버퍼(TWB)가 구성될 수 있다.In the case of a logical unit dedicated buffer type (LU dedicated buffer type), the turbo write buffer (TWB) may be independently or individually configured for each logical unit (LU). For example, as shown in FIG. 17A , in a logic unit-only buffer type, a first turbo write buffer TWB1 is provided for a first logical unit LU1 among first to fourth logical units LU1 to LU4. may be configured, and a third turbo write buffer (TWB) may be configured for the third logic unit (LU3).
이러한 논리 유닛 전용 버퍼 타입에서, 터보 라이트가 활성화된 후에 제1 논리 유닛(LU1)에 대한 기입 커맨드가 수신된 경우, 제1 논리 유닛(LU1)에 대응하는 제1 터보 라이트 버퍼(TWB1)에 기입 데이터가 우선 기입될 수 있다. 터보 라이트가 활성화된 후에 제3 논리 유닛(LU3)에 대한 기입 데이터가 수신된 경우, 제3 논리 유닛(LU3)에 대응하는 제3 터보 라이트 버퍼(TWB3)에 기입 데이터가 우선 기입될 수 있다.In this logical unit-only buffer type, when a write command for the first logical unit LU1 is received after the turbo write is activated, the first turbo write buffer TWB1 corresponding to the first logical unit LU1 is written. Data may be written first. When write data for the third logic unit LU3 is received after the turbo write is activated, the write data may be first written in the third turbo write buffer TWB3 corresponding to the third logic unit LU3.
터보 라이트 버퍼(TWB)가 구성되지 않은 제2 및 제4 논리 유닛들(LU2, LU4)에 대한 기입 커맨드가 수신된 경우, 제2 및 제4 논리 유닛들(LU2, LU4)에 대응하는 사용자 스토리지(UST)에 기입 데이터가 기입될 수 있다.User storage corresponding to the second and fourth logical units LU2 and LU4 when a write command for the second and fourth logical units LU2 and LU4 in which the turbo write buffer TWB is not configured is received Write data may be written in (UST).
또한, 터보 라이트가 비활성화된 후에 제1 논리 유닛(LU1) 또는 제3 논리 유닛(LU3)에 대한 기입 커맨드가 수신된 경우, 기입 데이터는 노멀 라이트의 정책에 따라 제1 논리 유닛(LU1)의 사용자 스토리지(UST1) 또는 제1 터보 라이트 버퍼(TWB1)에 기입되거나, 또는 제3 논리 유닛(LU3)의 사용자 스토리지(UST) 또는 제3 터보 라이트 버퍼(TWB3)에 기입될 수 있다.Also, when a write command for the first logical unit LU1 or the third logical unit LU3 is received after the turbo light is deactivated, the write data is sent to the user of the first logical unit LU1 according to the normal light policy. The storage UST1 or the first turbo write buffer TWB1 may be written, or the user storage UST or the third turbo write buffer TWB3 of the third logic unit LU3 may be written.
예시적인 실시 예에서, 제1 및 제3 터보 라이트 버퍼들(TWB1, TWB3) 각각의 용량은 서로 독립적으로 설정될수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 터보 라이트 버퍼가 할당되는 논리 유닛들의 개수, 각 터보 라이트 버퍼의 용량 등은 다양하게 변형될 수 있다.In an exemplary embodiment, the capacity of each of the first and third turbo write buffers TWB1 and TWB3 may be set independently of each other. However, the scope of the present invention is not limited thereto, and the number of logic units to which the turbo write buffer is allocated, the capacity of each turbo write buffer, and the like may be modified in various ways.
예시적인 실시 예에서, 각 논리 유닛에 대한 터보 라이트 버퍼(TWB)의 크기는 유닛 디스크립터(Unit Descriptor)의 유닛당 터보 라이트 버퍼 크기 필드(예를 들어, "dLUNumTurboWriteBufferAllocUnits")에 설정될 수 있다. 예시적인 실시 예에서, 유닛당 터보 라이트 버퍼 크기 필드(예를 들어, "dLUNumTurboWriteBufferAllocUnits")는 설정 가능한 파라미터일 수 있다.In an exemplary embodiment, the size of the turbo write buffer (TWB) for each logical unit may be set in a turbo write buffer size field per unit (eg, “dLUNumTurboWriteBufferAllocUnits”) of the Unit Descriptor. In an exemplary embodiment, the turbo write buffer size per unit field (eg, “dLUNumTurboWriteBufferAllocUnits”) may be a configurable parameter.
공유 버퍼 타입(shared buffer type)의 경우, 복수의 논리 유닛들 전체에 대하여 하나의 터보 라이트 버퍼가 구성될 수 있다. 예를 들어, 도 17b에 도시된 바와 같이, 공유 버퍼 타입에서, 제1 내지 제4 논리 유닛들(LU1~LU4) 전체에 대하여 하나의 공유된 터보 라이트 버퍼(TWB0)가 구성될 수 있다.In the case of a shared buffer type, one turbo write buffer may be configured for all of a plurality of logic units. For example, as shown in FIG. 17B , in the shared buffer type, one shared turbo write buffer TWB0 may be configured for all of the first to fourth logical units LU1 to LU4.
이 경우, 터보 라이트가 활성화된 후에 제1 내지 제4 논리 유닛들(LU1~LU4) 각각에 대한 기입 커맨드가 수신된 경우, 기입 데이터는 공유된 터보 라이트 버퍼(TWB0)에 먼저 기입될 수 있다. 터보 라이트가 비활성화된 후에 제1 내지 제4 논리 유닛들(LU1~LU4) 각각에 대한 기입 커맨드가 수신된 경우, 기입 데이터는 노멀 라이트의 정책에 따라 제 1 내지 제 4 논리 유닛들(LU1~LU4)의 각각에 또는 공유된 터보 라이트 버퍼(TWB0)에 기입될 수 있다.In this case, when a write command for each of the first to fourth logical units LU1 to LU4 is received after turbo light is activated, write data may be first written into the shared turbo write buffer TWB0. When a write command for each of the first to fourth logical units LU1 to LU4 is received after the turbo light is deactivated, write data is sent to the first to fourth logical units LU1 to LU4 according to the normal light policy. ) or to the shared turbo write buffer TWB0.
상술된 바와 같이, 본 발명의 실시 예에 따른 스토리지 장치(200a)는 터보 라이트 기능을 지원하기 위한 터보라이트 버퍼(TWB)를 포함할 수 있다. 터보 라이트 버퍼(TWB)는 버퍼 타입(예를 들어, 논리 유닛 전용 버퍼 타입 또는 공유 버퍼 타입)에 따라, 복수의 논리 유닛들 각각에 대하여 독립적으로 구성될 수 있거나, 또는, 복수의 논리 유닛들 전체에 대하여 하나로 구성될 수 있다.As described above, the
도 19는 도 1의 스토리지 시스템의 동작을 예시적으로 보여주는 순서도이다. 도 1 및 도 19를 참조하여 스토리지 시스템(50)의 기입 동작이 설명된다.19 is a flowchart illustrating an operation of the storage system of FIG. 1 as an example. A write operation of the
S21 단계에서, 호스트(100)는 커맨드(WR CMD)를 포함하는 커맨드 UPIU(Universal Flash Storage Protocol Information Unit)을 스토리지 장치(200a)로 전송할 수 있다.In step S21 , the
S22 단계에서, 호스트(100) 및 스토리지 장치(200)는 데이터 트랜잭션을 수행할 수 있다. 예를 들어, 스토리지 장치(200)는 RTT UPIU (Ready to Transfer UPIU)를 호스트(100)로 전송할 수 있다. RTT UPIU는 스토리지 장치(200)가 수신할 수 있는 데이터 범위에 대한 정보를 포함할 수 있다. 호스트(100)는 RTT UPIU에 응답하여, 기입 데이터를 포함하는 DATA OUT UPIU를 스토리지 장치(200)로 전송할 수 있다. 상술된 동작이 반복 수행됨으로써, 기입 데이터가 호스트(100)로부터 스토리지 장치(200)로 전송될 수 있다.In step S22, the
모든 기입 데이터의 수신이 완료된 이후에, S13 단계에서, 스토리지 장치(200)는 RESPONSE UPIU를 호스트(100)로 전송할 수 있다. RESPONSE UPIU는 S21 단계에서 수신된 기입 커맨드에 대한 동작이 완료되었음을 가리키는 정보를 포함할 수 있다.After all write data is completely received, the
실시 예에 있어서, 스토리지 장치(200)는 S22 단계 동안 수신된 기입 데이터에 대하여 노멀 기입 동작을 수행할 수 있다. 예를 들어, S21 단계에서, 스토리지 장치(200)는 터보 라이트 기능이 활성화되었는지 판별할 수 있다. 좀 더 상세한 예로서, 스토리지 장치(200)는 플래그의 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값을 확인함으로써, 터보 라이트 기능이 활성화되었는지 판별할 수 있다. 플래그의 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값이 "0b"인 경우, 터보 라이트 기능이 활성화되지 않은 상태일 수 있고, 값이 "1b"인 경우, 터보 라이트 기능이 활성화된 상태일 수 있다. 실시 예에 있어서, 플래그의 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값은 호스트(1100)의 셋 플래그를 위한 쿼리 요청에 의해 설정될 수 있다.In an embodiment, the
호스트(100)로부터 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")[0102] 의 값이 설정되지 않을 수 있다. 이 경우, S22 단계에서 수신된 기입 데이터는 사용자 스토리지(UST)에 기입(즉, 노멀 기입)될 수 있다.The value of the turbo light activation field (eg, “fTurboWriteEn”) [0102] from the
S30 단계에서, 호스트(100)는 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값을 특정 값(예를 들어, "1b")으로 설정할 수 있다. 예를 들어, 호스트(1100)는 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값을 특정 값(예를 들어, "1b")으로 설정하기 위한 쿼리 요청을 스토리지 장치(200)로 전송할 수 있다. 호스트(100)로부터의 쿼리 요청에 응답하여 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값이 특정 값(예를 들어, "1b")으로 설정되고, 스토리지 장치(200)는 쿼리 응답을 호스트(100)로 전송할 수 있다.In step S30, the
이후에, S31 단계에서, 호스트(100)는 S31 단계 내지 S33 단계의 동작들을 수행할 수 있다. S31 단계 내지 S33단계의 동작들은 S21 단계 내지 S23 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.Thereafter, in step S31, the
실시 예에 있어서, S32 단계에서 수신된 기입 데이터는 터보 라이트 버퍼(TWB)에 기입될 수 있다. 예를 들어, S30 단계에서, 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값이 특정 값(예를 들어, "1b")으로 설정됨에 따라, 터보 라이트 기능이 활성화될 수 있다. 이 경우, 호스트(100)로부터 수신된 기입 데이터는 터보 라이트 버퍼(TWB)에 우선 기입될 수 있다. 예를 들어, S31 단계에서, 커맨드 UPIU의 특정 인자 값에 따라, 호스트(100)로부터 수신된 데이터는 고정된 터보 라이트 버퍼(TWB-p) 또는 비고정된 터보 라이트 버퍼(TWB-np)에 저장될 수 있다. 고정된 터보 라이트 버퍼(TWB-p)와 비고정된 터보 라이트 버퍼(TWB-np)로 구분되는 터보 라이트 버퍼의 구체적인 구성은 도 20을 통하여 상세하게 설명될 것이다.In an embodiment, the write data received in step S32 may be written into the turbo write buffer (TWB). For example, in step S30 , the turbo light function may be activated as the value of the turbo light activation field (eg, “fTurboWriteEn”) is set to a specific value (eg, “1b”). In this case, write data received from the
실시 예에 있어서, 터보 라이트 기능이 활성화된 상태이더라도, 터보 라이트 버퍼(TWB)의 공간이 충분하지 않은 경우, 스토리지 장치(200)는 수신된 기입 데이터를 사용자 스토리지(UST)에 기입할 수 있다. 실시예에 있어서, 터보 라이트 기능이 활성화된 상태이더라도, 터보 라이트 버퍼(TWB)의 공간이 충분하지 않은 경우, 스토리지 장치(200)는 스토리지 컨트롤러의 내부 버퍼(380)를 이용한 데이터 마이그레이션 동작을 수행한 후에 수신된 기입 데이터를 터보 라이트 버퍼(TWB)에 기입할 수 있다.In an embodiment, even when the turbo write function is activated, if the space of the turbo write buffer TWB is insufficient, the
도 20은 도 1의 스토리지 장치(200)의 물리적 저장 공간을 예시적으로 보여주는 블록도이다. FIG. 20 is a block diagram showing a physical storage space of the
도 1 및 도 20을 참조하면, 스토리지 장치(200)의 물리적 저장 공간인 메모리 셀 어레이(420d)는 터보 라이트 버퍼(TWB) 및 사용자 스토리지(UST)를 포함할 수 있다. 스토리지 장치(200)의 물리적 저장 공간(PS), 터보 라이트 버퍼(TWB), 및 사용자 스토리지(UST)는 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.Referring to FIGS. 1 and 20 , a
터보 라이트 버퍼(TWB)는 고정된 터보 라이트 버퍼(TWB-p; pinned turbo write buffer) 및 비고정된 터보 라이트 버퍼(TWB-np; non-pinned turbo write buffer)로 구분될 수 있다. 앞서 설명된 바와 유사하게, 스토리지 장치(200)의 터보 라이트 기능이 활성화된 경우, 기입 데이터는 고정된 터보 라이트 버퍼(TWB-p) 및 비고정된 터보 라이트 버퍼(TWB-np) 중 어느 하나에 저장될 수 있다.The turbo write buffer (TWB) may be divided into a pinned turbo write buffer (TWB-p) and a non-pinned turbo write buffer (TWB-np). Similarly as described above, when the turbo write function of the
고정된 터보 라이트 버퍼(TWB-p) 및 비고정된 터보 라이트 버퍼(TWB-np) 중 기입 데이터가 저장되는 버퍼는 다양한 방식들(예를 들어, 내부 정책, 호스트의 요청에 따른 내부 정책의 변경, 호스트의 명시적인 요청 등)로 결정될 수 있다.Among the fixed turbo light buffer (TWB-p) and the non-fixed turbo light buffer (TWB-np), the buffer in which write data is stored can be stored in various ways (e.g., internal policy, change of internal policy according to the request of the host). , host's explicit request, etc.).
예시적인 실시 예에서, 앞서 설명된 바와 같이, 터보 라이트 버퍼(TWB)의 크기는 호스트(100)의 제어 또는 스토리지 장치(200)의 내부 정책에 의해 결정될 수 있다. 이 때, 터보 라이트 버퍼(TWB)에 포함된 고정된 터보라이트 버퍼(TWB-p) 및 비고정된 터보 라이트 버퍼(TWB-np)의 비율은 다양한 방식들(예를 들어, 내부 정책, 호스트의 요청에 따른 내부 정책의 변경, 호스트의 명시적 요청 등)로 결정되거나 또는 가변될 수 있다.In an exemplary embodiment, as described above, the size of the turbo write buffer (TWB) may be determined by a control of the
예시적인 실시 예에서, 고정된 터보 라이트 버퍼(TWB-p), 비고정된 터보 라이트 버퍼(TWB-np), 및 사용자 스토리지(UST) 각각의 사이에서, 사용자 데이터가 플러쉬(flush), 마이그레이션(migrate), 또는 이동(move)될 수 있다. 예를 들어, 호스트(100)의 명시적인 요청, 스토리지 장치(200)의 내부 정책, 또는 호스트의 요청에 따른 내부 정책의 변경에 따라, 고정된 터보 라이트 버퍼(TWB-p) 및 비고정된 터보 라이트 버퍼(TWB-np) 사이에서 사용자 데이터가 이동(move)할 수 있다.In an exemplary embodiment, user data is flushed, migrated ( migrate), or may be moved. For example, the fixed turbo write buffer (TWB-p) and the non-fixed turbo according to an explicit request of the
또는 호스트(100)의 명시적인 요청, 스토리지 장치(200)의 내부 정책, 또는 호스트의 요청에 따른 내부 정책의 변경에 따라, 비고정된 터보 라이트 버퍼(TWB-np) 및 사용자 스토리지(UST) 사이에서 사용자 데이터가 이동(move)될 수 있다. 또는 호스트(100)의 명시적인 요청, 스토리지 장치(200)의 내부 정책, 또는 호스트의 요청에 따른 내부 정책의 변경에 따라, 고정된 터보 라이트 버퍼(TWB-p) 및 사용자 스토리지(UST) 사이에서 사용자 데이터가 이동(move)할 수 있다.Alternatively, between the non-fixed turbo write buffer (TWB-np) and the user storage (UST) according to an explicit request of the
예시적인 실시 예에서, 스토리지 장치(200)는 유휴 상태 동안 또는 하이버네이션 상태 동안 플러쉬 동작을 수행할 수 있다. 이 때, 스토리지 장치(200)는 터보 라이트 버퍼(TWB) 중 비고정된 터보 라이트 버퍼(TWB-np)에 대한 플러쉬 동작을 수행할 수 있다. 즉, 스토리지 장치(200)는 터보 라이트 버퍼(TWB) 중 비고정된 터보 라이트 버퍼(TWB-np)에 저장된 사용자 데이터를 사용자 스토리지(UST)로 플러쉬할 수 있다. In an example embodiment, the
예시적인 실시예에서, 스토리지 장치(200)는 기입 동작의 수행 시에 비고정된 터보 라이트 버퍼(TWB-np)의 데이터를 저장할 수 있는 유효 영역의 크기가 기입되는 데이터의 크기보다 작은 경우, 내부 버퍼(480)를 이용하여 상술한 독출-정정-전달 동작을 복수의 횟수만큼 수행하여, 터보 라이트 버퍼(TWB-np)에 기저장된 데이터를 사용자 스토리지(UST)에 마이그레이션할 수 있다. In an exemplary embodiment, the
이 때, 고정된 터보 라이트 버퍼(TWB-p)에 기입된 사용자 데이터는 사용자 스토리지(UST)로 플러쉬되지 않을 것이다. 즉, 스토리지 장치(200)가 플러쉬 동작을 수행하더라도, 고정된 터보 라이트 버퍼(TWB-p)에 기입된 사용자 데이터는 유지될 것이다.At this time, the user data written in the fixed turbo write buffer TWB-p will not be flushed to the user storage UST. That is, even if the
다른 예로서, 스토리지 장치(200)의 내부 정책에 따라, 비고정된 터보 라이트 버퍼(TWB-np)에 저장되어야 하는 데이터가 고정된 터보 라이트 버퍼(TWB-p)에 저장될 수 있다. 이러한 예외적인 데이터는 고정된 터보 라이트 버퍼(TWB-p)로부터 사용자 스토리지(UTS)로 플러쉬될 수 있다. 따라서, 호스트(100)가 고정된 터보 라이트 버퍼(TWB-p)에 기입된 제1 사용자 데이터에 대한 독출 커맨드를 발행한 경우, 제1 사용자 데이터는 고정된 터보 라이트 버퍼(TWB-p)로부터 독출될 것이다. 이 경우, 제1 사용자 데이터에 대한 고속 독출이 가능할 수 있다.As another example, data to be stored in the non-fixed turbo write buffer TWB-np may be stored in the fixed turbo write buffer TWB-p according to an internal policy of the
예를 들어, 앞서 설명된 바와 같이, 고정된 터보 라이트 버퍼(TWB-p)는 SLC 방식을 기반으로 사용자 데이터를 저장할 수 있고, 사용자 스토리지(UST)는 TLC 방식을 기반으로 사용자 데이터를 저장할 수 있다. SLC 방식을 기반으로 저장된 사용자 데이터를 읽는 시간은 TLC 방식을 기반으로 저장된 사용자 데이터를 읽는 시간보다 빠를 것이다.For example, as described above, the fixed turbo light buffer TWB-p may store user data based on the SLC method, and the user storage UST may store user data based on the TLC method. . The time to read the user data stored based on the SLC method will be faster than the time to read the user data stored based on the TLC method.
즉, 고정된 터보 라이트 버퍼(TWB-p)에 특정 사용자 데이터를 유지시킴으로써, 이후의 특정 사용자 데이터에 대한 읽기 동작의 속도를 향상시킬 수 있다. 이러한 스토리지 장치(1200)의 기능은 "터보 리드(Turbo Read)"라 불릴 수 있다.That is, by maintaining the specific user data in the fixed turbo write buffer TWB-p, the speed of a subsequent read operation for the specific user data can be improved. This function of the storage device 1200 may be called “Turbo Read”.
도 16 내지 도 20에서는 도 1의 스토리지 장치(200) 또는 도 4의 스토리지 장치(400a)가 UFS 장치인 것을 가정한다.In FIGS. 16 to 20 , it is assumed that the
도 21은 본 발명의 실시예들에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.21 is a flowchart illustrating a method of operating a storage device according to example embodiments.
도 3 내지 도 15 및 도 21을 참조하면, 제1 기입 속도를 가지는 제1 메모리 영역(421)과 상기 제2 기입 속도와는 다른 제2 기입 속도를 가지는 제2 메모리 영역(423)을 구비하는 비휘발성 메모리 장치(400a) 및 상기 비휘발성 메모리 장치(400a)를 제어하는 스토리지 컨트롤러(300)를 포함하는 스토리지 장치(200a)의 동작 방법이 제공된다.3 to 15 and 21, a
상기 방법에 의하면, 스토리지 컨트롤러(200)는 외부의 호스트(100)로부터 제1 데이터를 수신한다(S110). 스토리지 컨트롤러(200)는 제1 모드에서 제1 데이터를 제1 메모리 영역(421)에 프로그램한다(S120). 스토리지 컨트롤러(200)는 제1 메모리 영역(421)이 풀(full)인지 여부를 판단한다(S130). 즉, 스토리지 컨트롤러(200)는 제1 메모리 영역(421)의 데이터를 저장할 수 있는 유효 영역의 크기가 제1 데이터의 크기보다 작은지 여부를 판단한다.According to the above method, the
제1 메모리 영역(421)이 풀이 아닌 경우(S130에서 NO), 스토리지 컨트롤러(200)는 제1 데이터를 제1 메모리 영역(421)에 프로그램한다(S120).If the
제1 메모리 영역(421)이 풀인 경우(S130에서 YES), 스토리지 컨트롤러(200)는 제1 메모리 영역(에 기저장된 제2 데이터를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 순차적으로 독출하여 ECC 디코딩을 수행하여 에러를 정정하고(S140), 에러 정정된 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공한다.When the
비휘발성 메모리 장치(400a)는 에러 정정된 제2 데이터를 제2 메모리 영역(423)에 프로그램한다(S150). 스토리지 컨트롤러(100)는 호스트(100)로부터 제3 데이터를 수신한다(S160). 스토리지 컨트롤러(100)는 제1 모드에서 제3 데이터를 제1 메모리 영역(421)에 프로그램한다(S170).The
따라서 본 발명의 실시예들에 따른 스토리지 장치 및 스토리지 장치의 동작 방법에서는 기입 속도가 빠른 제1 메모리 영역에 제1 데이터를 프로그램하고자 하는 경우, 제1 메모리 영역에 기저장된 제2 데이터를 스토리지 컨트롤러의 내부 버퍼에 순차적으로 이동시킨 후, 제2 데이터를 제2 메모리 영역에 프로그램하는 데이터 마이그레션 동작을 수행할 수 있다. 내부 버퍼의 데이터 저장 용량이 제1 메모리 영역의 데이터 저장 용량보다 작아도 되므로, 내부 버퍼의 크기를 감소시켜 스토리지 컨트롤러의 크기를 감소시킬 수 있다. Accordingly, in the storage device and method of operating the storage device according to embodiments of the present invention, when first data is programmed in a first memory area having a high writing speed, second data pre-stored in the first memory area is stored in the storage controller. After sequentially moving the data into the internal buffer, a data migration operation of programming the second data into the second memory area may be performed. Since the data storage capacity of the internal buffer may be smaller than the data storage capacity of the first memory area, the size of the storage controller may be reduced by reducing the size of the internal buffer.
도 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 단면도이다.22 is a cross-sectional view illustrating a nonvolatile memory device according to example embodiments.
도 22를 참조하면, 비휘발성 메모리 장치(2000)는 C2C(chip to chip) 구조일 수 있다. C2C 구조는 제1 웨이퍼 상에 셀 영역(CELL)을 포함하는 상부 칩(제1 칩)을 제작하고, 제1 웨이퍼와 다른 제2 웨이퍼 상에 주변 회로 영역(PERI)을 포함하는 하부 칩(제2 칩)을 제작한 후, 상기 상부 칩과 상기 하부 칩을 본딩(bonding) 방식에 의해 서로 연결하는 것을 의미할 수 있다. 일례로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈을 서로 전기적으로 연결하는 방식을 의미할 수 있다. 예컨대, 상기 본딩 메탈이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-to-Cu 본딩 방식일 수 있으며, 상기 본딩 메탈은 알루미늄(Al) 혹은 텅스텐(W)으로도 형성될 수 있다.Referring to FIG. 22 , the
비휘발성 메모리 장치(2000)의 주변 회로 영역(PERI)과 셀 영역(CELL) 각각은 외부 패드 본딩 영역(PA), 워드라인 본딩 영역(WLBA), 및 비트라인 본딩 영역(BLBA)을 포함할 수 있다.Each of the peripheral circuit area PERI and the cell area CELL of the
주변 회로 영역(PERI)은 제1 기판(2210), 층간 절연층(2215), 제1 기판(2210)에 형성되는 복수의 회로 소자들(2220a, 2220b, 2220c), 복수의 회로 소자들(2220a, 2220b, 2220c) 각각과 연결되는 제1 메탈층(2230a, 2230b, 2230c), 제1 메탈층(2230a, 2230b, 2230c) 상에 형성되는 제2 메탈층(2240a, 2240b, 2240c)을 포함할 수 있다. 일 실시예에서, 제1 메탈층(2230a, 2230b, 2230c)은 상대적으로 전기적 비저항이 높은 텅스텐으로 형성될 수 있고, 제2 메탈층(2240a, 2240b, 2240c)은 상대적으로 전기적 비저항이 낮은 구리로 형성될 수 있다.The peripheral circuit region PERI includes a
본 명세서에서는 제1 메탈층(2230a, 2230b, 2230c)과 제2 메탈층(2240a, 2240b, 2240c)만 도시되고 설명되나, 이에 한정되는 것은 아니고, 제2 메탈층(2240a, 2240b, 2240c) 상에 적어도 하나 이상의 메탈층이 더 형성될 수도 있다. 제2 메탈층(2240a, 2240b, 2240c)의 상부에 형성되는 하나 이상의 메탈층 중 적어도 일부는, 제2 메탈층(2240a, 2240b, 2240c)을 형성하는 구리보다 더 낮은 전기적 비저항을 갖는 알루미늄 등으로 형성될 수 있다.In this specification, only the
층간 절연층(2215)은 복수의 회로 소자들(2220a, 2220b, 2220c), 제1 메탈층(2230a, 2230b, 2230c), 및 제2 메탈층(2240a, 2240b, 2240c)을 커버하도록 제1 기판(2210) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.The interlayer insulating
워드라인 본딩 영역(WLBA)의 제2 메탈층(2240b) 상에 하부 본딩 메탈(2271b, 2272b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(2271b, 2272b)은 셀 영역(CELL)의 상부 본딩 메탈(2371b, 2372b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있으며, 하부 본딩 메탈(2271b, 2272b)과 상부 본딩 메탈(2371b, 2372b)은 알루미늄, 구리, 혹은 텅스텐 등으로 형성될 수 있다.
셀 영역(CELL)은 적어도 하나의 메모리 블록을 제공할 수 있다. 상기 적어도 하나의 메모리 블록은 제1 영역과 제2 영역을 포함할 수 있고, 제1 영역은 상술한 보상 데이터 세트를 저장할 수 있고, SLC 블록일 수 있다. 셀 영역(CELL)은 제2 기판(2310)과 공통 소스 라인(2320)을 포함할 수 있다. 제2 기판(2310) 상에는, 제2 기판(2310)의 상면에 수직하는 제3 방향(VD)을 따라 복수의 워드라인들(2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338; 2330)이 적층될 수 있다. 워드라인들(2330)의 상부 및 하부 각각에는 스트링 선택 라인들과 접지 선택 라인이 배치될 수 있으며, 스트링 선택 라인들과 접지 선택 라인 사이에 복수의 워드라인들(2330)이 배치될 수 있다.The cell area CELL may provide at least one memory block. The at least one memory block may include a first area and a second area, and the first area may store the above-described compensation data set and may be an SLC block. The cell region CELL may include a
비트라인 본딩 영역(BLBA)에서, 채널 구조체(CH)는 제2 기판(2310)의 상면에 수직하는 방향(VD)으로 연장되어 워드라인들(2330), 스트링 선택 라인들, 및 접지 선택 라인을 관통할 수 있다. 채널 구조체(CH)는 데이터 저장층, 채널층, 및 매립 절연층 등을 포함할 수 있으며, 채널층은 제1 메탈층(2350c) 및 제2 메탈층(2360c)과 전기적으로 연결될 수 있다. 예컨대, 제1 메탈층(2350c)은 비트라인 컨택일 수 있고, 제2 메탈층(2360c)은 비트라인일 수 있다. 일 실시예에서, 비트라인(2360c)은 제2 기판(2310)의 상면에 평행한 제2 수평 방향(HD2)을 따라 연장될 수 있다.In the bit line bonding area BLBA, the channel structure CH extends in a direction VD perpendicular to the upper surface of the
도 22의 예에서, 채널 구조체(CH)와 비트라인(2360c) 등이 배치되는 영역이 비트라인 본딩 영역(BLBA)으로 정의될 수 있다. 비트라인(2360c)은 비트라인 본딩 영역(BLBA)에서 주변 회로 영역(PERI)에서 페이지 버퍼(2393)를 제공하는 회로 소자들(2220c)과 전기적으로 연결될 수 있다. 일례로, 비트라인(2360c)은 주변 회로 영역(PERI)에서 상부 본딩 메탈(2371c, 2372c)과 연결되며, 상부 본딩 메탈(2371c, 2372c)은 페이지 버퍼(2393)의 회로 소자들(2220c)에 연결되는 하부 본딩 메탈(2271c, 2272c)과 연결될 수 있다.In the example of FIG. 22 , a region where the channel structure CH and the
워드라인 본딩 영역(WLBA)에서, 워드라인들(2330)은 제1 수평 방향(HD1)에 수직하면서 제2 기판(310)의 상면에 평행한 제2 수평 방향(HD2)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(2341, 2342, 2343, 2344, 2345, 2346, 3347; 3340)과 연결될 수 있다. 워드라인들(2330)과 셀 컨택 플러그들(2340)은, 제1 수평 방향(HD1)을 따라 워드라인들(2330) 중 적어도 일부가 서로 다른 길이로 연장되어 제공하는 패드들에서 서로 연결될 수 있다. 워드라인들(2330)에 연결되는 셀 컨택 플러그들(2340)의 상부에는 제1 메탈층(2350b)과 제2 메탈층(2360b)이 차례로 연결될 수 있다. 셀 컨택 플러그들(2340)은 워드라인 본딩 영역(WLBA)에서 셀 영역(CELL)의 상부 본딩 메탈(2371b, 2372b)과 주변 회로 영역(PERI)의 하부 본딩 메탈(2271b, 2272b)을 통해 주변 회로 영역(PERI)과 연결될 수 있다.In the word line bonding area WLBA, the
셀 컨택 플러그들(2340)은 주변 회로 영역(PERI)에서 어드레스 디코더 또는 로우 디코더(2394)를 형성하는 회로 소자들(2220b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더(2394)를 형성하는 회로 소자들(2220b)의 동작 전압은, 페이지 버퍼(2393)를 형성하는 회로 소자들(2220c)의 동작 전압과 다를 수 있다. 일례로, 페이지 버퍼(2393)를 형성하는 회로 소자들(2220c)의 동작 전압이 로우 디코더(2394)를 형성하는 회로 소자들(2220b)의 동작 전압보다 클 수 있다.The cell contact plugs 2340 may be electrically connected to
외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그(2380)가 배치될 수 있다. 공통 소스 라인 컨택 플러그(2380)는 금속, 금속 화합물, 또는 폴리실리콘 등의 도전성 물질로 형성되며, 공통 소스 라인(2320)과 전기적으로 연결될 수 있다. 공통 소스 라인 컨택 플러그(2380) 상부에는 제1 메탈층(2350a)과 제2 메탈층(2360a)이 차례로 적층될 수 있다. 일례로, 공통 소스 라인 컨택 플러그(2380), 제1 메탈층(2350a), 및 제2 메탈층(2360a)이 배치되는 영역은 외부 패드 본딩 영역(PA)으로 정의될 수 있다.A common source
한편, 외부 패드 본딩 영역(PA)에는 입출력 패드들(2205, 2305)이 배치될 수 있다. 제1 기판(2210)의 하부에는 제1 기판(2210)의 하면을 덮는 하부 절연막(2201) 이 형성될 수 있으며, 하부 절연막(2201) 상에 제1 입출력 패드(2205)가 형성될 수 있다. 제1 입출력 패드(2205)는 제1 입출력 컨택 플러그(2203)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(2220a, 2220b, 2220c) 중 적어도 하나와 연결되며, 하부 절연막(2201)에 의해 제1 기판(2210)과 분리될 수 있다. 또한, 제1 입출력 컨택 플러그(2203)와 제1 기판(2210) 사이에는 측면 절연막이 배치되어 제1 입출력 컨택 플러그(2203)와 제1 기판(2210)을 전기적으로 분리할 수 있다.Meanwhile, input/
제2 기판(2310)의 상부에는 제2 기판(2310)의 상면을 덮는 상부 절연막(2301)이 형성될 수 있으며, 상부 절연막(2301) 상에 제2 입출력 패드(2305)가 배치될 수 있다. 제2 입출력 패드(2305)는 제2 입출력 컨택 플러그(2303)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(2220a, 2220b, 2220c) 중 적어도 하나와 연결될 수 있다. 일 실시예에서, 제2 입출력 패드(2305)는 회로 소자(2220a)와 전기적으로 연결될 수 있다.An upper insulating
실시예에 따라서, 제2 입출력 컨택 플러그(2303)가 배치되는 영역에는 제2 기판(2310) 및 공통 소스 라인(2320) 등이 배치되지 않을 수 있다. 또한, 제2 입출력 패드(2305)는 제3 방향(D3)에서 워드라인들(2380)과 오버랩되지 않을 수 있다. 제2 입출력 컨택 플러그(2303)는 제2 기판(2310)의 상면에 평행한 방향에서 제2 기판(2310)과 분리되며, 셀 영역(CELL)의 층간 절연층(2315)을 관통하여 제2 입출력 패드(2305)에 연결될 수 있다.Depending on the embodiment, the
실시예에 따라서, 제1 입출력 패드(2205)와 제2 입출력 패드(2305)는 선택적으로 형성될 수 있다. 일례로, 비휘발성 메모리 장치(2000)는 제1 기판(2201)의 상부에 배치되는 제1 입출력 패드(2205)만을 포함하거나, 또는 제2 기판(2301)의 상부에 배치되는 제2 입출력 패드(2305)만을 포함할 수 있다. 또는, 메모리 장치(2000)가 제1 입출력 패드(2205)와 제2 입출력 패드(2305)를 모두 포함할 수도 있다.According to embodiments, the first input/
셀 영역(CELL)과 주변 회로 영역(PERI) 각각에 포함되는 외부 패드 본딩 영역(PA)과 비트라인 본딩 영역(BLBA) 각각에는 최상부 메탈층의 메탈 패턴이 더미 패턴(dummy pattern)으로 존재하거나, 최상부 메탈층이 비어있을 수 있다.In each of the external pad bonding area PA and the bit line bonding area BLBA included in the cell area CELL and the peripheral circuit area PERI, the metal pattern of the uppermost metal layer exists in a dummy pattern, or The top metal layer may be empty.
비휘발성 메모리 장치(2000)는 외부 패드 본딩 영역(PA)에서, 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(2372a)에 대응하여 주변 회로 영역(PERI)의 최상부 메탈층에 셀 영역(CELL)의 상부 메탈 패턴(2372a)과 동일한 형태의 하부 메탈 패턴(2273a)을 형성할 수 있다. 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(2273a)은 주변 회로 영역(PERI)에서 별도의 콘택과 연결되지 않을 수 있다. 이와 유사하게, 외부 패드 본딩 영역(PA)에서 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(2273a)에 대응하여 셀 영역(CELL)의 상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴(2273a)과 동일한 형태의 상부 메탈 패턴(2372a)을 형성할 수도 있다.In the
워드라인 본딩 영역(WLBA)의 제2 메탈층(2240b) 상에는 하부 본딩 메탈(2271b, 2272b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(2271b, 2272b)은 셀 영역(CELL)의 상부 본딩 메탈(2371b, 2372b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있다.
또한, 비트라인 본딩 영역(BLBA)에서, 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(2252)에 대응하여 셀 영역(CELL)의 최상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴(2252)과 동일한 형태의 상부 메탈 패턴(2392)을 형성할 수 있다. 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(2392) 상에는 콘택을 형성하지 않을 수 있다.In addition, in the bit line bonding area BLBA, the uppermost metal layer of the cell area CELL corresponds to the
전술한 워드라인 전압들이 주변 회로 영역(PERI)의 하부 본딩 메탈(2271b, 2272b)과 셀 영역(CELL)의 상부 본딩 메탈(2371b, 2372b)을 통하여 셀 영역(CELL)의 적어도 하나의 메모리 블록에 제공될 수 있다. The aforementioned word line voltages are applied to at least one memory block of the cell area CELL through the
도 23은 본 발명의 실시예들에 따른 반도체 장치를 포함하는 전자 시스템을 나타내는 블록도이다. 23 is a block diagram illustrating an electronic system including a semiconductor device according to example embodiments.
도 23을 참조하면, 전자 시스템(3000)은 반도체 장치(3100) 및 반도체 장치(3100)와 전기적으로 연결되는 컨트롤러(3200)를 포함할 수 있다. 전자 시스템(3000)은 하나 또는 복수의 반도체 장치들(3100)을 포함하는 스토리지 장치(storage device) 또는 스토리지 장치를 포함하는 전자 장치(electronic device)일 수 있다. 예를 들어, 전자 시스템(3000)은 하나 또는 복수의 반도체 장치들(3100)을 포함하는 에스에스디(Solid State Drive: SSD) 장치, 유에스비(Universal Serial Bus: USB), 컴퓨팅 시스템, 의료 장치 또는 통신 장치일 수 있다. Referring to FIG. 23 , the
반도체 장치(3100)는 비휘발성 메모리 장치일 수 있으며, 예를 들어, 도 5 내지 도 11을 참조하여 상술한 비휘발성 메모리 장치일 수 있다. 반도체 장치(3100)는 제1 구조물(3100F) 및 제1 구조물(3100F) 상의 제2 구조물(3100S)을 포함할 수 있다. 제1 구조물(3100F)은 디코더 회로(3110), 페이지 버퍼 회로(3120), 및 로직 회로(3130)를 포함하는 주변 회로 구조물일 수 있다. 제2 구조물(3100S)은 비트라인(BL), 공통 소스 라인(CSL), 워드라인들(WL), 제1 및 제2 게이트 상부 라인들(UL1, UL2), 제1 및 제2 게이트 하부 라인들(LL1, LL2), 및 비트 라인(BL)과 공통 소스 라인(CSL) 사이의 메모리 낸드 스트링들(CSTR)을 포함하는 메모리 셀 구조물일 수 있다.The
제2 구조물(3100S)에서, 각각의 메모리 낸드 스트링들(CSTR)은 공통 소스 라인(CSL)에 인접하는 하부 트랜지스터들(LT1, LT2), 비트 라인(BL)에 인접하는 상부 트랜지스터들(UT1, UT2), 및 하부 트랜지스터들(LT1, LT2)과 상부 트랜지스터들(UT1, UT2) 사이에 배치되는 복수의 메모리 셀 트랜지스터들(MCT)을 포함할 수 있다. 하부 트랜지스터들(LT1, LT2)의 개수와 상부 트랜지스터들(UT1, UT2)의 개수는 실시예들에 따라 다양하게 변형될 수 있다. In the
예시적인 실시예들에서, 상부 트랜지스터들(UT1, UT2)은 스트링 선택 트랜지스터를 포함할 수 있고, 하부 트랜지스터들(LT1, LT2)은 그라운드 선택 트랜지스터를 포함할 수 있다. 하부 게이트 라인들(LL1, LL2)은 각각 하부 트랜지스터들(LT1, LT2)의 게이트 전극일 수 있다. 워드 라인들(WL)은 메모리 셀 트랜지스터들(MCT)의 게이트 전극들일 수 있고, 상부 게이트 라인들(UL1, UL2)은 각각 상부 트랜지스터들(UT1, UT2)의 게이트 전극일 수 있다. In example embodiments, the upper transistors UT1 and UT2 may include string select transistors, and the lower transistors LT1 and LT2 may include ground select transistors. The lower gate lines LL1 and LL2 may be gate electrodes of the lower transistors LT1 and LT2, respectively. The word lines WL may be gate electrodes of the memory cell transistors MCT, and the upper gate lines UL1 and UL2 may be gate electrodes of the upper transistors UT1 and UT2, respectively.
예시적인 실시예들에서, 하부 트랜지스터들(LT1, LT2)은 직렬 연결된 하부 소거 제어 트랜지스터(LT1) 및 그라운드 선택 트랜지스터(LT2)를 포함할 수 있다. 상부 트랜지스터들(UT1, UT2)은 직렬 연결된 스트링 선택 트랜지스터(UT1) 및 상부 소거 제어 트랜지스터(UT2)를 포함할 수 있다. 하부 소거 제어 트랜지스터(LT1) 및 상부 소거 제어 트랜지스터(UT1) 중 적어도 하나는 게이트 유도 누설 전류(Gate Induce Drain Leakage: GIDL) 현상을 이용하여 메모리 셀 트랜지스터들(MCT)에 저장된 데이터를 삭제하는 소거 동작에 이용될 수 있다.In example embodiments, the lower transistors LT1 and LT2 may include a lower erase control transistor LT1 and a ground select transistor LT2 connected in series. The upper transistors UT1 and UT2 may include a string select transistor UT1 and an upper erase control transistor UT2 connected in series. At least one of the lower erase control transistor LT1 and the upper erase control transistor UT1 performs an erase operation of erasing data stored in the memory cell transistors MCT using a gate induce drain leakage (GIDL) phenomenon. can be used for
공통 소스 라인(CSL), 제1 및 제2 하부 게이트 라인들(LL1, LL2), 워드 라인들(WL), 및 제1 및 제2 상부 게이트 라인들(UL1, UL2)은, 제1 구조물(3100F) 내에서 제2 구조물(1100S)까지 연장되는 제1 연결 배선들(3115)을 통해 디코더 회로(3110)와 전기적으로 연결될 수 있다. 비트 라인들(BL)은 제1 구조물(3100F) 내에서 제2 구조물(3100S)까지 연장되는 제2 연결 배선들(3125)을 통해 페이지 버퍼 회로(3120)와 전기적으로 연결될 수 있다.The common source line CSL, the first and second lower gate lines LL1 and LL2, the word lines WL, and the first and second upper gate lines UL1 and UL2 have a first structure ( 3100F) may be electrically connected to the
제1 구조물(3100F)에서, 디코더 회로(1110) 및 페이지 버퍼 회로(3120)는 복수의 메모리 셀 트랜지스터들(MCT) 중 적어도 하나의 선택 메모리 셀 트랜지스터에 대한 제어 동작을 실행할 수 있다. 디코더 회로(3110) 및 페이지 버퍼 회로(3120)는 로직 회로(3130)에 의해 제어될 수 있다. 반도체 장치(3000)는 로직 회로(3130)와 전기적으로 연결되는 입출력 패드(3101)를 통해, 컨트롤러(3200)와 통신할 수 있다. 입출력 패드(3101)는 제1 구조물(3100F) 내에서 제2 구조물(3100S)까지 연장되는 입출력 연결 배선(3135)을 통해 로직 회로(3130)와 전기적으로 연결될 수 있다. In the
컨트롤러(3200)는 프로세서(3210), NAND 컨트롤러(3220), 및 호스트 인터페이스(1230)를 포함할 수 있다. 실시예들에 따라, 전자 시스템(3000)은 복수의 반도체 장치들(3100)을 포함할 수 있으며, 이 경우, 컨트롤러(3200)는 복수의 반도체 장치들(3000)을 제어할 수 있다.The
프로세서(3210)는 컨트롤러(3200)를 포함하는 전자 시스템(3000) 전반의 동작을 제어할 수 있다. 프로세서(3210)는 소정의 펌웨어에 따라 동작할 수 있으며, NAND 컨트롤러(3220)를 제어하여 반도체 장치(3100)에 액세스할 수 있다. NAND 컨트롤러(3220)는 반도체 장치(3100)와의 통신을 처리하는 NAND 인터페이스(3221)를 포함할 수 있다. NAND 인터페이스(3221)를 통해, 반도체 장치(3100)를 제어하기 위한 커맨드, 반도체 장치(3100)의 메모리 셀 트랜지스터들(MCT)에 기록하고자 하는 데이터, 반도체 장치(3100)의 메모리 셀 트랜지스터들(MCT)로부터 읽어오고자 하는 데이터 등이 전송될 수 있다. 호스트 인터페이스(3230)는 전자 시스템(3000)과 외부 호스트 사이의 통신 기능을 제공할 수 있다. 호스트 인터페이스(3230)를 통해 외부 호스트로부터 제어 명령을 수신하면, 프로세서(3210)는 제어 명령에 응답하여 반도체 장치(3100)를 제어할 수 있다. The
도 24는 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다. 24 is a block diagram illustrating a storage system according to example embodiments.
도 24를 참조하면, 스토리지 시스템(4000)은 호스트(4100) 및 스토리지 장치(4200)를 포함한다. 호스트(4100) 및 스토리지 장치(4200)는 도 1 내지 도 20을 참조하여 설명된 바에 따라 동작할 수 있다.Referring to FIG. 24 , a
스토리지 장치(4200)는 프로그램/마이그레이션 매니저(4210)을 포함할 수 있다.The
호스트(4100)는 애플리케이션 프로세서(4110), 랜덤 액세스 메모리(4120)(RAM), 모뎀(4130), 장치 드라이버(4140), 스피커(4150), 디스플레이(4160), 터치 패널(4170), 마이크로폰(4180), 그리고 이미지 센서들(4190)을 포함할 수 있다.The
애플리케이션 프로세서(4110)는 애플리케이션(AP-h) 및 파일 시스템(FS-h)을 실행할 수 있다. 애플리케이션 프로세서(4110)는 RAM(4120)을 시스템 메모리로 사용할 수 있다. 애플리케이션 프로세서(4110)는 모뎀(4130)을 통해 외부의 장치와 유선 또는 무선으로 통신할 수 있다. 예시적으로, 모뎀(4130)은 애플리케이션 프로세서(4110)의 내부에 내장될 수 있다.The
애플리케이션 프로세서(4110)는 장치 드라이버(4140)를 통해 주변 장치들과 통신할 수 있다. 예를 들어, 애플리케이션 프로세서(4110)는 장치 드라이버(4140)를 통해 스피커(4150), 디스플레이(4160), 터치 패널(4170), 마이크로폰(4180), 이미지 센서들(4190), 그리고 스토리지 장치(4200)와 통신할 수 있다. The
스피커(4150) 및 디스플레이(4160)는 사용자에게 정보를 전달하는 사용자 출력 인터페이스들일 수 있다. 터치 패널(4170), 마이크로폰(4180), 그리고 이미지 센서들(4190)은 사용자로부터 정보를 수신하는 사용자 입력 인터페이스들일 수 있다.
도 25는 스토리지 시스템에 본 발명의 실시 예가 적용된 개념도를 보여준다. 25 shows a conceptual diagram to which an embodiment of the present invention is applied to a storage system.
도 24 및 도 25를 참조하면, 스토리지 시스템(4000)은 디스플레이(4160)를 통해 설정 화면들을 제공할 수 있다. 설정 화면들 중 하나는 사용자에게 가속 모드의 정보를 제공할 수 있다.Referring to FIGS. 24 and 25 , the
스토리지 시스템(4000)은 가속 모드가 적용될 수 있는 제1 내지 제u 애플리케이션들(APP1~APPu)의 목록을 디스플레이(4160)를 통해 표시할 수 있다. 또한, 스토리지 시스템은 제1 내지 제u 애플리케이션들(APP1~APPu)의 가속 모드들을 조절할 수 있는 스위치들을 디스플레이(1160)를 통해 표시할 수 있다.The
S210 단계에서, 사용자는 제3 애플리케이션(APP3)의 가속 모드의 활성화 위치를 터치할 수 있다. 스토리지 시스템(4000)은 터치 패널(4170)을 통해 사용자의 터치, 즉 제3 애플리케이션(APP3)을 활성화하는 지시를 감지할 수 있다. S220 단계에서, 제3 애플리케이션(APP3) 또는 제3 애플리케이션(APP3)의 프로세스들의 정보가 프로그램/마이그레이션 매니저(4210)에 전달될 수 있다.In step S210, the user may touch the activation position of the acceleration mode of the third application APP3. The
제3 애플리케이션(APP3) 또는 제3 애플리케이션(APP3)의 프로세스들의 정보가 수신됨에 따라, S230 단계에서, 프로그램/마이그레이션 매니저(4210)는 선택된 제3 애플리케이션(APP3) 또는 프로세스들의 후속 기입 동작에 마이그레이션 동작을 예약할 수 있다. 프로그램/마이그레이션 매니저(4210)는 선택된 제3 애플리케이션(APP3) 또는 프로세스들의 후속 기입 동작에 상술한 마이그레이션 동작을 수행하여, 후속 기입 동작에 관련된 데이터를 제1 메모리 영역에 기입할 수 있다.
As information on the third application APP3 or processes of the third application APP3 is received, in step S230, the program/
본 발명은 스토리지 장치를 구비하는 임의의 전자 장치에 유용하게 이용될 수 있다. 예를 들어, 본 발명은 스토리지 장치를 구비하는 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation) 시스템 등에 적용될 수 있다.The present invention can be usefully used in any electronic device having a storage device. For example, the present invention relates to a mobile phone having a storage device, a smart phone, a personal digital assistant (PDA), a portable multimedia player (PMP), a digital camera ( Digital Camera), music player, portable game console, navigation system, etc.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, although it has been described with reference to the preferred embodiments of the present invention, those skilled in the art can make the present invention various without departing from the spirit and scope of the present invention described in the claims below. It will be understood that it can be modified and changed accordingly.
Claims (9)
제1 모드에서는 외부로부터 제공되는 제1 데이터를 상기 제1 메모리 영역에 우선적으로 저장하고, 내부 버퍼를 구비하는 스토리지 컨트롤러를 포함하고,
상기 스토리지 컨트롤러는
상기 제1 메모리 영역에 기저장된 제2 데이터를 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역에 저장되도록 데이터 마이그레이션 동작을 제어하는 스토리지 장치. a nonvolatile memory device including a first memory area having a first write speed and a second memory area having a second write speed slower than the second write speed; and
In a first mode, a storage controller preferentially stores first data provided from the outside in the first memory area and includes an internal buffer;
The storage controller
A read-and-transfer operation of reading the second data previously stored in the first memory area by a first unit and providing the read data of the first unit to a data input/output circuit of the nonvolatile memory device is performed a plurality of times. and controlling a data migration operation so that the second data provided to the data input/output circuit is stored in the second memory area.
상기 제1 단위는 상기 내부 버퍼의 데이터 저장 용량에 해당하고,
상기 스토리지 컨트롤러는 상기 제1 모드에서 상기 제1 메모리 영역의 데이터를 저장할 수 있는 유효 영역의 크기가 상기 제1 데이터의 크기보다 작은 경우, 상기 독출된 제1 단위의 데이터의 에러를 정정하는 정정 동작을 상기 복수의 횟수만큼 수행하고, 상기 독출 동작과 상기 전달 동작을 병렬적으로 수행하는 것을 특징으로 하는 스토리지 장치.According to claim 1,
The first unit corresponds to the data storage capacity of the internal buffer,
The storage controller performs a correction operation of correcting an error of the read first unit data when the size of an effective area capable of storing data of the first memory area is smaller than the size of the first data in the first mode. the plurality of times, and the read operation and the transmission operation are performed in parallel.
상기 제1 메모리 영역은 SLC(single level cell) 영역이고, 상기 제2 메모리 영역은 TLC(triple level cell) 영역이고,
상기 스토리지 컨트롤러는 상기 제2 데이터에 대한 상기 독출-전달 동작을 3회 수행하고,
상기 제1 단위는 상기 제1 메모리 영역과 상기 제2 메모리 영역의 페이지 단위에 해당하는 것을 특징으로 하는스토리지 장치.According to claim 1,
The first memory area is a single level cell (SLC) area, the second memory area is a triple level cell (TLC) area,
The storage controller performs the read-transfer operation on the second data three times;
The storage device of claim 1 , wherein the first unit corresponds to a page unit of the first memory area and the second memory area.
상기 제1 데이터와 관련된 기입 리퀘스트에 기초하여 상기 제1 데이터와 관련된 기입 모드를 상기 제1 모드와 상기 제1 데이터를 상기 제2 메모리 영역에 저장하는 제2 모드 중 하나로 결정하는 프로세서;
상기 프로세서의 제어에 기초하여 프로그램 동작과 상기 데이터 마이그레이션 동작을 제어하는 프로그램/마이그레이션 매니저; 및
상기 독출된 제1 단위의 데이터에 대하여 에러 정정 코드(error correction code; ECC) 디코딩을 수행하여 상기 독출된 제1 단위의 데이터의 에러를 정정하는 ECC 엔진을 더 포함하고,
상기 독출된 제1 단위의 데이터는 사용자 데이터 부분과 패리티 데이터 부분을 포함하고,
상기 ECC 엔진은 상기 패리티 데이터 부분에 기초하여 상기 에러를 정정하는 것을 특징으로 하는 스토리지 장치.The method of claim 1 , wherein the storage controller
a processor that determines a write mode related to the first data as one of the first mode and a second mode for storing the first data in the second memory area, based on a write request related to the first data;
a program/migration manager controlling a program operation and the data migration operation based on the control of the processor; and
Further comprising an ECC engine correcting an error of the read first unit data by performing error correction code (ECC) decoding on the read first unit data;
The read first unit of data includes a user data portion and a parity data portion;
Wherein the ECC engine corrects the error based on the parity data portion.
상기 프로그램/마이그레이션 매니저가 로딩되는 온-칩 메모리를 더 포함하고,
상기 프로세서는 상기 프로세서는 상기 온-칩 메모리에 로딩된 상기 프로그램/마이그레이션 매니저를 실행시키는 것을 특징으로 하는 스토리지 장치.The method of claim 4 , wherein the storage controller
Further comprising an on-chip memory into which the program/migration manager is loaded;
The storage device according to claim 1 , wherein the processor executes the program/migration manager loaded into the on-chip memory.
상기 프로세서는 유휴 시간을 기초로 외부로부터의 기입 리퀘스트에 대한 연속성을 판단하고, 상기 판단 결과에 따라서 상기 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정하고,
상기 유휴 시간은 상기 기입 리퀘스트 이전에 수신된 기입 리퀘스트 사이의 유휴 시간을 나타내고,
상기 프로세서는
상기 유휴 시간 및 기준 시간을 비교하고,
상기 유휴 시간이 상기 기준 시간 미만인 경우, 상기 기입 커맨드가 연속인 것으로 판단하고,
상기 유휴 시간이 상기 기준 시간 이상인 경우, 상기 기입 커맨드가 불연속인 것으로 판단하고,
상기 프로세서는
상기 기입 리퀘스트가 연속인 것으로 판단된 경우, 상기 제1 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하고,
상기 기입 리퀘스트가 불연속인 것으로 판단된 경우, 상기 제2 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하는 상기 제2 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하는 스토리지 장치. According to claim 4,
The processor determines continuity of a write request from the outside based on an idle time, and determines the write mode as one of the first mode and the second mode according to the determination result;
the idle time indicates an idle time between write requests received prior to the write request;
The processor
Compare the idle time and the reference time,
When the idle time is less than the reference time, it is determined that the write command is continuous;
When the idle time is greater than or equal to the reference time, it is determined that the write command is discontinuous;
The processor
When it is determined that the write request is continuous, a write operation for the write request is performed based on the first mode;
and performing a write operation on the write request based on the second mode when it is determined that the write request is discontinuous.
상기 제1 데이터의 크기에 기초하여 상기 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정하고
상기 제1 데이터의 크기가 기준 크기 이상인 것에 응답하여 상기 제1 데이터를 상기 제1 메모리 영역에 저장하고,
상기 제1 데이터의 크기가 상기 기준 크기 미만인 것에 응답하여 상기 제1 데이터를 상기 제2 메모리 영역에 저장하는 것을 특징으로 하는 스토리지 장치.5. The method of claim 4, wherein the processor
determining the writing mode as one of the first mode and the second mode based on the size of the first data;
Storing the first data in the first memory area in response to a size of the first data being greater than or equal to a reference size;
and storing the first data in the second memory area in response to a size of the first data being smaller than the reference size.
상기 프로세서는 상기 제1 메모리 영역 및 제2 메모리 영역의 상태 정보를 기초로 상기 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정하고,
상기 상태 정보는 상기 제1 메모리 영역 및 상기 제2 메모리 영역의 프로그램/소거 사이클 정보, 상기 제1 메모리 영역 및 상기 제2 메모리 영역 내의 프리 블록들의 개수 및 상기 제1 메모리 영역 및 상기 제2 메모리 영역의 데이터 보유 시간 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 스토리지 장치. According to claim 4,
The processor determines the write mode as one of the first mode and the second mode based on state information of the first memory area and the second memory area;
The state information includes program/erase cycle information of the first memory area and the second memory area, the number of free blocks in the first memory area and the second memory area, and the first memory area and the second memory area. A storage device comprising at least one of data retention time information of
상기 스토리지 컨트롤러가 외부의 호스트로부터 제1 데이터를 수신하는 단계;
상기 스토리지 컨트롤러가 제1 모드에서 상기 제1 데이터를 상기 제1 메모리 영역에 프로그램하는 단계; 및
상기 스토리지 컨트롤러가 상기 제1 메모리 영역에 기저장된 제2 데이터를 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-전달 동작을 복수의 횟수만큼 수행하는 단계; 및
상기 비휘발성 메모리 장치가 상기 데이터 입출력 회로에 제공된 상기 제2 데이터를 상기 제2 메모리 영역에 프로그램하는 단계를 포함하는 스토리지 장치의 동작 방법.A storage comprising a nonvolatile memory device including a first memory area having a first write speed and a second memory area having a second write speed slower than the first write speed, and a storage controller controlling the nonvolatile memory device As a method of operating the device,
receiving, by the storage controller, first data from an external host;
programming the first data into the first memory area in a first mode by the storage controller; and
The storage controller may perform a read-and-transfer operation of reading second data previously stored in the first memory area by a first unit and providing the read first unit of data to a data input/output circuit of the nonvolatile memory device. performing as many times as; and
and programming, by the non-volatile memory device, the second data provided to the data input/output circuit into the second memory area.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/850,723 US20230152991A1 (en) | 2021-11-17 | 2022-06-27 | Storage devices and methods of operating storage devices |
CN202211092637.9A CN116136742A (en) | 2021-11-17 | 2022-09-08 | Memory device and method of operating the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210158182 | 2021-11-17 | ||
KR20210158182 | 2021-11-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230072363A true KR20230072363A (en) | 2023-05-24 |
Family
ID=86540975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220005071A KR20230072363A (en) | 2021-11-17 | 2022-01-13 | Storage device and mehtod of operating storage device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230072363A (en) |
-
2022
- 2022-01-13 KR KR1020220005071A patent/KR20230072363A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20130135618A (en) | Storage device having nonvolatile memory device and write method tererof | |
CN111105832B (en) | Memory device and method of operating the same | |
US9257192B2 (en) | Memory system performing multi-step erase operation based on stored metadata | |
US10725906B2 (en) | Storage device that restores data lost during a subsequent data write | |
CN113760794A (en) | Memory device and method of operating the same | |
CN114579475A (en) | Electronic system and method of operating the same | |
EP4163792B1 (en) | Storage devices | |
CN114067870A (en) | Memory system, memory device, and method for operating memory device | |
CN111338978B (en) | Storage device and method for operating storage device | |
US11861237B2 (en) | Storage device accessible on a cell-by-cell basis and method of operating the same | |
CN116343870A (en) | Memory device and method of operating the same | |
US20220238170A1 (en) | Memory system and operating method thereof | |
KR20230072363A (en) | Storage device and mehtod of operating storage device | |
US20230152991A1 (en) | Storage devices and methods of operating storage devices | |
CN112783431A (en) | Storage device and operation method thereof | |
CN113126895A (en) | Storage device and operation method thereof | |
US11348647B2 (en) | Memory device and method of operating the same | |
US20230039489A1 (en) | Semiconductor device performing block program and operating method thereof | |
US20230195333A1 (en) | Storage device and operation method of electronic system | |
US20230154551A1 (en) | Semiconductor device for improving retention performance and operating method thereof | |
US20220392544A1 (en) | Memory device and operating method thereof | |
US20240143192A1 (en) | Memory system and operating method thereof | |
KR20230093708A (en) | Nonvolatile memory device and storage device including the same | |
US20230176759A1 (en) | Memory controller with improved data reliability and memory system including the same | |
KR20230050197A (en) | Storage device and method of operating storage device |