[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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 PDF

Info

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
Application number
KR1020150080732A
Other languages
Korean (ko)
Other versions
KR102473197B1 (en
Inventor
남희현
조영진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150080732A priority Critical patent/KR102473197B1/en
Priority to US15/096,877 priority patent/US20160357462A1/en
Publication of KR20160144557A publication Critical patent/KR20160144557A/en
Application granted granted Critical
Publication of KR102473197B1 publication Critical patent/KR102473197B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

The present invention provides a nonvolatile memory module comprising one or more nonvolatile memories and a device controller. When a read request relating to read data stored in at least a prepared one of the nonvolatile memories, the device controller transmits one of a plurality of transmission unit data in response to the preparation of each of the transmission unit data forming the read data. The transmission unit data are transmitted to the host one by one regardless of the order of forming the read data. According to the present invention, a RAM having a small capacity is employed, so that an area occupied by the RAM and the implementation cost of a device are reduced.

Description

읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치{NONVOLATILE MEMORY MODULE, STORAGE DEVICE, AND ELECTRONIC DEVICE TRANSMITTING READ DATA IN TRANSMISSION UNIT}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a nonvolatile memory module, a storage device, and an electronic device,

본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 데이터를 저장하도록 구성되는 불휘발성 메모리 모듈 또는 스토리지 장치와 호스트(Host) 사이에서 수행되는 동작에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic device, and more particularly, to an operation performed between a host device and a non-volatile memory module or storage device configured to store data.

개인용 컴퓨터(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 computing system 1000 includes a processor 1100, one or more RAM Module devices 1210 and 1212, one or more storage devices 1220 and 1222 of a first type, Chipset 1300, a graphics processing unit (GPU) 1400, an input / output device 1500, and a second type of storage device 1600.

컴퓨팅 시스템(1000)은 전자 장치로서 구현될 수 있다. 예로서, 컴퓨팅 시스템(1000)은 개인용 컴퓨터(Personal Computer), 노트북, 태블릿, 워크스테이션(Workstation), 블레이드 서버(Blade Server), 네트워크 스토리지(Network Storage) 등과 같은 다양한 전자 장치 중 적어도 하나를 포함할 수 있으나, 본 발명은 이 예에 의해 제한되지 않는다.The computing system 1000 may be implemented as an electronic device. By way of example, computing system 1000 may include at least one of a variety of electronic devices such as a personal computer, a notebook, a tablet, a workstation, a blade server, a network storage, However, the present invention is not limited by this example.

프로세서(1100)는 컴퓨팅 시스템(1000)의 전반적인 동작들을 제어할 수 있다. 프로세서(1100)는 호스트(Host)로서, 램 모듈 장치들(1210, 1212), 제 1 유형의 스토리지 장치들(1220, 1222), GPU(1400), 입출력 장치(1500), 및 제 2 유형의 스토리지 장치(1600)로부터 서비스들을 제공받을 수 있다.The processor 1100 may control the overall operations of the computing system 1000. The processor 1100 may be a host that includes a plurality of storage devices 1210 and 1212, a first type of storage devices 1220 and 1222, a GPU 1400, an input / output device 1500, Services may be provided from the storage device 1600. [

프로세서(1100)는 컴퓨팅 시스템(1000)을 동작시키기 위해 다양한 산술(Arithmetic) 연산 및/또는 논리 연산을 수행할 수 있다. 프로세서(1100)는 연산을 수행하도록 구성되는 하나 이상의 프로세서 코어(Processor Core)들을 포함할 수 있다. 예로서, 컴퓨팅 시스템(1000)의 유형에 따라, 프로세서(1100)는 CPU(Central Processing Unit), AP(Application Processor), 전용 프로세서, 및 ASICs(Application Specific Integrated Circuit) 중 적어도 하나를 포함할 수 있다.The processor 1100 may perform various arithmetic and / or logic operations to operate the computing system 1000. Processor 1100 may include one or more processor cores configured to perform operations. For example, depending on the type of computing system 1000, the processor 1100 may include at least one of a Central Processing Unit (CPU), an Application Processor (AP), a dedicated processor, and an Application Specific Integrated Circuit (ASICs) .

램 모듈 장치들(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 RAM module devices 1210 and 1212 may temporarily store data to be processed or processed by the processor 1100. The RAM module devices 1210 and 1212 may be used as an operation memory, a working memory, or a buffer memory of the computing system 1000. For example, each of the RAM module devices 1210 and 1212 may include volatile memory such as DRAM (Dynamic Random Access Memory), SRAM (Static RAM), and SDRAM (Synchronous DRAM) Magneto-resistive RAM), ReRAM (Resistive RAM), and non-volatile memory such as Ferro-electric RAM (FRAM).

제 1 유형의 스토리지 장치들(1220, 1222)은 전원 공급과 무관하게 데이터를 저장할 수 있다. 제 1 유형의 스토리지 장치들(1220, 1222)은 전원 공급 없이 영구적으로 또는 반영구적으로 데이터를 저장할 수 있다. 예로서, 제 1 유형의 스토리지 장치들(1220, 1222) 각각은 플래시 메모리(Flash Memory), PRAM, MRAM, ReRAM, 및 FRAM과 같은 불휘발성 메모리 중 적어도 하나를 포함할 수 있다.The first type of storage devices 1220 and 1222 may store data regardless of the power supply. The first type of storage devices 1220, 1222 can store data permanently or semi-permanently without powering. By way of example, each of the first type of storage devices 1220 and 1222 may include at least one of a flash memory, a PRAM, an MRAM, a ReRAM, and a non-volatile memory such as a FRAM.

제 1 유형의 스토리지 장치들(1220, 1222)은 본 발명의 실시 예들에 기초하여 구현될 수 있다. 제 1 유형의 스토리지 장치들(1220, 1222)에 관한 실시 예들은 도 2 내지 도 18을 참조하여 상세히 설명될 것이다.The first type of storage devices 1220 and 1222 may be implemented based on embodiments of the present invention. Embodiments of the first type of storage devices 1220 and 1222 will be described in detail with reference to FIGS. 2 to 18. FIG.

램 모듈 장치들(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 RAM module devices 1210 and 1212 and the first type of storage devices 1220 and 1222 may be coupled to the processor 1100 through a bus 1230 operating at a high speed. For example, the bus 1230 may support a device implemented as a DIMM (Dual Inline Memory Module), and may employ an interface protocol that operates in a DDR (Double Data Rate) manner. In this example, each of the first type of storage devices 1220 and 1222 may be implemented as a "non-volatile memory module ". The RAM module devices 1210 and 1212 and the first type of storage devices 1220 and 1222 are connected to the processor 1210 through the bus 1230. In this case, 1100).

도 1에서, 컴퓨팅 시스템(1000)이 두 개의 램 모듈 장치들(1210, 1212) 및 두 개의 제 1 유형의 스토리지 장치들(1220, 1222)을 포함하는 것으로 도시되었다. 그러나, 램 모듈 장치들의 개수 및 제 1 유형의 스토리지 장치들의 개수는 컴퓨팅 시스템(1000)의 구성 및 버스(1230)의 구성에 따라 다양하게 변경 또는 수정될 수 있다.In Figure 1, a computing system 1000 is shown comprising two RAM module devices 1210, 1212 and two first type storage devices 1220, 1222. However, the number of RAM module devices and the number of storage devices of the first type may be variously modified or modified depending on the configuration of the computing system 1000 and the configuration of the bus 1230.

칩셋(1300)은 컴퓨팅 시스템(1000)의 다른 구성 요소들을 프로세서(1100)에 연결할 수 있다. 예로서, 칩셋(1300)은 GPU(Graphic Processing Unit; 1400), 입출력 장치(1500), 및 제 2 유형의 스토리지 장치(1600)를 프로세서(1100)에 연결할 수 있다. 예로서, 칩셋(1300)은 사우스브릿지(Southbridge) 칩셋을 포함할 수 있다.The chipset 1300 may connect other components of the computing system 1000 to the processor 1100. By way of example, the chipset 1300 may connect a graphics processing unit (GPU) 1400, an input / output device 1500, and a second type of storage device 1600 to the processor 1100. By way of example, chipset 1300 may include a Southbridge chipset.

예로서, GPU(1400)는 영상 데이터를 처리하기 위한 연산을 수행할 수 있다. 이를 위해, GPU(1400)는 하나 이상의 코어들 및 하나 이상의 메모리들을 포함할 수 있다. GPU(1400)는 칩셋(1300)을 통해 프로세서(1100)로 연산 결과를 제공하거나 프로세서(1100)의 연산 결과를 제공받을 수 있다. GPU(1400)는 연산 결과에 기초하여 디스플레이 장치가 영상을 표시하도록 만들 수 있다.By way of example, GPU 1400 may perform operations to process image data. To this end, GPU 1400 may include one or more cores and one or more memories. The GPU 1400 may provide the results of operations to the processor 1100 via the chipset 1300 or may be provided with the results of operations of the processor 1100. The GPU 1400 can cause the display device to display an image based on the calculation result.

입출력 장치(1500)는 컴퓨팅 시스템(1000)의 사용자로부터 제공되는 정보를 칩셋(1300)을 통해 프로세서(1100)로 제공할 수 있다. 또는, 입출력 장치(1500)는 칩셋(1300)을 통해 프로세서(1100)로부터 제공되는 데이터에 기초하여 컴퓨팅 시스템(1000)의 사용자에게 서비스를 제공할 수 있다. 예로서, 입출력 장치(1500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 입출력 장치(1500)는 스피커, 모터 등의 출력 인터페이스를 포함할 수 있다.The input / output device 1500 may provide information provided by a user of the computing system 1000 to the processor 1100 through the chipset 1300. [ Alternatively, the input / output device 1500 may provide services to a user of the computing system 1000 based on data provided from the processor 1100 via the chipset 1300. [ For example, the input / output device 1500 may include an input interface such as a keyboard, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, a microphone, a gyroscope sensor, Further, the input / output device 1500 may include an output interface such as a speaker, a motor, and the like.

제 2 유형의 스토리지 장치(1600)는 전원 공급과 무관하게 데이터를 저장할 수 있다. 예로서, 제 2 유형의 스토리지 장치(1600)는 SSD(Solid State Drive), HDD(Hard Disk Drive) 등과 같은 스토리지 매체(Storage Medium)를 포함할 수 있다.The second type of storage device 1600 may store data regardless of the power supply. By way of example, the second type of storage device 1600 may include a storage medium such as a solid state drive (SSD), a hard disk drive (HDD), or the like.

제 1 유형의 스토리지 장치들(1220, 1222)과 달리, 제 2 유형의 스토리지 장치(1600)는 상대적으로 느린 속도로 동작하는 버스를 통해 프로세서(1100)와 연결될 수 있다. 예로서, 제 2 유형의 스토리지 장치(1600)가 SSD를 포함하는 경우, 느린 속도로 동작하는 버스는 제 2 유형의 스토리지 장치(1600)의 성능을 저하시킬 수 있다. SSD는 자체적인 프로세서 및 빠르게 동작하는 반도체 불휘발성 메모리를 포함하기 때문에, SSD는 높은 동작 성능을 가질 수 있다. 그런데, SSD가 느린 속도로 동작하는 버스에 연결되는 경우, SSD의 성능을 최대화하기 어렵다.Unlike the first type of storage devices 1220 and 1222, the second type of storage device 1600 can be coupled to the processor 1100 via a bus operating at a relatively slow rate. By way of example, if the second type of storage device 1600 includes an SSD, a bus operating at a slower rate may degrade the performance of the second type of storage device 1600. [ Because SSDs include their own processors and fast-running semiconductor non-volatile memory, SSDs can have high operating performance. However, when the SSD is connected to a bus operating at a slow speed, it is difficult to maximize the performance of the SSD.

본 발명의 실시 예에서, 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결되는 제 1 유형의 스토리지 장치들(1220, 1222)은 높은 동작 성능을 보일 수 있다. 즉, SSD와 같이 반도체 불휘발성 메모리를 포함하는 스토리지 장치는 제 1 유형의 스토리지 장치들(1220, 1222)의 형태로 구현될 때 더 높은 성능으로 동작할 수 있다.In an embodiment of the present invention, the first type of storage devices 1220, 1222 coupled to the processor 1100 via the bus 1230 operating at high speed may exhibit high operating performance. That is, a storage device including a semiconductor non-volatile memory, such as an SSD, can operate at higher performance when implemented in the form of first type storage devices 1220, 1222.

이하에서, 빠른 속도로 동작하는 버스(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 storage devices 1220 and 1222 connected to the processor 1100 through the bus 1230 operating at high speed will be described. Quot; storage device "is a first type of storage device coupled to the processor 1100 via a bus 1230 operating at high speed. It is assumed that the bus 1230 operating at a high speed employs an interface protocol defined on the basis of a DIMM specification. However, this assumption is intended to assist the understanding of the present invention, and the present invention is not limited by this assumption. Here, the DIMM specification refers to a specification regarding the configuration and operation of a device implemented in the form of a DIMM.

도 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 processor 1100 of FIG. 1, software related to a host layer (HL) may be driven. Further, in the storage device of FIG. 1 (i.e., the "first type" storage device 1220 or 1222), software or firmware related to the storage layer (SL)

호스트 계층(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 computing system 1000 of FIG. By way of example, an operating system (OS) can handle various operations such as program execution, access to files, activation of applications (AP), control of the storage layer (SL) The second host layer HL2 may execute one or more applications AP to provide various services to the user of the host layer HL.

운영 체제(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 storage devices 1220, 1222 of FIG. 1 may include the storage device 2000 of FIG. As an example, the storage device 2000 may be a non-volatile memory module implemented as an LRDIMM (Load Reduced DIMM). In this example, the storage device 2000 is connected to a DIMM socket of the computing system 1000 of FIG. 1 and is capable of communicating with the processor 1100 of FIG. 1 in accordance with an interface protocol defined based on the DIMM specification.

도 3의 실시 예에서, 스토리지 장치(2000)는 장치 컨트롤러(2100), 하나 이상의 불휘발성 메모리들(2200), 버퍼 메모리(2300), 및 SPD(Serial Presence Detect) 칩(2500)을 포함할 수 있다. 장치 컨트롤러(2100)는 스토리지 장치(2000)의 전반적인 동작들을 제어 및 관리할 수 있다.3, the storage device 2000 may include a device controller 2100, one or more non-volatile memories 2200, a buffer memory 2300, and a Serial Presence Detect (SPD) have. The device controller 2100 can control and manage the overall operations of the storage device 2000.

불휘발성 메모리들(2200)은 장치 컨트롤러(2100)의 제어에 따라, 전원 공급에 관계없이 데이터를 저장할 수 있다. 예로서, 불휘발성 메모리들(2200)은 하나의 칩 또는 패키지로 구현될 수 있다. 또는, 불휘발성 메모리들(2200) 각각은 별개의 칩, 패키지, 장치, 또는 모듈로 구현될 수 있다. 버퍼 메모리(2300)는 장치 컨트롤러(2100)의 제어에 따라 불휘발성 메모리들(2200)에 저장될 쓰기 데이터 또는 불휘발성 메모리들(2200)로부터 읽힌 읽기 데이터를 버퍼링할 수 있다.The non-volatile memories 2200 can store data regardless of the power supply, under the control of the device controller 2100. By way of example, non-volatile memories 2200 may be implemented as a single chip or package. Alternatively, each of the non-volatile memories 2200 may be implemented as a separate chip, package, device, or module. The buffer memory 2300 can buffer the read data to be stored in the non-volatile memories 2200 or the read data to be read from the non-volatile memories 2200 under the control of the device controller 2100.

장치 컨트롤러(2100)는 제어 신호 선로를 통해 프로세서(1100)로부터 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 제공받을 수 있다. 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)는 램(2100b)에 관한 읽기/쓰기 동작을 제어하기 위해 이용될 수 있다. 장치 컨트롤러(2100)는 제어 신호 선로와 별개인 데이터 신호 선로를 통해 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브(Data Strobe) 신호(DQS)를 주고받을 수 있다.The device controller 2100 can receive the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK from the processor 1100 through the control signal line. The RAM command CMD_R and the RAM address ADDR_R can be used to control the read / write operation with respect to the RAM 2100b. The device controller 2100 can exchange data signals DQ and data strobe signals DQS with the processor 1100 through a data signal line different from the control signal line.

본 발명의 실시 예에서, 데이터 신호(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 non-volatile memories 2200. Further, the data signal DQ may include write data to be stored in the non-volatile memories 2200 or read data to be read from the non-volatile memories 2200. In some cases, the data signal DQ may include status information regarding write data and read data.

램(2100b)은 램 커맨드 및 램 어드레스에 따라 스토리지 커맨드 및 스토리지 어드레스를 임시로 저장할 수 있다. 뿐만 아니라, 램(2100b)은 램 커맨드 및 램 어드레스에 따라 쓰기 데이터 및 읽기 데이터를 임시로 저장할 수 있다. 장치 컨트롤러(2100)는 램(2100b)에 저장된 스토리지 커맨드 및 스토리지 어드레스에 따라, 쓰기 데이터가 불휘발성 메모리들(2200)에 저장되거나 읽기 데이터가 불휘발성 메모리들(2200)로부터 읽히도록, 불휘발성 메모리들(2200)을 제어할 수 있다.The RAM 2100b may temporarily store the storage command and the storage address according to the RAM command and the RAM address. In addition, the RAM 2100b may temporarily store the write data and the read data according to the RAM command and the RAM address. The device controller 2100 is configured to store write data in the nonvolatile memories 2200 or read data in the nonvolatile memories 2200 according to the storage command and the storage address stored in the RAM 2100b, (2200).

장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 및 버퍼 메모리(2300)는 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(2200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(2100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터(Transmission Unit Data) 각각이 램(2100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The device controller 2100, the RAM 2100b, the nonvolatile memories 2200, and the buffer memory 2300 can be configured and operated as described with reference to Figs. 8-15. As an example, when a read request is received from a host (e.g., processor 1100 of FIG. 1) for read data stored in at least one of non-volatile memories 2200, Each of a plurality of transmission unit data (transmission unit data) generated by dividing data may be temporarily stored in the RAM 2100b and then output as a data signal DQ.

위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(2100b)이 채용될 수 있다. 따라서, 램(2100b)에 의해 차지되는 면적 및 스토리지 장치(2000)의 구현 비용이 줄어들 수 있다.In the above embodiment, instead of waiting for the read data to be fully prepared, the RAM 2100b having a small capacity can be employed by transferring each of the transfer unit data forming the read data as it is prepared. Thus, the area occupied by the RAM 2100b and the implementation cost of the storage device 2000 can be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(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., processor 1100 of FIG. 1) rather than by storage apparatus 2000. Thus, the work load of the storage apparatus 2000 can be reduced. Embodiments of the present invention will be described in more detail with reference to Figs. 8 to 15. Fig.

SPD 칩(2500)은 스토리지 장치(2000)의 특성에 관한 정보를 저장할 수 있다. 예로서, SPD 칩(2500)은 스토리지 장치(2000)의 모듈 유형, 모듈 구성, 저장 용량, 선로 배열, 동작 환경 등과 같은 초기화 정보 또는 장치 정보를 저장할 수 있다. 예로서, SPD 칩(2500)은 프로그램 가능한 읽기 전용 메모리(Programmable Read-only Memory; 예컨대, EEPROM(Electrically Erasable Programmable Read Only Memory) 등)를 포함할 수 있다.The SPD chip 2500 may store information on the characteristics of the storage device 2000. [ As an example, the SPD chip 2500 may store initialization information or device information such as the module type, module configuration, storage capacity, line layout, operating environment, etc. of the storage device 2000. By way of example, the SPD chip 2500 may include a programmable read-only memory (e.g., an Electrically Erasable Programmable Read Only Memory (EEPROM)).

스토리지 장치(2000)를 포함하는 컴퓨팅 시스템(1000)이 부팅(Booting)될 때, 컴퓨팅 시스템(1000)의 프로세서(1100)는 SPD 칩(2500)에 저장된 정보를 읽을 수 있다. 프로세서(1100)는 읽힌 정보에 기초하여 스토리지 장치(2000)를 인식하고 동작시킬 수 있다. 본 발명의 실시 예에서, 프로세서(1100)는 읽힌 정보에 기초하여 스토리지 장치(2000)를 스토리지 매체로서 인식하고 동작시킬 수 있다. The processor 1100 of the computing system 1000 may read information stored in the SPD chip 2500 when the computing system 1000 including the storage device 2000 is booted. The processor 1100 can recognize and operate the storage device 2000 based on the read information. In an embodiment of the present invention, the processor 1100 can recognize and operate the storage device 2000 as a storage medium based on the information read.

실시 예로서, 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 SPD chip 2500 may communicate with the processor 1100 based on a side-band interface convention. In this embodiment, the SPD chip 2500 and the processor 1100 can send and receive a side-band signal SBS over a communication channel supporting the side-band interface protocol. Further, the SPD chip 2500 may communicate with the device controller 2100 based on a side-band interface convention. By way of example, the side-band interface protocol may support a physical layer defined based on an I2C (Inter-Integrated Circuit) or UART (Universal Asynchronous Receiver / Transmitter) specification.

도 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 storage devices 1220, 1222 of FIG. 1 may include the storage device 3000 of FIG. By way of example, the storage device 3000 may be a non-volatile memory module implemented in the form of an RDIMM (Registered DIMM). In this example, the storage device 3000 is connected to a DIMM socket of the computing system 1000 of FIG. 1 and is capable of communicating with the processor 1100 of FIG. 1 in accordance with an interface convention defined based on the DIMM specification.

도 4의 실시 예에서, 스토리지 장치(3000)는 장치 컨트롤러(3100), 하나 이상의 불휘발성 메모리들(3200), 버퍼 메모리(3300), 데이터 버퍼 회로(3400), 및 SPD 칩(3500)을 포함할 수 있다. 장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 및 버퍼 메모리(3300)는 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다.4, the storage device 3000 includes a device controller 3100, one or more non-volatile memories 3200, a buffer memory 3300, a data buffer circuit 3400, and an SPD chip 3500 can do. The device controller 3100, the RAM 3100b, the nonvolatile memories 3200, and the buffer memory 3300 can be configured and operated as described with reference to Figs. 8-15.

실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(3200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(3100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(3100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다. 이 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(3100b)이 채용될 수 있다. 따라서, 램(3100b)에 의해 차지되는 면적 및 스토리지 장치(3000)의 구현 비용이 줄어들 수 있다.As an example, when a read request is provided from a host (e.g., processor 1100 of FIG. 1) for read data stored in at least one of non-volatile memories 3200, Each of a plurality of transmission unit data generated by dividing data may be temporarily stored in the RAM 3100b and then output as a data signal DQ. In this embodiment, instead of waiting for the read data to be fully prepared, the RAM 3100b with a small capacity can be employed by transferring each of the transfer unit data forming the read data as it is prepared. Therefore, the area occupied by the RAM 3100b and the implementation cost of the storage apparatus 3000 can be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(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., processor 1100 of FIG. 1) rather than by storage apparatus 3000. Thus, the operation load of the storage apparatus 3000 can be reduced. Embodiments of the present invention will be described in more detail with reference to Figs. 8 to 15. Fig.

장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 버퍼 메모리(3300), 및 SPD 칩(3500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 버퍼 메모리(2300), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 버퍼 메모리(3300), 및 SPD 칩(3500)에 관한 중복되는 설명들은 생략될 것이다.The device controller 3100, the RAM 3100b, the nonvolatile memories 3200, the buffer memory 3300 and the SPD chip 3500 correspond to the device controller 2100, the RAM 2100b, the nonvolatile memories The buffer memory 2300, and the SPD chip 2500, respectively. Redundant descriptions of the device controller 3100, the RAM 3100b, the nonvolatile memories 3200, the buffer memory 3300, and the SPD chip 3500 will be omitted.

데이터 버퍼 회로(3400)는 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있다. 데이터 버퍼 회로(3400)는 수신된 신호를 장치 컨트롤러(3100)로 제공하거나, 송신될 신호를 장치 컨트롤러(3100)로부터 제공받을 수 있다. 즉, 데이터 버퍼 회로(3400)는 프로세서(1100)와 장치 컨트롤러(3100) 사이에서 데이터를 버퍼링할 수 있다. 예로서, 데이터 버퍼 회로(3400)는 데이터 전송의 타이밍(Timing)을 동기시키기 위해 이용될 수 있다.The data buffer circuit 3400 can exchange the data signal DQ and the data strobe signal DQS with the processor 1100. The data buffer circuit 3400 may provide the received signal to the device controller 3100 or may receive the signal to be transmitted from the device controller 3100. [ That is, the data buffer circuit 3400 can buffer the data between the processor 1100 and the device controller 3100. As an example, the data buffer circuit 3400 may be used to synchronize the timing of data transmission.

예로서, 데이터 버퍼 회로(3400)는 하나 이상의 데이터 버퍼들을 포함할 수 있다. 데이터 버퍼들 각각은 대응하는 데이터 신호 선로를 통해 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받거나 출력할 수 있다. 데이터 버퍼들은 장치 컨트롤러(3100)의 제어에 따라 동작할 수 있다.By way of example, data buffer circuit 3400 may include one or more data buffers. Each of the data buffers may receive or output a data signal DQ and a data strobe signal DQS via a corresponding data signal line. The data buffers may operate under the control of the device controller 3100.

도 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 storage devices 1220 and 1222 of FIG. 1 may include the storage device 4000 of FIG. By way of example, the storage device 4000 may be implemented as a non-volatile memory module coupled to a DIMM socket of the computing system 1000 of FIG. In this example, the storage device 4000 may communicate with the processor 1100 of FIG. 1 in accordance with an interface convention defined based on the DIMM specification.

도 5의 실시 예에서, 스토리지 장치(4000)는 제어 회로(4005), 하나 이상의 불휘발성 메모리들(4200), 및 하나 이상의 DRAM들(4600)을 포함할 수 있다. 불휘발성 메모리들(4200)은 컴퓨팅 시스템(1000)의 스토리지 매체로서 이용될 수 있다. DRAM들(4600)은 컴퓨팅 시스템(1000)의 메인 메모리로서 이용될 수 있다. 즉, 스토리지 장치(4000)는 스토리지 매체의 기능과 함께 메인 메모리의 기능을 수행할 수 있다.In the embodiment of FIG. 5, the storage device 4000 may include a control circuit 4005, one or more non-volatile memories 4200, and one or more DRAMs 4600. The non-volatile memories 4200 may be utilized as a storage medium of the computing system 1000. The DRAMs 4600 may be used as the main memory of the computing system 1000. That is, the storage apparatus 4000 can perform the function of the main memory together with the function of the storage medium.

예로서, 불휘발성 메모리들(4200)은 EEPROM, 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM 중 적어도 하나를 포함할 수 있다. 도 5에서, 스토리지 장치(4000)가 DRAM들(4600)을 포함하는 것으로 도시되었다. 그러나, 다른 몇몇 실시 예에서, DRAM들(4600)은 SRAM, SDRM, PRAM, MRAM, ReRAM, 및 FRAM과 같이 랜덤하게 접근되는 다른 메모리들로 대체될 수 있다.By way of example, non-volatile memories 4200 may include at least one of EEPROM, flash memory, PRAM, MRAM, ReRAM, and FRAM. In FIG. 5, the storage device 4000 is shown as including DRAMs 4600. However, in some other embodiments, DRAMs 4600 may be replaced with other memories that are randomly accessed, such as SRAM, SDRM, PRAM, MRAM, ReRAM, and FRAM.

제어 회로(4005)는 장치 컨트롤러(4100) 및 SPD 칩(4500)을 포함할 수 있다. 장치 컨트롤러(4100) 및 불휘발성 메모리들(4200)은 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(4200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(4100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(4100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The control circuit 4005 may include a device controller 4100 and an SPD chip 4500. The device controller 4100 and the non-volatile memories 4200 may be configured and operated as described with reference to Figs. 8-15. As an example, when a read request is received from a host (e.g., processor 1100 of FIG. 1) for read data stored in at least one of non-volatile memories 4200, Each of the plurality of transfer unit data generated by dividing the data may be temporarily stored in the RAM 4100b and then output as the data signal DQ.

위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(4100b)이 채용될 수 있다. 따라서, 램(4100b)에 의해 차지되는 면적 및 스토리지 장치(4000)의 구현 비용이 줄어들 수 있다.In the above embodiment, instead of waiting until the read data is fully prepared, the RAM 4100b having a small capacity can be employed by transmitting each transfer unit data forming the read data as it is prepared. Thus, the area occupied by the RAM 4100b and the implementation cost of the storage device 4000 can be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(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., processor 1100 of FIG. 1), and not by storage apparatus 4000. Thus, the operation load of the storage apparatus 4000 can be reduced. Embodiments of the present invention will be described in more detail with reference to Figs. 8 to 15. Fig.

장치 컨트롤러(4100), 램(4100b), 불휘발성 메모리들(4200), 및 SPD 칩(4500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(4100), 램(4100b), 불휘발성 메모리들(4200), 및 SPD 칩(4500)에 관한 중복되는 설명들은 생략될 것이다.The device controller 4100, the RAM 4100b, the nonvolatile memories 4200 and the SPD chip 4500 correspond to the device controller 2100, the RAM 2100b, the nonvolatile memories 2200, and the SPD Chip 2500 may be configured and operated in the same or similar manner, respectively. For convenience of description, redundant descriptions of the device controller 4100, the RAM 4100b, the nonvolatile memories 4200, and the SPD chip 4500 will be omitted.

장치 컨트롤러(4100)는 프로세서(1100)로부터 수신된 신호에 기초하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)에 포함되는 데이터를 불휘발성 메모리들(4200) 또는 DRAM들(4600)에 선택적으로 제공할 수 있다. 또는, 장치 컨트롤러(4100)는 프로세서(1100)로부터 수신된 신호들에 기초하여, 불휘발성 메모리들(4200) 또는 DRAM들(4600)에 저장된 데이터를 선택적으로 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 출력할 수 있다. 예로서, 프로세서(1100)는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 스토리지 커맨드, 스토리지 어드레스, 및 별개의 신호 중 적어도 하나에 기초하여 불휘발성 메모리들(4200) 또는 DRAM(4600)들에 선택적으로 접근할 수 있다.The device controller 4100 can selectively write data included in the data signal DQ and the data strobe signal DQS to the nonvolatile memories 4200 or DRAMs 4600 on the basis of the signal received from the processor 1100 As shown in FIG. Alternatively, the device controller 4100 may selectively receive data stored in the non-volatile memories 4200 or DRAMs 4600, based on signals received from the processor 1100, as a data signal DQ and a data strobe signal DQS). By way of example, processor 1100 may be coupled to non-volatile memories 4200 or DRAMs 4600 based on at least one of a RAM command CMD_R, a RAM address ADDR_R, a storage command, a storage address, It is selectively accessible.

도 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 storage devices 1220, 1222 of FIG. 1 may include the storage device 5000 of FIG. By way of example, storage device 5000 may be implemented as a non-volatile memory module coupled to a DIMM socket of computing system 1000 of FIG. In this example, the storage device 5000 may communicate with the processor 1100 of FIG. 1 in accordance with an interface convention defined based on the DIMM specification.

도 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 storage device 5000 may include a control circuit 5005, one or more non-volatile memories 5200, and one or more DRAMs 5600. The non-volatile memories 5200 may be utilized as a storage medium of the computing system 1000. The DRAMs 5600 may be utilized as the main memory of the computing system 1000. The nonvolatile memories 5200 and DRAMs 5600 may be configured and operable, respectively, the same or similar to the nonvolatile memories 4200 and DRAMs 4600 of FIG. For purposes of illustration, redundant descriptions of non-volatile memories 5200 and DRAMs 5600 will be omitted.

제어 회로(5005)는 장치 컨트롤러(5100), 데이터 버퍼 회로(5400), 및 SPD 칩(5500)을 포함할 수 있다. 장치 컨트롤러(5100) 및 불휘발성 메모리들(5200)은 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(5200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(5100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(5100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The control circuit 5005 may include a device controller 5100, a data buffer circuit 5400, and an SPD chip 5500. The device controller 5100 and nonvolatile memories 5200 may be configured and operative as described with reference to Figures 8-15. As an example, if a read request is provided from a host (e.g., processor 1100 of FIG. 1) for read data stored in at least one of non-volatile memories 5200, Each of a plurality of transmission unit data generated by dividing data may be temporarily stored in the RAM 5100b and then output as the data signal DQ.

위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(5100b)이 채용될 수 있다. 따라서, 램(5100b)에 의해 차지되는 면적 및 스토리지 장치(5000)의 구현 비용이 줄어들 수 있다.In the above embodiment, a small amount of RAM 5100b may be employed by transferring each of the transfer unit data forming the read data in preparation, instead of waiting until the read data is fully prepared. Thus, the area occupied by the RAM 5100b and the implementation cost of the storage device 5000 can be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(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., processor 1100 of FIG. Thus, the operation load of the storage apparatus 5000 can be reduced. Embodiments of the present invention will be described in more detail with reference to Figs. 8 to 15. Fig.

장치 컨트롤러(5100), 램(5100b), 및 SPD 칩(5500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 데이터 버퍼 회로(5400)는 도 4의 데이터 버퍼 회로(3400)와 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(5100), 램(5100b), 데이터 버퍼 회로(5400), 및 SPD 칩(5500)에 관한 중복되는 설명들은 생략될 것이다.The device controller 5100, the RAM 5100b and the SPD chip 5500 can be configured and operated respectively in the same or similar to the device controller 2100, the RAM 2100b, and the SPD chip 2500 in Fig. 3 . The data buffer circuit 5400 may be configured and operated in the same or similar manner as the data buffer circuit 3400 of FIG. For convenience of description, redundant descriptions of the device controller 5100, the RAM 5100b, the data buffer circuit 5400, and the SPD chip 5500 will be omitted.

장치 컨트롤러(5100)는 프로세서(1100)로부터 수신된 신호에 기초하여 불휘발성 메모리들(5200) 및 DRAM들(5600)을 제어할 수 있다. 프로세서(1100)는 불휘발성 메모리들(5200) 또는 DRAM들(5600)에 선택적으로 접근할 수 있다.Device controller 5100 can control non-volatile memories 5200 and DRAMs 5600 based on signals received from processor 1100. [ Processor 1100 may selectively access non-volatile memories 5200 or DRAMs 5600.

예로서, 프로세서(1100)가 불휘발성 메모리들(5200)에 데이터를 저장하는 경우, 저장될 데이터는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 장치 컨트롤러(5100)로 제공될 수 있다. 장치 컨트롤러(5100)는 제공받은 데이터를 불휘발성 메모리들(5200)로 제공할 수 있다. 예로서, 프로세서(1100)가 불휘발성 메모리들(5200)로부터 데이터를 읽는 경우, 장치 컨트롤러(5100)는 불휘발성 메모리들(5200)로부터 읽힌 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 프로세서(1100)로 제공할 수 있다.For example, when processor 1100 stores data in non-volatile memories 5200, the data to be stored may be transferred to device controller (not shown) via data buffer circuit 5400 as data signal DQ and data strobe signal DQS 5100). The device controller 5100 may provide the provided data to the nonvolatile memories 5200. [ For example, when processor 1100 reads data from non-volatile memories 5200, device controller 5100 writes data read from non-volatile memories 5200 to data signal DQ and data strobe signal DQS, To the processor 1100 through the data buffer circuit 5400.

예로서, 프로세서(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 processor 1100 stores data in the DRAMs 5600 as an example, the device controller 5100 transfers the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK to the DRAMs 5600, . The data to be stored may be provided to the DRAMs 5600 through the data buffer circuit 5400 as the data signal DQ and the data strobe signal DQS. For example, when the processor 1100 reads data from the DRAMs 5600, the device controller 5100 transfers the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK to the DRAMs 5600 . The DRAMs 5600 output data based on the provided signals and the data buffer circuit 5400 outputs the data output from the DRAMs 5600 as a data signal DQ and a data strobe signal DQS to the processor 1100 ).

도 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 storage devices 1220, 1222 of FIG. 1 may include the storage device 6000 of FIG. By way of example, storage device 6000 may be implemented as a non-volatile memory module coupled to a DIMM socket of computing system 1000 of FIG. In this example, the storage device 6000 can communicate with the processor 1100 of FIG. 1 in accordance with an interface convention defined based on the DIMM specification.

도 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 storage device 6000 may include a control circuit 6005, one or more non-volatile memories 6200, and one or more DRAMs 6600. The non-volatile memories 6200 may be used as a storage medium of the computing system 1000. The DRAMs 6600 may be used as the main memory of the computing system 1000. The non-volatile memories 6200 and the DRAMs 6600 can be configured and operated respectively in the same or similar manner to the non-volatile memories 4200 and the DRAMs 4600 in Fig. For purposes of illustration, redundant descriptions of non-volatile memories 6200 and DRAMs 6600 will be omitted.

제어 회로(6005)는 장치 컨트롤러(6100) 및 SPD 칩(6500)을 포함할 수 있다. 장치 컨트롤러(6100) 및 불휘발성 메모리들(6200)은 도 8 내지 도 15를 참조하여 설명될 것과 같이 구성되고 동작할 수 있다. 실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(6200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(6100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(6100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다.The control circuit 6005 may include a device controller 6100 and an SPD chip 6500. The device controller 6100 and nonvolatile memories 6200 may be configured and operative as described with reference to Figures 8-15. As an example, when a read request is provided from a host (e.g., processor 1100 of FIG. 1) for read data stored in at least one of non-volatile memories 6200, Each of a plurality of transmission unit data generated by dividing data may be temporarily stored in the RAM 6100b and output as a data signal DQ.

위 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(6100b)이 채용될 수 있다. 따라서, 램(6100b)에 의해 차지되는 면적 및 스토리지 장치(6000)의 구현 비용이 줄어들 수 있다.In the above embodiment, instead of waiting until the read data is fully prepared, the RAM 6100b having a small capacity can be employed by transferring each of the transfer unit data forming the read data as it is prepared. Thus, the area occupied by the RAM 6100b and the implementation cost of the storage device 6000 can be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(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., processor 1100 of FIG. 1) rather than by storage device 6000. Thus, the operation load of the storage apparatus 6000 can be reduced. Embodiments of the present invention will be described in more detail with reference to Figs. 8 to 15. Fig.

장치 컨트롤러(6100), 램(6100b), 및 SPD 칩(6500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(6100), 램(6100b), 및 SPD 칩(6500)에 관한 중복되는 설명들은 생략될 것이다.The device controller 6100, the RAM 6100b and the SPD chip 6500 may be constructed and operated respectively in the same or similar manner to the device controller 2100, the RAM 2100b, and the SPD chip 2500 in Fig. 3 . For ease of explanation, redundant descriptions of the device controller 6100, RAM 6100b, and SPD chip 6500 will be omitted.

장치 컨트롤러(6100)는 프로세서(1100)로부터 수신된 신호에 기초하여 불휘발성 메모리들(6200) 및 DRAM들(6600)을 제어할 수 있다. 프로세서(1100)는 불휘발성 메모리들(6200) 또는 DRAM들(6600)에 선택적으로 접근할 수 있다.The device controller 6100 can control the nonvolatile memories 6200 and the DRAMs 6600 based on signals received from the processor 1100. [ Processor 1100 may selectively access non-volatile memories 6200 or DRAMs 6600.

예로서, 프로세서(1100)가 불휘발성 메모리들(6200)에 데이터를 저장하는 경우, 불휘발성 메모리들(6200)은 저장될 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 장치 컨트롤러(6100)를 통해 제공받을 수 있다. 예로서, 프로세서(1100)가 불휘발성 메모리들(6200)로부터 데이터를 읽는 경우, 장치 컨트롤러(6100)는 불휘발성 메모리들(6200)로부터 읽힌 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 프로세서(1100)로 제공할 수 있다.For example, when the processor 1100 stores data in the non-volatile memories 6200, the non-volatile memories 6200 store the data to be stored as a data signal DQ and a data strobe signal DQS in the device controller 6100). For example, when the processor 1100 reads data from the non-volatile memories 6200, the device controller 6100 transfers the data read from the non-volatile memories 6200 to the data signal DQ and the data strobe signal DQS, To the processor 1100 as shown in FIG.

예로서, 프로세서(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 processor 1100 stores data in the DRAMs 6600, the device controller 6100 transfers the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK to the DRAMs 6600, . The data to be stored may be provided to the DRAMs 6600 as a data signal DQ and a data strobe signal DQS. For example, when the processor 1100 reads data from the DRAMs 6600, the device controller 6100 transfers the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK to the DRAMs 6600 . The DRAMs 6600 output data based on the provided signals and the output data can be provided to the processor 1100 as a data signal DQ and a data strobe signal DQS.

도 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 storage system 10 may include a storage device 100 and a processor 101. The storage device 100 and the processor 101 may correspond to the storage device 1220 or 1222 of the first type and the processor 1100 of FIG. Thus, redundant descriptions of the storage device 100 and the processor 101 will be omitted. With reference to Fig. 8, the configuration and operation of the storage device 100, and the communication between the storage device 100 and the processor 101 will be described.

일 실시 예에서, 스토리지 장치(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 storage device 100 may include a device controller 110, one or more non-volatile memories 120, and a buffer memory 130. The device controller 110 may correspond to one of the device controllers 2100, 3100, 4100, 5100, 6100 of FIGS. 3-7. Non-volatile memories 120 may correspond to one of the non-volatile memories 2200, 3200, 4200, 5200, 6200 of FIGS. 3-7. The buffer memory 130 may correspond to one of the buffer memories 2400 and 3400 of FIGS.

몇몇 다른 실시 예에서, 스토리지 장치(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 storage device 100 may include the data buffer circuits 3400, 5400 of Figures 4 and 6, the SPD chips 2500, 3500, 4500, 5500, 6500 of Figures 3-7, And may further include at least one of the DRAMs 4600, 5600, and 6600 shown in FIGS. FIG. 8 shows an exemplary configuration for facilitating understanding of the present invention, and the configuration of the storage device 100 may be variously modified or modified based on the embodiments described with reference to FIG. 3 to FIG.

장치 컨트롤러(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 device controller 110, the storage device 100 can perform a unique function. For example, when the processor 101 provides write request and write data (DATA_W) to the storage device 100 to store write data (DATA_W) in the storage device 100, Accordingly, the write data (DATA_W) may be stored in the nonvolatile memories 120 or the buffer memory 130. [ For example, when the processor 101 provides a read request to the storage device 100 to read the read data (DATA_R) stored in the storage device 100, under the control of the device controller 110, The read data (DATA_R) stored in the buffer memory (120) or the buffer memory (130) may be transmitted to the processor (101).

장치 컨트롤러(110)는 물리 계층(111) 및 컨트롤러(112)를 포함할 수 있다. 물리 계층(111)은 램 컨트롤러(111a) 및 램(111b)을 포함할 수 있다. 램 컨트롤러(111a)는 프로세서(101)로부터 제공되는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록 신호(CLK)를 수신할 수 있다. 램 컨트롤러(111a)는 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 따라 램(111b)을 제어할 수 있다.The device controller 110 may include a physical layer 111 and a controller 112. The physical layer 111 may include a RAM controller 111a and a RAM 111b. The RAM controller 111a can receive the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK provided from the processor 101. [ The RAM controller 111a can control the RAM 111b according to the RAM command CMD_R and the RAM address ADDR_R.

램(111b)은 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)에 기초하여 데이터를 저장하거나 출력할 수 있다. 램(111b)은 프로세서(101)로부터 제공되는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 데이터 신호(DQ)에 대응하는 데이터를 저장할 수 있다. 또는, 램(111b)은 그것에 저장된 데이터를 데이터 신호(DQ)로서 출력하고, 출력된 데이터를 프로세서(101)로 제공할 수 있다.The RAM 111b may store or output data based on the RAM command CMD_R and the RAM address ADDR_R. The RAM 111b may receive the data signal DQ and the data strobe signal DQS provided from the processor 101 and may store data corresponding to the data signal DQ. Alternatively, the RAM 111b may output the data stored therein as the data signal DQ and provide the output data to the processor 101. [

본 발명의 실시 예에서, 데이터 신호(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 processor 101 to control the nonvolatile memories 120. In this embodiment, Further, the data signal DQ may include write data (DATA_W) to be stored in the nonvolatile memories 120 or read data (DATA_R) read from the nonvolatile memories 2200. In some cases, the data signal DQ may include write data (DATA_W) and status information (STI) regarding read data (DATA_R).

불휘발성 메모리들(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 nonvolatile memories 120, the RAM 111b can store the storage command CMD_S and the storage address ADDR_S in accordance with the RAM command CMD_R and the RAM address ADDR_R. Further, the RAM 111b may temporarily store the write data (DATA_W) provided from the processor 101 according to the RAM command (CMD_R) and the RAM address (ADDR_R). According to the control of the controller 112, the storage command CMD_S, the storage address ADDR_S, and the write data DATA_W may be provided to the nonvolatile memories 120. Write data DATA_W may be stored in the nonvolatile memories 120 based on the storage command CMD_S and the storage address ADDR_S.

불휘발성 메모리들(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 nonvolatile memories 120, the RAM 111b can store the storage command CMD_S and the storage address ADDR_S according to the RAM command CMD_R and the RAM address ADDR_R. The storage command CMD_S and the storage address ADDR_S may be provided to the nonvolatile memories 120 under the control of the controller 112. [ The read data DATA_R may be read from the nonvolatile memories 120 based on the storage command CMD_S and the storage address ADDR_S and temporarily stored in the RAM 111b and then provided to the processor 101.

즉, 컨트롤러(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 processor 101 and the nonvolatile memories 120 under the control of the controller 112. [ For this purpose, for example, the physical layer 111 is defined based on the DIMM specification and can operate in accordance with the DDR type interface protocol. The device controller 110 may operate in accordance with an interface protocol defined by the DIMM specification. The storage device 100 is implemented in the form of a DIMM and is capable of communicating with the processor 101 in accordance with the interface protocol defined by the DIMM specification.

위 예에서, 램 커맨드(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 RAM controller 111a and the controller 112, the RAM 111b can store status information (STI) regarding the progress of the write operation or the read operation. The processor 101 can recognize whether the write operation or the read operation is completed based on the state information (STI). Further, the controller 112 can recognize whether or not a write operation or a read operation needs to proceed based on the state information (STI). Status information (STI) may also be transmitted via the data input / output pins.

예로서, 램(111b)은 DPSRAM(Dual Port SRAM), 공유 램(Shared RAM) 등과 같은 멀티-포트(Multi-port) 램을 포함할 수 있다. 이 예에서, 램(111b)은 서로 다른 포트들을 통해 프로세서(101) 및 컨트롤러(112)에 의해 각각 접근될 수 있다. 램(111b)의 구성은 도 9를 참조하여 더 상세히 설명될 것이다. 나아가, 쓰기 동작 및 읽기 동작은 도 10 내지 도 15를 참조하여 더 상세히 설명될 것이다.For example, the RAM 111b may include a multi-port RAM such as a Dual Port SRAM (DPSRAM), a Shared RAM, or the like. In this example, the RAM 111b may be accessed by the processor 101 and the controller 112, respectively, through different ports. The configuration of the ram 111b will be described in more detail with reference to Fig. Further, the write operation and the read operation will be described in more detail with reference to FIGS. 10 to 15. FIG.

컨트롤러(112)는 물리 계층(111) 및 불휘발성 메모리들(120)을 제어하기 위해 다양한 하드웨어 구성 요소 또는 소프트웨어 구성 요소를 포함할 수 있다. 예로서, 컨트롤러(112)는 ECC 인코딩/디코딩 엔진(Error Correction Code Encoding/Decoding Engine), 스크램블러/디스크램블러(Scrambler/Descrambler), 데이터 버퍼, 및 플래시 변환 계층(Flash Translation Layer)을 포함할 수 있다.The controller 112 may include various hardware or software components for controlling the physical layer 111 and the non-volatile memories 120. For example, the controller 112 may include an ECC encoding / decoding engine, a scrambler / descrambler, a data buffer, and a Flash Translation Layer .

위 예에서, 컨트롤러(112)는 ECC 인코딩/디코딩 엔진에 의해 데이터의 오류를 검출 및 정정하고, 데이터에 관한 ECC 코드를 생성 및 추가할 수 있다. 컨트롤러(112)는 스크램블러/디스크램블러에 의해 데이터를 스크램블 또는 디스크램블할 수 있다. 컨트롤러(112)는 램(111b) 또는 불휘발성 메모리들(120)로부터 읽힌 데이터를 데이터 버퍼에 임시로 저장할 수 있다. 컨트롤러(112)는 플래시 변환 계층에 의해 스토리지 어드레스(ADDR_S)에 관한 논리 어드레스와 물리 어드레스 사이의 변환을 수행할 수 있다. 이를 위해, 버퍼 메모리(130)는 불휘발성 메모리들(120)의 논리 어드레스와 물리 어드레스 사이의 맵핑 테이블(Mapping Table)을 저장할 수 있다.In the above example, the controller 112 may detect and correct errors in the data by the ECC encoding / decoding engine, and generate and add ECC codes for the data. The controller 112 may scramble or descramble the data by a scrambler / descrambler. The controller 112 may temporarily store the data read from the RAM 111b or the nonvolatile memories 120 in the data buffer. The controller 112 may perform a translation between the logical address and the physical address for the storage address ADDR_S by the flash translation layer. To this end, the buffer memory 130 may store a mapping table between a logical address and a physical address of the non-volatile memories 120. [

도 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 RAM 111b may include a command area CA, a writing area WA, a reading area RA, and a state area STA. The command area CA, the write area WA, the read area RA, and the status area STA can be logically or physically distinguished.

프로세서(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 processor 101 have. Further, based on the RAM command (CMD_R, see FIG. 8) provided from the processor 101, a write operation or a read operation can be performed with respect to the selected area. As an example, if a RAM write command is provided as the RAM command CMD_R, a write operation can be performed in the selected area. On the other hand, when a RAM read command is provided as the RAM command CMD_R, a read operation can be performed in the selected area.

커맨드 영역(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 processor 101. [ The controller 112 can read the storage command CMD_S and the storage address ADDR_S stored in the command area CA. The storage command CMD_S may indicate whether a write operation is to be performed in one or more non-volatile memories 120 (see FIG. 8) or whether a read operation is to be performed (i.e., a write request or a read request). The storage address ADDR_S may indicate the location of the non-volatile memories 120 in which a write operation or a read operation is to be performed.

쓰기 영역(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 processor 101 may be temporarily stored in the write area WA and then provided to the nonvolatile memories 120 under the control of the controller 112. [ The read data (DATA_R) read from the nonvolatile memories 120 may be provisionally stored in the read area RA under the control of the controller 112 and then provided to the processor 101. [

도 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 processor 101 . The read area RA of the RAM 111b may store transfer unit data forming the read data (DATA_R). Each of the transmission unit data may be temporarily stored in the RAM 111b and then transmitted to the processor 101. [ Each of the transmission unit data can be transmitted as a data signal DQ (see FIG. 8) through a data input / output pin defined in the DIMM specification. In an embodiment of the present invention, by transmitting all transmission unit data, the read data (DATA_R) can be transmitted.

램 컨트롤러(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 controller 112. FIG. The status information (STI) may include information on the progress of a write operation or a read operation. The processor 101 can recognize whether the write operation or the read operation is completed based on the state information (STI). Further, the controller 112 can recognize whether or not a write operation or a read operation needs to proceed based on the state information (STI).

예로서, 프로세서(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 processor 101 desires to store the write data (DATA_W), the processor 101 can provide the write data (DATA_W) in the write area WA. Further, the processor 101 can provide information on the write data (DATA_W) and status information (STI) concerning the request of the write operation to the state area (STA). The controller 112 can control the write operation such that write data (DATA_W) is stored in at least one of the nonvolatile memories 120 based on the status information (STI). The processor 101 can recognize completion of the write operation based on the status information STI when the controller 112 stores the status information STI informing completion of the write operation in the status area STA. To do this, the processor 101 may polle the status area STA at specific times (e.g., periodically).

예로서, 프로세서(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 processor 101 wants to read the read data (DATA_R), the processor 101 sends information about the read data (DATA_R) and status information (STI) As shown in FIG. The controller 112 may control the read operation such that the read data (DATA_R) is read from at least one of the non-volatile memories 120 based on the status information (STI). The processor 101 can recognize the completion of the read operation based on the status information STI when the controller 112 stores the status information STI informing completion of the read operation in the status area STA. Further, the processor 101 may be provided with read data (DATA_R) stored in the read area (RA).

위에서 언급된 것과 같이, 본 발명의 실시 예에서, 읽기 데이터(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 processor 101. [ In this embodiment, the status area STA of the RAM 111b can store "Notification Data" as the status information STI. The notification data may include information on transmission unit data forming the read data (DATA_R). The notification data will be described in more detail with reference to FIG. 13 to FIG.

도 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 processor 101 can store the write data (DATA_W) in the storage device 100 according to the write operation of Fig. To facilitate understanding of the present invention, Figures 8 and 9 will be referred to together.

S110 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 커맨드 영역(CA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S110, the processor 101 may provide a RAM command (CMD_R) to the storage device 100 for requesting a write to the RAM 111b. Furthermore, the processor 101 may provide the RAM address ADDR_R for selecting the command area CA of the RAM 111b to the storage device 100. [

S120 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로 제공할 수 있다. S120 동작에서, 데이터 신호(DQ)는 스토리지 장치(100)에 관한 쓰기 동작, 좀 더 구체적으로는 불휘발성 메모리들(120)에 관한 쓰기 동작을 요청하기 위한 스토리지 커맨드(CMD_S)를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 쓰기 동작이 수행될 불휘발성 메모리들(120)의 위치를 나타내는 스토리지 어드레스(ADDR_S)를 포함할 수 있다.In operation S120, the processor 101 may provide the data signal DQ and the data strobe signal DQS to the storage device 100. [ In operation S120, the data signal DQ may include a write command for the storage device 100, and more specifically a storage command CMD_S for requesting a write operation for the non-volatile memories 120 . Further, the data signal DQ may include a storage address ADDR_S indicating the location of the non-volatile memories 120 in which a write operation is to be performed.

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 non-volatile memories 120 to the storage device 100. [ When the S110 and S120 operations are performed, the command area CA of the RAM 111b may store the storage command CMD_S and the storage address ADDR_S. Here, the storage command CMD_S may indicate that a write operation is performed in the non-volatile memories 120. [

S130 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 쓰기 영역(WA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S130, the processor 101 may provide a RAM command (CMD_R) to the storage device 100 for requesting a write to the RAM 111b. Further, the processor 101 may provide the RAM address ADDR_R for selecting the write area WA of the RAM 111b to the storage device 100. [

S140 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로 제공할 수 있다. S140 동작에서, 데이터 신호(DQ)는 스토리지 장치(100)에 저장될 쓰기 데이터(DATA_W)를 포함할 수 있다.In operation S140, the processor 101 may provide the data signal DQ and the data strobe signal DQS to the storage device 100. [ In operation S140, the data signal DQ may include write data (DATA_W) to be stored in the storage device 100. [

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 non-volatile memories 120 to the storage device 100. [ When the operations of S130 and S140 are performed, the write area WA of the RAM 111b can store the write data (DATA_W). As the storage command CMD_S, the storage address ADDR_S and the write data DATA_W are stored in the RAM 111b, the controller 112 performs a write operation based on the storage command CMD_S and the storage address ADDR_S Can be controlled.

S150 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 상태 영역(STA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S150, the processor 101 may provide a RAM command (CMD_R) to the storage device 100 for requesting a read about the RAM 111b. Further, the processor 101 may provide the RAM address ADDR_R for selecting the status area STA of the RAM 111b to the storage device 100. [

S160 동작에서, 프로세서(101)는 스토리지 장치(100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받을 수 있다. S160 동작에서, 데이터 신호(DQ)는 쓰기 동작에 관한 상태 정보(STI)를 포함할 수 있다.In operation S160, the processor 101 may receive the data signal DQ and the data strobe signal DQS from the storage device 100. [ In operation S160, the data signal DQ may include status information (STI) regarding the write operation.

S170 동작에서, 스토리지 장치(100)는 쓰기 데이터(DATA_W) 및 쓰기 동작에 관한 상태 정보(STI)를 상태 영역(STA)에 저장할 수 있다. 예로서, 스토리지 장치(100)에서 쓰기 동작이 완료된 경우, 쓰기 동작이 스케쥴링(Scheduling)된 경우, 또는 쓰기 동작의 명령(Instruction)이 큐(Queue)에 진입(Enter)된 경우, S170 동작이 수행될 수 있다.In operation S170, the storage apparatus 100 may store the write data (DATA_W) and the status information (STI) related to the write operation in the status area STA. For example, when the write operation is completed in the storage device 100, the write operation is scheduled, or the instruction of the write operation is entered in the queue, operation S170 is performed. .

S180 동작에서, 프로세서(101)는 쓰기 동작이 완료되었는지 여부를 판별할 수 있다. 프로세서(101)는 상태 영역(STA)에 저장된 상태 정보(STI)에 기초하여 쓰기 동작이 완료되었는지 여부를 판별할 수 있다.In operation S180, the processor 101 can determine whether or not the write operation has been completed. The processor 101 can determine whether or not the write operation is completed based on the state information (STI) stored in the state area STA.

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 non-volatile memories 120. [ If it is determined that the write operation has not been completed, the processor 101 may continue to poll whether the write operation has been completed by repeating S150 and S160 operations. On the other hand, if it is determined that the write operation is completed, the processor 101 may request the next operation of the storage device 100. [

도 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 processor 101 may provide a read request to the storage device 100 (see action 1). The processor 101 may provide a read request to the storage device 100 to read the read data (DATA_R) stored in the storage device 100. [ The processor 101 may provide the storage command 100 with the storage command CMD_S corresponding to the read request. The processor 101 may provide the storage device 100 with a storage address ADDR_S indicating the location where the read data DATA_R is stored.

스토리지 장치(100)가 읽기 요청을 수신한 경우, 스토리지 장치(100)는 읽기 데이터(DATA_R)를 프로세서(101)로 전송할 수 있다. 본 발명의 실시 예에서, 스토리지 장치(100)는 완전한 읽기 데이터(DATA_R)를 프로세서(101)로 전송하는 대신, 읽기 데이터(DATA_R)를 분할하여 생성되는 복수의 전송 단위 데이터를 프로세서(101)로 전송할 수 있다(동작 ② 참조).When the storage device 100 receives a read request, the storage device 100 may send the read data (DATA_R) to the processor 101. [ In the embodiment of the present invention, instead of transferring the complete read data (DATA_R) to the processor 101, the storage apparatus 100 transmits a plurality of transfer unit data generated by dividing the read data (DATA_R) to the processor 101 (See action 2).

스토리지 장치(100)는 장치 컨트롤러(110)의 제어에 따라 스토리지 어드레스(ADDR_S)에 대응하는 불휘발성 메모리들(120)의 위치로부터 읽기 데이터(DATA_R)를 읽을 수 있다. 그러나, 읽기 데이터(DATA_R)가 많이 분산되어 저장되어 있는 경우, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않을 수 있다. 또는, 읽기 데이터(DATA_R)의 크기가 읽기 동작의 단위 크기를 초과하는 경우, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않을 수 있다.The storage device 100 can read the read data DATA_R from the position of the nonvolatile memories 120 corresponding to the storage address ADDR_S under the control of the device controller 110. [ However, when the read data (DATA_R) is distributed and stored in a highly dispersed manner, the entire read data (DATA_R) may not be read all at once. Alternatively, when the size of the read data (DATA_R) exceeds the unit size of the read operation, the entire read data (DATA_R) may not be read all at once.

읽기 데이터(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 processor 101 after the entire read data (DATA_R) has been read, although the entire read data (DATA_R) is not read at once. Rather, it may be efficient to transmit the read portion whenever a part of the read data (DATA_R) is read.

본 발명의 실시 예에서, 스토리지 장치(100)는 장치 컨트롤러(110)의 제어에 따라, 읽기 데이터(DATA_R)를 형성하는 전송 단위 데이터들(D[1] 내지 D[10]) 각각을 프로세서(101)로 전송할 수 있다. 예로서, 10개의 전송 단위 데이터들(즉, D[1] 내지 D[10])이 읽기 데이터(DATA_R)를 형성하는 것으로 가정한다. 다만, 이 예는 본 발명의 이해를 돕기 위해 제공될 뿐이고, 본 발명을 제한하기 위한 것은 아님이 명백하다.In the embodiment of the present invention, the storage device 100 transfers each of the transfer unit data D [1] to D [10] forming the read data (DATA_R) to the processor 101). As an example, it is assumed that ten transfer unit data (i.e., D [1] to D [10]) form read data (DATA_R). It is to be noted, however, that this example is provided only for the sake of understanding of the present invention, and is not intended to limit the present invention.

여기서, 전송 단위 데이터가 갖는 "전송 단위"는 실시 예에 따라 다양하게 변경 또는 수정될 수 있다. 전송 단위는 데이터를 전송하기에 적합한 임의의 크기를 가질 수 있다. 전송 단위는 고정된 크기를 갖거나 가변되는 크기를 가질 수 있다. 몇몇 실시 예에서, 전송 단위는 데이터 전송에 이용되는 패킷(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 non-volatile memories 120 and be ready to be transmitted. The device controller 110 may transmit the third transmission unit data D [3] to the processor 101 in response to the preparation of the third transmission unit data D [3]. Therefore, the processor 101 can first receive the third transmission unit data D [3].

다음으로, 시각 '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 non-volatile memories 120 and be ready to be transmitted. Further, at time t3 and time t4, tenth transmission unit data D [10] and seventh transmission unit data D [7] are read from at least one of the nonvolatile memories 120 It may be ready to be transmitted. The device controller 110 transmits the transmission unit data D [1], D [10], or D [10] prepared in response to the preparation of each of the transmission unit data D [1], D [ 7]) to the processor 101. The processor 101 can receive the transfer unit data prepared in the storage apparatus 100 one by one.

마지막으로, 시각 '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 processor 101. [ The processor 101 can manage whether or not the transmission of the read data (DATA_R) is completed (see operation 3). The processor 101 can determine that the transmission of the read data (DATA_R) is completed at time t11 after finally receiving the fifth transmission unit data D [5].

본 발명의 실시 예에서, 전송 단위 데이터들(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 device controller 110 in response to preparation of each transmission unit data D [1] to D [10] And may be transmitted to the processor 101 one by one according to the control. In some embodiments, each of the transmission unit data D [1] to D [10] may be transmitted to the processor 101 regardless of the order in which the read data (DATA_R) is formed. That is, each of the transmission unit data D [1] to D [10] may be transmitted to the processor 101 as it is prepared. The read data DATA_R can be transmitted to the processor 101 by transmitting each of the transfer unit data D [1] to D [10] to the processor 101. [

본 발명의 실시 예에서, 램(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 RAM 111b may store only the prepared transfer unit data D [1] to D [10]. Therefore, the ram 111b having a small capacity can be employed. As a result, the area occupied by the RAM 111b and the implementation cost of the storage device 100 can be reduced.

본 발명의 실시 예에서, 전송 단위 데이터들(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 storage apparatus 100 only transmits each of the transmission unit data D [1] to D [10], and whether or not all of the transmission unit data D [1] to D [10] I can not. Therefore, the operation load of the storage apparatus 100 can be reduced. To manage the completion of the read operation by the processor 101, "notification data" can be used. The notification data will be described with reference to Figs. 13 to 15. Fig.

도 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 processor 101 may be provided with the read data (DATA_R) stored in the storage device 100 according to the read operation of Figs. To facilitate understanding of the present invention, Figures 8 and 9 will be referred to together.

S210 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 커맨드 영역(CA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S210, the processor 101 may provide a RAM command (CMD_R) to the storage device 100 for requesting a write to the RAM 111b. Furthermore, the processor 101 may provide the RAM address ADDR_R for selecting the command area CA of the RAM 111b to the storage device 100. [

S220 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로 제공할 수 있다. S220 동작에서, 데이터 신호(DQ)는 스토리지 장치(100)에 관한 읽기 동작, 좀 더 구체적으로는 불휘발성 메모리들(120)에 관한 읽기 동작을 요청하기 위한 스토리지 커맨드(CMD_S)를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 읽기 동작이 수행될 불휘발성 메모리들(120)의 위치를 나타내는 스토리지 어드레스(ADDR_S)를 포함할 수 있다.In operation S220, the processor 101 may provide the data signal DQ and the data strobe signal DQS to the storage device 100. [ In operation S220, the data signal DQ may include a storage command CMD_S for requesting a read operation on the storage device 100, and more specifically, a read operation on the non-volatile memories 120 . Further, the data signal DQ may include a storage address ADDR_S indicating the location of the nonvolatile memories 120 in which a read operation is to be performed.

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 non-volatile memories 120 to storage device 100. [ When operations S210 and S220 have been performed, the command area CA of the RAM 111b may store the storage command CMD_S and the storage address ADDR_S. As the storage command CMD_S and the storage address ADDR_S are stored in the RAM 111b, the controller 112 can control the reading operation based on the storage command CMD_S and the storage address ADDR_S.

S230 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 상태 영역(STA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S230, the processor 101 may provide a RAM command (CMD_R) to the storage device 100 for requesting a read about the RAM 111b. Further, the processor 101 may provide the RAM address ADDR_R for selecting the status area STA of the RAM 111b to the storage device 100. [

S240 동작에서, 프로세서(101)는 스토리지 장치(100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받을 수 있다. S240 동작에서, 데이터 신호(DQ)는 읽기 동작에 관한 상태 정보(STI)를 포함할 수 있다.In operation S240, the processor 101 may receive a data signal DQ and a data strobe signal DQS from the storage device 100. [ In operation S240, the data signal DQ may include status information (STI) regarding the read operation.

S250 동작에서, 스토리지 장치(100)는 읽기 데이터(DATA_R) 및 읽기 동작에 관한 상태 정보(STI)를 상태 영역(STA)에 저장할 수 있다. 읽기 데이터(DATA_R)를 형성하는 복수의 전송 단위 데이터 중에서 특정 전송 단위 데이터에 관한 읽기 동작이 스토리지 장치(100)에서 수행된 경우, S250 동작이 수행될 수 있다. 여기서, 상태 정보(STI)는 "알림 데이터"를 포함할 수 있다. 알림 데이터는 특정 전송 단위 데이터가 램(111b)에 저장되어 전송될 준비가 되었음을 나타낼 수 있다. 나아가, 알림 데이터는 준비된 전송 단위 데이터의 읽기 데이터(DATA_R)에서의 위치에 관한 정보를 포함할 수 있다.In operation S250, the storage device 100 may store the read data (DATA_R) and the status information (STI) regarding the read operation in the status area (STA). If a read operation is performed in the storage device 100 for a specific transfer unit data among a plurality of transfer unit data forming the read data (DATA_R), operation S250 may be performed. Here, the status information STI may include "notification data ". The notification data may indicate that the specific transmission unit data is stored in the RAM 111b and is ready to be transmitted. Further, the notification data may include information on the position in the read data (DATA_R) of the prepared transmission unit data.

S260 동작에서, 프로세서(101)는 특정 전송 단위 데이터에 관한 읽기 동작이 수행되었는지 여부를 판별할 수 있다. 프로세서(101)는 상태 영역(STA)에 저장된 상태 정보(STI)(좀 더 구체적으로는, "알림 데이터")에 기초하여 특정 전송 단위 데이터에 관한 읽기 동작이 수행되었는지 여부를 판별할 수 있다.In operation S260, the processor 101 may determine whether or not a read operation has been performed with respect to specific transmission unit data. The processor 101 can determine whether or not a read operation relating to the specific transmission unit data has been performed based on the state information STI (more specifically, "notification data") stored in the state area STA.

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 non-volatile memories 120. [ If it is determined that the read operation has not yet been performed, the processor 101 may continue to poll whether the read operation has been performed by repeating S230 and S240 operations. On the other hand, if it is determined that the read operation has been performed, operation S270 may be performed.

S270 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 읽기 영역(RA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S270, the processor 101 may provide a RAM command (CMD_R) to the storage device 100 for requesting a read about the RAM 111b. Furthermore, the processor 101 may provide the RAM address ADDR_R for selecting the read area RA of the RAM 111b to the storage device 100. [

S280 동작에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 스토리지 장치(100)로부터 제공받을 수 있다. S280 동작에서, 데이터 신호(DQ)는 전송 단위 데이터들 중에서 준비된 전송 단위 데이터(D[n])를 포함할 수 있다.In operation S280, the processor 101 may receive the data signal DQ and the data strobe signal DQS from the storage device 100. [ In operation S280, the data signal DQ may include transmission unit data D [n] prepared from transmission unit data.

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 storage device 100 to the processor 101. [ The transfer unit data D [n] may be stored in the read area RA of the RAM 111b and then provided to the processor 101. In this case,

S290 동작에서, 프로세서(101)는 전체 읽기 동작이 완료되었는지 여부(즉, 전송 단위 데이터들 전부가 전송되었는지 여부)를 판별할 수 있다. 프로세서(101)는 S250 동작에서 저장된 상태 정보(STI)의 알림 데이터를 참조하여 전체 읽기 동작이 완료되었는지 여부를 판별할 수 있다. 전체 읽기 동작이 아직 완료되지 않은 것으로 판별된 경우, 프로세서(101)는 S230 내지 S280 동작들을 반복함으로써 아직 전송되지 않은 전송 단위 데이터들을 하나씩 수신할 수 있다.In operation S290, the processor 101 may determine whether or not the entire read operation has been completed (i.e., whether or not all transmission unit data has been transmitted). The processor 101 may determine whether the entire read operation has been completed by referring to the notification data of the stored status information (STI) in operation S250. If it is determined that the entire read operation has not yet been completed, the processor 101 may receive transmission unit data that has not yet been transmitted by repeating the operations S230 to S280 one by one.

전송 단위 데이터들 전부가 전송된 경우, S292 동작에서, 프로세서(101)는 전체 읽기 동작이 완료된 것으로 판별할 수 있다. 나아가, 프로세서(101)는 스토리지 장치(100)의 다음 동작을 요청할 수 있다. S290 및 S292 동작들은 전체 읽기 데이터(DATA_R)가 완전히 전송되었는지 여부를 확인하는 전체 읽기 확인 트랜잭션 동작을 형성할 수 있다.If all of the transmission unit data has been transmitted, in S292 operation, the processor 101 can determine that the entire reading operation is completed. Further, the processor 101 may request the next operation of the storage device 100. [ S290 and S292 operations may form a full read confirmation transaction operation to determine whether the entire read data (DATA_R) has been completely transferred.

도 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 processor 101 can provide a read request to the storage device 100 (see FIG. 8) by storing the storage command CMD_S and the storage address ADDR_S in the command area CA. In response to the read request, the device controller 110 (see FIG. 8) controls the controller 112 so that each of the plurality of transfer unit data generated by dividing the read data (DATA_R) (See FIG. 8), and the nonvolatile memories 120 (see FIG. 8).

좀 더 구체적으로, 컨트롤러(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 controller 112, the transmission unit data D [n] prepared from the transmission unit data can be temporarily stored in the reading area RA of the RAM 111b. Further, under the control of the controller 112, the device controller 110 generates notification data NTI [n] corresponding to the transmission unit data D [n] and outputs notification data NTI [n] And can be stored in the state area STA of the RAM 111b as state information STI. The processor 101 can receive the transmission unit data D [n] stored in the reading area RA based on the notification data NTI [n].

실시 예로서, 알림 데이터(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 RAM 111b and is ready to be transmitted. The processor 101 can recognize the preparation of the transmission unit data D [n] based on the preparation notification PN and receive the transmission unit data D [n].

실시 예로서, 알림 데이터(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 processor 101 can determine whether or not all transmission unit data has been received based on the position information PI. Further, the processor 101 may combine the transmission unit data into the read data (DATA_R) after all of the transmission unit data is received, based on the position information PI.

실시 예로서, 알림 데이터(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 processor 101 may provide a read request for the read data (DATA_R) to the storage device 100 (see operations S210 and S220 of FIG. 12). When a read request is received, as described above, the storage apparatus 100 may transmit each of a plurality of transmission unit data forming the read data (DATA_R) to the processor 101. [ However, the transfer unit data may be transferred to the processor 101 one by one as prepared, regardless of the order of forming the read data (DATA_R).

프로세서(101)는 읽기 요청을 제공한 후, 특정 시점마다(예컨대, 주기적으로, 또는 특정 조건이 충족될 때마다) 스토리지 장치(100)에서 알림 데이터가 생성되었는지 여부를 확인할 수 있다(도 12의 S230 내지 S260 동작들 참조). 알림 데이터가 생성된 경우, 프로세서(101)는 특정 전송 단위 데이터가 준비되었음을 인지하고, 준비된 전송 단위 데이터를 수신할 수 있다.The processor 101 can confirm whether or not the notification data has been generated in the storage device 100 at a specific point in time (e.g., periodically, or whenever a specific condition is satisfied) after providing the read request S230 to S260 operations). When the notification data is generated, the processor 101 recognizes that the specific transmission unit data is prepared, and can receive the prepared transmission unit data.

예로서, 시각 '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 RAM 111b (see Fig. 8) and ready to be transmitted. The storage apparatus 100 may generate notification data NTI [3] for informing the preparation of the third transmission unit data D [3].

시각 't2'에서, 프로세서(101)는 알림 데이터(NTI[3])에 기초하여 제 3 전송 단위 데이터(D[3])를 수신할 수 있다(도 12의 S270 및 S280 동작들 참조). 나아가, 프로세서(101)는 알림 데이터(NTI[3])를 참조하여 제 3 전송 단위 데이터(D[3])에 관한 정보를 획득할 수 있다. 그러나, 아직 전송 단위 데이터들 전부가 수신되지 않았기 때문에, 전송 단위 데이터의 전송이 계속 수행될 수 있다(도 12의 S290 동작으로부터 S230 동작으로 돌아가는 화살표 참조).At time t2, the processor 101 can receive the third transmission unit data D [3] based on the notification data (NTI [3]) (see operations S270 and S280 in Fig. 12). Further, the processor 101 can obtain information on the third transmission unit data D [3] by referring to the notification data (NTI [3]). However, since not all of the transmission unit data has yet been received, transmission of transmission unit data can be continuously performed (see arrows from S290 operation to S230 operation in Fig. 12).

각각 시각 '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 RAM 111b and ready for transmission at time t2 and time t3, respectively . The storage device 100 generates notification data NTI [1], NTI [10] corresponding to the first transmission unit data D [1] and the tenth transmission unit data D [10] . In some cases, several transmission unit data may be prepared before the processor 101 confirms the notification data.

시각 '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 processor 101 generates the first transmission unit data D [1] and the tenth transmission unit data D [10] based on the notification data NTI [1], NTI [ Can be received. Further, the processor 101 refers to the notification data (NTI [1], NTI [10]) and stores information about the first transmission unit data D [1] and the tenth transmission unit data D [ Can be obtained. Therefore, the processor 101 can appropriately arrange the first transmission unit data D [1], the third transmission unit data D [3], and the tenth transmission unit data D [10].

시각 't6'에서, 프로세서(101)는 스토리지 장치(100)에서 알림 데이터가 생성되었는지 여부를 확인할 수 있다. 그러나, 몇몇 경우, 전송 단위 데이터가 아직 준비되지 않았을 수 있다(도 12의 S260 동작으로부터 S230 동작으로 돌아가는 화살표 참조). 이 경우, 프로세서(101)는 다음 알림 데이터가 확인될 때까지 대기하거나 다른 동작을 수행할 수 있다.At time " t6 ", the processor 101 can confirm whether or not notification data has been generated in the storage device 100. [ However, in some cases, transmission unit data may not have been prepared yet (see arrows from S260 operation to S230 operation of FIG. 12). In this case, the processor 101 can wait until the next notification data is confirmed or perform another operation.

시각 '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 RAM 111b and ready to be transmitted. The storage apparatus 100 may generate notification data (NTI [5]) corresponding to the fifth transmission unit data D [5]. At time t8, the processor 101 can receive the fifth transmission unit data D [5] based on the notification data (NTI [5]). Further, the processor 101 can obtain information on the fifth transmission unit data D [5] by referring to the notification data (NTI [5]).

시각 '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 processor 101 refers to the notification data (NTI [1] to NTI [10]) to determine that all of the transmission unit data D [1] to D [10] have. Thus, the processor 101 can determine that the entire read operation has been completed (see S292 operation in FIG. 12). The processor 101 appropriately arranges the transmission unit data D [1] to D [10] by referring to the notification data NTI [1] to NTI [10] and acquires the read data DATA_R .

요약하면, 프로세서(101)로부터 읽기 요청이 수신된 경우, 스토리지 장치(100)는 읽기 데이터를 분할하여 생성되는 전송 단위 데이터들 각각을 램(111b)에 저장할 수 있다. 스토리지 장치(100)는 전송 단위 데이터들 각각의 준비에 응답하여 알림 데이터를 생성할 수 있다. 프로세서(101)는 알림 데이터의 생성에 응답하여, 준비된 전송 단위 데이터를 하나씩 수신할 수 있다. 전송 단위 데이터들 전부를 전송함으로써, 읽기 데이터(DATA_R)가 스토리지 장치(100)로부터 프로세서(101)로 전송될 수 있다. 전송 단위 데이터들 전부가 전송되었는지 여부는 프로세서(101)에 의해 관리될 수 있다.In summary, when a read request is received from the processor 101, the storage device 100 may store each of the transfer unit data generated by dividing the read data in the RAM 111b. The storage device 100 may generate notification data in response to the preparation of each of the transmission unit data. In response to the generation of the notification data, the processor 101 can receive the prepared transmission unit data one by one. By transmitting all of the transmission unit data, read data (DATA_R) can be transmitted from the storage device 100 to the processor 101. [ Whether or not all of the transmission unit data has been transmitted can be managed by the processor 101. [

도 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 processor 101 may combine data other than the invalid portion. Thereby, the processor 101 can acquire read data.

예로서, 도 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 processor 101 discards the invalid portion contained in the fifth transmission unit data D [5] based on the notification data corresponding to the fifth transmission unit data D [5], and transmits the modified fifth transmission unit data D [ (D [5] ') can be obtained. The processor 101 discards the invalid portion included in the tenth transmission unit data D [10] based on the notification data corresponding to the tenth transmission unit data D [10] (D [10] ') can be obtained.

프로세서(101)는 수정된 제 5 전송 단위 데이터(D[5]') 및 수정된 제 10 전송 단위 데이터(D[10]')를 다른 전송 단위 데이터들과 결합할 수 있다. 이로써, 프로세서(101)는 읽기 데이터를 획득할 수 있다. 최종적으로 획득된 읽기 데이터는 무효 부분 없이 프로세서(101)에 의해 의도된 데이터만을 포함할 수 있다.The processor 101 may combine the modified fifth transmission unit data D [5] 'and the modified tenth transmission unit data D [10]' with other transmission unit data. Thereby, the processor 101 can acquire read data. The finally obtained read data may contain only the data intended by the processor 101 without an invalid portion.

도 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 processor 101 may communicate with the device controller 112 of Figure 8 via a bus operating at a high speed, such as the bus 1230 of Figure 1 . For example, when the storage device 100 of FIG. 8 is implemented in the form of a DIMM and the processor 101 communicates with the device controller 112 in accordance with an interface protocol operating in DDR mode, ) Is recognized as a DIMM device, and a write operation and a read operation can be performed on the RAM 111b according to an interface protocol operating in the DDR mode. Therefore, according to the embodiment of the present invention, the storage apparatus 100 can exhibit high operation performance.

도 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 non-volatile memories 120 of FIG. 8 may include a non-volatile memory 121. FIG. The nonvolatile memory 121 may include a memory cell array 121a, an address decoder 121b, a control logic and voltage generator 121c, a page buffer 121d, and an input / output circuit 121e.

메모리 셀 어레이(121a)는 복수의 메모리 블록(BLK1 내지 BLKz)을 포함할 수 있다. 메모리 블록들 각각은 복수의 셀 스트링을 포함할 수 있다. 셀 스트링들 각각은 복수의 메모리 셀을 포함할 수 있다. 메모리 셀들은 각각 복수의 워드 라인(WL)과 연결될 수 있다. 메모리 셀들 각각은 1비트를 저장하는 단일 레벨 셀(Single Level Cell) 또는 적어도 2비트를 저장하는 멀티 레벨 셀(Multi Level Cell)을 포함할 수 있다.The memory cell array 121a may include a plurality of memory blocks BLK1 to BLKz. Each of the memory blocks may comprise a plurality of cell strings. Each of the cell strings may comprise a plurality of memory cells. Each of the memory cells may be connected to a plurality of word lines (WL). Each of the memory cells may include a single level cell storing one bit or a multi level cell storing at least two bits.

실시 예로서, 메모리 셀 어레이(121a)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 관련된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀 어레이들의 하나 이상의 물리 레벨들에 모놀리식으로(Monolithically) 형성될 수 있다. 메모리 셀들의 동작에 관련된 회로는 기판 내에 또는 기판 위에 배치될 수 있다. "모놀리식(Monolithical)"이라는 용어는, 3차원 메모리 어레이의 각 레벨의 층들이 3차원 메모리 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.As an example, the memory cell array 121a may include a three-dimensional memory array. The three-dimensional memory array may be monolithically formed on one or more physical levels of memory cell arrays having an active region disposed over a silicon substrate and circuits associated with operation of the memory cells. The circuitry associated with the operation of the memory cells may be disposed within or on the substrate. The term " Monolithical "means that layers of each level of the three-dimensional memory array are deposited directly on the lower level layers of the three-dimensional memory array.

실시 예로서, 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 address decoder 121b may be connected to the memory cell array 121a via word lines WL, string selection lines SSL, and ground selection lines GSL. The address decoder 121b can receive the storage address ADDR_S 'from the device controller 110 (see FIG. 8) and decode the received storage address ADDR_S'. The address decoder 121b may select at least one of the word lines WL based on the decoded storage address ADDR_S 'and may drive the selected at least one word line.

제어 로직 및 전압 발생기(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 voltage generator 121c may receive the storage command CMD_S 'and the control signal CTRL from the device controller 110. [ The control logic and voltage generator 121c can control the address decoder 121b, the page buffer 121d, and the input / output circuit 121e in response to the received signals. As an example, the control logic and voltage generator 121c may be configured such that the write data (DATA) provided from the device controller 110 is stored in the memory cell array 121a in response to the storage command CMD_S 'and the control signal CTRL The decoder 121b, the page buffer 121d, and the input / output circuit 121e so that the read data (DATA) stored in the memory cell array 121a can be read.

제어 로직 및 전압 발생기(121c)는 불휘발성 메모리(121)를 동작시키기 위해 이용되는 여러 전압을 생성할 수 있다. 예로서, 제어 로직 및 전압 발생기(121c)는 복수의 프로그램 전압, 복수의 패스 전압, 복수의 선택 읽기 전압, 복수의 비선택 읽기 전압, 복수의 소거 전압, 및 복수의 검증 전압을 생성할 수 있다. 제어 로직 및 전압 발생기(121c)는 생성된 전압들을 어드레스 디코더(121b)로 제공하거나 메모리 셀 어레이(121a)의 기판으로 제공할 수 있다.The control logic and voltage generator 121c may generate various voltages used to operate the non-volatile memory 121. [ By way of example, control logic and voltage generator 121c may generate a plurality of program voltages, a plurality of pass voltages, a plurality of selected read voltages, a plurality of unselected read voltages, a plurality of erase voltages, and a plurality of verify voltages . The control logic and voltage generator 121c may provide the generated voltages to the address decoder 121b or to the substrate of the memory cell array 121a.

페이지 버퍼(121d)는 복수의 비트 라인(BL)을 통해 메모리 셀 어레이(121a)와 연결될 수 있다. 페이지 버퍼(121d)는 제어 로직 및 전압 발생기(121c)의 제어에 따라, 입출력 회로(121e)로부터 제공된 쓰기 데이터(DATA)가 메모리 셀 어레이(121a)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(121d)는 제어 로직 및 전압 발생기(121c)의 제어에 따라 메모리 셀 어레이(121a)에 저장된 읽기 데이터를 읽고, 읽힌 데이터를 입출력 회로(121e)로 제공할 수 있다. 예로서, 페이지 버퍼(121d)는 입출력 회로(121e)로부터 페이지 단위로 데이터를 제공받거나, 메모리 셀 어레이(121a)로부터 페이지 단위로 데이터를 읽을 수 있다. 실시 예로서, 페이지 버퍼(121d)는 메모리 셀 어레이(121a)로부터 읽힌 데이터 또는 입출력 회로(121e)로부터 제공된 데이터를 임시로 저장하기 위한 데이터 래치들을 포함할 수 있다.The page buffer 121d may be connected to the memory cell array 121a through a plurality of bit lines BL. The page buffer 121d controls the bit lines BL so that the write data DATA provided from the input / output circuit 121e is stored in the memory cell array 121a under the control of the control logic and the voltage generator 121c . The page buffer 121d may read the read data stored in the memory cell array 121a and provide the read data to the input / output circuit 121e under the control of the control logic and the voltage generator 121c. For example, the page buffer 121d may receive data on a page basis from the input / output circuit 121e, or may read data on a page basis from the memory cell array 121a. As an embodiment, the page buffer 121d may include data latches for temporarily storing data read from the memory cell array 121a or data provided from the input / output circuit 121e.

입출력 회로(121e)는 장치 컨트롤러(110)와 같은 외부 장치로부터 쓰기 데이터(DATA)를 제공받고, 제공받은 쓰기 데이터(DATA)를 페이지 버퍼(121d)로 제공할 수 있다. 또는, 입출력 회로(121e)는 페이지 버퍼(121d)로부터 읽기 데이터(DATA)를 제공받고, 제공받은 읽기 데이터(DATA)를 장치 컨트롤러(110)와 같은 외부 장치로 제공할 수 있다. 예로서, 입출력 회로(121e)는 제어 신호(CTRL)와 동기하여 외부 장치와 데이터(DATA)를 교환할 수 있다.The input / output circuit 121e may receive write data (DATA) from an external device such as the device controller 110 and provide the supplied write data (DATA) to the page buffer 121d. Alternatively, the input / output circuit 121e may receive the read data (DATA) from the page buffer 121d and provide the received read data (DATA) to an external device such as the device controller 110. For example, the input / output circuit 121e can exchange data (DATA) with an external device in synchronization with the control signal CTRL.

도 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 memory cell array 121a of FIG. 16 includes a NAND flash memory. However, the present invention is not limited by Fig. Furthermore, other memory blocks may also be configured similar to the first memory block BLK1.

도 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 server system 7000 may include a plurality of server racks. FIG. 18 exemplarily shows one server rack 7100 among a plurality of server racks.

서버 랙들 각각은 적어도 하나의 스토리지 장치를 포함할 수 있다. 예로서, 서버 랙(7100)은 적어도 하나의 스토리지 장치를 포함할 수 있다. 스토리지 장치는 도 1 내지 도 17을 참조하여 설명된 본 발명의 실시 예들에 기초하여 구현될 수 있다. 도 18은 서버 랙(7100)에 포함되는 복수의 스토리지 장치 중에서 하나의 스토리지 장치(7200)를 보여준다.Each of the server racks may include at least one storage device. By way of example, the server rack 7100 may include at least one storage device. The storage device can be implemented based on the embodiments of the present invention described with reference to Figs. Fig. 18 shows one storage device 7200 among a plurality of storage devices included in the server rack 7100. Fig.

서버 랙(7100)은 스토리지 장치(7200)는 물론, 도 1에 나타낸 적어도 하나의 프로세서(1100), 하나 이상의 램 모듈 장치들(1210, 1212), 및 적어도 하나의 칩셋(1300)을 포함할 수 있다. 나아가, 서버 시스템(7000)은 도 1에 나타낸 GPU(1400), 입출력 장치(1500), 및 적어도 하나의 제 2 유형의 스토리지 장치(1600)를 포함할 수 있다.The server rack 7100 may include at least one processor 1100, one or more RAM module devices 1210 and 1212, and at least one chipset 1300, as shown in FIG. 1, as well as the storage device 7200 have. Further, the server system 7000 can include the GPU 1400, the input / output device 1500, and the at least one second type storage device 1600 shown in FIG.

스토리지 장치(7200)는 서버 랙(7100)에 포함되는 적어도 하나의 프로세서(1100)와 칩셋(1300) 없이 연결될 수 있다. 예로서, 스토리지 장치(7200)는 DIMM 형태로 구현되는 불휘발성 메모리 모듈일 수 있다. 이 예에서, 스토리지 장치(7200)는 프로세서(1100)와 전기적으로 연결되는 DIMM 소켓에 연결됨으로써 프로세서(1100)와 통신할 수 있다. 예로서, 스토리지 장치(7200)는 DIMM 스펙에 기초하여 정의되고 DDR 방식으로 동작하는 인터페이스 규약에 따라 프로세서(1100)와 통신할 수 있다.The storage device 7200 may be connected without the chipset 1300 to at least one processor 1100 included in the server rack 7100. By way of example, storage device 7200 may be a non-volatile memory module implemented in the form of a DIMM. In this example, the storage device 7200 can communicate with the processor 1100 by being coupled to a DIMM socket that is electrically coupled to the processor 1100. By way of example, storage device 7200 may communicate with processor 1100 in accordance with an interface protocol defined based on the DIMM specification and operating in DDR fashion.

스토리지 장치(7200)는 도 1 내지 도 17을 참조하여 설명된 본 발명의 실시 예들에 기초하여 구성되고 동작할 수 있다. 본 발명의 실시 예들에 따르면, 스토리지 장치(7200)는 빠른 속도로 동작하는 버스를 통해 프로세서(1100)와 통신할 수 있다. 본 발명의 실시 예들에 따르면, 스토리지 장치(7200)가 높은 동작 성능을 보일 수 있고, 서버 시스템(7000)의 스토리지 성능이 향상될 수 있다.The storage device 7200 may be configured and operative based on the embodiments of the invention described with reference to Figures 1-17. According to embodiments of the present invention, the storage device 7200 can communicate with the processor 1100 over a bus operating at a high speed. According to embodiments of the present invention, the storage apparatus 7200 can exhibit high operation performance, and the storage performance of the server system 7000 can be improved.

본 발명의 실시 예에 따른 회로들, 칩들, 장치들, 및 모듈들은 다양한 종류의 반도체 패키지를 이용하여 실장될 수 있다. 예로서, 본 발명의 실시 예에 따른 회로들, 칩들, 장치들, 및 모듈들은 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: RAM controller 111b: RAM
112: controller
120: Nonvolatile memories 121: Nonvolatile memories
121a: memory cell array 121b: address decoder
121c: Control logic and voltage generator
121d: page buffer 121e: input / output circuit
130: buffer memory
1000: computing system 1100: processor
1210, 1212: RAM module devices 1220, 1222: storage device of the first type
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.
제 1 항에 있어서,
상기 복수의 전송 단위 데이터는 상기 복수의 전송 단위 데이터 각각의 준비에 응답하여 상기 장치 컨트롤러의 제어에 따라 하나씩 상기 호스트로 전송되는 불휘발성 메모리 모듈.
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.
제 1 항에 있어서,
상기 장치 컨트롤러는 상기 복수의 전송 단위 데이터 각각의 준비를 나타내는 알림 데이터를 생성하도록 더 구성되고,
상기 복수의 전송 단위 데이터 각각은 상기 알림 데이터에 기초하여 상기 호스트로 전송되는 불휘발성 메모리 모듈.
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.
제 1 항에 있어서,
상기 장치 컨트롤러는 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.
제 5 항에 있어서,
상기 장치 컨트롤러는 상기 램에 알림 데이터를 저장하도록 더 구성되고,
상기 알림 데이터는 상기 복수의 전송 단위 데이터 각각의 상기 램에의 저장을 나타내고, 상기 복수의 전송 단위 데이터 각각의 상기 읽기 데이터에서의 위치에 관한 정보를 포함하는 스토리지 장치.
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.
제 6 항에 있어서,
상기 복수의 전송 단위 데이터 전부가 상기 호스트로 전송되었는지 여부는 상기 알림 데이터에 기초하여 상기 호스트에 의해 관리되는 스토리지 장치.
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.
제 6 항에 있어서,
상기 복수의 전송 단위 데이터 중 적어도 하나는 상기 읽기 데이터에 포함되지 않는 무효 부분을 포함하고,
상기 알림 데이터는 상기 무효 부분에 관한 정보를 더 포함하는 스토리지 장치.
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.
제 8 항에 있어서,
상기 무효 부분은 상기 알림 데이터에 기초하여 상기 호스트에 의해 버려지고,
상기 복수의 전송 단위 데이터에서 상기 무효 부분을 제외한 데이터가 상기 호스트에서 상기 읽기 데이터로 결합되는 스토리지 장치.
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.
KR1020150080732A 2015-06-08 2015-06-08 Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit KR102473197B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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