KR20240019004A - Memory module adjusting inter-rank clock timing, memory system and training method thereof - Google Patents
Memory module adjusting inter-rank clock timing, memory system and training method thereof Download PDFInfo
- Publication number
- KR20240019004A KR20240019004A KR1020220179370A KR20220179370A KR20240019004A KR 20240019004 A KR20240019004 A KR 20240019004A KR 1020220179370 A KR1020220179370 A KR 1020220179370A KR 20220179370 A KR20220179370 A KR 20220179370A KR 20240019004 A KR20240019004 A KR 20240019004A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- command
- rank
- signal
- address
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000001934 delay Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 9
- 239000004065 semiconductor Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 101150110971 CIN7 gene Proteins 0.000 description 2
- 101150110298 INV1 gene Proteins 0.000 description 2
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 208000006930 Pseudomyxoma Peritonei Diseases 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 229920000306 polymethylpentene Polymers 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/133—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/133—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
- H03K5/134—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices with field-effect transistors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
Abstract
본 발명에 따른 메모리 모듈은, 제 1 랭크를 구성하는 제 1 메모리 장치, 그리고 상기 제 1 메모리 장치와 커맨드/어드레스 신호 및 클록 신호를 공유하는 제 2 랭크를 구성하는 제 2 메모리 장치를 포함하되, 상기 제 1 메모리 장치 및 상기 제 2 메모리 장치는 매치드 방식(Matched type)으로 커맨드/어드레스 신호 및 클록 신호를 수신하고, 상기 제 1 메모리 장치는 수신된 상기 클록 신호의 지연을 조정하기 위한 가변 지연 라인을 포함한다. The memory module according to the present invention includes a first memory device constituting a first rank, and a second memory device constituting a second rank that shares command/address signals and clock signals with the first memory device, The first memory device and the second memory device receive command/address signals and clock signals in a matched type, and the first memory device has a variable delay for adjusting the delay of the received clock signal. Contains lines.
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 랭크간 타이밍을 조정하는 메모리 모듈, 메모리 시스템 및 그것의 트레이닝 방법에 관한 것이다.The present invention relates to a semiconductor memory device, and more specifically, to a memory module that adjusts inter-rank timing, a memory system, and a training method thereof.
근래에, 스마트폰, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 PC, 웨어러블 기기와 같은 다양한 모바일 장치나 전자 장치들이 널리 사용되고 있다. 이러한 전자 장치들은 대개 데이터를 저장하기 위한 반도체 메모리 장치를 포함한다. 반도체 메모리 장치의 일례로서 휘발성 메모리(volatile-memory)인 디램(Dynamic Random Access Memory; DRAM) 장치는 커패시터(Capacitor)에 저장되어 있는 전하(Charge)에 의해 데이터를 저장한다. Recently, various mobile devices and electronic devices such as smartphones, desktop computers, laptop computers, tablet PCs, and wearable devices are widely used. These electronic devices usually include semiconductor memory devices for storing data. As an example of a semiconductor memory device, a dynamic random access memory (DRAM) device, which is a volatile memory, stores data using charges stored in a capacitor.
일반적으로, 저전력의 모바일 메모리로 제공되는 메모리 모듈은 2 이상의 랭크(Rank)들로 나뉘어질 수 있다. 즉, 듀얼 랭크 구조의 경우에 메모리 모듈의 기판에 탑재된 복수의 반도체 메모리 장치들은 2개의 랭크들로 분류되고 동일한 랭크에 속한 반도체 메모리 장치들은 동시에 억세스될 수 있다. 결국, 랭크는 메모리 컨트롤러가 반도체 메모리 장치들에 대해 데이터를 입출력하는 단위를 의미하는 것일 수 있다. 싱글 랭크(Single rank)가 예를 들어 64-비트 데이터 전송폭을 가진다고 할 경우에 듀얼 랭크(Dual rank)는 싱글 랭크의 2배에 해당되는 데이터 전송폭을 가질 수 있다. In general, memory modules provided as low-power mobile memory can be divided into two or more ranks. That is, in the case of a dual rank structure, a plurality of semiconductor memory devices mounted on the substrate of the memory module are classified into two ranks, and semiconductor memory devices belonging to the same rank can be accessed simultaneously. In the end, rank may mean a unit through which a memory controller inputs and outputs data to semiconductor memory devices. For example, if single rank has a 64-bit data transmission width, dual rank may have a data transmission width twice that of single rank.
고용량화 및 고속화 추세에 따라, 고속으로 입력되는 커맨드/어드레스(Command/Address: 이하, CA)의 신호 무결성(Signal Integrity: 이하, SI) 특성은 나빠지게 되었다. 특히, 멀티 랭크 시스템에서는 랭크간 특성 산포에 따라 신호 무결성(SI)의 달성은 점점 어려워지고 있다. 이를 극복하기 위해 메모리 컨트롤러에서 랭크별 커맨드/어드레스(CA) 클록의 타이밍을 개별적으로 제어하면 되지만, 이는 성능 저하와 함께 관련 업체들의 부담으로 작용하고 있다. With the trend toward higher capacity and higher speed, the signal integrity (SI) characteristics of commands/addresses (CA) input at high speeds have deteriorated. In particular, in multi-rank systems, it is becoming increasingly difficult to achieve signal integrity (SI) depending on the distribution of characteristics between ranks. To overcome this, the timing of the command/address (CA) clock for each rank can be individually controlled in the memory controller, but this reduces performance and places a burden on related companies.
본 발명의 목적은 랭크간 클록 스큐를 보상할 수 있는 매치드형(Matched type) 멀티-랭크 메모리 모듈, 메모리 시스템 및 그것의 트레이닝 방법을 제공하는데 있다. The purpose of the present invention is to provide a matched type multi-rank memory module capable of compensating for inter-rank clock skew, a memory system, and a training method thereof.
상기 목적을 달성하기 위한 메모리 모듈은, 제 1 랭크를 구성하는 제 1 메모리 장치, 그리고 상기 제 1 메모리 장치와 커맨드/어드레스 신호 및 클록 신호를 공유하는 제 2 랭크를 구성하는 제 2 메모리 장치를 포함하되, 상기 제 1 메모리 장치 및 상기 제 2 메모리 장치는 매치드 방식(Matched type)으로 커맨드/어드레스 신호 및 클록 신호를 수신하고, 상기 제 1 메모리 장치는 수신된 상기 클록 신호의 지연을 조정하기 위한 가변 지연 라인을 포함한다.The memory module for achieving the above purpose includes a first memory device constituting a first rank, and a second memory device constituting a second rank that shares a command/address signal and a clock signal with the first memory device. However, the first memory device and the second memory device receive command/address signals and clock signals in a matched type, and the first memory device is configured to adjust the delay of the received clock signal. Contains variable delay lines.
상기 목적을 달성하기 위한 커맨드/어드레스 신호와 클록 신호를 공유하는 매치드형 멀티-랭크 메모리 모듈의 트레이닝 방법은, 제 1 랭크에 대한 상기 커맨드/어드레스 신호와 상기 클록 신호의 정합 여부를 체크하기 위한 제 1 커맨드 버스 트레이닝을 수행하는 단계, 제 2 랭크에 대한 상기 커맨드/어드레스 신호와 상기 클록 신호의 정합 여부를 체크하기 위한 제 2 커맨드 버스 트레이닝을 수행하는 단계, 상기 제 1 및 제 2 커맨드 버스 트레이닝의 결과를 이용하여 상기 제 1 랭크 및 상기 제 2 랭크 각각의 상기 커맨드/어드레스 신호의 마진을 체크하는 단계, 그리고 상기 커맨드/어드레스 신호의 상기 마진에 따라 상기 제 1 랭크 또는 상기 제 2 랭크 내부에서 상기 클록 신호의 지연을 조정하는 단계를 포함한다. The training method of a matched multi-rank memory module sharing a command/address signal and a clock signal to achieve the above purpose includes a method for checking whether the command/address signal and the clock signal for the first rank match. 1. Performing command bus training, performing second command bus training to check whether the command/address signal and the clock signal for the second rank match, of the first and second command bus training Checking the margin of the command/address signal of each of the first rank and the second rank using the result, and determining the margin of the command/address signal within the first rank or the second rank according to the margin of the command/address signal. and adjusting the delay of the clock signal.
상기 목적을 달성하기 위한 메모리 시스템은, 제 1 버스를 통해서 신호를 전송하고, 제 2 버스를 통해 클록 신호를 전송하는 메모리 컨트롤러, 그리고 상기 제 1 버스 및 상기 제 2 버스를 공유하는 제 1 랭크 메모리 및 제 2 랭크 메모리를 포함하는 메모리 모듈을 포함하되, 상기 제 1 랭크 메모리 또는 상기 제 2 랭크 메모리는 상기 제 2 버스를 통해 수신된 상기 클록 신호를 내부에서 가변적으로 지연하기 위한 가변 지연 라인을 포함한다.A memory system for achieving the above purpose includes a memory controller that transmits a signal through a first bus and a clock signal through a second bus, and a first rank memory that shares the first bus and the second bus. and a memory module including a second rank memory, wherein the first rank memory or the second rank memory includes a variable delay line for internally variably delaying the clock signal received through the second bus. do.
상술한 본 발명의 실시 예에 따르면, 랭크들 각각이 커맨드/어드레스(CA) 신호와 클록 신호(CK)를 공유하는 매치드형 멀티-랭크 메모리 모듈에서 랭크간 클록 스큐를 효과적으로 보상할 수 있다. According to the above-described embodiment of the present invention, inter-rank clock skew can be effectively compensated for in a matched-type multi-rank memory module in which each rank shares a command/address (CA) signal and a clock signal (CK).
도 1은 본 발명의 실시 예에 따른 메모리 시스템의 구조를 히간략 보여주는 블록도이다.
도 2는 도 1의 메모리 시스템을 좀더 구체적으로 보여주는 블록도이다.
도 3은 도 2의 메모리 컨트롤러의 간략한 구조를 보여주는 블록도이다.
도 4는 도 2의 메모리 장치의 구성을 간략히 보여주는 블록도이다.
도 5는 도 4의 클록 지연 라인의 예시적인 구조를 간략히 보여주는 회로도이다.
도 6은 본 발명의 실시 예에 따른 커맨드 버스 트레이닝(CBT) 방법을 예시적으로 보여주는 타이밍도이다.
도 7은 본 발명의 멀티-랭크 메모리 장치들에 대한 커맨드 버스 트레이닝(CBT)의 결과를 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 커맨드 버스 트레이닝(CBT) 방법을 간략히 보여주는 순서도이다.
도 9는 본 발명의 다른 실시 예에 따른 메모리 시스템을 간략히 보여주는 블록도이다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템의 구성을 보여주는 단면도이다.
도 11은 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 12는 본 발명의 실시 예에 따른 멀티-랭크 메모리 시스템의 커맨드 버스 트레이닝(CBT) 방법을 간략히 보여주는 순서도이다.1 is a block diagram briefly showing the structure of a memory system according to an embodiment of the present invention.
FIG. 2 is a block diagram showing the memory system of FIG. 1 in more detail.
FIG. 3 is a block diagram showing a simplified structure of the memory controller of FIG. 2.
FIG. 4 is a block diagram briefly showing the configuration of the memory device of FIG. 2.
FIG. 5 is a circuit diagram briefly showing an example structure of the clock delay line of FIG. 4.
Figure 6 is a timing diagram illustrating a command bus training (CBT) method according to an embodiment of the present invention.
Figure 7 is a diagram showing the results of command bus training (CBT) for multi-rank memory devices of the present invention.
Figure 8 is a flowchart briefly showing a command bus training (CBT) method according to an embodiment of the present invention.
Figure 9 is a block diagram briefly showing a memory system according to another embodiment of the present invention.
Figure 10 is a cross-sectional view showing the configuration of a memory system according to another embodiment of the present invention.
Figure 11 is a block diagram showing a memory system according to another embodiment of the present invention.
Figure 12 is a flow chart briefly showing a command bus training (CBT) method of a multi-rank memory system according to an embodiment of the present invention.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and are to be regarded as providing additional explanation of the claimed invention. Reference signs are indicated in detail in preferred embodiments of the invention, examples of which are indicated in the reference drawings. Wherever possible, the same reference numerals are used in the description and drawings to refer to the same or similar parts.
이하에서는, 디램(DRAM)을 본 발명의 특징 및 기능을 설명하기 위한 반도체 메모리 장치의 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.Hereinafter, DRAM will be used as an example of a semiconductor memory device to explain the features and functions of the present invention. However, those skilled in the art will readily understand other advantages and capabilities of the present invention based on what is described herein. The present invention may be implemented or applied through other embodiments. Moreover, the detailed description may be modified or changed according to viewpoints and applications without significantly departing from the scope, technical spirit and other purposes of the present invention.
도 1은 본 발명의 실시 예에 따른 메모리 시스템의 구조를 히간략 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(1000)은 메모리 컨트롤러(1100) 및 메모리 모듈(1500)을 포함한다. 메모리 모듈(1500)은 2개의 랭크를 구성하는 메모리 장치들(1200, 1300)을 포함한다. 1 is a block diagram briefly showing the structure of a memory system according to an embodiment of the present invention. Referring to FIG. 1 , the
메모리 컨트롤러(1100)는 메모리 모듈(1500)에 데이터를 쓰거나, 메모리 모듈(1500)에 저장된 데이터를 읽어내는 접근 동작을 수행할 수 있다. 메모리 컨트롤러(1100)는 메모리 모듈(1500)에 데이터를 기입하거나, 메모리 모듈(1500)에 저장된 데이터를 독출하기 위한 명령어(CMD)와 어드레스(ADDR)를 생성할 수 있다. 메모리 컨트롤러(1100)는 메모리 모듈(1500)을 제어하기 위한 칩셋, 모바일 AP(Application Processor: 이하, AP)와 같은 시스템 온 칩(SoC), CPU, GPU 중 적어도 하나일 수 있다. The
메모리 모듈(1500)은 멀티 랭크들(Rank0, Rank1)에 대응하는 메모리 장치들(1200, 1300)을 포함한다. 즉, 메모리 장치(1200)는 제 1 랭크(Rank0)를, 메모리 장치(1300)는 제 2 랭크(Rank1)를 구성한다. 메모리 랭크(Memory rank)는 메모리 컨트롤러(1100)로부터의 공통 커맨드/어드레스(CA)를 수신하고 응답하는 다수의 메모리 장치 또는 메모리 칩들을 지칭한다. The
랭크들의 메모리 장치들은 일반적으로 데이터 버스(DQ), 커맨드/어드레스(CA) 버스, 커맨드/어드레스(CA)의 스트로브 신호로 사용되는 클록 신호(CKt, CKc)들 중 적어도 하나를 공유한다. 본 발명의 실시 예에서, 메모리 장치들(1200, 1300) 각각 커맨드/어드레스(CA) 버스, 클록 신호(CKt, CKc)를 공유하고, 데이터 버스(DQ)는 칩 선택 신호(Chip Select: 이하, CS)에 의해서 할당되는 것으로 가정하기로 한다. Memory devices of the ranks generally share at least one of a data bus (DQ), a command/address (CA) bus, and clock signals (CKt, CKc) used as strobe signals of the command/address (CA). In an embodiment of the present invention, the
제 1 메모리 장치(1200)는 제 1 랭크(Rank0)를 구성한다. 제 2 메모리 장치(1300)는 제 2 랭크(Rank1)를 구성한다. 멀티-랭크(Multi-Rank)를 구성하기 위해 커맨드/어드레스(CA) 신호는 제 1 메모리 장치(1200)의 적어도 하나의 패드(Pa0)를 통해서 전달된다. 동일한 커맨드/어드레스(CA) 신호는 제 1 메모리 장치(1200)의 패드(Pa0)를 경유하여 제 2 메모리 장치(1300)의 적어도 하나의 패드(Pb0)에 연결된다. 전기적으로는 커맨드/어드레스 신호(CA)는 메모리 장치들(1200, 1300) 각각의 패드들(Pa0, Pb0)에 병렬로 연결된다. 하지만, 물리적으로는 메모리 장치들(1200, 1300)은 와이어 본딩으로 연결됨에 따라 신호 전달 특성이 달라질 수 있다. 패드(Pa0)와 패드(Pb0)가 각각 하나로 도시되었지만, 커맨드/어드레스 신호(CA)의 비트 폭에 따라 2개 또는 그 이상일 수 있음은 잘 이해될 것이다. 메모리 장치들(1200, 1300) 각각의 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 수신은 매치드형(Matched type) 구조로 제공된다. 즉, 메모리 장치들(1200, 1300) 각각의 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 경로는 동일한 지연 크기(Delay size)로 제공된다. The
멀티-랭크(Multi-rank)를 구성하기 위해 각각 차동 신호 형태로 전달되는 클록 신호(CKt, CKc)는 패드들(Pa1, Pa2)을 통해서 제 1 메모리 장치(1200)에 전달된다. 클록 신호(CKt, CKc)는 커맨드/어드레스 신호(CA)의 스트로브 신호로 사용될 수 있다. 또한, 클록 신호(CKt, CKc)는 제 1 메모리 장치(1200)의 패드들(Pa1, Pa2)을 경유하여 제 2 메모리 장치(1300)의 패드들(Pb1, Pb2)에 연결된다. 클록 신호(CKt, CKc)도 전기적으로는 메모리 장치들(1200, 1300) 각각의 패드들(Pa1, Pa2, Pb1, Pb2)에 각각 병렬로 연결된다. 하지만, 물리적으로는 와이어 결선에 따라 제 1 메모리 장치(1200)와 제 2 메모리 장치(1300)의 클록 신호(CKt, CKc) 전달 특성이 달라질 수 있다. To configure multi-rank, the clock signals CKt and CKc, each transmitted in the form of a differential signal, are transmitted to the
본 발명의 메모리 장치(예를 들면, 1300)는 제어 가능한 가변 지연 라인(1340)을 포함할 수 있다. 메모리 컨트롤러(1100)는 랭크들 각각에 대한 커맨드 버스 트레이닝(Command Bus Training: 이하, CBT)을 수행한다. 메모리 컨트롤러(1100)는 커맨드 버스 트레이닝(CBT) 결과에 따라 어느 하나의 랭크(예를 들면, Rank1)의 가변 지연 라인(1340)을 조정하여 두 랭크 각각이 최적 클록 타이밍으로 동작하도록 설정할 수 있다. 즉, 제 1 메모리 장치(1200)와 제 2 메모리 장치(1300)에서 수신되는 커맨드/어드레스 신호(CA)에 스큐(Skew)가 존재하는 경우, 제 2 메모리 장치(1300)의 가변 지연 라인(1340)을 조정하여 스큐를 보상할 수 있다. 이러한 트레이닝을 통해서 랭크들 각각은 최적의 클록 타이밍으로 커맨드/어드레스 신호(CA)를 수신할 수 있다. The memory device (eg, 1300) of the present invention may include a controllable
클록 신호(CKt, CKc)와 커맨드/어드레스 신호(CA)의 정렬 여부를 검출하기 위해, 메모리 시스템(1000)은 커맨드 버스 트레이닝(CBT) 모드를 지원할 수 있다. 즉, 메모리 컨트롤러(1100)는 메모리 모듈(1500)에 전원이 공급되거나, 또는 초기화 동작시, 커맨드 버스에 대한 버스 트레이닝을 수행할 수 있다. 메모리 컨트롤러(1100)는 랭크들(Rank0, Rank1) 각각에 대한 커맨드 버스 트레이닝(CBT)을 수행하여 커맨드/어드레스 신호(CA)의 마진을 각각 체크할 수 있다. 그리고 커맨드/어드레스 신호(CA)의 마진에 기초하여 랭크들(Rank0, Rank1) 중 어느 하나의 가변 지연 라인(예를 들면, 1340)을 조정하여 스큐를 보상할 수 있다.To detect whether the clock signals CKt and CKc and the command/address signal CA are aligned, the
메모리 시스템(1000)은 개인용 컴퓨터(Personal Computer: PC) 또는 모바일 디바이스 내에 포함되도록 구현될 수 있다. 모바일 디바이스는 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(Personal Digital Assistant), EDA(Enterprise Digital Assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(Portable Multimedia Player), PND(Personal Navigation Device 또는 Portable Navigation Device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(Mobile Internet Device(MID)), 웨어러블 컴퓨터, 사물 인터넷(Internet of Things(IoT)) 장치, 만물 인터넷(Internet of Everything(IoE)) 장치, 또는 드론(drone)으로 구현될 수 있다.The
메모리 장치들(1200, 1300) 각각은 복수의 메모리 셀들을 포함하는 메모리 셀 어레이를 포함할 수 있다. 일 실시예에서, 메모리 셀은 휘발성 메모리 셀일 수 있고, 메모리 장치들(1200, 1300) 각각은 비제한적인 예시로서 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 모바일 DRAM, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR (Low Power DDR) SDRAM, GDDR (Graphic DDR) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등일 수 있다. Each of the
다른 실시예에서, 메모리 셀은 비휘발성 메모리 셀일 수 있고, 메모리 장치들(1200, 1300) 각각은 비제한적인 예시로서 EEPROM (non-volatile memory such as a Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM (Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM (Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등일 수 있다. 이하에서, 메모리 장치들(1200, 1300) 각각은 DRAM인 것으로서 설명되나, 본 개시의 기술적 사상이 이에 제한되지 않음은 잘 이해될 것이다.In another embodiment, the memory cell may be a non-volatile memory cell, and each of the
상술한 바와 같이 본 발명의 메모리 시스템(1000)은 멀티-랭크 구조의 메모리 모듈(1500)을 포함한다. 그리고 메모리 모듈(1500)은 매치드(Matched) 방식으로 커맨드/어드레스 신호(CA) 및 클록 신호(CKt, CKc)를 수신한다. 메모리 컨트롤러(1100)는 랭크들 각각에 공통으로 사용되는 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 스큐를 커맨드 버스 트레이닝(CBT)을 통해 체크한다. 그리고 체크된 스큐를 보상하기 위해 메모리 장치들(1200, 1300) 중 적어도 하나의 가변 지연 라인을 조정할 수 있다. 이를 통해서, 멀티-랭크 구조의 메모리 시스템에서 랭크 전환시 별도의 타이밍 제어없이 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 전달할 수 있다. 따라서, 메모리 컨트롤러(1100) 측에서 용이한 제어가 가능하고 높은 성능의 매치트형 멀티-랭크 메모리 시스템이 제공될 수 있다.As described above, the
도 2는 도 1의 메모리 시스템을 좀더 구체적으로 보여주는 블록도이다. 도 2를 참조하면, 메모리 시스템(1000)은 메모리 컨트롤러(1100) 및 메모리 장치들(1200, 1300)을 포함한다. 메모리 장치들(1200, 1300)은 도 1의 메모리 모듈(1500)을 구성한다. 메모리 장치들(1200, 1300) 각각은 제 1 랭크(Rank0)와 제 2 랭크(Rank1)를 구성한다. FIG. 2 is a block diagram showing the memory system of FIG. 1 in more detail. Referring to FIG. 2 , the
메모리 컨트롤러(1100)는 메모리 장치들(1200, 1300)을 멀티-랭크 방식으로 제어한다. 즉, 메모리 컨트롤러(1100)는 커맨드/어드레스 신호(CA) 버스와 클록 신호(CKt, CKc)를 메모리 장치들(1200, 1300)에 공통으로 인가한다. 도 1에서 설명된 바와 같이, 메모리 장치들(1200, 1300)은 병렬로 연결된 패드들을 통해 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 공유하도록 연결된다. 그리고 메모리 컨트롤러(1100)는 커맨드 버스 트레이닝(CBT)을 통해서 메모리 장치들(1200, 1300) 내부에 구비되는 가변 지연 라인(1240 또는 1340)을 설정할 수 있다. 이러한 기능을 사용하여 메모리 컨트롤러(1100)는 랭크들 간의 커맨드/어드레스 신호(CA) 또는 클록 신호(CKt, CKc)의 특성 차이로 발생하는 스큐를 제거하거나 줄일 수 있다. The
메모리 장치들(1200, 1300)은 도시된 형태의 듀얼 랭크 형태로 구성될 수 있다. 하지만, 메모리 장치들(1200, 1300)의 수는 복수 채널의 4-랭크 또는 그 이상의 랭크들을 구성하도록 증가될 수 있을 것이다. 메모리 장치들(1200, 1300) 각각은 메모리 컨트롤러(1100)로부터 공통 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 수신한다. 그리고 메모리 장치들(1200, 1300) 각각은 매치드형(Matched type)의 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc) 수신 방식을 사용한다. 즉, 메모리 장치들(1200, 1300) 각각은 커맨드/어드레스 신호(CA)의 수신 경로와 클록 신호(CKt, CKc)의 수신 경로의 지연이 매치된 형태로 제공된다. The
하지만, 본 발명에 따른 메모리 장치들(1200, 1300)은 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 지연 라인들(1230, 1240, 1330, 1340)을 포함한다. 메모리 컨트롤러(1100)는 메모리 장치들(1200, 1300) 각각에 대한 커맨드 버스 트레이닝(CBT)을 수행할 수 있다. 그리고 커맨드 버스 트레이닝(CBT)의 결과를 기반으로 메모리 장치들(1200, 1300) 각각의 커맨드/어드레스 신호(CA)의 마진이 체크될 수 있다. 그리고 메모리 장치들(1200, 1300) 각각의 커맨드/어드레스 신호(CA)의 마진을 기반으로 커맨드/어드레스 신호(CA)의 타이밍을 일치시키기 위해 클록 신호(CKt, CKc)의 지연 라인이 조정될 수 있다. 이를 위해, 클록 신호(CKt, CKc)의 가변 지연 라인들(1240, 1340)은 퓨즈나 모드 레지스터 셋(MRS)을 사용하여 설정될 수 있다. However, the
제 1 메모리 장치(1200)는 메모리 컨트롤러(1100)로부터 전송되는 커맨드/어드레스 신호(CA)를 제 1 비교기(1210)를 사용하여 수신한다. 즉, 제 1 비교기(1210)는 수신된 커맨드/어드레스 신호(CA)와 기준 전압(VREF)을 비교하여 샘플링한다. 제 1 비교기(1210)에 의해서 샘플링된 커맨드/어드레스 신호(CA)는 제 1 지연 라인(1230)을 경유하여 제 1 플립플롭(1250)의 데이터 입력단(D)으로 전달될 것이다.The
메모리 컨트롤러(1100)로부터 전송되는 클록 신호(CKt, CKc)는 제 2 비교기(1220)에 의해서 수신된다. 제 2 비교기(1220)는 차동 신호 형태로 전달되는 클록 신호(CKt, CKc)를 시모스(CMOS) 형태의 내부 클록 신호(CK0)로 변환시킨다. 즉, 제 2 비교기(1220)는 컴먼모드-시모스(CML to CMOS: 이하, C2C) 변환기의 기능으로 클록 신호(CKt, CKc)를 수신할 것이다. 제 2 비교기(1220)에 의해서 CMOS 레벨로 변환된 내부 클록 신호(CK0)는 가변 지연 라인(1240)을 경유하여 제 1 플립플롭(1250)의 클록 입력단에 전달된다. 제 1 플립플롭(1250)에 의해서 커맨드/어드레스 신호(CA)는 가변 지연 라인(1240)으로부터 제공되는 내부 클록 신호(CK0)에 동기되어 샘플링된다. 샘플링된 커맨드/어드레스 신호(CA)는 제 1 커맨드 디코더(1260)나 어드레스 디코더(미도시) 등으로 전달된다. Clock signals (CKt, CKc) transmitted from the
제 2 비교기(1220)에서 출력된 내부 클록 신호(CK0)는 제 1 가변 지연 라인(1240)을 경유하여 제 1 플립플롭(1250)에 전달된다. 제 1 가변 지연 라인(1240)은 다양한 방식으로 지연 제어가 가능하다. 즉, 제 1 가변 지연 라인(1240)은 퓨즈 프로그램이나 모드 레지스터 셋(MRS)를 사용하여 설정될 수 있다. 랭크들 간의 커맨드/어드레스 신호(CA)의 스큐(Skew)는 제 1 가변 지연 라인(1240)의 설정을 통해서 보상될 수 있다. The internal clock signal CK0 output from the
제 2 랭크(Rank1)를 구성하는 제 2 메모리 장치(1300)도 실질적으로 제 1 메모리 장치(1200)와 동일한 구성을 포함한다. 즉, 제 2 메모리 장치(1300)는 제 3 비교기(1310), 제 4 비교기(1320), 제 2 지연 라인(1330), 제 2 가변 지연 라인(1340), 제 2 플립플롭(1350), 그리고 제 2 명령어 디코더(1360)를 포함할 수 있다. 따라서, 제 2 메모리 장치(1300)의 구성들의 기능에 대한 설명은 생략하기로 한다. The
다만, 커맨드 버스 트레이닝(CBT)은 메모리 장치들(1200, 1300) 또는 랭크들(Rank0, Rank1) 각각에 대해 진행된다. 그리고 커맨드 버스 트레이닝(CBT)의 결과를 기반으로 랭크들 간의 커맨드/어드레스 신호(CA)의 스큐(Skew)를 조정하기 위해 가변 지연 라인(1240, 1340) 조정은 메모리 장치들(1200, 1300) 중 어느 하나에만 적용될 수 있다.However, command bus training (CBT) is performed for each of the
본 발명의 메모리 시스템(1000)은 매치드형으로 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 수신하는 멀티-랭크 메모리 장치들(1200, 1300)을 포함한다. 그리고 이들 메모리 장치들(1200, 1300) 간에 존재하는 커맨드/어드레스 신호(CA)나 클록 신호(CKt, CKc)의 스큐는 어느 하나의 내부에 구비된 가변 지연 라인(1230 또는 1340)의 조정을 통해서 보상될 수 있다. 이러한 트레이닝을 통해서 매치드 방식의 멀티-랭크 각각은 최적의 클록 타이밍으로 커맨드/어드레스 신호(CA)를 수신할 수 있다. The
도 3은 도 2의 메모리 컨트롤러의 간략한 구조를 보여주는 블록도이다. 도 3을 참조하면, 메모리 컨트롤러(1100)는 커맨드/어드레스 생성기(1110), 플립플롭(1120), 클록 생성기(1130), 클록 드라이버(1132, 1134), 그리고 타이밍 컨트롤러(1140)를 포함할 수 있다. 메모리 컨트롤러(1100)는 실질적으로 시스템 온 칩(SoC)이나 프로세서와 같은 데이터 연산 로직들을 더 포함할 수 있지만, 설명의 간략화를 위해 이것들에 대한 도시 및 설명은 생략하기로 한다. FIG. 3 is a block diagram showing a simplified structure of the memory controller of FIG. 2. Referring to FIG. 3, the
커맨드/어드레스 생성기(1110)는 메모리 장치들(1200, 1300)에 데이터를 쓰거나, 메모리 장치들(1200, 1300)에 저장된 데이터를 읽어내기 위한 커맨드 및 어드레스를 생성한다. 예를 들면, 커맨드/어드레스 생성기(1110)는 메모리 장치(1200)에 접근하기 위한 읽기 커맨드나 쓰기 커맨드를 생성할 수 있다. 그리고 커맨드/어드레스 생성기(1110)는 읽기 또는 쓰기를 위한 어드레스도 생성할 것이다. The command/
플립플롭(1120)은 타이밍 컨트롤러(1140)로부터 제공되는 클록 신호(CLK)에 동기하여 커맨드/어드레스 신호(CA)를 캡쳐하고 출력한다. 예를 들면, 플립플롭(1120)에 의해서 4-비트 폭의 커맨드/어드레스 신호(CA[6:3])가 출력될 수 있다. The flip-
클록 생성기(1130)는 지정된 주파수의 클록 신호(CKt, CKc)를 생성한다. 클록 생성기(1130)는 발진 회로에서 생성되는 기준 클록을 이용하여 커맨드/어드레스 신호(CA)의 전송을 위한 클록 신호(CKt, CKc)를 생성할 수 있다. 더불어, 클록 생성기(1130)는 데이터 신호(DQ)를 송신 또는 수신하기 위한 클록 신호(WCKt, WCKc)를 생성할 수도 있다. 클록 생성기(1130)는 위상 고정 루프(Phase Locked Loop: PLL) 회로나 지연 고정 루프(Delay Locked Loop: DLL) 회로로 구현될 수 있으나, 이에 한정되는 것은 아니다. 클록 생성기(1130)에서 클록 신호(CKt, CKc)는 클록 드라이버(1132, 1134)를 통해서 메모리 장치들(1200, 1300)에 공통으로 전달될 것이다.The
타이밍 컨트롤러(1140)는 클록 생성기(1130)에서 생성된 클록 신호(CKt, CKc)와 커맨드/어드레스 신호(CA)를 동기시킨다. 타이밍 컨트롤러(1140)에 의해서 클록 신호(CKt, CKc)는 커맨드/어드레스 신호(CA)를 캡쳐할 타이밍을 조정할 수 있다. 즉, 타이밍 컨트롤러(1140)에 의해서 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 송신측 정렬(Align)이 이루어질 수 있다. The
이상의 멀티-랭크를 구성하는 메모리 장치들(1200, 1300)에 공통 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 전송하는 메모리 컨트롤러(1100)의 구성이 간략히 설명되었다. 메모리 컨트롤러(1100)의 입장에서는, 커맨드/어드레스 신호(CA)의 랭크간 스큐(Skew)를 보상하기 위해 클록 신호(CKt, CKc)를 랭크별로 분리하기에는 부담이 크다. 따라서, 본 발명의 매치드형 메모리 장치들(1200, 1300)에 대한 커맨드 버스 트레이닝(CBT)을 사용하면 메모리 컨트롤러(1100)의 부담없이 커맨드/어드레스 신호(CA)의 신호 무결성(SI)을 높일 수 있다. The configuration of the
도 4는 도 2의 메모리 장치의 구성을 예시적으로 보여주는 블록도이다. 도 4를 참조하면, 듀얼-랭크를 구성하는 메모리 장치들 중에서 제 1 랭크(Rank0)에 대응하는 제 1 메모리 장치(1200)의 구성을 예시로 본 발명의 이점이 설명될 것이다. 제 1 메모리 장치(1200)는 비교기들(1210, 1220), 제 1 지연 라인(1230), 제 1 가변 지연 라인(1240), 제 1 플립플롭(1250), 제 1 커맨드 디코더(1260), 제 1 어드레스 디코더(1265), 제 1 셀 어레이(1270), 센스 앰프(1272), 데이터 버퍼(1274), 모드 레지스터 셋(1280), 그리고 지연 제어 로직(1290)을 포함할 수 있다.FIG. 4 is a block diagram exemplarily showing the configuration of the memory device of FIG. 2. Referring to FIG. 4, the advantages of the present invention will be explained by taking as an example the configuration of the
제 1 비교기(1210)는 메모리 컨트롤러(1100)로부터 전송되는 커맨드/어드레스 신호(CA)를 수신한다. 제 1 비교기(1210)는 커맨드/어드레스 신호(CA)와 기준 전압(VREF)을 비교하여 신호 레벨을 결정한다. 결정된 신호 레벨은 샘플링된 커맨드/어드레스 신호(CA)로서 제 1 지연 라인(1230)으로 전달된다.The
제 2 비교기(1220)는 차동 신호 형태로 전달되는 클록 신호(CKt, CKc)를 수신한다. 메모리 컨트롤러(1100)로부터 전송되는 클록 신호(CKt, CKc)는 제 2 비교기(1220)에 의해서 시모스(CMOS) 형태의 내부 클록 신호(CK0)로 변환될 수 있다. 즉, 제 2 비교기(1220)는 컴먼모드-시모스(C2C) 변환기의 기능을 사용하여 클록 신호(CKt, CKc)를 수신한다. 제 2 비교기(1220)에 의해서 샘플링되어 CMOS 레벨로 변환된 내부 클록 신호(CK0)는 제 1 가변 지연 라인(1240)에 전달된다.The
제 1 지연 라인(1230)과 제 1 가변 지연 라인(1240)은 각각 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 정합(Match)된 지연을 제공한다. 즉, 제 1 지연 라인(1230)과 제 1 가변 지연 라인(1240)은 최적의 정합된 지연값으로 고정되어 생산될 것이다. 하지만, 멀티-랭크를 구성하기 위해 사용되는 와이어 결선이나 인쇄회로기판(PCB)의 도전 라인들에 의해서 지연 특성의 변화가 발생할 수 있다. 본 발명의 제 1 가변 지연 라인(1240)은 지연의 크기를 제어 가능하도록 가변 지연 라인(Variable Delay line)으로 구성될 것이다. The
제 1 플립플롭(1250)은 제 1 가변 지연 라인(1240)을 경유하여 전달되는 내부 클록 신호(CK0)의 에지에 응답하여 입력단(D)의 데이터를 래치하고 출력단(Q)으로 전달한다. 제 1 플립플롭(1250)의 입력단(D)에는 제 1 지연 라인(1230)을 경유하여 전달되는 커맨드/어드레스 신호(CA)가 제공된다. 제 1 플립플롭(1250)에서 샘플링된 커맨드/어드레스 신호(CA)는 커맨드 디코더(1260) 또는 어드레스 디코더(1265)에 전달된다. The first flip-
커맨드 디코더(1260)는 샘플링된 커맨드/어드레스 신호(CA)를 참조하여 입력되는 명령어를 판단한다. 커맨드 디코더(1260)는 외부로부터 제공되는 커맨드에 응답하여 데이터를 셀 어레이(1270)에 기입하기 위한 제어 동작이나, 셀 어레이(1270)에 기입된 데이터를 독출하기 위한 제어 동작을 실행할 수 있다. 또한, 커맨드 디코더(1260)는 외부에서 제공되는 커맨드와 어드레스에 따라 모드 레지스터 셋(1280)에 데이터를 기입할 수 있다. 동일한 방식으로 어드레스 디코더(1265)에도 커맨드/어드레스 신호(CA)를 통해서 제공되는 어드레스 및 기타 제어 신호들이 전달될 수 있다. 그러면, 어드레스 디코더(1265)는 디코딩 동작을 통해서 어드레스 및 정보 신호를 추출하여 필요한 구성들로 전달할 것이다.The
셀 어레이(1270)에는 데이터 버스(DQ)를 통해서 전달되는 쓰기 데이터가 저장된다. 셀 어레이(1270)에 저장된 데이터는 센스 앰프(1272)를 통해 감지되고 데이터 버퍼(1274)를 통해 외부로 출력될 수 있다. Write data transmitted through the data bus (DQ) is stored in the
모드 레지스터 셋(1280)은 메모리 장치(1200)의 동작 모드를 지정하기 위한 MRS 커맨드와 어드레스에 응답하여 내부의 모드 레지스터(Mode register)를 설정한다. 특히, 본 발명의 모드 레지스터 셋(1280)은 커맨드 버스 트레이닝(CBT)을 위한 커맨드가 기입되고 실행될 수 있다. 그리고 커맨드 버스 트레이닝(CBT) 이후에 메모리 컨트롤러(1100)로부터 제공되는 요청에 따라 모드 레지스터 셋(1280)은 가변 지연 라인으로 구성되는 제 1 가변 지연 라인(1240)의 지연 크기를 조정할 수 있다. 이를 위해, 모드 레지스터 셋(1280)은 지연 제어 로직(1290)을 제어할 수 있다.The mode register set 1280 sets an internal mode register in response to the MRS command and address for specifying the operation mode of the
지연 제어 로직(1290)은 모드 레지스터 셋(1280)을 통해서 제공되는 정보에 따라 제 1 가변 지연 라인(1240)의 지연을 증가시키거나 감소시킬 수 있다. 예를 들면, 지연 제어 로직(1290)은 모드 레지스터 셋(1280)의 제어에 따라 제 1 가변 지연 라인(1240)에서의 지연 크기를 선택할 수 있다. 지연 제어 로직(1290)의 구현은 다양하게 제공될 수 있다. 즉, 지연 제어 로직(1290)은 퓨즈 옵션이나 제어 로직으로 구현될 수 있다.The
이상에서 설명된 제 1 메모리 장치(1200)에 따르면, 수신된 클록 신호(CKt, CKc)로부터 생성된 내부 클록(CK0)의 지연을 조정할 수 있다. 커맨드 버스 트레이닝(CBT)을 통해서 랭크들 간의 커맨드/어드레스 신호(CA)의 스큐가 검출될 수 있다. 이때, 메모리 컨트롤러(1100)는 어느 하나의 메모리 장치의 내부 클록(CK0)의 지연을 조정함으로써 멀티-랭크로 구성되는 메모리 모듈(1500, 도 1 참조)의 커맨드/어드레스 신호(CA)의 신호 무결성(SI)을 확보할 수 있다.According to the
도 5는 도 4의 클록 지연 라인의 예시적인 구조를 간략히 보여주는 회로도이다. 도 5를 참조하면, 제 1 가변 지연 라인(1240)은 복수의 인버터들(INV1~INVn)을 지연 요소로 사용한다. 즉, 제 1 가변 지연 라인(1240)은 복수의 인버터들(INV1~INVn) 각각의 출력(Out_1~Out_n)들 중 어느 하나를 내부 클록(CK0)의 지연된 출력(CK0_j)으로 사용할 수 있다. 이때, 스위치 제어 신호(예를 들면, SWn)에 의해 선택된 출력이 조정된 지연 출력(CK0_j) 값으로 결정된다. 즉, 복수의 출력(CK0_1~CK0_n)들 중 선택된 어느 하나(예를 들면, CK0_3)가 커맨드/어드레스 신호(CA)를 캡쳐하기 위한 클록 신호로 사용될 수 있다. 복수의 출력(CK0_1~CK0_n)들 중 선택되는 어느 하나는 선택되는 스위치(SW1~SWn)에 의해서 제 1 플립플롭(1250)에 전달될 수 있다.FIG. 5 is a circuit diagram briefly showing an example structure of the clock delay line of FIG. 4. Referring to FIG. 5, the first
이상에서는 제 1 가변 지연 라인(1240)을 인버터들과 스위치들을 사용하는 구성이 간략히 설명되었으나 본 발명은 여기에 한정되지 않는다. 예를 들면, 제 1 가변 지연 라인(1240)은 복수의 플립플롭들(FF1~FFn)을 지연 요소로 사용할 수도 있다. 더불어, 멀티-랭크를 구성하는 제 2 메모리 장치(1300)에 포함되는 제 2 가변 지연 라인(1340)도 실질적으로 제 1 가변 지연 라인(1240)과 동일하게 구성될 수 있다.In the above, a configuration using inverters and switches for the first
도 6은 본 발명의 실시 예에 따른 커맨드 버스 트레이닝(CBT) 방법을 예시적으로 보여주는 타이밍도이다. 도 6을 참조하면, 커맨드 버스 트레이닝(CBT)시, 메모리 컨트롤러(1100)와 메모리 장치(1200 또는 1300) 사이에서 교환되는 신호들의 파형이 예시적으로 도시되어 있다. 이하에서는 메모리 컨트롤러(1100)와 메모리 장치(1200) 사이에서 교환되는 신호들의 파형을 예시로 커맨드 버스 트레이닝(CBT)이 설명될 것이다.Figure 6 is a timing diagram illustrating a command bus training (CBT) method according to an embodiment of the present invention. Referring to FIG. 6, the waveforms of signals exchanged between the
칩 선택 신호(CS)가 하이 레벨로 천이되면서 제 1 메모리 장치(1200)가 선택된다. 그리고 커맨드/어드레스 신호(CA)를 전달하기 위한 클록 신호(CKt, CKc)가 토글링되기 시작한다. 그러면, T0 시점 이전부터 활성화된 칩 선택 신호(CS)와 커맨드/어드레스 버스를 통해서 전송되는 커맨드/어드레스 신호(CA[6:0])가 모드 레지스터 셋팅 커맨드(MRW)임을 나타낼 수 있다. 그러면, 제 1 메모리 장치(1200)는 클록 신호(CKt, CKc)의 상승 또는 하강 에지에 동기된 모드 레지스터 셋팅 커맨드(MRW)를 수신한다. 제 1 메모리 장치(1200)는 수신된 커맨드 버스 트레이닝(CBT) 모드를 모드 레지스터 셋(1280)에 설정할 수 있다.As the chip select signal CS transitions to a high level, the
Ta1 시점에서, 데이터 클록 신호(WCKt, WCKc)의 토글링이 시작된다. 그리고 Tb1 시점에서 데이터 클록 신호(WCKt)의 상승 에지에 동기하여 데이터 신호(DQ[7])가 로직 하이(High)로 천이한다. 그러면, 메모리 장치(1200)는 커맨드 버스 트레이닝(CBT) 모드로 진입할 수 있다. At point Ta1, toggling of data clock signals (WCKt, WCKc) begins. And at time Tb1, the data signal (DQ[7]) transitions to logic high in synchronization with the rising edge of the data clock signal (WCKt). Then, the
여기서, 데이터 신호(DQ[7])는 커맨드 버스 트레이닝(CBT) 모드에서 데이터 신호 (DQ[7:0]) 중 커맨드/어드레스 신호(CA[6:0])와의 일대일 매칭 관계에서 배제되는 신호이다. 커맨드 버스 트레이닝(CBT) 모드 시, 커맨드/어드레스 신호(CA[6:0]) 각각은 데이터 신호(DQ[6:0]) 각각에 대응되어 커맨드 버스 트레이닝(CBT) 신호로서 출력된다. 하지만, 데이터 신호(DQ[7])는 커맨드 버스 트레이닝(CBT) 신호로서 출력되는 데 사용되지 않는다. 즉, 커맨드 버스 트레이닝(CBT) 모드의 출력 신호에 사용되지 않는 데이터 신호(DQ[7]) 커맨드 버스 트레이닝(CBT) 모드 진입을 지시하는 신호로 이용될 수 있다.Here, the data signal (DQ[7]) is a signal excluded from the one-to-one matching relationship with the command/address signal (CA[6:0]) among the data signals (DQ[7:0]) in command bus training (CBT) mode. am. In the command bus training (CBT) mode, each command/address signal (CA[6:0]) corresponds to each data signal (DQ[6:0]) and is output as a command bus training (CBT) signal. However, the data signal (DQ[7]) is not used to be output as a command bus training (CBT) signal. In other words, a data signal (DQ[7]) that is not used in the output signal of the command bus training (CBT) mode can be used as a signal to indicate entry into the command bus training (CBT) mode.
Te2 시점에서, 칩 선택 신호(CS)가 로직 하이로 천이한다. 그러면, 메모리 컨트롤러(1100)는 제 1 메모리 장치(1200)의 커맨드/어드레스 신호(CA)의 단위 구간(Unit Interval: 이하, UI)의 마진을 체크하기 위한 트레이닝 패턴(PTN_A)을 입력한다. 이때, 클록 신호(CKt, CKc)에 동기하여 트레이닝 패턴(PTN_A)이 입력된다.At point Te2, the chip select signal (CS) transitions to logic high. Then, the
Tf0 시점에서, 입력된 트레이닝 패턴(PTN_A)과 클록 신호(CKt, CKc)의 정렬 특성에 따른 데이터 신호(DQ[6:0])가 출력된다. 이때, 입력되는 트레이닝 패턴(PTN_A)과 클록 신호(CKt, CKc)의 정렬 정도에 따라 데이터 신호(DQ[6:0])의 패스 또는 페일 여부가 결정된다. 메모리 컨트롤러(1100)는 데이터 신호(DQ[6:0])로 출력되는 트레이닝 패턴(PTN_A)과 입력 트레이닝 패턴의 비트값을 비교하여 패스(Pass) 또는 페일(Fail)을 판단한다. 메모리 컨트롤러(1100)는 트레이닝 패턴(PTN_A)의 입력 비트값과 출력 비트값을 비교하여 동일한 경우는 패스(Pass)로 판단할 것이다. 반면, 메모리 컨트롤러(1100)는 트레이닝 패턴(PTN_A)의 입력 비트값과 출력 비트값이 다른 경우에는 페일(Fail)로 판단할 것이다.At time Tf0, a data signal (DQ[6:0]) according to the alignment characteristics of the input training pattern (PTN_A) and clock signals (CKt, CKc) is output. At this time, whether the data signal (DQ[6:0]) passes or fails is determined depending on the degree of alignment of the input training pattern (PTN_A) and the clock signals (CKt, CKc). The
커맨드 버스 트레이닝(CBT)을 위해 상술한 트레이닝 패턴(PTN_A)의 입력과 출력은 트레이닝 패턴(PTN_A)의 타이밍을 가변하면서 복수회 실시될 수 있다. 다른 실시 예에서, 커맨드 버스 트레이닝(CBT)을 위한 트레이닝 패턴(PTN_A)의 입력과 출력은 클록 신호(CKt, CKc)의 지연을 가변하면서 복수회 실시될 수도 있다. 제 1 메모리 장치(1200)에 대한 커맨드 버스 트레이닝(CBT)이 완료되면, 메모리 컨트롤러(1100)는 제 2 메모리 장치(1300)에 대한 타이밍도에서 설명된 절차에 따라 커맨드 버스 트레이닝(CBT)을 이어갈 것이다.For command bus training (CBT), the input and output of the training pattern (PTN_A) described above may be performed multiple times while varying the timing of the training pattern (PTN_A). In another embodiment, the input and output of the training pattern (PTN_A) for command bus training (CBT) may be performed multiple times while varying the delays of the clock signals (CKt and CKc). When command bus training (CBT) for the
도 7은 본 발명의 멀티-랭크 메모리에 대한 커맨드 버스 트레이닝(CBT)의 결과를 보여주는 도면이다. 도 7을 참조하면, 각 랭크별 커맨드 버스 트레이닝(CBT)의 결과에 따라 출력되는 트레이닝 패턴(PTN_A)의 칩 선택 신호(CS)에 대한 상대적인 위치 또는 마진이 도시되어 있다. 여기서, 제 1 메모리 장치(1200)는 제 1 랭크(Rank0)를 구성하고, 제 2 메모리 장치(1300)는 제 2 랭크(Rank1)를 구성하므로, 메모리 장치들(1200, 1300)과 랭크(Rank0, Rank1)가 혼용되어 사용될 수 있다. 즉, 제 1 랭크(Rank0)는 제 1 메모리 장치(1200)를, 제 2 랭크(Rank1)는 제 2 메모리 장치(1300)를 지칭할 수 있다.Figure 7 is a diagram showing the results of command bus training (CBT) for the multi-rank memory of the present invention. Referring to FIG. 7, the relative position or margin of the training pattern (PTN_A) output according to the results of command bus training (CBT) for each rank with respect to the chip select signal (CS) is shown. Here, the
먼저, 제 1 랭크(Rank0)에 대한 커맨드 버스 트레이닝(CBT)의 결과가 테이블의 첫 번째 열에 도시되어 있다. 제 1 랭크(Rank0)의 커맨드/어드레스 신호(CA)의 특성은 내부 클록 신호(CK0)와 잘 정렬되어 있다. 따라서, 제 1 랭크(Rank0)에서 CA 스윕(CA Sweep) 결과로 출력되는 패스 트레이닝 패턴(PTN_A)은 칩 선택 신호(CS)의 중심을 기준으로 균형있게 분포한다. 여기서, CA 스윕(CA Sweep)은 커맨드 버스의 최적 입력 타이밍을 결정하기 위한 트레이닝 동작을 의미한다. 즉, CA 스윕을 위해 메모리 컨트롤러(1100, 도 1 참조)는 커맨드 버스에 입력되는 트레이닝 패턴(PTN_A)의 입력 타이밍을 복수 회 가변하면서 입력하고 출력받을 수 있다. 즉, 도 7의 트레이닝 패턴(PTN_A) 입력 및 출력 절차를 서로 다른 입력 타이밍을 적용하여 복수 회 실행할 수 있다. 그리고, 메모리 컨트롤러(1100)는 출력되는 각 입력 타이밍에 대응하는 트레이닝 패턴(PTN_A)들의 오류(Error)의 존재 여부에 따라 패스(Pass) 또는 페일(Fail)을 판단한다. 트레이닝 패턴(PTN_A)들의 입력 타이밍은 하나의 입력 사이클(1tCK) 내에서 상이한 크기의 지연으로 구현된다.First, the results of command bus training (CBT) for the first rank (Rank0) are shown in the first column of the table. The characteristics of the command/address signal (CA) of the first rank (Rank0) are well aligned with the internal clock signal (CK0). Accordingly, the pass training pattern (PTN_A) output as a result of the CA sweep in the first rank (Rank0) is distributed in a balanced manner based on the center of the chip selection signal (CS). Here, CA Sweep refers to a training operation to determine the optimal input timing of the command bus. That is, for CA sweep, the memory controller 1100 (see FIG. 1) can input and output the training pattern PTN_A input to the command bus by varying the input timing multiple times. That is, the training pattern (PTN_A) input and output procedures of FIG. 7 can be executed multiple times by applying different input timings. In addition, the
반면에, 제 2 랭크(Rank1)에 대한 커맨드 버스 트레이닝(CBT)의 결과는 테이블의 두 번째 열에 도시되어 있다. 제 2 랭크(Rank1)의 커맨드/어드레스 신호(CA)의 특성은 내부 클록 신호(CK0)와 스큐를 갖는다. 따라서, CA 스윕 결과로 출력되는 패스 트레이닝 패턴(PTN_A)은 칩 선택 신호(CS)의 중심을 기준으로 치우쳐진 형태로 분포한다. 즉, 제 1 랭크(Rank0)와 제 2 랭크(Rank1)의 CA 마진을 높이기 위해서는 제 2 랭크(Rank1)의 내부 클록 신호(CK0)의 지연이 필요하다. On the other hand, the results of Command Bus Training (CBT) for the second rank (Rank1) are shown in the second column of the table. The characteristics of the command/address signal (CA) of the second rank (Rank1) have skew with the internal clock signal (CK0). Accordingly, the pass training pattern (PTN_A) output as a result of the CA sweep is distributed in a skewed form based on the center of the chip selection signal (CS). That is, in order to increase the CA margin of the first rank (Rank0) and the second rank (Rank1), the internal clock signal (CK0) of the second rank (Rank1) is required to be delayed.
커맨드 버스 트레이닝(CBT)의 결과를 고려하면, 제 2 랭크(Rank1)의 내부 클록 신호(CK0)를 지연시킬 필요가 있다. 이를 위하여 메모리 컨트롤러(1100)는 제 2 메모리 장치(1300)의 제 2 가변 지연 라인(1340)을 설정하여 특정 크기로 지연을 증가(+Delay)시킬 수 있다. 제 2 가변 지연 라인(1340)을 통한 내부 클록 신호의 지연 증가(+Delay)에 따라 제 2 랭크(Rank1)의 커맨드/어드레스 신호(CA)의 마진은 증가될 수 있다.Considering the results of command bus training (CBT), it is necessary to delay the internal clock signal (CK0) of the second rank (Rank1). To this end, the
도 8은 본 발명의 실시 예에 따른 커맨드 버스 트레이닝(CBT) 방법을 간략히 보여주는 순서도이다. 도 8을 참조하면, 각 랭크별 커맨드 버스 트레이닝(CBT)을 통한 커맨드/어드레스 신호(CA)의 스윕(Sweep)을 수행하고, 그 결과를 이용하여 어느 하나의 랭크의 가변 지연 라인을 조정할 수 있다.Figure 8 is a flowchart briefly showing a command bus training (CBT) method according to an embodiment of the present invention. Referring to FIG. 8, a sweep of the command/address signal (CA) is performed through command bus training (CBT) for each rank, and the variable delay line of one rank can be adjusted using the result. .
S110 단계에서, 메모리 컨트롤러(1100)는 제 1 랭크(Rank0)에 대한 커맨드 버스 트레이닝(CBT)을 수행한다. 즉, 메모리 컨트롤러(1100)는 트레이닝 패턴(PTN_A)의 입력 타이밍을 변화시켜 커맨드/어드레스 신호(CA)의 스윕을 수행한다. 다른 실시 예에서, 트레이닝 패턴(PTN_A)의 입력 타이밍은 고정되고 클록 신호(CKt, CKc)의 타이밍을 변화시키면서 커맨드/어드레스 신호(CA)의 스윕을 수행할 수도 있을 것이다. In step S110, the
S120 단계에서, 메모리 컨트롤러(1100)는 제 1 랭크(Rank0)에 대한 커맨드/어드레스 신호(CA)의 마진을 체크한다. 즉, 메모리 컨트롤러(1100)는 입력된 트레이닝 패턴(PTN_A)과 출력된 트레이닝 패턴(PTN_A)을 비교하여 커맨드/어드레스 신호(CA)의 마진을 확인할 수 있다. In step S120, the
S130 단계에서, 메모리 컨트롤러(1100)는 제 2 랭크(Rank1)에 대한 커맨드 버스 트레이닝(CBT)을 수행한다. 즉, 메모리 컨트롤러(1100)는 트레이닝 패턴(PTN_A)의 입력 타이밍을 가변하면서 커맨드/어드레스 신호(CA)의 스윕을 수행한다. 또는, 트레이닝 패턴(PTN_A)의 입력 타이밍은 고정되고 클록 신호(CKt, CKc)의 타이밍을 변화시키면서 커맨드/어드레스 신호(CA)의 스윕을 수행할 수도 있다. In step S130, the
S140 단계에서, 메모리 컨트롤러(1100)는 제 2 랭크(Rank1)에 대한 커맨드/어드레스 신호(CA)의 마진을 체크한다. 즉, 메모리 컨트롤러(1100)는 제 2 랭크(Rank1)에 입력된 트레이닝 패턴(PTN_A)과 출력된 트레이닝 패턴(PTN_A)을 비교하여 커맨드/어드레스 신호(CA)의 마진을 확인할 수 있다. In step S140, the
S150 단계에서, 메모리 컨트롤러(1100)는 제 1 랭크(Rank0)의 커맨드/어드레스 신호(CA) 마진과 제 2 랭크(Rank1)의 커맨드/어드레스 신호(CA) 마진을 비교한다. 그리고 메모리 컨트롤러(1100)는 비교 결과에 따라 제 1 랭크(Rank0)와 제 2 랭크(Rank1) 중 적어도 하나의 클록 지연 라인(1240)을 조정한다. In step S150, the
도 9는 본 발명의 다른 실시 예에 따른 메모리 시스템을 간략히 보여주는 블록도이다. 도 9를 참조하면, 메모리 시스템(2000)은 메모리 컨트롤러(2100) 및 메모리 장치들(2200, 2300)을 포함한다. 메모리 장치들(2200, 2300)은 각각 멀티-랭크로 구성되는 메모리 모듈을 구성할 수 있다. 즉, 메모리 장치들(2200, 2300)은 각각 2개의 랭크들(Rank0, Rank1)을 구성한다. 도 2의 메모리 시스템(1000)과는 달리 메모리 시스템(2000)은 데이터 신호(DQ)와 데이터 클록 신호(WCKt, WCKc)가 공유된다. 따라서, 메모리 장치들(2200, 2300)은 데이터 클록 신호(WCKt, WCKc)를 내부에서 지연시킬 수 있는 가변 지연 라인(2240 또는 2340)을 포함할 수 있다. Figure 9 is a block diagram briefly showing a memory system according to another embodiment of the present invention. Referring to FIG. 9 , the
메모리 컨트롤러(2100)는 메모리 장치들(2200, 2300)을 멀티-랭크 방식으로 제어한다. 즉, 메모리 컨트롤러(1100)는 데이터 신호(DQ)와 데이터 클록 신호(WCKt, WCKc)를 메모리 장치들(2200, 2300)에 공통으로 인가한다. 메모리 장치들(2200, 2300)은 병렬로 연결된 패드들을 통해 데이터 신호(DQ)와 데이터 클록 신호(WCKt, WCKc)를 공유하도록 결선될 수 있다. 그리고 메모리 컨트롤러(2100)는 데이터 버스 트레이닝을 통해서 메모리 장치들(2200, 2300) 내부에 구비되는 가변 지연 라인(2240 또는 2340)을 설정할 수 있다. 이러한 기능을 사용하여 메모리 컨트롤러(2100)는 랭크들 간의 데이터 신호(DQ) 또는 데이터 클록 신호(WCKt, WCKc)의 특성 차이로 발생하는 스큐를 보상할 수 있다. The
메모리 장치들(2200, 2300)은 도시된 형태의 듀얼 랭크 형태로 구성될 수 있다. 하지만, 메모리 장치들(2200, 2300)의 수는 복수 채널의 4-랭크 또는 그 이상의 랭크들을 구성하도록 증가될 수 있을 것이다. 메모리 장치들(2200, 2300) 각각은 메모리 컨트롤러(2100)로부터 공통 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 수신한다. 그리고 메모리 장치들(2200, 2300) 각각은 매치드형(Matched type)의 데이터 신호(DQ)와 데이터 클록 신호(WCKt, WCKc)의 수신 방식을 사용한다. The
하지만, 본 발명에 따른 메모리 장치들(2200, 2300)은 데이터 클록 신호(WCKt, WCKc)의 가변 지연 라인들(2240, 2340)을 포함한다. 메모리 컨트롤러(2100)는 메모리 장치들(2200, 2300) 각각에 대한 데이터 버스 트레이닝을 수행할 수 있다. 그리고 데이터 버스 트레이닝의 결과를 기반으로 메모리 장치들(2200, 2300) 각각의 데이터 신호(DQ)의 마진이 체크될 수 있다. 그리고 메모리 장치들(2200, 2300) 각각의 데이터 신호(DQ)의 마진을 기반으로 데이터 클록 신호(WCKt, WCKc)의 가변 지연 라인이 조정될 수 있다. 이를 위해, 데이터 클록 신호(WCKt, WCKc)의 가변 지연 라인들(2240, 2340)은 퓨즈나 모드 레지스터를 사용하여 설정될 수 있다. However, the
제 1 메모리 장치(2200)는 메모리 컨트롤러(2100)로부터 전송되는 데이터 신호(DQ)를 제 1 비교기(2210)를 사용하여 수신한다. 즉, 제 1 비교기(2210)는 수신된 데이터 신호(DQ)와 기준 전압(VREF)을 비교하여 샘플링한다. 제 1 비교기(2210)에 의해서 샘플링된 데이터 신호(DQ)는 제 1 데이터 지연 라인(2230)을 경유하여 제 1 플립플롭(2250)의 데이터 입력단(D)으로 전달될 것이다.The
메모리 컨트롤러(2100)로부터 전송되는 데이터 클록 신호(WCKt, WCKc)는 제 2 비교기(2220)에 의해서 수신된다. 제 2 비교기(2220)는 차동 신호 형태로 전달되는 데이터 클록 신호(WCKt, WCKc)를 시모스(CMOS) 형태의 신호로 변환시킨다. 즉, 제 2 비교기(2220)는 컴먼모드-시모스(C2C) 변환기의 기능으로 데이터 클록 신호(WCKt, WCKc)를 수신할 것이다. 제 2 비교기(2220)에 의해서 CMOS 레벨로 변환되어 제 1 가변 지연 라인(2240)을 경유하여 제 1 플립플롭(2250)의 클록 입력단에 전달된다. 제 1 플립플롭(2250)에 의해서 데이터 신호(DQ)는 데이터 클록 신호(WCKt, WCKc)에 동기되어 샘플링된다. 샘플링된 데이터 신호(DQ)는 제 1 데이터 버퍼(2260)로 전달된다. Data clock signals (WCKt, WCKc) transmitted from the
제 2 비교기(2220)에서 수신된 데이터 클록 신호(WCKt, WCKc)는 제 1 가변 지연 라인(2240)을 경유하여 제 1 플립플롭(2250)에 전달된다. 제 1 가변 지연 라인(2240)은 다양한 수단을 통해서 지연 크기의 제어가 가능한 구조로 제공될 수 있다. 즉, 제 1 가변 지연 라인(2240)은 퓨즈 프로그램이나 모드 레지스터 셋(MRS)를 사용하여 설정될 수 있다. 랭크들 간의 데이터 신호(DQ)의 스큐(Skew)는 데이터 클록 신호(WCKt, WCKc)의 지연의 크기를 조정하기 위한 제 1 가변 지연 라인(2240) 또는 제 2 가변 지연 라인(2340)이 설정될 수 있다. The data clock signals (WCKt, WCKc) received from the
제 2 랭크(Rank1)를 구성하는 제 2 메모리 장치(2300)도 실질적으로 제 1 메모리 장치(2200)와 동일한 구성을 포함한다. 즉, 제 2 메모리 장치(2300)는 제 3 비교기(2310), 제 4 비교기(2320), 제 2 데이터 지연 라인(2330), 제 2 가변 지연 라인(2340), 제 2 플립플롭(2350), 그리고 제 2 데이터 버퍼(2360)를 포함할 수 있다. 따라서, 제 2 메모리 장치(2300)의 구성들의 기능에 대한 설명은 생략하기로 한다. The
다만, 데이터 버스 트레이닝은 메모리 장치들(2200, 2300) 각각에 대해 진행된다. 그리고 데이터 버스 트레이닝의 결과를 기반으로 랭크들 간의 데이터 신호(DQ)의 스큐(Skew)를 조정하기 위해 데이터 클록 신호(WCKt, WCKc)의 지연 조정은 메모리 장치들(2200, 2300) 중 어느 하나에만 적용될 수 있다.However, data bus training is performed for each of the
본 발명의 메모리 시스템(2000)은 매치드형으로 데이터 신호(DQ)와 데이터 클록 신호(WCKt, WCKc)를 수신하는 멀티-랭크 메모리 장치들(2200, 2300)을 포함한다. 그리고 이들 메모리 장치들(2200, 2300) 간에 존재하는 데이터 신호(DQ)의 스큐는 어느 하나의 내부에 구비된 가변 지연 라인(2230 또는 2340)의 조정을 통해서 보상될 수 있다. 이러한 트레이닝을 통해서 매치드 방식의 멀티-랭크 각각은 최적의 클록 타이밍으로 데이터 신호(DQ)를 수신할 수 있다. The
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템의 구성을 보여주는 단면도이다. 도 10을 참조하면, 메모리 시스템(3000)은 메모리 컨트롤러(3100) 및 메모리 모듈(3200)을 포함한다. 메모리 모듈(3200)은 각각 4개의 랭크를 구성하는 다층 메모리 장치들(3210, 3230)을 포함한다. Figure 10 is a cross-sectional view showing the configuration of a memory system according to another embodiment of the present invention. Referring to FIG. 10 , the
메모리 컨트롤러(3100)는 메모리 모듈(3200)에 데이터를 쓰거나, 메모리 모듈(3200)에 저장된 데이터를 읽어내는 접근 동작을 수행할 수 있다. 메모리 컨트롤러(3100)는 메모리 모듈(3200)에 데이터를 기입하거나, 메모리 모듈(3200)에 저장된 데이터를 독출하기 위한 명령어(CMD)와 어드레스(ADDR)를 생성할 수 있다. 메모리 컨트롤러(3100)는 메모리 모듈(3200)을 제어하기 위한 칩셋, 모바일 AP(Application Processor: 이하, AP)와 같은 시스템 온 칩(SoC), CPU, GPU 중 적어도 하나일 수 있다. The
메모리 모듈(3200)은 멀티-랭크들(Rank0, Rank1, Rank2, Rank3)에 대응하는 적층된 복수의 메모리 장치들을 포함한다. 적층된 4개의 메모리 장치들(3210)은 2-랭크 구조로 각각 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 공유할 수 있다. 적층된 4개의 메모리 장치들(3210)은 각각 2개의 랭크가 하나의 채널을 구성하는 구조로 메모리 컨트롤러(3100)에 연결될 수 있다. 즉, 메모리 장치들(3210) 중 제 1 랭크(Rank0)와 제 2 랭크(Rank1)가 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 공유하도록 와이어 본딩으로 연결될 수 있다. 또한, 제 3 랭크(Rank2)와 제 4 랭크(Rank3)가 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 공유하도록 와이어 본딩으로 연결될 수 있다. 메모리 장치들(3230)도 메모리 장치들(3210)과 동일한 랭크 구조로 메모리 컨트롤러(3100)에 연결될 수 있다. The
메모리 장치들(3210)은 앞서 설명된 방식으로 커맨드 버스 트레이닝(CBT)을 통해서 내부 클록 신호(CKt, CKc)의 지연을 조정할 수 있다. 이를 위해 메모리 장치들(3210)은 각각 내부 클록 신호(CK0)의 지연을 설정하기 위한 가변 지연 라인(미도시)을 포함할 수 있다. The
도 11은 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 11을 참조하면, 메모리 시스템(4000)은 메모리 컨트롤러(4100) 및 메모리 장치들(4200, 4300, 4400, 4500)을 포함한다. 메모리 장치들(4200, 4300, 4400, 4500)은 4개의 랭크들(Rank0, Rank1, Rank2, Rank3)을 구성한다. Figure 11 is a block diagram showing a memory system according to another embodiment of the present invention. Referring to FIG. 11 , the
메모리 컨트롤러(4100)는 메모리 장치들(4200, 4300, 4400, 4500)을 4-랭크 방식으로 제어한다. 즉, 메모리 컨트롤러(4100)는 커맨드/어드레스 신호(CA) 버스와 클록 신호(CKt, CKc)를 메모리 장치들(4200, 4300, 4400, 4500)에 공통으로 인가한다. 메모리 장치들(4200, 4300, 4400, 4500)은 병렬로 연결된 패드들을 통해 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 공유하도록 결선된다. 그리고 메모리 컨트롤러(4100)는 커맨드 버스 트레이닝(CBT)을 통해서 메모리 장치들(4200, 4300, 4400, 4500) 내부에 구비되는 가변 지연 라인들(4240, 4340, 4440, 4540) 중 하나 이상을 설정할 수 있다. 이러한 기능을 사용하여 메모리 컨트롤러(4100)는 랭크들 간의 커맨드/어드레스 신호(CA) 또는 클록 신호(CKt, CKc)의 특성 차이로 발생하는 스큐를 제거하거나 줄일 수 있다. The
메모리 장치들(4200, 4300, 4400, 4500) 각각은 메모리 컨트롤러(4100)로부터 공통 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 수신한다. 그리고 메모리 장치들(4200, 4300, 4400, 4500) 각각은 매치드형(Matched type)의 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc) 수신 방식을 사용한다. 즉, 메모리 장치들(4200, 4300, 4400, 4500) 각각은 커맨드/어드레스 신호(CA)의 수신 경로와 클록 신호(CKt, CKc)의 수신 경로의 지연이 매치된 형태로 제공된다. Each of the
본 발명에 따른 메모리 장치들(4200, 4300, 4400, 4500)은 내부에 클록 신호(CKt, CKc)의 지연을 조정할 수 있는 가변 지연 라인들(4240, 4340, 4440, 4540)을 포함한다. 메모리 컨트롤러(4100)는 가변 지연 라인들(4240, 4340, 4440, 4540) 각각에 대한 커맨드 버스 트레이닝(CBT)을 수행할 수 있다. 그리고 커맨드 버스 트레이닝(CBT)의 결과를 기반으로 메모리 장치들(4200, 4300, 4400, 4500) 각각의 커맨드/어드레스 신호(CA)의 마진이 체크될 수 있다. 메모리 장치들(4200, 4300, 4400, 4500) 각각의 커맨드/어드레스 신호(CA)의 마진을 기반으로 커맨드/어드레스 신호(CA)의 타이밍을 일치시키기 위해 클록 신호(CKt, CKc)의 지연 라인이 조정될 수 있다. 이를 위해, 가변 지연 라인들(4240, 4340, 4440, 4540) 중 적어도 하나가 퓨즈나 모드 레지스터를 사용하여 조정될 수 있다. 메모리 장치들(4200, 4300, 4400, 4500) 각각의 구성은 앞서 설명된 도 4와 실질적으로 동일하다.The
본 발명의 메모리 시스템(4000)은 매치드형으로 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)를 수신하는 4-랭크 메모리 장치들(4200, 4300, 4400, 4500)을 포함한다. 그리고 이들 메모리 장치들(4200, 4300, 4400, 4500) 간에 존재하는 커맨드/어드레스 신호(CA)나 클록 신호(CKt, CKc)의 스큐는 적어도 어느 하나의 가변 지연 라인들(4240, 4340, 4440, 4540)의 조정을 통해서 보상될 수 있다. 이러한 트레이닝을 통해서 매치드 방식의 멀티-랭크 각각은 최적의 클록 타이밍으로 커맨드/어드레스 신호(CA)를 수신할 수 있다. The
도 12는 본 발명의 실시 예에 따른 멀티-랭크 메모리 시스템의 커맨드 버스 트레이닝(CBT) 방법을 간략히 보여주는 순서도이다. 도 12를 참조하면, 각 랭크별 커맨드 버스 트레이닝(CBT)을 통한 커맨드/어드레스 신호(CA)의 스윕(Sweep)을 수행하고, 그 결과를 이용하여 적어도 하나의 랭크의 가변 지연 라인을 조정할 수 있다.Figure 12 is a flowchart briefly showing a command bus training (CBT) method of a multi-rank memory system according to an embodiment of the present invention. Referring to FIG. 12, a sweep of the command/address signal (CA) is performed through command bus training (CBT) for each rank, and the variable delay line of at least one rank can be adjusted using the result. .
S210 단계에서, 커맨드 버스 트레이닝(CBT)을 위한 랭크 식별 번호의 초기화가 수행된다. 예를 들면, 랭크 식별 번호(i, i는 0 이상의 정수)가 '0'으로 초기화될 수 있다. In step S210, initialization of the rank identification number for command bus training (CBT) is performed. For example, the rank identification number (i, i is an integer greater than 0) may be initialized to '0'.
S220 단계에서, 메모리 컨트롤러(4100)는 제 1 랭크(Rank0)에 대한 커맨드 버스 트레이닝(CBT)을 수행한다. 즉, 메모리 컨트롤러(4100)는 트레이닝 패턴(PTN_A)의 입력 타이밍을 변화시켜 커맨드/어드레스 신호(CA)의 스윕을 수행한다. 다른 실시 예에서, 트레이닝 패턴(PTN_A)의 입력 타이밍은 고정되고 클록 신호(CKt, CKc)의 타이밍을 변화시키면서 커맨드/어드레스 신호(CA)의 스윕을 수행할 수도 있을 것이다. In step S220, the
S230 단계에서, 메모리 컨트롤러(4100)는 S220 단계에서 수행된 커맨드 버스 트레이닝(CBT)의 결과로부터 제 1 랭크(Rank0)에 대한 커맨드/어드레스 신호(CA)의 마진을 체크한다. 즉, 메모리 컨트롤러(4100)는 입력된 트레이닝 패턴(PTN_A)과 출력된 트레이닝 패턴(PTN_A)을 비교하여 커맨드/어드레스 신호(CA)의 마진을 확인할 수 있다. In step S230, the
S240 단계에서, 메모리 컨트롤러(4100)는 이전 단계에서 수행된 커맨드 버스 트레이닝(CBT)이 마지막 랭크에 대응하는지 체크한다. 만일, S220 단계 및 S230 단계가 적용된 랭크가 마지막 랭크에 해당하는 경우(Yes 방향), 절차는 S250 단계로 이동한다. 반면에, S220 단계 및 S230 단계가 적용된 랭크가 마지막 랭크에 해당하지 않는 경우(No 방향), 절차는 S245 단계로 이동한다. S245 단계에서는 랭크 식별 번호(i)가 증가한다. 그리고 절차는 S220 단계로 복귀하여 다음 랭크에 대한 커맨드 버스 트레이닝(CBT)이 계속될 것이다. In step S240, the
S250 단계에서, 메모리 컨트롤러(4100)는 복수의 랭크들 각각 대한 커맨드 버스 트레이닝(CBT)의 결과를 참조하여 클록 신호(CKt, CKc)의 조정 크기를 결정한다. 예를 들면, 메모리 컨트롤러(4100)는 가변 지연 라인들(4240, 4340, 4440, 4540) 중 하나 또는 그 이상의 조정 크기를 결정할 수 있다.In step S250, the
S260 단계에서, 메모리 컨트롤러(4100)는 S250 단계에서 결정된 지연 크기로 가변 지연 라인들(4240, 4340, 4440, 4540) 중 하나 또는 그 이상을 조정한다. 가변 지연 라인들(4240, 4340, 4440, 4540)의 지연 크기 조정을 위해, 메모리 컨트롤러(4100)는 모드 레지스터 셋(MRS) 커맨드를 사용할 수 있다.In step S260, the
이상에서는 멀티-랭크 시스템에 본 발명의 커맨드 버스 트레이닝(CBT)을 적용하는 방법이 간략히 설명되었다. 본 발명의 커맨드 버스 트레이닝(CBT)을 적용하면, 매치드형으로 제공되는 멀티-랭크 메모리 시스템의 커맨드/어드레스 신호(CA)와 클록 신호(CKt, CKc)의 스큐가 쉽게 보상될 수 있다. 이러한 트레이닝을 통해서 매치드형 멀티-랭크 각각은 최적의 클록 타이밍으로 커맨드/어드레스 신호(CA)를 수신할 수 있다. Above, a method of applying command bus training (CBT) of the present invention to a multi-rank system was briefly described. By applying the command bus training (CBT) of the present invention, the skew of the command/address signal (CA) and clock signals (CKt, CKc) of the multi-rank memory system provided in a matched type can be easily compensated. Through this training, each matched multi-rank can receive command/address signals (CA) with optimal clock timing.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, embodiments are disclosed in the drawings and specifications. Although specific terms are used here, they are used only for the purpose of describing the present invention and are not used to limit the meaning or scope of the present invention described in the patent claims. Therefore, those skilled in the art will understand that various modifications and other equivalent embodiments are possible. Therefore, the true scope of technical protection of the present invention should be determined by the technical spirit of the attached patent claims.
Claims (20)
상기 제 1 메모리 장치와 커맨드/어드레스 신호 및 클록 신호를 공유하는 제 2 랭크를 구성하는 제 2 메모리 장치를 포함하되,
상기 제 1 메모리 장치 및 상기 제 2 메모리 장치는 매치드 방식(Matched type)으로 커맨드/어드레스 신호 및 클록 신호를 수신하고, 상기 제 1 메모리 장치는 수신된 상기 클록 신호의 지연을 조정하기 위한 가변 지연 라인을 포함하는 메모리 모듈.a first memory device constituting a first rank; and
A second memory device constituting a second rank sharing a command/address signal and a clock signal with the first memory device,
The first memory device and the second memory device receive command/address signals and clock signals in a matched type, and the first memory device has a variable delay for adjusting the delay of the received clock signal. A memory module containing a line.
상기 클록 신호는 상기 커맨드/어드레스 신호를 래치하기 위한 스트로브 신호에 대응하는 메모리 모듈.According to claim 1,
The clock signal corresponds to a strobe signal for latching the command/address signal.
상기 제 1 메모리 장치는:
수신된 상기 커맨드/어드레스 신호(CA)를 미리 설정된 크기로 지연하는 커맨드/어드레스 지연 라인;
상기 클록 신호를 설정된 지연 크기로 조정하는 가변 지연 라인; 그리고
상기 조정된 클록 신호에 응답하여 상기 커맨드/어드레스 지연 라인에서 출력되는 상기 커맨드/어드레스 신호(CA)를 래치하는 플립플롭을 포함하는 메모리 모듈. According to claim 1,
The first memory device is:
a command/address delay line that delays the received command/address signal (CA) to a preset size;
a variable delay line that adjusts the clock signal to a set delay size; and
A memory module comprising a flip-flop that latches the command/address signal (CA) output from the command/address delay line in response to the adjusted clock signal.
상기 제 1 메모리 장치는 상기 가변 지연 라인을 조정하는 지연 제어 로직을 더 포함하는 메모리 모듈.According to claim 3,
The first memory device further includes delay control logic that adjusts the variable delay line.
상기 지연 제어 로직은 상기 제 1 메모리 장치의 외부에서 제공되는 모드 레지스터 셋(MRS) 커맨드를 통해서 제어되는 메모리 모듈.According to claim 4,
A memory module in which the delay control logic is controlled through a mode register set (MRS) command provided externally to the first memory device.
상기 지연 제어 로직은 상기 제 1 메모리 장치의 외부의 제어에 따라 상기 설정된 지연 크기로 상기 가변 지연 로직을 설정하는 퓨즈 옵셋을 포함하는 메모리 모듈. According to claim 4,
The delay control logic includes a fuse offset that sets the variable delay logic to the set delay size according to external control of the first memory device.
상기 설정된 지연 크기는 상기 제 1 메모리 장치와 상기 제 2 메모리 장치에 대한 커맨드 버스 트레이닝(CBT)을 통해서 결정되는 메모리 모듈.According to claim 3,
The set delay size is determined through command bus training (CBT) for the first memory device and the second memory device.
제 1 랭크에 대한 상기 커맨드/어드레스 신호와 상기 클록 신호의 정렬을 체크하기 위한 제 1 커맨드 버스 트레이닝을 수행하는 단계;
제 2 랭크에 대한 상기 커맨드/어드레스 신호와 상기 클록 신호의 정렬을 체크하기 위한 제 2 커맨드 버스 트레이닝을 수행하는 단계;
상기 제 1 및 제 2 커맨드 버스 트레이닝의 결과를 이용하여 상기 제 1 랭크 및 상기 제 2 랭크 각각의 상기 커맨드/어드레스 신호의 마진을 체크하는 단계; 그리고
상기 커맨드/어드레스 신호의 상기 마진에 따라 상기 제 1 랭크 또는 상기 제 2 랭크 내부에서 상기 클록 신호의 지연을 조정하는 단계를 포함하는 트레이닝 방법.In the training method of a matched multi-rank memory module sharing command/address signals and clock signals:
performing first command bus training to check alignment of the command/address signal and the clock signal for a first rank;
performing second command bus training to check alignment of the command/address signal and the clock signal for a second rank;
checking margins of the command/address signals of each of the first rank and the second rank using results of the first and second command bus training; and
A training method comprising adjusting a delay of the clock signal within the first rank or the second rank according to the margin of the command/address signal.
상기 제 1 랭크 또는 상기 제 2 랭크의 내부에는 상기 클록 신호의 지연을 조정하는 가변 지연 라인을 포함하는 트레이닝 방법.According to claim 8,
A training method including a variable delay line inside the first rank or the second rank to adjust a delay of the clock signal.
상기 가변 지연 라인은 모드 레지스터 셋(MRS) 커맨드나 퓨즈 프로그램을 통해서 조정되는 트레이닝 방법. According to clause 9,
A training method in which the variable delay line is adjusted through a mode register set (MRS) command or a fuse program.
상기 클록 신호는 상기 커맨드/어드레스 신호를 래치하기 위한 스트로브 신호에 대응하는 트레이닝 방법.According to claim 8,
A training method wherein the clock signal corresponds to a strobe signal for latching the command/address signal.
상기 제 1 버스 및 상기 제 2 버스를 공유하는 제 1 랭크 메모리 및 제 2 랭크 메모리를 포함하는 메모리 모듈을 포함하되,
상기 제 1 랭크 메모리 또는 상기 제 2 랭크 메모리는 상기 제 2 버스를 통해 수신된 상기 클록 신호를 내부에서 가변적으로 지연하기 위한 가변 지연 라인을 포함하는 메모리 시스템.a memory controller that transmits a signal through a first bus and a clock signal through a second bus; and
A memory module including a first rank memory and a second rank memory sharing the first bus and the second bus,
The first rank memory or the second rank memory includes a variable delay line for internally variably delaying the clock signal received through the second bus.
상기 제 1 랭크 메모리 또는 상기 제 2 랭크 메모리는 매치드 방식(Matched type)으로 상기 신호 및 클록 신호를 수신하는 메모리 시스템.According to claim 12,
A memory system in which the first rank memory or the second rank memory receives the signal and the clock signal in a matched type.
상기 제 1 버스를 통해서 전송되는 신호는 커맨드/어드레스 신호(CA)에 대응하는 메모리 시스템. According to claim 12,
A memory system in which the signal transmitted through the first bus corresponds to a command/address signal (CA).
상기 제 1 버스를 통해서 전송되는 신호는 데이터 신호(DQ)에 대응하는 메모리 시스템. According to claim 12,
A memory system in which a signal transmitted through the first bus corresponds to a data signal (DQ).
상기 제 1 랭크 메모리는:
수신된 상기 신호를 고정 크기로 지연하는 제 1 지연 라인;
수신된 상기 클록 신호의 지연 크기를 가변하는 제 2 지연 라인; 그리고
상기 제 2 지연 라인에서 출력되는 클록 신호에 응답하여 상기 제 1 지연 라인에서 출력되는 상기 신호를 래치하는 플립플롭을 포함하는 메모리 시스템. According to claim 12,
The first rank memory is:
a first delay line that delays the received signal by a fixed amplitude;
a second delay line that varies the delay size of the received clock signal; and
A memory system comprising a flip-flop that latches the signal output from the first delay line in response to a clock signal output from the second delay line.
상기 제 1 랭크 메모리는, 제어 신호에 응답하여 상기 제 2 지연 라인의 상기 지연 크기를 설정하는 지연 제어 로직을 더 포함하는 메모리 시스템.According to claim 16,
The first rank memory further includes delay control logic that sets the delay size of the second delay line in response to a control signal.
상기 지연 제어 로직은 모드 레지스터 셋 또는 퓨즈 옵션을 포함하는 메모리 시스템. According to claim 17,
A memory system wherein the delay control logic includes a mode register set or fuse option.
상기 메모리 컨트롤러는 커맨드 버스 트레이닝(CBT)을 수행하여 상기 제 1 랭크 메모리 및 상기 제 2 랭크 메모리의 상기 제 1 버스에 대한 스큐를 검출하는 메모리 시스템.According to claim 18,
The memory system wherein the memory controller performs command bus training (CBT) to detect skew of the first bus of the first rank memory and the second rank memory.
상기 메모리 컨트롤러는 상기 커맨드 버스 트레이닝(CBT)의 결과에 따라 상기 제 1 랭크 메모리와 상기 제 2 랭크 메모리 중 어느 하나의 상기 가변 지연 라인의 지연 크기를 설정하는 메모리 시스템.According to claim 19,
A memory system wherein the memory controller sets a delay size of the variable delay line of one of the first rank memory and the second rank memory according to a result of the command bus training (CBT).
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/218,931 US20240046975A1 (en) | 2022-08-03 | 2023-07-06 | Memory module adjusting inter-rank clock timing, memory system and training method thereof |
EP23188849.6A EP4318475A1 (en) | 2022-08-03 | 2023-08-01 | Memory module adjusting inter-rank clock timing, memory system and training method thereof |
CN202310963858.7A CN117524277A (en) | 2022-08-03 | 2023-08-02 | Memory module, training method thereof and memory system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220096974 | 2022-08-03 | ||
KR20220096974 | 2022-08-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240019004A true KR20240019004A (en) | 2024-02-14 |
Family
ID=89896890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220179370A KR20240019004A (en) | 2022-08-03 | 2022-12-20 | Memory module adjusting inter-rank clock timing, memory system and training method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240019004A (en) |
-
2022
- 2022-12-20 KR KR1020220179370A patent/KR20240019004A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11302368B2 (en) | Memory device with circuitry to transmit feedback indicative of a phase relationship | |
US10360959B2 (en) | Adjusting instruction delays to the latch path in DDR5 DRAM | |
US9754650B2 (en) | Memory device and system supporting command bus training, and operating method thereof | |
US10163485B2 (en) | Memory module, memory controller and associated control method for read training technique | |
US9570130B2 (en) | Memory system and memory physical layer interface circuit | |
US8520455B2 (en) | Method and apparatus for training a DLL in a memory subsystem | |
US20230401008A1 (en) | Command address input buffer bias current reduction | |
US20230026320A1 (en) | Memory device, a memory system and an operating method of the memory device | |
KR102473661B1 (en) | Memory Device adjusting duty cycle and Memory System having the same | |
KR20210041357A (en) | Memory device including interface circuit and operating method thereof | |
US10593374B2 (en) | Memory module | |
US9570135B2 (en) | Apparatuses and methods to delay memory commands and clock signals | |
US11145343B1 (en) | Method for controlling multi-cycle write leveling process in memory system | |
EP4318475A1 (en) | Memory module adjusting inter-rank clock timing, memory system and training method thereof | |
KR20240019004A (en) | Memory module adjusting inter-rank clock timing, memory system and training method thereof | |
US9300282B2 (en) | Semiconductor device and semiconductor system including the same | |
US10249353B2 (en) | Memory controller with phase adjusted clock for performing memory operations | |
CN117524277A (en) | Memory module, training method thereof and memory system | |
US20190296887A1 (en) | Semiconductor apparatus for transmitting and receiving a signal in synchronization with a clock signal | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
US20240012443A1 (en) | Register clock driver, operating method of register clock driver, and memory module including register clock driver and plurality of memory devices | |
US20230368855A1 (en) | Memory device, system and method employing multiphase clock | |
KR20230018280A (en) | Semiconductor device, and memory system including the same | |
KR20220057820A (en) | Memory device and system | |
CN115691593A (en) | Semiconductor device and memory system including the same |