KR102461460B1 - Nonvolatile memory module, computing system having the same, and pvt compensation method thereof - Google Patents

Nonvolatile memory module, computing system having the same, and pvt compensation method thereof Download PDF

Info

Publication number
KR102461460B1
KR102461460B1 KR1020150080741A KR20150080741A KR102461460B1 KR 102461460 B1 KR102461460 B1 KR 102461460B1 KR 1020150080741 A KR1020150080741 A KR 1020150080741A KR 20150080741 A KR20150080741 A KR 20150080741A KR 102461460 B1 KR102461460 B1 KR 102461460B1
Authority
KR
South Korea
Prior art keywords
data
memory module
command
ram
processor
Prior art date
Application number
KR1020150080741A
Other languages
Korean (ko)
Other versions
KR20160144561A (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 KR1020150080741A priority Critical patent/KR102461460B1/en
Priority to US15/055,689 priority patent/US10261697B2/en
Publication of KR20160144561A publication Critical patent/KR20160144561A/en
Priority to US16/298,318 priority patent/US10949094B2/en
Application granted granted Critical
Publication of KR102461460B1 publication Critical patent/KR102461460B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

본 발명에 따른 비휘발성 메모리 모듈은, 복수의 비휘발성 메모리들 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고, 상기 비휘발성 메모리 모듈 제어기는, 데이터를 입출력하는 램, 커맨드를 입력 및 인식하는 커맨드 파서, 및 상기 커맨드 파서에서 인식한 리프레쉬 커맨드 혹은 프리차지 커맨드에 응답하여 PVT(process, voltage, temperature) 보상 동작을 수행하는 PVT 보상 유닛을 포함한다.A non-volatile memory module according to the present invention includes a plurality of non-volatile memories and a non-volatile memory module controller for controlling the plurality of non-volatile memories, wherein the non-volatile memory module controller includes a RAM for inputting and outputting data, a command and a command parser for inputting and recognizing , and a PVT compensation unit for performing a process, voltage, temperature (PVT) compensation operation in response to a refresh command or a precharge command recognized by the command parser.

Figure R1020150080741
Figure R1020150080741

Description

비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 PVT 보상 방법{NONVOLATILE MEMORY MODULE, COMPUTING SYSTEM HAVING THE SAME, AND PVT COMPENSATION METHOD THEREOF}NONVOLATILE MEMORY MODULE, COMPUTING SYSTEM HAVING THE SAME, AND PVT COMPENSATION METHOD THEREOF

본 발명은 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 PVT(process, voltage, temperature) 보상 방법에 관한 것이다.The present invention relates to a non-volatile memory module, a computing system including the same, and a PVT (process, voltage, temperature) compensation method thereof.

현재 사용되는 컴퓨팅 시스템의 다양한 인터페이스와 호환 가능한 비휘발성 메모리에 대한 연구가 이루어지고 있다. 즉, 플래시 메모리를 메인 메모리(또는, 워킹 메모리)와 동일한 슬롯이나 채널에 장착하여 데이터 저장 장치나 또는 워킹 메모리로 사용하려는 시도들이 이루어지고 있다. 이 경우에는 종래에 사용하던 휘발성 램(예를 들면, DRAM)과의 호환성이 고려되어야 한다. 휘발성 램과의 호환성을 유지하면서도 최상의 데이터 신뢰성(data integrity), 저전력 특성을 제공할 수 있는 기술이 필요한 실정이다.Research on nonvolatile memory compatible with various interfaces of currently used computing systems is being conducted. That is, attempts have been made to use a flash memory as a data storage device or a working memory by mounting the flash memory in the same slot or channel as the main memory (or working memory). In this case, compatibility with a conventionally used volatile RAM (eg, DRAM) should be considered. There is a need for a technology capable of providing the best data integrity and low power characteristics while maintaining compatibility with volatile RAM.

본 발명의 목적은 성능 향상을 가져오는 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 PVT 보상 방법을 제공하는데 있다.An object of the present invention is to provide a non-volatile memory module with improved performance, a computing system including the same, and a PVT compensation method thereof.

본 발명의 실시 예에 따른 비휘발성 메모리 모듈은, 복수의 비휘발성 메모리들 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고, 상기 비휘발성 메모리 모듈 제어기는, 데이터를 입출력하는 램, 커맨드를 입력 및 인식하는 커맨드 파서, 및 상기 커맨드 파서에서 인식한 리프레쉬 커맨드 혹은 프리차지 커맨드에 응답하여 PVT(process, voltage, temperature) 보상 동작을 수행하는 PVT 보상 유닛을 포함한다.A non-volatile memory module according to an embodiment of the present invention includes a plurality of non-volatile memories and a non-volatile memory module controller for controlling the plurality of non-volatile memories, wherein the non-volatile memory module controller is configured to input/output data and a RAM, a command parser for inputting and recognizing a command, and a PVT compensation unit for performing a PVT (process, voltage, temperature) compensation operation in response to a refresh command or a precharge command recognized by the command parser.

실시 예에 있어서, 상기 램은, 상기 복수의 비휘발성 메모리들에 쓰여질 데이터를 저장하는 쓰기 데이터 영역; 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 커맨드를 입력 받는 커맨드 영역; 상기 램의 상태를 지시하는 정보를 저장하는 상태 영역; 및 상기 복수의 비휘발성 메모리들로부터 읽혀진 데이터를 저장하는 읽기 데이터 영역을 포함한다.In an embodiment, the RAM includes: a write data area for storing data to be written to the plurality of non-volatile memories; a command area for receiving a non-volatile memory command for controlling the plurality of non-volatile memories; a state area for storing information indicating the state of the RAM; and a read data area storing data read from the plurality of non-volatile memories.

실시 예에 있어서, 상기 램은 듀얼포트(dualport) SRAM(static random access memory)이다.In an embodiment, the RAM is a dualport static random access memory (SRAM).

실시 예에 있어서, 상기 복수의 비휘발성 메모리들의 입출력 데이터를 임시로 저장하는 버퍼 메모리를 더 포함하고, 상기 비휘발성 메모리 모듈 제어기는 상기 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 메모리 제어기를 더 포함하고, 상기 램과 상기 메모리 제어기 사이에 입출력되는 데이터는 패킷 형태이다.In an embodiment, the device further comprises a buffer memory temporarily storing input/output data of the plurality of non-volatile memories, wherein the non-volatile memory module controller further includes a memory controller for controlling the buffer memory and the plurality of non-volatile memories and, data input/output between the RAM and the memory controller is in the form of a packet.

실시 에에 있어서, 상기 비휘발성 메모리 모듈은 외부와 DDR(double data rate) 인터페이스로 통신하고, 상기 램과 상기 메모리 제어기는 AXI(advance extensible interface) 인터페이스로 통신한다.In an embodiment, the non-volatile memory module communicates with the outside through a double data rate (DDR) interface, and the RAM and the memory controller communicate with the outside through an advance extensible interface (AXI) interface.

실시 예에 있어서, 상기 PVT 보상 유닛은, 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 PVT 보상 동작을 수행하기 위한 적어도 하나의 제어 신호를 출력하는 호스트 인터페이스 계층 펌웨어; 및 상기 호스트 인터페이스 계층 펌웨어를 구동하는 코어를 포함한다.In an embodiment, the PVT compensation unit includes: a host interface layer firmware that outputs at least one control signal for performing a PVT compensation operation in response to the refresh command or the precharge command; and a core for driving the host interface layer firmware.

실시 예에 있어서, 데이터 패드, 데이터 스트로브 신호 패드, 및 ZQ 패드 중 적어도 하나에 연결된 버퍼 드라이버를 더 포함하고, 상기 PVT 보상 유닛은 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 버퍼 드라이버의 기울기 혹은 강도를 조절한다.In an embodiment, the display device further includes a buffer driver connected to at least one of a data pad, a data strobe signal pad, and a ZQ pad, wherein the PVT compensation unit is configured to change the slope of the buffer driver in response to the refresh command or the precharge command. Adjust the intensity.

실시 예에 있어서, 클록을 입력 받아 내부 클록을 발생하는 클록 버퍼; 및 상기 클록 버퍼의 듀티(duty) 싸이클을 제어하는 듀티 싸이클 교정 유닛을 더 포함하고, 상기 PVT 보상 유닛은 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 듀티 싸이클 교정 유닛을 조절한다.In an embodiment, a clock buffer for receiving a clock input and generating an internal clock; and a duty cycle correction unit for controlling a duty cycle of the clock buffer, wherein the PVT compensation unit adjusts the duty cycle correction unit in response to the refresh command or the precharge command.

실시 예에 있어서, 상기 PVT 보상 유닛은 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 지연 탭 딜레이 셀들을 조절함으로써 데이터 신호 혹은 데이터 스트로브 신호의 지연을 결정한다.In an embodiment, the PVT compensation unit determines the delay of the data signal or the data strobe signal by adjusting delay tap delay cells in response to the refresh command or the precharge command.

실시 예에 있어서, 상기 램의 상기 데이터를 버퍼링하고, 상기 데이터를 외부로 입출력시키는 데이터 버퍼들을 더 포함한다.In an embodiment, data buffers for buffering the data of the RAM and inputting and outputting the data to the outside are further included.

실시 예에 있어서, 상기 PVT 보상 유닛은, 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 데이터 버퍼들 각각에 대한 PVT 보상 동작을 수행한다.In an embodiment, the PVT compensation unit performs a PVT compensation operation on each of the data buffers in response to the refresh command or the precharge command.

실시 예에 있어서, 상기 데이터 버퍼들은, 적어도 하나의 제 1 제어 라인에 의해 상기 비휘발성 메모리 모듈 제어기에 연결되는 제 1 데이터 버퍼들과, 적어도 하나의 제 2 제어 라인에 의해 상기 비휘발성 메모리 모듈 제어기에 연결되는 제 2 데이터 버퍼들을 포함한다.In an embodiment, the data buffers include first data buffers connected to the non-volatile memory module controller by at least one first control line and the non-volatile memory module controller by at least one second control line. and second data buffers coupled to

본 발명의 실시 예에 따른 컴퓨팅 시스템은, 프로세서, 상기 프로세서에 제 1 DDR(double date rate) 슬롯을 통하여 연결되는 적어도 하나의 듀얼 인-라인 메모리 모듈, 및 상기 프로세서에 제 2 DDR 슬롯을 통하여 연결되는 적어도 하나의 비휘발성 메모리 모듈을 포함하고, 상기 적어도 하나의 비휘발성 메모리 모듈은, 상기 프로세서로부터 입력된 리프레쉬 커맨드 혹은 프리차지 커맨드에 응답하여 PVT(process, voltage, temperature) 보상 동작을 수행한다.A computing system according to an embodiment of the present invention includes a processor, at least one dual in-line memory module connected to the processor through a first double date rate (DDR) slot, and connected to the processor through a second DDR slot and at least one nonvolatile memory module configured to be used, wherein the at least one nonvolatile memory module performs a process, voltage, temperature (PVT) compensation operation in response to a refresh command or a precharge command input from the processor.

실시 예에 있어서, 상기 적어도 하나의 비휘발성 메모리 모듈은, 적어도 하나의 버퍼 메모리; 복수의 비휘발성 메모리들; 및 상기 적어도 하나의 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고, 상기 비휘발성 메모리 모듈 제어기는, 상기 프로세서와 DDR 인터페이스를 통하여 데이터를 입출력하고, 상기 PVT 보상 동작을 수행하는 물리 계층; 및 상기 물리 계층의 데이터를 메모리 인터페이스를 통하여 입출력하는 메모리 제어기를 포함한다.In an embodiment, the at least one non-volatile memory module includes: at least one buffer memory; a plurality of non-volatile memories; and a non-volatile memory module controller for controlling the at least one buffer memory and the plurality of non-volatile memories, wherein the non-volatile memory module controller inputs/outputs data through the processor and a DDR interface, and performs the PVT compensation operation the physical layer to perform; and a memory controller for inputting and outputting data of the physical layer through a memory interface.

실시 예에 있어서, 상기 적어도 하나의 비휘발성 메모리 모듈은, 적어도 하나의 버퍼 메모리; 복수의 비휘발성 메모리들; 및 상기 적어도 하나의 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고, 상기 비휘발성 메모리 모듈 제어기는, 상기 프로세서와 DDR 인터페이스를 통하여 데이터를 입출력하고, 상기 PVT 보상 동작을 수행하는 물리 계층; 상기 프로세서로부터 입력된 데이터를 버퍼링하고, 상기 버퍼링된 데이터를 상기 물리 계층에 전송하거나, 상기 물리 계층으로부터 읽어온 데이터를 버퍼링하고 상기 버퍼링된 읽혀진 데이터를 상기 프로세서로 출력하는 데이터 버퍼들; 및 상기 물리 계층의 데이터를 메모리 인터페이스를 통하여 입출력하는 메모리 제어기를 포함한다.In an embodiment, the at least one non-volatile memory module includes: at least one buffer memory; a plurality of non-volatile memories; and a non-volatile memory module controller for controlling the at least one buffer memory and the plurality of non-volatile memories, wherein the non-volatile memory module controller inputs/outputs data through the processor and a DDR interface, and performs the PVT compensation operation the physical layer to perform; data buffers for buffering data input from the processor, transmitting the buffered data to the physical layer, buffering data read from the physical layer, and outputting the buffered read data to the processor; and a memory controller for inputting and outputting data of the physical layer through a memory interface.

실시 예에 있어서, 상기 적어도 하나의 비휘발성 메모리 모듈은, 적어도 하나의 버퍼 메모리; 상기 프로세서와 DDR 인터페이스를 통하여 데이터를 입출력하는 복수의 휘발성 메모리들; 복수의 비휘발성 메모리들; 및 상기 적어도 하나의 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고, 상기 비휘발성 메모리 모듈 제어기는, 상기 프로세서와 상기 DDR 인터페이스를 통하여 데이터를 입출력하고, 상기 PVT 보상 동작을 수행하는 물리 계층; 및 상기 물리 계층의 데이터를 메모리 인터페이스를 통하여 입출력하는 메모리 제어기를 포함한다.In an embodiment, the at least one non-volatile memory module includes: at least one buffer memory; a plurality of volatile memories for inputting and outputting data through the processor and the DDR interface; a plurality of non-volatile memories; and a non-volatile memory module controller for controlling the at least one buffer memory and the plurality of non-volatile memories, wherein the non-volatile memory module controller inputs/outputs data through the processor and the DDR interface, and compensates the PVT a physical layer that performs operations; and a memory controller for inputting and outputting data of the physical layer through a memory interface.

실시 예에 있어서, 상기 프로세서와 상기 적어도 하나의 듀얼 인-라인 메모리 모듈은 DDR4(double data rate 4) 인터페이스를 통하여 통신하고, 상기 프로세서와 상기 적어도 하나의 비휘발성 메모리 모듈은 상기 DDR4 인터페이스를 통하여 통신한다.In an embodiment, the processor and the at least one dual in-line memory module communicate via a double data rate 4 (DDR4) interface, and the processor and the at least one non-volatile memory module communicate via the DDR4 interface. do.

본 발명의 실시 예에 따른 비휘발성 메모리 모듈의 PVT(process, voltage, temperature) 보상 방법은, 리프레쉬 커맨드 혹은 프리차지 커맨드를 입력 받는 단계 및 상기 리프레쉬 커맨드 혹은 상기 프라치지 커맨드에 응답하여 PVT 보상 동작을 수행하는 단계를 포함한다.A process, voltage, temperature (PVT) compensation method of a nonvolatile memory module according to an embodiment of the present invention includes receiving a refresh command or a precharge command and performing a PVT compensation operation in response to the refresh command or the prague command. comprising the steps of performing

실시 예에 있어서, 상기 PVT 보상 동작은 내부적으로 입출력 제어 신호들을 조절함으로써 수행된다.In an embodiment, the PVT compensation operation is performed by internally adjusting input/output control signals.

본 발명의 실시 예에 따른 비휘발성 메모리 모듈은, 디램(DRAM) 기반 메모리 모듈에만 필요한 리프레쉬/프리차지 커맨드 입력시 유효한 PVT 보상 동작을 수행함으로써, 전체적인 성능향상을 꾀할 수 있다.The non-volatile memory module according to an embodiment of the present invention may improve overall performance by performing an effective PVT compensation operation when a refresh/precharge command required only for a DRAM-based memory module is input.

도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 본 발명의 호스트와 NMM의 데이터 통신 방법을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 램의 포인터들을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 NMM의 펌웨어 구조를 예시적으로 보여주는 도면이다.
도 5는 본 발명을 개념적으로 설명하기 위한 NMM의 펌웨어 동작을 보여주는 도면이다.
도 6은 본 발명의 제 1 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다.
도 7은 본 발명의 제 2 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다.
도 8은 본 발명의 제 3 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다.
도 9는 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 10은 본 발명의 제 4 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 NMM의 PVT 보상 방법을 예시적으로 보여주는 흐름도이다.
도 12는 본 발명에 따른 비휘발성 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 13는 도 12의 비휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 14은 도 12의 비휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 15는 본 발명에 따른 비휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다.
도 16은 도 15의 비휘발성 메모리 모듈에 대한 제 1 실시 예를 예시적으로 보여주는 블록도이다.
도 17은 도 15의 비휘발성 메모리 모듈에 대한 제 2 실시 예를 예시적으로 보여주는 블록도이다.
도 18은 도 15의 비휘발성 메모리 모듈에 대한 제 3 실시 예를 예시적으로 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 비휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다.
도 20은 본 발명의 실시 예에 따른 FlashDIMM을 예시적으로 보여주는 도면이다.
1 is a block diagram illustrating a computing system according to an embodiment of the present invention.
2 is a diagram exemplarily illustrating a data communication method between a host and an NMM according to the present invention.
3 is a diagram exemplarily showing pointers of a RAM according to an embodiment of the present invention.
4 is a diagram exemplarily showing a firmware structure of an NMM according to an embodiment of the present invention.
5 is a diagram illustrating a firmware operation of an NMM for conceptually explaining the present invention.
6 is a view showing a PVT compensation method according to the first embodiment of the present invention.
7 is a diagram illustrating a PVT compensation method according to a second embodiment of the present invention.
8 is a diagram illustrating a PVT compensation method according to a third embodiment of the present invention.
9 is a block diagram illustrating a computing system according to another embodiment of the present invention.
10 is a diagram illustrating a PVT compensation method according to a fourth embodiment of the present invention.
11 is a flowchart exemplarily illustrating a PVT compensation method of an NMM according to an embodiment of the present invention.
12 is a block diagram exemplarily showing a computing system to which a non-volatile memory module according to the present invention is applied.
13 is a block diagram exemplarily showing any one of the nonvolatile memory modules of FIG. 12 .
14 is a block diagram exemplarily showing any one of the nonvolatile memory modules of FIG. 12 .
15 is a block diagram illustrating another example of a computing system to which a non-volatile memory module according to the present invention is applied.
16 is a block diagram exemplarily illustrating a first embodiment of the nonvolatile memory module of FIG. 15 .
17 is a block diagram exemplarily illustrating a second embodiment of the nonvolatile memory module of FIG. 15 .
18 is a block diagram exemplarily illustrating a third embodiment of the nonvolatile memory module of FIG. 15 .
19 is a diagram exemplarily illustrating a server system to which a nonvolatile memory system according to an embodiment of the present invention is applied.
20 is a view exemplarily showing a FlashDIMM according to an embodiment of the present invention.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.Hereinafter, the content of the present invention will be described clearly and in detail to the extent that a person skilled in the art can easily implement it using the drawings.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.Since the present invention can have various changes and can have various forms, specific embodiments are illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to the specific disclosed form, it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms.

상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.The above terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.

구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Other expressions describing the relationship between elements, such as "between" and "immediately between" or "neighboring to" and "directly adjacent to", should be interpreted similarly. The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise.

본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In the present application, terms such as "comprise" or "have" are intended to designate the existence of an embodied feature, number, step, operation, component, part, or combination thereof, but one or more other features or numbers , it should be understood that it does not preclude the possibility of the existence or addition of steps, operations, components, parts, or combinations thereof. Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having meanings consistent with the context of the related art, and unless explicitly defined in the present application, they are not to be interpreted in an ideal or excessively formal meaning. .

도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)은 호스트(100)와 비휘발성 메모리 모듈(NMM, 200)을 포함한다.1 is a block diagram illustrating a computing system according to an embodiment of the present invention. Referring to FIG. 1 , a computing system 10 according to an embodiment of the present invention includes a host 100 and a nonvolatile memory module (NMM) 200 .

실시 예에 있어서, 컴퓨팅 시스템(10)은 컴퓨터, 포터블 컴퓨터, UMPC(ultra mobile PC), 워크스테이션(workstation), 데이터 서버(data server), 넷북, PDA, 웹 태블릿, 무선 폰, 모바일 폰, 스마트폰, 전자북, PMP(portable multimedia player), 디지털 카메라, 디지털오디오 녹음기/재생기, 디지털 사진기/비디오 기록기/재생기, 포터블 게임 머신, 네비게이션 시스템, 블록 박스, 3D 텔레비전, 무선 환경에서 정보를 수신 및 송신하는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, RFID, 혹은 컴퓨팅 시스템을 구성하는 다양한 전자 장치들 중 어느 하나로 사용될 수 있다.In an embodiment, the computing system 10 is a computer, a portable computer, an ultra mobile PC (UMPC), a workstation, a data server, a netbook, a PDA, a web tablet, a wireless phone, a mobile phone, and a smart phone. Receiving and transmitting information from phones, e-books, portable multimedia players (PMPs), digital cameras, digital audio recorders/players, digital cameras/video recorders/players, portable game machines, navigation systems, block boxes, 3D televisions, and wireless environments device, any one of various electronic devices constituting a home network, any one of various electronic devices constituting a computer network, any one of various electronic devices constituting a telematics network, RFID, or a computing system. Any one of various electronic devices may be used.

호스트(100)는 NMM 드라이버(110)에 의거하여 비휘발성 메모리 모듈(200)에 쓰기 요청, 읽기 요청과 같은 접근 동작을 수행할 수 있다. 실시 예에 있어서, NMM 드라이버(110)는 NMM(220)에 디램-기반의 DDR(double data rate) 인터페이스로 접근할 수 있도록 구현될 수 있다. NMM 드라이버(110)는 하드웨어/소프트웨어/펌웨어적으로 구현될 수 있다. 호스트(100)는 NMM(200)에 데이터를 쓰거나 NMM(200)으로부터 데이터를 읽기 위해서 비휘발성 메모리 모듈 제어기(NMM CNTL, 210)에 구비되는 물리 계층(NMMPHY, 212)에 접근할 수 있다.The host 100 may perform an access operation such as a write request or a read request to the nonvolatile memory module 200 based on the NMM driver 110 . In an embodiment, the NMM driver 110 may be implemented to access the NMM 220 through a DRAM-based double data rate (DDR) interface. The NMM driver 110 may be implemented in hardware/software/firmware. The host 100 may access the physical layer NMMPHY 212 provided in the non-volatile memory module controller NMM CNTL 210 to write data to or read data from the NMM 200 .

예를 들어, 호스트(100)는 적어도 하나의 프로세서, CPU(centrol processing unit), GPU(graphic procesing unit) 등 일 수 있다. For example, the host 100 may be at least one processor, a central processing unit (CPU), a graphic processing unit (GPU), or the like.

비휘발성 메모리 모듈(200)은 비휘발성 메모리 모듈 제어기(NMM CNTL, 210), 적어도 하나의 버퍼 메모리(Buffer MEM, 220), 복수의 비휘발성 메모리들(NVM, 230)을 포함할 수 있다.The nonvolatile memory module 200 may include a nonvolatile memory module controller NMM CNTL 210 , at least one buffer memory 220 , and a plurality of nonvolatile memories NVM 230 .

NNM CNTL(210)는 호스트(100)와의 하위 레벨의 인터페이싱을 위한 물리 계층(212), 및 물리 계층(212)과 버퍼 메모리(220) 혹은 비휘발성 메모리(230)와의 데이터 통신을 수행하는 메모리 제어기(MEM CNTL, 214)를 포함할 수 있다.The NNM CNTL 210 is a physical layer 212 for lower-level interfacing with the host 100 , and a memory controller that performs data communication between the physical layer 212 and the buffer memory 220 or the non-volatile memory 230 . (MEM CNTL, 214).

물리 계층(212)은 램(RAM, 212-1), 램 제어기(RAM CNTL, 212-2), 및 PVT(process, voltage, temperature) 보상 유닛(212-4)을 포함할 수 있다. 실시 예에 있어서, 물리계층(212)은 DIMM(dual in-line memory module) 물리계층의 전체 혹은 일부를 포함할 수 있다.The physical layer 212 may include a RAM (RAM) 212-1, a RAM controller (RAM CNTL, 212-2), and a process, voltage, temperature (PVT) compensation unit 212-4. In an embodiment, the physical layer 212 may include all or part of a dual in-line memory module (DIMM) physical layer.

RAM(212-1)은, DDR 인터페이스에 따라 데이터(DQ)와 데이터 스트로브 신호(DQS)를 사용하여 호스트(100)와 데이터를 교환하거나, 메모리 인터페이스에 따라 버퍼 메모리(220) 및/혹 비휘발성 메모리들(NVM, 230)과 패킷 형태의 데이터를 교환하도록 구현될 수 있다. 실시 예에 있어서, RAM(212-1)는 고속의 랜덤 억세스가 가능한 휘발성/비휘발성 메모리 장치로 구현될 수 있다. 예를 들어, RAM(212-1)은 듀얼 포트(dual port) SRAM(static random access memory)일 수 있다. 실시 예에 있어서, 메모리 인터페이스(MEM interface)는 AXI(Advanced eXtensible Interface, AXI3, AXI4 등), AMBA(Advanced Microcontroller Bus Architecture), OCP(open core protocol) 등 SoC(system on chip) 전용 인터페이스에 의해 구현될 수 있다.The RAM 212-1 exchanges data with the host 100 using the data DQ and the data strobe signal DQS according to the DDR interface, or the buffer memory 220 and/or the nonvolatile memory 220 according to the memory interface. It may be implemented to exchange data in the form of packets with the memories NVM 230 . In an embodiment, the RAM 212-1 may be implemented as a volatile/nonvolatile memory device capable of high-speed random access. For example, the RAM 212-1 may be a dual port static random access memory (SRAM). In an embodiment, the memory interface (MEM interface) is implemented by a system on chip (SoC) dedicated interface such as AXI (Advanced eXtensible Interface, AXI3, AXI4, etc.), AMBA (Advanced Microcontroller Bus Architecture), OCP (open core protocol), etc. can be

실시 예에 있어서, NNM(200)에 데이터 쓰거나 읽기 위하여 램(212-1)의 특정 영역들은 호스트 및 비휘발성 메모리(230) 또는 버퍼 메모리(220)에/로부터 억세스 될 수 있다.In an embodiment, specific areas of the RAM 212-1 may be accessed from/to the host and the nonvolatile memory 230 or the buffer memory 220 in order to write or read data to or from the NNM 200 .

호스트(100)와 NMM(200)의 물리 계층(212)에 정의된 인터페이싱 프로토콜에 따르면, 호스트(100)는 램(212-1)에 데이터를 쓸때 기본 전송 단위로 전달하게 된다. 즉, 일회의 쓰기 동작시 호스트(100)는 기본 전송 단위(예를 들면, 512 바이트)의 데이터를 NMM(200)의 램(212-1)에 쓰게 된다. 이 경우, 상대적으로 작은 사이즈(예를 들면, 16 바이트)의 데이터를 기입하더라도, 실질적으로 의미있는 데이터인 16 바이트와 무효한 나머지 496 바이트의 더미 데이터가 램(212-1)에 기입될 수 있다.According to the interfacing protocol defined in the physical layer 212 of the host 100 and the NMM 200 , the host 100 transmits data in a basic transmission unit when writing data to the RAM 212-1. That is, during one write operation, the host 100 writes data of a basic transmission unit (eg, 512 bytes) to the RAM 212-1 of the NMM 200 . In this case, even when data of a relatively small size (eg, 16 bytes) is written, 16 bytes of substantially meaningful data and 496 bytes of invalid dummy data may be written into the RAM 212-1. .

램 제어기(212-2)는 호스트(100)로부터 램 커맨드(CMD), 램 어드레스(ADDR), 클록(CLK) 등을 입력받고, 이것들을 근거로 하여 램(212-1)을 제어할 수 있다. 램 제어기(212-2)는 램 커맨드(CMD)를 입력 받고, 해석하는 커맨드 파서(CMD Parser, 212-3)를 포함한다. 실시 예에 있어서, 램 커맨드(CMD)는 정상적인 DIMM를 위한 커맨드를 포함할 수 있다.The RAM controller 212-2 may receive a RAM command CMD, a RAM address ADDR, a clock CLK, etc. from the host 100 and control the RAM 212-1 based on these inputs. . The RAM controller 212-2 includes a command parser 212-3 that receives and interprets the RAM command CMD. In an embodiment, the RAM command CMD may include a command for a normal DIMM.

PVT 보상 유닛(212-4)은 커맨드 파서(212-3)로부터 해석된 리프레쉬(refresh) 커맨드(REF)/프리차지(precharge) 커맨드(PRE)에 응답하여 물리 계층(212) 내의 PVT 보상 동작을 수행할 수 있다. 본 발명이 반드시 여기에 제한되지 않을 것이다. PVT 보상 유닛(212-4)은 NMM(200) 내의 어느 장치에 대한 PVT 보상 동작을 수행할 수 있다.The PVT compensation unit 212-4 performs a PVT compensation operation in the physical layer 212 in response to the refresh command REF/precharge command PRE interpreted from the command parser 212-3. can be done The present invention will not necessarily be limited thereto. The PVT compensation unit 212 - 4 may perform a PVT compensation operation for any device in the NMM 200 .

실시 예에 있어서, PVT 보상 동작은 PVT 변화 검출 동작을 포함할 수 있다. 검출된 PVT 변화 정보에 대응하여 PVT 보상 동작이 수행될 수 있다. 다른 실시 예에 있어서, PVT 보상 동작은 사전에 저장된 PVT 변화 정보를 근거로 수행될 수 있다. 실시 예에 있어서, PVT 보상 유닛(212-4)은 하드웨어/소프트웨어/펌웨어적으로 구현될 수 있다. PVT 보상 유닛(212-4)은 PVT 보상 동작을 수행하기 위한 별도의 코어(core)를 구비할 수 있다.In an embodiment, the PVT compensation operation may include a PVT change detection operation. A PVT compensation operation may be performed in response to the detected PVT change information. In another embodiment, the PVT compensation operation may be performed based on previously stored PVT change information. In an embodiment, the PVT compensation unit 212-4 may be implemented in hardware/software/firmware. The PVT compensation unit 212 - 4 may include a separate core for performing a PVT compensation operation.

적어도 하나의 버퍼 메모리(220)는 비휘발성 메모리들(230)을 관리/제어하기 위한 데이터를 저장하거나, 비휘발성 메모리들(230)에 입출력되는 데이터와 연관된 데이터를 임시로 저장할 수 있다. 실시 예에 있어서, 버퍼 메모리(220)는 DRAM, SRAM, PRAM, MRAM, RRAM, FeRAM 등과 같은 랜덤 액세스 메모리를 포함할 수 있다.The at least one buffer memory 220 may store data for managing/controlling the non-volatile memories 230 or temporarily store data related to data input/output to/from the non-volatile memories 230 . In an embodiment, the buffer memory 220 may include a random access memory such as DRAM, SRAM, PRAM, MRAM, RRAM, FeRAM, or the like.

복수의 비휘발성 메모리들(NVM, 230)은 호스트(100)로부터 요청된 데이터를 저장할 수 있다. 비휘발성 메모리(NVM)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.The plurality of non-volatile memories NVM 230 may store data requested from the host 100 . Non-volatile memory (NVM) includes NAND Flash Memory, Vertical NAND (VNAND), NOR Flash Memory, Resistive Random Access Memory (RRAM), and Phase Change. Memory (Phase-Change Memory: PRAM), Magnetoresistive Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Spin Transfer Torque Random Access Memory (STT-RAM) etc. can be Also, the nonvolatile memory device may be implemented as a three-dimensional array structure. In an embodiment of the present invention, a three-dimensional memory array is monolithically at one or more physical levels of an array of memory cells having an active area disposed over a silicon substrate and circuitry associated with the operation of the memory cells. ) can be formed. The circuitry involved in the operation of the memory cells may be located in or on the substrate. The term monolithic means that the layers of each level of the three-dimensional array are deposited directly over the layers of the lower level of the three-dimensional array.

본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.As an embodiment according to the concept of the present invention, the 3D memory array has vertical directionality and includes vertical NAND strings in which at least one memory cell is positioned on another memory cell. At least one memory cell includes a charge trap layer. Each vertical NAND string may include at least one select transistor positioned over memory cells. The at least one selection transistor may have the same structure as the memory cells, and may be monolithically formed together with the memory cells.

3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 6,791,33, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리 장치(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.A three-dimensional memory array is composed of a plurality of levels, with word lines or bit lines shared between the levels. A suitable configuration for a three-dimensional memory array, filed by Samsung Electronics, will be described in US 6,791,33, US 8,553,466, US 8,654,587, US 8,559,235, and US 2011/0233648, which are incorporated by reference in this application. The nonvolatile memory device (NVM) of the present invention is applicable not only to a flash memory device in which the charge storage layer includes a conductive floating gate, but also to a charge trap flash (CTF) in which the charge storage layer includes an insulating layer.

본 발명의 NMM(200)는, 디램(DRAM) 기반 메모리 모듈에만 필요하거나 NVM 기반 메모리 모듈에는 불필요한 커맨드(예, 리프레쉬/프리차지 커맨드) 입력시, 유효한 PVT 보상 동작을 수행함으로써, 전체적인 성능향상을 꾀할 수 있다.The NMM 200 of the present invention performs an effective PVT compensation operation when a command (eg, refresh/precharge command) required only for a DRAM-based memory module or unnecessary for an NVM-based memory module is input, thereby improving overall performance. can devise

도 2는 본 발명의 호스트(100)와 NMM(200)의 데이터 통신 방법을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 호스트(100)과 NMM(200)는 기본적으로 큐잉(queing) 방식을 통하여 데이터를 송수신할 수 있다.2 is a diagram exemplarily illustrating a data communication method between the host 100 and the NMM 200 according to the present invention. Referring to FIG. 2 , the host 100 and the NMM 200 may transmit/receive data through a queuing method.

호스트(100)의 NMM 드라이버(110)는 서브미션 큐잉 핸들러 (112) 및 컴플리션 큐잉 핸들러(114)를 포함할 수 있다. 호스트(100)의 NMM(200)의 억세스 요청에 따라 서브미션 큐잉 핸들러(112)는 NMM(200) 내의 비휘발성 메모리(NVM)의 동작과 관련된 필요한 비휘발성용 커맨드(CMD_NVM)를 램(212-1)의 커맨드 영역(CR)에 전송한다. 억세스 요청이 쓰기 동작일 경우, 서브미션 큐잉 핸들러(112)는 램(212-1)의 쓰기 데이터 영역(WR)에 쓰여질 데이터를 전송하고, 커맨드 영역(CR)에 쓰기 요청에 대한 커맨드를 전송한다. 억세스 요청이 읽기 동작일 경우, 서브미션 큐잉 핸들러(112)는 램(212-1)의 커맨드 영역(CR)에 읽기 요청에 대한 커맨드를 전송한다. 실시 예에 있어서, 서브미션 큐잉 핸들러(112)는 램(212-1)의 상태 영역(SR)으로부터 쓰기 데이터 영역(WR)에 빈공간이 있는 지를 우선적으로 확인할 수 있다.The NMM driver 110 of the host 100 may include a submission queuing handler 112 and a completion queuing handler 114 . In response to an access request from the NMM 200 of the host 100 , the submission queuing handler 112 sends a necessary non-volatile command (CMD_NVM) related to the operation of the non-volatile memory (NVM) in the NMM 200 to the RAM 212- 1) to the command area CR. When the access request is a write operation, the submission queuing handler 112 transmits data to be written to the write data area WR of the RAM 212-1 and transmits a command for the write request to the command area CR. . When the access request is a read operation, the submission queuing handler 112 transmits a command for the read request to the command area CR of the RAM 212-1. In an embodiment, the submission queuing handler 112 may preferentially check whether there is an empty space in the write data area WR from the state area SR of the RAM 212-1.

컴플리션 큐잉 핸들러(114)는 램(212-1)의 상태 영역(SR)으로부터 커맨드 처리 여부를 지시하는 상태 정보를 읽어 오고, 램(212-1)의 읽기 데이터 영역(RR)으로부터에 읽기 요청에 따른 읽기 데이터를 읽어 온다. 컴플리션 큐잉 핸들러(114)는 읽혀진 상태 정보 및/혹 읽기 데이터를 상위 계층에 결과값으로 전송한다.The completion queuing handler 114 reads status information indicating whether to process a command from the status area SR of the RAM 212-1, and reads from the read data area RR of the RAM 212-1. Read data according to the request. The completion queuing handler 114 transmits the read state information and/or read data to the upper layer as a result value.

도 3은 본 발명의 실시 예에 따른 램(212-1)의 포인터들을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 램(212-1)의 포인터들은 각 영역들(CR, WR, RR, SR)에 헤드 포인터(head pointer)와 테일 포인터(tail pointer)를 포함한다.3 is a diagram exemplarily showing pointers of the RAM 212-1 according to an embodiment of the present invention. Referring to FIG. 3 , the pointers of the RAM 212-1 include a head pointer and a tail pointer in each of areas CR, WR, RR, and SR.

각 영역들(CR, WR, RR, SR)의 크기는 구성된 레지스터들의 개수에 의해 고정/가변될 수 있다. 예를 들어, 커맨드 영역(CR)의 크기는 32 바이트이고, 쓰기 데이터 영역(WR) 및 읽기 데이터 영역(RR)의 크기들 각각은 64 바이트이고, 상태 영역(SR)의 크기는 16 바이트일 수 있다.The size of each of the regions CR, WR, RR, and SR may be fixed/variable according to the number of configured registers. For example, the size of the command area CR may be 32 bytes, the sizes of the write data area WR and the read data area RR may each be 64 bytes, and the size of the status area SR may be 16 bytes. have.

실시 예에 있어서, 영역(CR/WR/RR/SR)의 헤드 포인터가 지시하는 곳과 테일 포인터가 지시하는 곳이 동일할 때, 영역(CR/WR/RR/SR)은 비어있다(empty)는 의미일 수 있다. 실시 예에 있어서, 영역(CR/WR/RR/SR)의 헤드 포인터가 지시하는 곳에서 1을 뺀 값이 테일 포인터가 지시하는 곳일 때, 영역(CR/WR/RR/SR)은 가득찼다(full)는 의미일 수 있다.In an embodiment, when the location indicated by the head pointer and the tail pointer of the area CR/WR/RR/SR are the same, the area CR/WR/RR/SR is empty. may mean In the embodiment, when the value obtained by subtracting 1 from the location indicated by the head pointer of the area CR/WR/RR/SR is the location indicated by the tail pointer, the area CR/WR/RR/SR is full ( full) may mean

커맨드 영역(CR)의 헤드 포인터는, NMM 제어기(210)에 의해 처리될 넥스트 커맨드(next command)가 저장된 영역을 지시한다. NMM 제어기(210)는 커맨드 영역(CR)의 헤드 포인터를 트랙(track)할 수 있다. 이 커맨드 영역(CR)의 헤드 포인터는 하나의 레지스터에 의해 이용가능하다. 커맨드 영역(CR)의 테일 포인터는, NMM 드라이버(110)로부터 넥스트 커맨드 서브미션(submission)를 받았다는 영역을 지시한다. NMM 드라이버(110)는 커맨드 영역(CR)의 테일 포인터를 트랙할 수 있다.The head pointer of the command area CR indicates an area in which a next command to be processed by the NMM controller 210 is stored. The NMM controller 210 may track the head pointer of the command area CR. The head pointer of this command area CR is usable by one register. The tail pointer of the command area CR indicates an area in which a next command submission has been received from the NMM driver 110 . The NMM driver 110 may track the tail pointer of the command area CR.

쓰기 데이터 영역(WR)의 헤드 포인터는, NMM 제어기(210)에 의해 처리될 넥스트 쓰기 데이터가 저장된 영역을 지시한다. NMM 제어기(210)는 쓰기 데이터 영역(WR)의 헤드 포인터를 트랙할 수 있다. 쓰기 데이터 영역(WR)의 헤드 포인터는 레지스터로 이용가능하다. 쓰기 데이터 영역(WR)의 테일 포인터는, NMM 드라이버(110)로부터 넥스트 커맨드 서브미션(submission)를 받았다는 영역을 지시한다. NMM 드라이버(110)는 쓰기 데이터 영역(WR)의 테일 포인터를 트랙할 수 있다. 테일 포인터는 NMM 드라이버(110)에 의해 쓰기 커밋(commit) 포인터 레지스터에 쓰여질 수 있다.The head pointer of the write data area WR indicates an area in which next write data to be processed by the NMM controller 210 is stored. The NMM controller 210 may track the head pointer of the write data area WR. The head pointer of the write data area WR can be used as a register. The tail pointer of the write data area WR indicates an area in which a next command submission has been received from the NMM driver 110 . The NMM driver 110 may track the tail pointer of the write data area WR. The tail pointer may be written to the write commit pointer register by the NMM driver 110 .

읽기 데이터 영역(RR)의 헤드 포인터는, NMM 드라이버(110)에 의해 읽혀진 넥스트 읽기 데이터가 저장된 영역을 지시한다. NMM 드라이버(110)는 읽기 데이터 영역(RR)의 헤드 포인터를 트랙할 수 있다. 읽기 데이터 영역(RR)의 헤드 포인터는 NMM 드라이버(110)에 의해 NMM 제어기(210)의 레지스터에 쓰여질 것이다. 읽기 데이터 영역(RR)의 테일 포인터는, NMM 제어기(210)에 의해 쓰여질 넥스트 읽기 데이터가 저장된 영역을 지시한다. NMM 제어기(210)는 내부적으로 읽기 데이터 영역(RR)의 테일 포인터를 트랙할 수 있다.The head pointer of the read data area RR indicates an area in which the next read data read by the NMM driver 110 is stored. The NMM driver 110 may track the head pointer of the read data area RR. The head pointer of the read data area RR will be written to the register of the NMM controller 210 by the NMM driver 110 . The tail pointer of the read data area RR indicates an area in which next read data to be written by the NMM controller 210 is stored. The NMM controller 210 may internally track the tail pointer of the read data area RR.

상태 영역(SR)의 헤드 포인터는, NMM 드라이버(110)에 의해 읽혀진 넥스트 컴플리션(completion)이 저장된 영역을 지시한다. NMM 드라이버(110)는 상태 영역(SR)의 헤드 포인터를 트랙할 수 있다. 상태 영역(SR)의 헤드 포인터는 NMM 드라이버(110)에 의해 NMM 제어기(210)의 레지스터에 쓰여질 것이다. 상태 영역(SR)의 테일 포인터는, NMM 제어기(210)에 의해 쓰여질 넥스트 컴플리션이 저장된 영역을 지시한다. NMM 제어기(210)는 내부적으로 상태 영역(SR)의 테일 포인터를 트랙할 수 있다.The head pointer of the state area SR indicates an area in which the next completion read by the NMM driver 110 is stored. The NMM driver 110 may track the head pointer of the state area SR. The head pointer of the status area SR will be written to the register of the NMM controller 210 by the NMM driver 110 . The tail pointer of the state area SR indicates an area in which the next completion to be written by the NMM controller 210 is stored. The NMM controller 210 may internally track the tail pointer of the state area SR.

도 4는 본 발명의 실시 예에 따른 NMM(200)의 펌웨어 구조(architechture)를 예시적으로 보여주는 도면이다. 도 4를 참조하면, NMM(200)의 펌웨어 구조는 읽기 패스와 쓰기 패스가 분리될 수 있다.4 is a diagram exemplarily showing a firmware architecture of the NMM 200 according to an embodiment of the present invention. Referring to FIG. 4 , in the firmware structure of the NMM 200 , a read path and a write path may be separated.

먼저 읽기 패스는 다음과 같이 구성된다. 호스트 인터페이스 계층(host interface layer; HIL)에 해당하는 하드웨어, 예를 들어, 도 1의 커맨드 파서(212-3)는 입력 커맨드(쓰기 커맨드/읽기 커맨드)를 분석한다. 입력 커맨드가 읽기 커맨드의 경우는 읽기 동작에 대응하는 정보(IPC)가 메타 전용 플래시 변환 계층(flash translation layer; FTL)에 전송된다. 코어(Core B)는 정보(IPC)에 따라 논리 어드레스를 물리 어드레스로 변환시켜 주고, 이를 플래시 인터페이스 계층(flash interface layer; FIL)에 전송한다. 코어(Core D)는 읽기 동작을 위하여 변환된 물리 어드레스에 대응하는 비휘발성 메모리 장치(NVM)에 접근할 것이다.First, the read path is composed as follows. Hardware corresponding to a host interface layer (HIL), for example, the command parser 212-3 of FIG. 1 , analyzes an input command (write command/read command). When the input command is a read command, information (IPC) corresponding to the read operation is transmitted to a meta-only flash translation layer (FTL). The core B converts a logical address into a physical address according to the information IPC, and transmits it to a flash interface layer (FIL). The core D will access the nonvolatile memory device NVM corresponding to the converted physical address for a read operation.

한편, 쓰기 패스는 다음과 같이 구성된다. 호스트 인터페이스 계층(HIL)에 해당하는 하드웨어, 예를 들어, 도 1의 커맨드 파서(212-3)는 입력 커맨드(쓰기 커맨드/읽기 커맨드)를 분석한다. 입력 커맨드가 쓰기 커맨드의 경우는 쓰기 동작에 대응하는 스트림 패킷이 구성되고, 이러한 스트림 패팃은 스트림 버퍼에 전송한다. 실시 예에 있어서, 스트림 버퍼는 램(도 1, 212-1)과 데이터를 교환할 수 있다. 실시 예에 있어서, 스트림 패킷의 크기는 512 Kbyte 일 수 있다. On the other hand, the write path is configured as follows. Hardware corresponding to the host interface layer (HIL), for example, the command parser 212-3 of FIG. 1 , analyzes an input command (write command/read command). When the input command is a write command, a stream packet corresponding to the write operation is formed, and this stream pattern is transmitted to the stream buffer. In an embodiment, the stream buffer may exchange data with the RAM ( FIGS. 1 and 212-1 ). In an embodiment, the size of the stream packet may be 512 Kbytes.

코어(Core C)는 입출력 전용 파일 변환 계층(FTL)에 따라 논리 어드레스를 물리 어드레스로 변환시켜 주고, 이를 플래시 인터페이스 계층(FIL)에 전송한다. 코어(Core D)는 쓰기 동작을 위하여 변환된 물리 어드레스에 대응하는 비휘발성 메모리 장치(NVM)에 접근할 것이다.The core C converts a logical address into a physical address according to the input/output dedicated file translation layer (FTL), and transmits it to the flash interface layer (FIL). The core D may access the nonvolatile memory device NVM corresponding to the converted physical address for a write operation.

한편, 호스트 인터페이스 계층 펌웨어(HIL FW)는 전송된 패킷(커맨드 패킷)을 디코딩하고, 이에 해당하는 커맨드 동작을 수행할 수 있다. 호스트 인터페이스 계층 펌웨어는 코어(Core A)에 수행될 수 있다.Meanwhile, the host interface layer firmware (HIL FW) may decode a transmitted packet (command packet) and perform a corresponding command operation. The host interface layer firmware may be performed on the core (Core A).

도 5는 본 발명을 개념적으로 설명하기 위한 NMM(200)의 펌웨어 동작을 보여주는 도면이다. 도 5를 참조하면, 호스트 인터페이스 계층 하드웨어, 즉, 커맨드 파서(213-3)는 호스트(100, 도 1 참조)으로부터 리프레쉬 커맨드 혹은 프리차지 커맨드(REF/PRE)을 입력 받고 이를 인식하고, 코어(Core A)에서 구동되는 호스트 인터페이스 계층 펌웨어(HIL FW)는 리프레쉬 커맨드 혹은 프리차지 커맨드(REF/PRE)에 응답하여 PVT 동작 동작을 위한 적어도 하나의 제어 신호(PVT CMPS)를 발생시킨다.5 is a diagram showing the firmware operation of the NMM 200 for conceptually explaining the present invention. Referring to FIG. 5 , the host interface layer hardware, that is, the command parser 213-3 receives a refresh command or a precharge command (REF/PRE) from the host 100 (refer to FIG. 1 ), recognizes it, and the core ( The host interface layer firmware (HIL FW) running in Core A) generates at least one control signal (PVT CMPS) for PVT operation in response to a refresh command or a precharge command (REF/PRE).

도 6은 본 발명의 제 1 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다. 도 1 내지 도 6을 참조하면, PVT 보상 유닛(212-4)은 리프레쉬/프리차지 커맨드(REF/PRE)에 응답하여 데이터 패드/데이터 스트로브 신호 패드/ZQ 패드(DQ/DQS/ZQ, 201)에 연결된 버퍼 드라이버(202)의 기울기(slew) 및/혹 강도(stregth)를 조절할 수 있다.6 is a view showing a PVT compensation method according to the first embodiment of the present invention. 1 to 6 , the PVT compensation unit 212-4 responds to the refresh/precharge command REF/PRE to the data pad/data strobe signal pad/ZQ pad (DQ/DQS/ZQ, 201). It is possible to adjust the slew and/or strength of the buffer driver 202 connected to the .

도 7은 본 발명의 제 2 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다. 도 1 내지 도 5 및 도 7을 참조하면, PVT 보상 유닛(212-4)은 리프레쉬/프리차지 커맨드(REF/PRE)에 응답하여 클록 버퍼(203)에 연결된 듀티 싸이클 보정 유닛(204)를 제어할 수 있다. 이로써 클록(CLK)의 듀티가 조정됨으로써, 최적의 내부 클록(ICLK)이 발생될 수 있다.7 is a diagram illustrating a PVT compensation method according to a second embodiment of the present invention. 1 to 5 and 7 , the PVT compensation unit 212-4 controls the duty cycle correction unit 204 coupled to the clock buffer 203 in response to the refresh/precharge command REF/PRE. can do. As a result, the duty of the clock CLK is adjusted, so that an optimal internal clock ICLK may be generated.

도 8은 본 발명의 제 3 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다. 도 1 내지 도 5 및 도 8을 참조하면, PVT 보상 유닛(212-4)은 리프레쉬/프리차지 커맨드(REF/PRE)에 응답하여 입출력 데이터/데이터 스트로브 신호(DQ/DQS)의 지연을 조절할 수 있다. 여기서 지연은 디렐이 탭 조절에 의해 형성된다.8 is a diagram illustrating a PVT compensation method according to a third embodiment of the present invention. 1 to 5 and 8 , the PVT compensation unit 212-4 may adjust the delay of the input/output data/data strobe signal DQ/DQS in response to the refresh/precharge command REF/PRE. have. Here the delay is formed by the direl tap control.

한편, 도 1에 도시된 NMM(200)는 입출력 데이터(DQ/DQS)를 램(212-1)에 직접 저장하였다. 하지만, 본 발명이 반드시 여기에 제한되지 않을 것이다. 본 발명의 NMM는 입출력 데이터(DQ/DQS)를 버퍼링하는 데이터 버퍼를 경유하여 램에 저장할 수 있다.Meanwhile, the NMM 200 illustrated in FIG. 1 directly stores input/output data (DQ/DQS) in the RAM 212-1. However, the present invention will not necessarily be limited thereto. The NMM of the present invention may store input/output data (DQ/DQS) in the RAM via a data buffer buffering it.

도 9는 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다. 도 9를 참조하면, 본 발명의 실시 예에 따른 컴퓨팅 시스템(20)은 호스트(100)와 비휘발성 메모리 모듈(NMM, 200a)을 포함한다. 비휘발성 메모리 모듈(200a)은, 도 1에 도시된 비휘발성 메모리 모듈(200)과 비교하여 입출력 데이터(DQ/DQS)를 입출력하는 데이터 버퍼들(205)을 더 포함한다. 데이터 버퍼들(205)을 제어하기 위하여 NMM 물리 계층(212a)을 포함하는 NMM 제어기(210a)의 동작이 도 1의 NMM 제어기(210)와 다를 수 있다.9 is a block diagram illustrating a computing system according to another embodiment of the present invention. Referring to FIG. 9 , the computing system 20 according to an embodiment of the present invention includes a host 100 and a non-volatile memory module (NMM, 200a). The nonvolatile memory module 200a further includes data buffers 205 for inputting and outputting input/output data (DQ/DQS) compared to the nonvolatile memory module 200 illustrated in FIG. 1 . The operation of the NMM controller 210a including the NMM physical layer 212a to control the data buffers 205 may be different from that of the NMM controller 210 of FIG. 1 .

도 10은 본 발명의 제 4 실시 예에 따른 PVT 보상 방법을 보여주는 도면이다. 도 1 내지 도 10을 참조하면, PVT 보상 유닛(212-4a)은 리프레쉬/프리차지 커맨드(REF/PRE)에 응답하여 데이터 버퍼들(DB1 ~ DB9) 각각의 PVT 보상 동작을 수행할 수 있다. 실시 예에 있어서, PVT 보상 동작은, 제 1 제어 신호 라인들(CS1)에 연결된 제 1 데이터 버퍼들(DB1 ~ DB5)과 제 2 제어 신호 라인들(CS2)에 연결된 제 2 데이터 버퍼들(DB6 ~ DB9)을 개별적으로 수행할 수 있다.10 is a diagram illustrating a PVT compensation method according to a fourth embodiment of the present invention. 1 to 10 , the PVT compensation unit 212 - 4a may perform a PVT compensation operation of each of the data buffers DB1 to DB9 in response to the refresh/precharge command REF/PRE. In an embodiment, the PVT compensation operation includes the first data buffers DB1 to DB5 connected to the first control signal lines CS1 and the second data buffers DB6 connected to the second control signal lines CS2. ~ DB9) can be performed individually.

도 11은 본 발명의 실시 예에 따른 NMM의 PVT 보상 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 11을 참조하면, NMM(200/200a)의 PVT 보상 방법은 다음과 같다. 호스트(100)로부터 리프레쉬 커맨드 혹은 프리차지 커맨드가 입력된다(S110). NMM(200, 200a)의 커맨드 파서(212-3)가 리프레쉬 커맨드/프리차지 커맨드를 인식할 때, NMM 제어기(210/210a)의 호스트 인터테이스 계층 펌웨어(HIL FW)는 PVT 보상 동작을 수행한다(S120).11 is a flowchart exemplarily illustrating a PVT compensation method of an NMM according to an embodiment of the present invention. 1 to 11 , the PVT compensation method of the NMM 200/200a is as follows. A refresh command or a precharge command is input from the host 100 ( S110 ). When the command parser 212-3 of the NMMs 200 and 200a recognizes the refresh command/precharge command, the host interface layer firmware (HIL FW) of the NMM controller 210/210a performs a PVT compensation operation. do (S120).

본 발명의 실시 예에 따른 NMM의 PVT 보상 방법은 리프레쉬 커맨드 혹은 프라치지 커맨드에 응답하여 PVT 보상 동작을 수행할 수 있다.The PVT compensation method of the NMM according to an embodiment of the present invention may perform a PVT compensation operation in response to a refresh command or a prage command.

도 12는 본 발명에 따른 비휘발성 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다. 도 12을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100), 램 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305), 칩셋(1400), GPU(1500), 입출력 장치(1600), 그리고 스토리지 장치(1700)를 포함한다.12 is a block diagram exemplarily showing a computing system to which a non-volatile memory module according to the present invention is applied. Referring to FIG. 12 , the computing system 1000 includes a processor 1100 , RAM modules 1200 and 1250 , non-volatile memory modules 1300 and 1305 , a chipset 1400 , a GPU 1500 , and an input/output device ( 1600 ), and a storage device 1700 .

프로세서(1100)는 컴퓨팅 시스템(1000)의 제반 동작을 제어할 수 있다. 프로세서(1100)는 컴퓨팅 시스템(1000)에서 수행되는 다양한 연산을 수행할 수 있다.The processor 1100 may control overall operations of the computing system 1000 . The processor 1100 may perform various operations performed by the computing system 1000 .

램 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305)은 프로세서(1100)와 직접적으로 연결될 수 있다. 예를 들어, 램 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305) 각각은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 가질 수 있다. 또는, 램 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305) 각각은 프로세서(1100)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. 예시적으로, 비휘발성 메모리 모듈들(1300, 1305)은 도 1 내지 도 11을 참조하여 설명된 비휘발성 메모리 모듈(200, 200a)일 수 있다. The RAM modules 1200 and 1250 and the nonvolatile memory modules 1300 and 1305 may be directly connected to the processor 1100 . For example, each of the RAM modules 1200 and 1250 and the nonvolatile memory modules 1300 and 1305 may have the form of a dual in-line memory module (DIMM). Alternatively, each of the RAM modules 1200 and 1250 and the nonvolatile memory modules 1300 and 1305 may be mounted in a DIMM socket directly connected to the processor 1100 to communicate with the processor 1100 . For example, the nonvolatile memory modules 1300 and 1305 may be the nonvolatile memory modules 200 and 200a described with reference to FIGS. 1 to 11 .

램 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305)은 동일한 인터페이스(1150)를 통해 프로세서(1100)와 통신할 수 있다. 예를 들어, 비휘발성 메모리 모듈들(1300, 1305) 및 램 모듈들(1200, 1250)은 DDR(Double Data Rate) 방식의 인터페이스(1150)를 통해 통신할 수 있다. 예시적으로, 프로세서(1100)는 램 모듈들(1200, 1250)을 컴퓨팅 시스템(1000)의 동작 메모리, 버퍼 메모리, 또는 캐시 메모리로서 사용할 수 있다.The RAM modules 1200 and 1250 and the nonvolatile memory modules 1300 and 1305 may communicate with the processor 1100 through the same interface 1150 . For example, the nonvolatile memory modules 1300 and 1305 and the RAM modules 1200 and 1250 may communicate through the double data rate (DDR) interface 1150 . For example, the processor 1100 may use the RAM modules 1200 and 1250 as an operating memory, a buffer memory, or a cache memory of the computing system 1000 .

칩셋(1400)은 프로세서(1100)와 전기적으로 연결되고, 프로세서(1100)의 제어에 따라 컴퓨팅 시스템(1000)의 하드웨어를 제어할 수 있다. 예를 들어, 칩셋(1400)은 주요 버스들을 통해 GPU(1500), 입출력 장치(1600), 및 스토리지 장치(1700) 각각과 연결되고, 주요 버스들에 대한 브릿지 역할을 수행할 수 있다. The chipset 1400 is electrically connected to the processor 1100 , and may control hardware of the computing system 1000 according to the control of the processor 1100 . For example, the chipset 1400 may be connected to each of the GPU 1500 , the input/output device 1600 , and the storage device 1700 through major buses, and may serve as a bridge for the major buses.

GPU(1500)는 컴퓨팅 시스템(1000)의 영상 데이터를 출력하기 위한 일련의 연산 동작을 수행할 수 있다. 예시적으로 GPU(1500)는 시스템-온-칩 형태로 프로세서(1100) 내에 실장 될 수 있다.The GPU 1500 may perform a series of arithmetic operations for outputting image data of the computing system 1000 . For example, the GPU 1500 may be mounted in the processor 1100 in the form of a system-on-chip.

입출력 장치(1600)는 컴퓨팅 시스템(1000)으로 데이터 또는 커맨드를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 예를 들어, 입출력 장치(1600)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 장치들 및 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 장치들을 포함할 수 있다.The input/output device 1600 includes various devices that input data or commands to the computing system 1000 or output data to the outside. For example, the input/output device 1600 includes user input devices such as a keyboard, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, a microphone, a gyroscope sensor, a vibration sensor, a piezoelectric element, and an LCD ( Liquid Crystal Display), an organic light emitting diode (OLED) display device, an active matrix OLED (AMOLED) display device, and user output devices such as an LED, a speaker, and a motor may be included.

스토리지 장치(1700)는 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 스토리지 장치(1600)는 하드 디스크 드라이브, SSD, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.The storage device 1700 may be used as a storage medium of the computing system 1000 . The storage device 1600 may include mass storage media such as a hard disk drive, an SSD, a memory card, and a memory stick.

예시적으로, 비휘발성 메모리 모듈들(1300, 1305)은 프로세서(1100)에 의해 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 비휘발성 메모리 모듈들(1300, 1305) 및 프로세서(1100) 사이의 인터페이스(1150)는 스토리지 장치(1700) 및 프로세서(1100) 사이의 인터페이스보다 고속 인터페이스일 수 있다. 즉, 프로세서(1100)가 비휘발성 메모리 모듈들(1300, 1305)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다.For example, the non-volatile memory modules 1300 and 1305 may be used by the processor 1100 as a storage medium of the computing system 1000 . The interface 1150 between the nonvolatile memory modules 1300 and 1305 and the processor 1100 may be a higher-speed interface than the interface between the storage device 1700 and the processor 1100 . That is, since the processor 1100 uses the non-volatile memory modules 1300 and 1305 as a storage medium, the performance of the computing system is improved.

도 13는 도 12의 비휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 13은 LRDIMM(Load Reduced DIMM) 형태를 갖는 비휘발성 메모리 모듈(1300)을 보여준다. 예시적으로, 도 13에 도시된 비휘발성 메모리 모듈(1300)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. 13 is a block diagram exemplarily showing any one of the nonvolatile memory modules of FIG. 12 . For example, FIG. 13 shows a nonvolatile memory module 1300 having a load reduced DIMM (LRDIMM) form. Illustratively, the nonvolatile memory module 1300 shown in FIG. 13 has the form of a dual in-line memory module (DIMM) and is mounted in a DIMM socket to communicate with the processor 1100 . can

도 13을 참조하면, 비휘발성 메모리 모듈(1300)은 비휘발성 메모리 모듈 제어기(1310), 버퍼 메모리(1320), 비휘발성 메모리 장치(1330), 및 직렬 프레즌스 검출 칩(1340)(SPD; Serial Presence Detect chip)를 포함한다. 비휘발성 메모리 모듈 제어기(1310)는 램(1311)을 포함할 수 있다. 예시적으로, 비휘발성 메모리 장치(1330)는 복수의 비휘발성 메모리들(NVM)을 포함할 수 있다. 비휘발성 메모리 장치(1330)에 포함된 복수의 비휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 비휘발성 메모리 장치(1330)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.Referring to FIG. 13 , the nonvolatile memory module 1300 includes a nonvolatile memory module controller 1310 , a buffer memory 1320 , a nonvolatile memory device 1330 , and a serial presence detection chip 1340 (SPD; Serial Presence). detect chip). The nonvolatile memory module controller 1310 may include a RAM 1311 . For example, the non-volatile memory device 1330 may include a plurality of non-volatile memories (NVM). Each of the plurality of nonvolatile memories included in the nonvolatile memory device 1330 may be implemented as a separate chip, a separate package, a separate device, or a separate module. Alternatively, the nonvolatile memory device 1330 may be implemented as one chip or one package.

예시적으로, 비휘발성 메모리 모듈 제어기(1310), 램(1311), 버퍼 메모리(1320), 및 비휘발성 메모리 장치(1330)는 도 1 내지 도 11을 참조하여 설명된 비휘발성 메모리 모듈 제어기(210), 램(213), 버퍼 메모리(220), 및 복수의 비휘발성 메모리(230)와 동일하거나 또는 유사하게 동작할 수 있다. For example, the nonvolatile memory module controller 1310 , the RAM 1311 , the buffer memory 1320 , and the nonvolatile memory device 1330 include the nonvolatile memory module controller 210 described with reference to FIGS. 1 to 11 . ), the RAM 213 , the buffer memory 220 , and the plurality of nonvolatile memories 230 may operate the same or similarly.

예시적으로, 비휘발성 메모리 모듈 제어기(1310)는 프로세서(1100)와 복수의 데이터 신호들(DQ) 및 복수의 데이터 스트로브 신호들(DQS)을 송수신할 수 있고, 별도의 신호 라인들을 통해 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)을 수신할 수 있다. For example, the nonvolatile memory module controller 1310 may transmit/receive a plurality of data signals DQ and a plurality of data strobe signals DQS to and from the processor 1100 , and may receive a RAM command through separate signal lines. (CMD_R), a RAM address (ADDR_R), and a clock (CK) may be received.

SPD(1340)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1340)는 비휘발성 메모리 모듈(1300)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1340)는 비휘발성 메모리 모듈(1300)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 비휘발성 메모리 모듈(1300)이 포함된 컴퓨팅 시스템이 부팅될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1340)를 읽고, 이를 기반으로 비휘발성 메모리 모듈(1300)을 인식할 수 있다. 프로세서(1100)는 SPD(1340)를 기반으로 비휘발성 메모리 모듈(1300)을 저장 매체로서 사용할 수 있다.The SPD 1340 may be a programmable read-only memory (EEPROM). The SPD 1340 may include initial information or device information of the nonvolatile memory module 1300 . For example, the SPD 1340 may include initial information or device information such as a module type, a module configuration, a storage capacity, a module type, and an execution environment of the nonvolatile memory module 1300 . When the computing system including the non-volatile memory module 1300 is booted, the processor 1100 of the computing system may read the SPD 1340 and recognize the non-volatile memory module 1300 based thereon. The processor 1100 may use the nonvolatile memory module 1300 as a storage medium based on the SPD 1340 .

예시적으로, SPD(1340)는 부가 통신 채널(Side-Band Communication Channel)을 통해 프로세서(1100)와 통신할 수 있다. 프로세서(1100)는 부가 통신 채널을 통해 SPD(1340)와 부가 신호(SBS; Side-Band Signal)을 주고 받을 수 있다. 예시적으로, SPD(1340)는 부가 통신 채널을 통해 비휘발성 메모리 모듈 제어기(1310)와 통신할 수 있다. 예시적으로, 부가 통신 채널은 I2C 통신에 기반된 채널일 수 있다. 예시적으로, SPD(1340), 비휘발성 메모리 모듈 제어기(1310), 및 프로세서(1100)는 I2C 통신을 기반으로 서로 통신하거나 또는 정보를 주고 받을 수 있다.For example, the SPD 1340 may communicate with the processor 1100 through a side-band communication channel. The processor 1100 may send and receive an additional signal (SBS) with the SPD 1340 through an additional communication channel. Illustratively, the SPD 1340 may communicate with the non-volatile memory module controller 1310 through an additional communication channel. Exemplarily, the additional communication channel may be a channel based on I2C communication. For example, the SPD 1340 , the nonvolatile memory module controller 1310 , and the processor 1100 may communicate with each other or exchange information based on I2C communication.

도 14은 도 12의 비휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 14은 RDIMM(Registered DIMM) 형태를 갖는 비휘발성 메모리 모듈(2300)의 블록도이다. 예시적으로, 도 14에 도시된 비휘발성 메모리 모듈(2300)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. 14 is a block diagram exemplarily showing any one of the nonvolatile memory modules of FIG. 12 . For example, FIG. 14 is a block diagram of a nonvolatile memory module 2300 having a registered DIMM (RDIMM) form. Illustratively, the nonvolatile memory module 2300 shown in FIG. 14 has the form of a dual in-line memory module (DIMM) and is mounted in a DIMM socket to communicate with the processor 1100 . can

도 14을 참조하면, 비휘발성 메모리 모듈(2300)은 비휘발성 메모리 모듈 제어기(2310), 버퍼 메모리(2320), 비휘발성 메모리 장치(2330), 직렬 프레즌스 검출 칩(2340)(SPD; Serial Presence Detect chip), 및 데이터 버퍼 회로(2350)를 포함한다. 비휘발성 메모리 모듈 제어기(2310)는 램(2311)을 포함한다. 비휘발성 메모리 모듈 제어기(2310), 램(2311), 비휘발성 메모리 장치(2330), 및 SPD(2340)는 도 1 및 도 22에서 설명되었으므로, 이에 대한 상세한 설명은 생략하기로 한다.Referring to FIG. 14 , the nonvolatile memory module 2300 includes a nonvolatile memory module controller 2310 , a buffer memory 2320 , a nonvolatile memory device 2330 , and a serial presence detection chip 2340 (SPD; Serial Presence Detect). chip), and a data buffer circuit 2350 . The non-volatile memory module controller 2310 includes a RAM 2311 . Since the nonvolatile memory module controller 2310 , the RAM 2311 , the nonvolatile memory device 2330 , and the SPD 2340 have been described with reference to FIGS. 1 and 22 , a detailed description thereof will be omitted.

데이터 버퍼 회로(2350)는 프로세서(1100, 도 12 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 비휘발성 메모리 모듈 제어기(2350)로 전달할 수 있다. 또는 데이터 버퍼 회로(2350)는 비휘발성 메모리 모듈 제어기(2310)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.The data buffer circuit 2350 receives information or data from the processor 1100 (refer to FIG. 12 ) through the data signal DQ and the data strobe signal DQS, and converts the received information or data to the nonvolatile memory module controller 2350 ) can be passed as Alternatively, the data buffer circuit 2350 receives information or data from the nonvolatile memory module controller 2310 and transmits the received information or data to the processor 1100 through the data signal DQ and the data strobe signal DQS. can

예시적으로, 데이터 버퍼 회로(2350)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 비휘발성 메모리 모듈 제어기(2310)와 신호를 주고 받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 비휘발성 메모리 모듈 제어기(2310)의 제어에 따라 동작할 수 있다.For example, the data buffer circuit 2350 may include a plurality of data buffers. Each of the plurality of data buffers may transmit and receive a data signal DQ and a data strobe signal DQS to and from the processor 1100 . Alternatively, each of the plurality of data buffers may transmit and receive signals to and from the nonvolatile memory module controller 2310 . For example, each of the plurality of data buffers may operate under the control of the nonvolatile memory module controller 2310 .

예시적으로, 비휘발성 메모리 모듈 제어기(2310)는 도 1 내지 도 11을 참조하여 설명된 동작 방법에 따라 PVT 보상 동작을 수행할 수 있다.For example, the nonvolatile memory module controller 2310 may perform a PVT compensation operation according to the operation method described with reference to FIGS. 1 to 11 .

도 15는 본 발명에 따른 비휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 도 15를 참조하면, 컴퓨팅 시스템(3000)은 프로세서(3100), 비휘발성 메모리 모듈(3200), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)를 포함한다. 프로세서(3100), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)는 도 12의 그것들과 실질적으로 동일하므로 이에 대한 상세한 설명은 생략하기로 한다. 15 is a block diagram illustrating another example of a computing system to which a non-volatile memory module according to the present invention is applied. For concise description, detailed descriptions of the above-described components are omitted. Referring to FIG. 15 , a computing system 3000 includes a processor 3100 , a non-volatile memory module 3200 , a chipset 3400 , a GPU 3500 , an input/output device 3600 , and a storage device 3700 . . Since the processor 3100 , the chipset 3400 , the GPU 3500 , the input/output device 3600 , and the storage device 3700 are substantially the same as those of FIG. 12 , a detailed description thereof will be omitted.

비휘발성 메모리 모듈(3200)은 프로세서(3100)와 직접적으로 연결될 수 있다. 예를 들어, 비휘발성 메모리 모듈(3200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.The nonvolatile memory module 3200 may be directly connected to the processor 3100 . For example, the non-volatile memory module 3200 may have the form of a dual in-line memory module (DIMM) and may be mounted in a DIMM socket to communicate with the processor 3100 .

비휘발성 메모리 모듈(3200)은 제어 회로(3210), 비휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함할 수 있다. 도 12 내지 도 14의 비휘발성 메모리 모듈들(1300, 2300)과 달리, 프로세서(3100)는 비휘발성 메모리 모듈(3200)의 비휘발성 메모리 장치(3220) 및 램 장치(3230)를 각각 엑세스할 수 있다. 좀 더 상세한 예로서, 제어 회로(3210)는 프로세서(3100)의 제어에 따라 수신된 데이터를 비휘발성 메모리 장치(3220)에 저장하거나 또는 램 장치(3230)에 저장할 수 있다. 또는 제어 회로(3210)는 프로세서(3100)의 제어에 따라 비휘발성 메모리 장치(3220)에 저장된 데이터를 프로세서(3100)로 전송하거나 또는 램 장치(3230)에 저장된 데이터를 프로세서(3100)로 전송할 수 있다. 즉, 프로세서(3100)는 비휘발성 메모리 모듈(3200)에 포함된 비휘발성 메모리 장치(3220) 및 램 장치(3230)를 각각 인식할 수 있다. 프로세서(3100)는 비휘발성 메모리 모듈(3200)의 비휘발성 메모리 장치(3220)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다. 또는 프로세서(3100)는 램 장치(3230)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다.The nonvolatile memory module 3200 may include a control circuit 3210 , a nonvolatile memory device 3220 , and a RAM device 3230 . Unlike the non-volatile memory modules 1300 and 2300 of FIGS. 12 to 14 , the processor 3100 may access the non-volatile memory device 3220 and the RAM device 3230 of the non-volatile memory module 3200, respectively. have. As a more detailed example, the control circuit 3210 may store the received data in the nonvolatile memory device 3220 or the RAM device 3230 according to the control of the processor 3100 . Alternatively, the control circuit 3210 may transmit data stored in the nonvolatile memory device 3220 to the processor 3100 or data stored in the RAM device 3230 to the processor 3100 under the control of the processor 3100 . have. That is, the processor 3100 may recognize the nonvolatile memory device 3220 and the RAM device 3230 included in the nonvolatile memory module 3200 , respectively. The processor 3100 may store data or read stored data in the nonvolatile memory device 3220 of the nonvolatile memory module 3200 . Alternatively, the processor 3100 may store data in the RAM device 3230 or read the stored data.

예시적으로, 프로세서(3100)는 비휘발성 메모리 모듈(3200)의 비휘발성 메모리 장치(3220)을 컴퓨팅 시스템(3000)의 스토리지 매체로서 사용할 수 있고, 프로세서(3100)는 비휘발성 메모리 모듈(3200)의 램 장치(3230)를 컴퓨팅 시스템(3000)의 메인 메모리로서 사용할 수 있다. 즉, 프로세서(3100)는 하나의 DIMM 소켓에 장착된 하나의 메모리 모듈에 포함된 비휘발성 메모리 장치 또는 램 장치를 각각 선택적으로 엑세스할 수 있다.For example, the processor 3100 may use the nonvolatile memory device 3220 of the nonvolatile memory module 3200 as a storage medium of the computing system 3000 , and the processor 3100 may include the nonvolatile memory module 3200 . of the RAM device 3230 may be used as the main memory of the computing system 3000 . That is, the processor 3100 may selectively access a nonvolatile memory device or a RAM device included in one memory module mounted in one DIMM socket, respectively.

예시적으로, 프로세서(3100)는 DDR(Double Data Rate) 인터페이스(3300)를 통해 비휘발성 메모리 모듈(3200)과 통신할 수 있다.For example, the processor 3100 may communicate with the nonvolatile memory module 3200 through a double data rate (DDR) interface 3300 .

도 16는 도 15의 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 16를 참조하면, 비휘발성 메모리 모듈(3200)은 제어 회로(3210), 비휘발성 메모리 장치(3220), 및 램 장치(3220)를 포함한다. 예시적으로, 비휘발성 메모리 장치(3220)는 복수의 비휘발성 메모리들을 포함할 수 있고, 램 장치(3230)는 복수의 DRAM들을 포함할 수 있다. 예시적으로, 복수의 비휘발성 메모리들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 스토리지로 사용될 수 있다. 예시적으로, 복수의 비휘발성 메모리들(NVM) 각각은 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 비휘발성 메모리 소자들을 포함할 수 있다. 16 is a block diagram exemplarily illustrating the nonvolatile memory module of FIG. 15 . Referring to FIG. 16 , the nonvolatile memory module 3200 includes a control circuit 3210 , a nonvolatile memory device 3220 , and a RAM device 3220 . For example, the nonvolatile memory device 3220 may include a plurality of nonvolatile memories, and the RAM device 3230 may include a plurality of DRAMs. For example, the plurality of non-volatile memories may be used as storage of the computing system 3000 by the processor 3100 . Exemplarily, each of the plurality of non-volatile memories (NVM) may include an electrically erasable and programmable ROM (EEPROM), a NAND flash memory, a NOR flash memory, a phase-change RAM (PRAM), a resistive RAM (ReRAM), and a ferroelectric RAM (FRAM). ) and non-volatile memory devices such as STT-MRAM (Spin-Torque Magnetic RAM).

복수의 DRAM들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 메인 메모리로서 사용될 수 있다. 예시적으로, 램 장치(3230)는 DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, MRAM 등과 같은 랜덤 엑세스 메모리 소자들을 포함할 수 있다.The plurality of DRAMs may be used by the processor 3100 as main memory of the computing system 3000 . For example, the RAM device 3230 may include random access memory devices such as DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, and MRAM.

제어 회로(3210)는 비휘발성 메모리 모듈 제어기(3211) 및 SPD(3212)를 포함한다. 비휘발성 메모리 모듈 제어기(3211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신할 수 있다. 비휘발성 메모리 모듈 제어기(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 비휘발성 메모리 장치(3220) 또는 램 장치(3230)에 선택적으로 저장할 수 있다. 또는 비휘발성 메모리 모듈 제어기(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 비휘발성 메모리 장치(3220) 또는 램 장치(3230)에 저장된 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(3100)로 선택적으로 전송할 수 있다.The control circuit 3210 includes a non-volatile memory module controller 3211 and an SPD 3212 . The nonvolatile memory module controller 3211 may receive a command CMD, an address ADDR, and a clock CK from the processor 3100 . In response to signals received from the processor 3100 , the nonvolatile memory module controller 3211 converts the data received through the data signal DQ and the data strobe signal DQS to the nonvolatile memory device 3220 or the RAM device. 3230 may optionally be stored. Alternatively, in response to signals received from the processor 3100 , the nonvolatile memory module controller 3211 converts data stored in the nonvolatile memory device 3220 or the RAM device 3230 into a data signal DQ and a data strobe signal ( DQS) may be selectively transmitted to the processor 3100 .

예시적으로, 프로세서(3100)는 커맨드(CMD), 어드레스(ADDR), 또는 별도의 신호 또는 별도의 정보를 통해 비휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. 즉, 프로세서(3100)는 비휘발성 메모리 모듈(3200)에 포함된 비휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. For example, the processor 3100 may selectively access the nonvolatile memory device 3220 or the RAM device 3230 through a command CMD, an address ADDR, or a separate signal or separate information. That is, the processor 3100 may selectively access the nonvolatile memory device 3220 or the RAM device 3230 included in the nonvolatile memory module 3200 .

도 17은 도 15의 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 예시적으로, 도 17의 비휘발성 메모리 모듈(4200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.17 is a block diagram exemplarily illustrating the nonvolatile memory module of FIG. 15 . For example, the nonvolatile memory module 4200 of FIG. 17 may have a dual in-line memory module (DIMM) form, and may be mounted in a DIMM socket to communicate with the processor 3100 .

도 15 및 도 17을 참조하면, 비휘발성 메모리 모듈(4200)은 제어 회로(4100), 비휘발성 메모리 장치(4220), 및 램 장치(4230)를 포함한다. 제어 회로(4210)는 비휘발성 메모리 모듈 제어기(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다.15 and 17 , the nonvolatile memory module 4200 includes a control circuit 4100 , a nonvolatile memory device 4220 , and a RAM device 4230 . The control circuit 4210 includes a non-volatile memory module controller 4211 , an SPD 4212 , and a data buffer circuit 4213 .

비휘발성 메모리 모듈 제어기(4211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신한다. 비휘발성 메모리 모듈 제어기(4211)는 수신된 신호들에 응답하여 비휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다. 예를 들어, 프로세서(3100)는 비휘발성 메모리 장치(4220) 또는 램 장치(4230) 각각을 선택적으로 엑세스할 수 있다. 비휘발성 메모리 모듈 제어기(4231)는 프로세서(4100)의 제어에 따라 비휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다.The nonvolatile memory module controller 4211 receives a command CMD, an address ADDR, and a clock CK from the processor 3100 . The nonvolatile memory module controller 4211 may control the nonvolatile memory device 4220 or the RAM device 4230 in response to the received signals. For example, the processor 3100 may selectively access each of the nonvolatile memory device 4220 or the RAM device 4230 . The nonvolatile memory module controller 4231 may control the nonvolatile memory device 4220 or the RAM device 4230 under the control of the processor 4100 .

데이터 버퍼 회로(4213)는 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 수신된 신호들을 비휘발성 메모리 모듈 제어기(4211) 및 램 장치(4230)로 제공할 수 있다. 또는 데이터 버퍼 회로(4213)는 비휘발성 메모리 모듈 제어기(4211) 또는 램 장치(4230)로부터 수신된 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다.The data buffer circuit 4213 may receive the data signal DQ and the data strobe signal DQS from the processor 3100 , and provide the received signals to the nonvolatile memory module controller 4211 and the RAM device 4230 . have. Alternatively, the data buffer circuit 4213 may provide the data received from the nonvolatile memory module controller 4211 or the RAM device 4230 to the processor 3100 through the data signal DQ and the data strobe signal DQS. can

예시적으로, 프로세서(3100)가 비휘발성 메모리 장치(4220)에 데이터를 저장하는 경우, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신되는 데이터는 비휘발성 메모리 모듈 제어기(4211)로 제공되고, 비휘발성 메모리 모듈 제어기(4211)는 수신된 데이터를 가공하여 비휘발성 메모리 장치(4220)로 제공할 수 있다. 또는 프로세서(3100)가 비휘발성 메모리 장치(4220)에 저장된 데이터를 읽는 경우, 데이터 버퍼 회로(4213)는 비휘발성 메모리 모듈 제어기(4211)로부터 제공되는 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다. 또는 프로세서(3100)가 램 장치(4230)에 데이터를 저장하는 경우, 데이터 버퍼 회로(4213)로 수신된 데이터는 램 장치(4230)로 제공되고, 비휘발성 메모리 모듈 제어기(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 램 장치(4230)로 전달할 수 있다. 또는 프로세서(3100)가 램 장치(4230)에 저장된 데이터를 읽는 경우, 비휘발성 메모리 모듈 제어기(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 램 장치(4230)로 전달하고, 램 장치(4230)는 전달된 신호들에 응답하여, 데이터를 데이터 버퍼 회로(4213)로 제공하고, 데이터 버퍼 회로(4213)는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 데이터를 프로세서(3100)로 제공할 수 있다. 예시적으로, 비휘발성 메모리 모듈 제어기(3211)는 도 1 내지 도 11에서 설명된 동작 방법에 따라 성능 향상을 꾀할 수 있다.For example, when the processor 3100 stores data in the nonvolatile memory device 4220 , data received through the data signal DQ and the data strobe signal DQS is transmitted to the nonvolatile memory module controller 4211 . provided, the nonvolatile memory module controller 4211 may process the received data and provide it to the nonvolatile memory device 4220 . Alternatively, when the processor 3100 reads data stored in the nonvolatile memory device 4220 , the data buffer circuit 4213 converts the data provided from the nonvolatile memory module controller 4211 into a data signal DQ and a data strobe signal. (DQS) may be provided to the processor 3100 . Alternatively, when the processor 3100 stores data in the RAM device 4230 , the data received by the data buffer circuit 4213 is provided to the RAM device 4230 , and the nonvolatile memory module controller 4231 receives the received command. The CMD, the address ADDR, and the clock CK may be transmitted to the RAM device 4230 . Alternatively, when the processor 3100 reads data stored in the RAM device 4230 , the nonvolatile memory module controller 4231 transmits the received command CMD, the address ADDR, and the clock CK to the RAM device 4230 . , the RAM device 4230 provides data to the data buffer circuit 4213 in response to the transmitted signals, and the data buffer circuit 4213 provides a data signal DQ and a data strobe signal DQS. Through this, data may be provided to the processor 3100 . For example, the nonvolatile memory module controller 3211 may improve performance according to the operating method described with reference to FIGS. 1 to 11 .

도 18은 도 15의 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 18을 참조하면, 비휘발성 메모리 모듈(5200)은 제어 회로(5210), 비휘발성 메모리 장치(5220), 및 램 장치(5230)를 포함한다. 제어 회로(5210)는 비휘발성 메모리 모듈 제어기(5211) 및 SPD(5212)를 포함한다. 비휘발성 메모리 모듈(5200)은 도 17의 비휘발성 메모리 모듈(4200)과 유사하게 동작할 수 있다. 하지만, 비휘발성 메모리 모듈(5200)은 도 17의 비휘발성 메모리 모듈(4200)과 달리 데이터 버퍼 회로(4213)를 포함하지 않는다. 즉, 도 18의 비휘발성 메모리 모듈(5200)은 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 비휘발성 메모리 모듈 제어기(5211) 또는 램 장치(5230)로 직접 제공할 수 있다. 또는, 도 18의 비휘발성 메모리 모듈(5200)의 비휘발성 메모리 모듈 제어기(5211)로부터의 데이터 또는 램 장치(5230)로부터의 데이터는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 직접 제공할 수 있다.18 is a block diagram exemplarily illustrating the nonvolatile memory module of FIG. 15 . Referring to FIG. 18 , the nonvolatile memory module 5200 includes a control circuit 5210 , a nonvolatile memory device 5220 , and a RAM device 5230 . The control circuit 5210 includes a non-volatile memory module controller 5211 and an SPD 5212 . The nonvolatile memory module 5200 may operate similarly to the nonvolatile memory module 4200 of FIG. 17 . However, the nonvolatile memory module 5200 does not include the data buffer circuit 4213 unlike the nonvolatile memory module 4200 of FIG. 17 . That is, the nonvolatile memory module 5200 of FIG. 18 transmits data received from the processor 3100 through the data signal DQ and the data strobe signal DQS to the nonvolatile memory module controller 5211 or the RAM device 5230 . can be provided directly. Alternatively, data from the non-volatile memory module controller 5211 of the non-volatile memory module 5200 of FIG. 18 or data from the RAM device 5230 is transmitted through a data signal DQ and a data strobe signal DQS, It may be provided directly to the processor 3100 .

예시적으로, 도 17의 비휘발성 메모리 모듈(4200)은 LRDIMM(Load Redued DIMM) 형태의 메모리 모듈이고, 도 18의 비휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.For example, the nonvolatile memory module 4200 of FIG. 17 may be a load redued DIMM (LRDIMM) type memory module, and the nonvolatile memory module 5200 of FIG. 18 may be a registered DIMM (RDIMM) type memory module. .

예시적으로, 비휘발성 메모리 모듈 제어기(5211)는 도 1 내지 도 18에서 설명된 동작 방법에 따라 서브 데이터를 램(미도시)에 축적하고, 프로세서(3100)의 커맨드에 따라 비휘발성 메모리 장치(5220)에 프로그램할 수 있다. Exemplarily, the nonvolatile memory module controller 5211 accumulates sub data in a RAM (not shown) according to the operation method described with reference to FIGS. 1 to 18 , and according to a command from the processor 3100 , the nonvolatile memory device ( 5220) can be programmed.

도 19은 본 발명의 실시 예에 따른 비휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다. 도 19을 참조하면, 서버 시스템(6000)은 복수의 서버 랙들(6100)을 포함할 수 있다. 복수의 서버 랙들(6100) 각각은 복수의 비휘발성 메모리 모듈들(6200)을 포함할 수 있다. 복수의 비휘발성 메모리 모듈들(6200)은 복수의 서버 랙들(6100) 각각에 포함된 프로세서들과 직접적으로 연결될 수 있다. 예를 들어, 복수의 비휘발성 메모리 모듈들(6200)은 듀얼 인-라인 메모리 모듈의 형태를 갖고, 프로세서와 전기적으로 연결된 DIMM 소켓에 장착되어 프로세서와 서로 통신할 수 있다. 예시적으로, 복수의 비휘발성 메모리 모듈들(6200)은 서버 시스템(6000)의 스토리지로서 사용될 수 있다. 예시적으로, 복수의 비휘발성 메모리 모듈들(6200)은 도 1 내지 도 11을 참조하여 설명된 방법에 따라 PVT 보상 동작을 수행할 수 있다.19 is a diagram exemplarily illustrating a server system to which a nonvolatile memory system according to an embodiment of the present invention is applied. Referring to FIG. 19 , the server system 6000 may include a plurality of server racks 6100 . Each of the plurality of server racks 6100 may include a plurality of non-volatile memory modules 6200 . The plurality of non-volatile memory modules 6200 may be directly connected to the processors included in each of the plurality of server racks 6100 . For example, the plurality of non-volatile memory modules 6200 may have the form of a dual in-line memory module and may be mounted in a DIMM socket electrically connected to the processor to communicate with the processor. For example, the plurality of non-volatile memory modules 6200 may be used as storage of the server system 6000 . For example, the plurality of non-volatile memory modules 6200 may perform a PVT compensation operation according to the method described with reference to FIGS. 1 to 11 .

도 20은 본 발명의 실시 예에 따른 FlashDIMM(6200)을 예시적으로 보여주는 도면이다. 도 20을 참조하면, FlashDIMM(6200)는 외형상 DIMM 슬롯에 삽입 가능하고, 복수의 플래시 메모리 장치들(6211 ~ 6219) 및 플래시 메모리 장치들 각각을 제어하는 FlashDIMM 제어기(6220)를 포함할 수 있다. FlashDIMM 제어기(6220)는 커맨드 분석하는 커맨드 파서(6222) 및 PVT 보상 유닛(6224)을 포함할 수 있다. 커맨드 파서(6222)에 의해 리프레쉬/프라차지 커맨드 입력이 지시될 때, PVT 보상 유닛(6224)은 FlashDIMM(6200) 내의 적어도 하나의 PVT 보상 동작을 수행할 수 있다.20 is a diagram exemplarily showing a FlashDIMM 6200 according to an embodiment of the present invention. Referring to FIG. 20 , the FlashDIMM 6200 may be externally inserted into a DIMM slot, and may include a plurality of flash memory devices 6211 to 6219 and a FlashDIMM controller 6220 for controlling each of the flash memory devices. . The FlashDIMM controller 6220 may include a command parser 6222 for command parsing and a PVT compensation unit 6224 . When a refresh/precharge command input is instructed by the command parser 6222 , the PVT compensation unit 6224 may perform at least one PVT compensation operation in the FlashDIMM 6200 .

본 발명에 따른 비휘발성 메모리 그리고/또는 비휘발성 메모리 모듈 제어기 등은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 비휘발성 메모리 그리고/또는 비휘발성 메모리 모듈 제어기는 PoP(Package on Package), 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), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.The nonvolatile memory and/or the nonvolatile memory module controller according to the present invention may be mounted using various types of packages. For example, the non-volatile memory and/or the non-volatile memory module controller according to the present invention is a PoP (Package on Package), 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), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP) ), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed It can be mounted using packages such as Stack Package (WSP).

한편, 본 발명의 비휘발성 메모리 모듈은 리프레쉬 커맨드/프라차지 커맨드에 응답하여 PVT 보상 동작을 수행하는 것을 설명하였다. 하지만, 본 발명이 반드시 여기에 제한되지 않을 것이다. 본 발명의 비휘발성 메모리 모듈은 리프레쉬 커맨드/프리차지 커맨드에 응답하여, PVT 보상 동작 외에도 데이터/클록의 신뢰성을 향상시키기 위한 다양한 동작(ZQ 캘리브레이션, 레벨링, 스큐 조정, 등)을 수행할 수도 있다고 이해되어야 할 것이다.Meanwhile, it has been described that the nonvolatile memory module of the present invention performs the PVT compensation operation in response to the refresh command/precharge command. However, the present invention will not necessarily be limited thereto. It is understood that the nonvolatile memory module of the present invention may perform various operations (ZQ calibration, leveling, skew adjustment, etc.) for improving the reliability of data/clock in addition to the PVT compensation operation in response to the refresh command/precharge command it should be

한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.On the other hand, the contents of the present invention described above are only specific examples for carrying out the invention. The present invention will include not only concrete and practically usable means, but also technical ideas, which are abstract and conceptual ideas that can be utilized as future technologies.

10: 컴퓨팅 시스템
100: 호스트
200: 비휘발성 메모리 모듈
210: 비휘발성 메모리 모듈 제어기
220: 버퍼 메모리
230: 비휘발성 메모리
212: 물리 계층
214: 메모리 제어기
212-1: 램
212-2: 램 제어기
212-3: 커맨드 파서
212-4: PVT 보상 유닛
110: 비휘발성 메모리 모듈 드라이버
10: Computing system
100: host
200: non-volatile memory module
210: non-volatile memory module controller
220: buffer memory
230: non-volatile memory
212: physical layer
214: memory controller
212-1: RAM
212-2: RAM controller
212-3: Command Parser
212-4: PVT compensation unit
110: non-volatile memory module driver

Claims (10)

복수의 비휘발성 메모리들;
데이터 패드, 데이터 스트로브 신호 패드, 및 ZQ 패드 중 적어도 하나에 연결된 버퍼 드라이버; 및
상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고,
상기 비휘발성 메모리 모듈 제어기는,
데이터를 입출력하는 램;
커맨드를 입력 및 인식하는 커맨드 파서; 및
상기 커맨드 파서에서 인식한 리프레쉬 커맨드 혹은 프리차지 커맨드에 응답하여 PVT(process, voltage, temperature) 보상 동작을 수행하는 PVT 보상 유닛을 포함하되,
상기 PVT 보상 유닛은 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 버퍼 드라이버의 강도를 조절하는 비휘발성 메모리 모듈.
a plurality of non-volatile memories;
a buffer driver coupled to at least one of a data pad, a data strobe signal pad, and a ZQ pad; and
a non-volatile memory module controller for controlling the plurality of non-volatile memories;
The non-volatile memory module controller comprises:
RAM for inputting and outputting data;
a command parser for inputting and recognizing commands; and
a PVT compensation unit configured to perform a process, voltage, temperature (PVT) compensation operation in response to a refresh command or a precharge command recognized by the command parser;
and the PVT compensation unit adjusts the strength of the buffer driver in response to the refresh command or the precharge command.
제 1 항에 있어서,
상기 램은,
상기 복수의 비휘발성 메모리들에 쓰여질 데이터를 저장하는 쓰기 데이터 영역;
상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 커맨드를 입력 받는 커맨드 영역;
상기 램의 상태를 지시하는 정보를 저장하는 상태 영역; 및
상기 복수의 비휘발성 메모리들로부터 읽혀진 데이터를 저장하는 읽기 데이터 영역을 포함하고,
상기 램은 듀얼포트(dualport) SRAM(static random access memory)인 비휘발성 메모리 모듈.
The method of claim 1,
The ram is
a write data area for storing data to be written to the plurality of non-volatile memories;
a command area for receiving a non-volatile memory command for controlling the plurality of non-volatile memories;
a state area for storing information indicating the state of the RAM; and
a read data area for storing data read from the plurality of non-volatile memories;
The RAM is a dual-port (dualport) SRAM (static random access memory) non-volatile memory module.
제 2 항에 있어서,
상기 복수의 비휘발성 메모리들의 입출력 데이터를 임시로 저장하는 버퍼 메모리를 더 포함하고,
상기 비휘발성 메모리 모듈 제어기는 상기 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 메모리 제어기를 더 포함하고,
상기 램과 상기 메모리 제어기 사이에 입출력되는 데이터는 패킷 형태이고,
상기 비휘발성 메모리 모듈은 외부와 DDR(double data rate) 인터페이스로 통신하고,
상기 램과 상기 메모리 제어기는 AXI(advance extensible interface) 인터페이스로 통신하는 비휘발성 메모리 모듈.
3. The method of claim 2,
Further comprising a buffer memory for temporarily storing the input/output data of the plurality of non-volatile memories,
The non-volatile memory module controller further comprises a memory controller for controlling the buffer memory and the plurality of non-volatile memories,
Data input/output between the RAM and the memory controller is in the form of a packet,
The non-volatile memory module communicates with the outside through a double data rate (DDR) interface,
The RAM and the memory controller communicate with an advance extensible interface (AXI) interface.
제 1 항에 있어서,
상기 PVT 보상 유닛은, 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 PVT 보상 동작을 수행하기 위한 적어도 하나의 제어 신호를 출력하는 호스트 인터페이스 계층 펌웨어; 및
상기 호스트 인터페이스 계층 펌웨어를 구동하는 코어를 포함하는 비휘발성 메모리 모듈.
The method of claim 1,
The PVT compensation unit may include: a host interface layer firmware that outputs at least one control signal for performing a PVT compensation operation in response to the refresh command or the precharge command; and
and a core for driving the host interface layer firmware.
삭제delete 제 1 항에 있어서,
클록을 입력 받아 내부 클록을 발생하는 클록 버퍼; 및
상기 클록 버퍼의 듀티(duty) 싸이클을 제어하는 듀티 싸이클 교정 유닛을 더 포함하고,
상기 PVT 보상 유닛은 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 듀티 싸이클 교정 유닛을 조절하는 비휘발성 메모리 모듈.
The method of claim 1,
a clock buffer that receives a clock and generates an internal clock; and
A duty cycle correction unit for controlling a duty cycle of the clock buffer,
and the PVT compensation unit adjusts the duty cycle correction unit in response to the refresh command or the precharge command.
제 1 항에 있어서,
상기 램의 상기 데이터를 버퍼링하고, 상기 데이터를 외부로 입출력시키는 데이터 버퍼들을 더 포함하는 비휘발성 메모리 모듈.
The method of claim 1,
The nonvolatile memory module further comprising data buffers for buffering the data of the RAM and for inputting and outputting the data to the outside.
제 7 항에 있어서,
상기 PVT 보상 유닛은, 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 데이터 버퍼들 각각에 대한 PVT 보상 동작을 수행하는 비휘발성 메모리 모듈.
8. The method of claim 7,
The PVT compensation unit is configured to perform a PVT compensation operation for each of the data buffers in response to the refresh command or the precharge command.
프로세서;
상기 프로세서에 제 1 DDR(double date rate) 슬롯을 통하여 연결되는 적어도 하나의 듀얼 인-라인 메모리 모듈; 및
상기 프로세서에 제 2 DDR 슬롯을 통하여 연결되는 적어도 하나의 비휘발성 메모리 모듈을 포함하고,
상기 적어도 하나의 비휘발성 메모리 모듈은,
데이터 패드, 데이터 스트로브 신호 패드, 및 ZQ 패드 중 적어도 하나에 연결된 버퍼 드라이버를 포함하고, 및
상기 프로세서로부터 입력된 리프레쉬 커맨드 혹은 프리차지 커맨드에 응답하여 PVT(process, voltage, temperature) 보상 동작을 수행하되,
상기 PVT 보상 동작을 수행하는 것은, 상기 리프레쉬 커맨드 혹은 상기 프리차지 커맨드에 응답하여 상기 버퍼 드라이버의 강도를 조절하는 것을 포함하는 컴퓨팅 시스템.
processor;
at least one dual in-line memory module coupled to the processor through a first double date rate (DDR) slot; and
at least one non-volatile memory module connected to the processor through a second DDR slot;
The at least one non-volatile memory module comprises:
a buffer driver coupled to at least one of a data pad, a data strobe signal pad, and a ZQ pad, and
A process, voltage, temperature (PVT) compensation operation is performed in response to a refresh command or a precharge command input from the processor,
The performing of the PVT compensation operation includes adjusting the strength of the buffer driver in response to the refresh command or the precharge command.
제 9 항에 있어서,
상기 적어도 하나의 비휘발성 메모리 모듈은,
적어도 하나의 버퍼 메모리;
복수의 비휘발성 메모리들; 및
상기 적어도 하나의 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고,
상기 비휘발성 메모리 모듈 제어기는,
상기 프로세서와 DDR 인터페이스를 통하여 데이터를 입출력하고, 상기 PVT 보상 동작을 수행하는 물리 계층;
상기 프로세서로부터 입력된 데이터를 버퍼링하고, 상기 버퍼링된 데이터를 상기 물리 계층에 전송하거나, 상기 물리 계층으로부터 읽어온 데이터를 버퍼링하고 상기 버퍼링된 읽혀진 데이터를 상기 프로세서로 출력하는 데이터 버퍼들; 및
상기 물리 계층의 데이터를 메모리 인터페이스를 통하여 입출력하는 메모리 제어기를 포함하는 컴퓨팅 시스템.
10. The method of claim 9,
The at least one non-volatile memory module comprises:
at least one buffer memory;
a plurality of non-volatile memories; and
a non-volatile memory module controller controlling the at least one buffer memory and the plurality of non-volatile memories;
The non-volatile memory module controller comprises:
a physical layer for inputting and outputting data through the processor and the DDR interface and performing the PVT compensation operation;
data buffers for buffering data input from the processor, transmitting the buffered data to the physical layer, buffering data read from the physical layer, and outputting the buffered read data to the processor; and
and a memory controller for inputting and outputting data of the physical layer through a memory interface.
KR1020150080741A 2015-06-08 2015-06-08 Nonvolatile memory module, computing system having the same, and pvt compensation method thereof KR102461460B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150080741A KR102461460B1 (en) 2015-06-08 2015-06-08 Nonvolatile memory module, computing system having the same, and pvt compensation method thereof
US15/055,689 US10261697B2 (en) 2015-06-08 2016-02-29 Storage device and operating method of storage device
US16/298,318 US10949094B2 (en) 2015-06-08 2019-03-11 Storage device and operating method of storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150080741A KR102461460B1 (en) 2015-06-08 2015-06-08 Nonvolatile memory module, computing system having the same, and pvt compensation method thereof

Publications (2)

Publication Number Publication Date
KR20160144561A KR20160144561A (en) 2016-12-19
KR102461460B1 true KR102461460B1 (en) 2022-11-02

Family

ID=57735322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150080741A KR102461460B1 (en) 2015-06-08 2015-06-08 Nonvolatile memory module, computing system having the same, and pvt compensation method thereof

Country Status (1)

Country Link
KR (1) KR102461460B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11137941B2 (en) * 2019-12-30 2021-10-05 Advanced Micro Devices, Inc. Command replay for non-volatile dual inline memory modules

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181364A1 (en) * 2012-12-21 2014-06-26 Dell Products L.P. Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel
US20140215129A1 (en) * 2013-01-28 2014-07-31 Radian Memory Systems, LLC Cooperative flash memory control
US20150066819A1 (en) * 2013-09-04 2015-03-05 Christopher P. Mozak Periodic training for unmatched signal receiver
US20160011802A1 (en) 2014-07-09 2016-01-14 Dell Products, Lp System and Method for Enabling Transportability of a Non Volatile Dual Inline Memory Module

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643787B1 (en) * 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US8390315B1 (en) * 2012-01-20 2013-03-05 Altera Corporation Configurable input-output (I/O) circuitry with pre-emphasis circuitry

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181364A1 (en) * 2012-12-21 2014-06-26 Dell Products L.P. Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel
US20140215129A1 (en) * 2013-01-28 2014-07-31 Radian Memory Systems, LLC Cooperative flash memory control
US20150066819A1 (en) * 2013-09-04 2015-03-05 Christopher P. Mozak Periodic training for unmatched signal receiver
US20160011802A1 (en) 2014-07-09 2016-01-14 Dell Products, Lp System and Method for Enabling Transportability of a Non Volatile Dual Inline Memory Module

Also Published As

Publication number Publication date
KR20160144561A (en) 2016-12-19

Similar Documents

Publication Publication Date Title
US11438016B2 (en) Error detection code generation circuits of semiconductor devices, memory controllers including the same and semiconductor memory devices including the same
US10949094B2 (en) Storage device and operating method of storage device
KR102491651B1 (en) Nonvolatile memory module, computing system having the same, and operating method thereof
US10649894B2 (en) Nonvolatile memory module and operation method thereof
KR102593379B1 (en) Memory package, memory module including the same, and operation method thereof
US9432018B2 (en) Storage controllers, methods of operating the same and solid state disks including the same
US11086571B2 (en) Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof
US20150039814A1 (en) Storage device and storage system including the same
US10203909B2 (en) Nonvolatile memory modules comprising volatile memory devices and nonvolatile memory devices
US10929064B2 (en) Methods of operating mixed device type memory modules, and processors and systems configured for operating the same
US9064603B1 (en) Semiconductor memory device and memory system including the same
US20170194045A1 (en) Semiconductor memory devices and memory systems including the same
US20220350541A1 (en) Memory device including interface circuit and method of operating the same
US11315614B2 (en) Memory device including interface circuit and method of operating the same
KR20170012675A (en) Computing system and data transferring method thereof
KR20170138616A (en) Memory system
KR20160144564A (en) Nonvolatile memory module and operation method thereof
KR102374637B1 (en) Computing system and memory management method therfof
KR102461460B1 (en) Nonvolatile memory module, computing system having the same, and pvt compensation method thereof
KR102548574B1 (en) Nonvolatile memory module
KR102538246B1 (en) Nonvolatile memory moduel
KR102473206B1 (en) Computing system and writing method therfof
KR20170007580A (en) Nonvolatile memory module and operation method thereof
KR20160144562A (en) Nonvolatile memory module and operating method thereof
KR20170001858A (en) Nonvolatile memory module and operation method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant