KR20160144557A - Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit - Google Patents
Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit Download PDFInfo
- Publication number
- KR20160144557A KR20160144557A KR1020150080732A KR20150080732A KR20160144557A KR 20160144557 A KR20160144557 A KR 20160144557A KR 1020150080732 A KR1020150080732 A KR 1020150080732A KR 20150080732 A KR20150080732 A KR 20150080732A KR 20160144557 A KR20160144557 A KR 20160144557A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- read
- ram
- transmission unit
- processor
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 261
- 230000005540 biological transmission Effects 0.000 title claims abstract description 159
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012546 transfer Methods 0.000 claims description 38
- 238000000034 method Methods 0.000 claims description 15
- 239000000872 buffer Substances 0.000 description 53
- 238000010586 diagram Methods 0.000 description 34
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 239000000758 substrate Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 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
- 230000009977 dual effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 데이터를 저장하도록 구성되는 불휘발성 메모리 모듈 또는 스토리지 장치와 호스트(Host) 사이에서 수행되는 동작에 관한 것이다.BACKGROUND OF THE
개인용 컴퓨터(Personal Computer)와 같은 컴퓨팅 시스템(Computing System)은 다양한 유형의 구성 요소(Component)를 포함한다. 예로서, 컴퓨팅 시스템은 메인 프로세서(Main Processor), 메인 메모리 장치, 스토리지 장치, 그래픽 프로세서(Graphic Processor), 입출력 장치 등과 같이 다양한 구성 요소를 포함한다. 나아가, 컴퓨팅 시스템은 그것의 구성 요소들을 연결하도록 구성되는 여러 버스(Bus)를 포함한다.A computing system such as a personal computer includes various types of components. For example, the computing system includes various components such as a main processor, a main memory device, a storage device, a graphic processor, an input / output device, and the like. Further, the computing system includes a number of buses configured to connect its components.
컴퓨팅 시스템에 포함되는 구성 요소들 각각은 버스에 연결되어 서로 통신한다. 몇몇 구성 요소들을 연결하는 버스는 다른 몇몇 구성 요소들을 연결하는 버스와 다를 수 있다. 이 경우, 한 버스에 의해 지원되는 대역폭(Bandwidth)은 다른 버스에 의해 지원되는 대역폭과 다를 수 있다. 높은 대역폭을 갖는 버스는 낮은 대역폭을 갖는 버스보다 빠르게 동작할 수 있다.Each of the components included in the computing system is connected to the bus and communicates with each other. The bus connecting several components may be different from the bus connecting several other components. In this case, the bandwidth supported by one bus may be different from the bandwidth supported by the other bus. A bus with a higher bandwidth can operate faster than a bus with a lower bandwidth.
예로서, 메인 메모리 장치 및 그래픽 프로세서는 빠른 속도로 동작하는 버스를 통해 메인 프로세서와 연결될 수 있다. 반면, 스토리지 장치 및 입출력 장치는 상대적으로 느린 속도로 동작하는 버스를 통해 메인 프로세서와 연결될 수 있다. 즉, 여러 버스는 서로 다른 성능으로 동작할 수 있다.By way of example, the main memory device and the graphics processor may be connected to the main processor via a bus operating at a high speed. On the other hand, the storage device and the input / output device can be connected to the main processor through a bus operating at a relatively slow speed. That is, several buses can operate at different performance.
근래, 스토리지 장치에 관한 기술이 빠르게 발전하고 있다. SSD(Solid State Drive)와 같은 반도체 스토리지 매체(Medium)가 HDD(Hard Disk Drive)와 같은 기계적인 스토리지 매체를 대체함에 따라, 스토리지 장치의 성능 및 신뢰성이 향상되고 있다. 그런데, 스토리지 장치가 상대적으로 느린 속도로 동작하는 버스를 통해 메인 프로세서와 연결되는 경우, 스토리지 장치의 동작 성능이 저하될 수 있다. 특히, SSD와 같이 높은 동작 성능을 갖는 스토리지 장치가 느린 속도로 동작하는 버스에 연결되는 경우, 스토리지 장치의 성능을 최대화하기 어렵다.Description of the Related Art [0002] In recent years, a technology related to a storage device is rapidly developing. Semiconductor storage mediums such as solid state drives (SSD) replace mechanical storage media such as hard disk drives (HDDs), thereby improving the performance and reliability of storage devices. However, when the storage device is connected to the main processor through a bus operating at a relatively slow speed, the operation performance of the storage device may be degraded. Particularly, when a storage device having high operation performance such as an SSD is connected to a bus operating at a slow speed, it is difficult to maximize the performance of the storage device.
위 문제를 해결하고 스토리지 장치의 성능을 최대화하기 위해, 빠른 속도로 동작하는 버스를 통해 호스트와 통신하도록 구성되는 스토리지 장치가 제공된다. 나아가, 스토리지 장치를 적은 비용으로 구현하고 스토리지 장치를 효율적으로 동작시키기 위한 읽기 동작의 스킴(Scheme)이 제공된다.To solve the above problems and to maximize the performance of the storage device, a storage device is provided that is configured to communicate with the host via a bus operating at high speed. Further, a scheme of a read operation is provided for realizing a storage device at a low cost and efficiently operating the storage device.
본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈은 하나 이상의 불휘발성 메모리들 및 장치 컨트롤러를 포함할 수 있다. 호스트로부터 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 수신된 경우, 장치 컨트롤러는 읽기 데이터를 형성하는 복수의 전송 단위 데이터 각각의 준비에 응답하여 복수의 전송 단위 데이터 중 준비된 것을 호스트로 전송할 수 있다. 복수의 전송 단위 데이터 각각은 읽기 데이터를 형성하는 순서에 관계없이 호스트로 전송될 수 있다.A non-volatile memory module according to an embodiment of the present invention may include one or more non-volatile memories and a device controller. When a read request relating to read data stored in at least one of the nonvolatile memories is received from the host, the device controller, in response to the preparation of each of the plurality of transfer unit data forming the read data, Lt; / RTI > Each of the plurality of transmission unit data can be transmitted to the host regardless of the order of forming the read data.
본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈에서, 장치 컨트롤러는 복수의 전송 단위 데이터 각각의 준비를 나타내는 알림 데이터를 생성할 수 있다. 복수의 전송 단위 데이터 각각은 알림 데이터에 기초하여 호스트로 전송될 수 있다.In the nonvolatile memory module according to an embodiment of the present invention, the device controller can generate notification data indicating preparation of each of a plurality of transmission unit data. Each of the plurality of transmission unit data can be transmitted to the host based on the notification data.
본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈에서, 복수의 전송 단위 데이터 전부가 호스트로 전송되었는지 여부는 호스트에 의해 관리될 수 있다.In the nonvolatile memory module according to an embodiment of the present invention, whether or not all of a plurality of transmission unit data is transmitted to the host can be managed by the host.
본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈에서, 장치 컨트롤러는 DIMM 스펙에 의해 정의되는 인터페이스 규약에 따라 동작할 수 있다. 나아가, 읽기 요청에 대응하는 커맨드 신호는 DIMM 스펙에서 정의되는 데이터 입출력 핀을 통해 수신되고, 복수의 전송 단위 데이터 각각에 대응하는 데이터 신호는 데이터 입출력 핀을 통해 호스트로 전송될 수 있다.In a non-volatile memory module according to an embodiment of the present invention, the device controller may operate according to an interface specification defined by a DIMM specification. Further, the command signal corresponding to the read request is received through the data input / output pin defined in the DIMM specification, and the data signal corresponding to each of the plurality of transfer unit data can be transmitted to the host through the data input / output pin.
본 발명의 다른 실시 예에 따른 스토리지 장치는 하나 이상의 불휘발성 메모리들 및 장치 컨트롤러를 포함할 수 있다. 장치 컨트롤러는 호스트로부터의 요청에 응답하여 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터를 호스트로 전송할 수 있다. 장치 컨트롤러는 물리 계층 및 컨트롤러를 포함할 수 있다. 물리 계층은 램, 및 호스트로부터 제공되는 램 커맨드 및 램 어드레스에 따라 램을 제어하도록 구성되는 램 컨트롤러를 포함할 수 있다. 컨트롤러는 호스트로부터 제공되어 램에 저장되는 스토리지 커맨드 및 스토리지 어드레스에 기초하여, 읽기 데이터가 스토리지 어드레스에 대응하는 불휘발성 메모리들의 위치로부터 읽히고 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램에 임시로 저장되도록, 물리 계층 및 불휘발성 메모리들을 제어할 수 있다. 장치 컨트롤러는 복수의 전송 단위 데이터 각각을 호스트로 전송함으로써 읽기 데이터를 전송할 수 있다.A storage device according to another embodiment of the present invention may include one or more non-volatile memories and a device controller. The device controller may send read data stored in at least one of the non-volatile memories to the host in response to a request from the host. The device controller may include a physical layer and a controller. The physical layer may include a RAM, and a RAM controller configured to control the RAM according to a RAM command and a RAM address provided from the host. The controller reads out the read data from the position of the nonvolatile memories corresponding to the storage address and divides the read data based on the storage command and the storage address which are provided from the host and stored in the RAM, The physical layer and non-volatile memories can be controlled to be temporarily stored. The device controller can transmit read data by transmitting each of a plurality of transmission unit data to the host.
본 발명의 다른 실시 예에 따른 스토리지 장치에서, 장치 컨트롤러는 램에 알림 데이터를 저장할 수 있다. 알림 데이터는 복수의 전송 단위 데이터 각각의 램에의 저장을 나타내고, 복수의 전송 단위 데이터 각각의 읽기 데이터에서의 위치에 관한 정보를 포함할 수 있다.In the storage apparatus according to another embodiment of the present invention, the device controller can store the notification data in the RAM. The notification data indicates storage of each of the plurality of transmission unit data in the RAM and may include information on the position in the read data of each of the plurality of transmission unit data.
본 발명의 다른 실시 예에 따른 스토리지 장치에서, 복수의 전송 단위 데이터 중 적어도 하나는 읽기 데이터에 포함되지 않는 무효 부분을 포함할 수 있다. 이 실시 예에서, 알림 데이터는 무효 부분에 관한 정보를 더 포함할 수 있다. 나아가, 무효 부분은 알림 데이터에 기초하여 호스트에 의해 버려지고, 복수의 전송 단위 데이터에서 무효 부분을 제외한 데이터가 호스트에서 읽기 데이터로 결합될 수 있다.In the storage apparatus according to another embodiment of the present invention, at least one of the plurality of transmission unit data may include an invalid portion not included in the read data. In this embodiment, the notification data may further include information on the invalid portion. Furthermore, the invalid portion may be discarded by the host based on the notification data, and data excluding the invalid portion in the plurality of transmission unit data may be combined into the read data in the host.
본 발명의 또 다른 실시 예에 따른 전자 장치는 적어도 하나의 스토리지 장치 및 적어도 하나의 프로세서를 포함할 수 있다. 프로세서는 스토리지 장치에 저장된 읽기 데이터에 관한 읽기 요청을 스토리지 장치로 제공할 수 있다. 스토리지 장치는 읽기 요청에 응답하여, 읽기 데이터를 형성하는 복수의 전송 단위 데이터 각각을 프로세서로 전송할 것을 준비하고 복수의 전송 단위 데이터 각각의 준비에 관한 알림 데이터를 생성할 수 있다. 프로세서는 알림 데이터를 참조하여 복수의 전송 단위 데이터 중 준비된 것을 수신할 수 있다.An electronic device according to another embodiment of the present invention may include at least one storage device and at least one processor. The processor may provide a read request to the storage device for read data stored on the storage device. In response to the read request, the storage device may prepare to transmit each of the plurality of transmission unit data forming the read data to the processor and generate notification data regarding the preparation of each of the plurality of transmission unit data. The processor can receive prepared data among a plurality of transmission unit data by referring to the notification data.
본 발명의 실시 예에 따르면, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위(Transmission Unit) 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(RAM; Random Access Memory)이 채용될 수 있다. 따라서, 램에 의해 차지되는 면적 및 스토리지 장치의 구현 비용이 줄어들 수 있다. 나아가, 읽기 동작의 완료를 호스트에서 관리함으로써, 스토리지 장치의 동작 부하(Work Load)가 줄어들 수 있다.According to the embodiment of the present invention, instead of waiting until the read data is completely prepared, the transmission unit (Transmission Unit) data forming the read data is prepared, ) May be employed. Thus, the area occupied by the RAM and the implementation cost of the storage device can be reduced. Furthermore, by managing the completion of the read operation by the host, the work load of the storage apparatus can be reduced.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 도 1의 컴퓨팅 시스템의 소프트웨어 계층을 보여주는 개념도이다.
도 3 내지 도 7은 도 1의 스토리지 장치의 구성에 관한 실시 예들을 보여주는 블록도들이다.
도 8은 도 1의 스토리지 장치를 포함하는 스토리지 시스템을 보여주는 블록도이다.
도 9는 도 8의 램의 구성, 및 프로세서, 램, 그리고 컨트롤러 사이의 통신을 보여주는 개념도이다.
도 10은 도 8의 스토리지 장치에 관한 쓰기 동작을 설명하는 흐름도이다.
도 11은 도 8의 스토리지 장치에 관한 읽기 동작을 보여주는 개념도이다.
도 12는 도 8의 스토리지 장치에 관한 읽기 동작을 설명하는 흐름도이다.
도 13은 도 11 및 도 12의 읽기 동작 중 전송 단위 데이터 및 알림 데이터의 전송을 보여주는 개념도이다.
도 14는 도 11 및 도 12의 읽기 동작에 따라 도 13의 알림 데이터를 참조하여 전송 단위 데이터들을 스토리지 장치에서 호스트 측으로 전송하는 과정을 보여주는 개념도이다.
도 15는 도 11 및 도 12의 읽기 동작에 따라 전송된 전송 단위 데이터들에서 무효 부분을 버리고 유효 부분을 결합함으로써 읽기 데이터를 획득하는 과정을 보여주는 개념도이다.
도 16은 도 8의 불휘발성 메모리들 중 하나를 보여주는 블록도이다.
도 17은 도 16의 메모리 셀 어레이의 한 메모리 블록을 보여주는 개념도이다.
도 18은 본 발명의 실시 예에 따른 스토리지 장치를 포함하는 서버 시스템을 보여주는 개념도이다.1 is a block diagram illustrating a computing system including a storage device according to an embodiment of the present invention.
2 is a conceptual diagram showing a software layer of the computing system of FIG.
FIGS. 3 to 7 are block diagrams showing embodiments of the configuration of the storage apparatus of FIG. 1. FIG.
8 is a block diagram illustrating a storage system including the storage device of FIG.
FIG. 9 is a conceptual diagram showing the configuration of the RAM of FIG. 8 and the communication between the processor, the RAM, and the controller.
10 is a flowchart for explaining a write operation of the storage apparatus of FIG.
11 is a conceptual diagram showing a read operation of the storage apparatus of FIG.
Fig. 12 is a flowchart for explaining a read operation of the storage apparatus of Fig. 8;
FIG. 13 is a conceptual diagram showing transmission of transmission unit data and notification data during the reading operation of FIGS. 11 and 12. FIG.
FIG. 14 is a conceptual diagram illustrating a process of transmitting transmission unit data from a storage apparatus to a host apparatus by referring to the notification data of FIG. 13 according to the reading operation of FIGS. 11 and 12. FIG.
FIG. 15 is a conceptual diagram showing a process of acquiring read data by discarding an invalid portion and combining a valid portion in transmission unit data transmitted according to the reading operation of FIGS. 11 and 12. FIG.
16 is a block diagram showing one of the nonvolatile memories of FIG.
17 is a conceptual diagram showing one memory block of the memory cell array of FIG.
18 is a conceptual diagram showing a server system including a storage apparatus according to an embodiment of the present invention.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.The foregoing features and the following detailed description are exemplary of the invention in order to facilitate a description and understanding of the invention. That is, the present invention is not limited to these embodiments, but may be embodied in other forms. The following embodiments are merely examples for the purpose of fully disclosing the present invention and are intended to convey the present invention to those skilled in the art. Thus, where there are several ways to implement the components of the present invention, it is necessary to make it clear that the implementation of the present invention is possible by any of these methods or any of the equivalents thereof.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.It is to be understood that, in the context of this specification, when reference is made to a configuration including certain elements, or when it is mentioned that a process includes certain steps, other elements or other steps may be included. In other words, the terms used herein are for the purpose of describing specific embodiments only, and are not intended to limit the concept of the present invention. Further, the illustrative examples set forth to facilitate understanding of the invention include its complementary embodiments.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.The terms used in this specification are meant to be understood by those of ordinary skill in the art to which this invention belongs. Commonly used terms should be construed in a manner consistent with the context of this specification. Also, terms used in the specification should not be construed as being excessively ideal or formal in nature unless the meaning is clearly defined. BRIEF DESCRIPTION OF THE DRAWINGS Fig.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(Storage Device)를 포함하는 컴퓨팅 시스템(Computing System)을 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100), 하나 이상의 램 모듈(RAM Module) 장치들(1210, 1212), 제 1 유형의 하나 이상의 스토리지 장치들(1220, 1222), 칩셋(Chipset; 1300), GPU(Graphic Processing Unit; 1400), 입출력 장치(1500), 및 제 2 유형의 스토리지 장치(1600)를 포함할 수 있다.1 is a block diagram illustrating a computing system including a storage device according to an embodiment of the present invention. 1, a
컴퓨팅 시스템(1000)은 전자 장치로서 구현될 수 있다. 예로서, 컴퓨팅 시스템(1000)은 개인용 컴퓨터(Personal Computer), 노트북, 태블릿, 워크스테이션(Workstation), 블레이드 서버(Blade Server), 네트워크 스토리지(Network Storage) 등과 같은 다양한 전자 장치 중 적어도 하나를 포함할 수 있으나, 본 발명은 이 예에 의해 제한되지 않는다.The
프로세서(1100)는 컴퓨팅 시스템(1000)의 전반적인 동작들을 제어할 수 있다. 프로세서(1100)는 호스트(Host)로서, 램 모듈 장치들(1210, 1212), 제 1 유형의 스토리지 장치들(1220, 1222), GPU(1400), 입출력 장치(1500), 및 제 2 유형의 스토리지 장치(1600)로부터 서비스들을 제공받을 수 있다.The
프로세서(1100)는 컴퓨팅 시스템(1000)을 동작시키기 위해 다양한 산술(Arithmetic) 연산 및/또는 논리 연산을 수행할 수 있다. 프로세서(1100)는 연산을 수행하도록 구성되는 하나 이상의 프로세서 코어(Processor Core)들을 포함할 수 있다. 예로서, 컴퓨팅 시스템(1000)의 유형에 따라, 프로세서(1100)는 CPU(Central Processing Unit), AP(Application Processor), 전용 프로세서, 및 ASICs(Application Specific Integrated Circuit) 중 적어도 하나를 포함할 수 있다.The
램 모듈 장치들(1210, 1212)은 프로세서(1100)에 의해 처리된 또는 처리될 데이터를 임시로 저장할 수 있다. 램 모듈 장치들(1210, 1212)은 컴퓨팅 시스템(1000)의 연산 메모리(Operation Memory), 워킹 메모리(Working Memory), 또는 버퍼 메모리(Buffer Memory)로서 이용될 수 있다. 예로서, 램 모듈 장치들(1210, 1212) 각각은 DRAM(Dynamic Random Access Memory), SRAM(Static RAM), 및 SDRAM(Synchronous DRAM)과 같은 휘발성 메모리, 및 PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), 및 FRAM(Ferro-electric RAM)과 같은 불휘발성 메모리 중 적어도 하나를 포함할 수 있다.The
제 1 유형의 스토리지 장치들(1220, 1222)은 전원 공급과 무관하게 데이터를 저장할 수 있다. 제 1 유형의 스토리지 장치들(1220, 1222)은 전원 공급 없이 영구적으로 또는 반영구적으로 데이터를 저장할 수 있다. 예로서, 제 1 유형의 스토리지 장치들(1220, 1222) 각각은 플래시 메모리(Flash Memory), PRAM, MRAM, ReRAM, 및 FRAM과 같은 불휘발성 메모리 중 적어도 하나를 포함할 수 있다.The first type of
제 1 유형의 스토리지 장치들(1220, 1222)은 본 발명의 실시 예들에 기초하여 구현될 수 있다. 제 1 유형의 스토리지 장치들(1220, 1222)에 관한 실시 예들은 도 2 내지 도 18을 참조하여 상세히 설명될 것이다.The first type of
램 모듈 장치들(1210, 1212) 및 제 1 유형의 스토리지 장치들(1220, 1222)은 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결될 수 있다. 예로서, 버스(1230)는 DIMM(Dual Inline Memory Module) 형태로 구현되는 장치를 지원하고, DDR(Double Data Rate) 방식으로 동작하는 인터페이스 규약(Interface Protocol)을 채용할 수 있다. 이 예에서, 제 1 유형의 스토리지 장치들(1220, 1222) 각각은 "불휘발성 메모리 모듈"로서 구현될 수 있다. 프로세서(1100)에 노스브릿지(Northbridge) 칩셋이 내장되는(Embedded) 경우, 램 모듈 장치들(1210, 1212) 및 제 1 유형의 스토리지 장치들(1220, 1222)은 버스(1230)를 통해 프로세서(1100)와 직접 통신할 수 있다.The
도 1에서, 컴퓨팅 시스템(1000)이 두 개의 램 모듈 장치들(1210, 1212) 및 두 개의 제 1 유형의 스토리지 장치들(1220, 1222)을 포함하는 것으로 도시되었다. 그러나, 램 모듈 장치들의 개수 및 제 1 유형의 스토리지 장치들의 개수는 컴퓨팅 시스템(1000)의 구성 및 버스(1230)의 구성에 따라 다양하게 변경 또는 수정될 수 있다.In Figure 1, a
칩셋(1300)은 컴퓨팅 시스템(1000)의 다른 구성 요소들을 프로세서(1100)에 연결할 수 있다. 예로서, 칩셋(1300)은 GPU(Graphic Processing Unit; 1400), 입출력 장치(1500), 및 제 2 유형의 스토리지 장치(1600)를 프로세서(1100)에 연결할 수 있다. 예로서, 칩셋(1300)은 사우스브릿지(Southbridge) 칩셋을 포함할 수 있다.The
예로서, GPU(1400)는 영상 데이터를 처리하기 위한 연산을 수행할 수 있다. 이를 위해, GPU(1400)는 하나 이상의 코어들 및 하나 이상의 메모리들을 포함할 수 있다. GPU(1400)는 칩셋(1300)을 통해 프로세서(1100)로 연산 결과를 제공하거나 프로세서(1100)의 연산 결과를 제공받을 수 있다. GPU(1400)는 연산 결과에 기초하여 디스플레이 장치가 영상을 표시하도록 만들 수 있다.By way of example,
입출력 장치(1500)는 컴퓨팅 시스템(1000)의 사용자로부터 제공되는 정보를 칩셋(1300)을 통해 프로세서(1100)로 제공할 수 있다. 또는, 입출력 장치(1500)는 칩셋(1300)을 통해 프로세서(1100)로부터 제공되는 데이터에 기초하여 컴퓨팅 시스템(1000)의 사용자에게 서비스를 제공할 수 있다. 예로서, 입출력 장치(1500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 입출력 장치(1500)는 스피커, 모터 등의 출력 인터페이스를 포함할 수 있다.The input /
제 2 유형의 스토리지 장치(1600)는 전원 공급과 무관하게 데이터를 저장할 수 있다. 예로서, 제 2 유형의 스토리지 장치(1600)는 SSD(Solid State Drive), HDD(Hard Disk Drive) 등과 같은 스토리지 매체(Storage Medium)를 포함할 수 있다.The second type of
제 1 유형의 스토리지 장치들(1220, 1222)과 달리, 제 2 유형의 스토리지 장치(1600)는 상대적으로 느린 속도로 동작하는 버스를 통해 프로세서(1100)와 연결될 수 있다. 예로서, 제 2 유형의 스토리지 장치(1600)가 SSD를 포함하는 경우, 느린 속도로 동작하는 버스는 제 2 유형의 스토리지 장치(1600)의 성능을 저하시킬 수 있다. SSD는 자체적인 프로세서 및 빠르게 동작하는 반도체 불휘발성 메모리를 포함하기 때문에, SSD는 높은 동작 성능을 가질 수 있다. 그런데, SSD가 느린 속도로 동작하는 버스에 연결되는 경우, SSD의 성능을 최대화하기 어렵다.Unlike the first type of
본 발명의 실시 예에서, 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결되는 제 1 유형의 스토리지 장치들(1220, 1222)은 높은 동작 성능을 보일 수 있다. 즉, SSD와 같이 반도체 불휘발성 메모리를 포함하는 스토리지 장치는 제 1 유형의 스토리지 장치들(1220, 1222)의 형태로 구현될 때 더 높은 성능으로 동작할 수 있다.In an embodiment of the present invention, the first type of
이하에서, 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결되는 제 1 유형의 스토리지 장치들(1220, 1222)의 구성 및 동작이 설명될 것이다. 이하에서 언급될 "스토리지 장치"는 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결되는 제 1 유형의 스토리지 장치이다. 빠른 속도로 동작하는 버스(1230)는 DIMM 스펙(Specification)에 기초하여 정의되는 인터페이스 규약을 채용한 것으로 가정된다. 그러나, 이 가정은 본 발명의 이해를 돕기 위한 것이고, 본 발명은 이 가정에 의해 제한되지 않는다. 여기서, DIMM 스펙은 DIMM 형태로 구현되는 장치의 구성 및 동작에 관한 스펙을 의미한다.In the following, the configuration and operation of the first type of
도 2는 도 1의 컴퓨팅 시스템의 소프트웨어 계층을 보여주는 개념도이다. 도 1의 프로세서(1100)에서는 호스트 계층(Host Layer; HL)에 관한 소프트웨어가 구동될 수 있다. 나아가, 도 1의 스토리지 장치(즉, "제 1 유형"의 스토리지 장치(1220 또는 1222))에서는 스토리지 계층(Storage Layer; SL)에 관한 소프트웨어 또는 펌웨어가 구동될 수 있다.2 is a conceptual diagram showing a software layer of the computing system of FIG. In the
호스트 계층(HL)은 제 1 호스트 계층(HL1) 및 제 2 호스트 계층(HL2)을 포함할 수 있다. 스토리지 계층(SL)은 제 1 스토리지 계층(SL1) 및 제 2 스토리지 계층(SL2)을 포함할 수 있다. 제 1 호스트 계층(HL1) 및 제 1 스토리지 계층(SL1)은 각각 호스트 계층(HL) 및 스토리지 계층(SL)의 물리 계층(Physical Layer)들로서 제공될 수 있다.The host layer HL may include a first host layer HL1 and a second host layer HL2. The storage layer SL may include a first storage layer SL1 and a second storage layer SL2. The first host layer HL1 and the first storage layer SL1 may be provided as physical layers of the host layer HL and the storage layer SL, respectively.
예로서, 제 1 호스트 계층(HL1)은 DIMM 계층(DL1)을 포함할 수 있고, 제 1 스토리지 계층(SL1)은 DIMM 계층(DL2)을 포함할 수 있다. 이 예에서, 호스트 계층(HL)과 스토리지 계층(SL)은 물리 어드레스(Physical Address)에 기초하여 DIMM 계층들(DL1, DL2)을 통해 서로 물리적으로 접근할 수 있다. 예로서, 호스트 계층(HL)과 스토리지 계층(SL)은 DIMM 계층들(DL1, DL2)을 통해, DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 통신할 수 있다.For example, the first host layer HL1 may include a DIMM layer DL1, and the first storage layer SL1 may include a DIMM layer DL2. In this example, the host layer HL and the storage layer SL can physically access each other through the DIMM layers DL1 and DL2 based on the physical address. By way of example, the host layer HL and the storage layer SL can communicate via the DIMM layers DL1 and DL2 according to an interface protocol defined based on the DIMM specification.
도 8을 참조하여 더 상세히 설명되겠지만, 제 1 스토리지 계층(SL1)은 램(RM)을 포함할 수 있다. 제 2 스토리지 계층(SL2)은 불휘발성 메모리(NM)를 포함할 수 있다. 불휘발성 메모리(NM)는 제 2 스토리지 계층(SL2)의 제어 계층(CL)의 제어에 따라, 호스트 계층(HL)으로부터 제공된 데이터를 영구적으로 또는 반영구적으로 저장할 수 있다. 나아가, 제어 계층(CL)의 제어에 따라, 불휘발성 메모리(NM)에 관한 가비지 컬렉션(Garbage Collection), 웨어 레벨링(Wear Leveling) 등과 같은 관리 동작이 수행될 수 있다.As will be described in more detail with reference to FIG. 8, the first storage layer SL1 may include a RAM RM. The second storage layer SL2 may include a nonvolatile memory NM. The nonvolatile memory NM may permanently or semi-permanently store data provided from the host layer HL under the control of the control layer CL of the second storage layer SL2. Further, according to the control of the control layer CL, management operations such as garbage collection, wear leveling, and the like regarding the nonvolatile memory NM can be performed.
본 발명의 몇몇 실시 예에서, DIMM 계층(DL2)은 램(RM)을 제어하기 위해 이용되는 램 커맨드 및 램 어드레스를 호스트 계층(HL)으로부터 제공받을 수 있다. 램(RM)은 램 커맨드 및 램 어드레스에 따라, 불휘발성 메모리(NM)를 제어하기 위해 이용되는 스토리지 커맨드 및 스토리지 어드레스를 임시로 저장할 수 있다. 뿐만 아니라, 램(RM)은 불휘발성 메모리(NM)에 저장될 쓰기 데이터 및/또는 불휘발성 메모리(NM)로부터 읽힌 읽기 데이터를 임시로 저장할 수 있다. 이 실시 예는 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.In some embodiments of the present invention, the DIMM layer DL2 may be provided with a RAM command and a RAM address that are used to control the RAM RM from the host layer HL. The RAM (RM) can temporarily store the storage command and the storage address used for controlling the nonvolatile memory (NM) according to the RAM command and the RAM address. In addition, the RAM RM may temporarily store write data to be stored in the nonvolatile memory NM and / or read data read from the nonvolatile memory NM. This embodiment will be described in more detail with reference to Figs. 8 to 15. Fig.
제 1 호스트 계층(HL1)은 램(RM)과 인터페이싱하기(Interface) 위해 램 드라이버(RD)를 포함할 수 있다. 제 2 호스트 계층(HL2)은 호스트 계층(HL)을 운영하기 위해 운영 체제(Operating System; OS)를 포함할 수 있다. 운영 체제(OS)는 도 1의 컴퓨팅 시스템(1000)의 전반적인 동작들을 제어 및 관리할 수 있다. 예로서, 운영 체제(OS)는 프로그램 실행(Execution), 파일로의 접근, 어플리케이션들(AP)의 구동, 스토리지 계층(SL)의 제어 등과 같은 다양한 동작을 처리할 수 있다. 제 2 호스트 계층(HL2)은 호스트 계층(HL)의 사용자에게 다양한 서비스를 제공하기 위해 하나 이상의 어플리케이션(Application)들(AP)을 실행할 수 있다.The first host layer HL1 may include a RAM driver RD for interfacing with the RAM RM. The second host layer HL2 may include an operating system (OS) for operating the host layer HL. The operating system (OS) may control and manage the overall operations of the
운영 체제(OS) 및/또는 어플리케이션(AP)의 동작에 따라, 호스트 계층(HL)은 불휘발성 메모리(NM)에 저장될 쓰기 데이터를 스토리지 계층(SL)에 제공할 수 있다. 또는, 스토리지 계층(SL)은 불휘발성 메모리(NM)에 저장된 데이터 중에서 운영 체제(OS) 및/또는 어플리케이션(AP)의 동작에 이용되는 읽기 데이터를 호스트 계층(HL)으로 제공할 수 있다. 제 2 호스트 계층(HL2) 및 제 2 스토리지 계층(SL2) 각각은 논리 어드레스(Logical Address)에 기초하여 상대방을 논리적으로 인식할 수 있다.Depending on the operation of the operating system (OS) and / or the application (AP), the host layer HL may provide write data to be stored in the nonvolatile memory NM to the storage layer SL. Alternatively, the storage layer SL may provide the host layer (HL) with read data used for operation of the operating system (OS) and / or the application (AP) among data stored in the nonvolatile memory (NM). Each of the second host layer HL2 and the second storage layer SL2 can logically recognize the other party based on a logical address.
도 3은 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 3의 스토리지 장치(2000)를 포함할 수 있다. 예로서, 스토리지 장치(2000)는 LRDIMM(Load Reduced DIMM) 형태로 구현되는 불휘발성 메모리 모듈일 수 있다. 이 예에서, 스토리지 장치(2000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되고, DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.3 is a block diagram showing an embodiment of the configuration of the storage apparatus of FIG. At least one of the first type of
도 3의 실시 예에서, 스토리지 장치(2000)는 장치 컨트롤러(2100), 하나 이상의 불휘발성 메모리들(2200), 버퍼 메모리(2300), 및 SPD(Serial Presence Detect) 칩(2500)을 포함할 수 있다. 장치 컨트롤러(2100)는 스토리지 장치(2000)의 전반적인 동작들을 제어 및 관리할 수 있다.3, the
불휘발성 메모리들(2200)은 장치 컨트롤러(2100)의 제어에 따라, 전원 공급에 관계없이 데이터를 저장할 수 있다. 예로서, 불휘발성 메모리들(2200)은 하나의 칩 또는 패키지로 구현될 수 있다. 또는, 불휘발성 메모리들(2200) 각각은 별개의 칩, 패키지, 장치, 또는 모듈로 구현될 수 있다. 버퍼 메모리(2300)는 장치 컨트롤러(2100)의 제어에 따라 불휘발성 메모리들(2200)에 저장될 쓰기 데이터 또는 불휘발성 메모리들(2200)로부터 읽힌 읽기 데이터를 버퍼링할 수 있다.The
장치 컨트롤러(2100)는 제어 신호 선로를 통해 프로세서(1100)로부터 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 제공받을 수 있다. 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)는 램(2100b)에 관한 읽기/쓰기 동작을 제어하기 위해 이용될 수 있다. 장치 컨트롤러(2100)는 제어 신호 선로와 별개인 데이터 신호 선로를 통해 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브(Data Strobe) 신호(DQS)를 주고받을 수 있다.The
본 발명의 실시 예에서, 데이터 신호(DQ)는 불휘발성 메모리들(2200)에 관한 읽기/쓰기 동작을 제어하기 위해 이용되는 스토리지 커맨드 및 스토리지 어드레스를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 불휘발성 메모리들(2200)에 저장될 쓰기 데이터 또는 불휘발성 메모리들(2200)로부터 읽힌 읽기 데이터를 포함할 수 있다. 몇몇 경우, 데이터 신호(DQ)는 쓰기 데이터 및 읽기 데이터에 관한 상태 정보(Status Information)를 포함할 수 있다.In an embodiment of the present invention, the data signal DQ may include a storage command and a storage address that are used to control read / write operations with respect to the
램(2100b)은 램 커맨드 및 램 어드레스에 따라 스토리지 커맨드 및 스토리지 어드레스를 임시로 저장할 수 있다. 뿐만 아니라, 램(2100b)은 램 커맨드 및 램 어드레스에 따라 쓰기 데이터 및 읽기 데이터를 임시로 저장할 수 있다. 장치 컨트롤러(2100)는 램(2100b)에 저장된 스토리지 커맨드 및 스토리지 어드레스에 따라, 쓰기 데이터가 불휘발성 메모리들(2200)에 저장되거나 읽기 데이터가 불휘발성 메모리들(2200)로부터 읽히도록, 불휘발성 메모리들(2200)을 제어할 수 있다.The
장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 및 버퍼 메모리(2300)는 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(2200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(2100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터(Transmission Unit Data) 각각이 램(2100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The
위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(2100b)이 채용될 수 있다. 따라서, 램(2100b)에 의해 차지되는 면적 및 스토리지 장치(2000)의 구현 비용이 줄어들 수 있다.In the above embodiment, instead of waiting for the read data to be fully prepared, the
실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(2000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(2000)의 동작 부하(Work Load)가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an example, the completion of a read operation (i.e., transmission of all transmission unit data) may be managed by a host (e.g.,
SPD 칩(2500)은 스토리지 장치(2000)의 특성에 관한 정보를 저장할 수 있다. 예로서, SPD 칩(2500)은 스토리지 장치(2000)의 모듈 유형, 모듈 구성, 저장 용량, 선로 배열, 동작 환경 등과 같은 초기화 정보 또는 장치 정보를 저장할 수 있다. 예로서, SPD 칩(2500)은 프로그램 가능한 읽기 전용 메모리(Programmable Read-only Memory; 예컨대, EEPROM(Electrically Erasable Programmable Read Only Memory) 등)를 포함할 수 있다.The
스토리지 장치(2000)를 포함하는 컴퓨팅 시스템(1000)이 부팅(Booting)될 때, 컴퓨팅 시스템(1000)의 프로세서(1100)는 SPD 칩(2500)에 저장된 정보를 읽을 수 있다. 프로세서(1100)는 읽힌 정보에 기초하여 스토리지 장치(2000)를 인식하고 동작시킬 수 있다. 본 발명의 실시 예에서, 프로세서(1100)는 읽힌 정보에 기초하여 스토리지 장치(2000)를 스토리지 매체로서 인식하고 동작시킬 수 있다. The
실시 예로서, SPD 칩(2500)은 사이드-밴드(Side-band) 인터페이스 규약에 기초하여 프로세서(1100)와 통신할 수 있다. 이 실시 예에서, SPD 칩(2500)과 프로세서(1100)는 사이드-밴드 인터페이스 규약을 지원하는 통신 채널을 통해 사이드-밴드 신호(SBS)를 주고받을 수 있다. 나아가, SPD 칩(2500)은 사이드-밴드 인터페이스 규약에 기초하여 장치 컨트롤러(2100)와 통신할 수 있다. 예로서, 사이드-밴드 인터페이스 규약은 I2C(Inter-Integrated Circuit) 또는 UART(Universal Asynchronous Receiver/Transmitter) 스펙에 기초하여 정의되는 물리 계층을 지원할 수 있다.As an example, the
도 4는 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 4의 스토리지 장치(3000)를 포함할 수 있다. 예로서, 스토리지 장치(3000)는 RDIMM(Registerd DIMM) 형태로 구현되는 불휘발성 메모리 모듈일 수 있다. 이 예에서, 스토리지 장치(3000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되고, DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.4 is a block diagram showing an embodiment of the configuration of the storage apparatus of FIG. At least one of the first type of
도 4의 실시 예에서, 스토리지 장치(3000)는 장치 컨트롤러(3100), 하나 이상의 불휘발성 메모리들(3200), 버퍼 메모리(3300), 데이터 버퍼 회로(3400), 및 SPD 칩(3500)을 포함할 수 있다. 장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 및 버퍼 메모리(3300)는 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다.4, the
실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(3200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(3100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(3100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다. 이 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(3100b)이 채용될 수 있다. 따라서, 램(3100b)에 의해 차지되는 면적 및 스토리지 장치(3000)의 구현 비용이 줄어들 수 있다.As an example, when a read request is provided from a host (e.g.,
실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(3000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(3000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an example, the completion of the read operation (i.e., transmission of all transmission unit data) may be managed by the host (e.g.,
장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 버퍼 메모리(3300), 및 SPD 칩(3500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 버퍼 메모리(2300), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 버퍼 메모리(3300), 및 SPD 칩(3500)에 관한 중복되는 설명들은 생략될 것이다.The
데이터 버퍼 회로(3400)는 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있다. 데이터 버퍼 회로(3400)는 수신된 신호를 장치 컨트롤러(3100)로 제공하거나, 송신될 신호를 장치 컨트롤러(3100)로부터 제공받을 수 있다. 즉, 데이터 버퍼 회로(3400)는 프로세서(1100)와 장치 컨트롤러(3100) 사이에서 데이터를 버퍼링할 수 있다. 예로서, 데이터 버퍼 회로(3400)는 데이터 전송의 타이밍(Timing)을 동기시키기 위해 이용될 수 있다.The
예로서, 데이터 버퍼 회로(3400)는 하나 이상의 데이터 버퍼들을 포함할 수 있다. 데이터 버퍼들 각각은 대응하는 데이터 신호 선로를 통해 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받거나 출력할 수 있다. 데이터 버퍼들은 장치 컨트롤러(3100)의 제어에 따라 동작할 수 있다.By way of example,
도 5는 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 5의 스토리지 장치(4000)를 포함할 수 있다. 예로서, 스토리지 장치(4000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되는 불휘발성 메모리 모듈로 구현될 수 있다. 이 예에서, 스토리지 장치(4000)는 DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.5 is a block diagram showing an embodiment of the configuration of the storage apparatus of FIG. At least one of the first type of
도 5의 실시 예에서, 스토리지 장치(4000)는 제어 회로(4005), 하나 이상의 불휘발성 메모리들(4200), 및 하나 이상의 DRAM들(4600)을 포함할 수 있다. 불휘발성 메모리들(4200)은 컴퓨팅 시스템(1000)의 스토리지 매체로서 이용될 수 있다. DRAM들(4600)은 컴퓨팅 시스템(1000)의 메인 메모리로서 이용될 수 있다. 즉, 스토리지 장치(4000)는 스토리지 매체의 기능과 함께 메인 메모리의 기능을 수행할 수 있다.In the embodiment of FIG. 5, the
예로서, 불휘발성 메모리들(4200)은 EEPROM, 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM 중 적어도 하나를 포함할 수 있다. 도 5에서, 스토리지 장치(4000)가 DRAM들(4600)을 포함하는 것으로 도시되었다. 그러나, 다른 몇몇 실시 예에서, DRAM들(4600)은 SRAM, SDRM, PRAM, MRAM, ReRAM, 및 FRAM과 같이 랜덤하게 접근되는 다른 메모리들로 대체될 수 있다.By way of example,
제어 회로(4005)는 장치 컨트롤러(4100) 및 SPD 칩(4500)을 포함할 수 있다. 장치 컨트롤러(4100) 및 불휘발성 메모리들(4200)은 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(4200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(4100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(4100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The
위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(4100b)이 채용될 수 있다. 따라서, 램(4100b)에 의해 차지되는 면적 및 스토리지 장치(4000)의 구현 비용이 줄어들 수 있다.In the above embodiment, instead of waiting until the read data is fully prepared, the
실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(4000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(4000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an example, the completion of a read operation (i.e., transmission of all transmission unit data) may be managed by a host (e.g.,
장치 컨트롤러(4100), 램(4100b), 불휘발성 메모리들(4200), 및 SPD 칩(4500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(4100), 램(4100b), 불휘발성 메모리들(4200), 및 SPD 칩(4500)에 관한 중복되는 설명들은 생략될 것이다.The
장치 컨트롤러(4100)는 프로세서(1100)로부터 수신된 신호에 기초하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)에 포함되는 데이터를 불휘발성 메모리들(4200) 또는 DRAM들(4600)에 선택적으로 제공할 수 있다. 또는, 장치 컨트롤러(4100)는 프로세서(1100)로부터 수신된 신호들에 기초하여, 불휘발성 메모리들(4200) 또는 DRAM들(4600)에 저장된 데이터를 선택적으로 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 출력할 수 있다. 예로서, 프로세서(1100)는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 스토리지 커맨드, 스토리지 어드레스, 및 별개의 신호 중 적어도 하나에 기초하여 불휘발성 메모리들(4200) 또는 DRAM(4600)들에 선택적으로 접근할 수 있다.The
도 6은 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 6의 스토리지 장치(5000)를 포함할 수 있다. 예로서, 스토리지 장치(5000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되는 불휘발성 메모리 모듈로 구현될 수 있다. 이 예에서, 스토리지 장치(5000)는 DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.6 is a block diagram showing an embodiment of the configuration of the storage apparatus of FIG. At least one of the first type of
도 6의 실시 예에서, 스토리지 장치(5000)는 제어 회로(5005), 하나 이상의 불휘발성 메모리들(5200), 및 하나 이상의 DRAM들(5600)을 포함할 수 있다. 불휘발성 메모리들(5200)은 컴퓨팅 시스템(1000)의 스토리지 매체로서 이용될 수 있다. DRAM들(5600)은 컴퓨팅 시스템(1000)의 메인 메모리로서 이용될 수 있다. 불휘발성 메모리들(5200) 및 DRAM들(5600)은 도 5의 불휘발성 메모리들(4200) 및 DRAM들(4600)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 불휘발성 메모리들(5200) 및 DRAM들(5600)에 관한 중복되는 설명들은 생략될 것이다.In the embodiment of FIG. 6, the
제어 회로(5005)는 장치 컨트롤러(5100), 데이터 버퍼 회로(5400), 및 SPD 칩(5500)을 포함할 수 있다. 장치 컨트롤러(5100) 및 불휘발성 메모리들(5200)은 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(5200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(5100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(5100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The
위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(5100b)이 채용될 수 있다. 따라서, 램(5100b)에 의해 차지되는 면적 및 스토리지 장치(5000)의 구현 비용이 줄어들 수 있다.In the above embodiment, a small amount of
실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(5000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(5000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an example, the completion of the read operation (i.e., transmission of all transmission unit data) may be managed by the host (e.g.,
장치 컨트롤러(5100), 램(5100b), 및 SPD 칩(5500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 데이터 버퍼 회로(5400)는 도 4의 데이터 버퍼 회로(3400)와 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(5100), 램(5100b), 데이터 버퍼 회로(5400), 및 SPD 칩(5500)에 관한 중복되는 설명들은 생략될 것이다.The
장치 컨트롤러(5100)는 프로세서(1100)로부터 수신된 신호에 기초하여 불휘발성 메모리들(5200) 및 DRAM들(5600)을 제어할 수 있다. 프로세서(1100)는 불휘발성 메모리들(5200) 또는 DRAM들(5600)에 선택적으로 접근할 수 있다.
예로서, 프로세서(1100)가 불휘발성 메모리들(5200)에 데이터를 저장하는 경우, 저장될 데이터는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 장치 컨트롤러(5100)로 제공될 수 있다. 장치 컨트롤러(5100)는 제공받은 데이터를 불휘발성 메모리들(5200)로 제공할 수 있다. 예로서, 프로세서(1100)가 불휘발성 메모리들(5200)로부터 데이터를 읽는 경우, 장치 컨트롤러(5100)는 불휘발성 메모리들(5200)로부터 읽힌 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 프로세서(1100)로 제공할 수 있다.For example, when
예로서, 프로세서(1100)가 DRAM들(5600)에 데이터를 저장하는 경우, 장치 컨트롤러(5100)는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 DRAM들(5600)로 제공할 수 있다. 저장될 데이터는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 DRAM들(5600)로 제공될 수 있다. 예로서, 프로세서(1100)가 DRAM들(5600)로부터 데이터를 읽는 경우, 장치 컨트롤러(5100)는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 DRAM들(5600)로 제공할 수 있다. DRAM들(5600)은 제공된 신호들에 기초하여 데이터를 출력하고, 데이터 버퍼 회로(5400)는 DRAM들(5600)로부터 출력된 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 프로세서(1100)로 제공할 수 있다.When the
도 7은 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 7의 스토리지 장치(6000)를 포함할 수 있다. 예로서, 스토리지 장치(6000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되는 불휘발성 메모리 모듈로 구현될 수 있다. 이 예에서, 스토리지 장치(6000)는 DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.FIG. 7 is a block diagram showing an embodiment of the configuration of the storage apparatus of FIG. 1. FIG. At least one of the first type of
도 7의 실시 예에서, 스토리지 장치(6000)는 제어 회로(6005), 하나 이상의 불휘발성 메모리들(6200), 및 하나 이상의 DRAM들(6600)을 포함할 수 있다. 불휘발성 메모리들(6200)은 컴퓨팅 시스템(1000)의 스토리지 매체로서 이용될 수 있다. DRAM들(6600)은 컴퓨팅 시스템(1000)의 메인 메모리로서 이용될 수 있다. 불휘발성 메모리들(6200) 및 DRAM들(6600)은 도 5의 불휘발성 메모리들(4200) 및 DRAM들(4600)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 불휘발성 메모리들(6200) 및 DRAM들(6600)에 관한 중복되는 설명들은 생략될 것이다.In the embodiment of FIG. 7, the
제어 회로(6005)는 장치 컨트롤러(6100) 및 SPD 칩(6500)을 포함할 수 있다. 장치 컨트롤러(6100) 및 불휘발성 메모리들(6200)은 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(6200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(6100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(6100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The
위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(6100b)이 채용될 수 있다. 따라서, 램(6100b)에 의해 차지되는 면적 및 스토리지 장치(6000)의 구현 비용이 줄어들 수 있다.In the above embodiment, instead of waiting until the read data is fully prepared, the
실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(6000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(6000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an example, the completion of the read operation (i.e., transmission of all transmission unit data) may be managed by the host (e.g.,
장치 컨트롤러(6100), 램(6100b), 및 SPD 칩(6500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(6100), 램(6100b), 및 SPD 칩(6500)에 관한 중복되는 설명들은 생략될 것이다.The
장치 컨트롤러(6100)는 프로세서(1100)로부터 수신된 신호에 기초하여 불휘발성 메모리들(6200) 및 DRAM들(6600)을 제어할 수 있다. 프로세서(1100)는 불휘발성 메모리들(6200) 또는 DRAM들(6600)에 선택적으로 접근할 수 있다.The
예로서, 프로세서(1100)가 불휘발성 메모리들(6200)에 데이터를 저장하는 경우, 불휘발성 메모리들(6200)은 저장될 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 장치 컨트롤러(6100)를 통해 제공받을 수 있다. 예로서, 프로세서(1100)가 불휘발성 메모리들(6200)로부터 데이터를 읽는 경우, 장치 컨트롤러(6100)는 불휘발성 메모리들(6200)로부터 읽힌 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 프로세서(1100)로 제공할 수 있다.For example, when the
예로서, 프로세서(1100)가 DRAM들(6600)에 데이터를 저장하는 경우, 장치 컨트롤러(6100)는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 DRAM들(6600)로 제공할 수 있다. 저장될 데이터는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 DRAM들(6600)로 제공될 수 있다. 예로서, 프로세서(1100)가 DRAM들(6600)로부터 데이터를 읽는 경우, 장치 컨트롤러(6100)는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 DRAM들(6600)로 제공할 수 있다. DRAM들(6600)은 제공된 신호들에 기초하여 데이터를 출력하고, 출력된 데이터는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 프로세서(1100)로 제공될 수 있다.For example, when the
도 8은 도 1의 스토리지 장치를 포함하는 스토리지 시스템을 보여주는 블록도이다. 스토리지 시스템(10)은 스토리지 장치(100) 및 프로세서(101)를 포함할 수 있다. 스토리지 장치(100) 및 프로세서(101)는 각각 도 1의 제 1 유형의 스토리지 장치(1220 또는 1222) 및 프로세서(1100)에 대응할 수 있다. 따라서, 스토리지 장치(100) 및 프로세서(101)에 관한 중복되는 설명들은 생략될 것이다. 도 8을 참조하여, 스토리지 장치(100)의 구성 및 동작, 및 스토리지 장치(100)와 프로세서(101) 사이의 통신이 설명될 것이다.8 is a block diagram illustrating a storage system including the storage device of FIG. The
일 실시 예에서, 스토리지 장치(100)는 장치 컨트롤러(110), 하나 이상의 불휘발성 메모리들(120), 및 버퍼 메모리(130)를 포함할 수 있다. 장치 컨트롤러(110)는 도 3 내지 도 7의 장치 컨트롤러들(2100, 3100, 4100, 5100, 6100) 중 하나에 대응할 수 있다. 불휘발성 메모리들(120)은 도 3 내지 도 7의 불휘발성 메모리들(2200, 3200, 4200, 5200, 6200) 중 하나에 대응할 수 있다. 버퍼 메모리(130)는 도 3 및 도 4의 버퍼 메모리들(2400, 3400) 중 하나에 대응할 수 있다.In one embodiment, the
몇몇 다른 실시 예에서, 스토리지 장치(100)는 도 4 및 도 6의 데이터 버퍼 회로들(3400, 5400), 도 3 내지 도 7의 SPD 칩들(2500, 3500, 4500, 5500, 6500), 도 5 내지 도 7의 DRAM들(4600, 5600, 6600) 중 적어도 하나를 더 포함할 수 있다. 도 8은 본 발명의 이해를 돕기 위한 예시적인 구성을 보여주고, 스토리지 장치(100)의 구성은 도 3 내지 도 7을 참조하여 설명된 실시 예들에 기초하여 다양하게 변경 또는 수정될 수 있다.In some alternative embodiments, the
장치 컨트롤러(110)의 제어에 따라, 스토리지 장치(100)는 고유의 기능을 수행할 수 있다. 예로서, 프로세서(101)가 스토리지 장치(100)에 쓰기 데이터(DATA_W)를 저장하기 위해 스토리지 장치(100)로 쓰기 요청 및 쓰기 데이터(DATA_W)를 제공한 경우, 장치 컨트롤러(110)의 제어에 따라, 쓰기 데이터(DATA_W)가 불휘발성 메모리들(120) 또는 버퍼 메모리(130)에 저장될 수 있다. 예로서, 프로세서(101)가 스토리지 장치(100)에 저장된 읽기 데이터(DATA_R)를 읽기 위해 스토리지 장치(100)로 읽기 요청을 제공한 경우, 장치 컨트롤러(110)의 제어에 따라, 불휘발성 메모리들(120) 또는 버퍼 메모리(130)에 저장된 읽기 데이터(DATA_R)가 프로세서(101)로 전송될 수 있다.In accordance with the control of the
장치 컨트롤러(110)는 물리 계층(111) 및 컨트롤러(112)를 포함할 수 있다. 물리 계층(111)은 램 컨트롤러(111a) 및 램(111b)을 포함할 수 있다. 램 컨트롤러(111a)는 프로세서(101)로부터 제공되는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 수신할 수 있다. 램 컨트롤러(111a)는 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 따라 램(111b)을 제어할 수 있다.The
램(111b)은 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 기초하여 데이터를 저장하거나 출력할 수 있다. 램(111b)은 프로세서(101)로부터 제공되는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 데이터 신호(DQ)에 대응하는 데이터를 저장할 수 있다. 또는, 램(111b)은 그것에 저장된 데이터를 데이터 신호(DQ)로서 출력하고, 출력된 데이터를 프로세서(101)로 제공할 수 있다.The
본 발명의 실시 예에서, 데이터 신호(DQ)는 불휘발성 메모리들(120)를 제어하기 위해 프로세서(101)로부터 제공되는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 불휘발성 메모리들(120)에 저장될 쓰기 데이터(DATA_W) 또는 불휘발성 메모리들(2200)로부터 읽힌 읽기 데이터(DATA_R)를 포함할 수 있다. 몇몇 경우, 데이터 신호(DQ)는 쓰기 데이터(DATA_W) 및 읽기 데이터(DATA_R)에 관한 상태 정보(STI)를 포함할 수 있다.The data signal DQ may include a storage command CMD_S and a storage address ADDR_S provided from the
불휘발성 메모리들(120)에 관한 쓰기 동작에서, 램(111b)은 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 따라 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. 나아가, 램(111b)은 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 따라 프로세서(101)로부터 제공된 쓰기 데이터(DATA_W)를 임시로 저장할 수 있다. 컨트롤러(112)의 제어에 따라, 스토리지 커맨드(CMD_S), 스토리지 어드레스(ADDR_S), 및 쓰기 데이터(DATA_W)는 불휘발성 메모리들(120)로 제공될 수 있다. 쓰기 데이터(DATA_W)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 기초하여 불휘발성 메모리들(120)에 저장될 수 있다.In the write operation with respect to the
불휘발성 메모리들(120)에 관한 읽기 동작에서, 램(111b)은 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 따라 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. 컨트롤러(112)의 제어에 따라, 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 불휘발성 메모리들(120)로 제공될 수 있다. 읽기 데이터(DATA_R)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 기초하여 불휘발성 메모리들(120)로부터 읽히고, 램(111b)에 임시로 저장된 후 프로세서(101)로 제공될 수 있다.In the read operation with respect to the
즉, 컨트롤러(112)의 제어에 따라, 프로세서(101)와 불휘발성 메모리들(120) 사이에서 데이터(DATA_W, DATA_R)가 교환될 수 있다. 이를 위해, 예로서, 물리 계층(111)은 DIMM 스펙에 기초하여 정의되고, DDR 방식의 인터페이스 규약에 따라 동작할 수 있다. 장치 컨트롤러(110)는 DIMM 스펙에 의해 정의되는 인터페이스 규약에 따라 동작할 수 있다. 스토리지 장치(100)는 DIMM 형태로 구현되고, DIMM 스펙에 의해 정의되는 인터페이스 규약에 따라 프로세서(101)와 통신할 수 있다.That is, data (DATA_W, DATA_R) can be exchanged between the
위 예에서, 램 커맨드(CMD_R), 램 어드레스(ADD_R), 및 클록 신호(CLK)는 DIMM 스펙에서 정의되는 커맨드 핀(Pin)을 통해 제공될 수 있다. 쓰기 요청 또는 읽기 요청에 대응하는 스토리지 커맨드(CMD_S)는 스토리지 어드레스(ADDR_S)와 함께 DIMM 스펙에서 정의되는 데이터 입출력 핀을 통해 전송될 수 있다. 쓰기 데이터 또는 읽기 데이터(DATA) 역시 데이터 입출력 핀을 통해 전송될 수 있다.In the above example, the RAM command CMD_R, the RAM address ADD_R, and the clock signal CLK may be provided through a command pin Pin defined in the DIMM specification. The storage command CMD_S corresponding to the write request or the read request can be transmitted through the data input / output pin defined in the DIMM specification together with the storage address ADDR_S. Write data or read data (DATA) may also be transmitted via the data input / output pins.
램 컨트롤러(111a) 및 컨트롤러(112)의 제어에 따라, 램(111b)은 쓰기 동작 또는 읽기 동작의 진행에 관한 상태 정보(STI)를 저장할 수 있다. 프로세서(101)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 완료되었는지 여부를 인지할 수 있다. 나아가, 컨트롤러(112)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 진행될 필요가 있는지 여부를 인지할 수 있다. 상태 정보(STI) 역시 데이터 입출력 핀을 통해 전송될 수 있다.In accordance with the control of the
예로서, 램(111b)은 DPSRAM(Dual Port SRAM), 공유 램(Shared RAM) 등과 같은 멀티-포트(Multi-port) 램을 포함할 수 있다. 이 예에서, 램(111b)은 서로 다른 포트들을 통해 프로세서(101) 및 컨트롤러(112)에 의해 각각 접근될 수 있다. 램(111b)의 구성은 도 9를 참조하여 더 상세히 설명될 것이다. 나아가, 쓰기 동작 및 읽기 동작은 도 10 내지 도 15를 참조하여 더 상세히 설명될 것이다.For example, the
컨트롤러(112)는 물리 계층(111) 및 불휘발성 메모리들(120)을 제어하기 위해 다양한 하드웨어 구성 요소 또는 소프트웨어 구성 요소를 포함할 수 있다. 예로서, 컨트롤러(112)는 ECC 인코딩/디코딩 엔진(Error Correction Code Encoding/Decoding Engine), 스크램블러/디스크램블러(Scrambler/Descrambler), 데이터 버퍼, 및 플래시 변환 계층(Flash Translation Layer)을 포함할 수 있다.The
위 예에서, 컨트롤러(112)는 ECC 인코딩/디코딩 엔진에 의해 데이터의 오류를 검출 및 정정하고, 데이터에 관한 ECC 코드를 생성 및 추가할 수 있다. 컨트롤러(112)는 스크램블러/디스크램블러에 의해 데이터를 스크램블 또는 디스크램블할 수 있다. 컨트롤러(112)는 램(111b) 또는 불휘발성 메모리들(120)로부터 읽힌 데이터를 데이터 버퍼에 임시로 저장할 수 있다. 컨트롤러(112)는 플래시 변환 계층에 의해 스토리지 어드레스(ADDR_S)에 관한 논리 어드레스와 물리 어드레스 사이의 변환을 수행할 수 있다. 이를 위해, 버퍼 메모리(130)는 불휘발성 메모리들(120)의 논리 어드레스와 물리 어드레스 사이의 맵핑 테이블(Mapping Table)을 저장할 수 있다.In the above example, the
도 9는 도 8의 램의 구성, 및 프로세서, 램, 그리고 컨트롤러 사이의 통신을 보여주는 개념도이다. 실시 예로서, 램(111b)은 커맨드 영역(CA), 쓰기 영역(WA), 읽기 영역(RA), 및 상태 영역(STA)을 포함할 수 있다. 커맨드 영역(CA), 쓰기 영역(WA), 읽기 영역(RA), 및 상태 영역(STA)은 논리적으로 또는 물리적으로 구분될 수 있다.FIG. 9 is a conceptual diagram showing the configuration of the RAM of FIG. 8 and the communication between the processor, the RAM, and the controller. As an embodiment, the
프로세서(101)로부터 제공되는 램 어드레스(ADDR_R, 도 8 참조)에 기초하여, 커맨드 영역(CA), 쓰기 영역(WA), 읽기 영역(RA), 및 상태 영역(STA) 중 하나가 선택될 수 있다. 나아가, 프로세서(101)로부터 제공되는 램 커맨드(CMD_R, 도 8 참조)에 기초하여, 선택된 영역에 관하여 쓰기 동작 또는 읽기 동작이 수행될 수 있다. 예로서, 램 커맨드(CMD_R)로서 램 쓰기 커맨드가 제공되는 경우, 선택된 영역에서 쓰기 동작이 수행될 수 있다. 반면, 램 커맨드(CMD_R)로서 램 읽기 커맨드가 제공되는 경우, 선택된 영역에서 읽기 동작이 수행될 수 있다.One of the command area CA, the writing area WA, the reading area RA and the state area STA can be selected based on the RAM address ADDR_R (see Fig. 8) provided from the
커맨드 영역(CA)은 프로세서(101)로부터 제공되는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. 컨트롤러(112)는 커맨드 영역(CA)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 읽을 수 있다. 스토리지 커맨드(CMD_S)는 하나 이상의 불휘발성 메모리들(120, 도 8 참조)에서 쓰기 동작이 수행될 것인지 또는 읽기 동작이 수행될 것인지 여부(즉, 쓰기 요청 또는 읽기 요청)를 나타낼 수 있다. 스토리지 어드레스(ADDR_S)는 쓰기 동작 또는 읽기 동작이 수행될 불휘발성 메모리들(120)의 위치를 나타낼 수 있다.The command area CA may store the storage command CMD_S and the storage address ADDR_S provided from the
쓰기 영역(WA) 및 읽기 영역(RA)은 각각 쓰기 데이터(DATA_W) 및 읽기 데이터(DATA_R)를 저장할 수 있다. 프로세서(101)로부터 제공되는 쓰기 데이터(DATA_W)는 쓰기 영역(WA)에 임시로 저장된 후, 컨트롤러(112)의 제어에 따라 불휘발성 메모리들(120)로 제공될 수 있다. 불휘발성 메모리들(120)로부터 읽힌 읽기 데이터(DATA_R)는 컨트롤러(112)의 제어에 따라 읽기 영역(RA)에 임시로 저장된 후, 프로세서(101)로 제공될 수 있다.The write area WA and the read area RA can store write data (DATA_W) and read data (DATA_R), respectively. Write data DATA_W provided from the
도 11 내지 도 15를 참조하여 설명되겠지만, 본 발명의 실시 예에서, 읽기 데이터(DATA_R) 대신, 읽기 데이터(DATA_R)를 분할하여 생성되는 복수의 전송 단위 데이터가 프로세서(101)로 전송될 수 있다. 램(111b)의 읽기 영역(RA)은 읽기 데이터(DATA_R)를 형성하는 전송 단위 데이터들을 저장할 수 있다. 전송 단위 데이터들 각각은 램(111b)에 임시로 저장된 후 프로세서(101)로 전송될 수 있다. 전송 단위 데이터들 각각은 데이터 신호(DQ, 도 8 참조)로서, DIMM 스펙에서 정의되는 데이터 입출력 핀을 통해 전송될 수 있다. 본 발명의 실시 예에서, 전송 단위 데이터들 전부를 전송함으로써, 읽기 데이터(DATA_R)가 전송될 수 있다.11 to 15, in the embodiment of the present invention, instead of the read data (DATA_R), a plurality of transmission unit data generated by dividing the read data (DATA_R) may be transmitted to the
램 컨트롤러(111, 도 8 참조) 및 컨트롤러(112)의 제어에 따라, 상태 영역(STA)은 쓰기 데이터(DATA_W) 및 읽기 데이터(DATA_R)에 관한 상태 정보(STI)를 저장할 수 있다. 상태 정보(STI)는 쓰기 동작 또는 읽기 동작의 진행에 관한 정보를 포함할 수 있다. 프로세서(101)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 완료되었는지 여부를 인지할 수 있다. 나아가, 컨트롤러(112)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 진행될 필요가 있는지 여부를 인지할 수 있다.The status area STA can store the status information STI regarding the write data DATA_W and the read data DATA_R under the control of the RAM controller 111 (see FIG. 8) and the
예로서, 프로세서(101)가 쓰기 데이터(DATA_W)를 저장하고자 하는 경우, 프로세서(101)는 쓰기 데이터(DATA_W)를 쓰기 영역(WA)으로 제공할 수 있다. 나아가, 프로세서(101)는 쓰기 데이터(DATA_W)에 관한 정보 및 쓰기 동작의 요청에 관한 상태 정보(STI)를 상태 영역(STA)으로 제공할 수 있다. 컨트롤러(112)는 상태 정보(STI)에 기초하여 쓰기 데이터(DATA_W)가 불휘발성 메모리들(120) 중 적어도 하나에 저장되도록 쓰기 동작을 제어할 수 있다. 컨트롤러(112)가 쓰기 동작의 완료를 알리는 상태 정보(STI)를 상태 영역(STA)에 저장한 경우, 프로세서(101)는 상태 정보(STI)에 기초하여 쓰기 동작의 완료를 인지할 수 있다. 이를 위해, 프로세서(101)는 상태 영역(STA)을 특정 시각마다(예컨대, 주기적으로) 폴링(Polling)할 수 있다.For example, when the
예로서, 프로세서(101)가 읽기 데이터(DATA_R)를 읽고자 하는 경우, 프로세서(101)는 읽기 데이터(DATA_R)에 관한 정보 및 읽기 동작의 요청에 관한 상태 정보(STI)를 상태 영역(STA)으로 제공할 수 있다. 컨트롤러(112)는 상태 정보(STI)에 기초하여 읽기 데이터(DATA_R)가 불휘발성 메모리들(120) 중 적어도 하나로부터 읽히도록 읽기 동작을 제어할 수 있다. 컨트롤러(112)가 읽기 동작의 완료를 알리는 상태 정보(STI)를 상태 영역(STA)에 저장한 경우, 프로세서(101)는 상태 정보(STI)에 기초하여 읽기 동작의 완료를 인지할 수 있다. 나아가, 프로세서(101)는 읽기 영역(RA)에 저장된 읽기 데이터(DATA_R)를 제공받을 수 있다.For example, if the
위에서 언급된 것과 같이, 본 발명의 실시 예에서, 읽기 데이터(DATA_R) 대신, 읽기 데이터(DATA_R)를 분할하여 생성되는 전송 단위 데이터들이 프로세서(101)로 전송될 수 있다. 이 실시 예에서, 램(111b)의 상태 영역(STA)은 상태 정보(STI)로서 "알림 데이터(Notification Data)"를 저장할 수 있다. 알림 데이터는 읽기 데이터(DATA_R)를 형성하는 전송 단위 데이터들에 관한 정보를 포함할 수 있다. 알림 데이터는 도 13 내지 도 15를 참조하여 더 상세히 설명될 것이다.As described above, in the embodiment of the present invention, instead of the read data (DATA_R), the transfer unit data generated by dividing the read data (DATA_R) may be transmitted to the
도 10은 도 8의 스토리지 장치에 관한 쓰기 동작을 설명하는 흐름도이다. 프로세서(101)는 도 10의 쓰기 동작에 따라 스토리지 장치(100)에 쓰기 데이터(DATA_W)를 저장할 수 있다. 본 발명의 이해를 돕기 위해, 도 8 및 도 9가 함께 참조될 것이다.10 is a flowchart for explaining a write operation of the storage apparatus of FIG. The
S110 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 커맨드 영역(CA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S110, the
S120 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로 제공할 수 있다. S120 동작에서, 데이터 신호(DQ)는 스토리지 장치(100)에 관한 쓰기 동작, 좀 더 구체적으로는 불휘발성 메모리들(120)에 관한 쓰기 동작을 요청하기 위한 스토리지 커맨드(CMD_S)를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 쓰기 동작이 수행될 불휘발성 메모리들(120)의 위치를 나타내는 스토리지 어드레스(ADDR_S)를 포함할 수 있다.In operation S120, the
S110 및 S120 동작들은 불휘발성 메모리들(120)에 관한 쓰기 커맨드를 스토리지 장치(100)로 전달하기 위한 커맨드 트랜잭션(Transaction) 동작을 형성할 수 있다. S110 및 S120 동작들이 수행된 경우, 램(111b)의 커맨드 영역(CA)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. 여기서, 스토리지 커맨드(CMD_S)는 불휘발성 메모리들(120)에서 쓰기 동작이 수행됨을 지시할 수 있다.S110 and S120 operations may form a command transaction operation for transferring a write command for the
S130 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 쓰기 영역(WA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S130, the
S140 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로 제공할 수 있다. S140 동작에서, 데이터 신호(DQ)는 스토리지 장치(100)에 저장될 쓰기 데이터(DATA_W)를 포함할 수 있다.In operation S140, the
S130 및 S140 동작들은 불휘발성 메모리들(120)에 저장될 쓰기 데이터(DATA_W)를 스토리지 장치(100)로 전달하기 위한 데이터 트랜잭션 동작을 형성할 수 있다. S130 및 S140 동작들이 수행된 경우, 램(111b)의 쓰기 영역(WA)은 쓰기 데이터(DATA_W)를 저장할 수 있다. 스토리지 커맨드(CMD_S), 스토리지 어드레스(ADDR_S), 및 쓰기 데이터(DATA_W)가 램(111b)에 저장됨에 따라, 컨트롤러(112)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 기초하여 쓰기 동작을 제어할 수 있다.S130 and S140 operations may form a data transaction operation for transferring write data (DATA_W) to be stored in the
S150 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 상태 영역(STA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S150, the
S160 동작에서, 프로세서(101)는 스토리지 장치(100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받을 수 있다. S160 동작에서, 데이터 신호(DQ)는 쓰기 동작에 관한 상태 정보(STI)를 포함할 수 있다.In operation S160, the
S170 동작에서, 스토리지 장치(100)는 쓰기 데이터(DATA_W) 및 쓰기 동작에 관한 상태 정보(STI)를 상태 영역(STA)에 저장할 수 있다. 예로서, 스토리지 장치(100)에서 쓰기 동작이 완료된 경우, 쓰기 동작이 스케쥴링(Scheduling)된 경우, 또는 쓰기 동작의 명령(Instruction)이 큐(Queue)에 진입(Enter)된 경우, S170 동작이 수행될 수 있다.In operation S170, the
S180 동작에서, 프로세서(101)는 쓰기 동작이 완료되었는지 여부를 판별할 수 있다. 프로세서(101)는 상태 영역(STA)에 저장된 상태 정보(STI)에 기초하여 쓰기 동작이 완료되었는지 여부를 판별할 수 있다.In operation S180, the
S150 내지 S180 동작들은 불휘발성 메모리들(120)에서 쓰기 동작이 완료되었는지 여부를 확인하는 확인 트랜잭션 동작을 형성할 수 있다. 쓰기 동작이 완료되지 않은 것으로 판별된 경우, 프로세서(101)는 S150 및 S160 동작들을 반복함으로써 쓰기 동작이 완료되었는지 여부를 계속 폴링할 수 있다. 반면, 쓰기 동작이 완료된 것으로 판별된 경우, 프로세서(101)는 스토리지 장치(100)의 다음 동작을 요청할 수 있다.Operations S150 through S180 may form a confirm transaction operation to confirm whether the write operation has been completed in the
도 11은 도 8의 스토리지 장치에 관한 읽기 동작을 보여주는 개념도이다. 본 발명의 이해를 돕기 위해, 도 8 및 도 9가 함께 참조될 것이다.11 is a conceptual diagram showing a read operation of the storage apparatus of FIG. To facilitate understanding of the present invention, Figures 8 and 9 will be referred to together.
도 11을 참조하면, 시각 't0'에서, 프로세서(101)는 스토리지 장치(100)로 읽기 요청을 제공할 수 있다(동작 ① 참조). 프로세서(101)는 스토리지 장치(100)에 저장된 읽기 데이터(DATA_R)를 읽기 위해 스토리지 장치(100)로 읽기 요청을 제공할 수 있다. 프로세서(101)는 읽기 요청에 대응하는 스토리지 커맨드(CMD_S)를 스토리지 장치(100)로 제공할 수 있다. 프로세서(101)는 읽기 데이터(DATA_R)가 저장된 위치를 나타내는 스토리지 어드레스(ADDR_S)를 스토리지 장치(100)로 제공할 수 있다.Referring to FIG. 11, at time 't0', the
스토리지 장치(100)가 읽기 요청을 수신한 경우, 스토리지 장치(100)는 읽기 데이터(DATA_R)를 프로세서(101)로 전송할 수 있다. 본 발명의 실시 예에서, 스토리지 장치(100)는 완전한 읽기 데이터(DATA_R)를 프로세서(101)로 전송하는 대신, 읽기 데이터(DATA_R)를 분할하여 생성되는 복수의 전송 단위 데이터를 프로세서(101)로 전송할 수 있다(동작 ② 참조).When the
스토리지 장치(100)는 장치 컨트롤러(110)의 제어에 따라 스토리지 어드레스(ADDR_S)에 대응하는 불휘발성 메모리들(120)의 위치로부터 읽기 데이터(DATA_R)를 읽을 수 있다. 그러나, 읽기 데이터(DATA_R)가 많이 분산되어 저장되어 있는 경우, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않을 수 있다. 또는, 읽기 데이터(DATA_R)의 크기가 읽기 동작의 단위 크기를 초과하는 경우, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않을 수 있다.The
읽기 데이터(DATA_R) 전체가 완전히 읽힌 후에 읽기 데이터(DATA_R)가 프로세서(101)로 전송되는 경우, 램(111b)은 읽기 데이터(DATA_R) 전체를 버퍼링하기 위해 큰 용량을 가져야 한다. 따라서, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않음에도 불구하고 읽기 데이터(DATA_R) 전체가 읽힌 후에 읽기 데이터(DATA_R)를 프로세서(101)로 전송하는 것은 비효율적일 수 있다. 오히려, 읽기 데이터(DATA_R)의 일부가 읽힐 때마다 읽힌 부분을 전송하는 것이 효율적일 수 있다.When the read data (DATA_R) is transferred to the processor (101) after the entire read data (DATA_R) has been completely read, the RAM (111b) must have a large capacity to buffer the entire read data (DATA_R). Accordingly, it may be inefficient to transmit the read data (DATA_R) to the
본 발명의 실시 예에서, 스토리지 장치(100)는 장치 컨트롤러(110)의 제어에 따라, 읽기 데이터(DATA_R)를 형성하는 전송 단위 데이터들(D[1] 내지 D[10]) 각각을 프로세서(101)로 전송할 수 있다. 예로서, 10개의 전송 단위 데이터들(즉, D[1] 내지 D[10])이 읽기 데이터(DATA_R)를 형성하는 것으로 가정한다. 다만, 이 예는 본 발명의 이해를 돕기 위해 제공될 뿐이고, 본 발명을 제한하기 위한 것은 아님이 명백하다.In the embodiment of the present invention, the
여기서, 전송 단위 데이터가 갖는 "전송 단위"는 실시 예에 따라 다양하게 변경 또는 수정될 수 있다. 전송 단위는 데이터를 전송하기에 적합한 임의의 크기를 가질 수 있다. 전송 단위는 고정된 크기를 갖거나 가변되는 크기를 가질 수 있다. 몇몇 실시 예에서, 전송 단위는 데이터 전송에 이용되는 패킷(Packet) 단위를 구성할 수 있다.Here, the "transmission unit" of the transmission unit data can be variously changed or modified according to the embodiment. The transmission unit may have any size suitable for transmitting data. The transmission unit may have a fixed size or a variable size. In some embodiments, the transmission unit may constitute a packet unit used for data transmission.
예로서, 시각 't1'에서, 제 3 전송 단위 데이터(D[3])가 가장 먼저 불휘발성 메모리들(120) 중 적어도 하나로부터 읽히고 전송될 준비가 될 수 있다. 장치 컨트롤러(110)는 제 3 전송 단위 데이터(D[3])의 준비에 응답하여 제 3 전송 단위 데이터(D[3])를 프로세서(101)로 전송할 수 있다. 따라서, 프로세서(101)는 제 3 전송 단위 데이터(D[3])를 가장 먼저 수신할 수 있다.By way of example, at time t1, the third transmission unit data D [3] may be first read from at least one of the
다음으로, 시각 't2'에서, 제 1 전송 단위 데이터(D[1])가 불휘발성 메모리들(120) 중 적어도 하나로부터 읽히고 전송될 준비가 될 수 있다. 나아가, 각각 시각 't3' 및 시각 't4'에서, 제 10 전송 단위 데이터(D[10]) 및 제 7 전송 단위 데이터(D[7])가 불휘발성 메모리들(120) 중 적어도 하나로부터 읽히고 전송될 준비가 될 수 있다. 장치 컨트롤러(110)는 전송 단위 데이터들(D[1], D[10], D[7]) 각각의 준비에 응답하여 준비된 전송 단위 데이터(D[1], D[10], 또는 D[7])를 프로세서(101)로 전송할 수 있다. 프로세서(101)는 스토리지 장치(100)에서 준비된 전송 단위 데이터를 하나씩 수신할 수 있다.Next, at time t2, the first transmission unit data D [1] may be read from at least one of the
마지막으로, 시각 't10'에서, 제 5 전송 단위 데이터(D[5])가 읽히고 프로세서(101)로 전송될 수 있다. 프로세서(101)는 읽기 데이터(DATA_R)의 전송이 완료되었는지 여부를 관리할 수 있다(동작 ③ 참조). 프로세서(101)는 제 5 전송 단위 데이터(D[5])를 마지막으로 수신한 후, 시각 't11'에서 읽기 데이터(DATA_R)의 전송이 완료되었음을 판별할 수 있다.Finally, at time t10, the fifth transmission unit data D [5] may be read and transmitted to the
본 발명의 실시 예에서, 전송 단위 데이터들(D[1] 내지 D[10])은 전송 단위 데이터들(D[1] 내지 D[10]) 각각의 준비에 응답하여 장치 컨트롤러(110)의 제어에 따라 하나씩 프로세서(101)로 전송될 수 있다. 몇몇 실시 예에서, 전송 단위 데이터들(D[1] 내지 D[10]) 각각은 읽기 데이터(DATA_R)를 형성하는 순서에 관계없이 프로세서(101)로 전송될 수 있다. 즉, 전송 단위 데이터들(D[1] 내지 D[10]) 각각은 준비되는 대로 프로세서(101)로 전송될 수 있다. 전송 단위 데이터들(D[1] 내지 D[10]) 각각을 프로세서(101)로 전송함으로써, 읽기 데이터(DATA_R)가 프로세서(101)로 전송될 수 있다.In the embodiment of the present invention, the transmission unit data D [1] to D [10] are transmitted to the
본 발명의 실시 예에서, 램(111b)은 읽기 데이터(DATA_R) 전체를 저장하는 대신, 준비된 전송 단위 데이터들(D[1] 내지 D[10])만을 저장할 수 있다. 따라서, 적은 용량을 갖는 램(111b)이 채용될 수 있다. 결과적으로, 램(111b)에 의해 차지되는 면적 및 스토리지 장치(100)의 구현 비용이 줄어들 수 있다.In the embodiment of the present invention, instead of storing the entire read data (DATA_R), the
본 발명의 실시 예에서, 전송 단위 데이터들(D[1] 내지 D[10]) 전부가 프로세서(101)로 전송되었는지 여부(즉, 읽기 동작이 완료되었는지 여부)는 프로세서(101)에 의해 관리될 수 있다. 즉, 스토리지 장치(100)는 전송 단위 데이터들(D[1] 내지 D[10]) 각각을 전송할 뿐이고, 전송 단위 데이터들(D[1] 내지 D[10]) 전부가 전송되었는지 여부는 관리하지 않을 수 있다. 따라서, 스토리지 장치(100)의 동작 부하가 줄어들 수 있다. 프로세서(101)에 의해 읽기 동작의 완료를 관리하기 위해, "알림 데이터"가 이용될 수 있다. 알림 데이터는 도 13 내지 도 15를 참조하여 설명될 것이다.In the embodiment of the present invention, whether or not all of the transmission unit data D [1] to D [10] are transmitted to the processor 101 (i.e., whether or not the reading operation has been completed) . That is, the
도 12는 도 8의 스토리지 장치에 관한 읽기 동작을 설명하는 흐름도이다. 프로세서(101)는 도 11 및 도 12의 읽기 동작에 따라 스토리지 장치(100)에 저장된 읽기 데이터(DATA_R)를 제공받을 수 있다. 본 발명의 이해를 돕기 위해, 도 8 및 도 9가 함께 참조될 것이다.Fig. 12 is a flowchart for explaining a read operation of the storage apparatus of Fig. 8; The
S210 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 커맨드 영역(CA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S210, the
S220 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로 제공할 수 있다. S220 동작에서, 데이터 신호(DQ)는 스토리지 장치(100)에 관한 읽기 동작, 좀 더 구체적으로는 불휘발성 메모리들(120)에 관한 읽기 동작을 요청하기 위한 스토리지 커맨드(CMD_S)를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 읽기 동작이 수행될 불휘발성 메모리들(120)의 위치를 나타내는 스토리지 어드레스(ADDR_S)를 포함할 수 있다.In operation S220, the
S210 및 S220 동작들은 불휘발성 메모리들(120)에 관한 읽기 커맨드를 스토리지 장치(100)로 전달하기 위한 커맨드 트랜잭션 동작을 형성할 수 있다. S210 및 S220 동작들이 수행된 경우, 램(111b)의 커맨드 영역(CA)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 램(111b)에 저장됨에 따라, 컨트롤러(112)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 기초하여 읽기 동작을 제어할 수 있다.S210 and S220 operations may form a command transaction operation for transferring a read command to
S230 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 상태 영역(STA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S230, the
S240 동작에서, 프로세서(101)는 스토리지 장치(100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받을 수 있다. S240 동작에서, 데이터 신호(DQ)는 읽기 동작에 관한 상태 정보(STI)를 포함할 수 있다.In operation S240, the
S250 동작에서, 스토리지 장치(100)는 읽기 데이터(DATA_R) 및 읽기 동작에 관한 상태 정보(STI)를 상태 영역(STA)에 저장할 수 있다. 읽기 데이터(DATA_R)를 형성하는 복수의 전송 단위 데이터 중에서 특정 전송 단위 데이터에 관한 읽기 동작이 스토리지 장치(100)에서 수행된 경우, S250 동작이 수행될 수 있다. 여기서, 상태 정보(STI)는 "알림 데이터"를 포함할 수 있다. 알림 데이터는 특정 전송 단위 데이터가 램(111b)에 저장되어 전송될 준비가 되었음을 나타낼 수 있다. 나아가, 알림 데이터는 준비된 전송 단위 데이터의 읽기 데이터(DATA_R)에서의 위치에 관한 정보를 포함할 수 있다.In operation S250, the
S260 동작에서, 프로세서(101)는 특정 전송 단위 데이터에 관한 읽기 동작이 수행되었는지 여부를 판별할 수 있다. 프로세서(101)는 상태 영역(STA)에 저장된 상태 정보(STI)(좀 더 구체적으로는, "알림 데이터")에 기초하여 특정 전송 단위 데이터에 관한 읽기 동작이 수행되었는지 여부를 판별할 수 있다.In operation S260, the
S230 내지 S260 동작들은 불휘발성 메모리들(120)로부터 특정 전송 단위 데이터가 읽혔는지 여부를 확인하는 단위 읽기 확인 트랜잭션 동작을 형성할 수 있다. 읽기 동작이 아직 수행되지 않은 것으로 판별된 경우, 프로세서(101)는 S230 및 S240 동작들을 반복함으로써 읽기 동작이 수행되었는지 여부를 계속 폴링할 수 있다. 반면, 읽기 동작이 수행된 것으로 판별된 경우, S270 동작이 수행될 수 있다.Operations S230 through S260 may form a unit read acknowledgment transaction operation that verifies whether specific unit of transfer data has been read from
S270 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 읽기 영역(RA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S270, the
S280 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로부터 제공받을 수 있다. S280 동작에서, 데이터 신호(DQ)는 전송 단위 데이터들 중에서 준비된 전송 단위 데이터(D[n])를 포함할 수 있다.In operation S280, the
S270 및 S280 동작들은 읽기 데이터(DATA_R)를 스토리지 장치(100)로부터 프로세서(101)로 전달하기 위해 전송 단위 데이터(D[n])를 전송하는 데이터 트랜잭션 동작을 형성할 수 있다. S270 및 S280 동작들이 수행된 경우, 전송 단위 데이터(D[n])는 램(111b)의 읽기 영역(RA)에 저장된 후, 프로세서(101)로 제공될 수 있다.S270 and S280 operations may form a data transaction operation that transmits the transfer unit data D [n] to transfer the read data (DATA_R) from the
S290 동작에서, 프로세서(101)는 전체 읽기 동작이 완료되었는지 여부(즉, 전송 단위 데이터들 전부가 전송되었는지 여부)를 판별할 수 있다. 프로세서(101)는 S250 동작에서 저장된 상태 정보(STI)의 알림 데이터를 참조하여 전체 읽기 동작이 완료되었는지 여부를 판별할 수 있다. 전체 읽기 동작이 아직 완료되지 않은 것으로 판별된 경우, 프로세서(101)는 S230 내지 S280 동작들을 반복함으로써 아직 전송되지 않은 전송 단위 데이터들을 하나씩 수신할 수 있다.In operation S290, the
전송 단위 데이터들 전부가 전송된 경우, S292 동작에서, 프로세서(101)는 전체 읽기 동작이 완료된 것으로 판별할 수 있다. 나아가, 프로세서(101)는 스토리지 장치(100)의 다음 동작을 요청할 수 있다. S290 및 S292 동작들은 전체 읽기 데이터(DATA_R)가 완전히 전송되었는지 여부를 확인하는 전체 읽기 확인 트랜잭션 동작을 형성할 수 있다.If all of the transmission unit data has been transmitted, in S292 operation, the
도 13은 도 11 및 도 12의 읽기 동작 중 전송 단위 데이터 및 알림 데이터의 전송을 보여주는 개념도이다.FIG. 13 is a conceptual diagram showing transmission of transmission unit data and notification data during the reading operation of FIGS. 11 and 12. FIG.
프로세서(101)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 커맨드 영역(CA)에 저장함으로써 스토리지 장치(100, 도 8 참조)로 읽기 요청을 제공할 수 있다. 읽기 요청에 응답하여, 장치 컨트롤러(110, 도 8 참조)는 컨트롤러(112)에 의해, 읽기 데이터(DATA_R)를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 프로세서(101)로 전송되도록, 물리 계층(111, 도 8 참조) 및 불휘발성 메모리들(120, 도 8 참조)을 제어할 수 있다.The
좀 더 구체적으로, 컨트롤러(112)의 제어에 따라, 전송 단위 데이터들 중에서 준비된 전송 단위 데이터(D[n])는 램(111b)의 읽기 영역(RA)에 임시로 저장될 수 있다. 나아가, 컨트롤러(112)의 제어에 따라, 장치 컨트롤러(110)는 전송 단위 데이터(D[n])에 대응하는 알림 데이터(NTI[n])를 생성하고, 알림 데이터(NTI[n])를 상태 정보(STI)로서 램(111b)의 상태 영역(STA)에 저장할 수 있다. 프로세서(101)는 알림 데이터(NTI[n])에 기초하여, 읽기 영역(RA)에 저장된 전송 단위 데이터(D[n])를 수신할 수 있다.More specifically, according to the control of the
실시 예로서, 알림 데이터(NTI[n])는 준비 알림(PN)을 포함할 수 있다. 준비 알림(PN)은 전송 단위 데이터(D[n])가 램(111b)에 저장되어 전송될 준비가 되었음을 나타낼 수 있다. 프로세서(101)는 준비 알림(PN)에 기초하여 전송 단위 데이터(D[n])의 준비를 인지하고 전송 단위 데이터(D[n])를 수신할 수 있다.As an embodiment, the notification data (NTI [n]) may include a preparation notification (PN). The preparation notification PN may indicate that the transmission unit data D [n] is stored in the
실시 예로서, 알림 데이터(NTI[n])는 위치 정보(PI)를 포함할 수 있다. 위치 정보(PI)는 전송 단위 데이터(D[n])의 읽기 데이터(DATA_R)에서의 위치에 관한 정보를 포함할 수 있다. 예로서, 위치 정보(PI)는 전송 단위 데이터(D[n])에 대응하는 어드레스와 같이, 전송 단위 데이터(D[n])와 읽기 데이터(DATA_R) 사이의 관계를 파악하기 위해 필요한 정보를 포함할 수 있다. 프로세서(101)는 위치 정보(PI)에 기초하여, 전송 단위 데이터들 전부가 수신되었는지 여부를 판별할 수 있다. 나아가, 프로세서(101)는 위치 정보(PI)에 기초하여, 전송 단위 데이터들 전부가 수신된 후 전송 단위 데이터들을 읽기 데이터(DATA_R)로 결합할 수 있다.As an embodiment, the notification data (NTI [n]) may include position information (PI). The position information PI may include information on the position in the read data (DATA_R) of the transmission unit data D [n]. For example, the position information PI may include information necessary for grasping the relationship between the transfer unit data D [n] and the read data DATA_R, such as an address corresponding to the transfer unit data D [n] . The
실시 예로서, 알림 데이터(NTI[n])는 무효 부분 정보(IPI)를 포함할 수 있다. 무효 부분 정보(IPI)는 전송 단위 데이터(D[n])에 포함되는 무효 부분(Invalid Portion)에 관한 정보를 포함할 수 있다. 몇몇 경우, 전송 단위 데이터(D[n])는 읽기 데이터(DATA_R)에 포함되지 않는 무효 부분을 포함할 수 있다. 무효 부분은 도 15를 참조하여 설명될 것이다.As an embodiment, the notification data (NTI [n]) may include invalid partial information (IPI). The invalid portion information IPI may include information on an invalid portion included in the transmission unit data D [n]. In some cases, the transmission unit data D [n] may include an invalid portion not included in the read data (DATA_R). The invalid portion will be described with reference to FIG.
도 14는 도 11 및 도 12의 읽기 동작에 따라 도 13의 알림 데이터를 참조하여 전송 단위 데이터들을 스토리지 장치에서 호스트 측으로 전송하는 과정을 보여주는 개념도이다.FIG. 14 is a conceptual diagram illustrating a process of transmitting transmission unit data from a storage apparatus to a host apparatus by referring to the notification data of FIG. 13 according to the reading operation of FIGS. 11 and 12. FIG.
시각 't0'에서, 프로세서(101)는 읽기 데이터(DATA_R)에 관한 읽기 요청을 스토리지 장치(100)로 제공할 수 있다(도 12의 S210 및 S220 동작들 참조). 읽기 요청이 수신된 경우, 위에서 설명된 것과 같이, 스토리지 장치(100)는 읽기 데이터(DATA_R)를 형성하는 복수의 전송 단위 데이터 각각을 프로세서(101)로 전송할 수 있다. 다만, 전송 단위 데이터들은 읽기 데이터(DATA_R)를 형성하는 순서에 관계없이 준비되는 대로 하나씩 프로세서(101)로 전송될 수 있다.At time 't0', the
프로세서(101)는 읽기 요청을 제공한 후, 특정 시점마다(예컨대, 주기적으로, 또는 특정 조건이 충족될 때마다) 스토리지 장치(100)에서 알림 데이터가 생성되었는지 여부를 확인할 수 있다(도 12의 S230 내지 S260 동작들 참조). 알림 데이터가 생성된 경우, 프로세서(101)는 특정 전송 단위 데이터가 준비되었음을 인지하고, 준비된 전송 단위 데이터를 수신할 수 있다.The
예로서, 시각 't1'에서, 제 3 전송 단위 데이터(D[3])가 램(111b, 도 8 참조)에 저장되어 전송될 준비가 될 수 있다. 스토리지 장치(100)는 제 3 전송 단위 데이터(D[3])의 준비를 알리기 위한 알림 데이터(NTI[3])를 생성할 수 있다.As an example, at time t1, the third transmission unit data D [3] may be stored in the
시각 't2'에서, 프로세서(101)는 알림 데이터(NTI[3])에 기초하여 제 3 전송 단위 데이터(D[3])를 수신할 수 있다(도 12의 S270 및 S280 동작들 참조). 나아가, 프로세서(101)는 알림 데이터(NTI[3])를 참조하여 제 3 전송 단위 데이터(D[3])에 관한 정보를 획득할 수 있다. 그러나, 아직 전송 단위 데이터들 전부가 수신되지 않았기 때문에, 전송 단위 데이터의 전송이 계속 수행될 수 있다(도 12의 S290 동작으로부터 S230 동작으로 돌아가는 화살표 참조).At time t2, the
각각 시각 't2' 및 시각 't3'에서, 제 1 전송 단위 데이터(D[1]) 및 제 10 전송 단위 데이터(D[10])가 램(111b)에 저장되어 전송될 준비가 될 수 있다. 스토리지 장치(100)는 제 1 전송 단위 데이터(D[1]) 및 제 10 전송 단위 데이터(D[10])에 각각 대응하는 알림 데이터들(NTI[1], NTI[10])을 생성할 수 있다. 몇몇 경우, 프로세서(101)가 알림 데이터를 확인하기 전에 여러 전송 단위 데이터가 준비될 수 있다.The first transmission unit data D [1] and the tenth transmission unit data D [10] may be stored in the
시각 't4'에서, 프로세서(101)는 알림 데이터들(NTI[1], NTI[10])에 기초하여 제 1 전송 단위 데이터(D[1]) 및 제 10 전송 단위 데이터(D[10])를 수신할 수 있다. 나아가, 프로세서(101)는 알림 데이터들(NTI[1], NTI[10])을 참조하여 제 1 전송 단위 데이터(D[1]) 및 제 10 전송 단위 데이터(D[10])에 관한 정보를 획득할 수 있다. 따라서, 프로세서(101)는 제 1 전송 단위 데이터(D[1]), 제 3 전송 단위 데이터(D[3]), 및 제 10 전송 단위 데이터(D[10])를 적절히 배치할 수 있다.At time t4, the
시각 't6'에서, 프로세서(101)는 스토리지 장치(100)에서 알림 데이터가 생성되었는지 여부를 확인할 수 있다. 그러나, 몇몇 경우, 전송 단위 데이터가 아직 준비되지 않았을 수 있다(도 12의 S260 동작으로부터 S230 동작으로 돌아가는 화살표 참조). 이 경우, 프로세서(101)는 다음 알림 데이터가 확인될 때까지 대기하거나 다른 동작을 수행할 수 있다.At time " t6 ", the
시각 't7'에서, 제 5 전송 단위 데이터(D[5])가 마지막으로 램(111b)에 저장되어 전송될 준비가 될 수 있다. 스토리지 장치(100)는 제 5 전송 단위 데이터(D[5])에 대응하는 알림 데이터(NTI[5])를 생성할 수 있다. 시각 't8'에서, 프로세서(101)는 알림 데이터(NTI[5])에 기초하여 제 5 전송 단위 데이터(D[5])를 수신할 수 있다. 나아가, 프로세서(101)는 알림 데이터(NTI[5])를 참조하여 제 5 전송 단위 데이터(D[5])에 관한 정보를 획득할 수 있다. At time t7, the fifth transmission unit data D [5] may finally be stored in the
시각 't9'에서, 프로세서(101)는 알림 데이터들(NTI[1] 내지 NTI[10])을 참조하여 전송 단위 데이터들(D[1] 내지 D[10]) 전부가 수신되었음을 판별할 수 있다. 따라서, 프로세서(101)는 전체 읽기 동작이 완료되었음을 판별할 수 있다(도 12의 S292 동작 참조). 프로세서(101)는 알림 데이터들(NTI[1] 내지 NTI[10])을 참조하여 전송 단위 데이터들(D[1] 내지 D[10])을 적절히 배열하고, 읽기 데이터(DATA_R)를 획득할 수 있다.At time t9, the
요약하면, 프로세서(101)로부터 읽기 요청이 수신된 경우, 스토리지 장치(100)는 읽기 데이터를 분할하여 생성되는 전송 단위 데이터들 각각을 램(111b)에 저장할 수 있다. 스토리지 장치(100)는 전송 단위 데이터들 각각의 준비에 응답하여 알림 데이터를 생성할 수 있다. 프로세서(101)는 알림 데이터의 생성에 응답하여, 준비된 전송 단위 데이터를 하나씩 수신할 수 있다. 전송 단위 데이터들 전부를 전송함으로써, 읽기 데이터(DATA_R)가 스토리지 장치(100)로부터 프로세서(101)로 전송될 수 있다. 전송 단위 데이터들 전부가 전송되었는지 여부는 프로세서(101)에 의해 관리될 수 있다.In summary, when a read request is received from the
도 15는 도 11 및 도 12의 읽기 동작에 따라 전송된 전송 단위 데이터들에서 무효 부분을 버리고 유효 부분을 결합함으로써 읽기 데이터를 획득하는 과정을 보여주는 개념도이다.FIG. 15 is a conceptual diagram showing a process of acquiring read data by discarding an invalid portion and combining a valid portion in transmission unit data transmitted according to the reading operation of FIGS. 11 and 12. FIG.
몇몇 실시 예에서, 읽기 데이터를 형성하는 복수의 전송 단위 데이터 중 적어도 하나는 무효 부분을 포함할 수 있다. 무효 부분은 읽기 데이터에 포함되지 않는 부분을 의미한다. 이와 대조적으로, 읽기 데이터에 포함되는 부분은 유효 부분으로 불릴 수 있다.In some embodiments, at least one of the plurality of transmission unit data forming the read data may include an invalid portion. The invalid part means a part not included in the read data. In contrast, a portion included in the read data may be referred to as a valid portion.
몇몇 경우, 불휘발성 메모리들(120, 도 8 참조)로부터 읽힌 데이터의 크기가 전송 단위 데이터의 크기보다 작을 수 있다. 이 경우, 전송 단위 데이터는 불휘발성 메모리들로부터 읽힌 데이터를 유효 부분으로서 포함할 수 있다. 나아가, 장치 컨트롤러(110, 도 8 참조)의 제어에 따라, 무효 부분이 전송 단위 데이터에 부가될 수 있다. 무효 부분은 전송 단위를 형성하기 위해 전송 단위 데이터에 부가될 수 있다.In some cases, the size of the data read from the non-volatile memories 120 (see FIG. 8) may be smaller than the size of the transfer unit data. In this case, the transfer unit data may include data read from the nonvolatile memories as a valid portion. Further, in accordance with the control of the device controller 110 (see Fig. 8), an invalid portion can be added to the transmission unit data. The invalid portion may be added to the transmission unit data to form the transmission unit.
예로서, 무효 부분은 읽기 데이터와 무관한 무의미한 데이터 또는 특정 패턴의 데이터를 포함할 수 있다. 도 13을 참조하여 설명된 것과 같이, 알림 데이터는 무효 부분 정보(IPI)를 포함할 수 있다. 무효 부분 정보(IPI)는 무효 부분의 위치, 무효 부분의 내용, 무효 부분의 길이 등과 같이 무효 부분을 식별하기 위해 필요한 정보를 포함할 수 있다.As an example, the invalid portion may include meaningless data irrelevant to the read data or data of a specific pattern. As described with reference to Fig. 13, the notification data may include invalid portion information (IPI). The invalid portion information (IPI) may include information necessary for identifying the invalid portion such as the position of the invalid portion, the content of the invalid portion, the length of the invalid portion, and the like.
프로세서(101, 도 8 참조)는 무효 부분 정보(IPI)를 포함하는 알림 데이터에 기초하여, 수신된 전송 단위 데이터들에 포함되는 무효 부분을 식별할 수 있다. 무효 부분은 읽기 데이터와 무관하기 때문에, 프로세서(101, 도 8 참조)는 무효 부분을 버릴 수 있다. 나아가, 프로세서(101)는 무효 부분을 제외한 데이터를 결합할 수 있다. 이로써, 프로세서(101)는 읽기 데이터를 획득할 수 있다.The processor 101 (see FIG. 8) can identify the invalid portion included in the received transmission unit data based on the notification data including the invalid portion information IPI. Since the invalid portion is independent of the read data, the processor 101 (see FIG. 8) can discard the invalid portion. Further, the
예로서, 도 15를 참조하면, 읽기 데이터는 제 1 전송 단위 데이터(D[1]) 내지 제 10 전송 단위 데이터(D[10])로 형성될 수 있다. 예로서, 제 5 전송 단위 데이터(D[5]) 및 제 10 전송 단위 데이터(D[10]) 각각은 무효 부분을 포함할 수 있다. 프로세서(101)는 제 5 전송 단위 데이터(D[5])에 대응하는 알림 데이터에 기초하여 제 5 전송 단위 데이터(D[5])에 포함되는 무효 부분을 버리고, 수정된 제 5 전송 단위 데이터(D[5]')를 얻을 수 있다. 프로세서(101)는 제 10 전송 단위 데이터(D[10])에 대응하는 알림 데이터에 기초하여 제 10 전송 단위 데이터(D[10])에 포함되는 무효 부분을 버리고, 수정된 제 10 전송 단위 데이터(D[10]')를 얻을 수 있다.For example, referring to FIG. 15, read data may be formed of first transmission unit data D [1] through tenth transmission unit data D [10]. For example, each of the fifth transmission unit data D [5] and the tenth transmission unit data D [10] may include an invalid portion. The
프로세서(101)는 수정된 제 5 전송 단위 데이터(D[5]') 및 수정된 제 10 전송 단위 데이터(D[10]')를 다른 전송 단위 데이터들과 결합할 수 있다. 이로써, 프로세서(101)는 읽기 데이터를 획득할 수 있다. 최종적으로 획득된 읽기 데이터는 무효 부분 없이 프로세서(101)에 의해 의도된 데이터만을 포함할 수 있다.The
도 8 내지 도 15를 참조하여 설명된 실시 예들에 따르면, 프로세서(101)는 도 1의 버스(1230)와 같이 빠른 속도로 동작하는 버스를 통해 도 8의 장치 컨트롤러(112)와 통신할 수 있다. 예로서, 도 8의 스토리지 장치(100)가 DIMM 형태로 구현되고 프로세서(101)가 DDR 방식으로 동작하는 인터페이스 규약에 따라 장치 컨트롤러(112)와 통신하는 경우, 프로세서(101)는 스토리지 장치(100)를 DIMM 장치로 인식하고 DDR 방식으로 동작하는 인터페이스 규약에 따라 램(111b)에 대한 쓰기 동작 및 읽기 동작을 수행할 수 있다. 따라서, 본 발명의 실시 예에 따르면, 스토리지 장치(100)가 높은 동작 성능을 보일 수 있다.According to the embodiments described with reference to Figures 8-15, the
도 16은 도 8의 불휘발성 메모리들 중 하나를 보여주는 블록도이다. 도 8의 불휘발성 메모리들(120) 중 적어도 하나는 불휘발성 메모리(121)를 포함할 수 있다. 불휘발성 메모리(121)는 메모리 셀 어레이(121a), 어드레스 디코더(121b), 제어 로직 및 전압 발생기(121c), 페이지 버퍼(121d), 및 입출력 회로(121e)를 포함할 수 있다.16 is a block diagram showing one of the nonvolatile memories of FIG. At least one of the
메모리 셀 어레이(121a)는 복수의 메모리 블록(BLK1 내지 BLKz)을 포함할 수 있다. 메모리 블록들 각각은 복수의 셀 스트링을 포함할 수 있다. 셀 스트링들 각각은 복수의 메모리 셀을 포함할 수 있다. 메모리 셀들은 각각 복수의 워드 라인(WL)과 연결될 수 있다. 메모리 셀들 각각은 1비트를 저장하는 단일 레벨 셀(Single Level Cell) 또는 적어도 2비트를 저장하는 멀티 레벨 셀(Multi Level Cell)을 포함할 수 있다.The
실시 예로서, 메모리 셀 어레이(121a)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 관련된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀 어레이들의 하나 이상의 물리 레벨들에 모놀리식으로(Monolithically) 형성될 수 있다. 메모리 셀들의 동작에 관련된 회로는 기판 내에 또는 기판 위에 배치될 수 있다. "모놀리식(Monolithical)"이라는 용어는, 3차원 메모리 어레이의 각 레벨의 층들이 3차원 메모리 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.As an example, the
실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 갖고 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함할 수 있다. 적어도 하나의 메모리 셀은 전하 트랩(Charge Trap) 층을 포함할 수 있다. 수직 NAND 스트링들 각각은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조로 구성되고 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.As an example, the three-dimensional memory array may include vertical NAND strings with vertical orientation and at least one memory cell located over the other memory cell. The at least one memory cell may include a charge trap layer. Each of the vertical NAND strings may include at least one select transistor located above the memory cells. At least one select transistor may be constructed in the same structure as the memory cells and monolithically formed with the memory cells.
3차원 메모리 어레이가 복수의 레벨로 구성되고, 레벨들 사이에 공유되는 워드 라인들 또는 비트 라인들이 구비되는 것과 같이, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 이 공보들은 본 발명의 참조로서 포함된다.Suitable configurations for a three-dimensional memory array, such as a three-dimensional memory array comprising a plurality of levels and having word lines or bit lines shared between levels, are described in U.S. Patent No. 7,679,133, U.S. Patent No. 8,554,466, U.S. Patent No. 8,654,587, U.S. Patent No. 8,559,235, and U.S. Patent Application Publication No. 2011/0233648, the disclosures of which are incorporated herein by reference.
어드레스 디코더(121b)는 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(121a)와 연결될 수 있다. 어드레스 디코더(121b)는 장치 컨트롤러(110, 도 8 참조)로부터 스토리지 어드레스(ADDR_S')를 수신하고, 수신된 스토리지 어드레스(ADDR_S')를 디코딩할 수 있다. 어드레스 디코더(121b)는 디코딩된 스토리지 어드레스(ADDR_S')에 기초하여 워드 라인들(WL) 중 적어도 하나를 선택하고, 선택된 적어도 하나의 워드 라인을 구동할 수 있다.The
제어 로직 및 전압 발생기(121c)는 장치 컨트롤러(110)로부터 스토리지 커맨드(CMD_S') 및 제어 신호(CTRL)를 수신할 수 있다. 제어 로직 및 전압 발생기(121c)는 수신된 신호들에 응답하여 어드레스 디코더(121b), 페이지 버퍼(121d), 및 입출력 회로(121e)를 제어할 수 있다. 예로서, 제어 로직 및 전압 발생기(121c)는 스토리지 커맨드(CMD_S') 및 제어 신호(CTRL)에 응답하여, 장치 컨트롤러(110)로부터 제공된 쓰기 데이터(DATA)가 메모리 셀 어레이(121a)에 저장되거나 메모리 셀 어레이(121a)에 저장된 읽기 데이터(DATA)가 읽히도록, 디코더(121b), 페이지 버퍼(121d), 및 입출력 회로(121e)를 제어할 수 있다.The control logic and
제어 로직 및 전압 발생기(121c)는 불휘발성 메모리(121)를 동작시키기 위해 이용되는 여러 전압을 생성할 수 있다. 예로서, 제어 로직 및 전압 발생기(121c)는 복수의 프로그램 전압, 복수의 패스 전압, 복수의 선택 읽기 전압, 복수의 비선택 읽기 전압, 복수의 소거 전압, 및 복수의 검증 전압을 생성할 수 있다. 제어 로직 및 전압 발생기(121c)는 생성된 전압들을 어드레스 디코더(121b)로 제공하거나 메모리 셀 어레이(121a)의 기판으로 제공할 수 있다.The control logic and
페이지 버퍼(121d)는 복수의 비트 라인(BL)을 통해 메모리 셀 어레이(121a)와 연결될 수 있다. 페이지 버퍼(121d)는 제어 로직 및 전압 발생기(121c)의 제어에 따라, 입출력 회로(121e)로부터 제공된 쓰기 데이터(DATA)가 메모리 셀 어레이(121a)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(121d)는 제어 로직 및 전압 발생기(121c)의 제어에 따라 메모리 셀 어레이(121a)에 저장된 읽기 데이터를 읽고, 읽힌 데이터를 입출력 회로(121e)로 제공할 수 있다. 예로서, 페이지 버퍼(121d)는 입출력 회로(121e)로부터 페이지 단위로 데이터를 제공받거나, 메모리 셀 어레이(121a)로부터 페이지 단위로 데이터를 읽을 수 있다. 실시 예로서, 페이지 버퍼(121d)는 메모리 셀 어레이(121a)로부터 읽힌 데이터 또는 입출력 회로(121e)로부터 제공된 데이터를 임시로 저장하기 위한 데이터 래치들을 포함할 수 있다.The
입출력 회로(121e)는 장치 컨트롤러(110)와 같은 외부 장치로부터 쓰기 데이터(DATA)를 제공받고, 제공받은 쓰기 데이터(DATA)를 페이지 버퍼(121d)로 제공할 수 있다. 또는, 입출력 회로(121e)는 페이지 버퍼(121d)로부터 읽기 데이터(DATA)를 제공받고, 제공받은 읽기 데이터(DATA)를 장치 컨트롤러(110)와 같은 외부 장치로 제공할 수 있다. 예로서, 입출력 회로(121e)는 제어 신호(CTRL)와 동기하여 외부 장치와 데이터(DATA)를 교환할 수 있다.The input /
도 17은 도 16의 메모리 셀 어레이의 한 메모리 블록을 보여주는 개념도이다. 도 17을 참조하여, 3차원 구조의 제 1 메모리 블록(BLK1)이 설명된다. 예로서, 도 17은 도 16의 메모리 셀 어레이(121a)가 낸드(NAND) 플래시 메모리를 포함하는 경우를 보여준다. 그러나, 본 발명은 도 17에 의해 제한되지 않는다. 나아가, 다른 메모리 블록들 역시 제 1 메모리 블록(BLK1)과 유사하게 구성될 수 있다.17 is a conceptual diagram showing one memory block of the memory cell array of FIG. Referring to Fig. 17, a first memory block BLK1 of a three-dimensional structure will be described. By way of example, FIG. 17 shows a case where the
도 17을 참조하면, 제 1 메모리 블록(BLK1)은 복수의 셀 스트링(CS11, CS12, CS21, CS22)을 포함할 수 있다. 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(Row Direction) 및 열 방향(Column Direction)을 따라 배치되어, 행들 및 열들을 형성할 수 있다. 예로서, 셀 스트링들(CS11, CS12)은 스트링 선택 라인들(SSL1a, SSL1b)과 연결되어 제 1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택 라인들(SSL2a, SSL2b)과 연결되어 제 2 행을 형성할 수 있다. 나아가, 셀 스트링들(CS11, CS21)은 제 1 비트 라인(BL1)과 연결되어 제 1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제 2 비트 라인(BL2)과 연결되어 제 2 열을 형성할 수 있다.Referring to FIG. 17, the first memory block BLK1 may include a plurality of cell strings CS11, CS12, CS21, and CS22. The cell strings CS11, CS12, CS21, CS22 may be arranged along the row direction and the column direction to form rows and columns. For example, the cell strings CS11 and CS12 may be connected to the string selection lines SSL1a and SSL1b to form a first row. The cell strings CS21 and CS22 may be connected to the string selection lines SSL2a and SSL2b to form a second row. Furthermore, the cell strings CS11 and CS21 may be connected to the first bit line BL1 to form the first column. The cell strings CS12 and CS22 may be connected to the second bit line BL2 to form a second column.
셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터를 포함할 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택된 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀(MC1 내지 MC8), 접지 선택된 트랜지스터들(GSTa, GSTb), 및 더미(Dummy) 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예로서, 셀 스트링들(CS11, CS12, CS21, CS22)에 포함되는 복수의 셀 트랜지스터 각각은 전하 트랩 플래시(Charge Trap Flash) 메모리 셀일 수 있다.Each of the cell strings CS11, CS12, CS21, and CS22 may include a plurality of cell transistors. For example, each of the cell strings CS11, CS12, CS21, and CS22 includes a plurality of memory cells MC1 to MC8, a plurality of memory cells MC1 to MC8, a plurality of memory cells MC1 to MC8, (Dummy) memory cells DMC1, DMC2. As an example, each of the plurality of cell transistors included in the cell strings CS11, CS12, CS21, and CS22 may be a charge trap flash 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 can be stacked in a height direction perpendicular to the plane formed by the row direction and the column direction. The string selected transistors SSTa and SSTb may be connected in series and the string selected transistors SSTa and SSTb connected in series may be provided between the memory cells MC1 to MC8 and the bit line BL. The grounded selected transistors GSTa and GSTb are connected in series and the grounded selected transistors GSTa and GSTb connected in series may be provided between the memory cells MC1 to MC8 and the common source line CSL.
예로서, 메모리 셀들(MC1 내지 MC8) 및 접지 선택된 트랜지스터들(GSTa, GSTb) 사이에 제 1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예로서, 메모리 셀들(MC1 내지 MC8) 및 스트링 선택된 트랜지스터들(SSTa, SSTb) 사이에 제 2 더미 메모리 셀(DMC2)이 제공될 수 있다.As an example, a first dummy memory cell DMC1 may be provided between the memory cells MC1 to MC8 and the ground selected transistors GSTa and GSTb. As an example, a second dummy memory cell DMC2 may be provided between the memory cells MC1 to MC8 and the string selected 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 selected transistors GSTa and GSTb of the cell strings CS11, CS12, CS21 and CS22 can be connected in common to the ground selection line GSL. By way of example, the ground selected transistors of the same row may be connected to the same ground select line, and the ground selected transistors of different rows may be connected to different ground select lines. By way of example, the first ground selected transistors GSTa of the cell strings CS11, CS12 of the first row may be connected to the first ground selection line and the first ground selection transistors GSTa of the cell strings CS21, 1 ground selected transistors (GSTa) may be connected to the second ground selection line.
예로서, 도면에 나타내지는 않았으나, 기판(미도시)으로부터 동일한 높이에 놓이는 접지 선택된 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 서로 다른 높이에 놓이는 접지 선택된 트랜지스터들은 서로 다른 접지 선택 라인에 연결될 수 있다. 예로서, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제 1 접지 선택 라인에 연결되고, 제 2 접지 선택 트랜지스터들(GSTb)은 제 2 접지 선택 라인에 연결될 수 있다.By way of example, not shown, ground selected transistors lying at the same height from a substrate (not shown) may be connected to the same ground select line, and ground selected transistors placed at different heights may be connected to different ground select lines . As an example, the first ground selected transistors GSTa of the cell strings CS11, CS12, CS21, CS22 are connected to a first ground selection line, and the second ground selection transistors GSTb are connected to a second ground selection line Lt; / RTI >
기판 또는 접지 선택된 트랜지스터들(GSTa, GSTb)로부터 동일한 높이에 놓이는 메모리 셀들은 동일한 워드 라인에 공통으로 연결되고, 서로 다른 높이에 놓이는 메모리 셀들은 서로 다른 워드 라인에 연결될 수 있다. 예로서, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 내지 제 8 메모리 셀들(MC1 내지 MC8)은 각각 제 1 내지 제 8 워드라인들(WL1 내지 WL8)에 공통으로 연결될 수 있다.The memory cells placed at the same height from the substrate or ground selected transistors (GSTa, GSTb) are connected in common to the same word line, and the memory cells placed at different heights can be connected to different word lines. For example, the first to eighth memory cells MC1 to MC8 of the cell strings CS11, CS12, CS21, and CS22 may be 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 selected transistors of the same row among the first string selected transistors SSTa lying at the same height may be connected to the same string select line and the other strings of string selected transistors may be connected to another string select line. For example, the first string selected transistors SSTa of the cell strings CS11 and CS12 of the first row are connected in common with the string selection line SSL1a and the cell strings CS21 and CS22 of the second row are connected in common, The first string selected transistors (SSTa) of the memory cell array may be connected in common with the string selection line (SSL1a).
유사하게, 동일한 높이에 놓이는 제 2 스트링 선택된 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결될 수 있다. 예로서, 제 1 행의 셀 스트링들(CS11, CS12)의 제 2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결될 수 있다.Similarly, string selected transistors in the same row of the second string selected transistors (SSTb) that lie at the same height may be connected to the same string select line, and strings of the other rows may be connected to different string select lines. By way of example, the second string selected transistors SSTb of the cell strings CS11, CS12 of the first row are connected in common with the string selection line SSL1b and the cell strings CS21, CS22 of the second row are connected in common, The second string selected transistors (SSTb) of the second transistor can be connected in common with the string selection line (SSL2b).
도면에 나타내지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다.Although not shown in the figure, string selected transistors of cell strings in the same row may be connected in common to the same string select line. For example, the first and second string selected transistors (SSTa, SSTb) of the cell strings CS11, CS12 of the first row may be connected in common to the same string selection line. The first and second string selected transistors (SSTa, SSTb) of the cell strings CS21, CS22 of the second row may be connected in common to the same string selection line.
예로서, 동일한 높이에 놓이는 더미 메모리 셀들은 동일한 더미 워드 라인과 연결되고, 서로 다른 높이에 놓이는 더미 메모리 셀들은 서로 다른 더미 워드 라인과 연결될 수 있다. 예로서, 제 1 더미 메모리 셀들(DMC1)은 제 1 더미 워드 라인(DWL1)과 연결되고, 제 2 더미 메모리 셀들(DMC2)은 제 2 더미 워드 라인(DWL2)과 연결될 수 있다.By way of example, dummy memory cells that lie at the same height are connected to the same dummy word line, and dummy memory cells that lie at different heights can be connected to different dummy word lines. For example, the first dummy memory cells DMC1 may be connected to the first dummy word line DWL1, and the second dummy memory cells DMC2 may be connected to the second dummy word line DWL2.
제 1 메모리 블록(BLK1)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예로서, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 제 1 메모리 블록(BLKa)의 하나의 행이 선택될 수 있다.In the first memory block BLK1, reading and writing can be performed line by line. As an example, one row of the first memory block BLKa may be selected by the string selection lines SSL1a, SSL1b, SSL2a, and SSL2b.
예로서, 스트링 선택 라인들(SSL1a, SSL1b)에 턴-온(Turn-on) 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프(Turn-off) 전압이 공급될 때, 제 1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결될 수 있다. 반면, 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제 2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결될 수 있다. 워드 라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중에서, 동일한 높이에 놓인 메모리 셀들이 선택될 수 있다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다.For example, when a turn-on voltage is supplied to the string selection lines SSL1a and SSL1b and a turn-off voltage is supplied to the string selection lines SSL2a and SSL2b, Cell strings CS11 and CS12 of one row may be connected to bit lines BL1 and BL2. On the other hand, when a turn-on voltage is supplied to the string selection lines SSL2a and SSL2b and a turn-off voltage is supplied to the string selection lines SSL1a and SSL1B, the cell strings CS21 and CS22 of the second row, May be connected to the bit lines BL1 and BL2. Among the memory cells of the cell string of the row driven by driving the word line, the memory cells located at the same height can be selected. Read and write operations can be performed on selected memory cells. Selected memory cells may form a physical page unit.
제 1 메모리 블록(BLK1)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 제 1 메모리 블록(BLK1)의 모든 메모리 셀들(MC1 내지 MC8)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 제 1 메모리 블록(BLK1)의 메모리 셀들(MC1 내지 MC8) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결되는 워드 라인은 플로팅될(Floated) 수 있다.In the first memory block BLK1, erasing may be performed in units of memory blocks or units of subblocks. When erasing is performed in units of memory blocks, all the memory cells MC1 to MC8 of the first memory block BLK1 can be erased simultaneously according to one erase request. When performed in units of subblocks, some of the memory cells MC1 to MC8 of the first memory block BLK1 may be simultaneously erased in response to one erase request, and some of the memory cells MC1 to MC8 may be erased. A low voltage (e. G., Ground voltage) is applied to the word line connected to the erased memory cells, and the word line connected to the erased memory cells may be floated.
도 17에 나타낸 제 1 메모리 블록(BLK1)의 구성은 예시적인 것이다. 셀 스트링들의 개수는 증가 또는 감소할 수 있고, 셀 스트링들의 개수에 따라 셀 스트링들에 의해 구성되는 행들 및 열들의 개수가 증가 또는 감소할 수 있다. 나아가, 제 1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들은 각각 증가 또는 감소할 수 있고, 셀 트랜지스터들의 개수들에 따라 제 1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 뿐만 아니라, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소할 수 있다.The configuration of the first memory block BLK1 shown in Fig. 17 is an example. The number of cell strings may increase or decrease and the number of rows and columns constituted by cell strings may increase or decrease depending on the number of cell strings. Further, the number of the cell transistors (GST, MC, DMC, SST, etc.) of the first memory block BLK1 may increase or decrease, and the height of the first memory block BLK1 Can be increased or decreased. In addition, the number of lines (GSL, WL, DWL, SSL, etc.) connected to the cell transistors may increase or decrease according to the number of cell transistors.
도 18은 본 발명의 실시 예에 따른 스토리지 장치를 포함하는 서버 시스템을 보여주는 개념도이다. 도 18을 참조하면, 서버 시스템(7000)은 복수의 서버 랙(Rack)을 포함할 수 있다. 도 18은 복수의 서버 랙 중에서 하나의 서버 랙(7100)을 예시적으로 보여준다.18 is a conceptual diagram showing a server system including a storage apparatus according to an embodiment of the present invention. Referring to FIG. 18, the
서버 랙들 각각은 적어도 하나의 스토리지 장치를 포함할 수 있다. 예로서, 서버 랙(7100)은 적어도 하나의 스토리지 장치를 포함할 수 있다. 스토리지 장치는 도 1 내지 도 17을 참조하여 설명된 본 발명의 실시 예들에 기초하여 구현될 수 있다. 도 18은 서버 랙(7100)에 포함되는 복수의 스토리지 장치 중에서 하나의 스토리지 장치(7200)를 보여준다.Each of the server racks may include at least one storage device. By way of example, the
서버 랙(7100)은 스토리지 장치(7200)는 물론, 도 1에 나타낸 적어도 하나의 프로세서(1100), 하나 이상의 램 모듈 장치들(1210, 1212), 및 적어도 하나의 칩셋(1300)을 포함할 수 있다. 나아가, 서버 시스템(7000)은 도 1에 나타낸 GPU(1400), 입출력 장치(1500), 및 적어도 하나의 제 2 유형의 스토리지 장치(1600)를 포함할 수 있다.The
스토리지 장치(7200)는 서버 랙(7100)에 포함되는 적어도 하나의 프로세서(1100)와 칩셋(1300) 없이 연결될 수 있다. 예로서, 스토리지 장치(7200)는 DIMM 형태로 구현되는 불휘발성 메모리 모듈일 수 있다. 이 예에서, 스토리지 장치(7200)는 프로세서(1100)와 전기적으로 연결되는 DIMM 소켓에 연결됨으로써 프로세서(1100)와 통신할 수 있다. 예로서, 스토리지 장치(7200)는 DIMM 스펙에 기초하여 정의되고 DDR 방식으로 동작하는 인터페이스 규약에 따라 프로세서(1100)와 통신할 수 있다.The
스토리지 장치(7200)는 도 1 내지 도 17을 참조하여 설명된 본 발명의 실시 예들에 기초하여 구성되고 동작할 수 있다. 본 발명의 실시 예들에 따르면, 스토리지 장치(7200)는 빠른 속도로 동작하는 버스를 통해 프로세서(1100)와 통신할 수 있다. 본 발명의 실시 예들에 따르면, 스토리지 장치(7200)가 높은 동작 성능을 보일 수 있고, 서버 시스템(7000)의 스토리지 성능이 향상될 수 있다.The
본 발명의 실시 예에 따른 회로들, 칩들, 장치들, 및 모듈들은 다양한 종류의 반도체 패키지를 이용하여 실장될 수 있다. 예로서, 본 발명의 실시 예에 따른 회로들, 칩들, 장치들, 및 모듈들은 PoP(Package on Package), BGAs(Ball Grid Arrays), CSPs(Chip Scale Packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-line Package), MQFP(Metric Quad Flat Pack), TQFP(Thin Quad Flat Pack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등의 패키지를 이용하여 실장될 수 있다.Circuits, chips, devices, and modules according to embodiments of the present invention may be implemented using various types of semiconductor packages. By way of example, the circuits, chips, devices, and modules according to embodiments of the present invention may be implemented on a variety of devices such as Package on Package (PoP), Ball Grid Arrays (BGAs), Chip Scale Packages (CSPs), Plastic Leaded Chip Carriers Die in Waffer Pack, COB (Chip On Board), CERDIP (Ceramic Dual In-line Package), MQFP (Metric Quad Flat Pack), TQFP (Thin Quad Flat) Packs, Small Outline Integrated Circuits (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline Package (TSOP), System In Package (SIP), Multi Chip Package (MCP) And can be mounted using a package such as a wafer-level process stack package (WSP).
각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.The configurations shown in the respective conceptual diagrams should be understood from a conceptual viewpoint only. In order to facilitate understanding of the present invention, the shape, structure, size, etc. of each of the components shown in the conceptual diagram have been exaggerated or reduced. The configuration actually implemented may have a physical shape different from that shown in the respective conceptual diagrams. Each conceptual diagram is not intended to limit the physical form of the component.
각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.The device configurations shown in the respective block diagrams are intended to facilitate understanding of the invention. Each block may be formed of blocks of smaller units depending on the function. Alternatively, the plurality of blocks may form a block of a larger unit depending on the function. That is, the technical idea of the present invention is not limited to the configuration shown in the block diagram.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.The present invention has been described above with reference to the embodiments of the present invention. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. Accordingly, the above embodiments should be understood in an illustrative rather than a restrictive sense. That is, the technical idea that can achieve the same object as the present invention, including the gist of the present invention, should be interpreted as being included in the technical idea of the present invention.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.Therefore, it is intended that the present invention cover modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents. The scope of protection of the present invention is not limited to the above embodiments.
10 : 스토리지 시스템
100 : 스토리지 장치
101 : 프로세서
110 : 장치 컨트롤러
111 : 물리 계층
111a : 램 컨트롤러
111b : 램
112 : 컨트롤러
120 : 불휘발성 메모리들
121 : 불휘발성 메모리
121a : 메모리 셀 어레이
121b : 어드레스 디코더
121c : 제어 로직 및 전압 발생기
121d : 페이지 버퍼
121e : 입출력 회로
130 : 버퍼 메모리
1000 : 컴퓨팅 시스템
1100 : 프로세서
1210, 1212 : 램 모듈 장치
1220, 1222 : 제 1 유형의 스토리지 장치
1230 : 빠른 속도로 동작하는 버스
1300 : 칩셋
1400 : GPU
1500 : 입출력 장치
1600 : 제 2 유형의 스토리지 장치
2000, 3000, 4000, 5000, 6000 : 스토리지 장치
4005, 5005, 6005 : 제어 회로
2100, 3100, 4100, 5100, 6100 : 장치 컨트롤러
2100b, 3100b, 4100b, 5100b, 6100b : 램
2200, 3200, 4200, 5200, 6200 : 불휘발성 메모리들
2300, 3300 : 버퍼 메모리
3400, 5400 : 데이터 버퍼 회로
2500, 3500, 4500, 5500, 6500 : SPD 칩
4600, 5600, 6600 : DRAM들
7000 : 서버 시스템
7100 : 서버 랙
7200 : 스토리지 장치10: Storage Systems
100: Storage device 101: Processor
110: device controller 111: physical layer
111a:
112: controller
120: Nonvolatile memories 121: Nonvolatile memories
121a:
121c: Control logic and voltage generator
121d:
130: buffer memory
1000: computing system 1100: processor
1210, 1212:
1230: Bus running at high speed
1300: Chipset 1400: GPU
1500 I / O device 1600: second type storage device
2000, 3000, 4000, 5000, 6000: Storage device
4005, 5005, 6005: control circuit
2100, 3100, 4100, 5100, 6100: Device controller
2100b, 3100b, 4100b, 5100b, 6100b: RAM
2200, 3200, 4200, 5200, 6200: non-volatile memories
2300, 3300: buffer memory
3400, 5400: Data buffer circuit
2500, 3500, 4500, 5500, 6500: SPD chip
4600, 5600, 6600: DRAMs
7000: Server system 7100: Server rack
7200: Storage Devices
Claims (10)
호스트로부터 상기 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 수신된 경우, 상기 읽기 데이터를 형성하는 복수의 전송 단위 데이터 각각의 준비에 응답하여 상기 복수의 전송 단위 데이터 중 준비된 것을 상기 호스트로 전송하도록 구성되는 장치 컨트롤러를 포함하되,
상기 복수의 전송 단위 데이터 각각은 상기 읽기 데이터를 형성하는 순서에 관계없이 상기 호스트로 전송되는 불휘발성 메모리 모듈.One or more non-volatile memories; And
Volatile memories, a read request for read data stored in at least one of the nonvolatile memories is received from the host, and a read request for the read data stored in at least one of the nonvolatile memories is received from the host in response to preparation of each of the plurality of transfer unit data forming the read data. And a device controller configured to transmit to the host,
Wherein each of the plurality of transfer unit data is transferred to the host regardless of the order of forming the read data.
상기 복수의 전송 단위 데이터는 상기 복수의 전송 단위 데이터 각각의 준비에 응답하여 상기 장치 컨트롤러의 제어에 따라 하나씩 상기 호스트로 전송되는 불휘발성 메모리 모듈.The method according to claim 1,
Wherein the plurality of transmission unit data is transmitted to the host one by one under the control of the device controller in response to preparation of each of the plurality of transmission unit data.
상기 장치 컨트롤러는 상기 복수의 전송 단위 데이터 각각의 준비를 나타내는 알림 데이터를 생성하도록 더 구성되고,
상기 복수의 전송 단위 데이터 각각은 상기 알림 데이터에 기초하여 상기 호스트로 전송되는 불휘발성 메모리 모듈.The method according to claim 1,
Wherein the device controller is further configured to generate notification data indicating the preparation of each of the plurality of transmission unit data,
And each of the plurality of transmission unit data is transmitted to the host based on the notification data.
상기 장치 컨트롤러는 DIMM 스펙에 의해 정의되는 인터페이스 규약에 따라 동작하도록 구성되는 불휘발성 메모리 모듈.The method according to claim 1,
Wherein the device controller is configured to operate in accordance with an interface protocol defined by a DIMM specification.
호스트로부터의 요청에 응답하여 상기 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터를 상기 호스트로 전송하도록 구성되는 장치 컨트롤러를 포함하되,
상기 장치 컨트롤러는:
램, 및 상기 호스트로부터 제공되는 램 커맨드 및 램 어드레스에 따라 상기 램을 제어하도록 구성되는 램 컨트롤러를 포함하는 물리 계층; 및
상기 호스트로부터 제공되어 상기 램에 저장되는 스토리지 커맨드 및 스토리지 어드레스에 기초하여, 상기 읽기 데이터가 상기 스토리지 어드레스에 대응하는 상기 불휘발성 메모리들의 위치로부터 읽히고 상기 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 상기 램에 임시로 저장되도록, 상기 물리 계층 및 상기 불휘발성 메모리들을 제어하도록 구성되는 컨트롤러를 포함하고,
상기 장치 컨트롤러는 상기 복수의 전송 단위 데이터 각각을 상기 호스트로 전송함으로써 상기 읽기 데이터를 전송하도록 구성되는 스토리지 장치.One or more non-volatile memories; And
And a device controller configured to transmit read data stored in at least one of the non-volatile memories to the host in response to a request from the host,
The device controller comprising:
A physical layer including a RAM and a RAM controller configured to control the RAM according to a RAM command and a RAM address provided from the host; And
Volatile memories corresponding to the storage addresses and storing a plurality of transfer unit data generated by dividing the read data based on a storage command and a storage address provided from the host and stored in the RAM, And a controller configured to control the physical layer and the non-volatile memories such that each of them is temporarily stored in the RAM,
And the device controller is configured to transmit the read data by transmitting each of the plurality of transmission unit data to the host.
상기 장치 컨트롤러는 상기 램에 알림 데이터를 저장하도록 더 구성되고,
상기 알림 데이터는 상기 복수의 전송 단위 데이터 각각의 상기 램에의 저장을 나타내고, 상기 복수의 전송 단위 데이터 각각의 상기 읽기 데이터에서의 위치에 관한 정보를 포함하는 스토리지 장치.6. The method of claim 5,
Wherein the device controller is further configured to store notification data in the RAM,
Wherein the notification data indicates storage of each of the plurality of transmission unit data in the RAM and includes information on a position of each of the plurality of transmission unit data in the read data.
상기 복수의 전송 단위 데이터 전부가 상기 호스트로 전송되었는지 여부는 상기 알림 데이터에 기초하여 상기 호스트에 의해 관리되는 스토리지 장치.The method according to claim 6,
Wherein whether or not all of the plurality of transmission unit data has been transmitted to the host is managed by the host based on the notification data.
상기 복수의 전송 단위 데이터 중 적어도 하나는 상기 읽기 데이터에 포함되지 않는 무효 부분을 포함하고,
상기 알림 데이터는 상기 무효 부분에 관한 정보를 더 포함하는 스토리지 장치.The method according to claim 6,
Wherein at least one of the plurality of transmission unit data includes an invalid portion not included in the read data,
Wherein the notification data further includes information regarding the invalid portion.
상기 무효 부분은 상기 알림 데이터에 기초하여 상기 호스트에 의해 버려지고,
상기 복수의 전송 단위 데이터에서 상기 무효 부분을 제외한 데이터가 상기 호스트에서 상기 읽기 데이터로 결합되는 스토리지 장치.9. The method of claim 8,
The invalid portion is discarded by the host based on the notification data,
Wherein data excluding the invalid portion from the plurality of transmission unit data is combined into the read data at the host.
상기 스토리지 장치에 저장된 읽기 데이터에 관한 읽기 요청을 상기 스토리지 장치로 제공하도록 구성되는 적어도 하나의 프로세서를 포함하되,
상기 읽기 요청에 응답하여, 상기 스토리지 장치는 상기 읽기 데이터를 형성하는 복수의 전송 단위 데이터 각각을 상기 프로세서로 전송할 것을 준비하고 상기 복수의 전송 단위 데이터 각각의 준비에 관한 알림 데이터를 생성하도록 구성되고,
상기 프로세서는 상기 알림 데이터를 참조하여 상기 복수의 전송 단위 데이터 중 준비된 것을 수신하도록 더 구성되는 전자 장치.At least one storage device; And
And at least one processor configured to provide a read request for read data stored in the storage device to the storage device,
In response to the read request, the storage device is arranged to prepare to transmit each of a plurality of transmission unit data forming the read data to the processor and generate notification data relating to the preparation of each of the plurality of transmission unit data,
And the processor is further configured to receive the prepared one of the plurality of transmission unit data with reference to the notification data.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150080732A KR102473197B1 (en) | 2015-06-08 | 2015-06-08 | Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit |
US15/096,877 US20160357462A1 (en) | 2015-06-08 | 2016-04-12 | Nonvolatile Memory Modules and Data Management Methods Thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150080732A KR102473197B1 (en) | 2015-06-08 | 2015-06-08 | Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160144557A true KR20160144557A (en) | 2016-12-19 |
KR102473197B1 KR102473197B1 (en) | 2022-12-02 |
Family
ID=57735257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150080732A KR102473197B1 (en) | 2015-06-08 | 2015-06-08 | Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102473197B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010157129A (en) * | 2008-12-27 | 2010-07-15 | Toshiba Information Systems (Japan) Corp | Semiconductor memory device |
KR20130098642A (en) * | 2012-02-28 | 2013-09-05 | 삼성전자주식회사 | Storage device |
KR101369408B1 (en) * | 2013-03-15 | 2014-03-04 | 주식회사 디에이아이오 | Storage system and method of transmitting data between a host device and a storage device |
JP2014078231A (en) * | 2012-10-08 | 2014-05-01 | Hgst Netherlands B V | Device and method for low power, low delay and large capacity storage class memory |
-
2015
- 2015-06-08 KR KR1020150080732A patent/KR102473197B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010157129A (en) * | 2008-12-27 | 2010-07-15 | Toshiba Information Systems (Japan) Corp | Semiconductor memory device |
KR20130098642A (en) * | 2012-02-28 | 2013-09-05 | 삼성전자주식회사 | Storage device |
JP2014078231A (en) * | 2012-10-08 | 2014-05-01 | Hgst Netherlands B V | Device and method for low power, low delay and large capacity storage class memory |
KR101369408B1 (en) * | 2013-03-15 | 2014-03-04 | 주식회사 디에이아이오 | Storage system and method of transmitting data between a host device and a storage device |
Also Published As
Publication number | Publication date |
---|---|
KR102473197B1 (en) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949094B2 (en) | Storage device and operating method of storage device | |
US9767903B2 (en) | Nonvolatile memory module having dual-port DRAM | |
KR102274038B1 (en) | Nonvolatile memory module having back-up function | |
US20160357462A1 (en) | Nonvolatile Memory Modules and Data Management Methods Thereof | |
US9799402B2 (en) | Nonvolatile memory device and program method thereof | |
KR102554416B1 (en) | Internal status output device of memory device and memory system adopting the same | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
US11360711B2 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
US10545689B2 (en) | Data storage device and operating method thereof | |
KR20160144560A (en) | Nonvolatile memory module, storage device, and electronic device generating error information accessed by host | |
US11487474B2 (en) | Memory system and method of operating a memory device included in the same | |
US20190155767A1 (en) | Storage device configured to update field programmable gate array and method of operating the same | |
US11861223B2 (en) | Memory controller and storage device for scheduling addresses | |
US11593031B2 (en) | Operating method of host device and storage device using credit | |
KR20160144577A (en) | Nonvolatile memory module and user device comprising the same | |
KR20170031825A (en) | Storage device including random access memory devices and nonvolatile memory devices | |
KR20210117609A (en) | Semiconductor memory device, controller and memory system having the same | |
KR102290988B1 (en) | Nonvolatile memory module and operating method thereof | |
CN110941390B (en) | Storage device | |
CN113778322A (en) | Memory system and operating method thereof | |
CN110413219A (en) | Memory controller, memory system and method of operating the same | |
US11055011B2 (en) | Storage device | |
KR102473197B1 (en) | Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit | |
CN114579484A (en) | Data storage device and method of operating the same | |
KR20170001818A (en) | Storage device controller, and method for testing whether storage device controller is faulty |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20150608 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20200512 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20150608 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20220427 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20220930 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20221128 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20221129 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |