[go: up one dir, main page]

KR102473197B1 - 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
KR102473197B1
KR102473197B1 KR1020150080732A KR20150080732A KR102473197B1 KR 102473197 B1 KR102473197 B1 KR 102473197B1 KR 1020150080732 A KR1020150080732 A KR 1020150080732A KR 20150080732 A KR20150080732 A KR 20150080732A KR 102473197 B1 KR102473197 B1 KR 102473197B1
Authority
KR
South Korea
Prior art keywords
data
transmission unit
read
ram
processor
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020150080732A
Other languages
Korean (ko)
Other versions
KR20160144557A (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
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 non-volatile memory module including one or more non-volatile memories and a device controller. When a read request for read data stored in at least one of the nonvolatile memories is received from the host, the device controller transmits the prepared one of the plurality of transmission unit data to the host in response to the preparation of each of the plurality of transmission unit data forming the read data. send to A plurality of transmission unit data is transmitted to the host one by one regardless of the order of forming read data. According to the present invention, a RAM having a small capacity is employed, so that the area occupied by the RAM and the implementation cost of the device are reduced.

Figure R1020150080732
Figure R1020150080732

Description

읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치{NONVOLATILE MEMORY MODULE, STORAGE DEVICE, AND ELECTRONIC DEVICE TRANSMITTING READ DATA IN TRANSMISSION UNIT}Non-volatile memory module, storage device, and electronic device for transmitting read data in a transmission unit

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

개인용 컴퓨터(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, a computing system includes various components such as a main processor, a main memory device, a storage device, a graphic processor, and an input/output device. Further, a computing system includes several buses configured to connect components thereof.

컴퓨팅 시스템에 포함되는 구성 요소들 각각은 버스에 연결되어 서로 통신한다. 몇몇 구성 요소들을 연결하는 버스는 다른 몇몇 구성 요소들을 연결하는 버스와 다를 수 있다. 이 경우, 한 버스에 의해 지원되는 대역폭(Bandwidth)은 다른 버스에 의해 지원되는 대역폭과 다를 수 있다. 높은 대역폭을 갖는 버스는 낮은 대역폭을 갖는 버스보다 빠르게 동작할 수 있다.Each of the components included in the computing system is connected to a bus to communicate with each other. The bus connecting some components may be different from the bus connecting some other components. In this case, a bandwidth supported by one bus may be different from a bandwidth supported by another bus. A bus with a high bandwidth can operate faster than a bus with a lower bandwidth.

예로서, 메인 메모리 장치 및 그래픽 프로세서는 빠른 속도로 동작하는 버스를 통해 메인 프로세서와 연결될 수 있다. 반면, 스토리지 장치 및 입출력 장치는 상대적으로 느린 속도로 동작하는 버스를 통해 메인 프로세서와 연결될 수 있다. 즉, 여러 버스는 서로 다른 성능으로 동작할 수 있다.As an example, the main memory device and the graphics processor may be connected to the main processor through a high-speed bus. On the other hand, the storage device and the input/output device may be connected to the main processor through a bus operating at a relatively low speed. That is, different buses can operate with different capabilities.

근래, 스토리지 장치에 관한 기술이 빠르게 발전하고 있다. SSD(Solid State Drive)와 같은 반도체 스토리지 매체(Medium)가 HDD(Hard Disk Drive)와 같은 기계적인 스토리지 매체를 대체함에 따라, 스토리지 장치의 성능 및 신뢰성이 향상되고 있다. 그런데, 스토리지 장치가 상대적으로 느린 속도로 동작하는 버스를 통해 메인 프로세서와 연결되는 경우, 스토리지 장치의 동작 성능이 저하될 수 있다. 특히, SSD와 같이 높은 동작 성능을 갖는 스토리지 장치가 느린 속도로 동작하는 버스에 연결되는 경우, 스토리지 장치의 성능을 최대화하기 어렵다.In recent years, technology related to storage devices is rapidly developing. As a semiconductor storage medium such as a solid state drive (SSD) replaces a mechanical storage medium such as a hard disk drive (HDD), the performance and reliability of storage devices are improving. However, when the storage device is connected to the main processor through a bus operating at a relatively slow speed, operating performance of the storage device may deteriorate. In particular, when a storage device having high operating 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)이 제공된다.In order to solve the above problem and maximize the performance of the storage device, a storage device configured to communicate with a host through a high-speed bus is provided. Furthermore, a scheme of a read operation for implementing a storage device at low cost and efficiently operating the storage device is provided.

본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈은 하나 이상의 불휘발성 메모리들 및 장치 컨트롤러를 포함할 수 있다. 호스트로부터 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 수신된 경우, 장치 컨트롤러는 읽기 데이터를 형성하는 복수의 전송 단위 데이터 각각의 준비에 응답하여 복수의 전송 단위 데이터 중 준비된 것을 호스트로 전송할 수 있다. 복수의 전송 단위 데이터 각각은 읽기 데이터를 형성하는 순서에 관계없이 호스트로 전송될 수 있다.A nonvolatile memory module according to an embodiment of the present invention may include one or more nonvolatile memories and a device controller. When a read request for read data stored in at least one of the nonvolatile memories is received from the host, the device controller transmits the prepared one of the plurality of transmission unit data to the host in response to the preparation of each of the plurality of transmission unit data forming the read data. can be sent to Each of the plurality of transmission unit data may be transmitted to the host regardless of the order of forming read data.

본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈에서, 장치 컨트롤러는 복수의 전송 단위 데이터 각각의 준비를 나타내는 알림 데이터를 생성할 수 있다. 복수의 전송 단위 데이터 각각은 알림 데이터에 기초하여 호스트로 전송될 수 있다.In the nonvolatile memory module according to an embodiment of the present invention, the device controller may generate notification data indicating preparation of each of a plurality of transmission unit data. Each of the plurality of transmission unit data may be transmitted to the host based on notification data.

본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈에서, 복수의 전송 단위 데이터 전부가 호스트로 전송되었는지 여부는 호스트에 의해 관리될 수 있다.In the nonvolatile memory module according to an embodiment of the present invention, whether all of the plurality of transmission unit data is transmitted to the host may be managed by the host.

본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈에서, 장치 컨트롤러는 DIMM 스펙에 의해 정의되는 인터페이스 규약에 따라 동작할 수 있다. 나아가, 읽기 요청에 대응하는 커맨드 신호는 DIMM 스펙에서 정의되는 데이터 입출력 핀을 통해 수신되고, 복수의 전송 단위 데이터 각각에 대응하는 데이터 신호는 데이터 입출력 핀을 통해 호스트로 전송될 수 있다.In a nonvolatile memory module according to an embodiment of the present invention, a device controller may operate according to interface rules defined by DIMM specifications. Furthermore, a command signal corresponding to the read request may be received through a data input/output pin defined in the DIMM specification, and a data signal corresponding to each of a plurality of transmission unit data may 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 nonvolatile memories and a device controller. The device controller may transmit read data stored in at least one of the nonvolatile memories to the host in response to a request from the host. A 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 a host. Based on the storage command and storage address provided from the host and stored in the RAM, the read data is read from the location of the nonvolatile memories corresponding to the storage address, and each of a plurality of transfer unit data generated by dividing the read data is stored in the RAM. The physical layer and non-volatile memories may be controlled to be temporarily stored. The device controller may transmit read data by transmitting each of a plurality of transmission unit data to the host.

본 발명의 다른 실시 예에 따른 스토리지 장치에서, 장치 컨트롤러는 램에 알림 데이터를 저장할 수 있다. 알림 데이터는 복수의 전송 단위 데이터 각각의 램에의 저장을 나타내고, 복수의 전송 단위 데이터 각각의 읽기 데이터에서의 위치에 관한 정보를 포함할 수 있다.In a storage device according to another embodiment of the present disclosure, the device controller may store notification data in a RAM. The notification data indicates storage of each of a plurality of transmission unit data in RAM, and may include information about a position of each of a plurality of transmission unit data in read data.

본 발명의 다른 실시 예에 따른 스토리지 장치에서, 복수의 전송 단위 데이터 중 적어도 하나는 읽기 데이터에 포함되지 않는 무효 부분을 포함할 수 있다. 이 실시 예에서, 알림 데이터는 무효 부분에 관한 정보를 더 포함할 수 있다. 나아가, 무효 부분은 알림 데이터에 기초하여 호스트에 의해 버려지고, 복수의 전송 단위 데이터에서 무효 부분을 제외한 데이터가 호스트에서 읽기 데이터로 결합될 수 있다.In a storage device according to another embodiment of the present invention, at least one of a plurality of transmission unit data may include an invalid part not included in read data. In this embodiment, the notification data may further include information about the invalid part. Furthermore, the invalid part may be discarded by the host based on the notification data, and data excluding the invalid part from the plurality of transmission unit data may be combined into read data by 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 for read data stored in the storage device to the storage device. In response to the read request, the storage device may prepare to transmit each of a 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 may receive a prepared one of a plurality of transmission unit data with reference to notification data.

본 발명의 실시 예에 따르면, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위(Transmission Unit) 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(RAM; Random Access Memory)이 채용될 수 있다. 따라서, 램에 의해 차지되는 면적 및 스토리지 장치의 구현 비용이 줄어들 수 있다. 나아가, 읽기 동작의 완료를 호스트에서 관리함으로써, 스토리지 장치의 동작 부하(Work Load)가 줄어들 수 있다.According to an embodiment of the present invention, instead of waiting until the read data is completely prepared, transmission unit data forming the read data are transmitted as soon as they are prepared, so that random access memory (RAM) having a small capacity is obtained. ) can be employed. Accordingly, the area occupied by the RAM and the implementation cost of the storage device may be reduced. Furthermore, by managing the completion of the read operation in the host, the work load of the storage device may 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.
FIG. 2 is a conceptual diagram showing software layers of the computing system of FIG. 1 .
3 to 7 are block diagrams illustrating exemplary embodiments of the configuration of the storage device of FIG. 1 .
FIG. 8 is a block diagram illustrating a storage system including the storage device of FIG. 1 .
FIG. 9 is a conceptual diagram showing the configuration of the RAM of FIG. 8 and communication between the processor, RAM, and the controller.
10 is a flowchart illustrating a write operation of the storage device of FIG. 8 .
11 is a conceptual diagram illustrating a read operation of the storage device of FIG. 8 .
12 is a flowchart illustrating a read operation of the storage device of FIG. 8 .
13 is a conceptual diagram illustrating transmission of transmission unit data and notification data during read operations of FIGS. 11 and 12 .
14 is a conceptual diagram illustrating a process of transmitting transmission unit data from a storage device to a host side with reference to notification data of FIG. 13 according to the read operations of FIGS. 11 and 12 .
15 is a conceptual diagram illustrating a process of acquiring read data by discarding invalid parts and combining valid parts from transmission unit data transmitted according to the read operations of FIGS. 11 and 12 .
FIG. 16 is a block diagram showing one of the nonvolatile memories of FIG. 8 .
FIG. 17 is a conceptual diagram showing one memory block of the memory cell array of FIG. 16 .
18 is a conceptual diagram illustrating a server system including a storage device according to an embodiment of the present invention.

전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.All of the foregoing characteristics and the following detailed description are exemplary to help explain and understand the present invention. That is, the present invention may be embodied in other forms without being limited to this embodiment. The following embodiments are merely examples for completely disclosing the present invention, and are descriptions for conveying the present invention to those skilled in the art to which the present invention pertains. Therefore, in the case where there are several methods for implementing the components of the present invention, it is necessary to clarify that the present invention can be implemented with any of these specific methods or those identical thereto.

본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.In this specification, if there is a reference that a certain component includes specific elements or a certain process includes specific steps, it means that other elements or other steps may be further included. That is, the terms used in this specification are only for describing specific embodiments, and are not intended to limit the concept of the present invention. Furthermore, the examples described to aid understanding of the invention include complementary embodiments thereof.

본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.Terms used herein have meanings commonly understood by those skilled in the art to which the present invention belongs. Commonly used terms should be interpreted with a consistent meaning according to the context of the present specification. In addition, terms used in this specification should not be interpreted in an overly idealistic or formal sense, unless the meaning is clearly defined. Hereinafter, embodiments of the present invention will be described through the accompanying drawings.

도 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. Referring to FIG. 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, and a chipset ( Chipset; 1300), GPU (Graphic Processing Unit; 1400), input/output device 1500, and second type storage device 1600.

컴퓨팅 시스템(1000)은 전자 장치로서 구현될 수 있다. 예로서, 컴퓨팅 시스템(1000)은 개인용 컴퓨터(Personal Computer), 노트북, 태블릿, 워크스테이션(Workstation), 블레이드 서버(Blade Server), 네트워크 스토리지(Network Storage) 등과 같은 다양한 전자 장치 중 적어도 하나를 포함할 수 있으나, 본 발명은 이 예에 의해 제한되지 않는다.Computing system 1000 may be implemented as an electronic device. For example, the computing system 1000 may include at least one of various electronic devices such as a personal computer, a laptop, a tablet, a workstation, a blade server, and 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 overall operations of the computing system 1000 . The processor 1100, as a host, includes RAM module devices 1210 and 1212, first type storage devices 1220 and 1222, GPU 1400, input/output device 1500, and second type storage devices 1220 and 1222. 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 logical operations to operate the computing system 1000 . The processor 1100 may include one or more processor cores configured to perform calculations. 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 application specific integrated circuits (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 processed or to be 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 includes volatile memory such as dynamic random access memory (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM), phase-change RAM (PRAM), and MRAM ( It may include at least one of nonvolatile memories such as magneto-resistive RAM), resistive RAM (ReRAM), and 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 power supply. The first type of storage devices 1220 and 1222 may permanently or semi-permanently store data without power supply. For example, each of the first type storage devices 1220 and 1222 may include at least one of a flash memory, PRAM, MRAM, ReRAM, and nonvolatile memory such as FRAM.

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

램 모듈 장치들(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 storage devices 1220 and 1222 may be connected to the processor 1100 through a bus 1230 operating at high speed. For example, the bus 1230 may support a device implemented in the form of a dual inline memory module (DIMM) and employ an interface protocol operating in a double data rate (DDR) method. In this example, each of the first type storage devices 1220 and 1222 may be implemented as a "non-volatile memory module". When the Northbridge chipset is embedded in the processor 1100, the RAM module devices 1210 and 1212 and the first type storage devices 1220 and 1222 connect to the processor via the bus 1230 ( 1100) and can communicate directly.

도 1에서, 컴퓨팅 시스템(1000)이 두 개의 램 모듈 장치들(1210, 1212) 및 두 개의 제 1 유형의 스토리지 장치들(1220, 1222)을 포함하는 것으로 도시되었다. 그러나, 램 모듈 장치들의 개수 및 제 1 유형의 스토리지 장치들의 개수는 컴퓨팅 시스템(1000)의 구성 및 버스(1230)의 구성에 따라 다양하게 변경 또는 수정될 수 있다.In FIG. 1 , computing system 1000 is shown as including two RAM module devices 1210 and 1212 and two first type storage devices 1220 and 1222 . However, the number of RAM module devices and the number of storage devices of the first type may be variously changed or modified according to 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 . For example, the chipset 1300 may connect a graphic processing unit (GPU) 1400 , an input/output device 1500 , and a second type storage device 1600 to the processor 1100 . As an example, the chipset 1300 may include a Southbridge chipset.

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

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

제 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 power supply. For example, the second type of storage device 1600 may include a storage medium such as a solid state drive (SSD) or hard disk drive (HDD).

제 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 may be connected to the processor 1100 through a bus operating at a relatively low speed. For example, when the second type storage device 1600 includes an SSD, a bus operating at a low speed may degrade performance of the second type storage device 1600 . Since the SSD includes its own processor and fast operating semiconductor nonvolatile memory, the SSD 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 and 1222 connected to the processor 1100 through the bus 1230 operating at high speed may exhibit high operating performance. That is, a storage device including a semiconductor nonvolatile memory such as an SSD may operate with higher performance when implemented in the form of the first type of storage devices 1220 and 1222 .

이하에서, 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결되는 제 1 유형의 스토리지 장치들(1220, 1222)의 구성 및 동작이 설명될 것이다. 이하에서 언급될 "스토리지 장치"는 빠른 속도로 동작하는 버스(1230)를 통해 프로세서(1100)와 연결되는 제 1 유형의 스토리지 장치이다. 빠른 속도로 동작하는 버스(1230)는 DIMM 스펙(Specification)에 기초하여 정의되는 인터페이스 규약을 채용한 것으로 가정된다. 그러나, 이 가정은 본 발명의 이해를 돕기 위한 것이고, 본 발명은 이 가정에 의해 제한되지 않는다. 여기서, DIMM 스펙은 DIMM 형태로 구현되는 장치의 구성 및 동작에 관한 스펙을 의미한다.Hereinafter, configurations and operations of the first type storage devices 1220 and 1222 connected to the processor 1100 through the bus 1230 operating at high speed will be described. A “storage device” to be mentioned below is a first type of storage device connected to the processor 1100 through a bus 1230 operating at a high speed. It is assumed that the bus 1230 operating at high speed adopts an interface protocol defined based on the DIMM specification. However, this assumption is for facilitating understanding of the present invention, and the present invention is not limited by this assumption. Here, the DIMM specification refers to specifications related to 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)에 관한 소프트웨어 또는 펌웨어가 구동될 수 있다.FIG. 2 is a conceptual diagram showing software layers of the computing system of FIG. 1 . In the processor 1100 of FIG. 1 , software related to a host layer (HL) may be driven. Furthermore, in the storage device of FIG. 1 (ie, the storage device 1220 or 1222 of the “first type”), software or firmware related to a storage layer (SL) may be driven.

호스트 계층(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 the DIMM layer DL1, and the first storage layer SL1 may include the DIMM layer DL2. In this example, the host layer HL and the storage layer SL may physically access each other through the DIMM layers DL1 and DL2 based on physical addresses. For example, the host layer (HL) and the storage layer (SL) may communicate through 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) 등과 같은 관리 동작이 수행될 수 있다.Although described in more detail with reference to FIG. 8 , the first storage layer SL1 may include RAM RM. The second storage layer SL2 may include 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. Furthermore, management operations such as garbage collection and wear leveling of the nonvolatile memory NM may be performed under the control of the control layer CL.

본 발명의 몇몇 실시 예에서, DIMM 계층(DL2)은 램(RM)을 제어하기 위해 이용되는 램 커맨드 및 램 어드레스를 호스트 계층(HL)으로부터 제공받을 수 있다. 램(RM)은 램 커맨드 및 램 어드레스에 따라, 불휘발성 메모리(NM)를 제어하기 위해 이용되는 스토리지 커맨드 및 스토리지 어드레스를 임시로 저장할 수 있다. 뿐만 아니라, 램(RM)은 불휘발성 메모리(NM)에 저장될 쓰기 데이터 및/또는 불휘발성 메모리(NM)로부터 읽힌 읽기 데이터를 임시로 저장할 수 있다. 이 실시 예는 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.In some embodiments of the present invention, the DIMM layer DL2 may receive a RAM command and a RAM address used to control the RAM RM from the host layer HL. The RAM RM may temporarily store a storage command and a storage address used to control 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 .

제 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 to interface with the RAM RM. The second host layer HL2 may include an Operating System (OS) to operate the host layer HL. An operating system (OS) may control and manage overall operations of the computing system 1000 of FIG. 1 . For example, the operating system (OS) may process various operations such as program execution, access to files, driving of applications (AP), control of the storage layer (SL), and the like. The second host layer HL2 may execute one or more applications (AP) to provide various services to users of the host layer HL.

운영 체제(OS) 및/또는 어플리케이션(AP)의 동작에 따라, 호스트 계층(HL)은 불휘발성 메모리(NM)에 저장될 쓰기 데이터를 스토리지 계층(SL)에 제공할 수 있다. 또는, 스토리지 계층(SL)은 불휘발성 메모리(NM)에 저장된 데이터 중에서 운영 체제(OS) 및/또는 어플리케이션(AP)의 동작에 이용되는 읽기 데이터를 호스트 계층(HL)으로 제공할 수 있다. 제 2 호스트 계층(HL2) 및 제 2 스토리지 계층(SL2) 각각은 논리 어드레스(Logical Address)에 기초하여 상대방을 논리적으로 인식할 수 있다.According to the operation of the operating system (OS) and/or 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 read data used for operation of an operating system (OS) and/or an application (AP) among data stored in the nonvolatile memory (NM) to the host layer (HL). Each of the second host layer HL2 and the second storage layer SL2 may logically recognize each other 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)와 통신할 수 있다.FIG. 3 is a block diagram illustrating an exemplary embodiment of the configuration of the storage device of FIG. 1 . At least one of the first type storage devices 1220 and 1222 of FIG. 1 may include the storage device 2000 of FIG. 3 . For example, the storage device 2000 may be a nonvolatile memory module implemented in the form of a load reduced DIMM (LRDIMM). In this example, the storage device 2000 is connected to the DIMM socket of the computing system 1000 of FIG. 1 and can communicate with the processor 1100 of FIG. 1 according to interface rules defined based on DIMM specifications.

도 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 nonvolatile memories 2200, a buffer memory 2300, and a serial presence detect (SPD) chip 2500. have. The device controller 2100 may control and manage overall operations of the storage device 2000 .

불휘발성 메모리들(2200)은 장치 컨트롤러(2100)의 제어에 따라, 전원 공급에 관계없이 데이터를 저장할 수 있다. 예로서, 불휘발성 메모리들(2200)은 하나의 칩 또는 패키지로 구현될 수 있다. 또는, 불휘발성 메모리들(2200) 각각은 별개의 칩, 패키지, 장치, 또는 모듈로 구현될 수 있다. 버퍼 메모리(2300)는 장치 컨트롤러(2100)의 제어에 따라 불휘발성 메모리들(2200)에 저장될 쓰기 데이터 또는 불휘발성 메모리들(2200)로부터 읽힌 읽기 데이터를 버퍼링할 수 있다.The nonvolatile memories 2200 may store data regardless of power supply under the control of the device controller 2100 . For example, the nonvolatile memories 2200 may be implemented as a single chip or package. Alternatively, each of the nonvolatile memories 2200 may be implemented as a separate chip, package, device, or module. The buffer memory 2300 may buffer write data to be stored in the nonvolatile memories 2200 or read data read from the nonvolatile 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 may receive a RAM command CMD_R, a RAM address ADDR_R, and a clock signal CLK from the processor 1100 through a control signal line. The RAM command CMD_R and the RAM address ADDR_R may be used to control a read/write operation of the RAM 2100b. The device controller 2100 may exchange a data signal DQ and a data strobe signal DQS with the processor 1100 through a data signal line separate from the control signal line.

본 발명의 실시 예에서, 데이터 신호(DQ)는 불휘발성 메모리들(2200)에 관한 읽기/쓰기 동작을 제어하기 위해 이용되는 스토리지 커맨드 및 스토리지 어드레스를 포함할 수 있다. 나아가, 데이터 신호(DQ)는 불휘발성 메모리들(2200)에 저장될 쓰기 데이터 또는 불휘발성 메모리들(2200)로부터 읽힌 읽기 데이터를 포함할 수 있다. 몇몇 경우, 데이터 신호(DQ)는 쓰기 데이터 및 읽기 데이터에 관한 상태 정보(Status Information)를 포함할 수 있다.In an embodiment of the inventive concept, the data signal DQ may include a storage command and a storage address used to control read/write operations of the nonvolatile memories 2200 . Furthermore, the data signal DQ may include write data to be stored in the nonvolatile memories 2200 or read data read from the nonvolatile memories 2200 . In some cases, the data signal DQ may include status information about write data and read data.

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

장치 컨트롤러(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 may be configured and operate as will be described with reference to FIGS. 8 to 15 . As an embodiment, when a read request for read data stored in at least one of the nonvolatile memories 2200 is provided from a host (eg, the processor 1100 of FIG. 1 ), the read data is read under the control of the device controller 2100 . Each of a plurality of 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, the RAM 2100b having a small capacity may be employed by transmitting each of the transmission unit data forming the read data as soon as they are prepared instead of waiting until the read data is completely prepared. Accordingly, the area occupied by the RAM 2100b and the implementation cost of the storage device 2000 may be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(2000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(2000)의 동작 부하(Work Load)가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an embodiment, completion of a read operation (ie, transfer of all transfer unit data) may be managed by a host (eg, the processor 1100 of FIG. 1 ) instead of the storage device 2000 . As a result, a work load of the storage device 2000 may be reduced. Embodiments of the present invention will be described in more detail with reference to FIGS. 8 to 15 .

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 about characteristics of the storage device 2000 . For example, the SPD chip 2500 may store initialization information or device information such as a module type, module configuration, storage capacity, line arrangement, operating environment, and the like of the storage device 2000 . For example, the SPD chip 2500 may include a programmable read-only memory (eg, electrically erasable programmable read only memory (EEPROM), etc.).

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

실시 예로서, SPD 칩(2500)은 사이드-밴드(Side-band) 인터페이스 규약에 기초하여 프로세서(1100)와 통신할 수 있다. 이 실시 예에서, SPD 칩(2500)과 프로세서(1100)는 사이드-밴드 인터페이스 규약을 지원하는 통신 채널을 통해 사이드-밴드 신호(SBS)를 주고받을 수 있다. 나아가, SPD 칩(2500)은 사이드-밴드 인터페이스 규약에 기초하여 장치 컨트롤러(2100)와 통신할 수 있다. 예로서, 사이드-밴드 인터페이스 규약은 I2C(Inter-Integrated Circuit) 또는 UART(Universal Asynchronous Receiver/Transmitter) 스펙에 기초하여 정의되는 물리 계층을 지원할 수 있다.As an embodiment, the SPD chip 2500 may communicate with the processor 1100 based on a side-band interface protocol. In this embodiment, the SPD chip 2500 and the processor 1100 may transmit and receive a side-band signal (SBS) through a communication channel supporting the side-band interface protocol. Further, the SPD chip 2500 may communicate with the device controller 2100 based on side-band interface protocols. As an example, the side-band interface protocol may support a physical layer defined based on an Inter-Integrated Circuit (I2C) or Universal Asynchronous Receiver/Transmitter (UART) specification.

도 4는 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 4의 스토리지 장치(3000)를 포함할 수 있다. 예로서, 스토리지 장치(3000)는 RDIMM(Registerd DIMM) 형태로 구현되는 불휘발성 메모리 모듈일 수 있다. 이 예에서, 스토리지 장치(3000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되고, DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.FIG. 4 is a block diagram illustrating an exemplary embodiment of the configuration of the storage device of FIG. 1 . At least one of the first type storage devices 1220 and 1222 of FIG. 1 may include the storage device 3000 of FIG. 4 . For example, the storage device 3000 may be a nonvolatile memory module implemented in the form of a Registered DIMM (RDIMM). In this example, the storage device 3000 is connected to the DIMM socket of the computing system 1000 of FIG. 1 and can communicate with the processor 1100 of FIG. 1 according to interface rules defined based on DIMM specifications.

도 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 nonvolatile 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 may be configured and operate as will be described with reference to FIGS. 8 to 15 .

실시 예로서, 호스트(예컨대, 도 1의 프로세서(1100))로부터 불휘발성 메모리들(3200) 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 제공된 경우, 장치 컨트롤러(3100)의 제어에 따라, 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 램(3100b)에 임시로 저장된 후 데이터 신호(DQ)로서 출력될 수 있다. 이 실시 예에서, 읽기 데이터가 완전히 준비될 때까지 기다리는 대신 읽기 데이터를 형성하는 전송 단위 데이터들 각각을 준비하는 대로 전송함으로써, 적은 용량을 갖는 램(3100b)이 채용될 수 있다. 따라서, 램(3100b)에 의해 차지되는 면적 및 스토리지 장치(3000)의 구현 비용이 줄어들 수 있다.As an embodiment, when a read request for read data stored in at least one of the nonvolatile memories 3200 is provided from a host (eg, the processor 1100 of FIG. 1 ), the read data is read under the control of the device controller 3100 . 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, the RAM 3100b having a small capacity may be employed by transmitting each of the transmission unit data forming the read data as soon as they are prepared instead of waiting until the read data is completely prepared. Accordingly, the area occupied by the RAM 3100b and the implementation cost of the storage device 3000 may be reduced.

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(3000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(3000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an embodiment, completion of a read operation (ie, transfer of all transfer unit data) may be managed by a host (eg, the processor 1100 of FIG. 1 ) instead of the storage device 3000 . Accordingly, an operating load of the storage device 3000 may be reduced. Embodiments of the present invention will be described in more detail with reference to FIGS. 8 to 15 .

장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 버퍼 메모리(3300), 및 SPD 칩(3500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 버퍼 메모리(2300), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(3100), 램(3100b), 불휘발성 메모리들(3200), 버퍼 메모리(3300), 및 SPD 칩(3500)에 관한 중복되는 설명들은 생략될 것이다.The device controller 3100, RAM 3100b, nonvolatile memories 3200, buffer memory 3300, and SPD chip 3500 are the device controller 2100, RAM 2100b, and nonvolatile memories of FIG. 2200, the buffer memory 2300, 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 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 may exchange a data signal DQ and a data strobe signal DQS with the processor 1100 . The data buffer circuit 3400 may provide a received signal to the device controller 3100 or receive a signal to be transmitted from the device controller 3100 . That is, the data buffer circuit 3400 may buffer data between the processor 1100 and the device controller 3100 . For example, the data buffer circuit 3400 may be used to synchronize data transmission timing.

예로서, 데이터 버퍼 회로(3400)는 하나 이상의 데이터 버퍼들을 포함할 수 있다. 데이터 버퍼들 각각은 대응하는 데이터 신호 선로를 통해 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 제공받거나 출력할 수 있다. 데이터 버퍼들은 장치 컨트롤러(3100)의 제어에 따라 동작할 수 있다.As an example, the 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 through 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)와 통신할 수 있다.FIG. 5 is a block diagram illustrating an exemplary embodiment of the configuration of the storage device of FIG. 1 . At least one of the first type storage devices 1220 and 1222 of FIG. 1 may include the storage device 4000 of FIG. 5 . As an example, the storage device 4000 may be implemented as a nonvolatile memory module connected to a DIMM socket of the computing system 1000 of FIG. 1 . In this example, the storage device 4000 may communicate with the processor 1100 of FIG. 1 according to an interface protocol defined based on DIMM specifications.

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

예로서, 불휘발성 메모리들(4200)은 EEPROM, 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM 중 적어도 하나를 포함할 수 있다. 도 5에서, 스토리지 장치(4000)가 DRAM들(4600)을 포함하는 것으로 도시되었다. 그러나, 다른 몇몇 실시 예에서, DRAM들(4600)은 SRAM, SDRM, PRAM, MRAM, ReRAM, 및 FRAM과 같이 랜덤하게 접근되는 다른 메모리들로 대체될 수 있다.For example, the nonvolatile memories 4200 may include at least one of EEPROM, flash memory, PRAM, MRAM, ReRAM, and FRAM. In FIG. 5 , the storage device 4000 is illustrated as including DRAMs 4600 . However, in some other embodiments, DRAMs 4600 may be replaced with other randomly accessed memories 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 nonvolatile memories 4200 may be configured and operate as will be described with reference to FIGS. 8 to 15 . As an embodiment, when a read request for read data stored in at least one of the nonvolatile memories 4200 is provided from a host (eg, the processor 1100 of FIG. 1 ), the read data is read under the control of the device controller 4100 . Each of a plurality of transmission unit data generated by dividing data may be temporarily stored in the RAM 4100b and then output as a data signal DQ.

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

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(4000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(4000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an embodiment, completion of a read operation (ie, transfer of all transfer unit data) may be managed by a host (eg, the processor 1100 of FIG. 1 ) instead of the storage device 4000 . As a result, an operating load of the storage device 4000 may be reduced. Embodiments of the present invention will be described in more detail with reference to FIGS. 8 to 15 .

장치 컨트롤러(4100), 램(4100b), 불휘발성 메모리들(4200), 및 SPD 칩(4500)은 도 3의 장치 컨트롤러(2100), 램(2100b), 불휘발성 메모리들(2200), 및 SPD 칩(2500)과 각각 동일 또는 유사하게 구성되고 동작할 수 있다. 설명의 편의를 위해, 장치 컨트롤러(4100), 램(4100b), 불휘발성 메모리들(4200), 및 SPD 칩(4500)에 관한 중복되는 설명들은 생략될 것이다.The device controller 4100, RAM 4100b, nonvolatile memories 4200, and SPD chip 4500 are the device controller 2100, RAM 2100b, nonvolatile memories 2200, and SPD chip 4500 of FIG. Each of the chips 2500 may be configured and operated in the same or similar manner. 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 selectively transfers data included in the data signal DQ and the data strobe signal DQS to the nonvolatile memories 4200 or the DRAMs 4600 based on the signal received from the processor 1100. can be provided with Alternatively, the device controller 4100 selectively converts data stored in the nonvolatile memories 4200 or the DRAMs 4600 into a data signal DQ and a data strobe signal (based on signals received from the processor 1100). DQS). For example, the processor 1100 performs a RAM command (CMD_R), a RAM address (ADDR_R), a storage command, a storage address, and a separate signal to the nonvolatile memories 4200 or DRAMs 4600 based on at least one. Optional access.

도 6은 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 6의 스토리지 장치(5000)를 포함할 수 있다. 예로서, 스토리지 장치(5000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되는 불휘발성 메모리 모듈로 구현될 수 있다. 이 예에서, 스토리지 장치(5000)는 DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.FIG. 6 is a block diagram illustrating an exemplary embodiment of the configuration of the storage device of FIG. 1 . At least one of the first type of storage devices 1220 and 1222 of FIG. 1 may include the storage device 5000 of FIG. 6 . As an example, the storage device 5000 may be implemented as a nonvolatile memory module connected to a DIMM socket of the computing system 1000 of FIG. 1 . In this example, the storage device 5000 may communicate with the processor 1100 of FIG. 1 according to an interface protocol defined based on DIMM specifications.

도 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 nonvolatile memories 5200, and one or more DRAMs 5600. Nonvolatile memories 5200 may be used as storage media of the computing system 1000 . DRAMs 5600 may be used as main memory of computing system 1000 . The nonvolatile memories 5200 and the DRAMs 5600 may be configured and operated in the same or similar manner to the nonvolatile memories 4200 and the DRAMs 4600 of FIG. 5 , respectively. For convenience of description, duplicate descriptions of the nonvolatile memories 5200 and the 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 the nonvolatile memories 5200 may be configured and operate as will be described with reference to FIGS. 8 to 15 . As an embodiment, when a read request for read data stored in at least one of the nonvolatile memories 5200 is provided from a host (eg, the processor 1100 of FIG. 1 ), the read data is read under the control of the device controller 5100 . Each of a plurality of transmission unit data generated by dividing data may be temporarily stored in the RAM 5100b and then output as a data signal DQ.

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

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(5000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(5000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an embodiment, completion of a read operation (ie, transfer of all transfer unit data) may be managed by a host (eg, the processor 1100 of FIG. 1 ) instead of the storage device 5000 . Accordingly, an operation load of the storage device 5000 may be reduced. Embodiments of the present invention will be described in more detail with reference to FIGS. 8 to 15 .

장치 컨트롤러(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 may be configured and operated in the same or similar manner as the device controller 2100, the RAM 2100b, and the SPD chip 2500 of FIG. 3, respectively. . The data buffer circuit 5400 may have the same or similar configuration and operation as the data buffer circuit 3400 of FIG. 4 . 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)에 선택적으로 접근할 수 있다.The device controller 5100 may control the nonvolatile memories 5200 and the DRAMs 5600 based on a signal received from the processor 1100 . The processor 1100 may selectively access the nonvolatile memories 5200 or the DRAMs 5600 .

예로서, 프로세서(1100)가 불휘발성 메모리들(5200)에 데이터를 저장하는 경우, 저장될 데이터는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 장치 컨트롤러(5100)로 제공될 수 있다. 장치 컨트롤러(5100)는 제공받은 데이터를 불휘발성 메모리들(5200)로 제공할 수 있다. 예로서, 프로세서(1100)가 불휘발성 메모리들(5200)로부터 데이터를 읽는 경우, 장치 컨트롤러(5100)는 불휘발성 메모리들(5200)로부터 읽힌 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)로서 데이터 버퍼 회로(5400)를 통해 프로세서(1100)로 제공할 수 있다.For example, when the processor 1100 stores data in the nonvolatile memories 5200, the data to be stored is a data signal DQ and a data strobe signal DQS through the data buffer circuit 5400 to the device controller ( 5100) may be provided. The device controller 5100 may provide the provided data to the nonvolatile memories 5200 . For example, when the processor 1100 reads data from the nonvolatile memories 5200, the device controller 5100 converts the data read from the nonvolatile memories 5200 to a data signal DQ and a data strobe signal DQS. As , it may be provided 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)로 제공할 수 있다.For example, when the processor 1100 stores data in the DRAMs 5600, the device controller 5100 transmits the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK to the DRAMs 5600. can be provided with Data to be stored may be provided to the DRAMs 5600 through the data buffer circuit 5400 as a data signal DQ and a data strobe signal DQS. For example, when processor 1100 reads data from DRAMs 5600, device controller 5100 transmits RAM command CMD_R, RAM address ADDR_R, and clock signal CLK to DRAMs 5600. can provide The DRAMs 5600 output data based on the provided signals, and the data buffer circuit 5400 converts the data output from the DRAMs 5600 into a data signal DQ and a data strobe signal DQS to the processor 1100. ) can be provided.

도 7은 도 1의 스토리지 장치의 구성에 관한 실시 예를 보여주는 블록도이다. 도 1의 제 1 유형의 스토리지 장치들(1220, 1222) 중 적어도 하나는 도 7의 스토리지 장치(6000)를 포함할 수 있다. 예로서, 스토리지 장치(6000)는 도 1의 컴퓨팅 시스템(1000)의 DIMM 소켓에 연결되는 불휘발성 메모리 모듈로 구현될 수 있다. 이 예에서, 스토리지 장치(6000)는 DIMM 스펙에 기초하여 정의되는 인터페이스 규약에 따라 도 1의 프로세서(1100)와 통신할 수 있다.FIG. 7 is a block diagram illustrating an exemplary embodiment of the configuration of the storage device of FIG. 1 . At least one of the first type of storage devices 1220 and 1222 of FIG. 1 may include the storage device 6000 of FIG. 7 . For example, the storage device 6000 may be implemented as a nonvolatile memory module connected to a DIMM socket of the computing system 1000 of FIG. 1 . In this example, the storage device 6000 may communicate with the processor 1100 of FIG. 1 according to an interface protocol defined based on DIMM specifications.

도 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 nonvolatile memories 6200, and one or more DRAMs 6600. Nonvolatile memories 6200 may be used as storage media of the computing system 1000 . DRAMs 6600 may be used as main memory of computing system 1000 . The nonvolatile memories 6200 and DRAMs 6600 may be configured and operated in the same or similar manner to the nonvolatile memories 4200 and DRAMs 4600 of FIG. 5 , respectively. For convenience of description, duplicate descriptions of the nonvolatile memories 6200 and the 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 operate as will be described with reference to FIGS. 8 to 15 . As an embodiment, when a read request for read data stored in at least one of the nonvolatile memories 6200 is provided from a host (eg, the processor 1100 of FIG. 1 ), the read data is read under the control of the device controller 6100. Each of a plurality of transmission unit data generated by dividing data may be temporarily stored in the RAM 6100b and then output as a data signal DQ.

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

실시 예로서, 읽기 동작의 완료(즉, 전송 단위 데이터들 전부의 전송)는 스토리지 장치(6000)가 아닌 호스트(예컨대, 도 1의 프로세서(1100))에 의해 관리될 수 있다. 이로써, 스토리지 장치(6000)의 동작 부하가 줄어들 수 있다. 본 발명의 실시 예들은 도 8 내지 도 15를 참조하여 더 상세히 설명될 것이다.As an embodiment, completion of a read operation (ie, transfer of all transfer unit data) may be managed by a host (eg, the processor 1100 of FIG. 1 ) instead of the storage device 6000 . As a result, an operating load of the storage device 6000 may be reduced. Embodiments of the present invention will be described in more detail with reference to FIGS. 8 to 15 .

장치 컨트롤러(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 have the same or similar configuration and operation as the device controller 2100, the RAM 2100b, and the SPD chip 2500 of FIG. 3, respectively. . For convenience of description, redundant descriptions of the device controller 6100, the RAM 6100b, and the SPD chip 6500 will be omitted.

장치 컨트롤러(6100)는 프로세서(1100)로부터 수신된 신호에 기초하여 불휘발성 메모리들(6200) 및 DRAM들(6600)을 제어할 수 있다. 프로세서(1100)는 불휘발성 메모리들(6200) 또는 DRAM들(6600)에 선택적으로 접근할 수 있다.The device controller 6100 may control the nonvolatile memories 6200 and the DRAMs 6600 based on a signal received from the processor 1100 . The processor 1100 may selectively access the nonvolatile memories 6200 or the 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 nonvolatile memories 6200, the nonvolatile memories 6200 transmit the data to be stored as a data signal DQ and a data strobe signal DQS to a device controller ( 6100) can be provided. For example, when the processor 1100 reads data from the nonvolatile memories 6200, the device controller 6100 converts the data read from the nonvolatile memories 6200 to a data signal DQ and a data strobe signal DQS. It can be provided to the processor 1100 as

예로서, 프로세서(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 transmits the RAM command CMD_R, the RAM address ADDR_R, and the clock signal CLK to the DRAMs 6600. can be provided with 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 processor 1100 reads data from DRAMs 6600, device controller 6100 transmits RAM command CMD_R, RAM address ADDR_R, and clock signal CLK to DRAMs 6600. can provide The DRAMs 6600 may output data based on the provided signals, and the output data may 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) 사이의 통신이 설명될 것이다.FIG. 8 is a block diagram illustrating a storage system including the storage device of FIG. 1 . The storage system 10 may include a storage device 100 and a processor 101 . The storage device 100 and the processor 101 may respectively correspond to the first type of storage device 1220 or 1222 and the processor 1100 of FIG. 1 . Therefore, redundant descriptions of the storage device 100 and the processor 101 will be omitted. Referring to FIG. 8 , the configuration and operation of the storage device 100 and 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 nonvolatile memories 120 , and a buffer memory 130 . The device controller 110 may correspond to one of the device controllers 2100 , 3100 , 4100 , 5100 , and 6100 of FIGS. 3 to 7 . The nonvolatile memories 120 may correspond to one of the nonvolatile memories 2200 , 3200 , 4200 , 5200 , and 6200 of FIGS. 3 to 7 . The buffer memory 130 may correspond to one of the buffer memories 2400 and 3400 of FIGS. 3 and 4 .

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

장치 컨트롤러(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)로 전송될 수 있다.Under the control of the device controller 110 , the storage device 100 may perform a specific function. For example, when the processor 101 provides a write request and write data DATA_W to the storage device 100 to store the write data DATA_W in the storage device 100, the control of the device controller 110 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, the nonvolatile memories are stored under the control of the device controller 110. Read data DATA_R stored in 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 may receive a RAM command CMD_R, a RAM address ADDR_R, and a clock signal CLK provided from the processor 101 . The RAM controller 111a may 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 store data corresponding to the data signal DQ. Alternatively, the RAM 111b may output data stored therein as a 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)를 포함할 수 있다.In an embodiment of the present invention, 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 . Furthermore, 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 state information STI about the write data DATA_W and the 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 a write operation of the nonvolatile memories 120 , the RAM 111b may 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. Furthermore, the RAM 111b may temporarily store write data DATA_W provided from the processor 101 according to the RAM command CMD_R and the RAM address ADDR_R. Under 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 a read operation of the nonvolatile memories 120 , the RAM 111b may store a storage command CMD_S and a storage address ADDR_S according to the RAM command CMD_R and the RAM address ADDR_R. Under the control of the controller 112 , the storage command CMD_S and the storage address ADDR_S may be provided to the nonvolatile memories 120 . 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, 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 and DATA_R may be exchanged between the processor 101 and the nonvolatile memories 120 under the control of the controller 112 . To this end, for example, the physical layer 111 is defined based on the DIMM specification and may operate according to the interface protocol of the DDR scheme. The device controller 110 may operate according to interface protocols defined by DIMM specifications. The storage device 100 is implemented in the form of a DIMM and can communicate with the processor 101 according to interface rules defined by DIMM specifications.

위 예에서, 램 커맨드(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 defined in the DIMM specification. The storage command CMD_S corresponding to the write request or read request may be transmitted along with the storage address ADDR_S through a data input/output pin defined in the DIMM specification. Write data or read data (DATA) may also be transmitted through the data input/output pin.

램 컨트롤러(111a) 및 컨트롤러(112)의 제어에 따라, 램(111b)은 쓰기 동작 또는 읽기 동작의 진행에 관한 상태 정보(STI)를 저장할 수 있다. 프로세서(101)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 완료되었는지 여부를 인지할 수 있다. 나아가, 컨트롤러(112)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 진행될 필요가 있는지 여부를 인지할 수 있다. 상태 정보(STI) 역시 데이터 입출력 핀을 통해 전송될 수 있다.Under the control of the RAM controller 111a and the controller 112, the RAM 111b may store state information STI regarding the progress of a write operation or a read operation. The processor 101 may recognize whether a write operation or a read operation has been completed based on the state information STI. Furthermore, the controller 112 may recognize whether a write operation or a read operation needs to be performed based on the state information STI. Status information (STI) can also be transmitted through the data input/output pin.

예로서, 램(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 DPSRAM (Dual Port SRAM), shared RAM, and the like. In this example, RAM 111b may be accessed by processor 101 and controller 112 through different ports, respectively. The configuration of RAM 111b will be described in more detail with reference to FIG. 9 . Furthermore, the write operation and the read operation will be described in more detail with reference to FIGS. 10 to 15 .

컨트롤러(112)는 물리 계층(111) 및 불휘발성 메모리들(120)을 제어하기 위해 다양한 하드웨어 구성 요소 또는 소프트웨어 구성 요소를 포함할 수 있다. 예로서, 컨트롤러(112)는 ECC 인코딩/디코딩 엔진(Error Correction Code Encoding/Decoding Engine), 스크램블러/디스크램블러(Scrambler/Descrambler), 데이터 버퍼, 및 플래시 변환 계층(Flash Translation Layer)을 포함할 수 있다.The controller 112 may include various hardware components or software components to control the physical layer 111 and the nonvolatile memories 120 . As an example, the controller 112 may include an ECC Encoding/Decoding Engine (Error Correction Code 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 data by the ECC encoding/decoding engine, and generate and add ECC codes for the data. The controller 112 may scramble or descramble data by means of a scrambler/desrambler. The controller 112 may temporarily store data read from the RAM 111b or the nonvolatile memories 120 in a data buffer. The controller 112 may perform conversion between a logical address and a physical address of the storage address ADDR_S by means of a flash translation layer. To this end, the buffer memory 130 may store a mapping table between logical addresses and physical addresses of the nonvolatile 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 communication between the processor, RAM, and the controller. As an embodiment, the RAM 111b may include a command area CA, a write area WA, a read area RA, and a status area STA. The command area CA, the write area WA, the read area RA, and the status area STA may be logically or physically separated.

프로세서(101)로부터 제공되는 램 어드레스(ADDR_R, 도 8 참조)에 기초하여, 커맨드 영역(CA), 쓰기 영역(WA), 읽기 영역(RA), 및 상태 영역(STA) 중 하나가 선택될 수 있다. 나아가, 프로세서(101)로부터 제공되는 램 커맨드(CMD_R, 도 8 참조)에 기초하여, 선택된 영역에 관하여 쓰기 동작 또는 읽기 동작이 수행될 수 있다. 예로서, 램 커맨드(CMD_R)로서 램 쓰기 커맨드가 제공되는 경우, 선택된 영역에서 쓰기 동작이 수행될 수 있다. 반면, 램 커맨드(CMD_R)로서 램 읽기 커맨드가 제공되는 경우, 선택된 영역에서 읽기 동작이 수행될 수 있다.Based on the RAM address (ADDR_R, see FIG. 8) provided from the processor 101, one of a command area CA, a write area WA, a read area RA, and a status area STA may be selected. have. Furthermore, a write operation or a read operation may be performed on the selected area based on a RAM command (CMD_R, see FIG. 8 ) provided from the processor 101 . For example, when a RAM write command is provided as the RAM command CMD_R, a write operation may 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 may 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 a storage command CMD_S and a storage address ADDR_S provided from the processor 101 . The controller 112 may 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 or a read operation is to be performed (ie, a write request or a read request) in the one or more nonvolatile memories 120 (see FIG. 8 ). The storage address ADDR_S may indicate locations of the nonvolatile memories 120 where 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 may 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 temporarily 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)가 전송될 수 있다.Although described with reference to FIGS. 11 to 15 , in an embodiment of the present invention, a plurality of transmission unit data generated by dividing the read data DATA_R may be transmitted to the processor 101 instead of the read data DATA_R. . The read area RA of the RAM 111b may store transfer unit data forming 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 is a data signal (DQ, see FIG. 8) and may be transmitted through a data input/output pin defined in the DIMM specification. In an embodiment of the present invention, read data DATA_R may be transmitted by transmitting all of the transmission unit data.

램 컨트롤러(111, 도 8 참조) 및 컨트롤러(112)의 제어에 따라, 상태 영역(STA)은 쓰기 데이터(DATA_W) 및 읽기 데이터(DATA_R)에 관한 상태 정보(STI)를 저장할 수 있다. 상태 정보(STI)는 쓰기 동작 또는 읽기 동작의 진행에 관한 정보를 포함할 수 있다. 프로세서(101)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 완료되었는지 여부를 인지할 수 있다. 나아가, 컨트롤러(112)는 상태 정보(STI)에 기초하여 쓰기 동작 또는 읽기 동작이 진행될 필요가 있는지 여부를 인지할 수 있다.Under the control of the RAM controller 111 (see FIG. 8 ) and the controller 112 , the state area STA may store state information STI about the write data DATA_W and the read data DATA_R. The state information STI may include information about the progress of a write operation or a read operation. The processor 101 may recognize whether a write operation or a read operation has been completed based on the state information STI. Furthermore, the controller 112 may recognize whether a write operation or a read operation needs to be performed 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 wants to store the write data DATA_W, the processor 101 may provide the write data DATA_W to the write area WA. Furthermore, the processor 101 may provide information on the write data DATA_W and state information STI on a write operation request to the status area STA. The controller 112 may control a write operation so that the write data DATA_W is stored in at least one of the nonvolatile memories 120 based on the state information STI. When the controller 112 stores the state information STI indicating completion of the write operation in the state area STA, the processor 101 may recognize the completion of the write operation based on the state information STI. To this end, the processor 101 may poll the state area STA at specific times (eg, 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, when the processor 101 wants to read read data DATA_R, the processor 101 transfers information about the read data DATA_R and status information STI about a read operation request to the status area STA. can be provided with The controller 112 may control a read operation so that the read data DATA_R is read from at least one of the nonvolatile memories 120 based on the state information STI. When the controller 112 stores the state information STI indicating completion of the read operation in the state area STA, the processor 101 may recognize the completion of the read operation based on the state information STI. Furthermore, the processor 101 may receive 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 mentioned above, in an embodiment of the present invention, transmission unit data generated by dividing the read data DATA_R may be transmitted to the processor 101 instead of the read data DATA_R. In this embodiment, the state area STA of the RAM 111b may store “notification data” as state information STI. Notification data may include information about transmission unit data forming the read data DATA_R. Notification data will be described in more detail with reference to FIGS. 13 to 15 .

도 10은 도 8의 스토리지 장치에 관한 쓰기 동작을 설명하는 흐름도이다. 프로세서(101)는 도 10의 쓰기 동작에 따라 스토리지 장치(100)에 쓰기 데이터(DATA_W)를 저장할 수 있다. 본 발명의 이해를 돕기 위해, 도 8 및 도 9가 함께 참조될 것이다.10 is a flowchart illustrating a write operation of the storage device of FIG. 8 . The processor 101 may store the write data DATA_W in the storage device 100 according to the write operation of FIG. 10 . 8 and 9 will be referred to together to facilitate understanding of the present invention.

S110 동작에서, 프로세서(101)는 램(111b)에 관한 쓰기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 커맨드 영역(CA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S110 , the processor 101 may provide the storage device 100 with a RAM command CMD_R to request a write on 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 storage command CMD_S for requesting a write operation on the storage device 100, more specifically, a write operation on the nonvolatile memories 120. . Furthermore, the data signal DQ may include a storage address ADDR_S indicating locations of the nonvolatile memories 120 to which a write operation is to be performed.

S110 및 S120 동작들은 불휘발성 메모리들(120)에 관한 쓰기 커맨드를 스토리지 장치(100)로 전달하기 위한 커맨드 트랜잭션(Transaction) 동작을 형성할 수 있다. S110 및 S120 동작들이 수행된 경우, 램(111b)의 커맨드 영역(CA)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. 여기서, 스토리지 커맨드(CMD_S)는 불휘발성 메모리들(120)에서 쓰기 동작이 수행됨을 지시할 수 있다.Operations S110 and S120 may form a command transaction operation for transmitting a write command for the nonvolatile memories 120 to the storage device 100 . When operations S110 and S120 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 nonvolatile 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 request a write on the RAM 111b to the storage device 100 . Furthermore, 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)에 기초하여 쓰기 동작을 제어할 수 있다.Operations S130 and S140 may form a data transaction operation for transferring write data DATA_W to be stored in the nonvolatile memories 120 to the storage device 100 . When operations S130 and S140 are performed, the write area WA of RAM 111b may store 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. You can control it.

S150 동작에서, 프로세서(101)는 램(111b)에 관한 읽기를 요청하기 위한 램 커맨드(CMD_R)를 스토리지 장치(100)로 제공할 수 있다. 나아가, 프로세서(101)는 램(111b)의 상태 영역(STA)을 선택하기 위한 램 어드레스(ADDR_R)를 스토리지 장치(100)로 제공할 수 있다.In operation S150 , the processor 101 may provide the storage device 100 with a RAM command CMD_R for requesting a read of the RAM 111b. Furthermore, the processor 101 may provide the RAM address ADDR_R for selecting the state 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 a data signal DQ and a data strobe signal DQS from the storage device 100 . In operation S160, the data signal DQ may include state information STI about the write operation.

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

S180 동작에서, 프로세서(101)는 쓰기 동작이 완료되었는지 여부를 판별할 수 있다. 프로세서(101)는 상태 영역(STA)에 저장된 상태 정보(STI)에 기초하여 쓰기 동작이 완료되었는지 여부를 판별할 수 있다.In operation S180, the processor 101 may determine whether the write operation is completed. The processor 101 may determine whether 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 to S180 may form a confirmation transaction operation for checking whether a write operation is completed in the nonvolatile memories 120 . When it is determined that the write operation has not been completed, the processor 101 may continue polling whether the write operation has been completed by repeating operations S150 and S160. On the other hand, when 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 illustrating a read operation of the storage device of FIG. 8 . 8 and 9 will be referred to together to facilitate understanding of the present invention.

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

스토리지 장치(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 transmit read data DATA_R to the processor 101 . In an embodiment of the present invention, the storage device 100 transmits a plurality of transmission unit data generated by dividing the read data DATA_R to the processor 101 instead of transmitting complete read data DATA_R to the processor 101 . Can transmit (see action ②).

스토리지 장치(100)는 장치 컨트롤러(110)의 제어에 따라 스토리지 어드레스(ADDR_S)에 대응하는 불휘발성 메모리들(120)의 위치로부터 읽기 데이터(DATA_R)를 읽을 수 있다. 그러나, 읽기 데이터(DATA_R)가 많이 분산되어 저장되어 있는 경우, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않을 수 있다. 또는, 읽기 데이터(DATA_R)의 크기가 읽기 동작의 단위 크기를 초과하는 경우, 읽기 데이터(DATA_R) 전체가 한 번에 읽히지 않을 수 있다.The storage device 100 may read read data DATA_R from a location of the nonvolatile memories 120 corresponding to the storage address ADDR_S under the control of the device controller 110 . However, when a lot of read data DATA_R is distributed and stored, the entire read data DATA_R may not be read 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 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 transmitted to the processor 101 after the entire read data DATA_R is 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 is read even though the entire read data DATA_R is not read at once. Rather, it may be efficient to transmit the read portion whenever a portion 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 an embodiment of the present invention, the storage device 100 transmits each of the transmission unit data D[1] to D[10] forming the read data DATA_R under the control of the device controller 110 to a processor ( 101). As an example, it is assumed that 10 pieces of transmission unit data (ie, D[1] to D[10]) form read data DATA_R. However, it is clear that this example is only provided to aid understanding of the present invention and is not intended to limit the present invention.

여기서, 전송 단위 데이터가 갖는 "전송 단위"는 실시 예에 따라 다양하게 변경 또는 수정될 수 있다. 전송 단위는 데이터를 전송하기에 적합한 임의의 크기를 가질 수 있다. 전송 단위는 고정된 크기를 갖거나 가변되는 크기를 가질 수 있다. 몇몇 실시 예에서, 전송 단위는 데이터 전송에 이용되는 패킷(Packet) 단위를 구성할 수 있다.Here, the "transmission unit" of the transmission unit data may be variously changed or modified according to embodiments. A transmission unit can have any size suitable for transmitting data. A 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])를 가장 먼저 수신할 수 있다.For example, at time 't1', the third transmission unit data D[3] may be first read from at least one of the nonvolatile memories 120 and 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]. Accordingly, the processor 101 may 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 nonvolatile memories 120 and ready to be transmitted. Further, at time 't3' and time 't4', respectively, the 10th transfer unit data D[10] and the 7th transfer unit data D[7] are read from at least one of the nonvolatile memories 120, It can be ready to be sent. The device controller 110 transmits the prepared transmission unit data (D[1], D[10], or D[ 7]) to the processor 101. The processor 101 may receive transmission unit data prepared in the storage device 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 may manage whether transmission of the read data DATA_R is completed (see operation ③). After finally receiving the fifth transmission unit data D[5], the processor 101 may determine that transmission of the read data DATA_R is completed at time 't11'.

본 발명의 실시 예에서, 전송 단위 데이터들(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 an embodiment of the present invention, the transmission unit data (D[1] to D[10]) of the device controller 110 in response to the preparation of each of the transmission unit data (D[1] to D[10]). It may be transmitted to the processor 101 one by one according to 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 soon as it is prepared. Read data DATA_R may be transmitted to the processor 101 by transmitting each of the transmission unit data D[1] to D[10] to the processor 101 .

본 발명의 실시 예에서, 램(111b)은 읽기 데이터(DATA_R) 전체를 저장하는 대신, 준비된 전송 단위 데이터들(D[1] 내지 D[10])만을 저장할 수 있다. 따라서, 적은 용량을 갖는 램(111b)이 채용될 수 있다. 결과적으로, 램(111b)에 의해 차지되는 면적 및 스토리지 장치(100)의 구현 비용이 줄어들 수 있다.In an embodiment of the present invention, the RAM 111b may store only the prepared transmission unit data D[1] to D[10] instead of storing the entire read data DATA_R. Therefore, a 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 may be reduced.

본 발명의 실시 예에서, 전송 단위 데이터들(D[1] 내지 D[10]) 전부가 프로세서(101)로 전송되었는지 여부(즉, 읽기 동작이 완료되었는지 여부)는 프로세서(101)에 의해 관리될 수 있다. 즉, 스토리지 장치(100)는 전송 단위 데이터들(D[1] 내지 D[10]) 각각을 전송할 뿐이고, 전송 단위 데이터들(D[1] 내지 D[10]) 전부가 전송되었는지 여부는 관리하지 않을 수 있다. 따라서, 스토리지 장치(100)의 동작 부하가 줄어들 수 있다. 프로세서(101)에 의해 읽기 동작의 완료를 관리하기 위해, "알림 데이터"가 이용될 수 있다. 알림 데이터는 도 13 내지 도 15를 참조하여 설명될 것이다.In an embodiment of the present invention, whether all of the transmission unit data (D[1] to D[10]) has been transmitted to the processor 101 (ie, whether the read operation has been completed) is managed by the processor 101 It can be. That is, the storage device 100 only transmits each of the transmission unit data D[1] to D[10], and manages whether all of the transmission unit data D[1] to D[10] are transmitted. may not Thus, an operating load of the storage device 100 may be reduced. To manage the completion of the read operation by the processor 101, “notification data” may be used. Notification data will be described with reference to FIGS. 13 to 15 .

도 12는 도 8의 스토리지 장치에 관한 읽기 동작을 설명하는 흐름도이다. 프로세서(101)는 도 11 및 도 12의 읽기 동작에 따라 스토리지 장치(100)에 저장된 읽기 데이터(DATA_R)를 제공받을 수 있다. 본 발명의 이해를 돕기 위해, 도 8 및 도 9가 함께 참조될 것이다.12 is a flowchart illustrating a read operation of the storage device of FIG. 8 . The processor 101 may receive read data DATA_R stored in the storage device 100 according to the read operations of FIGS. 11 and 12 . 8 and 9 will be referred to together to facilitate understanding of the present invention.

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 for requesting writing on the RAM 111b to the storage device 100 . 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, more specifically, a read operation on the nonvolatile memories 120. . Furthermore, the data signal DQ may include a storage address ADDR_S indicating a location of the nonvolatile memories 120 on 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)에 기초하여 읽기 동작을 제어할 수 있다.Operations S210 and S220 may form a command transaction operation for transferring a read command for the nonvolatile memories 120 to the storage device 100 . When operations S210 and S220 are 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 may control a read 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 the storage device 100 with a RAM command CMD_R for requesting a read of the RAM 111b. Furthermore, the processor 101 may provide the RAM address ADDR_R for selecting the state 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 state information STI related to 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 read data DATA_R and state information STI related to the read operation in the state area STA. When a read operation on specific transmission unit data among a plurality of transmission unit data forming the read data DATA_R is performed in the storage device 100, operation S250 may be performed. Here, the status information STI may include “notification data”. The notification data may indicate that specific transmission unit data is stored in the RAM 111b and is ready to be transmitted. Furthermore, the notification data may include information about the location of the prepared transmission unit data in the read data DATA_R.

S260 동작에서, 프로세서(101)는 특정 전송 단위 데이터에 관한 읽기 동작이 수행되었는지 여부를 판별할 수 있다. 프로세서(101)는 상태 영역(STA)에 저장된 상태 정보(STI)(좀 더 구체적으로는, "알림 데이터")에 기초하여 특정 전송 단위 데이터에 관한 읽기 동작이 수행되었는지 여부를 판별할 수 있다.In operation S260, the processor 101 may determine whether a read operation on specific transmission unit data has been performed. The processor 101 may determine whether a read operation on 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 to S260 may form a unit read confirmation transaction operation that checks whether specific transfer unit data has been read from the nonvolatile memories 120 . When it is determined that the read operation has not yet been performed, the processor 101 may continuously poll whether or not the read operation has been performed by repeating operations S230 and S240. On the other hand, when 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 the storage device 100 with a RAM command CMD_R for requesting a read of 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 prepared transmission unit data D[n] among transmission unit data.

S270 및 S280 동작들은 읽기 데이터(DATA_R)를 스토리지 장치(100)로부터 프로세서(101)로 전달하기 위해 전송 단위 데이터(D[n])를 전송하는 데이터 트랜잭션 동작을 형성할 수 있다. S270 및 S280 동작들이 수행된 경우, 전송 단위 데이터(D[n])는 램(111b)의 읽기 영역(RA)에 저장된 후, 프로세서(101)로 제공될 수 있다.Operations S270 and S280 may form a data transaction operation for transmitting the transmission unit data D[n] to transfer the read data DATA_R from the storage device 100 to the processor 101 . When operations S270 and S280 are performed, the transmission unit data D[n] may be stored in the read area RA of the RAM 111b and then provided to the processor 101 .

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

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

도 13은 도 11 및 도 12의 읽기 동작 중 전송 단위 데이터 및 알림 데이터의 전송을 보여주는 개념도이다.13 is a conceptual diagram illustrating transmission of transmission unit data and notification data during read operations of FIGS. 11 and 12 .

프로세서(101)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 커맨드 영역(CA)에 저장함으로써 스토리지 장치(100, 도 8 참조)로 읽기 요청을 제공할 수 있다. 읽기 요청에 응답하여, 장치 컨트롤러(110, 도 8 참조)는 컨트롤러(112)에 의해, 읽기 데이터(DATA_R)를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 프로세서(101)로 전송되도록, 물리 계층(111, 도 8 참조) 및 불휘발성 메모리들(120, 도 8 참조)을 제어할 수 있다.The processor 101 may 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 ) transmits each of a plurality of transmission unit data generated by dividing the read data DATA_R by the controller 112 to the processor 101, so that the physical layer (111, see FIG. 8) and 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 prepared transmission unit data D[n] among the transmission unit data may be temporarily stored in the read area RA of the RAM 111b. Furthermore, 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 transmits the notification data NTI[n]. As the state information (STI), it can be stored in the state area (STA) of the RAM (111b). The processor 101 may receive transmission unit data D[n] stored in the read 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 may 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 location information PI. The location information PI may include information about the location of the transmission unit data D[n] in the read data DATA_R. For example, the location information (PI) includes information necessary to grasp the relationship between the transmission unit data (D[n]) and the read data (DATA_R), such as an address corresponding to the transmission unit data (D[n]). can include The processor 101 may determine whether all transmission unit data has been received based on the location information (PI). Furthermore, the processor 101 may combine the transmission unit data into read data DATA_R after all transmission unit data are received based on the location 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 part information IPI. The invalid portion information (IPI) may include information about an invalid portion included in the transmission unit data D[n]. In some cases, the transmission unit data D[n] may include an invalid part not included in the read data DATA_R. The invalid part will be explained with reference to FIG. 15 .

도 14는 도 11 및 도 12의 읽기 동작에 따라 도 13의 알림 데이터를 참조하여 전송 단위 데이터들을 스토리지 장치에서 호스트 측으로 전송하는 과정을 보여주는 개념도이다.14 is a conceptual diagram illustrating a process of transmitting transmission unit data from a storage device to a host side with reference to notification data of FIG. 13 according to the read operations of FIGS. 11 and 12 .

시각 '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 device 100 may transmit each of a plurality of transmission unit data forming the read data DATA_R to the processor 101 . However, the transmission unit data may be transmitted to the processor 101 one by one as soon as they are prepared regardless of the order in which the read data DATA_R is formed.

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

예로서, 시각 't1'에서, 제 3 전송 단위 데이터(D[3])가 램(111b, 도 8 참조)에 저장되어 전송될 준비가 될 수 있다. 스토리지 장치(100)는 제 3 전송 단위 데이터(D[3])의 준비를 알리기 위한 알림 데이터(NTI[3])를 생성할 수 있다.For 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 device 100 may generate notification data NTI[3] for notifying 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 may receive the third transmission unit data D[3] based on the notification data NTI[3] (see operations S270 and S280 of FIG. 12). Furthermore, the processor 101 may obtain information about the third transmission unit data D[3] by referring to the notification data NTI[3]. However, since all of the transmission unit data has not yet been received, transmission of the transmission unit data can continue to be performed (refer to the arrow returning from operation S290 to operation S230 in FIG. 12).

각각 시각 't2' 및 시각 't3'에서, 제 1 전송 단위 데이터(D[1]) 및 제 10 전송 단위 데이터(D[10])가 램(111b)에 저장되어 전송될 준비가 될 수 있다. 스토리지 장치(100)는 제 1 전송 단위 데이터(D[1]) 및 제 10 전송 단위 데이터(D[10])에 각각 대응하는 알림 데이터들(NTI[1], NTI[10])을 생성할 수 있다. 몇몇 경우, 프로세서(101)가 알림 데이터를 확인하기 전에 여러 전송 단위 데이터가 준비될 수 있다.At time 't2' and time 't3', respectively, the first transmission unit data (D[1]) and the tenth transmission unit data (D[10]) may be stored in the RAM 111b and ready to be transmitted. . The storage device 100 generates notification data NTI[1] and NTI[10] respectively corresponding to the first transmission unit data D[1] and the tenth transmission unit data D[10]. can In some cases, several transmission unit data may be prepared before the processor 101 checks 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 transmits the first transmission unit data D[1] and the tenth transmission unit data D[10] based on the notification data NTI[1] and NTI[10]. ) can be received. Furthermore, the processor 101 refers to the notification data NTI[1] and NTI[10] to obtain information about the first transmission unit data D[1] and the tenth transmission unit data D[10]. can be obtained. Accordingly, the processor 101 may 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 may check whether notification data is generated in the storage device 100 . However, in some cases, transmission unit data may not be ready yet (see the arrow returning from operation S260 to operation S230 in FIG. 12). In this case, the processor 101 may wait until the next notification data is checked 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 be finally stored in the RAM 111b and ready to be transmitted. The storage device 100 may generate notification data NTI[5] corresponding to the fifth transmission unit data D[5]. At time 't8', the processor 101 may receive the fifth transmission unit data D[5] based on the notification data NTI[5]. Furthermore, the processor 101 may obtain information about 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 may determine that all of the transmission unit data D[1] to D[10] have been received by referring to the notification data NTI[1] to NTI[10]. have. Accordingly, the processor 101 may determine that the entire read operation has been completed (see operation S292 of FIG. 12). The processor 101 properly arranges the transmission unit data D[1] to D[10] with reference to the notification data NTI[1] to NTI[10], and obtains the read data DATA_R. can

요약하면, 프로세서(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 transmission unit data generated by dividing the read data in the RAM 111b. The storage device 100 may generate notification data in response to preparation of each of the transmission unit data. The processor 101 may receive prepared transmission unit data one by one in response to generation of notification data. By transmitting all of the transmission unit data, the read data DATA_R may be transmitted from the storage device 100 to the processor 101 . Whether all of the transmission unit data is transmitted may be managed by the processor 101 .

도 15는 도 11 및 도 12의 읽기 동작에 따라 전송된 전송 단위 데이터들에서 무효 부분을 버리고 유효 부분을 결합함으로써 읽기 데이터를 획득하는 과정을 보여주는 개념도이다.15 is a conceptual diagram illustrating a process of acquiring read data by discarding invalid parts and combining valid parts from transmission unit data transmitted according to the read operations of FIGS. 11 and 12 .

몇몇 실시 예에서, 읽기 데이터를 형성하는 복수의 전송 단위 데이터 중 적어도 하나는 무효 부분을 포함할 수 있다. 무효 부분은 읽기 데이터에 포함되지 않는 부분을 의미한다. 이와 대조적으로, 읽기 데이터에 포함되는 부분은 유효 부분으로 불릴 수 있다.In some embodiments, at least one of a plurality of transmission unit data forming read data may include an invalid part. The invalid part means a part not included in the read data. In contrast, a portion included in read data may be referred to as a valid portion.

몇몇 경우, 불휘발성 메모리들(120, 도 8 참조)로부터 읽힌 데이터의 크기가 전송 단위 데이터의 크기보다 작을 수 있다. 이 경우, 전송 단위 데이터는 불휘발성 메모리들로부터 읽힌 데이터를 유효 부분으로서 포함할 수 있다. 나아가, 장치 컨트롤러(110, 도 8 참조)의 제어에 따라, 무효 부분이 전송 단위 데이터에 부가될 수 있다. 무효 부분은 전송 단위를 형성하기 위해 전송 단위 데이터에 부가될 수 있다.In some cases, the size of data read from the nonvolatile memories 120 (see FIG. 8) may be smaller than the size of transmission unit data. In this case, the transmission unit data may include data read from nonvolatile memories as a valid part. Furthermore, according to the control of the device controller 110 (see FIG. 8), an invalid part may be added to the transmission unit data. An invalid part may be added to transmission unit data to form a transmission unit.

예로서, 무효 부분은 읽기 데이터와 무관한 무의미한 데이터 또는 특정 패턴의 데이터를 포함할 수 있다. 도 13을 참조하여 설명된 것과 같이, 알림 데이터는 무효 부분 정보(IPI)를 포함할 수 있다. 무효 부분 정보(IPI)는 무효 부분의 위치, 무효 부분의 내용, 무효 부분의 길이 등과 같이 무효 부분을 식별하기 위해 필요한 정보를 포함할 수 있다.For example, the invalid part may include meaningless data or specific pattern data unrelated to read data. As described with reference to FIG. 13 , notification data may include invalid part information (IPI). The invalid part information (IPI) may include information necessary for identifying the invalid part, such as the location of the invalid part, the content of the invalid part, the length of the invalid part, and the like.

프로세서(101, 도 8 참조)는 무효 부분 정보(IPI)를 포함하는 알림 데이터에 기초하여, 수신된 전송 단위 데이터들에 포함되는 무효 부분을 식별할 수 있다. 무효 부분은 읽기 데이터와 무관하기 때문에, 프로세서(101, 도 8 참조)는 무효 부분을 버릴 수 있다. 나아가, 프로세서(101)는 무효 부분을 제외한 데이터를 결합할 수 있다. 이로써, 프로세서(101)는 읽기 데이터를 획득할 수 있다.The processor 101 (see FIG. 8 ) may identify an invalid part included in the received transmission unit data based on notification data including invalid part information (IPI). Since the invalid part has nothing to do with the read data, the processor 101 (see FIG. 8) can discard the invalid part. Furthermore, the processor 101 may combine data except for invalid parts. As a result, the processor 101 may obtain 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] to 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 part. The processor 101 discards the invalid part included in the fifth transmission unit data D[5] based on the notification data corresponding to the fifth transmission unit data D[5], and returns the corrected fifth transmission unit data D[5]. (D[5]') can be obtained. The processor 101 discards the invalid part included in the tenth transmission unit data D[10] based on the notification data corresponding to the tenth transmission unit data D[10], and returns the corrected 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. As a result, the processor 101 may obtain read data. The finally obtained read data may include only data intended by the processor 101 without invalid portions.

도 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 FIGS. 8 to 15 , the processor 101 may communicate with the device controller 112 of FIG. 8 through a high-speed bus such as the bus 1230 of FIG. 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 according to interface protocols operating in a DDR mode, the processor 101 is configured to ) can be recognized as a DIMM device and a write operation and a read operation to the RAM 111b can be performed according to the interface protocol operating in the DDR method. Accordingly, according to an embodiment of the present invention, the storage device 100 may exhibit high operating performance.

도 16은 도 8의 불휘발성 메모리들 중 하나를 보여주는 블록도이다. 도 8의 불휘발성 메모리들(120) 중 적어도 하나는 불휘발성 메모리(121)를 포함할 수 있다. 불휘발성 메모리(121)는 메모리 셀 어레이(121a), 어드레스 디코더(121b), 제어 로직 및 전압 발생기(121c), 페이지 버퍼(121d), 및 입출력 회로(121e)를 포함할 수 있다.FIG. 16 is a block diagram showing one of the nonvolatile memories of FIG. 8 . At least one of the nonvolatile memories 120 of FIG. 8 may include a nonvolatile memory 121 . 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 include a plurality of cell strings. Each of the cell strings may include 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 1 bit or a multi-level cell storing at least 2 bits.

실시 예로서, 메모리 셀 어레이(121a)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 관련된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀 어레이들의 하나 이상의 물리 레벨들에 모놀리식으로(Monolithically) 형성될 수 있다. 메모리 셀들의 동작에 관련된 회로는 기판 내에 또는 기판 위에 배치될 수 있다. "모놀리식(Monolithical)"이라는 용어는, 3차원 메모리 어레이의 각 레벨의 층들이 3차원 메모리 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.As an example embodiment, the memory cell array 121a may include a 3D memory array. A 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 circuitry involved in the operation of the memory cells. Circuitry related to operation of the memory cells may be disposed in or on the substrate. The term "monolithical" means that the layers of each level of the three-dimensional memory array are deposited directly over the layers of lower levels of the three-dimensional memory array.

실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 갖고 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함할 수 있다. 적어도 하나의 메모리 셀은 전하 트랩(Charge Trap) 층을 포함할 수 있다. 수직 NAND 스트링들 각각은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조로 구성되고 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.As an example embodiment, the 3D memory array may include vertical NAND strings having a vertical direction and at least one memory cell positioned above another memory cell. At least one memory cell may include a charge trap layer. Each of the vertical NAND strings may include at least one select transistor positioned over the memory cells. At least one select transistor may have the same structure as the memory cells and may be monolithically formed with the memory cells.

3차원 메모리 어레이가 복수의 레벨로 구성되고, 레벨들 사이에 공유되는 워드 라인들 또는 비트 라인들이 구비되는 것과 같이, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 이 공보들은 본 발명의 참조로서 포함된다.A configuration suitable for a three-dimensional memory array, such as a three-dimensional memory array composed of a plurality of levels and having word lines or bit lines shared between the levels, is described in U.S. Patent Publication No. 7,679,133, U.S. Patent Publication No. 8,553,466, US Patent Publication No. 8,654,587, US Patent Publication No. 8,559,235, and US Patent Publication No. 2011/0233648, which publications 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 through word lines WL, string select lines SSL, and ground select lines GSL. The address decoder 121b may receive the storage address ADDR_S' from the device controller 110 (refer to 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 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 may control the address decoder 121b, the page buffer 121d, and the input/output circuit 121e in response to the received signals. For example, the control logic and voltage generator 121c stores write data DATA provided from the device controller 110 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 may be controlled to read the read data DATA stored in the memory cell array 121a.

제어 로직 및 전압 발생기(121c)는 불휘발성 메모리(121)를 동작시키기 위해 이용되는 여러 전압을 생성할 수 있다. 예로서, 제어 로직 및 전압 발생기(121c)는 복수의 프로그램 전압, 복수의 패스 전압, 복수의 선택 읽기 전압, 복수의 비선택 읽기 전압, 복수의 소거 전압, 및 복수의 검증 전압을 생성할 수 있다. 제어 로직 및 전압 발생기(121c)는 생성된 전압들을 어드레스 디코더(121b)로 제공하거나 메모리 셀 어레이(121a)의 기판으로 제공할 수 있다.The control logic and voltage generator 121c may generate various voltages used to operate the nonvolatile memory 121 . As an example, the control logic and voltage generator 121c may generate multiple program voltages, multiple pass voltages, multiple select read voltages, multiple unselect read voltages, multiple erase voltages, and multiple verify voltages. . The control logic and voltage generator 121c may provide the generated voltages to the address decoder 121b or to a 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. can The page buffer 121d may read read data stored in the memory cell array 121a under the control of the control logic and the voltage generator 121c and provide the read data to the input/output circuit 121e. For example, the page buffer 121d may receive data in page units from the input/output circuit 121e or read data in page units from the memory cell array 121a. As an example, 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 received write data DATA to the page buffer 121d. Alternatively, the input/output circuit 121e may receive read data DATA from the page buffer 121d and provide the read data DATA to an external device such as the device controller 110 . For example, the input/output circuit 121e may 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)과 유사하게 구성될 수 있다.FIG. 17 is a conceptual diagram showing one memory block of the memory cell array of FIG. 16 . Referring to FIG. 17 , a first memory block BLK1 having a 3D structure will be described. As an 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. 17 . Furthermore, other memory blocks may also be configured similarly 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 , and CS22 may be disposed along a row direction and a 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 a 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 string-selected transistors SSTa and SSTb, a plurality of memory cells MC1 to MC8, ground-selected transistors GSTa and GSTb, and a dummy. (Dummy) memory cells DMC1 and DMC2 may be included. For example, each of a 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 stacked in a height direction perpendicular to a plane formed by row and column directions. The string selected transistors SSTa and SSTb are 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 ground-selected transistors GSTa and GSTb are connected in series, and the ground-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)이 제공될 수 있다.For 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. For 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 may be connected in common to the ground selection line GSL. As an example, ground selected transistors in the same row can be connected to the same ground select line, and ground selected transistors in different rows can be connected to different ground select lines. For example, the first ground-selected transistors GSTa of the cell strings CS11 and CS12 in the first row may be connected to the first ground select line, and the first ground-selected transistors GSTa of the cell strings CS21 and CS22 in the second row may be connected. The first ground selected transistors GSTa may be connected to the second ground select line.

예로서, 도면에 나타내지는 않았으나, 기판(미도시)으로부터 동일한 높이에 놓이는 접지 선택된 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 서로 다른 높이에 놓이는 접지 선택된 트랜지스터들은 서로 다른 접지 선택 라인에 연결될 수 있다. 예로서, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제 1 접지 선택 라인에 연결되고, 제 2 접지 선택 트랜지스터들(GSTb)은 제 2 접지 선택 라인에 연결될 수 있다.For example, although not shown, ground-selected transistors placed 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. . For example, the first ground select transistors GSTa of the cell strings CS11, CS12, CS21, and CS22 are connected to the first ground select line, and the second ground select transistors GSTb are connected to the second ground select line. can be connected to

기판 또는 접지 선택된 트랜지스터들(GSTa, GSTb)로부터 동일한 높이에 놓이는 메모리 셀들은 동일한 워드 라인에 공통으로 연결되고, 서로 다른 높이에 놓이는 메모리 셀들은 서로 다른 워드 라인에 연결될 수 있다. 예로서, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 내지 제 8 메모리 셀들(MC1 내지 MC8)은 각각 제 1 내지 제 8 워드라인들(WL1 내지 WL8)에 공통으로 연결될 수 있다.Memory cells placed at the same height from the substrate or the ground-selected transistors GSTa and GSTb may be commonly connected to the same word line, and memory cells placed at different heights may 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)과 공통으로 연결될 수 있다.Among the first string-selected transistors SSTa disposed at the same height, string-selected transistors in the same row may be connected to the same string selection line, and string-selected transistors in different rows may be connected to different string selection lines. For example, the first string-selected transistors SSTa of the cell strings CS11 and CS12 in the first row are connected in common with the string select line SSL1a, and the cell strings CS21 and CS22 in the second row are connected in common. The first string selected transistors SSTa of 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, among the second string selected transistors SSTb disposed at the same height, string selected transistors in the same row may be connected to the same string selection line, and string selected transistors in different rows may be connected to other string selection lines. For example, the second string selected transistors SSTb of the cell strings CS11 and CS12 in the first row are connected in common with the string select line SSL1b, and the cell strings CS21 and CS22 in the second row are connected in common. The second string selected transistors SSTb of may 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 drawing, string-selected transistors of cell strings in the same row may be commonly connected to the same string selection line. For example, the first and second string-selected transistors SSTa and SSTb of the cell strings CS11 and CS12 of the first row may be connected in common to the same string selection line. The first and second string-selected transistors SSTa and SSTb of the cell strings CS21 and CS22 of the second row may be connected in common to the same string selection line.

예로서, 동일한 높이에 놓이는 더미 메모리 셀들은 동일한 더미 워드 라인과 연결되고, 서로 다른 높이에 놓이는 더미 메모리 셀들은 서로 다른 더미 워드 라인과 연결될 수 있다. 예로서, 제 1 더미 메모리 셀들(DMC1)은 제 1 더미 워드 라인(DWL1)과 연결되고, 제 2 더미 메모리 셀들(DMC2)은 제 2 더미 워드 라인(DWL2)과 연결될 수 있다.For example, dummy memory cells placed at the same height may be connected to the same dummy word line, and dummy memory cells placed at different heights may 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 may be performed in units of rows. For 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 select lines SSL1a and SSL1b and a turn-off voltage is supplied to the string select lines SSL2a and SSL2b, Cell strings CS11 and CS12 of row 1 may be connected to bit lines BL1 and BL2. On the other hand, when the turn-on voltage is supplied to the string select lines SSL2a and SSL2b and the turn-off voltage is supplied to the string select lines SSL1a and SSL1B, the cell strings CS21 and CS22 in the second row It may be connected to these bit lines BL1 and BL2. Among the memory cells of the cell string of the row driven by driving the word line, memory cells disposed at the same height may be selected. Read and write operations may be performed on the selected memory cells. The 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 sub-blocks. When erasing is performed in units of memory blocks, all memory cells MC1 to MC8 of the first memory block BLK1 may be simultaneously erased according to one erase request. When performed in units of sub-blocks, some of the memory cells MC1 to MC8 of the first memory block BLK1 may be simultaneously erased according to one erase request, and the remaining portions may be erase-inhibited. A low voltage (eg, a ground voltage) may be supplied to word lines connected to memory cells to be erased, and word lines connected to erase-prohibited 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 exemplary. The number of cell strings may increase or decrease, and the number of rows and columns composed of cell strings may increase or decrease according to the number of cell strings. Furthermore, the number of cell transistors (GST, MC, DMC, SST, etc.) of the first memory block BLK1 may increase or decrease, respectively, and the height of the first memory block BLK1 may increase according to the number of cell transistors. may increase or decrease. 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 illustrating a server system including a storage device according to an embodiment of the present invention. Referring to FIG. 18 , a server system 7000 may include a plurality of server racks. 18 shows one server rack 7100 among a plurality of server racks as an example.

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

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

스토리지 장치(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 and at least one processor 1100 included in the server rack 7100 . For example, the storage device 7200 may be a nonvolatile memory module implemented in the form of a DIMM. In this example, the storage device 7200 may communicate with the processor 1100 by being connected to a DIMM socket electrically connected to the processor 1100 . For example, the storage device 7200 may communicate with the processor 1100 according to an interface protocol defined based on DIMM specifications and operating in a DDR mode.

스토리지 장치(7200)는 도 1 내지 도 17을 참조하여 설명된 본 발명의 실시 예들에 기초하여 구성되고 동작할 수 있다. 본 발명의 실시 예들에 따르면, 스토리지 장치(7200)는 빠른 속도로 동작하는 버스를 통해 프로세서(1100)와 통신할 수 있다. 본 발명의 실시 예들에 따르면, 스토리지 장치(7200)가 높은 동작 성능을 보일 수 있고, 서버 시스템(7000)의 스토리지 성능이 향상될 수 있다.The storage device 7200 may be configured and operated based on the exemplary embodiments described with reference to FIGS. 1 to 17 . According to example embodiments, the storage device 7200 may communicate with the processor 1100 through a high-speed bus. According to embodiments of the present disclosure, the storage device 7200 can exhibit high operating 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 mounted using various types of semiconductor packages. For example, circuits, chips, devices, and modules according to an embodiment of the present invention may include Package on Package (PoP), Ball Grid Arrays (BGAs), Chip Scale Packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-line Package (CERDIP), Metric Quad Flat Pack (MQFP), Thin Quad Flat (TQFP) 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), It may be mounted using a package such as WSP (Wafer-Level Processed Stack Package).

각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.The configuration shown in each conceptual diagram should only be understood from a conceptual point of view. In order to help understanding of the present invention, the shape, structure, size, etc. of each component shown in the conceptual diagram is exaggerated or reduced. A configuration actually implemented may have a physical shape different from that shown in each conceptual diagram. Each conceptual diagram is not intended to limit the physical shape of a component.

각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.The device configuration shown in each block diagram is to aid understanding of the invention. Each block may be formed of smaller units of blocks according to functions. Alternatively, a plurality of blocks may form a block of a larger unit according to a function. That is, the technical idea of the present invention is not limited by the configuration shown in the block diagram.

이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.In the above, the present invention has been described focusing on the embodiments of the present invention. However, due to the nature of the technical field to which the present invention belongs, the object to be achieved by the present invention may be achieved in a form different from the above embodiments while including the gist of the present invention. Accordingly, the above embodiments should be understood in terms of description rather than limitation. That is, technical ideas capable of achieving the same object as the present invention while including the gist of the present invention should be construed as being included in the technical spirit of the present invention.

따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.Therefore, technical ideas that are modified or modified within the scope of not departing from the essential characteristics of the present invention are included in the protection scope claimed by the present invention. In addition, the protection scope 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 system
100: storage device 101: processor
110: device controller 111: physical layer
111a: RAM controller 111b: RAM
112: controller
120: non-volatile memories 121: non-volatile 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 device 1220, 1222: first type storage device
1230: bus operating at high speed
1300: Chipset 1400: GPU
1500: input/output device 1600: second type storage device
2000, 3000, 4000, 5000, 6000: Storage units
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 device

Claims (10)

하나 이상의 불휘발성 메모리들; 및
호스트로부터 상기 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터에 관한 읽기 요청이 수신된 경우, 상기 읽기 데이터를 형성하는 복수의 전송 단위 데이터 각각의 준비에 응답하여 상기 복수의 전송 단위 데이터 중 준비된 것을 상기 호스트로 전송하도록 구성되는 장치 컨트롤러를 포함하되,
상기 복수의 전송 단위 데이터 각각은 상기 읽기 데이터를 형성하는 순서에 관계없이 상기 호스트로 전송되고,
상기 복수의 전송 단위 데이터 중 적어도 하나는 상기 읽기 데이터에 포함되지 않는 무효 부분을 포함하고, 그리고
상기 장치 컨트롤러는 상기 무효 부분에 관한 정보를 포함하는 알림 데이터를 램에 저장하도록 더 구성되는 불휘발성 메모리 모듈.
one or more non-volatile memories; and
When a read request for read data stored in at least one of the nonvolatile memories is received from a host, the read data of the plurality of transmission units is prepared in response to preparation of each of the plurality of transmission unit data forming the read data. a device controller configured to transmit to a host;
Each of the plurality of transmission unit data is transmitted to the host regardless of the order of forming the read data;
At least one of the plurality of transmission unit data includes an invalid part not included in the read data, and
The device controller is further configured to store notification data including information about the invalid part in a RAM.
제 1 항에 있어서,
상기 복수의 전송 단위 데이터는 상기 복수의 전송 단위 데이터 각각의 준비에 응답하여 상기 장치 컨트롤러의 제어에 따라 하나씩 상기 호스트로 전송되는 불휘발성 메모리 모듈.
According to claim 1,
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 항에 있어서,
상기 장치 컨트롤러는 상기 복수의 전송 단위 데이터 각각의 준비를 나타내는 알림 데이터를 생성하도록 더 구성되고,
상기 복수의 전송 단위 데이터 각각은 상기 알림 데이터에 기초하여 상기 호스트로 전송되는 불휘발성 메모리 모듈.
According to claim 1,
the device controller is further configured to generate notification data indicating the preparation of each of the plurality of transmission unit data;
Each of the plurality of transmission unit data is transmitted to the host based on the notification data.
제 1 항에 있어서,
상기 장치 컨트롤러는 DIMM 스펙에 의해 정의되는 인터페이스 규약에 따라 동작하도록 구성되는 불휘발성 메모리 모듈.
According to claim 1,
The device controller is configured to operate according to an interface protocol defined by DIMM specifications.
하나 이상의 불휘발성 메모리들; 및
호스트로부터의 요청에 응답하여 상기 불휘발성 메모리들 중 적어도 하나에 저장된 읽기 데이터를 상기 호스트로 전송하도록 구성되는 장치 컨트롤러를 포함하되,
상기 장치 컨트롤러는:
램, 및 상기 호스트로부터 제공되는 램 커맨드 및 램 어드레스에 따라 상기 램을 제어하도록 구성되는 램 컨트롤러를 포함하는 물리 계층; 및
상기 호스트로부터 제공되어 상기 램에 저장되는 스토리지 커맨드 및 스토리지 어드레스에 기초하여, 상기 읽기 데이터가 상기 스토리지 어드레스에 대응하는 상기 불휘발성 메모리들의 위치로부터 읽히고 상기 읽기 데이터를 분할하여 생성되는 복수의 전송 단위 데이터 각각이 상기 램에 임시로 저장되도록, 상기 물리 계층 및 상기 불휘발성 메모리들을 제어하도록 구성되는 컨트롤러를 포함하고,
상기 장치 컨트롤러는 상기 복수의 전송 단위 데이터 각각을 상기 호스트로 전송함으로써 상기 읽기 데이터를 전송하도록 구성되고,
상기 복수의 전송 단위 데이터 중 적어도 하나는 상기 읽기 데이터에 포함되지 않는 무효 부분을 포함하고, 그리고
상기 장치 컨트롤러는 상기 무효 부분에 관한 정보를 포함하는 알림 데이터를 상기 램에 저장하도록 더 구성되는 스토리지 장치.
one or more non-volatile memories; and
A device controller configured to transmit read data stored in at least one of the nonvolatile memories to the host in response to a request from the host;
The device controller:
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
Based on a storage command and a storage address provided from the host and stored in the RAM, the read data is read from a location of the nonvolatile memories corresponding to the storage address, and a plurality of transfer unit data generated by dividing the read data a controller configured to control the physical layer and the nonvolatile memories so that each is temporarily stored in the RAM;
The device controller is configured to transmit the read data by transmitting each of the plurality of transmission unit data to the host,
At least one of the plurality of transmission unit data includes an invalid part not included in the read data, and
The storage device according to claim 1 , wherein the device controller is further configured to store notification data including information about the invalid portion in the RAM.
제 5 항에 있어서,
상기 알림 데이터는 상기 복수의 전송 단위 데이터 각각의 상기 램에의 저장을 나타내고, 상기 복수의 전송 단위 데이터 각각의 상기 읽기 데이터에서의 위치에 관한 정보를 포함하는 스토리지 장치.
According to claim 5,
The notification data indicates storage of each of the plurality of transmission unit data in the RAM, and includes information about a position of each of the plurality of transmission unit data in the read data.
제 6 항에 있어서,
상기 복수의 전송 단위 데이터 전부가 상기 호스트로 전송되었는지 여부는 상기 알림 데이터에 기초하여 상기 호스트에 의해 관리되는 스토리지 장치.
According to claim 6,
Whether all of the plurality of transmission unit data are transmitted to the host is managed by the host based on the notification data.
삭제delete 제 5 항에 있어서,
상기 무효 부분은 상기 알림 데이터에 기초하여 상기 호스트에 의해 버려지고,
상기 복수의 전송 단위 데이터에서 상기 무효 부분을 제외한 데이터가 상기 호스트에서 상기 읽기 데이터로 결합되는 스토리지 장치.
According to claim 5,
the invalid portion is discarded by the host based on the notification data;
Data except for 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
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 configured to prepare to transmit each of a plurality of transmission unit data forming the read data to the processor and to generate notification data about the preparation of each of the plurality of transmission unit data,
The processor is further configured to receive a prepared one of the plurality of transmission unit data with reference to the announcement data,
At least one of the plurality of transmission unit data includes an invalid part not included in the read data;
The notification data includes information about the invalid part.
KR1020150080732A 2015-06-08 2015-06-08 Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit Active 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 KR20160144557A (en) 2016-12-19
KR102473197B1 true KR102473197B1 (en) 2022-12-02

Family

ID=57735257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150080732A Active 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 (3)

* 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
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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101888009B1 (en) * 2012-02-28 2018-09-07 삼성전자주식회사 Storage device

Patent Citations (3)

* 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
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
KR20160144557A (en) 2016-12-19

Similar Documents

Publication Publication Date Title
US10949094B2 (en) Storage device and operating method of storage device
US10649894B2 (en) Nonvolatile memory module and operation method thereof
US12189976B2 (en) Apparatus for outputting internal state of memory apparatus and memory system using the apparatus
US11114170B2 (en) Memory system
US20160357462A1 (en) Nonvolatile Memory Modules and Data Management Methods Thereof
US11567685B2 (en) Storage controller and storage device including the same
US20160364153A1 (en) Storage device
US10719262B2 (en) Data storage apparatus, operating method thereof, and storage system having the same
KR20160144560A (en) Nonvolatile memory module, storage device, and electronic device generating error information accessed by host
US10545689B2 (en) Data storage device and operating method thereof
CN114078523B (en) Memory system and method of operating a memory device included therein
US11360711B2 (en) Storage device temporarily suspending internal operation to provide short read response time for read request from host
CN110413222B (en) Data storage device and method of operating the same
TWI795466B (en) Data storage apparatus and operating method thereof
TWI813669B (en) Data storage device and operating method thereof
US11593031B2 (en) Operating method of host device and storage device using credit
KR102667783B1 (en) Object storage system managing error-correction-code-related data in key-value mapping information
CN113064840A (en) Storage device and method of operation
KR20170031825A (en) Storage device including random access memory devices and nonvolatile memory devices
KR102290988B1 (en) Nonvolatile memory module and operating method thereof
KR102787635B1 (en) Data storage device and operating method thereof
CN114579484A (en) Data storage device and method of operating the same
US12045472B2 (en) Storage device supporting multi-tenant operation and methods of operating same
KR20170001818A (en) Storage device controller, and method for testing whether storage device controller is faulty
KR102473197B1 (en) Nonvolatile memory module, storage device, and electronic device transmitting read data in transmission unit

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