KR20200037049A - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- KR20200037049A KR20200037049A KR1020190002343A KR20190002343A KR20200037049A KR 20200037049 A KR20200037049 A KR 20200037049A KR 1020190002343 A KR1020190002343 A KR 1020190002343A KR 20190002343 A KR20190002343 A KR 20190002343A KR 20200037049 A KR20200037049 A KR 20200037049A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- controller
- memory device
- data
- interface
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 202
- 230000004044 response Effects 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 21
- 238000010801 machine learning Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 23
- 239000004065 semiconductor Substances 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 101100338009 Mus musculus Gsta1 gene Proteins 0.000 description 8
- 101100123101 Mus musculus Gsta4 gene Proteins 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 8
- 101000949825 Homo sapiens Meiotic recombination protein DMC1/LIM15 homolog Proteins 0.000 description 3
- 101001046894 Homo sapiens Protein HID1 Proteins 0.000 description 3
- 102100022877 Protein HID1 Human genes 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G06K9/20—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Software Systems (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Read Only Memory (AREA)
Abstract
Description
본 발명은 전자 장치에 관한 것으로 더욱 상세하게는 스토리지 장치에 관한 것이다.The present invention relates to an electronic device, and more particularly, to a storage device.
최근에는 다양한 분야에서 인공 지능(AI; Artificial Intelligence) 기능이 활용되고 있다. 일 예로서, 개인용 컴퓨터, 노트북, 태블릿, 스마트폰, 디지털 카메라 등과 같은 다양한 전자 장치에서의 음성 인식, 이미지 분류 등과 같은 다양한 기능에 인공 지능 기능이 활용되고 있다. 일반적으로 인공 지능 기능은 많은 연산 동작을 수반한다. 이러한 많은 연산 동작을 구현하기 위하여, 빠른 동작 속도를 갖는 연산 회로 및 데이터를 처리하기 위한 대용량의 고속 메모리를 필요로 한다. 종래에는 이러한 고속 연산을 지원하는 회로 및 대용량 고속 메모리를 구비한 별도의 데이터 센터를 이용하여 인공 지능 기능이 지원된다.Recently, artificial intelligence (AI) has been used in various fields. As an example, artificial intelligence functions are used for various functions such as voice recognition and image classification in various electronic devices such as personal computers, laptops, tablets, smart phones, and digital cameras. In general, artificial intelligence functions involve many computational operations. In order to implement such a large number of computational operations, a computational circuit having a high operation speed and a large-capacity high-speed memory for processing data are required. In the related art, artificial intelligence functions are supported by using a separate data center equipped with a high-speed memory and a circuit supporting such high-speed operation.
그러나 이러한 별도의 데이터 센터를 이용하는 방식은 데이터 센터 이용에 따른 별도의 비용이 소모되고, 네트워크를 통한 데이터 송수신에 따른 지연이 발생하는 문제점이 있다.However, the method using the separate data center consumes a separate cost for using the data center, and there is a problem in that a delay occurs due to data transmission and reception through a network.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로서, 본 발명에 따르면, 향상된 성능 및 감소된 비용을 갖는 스토리지 장치가 제공된다.The present invention is to solve the above-described technical problems, and according to the present invention, a storage device having improved performance and reduced cost is provided.
본 발명의 실시 예에 따른 스토리지 장치는 복수의 제1 메모리 셀들을 포함하는 제1 메모리 장치, 상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제2 메모리 셀들을 포함하는 제2 메모리 장치, 및 상기 제1 메모리 장치와 제1 메모리 인터페이스를 통해 통신하고, 상기 제2 메모리 장치와 상기 제1 메모리 인터페이스의 동작 속도보다 빠른 동작 속도를 갖는 제2 메모리 인터페이스를 통해 통신하도록 구성된 컨트롤러를 포함한다.A storage device according to an embodiment of the present invention includes a first memory device including a plurality of first memory cells, a second memory device including a plurality of second memory cells of the same type as the plurality of first memory cells, and And a controller configured to communicate with the first memory device through a first memory interface, and to communicate with the second memory device through a second memory interface having an operating speed faster than an operating speed of the first memory interface.
본 발명의 실시 예에 따른 스토리지 장치는 외부 장치와 호스트 인터페이스를 통해 통신하도록 구성된 제1 컨트롤러, 복수의 제1 메모리 셀들을 포함하고, 상기 제1 컨트롤러와 제1 메모리 인터페이스의 제1 채널을 통해 통신하도록 구성된 제1 메모리 장치, 상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제2 메모리 셀들을 포함하는 제2 메모리 장치, 및 상기 제1 컨트롤러와 상기 제1 메모리 인터페이스의 제2 채널을 통해 통신하도록 구성되고, 상기 제2 메모리 장치와 제2 메모리 인터페이스를 통해 된 제2 컨트롤러를 포함한다.A storage device according to an embodiment of the present invention includes a first controller configured to communicate with an external device through a host interface, a plurality of first memory cells, and communicates with the first controller through a first channel of the first memory interface A first memory device configured to communicate, a second memory device including a plurality of second memory cells of the same type as the plurality of first memory cells, and the first controller and a second channel of the first memory interface And a second controller through the second memory device and the second memory interface.
본 발명의 실시 예에 따른 스토리지 장치는 복수의 제1 낸드 플래시 메모리 셀들을 포함하는 제1 메모리 장치, 복수의 제2 낸드 플래시 메모리 셀들을 포함하는 제2 메모리 장치, 및 제1 메모리 인터페이스를 통해 상기 제1 메모리 장치와 통신하고, 상기 제1 메모리 인터페이스보다 큰 입출력 대역폭을 갖는 제2 메모리 인터페이스를 통해 상기 제2 메모리 장치와 통신하도록 구성된 컨트롤러를 포함한다.The storage device according to an embodiment of the present invention includes a first memory device including a plurality of first NAND flash memory cells, a second memory device including a plurality of second NAND flash memory cells, and a first memory interface. And a controller configured to communicate with the first memory device and to communicate with the second memory device through a second memory interface having an input / output bandwidth greater than the first memory interface.
본 발명에 따르면, 스토리지 장치는 호스트로부터의 요청에 따라 스페셜 동작을 수행할 수 있다. 따라서, 스페셜 동작을 수행하는데 요구되는 호스트의 다양한 연산들 또는 데이터 센터의 사용에 따른 부담이 경감되기 때문에, 향상된 성능 및 감소된 비용을 갖는 스토리지 장치 및 그것의 동작 방법이 제공된다.According to the present invention, the storage device may perform a special operation according to a request from the host. Accordingly, a storage device having improved performance and reduced cost and a method of operating the same are provided because the burden of using various data centers or data centers required to perform a special operation is reduced.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 2는 도 1의 제1 컨트롤러를 예시적으로 보여주는 블록도이다.
도 3은 도 1의 제2 컨트롤러를 예시적으로 보여주는 블록도이다.
도 4는 제1 컨트롤러의 제1 메모리 인터페이스 회로 및 제2 컨트롤러의 제2 메모리 인터페이스 회로를 예시적으로 보여주는 도면들이다.
도 5a 내지 도 5d는 도 1의 제1 메모리 장치 및 제2 메모리 장치를 예시적으로 보여주는 블록도들이다.
도 6은 도 5a 내지 도 5d의 제1 및 제2 메모리 장치들에 포함된 메모리 블록을 예시적으로 보여주는 회로도이다.
도 7은 도 1의 스토리지 장치의 동작을 보여주는 순서도이다.
도 8a 내지 도 8d는 도 5의 S112의 판별 동작을 설명하기 위한 도면들이다.
도 9a 및 도 9b는 도 1의 호스트 및 스토리지 장치의 동작을 상세하게 보여주는 순서도들이다.
도 10은 도 1의 스토리지 장치의 동작을 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 12는 도 11의 컨트롤러를 예시적으로 보여주는 블록도이다.
도 13은 도 11의 스토리지 장치의 동작을 보여주는 순서도이다.
도 14 내지 도 16 각각은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 17a 내지 도 17d는 본 발명의 실시 예에 따른 스토리지 장치의 구성을 예시적으로 보여주는 도면들이다.
도 18은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 19는 본 발명에 따른 스토리지 장치가 적용된 모바일 시스템을 예시적으로 보여주는 블록도이다.1 is a block diagram exemplarily showing a computing system according to an embodiment of the present invention.
FIG. 2 is a block diagram exemplarily showing the first controller of FIG. 1.
3 is a block diagram illustrating the second controller of FIG. 1 by way of example.
4 exemplarily shows a first memory interface circuit of a first controller and a second memory interface circuit of a second controller.
5A to 5D are block diagrams exemplarily showing the first memory device and the second memory device of FIG. 1.
FIG. 6 is a circuit diagram exemplarily showing memory blocks included in the first and second memory devices of FIGS. 5A to 5D.
7 is a flowchart illustrating an operation of the storage device of FIG. 1.
8A to 8D are views for explaining the determination operation of S112 in FIG. 5.
9A and 9B are flowcharts showing details of operations of the host and the storage device of FIG. 1.
10 is a flowchart illustrating an operation of the storage device of FIG. 1.
11 is a block diagram showing a storage device according to an embodiment of the present invention.
12 is a block diagram illustrating the controller of FIG. 11 by way of example.
13 is a flowchart illustrating the operation of the storage device of FIG. 11.
Each of FIGS. 14 to 16 is a block diagram showing a storage device according to an embodiment of the present invention.
17A to 17D are views exemplarily showing a configuration of a storage device according to an embodiment of the present invention.
18 is a block diagram illustrating a computing system according to an embodiment of the present invention.
19 is a block diagram exemplarily showing a mobile system to which a storage device according to the present invention is applied.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail so that a person having ordinary knowledge in the technical field of the present invention can easily implement the present invention.
상세한 설명에서 사용되는 "부(unit)", "모듈(module)" 등과 같은 용어들 또는 도면에 도시된 기능 블록들은 특정 기능을 수행하도록 구성된 하드웨어, 소프트웨어, 또는 그것의 조합의 형태로 구현될 수 있다. The term “unit”, “module”, etc. used in the detailed description or functional blocks illustrated in the drawings may be implemented in the form of hardware, software, or a combination thereof configured to perform a specific function. have.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(10)은 호스트(11) 및 스토리지 장치(100)를 포함할 수 있다. 예시적인 실시 예에서, 컴퓨팅 시스템(10)은 개인용 컴퓨터, 태블릿 PC, 디지털 카메라, 스마트 폰 등과 같은 다양한 연산 기능을 수행하는 컴퓨팅 장치들 중 하나일 수 있다. 1 is a block diagram exemplarily showing a computing system according to an embodiment of the present invention. Referring to FIG. 1, the
호스트(11)는 컴퓨팅 시스템(10)이 동작하는데 필요한 다양한 동작들을 수행할 수 있다. 예시적인 실시 예에서, 호스트(11)는 컴퓨팅 시스템(10)의 제반 동작을 수행하는 CPU(Central Processing Unit), 또는 AP(Application Processor)일 수 있다. 호스트(11)는 호스트 인터페이스를 통해 스토리지 장치(100)와 통신할 수 있다. 호스트(11)는 스토리지 장치(100)에 데이터를 저장하거나 또는 스토리지 장치(100)에 저장된 데이터를 읽을 수 있다.The
예시적인 실시 예에서, 호스트(11)는 머신 러닝(ML; Machine Learning) 기능을 수행하기 위한 데이터(이하에서, 스페셜 데이터(SDT; special data)라 칭함.)를 스토리지 장치(100)로 제공할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 호스트(11)는 컴퓨팅 시스템(10)의 제반 동작을 수행하도록 구성될 수 있다. 이 때, 호스트(11)의 동작 도중에, 특정 데이터에 대한 특정 동작(예를 들어, 음성 인식, 이미지 분류, 이미지 인식 등)을 필요로 할 수 있다. 이 경우, 호스트(11)는 스페셜 데이터(SDT)를 스토리지 장치(100)로 제공할 수 있다.In an exemplary embodiment, the
예시적인 실시 예에서, 스페셜 데이터(SDT)는 스토리지 장치(100)에 불휘발성 형태로 저장되지 않을 수 있다. 스페셜 데이터(SDT)는 제2 컨트롤러(130)에서 수행되는 스페셜 동작의 종류에 따라, 음성 데이터, 이미지 데이터, 또는 특정 타입의 데이터를 포함할 수 있다. In an exemplary embodiment, the special data SDT may not be stored in the nonvolatile form in the
스토리지 장치(100)는 호스트(11)의 제어에 따라 일반 동작(normal operation) 및 스페셜 동작(machine learning operation) 중 어느 하나를 선택적으로 수행할 수 있다. 예시적인 실시 예에서, 일반 동작은 호스트(11)의 제어에 따라 제1 메모리 장치(120)에 사용자 데이터(UDT)를 저장하거나 또는 제1 메모리 장치(120)에 저장된 사용자 데이터(UDT)를 읽는 동작을 가리킬 수 있다. 또는 일반 동작은 일반적인 스토리지 장치에서 수행되는 다양한 동작(예를 들어, 읽기, 쓰기, 소거, 물리적 소거, 장치 리셋, 초기화 등)을 가리킬 수 있다. 즉, 일반 동작은 호스트(11)의 제어에 따라 일반적인 스토리지 장치에서 수행되는 동작을 가리킬 수 있다. 스페셜 동작은 음성 인식, 이미지 분류, 이미지 식별 등과 같이 인공 지능 기능(예를 들어, 컨볼루션 신경망, 심층 신경망 등)에 기반된 인공 지능 동작 또는 머신 러닝 동작을 가리킬 수 있다.The
다시 말해서, 스토리지 장치(100)가 호스트(11)의 제어에 따라 일반 동작을 수행하는 경우, 스토리지 장치(100)는 호스트(11)로부터 수신된 사용자 데이터(UDT)를 저장하거나, 또는 저장된 사용자 데이터(UDT)를 호스트(11)로 전송하거나, 또는 다른 일반적인 동작들(장치 리셋, 초기화, 파워 다운, 파워 업 등)을 수행할 수 있다. 스토리지 장치(100)가 호스트(11)의 제어에 따라 스페셜 동작을 수행하는 경우, 스토리지 장치(100)는 호스트(11)로부터 스페셜 데이터(SDT)를 수신하고, 수신된 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행하고, 스페셜 동작의 결과를 포함하는 결과 데이터(RDT)를 호스트(11)로 전송할 수 있다. In other words, when the
스토리지 장치(100)는 제1 컨트롤러(110), 제1 메모리 장치(120), 제2 컨트롤러(130), 및 제2 메모리 장치(140)를 포함할 수 있다. 제1 컨트롤러(110)는 스토리지 장치(100)의 제반 동작을 제어할 수 있다. 제1 컨트롤러(110)는 입출력 라우터(111)를 포함할 수 있다. 입출력 라우터(111)는 호스트(11)로부터 수신된 요청이 일반 동작에 관한 것인지 또는 스페셜 동작에 관한 것인지 판별하고, 판별 결과에 따라 호스트(11)로부터 수신된 정보(예를 들어, 사용자 데이터(UDT) 또는 스페셜 데이터(SDT))를 제1 메모리 장치(120) 또는 제2 컨트롤러(130)로 제공할 수 있다. The
예를 들어, 호스트(11)로부터 일반 동작에 관련된 요청이 수신된 경우, 입출력 라우터(111)는 요청과 함께 수신된 입력 데이터를 사용자 데이터(UDT)인 것으로 판별하고, 수신된 사용자 데이터(UDT)를 일반 채널(CH_n; normal channel)을 통해 제1 메모리 장치(120)로 전송할 수 있다. 호스트(11)로부터 스페셜 동작에 관련된 요청이 수신된 경우, 입출력 라우터(111)는 요청과 함께 수신된 입력 데이터를 스페셜 데이터(SDT)인 것으로 판별하고, 수신된 스페셜 데이터(SDT)를 전용 채널(CH_d; dedicated channel)을 통해 제2 컨트롤러(130)로 전송할 수 있다. 예시적인 실시 예에서, 입출력 라우터(111)는 스페셜 데이터(SDT)를 제1 메모리 장치(120)로 전송하고, 제1 메모리 장치(120)는 스페셜 데이터(SDT)를 저장하도록 구성될 수 있다. For example, when a request related to a general operation is received from the
예시적인 실시 예에서, 제1 메모리 인터페이스(IF1)는 복수의 채널들을 포함할 수 있고, 복수의 채널들 중 어느 하나는 일반 채널(CH_n)일 수 있고, 다른 어느 하나는 전용 채널(CH_d)일 수 있다. 예시적인 실시 예에서, 제1 메모리 인터페이스(IF1)에 포함된 복수의 채널들 각각은 독립적으로 구동하는 통신 경로를 가리킬 수 있으며, 복수의 채널들 각각은 서로 동일한 통신 방식을 기반으로 각각에 연결된 장치들과 통신할 수 있다. In an exemplary embodiment, the first memory interface IF1 may include a plurality of channels, one of the plurality of channels may be a normal channel (CH_n), and the other one may be a dedicated channel (CH_d). You can. In an exemplary embodiment, each of the plurality of channels included in the first memory interface IF1 may indicate an independently driven communication path, and each of the plurality of channels may be connected to each other based on the same communication method. Can communicate with others.
예시적인 실시 예에서, 입출력 라우터(111)는 호스트(111)로부터의 다양한 정보(예를 들어, 어드레스 정보, 논리적 유닛 정보, 커맨드 정보 등)를 기반으로 호스트(11)로부터 수신된 요청이 일반 동작에 관한 것인지 또는 스페셜 동작에 관한 것인지 판별할 수 있거나, 또는 호스트(11)로부터 수신된 입력 데이터가 사용자 데이터(UDT)인지 스페셜 데이터(SDT)인지 판별할 수 있다.In an exemplary embodiment, the input /
제1 메모리 장치(120)는 일반 채널(CH_n)을 통한 제1 컨트롤러(110)의 제어에 따라 일반 동작을 수행할 수 있다. 예를 들어, 제1 메모리 장치(120)는 일반 채널(CH_n)을 통해 제1 컨트롤러(110)로부터 사용자 데이터(UDT)를 수신하고, 수신된 사용자 데이터(UDT)를 저장 또는 프로그램할 수 있다.The
제2 컨트롤러(130)는 전용 채널(CH_d)을 통한 제1 컨트롤러(110)의 제어에 따라 스페셜 동작을 수행할 수 있다. 예를 들어, 제2 컨트롤러(130)는 음성 인식, 이미지 분류, 이미지 식별 등과 같은 머신 러닝 기능을 지원하도록 구성될 수 있다. 제2 컨트롤러(130)는 전용 채널(CH_d)을 통해 제1 컨트롤러(110)로부터 스페셜 데이터(SDT)를 수신하고, 수신된 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다. 제2 컨트롤러(130)는 제1 컨트롤러(110)의 제어에 따라 스페셜 동작의 수행 결과를 포함하는 결과 데이터(RDT)를 전용 채널(CH_d)을 통해 제1 컨트롤러(110)로 제공할 수 있다.The
예시적인 실시 예에서, 제2 컨트롤러(130)는 제2 메모리 인터페이스(IF2)제2 메모리 장치(140)에 저장된 가중치(WT)를 사용하여 상술된 스페셜 동작을 수행할 수 있다. 예를 들어, 제2 컨트롤러(130)는 지원되는 스페셜 동작을 수행하기 위한 가중치(WT) 정보를 필요로 한다. 스페셜 동작이 수행되는 경우, 제2 컨트롤러(130)는 제2 메모리 장치(130)에 저장된 가중치(WT)를 기반으로 상술된 스페셜 동작을 수행할 수 있다.In an exemplary embodiment, the
예시적인 실시 예에서, 제1 및 제2 메모리 장치들(120, 140)은 각각 동일한 셀 타입을 갖는 메모리 장치일 수 있다. 예를 들어, 제1 및 제2 메모리 장치들(120, 140)은 낸드 플래시 메모리 셀, 또는 CTF(Charge Trap Flash) 셀을 포함할 수 있고, 서로 다른 동작 속도로 동작할 수 있다.In an exemplary embodiment, the first and
예시적인 실시 예에서, 제1 및 제2 메모리 장치들(120, 140)는 낸드 플래시 메모리 장치일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 제1 및 제2 메모리 장치들(120, 140) 각각은 낸드 플래시 메모리, PRAM, MRAM, RRAM 등과 같은 불휘발성 메모리 장치들 중 어느 하나일 수 있다. 또는 제2 메모리 장치(140)의 동작 속도는 제1 메모리 장치(120)의 동작 속도보다 빠를 수 있다. 예시적인 실시 예에서, 제2 메모리 장치(140)는 DRAM과 같은 고속 메모리일 수 있다. In an exemplary embodiment, the first and
예시적인 실시 예에서, 제1 컨트롤러(110), 제1 메모리 장치(120), 제2 컨트롤러(130), 및 제2 메모리 장치(140) 각각은 별도의 반도체 장치, 별도의 반도체 칩, 별도의 반도체 다이, 또는 별도의 반도체 패키지로 구현될 수 있다. 또는 제1 컨트롤러(110), 제1 메모리 장치(120), 제2 컨트롤러(130), 및 제2 메모리 장치(140) 중 일부는 하나의 반도체 장치, 하나의 반도체 칩, 하나의 반도체 다이, 또는 하나의 반도체 패키지로 구현될 수 있다. 예를 들어, 제2 컨트롤러(130) 및 제2 메모리 장치(140)는 하나의 반도체 패키지로 구현될 수 있으며, 제2 컨트롤러(130) 및 제2 메모리 장치(140)는 하나의 반도체 패키지 내에서 고속 신호 라인(예를 들어, TSV(Through Silicon Via)을 통해 서로 연결될 수 있다.In an exemplary embodiment, each of the
예시적인 실시 예에서, 제1 컨트롤러(110) 및 제1 메모리 장치(120) 사이의 일반 채널(CH_n); 및 제1 컨트롤러(110) 및 제2 컨트롤러(130) 사이의 전용 채널(CH_d)은 제1 메모리 인터페이스(IF1)에 포함된 채널들일 수 있다. 즉, 제1 메모리 장치(120) 및 제2 컨트롤러(130) 각각은 동일한 인터페이스를 기반으로 제1 컨트롤러(110)와 통신할 수 있다. 예시적인 실시 예에서, 제1 메모리 인터페이스(IF1)는 낸드 인터페이스일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.In an exemplary embodiment, the normal channel (CH_n) between the
예시적인 실시 예에서, 제2 컨트롤러(130) 및 제2 메모리 장치(140)는 제1 메모리 인터페이스(IF1)와 다른 제2 메모리 인터페이스(IF2)를 기반으로 통신할 수 있다. 제2 메모리 인터페이스(IF2)는 제1 메모리 인터페이스(IF1)보다 빠른 동작 속도를 지원하는 인터페이스일 수 있다. 예를 들어, 제2 메모리 인터페이스(IF2)의 시간당 전송되는 데이터의 양은 제1 메모리 인터페이스(IF1)의 시간당 전송되는 데이터의 양보다 많을 수 있다. 즉, 제2 컨트롤러(130)는 빠른 속도로 제2 메모리 장치(140)에 저장된 가중치(WT)를 읽을 수 있다. In an exemplary embodiment, the
상술된 바와 같이, 본 발명의 실시 예에 따른 스토리지 장치(100)는 머신 러닝 기능을 지원할 수 있다. 이에 따라, 호스트(11)에서 수행되는 연산 부담이 경감되거나 또는 별도의 데이터 센터를 이용하지 않아도 되기 때문에, 향상된 성능 및 감소된 비용을 갖는 스토리지 장치가 제공된다.As described above, the
도 2는 도 1의 제1 컨트롤러(110)를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 제1 컨트롤러(110)는 입출력 라우터(111), 프로세서(112), SRAM(113), ROM(114), 호스트 인터페이스 회로(115), 제1 메모리 인터페이스 회로(116)를 포함할 수 있다.2 is a block diagram illustrating the
입출력 라우터(111)는 호스트(11)로부터 제공된 요청(또는 데이터)가 일반 동작에 관한 것인지 또는 스페셜 동작에 관한 것인지 판별할 수 있다. 입출력 라우터(111)의 판별 동작은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.The input /
프로세서(112)는 제1 컨트롤러(110)의 제반 동작을 수행할 수 있다. SRAM(113)은 제1 컨트롤러(110)의 동작 메모리, 버퍼 메모리 등으로 사용될 수 있다. ROM(114)은 제1 컨트롤러(110)가 동작하는데 필요한 다양한 정보를 펌웨어 형태로 저장할 수 있다. 예시적인 실시 예에서, 입출력 라우터(111)는 소프트웨어, 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 입출력 라우터(111)가 소프트웨어 형태로 구현되는 경우, 입출력 라우터(111)의 동작을 수행하기 위한 프로그램 코드, 또는 명령어는 SRAM(113)에 저장되고, 프로세서(112)에 의해 실행될 수 있다. 예시적인 실시 예에서, 입출력 라우터(111)의 동작은 플래시 변환 계층(미도시)(FTL; Flash Translation Layer)에 의해 수행될 수 있다. The
제1 컨트롤러(110)는 호스트 인터페이스 회로(115)를 통해 호스트(11)와 통신할 수 있다. 예시적인 실시 예에서, 호스트 인터페이스 회로(115)는 DDR(Double Data Rate), LPDDR(Low-Power DDR), USB(Universal Serial Bus), MMC(multimedia card), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), SATA(Serial-ATA), PATA(Parallel-ATA), SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface), NVM-e(Nonvolatile Memory-express), UFS(Universal Flash Storage) 등과 같은 다양한 인터페이스들 중 적어도 하나에 기반될 수 있다. The
제1 컨트롤러(110)는 제1 메모리 인터페이스 회로(116)를 통해 제1 메모리 장치(120) 및 제2 컨트롤러(130)와 통신할 수 있다. 예시적인 실시 예에서, 제1 메모리 인터페이스 회로는 낸드 인터페이스에 기반될 수 있다. 제1 컨트롤러(110)는 제1 메모리 인터페이스 회로(116)의 일반 채널(CH_n)을 통해 제1 메모리 장치(120)와 통신할 수 있고, 제1 메모리 인터페이스 회로(116)의 전용 채널(CH_d)을 통해 제2 컨트롤러(130)와 통신할 수 있다. 제1 메모리 인터페이스 회로(116)는 입출력 라우터(111)의 판별 결과에 따라 호스트(11)로부터 수신된 데이터를 일반 채널(CH_n) 및 전용 채널(CH_d) 중 어느 하나를 통해 출력할 수 있다.The
예시적인 실시 예에서, 제1 컨트롤러(110)는 제1 메모리 장치(120)로 사용자 데이터(UDT)를 전송하거나 또는 제2 컨트롤러(130)로 스페셜 데이터를 전송하기 위하여, 프로그램 커맨드를 사용할 수 있다. 즉, 제1 컨트롤러(110)는 일반 채널(CH_n)을 통해 프로그램 커맨드 및 사용자 데이터(UDT)를 제1 메모리 장치(120)로 전송할 수 있다. 제1 컨트롤러(110)는 전용 채널(CH_d)을 통해 프로그램 커맨드 및 스페셜 데이터(SDT)를 제2 컨트롤러(130)로 전송할 수 있다. In an exemplary embodiment, the
도 3은 도 1의 제2 컨트롤러를 예시적으로 보여주는 블록도이다. 도 1 및 도 3을 참조하면, 제2 컨트롤러(130)는 컨트롤러 인터페이스 회로(131), 머신 러닝 코어(132), 제2 메모리 인터페이스 회로(133), 및 ECC 엔진(134)을 포함할 수 있다.3 is a block diagram illustrating the second controller of FIG. 1 by way of example. 1 and 3, the
제2 컨트롤러(130)는 컨트롤러 인터페이스 회로(131)를 통해 제1 컨트롤러(110)와 통신할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(131)는 전용 채널(CH_d)을 통해 제1 컨트롤러(110)의 제1 메모리 인터페이스 회로(116)와 통신할 수 있다. 예시적인 실시 예에서, 컨트롤러 인터페이스 회로(131)는 전용 채널(CH_d)을 통해, 제1 메모리 인터페이스 회로(116)로부터 스페셜 데이터(SDT)를 수신하거나 또는 제1 메모리 인터페이스 회로(116)로 결과 데이터(RDT)를 전송할 수 있다.The
머신 러닝 코어(132)는 컨트롤러 인터페이스 회로(131)로부터 수신된 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다. 예시적인 실시 예에서, 머신 러닝 코어(132)는 제2 메모리 장치(140)에 저장된 가중치(WT)를 사용하여 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다.The
예를 들어, 제2 메모리 인터페이스 회로(133)는, 머신 러닝 코어(132)의 제어에 따라 제2 메모리 장치(140)로부터 가중치(WT)를 읽을 수 있다. 가중치(WT)는 ECC 엔진(134)에 의해 에러가 정정될 수 있고, 에러가 정정된 가중치(WT')는 머신 러닝 코어(132)로 제공될 수 있다. 머신 러닝 코어(132)는 에러가 정정된 가중치(WT')를 사용하여 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다. For example, the second
이하에서, 본 발명의 기술적 특징을 용이하게 설명하기 위하여, 머신 러닝 코어(132)에 의해 수행되는 스페셜 동작은 음성 인식 동작인 것으로 가정한다. 즉, 호스트(11)로부터 제공된 스페셜 데이터(SDT)는 음성 데이터(voice data)이고, 머신 러닝 코어(132)는 스페셜 데이터(SDT)에 대한 스페셜 동작(즉, 음성 인식 동작)을 수행하여, 결과 데이터(RDT)를 출력할 수 있다. 이 때, 결과 데이터(RDT)는 음성 데이터에 대응하는 텍스트 데이터일 수 있다.Hereinafter, in order to easily describe the technical features of the present invention, it is assumed that the special operation performed by the
머신 러닝 코어(132)는 특징 추출 모듈(132a), 음향 모델(132b), 및 디코딩 모듈(132c)을 포함할 수 있다. 특징 추출 모듈(132a)은 수신된 스페셜 데이터(SDT)에 대한 특징 추출 동작을 수행하여, 프레임 단위의 정보를 음향 모델(132b)로 제공할 수 있다. 음향 모델(132b)은 에러가 정정된 가중치(WT')를 사용하여 프레임 단위의 정보에 대한 음성 인식을 수행할 수 있다. 디코딩 모듈(132c)은 음향 모델(132b)로부터 음성 인식 결과를 수신하고, 수신된 음성 인식 결과에 대응되는 결과 데이터(RDT)(즉, 텍스트 데이터)를 출력할 수 있다. 예시적인 실시 예에서, 머신 러닝 코어(132)의 상술된 동작은 머신 러닝 알고리즘, 신경망 알고리즘 등과 같은 인공 지능 알고리즘에 기반될 수 있다. 예시적인 실시 예에서, 머신 러닝 코어(132)는 상술된 스페셜 동작을 수행하기 위한 적어도 하나의 MAC(multiply accumulate) 연산기를 포함할 수 있다. 즉, 머신 러닝 코어(132)는 적어도 하나의 MAC(multiply accumulate) 연산기를 통해 상술된 가중치(WT) 및 프레임 단위의 정보에 대한 MAC 연산을 수행함으로써, 상술된 스페셜 동작을 수행하도록 구성될 수 있다. The
예시적인 실시 예에서, 프레임 단위가 10ms이고, 음향 모델(132b)에서 사용되는 가중치(WT)가 100MB의 크기를 갖는 것으로 가정한다. 이 경우, 머신 러닝 코어(132)가 스페셜 동작(즉, 음성 인식 동작)을 정상적으로 수행하기 위해서는, 10ms마다 100MB의 가중치(WT)가 음향 모델(132b)로 제공되어져야 할 것이다. 즉, 제2 컨트롤러(130)는 10ms마다 제2 메모리 장치(140)로부터 100MB의 가중치(WT)를 읽어야 할 것이다. 이를 위하여, 제2 메모리 인터페이스 회로(133)는 고속 인터페이스로 구현될 수 있다.In the exemplary embodiment, it is assumed that the frame unit is 10 ms, and the weight WT used in the
예를 들어, 도 4는 제1 컨트롤러(110)의 제1 메모리 인터페이스 회로(116) 및 제2 컨트롤러(130)의 제2 메모리 인터페이스 회로(133)를 예시적으로 보여주는 도면들이다. 도 4에 도시된 바와 같이, 제1 메모리 인터페이스 회로(116)는 일반적인 낸드 인터페이스로 구현될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.For example, FIG. 4 is a diagram exemplarily showing the first
예를 들어, 제1 메모리 인터페이스 회로(116)는 칩 인에이블 신호(CE), 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(WE/), 읽기 인에이블 신호(RE/)을 제1 메모리 장치(120) 또는 제2 컨트롤러(130)로 제공할 수 있고, 데이터 신호들(DQ[1:i])(단, i는 1보다 큰 정수) 및 데이터 스트로브 신호(DQS)를 제1 메모리 장치(120) 또는 제2 컨트롤러(130)과 주고 받을 수 있다. 예시적인 실시 예에서, 도 4에 도시된 제1 메모리 인터페이스 회로(116)와 연관된 신호들은 하나의 채널(예를 들어, 일반 채널(CH_n) 및 전용 채널(CH_d) 중 어느 하나)과 대응되는 신호 구성이다. 도 4에 도시된 신호 구성을 통해 제1 메모리 장치(120) 또는 제2 컨트롤러(130)는 사용자 데이터(UDT) 또는 스페셜 데이터(SDT)를 제1 컨트롤러(110)로부터 수신할 수 있다.For example, the first
제2 메모리 인터페이스 회로(132)는 칩 인에이블 신호(CE), 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(WE/), 읽기 인에이블 신호(RE/)를 제2 메모리 장치(140)로 전송할 수 있고, 데이터 신호들(DQ[1:k])(단, k는 i보다 큰 정수) 및 데이터 스트로브 신호(DQS)를 제2 메모리 장치(140)와 주고 받을 수 있다. 이 때, 제2 메모리 인터페이스 회로(132)의 데이터 신호들(DQ[1:k])의 개수는 제1 메모리 인터페이스 회로(116)의 데이터 신호들(DQ[1:i])의 개수보다 많을 수 있다. 다시 말해서, 제2 메모리 인터페이스 회로(133)의 데이터 입출력 대역이 제1 메모리 인터페이스 회로(116)의 데이터 입출력 대역보다 클 수 있다. 따라서, 제2 메모리 인터페이스 회로(133)의 동작 속도가 제1 메모리 인터페이스 회로(116)의 동작 속도보다 빠를 수 있다. 이에 따라, 제2 컨트롤러(130)는 제2 메모리 장치(140)로부터 고속으로 가중치(WT)를 읽을 수 있다.The second
도 4를 참조하여 설명된 제1 및 제2 메모리 인터페이스 회로들(116, 133)의 구성은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 제1 및 제2 메모리 인터페이스 회로들(116, 133)은 도 4에 도시된 신호 구성과 다른 방식으로 구현될 수 있다. The configuration of the first and second
도 5a 내지 도 5d는 도 1의 제1 메모리 장치 및 제2 메모리 장치를 예시적으로 보여주는 블록도들이다. 도 6은 도 5a 내지 도 5d의 제1 및 제2 메모리 장치들에 포함된 메모리 블록을 예시적으로 보여주는 회로도이다.5A to 5D are block diagrams exemplarily showing the first memory device and the second memory device of FIG. 1. FIG. 6 is a circuit diagram exemplarily showing memory blocks included in the first and second memory devices of FIGS. 5A to 5D.
먼저 도 1, 도 4, 및 도 5a를 참조하면, 제1 메모리 장치(120)는 제1 및 제2 플레인들(PL1, PL2) 및 입출력 회로(121)를 포함할 수 있다. 제1 및 제2 플레인들(PL1, PL2)은 각각 복수의 메모리 블록들을 포함할 수 있다. 입출력 회로(121)는 제1 및 제2 플레인들(PL1, PL2)과 연결되고, 복수의 데이터 라인들(DQ1~DQi)(단, i는 1보다 큰 정수)을 통해 외부 장치(예를 들어, 제1 컨트롤러(110))와 데이터를 주고 받을 수 있다. 예를 들어, 입출력 회로(121)는 복수의 데이터 라인들(DQ1~DQi)과 각각 연결된 복수의 데이터 신호 핀들을 포함할 수 있다. First, referring to FIGS. 1, 4, and 5A, the
다음으로, 도 1, 도 4, 및 도 5b를 참조하면, 제2 메모리 장치(140)는 복수의 플레인들(PL1~PLn) 및 입출력 회로(141)를 포함할 수 있다. 복수의 플레인들(PL1~PLn)(단, n은 1보다 큰 정수) 각각은 복수의 메모리 블록들을 포함할 수 있다. 제2 메모리 장치(140)의 입출력 회로(141)는 복수의 플레인들(PL1~PLn)과 연결되고, 복수의 데이터 라인들(DQ1~DQk)(단, k는 i보다 큰 정수)을 통해 외부 장치(예를 들어, 제2 컨트롤러(130))와 데이터를 주고 받을 수 있다. 예를 들어, 입출력 회로(141)는 복수의 데이터 라인들(DQ1~DQk)와 각각 연결된 복수의 데이터 신호 핀들을 포함할 수 있다.Next, referring to FIGS. 1, 4, and 5B, the
도 5a 및 도 5b에 도시된 바와 같이, 제2 메모리 장치(140)에 포함된 플레인들의 개수는 제1 메모리 장치(120)에 포함된 플레인들의 개수보다 많을 수 있다. 예시적인 실시 예에서, 플레인은 동일한 비트라인들을 공유하는 메모리 블록들의 집합을 의미할 수 있다. 즉, 하나의 플레인에 포함된 메모리 블록들은 서로 동일한 비트라인들을 공유할 수 있다.5A and 5B, the number of planes included in the
예시적인 실시 예에서, 제2 메모리 장치(140)의 데이터 신호 핀들의 개수(즉, DQ 핀의 개수)는 제1 메모리 장치(120)의 데이터 신호 핀들의 개수(즉, DQ 핀의 개수)보다 많을 수 있다. 또는 제2 메모리 장치(140)의 데이터 라인들의 개수는 제1 메모리 장치(120)의 데이터 라인들의 개수보다 많을 수 있다. 즉, 제2 메모리 장치(140)는 제1 메모리 장치(120)보다 빠른 속도로 외부 장치와 데이터를 주고 받을 수 있다.In an exemplary embodiment, the number of data signal pins (ie, the number of DQ pins) of the
예시적인 실시 예에서, 제2 메모리 장치(140)의 플레인들의 개수는 제1 메모리 장치(120)의 플레인들의 개수보다 많기 때문에, 제1 및 제2 메모리 장치들(120, 140)의 DQ 신호 핀들의 배치는 서로 다를 수 있다. 예를 들어, 도 5c에 도시된 바와 같이, 제1 메모리 장치(120)의 DQ 신호 핀들(즉, DQ 패드들)(DQ1~DQi)은 제1 메모리 장치(120)의 에지 영역(EDGE)에 배치될 수 있다. 반면에, 제2 메모리 장치(140)의 DQ 신호 핀들(즉, DQ 패드들)(DQ1~DQk)은 제2 메모리 장치(140)의 센터 영역(CENTER)에 배치될 수 있다. 제2 메모리 장치(140)의 DQ 신호 핀들(DQ1~DQk)이 제2 메모리 장치(140)의 센터 영역(CENTER)에 배치됨에 따라, DQ 신호 핀들(DQ1~DQk) 및 복수의 플레인들(PL1~PLn) 사이의 물리적 거리가 감소되고, 이에 따라 제2 메모리 장치(140)의 고속 동작이 가능할 수 있다. In an exemplary embodiment, since the number of planes of the
예시적인 실시 예에서, 도 5d에 도시된 바와 같이, 제2 메모리 장치(140-1)는 MAC 모듈(multiply accumulate module)(142)를 더 포함할 수 있다. MAC 모듈(142)은 제2 메모리 장치(140-1)에 저장된 가중치(WT)에 대한 MAC 연산을 수행하고, MAC 연산의 결과를 복수의 데이터 라인들(DQ1~DQk)을 통해 출력하도록 구성될 수 있다. 예를 들어, 도 3을 참조하여 설명된 바와 같이, 제2 컨트롤러(130)의 머신 러닝 코어(132)는 가중치(WT)에 대한 MAC 연산을 수행하도록 구성될 수 있다. 이 때, 제2 메모리 장치(140-1)에서 가중치(WT)에 대한 MAC 연산의 결과를 출력할 경우, 제2 컨트롤러(130)에서 수행될 MAC 연산에 대한 연산 부담이 경감될 수 있다. 즉, 스토리지 장치(100)의 구현 방식에 따라 MAC 모듈은 제2 메모리 장치(140)에 포함되거나 또는 제2 컨트롤러(120)에 포함될 수 있다.In an exemplary embodiment, as illustrated in FIG. 5D, the second memory device 140-1 may further include a multiply accumulate module (MAC)
예시적인 실시 예에서, 제1 및 제2 메모리 장치들(120, 140) 각각의 플레인들에 포함된 복수의 메모리 블록들 각각은 서로 동일한 셀-타입(예를 들어, CTF)의 메모리 셀들을 포함할 수 있다. 예를 들어, 제1 및 제2 메모리 장치들(120, 140) 각각의 플레인들에 포함된 복수의 메모리 블록들 각각은 도 6에 도시된 메모리 블록(BLK)과 유사한 구조를 가질 수 있다. In an exemplary embodiment, each of the plurality of memory blocks included in the planes of each of the first and
예시적으로, 도 6을 참조하여 3차원 구조의 메모리 블록이 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 본 발명에 따른 메모리 블록은 2차원 구조의 메모리 블록의 구조를 가질 수 있다. 예시적으로, 도 6에 도시된 메모리 블록은 제1 및 제2 메모리 장치들(120, 140) 각각의 물리적 소거 단위일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 소거 단위는 페이지 단위, 워드라인 단위, 서브 블록 단위 등으로 변형될 수 있다. Illustratively, a memory block having a three-dimensional structure is described with reference to FIG. 6, but the scope of the present invention is not limited thereto. The memory block according to the present invention may have a two-dimensional memory block structure. For example, the memory block illustrated in FIG. 6 may be a physical erase unit of each of the first and
도 6을 참조하면, 메모리 블록(BLK)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.Referring to FIG. 6, the memory block BLK includes a plurality of cell strings CS11, CS12, CS21, and CS22. The plurality of cell strings CS11, CS12, CS21, and CS22 may be arranged along a row direction and a column direction to form rows and columns.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.Each of the plurality of cell strings CS11, CS12, CS21, and CS22 includes a plurality of cell transistors. For example, each of the plurality of cell strings CS11, CS12, CS21, and CS22 includes string select transistors SSTa and SSTb, a plurality of memory cells MC1 to MC8, and ground select transistors GSTa and GSTb. And dummy memory cells DMC1 and DMC2. For example, each of the plurality of cell transistors included in the plurality of cell strings CS11, CS12, CS21, and CS22 may be a charge trap flash (CTF) memory cell.
복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평면과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.The memory cells MC1 to MC8 are connected in series, and are stacked in a height direction, which is a direction perpendicular to a plane formed by the row direction and the column direction. The string select transistors SSTa and SSTb are connected in series, and the string select transistors SSTa and SSTb connected in series are provided between the plurality of memory cells MC1 to MC8 and the bit line BL. The ground selection transistors GSTa and GSTb are connected in series, and the series connected ground selection transistors GSTa and GSTb are provided between the plurality of memory cells MC1 to MC8 and the common source line CSL.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택 트랜지스터들(GSTa, GSTb) 사이에 제1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택 트랜지스터들(SSTa, SSTb) 사이에 제2 더미 메모리 셀(DMC2)이 제공될 수 있다. For example, the first dummy memory cell DMC1 may be provided between the plurality of memory cells MC1 to MC8 and the ground selection transistors GSTa and GSTb. For example, the second dummy memory cell DMC2 may be provided between the plurality of memory cells MC1 to MC8 and the string select transistors SSTa and SSTb.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 접지 선택 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결될 수 있고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 접지 선택 트랜지스터들(GSTa)은 제2 접지 선택 라인에 연결될 수 있다.The ground select transistors GSTa and GSTb of the cell strings CS11, CS12, CS21, and CS22 may be commonly connected to the ground select line GSL. For example, ground select transistors in the same row may be connected to the same ground select line, and ground select transistors in another row may be connected to a different ground select line. For example, the first ground select transistors GSTa of the cell strings CS11 and CS12 of the first row may be connected to the first ground select line, and the cell strings CS21 and CS22 of the second row may be connected. The first ground selection transistors GSTa may be connected to the second ground selection line.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다.Illustratively, although not shown in the drawings, ground selection transistors provided at the same height from a substrate (not shown) may be connected to the same ground selection line, and ground selection transistors provided at different heights may be connected to different ground selection lines. You can.
기판 또는 접지 선택 트랜지스터(GSTa, GSTb)으로부터 동일한 높이의 메모리 셀들은 동일한 워드 라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드 라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 내지 제8 메모리 셀들(MC8)은 제1 내지 제8 워드라인들(WL1~WL8)에 각각 공통으로 연결된다.Memory cells of the same height from the substrate or ground selection transistors GSTa and GSTb are commonly connected to the same word line, and memory cells of different heights are connected to different word lines. For example, the first to eighth memory cells MC8 of the cell strings CS11, CS12, CS21, and CS22 are commonly connected to the first to eighth word lines WL1 to WL8, respectively.
동일한 높이의 제1 스트링 선택 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.The string select transistors of the same row among the first string select transistors SSTa of the same height are connected to the same string select line, and the string select transistors of the other row are connected to another string select line. For example, the first string select transistors SSTa of the cell strings CS11 and CS12 in the first row are commonly connected to the string select line SSL1a and the cell strings CS21 and CS22 in the second row. ), The first string select transistors SSTa are commonly connected to the string select line SSL1a.
마찬가지로, 동일한 높이의 제2 스트링 선택 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.Similarly, the string select transistors of the same row among the second string select transistors SSTb of the same height are connected to the same string select line, and the string select transistors of the other row are connected to another string select line. For example, the second string select transistors SSTb of the cell strings CS11 and CS12 in the first row are commonly connected to the string select line SSL1b and the cell strings CS21 and CS22 in the second row. ), The second string select transistors SSTb are commonly connected to the string select line SSL2b.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제1 더미 메모리 셀들(DMC1)은 제1 더미 워드라인(DWL1)과 연결되고, 제2 더미 메모리 셀들(DMC2)은 제2 더미 워드라인(DWL2)과 연결된다. For example, dummy memory cells of the same height are connected to the same dummy word line, and dummy memory cells of different heights are connected to another dummy word line. For example, the first dummy memory cells DMC1 are connected to the first dummy word line DWL1, and the second dummy memory cells DMC2 are connected to the second dummy word line DWL2.
예시적으로, 도 6에 도시된 메모리 블록(BLK)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 메모리 블록(BLK)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들은 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 메모리 블록(BLK)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.For example, the memory block BLK illustrated in FIG. 6 is exemplary, and the number of cell strings may increase or decrease, and the number of rows and columns of the cell strings may increase or decrease according to the number of cell strings, or Can decrease. In addition, the number of cell transistors (GST, MC, DMC, SST, etc.) of the memory block BLK may be increased or decreased, respectively, and the height of the memory block BLK may be increased or decreased according to the number of cell transistors. can do. Also, the number of lines (GSL, WL, DWL, SSL, etc.) connected to the cell transistors may be increased or decreased according to the number of cell transistors.
도 7은 도 1의 스토리지 장치의 동작을 보여주는 순서도이다. 이하에서, 본 발명의 기술적 사상을 용이하게 설명하기 위하여, 스토리지 장치(100)는 호스트(11)로부터 쓰기 요청 및 데이터를 수신하는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.7 is a flowchart illustrating an operation of the storage device of FIG. 1. Hereinafter, in order to easily describe the technical idea of the present invention, it is assumed that the
도 1 및 도 7을 참조하면, S111 단계에서, 스토리지 장치(100)는 호스트(11)로부터 쓰기 요청 및 입력 데이터를 수신할 수 있다. 예를 들어, 호스트(11)는 스토리지 장치(100)로 입력 데이터(예를 들어, 사용자 데이터 또는 스페셜 데이터)를 전송하기 위하여, 스토리지 장치(100)로 쓰기 요청을 전송할 수 있다. 1 and 7, in step S111, the
S112 단계에서, 스토리지 장치(100)는 수신된 쓰기 요청이 스페셜 동작에 관한 것인지 판별할 수 있다. 예를 들어, 스토리지 장치(100)의 제1 컨트롤러(110)의 입출력 라우터(111)는 수신된 쓰기 요청에 대응하는 어드레스 정보, 논리적 유닛 정보, 또는 쓰기 요청의 속성 등을 기반으로 수신된 쓰기 요청이 일반 동작에 관한 것인지 또는 스페셜 동작에 관한 것인지 판별할 수 있다. S112 단계의 동작은 도 8a 내지 도 8d를 참조하여 더욱 상세하게 설명된다.In step S112, the
수신된 쓰기 요청이 스페셜 동작에 관한 것이 아닌 경우(즉, 수신된 쓰기 동작이 일반 동작에 관한 것인 경우), S113 단계에서, 스토리지 장치(100)는 일반 채널(CH_n)을 통해 제1 메모리 장치(130)에 대한 쓰기 동작(또는 프로그램 동작)을 수행할 수 있다. 예를 들어, 제1 컨트롤러(110)는 호스트(11)로부터 수신된 쓰기 요청에 응답하여, 수신된 입력 데이터(즉, 사용자 데이터(UDT))를 제1 메모리 장치(130)로 전송하고, 제1 메모리 장치(130)는 수신된 사용자 데이터(UDT)에 대한 프로그램 동작을 수행할 수 있다. When the received write request is not related to a special operation (that is, when the received write operation is related to a general operation), in step S113, the
S114 단계에서, 스토리지 장치(100)는 쓰기 요청에 대한 결과를 호스트(11)로 전송할 수 있다. 예를 들어, 제1 컨트롤러(110)는 제1 메모리 장치(130)에 대한 프로그램 동작의 결과(예를 들어, 프로그램 패스/페일)를 수신하고, 수신된 결과에 대응하는 정보를 쓰기 요청에 대한 응답(response)으로서 호스트(11)로 전송할 수 있다. 예시적인 실시 예에서, 제1 메모리 장치(130)에 대한 프로그램 동작의 결과가 프로그램 페일인 경우, 스토리지 장치(100)는 사용자 데이터에 대한 프로그램 동작을 재수행할 수 있다. In step S114, the
S112 단계의 판결 결과가, 수신된 쓰기 요청이 스페셜 동작에 관한 것임을 가리키는 경우, S115 단계에서, 스토리지 장치(100)는 전용 채널(CH_d)을 통해 입력 데이터(즉, 스페셜 데이터(SDT))를 제2 컨트롤러(130)로 전송할 수 있다.When the judgment result of step S112 indicates that the received write request is related to a special operation, in step S115, the
S116 단계에서, 스토리지 장치(100)는 제2 메모리 장치(140)에 저장된 가중치(WT)를 사용하여 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다. 예를 들어, 제2 컨트롤러(130)는 제2 메모리 인터페이스(IF2)를 통해 제2 메모리 장치(140)로부터 가중치(WT)를 읽고, 읽은 가중치(WT)를 사용하여, 제1 메모리 인터페이스(IF1)의 전용 채널(CH_d)을 통해 제공된 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다.In operation S116, the
예시적인 실시 예에서, 앞서 설명된 바와 같이, 제1 컨트롤러(110)는 제2 컨트롤러(130)로 스페셜 데이터(SDT)를 제공하기 위하여, 프로그램 커맨드를 사용할 수 있다. 즉, 제2 컨트롤러(130)는 제1 컨트롤러(110)로부터 전용 채널(CH_d)을 통해 프로그램 커맨드 및 스페셜 데이터(SDT)를 수신하고, 수신된 프로그램 커맨드에 응답하여, 스페셜 데이터(SDT)에 대한 스페셜 동작을 수행할 수 있다.In an exemplary embodiment, as described above, the
S117 단계에서, 스토리지 장치(100)는 호스트(11)로 응답(response)을 전송할 수 있다. 예를 들어, 제2 컨트롤러(130)가 스페셜 동작을 완료한 경우, 스토리지 장치(100)의 제1 컨트롤러(110)는 수신된 쓰기 요청에 대한 응답을 호스트(11)로 전송할 수 있다. In step S117, the
S118 단계에서, 스토리지 장치(100)는 호스트(11)로부터 스페셜 동작에 대한 읽기 요청을 수신할 수 있다. 예를 들어, 호스트(11)는 스토리지 장치(100)로부터의 응답(다시 말해서, 스페셜 동작의 완료를 가리키는 응답)에 응답하여, 스페셜 동작에 대한 결과 데이터(RDT)를 읽기 위한 읽기 요청을 스토리지 장치(100)로 전송할 수 있다. 예시적인 실시 예에서, S118 단계의 읽기 요청은 이하의 도 8a 내지 도 8d를 참조하여 설명될 제2 컨트롤러(130)를 액세스하기 위한 전용 어드레스 정보, 전용 논리적 유닛 정보 등을 포함하거나 또는 전용 읽기 요청일 수 있다.In step S118, the
S119 단계에서, 스토리지 장치(100)는 수신된 읽기 요청에 응답하여, 스페셜 동작의 결과(즉, 결과 데이터(RDT))를 호스트(11)로 전송할 수 있다. In step S119, the
도 8a 내지 도 8d는 도 5의 S112의 판별 동작을 설명하기 위한 도면들이다. 간결한 설명을 위하여, 본 발명의 기술적 사상을 설명하는데 불필요한 구성 요소들은 생략된다. 예시적인 실시 예에서, 도 8a 내지 도 8d에 도시된 실시 예들은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다.8A to 8D are views for explaining the determination operation of S112 in FIG. 5. For the sake of brevity, elements unnecessary for describing the technical idea of the present invention are omitted. In the exemplary embodiment, the embodiments illustrated in FIGS. 8A to 8D are exemplary, and the scope of the present invention is not limited thereto.
먼저, 도 8a를 참조하면, 호스트(11)는 호스트 애플리케이션(11a) 및 장치 드라이버(11b)를 포함할 수 있다. 호스트 애플리케이션(11a)은 호스트(11) 상에서 구동되는 운영 체제(OS; operating system) 또는 다양한 사용자 프로그램들 등을 포함할 수 있다. First, referring to FIG. 8A, the
장치 드라이버(11b)는 호스트 애플리케이션(11a)의 요청에 따라 스토리지 장치(100)를 액세스하도록 구성될 수 있다. 예를 들어, 장치 드라이버(11b)는 호스트 애플리케이션(11a)에서 요청된 동작이 스토리지 장치(100)에서 수행될 수 있도록, 호스트로 애플리케이션(11a)으로부터 제공된 정보를 스토리지 장치(100)에서 식별 가능한 정보로 변환하거나 또는 관리하도록 구성될 수 있다. 예시적인 실시 예에서, 도 8b 내지 도 8d를 참조하여 설명되는 전용 어드레스 정보, 전용 논리적 유닛 정보, 전용 요청 등은 장치 드라이버(11b)에 의해 변환되거나 또는 관리될 수 있다.The
다음으로, 도 1, 도 8a, 및 도 8b를 참조하면, 호스트(11)는 스토리지 장치(100)의 저장 영역을 도 8b에 도시된 바와 같이 인식할 수 있다. 예를 들어, 스토리지 장치(100)의 저장 공간은 사용자 영역(User Area) 및 전용 영역(Dedicated Area)을 포함할 수 있다. 사용자 영역(User Area)은 스토리지 장치(100)에서 사용자 데이터(UDT)를 저장할 수 있는 공간과 대응될 수 있고, 전용 영역(Dedicated Area)은 미리 정해진 별도의 공간 또는 가상 공간과 대응될 수 있다.Next, referring to FIGS. 1, 8A, and 8B, the
호스트(11), 좀 더 상세하게는, 호스트(11)의 호스트 애플리케이션(11a)은 스토리지 장치(100)의 사용자 영역(User Area)에 대한 액세스를 수행할 수 있다. 즉, 호스트 애플리케이션(11a)은 스토리지 장치(100)의 사용자 영역(User Area)에 대한 데이터 쓰기, 읽기, 소거 등의 동작을 수행할 수 있다. The
반면에, 호스트(11)의 장치 드라이버(11b)는 스토리지 장치(100)의 사용자 영역(User Area) 및 전용 영역(Dedicated Area)을 인식할 수 있다. 호스트 애플리케이션(11a)이 스토리지 장치(100)에 대한 일반 동작(예를 들어, 사용자 데이터 읽기, 사용자 데이터 쓰기 등)을 요청한 경우, 장치 드라이버(11b)는 사용자 영역(User Area)의 일반 어드레스(Normal Address)를 갖는 요청을 스토리지 장치(100)로 전송할 수 있다. 이 경우, 스토리지 장치(100)는 사용자 영역(User) 중 수신된 일반 어드레스에 대응하는 영역에 대한 일반 동작을 수행할 수 있다.On the other hand, the
호스트 애플리케이션(11a)이 스페셜 동작을 요청한 경우, 장치 드라이버(11b)는 전용 영역(Dedicated Area)의 전용 어드레스(Dedicated Address)를 갖는 요청을 스토리지 장치(100)로 전송할 수 있다. 이 경우, 스토리지 장치(100)는 수신된 요청에 포함된 전용 어드레스에 응답하여, 스페셜 동작을 수행할 수 있다. 즉, 스토리지 장치(100)의 제1 컨트롤러(110)는 전용 어드레스를 갖는 요청에 대응하는 입력 데이터(즉, 스페셜 데이터(SDT))를 제2 컨트롤러(130)로 전달할 수 있다. When the
다음으로, 도 1, 도 8a, 및 도 8c를 참조하면, 스토리지 장치(100)의 저장 공간은 논리적 유닛(logical unit) 단위로 구분될 수 있다. 예시적인 실시 예에서, 논리적 유닛(logical unit)은 호스트(11)로부터의 요청을 독립적으로 처리할 수 있는 지정 가능한 독립적인 객체를 가리킬 수 있다.Next, referring to FIGS. 1, 8A, and 8C, the storage space of the
호스트 애플리케이션(11a)은 스토리지 장치(100)의 저장 공간을 제1 내지 제n 논리적 유닛들로 인식할 수 있다. 반면에, 장치 드라이버(11b)는 스토리지 장치(100)의 저장 공간을 제1 내지 제n 논리적 유닛들 및 전용 논리적 유닛으로 인식할 수 있다.The
도 8b를 참조하여 설명된 바와 유사하게, 호스트 애플리케이션(11a)이 스토리지 장치(100)에 대한 일반 동작을 요청한 경우, 장치 드라이버(11b)는 제1 내지 제n 논리적 유닛들 중 어느 하나에 대한 정보를 포함하는 요청을 스토리지 장치(100)로 전송할 수 있다. 제1 내지 제n 논리적 유닛들 중 어느 하나에 대한 정보를 포함하는 요청에 응답하여, 스토리지 장치(100)는 대응하는 논리적 유닛에 대한 일반 동작을 수행할 수 있다.Similar to that described with reference to FIG. 8B, when the
호스트 애플리케이션(11a)이 스페셜 동작을 요청한 경우, 장치 드라이버(11b)는 전용 논리적 유닛에 대한 정보를 포함하는 요청을 스토리지 장치(100)로 전송할 수 있다. 스토리지 장치(100)는 전용 논리적 유닛에 대한 정보를 포함하는 요청에 응답하여, 스페셜 동작을 수행할 수 있다. When the
다음으로, 도 1, 도 8a, 및 도 8d를 참조하면, 장치 드라이버(11b)는 일반 동작을 위한 요청 및 스페셜 동작을 위한 요청을 명시적으로 구분하여 스토리지 장치(100)로 전송할 수 있다. 예를 들어, 도 8b 및 도 8c를 참조하여 설명된 실시 예들에서, 장치 드라이버(11b)는 일반적인 쓰기 커맨드에 전용 어드레스에 대한 정보 또는 전용 논리적 유닛에 대한 정보를 추가함으로써, 스페셜 동작을 위한 요청을 발행할 수 있다.Next, referring to FIGS. 1, 8A, and 8D, the
반면에, 도 8d에 도시된 실시 예에서, 장치 드라이버(11b)는 일반 동작을 위한 요청과 명시적으로 구분된 스페셜 동작을 위한 요청을 발행할 수 있다. 즉, 장치 드라이버(11b)로부터 쓰기 요청(WR RQ)이 수신된 경우, 스토리지 장치(100)의 입출력 라우터(111)는 수신된 쓰기 요청(WR RQ)을 제1 메모리 장치(120)로 전달할 수 있다. 장치 드라이버(11b)로부터 쓰기 요청(WR RQ)과 명시적으로 구분되는 스페셜 동작 요청(SP RQ)이 수신되는 경우, 입출력 라우터(111)는 수신된 스페셜 동작 요청(SP RQ)을 제2 컨트롤러(130)로 전달할 수 있다. On the other hand, in the embodiment shown in FIG. 8D, the
예시적인 실시 예에서, 스페셜 동작 요청(SP RQ)은 호스트(11) 및 스토리지 장치(100) 사이의 프로토콜에 의해 정의된 요청 또는 커맨드들 중 하나, 예비 커맨드, 또는 제조사 커맨드(vendor specific command)일 수 있다. 또는 스페셜 동작 요청(SP RQ)은 특정 요청 또는 커맨드의 예비 필드에 특정 값을 설정함으로써 발행될 수 있다. In an exemplary embodiment, the special operation request (SP RQ) may be one of a request or commands defined by a protocol between the
도 8a 내지 도 8d를 참조하여 설명된 구성들은 본 발명의 기술적 사상을 용이하게 설명하기 위한 예시적인 것들이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 호스트(11) 및 스토리지 장치(100) 사이의 미리 정해진 프로토콜에 따라 일반 동작 및 스페셜 동작을 구분하기 위한 다양한 방식이 사용될 수 있다.The configurations described with reference to FIGS. 8A to 8D are exemplary for easily explaining the technical spirit of the present invention, and the scope of the present invention is not limited thereto. Various methods for distinguishing general operations and special operations according to a predetermined protocol between the
예시적인 실시 예에서, 도 8a 내지 도 8d를 참조하여 설명된 실시 예들에서, 호스트(11)의 장치 드라이버(11b)가 일반 동작 및 스페셜 동작을 구분하기 위한 관리를 수행하는 것으로 설명되었으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 호스트(11)의 호스트 애플리케이션(11a)은 상술된 장치 드라이버(11b)의 동작을 수행하도록 구성될 수 있다. In the exemplary embodiment, in the embodiments described with reference to FIGS. 8A to 8D, the
도 9a 및 도 9b는 도 1의 호스트 및 스토리지 장치의 동작을 상세하게 보여주는 순서도들이다. 도 9a를 참조하여, 스토리지 장치(100)의 일반 동작이 설명되고, 도 9b를 참조하여, 스토리지 장치(100)의 스페셜 동작이 설명된다. 이하에서, 설명의 편의를 위하여, 본 발명의 기술적 사상을 설명하는데 불필요한 구성 요소들은 생략된다.9A and 9B are flowcharts showing details of operations of the host and the storage device of FIG. 1. 9A, a general operation of the
도 1, 도 7, 및 도 9a를 참조하면, S111-1 단계에서, 호스트(11)는 스토리지 장치(100)에 데이터를 기입하기 위하여, 데이터(즉, 사용자 데이터(UDT))와 함께 쓰기 요청을 제1 컨트롤러(110)로 전송할 수 있다. 예를 들어, 호스트(11)는 스토리지 장치(100)와 미리 정해진 프로토콜에 따른 통신 방식을 기반으로, 데이터와 함께 쓰기 요청을 제1 컨트롤러(110)로 전송할 수 있다. 이 때, 쓰기 요청은, 도 8a 내지 도 8d를 참조하여 설명된 바와 같이, 일반 쓰기 요청이거나, 일반 어드레스 정보를 포함하거나, 또는 제1 내지 제n 논리적 유닛들 중 어느 하나의 정보를 포함할 수 있다. 1, 7, and 9A, in step S111-1, the
S113-1 단계에서, 제1 컨트롤러(110)는 수신된 쓰기 요청에 응답하여, 쓰기 커맨드(WR CMD) 및 데이터를 제1 메모리 장치(120)로 전송할 수 있다. 예를 들어, 수신된 쓰기 요청이 일반 동작에 관한 것인 경우, 제1 컨트롤러(110)는 수신된 쓰기 요청에 응답하여, 제1 메모리 인터페이스(IF1)의 일반 채널(CH_n)을 통해 쓰기 커맨드(WR CMD) 및 데이터를 제1 메모리 장치(120)로 전송할 수 있다. In step S113-1, the
S113-2 단계에서, 제1 메모리 장치(120)는 수신된 쓰기 커맨드(WR CMD)에 응답하여, 수신된 데이터에 대한 프로그램 동작(즉, 쓰기 동작)을 수행할 수 있다. S113-3 단계에서, 제1 컨트롤러(110)는 제1 메모리 장치(120)로부터 프로그램 동작의 결과(즉, 프로그램 패스/페일(PGM P/F))에 대한 정보를 수신할 수 있다. S114 단계에서, 제1 컨트롤러(110)는 호스트(11)로 쓰기 요청에 대한 응답을 전송할 수 있다.In step S113-2, the
비록 도면에 도시되지는 않았으나, S113-3 단계에서 수신된 프로그램 동작의 결과가 프로그램 페일을 가리키는 경우, 제1 컨트롤러(110)는 프로그램 동작을 재수행하기 위한 커맨드를 제1 메모리 장치(120)로 전송할 수 있다.Although not shown in the drawing, when the result of the program operation received in step S113-3 indicates a program fail, the
예시적인 실시 예에서, 제1 컨트롤러(110)는 S111-1 단계에서 수신된 데이터를 제1 메모리 장치(120)에 직접 기입하기 전에, 호스트(11)로 응답을 전송할 수 있다. 예를 들어, 제1 컨트롤러(110)는 별도의 버퍼 메모리에 상술된 데이터를 저장한 이후에, 호스트(11)로 응답을 전송할 수 있다. 이후에, 컨트롤러(11)는 별도의 버퍼 메모리에 저장된 데이터를 제1 메모리 장치(120)에 프로그램할 수 있다. In an exemplary embodiment, the
S120 단계에서, 호스트(11)는 스토리지 장치(100)에 저장된 데이터를 읽기 위하여, 읽기 요청을 스토리지 장치(100)로 전송할 수 있다. S121 단계에서, 제1 컨트롤러(110)는 읽기 요청에 응답하여 제1 메모리 장치(120)로 읽기 커맨드(RD CMD)를 전송할 수 있다. S122 단계에서, 제1 컨트롤러(110)는 제1 메모리 장치(120)로부터 읽기 데이터를 수신할 수 있다. S123 단계에서, 제1 컨트롤러(110)는 읽기 데이터를 호스트(11)로 전송할 수 있다. 예시적인 실시 예에서, 읽기 데이터는 S120 단계에서 수신된 읽기 요청에 포함된 어드레스 정보와 대응되는 데이터일 수 있다. In step S120, the
다음으로, 도 1, 도 7, 및 도 9b를 참조하면, S111-2 단계에서, 호스트(11)는 스페셜 동작을 수행하기 위하여, 쓰기 요청 및 데이터를 제1 컨트롤러(110)로 전송할 수 있다. 이 때, 쓰기 요청은, 도 8b 및 도 8c를 참조하여 설명된 바와 같이, 전용 어드레스에 대한 정보 또는 전용 논리적 유닛에 대한 정보를 포함할 수 있다. 또는 도 8d를 참조하여 설명된 바와 같이, 쓰기 요청은 일반적인 쓰기 요청과 명시적으로 구분되는 요청(즉, 도 6d의 머신 러닝 요청(ML RQ))일 수 있다. Next, referring to FIGS. 1, 7, and 9B, in step S111-2, the
S115 단계에서, 제1 컨트롤러(110)는 제1 메모리 인터페이스(IF1)의 전용 채널(CH_d)을 통해, 수신된 데이터(즉, 스페셜 데이터(SDT))를 제2 컨트롤러(130)로 전송할 수 있다. In step S115, the
S116-1 단계에서, 제2 컨트롤러(130)는 제2 메모리 인터페이스(IF2)를 통해 제2 메모리 장치(140)로부터 가중치(WT)를 읽을 수 있다. S116-2 단계에서, 제2 컨트롤러(130)는 읽은 가중치(WT)를 사용하여, 수신된 데이터(즉, 스페셜 데이터(SDT))에 대한 스페셜 동작을 수행할 수 있다. S116-3 단계에서, 제2 컨트롤러(130)는 스페셜 동작이 완료되었는지 판별할 수 있다. 스페셜 동작이 완료되지 않은 경우, 제2 컨트롤러(130)는 S116-1 단계의 동작을 수행할 수 있다. 즉, 제2 컨트롤러(130)는, 도 3을 참조하여 설명된 바와 같이, 제2 메모리 장치(120)로부터 가중치(WT)를 읽고, 읽은 가중치(WT)를 기반으로 수신된 데이터에 대한 스페셜 동작을 프레임 단위로 반복하여 수행할 수 있다.In step S116-1, the
스페셜 동작이 완료된 경우, 제2 컨트롤러(130)는 제1 컨트롤러(110)의 제어에 따라, 스페셜 동작의 결과(즉, 스페셜 동작의 패스/페일(ML P/F))를 전송할 수 있다. 예시적인 실시 예에서, 제1 컨트롤러(110)는 상태 읽기(status read)를 통해 스페셜 동작의 결과를 제2 컨트롤러(130)로부터 읽을 수 있다.When the special operation is completed, the
S117 단계에서, 제1 컨트롤러(110)는 S111-2 단계의 쓰기 요청에 대한 응답을 호스트(11)로 전송할 수 있다. S118 단계에서, 호스트(11)는 S117 단계의 응답에 응답하여, 스페셜 동작의 결과(즉, 결과 데이터(RDT))를 읽기 위한 읽기 요청을 제1 컨트롤러(110)로 전송할 수 있다. S119-1 단계에서, 제1 컨트롤러(110)는 제2 컨트롤러(130)로 읽기 커맨드(RD CMD)를 전송할 수 있다. S119-2 단계에서, 제2 컨트롤러(130)는 읽기 커맨드(RD CMD)에 응답하여, 결과 데이터(RDT)를 제1 컨트롤러(110)로 전송할 수 있다. S119-3 단계에서, 제1 컨트롤러(110)는 결과 데이터(RDT)를 호스트(11)로 전송할 수 있다. In step S117, the
예시적인 실시 예에서, S118 단계의 읽기 요청은 도 8a 내지 도 8d를 참조하여 설명된 바와 유사하게, 전용 어드레스에 대한 정보 또는 전용 논리적 유닛에 대한 정보를 포함하거나 또는 일반적인 읽기 요청과 명시적으로 구분되는 요청일 수 있다.In an exemplary embodiment, the read request in step S118 includes information about a dedicated address or information about a dedicated logical unit, or is explicitly distinguished from a general read request, similar to that described with reference to FIGS. 8A to 8D. It can be a request.
예시적인 실시 예에서, 제1 컨트롤러(110)는 S118 단계의 읽기 요청이 수신되기 이전에, S119-1 단계 및 S119-2 단계의 동작들을 미리 수행할 수 있다. In an exemplary embodiment, before the read request of step S118 is received, the
상술된 바와 같이, 본 발명의 실시 예에 따른 스토리지 장치(100)는 일반 동작(즉, 사용자 데이터에 대한 읽기, 쓰기, 소거 등의 동작) 및 스페셜 동작(예를 들어, 음성 인식, 이미지 분류, 이미지 식별 등의 동작)을 수행할 수 있다. 따라서, 스페셜 동작(예를 들어, 머신 러닝, 인공 지능 등에 기반된 동작)을 수행하기 위한 호스트의 연산 또는 데이터 센터 사용 등의 부담이 경감될 수 있기 때문에, 향상된 성능 및 감소된 비용을 갖는 스토리지 장치가 제공된다.As described above, the
도 10은 도 1의 스토리지 장치의 동작을 보여주는 순서도이다. 도 1 및 도 10을 참조하면, 스토리지 장치(100)는 S121 단계 내지 S126 단계의 동작들을 수행할 수 있다. 도 8의 S121 단계 내지 S126 단계의 동작들은 도 5의 S111 단계 내지 S116 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.10 is a flowchart illustrating an operation of the storage device of FIG. 1. 1 and 10, the
S127 단계에서, 스토리지 장치(100)는 스페셜 동작의 결과를 포함하는 응답을 호스트(11)로 전송할 수 있다. 예를 들어, 스토리지 장치(100)는 S121 단계의 쓰기 요청에 대한 응답을 패킷 단위로 호스트(11)로 전송할 수 있다. 이 경우, 스페셜 동작의 결과(즉, 결과 데이터(RDT))가 상술된 응답에 포함될 수 있다. 호스트(11)는 결과 데이터(RDT)가 포함된 응답을 수신하고, 수신된 응답을 기반으로, 추가적인 읽기 동작 없이 스페셜 동작의 결과를 확인할 수 있다.In step S127, the
도 11은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다. 이하에서, 설명의 편의를 위하여, 앞서 설명된 실시 예들과 중복되는 구성 요소들에 대한 상세한 설명은 생략된다. 11 is a block diagram showing a storage device according to an embodiment of the present invention. Hereinafter, for convenience of description, detailed descriptions of components overlapping with the above-described embodiments are omitted.
도 11을 참조하면, 스토리지 장치(200)는 제1 컨트롤러(210), 제1 메모리 장치(220), 및 제2 메모리 장치(240)를 포함할 수 있다. 제1 컨트롤러(210)는 호스트(21)와 통신할 수 있다. 제1 컨트롤러(210)는 제1 메모리 인터페이스(IF1)를 통해 사용자 데이터(UDT)를 저장하는 제1 메모리 장치(220)와 통신할 수 있고, 제2 메모리 인터페이스(IF2)를 통해 가중치(WT)를 저장하는 제2 메모리 장치(240)와 통신할 수 있다. 예시적인 실시 예에서, 제2 메모리 인터페이스(IF2)의 동작 속도는 제1 메모리 인터페이스(IF1)의 동작 속도보다 빠를 수 있다. 제1 및 제2 메모리 장치들(220, 240)은 앞서 설명된 바와 같이, 동일한 타입의 메모리 셀들을 포함할 수 있다. 제1 및 제2 메모리 장치들(220, 240) 각각은 서로 다른 개수의 데이터 신호 핀들을 포함할 수 있다. 제1 및 제2 메모리 장치들(220, 240)은 도 1 내지 도 6을 참조하여 상세하게 설명되었으므로, 이에 대한 상세한 설명은 생략된다.Referring to FIG. 11, the
예시적인 실시 예에서, 제1 컨트롤러(210)는 제2 컨트롤러(230)를 포함할 수 있다. 도 1을 참조하여 설명된 제1 컨트롤러(110) 및 제2 컨트롤러(130)는 별도의 반도체 장치, 별도의 반도체 다이, 별도의 반도체 칩, 또는 별도의 반도체 패키지로 구성되었으나, 도 9의 제2 컨트롤러(230)는 제1 컨트롤러(210) 내부에 포함될 수 있다. 또는 도 9의 제1 컨트롤러(210) 및 제2 컨트롤러(230)는 하나의 반도체 장치, 하나의 반도체 다이, 하나의 반도체 칩, 또는 하나의 반도체 패키지로 구현될 수 있다. In an exemplary embodiment, the
도 12는 도 11의 컨트롤러를 예시적으로 보여주는 블록도이다. 도 11 및 도 12를 참조하면, 제1 컨트롤러(210)는 입출력 라우터(211), 프로세서(212), SRAM(213), ROM(214), 호스트 인터페이스 회로(215), 제1 메모리 인터페이스 회로(216), 제2 메모리 인터페이스 회로(217), 및 머신 러닝 코어(230)(머신 러닝 코어(230)는 제2 컨트롤러(230)와 대응될 수 있음)를 포함할 수 있다. 12 is a block diagram illustrating the controller of FIG. 11 by way of example. 11 and 12, the
입출력 라우터(211), 프로세서(212), SRAM(213), ROM(214), 호스트 인터페이스 회로(215), 및 제1 메모리 인터페이스 회로(216)는 도 2를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.Since the input /
도 2의 제1 컨트롤러(110)와 달리, 도 12의 제1 컨트롤러(210)는 머신 러닝 코어(230) 및 제2 메모리 인터페이스 회로(217)를 더 포함할 수 있다. 즉, 도 12의 제1 컨트롤러(210)는 호스트(21)로부터 수신된 스페셜 동작에 대한 요청에 응답하여, 제2 메모리 인터페이스 회로(217)를 통해 제2 메모리 장치(240)로부터 가중치(WT)를 읽고, 읽은 가중치(WT)를 사용하여 스페셜 동작을 수행할 수 있다.Unlike the
예시적인 실시 예에서, 앞서 설명된 바와 같이, 제1 메모리 인터페이스 회로(216)는 낸드 플래시 인터페이스를 지원하기 위한 회로일 수 있고, 제2 메모리 인터페이스 회로(217)는 고속 인터페이스를 지원하기 위한 회로일 수 있다. 다시 말해서, 제2 메모리 인터페이스 회로(217)의 동작 속도는 제1 메모리 인터페이스 회로(216)의 동작 속도보다 빠를 수 있다. In an exemplary embodiment, as described above, the first
도 13은 도 11의 스토리지 장치의 동작을 보여주는 순서도이다. 간결한 설명을 위하여, 호스트(21)로부터 수신된 쓰기 요청은 스페셜 동작을 위한 요청인 것으로 가정한다. 13 is a flowchart illustrating the operation of the storage device of FIG. 11. For brevity, it is assumed that the write request received from the
도 11 및 도 13을 참조하면, S211 단계에서, 호스트(21)는 쓰기 요청 및 데이터를 제1 컨트롤러(210)로 전송할 수 있다. 예를 들어, 호스트(21)는 스페셜 동작을 수행하기 위하여, 전용 어드레스에 대한 정보 또는 전용 논리적 유닛에 대한 정보를 포함하는 쓰기 요청, 또는 일반적인 쓰기 요청과 명시적으로 구분되는 머신 러닝 요청을 제1 컨트롤러(210)로 전송할 수 있다.11 and 13, in step S211, the
S212 단계에서, 제1 컨트롤러(210)는 수신된 쓰기 요청(즉, 스페셜 동작을 위한 쓰기 요청)에 응답하여, 제2 메모리 장치(340)로부터 제2 메모리 인터페이스(IF2)를 통해 가중치(WT)를 읽을 수 있다. S213 단계에서, 제1 컨트롤러(210)는 가중치(WT)를 사용하여 수신된 데이터(즉, 스페셜 데이터(SDT))에 대한 스페셜 동작을 수행할 수 있다. S214 단계에서, 제1 컨트롤러(210)는 스페셜 동작이 완료되었는지 판별하고, 스페셜 동작이 완료되지 않은 경우, S212 단계의 동작을 수행한다.In step S212, the
스페셜 동작이 완료된 경우, S215 단계에서, 제1 컨트롤러(210)는 호스트(21)로 응답을 전송할 수 있다. S216 단계에서, 호스트(21)는 수신된 응답에 응답하여, 읽기 요청을 제1 컨트롤러(210)로 전송할 수 있다. S217 단계에서, 제1 컨트롤러(210)는 읽기 요청에 응답하여 결과 데이터(RDT)를 호스트(21)로 전송할 수 있다. When the special operation is completed, in step S215, the
비록 도면에 도시되지는 않았으나, 제1 컨트롤러(210)는 스페셜 동작을 위한 쓰기 요청에 대한 응답으로서, 결과 데이터(RDT)를 포함하는 응답을 호스트(21)로 전송할 수 있다. 이 경우, 호스트(21)로부터 결과 데이터(RDT)를 읽기 위한 읽기 요청이 생략될 수 있다.Although not shown in the drawing, the
도 14는 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다. 도 14를 참조하면, 스토리지 장치(300)는 제1 컨트롤러(310), 제1 메모리 장치(320), 제2 컨트롤러(330), 제2 메모리 장치(340), 및 제3 메모리 장치(350)를 포함할 수 있다. 제1 컨트롤러(310)는 호스트(31)와 통신할 수 있고, 입출력 라우터(311)를 포함할 수 있다. 제1 컨트롤러(310), 제1 메모리 장치(320), 제2 컨트롤러(330), 및 제2 메모리 장치(340)는 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.14 is a block diagram showing a storage device according to an embodiment of the present invention. Referring to FIG. 14, the
도 14의 스토리지 장치(300)는 제3 메모리 장치(350)를 더 포함할 수 있다. 제3 메모리 장치(350)는 스페셜 동작을 위한 참조 데이터(RFDT)를 포함할 수 있고, 제2 컨트롤러(330)와 제3 메모리 인터페이스(IF3)를 기반으로 서로 통신할 수 있다.The
예시적인 실시 예에서, 제3 메모리 인터페이스(IF3)는 제2 메모리 인터페이스(IF2)와 다른 통신 방식에 기반된 인터페이스일 수 있다. 제2 메모리 인터페이스(IF2)는 순차 데이터 읽기에 최적화된 통신 방식일 수 있고, 제3 메모리 인터페이스(IF3)는 랜덤 데이터 읽기에 최적화된 통신 방식일 수 있다. 예를 들어, 도 3을 참조하여 설명된 바와 같이, 머신 러닝 코어(132)에 의해 수행되는 스페셜 동작이 음성 인식 동작인 경우, 참조 데이터(RFDT)는 음향 모델(132b)로부터의 연산 결과를 텍스트로 변환하기 위한 단어 정보와 관련된 데이터일 수 있다. 이 경우, 참조 데이터(RFDT)는 도 3을 참조하여 설명된 디코딩 모듈(132c)에 의해 사용될 수 있다. 이 때, 디코딩 모듈(132c)은 참조 데이터(RFDT)의 일부 데이터를 랜덤하게 읽는 동작을 필요로 할 수 있다. 다시 말해서, 제3 메모리 인터페이스(IF3)가 랜덤 데이터 읽기에 최적화된 통신 방식을 기반으로 구성됨으로써, 제3 메모리 장치(350)에 저장된 참조 데이터(RFDT)에 대한 랜덤 읽기 성능이 최적화될 수 있다.In an exemplary embodiment, the third memory interface IF3 may be an interface based on a communication method different from the second memory interface IF2. The second memory interface IF2 may be a communication method optimized for reading sequential data, and the third memory interface IF3 may be a communication method optimized for reading random data. For example, as described with reference to FIG. 3, when the special operation performed by the
예시적인 실시 예에서, 제1 내지 제3 메모리 장치들(320, 340, 350)은 낸드 플래시 메모리 장치일 수 있다. 즉, 제1 내지 제3 메모리 장치들(320, 340, 350)은 도 5a 내지 도 6을 참조하여 설명된 메모리 장치들과 같이 동일한 타입의 메모리 셀들(예를 들어, 낸드 플래시 메모리 셀, CTF 셀 등)을 포함하는 메모리 장치일 수 있다.In an exemplary embodiment, the first to
또는 제1 내지 제3 메모리 장치들(320, 340, 350) 중 적어도 하나는 다른 종류의 메모리 장치일 수 있다. 예를 들어, 제1 메모리 장치(320)는 대용량 구현에 적합한 메모리 장치일 수 있고, 제2 메모리 장치(340)는 고속으로 동작하는 순차 읽기 동작에 적합한 메모리 장치일 수 있고, 제3 메모리 장치(350)는 고속으로 동작하는 랜덤 읽기 동작에 적합한 메모리 장치일 수 있다.Alternatively, at least one of the first to
도 15는 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다. 도 15를 참조하면, 스토리지 장치(500)는 제1 컨트롤러(510), 제1 메모리 장치(520), 제2 컨트롤러(530), 및 제2 메모리 장치(540)를 포함할 수 있다. 컨트롤러(510)는 호스트(51)와 통신할 수 있다. 스토리지 장치(500)의 구성 요소들은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.15 is a block diagram illustrating a storage device according to an embodiment of the present invention. Referring to FIG. 15, the
앞선 실시 예들과 달리, 도 15의 실시 예에서, 제1 컨트롤러(510)는 제2 메모리 장치(540)를 액세스하도록 구성될 수 있다. 예를 들어, 제1 컨트롤러(510)는 제2 메모리 장치(540)를 액세스하기 위한 커맨드를 전용 채널(CH_d)을 통해 제2 컨트롤러(530)로 제공하고, 제2 컨트롤러(530)는 수신된 커맨드에 응답하여 제2 메모리 장치(540)에 대한 액세스 동작을 수행하고, 액세스 동작의 결과를 전용 채널(CH_d)을 통해 제1 컨트롤러(510)로 제공할 수 있다.Unlike the previous embodiments, in the embodiment of FIG. 15, the
예시적인 실시 예에서, 제1 컨트롤러(510)는 제2 메모리 장치(540)와 제2 일반 채널(CH_n2)을 통해 통신할 수 있다. 예를 들어, 컨트롤러(510)는 제1 일반 채널(CH_n1)을 통해 제1 메모리 장치(520)에 대한 일반 동작을 수행할 수 있고, 전용 채널(CH_d)을 통해 제2 컨트롤러(530)로 스페셜 데이터(SDT)를 제공할 수 있다. 이 때, 컨트롤러(510)는 제2 일반 채널(CH_n2)을 통해 가중치(WT)가 저장된 제2 메모리 장치(540)에 대한 일반 동작을 수행하도록 구성될 수 있다. 예시적인 실시 에에서, 컨트롤러(510)는 제2 일반 채널(CH_n2)을 통해 제2 메모리 장치(540)에 저장된 가중치(WT)를 관리하도록 구성될 수 있다. In an exemplary embodiment, the
도 16은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다. 도 16을 참조하면, 스토리지 장치(600)는 제1 컨트롤러(610), 제1 메모리 장치(620), 제2 컨트롤러(630), 및 제2 메모리 장치(640)를 포함할 수 있다. 컨트롤러(610)는 호스트(61)와 통신할 수 있다. 스토리지 장치(600)의 구성 요소들은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다. 16 is a block diagram showing a storage device according to an embodiment of the present invention. Referring to FIG. 16, the
앞선 실시 예들과 달리, 제1 컨트롤러(610)는 제1 메모리 인터페이스(IF1)를 통해 제1 메모리 장치(620)와 통신하고, 제1 메모리 인터페이스(IF1)와 다른 제3 메모리 인터페이스(IF3)를 통해 제2 컨트롤러(630)와 통신할 수 있다. 즉, 앞선 실시 예들에서, 제1 컨트롤러는 제1 메모리 장치와의 제1 메모리 인터페이스(IF1)에 포함된 특정 채널을 사용하여 제2 컨트롤러와 통신하였으나, 도 15의 실시 예에서는, 제2 컨트롤러(630)와 통신하기 위한 별도의 인터페이스(즉, 제3 메모리 인터페이스(IF3))를 더 포함할 수 있다. Unlike the previous embodiments, the
도 17a 내지 도 17d는 본 발명의 실시 예에 따른 스토리지 장치의 구성을 예시적으로 보여주는 도면들이다. 도면의 간결성 및 설명의 편의를 위하여, 스토리지 장치(1000a, 1000b, 1000c, 1000d)의 일부 구성이 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니다.17A to 17D are views exemplarily showing a configuration of a storage device according to an embodiment of the present invention. For simplicity and convenience of description of the drawings, some configurations of the
먼저 도 17a를 참조하면, 스토리지 장치(1000a)는 제1 컨트롤러(1100a), 복수의 불휘발성 메모리 장치들(NVM), 제2 컨트롤러(1200a), 및 제2 메모리 장치(1300a)를 포함할 수 있다.Referring first to FIG. 17A, the
제1 컨트롤러(1100a)는 제1 내지 제3 일반 채널들(CH_n1~CH_n3)을 통해 복수의 불휘발성 메모리 장치들(NVM)과 각각 연결될 수 있다. 제1 컨트롤러(1100a)는 제1 내지 제3 일반 채널들(CH_n1~CH_n3) 각각을 독립적으로 제어하도록 구성될 수 있다. 예시적인 실시 예에서, 제1 내지 제3 일반 채널들(CH_n1~CH_n3)과 연결된 복수의 불휘발성 메모리 장치들(NVM)은 외부 장치(예를 들어, 호스트)에 의해 사용자 영역(도 6b 참조)으로 인식될 수 있다. 즉, 컨트롤러(1100a)는 제1 내지 제3 일반 채널들(CH_n1~CH_n3)과 연결된 복수의 불휘발성 메모리 장치들(NVM)에 대한 일반 동작을 수행할 수 있다.The
제1 컨트롤러(1100a)는 제1 전용 채널(CH_d1)을 통해 제2 컨트롤러(1200a)와 통신할 수 있다. 제2 컨트롤러(1200a)는 별도의 인터페이스를 통해 가중치(WT)를 포함하는 제2 메모리 장치(1300a)와 통신할 수 있다. The
예시적인 실시 예에서, 동일한 일반 채널에 연결된 불휘발성 메모리 장치들(NVM)은 동일한 입출력 신호 라인들(예를 들어, DQ 라인들)을 공유할 수 있다. 즉, 제1 내지 제3 일반 채널들(CH_n1~CH_n3)은 입출력 라인 단위로 구분될 수 있다. 컨트롤러(1100a)는 복수의 불휘발성 메모리 장치들(NVM) 각각에 대한 칩 활성화 신호를 제어함으로써, 복수의 불휘발성 메모리 장치들(NVM) 각각을 선택하거나 또는 제어할 수 있다. In an exemplary embodiment, non-volatile memory devices NVM connected to the same general channel may share the same input / output signal lines (eg, DQ lines). That is, the first to third general channels CH_n1 to CH_n3 may be classified in units of input / output lines. The
다음으로, 도 17b를 참조하면, 스토리지 장치(1000b)는 제1 컨트롤러(1100b), 복수의 불휘발성 메모리 장치들(NVM), 제2 컨트롤러(1200b), 및 제2 메모리 장치(1300b)를 포함할 수 있다.Next, referring to FIG. 17B, the
제1 컨트롤러(1100b)는 제1 내지 제3 일반 채널들(CH_n1~CH_n3) 및 제1 전용 채널(CH_d1)을 통해 복수의 메모리 장치들(NVM)과 각각 통신될 수 있다. 제2 컨트롤러(1200b)는 제1 전용 채널(CH_d1)을 통해 제1 컨트롤러(1100b)와 통신할 수 있고, 별도의 인터페이스를 통해 가중치(WT)를 포함하는 제2 메모리 장치(1300b)와 통신할 수 있다.The
예시적인 실시 예에서, 도 17b에 도시된 바와 같이, 제1 전용 채널(CH_d1)에 복수의 불휘발성 메모리 장치들(NVM)이 연결될 수 있다. 이 경우, 컨트롤러(1100b)는 칩 인에이블 신호를 제어함으로써, 제1 전용 채널(CH_d1)과 연결된 복수의 불휘발성 메모리 장치들(NVM)에 대한 일반 동작을 수행할 수 있다. 또한, 제1 컨트롤러(1100b)는 칩 인에이블 신호를 제어함으로써, 제1 전용 채널(CH_d1)과 연결된 제2 컨트롤러(1200b)와 통신할 수 있다.In an exemplary embodiment, as illustrated in FIG. 17B, a plurality of nonvolatile memory devices NVM may be connected to the first dedicated channel CH_d1. In this case, the
예를 들어, 제1 컨트롤러(1100b)가 제1 전용 채널(CH_d1)과 연결된 복수의 불휘발성 메모리 장치들(NVM) 중 어느 하나를 제어하는 경우, 제1 컨트롤러(1100b)는 대응하는 불휘발성 메모리 장치의 칩 인에이블 신호를 선택 또는 활성화하고, 나머지 장치들(예를 들어, 나머지 불휩라성 메모리 장치들 및 제2 컨트롤러(1200b))의 칩 인에이블 신호를 비선택 또는 비활성화함으로써, 대응하는 불휘발성 메모리 장치를 제어할 수 있다.For example, when the
또한, 제1 컨트롤러(1100b)가 제1 전용 채널(CH_d1)과 연결된 제2 컨트롤러(1300b)와 통신하는 경우, 제1 컨트롤러(1100b)는 제1 전용 채널(CH_d1)과 연결된 복수의 불휘발성 메모리 장치들(NVM)의 칩 인에이블 신호를 모두 비선택 또는 비활성화하고, 제2 컨트롤러(1200b)의 칩 인에이블 신호를 선택 또는 활성화함으로써, 제2 컨트롤러(1200b)와 통신할 수 있다.In addition, when the
도 17c를 참조하면, 스토리지 장치(1000c)는 제1 컨트롤러(1100c), 복수의 불휘발성 메모리 장치들(NVM), 제2 컨트롤러(1210c), 제2 메모리 장치(1310c), 제3 컨트롤러(1220c), 제3 메모리 장치(1320c)를 포함할 수 있다.Referring to FIG. 17C, the
제1 컨트롤러(1100c)는 제1 및 제2 일반 채널들(CH_n1, CH_n2)을 통해 복수의 불휘발성 메모리 장치들(NVM)과 각각 연결될 수 있다. 제1 컨트롤러(1100c)는 제1 전용 채널(CH_d1)을 통해 제2 컨트롤러(1210c)와 연결되고, 제2 전용 채널(CH_d2)을 통해 제3 컨트롤러(1220c)와 연결될 수 있다. 제2 컨트롤러(1210c)는 별도의 인터페이스를 통해 제2 메모리 장치(1310c)와 연결되고, 제3 컨트롤러(1220c)는 별도의 인터페이스를 통해 제3 메모리 장치(1320c)와 연결될 수 있다.The
예시적인 실시 예에서, 제2 및 제3 컨트롤러들(1210c, 1220c)은 각각 서로 다른 스페셜 동작을 수행하도록 구성될 수 있다. 예를 들어, 제2 컨트롤러(1210c)는 제2 메모리 장치(1310c)에 저장된 가중치를 이용하여 외부 장치(예를 들어, 호스트)로부터의 음성 데이터에 대한 음성 인식을 수행하고, 결과 데이터로서 텍스트 정보를 출력하는 제1 스페셜 동작을 수행할 수 있다. 제3 컨트롤러(1220c)는 제3 메모리 장치(1320c)에 저장된 가중치를 이용하여 외부 장치로부터의 이미지 데이터에 대한 이미지 분류를 수행하고, 결과 데이터로서 이미지 분류에 대한 정보를 출력하는 제2 스페셜 동작을 수행할 수 있다. 컨트롤러(1100c)는 외부 장치의 요청에 따라 제2 컨트롤러(1210c) 또는 제3 컨트롤러(1220c)와 통신하여, 외부 장치의 요청에 대응하는 스페셜 동작을 수행할 수 있다. In an exemplary embodiment, the second and
도 17d를 참조하면, 스토리지 장치(1000d)는 제1 컨트롤러(1100d), 복수의 불휘발성 메모리 장치들(NVM), 제2 컨트롤러(1210d), 제2 메모리 장치(1310d), 제3 컨트롤러(1220d), 제3 메모리 장치(1320d)를 포함할 수 있다.Referring to FIG. 17D, the
제1 컨트롤러(1100d)는 제1 내지 제3 일반 채널들(CH_n1~CH_n3)을 통해 복수의 불휘발성 메모리 장치들(NVM)과 통신할 수 있다. 제1 컨트롤러(1100d)는 제1 전용 채널(CH_d1)을 통해 제2 컨트롤러(1210d) 및 제3 컨트롤러(1220d)와 통신할 수 있다. 제2 컨트롤러(1210d)는 별도의 인터페이스를 통해 제2 메모리 장치(1310d)와 연결되고, 제3 컨트롤러(1220d)는 별도의 인터페이스를 통해 제3 메모리 장치(1320d)와 연결될 수 있다.The
도 17c의 실시 예에서, 제1 컨트롤러(1100c)는 제1 및 제2 전용 채널들(CH_d1, CH_d2)을 사용하여 제2 및 제3 컨트롤러들(1210c, 1220c)과 통신하였으나, 도 17d의 실시 예에서, 제1 컨트롤러(1100d)는 제1 전용 채널(CH_d1)(즉, 하나의 채널)을 통해 제2 및 제3 컨트롤러들(1210d, 1220d)과 통신할 수 있다. 이 경우, 제1 컨트롤러(1100d)는 제2 및 제3 컨트롤러들(1210d, 1220d) 각각의 칩 인에이블 신호를 제어함으로써, 제2 및 제3 컨트롤러들(1210d, 1220d) 각각과 통신할 수 있다.In the embodiment of FIG. 17C, the
상술된 바와 같이, 본 발명의 실시 예에 따른 스토리지 장치는 스페셜 동작을 수행하도록 구성된 제2 컨트롤러를 포함할 수 있다. 제1 컨트롤러는 제1 메모리 인터페이스 일반 채널을 통해 불휘발성 메모리 장치들과 통신하고, 제1 메모리 인터페이스의 전용 채널을 통해 제2 컨트롤러와 통신하도록 구성될 수 있다. As described above, the storage device according to the embodiment of the present invention may include a second controller configured to perform a special operation. The first controller may be configured to communicate with nonvolatile memory devices through a first memory interface general channel, and to communicate with a second controller through a dedicated channel of the first memory interface.
도 18은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다. 도 18을 참조하면, 컴퓨팅 시스템(2000)은 호스트(2100), 제1 스토리지 장치(2210) 및 제2 스토리지 장치(2220)를 포함할 수 있다. 호스트(2100)는 제1 호스트 채널(CH_h1)을 통해 제1 스토리지 장치(2210)와 통신할 수 있고, 제2 호스트 채널(CH_h1)을 통해 제2 스토리지 장치(2220)와 통신할 수 있다. 예시적인 실시 예에서, 제1 및 제2 호스트 채널들(CH_h1, CH_h2)은 동일한 인터페이스에 기반된 통신 채널일 수 있다.18 is a block diagram illustrating a computing system according to an embodiment of the present invention. Referring to FIG. 18, the
제1 스토리지 장치(2210)는 컨트롤러(2211) 및 메모리 장치들(2212, 2213)을 포함할 수 있다. 제1 스토리지 장치(2210)는 호스트(2100)의 제어에 따라 일반적인 스토리지 동작(즉, 사용자 데이터에 대한 읽기, 쓰기, 소거 등)을 수행할 수 있다. The
제2 스토리지 장치(2210)는 제1 컨트롤러(2221), 제2 컨트롤러(2222), 및 메모리 장치(2223)를 포함할 수 있다. 제2 스토리지 장치(2210)는 호스트(2100)의 제어에 따라 스페셜 동작을 수행할 수 있다. 예시적인 실시 예에서, 제2 스토리지 장치(2210)는 도 1 내지 도 17을 참조하여 설명된 머신 러닝 기능을 구비한 스토리지 장치일 수 있거나 또는 도 1 내지 도 17을 참조하여 설명된 동작 방법을 기반으로 동작할 수 있다. The
도 19는 본 발명에 따른 스토리지 장치가 적용된 모바일 시스템을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, 모바일 시스템(3000)은 애플리케이션 프로세서(3100), 네트워크 모듈(3200), 시스템 메모리(3300), 스토리지 장치(3400), 이미지 장치(3500), 디스플레이 장치(3600), 및 사용자 입출력 장치(3700)를 포함할 수 있다. 예시적인 실시 예에서, 모바일 시스템(3000)은 스마트폰, 태블릿 PC, 노트북 등과 같은 휴대용 컴퓨팅 시스템일 수 있다.19 is a block diagram exemplarily showing a mobile system to which a storage device according to the present invention is applied. Referring to FIG. 19, the
애플리케이션 프로세서(3100)(AP; Application Processor)는 모바일 시스템(3000)의 제반 동작을 제어할 수 있다. 네트워크 모듈(3200)은 외부 장치(예를 들어, 기지국, 서버, 다른 모바일 장치 등)와의 무선 또는 유선 통신을 제공할 수 있다. 시스템 메모리(3300)는 모바일 시스템(3000)의 동작 메모리 또는 버퍼 메모리로서 사용될 수 있다. 예시적인 실시 예에서, 시스템 메모리(3300)는 고속 동작을 지원하는 메모리(예를 들어, DRAM)일 수 있다.The application processor 3100 (AP) may control various operations of the
스토리지 장치(3400)는 모바일 시스템(3000)에서 사용되는 다양한 정보를 저장하기 위한 대용량 저장 매체로서 사용될 수 있다. 예시적인 실시 예에서, 스토리지 장치(3400)는 도 1 내지 도 18을 참조하여 설명된 머신 러닝 기능을 구비한 스토리지 장치일 수 있으며, 도 1 내지 도 18을 참조하여 설명된 동작 방법을 기반으로 애플리케이션 프로세서(3100)와 통신할 수 있다. The
디스플레이 장치(3600)는 애플리케이션 프로세서(3100)에 의해 처리된 정보를 사용자에게 표시하는 장치일 수 있다. 이미지 센서(3500)는 외부 객체에 대한 영상 정보를 수집하는 장치일 수 있다. 사용자 입출력 장치(3700)는 마이크, 스피커, 키패드, 터치 스크린 등과 같이 사용자(user)로부터 명령을 입력받거나 또는 정보를 제공하는 장치일 수 있다. The
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above are specific examples for carrying out the present invention. The present invention will include not only the above-described embodiments, but also simple design changes or easily changeable embodiments. In addition, the present invention will also include techniques that can be easily modified and implemented using embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined not only by the claims to be described later but also by the claims and equivalents of the present invention.
Claims (20)
상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제2 메모리 셀들을 포함하는 제2 메모리 장치; 및
상기 제1 메모리 장치와 제1 메모리 인터페이스를 통해 통신하고, 상기 제2 메모리 장치와 상기 제1 메모리 인터페이스의 동작 속도보다 빠른 동작 속도를 갖는 제2 메모리 인터페이스를 통해 통신하도록 구성된 컨트롤러를 포함하는 스토리지 장치.A first memory device including a plurality of first memory cells;
A second memory device including a plurality of second memory cells of the same type as the plurality of first memory cells; And
A storage device comprising a controller configured to communicate with the first memory device through a first memory interface, and to communicate with the second memory device through a second memory interface having an operating speed faster than an operating speed of the first memory interface. .
상기 복수의 제1 메모리 셀들 및 상시 복수의 제2 메모리 셀들 각각은 낸드 플래시 메모리 셀인 스토리지 장치.According to claim 1,
Each of the plurality of first memory cells and the always plurality of second memory cells is a NAND flash memory cell.
상기 제1 메모리 장치는 상기 제1 메모리 인터페이스를 통해 제공되는 제1 커맨드 래치 인에이블 신호, 제1 어드레스 래치 인에이블 신호, 제1 쓰기 인에이블 신호, 제1 읽기 인에이블 신호, 및 복수의 제1 데이터 신호들에 응답하여 동작하고,
상기 제2 메모리 장치는 상기 제2 메모리 인터페이스를 통해 제공되는 제2 커맨드 래치 인에이블 신호, 제2 어드레스 래치 인에이블 신호, 제2 쓰기 인에이블 신호, 제2 읽기 인에이블 신호, 및 복수의 제2 데이터 신호들에 응답하여 동작하고,
상기 복수의 제2 데이터 신호들의 개수는 상기 복수의 제1 데이터 신호들의 개수보다 많은 스토리지 장치.According to claim 1,
The first memory device may include a first command latch enable signal, a first address latch enable signal, a first write enable signal, a first read enable signal, and a plurality of firsts provided through the first memory interface. Operates in response to data signals,
The second memory device may include a second command latch enable signal, a second address latch enable signal, a second write enable signal, a second read enable signal, and a plurality of second signals provided through the second memory interface. Operates in response to data signals,
The number of second data signals is greater than the number of first data signals.
상기 제1 메모리 장치는 상기 제1 메모리 인터페이스와 연결된 복수의 제1 데이터 신호 핀들을 포함하고,
상기 제2 메모리 장치는 상기 제2 메모리 인터페이스와 연결된 복수의 제2 데이터 신호 핀들을 포함하고,
상기 제2 데이터 신호 핀들의 개수는 상기 제1 데이터 신호 핀들의 개수보다 많은 스토리지 장치.According to claim 1,
The first memory device includes a plurality of first data signal pins connected to the first memory interface,
The second memory device includes a plurality of second data signal pins connected to the second memory interface,
The number of the second data signal pins is greater than the number of the first data signal pins.
상기 복수의 제1 데이터 신호 핀들은 상기 제1 메모리 장치의 에지 영역에 배치되고,
상기 복수의 제2 데이터 신호 핀들은 상기 제2 메모리 장치의 센터 영역에 배치되는 스토리지 장치.The method of claim 4,
The plurality of first data signal pins are disposed in an edge region of the first memory device,
The plurality of second data signal pins are disposed in a center area of the second memory device.
상기 제1 메모리 장치의 상기 복수의 제1 메모리 셀들은 복수의 제1 플레인들로 구분되고,
상기 제2 메모리 장치의 상기 복수의 제2 메모리 셀들은 복수의 제2 플레인들로 구분되고,
상기 제2 플레인들의 개수는 상기 제1 플레인들의 개수보다 많은 스토리지 장치. According to claim 1,
The plurality of first memory cells of the first memory device are divided into a plurality of first planes,
The plurality of second memory cells of the second memory device are divided into a plurality of second planes,
The number of second planes is greater than the number of first planes.
상기 제2 인터페이스를 통해 단위 시간당 송수신되는 데이터의 크기는 상기 제1 인터페이스를 통해 단위 시간당 송수신되는 데이터의 크기보다 큰 스토리지 장치.According to claim 1,
A storage device having a size of data transmitted and received per unit time through the second interface is greater than a size of data transmitted and received per unit time through the first interface.
상기 제2 메모리 장치는;
상기 복수의 제2 메모리 셀들에 저장된 가중치에 대한 MAC(Multiply and Accumulate) 연산을 수행하고, 상기 MAC 연산의 결과를 상기 제2 인터페이스를 통해 출력하도록 구성된 MAC 엔진을 포함하는 스토리지 장치.According to claim 1,
The second memory device;
A storage device including a MAC engine configured to perform a multiply and accumulate (MAC) operation on a weight stored in the plurality of second memory cells and output the result of the MAC operation through the second interface.
상기 컨트롤러는:
상기 제1 인터페이스를 통해 상기 제1 메모리 장치와 통신하도록 구성된 제1 메모리 인터페이스 회로;
상기 제2 인터페이스를 통해 상기 제2 메모리 장치와 통신하도록 구성된 제2 메모리 인터페이스 회로;
상기 제1 메모리 인터페이스 회로를 제어하여 상기 제1 메모리 장치에 대한 액세스 동작을 수행하도록 구성된 제1 프로세서; 및
상기 제2 메모리 인터페이스 회로를 제어하여 상기 제2 메모리 장치에 대한 액세스 동작을 수행하도록 구성된 제2 프로세서를 포함하는 스토리지 장치.According to claim 1,
The controller:
A first memory interface circuit configured to communicate with the first memory device through the first interface;
A second memory interface circuit configured to communicate with the second memory device through the second interface;
A first processor configured to control the first memory interface circuit to perform an access operation to the first memory device; And
And a second processor configured to control the second memory interface circuit to perform an access operation to the second memory device.
상기 제1 프로세서는 외부 장치로부터 제공된 제1 사용자 데이터를 상기 제1 메모리 장치에 저장하거나 또는 상기 제1 메모리 장치에 저장된 제2 사용자 데이터를 상기 외부 장치로 제공하도록 더 구성되고,
상기 제2 프로세서는 외부 장치로부터 제공된 스페셜 데이터에 대하여 상기 제2 메모리 장치에 저장된 가중치 정보를 기반으로 스페셜 동작을 수행하고, 상기 스페셜 동작의 결과를 상기 외부 장치로 제공하도록 더 구성된 스토리지 장치.The method of claim 9,
The first processor is further configured to store first user data provided from an external device to the first memory device or to provide second user data stored in the first memory device to the external device,
The second processor is further configured to perform a special operation based on weight information stored in the second memory device on special data provided from an external device, and to provide a result of the special operation to the external device.
상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제3 메모리 셀들을 포함하고, 상기 컨트롤러와 상기 제1 메모리 인터페이스를 통해 통신하도록 구성된 제3 메모리 장치를 더 포함하고,
상기 제1 메모리 장치는 상기 제1 메모리 인터페이스의 제1 채널을 통해 상기 컨트롤러와 통신하고,
상기 제3 메모리 장치는 상기 제1 메모리 인터페이스의 제2 채널을 통해 상기 컨트롤러와 통신하는 스토리지 장치.According to claim 1,
A third memory device including a plurality of third memory cells of the same type as the plurality of first memory cells, and configured to communicate with the controller through the first memory interface,
The first memory device communicates with the controller through a first channel of the first memory interface,
The third memory device is a storage device communicating with the controller through a second channel of the first memory interface.
상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제3 메모리 셀들을 포함하고, 상기 컨트롤러와 제3 메모리 인터페이스를 통해 통신하도록 구성된 제3 메모리 장치를 더 포함하는 스토리지 장치.According to claim 1,
A storage device comprising a plurality of third memory cells of the same type as the plurality of first memory cells, and further comprising a third memory device configured to communicate with the controller through a third memory interface.
복수의 제1 메모리 셀들을 포함하고, 상기 제1 컨트롤러와 제1 메모리 인터페이스의 제1 채널을 통해 통신하도록 구성된 제1 메모리 장치;
상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제2 메모리 셀들을 포함하는 제2 메모리 장치; 및
상기 제1 컨트롤러와 상기 제1 메모리 인터페이스의 제2 채널을 통해 통신하도록 구성되고, 상기 제2 메모리 장치와 제2 메모리 인터페이스를 통해 된 제2 컨트롤러를 포함하는 스토리지 장치.A first controller configured to communicate with the external device through a host interface;
A first memory device including a plurality of first memory cells and configured to communicate with the first controller through a first channel of a first memory interface;
A second memory device including a plurality of second memory cells of the same type as the plurality of first memory cells; And
And a second controller configured to communicate with the first controller through a second channel of the first memory interface, and comprising a second controller via the second memory device and the second memory interface.
상기 복수의 제1 메모리 셀들 및 상시 복수의 제2 메모리 셀들 각각은 낸드 플래시 메모리 셀인 스토리지 장치.The method of claim 13,
Each of the plurality of first memory cells and the always plurality of second memory cells is a NAND flash memory cell.
상기 제1 메모리 장치는 상기 제1 메모리 인터페이스를 통해 제공되는 제1 커맨드 래치 인에이블 신호, 제1 어드레스 래치 인에이블 신호, 제1 쓰기 인에이블 신호, 제1 읽기 인에이블 신호, 및 복수의 제1 데이터 신호들에 응답하여 동작하고,
상기 제2 메모리 장치는 상기 제2 메모리 인터페이스를 통해 제공되는 제2 커맨드 래치 인에이블 신호, 제2 어드레스 래치 인에이블 신호, 제2 쓰기 인에이블 신호, 제2 읽기 인에이블 신호, 및 복수의 제2 데이터 신호들에 응답하여 동작하고,
상기 복수의 제2 데이터 신호들의 개수는 상기 복수의 제1 데이터 신호들의 개수보다 많은 스토리지 장치.The method of claim 13,
The first memory device may include a first command latch enable signal, a first address latch enable signal, a first write enable signal, a first read enable signal, and a plurality of firsts provided through the first memory interface. Operates in response to data signals,
The second memory device may include a second command latch enable signal, a second address latch enable signal, a second write enable signal, a second read enable signal, and a plurality of second signals provided through the second memory interface. Operates in response to data signals,
The number of second data signals is greater than the number of first data signals.
상기 제1 메모리 장치는 상기 제1 메모리 인터페이스와 연결된 복수의 제1 데이터 신호 핀들을 포함하고,
상기 제2 메모리 장치는 상기 제2 메모리 인터페이스와 연결된 복수의 제2 데이터 신호 핀들을 포함하고,
상기 제2 데이터 신호 핀들의 개수는 상기 제1 데이터 신호 핀들의 개수보다 많은 스토리지 장치.The method of claim 13,
The first memory device includes a plurality of first data signal pins connected to the first memory interface,
The second memory device includes a plurality of second data signal pins connected to the second memory interface,
The number of the second data signal pins is greater than the number of the first data signal pins.
상기 제1 메모리 장치의 상기 복수의 제1 메모리 셀들은 복수의 제1 플레인들로 구분되고, 상기 제2 메모리 장치의 상기 복수의 제2 메모리 셀들은 복수의 제1 플레인들로 구분되고,
상기 제2 플레인들의 개수는 상기 제1 플레인들의 개수보다 많은 스토리지 장치.The method of claim 13,
The plurality of first memory cells of the first memory device are divided into a plurality of first planes, and the plurality of second memory cells of the second memory device are divided into a plurality of first planes,
The number of second planes is greater than the number of first planes.
상기 복수의 제1 메모리 셀들과 동일한 타입의 복수의 제3 메모리 셀들을 포함하고, 상기 제2 컨트롤러와 제3 메모리 인터페이스를 통해 통신하도록 구성된 제3 메모리 장치를 더 포함하는 스토리지 장치.The method of claim 13,
A storage device comprising a plurality of third memory cells of the same type as the plurality of first memory cells, and further comprising a third memory device configured to communicate with the second controller through a third memory interface.
복수의 제2 낸드 플래시 메모리 셀들을 포함하는 제2 메모리 장치; 및
제1 메모리 인터페이스를 통해 상기 제1 메모리 장치와 통신하고, 상기 제1 메모리 인터페이스보다 큰 입출력 대역폭을 갖는 제2 메모리 인터페이스를 통해 상기 제2 메모리 장치와 통신하도록 구성된 컨트롤러를 포함하는 스토리지 장치.A first memory device including a plurality of first NAND flash memory cells;
A second memory device including a plurality of second NAND flash memory cells; And
And a controller configured to communicate with the first memory device through a first memory interface, and to communicate with the second memory device through a second memory interface having a greater input / output bandwidth than the first memory interface.
상기 제1 메모리 장치는 상기 제1 메모리 인터페이스를 통해 제공되는 제1 커맨드 래치 인에이블 신호, 제1 어드레스 래치 인에이블 신호, 제1 쓰기 인에이블 신호, 제1 읽기 인에이블 신호, 및 복수의 제1 데이터 신호들에 응답하여 동작하고,
상기 제2 메모리 장치는 상기 제2 메모리 인터페이스를 통해 제공되는 제2 커맨드 래치 인에이블 신호, 제2 어드레스 래치 인에이블 신호, 제2 쓰기 인에이블 신호, 제2 읽기 인에이블 신호, 및 복수의 제2 데이터 신호들에 응답하여 동작하고,
상기 복수의 제2 데이터 신호들의 개수는 상기 복수의 제1 데이터 신호들의 개수보다 많은 스토리지 장치.
The method of claim 19,
The first memory device may include a first command latch enable signal, a first address latch enable signal, a first write enable signal, a first read enable signal, and a plurality of firsts provided through the first memory interface. Operates in response to data signals,
The second memory device may include a second command latch enable signal, a second address latch enable signal, a second write enable signal, a second read enable signal, and a plurality of second signals provided through the second memory interface. Operates in response to data signals,
The number of second data signals is greater than the number of first data signals.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201907261SA SG10201907261SA (en) | 2018-09-21 | 2019-08-06 | Storage device |
US16/533,883 US11762558B2 (en) | 2018-09-21 | 2019-08-07 | Storage device having a controller that communicates with each of two memories through separate interfaces |
CN201910858006.5A CN110941390A (en) | 2018-09-21 | 2019-09-11 | Storage device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180114090 | 2018-09-21 | ||
KR1020180114090 | 2018-09-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200037049A true KR20200037049A (en) | 2020-04-08 |
Family
ID=70275650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190002343A KR20200037049A (en) | 2018-09-21 | 2019-01-08 | Storage device |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20200037049A (en) |
SG (1) | SG10201907261SA (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102365312B1 (en) * | 2021-06-17 | 2022-02-23 | 삼성전자주식회사 | Storage controller, computational storage device, and operation method of computational storage device |
KR20220170450A (en) * | 2021-06-23 | 2022-12-30 | 서울시립대학교 산학협력단 | Three-dimensional stacked and type synapse array-based neuromorphic system and manufacturing method and operating method of the same |
TWI797022B (en) * | 2021-06-17 | 2023-03-21 | 南韓商三星電子股份有限公司 | Storage controller, computational storage device, and operational method of computational storage device |
-
2019
- 2019-01-08 KR KR1020190002343A patent/KR20200037049A/en active IP Right Grant
- 2019-08-06 SG SG10201907261SA patent/SG10201907261SA/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102365312B1 (en) * | 2021-06-17 | 2022-02-23 | 삼성전자주식회사 | Storage controller, computational storage device, and operation method of computational storage device |
TWI797022B (en) * | 2021-06-17 | 2023-03-21 | 南韓商三星電子股份有限公司 | Storage controller, computational storage device, and operational method of computational storage device |
US11645011B2 (en) | 2021-06-17 | 2023-05-09 | Samsung Electronics Co., Ltd. | Storage controller, computational storage device, and operational method of computational storage device |
KR20220170450A (en) * | 2021-06-23 | 2022-12-30 | 서울시립대학교 산학협력단 | Three-dimensional stacked and type synapse array-based neuromorphic system and manufacturing method and operating method of the same |
Also Published As
Publication number | Publication date |
---|---|
SG10201907261SA (en) | 2020-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949094B2 (en) | Storage device and operating method of storage device | |
US10303372B2 (en) | Nonvolatile memory device and operation method thereof | |
KR102333220B1 (en) | Operation method of nonvolatile memory system | |
KR102229970B1 (en) | Solid state drive including nonvolatile memory, random access memory and memory controller | |
US20150220275A1 (en) | Method for operating nonvolatile storage device and method for operating computing device accessing nonvolatile storage device | |
CN112783433A (en) | Storage device and operation method thereof | |
KR102379167B1 (en) | Semiconductor device having register sets and data processing device including the same | |
KR20200037049A (en) | Storage device | |
US11977735B2 (en) | Memory device, storage device including the same, and method of operating the storage device | |
KR20210146643A (en) | Storage device and operating method thereof | |
US11762558B2 (en) | Storage device having a controller that communicates with each of two memories through separate interfaces | |
KR20170094674A (en) | Data storage device | |
KR102643067B1 (en) | Data storage device and operating method thereof | |
KR20160144577A (en) | Nonvolatile memory module and user device comprising the same | |
KR20220022407A (en) | Storage device and operating method thereof | |
KR102513903B1 (en) | Nonvolatile memory module and memory system | |
KR102569177B1 (en) | Controller , Memory system including the controller and operating method of the memory system | |
KR20210154401A (en) | Storage device and operating method thereof | |
US11989446B2 (en) | Host device, storage device, and method of operating the same | |
US11625178B2 (en) | Storage device and method of operating the same | |
KR102548574B1 (en) | Nonvolatile memory module | |
US12045472B2 (en) | Storage device supporting multi-tenant operation and methods of operating same | |
US12032832B2 (en) | Storage device and operating method thereof | |
US11868658B2 (en) | Memory controller including first processor for generating commands and second processor for generating logging information and method of operating the memory controller | |
US20230317168A1 (en) | Memory device and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |