KR20230072363A - Storage device and mehtod of operating storage device - Google Patents

Storage device and mehtod of operating storage device Download PDF

Info

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
Application number
KR1020220005071A
Other languages
Korean (ko)
Inventor
송원종
김순영
김태영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/850,723 priority Critical patent/US20230152991A1/en
Priority to CN202211092637.9A priority patent/CN116136742A/en
Publication of KR20230072363A publication Critical patent/KR20230072363A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements

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

According to the present invention, a storage device comprises a non-volatile memory device and a storage controller. The non-volatile memory device includes a first memory area having a first writing speed and a second memory area having a second writing speed slower than the first writing speed. In addition, the storage controller reads a first unit of second data pre-stored in the first memory area and performs a read-transfer operation of providing the read first unit of data to a data input and output circuit of the non-volatile memory device a plurality of times, and controls a data migration operation so that the second data provided to the data input and output circuit is stored in the second memory area. Accordingly, a size of the storage controller can be reduced by reducing a size of an internal buffer.

Description

스토리지 장치 및 스토리지 장치의 동작 방법{STORAGE DEVICE AND MEHTOD OF OPERATING STORAGE DEVICE}Storage device and method of operating the storage device {STORAGE DEVICE AND MEHTOD OF OPERATING STORAGE DEVICE}

본 발명은 반도체 집적 회로에 관한 것으로, 보다 상세하게는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다. 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 storage system 50 may include a host 100 and a storage device 200 . The host 100 includes a storage interface 140 .

도 1의 스토리지 장치(200)는 데이터를 저장할 수 있는 임의의 종류의 저장 장치일 수 있다. The storage device 200 of FIG. 1 may be any type of storage device capable of storing data.

스토리지 장치(200)는 스토리지 컨트롤러(300), 복수의 비휘발성 메모리 장치들(400a~400k, k는 2 이상의 자연수), 전력관리 집적회로(이하 'PMIC', 600) 및 호스트 인터페이스(240)를 포함할 수 있다. 호스트 인터페이스(240)는 신호 커넥터(241) 및 전원 커넥터(243)를 포함할 수 있다. 스토리지 장치(200)는 버퍼 메모리(BM, 250)를 더 포함할 수 있다.The storage device 200 includes a storage controller 300, a plurality of nonvolatile memory devices (400a to 400k, where k is a natural number greater than or equal to 2), a power management integrated circuit (hereinafter 'PMIC', 600), and a host interface 240. can include The host interface 240 may include a signal connector 241 and a power connector 243 . The storage device 200 may further include a buffer memory (BM) 250 .

복수의 비휘발성 메모리 장치들(400a~400k)은 스토리지 장치(200)의 저장 매체로서 사용된다. 비휘발성 메모리 장치들(400a~400k) 각각은 플래시 메모리 또는 수직형 낸드 메모리 장치로 구현될 수 있다. 스토리지 컨트롤러(300)는 복수의 채널들(CHK1~CHk) 각각을 통하여 비휘발성 메모리 장치들(400a~400k) 각각과 연결된다. The plurality of nonvolatile memory devices 400a to 400k are used as storage media of the storage device 200 . Each of the nonvolatile memory devices 400a to 400k may be implemented as a flash memory or a vertical NAND memory device. The storage controller 300 is connected to each of the non-volatile memory devices 400a to 400k through a plurality of channels CHK1 to CHk.

스토리지 컨트롤러(300)는 신호 커넥터(241)를 통해 호스트(100)로부터 리퀘스트(REQ)를 수신하고, 호스트(100)와 데이터(DTA)를 송수신한다. 스토리지 컨트롤러(300)는 호스트(100)로부터 수신되는 리퀘스트(REQ)에 기초하여 비휘발성 메모리 장치들(400a~400k)에 데이터(DTA)를 기입하거나 비휘발성 메모리 장치들(400a~400k)로부터 데이터(DTA)를 독출한다. The storage controller 300 receives a request REQ from the host 100 through the signal connector 241 and transmits and receives data DTA with the host 100 . The storage controller 300 writes data DTA into the nonvolatile memory devices 400a to 400k based on the request REQ received from the host 100 or data from the nonvolatile memory devices 400a to 400k. (DTA) is read.

이 경우에, 스토리지 컨트롤러(300)는 버퍼 메모리(250)를 입출력 버퍼로서 사용하여 호스트(100)와 데이터(DTA)를 송수신할 수 있다. 일 실시예에 있어서, 버퍼 메모리(250)는 DRAM(Dynamic Random Access Memory)을 포함할 수 있다.In this case, the storage controller 300 may transmit and receive data DTA with the host 100 by using the buffer memory 250 as an input/output buffer. In one embodiment, the buffer memory 250 may include Dynamic Random Access Memory (DRAM).

PMIC(600)는 전원 커넥터(243)를 통해 호스트(100)로부터 복수의 전원 전압들(또는 외부 전원전압들, VES1~VESt)을 수신할 수 있다. 예를 들어, 전원 커넥터(243)는 복수의 전력 라인들(P1~Pt)을 포함하고, PMIC(600)는 호스트(100)로부터 전력 라인들(P1~Pt)을 통해 전원 전압들(VES1~VESt)을 각각 수신할 수 있다. 여기서, t는 2 이상의 양의 정수를 나타낸다. The PMIC 600 may receive a plurality of power supply voltages (or external power supply voltages, VES1 to VESt) from the host 100 through the power connector 243 . For example, the power connector 243 includes a plurality of power lines P1 to Pt, and the PMIC 600 receives power voltages VES1 to Pt from the host 100 through the power lines P1 to Pt. VESt) can be received respectively. Here, t represents a positive integer of 2 or more.

PMIC(600)는 전원 전압들(VES1~VESt)에 기초하여 스토리지 컨트롤러(300)의 동작에 필요한 적어도 하나의 제1 동작 전압(VOP1), 비휘발성 메모리 장치들(400a~400k)의 동작에 필요한 적어도 하나의 제2 동작 전압(VOP2), 및 버퍼 메모리(250)의 동작에 필요한 적어도 하나의 제3 동작 전압(VOP3)을 생성할 수 있다.The PMIC 600 provides at least one first operating voltage VOP1 necessary for the operation of the storage controller 300 and necessary for the operation of the nonvolatile memory devices 400a to 400k based on the power supply voltages VES1 to VESt. At least one second operating voltage VOP2 and at least one third operating voltage VOP3 necessary for the operation of the buffer memory 250 may be generated.

예를 들어, 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 PMIC 600 receives all of the power supply voltages VES1 to VESt from the host 100, it generates at least one first operating voltage VOP1 by using all of the power supply voltages VES1 to VESt. , at least one second operating voltage VOP2 , and at least one third operating voltage VOP3 may be generated. On the other hand, when the PMIC 500 receives only some of the power supply voltages VES1 to VESt from the host 100, it uses all of the received power supply voltages to generate at least one first operating voltage VOP1, At least one second operating voltage VOP2 and at least one third operating voltage VOP3 may be generated.

도 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 host 100 includes a central processing unit (CPU) 110, a ROM 120, a main memory 130, a storage interface 140, a user interface 150, and a bus ( 160) may be included.

버스(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 bus 160 means a transmission path for transferring data between the CPU 110, the ROM 120, the main memory 130, the storage interface 140, and the user interface 150 of the host 100. Various application programs are stored in the ROM 120 . In the embodiment, application programs supporting storage protocols such as ATA (Advanced Technology Attachment), SCSI (Small Computer System Interface), eMMC (embedded Multi Media Card), UFS (Unix File System), etc. are stored in the ROM 120 It can be.

메인 메모리(130)에는 데이터 또는 프로그램이 일시적으로 저장될 수 있다. 사용자 인터페이스(150)는 사용자와 호스트 기기, 컴퓨터 프로그램 등 사이에서 정보를 주고받을 수 있는 물리적 또는 가상적 매개체로서 물리적인 하드웨어와 논리적인 소프트웨어를 포함한다. 즉, 사용자 인터페이스(150)는 사용자가 호스트(100)를 조작할 수 있는 입력 장치와 사용자 입력에 대한 처리 결과를 표시하는 출력 장치를 포함할 수 있다.Data or programs may be temporarily stored in the main memory 130 . The user interface 150 includes physical hardware and logical software as a physical or virtual medium capable of exchanging information between a user, a host device, and a computer program. That is, the user interface 150 may include an input device through which a user can manipulate the host 100 and an output device displaying a result of processing a user input.

CPU(110)는 호스트(100)의 전반적인 동작을 제어한다. CPU(110)는 ROM(120)에 저장된 어플리케이션(application) 또는 툴(tool)을 이용하여 스토리지 장치(200)에 데이터를 저장하기 위한 리퀘스트(또는 커맨드) 또는 스토리지 장치(200)로부터 데이터를 읽어내기 위한 커맨드와 전원 전압들(VES1~VESt)을 생성시켜 스토리지 인터페이스(140)를 통하여 스토리지 장치(200)로 전달하도록 제어할 수 있다.The CPU 110 controls overall operations of the host 100 . The CPU 110 requests (or commands) to store data in the storage device 200 or reads data from the storage device 200 using an application or tool stored in the ROM 120. Commands and power supply voltages VES1 to VESt may be generated and transmitted to the storage device 200 through the storage interface 140 .

도 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 storage controller 300 includes a processor 310, an error correction code (ECC) engine 320, and an on-chip memory 330 connected to each other through a bus 305. ), a randomizer 340, a host interface 350, a ROM 360, an internal buffer 380, and a memory interface 370.

프로세서(310)는 스토리지 컨트롤러(300)의 제반 동작을 제어한다. 프로세서(310)는 온-칩 메모리(330), ECC 엔진(320), 랜더마이저(340), 내부 버퍼(380) 및 메모리 인터페이스(370)를 제어할 수 있다. The processor 310 controls overall operations of the storage controller 300 . The processor 310 may control the on-chip memory 330 , the ECC engine 320 , the randomizer 340 , the internal buffer 380 and the memory interface 370 .

프로세서(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')), 펌웨어 등)을 실행할 수 있다.Processor 310 may include one or more cores (eg, homogeneous multi-core or heterogeneous multi-core). For example, the processor 310 may include a central processing unit (CPU), an image signal processing unit (ISP), a digital signal processing unit (DSP), a graphics processing unit (GPU), a vision processing unit (VPU), and a neural processing unit (NPU). Processing Unit) may include at least one. The processor 310 may execute various application programs (eg, a Flash Translation layer (FTL), hereinafter referred to as 'FTL'), firmware, etc.) loaded in the on-chip memory 330 .

온-칩 메모리(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-chip memory 330 may store various application programs executed by the processor 310 . The on-chip memory 330 may operate as cache memory adjacent to the processor 310 . The on-chip memory 330 may store commands, addresses, data, etc. to be processed by the processor 310 or may store processing results of the processor 310 . For example, the on-chip memory 330 includes a latch, a register, a static random access memory (SRAM), a dynamic random access memory (DRAM), a thyristor random access memory (TRAM), and a tightly coupled TCM (tightly coupled memory). Memory) or the like, or a working memory.

프로세서(310)는 온-칩 메모리(330)에 로드된 FTL(335)을 실행할 수 있다. The processor 310 may execute the FTL 335 loaded into the on-chip memory 330 .

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 may be loaded into the on-chip memory 330 as firmware or a program stored in one of the non-volatile memory devices 400a to 400k. The FTL 335 may include an address mapping table manager that manages and updates mapping between logical addresses and physical addresses of the nonvolatile memory devices 400a to 400k. In addition to the aforementioned address mapping, the FTL 335 may further perform garbage collection, wear leveling, and the like. The FTL 335 has limitations of the non-volatile memory devices 400a to 400k (eg, overwrite or in-place write not possible, lifespan of a memory cell, limited P/E (Program-Erase) cycle, erase speed is slower than write speed, etc.).

특히 FTL(335)은 비휘발성 메모리 장치들(400a~400k) 각각의 제1 메모리 영역 및 제2 메모리 영역의 프로그램/소거 사이클 정보, 상기 제1 메모리 영역 및 상기 제2 메모리 영역 내의 프리 블록들의 개수 및 상기 제1 메모리 영역 및 상기 제2 메모리 영역의 데이터 보유 시간 정보 중 적어도 하나를 저장하고 저장된 정보를 상태 정보(sinf)로서 프로세서(310)에 제공할 수 있다.In particular, the FTL 335 stores program/erase cycle information of the first memory area and the second memory area of each of the nonvolatile memory devices 400a to 400k, the number of free blocks in the first memory area and the second memory area. and at least one of data retention time information of the first memory area and the second memory area may be stored and the stored information may be provided to the processor 310 as status information sinf.

프로세서(310)는 온-칩 메모리(330)에 로드된 프로그램/마이그레이션 매니저(331)를 실행할 수 있다.The processor 310 may execute the program/migration manager 331 loaded in the on-chip memory 330 .

프로그램/마이그레이션 매니저(331)는 프로세서(310)에 제어에 따라서 제1 모드에서 비휘발성 메모리 장치들(400a~400k)중 타겟 비휘발성 메모리 장치의 상기 제1 메모리 영역의 데이터를 저장할 수 있는 유효 영역의 크기가 프로그램될 제1 데이터의 크기보다 작은 경우, 상기 제1 메모리 영역에 기저장된 제2 데이터를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 상기 비휘발성 메모리 장치의 데이터 입출력 회로에 제공하는 독출-정정-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역에 저장되도록 프로그램 동작과 데이터 마이그레이션 동작을 제어할 수 있다. The program/migration manager 331 is a valid area capable of storing data of the first memory area of the target nonvolatile memory device among the nonvolatile memory devices 400a to 400k in the first mode under the control of the processor 310 . When the size of is smaller than the size of the first data to be programmed, the second data pre-stored in the first memory area is read by a first unit corresponding to the data storage capacity of the internal buffer 380, and the read first A read-correction-transfer operation of correcting errors in unit data and providing error-corrected first unit data to the data input/output circuit of the nonvolatile memory device is performed a plurality of times, and the data input/output circuit A program operation and a data migration operation may be controlled so that the provided second data is stored in the second memory area.

비휘발성 메모리 장치들(400a~400k)에 포함된 메모리 셀들은 프로그램 경과 시간, 온도, 프로그램 교란, 독출 교란 등과 같은 요인들로 인하여 문턱 전압 분포가 변화하는 물리적 특성을 갖는다. 즉, 상술된 요인들로 인하여 비휘발성 메모리 장치들(400a~400k)에 저장된 데이터에 오류가 발생할 수 있다. Memory cells included in the non-volatile memory devices 400a to 400k have physical characteristics in which a threshold voltage distribution changes due to factors such as elapsed program time, temperature, program disturbance, and read disturbance. That is, errors may occur in data stored in the non-volatile memory devices 400a to 400k due to the above factors.

스토리지 컨트롤러(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 storage controller 300 may use various error correction techniques to correct these errors. For example, the storage controller 300 may include the ECC engine 320 . The ECC engine 320 corrects errors generated in data stored in the nonvolatile memory devices 400a to 400k. The ECC engine 320 may include an ECC encoder 321 and an ECC decoder 323. The ECC encoder 321 performs ECC encoding on data to be stored in the nonvolatile memory devices 400a to 400k, and the ECC decoder 323 performs ECC encoding on data read from the nonvolatile memory devices 400a to 400k. Errors in the read data may be corrected by performing ECC decoding.

ROM(360)은 스토리지 컨트롤러(300)가 동작하는데 요구되는 다양한 정보를 펌웨어 형태로 저장할 수 있다. The ROM 360 may store various information required for the operation of the storage controller 300 in the form of firmware.

랜더마이저(340)는 비휘발성 메모리 장치들(400a~400k) 중 하나에 저장될 데이터를 랜더마이징(randomizing)할 수 있다. 예를 들어, 랜더마이저(340)는 비휘발성 메모리 장치들(400a~400k) 중 하나에 저장될 데이터를 워드라인 단위로 랜더마이징할 수 있다.The randomizer 340 may randomize data to be stored in one of the nonvolatile memory devices 400a to 400k. For example, the randomizer 340 may randomize data to be stored in one of the nonvolatile memory devices 400a to 400k in units of word lines.

예를 들어, 랜더마이저(340)는 페이지 데이터를 랜더마이징할 수 있다. 예시적으로, 간결한 설명을 위하여 이상적인(ideal) 랜더마이저(340)의 구성이 설명되었다. 그러나, 본 발명의 기술적 사상이 이에 한정되는 것은 아니며, 실제 랜더마이저(340)는 하나의 워드라인에 연결된 메모리 셀들 중 소거 상태 및 제 1 내지 제7 프로그램 상태들 각각을 갖는 메모리 셀들의 개수가 실질적으로 서로 동일한 값에 가깝도록 데이터를 랜더마이징할수 있다. 즉, 실제 랜더마이징된 데이터(randomized data)가 저장된 메모리 셀들은 실질적으로 서로 비슷한 개수의 프로그램 상태들을 가질 수 있다.For example, the randomizer 340 may randomize page data. By way of example, the configuration of an ideal randomizer 340 has been described for concise description. However, the technical idea of the present invention is not limited thereto, and the randomizer 340 actually determines the number of memory cells having an erase state and each of the first to seventh program states among memory cells connected to one word line. You can randomize the data so that they are close to the same value. That is, memory cells storing randomized data may have substantially similar numbers of program states.

내부 버퍼(380)는 제1 단위의 데이터를 저장할 수 있는 데이터 저장 용량을 가질 수 있다. 제1 단위의 데이터는 비휘발성 메모리 장치들(400a~400k) 각각의 제1 메모리 영역과 제2 메모리 영역의 페이지 단위에 해당할 수 있다. 내부 버퍼(380)가 페이지 단위의 데이터를 저장할 수 있는 데이터 저장 용량을 가지므로, 내부 버퍼(380)의 크기를 감소시켜, 스토리지 컨트롤러(300)의 점유 면적을 감소시킬 수 있다.The internal buffer 380 may have a data storage capacity capable of storing the first unit of data. The data of the first unit may correspond to a page unit of the first memory area and the second memory area of each of the nonvolatile memory devices 400a to 400k. Since the internal buffer 380 has a data storage capacity capable of storing data in units of pages, the area occupied by the storage controller 300 may be reduced by reducing the size of the internal buffer 380 .

스토리지 컨트롤러(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 storage controller 300 may communicate with the host 100 through the host interface 350 . For example, the host interface 350 may include universal serial bus (USB), multimedia card (MMC), peripheral component interconnection (PCI), PCI-express (PCI-E), advanced technology attachment (ATA), 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), etc. At least one of the same various interfaces may be provided.

스토리지 컨트롤러(300)는 메모리 인터페이스(370)를 통해 비휘발성 메모리 장치들(400a~400k)과 통신할 수 있다.The storage controller 300 may communicate with the non-volatile memory devices 400a to 400k through the memory interface 370 .

도 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 storage system 200a includes the storage controller 300 and the nonvolatile memory device 400a.

도 4a를 참조하면, 스토리지 컨트롤러(300)는 제1 동작 전압(VOP1)을 기반으로 동작한다.Referring to FIG. 4A , the storage controller 300 operates based on the first operating voltage VOP1.

비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 소거, 기입, 독출 동작 등을 수행할 수 있다. 이를 위하여, 비휘발성 메모리 장치(400a)는 입출력 라인을 통해 커맨드(CMD) 및 어드레스(ADDR)를 입력받고 버퍼 메모리(250)를 통하여 데이터(DTA)를 입력받는다. 또한, 비휘발성 메모리 장치(400a)는 제어 라인을 통하여 제어 신호(CTRL)를 제공받을 수 있고 파워 라인을 통해 파워(PWR1)를 제공받을 수 있다. 또한, 비휘발성 메모리 장치(400a)는 제어 라인을 통하여 상태 신호(RnB)를 스토리지 컨트롤러(300)에 제공할 수 있다. 또한, 비휘발성 메모리 장치(400a)는 버퍼 메모리(250)를 이용하여 데이터(DTA)를 스토리지 컨트롤러(300)에 제공할 수 있다.The nonvolatile memory device 400a may perform erase, write, and read operations under the control of the storage controller 300 . To this end, the nonvolatile memory device 400a receives a command CMD and an address ADDR through an input/output line and receives data DTA through a buffer memory 250 . In addition, the nonvolatile memory device 400a may receive a control signal CTRL through a control line and may receive power PWR1 through a power line. In addition, the nonvolatile memory device 400a may provide a status signal RnB to the storage controller 300 through a control line. Also, the nonvolatile memory device 400a may provide data DTA to the storage controller 300 using the buffer memory 250 .

비휘발성 메모리 장치(400a)는 제1 메모리 영역(MRG1, 421) 및 제2 메모리 영역(MRG2, 423)을 포함할 수 있다.The nonvolatile memory device 400a may include a first memory area MRG1 and 421 and a second memory area MRG2 and 423 .

제1 메모리 영역(421)은 제1 기입 속도를 가질 수 있고, 제2 메모리 영역(423)는 제1 기입 속도와는 다르고, 제1 기입 속도보다 빠른 제2 기입 속도를 가질 수 있다. 제1 메모리 영역(421)의 제1 메모리 셀들 각각에는 N-비트 데이터(N은 자연수)가 저장되고, 제2 메모리 영역(423)의 제2 메모리 셀들 각각에는 M-비트 데이터(M은 N보다 큰 자연수)가 저장될 수 있다.The first memory area 421 may have a first write speed, and the second memory area 423 may have a second write speed different from the first write speed and faster than the first write speed. N-bit data (N is a natural number) is stored in each of the first memory cells of the first memory area 421, and M-bit data (M is less than N) is stored in each of the second memory cells of the second memory area 423. large natural numbers) can be stored.

실시예에 있어서, 제1 메모리 영역(421)은 SLC(single level cell) 영역이고, 제2 메모리 영역(423)은 TLC(triple level cell) 영역일 수 있다. In an embodiment, the first memory area 421 may be a single level cell (SLC) area, and the second memory area 423 may be a triple level cell (TLC) area.

스토리지 컨트롤러(300)는 프로세서(310), ECC 엔진(320), 프로그램/마이그레이션 매니저(331) 및 내부 버퍼(380)를 포함할 수 있다.The storage controller 300 may include a processor 310 , an ECC engine 320 , a program/migration manager 331 and an internal buffer 380 .

ECC 엔진(320)은 제1 메모리 영역(421) 및 제2 메모리 영역(423) 중 하나에 프로그램될 데이터에 대하여 ECC 인코딩을 수행하고, 제1 메모리 영역(421) 및 제2 메모리 영역(423) 중 하나에서 독출된 데이터에 대하여 ECC 디코딩을 수행할 수 있다.The ECC engine 320 performs ECC encoding on data to be programmed into one of the first memory area 421 and the second memory area 423, and performs ECC encoding on the first memory area 421 and the second memory area 423. ECC decoding may be performed on data read from one of the

프로그램/마이그레이션 매니저(331)는 프로세서(310)의 제어에 따라 제1 메모리 영역(421)의 데이터를 저장할 수 있는 유효 영역의 크기가 제1 데이터의 크기보다 작은 경우, 상기 제1 메모리 영역에 기저장된 제2 데이터를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 독출하고, 상기 독출된 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 상기 비휘발성 메모리 장치(400a)의 데이터 입출력 회로에 제공하는 독출-정정-전달 동작을 복수의 횟수만큼 수행하고, 상기 데이터 입출력 회로에 제공된 상기 제2 데이터가 상기 제2 메모리 영역(423)에 저장되도록 프로그램 동작과 데이터 마이그레이션 동작을 제어할 수 있다.The program/migration manager 331, under the control of the processor 310, when the size of an effective area in which data of the first memory area 421 can be stored is smaller than the size of the first data, the program/migration manager 331 stores the data in the first memory area 421 as a base. The stored second data is read as much as the first unit corresponding to the data storage capacity of the internal buffer 380, the error of the read first unit data is corrected, and the error-corrected first unit data is read at the ratio. Program to perform a read-correction-transfer operation provided to the data input/output circuit of the volatile memory device 400a a plurality of times, and store the second data provided to the data input/output circuit in the second memory area 423 You can control the operation and data migration behavior.

제1 메모리 영역(421)은 SLC(single level cell) 영역이고, 제2 메모리 영역(423)은 TLC(triple level cell) 영역인 경우, 상기 독출-정정-전달 동작은 3회 수행될 수 있다. If the first memory area 421 is a single level cell (SLC) area and the second memory area 423 is a triple level cell (TLC) area, the read-correction-transfer operation may be performed three times.

프로세서(310)는 제1 데이터를 비휘발성 메모리 장치(400a)에 프로그램하는 경우, 제1 데이터와 관련된 기입 모드를 제1 데이터를 제1 메모리 영역(421)에 우선적으로 저장하는 제1 모드 및 제1 데이터를 제2 메모리 영역(423)에 저장하는 제2 모드 중 하나로 결정할 수 있다. When the processor 310 programs the first data into the non-volatile memory device 400a, the first mode for preferentially storing the first data in the first memory area 421 and the first mode related to the first data are stored in the first memory area 421. One of the second modes for storing 1 data in the second memory area 423 may be determined.

도 4b를 참조하면, 프로세서(310)는 제1 데이터와 관련된 기입 리퀘스트에 기초하여 상기 기입 모드를 제1 모드 및 제2 모드 중 하나로 결정할 수 있다. 프로세서(310)는 유휴 시간을 기초로 호스트(100)로부터이 기입 리퀘스트(REQ)에 대한 연속성을 판단하고, 상기 판단 결과에 따라서 기입 모드를 상기 제1 모드와 상기 제2 모드 중 하나로 결정할 수 있다. 상기 유휴 시간은 상기 기입 리퀘스트 이전에 수신된 기입 리퀘스트 사이의 유휴 시간을 나타낼 수 있다. 예시적으로, 유휴 시간은 스토리지 장치(200a)의 유휴 상태가 지속되는 시간을 가리키고, 유휴 상태는 스토리지 장치(200a)가 동작하지 않거나 또는 호스트(100)로부터의 리퀘스트가 없는 상태를 나타낸다. 즉, 상술된 제1 기입 리퀘스트 및 제2 기입 리퀘스트 사이의 유휴 시간은 제1 기입 리퀘스트에 대한 동작이 완료된 시점으로부터 제2 기입 리퀘스트가 수신된 시점까지의 시간을 가리킬 수 있다.Referring to FIG. 4B , the processor 310 may determine the write mode as one of a first mode and a second mode based on a write request related to first data. The processor 310 may determine continuity of the write request REQ from the host 100 based on the idle time, and determine the write mode as one of the first mode and the second mode according to the determination result. The idle time may indicate an idle time between write requests received before the write request. Exemplarily, the idle time indicates the duration of the idle state of the storage device 200a, and the idle state indicates a state in which the storage device 200a is not operating or there is no request from the host 100. That is, the aforementioned idle time between the first write request and the second write request may refer to a time from when the operation for the first write request is completed to when the second write request is received.

프로세서(310)는 유휴 시간 및 기준 시간(RT)을 비교하고, 상기 유휴 시간이 상기 기준 시간 미만인 경우, 상기 기입 커맨드가 연속인 것으로 판단하고, 상기 유휴 시간이 상기 기준 시간 이상인 경우, 상기 기입 커맨드가 불연속인 것으로 판단하고, 제1 모드와 제2 모드를 지시하는 모드 신호(MS)를 프로그램/마이그레이션 매니저(331)에 제공할 수 있다.The processor 310 compares the idle time and a reference time (RT), determines that the write command is continuous when the idle time is less than the reference time, and determines that the write command is continuous when the idle time is greater than or equal to the reference time. It may be determined that is discontinuous, and a mode signal MS indicating the first mode and the second mode may be provided to the program/migration manager 331 .

프로세서(310)는 상기 기입 리퀘스트가 연속인 것으로 판단된 경우, 상기 제1 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하고, 상기 기입 리퀘스트가 불연속인 것으로 판단된 경우, 상기 제2 모드를 기반으로 상기 기입 리퀘스트에 대한 기입 동작을 수행하는 상기 제2 모드를 기반으로 상기 기입 커맨드에 대한 기입 동작을 수행할 수 있다.When it is determined that the write request is continuous, the processor 310 performs a write operation for the write request based on the first mode, and when it is determined that the write request is discontinuous, the processor 310 executes the second mode. A write operation for the write command may be performed based on the second mode of performing the write operation for the write request based on

실시예에 있어서, 프로세서(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 processor 310 may determine the write mode as one of the first mode and the second mode based on the size of the first data DTA. The processor 310 stores the first data in the first memory area 421 in response to the size of the first data DTA being greater than or equal to the reference size RSZ, and the size of the first data DTA is equal to or greater than the reference size RSZ. In response to being less than (RSZ), the first data may be stored in the second memory area 423 . The processor 310 compares the first data DTA and the reference size RSZ, and transmits a mode signal MS designating one of the first mode and the second mode to the program/migration manager 331 according to the result of the comparison. can be provided to

실시예에 있어서, 프로세서(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 processor 310 selects the write mode based on state information SINF of the first memory area 421 and the second memory area 423 provided from the program/migration manager 331. One of the first mode and the second mode may be determined. The state information includes program/erase cycle information of the first memory area 421 and the second memory area 423, the number and number of free blocks in the first memory area 421 and the second memory area 423, and It may include at least one of data retention time information of the first memory area 421 and the second memory area 423 . The processor 310 may provide a mode signal MS designating one of the first mode and the second mode to the program/migration manager 331 based on the state information SINF.

도 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 nonvolatile memory device 400a may perform first to third write operations WR1 , WR2 , and WR3 under the control of the storage controller 300 . The first to third write operations WR1 , WR2 , and WR3 may correspond to each of the write requests REQ1 , REQ2 , and REQ3 from the host 100 .

비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 제1 기입 동작(WR1)을 수행할 수 있다. 제1 기입 동작(WR1)은 제2 모드에서 수행될 수 있다. 비휘발성 메모리 장치(400a)는 스토리지 컨트롤러(300)의 제어에 따라 데이터를 제2 메모리 영역(423)에 프로그램할 수 있다.The nonvolatile memory device 400a may perform a first write operation WR1 under the control of the storage controller 300 . The first write operation WR1 may be performed in the second mode. The nonvolatile memory device 400a may program data into the second memory area 423 under the control of the storage controller 300 .

제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 nonvolatile memory device 400a may perform the second write operation WR2 under the control of the storage controller 300 . can The processor 310 sets the first idle time t1 from the time when the first write operation WR1 is completed to the time when the write request REQ2 is received (or the time when the second write operation starts) as the reference time (RT). ) can be compared with Since the first idle time t1 is greater than the reference time RT, the processor 310 determines that the write request REQ2 is discontinuous with the write request REQ1. Accordingly, the nonvolatile memory device 400a may perform the second write operation WR2 in the second mode under the control of the storage controller 300 .

제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 nonvolatile memory device 400a performs the third write operation WR3 under the control of the storage controller 300 . can The processor 310 sets the third idle time t3 from the time when the third write operation WR3 is completed to the time when the write request REQ3 is received (or the time when the third write operation starts) as the reference time (RT). ) can be compared with Since the second idle time t2 is shorter than the reference time RT, the processor 310 determines that the write request REQ3 and the write request REQ2 are discontinuous. Accordingly, the nonvolatile memory device 400a may perform the third write operation WR3 in the first mode under the control of the storage controller 300 .

도 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 nonvolatile memory device 400a includes a memory cell array 420, an address decoder 450, a page buffer circuit 430, a data input/output circuit 440, a control circuit 460, and a voltage generator ( 470) may be included.

메모리 셀 어레이(420)는 스트링 선택 라인(SSL), 복수의 워드라인들(WLs) 및 접지 선택 라인(GSL)을 통해 어드레스 디코더(450)와 연결될 수 있다. 또한, 메모리 셀 어레이(420)는 복수의 비트라인들(BLs)을 통해 페이지 버퍼 회로(430)와 연결될 수 있다. 메모리 셀 어레이(420)는 복수의 워드라인들(WLs) 및 복수의 비트라인들(BLs)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(420)는 제1 메모리 영역(421) 및 제2 메모리 영역(423)을 포함할 수 있다.The memory cell array 420 may be connected to the address decoder 450 through a string select line SSL, a plurality of word lines WLs, and a ground select line GSL. Also, the memory cell array 420 may be connected to the page buffer circuit 430 through a plurality of bit lines BLs. The memory cell array 420 may include a plurality of memory cells connected to a plurality of word lines WLs and a plurality of bit lines BLs. The memory cell array 420 may include a first memory area 421 and a second memory area 423 .

일 실시예에 있어서, 메모리 셀 어레이(420)는 기판 상에 삼차원 구조(또는 수직 구조)로 형성되는 삼차원(three dimensional) 메모리 셀 어레이일 수 있다. 이 경우, 메모리 셀 어레이(420)는 서로 적층되어 형성되는 복수의 메모리 셀들을 포함하는 복수의 낸드 스트링들을 포함할 수 있다. In one embodiment, the memory cell array 420 may be a three-dimensional memory cell array formed in a three-dimensional structure (or vertical structure) on a substrate. In this case, the memory cell array 420 may include a plurality of NAND strings including a plurality of memory cells formed by being stacked on each other.

도 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 memory cell array 420 includes a plurality of memory blocks BLK1 to BLKz. The plurality of memory blocks BLK1 to BLKz extend along the first horizontal direction HD1 , the second horizontal direction HD2 , and the vertical direction VD. In an embodiment, the memory blocks BLK1 to BLKz are selected by the address decoder 450 shown in FIG. 5 . For example, the address decoder 450 may select a memory block BLK corresponding to a block address from among the memory blocks BLK1 to BLKz.

도 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 , reference numeral 511 denotes a distribution of threshold voltages of first memory cells of the first memory area 421 including an erase state (E) and a first program state (P11), and reference numeral 513 is The threshold voltage distribution of the first memory cells of the second memory area 423 including the erase state E and the first to seventh program states P1 to P7 is shown.

도 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 memory cell array 420a may include a first memory area 421a and a second memory area 423a. The first memory area 421a may include a plurality of SLC blocks (SLC_BLK1 to TLC_BLKj, where j is a natural number greater than or equal to 2), and the second memory area 423a may include a plurality of TLC blocks (TLC_BLK1 to TLC_BLKj). there is.

도 11을 참조하면, 메모리 셀 어레이(420a)는 복수의 블록들(425)를 포함할 수 있고, 필요에 따라 각 블록을 SLC 블록 또는 TLC 블록으로 사용할 수 있다.Referring to FIG. 11 , the memory cell array 420a may include a plurality of blocks 425, and each block may be used as an SLC block or a TLC block as needed.

도 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 storage device 200a performs a write operation in the first mode, the storage controller 300 designates the write mode as the first mode in response to the request REQ, and the ECC engine 320 ) performs ECC encoding on the write data DTA to generate parity data PRT, and the program/migration manager 331 converts the write data DTA and the parity data PRT as indicated by reference numeral 521. is stored in the first memory area 421 of the non-volatile memory device 400a.

도 13을 참조하면, 스토리지 장치(200a)가 제2 모드에서 기입 동작을 수행하는 경우, 스토리지 컨트롤러(300)는 리퀘스트(REQ)에 응답하여 기입 모드를 제2 모드로 지정하고, ECC 엔진(320)는 기입 데이터(DTA)에 ECC 인코딩을 수행하여 패리티 데이터(PRT)를 생성하고, 프로그램/마이그레이션 매니저(331)는 참조 번호(521)가 나타내는 바와 같이 기입 데이터(DTA)와 패리티 데이터(PRT)를 비휘발성 메모리 장치(400a)의 제2 메모리 영역(423)에 저장한다. Referring to FIG. 13 , when the storage device 200a performs a write operation in the second mode, the storage controller 300 designates the write mode as the second mode in response to the request REQ, and the ECC engine 320 ) performs ECC encoding on the write data DTA to generate parity data PRT, and the program/migration manager 331 converts the write data DTA and the parity data PRT as indicated by reference numeral 521. is stored in the second memory area 423 of the non-volatile memory device 400a.

도 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 storage controller 300 designates the write mode as the first mode in response to the request REQ and stores the first data DTA1 in the first memory area 421 in the first mode. When attempting to perform a write operation, when the size of an effective area capable of storing data in the first memory area 421 is smaller than the size of the first data DTA, a write operation is performed under the control of the program/migration manager 331. The volatile memory device 400a reads the second data DTA2 previously stored in the first memory area 421 by the first unit corresponding to the data storage capacity of the internal buffer 380 and provides the read data to the internal buffer 380. (531). Here, the data of the first unit may include partial user data and partial parity data corresponding to portions of the second data DTA2.

내부 버퍼(380)는 제1 단위의 데이터를 ECC 엔진(320)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 ECC 디코딩을 수행하여 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 내부 버퍼(380)에 제공할 수 있다(533). The internal buffer 380 provides data of the first unit to the ECC engine 320, and the ECC engine 320 performs ECC decoding on the data of the first unit to correct errors in the data of the first unit, and The corrected data of the first unit may be provided to the internal buffer 380 (533).

내부 버퍼(380)는 에러가 정정된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공하면서(535), 제1 메모리 영역(421)으로부터 독출된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)로부터 수신한다(541).The internal buffer 380 provides the error-corrected data of the first unit to the data input/output circuit 440 of the non-volatile memory device 400a (535), and the first unit read from the first memory area 421 Data of is received from the non-volatile memory device 400a (541).

내부 버퍼(380)는 제1 단위의 데이터를 ECC 엔진(320)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 ECC 디코딩을 수행하여 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 내부 버퍼(380)에 제공할 수 있다(543). The internal buffer 380 provides data of the first unit to the ECC engine 320, and the ECC engine 320 performs ECC decoding on the data of the first unit to correct errors in the data of the first unit, and The corrected data of the first unit may be provided to the internal buffer 380 (543).

내부 버퍼(380)는 에러가 정정된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공하면서(545), 제1 메모리 영역(421)으로부터 독출된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)로부터 수신한다(551). The internal buffer 380 provides the error-corrected data of the first unit to the data input/output circuit 440 of the non-volatile memory device 400a (545), and the first unit read from the first memory area 421 Data of is received from the non-volatile memory device 400a (551).

내부 버퍼(380)는 제1 단위의 데이터를 ECC 엔진(320)에 제공하고, ECC 엔진(320)은 제1 단위의 데이터에 ECC 디코딩을 수행하여 제1 단위의 데이터의 에러를 정정하고, 에러가 정정된 제1 단위의 데이터를 내부 버퍼(380)에 제공할 수 있다(553). The internal buffer 380 provides data of the first unit to the ECC engine 320, and the ECC engine 320 performs ECC decoding on the data of the first unit to correct errors in the data of the first unit, and The corrected data of the first unit may be provided to the internal buffer 380 (553).

내부 버퍼(380)는 에러가 정정된 제1 단위의 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공하고(555), 페이지 버퍼 회로(420)는 제2 데이터(DTA2)를 제2 메모리 영역(423)에 저장하여(560) 데이터 마이그레이션 동작을 완료할 수 있다.The internal buffer 380 provides the error-corrected data of the first unit to the data input/output circuit 440 of the non-volatile memory device 400a (555), and the page buffer circuit 420 provides the second data DTA2 may be stored in the second memory area 423 (560) to complete the data migration operation.

도 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 sections 531, 541, and 551 in which a read operation is performed in the first to third sections INT1, INT2, and INT3, and sections in which a program in the fourth section INT4 is performed. Indicates a busy state as a low level in .

도 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 second area 423 of FIG. 14 is a quadruple level cell (QLC) area, and the size of an effective area capable of storing data in the first memory area 421 is the size of the first data DTA. Assume a smaller case.

도 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 first memory area 421 is read as much as the first unit (SLC read) The data is provided to the internal buffer 380, the ECC engine 320 performs ECC decoding on the data of the first unit, and the internal buffer 380 transmits the error-corrected data of the first unit to the data input/output circuit 440. input, and in the fifth period INT25, the page buffer circuit 420 may store the second data DTA2 in the second memory area 423 (QLC PGM) to complete the data migration operation.

즉 본 발명의 실시예는 제2 영역(423)의 메모리 셀들이 QLC이거나 QLC 보다 데이터 비트들을 저장하는 경우에도 적용될 수 있다.That is, the embodiment of the present invention may be applied even when the memory cells of the second region 423 are QLC or store data bits rather than QLC.

도 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 memory cell array 420c may be referred to as a physical storage space of the nonvolatile memory device 400a. The physical storage space may indicate a physical area in which actual user data is stored in the non-volatile memory device 400a. That is, the physical storage space may be a space that can be identified by the host 100 as the capacity of the storage device 200a.

도 16을 참조하면, 메모리 셀 어레이(420c)는 터보 라이트 버퍼 영역(TWB)(Turbo Write Buffer area)(이하에서, 설명의 편의를 위하여, "터보 라이트 버퍼"라 칭함.) 및 사용자 스토리지 영역(UST)(User Storage area)(이하에서, 설명의 편의를 위하여, "사용자 스토리지(User Storage)"라 칭함.)을 포함할 수 있다.Referring to FIG. 16 , the memory cell array 420c includes a turbo write buffer area (TWB) (hereinafter referred to as a “turbo write buffer” for convenience of explanation) and a user storage area ( UST) (User Storage area) (hereinafter, for convenience of description, referred to as “User Storage”).

터보 라이브 버퍼(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 non-volatile memory device 400a of the storage device 200 . The user storage UST corresponds to the remaining part (b) of the physical storage space of the non-volatile memory device 400a of the storage device 200 or all (a) of the physical storage space PS of the non-volatile memory device 400a. +b) can be matched.

예시적인 실시 예에서, 터보 라이트 버퍼(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 storage device 200a may support normal write and turbo write functions. When the turbo write function is activated by the host 100, the storage device 1200 may perform a turbo write operation. When the turbo write function is disabled by the host 100, the storage device 200a may perform a normal write operation.

예를 들어, 터보 라이트 기능이 활성화된 경우, 스토리지 장치(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 storage device 200a may first write write data received from the host 100 into the turbo write buffer TWB. In this case, since the write data received from the host 100 is written (eg, SLC program) to the turbo write buffer (TWB), a normal write operation (eg, TLC program) for the user storage (UST) is performed. A higher operating speed than when this is performed can be guaranteed. When the turbo write function is deactivated, the storage device 200 may not first write write data into the turbo write buffer TWB. The storage device 1200 may directly write write data into the user storage UST or into the turbo write buffer TWB according to an internally determined policy (eg, normal write policy). How to write write data may be determined by reflecting various factors such as data occupancy of the turbo write buffer (TWB) and state of the physical storage space (PS) according to the normal light policy.

예시적인 실시 예에서, 터보 라이트 버퍼(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 storage device 200a may include first to fourth logical units LU1 to LU4. Each of the first to fourth logical units LU1 to LU4 may indicate an externally manageable and independent processing object that processes a command from the host 100 . The host 100 may manage the storage space of the storage device 200a through the first to fourth logical units LU1 to LU4. Each of the first to fourth logical units LU1 to LU4 may be used to store user data in the storage device 200 .

제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 nonvolatile memory device 400a. Although there are various types of logical units used for various purposes, it is assumed here that the first to fourth logical units LU1 to LU4 correspond to physical storage spaces and are used to store data of the host 100. do.

비록 도 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 storage device 200a may further include other logical units for storing and managing user data in addition to the first to fourth logical units LU1 to LU4. Alternatively, the storage device 200 may further include other logical units for supporting various functions in addition to the first to fourth logical units LU1 to LU4 .

본 발명의 실시 예에 따른 스토리지 장치(200a)의 터보 라이트 버퍼(TWB)는 다양한 타입들(types)로 구성될 수 있다. 터보 라이트 버퍼(TWB)는 논리 유닛 전용 버퍼 타입(LU dedicated buffer type) 및 공유 버퍼 타입(shared buffer type) 중 어느 하나의 타입으로 구성될 수 있다.The turbo write buffer TWB of the storage device 200a according to an embodiment of the present invention may be composed of various types. The turbo write buffer (TWB) may be configured in any one of a LU dedicated buffer type and a shared buffer type.

논리 유닛 전용 버퍼 타입(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 storage device 200a according to an embodiment of the present invention may include a turbo write buffer (TWB) for supporting a turbo write function. The turbo write buffer (TWB) may be independently configured for each of a plurality of logical units, or all of the plurality of logical units, depending on the buffer type (eg, a buffer type dedicated to a logical unit or a shared buffer type). It can be configured as one for .

도 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 storage system 50 is described with reference to FIGS. 1 and 19 .

S21 단계에서, 호스트(100)는 커맨드(WR CMD)를 포함하는 커맨드 UPIU(Universal Flash Storage Protocol Information Unit)을 스토리지 장치(200a)로 전송할 수 있다.In step S21 , the host 100 may transmit a universal flash storage protocol information unit (UPIU) command including the command WR CMD to the storage device 200a.

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 host 100 and the storage device 200 may perform a data transaction. For example, the storage device 200 may transmit an RTT UPIU (Ready to Transfer UPIU) to the host 100 . The RTT UPIU may include information about a range of data that the storage device 200 can receive. The host 100 may transmit a DATA OUT UPIU including write data to the storage device 200 in response to the RTT UPIU. By repeatedly performing the above-described operation, write data may be transmitted from the host 100 to the storage device 200 .

모든 기입 데이터의 수신이 완료된 이후에, S13 단계에서, 스토리지 장치(200)는 RESPONSE UPIU를 호스트(100)로 전송할 수 있다. RESPONSE UPIU는 S21 단계에서 수신된 기입 커맨드에 대한 동작이 완료되었음을 가리키는 정보를 포함할 수 있다.After all write data is completely received, the storage device 200 may transmit a RESPONSE UPIU to the host 100 in step S13 . The RESPONSE UPIU may include information indicating that the operation for the write command received in step S21 has been completed.

실시 예에 있어서, 스토리지 장치(200)는 S22 단계 동안 수신된 기입 데이터에 대하여 노멀 기입 동작을 수행할 수 있다. 예를 들어, S21 단계에서, 스토리지 장치(200)는 터보 라이트 기능이 활성화되었는지 판별할 수 있다. 좀 더 상세한 예로서, 스토리지 장치(200)는 플래그의 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값을 확인함으로써, 터보 라이트 기능이 활성화되었는지 판별할 수 있다. 플래그의 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값이 "0b"인 경우, 터보 라이트 기능이 활성화되지 않은 상태일 수 있고, 값이 "1b"인 경우, 터보 라이트 기능이 활성화된 상태일 수 있다. 실시 예에 있어서, 플래그의 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값은 호스트(1100)의 셋 플래그를 위한 쿼리 요청에 의해 설정될 수 있다.In an embodiment, the storage device 200 may perform a normal write operation on the write data received during step S22. For example, in step S21 , the storage device 200 may determine whether the turbo light function is activated. As a more detailed example, the storage device 200 may determine whether the turbo write function is activated by checking the value of the turbo light enable field (eg, “fTurboWriteEn”) of the flag. If the value of the turbo light activation field (eg, "fTurboWriteEn") of the flag is "0b", the turbo light function may not be activated, and if the value is "1b", the turbo light function is activated. may be in a state In an embodiment, the value of the turbo light activation field (eg, “fTurboWriteEn”) of the flag may be set by the host 1100 requesting a query for the set flag.

호스트(100)로부터 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")[0102] 의 값이 설정되지 않을 수 있다. 이 경우, S22 단계에서 수신된 기입 데이터는 사용자 스토리지(UST)에 기입(즉, 노멀 기입)될 수 있다.The value of the turbo light activation field (eg, “fTurboWriteEn”) [0102] from the host 100 may not be set. In this case, the write data received in step S22 may be written (ie, normal write) to the user storage UST.

S30 단계에서, 호스트(100)는 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값을 특정 값(예를 들어, "1b")으로 설정할 수 있다. 예를 들어, 호스트(1100)는 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값을 특정 값(예를 들어, "1b")으로 설정하기 위한 쿼리 요청을 스토리지 장치(200)로 전송할 수 있다. 호스트(100)로부터의 쿼리 요청에 응답하여 터보 라이트 활성화 필드(예를 들어, "fTurboWriteEn")의 값이 특정 값(예를 들어, "1b")으로 설정되고, 스토리지 장치(200)는 쿼리 응답을 호스트(100)로 전송할 수 있다.In step S30, the host 100 may set the value of the turbo light activation field (eg, “fTurboWriteEn”) to a specific value (eg, “1b”). For example, the host 1100 transmits a query request for setting the value of a turbo light activation field (eg, “fTurboWriteEn”) to a specific value (eg, “1b”) to the storage device 200 . can In response to a query request from the host 100, the value of the turbo light activation field (eg, “fTurboWriteEn”) is set to a specific value (eg, “1b”), and the storage device 200 responds to the query. may be transmitted to the host 100.

이후에, S31 단계에서, 호스트(100)는 S31 단계 내지 S33 단계의 동작들을 수행할 수 있다. S31 단계 내지 S33단계의 동작들은 S21 단계 내지 S23 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.Thereafter, in step S31, the host 100 may perform operations of steps S31 to S33. Since the operations of steps S31 to S33 are similar to those of steps S21 to S23, a detailed description thereof will be omitted.

실시 예에 있어서, 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 host 100 may be first written into the turbo write buffer TWB. For example, in step S31, data received from the host 100 is stored in a fixed turbo light buffer (TWB-p) or a non-fixed turbo light buffer (TWB-np) according to a specific factor value of the command UPIU. It can be. A specific configuration of the turbo light buffer, which is divided into a fixed turbo light buffer (TWB-p) and a non-fixed turbo light buffer (TWB-np), will be described in detail with reference to FIG. 20 .

실시 예에 있어서, 터보 라이트 기능이 활성화된 상태이더라도, 터보 라이트 버퍼(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 storage device 200 may write the received write data into the user storage UST. In an embodiment, when the space of the turbo write buffer (TWB) is insufficient even when the turbo write function is activated, the storage device 200 performs a data migration operation using the internal buffer 380 of the storage controller. Write data received later may be written into the turbo write buffer TWB.

도 20은 도 1의 스토리지 장치(200)의 물리적 저장 공간을 예시적으로 보여주는 블록도이다. FIG. 20 is a block diagram showing a physical storage space of the storage device 200 of FIG. 1 as an example.

도 1 및 도 20을 참조하면, 스토리지 장치(200)의 물리적 저장 공간인 메모리 셀 어레이(420d)는 터보 라이트 버퍼(TWB) 및 사용자 스토리지(UST)를 포함할 수 있다. 스토리지 장치(200)의 물리적 저장 공간(PS), 터보 라이트 버퍼(TWB), 및 사용자 스토리지(UST)는 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.Referring to FIGS. 1 and 20 , a memory cell array 420d that is a physical storage space of the storage device 200 may include a turbo write buffer TWB and a user storage UST. Since the physical storage space PS, the turbo write buffer TWB, and the user storage UST of the storage device 200 have been described above, a detailed description thereof will be omitted.

터보 라이트 버퍼(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 storage device 200 is activated, write data is stored in either a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np. can be stored

고정된 터보 라이트 버퍼(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 host 100 or an internal policy of the storage device 200 . At this time, the ratio of the fixed turbo light buffer (TWB-p) and the non-fixed turbo light buffer (TWB-np) included in the turbo light buffer (TWB) can be determined in various ways (eg, internal policy, host It can be determined or changed by a change in internal policy according to a request, an explicit request from the host, etc.).

예시적인 실시 예에서, 고정된 터보 라이트 버퍼(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 host 100, an internal policy of the storage device 200, or a change of internal policy according to a request of the host. User data may be moved between the write buffers TWB-np.

또는 호스트(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 host 100, an internal policy of the storage device 200, or a change in internal policy according to a request of the host. User data can be moved in Alternatively, between the fixed turbo light buffer (TWB-p) and the user storage (UST) according to an explicit request of the host 100, an internal policy of the storage device 200, or a change of internal policy according to a request of the host. User data may move.

예시적인 실시 예에서, 스토리지 장치(200)는 유휴 상태 동안 또는 하이버네이션 상태 동안 플러쉬 동작을 수행할 수 있다. 이 때, 스토리지 장치(200)는 터보 라이트 버퍼(TWB) 중 비고정된 터보 라이트 버퍼(TWB-np)에 대한 플러쉬 동작을 수행할 수 있다. 즉, 스토리지 장치(200)는 터보 라이트 버퍼(TWB) 중 비고정된 터보 라이트 버퍼(TWB-np)에 저장된 사용자 데이터를 사용자 스토리지(UST)로 플러쉬할 수 있다. In an example embodiment, the storage device 200 may perform a flush operation during an idle state or a hibernation state. At this time, the storage device 200 may perform a flush operation on the non-fixed turbo write buffer TWB-np among the turbo write buffers TWB. That is, the storage device 200 may flush user data stored in the non-fixed turbo write buffer TWB-np of the turbo write buffer TWB to the user storage UST.

예시적인 실시예에서, 스토리지 장치(200)는 기입 동작의 수행 시에 비고정된 터보 라이트 버퍼(TWB-np)의 데이터를 저장할 수 있는 유효 영역의 크기가 기입되는 데이터의 크기보다 작은 경우, 내부 버퍼(480)를 이용하여 상술한 독출-정정-전달 동작을 복수의 횟수만큼 수행하여, 터보 라이트 버퍼(TWB-np)에 기저장된 데이터를 사용자 스토리지(UST)에 마이그레이션할 수 있다. In an exemplary embodiment, the storage device 200 may perform a write operation when the size of an effective area capable of storing data of the non-fixed turbo write buffer TWB-np is smaller than the size of data to be written. Data pre-stored in the turbo write buffer TWB-np may be migrated to the user storage UST by performing the above-described read-correction-transfer operation a plurality of times using the buffer 480 .

이 때, 고정된 터보 라이트 버퍼(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 storage device 200 performs a flush operation, the user data written in the fixed turbo write buffer TWB-p will be maintained.

다른 예로서, 스토리지 장치(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 storage device 200 . These exceptional data can be flushed from the fixed turbo write buffer (TWB-p) to the user storage (UTS). Accordingly, when the host 100 issues a read command for the first user data written in the fixed turbo write buffer TWB-p, the first user data is read from the fixed turbo write buffer TWB-p. It will be. In this case, high-speed reading of the first user data may be possible.

예를 들어, 앞서 설명된 바와 같이, 고정된 터보 라이트 버퍼(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 storage device 200 of FIG. 1 or the storage device 400a of FIG. 4 is a UFS device.

도 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 first memory area 421 having a first write speed and a second memory area 423 having a second write speed different from the second write speed. A method of operating a storage device 200a including a nonvolatile memory device 400a and a storage controller 300 controlling the nonvolatile memory device 400a is provided.

상기 방법에 의하면, 스토리지 컨트롤러(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 storage controller 200 receives first data from the external host 100 (S110). The storage controller 200 programs the first data into the first memory area 421 in the first mode (S120). The storage controller 200 determines whether the first memory area 421 is full (S130). That is, the storage controller 200 determines whether the size of an effective area for storing data in the first memory area 421 is smaller than the size of the first data.

제1 메모리 영역(421)이 풀이 아닌 경우(S130에서 NO), 스토리지 컨트롤러(200)는 제1 데이터를 제1 메모리 영역(421)에 프로그램한다(S120).If the first memory area 421 is not full (NO in S130), the storage controller 200 programs the first data into the first memory area 421 (S120).

제1 메모리 영역(421)이 풀인 경우(S130에서 YES), 스토리지 컨트롤러(200)는 제1 메모리 영역(에 기저장된 제2 데이터를 내부 버퍼(380)의 데이터 저장 용량에 해당하는 제1 단위 만큼 순차적으로 독출하여 ECC 디코딩을 수행하여 에러를 정정하고(S140), 에러 정정된 데이터를 비휘발성 메모리 장치(400a)의 데이터 입출력 회로(440)에 제공한다.When the first memory area 421 is full (YES in S130 ), the storage controller 200 converts the second data pre-stored in the first memory area (by a first unit corresponding to the data storage capacity of the internal buffer 380). ECC decoding is sequentially read to correct the error (S140), and the error-corrected data is provided to the data input/output circuit 440 of the non-volatile memory device 400a.

비휘발성 메모리 장치(400a)는 에러 정정된 제2 데이터를 제2 메모리 영역(423)에 프로그램한다(S150). 스토리지 컨트롤러(100)는 호스트(100)로부터 제3 데이터를 수신한다(S160). 스토리지 컨트롤러(100)는 제1 모드에서 제3 데이터를 제1 메모리 영역(421)에 프로그램한다(S170).The non-volatile memory device 400a programs error-corrected second data into the second memory area 423 (S150). The storage controller 100 receives third data from the host 100 (S160). The storage controller 100 programs third data into the first memory area 421 in the first mode (S170).

따라서 본 발명의 실시예들에 따른 스토리지 장치 및 스토리지 장치의 동작 방법에서는 기입 속도가 빠른 제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 nonvolatile memory device 2000 may have a chip to chip (C2C) structure. The C2C structure fabricates an upper chip (first chip) including a cell region (CELL) on a first wafer, and a lower chip (first chip) including a peripheral circuit region (PERI) on a second wafer different from the first wafer. 2), and then connecting the upper chip and the lower chip by a bonding method. For example, the bonding method may refer to a method of electrically connecting the bonding metal formed on the uppermost metal layer of the upper chip and the bonding metal formed on the uppermost metal layer of the lower chip to each other. For example, when the bonding metal is formed of copper (Cu), the bonding method may be a Cu-to-Cu bonding method, and the bonding metal may also be formed of aluminum (Al) or tungsten (W).

비휘발성 메모리 장치(2000)의 주변 회로 영역(PERI)과 셀 영역(CELL) 각각은 외부 패드 본딩 영역(PA), 워드라인 본딩 영역(WLBA), 및 비트라인 본딩 영역(BLBA)을 포함할 수 있다.Each of the peripheral circuit area PERI and the cell area CELL of the nonvolatile memory device 2000 may include an external pad bonding area PA, a word line bonding area WLBA, and a bit line bonding area BLBA. there is.

주변 회로 영역(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 first substrate 2210, an interlayer insulating layer 2215, a plurality of circuit elements 2220a, 2220b, and 2220c formed on the first substrate 2210, and a plurality of circuit elements 2220a. , 2220b, 2220c) to include first metal layers 2230a, 2230b, and 2230c connected to each other, and second metal layers 2240a, 2240b, and 2240c formed on the first metal layers 2230a, 2230b, and 2230c. can In an embodiment, the first metal layers 2230a, 2230b, and 2230c may be formed of tungsten having a relatively high electrical resistivity, and the second metal layers 2240a, 2240b, and 2240c may be made of copper having a relatively low electrical resistivity. can be formed

본 명세서에서는 제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 first metal layers 2230a, 2230b, and 2230c and the second metal layers 2240a, 2240b, and 2240c are shown and described, but are not limited thereto, and the second metal layers 2240a, 2240b, and 2240c At least one or more metal layers may be further formed. At least some of the one or more metal layers formed on the second metal layers 2240a, 2240b, and 2240c are made of aluminum having a lower electrical resistivity than copper forming the second metal layers 2240a, 2240b, and 2240c. can be formed

층간 절연층(2215)은 복수의 회로 소자들(2220a, 2220b, 2220c), 제1 메탈층(2230a, 2230b, 2230c), 및 제2 메탈층(2240a, 2240b, 2240c)을 커버하도록 제1 기판(2210) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.The interlayer insulating layer 2215 covers the plurality of circuit elements 2220a, 2220b, and 2220c, the first metal layers 2230a, 2230b, and 2230c, and the second metal layers 2240a, 2240b, and 2240c on the first substrate. 2210, and may include an insulating material such as silicon oxide, silicon nitride, or the like.

워드라인 본딩 영역(WLBA)의 제2 메탈층(2240b) 상에 하부 본딩 메탈(2271b, 2272b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(2271b, 2272b)은 셀 영역(CELL)의 상부 본딩 메탈(2371b, 2372b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있으며, 하부 본딩 메탈(2271b, 2272b)과 상부 본딩 메탈(2371b, 2372b)은 알루미늄, 구리, 혹은 텅스텐 등으로 형성될 수 있다.Lower bonding metals 2271b and 2272b may be formed on the second metal layer 2240b of the word line bonding area WLBA. In the word line bonding area WLBA, the lower bonding metals 2271b and 2272b of the peripheral circuit area PERI may be electrically connected to the upper bonding metals 2371b and 2372b of the cell area CELL by a bonding method. , The lower bonding metals 2271b and 2272b and the upper bonding metals 2371b and 2372b may be formed of aluminum, copper, or tungsten.

셀 영역(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 second substrate 2310 and a common source line 2320 . On the second substrate 2310, a plurality of word lines 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, and 2330 are provided along the third direction VD perpendicular to the upper surface of the second substrate 2310. ) can be stacked. String select lines and a ground select line may be disposed on upper and lower portions of the word lines 2330 , and a plurality of word lines 2330 may be disposed between the string select lines and the ground select line.

비트라인 본딩 영역(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 second substrate 2310 to form word lines 2330, string select lines, and ground select lines. can penetrate The channel structure CH may include a data storage layer, a channel layer, and a buried insulating layer, and the channel layer may be electrically connected to the first metal layer 2350c and the second metal layer 2360c. For example, the first metal layer 2350c may be a bit line contact, and the second metal layer 2360c may be a bit line. In one embodiment, the bit line 2360c may extend along the second horizontal direction HD2 parallel to the upper surface of the second substrate 2310 .

도 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 bit line 2360c are disposed may be defined as a bit line bonding region BLBA. The bit line 2360c may be electrically connected to the circuit elements 2220c providing the page buffer 2393 in the peripheral circuit area PERI in the bit line bonding area BLBA. For example, the bit line 2360c is connected to upper bonding metals 2371c and 2372c in the peripheral circuit area PERI, and the upper bonding metals 2371c and 2372c are connected to circuit elements 2220c of the page buffer 2393. It may be connected to the connected lower bonding metals 2271c and 2272c.

워드라인 본딩 영역(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 word lines 2330 may extend along a second horizontal direction HD2 perpendicular to the first horizontal direction HD1 and parallel to the upper surface of the second substrate 310. , may be connected to a plurality of cell contact plugs 2341, 2342, 2343, 2344, 2345, 2346, 3347; 3340. The word lines 2330 and the cell contact plugs 2340 may be connected to each other at pads provided by extending different lengths from at least some of the word lines 2330 along the first horizontal direction HD1. . A first metal layer 2350b and a second metal layer 2360b may be sequentially connected to upper portions of the cell contact plugs 2340 connected to the word lines 2330 . The cell contact plugs 2340 are connected to peripheral circuits in the word line bonding area WLBA through the upper bonding metals 2371b and 2372b of the cell area CELL and the lower bonding metals 2271b and 2272b of the peripheral circuit area PERI. It may be connected to the area PERI.

셀 컨택 플러그들(2340)은 주변 회로 영역(PERI)에서 어드레스 디코더 또는 로우 디코더(2394)를 형성하는 회로 소자들(2220b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더(2394)를 형성하는 회로 소자들(2220b)의 동작 전압은, 페이지 버퍼(2393)를 형성하는 회로 소자들(2220c)의 동작 전압과 다를 수 있다. 일례로, 페이지 버퍼(2393)를 형성하는 회로 소자들(2220c)의 동작 전압이 로우 디코더(2394)를 형성하는 회로 소자들(2220b)의 동작 전압보다 클 수 있다.The cell contact plugs 2340 may be electrically connected to circuit elements 2220b forming the address decoder or row decoder 2394 in the peripheral circuit area PERI. In one embodiment, the operating voltage of the circuit elements 2220b forming the row decoder 2394 may be different from the operating voltage of the circuit elements 2220c forming the page buffer 2393. For example, the operating voltage of the circuit elements 2220c forming the page buffer 2393 may be higher than the operating voltage of the circuit elements 2220b forming the row decoder 2394 .

외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그(2380)가 배치될 수 있다. 공통 소스 라인 컨택 플러그(2380)는 금속, 금속 화합물, 또는 폴리실리콘 등의 도전성 물질로 형성되며, 공통 소스 라인(2320)과 전기적으로 연결될 수 있다. 공통 소스 라인 컨택 플러그(2380) 상부에는 제1 메탈층(2350a)과 제2 메탈층(2360a)이 차례로 적층될 수 있다. 일례로, 공통 소스 라인 컨택 플러그(2380), 제1 메탈층(2350a), 및 제2 메탈층(2360a)이 배치되는 영역은 외부 패드 본딩 영역(PA)으로 정의될 수 있다.A common source line contact plug 2380 may be disposed in the external pad bonding area PA. The common source line contact plug 2380 is formed of a conductive material such as metal, metal compound, or polysilicon, and may be electrically connected to the common source line 2320 . A first metal layer 2350a and a second metal layer 2360a may be sequentially stacked on the common source line contact plug 2380 . For example, an area where the common source line contact plug 2380, the first metal layer 2350a, and the second metal layer 2360a are disposed may be defined as an external pad bonding area PA.

한편, 외부 패드 본딩 영역(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/output pads 2205 and 2305 may be disposed in the external pad bonding area PA. A lower insulating film 2201 covering a lower surface of the first substrate 2210 may be formed under the first substrate 2210, and a first input/output pad 2205 may be formed on the lower insulating film 2201. The first input/output pad 2205 is connected to at least one of the plurality of circuit elements 2220a, 2220b, and 2220c arranged in the peripheral circuit area PERI through the first input/output contact plug 2203, and the lower insulating layer 2201 ) may be separated from the first substrate 2210. In addition, a side insulating layer may be disposed between the first input/output contact plug 2203 and the first substrate 2210 to electrically separate the first input/output contact plug 2203 from the first substrate 2210 .

제2 기판(2310)의 상부에는 제2 기판(2310)의 상면을 덮는 상부 절연막(2301)이 형성될 수 있으며, 상부 절연막(2301) 상에 제2 입출력 패드(2305)가 배치될 수 있다. 제2 입출력 패드(2305)는 제2 입출력 컨택 플러그(2303)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(2220a, 2220b, 2220c) 중 적어도 하나와 연결될 수 있다. 일 실시예에서, 제2 입출력 패드(2305)는 회로 소자(2220a)와 전기적으로 연결될 수 있다.An upper insulating layer 2301 covering the upper surface of the second substrate 2310 may be formed on the second substrate 2310, and second input/output pads 2305 may be disposed on the upper insulating layer 2301. The second input/output pad 2305 may be connected to at least one of the plurality of circuit elements 2220a, 2220b, and 2220c disposed in the peripheral circuit area PERI through the second input/output contact plug 2303. In one embodiment, the second input/output pad 2305 may be electrically connected to the circuit element 2220a.

실시예에 따라서, 제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 second substrate 2310 and the common source line 2320 may not be disposed in the region where the second input/output contact plug 2303 is disposed. Also, the second input/output pad 2305 may not overlap the word lines 2380 in the third direction D3. The second input/output contact plug 2303 is separated from the second substrate 2310 in a direction parallel to the top surface of the second substrate 2310, and penetrates the interlayer insulating layer 2315 of the cell region CELL to form the second input/output contact plug. It can be connected to pad 2305.

실시예에 따라서, 제1 입출력 패드(2205)와 제2 입출력 패드(2305)는 선택적으로 형성될 수 있다. 일례로, 비휘발성 메모리 장치(2000)는 제1 기판(2201)의 상부에 배치되는 제1 입출력 패드(2205)만을 포함하거나, 또는 제2 기판(2301)의 상부에 배치되는 제2 입출력 패드(2305)만을 포함할 수 있다. 또는, 메모리 장치(2000)가 제1 입출력 패드(2205)와 제2 입출력 패드(2305)를 모두 포함할 수도 있다.According to embodiments, the first input/output pad 2205 and the second input/output pad 2305 may be selectively formed. For example, the non-volatile memory device 2000 includes only the first input/output pad 2205 disposed on the first substrate 2201, or the second input/output pad 2205 disposed on the second substrate 2301 ( 2305) may be included. Alternatively, the memory device 2000 may include both the first input/output pad 2205 and the second input/output pad 2305 .

셀 영역(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 nonvolatile memory device 2000, in the external pad bonding area PA, the cell area is formed on the uppermost metal layer of the peripheral circuit area PERI corresponding to the upper metal pattern 2372a formed on the uppermost metal layer of the cell area CELL. A lower metal pattern 2273a having the same shape as the upper metal pattern 2372a of the cell may be formed. The lower metal pattern 2273a formed on the uppermost metal layer of the peripheral circuit area PERI may not be connected to a separate contact in the peripheral circuit area PERI. Similarly, in the external pad bonding area PA, the upper metal layer of the cell area CELL corresponds to the lower metal pattern 2273a formed on the uppermost metal layer of the peripheral circuit area PERI. An upper metal pattern 2372a having the same shape as the lower metal pattern 2273a may be formed.

워드라인 본딩 영역(WLBA)의 제2 메탈층(2240b) 상에는 하부 본딩 메탈(2271b, 2272b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(2271b, 2272b)은 셀 영역(CELL)의 상부 본딩 메탈(2371b, 2372b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있다.Lower bonding metals 2271b and 2272b may be formed on the second metal layer 2240b of the word line bonding area WLBA. In the word line bonding area WLBA, the lower bonding metals 2271b and 2272b of the peripheral circuit area PERI may be electrically connected to the upper bonding metals 2371b and 2372b of the cell area CELL by a bonding method. .

또한, 비트라인 본딩 영역(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 lower metal pattern 2252 formed on the uppermost metal layer of the peripheral circuit area PERI. An upper metal pattern 2392 having the same shape as the metal pattern 2252 may be formed. A contact may not be formed on the upper metal pattern 2392 formed on the uppermost metal layer of the cell region CELL.

전술한 워드라인 전압들이 주변 회로 영역(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 lower bonding metals 2271b and 2272b of the peripheral circuit area PERI and the upper bonding metals 2371b and 2372b of the cell area CELL. can be provided.

도 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 electronic system 3000 may include a semiconductor device 3100 and a controller 3200 electrically connected to the semiconductor device 3100 . The electronic system 3000 may be a storage device including one or a plurality of semiconductor devices 3100 or an electronic device including the storage device. For example, the electronic system 3000 may be a solid state drive (SSD) device including one or a plurality of semiconductor devices 3100, a universal serial bus (USB), a computing system, a medical device, or a communication device. may be a device.

반도체 장치(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 semiconductor device 3100 may be a non-volatile memory device, for example, the non-volatile memory device described above with reference to FIGS. 5 to 11 . The semiconductor device 3100 may include a first structure 3100F and a second structure 3100S on the first structure 3100F. The first structure 3100F may be a peripheral circuit structure including a decoder circuit 3110 , a page buffer circuit 3120 , and a logic circuit 3130 . The second structure 3100S includes a bit line BL, a common source line CSL, word lines WL, first and second gate upper lines UL1 and UL2, and first and second gate lower lines. LL1 and LL2, and memory NAND strings CSTR between the bit line BL and the common source line CSL.

제2 구조물(3100S)에서, 각각의 메모리 낸드 스트링들(CSTR)은 공통 소스 라인(CSL)에 인접하는 하부 트랜지스터들(LT1, LT2), 비트 라인(BL)에 인접하는 상부 트랜지스터들(UT1, UT2), 및 하부 트랜지스터들(LT1, LT2)과 상부 트랜지스터들(UT1, UT2) 사이에 배치되는 복수의 메모리 셀 트랜지스터들(MCT)을 포함할 수 있다. 하부 트랜지스터들(LT1, LT2)의 개수와 상부 트랜지스터들(UT1, UT2)의 개수는 실시예들에 따라 다양하게 변형될 수 있다. In the second structure 3100S, each of the memory NAND strings CSTR includes lower transistors LT1 and LT2 adjacent to the common source line CSL and upper transistors UT1 adjacent to the bit line BL. UT2), and a plurality of memory cell transistors MCT disposed between the lower transistors LT1 and LT2 and the upper transistors UT1 and UT2. The number of lower transistors LT1 and LT2 and the number of upper transistors UT1 and UT2 may be variously modified according to embodiments.

예시적인 실시예들에서, 상부 트랜지스터들(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 decoder circuit 3110 through first connection wires 3115 extending to the second structure 1100S. The bit lines BL may be electrically connected to the page buffer circuit 3120 through second connection lines 3125 extending from the first structure 3100F to the second structure 3100S.

제1 구조물(3100F)에서, 디코더 회로(1110) 및 페이지 버퍼 회로(3120)는 복수의 메모리 셀 트랜지스터들(MCT) 중 적어도 하나의 선택 메모리 셀 트랜지스터에 대한 제어 동작을 실행할 수 있다. 디코더 회로(3110) 및 페이지 버퍼 회로(3120)는 로직 회로(3130)에 의해 제어될 수 있다. 반도체 장치(3000)는 로직 회로(3130)와 전기적으로 연결되는 입출력 패드(3101)를 통해, 컨트롤러(3200)와 통신할 수 있다. 입출력 패드(3101)는 제1 구조물(3100F) 내에서 제2 구조물(3100S)까지 연장되는 입출력 연결 배선(3135)을 통해 로직 회로(3130)와 전기적으로 연결될 수 있다. In the first structure 3100F, the decoder circuit 1110 and the page buffer circuit 3120 may execute a control operation on at least one selected memory cell transistor among the plurality of memory cell transistors MCT. The decoder circuit 3110 and the page buffer circuit 3120 may be controlled by the logic circuit 3130 . The semiconductor device 3000 may communicate with the controller 3200 through the input/output pad 3101 electrically connected to the logic circuit 3130 . The input/output pad 3101 may be electrically connected to the logic circuit 3130 through an input/output connection wire 3135 extending from the first structure 3100F to the second structure 3100S.

컨트롤러(3200)는 프로세서(3210), NAND 컨트롤러(3220), 및 호스트 인터페이스(1230)를 포함할 수 있다. 실시예들에 따라, 전자 시스템(3000)은 복수의 반도체 장치들(3100)을 포함할 수 있으며, 이 경우, 컨트롤러(3200)는 복수의 반도체 장치들(3000)을 제어할 수 있다.The controller 3200 may include a processor 3210 , a NAND controller 3220 , and a host interface 1230 . According to example embodiments, the electronic system 3000 may include a plurality of semiconductor devices 3100 , and in this case, the controller 3200 may control the plurality of semiconductor devices 3000 .

프로세서(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 processor 3210 may control the overall operation of the electronic system 3000 including the controller 3200 . The processor 3210 may operate according to predetermined firmware and access the semiconductor device 3100 by controlling the NAND controller 3220 . The NAND controller 3220 may include a NAND interface 3221 that processes communication with the semiconductor device 3100 . Through the NAND interface 3221, a command for controlling the semiconductor device 3100, data to be written to the memory cell transistors MCT of the semiconductor device 3100, and memory cell transistors MCT of the semiconductor device 3100 ), data to be read from can be transmitted. The host interface 3230 may provide a communication function between the electronic system 3000 and an external host. When a control command is received from an external host through the host interface 3230, the processor 3210 may control the semiconductor device 3100 in response to the control command.

도 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 storage system 4000 includes a host 4100 and a storage device 4200 . The host 4100 and the storage device 4200 may operate as described with reference to FIGS. 1 to 20 .

스토리지 장치(4200)는 프로그램/마이그레이션 매니저(4210)을 포함할 수 있다.The storage device 4200 may include a program/migration manager 4210 .

호스트(4100)는 애플리케이션 프로세서(4110), 랜덤 액세스 메모리(4120)(RAM), 모뎀(4130), 장치 드라이버(4140), 스피커(4150), 디스플레이(4160), 터치 패널(4170), 마이크로폰(4180), 그리고 이미지 센서들(4190)을 포함할 수 있다.The host 4100 includes an application processor 4110, a random access memory 4120 (RAM), a modem 4130, a device driver 4140, a speaker 4150, a display 4160, a touch panel 4170, a microphone ( 4180), and image sensors 4190.

애플리케이션 프로세서(4110)는 애플리케이션(AP-h) 및 파일 시스템(FS-h)을 실행할 수 있다. 애플리케이션 프로세서(4110)는 RAM(4120)을 시스템 메모리로 사용할 수 있다. 애플리케이션 프로세서(4110)는 모뎀(4130)을 통해 외부의 장치와 유선 또는 무선으로 통신할 수 있다. 예시적으로, 모뎀(4130)은 애플리케이션 프로세서(4110)의 내부에 내장될 수 있다.The application processor 4110 may execute an application (AP-h) and a file system (FS-h). The application processor 4110 may use the RAM 4120 as system memory. The application processor 4110 may communicate with an external device through wired or wireless communication through the modem 4130 . For example, the modem 4130 may be built into the application processor 4110.

애플리케이션 프로세서(4110)는 장치 드라이버(4140)를 통해 주변 장치들과 통신할 수 있다. 예를 들어, 애플리케이션 프로세서(4110)는 장치 드라이버(4140)를 통해 스피커(4150), 디스플레이(4160), 터치 패널(4170), 마이크로폰(4180), 이미지 센서들(4190), 그리고 스토리지 장치(4200)와 통신할 수 있다. The application processor 4110 may communicate with peripheral devices through the device driver 4140 . For example, the application processor 4110, through the device driver 4140, controls the speaker 4150, the display 4160, the touch panel 4170, the microphone 4180, the image sensors 4190, and the storage device 4200. ) can communicate with.

스피커(4150) 및 디스플레이(4160)는 사용자에게 정보를 전달하는 사용자 출력 인터페이스들일 수 있다. 터치 패널(4170), 마이크로폰(4180), 그리고 이미지 센서들(4190)은 사용자로부터 정보를 수신하는 사용자 입력 인터페이스들일 수 있다.Speaker 4150 and display 4160 can be user output interfaces that convey information to the user. The touch panel 4170, the microphone 4180, and the image sensors 4190 may be user input interfaces that receive information from a user.

도 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 storage system 4000 may provide setting screens through the display 4160 . One of the setting screens may provide information on the acceleration mode to the user.

스토리지 시스템(4000)은 가속 모드가 적용될 수 있는 제1 내지 제u 애플리케이션들(APP1~APPu)의 목록을 디스플레이(4160)를 통해 표시할 수 있다. 또한, 스토리지 시스템은 제1 내지 제u 애플리케이션들(APP1~APPu)의 가속 모드들을 조절할 수 있는 스위치들을 디스플레이(1160)를 통해 표시할 수 있다.The storage system 4000 may display, through the display 4160 , a list of first to u-th applications APP1 to APPu to which the acceleration mode may be applied. Also, the storage system may display, through the display 1160 , switches capable of adjusting the acceleration modes of the first to u-th applications APP1 to APPu.

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 storage system 4000 may detect a user's touch, that is, an instruction to activate the third application APP3 through the touch panel 4170 . In step S220 , information on the third application APP3 or processes of the third application APP3 may be transferred to the program/migration manager 4210 .

제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/migration manager 4210 performs a migration operation on the subsequent write operation of the selected third application APP3 or processes. can be reserved. The program/migration manager 4210 may write data related to the subsequent write operation into the first memory area by performing the above-described migration operation on the subsequent write operation of the selected third application APP3 or processes.

본 발명은 스토리지 장치를 구비하는 임의의 전자 장치에 유용하게 이용될 수 있다. 예를 들어, 본 발명은 스토리지 장치를 구비하는 휴대폰(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 메모리 영역과 상기 제2 기입 속도보다 느린제2 기입 속도를 가지는 제2 메모리 영역을 구비하는 비휘발성 메모리 장치; 및
제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 데이터의 크기보다 작은 경우, 상기 독출된 제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항에 있어서,
상기 제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 모드와 상기 제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.
제4항에 있어서, 상기 스토리지 컨트롤러는
상기 프로그램/마이그레이션 매니저가 로딩되는 온-칩 메모리를 더 포함하고,
상기 프로세서는 상기 프로세서는 상기 온-칩 메모리에 로딩된 상기 프로그램/마이그레이션 매니저를 실행시키는 것을 특징으로 하는 스토리지 장치.
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.
제4항에 있어서,
상기 프로세서는 유휴 시간을 기초로 외부로부터의 기입 리퀘스트에 대한 연속성을 판단하고, 상기 판단 결과에 따라서 상기 기입 모드를 상기 제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.
제4항에 있어서, 상기 프로세서는
상기 제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.
제4항에 있어서,
상기 프로세서는 상기 제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 기입 속도보다 느린 제2 기입 속도를 가지는 제2 메모리 영역을 구비하는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하는 스토리지 컨트롤러를 포함하는 스토리지 장치의 동작 방법으로서,
상기 스토리지 컨트롤러가 외부의 호스트로부터 제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.
KR1020220005071A 2021-11-17 2022-01-13 Storage device and mehtod of operating storage device KR20230072363A (en)

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)

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