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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary 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.
Description
본 발명은 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 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
실시 예에 있어서, 컴퓨팅 시스템(10)은 컴퓨터, 포터블 컴퓨터, UMPC(ultra mobile PC), 워크스테이션(workstation), 데이터 서버(data server), 넷북, PDA, 웹 태블릿, 무선 폰, 모바일 폰, 스마트폰, 전자북, PMP(portable multimedia player), 디지털 카메라, 디지털오디오 녹음기/재생기, 디지털 사진기/비디오 기록기/재생기, 포터블 게임 머신, 네비게이션 시스템, 블록 박스, 3D 텔레비전, 무선 환경에서 정보를 수신 및 송신하는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, RFID, 혹은 컴퓨팅 시스템을 구성하는 다양한 전자 장치들 중 어느 하나로 사용될 수 있다.In an embodiment, the
호스트(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
예를 들어, 호스트(100)는 적어도 하나의 프로세서, CPU(centrol processing unit), GPU(graphic procesing unit) 등 일 수 있다. For example, the
비휘발성 메모리 모듈(200)은 비휘발성 메모리 모듈 제어기(NMM CNTL, 210), 적어도 하나의 버퍼 메모리(Buffer MEM, 220), 복수의 비휘발성 메모리들(NVM, 230)을 포함할 수 있다.The
NNM CNTL(210)는 호스트(100)와의 하위 레벨의 인터페이싱을 위한 물리 계층(212), 및 물리 계층(212)과 버퍼 메모리(220) 혹은 비휘발성 메모리(230)와의 데이터 통신을 수행하는 메모리 제어기(MEM CNTL, 214)를 포함할 수 있다.The
물리 계층(212)은 램(RAM, 212-1), 램 제어기(RAM CNTL, 212-2), 및 PVT(process, voltage, temperature) 보상 유닛(212-4)을 포함할 수 있다. 실시 예에 있어서, 물리계층(212)은 DIMM(dual in-line memory module) 물리계층의 전체 혹은 일부를 포함할 수 있다.The
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
실시 예에 있어서, 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
호스트(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
램 제어기(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
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
실시 예에 있어서, 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
복수의 비휘발성 메모리들(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
본 발명의 개념에 따른 실시 예로서, 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
도 2는 본 발명의 호스트(100)와 NMM(200)의 데이터 통신 방법을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 호스트(100)과 NMM(200)는 기본적으로 큐잉(queing) 방식을 통하여 데이터를 송수신할 수 있다.2 is a diagram exemplarily illustrating a data communication method between the
호스트(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
컴플리션 큐잉 핸들러(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
쓰기 데이터 영역(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
읽기 데이터 영역(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
상태 영역(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
도 4는 본 발명의 실시 예에 따른 NMM(200)의 펌웨어 구조(architechture)를 예시적으로 보여주는 도면이다. 도 4를 참조하면, NMM(200)의 펌웨어 구조는 읽기 패스와 쓰기 패스가 분리될 수 있다.4 is a diagram exemplarily showing a firmware architecture of the
먼저 읽기 패스는 다음과 같이 구성된다. 호스트 인터페이스 계층(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
도 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
도 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
도 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
도 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
도 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의 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
프로세서(1100)는 컴퓨팅 시스템(1000)의 제반 동작을 제어할 수 있다. 프로세서(1100)는 컴퓨팅 시스템(1000)에서 수행되는 다양한 연산을 수행할 수 있다.The
램 모듈들(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
램 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305)은 동일한 인터페이스(1150)를 통해 프로세서(1100)와 통신할 수 있다. 예를 들어, 비휘발성 메모리 모듈들(1300, 1305) 및 램 모듈들(1200, 1250)은 DDR(Double Data Rate) 방식의 인터페이스(1150)를 통해 통신할 수 있다. 예시적으로, 프로세서(1100)는 램 모듈들(1200, 1250)을 컴퓨팅 시스템(1000)의 동작 메모리, 버퍼 메모리, 또는 캐시 메모리로서 사용할 수 있다.The
칩셋(1400)은 프로세서(1100)와 전기적으로 연결되고, 프로세서(1100)의 제어에 따라 컴퓨팅 시스템(1000)의 하드웨어를 제어할 수 있다. 예를 들어, 칩셋(1400)은 주요 버스들을 통해 GPU(1500), 입출력 장치(1600), 및 스토리지 장치(1700) 각각과 연결되고, 주요 버스들에 대한 브릿지 역할을 수행할 수 있다. The
GPU(1500)는 컴퓨팅 시스템(1000)의 영상 데이터를 출력하기 위한 일련의 연산 동작을 수행할 수 있다. 예시적으로 GPU(1500)는 시스템-온-칩 형태로 프로세서(1100) 내에 실장 될 수 있다.The
입출력 장치(1600)는 컴퓨팅 시스템(1000)으로 데이터 또는 커맨드를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 예를 들어, 입출력 장치(1600)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 장치들 및 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 장치들을 포함할 수 있다.The input/
스토리지 장치(1700)는 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 스토리지 장치(1600)는 하드 디스크 드라이브, SSD, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.The
예시적으로, 비휘발성 메모리 모듈들(1300, 1305)은 프로세서(1100)에 의해 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 비휘발성 메모리 모듈들(1300, 1305) 및 프로세서(1100) 사이의 인터페이스(1150)는 스토리지 장치(1700) 및 프로세서(1100) 사이의 인터페이스보다 고속 인터페이스일 수 있다. 즉, 프로세서(1100)가 비휘발성 메모리 모듈들(1300, 1305)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다.For example, the
도 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
도 13을 참조하면, 비휘발성 메모리 모듈(1300)은 비휘발성 메모리 모듈 제어기(1310), 버퍼 메모리(1320), 비휘발성 메모리 장치(1330), 및 직렬 프레즌스 검출 칩(1340)(SPD; Serial Presence Detect chip)를 포함한다. 비휘발성 메모리 모듈 제어기(1310)는 램(1311)을 포함할 수 있다. 예시적으로, 비휘발성 메모리 장치(1330)는 복수의 비휘발성 메모리들(NVM)을 포함할 수 있다. 비휘발성 메모리 장치(1330)에 포함된 복수의 비휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 비휘발성 메모리 장치(1330)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.Referring to FIG. 13 , the
예시적으로, 비휘발성 메모리 모듈 제어기(1310), 램(1311), 버퍼 메모리(1320), 및 비휘발성 메모리 장치(1330)는 도 1 내지 도 11을 참조하여 설명된 비휘발성 메모리 모듈 제어기(210), 램(213), 버퍼 메모리(220), 및 복수의 비휘발성 메모리(230)와 동일하거나 또는 유사하게 동작할 수 있다. For example, the nonvolatile
예시적으로, 비휘발성 메모리 모듈 제어기(1310)는 프로세서(1100)와 복수의 데이터 신호들(DQ) 및 복수의 데이터 스트로브 신호들(DQS)을 송수신할 수 있고, 별도의 신호 라인들을 통해 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)을 수신할 수 있다. For example, the nonvolatile
SPD(1340)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1340)는 비휘발성 메모리 모듈(1300)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1340)는 비휘발성 메모리 모듈(1300)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 비휘발성 메모리 모듈(1300)이 포함된 컴퓨팅 시스템이 부팅될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1340)를 읽고, 이를 기반으로 비휘발성 메모리 모듈(1300)을 인식할 수 있다. 프로세서(1100)는 SPD(1340)를 기반으로 비휘발성 메모리 모듈(1300)을 저장 매체로서 사용할 수 있다.The
예시적으로, 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
도 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
도 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
데이터 버퍼 회로(2350)는 프로세서(1100, 도 12 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 비휘발성 메모리 모듈 제어기(2350)로 전달할 수 있다. 또는 데이터 버퍼 회로(2350)는 비휘발성 메모리 모듈 제어기(2310)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.The
예시적으로, 데이터 버퍼 회로(2350)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 비휘발성 메모리 모듈 제어기(2310)와 신호를 주고 받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 비휘발성 메모리 모듈 제어기(2310)의 제어에 따라 동작할 수 있다.For example, the
예시적으로, 비휘발성 메모리 모듈 제어기(2310)는 도 1 내지 도 11을 참조하여 설명된 동작 방법에 따라 PVT 보상 동작을 수행할 수 있다.For example, the nonvolatile
도 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
비휘발성 메모리 모듈(3200)은 프로세서(3100)와 직접적으로 연결될 수 있다. 예를 들어, 비휘발성 메모리 모듈(3200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.The
비휘발성 메모리 모듈(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
예시적으로, 프로세서(3100)는 비휘발성 메모리 모듈(3200)의 비휘발성 메모리 장치(3220)을 컴퓨팅 시스템(3000)의 스토리지 매체로서 사용할 수 있고, 프로세서(3100)는 비휘발성 메모리 모듈(3200)의 램 장치(3230)를 컴퓨팅 시스템(3000)의 메인 메모리로서 사용할 수 있다. 즉, 프로세서(3100)는 하나의 DIMM 소켓에 장착된 하나의 메모리 모듈에 포함된 비휘발성 메모리 장치 또는 램 장치를 각각 선택적으로 엑세스할 수 있다.For example, the
예시적으로, 프로세서(3100)는 DDR(Double Data Rate) 인터페이스(3300)를 통해 비휘발성 메모리 모듈(3200)과 통신할 수 있다.For example, the
도 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
복수의 DRAM들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 메인 메모리로서 사용될 수 있다. 예시적으로, 램 장치(3230)는 DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, MRAM 등과 같은 랜덤 엑세스 메모리 소자들을 포함할 수 있다.The plurality of DRAMs may be used by the
제어 회로(3210)는 비휘발성 메모리 모듈 제어기(3211) 및 SPD(3212)를 포함한다. 비휘발성 메모리 모듈 제어기(3211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신할 수 있다. 비휘발성 메모리 모듈 제어기(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 비휘발성 메모리 장치(3220) 또는 램 장치(3230)에 선택적으로 저장할 수 있다. 또는 비휘발성 메모리 모듈 제어기(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 비휘발성 메모리 장치(3220) 또는 램 장치(3230)에 저장된 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(3100)로 선택적으로 전송할 수 있다.The
예시적으로, 프로세서(3100)는 커맨드(CMD), 어드레스(ADDR), 또는 별도의 신호 또는 별도의 정보를 통해 비휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. 즉, 프로세서(3100)는 비휘발성 메모리 모듈(3200)에 포함된 비휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. For example, the
도 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
도 15 및 도 17을 참조하면, 비휘발성 메모리 모듈(4200)은 제어 회로(4100), 비휘발성 메모리 장치(4220), 및 램 장치(4230)를 포함한다. 제어 회로(4210)는 비휘발성 메모리 모듈 제어기(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다.15 and 17 , the
비휘발성 메모리 모듈 제어기(4211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신한다. 비휘발성 메모리 모듈 제어기(4211)는 수신된 신호들에 응답하여 비휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다. 예를 들어, 프로세서(3100)는 비휘발성 메모리 장치(4220) 또는 램 장치(4230) 각각을 선택적으로 엑세스할 수 있다. 비휘발성 메모리 모듈 제어기(4231)는 프로세서(4100)의 제어에 따라 비휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다.The nonvolatile
데이터 버퍼 회로(4213)는 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 수신된 신호들을 비휘발성 메모리 모듈 제어기(4211) 및 램 장치(4230)로 제공할 수 있다. 또는 데이터 버퍼 회로(4213)는 비휘발성 메모리 모듈 제어기(4211) 또는 램 장치(4230)로부터 수신된 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다.The
예시적으로, 프로세서(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
도 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
예시적으로, 도 17의 비휘발성 메모리 모듈(4200)은 LRDIMM(Load Redued DIMM) 형태의 메모리 모듈이고, 도 18의 비휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.For example, the
예시적으로, 비휘발성 메모리 모듈 제어기(5211)는 도 1 내지 도 18에서 설명된 동작 방법에 따라 서브 데이터를 램(미도시)에 축적하고, 프로세서(3100)의 커맨드에 따라 비휘발성 메모리 장치(5220)에 프로그램할 수 있다. Exemplarily, the nonvolatile
도 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
도 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
본 발명에 따른 비휘발성 메모리 그리고/또는 비휘발성 메모리 모듈 제어기 등은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 비휘발성 메모리 그리고/또는 비휘발성 메모리 모듈 제어기는 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.
상기 램은,
상기 복수의 비휘발성 메모리들에 쓰여질 데이터를 저장하는 쓰기 데이터 영역;
상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 커맨드를 입력 받는 커맨드 영역;
상기 램의 상태를 지시하는 정보를 저장하는 상태 영역; 및
상기 복수의 비휘발성 메모리들로부터 읽혀진 데이터를 저장하는 읽기 데이터 영역을 포함하고,
상기 램은 듀얼포트(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.
상기 복수의 비휘발성 메모리들의 입출력 데이터를 임시로 저장하는 버퍼 메모리를 더 포함하고,
상기 비휘발성 메모리 모듈 제어기는 상기 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 메모리 제어기를 더 포함하고,
상기 램과 상기 메모리 제어기 사이에 입출력되는 데이터는 패킷 형태이고,
상기 비휘발성 메모리 모듈은 외부와 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.
상기 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.
클록을 입력 받아 내부 클록을 발생하는 클록 버퍼; 및
상기 클록 버퍼의 듀티(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.
상기 램의 상기 데이터를 버퍼링하고, 상기 데이터를 외부로 입출력시키는 데이터 버퍼들을 더 포함하는 비휘발성 메모리 모듈.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.
상기 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.
상기 적어도 하나의 비휘발성 메모리 모듈은,
적어도 하나의 버퍼 메모리;
복수의 비휘발성 메모리들; 및
상기 적어도 하나의 버퍼 메모리 및 상기 복수의 비휘발성 메모리들을 제어하는 비휘발성 메모리 모듈 제어기를 포함하고,
상기 비휘발성 메모리 모듈 제어기는,
상기 프로세서와 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.
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)
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)
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)
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 |
-
2015
- 2015-06-08 KR KR1020150080741A patent/KR102461460B1/en active IP Right Grant
Patent Citations (4)
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 |