KR20240034087A - Memory device and memory controller configured to perform re-training referring temperature and electronic device including the same - Google Patents
Memory device and memory controller configured to perform re-training referring temperature and electronic device including the same Download PDFInfo
- Publication number
- KR20240034087A KR20240034087A KR1020220174116A KR20220174116A KR20240034087A KR 20240034087 A KR20240034087 A KR 20240034087A KR 1020220174116 A KR1020220174116 A KR 1020220174116A KR 20220174116 A KR20220174116 A KR 20220174116A KR 20240034087 A KR20240034087 A KR 20240034087A
- Authority
- KR
- South Korea
- Prior art keywords
- memory device
- count value
- write
- command
- training
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 121
- 230000015654 memory Effects 0.000 title claims description 102
- 239000000872 buffer Substances 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 3
- 239000004065 semiconductor Substances 0.000 description 18
- 238000012937 correction Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 238000005070 sampling Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 239000000758 substrate Substances 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 229910000679 solder Inorganic materials 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/03—Astable circuits
- H03K3/0315—Ring oscillators
Abstract
본 개시의 전자 장치는 쓰기 클럭과 쓰기 데이터 신호를 출력하는 시스템 온 칩, 그리고 쓰기 클럭에 기반하여 데이터 신호를 수신하고, 쓰기 클럭과 다른 주파수를 갖는 데이터 스트로브 신호와 읽기 데이터 신호를 출력하는 메모리 장치를 포함한다. 메모리 장치는 제 1 인터벌 오실레이터, 제 2 인터벌 오실레이터, 및 온도 센서를 포함한다. 전자 장치는 초기화 시 FIFO 트레이닝을 실행하고, 초기화 후 동작 시 인터벌 오실레이터 트레이닝을 실행한다. 메모리 장치는 인터벌 오실레이터 트레이닝 시 인터벌 오실레이터의 동작 중에 카운팅 동작을 실행하고, 메모리 장치의 온도 정보를 참조하여, 최종 카운트 값을 보정한다. The electronic device of the present disclosure includes a system-on-chip that outputs a write clock and a write data signal, and a memory device that receives a data signal based on the write clock and outputs a data strobe signal and a read data signal having a different frequency from the write clock. Includes. The memory device includes a first interval oscillator, a second interval oscillator, and a temperature sensor. The electronic device performs FIFO training when initialized and performs interval oscillator training when operating after initialization. During interval oscillator training, the memory device performs a counting operation during operation of the interval oscillator and corrects the final count value by referring to temperature information of the memory device.
Description
본 개시는 메모리 장치 및 메모리 컨트롤러, 그리고 이들을 포함하는 전자 장치에 관한 것으로, 좀 더 상세하게는, 메모리 장치의 온도 정보를 참조하여 리-트레이닝을 실행하는 것에 관한 것이다.The present disclosure relates to memory devices and memory controllers, and electronic devices including them, and more specifically, to performing re-training with reference to temperature information of the memory device.
최근 DRAM과 같은 메모리 장치의 고 성능 및 고용량화 추세에 따라, 메모리 장치의 동작 주파수는 급격히 증가하고 있는 추세이다. 뿐만 아니라, 모바일 장치에 요구되는 저전력 특성에 따라, 쓰기 동작 시 필요한 쓰기 클럭(WCK)과 읽기 동작 시 필요한 읽기 데이터 스트로브 신호(RDQS)의 주파수를 서로 다르게 하는 표준이 채택되고 있다. In accordance with the recent trend of high performance and high capacity of memory devices such as DRAM, the operating frequency of memory devices is rapidly increasing. In addition, in accordance with the low power characteristics required for mobile devices, a standard is being adopted in which the frequencies of the write clock (WCK) required for a write operation and the read data strobe signal (RDQS) required for a read operation are different.
따라서, 메모리 장치의 동작 속도의 증가에 따라, 메모리 장치의 데이터의 신뢰성(data integrity)를 보정하는 것이 점점 어려워지고 있다. 따라서, 메모리 장치의 트레이닝은, 메모리 장치의 초기화 시에만 요구되는 것이 아니라, 메모리 장치의 동작 중에도 요구될 수 있다.Accordingly, as the operating speed of the memory device increases, it becomes increasingly difficult to correct the data integrity of the data of the memory device. Accordingly, training of the memory device may be required not only during initialization of the memory device, but also during operation of the memory device.
한편, 메모리 장치의 초기화 시 일반적으로 FIFO(First In First Out)를 이용한 정밀한 트레이닝이 실행되며, 메모리 장치의 동작 중에는 덜 정밀하지만 신속한 인터벌 오실레이터 트레이닝(interval oscillator training)이 이용될 수 있다. 다만, FIFO 트레이닝 시 측정된 지연 시간(예컨대, tWCK2DQI 및 tWCK2DQO)과 인터벌 오실레이터 트레이닝 시 측정된 지연 시간 간에는 오차(즉, 오프셋)가 존재할 수 밖에 없으며, 오차는 온도 변화에 따라 변할 수 있다. 그러나, 온도 변화에 따른 오프셋의 변화를 반영하지 않고 인터벌 오실레이터 트레이닝을 실행한다면, 메모리 장치의 신뢰성이 감소할 수 있다.Meanwhile, when initializing a memory device, precise training using First In First Out (FIFO) is generally performed, and less precise but rapid interval oscillator training may be used during operation of the memory device. However, there is bound to be an error (i.e., offset) between the delay times measured during FIFO training (e.g., tWCK2DQI and tWCK2DQO) and the delay times measured during interval oscillator training, and the error may change depending on temperature changes. However, if interval oscillator training is performed without reflecting changes in offset due to temperature changes, the reliability of the memory device may decrease.
본 개시는, 메모리 장치의 온도 정보를 참조하여, FIFO 트레이닝 시 측정된 지연 시간과 인터벌 오실레이터 트레이닝 시 측정된 지연 시간 사이의 오프셋이 기준 값을 넘지 않도록 인터벌 오실레이터 트레이닝 시 측정된 지연 시간을 보정하는 방법을 제공한다. The present disclosure provides a method of correcting the delay time measured during interval oscillator training so that the offset between the delay time measured during FIFO training and the delay time measured during interval oscillator training does not exceed a reference value, with reference to temperature information of a memory device. provides.
본 개시의 실시 예에 따른 전자 장치는, 쓰기 클럭과 쓰기 데이터 신호를 출력하는 시스템 온 칩, 그리고 상기 쓰기 클럭에 기반하여 상기 데이터 신호를 수신하고, 상기 쓰기 클럭과 다른 주파수를 갖는 데이터 스트로브 신호와 읽기 데이터 신호를 출력하는 메모리 장치를 포함하되, 상기 메모리 장치는, 상기 쓰기 클럭의 경로와 상기 읽기 데이터 신호의 경로의 차이를 모사하도록 구성된 제 1 인터벌 오실레이터, 상기 쓰기 클럭의 경로와 상기 쓰기 데이터 신호의 경로의 차이를 모사하도록 구성된 제 2 인터벌 오실레이터를 포함하고, 상기 시스템 온 칩은, 상기 쓰기 클럭의 경로와 상기 읽기 데이터 신호의 경로의 차이에 따른 제 1 지연 시간을 획득하고, 상기 쓰기 클럭의 경로와 상기 쓰기 데이터 신호의 경로의 차이에 따른 제 2 지연 시간을 획득하고, 상기 메모리 장치는, 상기 제 1 인터벌 오실레이터가 동작하는 동안 제 1 카운트 값을 획득하고, 상기 제 2 인터벌 오실레이터가 동작하는 동안 제 2 카운트 값을 획득하고, 상기 메모리 장치의 온도가 속하는 구간에 따라 상기 제 1 카운트 값을 보정하여 제 3 카운트 값을 획득하고, 상기 온도가 속하는 구간에 따라 상기 제 2 카운트 값을 보정하여 제 4 카운트 값을 획득한다.An electronic device according to an embodiment of the present disclosure includes a system-on-chip that outputs a write clock and a write data signal, and a data strobe signal that receives the data signal based on the write clock and has a frequency different from the write clock. A memory device that outputs a read data signal, wherein the memory device includes a first interval oscillator configured to simulate a difference between the path of the write clock and the path of the read data signal, the path of the write clock, and the write data signal. and a second interval oscillator configured to simulate the difference between the paths of A second delay time is obtained according to the difference between the path and the path of the write data signal, and the memory device obtains a first count value while the first interval oscillator is operating, and the second interval oscillator is operating. Obtain a second count value, obtain a third count value by correcting the first count value according to the section to which the temperature of the memory device belongs, and correct the second count value according to the section to which the temperature belongs. Obtain the fourth count value.
본 개시의 실시 예에 따른 메모리 컨트롤러와 통신을 수행하는 메모리 장치는, 상기 메모리 컨트롤러로부터 수신된 클럭, 그리고 커맨드 및 어드레스 신호에 기반하여 FIFO(First In First Out) 읽기 커맨드, FIFO 쓰기 커맨드, 인터벌 오실레이터 시작 커맨드 및 인터벌 오실레이터 중지 커맨드를 획득하는 커맨드 및 어드레스 수신기, 상기 FIFO 읽기 커맨드에 기반하는 읽기 데이터 또는 상기 FIFO 쓰기 커맨드에 기반하는 쓰기 데이터가 저장되는 버퍼, 상기 인터벌 오실레이터 시작 커맨드의 수신과 인터벌 오실레이터 중지 커맨드의 수신 사이에서 동작하는 인터벌 오실레이터, 상기 인터벌 오실레이터가 동작하는 동안 카운팅을 수행하는 카운터, 상기 인터벌 오실레이터의 동작 중지 시 상기 카운터로부터 카운트 값을 획득하고, 상기 메모리 장치의 온도에 관한 정보를 참조하여 상기 카운트 값을 보정하는 제어 로직 회로, 그리고 상기 보정된 카운트 값을 저장하는 모드 레지스터를 포함한다.A memory device that communicates with a memory controller according to an embodiment of the present disclosure includes a First In First Out (FIFO) read command, a FIFO write command, and an interval oscillator based on a clock received from the memory controller and command and address signals. A command and address receiver for obtaining a start command and an interval oscillator stop command, a buffer storing read data based on the FIFO read command or write data based on the FIFO write command, receiving the interval oscillator start command and stopping the interval oscillator. An interval oscillator that operates between receiving commands, a counter that performs counting while the interval oscillator is operating, and a count value obtained from the counter when the interval oscillator stops operating, with reference to information about the temperature of the memory device. It includes a control logic circuit that corrects the count value, and a mode register that stores the corrected count value.
본 개시의 실시 예에 따른 메모리 컨트롤러와 메모리 장치를 포함하는 전자 장치의 동작 방법은, 상기 메모리 장치의 FIFO(First In First Out)에 대한 데이터의 입력 또는 출력에 기반하여 데이터 스트로브 신호 또는 데이터 신호를 정렬하는 제 1 트레이닝을 실행하는 단계, 상기 메모리 장치가 오실레이터 시작 커맨드를 수신하는 단계, 상기 오실레이터 시작 커맨드에 응답하여 상기 메모리 장치의 인터벌 오실레이터를 동작시키는 단계, 상기 메모리 장치의 카운터가 상기 인터벌 오실레이터가 동작하는 동안 카운팅을 수행하는 단계, 상기 메모리 장치가 오실레이터 중지 커맨드를 수신하는 단계, 상기 오실레이터 중지 커맨드에 따라 상기 인터벌 오실레이터의 동작이 중지될 때 상기 카운터로부터 카운트 값을 획득하는 단계, 그리고 상기 메모리 장치의 온도가 속하는 구간에 따라 상기 카운트 값을 보정하는 단계를 포함한다.A method of operating an electronic device including a memory controller and a memory device according to an embodiment of the present disclosure includes generating a data strobe signal or a data signal based on the input or output of data to the FIFO (First In First Out) of the memory device. Executing a first training to align, the memory device receiving an oscillator start command, operating an interval oscillator of the memory device in response to the oscillator start command, a counter of the memory device determines that the interval oscillator is performing counting during operation, the memory device receiving an oscillator stop command, obtaining a count value from the counter when operation of the interval oscillator is stopped according to the oscillator stop command, and the memory device It includes correcting the count value according to the section to which the temperature belongs.
본 개시의 실시 예에 따르면, 메모리 장치의 온도 정보를 참조하여, FIFO 트레이닝 시 측정된 지연 시간과 인터벌 오실레이터 트레이닝 시 측정된 지연 시간 사이의 오프셋이 기준 값을 넘지 않도록 인터벌 오실레이터 트레이닝 시 측정된 지연 시간을 보정한다. 그 결과, 메모리 장치의 신뢰성이 향상될 수 있다. According to an embodiment of the present disclosure, with reference to the temperature information of the memory device, the delay time measured during interval oscillator training is such that the offset between the delay time measured during FIFO training and the delay time measured during interval oscillator training does not exceed a reference value. Correct. As a result, the reliability of the memory device can be improved.
도 1은 본 개시의 실시 예에 따른 전자 장치의 예시적인 구성을 도시한다.
도 2는 본 개시의 실시 예에 전자 장치의 동작 방법을 도시하는 순서도이다.
도 3 은 도 1의 SoC 예시적인 구성을 도시한다.
도 4 는 도 1의 메모리 장치의 예시적인 구성을 도시한다.
도 5는 도 3의 트레이닝 프로그램에 의해 계산되는 유효 윈도우 마진을 예시적으로 도시한다.
도 6은 FIFO 읽기 트레이닝 실행 시 SoC와 메모리 장치 간의 신호들의 예시적인 타이밍도이다.
도 7은 FIFO 쓰기 트레이닝 실행 시 SoC와 메모리 장치 간의 신호들의 예시적인 타이밍도이다.
도 8은 도 4의 인터벌 오실레이터의 예시적인 회로도를 도시한다.
도 9는 도 4의 인터벌 오실레이터의 다른 예시적인 회로도를 도시한다.
도 10 은 인터벌 오실레이터 트레이닝 시 SoC와 메모리 장치 간의 신호들의 예시적인 타이밍도이다.
도 11은 본 개시의 실시 예에 따라 인터벌 오실레이터의 카운트 값을 보정하는 것을 개념적으로 도시한다.
도 12는 본 개시의 실시 예에 따라 인터벌 오실레이터의 카운트 값을 보정하는 것을 개념적으로 도시한다.
도 13은 본 개시의 실시 예에 따라 인터벌 오실레이터의 카운트 값을 보정하는 것을 개념적으로 도시한다.
도 14는 온도 변화에 따른 FIFO 트레이닝에서의 지연과 온도 변화에 따른 인터벌 오실레이터 트레이닝에서의 지연 간의 오프셋을 도시하는 그래프이다.
도 15는 본 개시의 실시 예에 따라 도 13의 온도 변화에 따른 인터벌 오실레이터 트레이닝에서의 지연을 보정하는 것을 개념적으로 도시하는 그래프이다.
도 16은 본 개시의 실시 예에 따른 인터벌 오실레이터 트레이닝의 순서도이다.
도 17은 본 개시의 실시 예에 따른 전자 장치의 예시적인 구성을 도시한다.
도 18은 본 개시의 실시 예에 따른 적층형 메모리 장치를 도시한다.
도 19는 본 개시의 실시 예에 따른 반도체 패키지를 도시한다.
도 20은 본 개시의 실시 예에 따른 반도체 패키지를 도시한다.
도 21은 본 개시의 실시 예에 따른 반도체 패키지를 도시한다.
도 22는 본 개시의 실시 예에 따른 메모리 장치가 적용된 시스템을 도시한다.1 shows an example configuration of an electronic device according to an embodiment of the present disclosure.
FIG. 2 is a flowchart illustrating a method of operating an electronic device according to an embodiment of the present disclosure.
FIG. 3 illustrates an example configuration of the SoC of FIG. 1 ;
FIG. 4 shows an example configuration of the memory device of FIG. 1.
FIG. 5 exemplarily shows the effective window margin calculated by the training program of FIG. 3.
6 is an example timing diagram of signals between a SoC and a memory device when executing FIFO read training.
7 is an example timing diagram of signals between a SoC and a memory device when executing FIFO write training.
Figure 8 shows an example circuit diagram of the interval oscillator of Figure 4.
FIG. 9 shows another example circuit diagram of the interval oscillator of FIG. 4.
10 is an example timing diagram of signals between a SoC and a memory device during interval oscillator training.
FIG. 11 conceptually illustrates correcting the count value of an interval oscillator according to an embodiment of the present disclosure.
FIG. 12 conceptually illustrates correcting the count value of an interval oscillator according to an embodiment of the present disclosure.
FIG. 13 conceptually illustrates correcting the count value of an interval oscillator according to an embodiment of the present disclosure.
Figure 14 is a graph showing the offset between the delay in FIFO training according to temperature change and the delay in interval oscillator training according to temperature change.
FIG. 15 is a graph conceptually illustrating correction of delay in interval oscillator training according to temperature change in FIG. 13 according to an embodiment of the present disclosure.
Figure 16 is a flowchart of interval oscillator training according to an embodiment of the present disclosure.
Figure 17 shows an example configuration of an electronic device according to an embodiment of the present disclosure.
Figure 18 shows a stacked memory device according to an embodiment of the present disclosure.
Figure 19 shows a semiconductor package according to an embodiment of the present disclosure.
Figure 20 shows a semiconductor package according to an embodiment of the present disclosure.
21 shows a semiconductor package according to an embodiment of the present disclosure.
Figure 22 shows a system to which a memory device according to an embodiment of the present disclosure is applied.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail so that a person skilled in the art can easily practice the present invention.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 블록(block), ~기(~or, ~er) 등의 용어들을 참조하여 설명되는 구성 요소들 및 도면에 도시된 기능 블록들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈 (microelectromechanical system; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.The components described with reference to terms such as unit, module, block, ~or, ~er, etc. used in the detailed description and the functional blocks shown in the drawings are It may be implemented in the form of software, hardware, or a combination thereof. By way of example, software may be machine code, firmware, embedded code, and application software. For example, the hardware may include an electrical circuit, an electronic circuit, a processor, a computer, an integrated circuit, integrated circuit cores, a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), a passive component, or a combination thereof. .
도 1은 본 개시의 실시 예에 따른 전자 장치(10)의 예시적인 구성을 도시한다. 전자 장치(10)는 시스템 온 칩(system on-chip; 이하 SoC로 지칭)(100) 및 메모리 장치(200)를 포함할 수 있다. 예를 들어, 전자 장치(10)는 스마트 폰과 같은 모바일 장치, 데스크톱(desktop) 컴퓨터, 랩톱(laptop) 컴퓨터, 워크스테이션(workstation), 서버 등일 수 있다.1 shows an example configuration of an
SoC(100)는 애플리케이션 프로세서(application processor; AP)로서 전자 장치(10)의 전반적인 동작을 제어할 수 있다. SoC(100)는 전자 장치(10)가 지원하는 애플리케이션에 따라 프로그램을 실행하고, 메모리 장치(200)로부터 프로그램 실행과 관련된 데이터를 수신하거나 또는 프로그램 실행의 결과를 메모리 장치(200)로 전송할 수 있다. SoC(100)는 다양한 IP(intellectual property)들을 포함할 수 있다. 예를 들어, SoC(100)는 메모리 컨트롤러(130) 및 DDR 물리 계층(double data rate physical layer; 이하 DDR PHY로 지칭)(140)을 포함할 수 있다. 한편, 도 1의 실시 예에서, 메모리 컨트롤러(130)와 DDR PHY(140)는 별개의 구성 요소인 것으로 도시되었으나, DDR PHY는 메모리 컨트롤러(130)의 일부인 것으로 이해될 수도 있다.The SoC 100 is an application processor (AP) and can control the overall operation of the
메모리 컨트롤러(130)는 DDR PHY(140)를 통해 메모리 장치(200)를 제어할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)를 접근하기 위한 신호들을 생성할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)에 저장될 데이터를 생성할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)로부터 읽혀진 데이터를 수신할 수 있다.The
DDR PHY(140)는 메모리 컨트롤러(130)의 제어 하에 클럭(CK), 그리고 커맨드 및 어드레스 신호(CMD/ADD)를 메모리 장치(200)로 전송할 수 있다. DDR PHY(140)는 메모리 컨트롤러(130)의 제어 하에 메모리 장치(200)로 쓰기 클럭(WCK) 및 데이터 신호(DQ)를 전송할 수 있다. 쓰기 클럭(WCK)은 메모리 장치(200)로 데이터 신호(DQ)를 전송하기 위한(좀 더 구체적으로는, 샘플링 또는 래치하기 위한) 신호일 수 있다. DDR PHY(140)는 메모리 장치(200)로부터 읽기 데이터 스트로브 신호(RDQS) 및 데이터 신호(DQ)를 수신할 수 있다. 읽기 데이터 스트로브 신호(RDQS)는 메모리 장치(200)로부터 데이터 신호(DQ)를 수신하기 위한 신호일 수 있다. 메모리 장치(200)는 DDR PHY(140)로부터 수신된 쓰기 클럭(WCK)에 기반하여 읽기 데이터 스트로브 신호(RDQS)를 생성할 수 있다. The DDR PHY 140 may transmit a clock (CK) and command and address signals (CMD/ADD) to the
메모리 장치(200)는 SoC(100)의 요청에 따라 데이터를 저장하거나 저장된 데이터를 SoC(100)로 제공할 수 있다. 메모리 장치(200)는 DDR PHY(140)를 통해 SoC(100)와 통신할 수 있다. 예를 들어, 메모리 장치(200)는 DRAM(dynamic random access memory), SRAM(static random access memory), TRAM(thyristor random access memory), RRAM(resistive random access memory), FRAM(ferroelectric random access memory), PRAM(phase change random access memory), MRAM(magnetic random access memory) 등일 수 있다. 이하, 메모리 장치(200)는 SoC(100)로부터 출력되는 클럭(CK)에 동기되어 동작하는 DRAM 장치(즉, SDRAM(synchronous dynamic random access memory) 장치)인 것으로 설명될 것이다. 특히, 메모리 장치(200)는 LPDDR(low power double data rate) SDRAM일 수 있다.The
메모리 장치(200)는 SoC(100)로부터 클럭(CK), 그리고 커맨드 및 어드레스 신호(CMD/ADD)를 수신할 수 있다. 메모리 장치(200)는 클럭(CK)에 기반하여 커맨드 및 어드레스 신호(CMD/ADD)를 샘플링하여, 커맨드(CMD) 및 어드레스(ADD)를 획득할 수 있다. 메모리 장치(200)는 쓰기 클럭(WCK)을 이용하여 데이터 신호(DQ)를 수신할 수 있으며, 읽기 데이터 스트로브 신호(RDQS)를 이용하여 데이터 신호(DQ)를 출력할 수 있다.The
쓰기 클럭(WCK)의 주파수는 클럭(CK)의 주파수보다 높을 수 있다. 예를 들어, 쓰기 클럭(WCK)의 주파수는 클럭(CK)의 주파수의 정수 배일 수 있다. SoC(100)는 상대적으로 낮은 주파수를 갖는 클럭(CK)을 메모리 장치(200)로 전송할 수 있으며, 상대적으로 높은 주파수를 갖는 쓰기 클럭(WCK)을 데이터 입출력 동안에 메모리 장치(200)에 전송할 수 있다. The frequency of the write clock (WCK) may be higher than the frequency of the clock (CK). For example, the frequency of the write clock (WCK) may be an integer multiple of the frequency of the clock (CK). The
실시 예에 있어서, 전자 장치(10)의 초기화 시(즉, 부팅-온 시), SoC(100)는 메모리 장치(200)에 대하여 쓰기 동작 및 읽기 동작을 실행함으로써 트레이닝(이하 FIFO 트레이닝)을 실행할 수 있다. FIFO 트레이닝은 쓰기 데이터와 읽기 데이터의 실제 경로(path)를 이용하여 트레이닝을 수행하기 때문에 정확도가 높으나, 데이터의 입출력을 수반하기 때문에 효율적이지 않을 수 있다. In an embodiment, upon initialization (i.e., boot-on) of the
실시 예에 있어서, 전자 장치(10)가 초기화된 후 일반 동작(normal operation) 시, SoC(100)는 메모리 장치(200) 내부의 인터벌 오실레이터들(interval oscillators)(271, 272)를 이용하여 트레이닝(이하 인터벌 오실레이터 트레이닝)을 실행할 수 있다. 예를 들어, 인터벌 오실레이터 트레이닝은 주기적으로, 비주기적으로, 메모리 장치(200)의 온도 변화 시, 또는 메모리 장치(200)의 전압 변화 시 실행될 수 있다. In an embodiment, during normal operation after the
실시 예에 있어서, 인터벌 오실레이터(271)는 쓰기 클럭(WCK)과 읽기 데이터 신호(이하, 읽기 DQ)의 경로 차이를 모사하도록 구현될 수 있으며, 인터벌 오실레이터(272)는 쓰기 클럭(WCK)과 쓰기 데이터 신호(이하, 쓰기 DQ)의 경로 차이를 모사하도록 구현될 수 있다. 예를 들어, 인터벌 오실레이터들(271, 272)은 SoC(100)로부터의 커맨드에 따라 특정 구간(예컨대, 런타임(runtime)) 동안 동작할 수 있으며, 런타임 동안 카운트 값들이 증가할 수 있다. 인터벌 오실레이터 트레이닝이 종료되는 시점에서의 최종 카운트 값들은, 조정되어야 할 읽기 데이터 스트로브 신호(RDQS)의 스큐 값 및/또는 조정되어야 할 데이터 신호(DQ)의 스큐 값에 대응할 수 있다. SoC(100)는 메모리 장치(200)로부터 수신된 카운트 값들에 기반하여 읽기 데이터 스트로브 신호(RDQS) 및/또는 데이터 신호(DQ)의 스큐를 보정할 수 있다. In an embodiment, the
한편, 인터벌 오실레이터 트레이닝은 인터벌 오실레이터들(271, 272)를 이용하여 간접적으로 트레이닝을 실행하기 때문에 효율적인 반면, FIFO 트레이닝에 비해 정확하지 않을 수 있다. 즉, FIFO 트레이닝을 통하여 측정된 지연과 인터벌 오실레이터 트레이닝을 통하여 측정된 지연 사이에는 오프셋(offset) 또는 오차가 존재할 수 있으며, 오프셋은 온도에 따라 변할 수 있다. 만일 오프셋이 보정되지 않은 인터벌 오실레이터 트레이닝의 결과(즉, 카운트 값)가 트레이닝에 활용된다면, 인터벌 오실레이터 트레이닝의 정확도가 감소하는 문제가 발생할 수 있다. 그러나, 본 개시의 전자 장치(10)는 카운트 값을 온도 센서(280)에 의해 획득된 온도가 속하는 구간에 따라 보정하고, 보정된 카운트 값을 이용하여 읽기 데이터 스트로브 신호(RDQS) 및/또는 데이터 신호(DQ)의 스큐를 보정한다. 따라서, 인터벌 오실레이터 트레이닝의 정확도가 증가할 수 있다.Meanwhile, interval oscillator training is efficient because training is performed indirectly using the
도 2는 본 개시의 실시 예에 전자 장치의 동작 방법을 도시하는 순서도이다. FIG. 2 is a flowchart illustrating a method of operating an electronic device according to an embodiment of the present disclosure.
도 1 및 도 2를 참조하면, S11 단계에서, 전자 장치(10)는 초기화를 수행할 수 있다. 예를 들어, 전자 장치(10)가 파워-온 되는 경우, SoC(100)와 메모리 장치(200)는 미리 정해진 방식에 따라 초기화를 수행할 수 있다. 초기화 도중에, SoC(100)는 메모리 장치(200)로 전원 전압을 제공하고, 다양한 초기 설정 동작을 수행하고, 메모리 장치(200)로부터 필요한 정보를 읽거나 또는 설정할 수 있다.Referring to FIGS. 1 and 2 , in step S11, the
S12 단계에서, 전자 장치(10)는 커맨드/어드레스 트레이닝 동작을 수행할 수 있다. 예를 들어, SoC(100) 및 메모리 장치(200)는 클럭(CK)에 의해 원하는 타이밍에 커맨드(CMD) 및 어드레스(ADD)가 래치될 수 있도록 커맨드/어드레스 트레이닝 동작을 수행할 수 있다. In step S12, the
S13 단계에서, 전자 장치(10)는 WCK2CK 정렬 트레이닝 (WCK2CK Alignment Training) 동작을 실행할 수 있다. 예를 들어, 메모리 장치(200)는 SoC(100)로부터 클럭(CK)과 쓰기 클럭(WCK)을 수신하고, 클럭(CK)과 쓰기 클럭(WCK)이 정렬되도록 쓰기 클럭(WCK)의 송신 타이밍을 조정할 수 있다. 예를 들어, 쓰기 클럭(WCK)의 주파수는 클럭(CK)의 N배(단, N은 자연수)일 수 있다.In step S13, the
S14 단계에서, 전자 장치(10)는 쓰기 클럭(WCK) 듀티 사이클 트레이닝(WCK duty cycle training) 동작을 실행할 수 있다. 예를 들어, 쓰기 클럭(WCK) 듀티 사이클 트레이닝은 DDR PHY(140)의 DCC(duty cycle corrector) 및/또는 DCA(duty cycle adjuster)에 의해 수행될 수 있다. 예를 들어, DDR PHY(140)는 게이트 로직과 같은 구성을 이용하여 메모리 장치(200)로부터 수신된 읽기 데이터 스트로브 신호(RDQS)를 지연시킬 수 있다.In step S14, the
S15 단계에서, 전자 장치(10)는 리드 게이트 트레이닝(read gate training) 동작을 실행할 수 있다. 예를 들어, 메모리 컨트롤러(130)는 읽기 DQ와 읽기 데이터 스트로브 신호(RDQS)를 언제 관찰(observe)할지를 판별할 수 있으며, 메모리 장치(200)로부터 읽기 DQ와 읽기 데이터 스트로브 신호(RDQS)의 수신 타이밍을 제어할 수 있다. 이를 위해 SoC(100)는 읽기 데이터 스트로브 신호(RDQS)의 수신 타이밍을 제어하는 구성(예컨대, 논리 게이트, 지연 회로 등)을 포함할 수 있다.In step S15, the
S16 단계에서, 전자 장치(10)는 제 1 트레이닝(즉, FIFO 트레이닝)을 실행할 수 있다. 예를 들어, 메모리 장치(200)의 설계(구조), 및/또는 메모리 컨트롤러(130), DDR PHY(140) 및 메모리 장치(200)를 포함하는 패키지의 설계(구조)로 인하여, 데이터 신호(DQ)의 지연은 쓰기 클럭(WCK)의 지연보다 짧을 수 있다. FIFO 트레이닝은 쓰기 클럭(WCK)과 데이터 신호(DQ)의 경로 차이에 따른 지연을 보정하기 위한 것일 수 있다. FIFO 트레이닝은 읽기 FIFO 트레이닝 및 쓰기 FIFO 트레이닝을 포함할 수 있다. In step S16, the
실시 예에 있어서, 읽기 FIFO 트레이닝 시 SoC(100)는 메모리 장치(200)로부터 수신되는 읽기 DQ 및/또는 읽기 데이터 스트로브 신호(RDQS)를 지연시켜 읽기 DQ와 읽기 데이터 스트로브 신호(RDQS)의 수신 타이밍을 제어할 수 있다. 그리고, 쓰기 FIFO 트레이닝 시 SoC(100)는 메모리 장치(200)로 전송되는 쓰기 DQ를 지연시켜 쓰기 DQ와 쓰기 클럭(WCK)의 송신 타이밍을 제어할 수 있다. 제 1 트레이닝이 완료된 후, 전자 장치(10)는 일반 동작을 실행할 수 있다.In an embodiment, during read FIFO training, the
S17 단계에서, 전자 장치(10)의 일반 동작 중, 전자 장치(10)는 제 2 트레이닝(즉, 인터벌 오실레이터 트레이닝)을 실행할 수 있다. 전자 장치(10)는 예를 들어, 인터벌 오실레이터들(271, 272)이 동작하는 동안 카운트 값이 증가할 수 있으며, 인터벌 오실레이터들(271, 272)의 동작이 종료된 후의 최종 카운트 값은, 온도 센서(280)에 의해 획득된 온도에 따라 보정될 수 있다. 보정된 카운트 값은 데이터 신호(DQ) 및/또는 읽기 데이터 스트로브 신호(RDQS)의 스큐를 조정하는데 사용될 수 있다. In step S17, during normal operation of the
도 3은 도 1의 SoC 예시적인 구성을 도시한다. SoC(100)는 프로세서(110), 온 칩 메모리(120), 메모리 컨트롤러(130), 및 DDR PHY(140)를 포함할 수 있다.FIG. 3 illustrates an example configuration of the SoC of FIG. 1 ;
프로세서(110)는 온 칩 메모리(120)에 로드된(loaded) 다양한 소프트웨어(응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등)을 실행할 수 있다. 프로세서(110)는 온 칩 메모리(120)에 로드된 트레이닝 프로그램을 실행할 수 있다. 프로세서(110)는 동종 멀티-코어 프로세서(homogeneous multi-core processor)들 또는 이종 멀티-코어 프로세서(heterogeneous multi-core processor)들을 포함할 수 있다. 예를 들어, 프로세서(110)는 CPU(central processing unit), ISP(image signal processing unit), DSP(digital signal processing unit), GPU(graphics processing unit), VPU(vision processing unit), 및 NPU(neural processing unit) 중 적어도 하나를 포함할 수 있다.The
온 칩 메모리(120)에는 전자 장치(10)를 구동하기 위한 응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 도 3을 참조하면, 온 칩 메모리(120)에는 트레이닝 프로그램이 로드될 수 있다. 예를 들어, 온 칩 메모리(120)는 SoC(100)의 내부에서 구현되고 메모리 장치(200)보다 빠른 데이터 입출력 속도를 갖는 SRAM 장치일 수 있다. 온 칩 메모리(120)는 버퍼 메모리로도 지칭될 수 있다.Application programs, operating systems, file systems, device drivers, etc. for driving the
메모리 컨트롤러(130)는 DDR PHY(140)를 제어하여 메모리 장치(도 1, 200)과 통신을 수행할 수 있다. 메모리 컨트롤러(130)는 DMA(direct memory access) 방식으로 메모리 장치(200)에 접근할 수 있다. 메모리 컨트롤러(130)는 커맨드 큐(131), 커맨드 스케쥴러(132), 읽기 데이터 큐(133), 및 쓰기 데이터 큐(134)를 포함할 수 있다.The
커맨드 큐(131)는 프로세서(110)에 의해 발행된 커맨드들과 어드레스들을 저장할 수 있다. 커맨드 큐(131)에 저장된 커맨드와 어드레스는 커맨드 스케쥴러(132)의 제어 하에 DDR PHY(140)로 제공될 수 있다. 커맨드 큐(131)에 저장된 하나 이상의 커맨드들과 하나 이상의 어드레스들이 병렬로 DDR PHY(140)로 제공될 수 있다. 커맨드 스케쥴러(132)는 커맨드 큐(131)에 저장된 커맨드들과 어드레스들의 순서, 커맨드 큐(131)로 커맨드(들) 및 어드레스(들)이 입력되는 시점, 커맨드 큐(131)로부터 커맨드(들) 및 어드레스(들)이 출력되는 시점 등을 조정할 수 있다.The
실시 예에 있어서, 프로세서(110)에 의해 실행되는 트레이닝 프로그램의 제어 하에, 커맨드 큐(131)는 FIFO 트레이닝을 위한 읽기 커맨드, 쓰기 커맨드, 테스트 데이터 등을 생성할 수 있다. 그리고, 프로세서(110)에 의해 실행되는 트레이닝 프로그램의 제어 하에, 커맨드 큐(131)는 인터벌 오실레이터 트레이닝을 위한 커맨드들(예를 들어, 인터벌 오실레이터 시작 커맨드(OSC_Start), 및 인터벌 오실레이터 중지 커맨드(OSC_Stop)을 생성할 수 있다. 그러나, 이에 한정되지 않으며, 다른 실시 예에서, 메모리 컨트롤러(130) 또는 DDR PHY(140)는 FIFO 트레이닝과 인터벌 오실레이터 트레이닝을 실행하기 위한 커맨드들을 생성하기 위한 별도의 회로(미도시)를 포함할 수도 있다.In an embodiment, under the control of a training program executed by the
읽기 데이터 큐(133)는 메모리 장치(200)에 대한 SoC(100)의 읽기 요청에 의해 DDR PHY(140)를 통해 메모리 장치(200)로부터 수신된 읽기 데이터를 저장할 수 있다. 읽기 데이터 큐(133)에 저장된 읽기 데이터는 온 칩 메모리(120)로 제공되고 프로세서(110)에 의해 처리될 수 있다. 쓰기 데이터 큐(134)는 메모리 장치(200)에 저장될 쓰기 데이터를 저장할 수 있다. 메모리 장치(200)에 대한 SoC(100)의 쓰기 요청에 의해 쓰기 데이터 큐(134)에 저장된 쓰기 데이터는 DDR PHY(140)를 통해 메모리 장치(200)로 전송될 수 있다. 예를 들어, 메모리 컨트롤러(130)의 커맨드 큐(131), 커맨드 스케쥴러(132), 읽기 데이터 큐(133), 및 쓰기 데이터 큐(134)는 SoC(100) 내에서 하드웨어 방식, 소프트웨어 방식, 또는 이들의 조합을 이용하여 구현될 수 있다.The
DDR PHY(140)는 클럭 생성기(141), 커맨드 및 어드레스 생성기(142), 쓰기 클럭 생성기(143), RDQS 수신기(144), 지연 회로(145), 데이터 수신기(146), 지연 회로(147), 및 데이터 송신기(148)를 포함할 수 있다. DDR PHY(140)의 클럭 생성기(141), 커맨드 및 어드레스 생성기(142), 쓰기 클럭 생성기(143), RDQS 수신기(144), 지연 회로(145), 데이터 수신기(146), 지연 회로(147), 및 데이터 송신기(148)는 SoC(100) 내에서 하드웨어 방식, 소프트웨어 방식, 또는 이들의 조합을 이용하여 구현될 수 있다.The DDR PHY (140) includes a clock generator (141), a command and address generator (142), a write clock generator (143), an RDQS receiver (144), a delay circuit (145), a data receiver (146), and a delay circuit (147). , and may include a
클럭 생성기(141)는 메모리 장치(200)로 출력되는 클럭(CK)을 생성할 수 있다. 비록 도 2에는 간략히 도시되었으나, 예를 들어, 클럭 생성기(141)는 차동 방식으로 클럭들(예컨대, CK_t, CK_c)을 생성하고 클럭들(CK_t, CK_c)을 메모리 장치(200)로 전송할 수 있다. 예를 들어, 클럭 생성기(141)는 클럭(CK)의 듀티 사이클을 조정하는 DCC(duty cycle corrector, 미도시) 및/또는 DCA(duty cycle adjuster, 미도시)를 포함할 수 있다.The
커맨드 및 어드레스 생성기(142)는 커맨드 큐(131)로부터 커맨드 또는 어드레스를 수신하고 메모리 장치(200)로 커맨드 및/또는 어드레스를 전송할 수 있다. 예를 들어, 커맨드 및 어드레스 생성기(142)는 JEDEC 표준에 의해 정의된 시간 간격(또는, 토글링 횟수)을 두고 인터벌 오실레이터 시작 커맨드(OSC_Start)와 인터벌 오실레이터 중지 커맨드(OSC_Stop)를 순차적으로 메모리 장치(200)로 전송할 수 있다. 커맨드 및 어드레스 생성기(142)와 메모리 장치(200) 사이의 커맨드 및 어드레스 전송 경로들의 개수, 상술한 전송 경로들을 통해 전송되는 신호들의 논리 상태들, 전송 방법 등은 JEDEC 표준에 정의될 수 있다. The command and
쓰기 클럭 생성기(143)는 메모리 장치(200)로 출력되는 쓰기 클럭(WCK)을 생성할 수 있다. 비록 도 2에는 간략히 도시되었으나, 예를 들어, 쓰기 클럭 생성기(143)는 차동 방식으로 쓰기 클럭들(예컨대, WCK_t, WCK_c)을 생성하고 쓰기 클럭들(WCK_t, WCK_c)을 메모리 장치(200)로 전송할 수 있다. 예를 들어, 쓰기 클럭 생성기(143)는 쓰기 클럭(WCK)의 듀티 사이클을 조정하는 DCC(미도시) 및/또는 DCA(미도시)를 포함할 수 있다.The
실시 예에 있어서, 클럭(CK)과 쓰기 클럭(WCK)은 동일한 PLL(Phase Lock Loop)에 기반하여 생성될 수 있다. 이 경우, 쓰기 클럭(WCK)보다 작은 주파수를 갖는 클럭(CK)을 생성하기 위해, DDR PHY(140)는 분주기(미도시) 등을 더 포함할 수 있다. In an embodiment, the clock (CK) and the write clock (WCK) may be generated based on the same PLL (Phase Lock Loop). In this case, in order to generate a clock CK having a frequency lower than the write clock WCK, the
RDQS 수신기(144)는 메모리 장치(200)에 대한 읽기 동작 시 메모리 장치(200)로부터 수신되는 읽기 데이터 스트로브 신호(RDQS)를 수신할 수 있다. The
지연 회로(145)는 데이터 수신기(146)가 정해진 타이밍에 읽기 데이터 스트로브 신호(RDQS)를 이용하여 읽기 DQ를 래치할 수 있도록 읽기 데이터 스트로브 신호(RDQS)의 스큐를 정렬할 수 있다. 지연 회로(145)는 앞서 도 2의 S15 단계에서 설명된 리드 게이트 트레이닝 실행 시 동작할 수 있다. 예를 들어, 지연 회로(145)는 복수의 지연 셀들을 포함하는 DLL(delay locked loop)을 포함할 수 있다. 예를 들어, 읽기 DQ 정렬기(미도시)는 하나의 지연 셀에 의해 지연되는 단위 시간을 기반으로 읽기 DQ를 지연시키면서, 읽기 DQ를 래치하기 위한 최적의 샘플링 포인트를 찾을 수 있다. 한편, 도 3에서, 지연 회로(145)는 RDQS 수신기(144) 외부의 구성인 것으로 도시되었으나, 지연 회로(145)는 RDQS 수신기(144) 내부에 구현될 수도 있다. The
데이터 수신기(146)는 메모리 장치(200)에 대한 읽기 동작 시 메모리 장치(200)로부터 읽기 DQ를 수신할 수 있다. 데이터 수신기(146)는 지연 회로(145)로부터 수신된 RDQS의 입력 타이밍에 기반하여 읽기 DQ를 래치할 수 있다. 데이터 수신기(146)는 수신된 읽기 데이터를 읽기 데이터 큐(133)에 제공할 수 있다. 비록 도면에는 도시되지 않았으나, DDR PHY(140)는 데이터 수신기(146)로 입력되는 읽기 DQ를 지연시키기 위한 지연 회로(미도시)를 더 포함할 수 있다. 이 경우, 지연 회로(미도시)는 지연 회로(145)와 함께 동작함으로써, 읽기 DQ를 래치하기 위한 최적의 샘플링 포인트를 획득하는데 이용될 수 있다.The
지연 회로(147)는 DDR PHY(140)로부터 메모리 장치(도 1, 200)로 전송되는 쓰기 DQ가 정해진 타이밍에 메모리 장치(200)에 의해 래치될 수 있도록 쓰기 DQ의 스큐를 정렬할 수 있다. 지연 회로(147)는 FIFO 트레이닝 시 및/또는 인터벌 오실레이터 트레이닝 시 동작할 수 있다. 예를 들어, 지연 회로(147)는 복수의 지연 셀들을 포함하는 DLL을 포함할 수 있다. The
데이터 송신기(148)는 지연 회로(147)로부터 수신된 쓰기 데이터를 쓰기 DQ로써 메모리 장치(200)로 전송할 수 있다. 실시 예에 있어서, 지연 회로(147)는 별개의 구성이 아닌 데이터 송신기(148)의 일부일 수도 있다. The
실시 예에 있어서, DDR PHY(140)는 읽기 데이터 스트로브 신호(RDQS)의 스큐를 조정하는 지연 회로(145)와 메모리 장치(200)로 전송될 쓰기 DQ의 스큐를 조정하는 지연 회로(147)를 포함하는 것으로 도시되었으나, 다른 실시 예에서, DDR PHY(140)는 지연 회로들(145, 147) 중 어느 하나만을 포함할 수도 있다. In an embodiment, the
실시 예에 있어서, 상술된 지연 회로들(145, 147)은 프로세서(110)에 의해 실행되는 트레이닝 프로그램 및/또는 메모리 컨트롤러(130)에 의해 제어될 수 있다. 이를 위해, 메모리 컨트롤러(130)는 조정되어야 할 스큐에 관한 정보(즉, 도 1의 카운트 값)를 FIFO 트레이닝과 인터벌 오실레이터 트레이닝을 통하여 메모리 장치(200)로부터 미리 획득할 수 있다. In an embodiment, the
실시 예에 있어서, 프로세서(110)에 의해 실행되는 트레이닝 프로그램은 카운트 값에 기반하여 유효 윈도우 마진(valid window margin; VWM)을 계산할 수 있다. 유효 윈도우 마진은 데이터 수신기(146)가 메모리 장치(200)로부터 출력되는 읽기 데이터 스트로브 신호(RDQS)를 이용하여 메모리 장치(200)로부터 출력되는 읽기 DQ를 판별할 수 있는 최대의 구간을 의미할 수 있으며, 메모리 장치(200)가 SoC(100)로부터 출력되는 쓰기 클럭(WCK)을 이용하여 DDR PHY(140)로부터 출력되는 쓰기 DQ를 판별할 수 있는 최대의 구간을 의미할 수 있다. 예를 들어, 트레이닝 프로그램에 의해 계산된 유효 윈도우 마진은 온 칩 메모리(120)에 저장할 수 있다.In an embodiment, a training program executed by the
도 4는 도 1의 메모리 장치의 예시적인 구성을 도시한다. 메모리 장치(200)는 커맨드 및 어드레스 수신기(201), 쓰기 클럭 버퍼(202), RDQS 송신기(203), 데이터 송수신기(204), 메모리 셀 어레이(210), 로우 디코더(221), 컬럼 디코더(223), 제어 로직 회로(230), 쓰기 드라이버(241), 입출력 센스 앰프(243), 쓰기 버퍼(251), 읽기 버퍼(253), 모드 레지스터(260), 인터벌 오실레이터들(271, 272), 카운터들(273, 274), 및 온도 센서(280)를 포함할 수 있다. 상술한 구성 요소들은 메모리 장치(200) 내에서 하드웨어 방식으로 구현될 수 있다.Figure 4 shows an example configuration of the memory device of Figure 1. The
커맨드 및 어드레스 수신기(201)는 SoC(100)로부터 수신된 클럭(CK)에 기반하여 커맨드 및 어드레스 신호(CMD/ADD)를 래치하여, 커맨드(CMD) 및 어드레스(ADD)를 수신할 수 있다. 수신된 커맨드(CMD)는 제어 로직 회로(230)로 제공될 수 있다. The command and
실시 예에 있어서, 커맨드 및 어드레스 수신기(201)는 활성화 커맨드, 읽기 커맨드, 쓰기 커맨드, 프리차지 커맨드, 모드 레지스터 쓰기 커맨드, 다목적 커맨드 (multi-purpose command; MPC) 등을 디코딩할 수 있다. 예를 들어, 다목적 커맨드(MPC)는 FIFO 트레이닝을 위한 FIFO 쓰기 커맨드 및 FIFO 읽기 커맨드를 포함할 수 있으며, 인터벌 오실레이터 트레이닝을 위한 인터벌 오실레이터 시작 커맨드(OSC_Start), 인터벌 오실레이터 중지 커맨드(OSC_Stop), 및 모드 레지스터(260)에 저장된 카운트 값을 읽기 위한 커맨드도 포함할 수 있다.In an embodiment, the command and
쓰기 클럭 버퍼(202)는 SoC(도 1, 100)로부터 쓰기 클럭(WCK)을 수신할 수 있다. SoC(100)는 차동 방식으로 쓰기 클럭들(WCK_t, WCK_c)을 메모리 장치(200)로 전송할 수 있고 메모리 장치(200)는 쓰기 클럭들(WCK_t, WCK_c)을 각각 수신하는 쓰기 클럭 버퍼들을 포함할 수 있다. 쓰기 클럭 버퍼(202)는 메모리 장치(200)에 대한 쓰기 동작 시 수신된 쓰기 클럭(WCK)을 데이터 송수신기(204)에 제공할 수 있다. 실시 예에 있어서, 수신된 쓰기 클럭(WCK)에 기반하여 서로 다른 위상을 갖는 쓰기 클럭들을 생성하기 위해, 쓰기 클럭 버퍼(202)는 위상 분할기(phase splitter)(미도시)를 포함할 수 있다. 그러나, 다른 실시 예에서, 위상 분할기(미도시)는 쓰기 클럭 버퍼(202) 외부에 구현될 수 있다.The
데이터 송수신기(204)는 SoC(100)로부터 쓰기 DQ를 수신하거나 SoC(100)로 읽기 DQ를 출력할 수 있다. 메모리 장치(200)에 대한 쓰기 동작 시, 데이터 송수신기(204)는 쓰기 클럭(WCK)에 기반하여 쓰기 DQ를 래치할 수 있다. 메모리 장치(200)에 대한 읽기 동작 시, 읽기 데이터 스트로브 신호(RDQS)의 전송과 함께, 데이터 송수신기(204)는 읽기 DQ를 SoC(100)에 전송할 수 있다. 예를 들어, 데이터 신호(DQ)는 양방향 신호이므로, 데이터 송수신기(204)는 쓰기 DQ를 수신하는 수신기(미도시)와 읽기 DQ를 출력하는 송신기(미도시)를 포함할 수 있다. The
메모리 셀 어레이(210)는 워드 라인들과 비트 라인들(미도시)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 메모리 셀은 DRAM(Dynamic Random Access Memory) 셀일 수 있다. 이 경우, DDR PHY(도 1, 140)와 메모리 장치(200)는 DDR(Double Data Rate), LPDDR(low power double data rate), GDDR(Graphics Double Data Rate), Wide I/O, HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube) 등과 같은 표준들 중 하나에 기반하여 통신할 수 있다. The
로우 디코더(221)는 제어 로직 회로(230)로부터 수신된 로우 어드레스를 디코딩할 수 있다. 로우 디코더(221)는 로우 어드레스에 대응하는 적어도 하나의 워드 라인을 선택하고 활성화할 수 있다. 컬럼 디코더(223)는 제어 로직 회로(230)의 제어 하에 컬럼 어드레스를 디코딩할 수 있다. 컬럼 디코더(223)는 컬럼 어드레스에 대응하는 적어도 하나의 컬럼 선택 라인을 선택하고 활성화할 수 있다. 컬럼 선택 라인에는 적어도 하나 이상의 비트 라인들이 연결될 수 있다. 예를 들어, 로우 어드레스 및 컬럼 어드레스에 대응하는 메모리 셀들이 선택되고 선택된 메모리 셀들에 대한 데이터 입출력이 수행될 수 있다.The
제어 로직 회로(230)는 메모리 장치(200)의 구성 요소들을 제어할 수 있다. 제어 로직 회로(230)는 다목적 커맨드(MPC)과 함께 전송되는 어드레스를 메모리 장치(200) 내부의 레지스터들(미도시), 쓰기 버퍼(251), 또는 읽기 버퍼(253)에 제공할 수 있다. 실시 예에 있어서, 커맨드와 함께 전송되는 어드레스는 메모리 장치(200)의 메모리 셀들의 어드레스를 포함하거나, 메모리 장치(200)의 동작 모드를 설정하는데 사용되는 코드를 포함하거나, 또는 FIFO 트레이닝을 위해 쓰기 버퍼(251) 또는 읽기 버퍼(253)에 저장되는 테스트 데이터를 포함할 수 있다.The
실시 예에 있어서, 제어 로직 회로(230)는 인터벌 오실레이터 시작 커맨드(OSC_Start)에 기반하여 인터벌 오실레이터들(271, 272)과 카운터들(273, 274)을 인에이블시키기 위한 신호들을 생성할 수 있다. 그리고, 제어 로직 회로(230)는 인터벌 오실레이터 중지 커맨드(OSC_Stop)에 기반하여 인터벌 오실레이터들(271, 272)과 카운터들(273, 274)을 디스에이블시키기 위한 신호들을 생성할 수 있다. In an embodiment, the
실시 예에 있어서, 제어 로직 회로(230)는 읽기 인터벌 오실레이터 트레이닝을 위해 인터벌 오실레이터(271)에 인에이블 신호 및 디스에이블 신호를 순차적으로 제공할 수 있다. 그리고, 제어 로직 회로(230)는 쓰기 인터벌 오실레이터 트레이닝을 위해 인터벌 오실레이터(272)에 인에이블 신호 및 디스에이블 신호를 순차적으로 제공할 수 있다. 여기서, 인터벌 오실레이터들(271, 272)의 각각으로 입력되는 인에이블 신호와 디스에이블 신호는 JEDEC 표준에 의해 정의된 시간 간격(또는, 토글링 횟수)일 것이다. 제어 로직 회로(230)는 유사한 방식으로 카운터들(273, 274)을 제어할 수 있다. In an embodiment, the
인터벌 오실레이터(271)의 동작 동안 카운터(273)에 의해 카운팅된 값과 인터벌 오실레이터(272)의 동작 동안 카운터(274)에 의해 카운팅된 값은 모드 레지스터(260)에 저장될 수 있다. 메모리 장치(200)는 SoC(도 1, 100)으로부터 수신된 모드 레지스터 읽기 커맨드에 응답하여 카운트 값들을 데이터 송수신기(204)를 통하여 SoC(100)로 전송할 수 있다.The value counted by the
쓰기 드라이버(241)는 쓰기 버퍼(251)로부터 쓰기 데이터를 수신하고 입출력 라인(GIO)을 통해 선택된 메모리 셀들에 쓰기 데이터를 쓸 수 있다. 입출력 센스 앰프(243)는 선택된 메모리 셀들로부터 입출력 라인(GIO)를 통해 출력되는 읽기 데이터를 감지하고 읽기 데이터를 읽기 버퍼(253)로 제공할 수 있다.The
쓰기 버퍼(251)는 SoC(100)로부터 RDQS 버퍼(203) 및 데이터 송수신기(204)를 통해 쓰기 읽기 데이터 스트로브 신호(RDQS) 및 쓰기 DQ를 수신할 수 있다. 쓰기 버퍼(251)는 수신된 쓰기 DQ를 병렬화하고, 병렬화된 쓰기 데이터 쓰기 데이터를 쓰기 버퍼(251) 내의 FIFO(미도시)에 저장할 수 있다. 쓰기 버퍼(251)는 FIFO에 저장된 쓰기 데이터를 쓰기 드라이버(241)에 제공할 수 있다. 읽기 버퍼(253)는 입출력 센스 앰프(243)로부터 읽기 데이터를 수신할 수 있다. 읽기 버퍼(253)는 수신된 읽기 데이터를 읽기 버퍼(253)의 FIFO(미도시)에 저장할 수 있다. 읽기 버퍼(253) 읽기 데이터를 직렬화하고 직렬화된 읽기 데이터를 데이터 송수신기(204)에 제공할 수 있다. The
인터벌 오실레이터(271)는 쓰기 클럭(WCK)의 경로와 읽기 DQ의 경로 차이를 모사하도록 구현될 수 있으며, 인터벌 오실레이터(272)는 쓰기 클럭(WCK)과 쓰기 DQ의 경로 차이를 모사하도록 구현될 수 있다. 카운터들(273, 274)은 각각 인터벌 오실레이터들(273, 274)이 동작하는 동안 카운트 값을 증가시킬 수 있다. 예를 들어, 제 1 카운터(273)에 의한 최종 카운트 값은 조정되어야 할 읽기 DQ의 스큐 값 또는 조정되어야 할 읽기 데이터 스트로브 신호(RDQS)의 스큐 값에 대응할 수 있다. 예를 들어, 제 2 카운터(274)에 의한 최종 카운트 값은 조정되어야 할 쓰기 DQ의 스큐 값에 대응할 수 있다. 예를 들어, 제 1 인터벌 오실레이터(271)와 제 2 인터벌 오실레이터(272)는 동시에 동작하지 않을 수 있으며, 제 1 카운터(273)와 제 2 카운터(274)는 동시에 동작하지 않을 수 있다. The
도 5는 도 3의 트레이닝 프로그램에 의해 계산되는 유효 윈도우 마진(VWM)을 예시적으로 도시한다. 도 5에서 가로 축은 시간을 나타내고 세로 축은 데이터 신호(DQ)의 전압 레벨을 나타낼 수 있다. 도 5의 회색 음영은 데이터 신호(DQ)의 아이 다이어그램(eye diagram)을 나타낼 수 있다.FIG. 5 exemplarily shows the effective window margin (VWM) calculated by the training program of FIG. 3. In FIG. 5 , the horizontal axis may represent time and the vertical axis may represent the voltage level of the data signal DQ. Gray shading in FIG. 5 may represent an eye diagram of the data signal DQ.
도 3 내지 도 5를 참조하면, 프로세서(110)에 의해 실행되는 트레이닝 프로그램은 데이터 신호(DQ)의 유효 윈도우 마진을 계산할 수 있다. 트레이닝 프로그램은 지연 회로(145) 및/또는 지연 회로(147)를 제어하여 읽기 데이터 스트로브 신호(RDQS)의 타이밍 및/또는 읽기 DQ의 타이밍을 제어할 수 있다. 그 결과, 읽기 데이터 스트로브 신호(RDQS)에 의해 읽기 DQ가 샘플링되는 시점(즉, 샘플링 포인트)이 조정될 수 있다. 유사하게, 트레이닝 프로그램은 지연 회로(147)를 제어하여 쓰기 DQ의 타이밍을 제어할 수 있다. 그 결과, 메모리 장치(200)에서 쓰기 클럭(WCK)에 의해 쓰기 DQ가 샘플링되는 시점(즉, 샘플링 포인트)이 조정될 수 있다.3 to 5, a training program executed by the
프로세서(110)에 의해 실행되는 트레이닝 프로그램은 복수의 샘플링 포인트들 중에서 데이터 신호(DQ)를 유효하게 샘플링할 수 있는 유효 샘플링 포인트들을 찾고, 유효 샘플링 포인트들로부터 데이터 신호(DQ)의 VWM을 계산할 수 있다. 예를 들어, 도 3에서 도시된 샘플링 포인트들은 모두 유효 샘플링 포인트들일 수 있다. 트레이닝 회로(149)는 두 개의 유효 샘플링 포인트들 간의 차이 또는 그 차이보다 작은 값을 읽기 DQ의 VWM으로 계산할 수 있다.The training program executed by the
도 6은 FIFO 읽기 트레이닝 실행 시 SoC(100)와 메모리 장치(200) 간의 신호들의 예시적인 타이밍도이다. FIG. 6 is an example timing diagram of signals between the
도 3, 도 4 및 도 6을 참조하면, SoC(100)는 FIFO 읽기 커맨드를 발행하기 전에, 쓰기 클럭(WCK)과 클럭(CK) 사이의 동기화를 위한 커맨드를 발행할 수 있다. 이후, SoC(100)는 FIFO 읽기 커맨드를 발행할 수 있으며, FIFO 읽기 커맨드는 t1 시점에서 래치될 수 있다. t1과 t2 사이의 읽기 레이턴시(RL)가 경과하고 약간의 지연 시간(tWCK2DQO)이 경과한 후, 읽기 DQ가 메모리 장치(200)로부터 출력될 수 있다. 여기서, 지연 시간은 쓰기 클럭-읽기 DQ 인터벌(tWCK2DQO)으로 일컬어질 수 있다. tWCK2DQO는 쓰기 클럭(WCK)이 메모리 장치(200)로 입력된 후 읽기 DQ를 래치하기 위해 데이터 송수신기(204)에 제공되는 경로에 따른 지연 시간일 수 있다. Referring to FIGS. 3, 4, and 6, the
tWCK2DQO에 따른 쓰기 클럭(WCK)과 읽기 DQ의 미스 매치는 DDR PHY(140)의 지연 회로(145)에 의해 보정될 수 있다. 좀 더 구체적으로, 지연 회로(145)는 메모리 장치(200)로부터 수신된 카운트 값을 참조하여 RDQS 수신기(144)로부터 출력되는 읽기 데이터 스트로브 신호(RDQS)를 지연시킬 수 있으며, 그 결과, SoC(100)에서 읽기 데이터 스트로브 신호(RDQS)에 의한 읽기 DQ의 래치 타이밍을 제어할 수 있다. Mismatch between the write clock (WCK) and read DQ according to tWCK2DQO can be corrected by the
도 7은 FIFO 쓰기 트레이닝 실행 시 SoC(100)와 메모리 장치(200) 간의 신호들의 예시적인 타이밍도이다. FIG. 7 is an example timing diagram of signals between the
도 3, 도 4, 및 도 7을 참조하면, SoC(100)는 FIFO 쓰기 커맨드를 발행할 수 있으며, FIFO 쓰기 커맨드는 t1 시점에서 래치될 수 있다. t1과 t2 사이의 쓰기 레이턴시(WL)가 경과하고 약간의 지연 시간(tWCK2DQI)이 경과한 후, 쓰기 DQ가 메모리 장치(200)로 입력될 수 있다. 여기서 지연 시간은 쓰기 클럭-읽기 DQ 인터벌(tWCK2DQI)으로 일컬어질 수 있다. tWCK2DQI는 쓰기 클럭(WCK)의 경로와 읽기 DQ의 경로 차이에 따른 지연 시간일 수 있다. Referring to FIGS. 3, 4, and 7, the
tWCK2DQI에 따른 쓰기 클럭(WCK)과 쓰기 DQ의 미스 매치는 DDR PHY(140)의 지연 회로(147)에 의해 보정될 수 있다. 좀 더 구체적으로, 지연 회로(147)는 메모리 장치(200)로부터 수신된 카운트 값을 참조하여 데이터 송신기(148)로부터 출력되는 쓰기 DQ를 지연시킬 수 있으며, 그 결과, 메모리 장치(200)에서 쓰기 클럭(WCK)에 의한 쓰기 DQ의 래치 타이밍을 제어할 수 있다.Mismatch between the write clock (WCK) and write DQ according to tWCK2DQI can be corrected by the
도 8은 도 4의 인터벌 오실레이터(271)의 예시적인 회로도를 도시한다. 더 나은 이해를 위해, 제어 로직 회로(230)과 카운터(273)도 함께 도시되었다.FIG. 8 shows an example circuit diagram of the
인터벌 오실레이터(271)는 복수의 싱글 엔디드 타입(single-ended type)의 인버터들(271_1 내지 271_n)들을 포함할 수 있다. 인버터들(271_1 내지 271_n)은 직렬로 연결될 수 있으며, 인버터(271_n)의 출력단은 카운터(273)의 입력단과 인버터(272_1)의 입력단에 공통으로 연결될 수 있다. 인버터들(271_1 내지 271_n)은 제어 로직 회로(230)으로부터 수신된 오실레이터 인에이블 신호(OSC_EN)에 응답하여 동작할 수 있다.The
우선, 전자 장치(도 1, 10)의 초기화 시, 메모리 장치(도 1, 200)가 SoC(도 1, 100)로부터 오실레이터 시작 커맨드(OSC_Start)를 수신하면, 제어 로직 회로(230)는 오실레이터 시작 커맨드(OSC_Start)에 기반하여 오실레이터 인에이블 신호(OSC_EN)와 카운터 인에이블 신호(CNT_EN)를 생성할 수 있다. 인버터들(271_1 내지 271_n)은 카운터 인에이블 신호(CNT_EN)에 응답하여 동작할 수 있으며, 인버터(271_n)으로부터 신호가 출력될 때마다 카운터(273)는 카운트 값을 증가시킬 수 있다.First, when initializing the electronic device (FIG. 1, 10), when the memory device (FIG. 1, 200) receives an oscillator start command (OSC_Start) from the SoC (FIG. 1, 100), the
이후, 메모리 장치(200)가 SoC(100)로부터 오실레이터 중지 커맨드(OSC_Stop)를 수신하면, 제어 로직 회로(230)는 오실레이션 인에이블 신호(OSC_EN)의 생성을 중단할 수 있다. 그 결과, 인터벌 오실레이터(271)의 동작은 중지되고, 카운터(273)는 인터벌 오실레이터(271)의 동작 동안 카운팅 된 최종 카운트 값(CNT)을 출력할 수 있다. 카운트 값(CNT)는 모드 레지스터(260)에 저장될 수 있다.Thereafter, when the
실시 예에 있어서, 인터벌 오실레이터(272)와 카운터(274)도 도 8의 실시 예와 유사하게 동작할 수 있다. 다만, 읽기 DQ의 경로와 쓰기 DQ의 경로는 다르기 때문에, 인터벌 오실레이터(271) 구성하는 인버터들의 개수와 인터벌 오실레이터(272)를 구성하는 인버터들의 개수는 서로 다를 수 있다. In an embodiment, the
도 9는 도 4의 인터벌 오실레이터(271)의 다른 예시적인 회로도를 도시한다. 더 나은 이해를 위해, 제어 로직 회로(230)과 카운터(273)도 함께 도시되었다.FIG. 9 shows another example circuit diagram of the
인터벌 오실레이터(271)는 복수의 차동 타입(differential type)의 인버터들(271_1 내지 271_n)들을 포함할 수 있다. 인버터들(271_1 내지 271_n)은 직렬로 연결될 수 있으며, 인버터(271_n)의 제 1 출력단은 카운터(273)의 입력단(CK)과 인버터(272_1)의 음의 입력단에 공통으로 연결될 수 있다. 그리고, 인버터(271_n)의 제 2 출력단은 카운터(273)의 입력단(CKB)과 인버터(271_1)의 양의 입력단에 공통으로 연결될 수 있다. The
도 9의 인터벌 오실레이터(271)의 동작은 도 8의 인터벌 오실레이터의 동작과 대체로 유사할 수 있다. 오실레이터 시작 커맨드(OSC_Start)의 수신과 오실레이터 중지 커맨드(OSC_Stop) 사이의 런타임 구간에서 인터벌 오실레이터(271)가 동작할 수 있으며, 인터벌 오실레이터(271)가 동작하는 동안 카운터(273)는 카운팅 값을 증가시킬 수 있다. 인터벌 오실레이터(271)의 동작이 종료되면, 카운터(273)는 최종 카운트 값(CNT)을 출력할 수 있다. 카운트 값(CNT)는 모드 레지스터(260)에 저장될 수 있다.The operation of the
도 10은 인터벌 오실레이터 트레이닝 시 SoC(100)와 메모리 장치(200) 간의 신호들의 예시적인 타이밍도이다. FIG. 10 is an example timing diagram of signals between the
도 3, 도 4, 및 도 10을 참조하면, 전자 장치(10)의 초기화 후 동작 시, SoC(100)는 오실레이터 시작 커맨드(OSC_Start)를 발행할 수 있으며, 메모리 장치(200)는 t1 시점에서 클럭들(CK_t, CK_c)에 기반하여 오실레이터 시작 커맨드(OSC_Start)를 래치할 수 있다. 이후, SoC(100)는 오실레이터 중지 커맨드(OSC_Stop)를 발행할 수 있으며, 메모리 장치(200)는 t2 시점에서 클럭들(CK_t, CK_c)에 기반하여 오실레이터 중지 커맨드(OSC_Stop)를 래치할 수 있다. 비록 도 10에는 하나의 인터벌 오실레이터 시작 커맨드(OSC_Start)와 하나의 인터벌 오실레이터 중지 커맨드(OSC_Stop)만 종료되었으나, 읽기 인터벌 오실레이터 트레이닝과 쓰기 인터벌 오실레이터 트레이닝을 실행하기 위해, 하나의 인터벌 오실레이터 시작 커맨드(OSC_Start)와 하나의 인터벌 오실레이터 중지 커맨드(OSC_Stop)가 메모리 장치(200)로 더 입력될 수 있다. Referring to FIGS. 3, 4, and 10, when operating after initialization of the
런타임 동안 인터벌 오실레이터(271)가 동작할 수 있으며, 카운터(273)의 카운트 값은 모드 레지스터(260)에 저장될 수 있다. 유사하게, 다음의 인터벌 오실레이터 시작 커맨드(OSC_Start)와 다음의 인터벌 오실레이터 중지 커맨드(OSC_Stop) 사이의 런타임 동안 인터벌 오실레이터(272)가 동작할 수 있으며, 카운터(274)의 카운트 값은 모드 레지스터(260)에 저장될 수 있다. During runtime, the
이후 SoC(100)는 모드 레지스터(260)에 저장된 카운트 값을 읽기 위한 모드 레지스터 읽기 커맨드(MRR)를 발행할 수 있으며, 메모리 장치(200)는 t3 시점에서 클럭들(CK_t, CK_c)에 기반하여 모드 레지스터 읽기 커맨드(MRR)를 래치할 수 있다. Thereafter, the
t4 시점이 경과한 후 프리 토글링 구간(tWCKPRE)과 읽기 싱크 구간(tSYNCRD)이 경과할 수 있다. 프리 토글링 구간(tWCKPRE) 및 읽기 싱크 구간(tSYNCRD) 중 적어도 일부는 읽기 레이턴시 구간(RL)에 포함될 수 있다. 그리고, 지연 시간(tWCK2DQO)이 더 경과한 후, 읽기 DQ가 메모리 장치(200)로부터 출력될 수 있다. 여기서, 지연 시간(tWCK2DQO)은 쓰기 클럭(WCK)과 읽기 DQ의 경로 차이로 인한 것일 수 있다. 읽기 DQ는 카운터(273)에 의한 카운트 값과 카운터(274)에 의한 카운트 값을 포함할 수 있다.After the t4 time point elapses, the free toggling period (tWCKPRE) and the read sync period (tSYNCRD) may elapse. At least a portion of the free toggling period (tWCKPRE) and the read sync period (tSYNCRD) may be included in the read latency period (RL). Then, after the delay time (tWCK2DQO) has elapsed, the read DQ may be output from the
도 11은 본 개시의 실시 예에 따라 인터벌 오실레이터의 카운트 값을 보정하는 것을 개념적으로 도시한다.FIG. 11 conceptually illustrates correcting the count value of an interval oscillator according to an embodiment of the present disclosure.
도 4, 도 8 및 도 11을 참조하면, 메모리 장치(200)는 온도 구간과 보정 계수의 대응 관계를 정의하는 테이블을 저장할 수 있다. 예를 들어, 메모리 장치(200)는 테이블을 저장하기 위한 별도의 구성을 포함할 수 있다. 또는 메모리 장치(200)의 모드 레지스터(260)는 테이블을 저장할 수 있다. Referring to FIGS. 4, 8, and 11, the
실시 예에 있어서, 온도는 T0~T1 구간, T1~T2 구간 등 복수의 구간들로 구분될 수 있으며, 각 온도 구간은 보정 계수(correction factor)를 가질 수 있다. 각 구간의 보정 계수는 양수, 0, 또는 음수일 수 있다. In an embodiment, the temperature may be divided into a plurality of sections, such as a T0 to T1 section and a T1 to T2 section, and each temperature section may have a correction factor. The correction coefficient for each section can be positive, 0, or negative.
실시 예에 있어서, 보정 계수는 전자 장치(도 1, 10)의 테스트 단계에서 미리 획득될 수 있다. 예를 들어, FIFO 트레이닝 동안 획득된 지연과 인터벌 오실레이터 트레이닝 동안 획득된 지연의 차이(즉, 오프셋)가 기준 값을 초과하지 않도록, 각 온도 구간별로 온도 계수가 획득될 수 있다. 기준 값은, 메모리 장치(200)가 오작동하지 않도록 하는 임계값일 수 있다. In an embodiment, the correction coefficient may be obtained in advance during the testing phase of the electronic device (FIGS. 1 and 10). For example, a temperature coefficient may be obtained for each temperature section so that the difference (i.e., offset) between the delay obtained during FIFO training and the delay obtained during interval oscillator training does not exceed a reference value. The reference value may be a threshold value that prevents the
실시 예에 있어서, 모드 레지스터(260)는, 카운터(273)로부터 카운트 값(CNT)이 수신되는 경우, 온도 센서(280)에 의해 측정된 온도가 속하는 온도 범위에 대응하는 보정 계수를 선택하도록 구성될 수 있다. 모드 레지스터(260)는 선택된 보정 계수를 카운트 값(CNT)에 반영하고 보정된 카운트 값을 저장하도록 구성될 수 있다. 보정된 카운트 값은 SoC(100)로부터의 모드 레지스터 읽기 커맨드에 따라 SoC(100)로 출력될 수 있다.In an embodiment, the
한편, 상술된 동작은 인터벌 오실레이터(272)의 출력을 카운팅하는 카운터(274)에 대해서도 동일하게 수행될 수 있을 것이다.Meanwhile, the above-described operation may be equally performed for the
도 12는 본 개시의 실시 예에 따라 인터벌 오실레이터의 카운트 값을 보정하는 것을 개념적으로 도시한다.FIG. 12 conceptually illustrates correcting the count value of an interval oscillator according to an embodiment of the present disclosure.
도 12에 도시된 구성 요소들의 동작은 도 11에 도시된 구성 요소들의 동작과 대체로 유사하다. 다만, 본 실시 예에서, 메모리 장치(200)는 테이블을 저장하기 위한 별도의 구성을 포함하거나, 제어 로직 회로(230)는 테이블을 저장할 수 있다. The operations of the components shown in FIG. 12 are generally similar to the operations of the components shown in FIG. 11. However, in this embodiment, the
도 4, 도 8, 및 도 12를 참조하면, 인터벌 오실레이터(271)로부터 출력된 카운트 값(CNT)은 제어 로직 회로(230)로 입력될 수 있다. 제어 로직 회로(230)는 인터벌 오실레이터(271)로부터 출력된 카운트 값(CNT), 온도 센서(280)로부터 출력된 온도, 및 테이블을 참조하여 카운트 값(CNT)을 보정하도록 구성될 수 있다. 제어 로직 회로(230)는 보정된 카운트 값을 모드 레지스터(260)에 제공할 수 있으며, 모드 레지스터(260)는 보정된 카운트 값을 저장할 수 있다. 보정된 카운트 값은 SoC(100)로부터의 모드 레지스터 읽기 커맨드에 따라 SoC(100)로 출력될 수 있다. Referring to FIGS. 4, 8, and 12, the count value (CNT) output from the
마찬가지로, 상술된 동작은 인터벌 오실레이터(272)의 출력을 카운팅하는 카운터(274)에 대해서도 동일하게 수행될 수 있을 것이다.Likewise, the above-described operation may be equally performed for the
도 13은 본 개시의 실시 예에 따라 인터벌 오실레이터의 카운트 값을 보정하는 것을 개념적으로 도시한다.FIG. 13 conceptually illustrates correcting the count value of an interval oscillator according to an embodiment of the present disclosure.
앞서 도 11 및 도 12의 실시 예와는 달리, 도 13의 실시 예에서 카운트 값의 보정은 SoC에서 실행될 수 있다. 도 3, 도 8, 및 도 13을 참조하면, 인터벌 오실레이터(271)로부터 출력된 카운트 값(CNT)과 온도 센서(280)에 의해 획득된 온도 정보는 모드 레지스터에 저장될 수 있다. 메모리 장치(200)는 SoC(100)로부터 수신된 모드 레지스터 읽기 커맨드에 응답하여 카운트 값(CNT)과 온도 정보를 SoC(100)로 전송할 수 있다. 예를 들어, 카운트 값(CNT)과 온도 정보는 온-칩 메모리(120)에 저장될 수 있다.Unlike the previous embodiments of FIGS. 11 and 12, in the embodiment of FIG. 13, correction of the count value may be performed in the SoC. Referring to FIGS. 3, 8, and 13, the count value (CNT) output from the
실시 예에 있어서, 프로세서(110)에 의해 실행되는 트레이닝 프로그램은 테이블, 그리고 메모리 장치(200)로부터 수신된 카운트 값(CNT) 및 온도 정보에 기반하여 카운트 값(CNT)을 보정할 수 있다. 예를 들어, 테이블은 SoC(100) 내의 별도의 저장 공간 또는 메모리 장치(200)에 저장될 수 있으며, 트레이닝 프로그램의 실행 시 온-칩 메모리(120)에 로딩될 수 있다. 카운트 값(CNT)의 보정이 완료되면, 트레이닝 회로(149)는 보정된 카운트 값을 이용하여, 지연 회로(145)를 제어하여 읽기 데이터 스트로브 신호(RDQS)를 지연시키거나(읽기 인터벌 오실레이터 트레이닝), 지연 회로(147)를 제어하여 쓰기 DQ를 지연시킬 수 있다(쓰기 인터벌 오실레이터 트레이닝).In an embodiment, the training program executed by the
도 14는 온도 변화에 따른 FIFO 트레이닝에서의 지연과 온도 변화에 따른 인터벌 오실레이터 트레이닝에서의 지연 간의 오프셋을 도시하는 그래프이다.Figure 14 is a graph showing the offset between the delay in FIFO training according to temperature change and the delay in interval oscillator training according to temperature change.
도 14를 참조하면, FIFO 트레이닝 시 실제의 데이터 입출력에 기반하여 수행되기 때문에, 비교적 정확한 지연이 측정될 수 있다. 예를 들어, 온도가 증가할수록 지연이 증가하는 경향성을 가질 수 있으나, 이는 예시적인 것이며, 이에 한정되지 않는다.Referring to FIG. 14, since FIFO training is performed based on actual data input and output, relatively accurate delay can be measured. For example, as the temperature increases, the delay may tend to increase, but this is an example and is not limited thereto.
한편, 인터벌 오실레이터 트레이닝은 쓰기 경로와 읽기 경로를 모사하는 인터벌 오실레이터에 기반하기 때문에, 빠르고 간편하지만, 부정확하다는 단점이 있다. 예를 들어, 온도가 증가할수록 지연이 증가하는 경향성을 가질 수 있으나, FIFO 트레이닝의 지연과의 오프셋의 차이는 온도가 증가할수록 더욱 증가할 수 있다.Meanwhile, interval oscillator training is fast and simple because it is based on an interval oscillator that simulates the write path and the read path, but has the disadvantage of being inaccurate. For example, the delay may tend to increase as the temperature increases, but the difference between the delay and the offset of FIFO training may further increase as the temperature increases.
예시적으로, 온도 Ta에서의 오프셋(Offset_a)는 허용 값 이내일 수 있으며, 이 경우, SoC가 인터벌 오실레이터 트레이닝 과정에서 획득된 지연 시간(Da)을 이용하여 트레이닝을 실행하더라도 메모리 장치의 동작에 문제는 없을 것이다. 그러나, 예시적으로, 온도 Tb에서의 오프셋(Offset_b)과 오프셋(Offset_c)은 허용 값 밖일 수 있다. 이 경우, SoC가 인터벌 오실레이터 트레이닝 과정에서 획득된 지연 시간들(Db, Dc)을 이용하여 트레이닝을 실행하는 경우, 메모리 장치는 정상적으로 동작하지 않을 수 있다.As an example, the offset (Offset_a) at the temperature Ta may be within an acceptable value. In this case, even if the SoC performs training using the delay time (Da) obtained during the interval oscillator training process, there is a problem in the operation of the memory device. There will be no. However, as an example, the offset (Offset_b) and offset (Offset_c) at the temperature Tb may be outside the allowable values. In this case, when the SoC performs training using the delay times (Db, Dc) obtained during the interval oscillator training process, the memory device may not operate normally.
도 15는 본 개시의 실시 예에 따라 도 13의 온도 변화에 따른 인터벌 오실레이터 트레이닝에서의 지연을 보정하는 것을 개념적으로 도시하는 그래프이다.FIG. 15 is a graph conceptually illustrating correction of delay in interval oscillator training according to temperature change in FIG. 13 according to an embodiment of the present disclosure.
도 11 내지 도 13과 함께 도 15를 참조하면, 예시적으로, 온도는 T0 이상 T1 미만의 구간, T1 이상 T2 미만의 구간, 및 T2 이상 T3 미만의 구간으로 구분될 수 있다.Referring to FIG. 15 along with FIGS. 11 to 13 , the temperature may be illustratively divided into a section between T0 and T1, a section between T1 and below T2, and a section between T2 and below T3.
도 3, 도 4, 및 도 15를 참조하면, 제어 로직 회로(230) 또는 모드 레지스터(260)는 카운터(273)의 카운트 값을 온도 구간에 따라 보정할 수 있다. 예를 들어, 인터벌 오실레이터 트레이닝 동안 온도(Ta)에서 획득된 지연 시간(Da')은 허용 범위 내일 수 있다. 따라서, 온도(Ta)가 속하는 구간(T0~T1)에서의 보정 계수는 '0'일 수 있으며, 제어 로직 회로(230) 또는 모드 레지스터(260)는 카운터(273)의 카운트 값을 보정하지 않을 수 있다. 즉, 모드 레지스터(260)는 지연 시간(tWCK2DQO 또는 tWCK2DQI)에 대응하는 카운트 값을 저장할 수 있으며, SoC(100)로부터의 모드 레지스터 읽기 커맨드에 응답하여 커맨드 값을 SoC(100)에 제공할 수 있다.Referring to FIGS. 3, 4, and 15, the
만일 메모리 장치의 온도가 Ta에서 Tb로 변화하여 리트레이닝(re-training)이 요구되는 경우, SoC(100)는 인터벌 오실레이터 트레이닝을 실행할 수 있다. 트레이닝 결과, 카운터(273)는 지연 시간(도 14, Db)에 대응하는 카운트 값을 획득할 수 있으며, 이는 허용 범위 밖일 수 있다. 따라서, 온도(Tb)가 속하는 구간(T1~T2)의 보정 계수는 'b'으로 설정될 수 있으며, 제어 로직 회로(230) 또는 모드 레지스터(260)는 카운터(273)의 카운트 값을 보정할 수 있다. 그 결과, 지연 시간(Db')에 대응하는 카운트 값이 획득될 수 있으며, 카운트 값은 모드 레지스터(260)에 저장될 수 있다. If the temperature of the memory device changes from Ta to Tb and re-training is required, the
만일, 메모리 장치의 온도가 Tb에서 Tc로 변화하여 리트레이닝이 요구되는 경우, SoC(100)는 인터벌 오실레이터 트레이닝을 실행할 수 있다. 트레이닝 결과, 카운터(273)는 지연 시간(도 14, Dc)에 대응하는 카운트 값을 획득할 수 있으며, 이는 허용 범위 밖일 수 있다. 따라서, 온도(Tc)가 속하는 구간(T2~T3)의 보정 계수는 'c'로 설정될 수 있으며, 제어 로직 회로(230) 또는 모드 레지스터(260)는 카운터(273)의 카운트 값을 보정할 수 있다. 그 결과, 지연 시간(Dc')에 대응하는 카운트 값이 획득될 수 있으며, 카운트 값은 모드 레지스터(260)에 저장될 수 있다. If retraining is required because the temperature of the memory device changes from Tb to Tc, the
도 16은 본 개시의 실시 예에 따른 인터벌 오실레이터 트레이닝의 순서도이다. Figure 16 is a flowchart of interval oscillator training according to an embodiment of the present disclosure.
도 3, 도 4, 및 도 16을 참조하면, S110 단계에서, 메모리 장치(200)는 클럭(CK)에 기반하여 인터벌 오실레이터 시작 커맨드(OSC_Start)을 수신할 수 있다. 제어 로직 회로(230)는 인터벌 오실레이터 시작 커맨드(OSC_Start)에 기반하여 인터벌 오실레이터(271)와 카운터(273)를 인에이블 시키기 위한 신호들을 생성할 수 있고, 제어 로직 회로(230)로부터의 신호들에 기반하여 인터벌 오실레이터(271)와 카운터(273)가 동작할 수 있다(S120).Referring to FIGS. 3, 4, and 16, in step S110, the
S130 단계에서, 카운터(273)는 인터벌 오실레이터의 출력 신호를 카운팅 할 수 있다.In step S130, the
S140 단계에서, 메모리 장치(200)는 클럭(CK)에 기반하여 인터벌 오실레이터 중지 커맨드(OSC_Stop)를 수신할 수 있다. 제어 로직 회로(230)는 인터벌 오실레이터 중지 커맨드(OSC_Stop)에 기반하여 인터벌 오실레이터(271)와 카운터(273)를 디스에이블 시키기 위한 신호들을 생성할 수 있고, 인터벌 오실레이터(271)와 카운터(273)는 제어 로직 회로(230)로부터의 신호들에 기반하여 동작을 멈출 수 있다. 그리고, 카운터(273)는 최종 카운트 값을 출력할 수 있다(S150).In step S140, the
S160 단계에서, 제어 로직 회로(230) 또는 모드 레지스터(260)는 온도 구간과 보정 계수의 대응 관계를 정의하는 테이블에 기반하여 카운터(273)로부터 출력된 카운트 값을 보정할 수 있다. 예를 들어, 테이블을 참조하기 위한 온도 정보는 메모리 장치 내부의 온도 센서(280)에 의해 획득될 수 있다.In step S160, the
S170 단계에서, 메모리 장치(200)는 SoC(100)로부터의 모드 레지스터 읽기 커맨드에 응답하여 보정된 카운트 값을 SoC(100)에 제공할 수 있다. SoC(100)는 보정된 카운트 값을 참조하여, 읽기 데이터 스트로브 신호(RDQS) 및/또는 쓰기 DQ의 스큐를 조정할 수 있다.In step S170, the
도 17은 본 개시의 실시 예에 따른 전자 장치(20)의 예시적인 구성을 도시한다. 전자 장치(10)는 메모리 컨트롤러(300) 및 메모리 장치(400)를 포함할 수 있다. FIG. 17 shows an example configuration of an
메모리 장치(400)는 메모리 컨트롤러(300)로부터 클럭(CK), 그리고 커맨드 및 어드레스 신호(CMD/ADD)를 수신할 수 있다. 메모리 장치(200)는 클럭(CK)에 기반하여 커맨드 및 어드레스 신호(CMD/ADD)를 샘플링하여, 커맨드(CMD) 및 어드레스(ADD)를 획득할 수 있다. 메모리 장치(200)는 데이터 스트로브 신호(DQS)을 이용하여 데이터 신호(DQ)를 수신하거나, 출력할 수 있다. 메모리 장치(400)는 DDR(double data rate) SDRAM일 수 있다.The
실시 예에 있어서, 메모리 컨트롤러(300)와 메모리 장치(400)의 구성은 도 1의 메모리 컨트롤러(300)와 메모리 장치(200)의 구성과 대체로 유사할 수 있다. 그러므로, 메모리 컨트롤러(300)와 메모리 장치(400)의 구체적인 구성에 대한 상세한 설명은 생략한다. 다만, 도 1의 메모리 장치(200)의 쓰기 동작과 읽기 동작 시 서로 다른 주파수를 갖는 클럭들(즉, WCK과 RDQS)이 사용됨에 반하여, 도 17의 메모리 장치(400)에 대한 쓰기 동작과 읽기 동작 시 데이터 스트로브 신호(DQS)가 사용된다는 점에 있어서 차이가 있다.In an embodiment, the configuration of the
실시 예에 있어서, 메모리 컨트롤러(300)는 초기화 시 메모리 장치(400)에 대한 FIFO 트레이닝을 실행할 수 있으며, 초기화 후 메모리 장치(400)의 동작 시 메모리 장치(400)에 대한 인터벌 오실레이터 트레이닝을 실행할 수 있다. 인터벌 오실레이터 트레이닝은 읽기 인터벌 오실레이터 트레이닝과 쓰기 인터벌 오실레이터 트레이닝을 포함할 수 있으며, 읽기 인터벌 오실레이터 트레이닝은 인터벌 오실레이터(471)을 이용하여 수행되고, 쓰기 인터벌 오실레이터 트레이닝은 인터벌 오실레이터(472)를 이용하여 수행될 수 있다.In an embodiment, the
인터벌 오실레이터(471)는 데이터 스트로브 신호(DQS)의 경로와 읽기 DQ의 경로의 차이를 모사하도록 구현될 수 있고, 인터벌 오실레이터(472)는 데이터 스트로브 신호(DQS)의 경로와 쓰기 DQ의 경로의 차이를 모사하도록 구현될 수 있다.The
예를 들어, 데이터 스트로브 신호(DQS)의 경로와 읽기 DQ의 경로 차이에 따른 지연 시간은 tDQS2DQO일 수 있다. 유사하게, 데이터 스트로브 신호(DQS)의 경로와 쓰기 DQ의 경로 차이에 따른 지연 시간은 tDQS2DQI일 수 있다. 인터벌 오실레이터들(471, 472)의 구성 및 동작은 도 8 및 도 9를 통하여 설명된 인터벌 오실레이터와 대체로 동일할 수 있다.For example, the delay time according to the difference between the path of the data strobe signal (DQS) and the path of the read DQ may be tDQS2DQO. Similarly, the delay time according to the difference between the path of the data strobe signal (DQS) and the path of the write DQ may be tDQS2DQI. The configuration and operation of the
실시 예에 있어서, 메모리 장치(400) 내의 제어 로직 회로(도 4의 제어 로직 회로(230)와 유사) 및/또는 모드 레지스터(도 4의 모드 레지스터(260)과 유사)는 온도 센서(480)에 의해 측정된 온도에 기반하여 인터벌 오실레이터들(471, 472)의 동작시 카운팅 된 카운트 값들을 보정할 수 있다. 그 결과, 온도가 변하더라도, FIFO 트레이닝 시 측정된 지연 시간과, 인터벌 오실레이터 트레이닝 시 측정된 지연 시간의 차이(즉, 오프셋)이 허용된 범위 내에 있을 수 있다. In an embodiment, the control logic circuit (similar to control
도 18은 본 개시의 실시 예에 따른 적층형 메모리 장치를 도시한다. 도 18을 참조하면, 적층형 메모리 장치(500)는 버퍼 다이(510) 및 복수의 코어 다이들(520~550)을 포함할 수 있다. 예를 들어, 버퍼 다이(510)는 인터페이스 다이, 베이스 다이, 로직 다이, 마스터 다이 등으로도 지칭될 수 있고, 그리고 코어 다이들(520~550) 각각은 메모리 다이, 슬레이브 다이 등으로도 지칭될 수 있다. 도 18에서는 적층형 메모리 장치(500)에 4개의 코어 다이들(520~550)이 포함되는 것으로 도시되었으나, 코어 다이들의 개수는 다양하게 변경될 수 있다. 예를 들어, 적층형 메모리 장치(500)는 8개, 12개 또는 16개 코어 다이들을 포함할 수 있다. Figure 18 shows a stacked memory device according to an embodiment of the present disclosure. Referring to FIG. 18 , the stacked memory device 500 may include a buffer die 510 and a plurality of core dies 520 to 550. For example, the buffer die 510 may also be referred to as an interface die, base die, logic die, master die, etc., and each of the core dies 520 to 550 may also be referred to as a memory die, slave die, etc. You can. In FIG. 18 , the stacked memory device 500 is shown to include four core dies 520 to 550, but the number of core dies may vary. For example, stacked memory device 500 may include 8, 12, or 16 core dies.
버퍼 다이(510) 및 코어 다이들(520~550)은 실리콘 관통 전극들(Through Silicon Via; TSV)을 통해 적층되고, 전기적으로 연결될 수 있다. 이에 따라, 적층형 메모리 장치(500)는 다수의 다이들(510~550)이 적층되는 3차원 메모리 구조를 가질 수 있다. 예를 들어, 적층형 메모리 장치(500)는 HBM 또는 HMC 표준을 기반으로 구현될 수 있다.The buffer die 510 and the core dies 520 to 550 may be stacked and electrically connected through through silicon vias (TSVs). Accordingly, the stacked memory device 500 may have a three-dimensional memory structure in which a plurality of dies 510 to 550 are stacked. For example, the stacked memory device 500 may be implemented based on the HBM or HMC standards.
적층형 메모리 장치(500)는 기능적으로 독립된 복수의 채널들(또는, 볼트(vault)들)을 지원할 수 있다. 예를 들어, 도 15에 도시된 바와 같이, 적층형 메모리 장치(500)는 8개 채널들(CH0~CH7)을 지원할 수 있다. 채널들(CH0~CH7) 각각이 128개 데이터(DQ) 전달 통로(I/O)를 지원하는 경우, 적층형 메모리 장치(500)는 1024개 데이터 전달 통로를 지원할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 적층형 메모리 장치(500)는 1024개 이상의 데이터 전달 통로를 지원할 수 있으며, 8개 이상의 채널들(예를 들어, 16개 채널들)을 지원할 수 있다. 적층형 메모리 장치(500)가 16개 채널들을 지원하는 경우, 채널들 각각은 64개 데이터 전달 통로를 지원할 수 있다.The stacked memory device 500 may support a plurality of functionally independent channels (or vaults). For example, as shown in FIG. 15, the stacked memory device 500 can support eight channels (CH0 to CH7). If each of the channels (CH0 to CH7) supports 128 data (DQ) transmission paths (I/O), the stacked memory device 500 can support 1024 data transmission paths (I/O). However, the present invention is not limited to this, and the stacked memory device 500 may support 1024 or more data transmission paths and 8 or more channels (eg, 16 channels). When the stacked memory device 500 supports 16 channels, each of the channels can support 64 data transmission paths.
코어 다이들(520~550) 각각은 적어도 하나의 채널을 지원할 수 있다. 예를 들어, 도 18에 도시된 바와 같이, 코어 다이들(520~550) 각각은 2 채널(CH0-CH2, CH1-CH3, CH4-CH6, CH5-CH7)을 지원할 수 있다. 이 경우, 코어 다이들(520~550)은 서로 다른 채널들을 지원할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 코어 다이들(520~550) 중 적어도 두 개는 동일한 채널을 지원할 수 있다. 예를 들어, 코어 다이들(520~550) 각각은 제1 채널(CH0)을 지원할 수 있다.Each of the core dies 520 to 550 may support at least one channel. For example, as shown in FIG. 18, each of the core dies 520 to 550 may support two channels (CH0-CH2, CH1-CH3, CH4-CH6, CH5-CH7). In this case, the core dies 520 to 550 may support different channels. However, the present invention is not limited to this, and at least two of the core dies 520 to 550 may support the same channel. For example, each of the core dies 520 to 550 may support the first channel CH0.
채널들 각각은 독립적인 커맨드 및 데이터 인터페이스를 구성할 있다. 예를 들어, 각 채널은 독립적인 타이밍 요구 조건에 기초하여 독립적으로 클럭킹(independently clocked)될 수 있고, 서로 동기화되지 않을 수 있다. 예를 들어, 각 채널은 독립적인 커맨드에 기초하여 파워 상태를 변경하거나 리프레시를 수행할 수 있다.Each of the channels can constitute an independent command and data interface. For example, each channel may be independently clocked based on independent timing requirements and may not be synchronized with each other. For example, each channel can change its power state or perform a refresh based on an independent command.
채널들 각각은 복수의 메모리 뱅크들(501)을 포함할 수 있다. 메모리 뱅크들(501) 각각은 워드 라인들 및 비트 라인들에 연결되는 메모리 셀들, 로우 디코더, 컬럼 디코더, 센스 앰프 등을 포함할 수 있다. 예를 들어, 도 12에 도시된 바와 같이, 채널들(CH0~CH7) 각각은 8개의 메모리 뱅크들(501)을 포함할 수 있다. 그러나, 본 발명이 이에 한정되지 않으며, 채널들(CH0~CH7) 각각은 8개 이상의 메모리 뱅크들(301)을 포함할 수 있다. 도 18에는 하나의 채널에 포함되는 메모리 뱅크들이 하나의 코어 다이에 포함되는 것으로 도시되어 있으나, 하나의 채널에 포함되는 메모리 뱅크들은 복수의 코어 다이들에 분산될 수 있다. 예를 들어, 코어 다이들(520~550) 각각이 제1 채널(CH0)을 지원하는 경우, 제1 채널(CH0)에 포함되는 메모리 뱅크들은 코어 다이들(520~550)에 분산될 수 있다.Each of the channels may include a plurality of
예시적인 실시 예에서, 하나의 채널은 독립적으로 동작하는 2개의 의사 채널(Pseudo Channel)들로 나뉘어질 수 있다. 예를 들어, 의사 채널들은 채널의 커맨드 및 클럭 입력들(예를 들어, 클럭(CK) 및 클럭 인에이블 신호(CKE))을 공유할 수 있으나, 커맨드들을 독립적으로 디코딩하고 실행할 수 있다. 예를 들어, 하나의 채널이 128개 데이터 전달 통로를 지원하는 경우, 의사 채널들 각각은 64개 데이터 전달 통로를 지원할 수 있다. 예를 들어, 하나의 채널이 64개 데이터 전달 통로를 지원하는 경우, 의사 채널들 각각은 32개 데이터 전달 통로를 지원할 수 있다.In an example embodiment, one channel may be divided into two independently operating pseudo channels. For example, pseudo channels may share the channel's command and clock inputs (e.g., clock (CK) and clock enable signal (CKE)), but may decode and execute commands independently. For example, if one channel supports 128 data transmission paths, each of the pseudo channels can support 64 data transmission paths. For example, if one channel supports 64 data transmission paths, each of the pseudo channels can support 32 data transmission paths.
버퍼 다이(510) 및 코어 다이들(520~550)은 TSV영역(502)을 포함할 수 있다. TSV영역(502)에는 다이들(510~550)을 관통하도록 구성된 TSV들이 배치될 수 있다. 버퍼 다이(510)는 TSV들을 통해 코어 다이들(520~550)과 신호들 및/또는 데이터를 송수신할 수 있다. 코어 다이들(520~550) 각각은 TSV들을 통해 버퍼 다이(510) 및 다른 코어 다이와 신호들 및/또는 데이터를 송수신할 수 있다. 이 경우, 신호들 및/또는 데이터는 채널 별로 대응하는 TSV들을 통해 독립적으로 송수신될 수 있다. 예를 들어, 외부의 호스트 장치가 제1 코어 다이(520)의 메모리 셀에 접근하기 위해 제1 채널(CH0)로 커맨드 및 어드레스를 전송하는 경우, 버퍼 다이(510)는 제1 채널(CH0)에 대응하는 TSV들을 통해 제어 신호들을 제1 코어 다이(520)로 전송하여 제1 채널(CH0)의 메모리 셀에 접근할 수 있다.The buffer die 510 and core dies 520 to 550 may include a
버퍼 다이(510)는 물리 계층(PHY, 511)을 포함할 수 있다. 물리 계층(511)은 외부의 호스트 장치와의 통신을 위한 인터페이스 회로들을 포함할 수 있다. 예를 들어, 물리 계층(511)은 도 1 내지 도 16을 참조하여 설명한 커맨드 및 어드레스 수신기(201), 쓰기 클럭 버퍼(202), RDQS 송신기(203), 데이터 송수신기(204), 제어 로직 회로(230) 등과 같은 인터페이스 회로들을 포함할 수 있다. 물리 계층(511)을 통해 수신된 신호들 및/또는 데이터는 TSV들을 통해 코어 다이들(520~550)로 전달될 수 있다.The buffer die 510 may include a physical layer (PHY, 511). The
예시적인 실시 예에서, 버퍼 다이(510)는 채널들 각각에 대응하는 채널 컨트롤러를 포함할 수 있다. 채널 컨트롤러는 대응하는 채널의 메모리 참조 동작들을 관리할 수 있고, 대응하는 채널의 타이밍 요구 조건을 결정할 수 있다.In an example embodiment, buffer die 510 may include a channel controller corresponding to each of the channels. The channel controller can manage memory reference operations of the corresponding channel and determine timing requirements of the corresponding channel.
예시적인 실시 예에서, 버퍼 다이(510)는 외부의 호스트 장치로부터 신호들을 수신하기 위한 복수의 핀들을 포함할 수 있다. 버퍼 다이(510)는 복수의 핀들을 통해 클럭(CK), 커맨드 및 어드레스 신호(CMD/ADD), 데이터 스트로브 신호(DQS), 및 데이터 신호(DQ)를 수신하고, 데이터 스트로브 신호(DQS) 및 데이터 신호(DQ)를 전송할 수 있다. 예를 들어, 버퍼 다이(510)는 채널 별로 클럭(CK)을 수신하기 위한 2개 핀들, 커맨드 및 어드레스 신호(CMD/ADD)를 수신하기 위한 14개 핀들, 데이터 스트로브 신호(DQS)를 수신하기 위한 8개 핀들, 데이터 스트로브 신호(DQS)를 전송하기 위한 8개 핀들, 및 데이터 신호(DQ)를 송수신하기 위한 128개 핀들을 포함할 수 있다.In an example embodiment, the buffer die 510 may include a plurality of pins for receiving signals from an external host device. The buffer die 510 receives a clock (CK), command and address signals (CMD/ADD), data strobe signal (DQS), and data signal (DQ) through a plurality of pins, and receives the data strobe signal (DQS) and A data signal (DQ) can be transmitted. For example, the buffer die 510 has 2 pins for receiving a clock (CK) for each channel, 14 pins for receiving command and address signals (CMD/ADD), and a data strobe signal (DQS). It may include 8 pins for transmitting a data strobe signal (DQS), and 128 pins for transmitting and receiving a data signal (DQ).
도 19는 본 개시의 실시 예에 따른 반도체 패키지를 도시한다. 도 19를 참조하면, 반도체 패키지(1000)는 적층형 메모리 장치(1100), 시스템 온 칩(1200), 인터포저(1300), 및 패키지 기판(1400)을 포함할 수 있다. 적층형 메모리 장치(1100)는 버퍼 다이(1110) 및 코어 다이들(1120~1150)을 포함할 수 있다. 버퍼 다이(1110)는 도 18의 버퍼 다이(510)에 대응할 수 있고, 코어 다이들(1120~1150) 각각은 도 18의 코어 다이들(520~550) 각각에 대응할 수 있다.Figure 19 shows a semiconductor package according to an embodiment of the present disclosure. Referring to FIG. 19 , the
코어 다이들(1120~1150) 각각은 메모리 셀 어레이를 포함할 수 있다. 버퍼 다이(1110)는 물리 계층(1111) 및 직접 접근 영역(DAB, 1112)을 포함할 수 있다. 물리 계층(1111)은 시스템 온 칩(1200)의 물리 계층(1210)과 인터포저(1300)를 통해 전기적으로 연결될 수 있다. 적층형 메모리 장치(1100)는 물리 계층(1111)을 통해 시스템 온 칩(1200)으로부터 신호들을 수신하거나, 또는 시스템 온 칩(1200)으로 신호들을 전송할 수 있다. Each of the core dies 1120 to 1150 may include a memory cell array. The buffer die 1110 may include a
직접 접근 영역(1112)은 시스템 온 칩(1200)을 통하지 않고 적층형 메모리 장치(1100)를 테스트할 수 있는 접근 경로를 제공할 수 있다. 직접 접근 영역(1112)은 외부의 테스트 장치와 직접 통신할 수 있는 도전 수단(예를 들어, 포트 또는 핀)을 포함할 수 있다. 직접 접근 영역(1112)을 통해 수신된 테스트 신호 및 데이터는 TSV들을 통해 코어 다이들(1120~1150)로 전송될 수 있다. 코어 다이들(1120~1150)의 테스트를 위해 코어 다이들(1120~1150)로부터 읽혀진 데이터는 TSV들 및 직접 접근 영역(1112)을 통해 테스트 장치로 전송될 수 있다. 이에 따라, 코어 다이들(1120~1150)에 대한 직접 접근 테스트가 수행될 수 있다.The
버퍼 다이(1110)와 코어 다이들(1120~1150)은 TSV들(1101) 및 범프들(1102)을 통해 서로 전기적으로 연결될 수 있다. 버퍼 다이(1110)는 시스템 온 칩(1200)으로부터 채널 별로 할당된 범프들(1102)을 통해 각각의 채널로 제공되는 신호들을 수신할 수 있다. 예를 들어, 범프들(1102)은 마이크로 범프들일 수 있다.The buffer die 1110 and the core dies 1120 to 1150 may be electrically connected to each other through
시스템 온 칩(1200)은 적층형 메모리 장치(1100)를 이용하여 반도체 패키지(1000)가 지원하는 어플리케이션들을 실행할 수 있다. 예를 들어, 시스템 온 칩(1200)은 CPU(Central Processing Unit), AP(Application Processor), GPU(Graphic Processing Unit), NPU(Neural Processing Unit), TPU(Tensor Processing Unit), VPU(Vision Processing Unit), ISP(Image Signal Processor) 및 DSP(Digital Signal Processor) 중 적어도 하나의 프로세서를 포함하여 특화된 연산들을 실행할 수 있다.The system-on-
시스템 온 칩(1200)은 물리 계층(1210) 및 메모리 컨트롤러(1220)를 포함할 수 있다. 물리 계층(1210)은 적층형 메모리 장치(1100)의 물리 계층(1111)과 신호들을 송수신하기 위한 입출력 회로들을 포함할 수 있다. 시스템 온 칩(1200)은 물리 계층(1210)을 통해 물리 계층(1111)으로 다양한 신호들을 제공할 수 있다. 물리 계층(1111)으로 제공된 신호들은 물리 계층(1111)의 인터페이스 회로들 및 TSV들(1101)을 통해 코어 다이들(1120~1150)로 전달될 수 있다.System-on-
메모리 컨트롤러(1220)는 적층형 메모리 장치(1100)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(1220)는 물리 계층(1210)을 통해 적층형 메모리 장치(1100)를 제어하기 위한 신호들을 적층형 메모리 장치(1100)로 전송할 수 있다. 메모리 컨트롤러(1220)는 도 1의 메모리 컨트롤러(130)에 대응할 수 있다.The
인터포저(1300)는 적층형 메모리 장치(1100)와 시스템 온 칩(1200)을 연결할 수 있다. 인터포저(1300)는 적층형 메모리 장치(1100)의 물리 계층(1111)과 시스템 온 칩(1200)의 물리 계층(1210) 사이를 연결하고, 도전성 물질들을 이용하여 형성되는 물리적 경로들을 제공할 수 있다. 이에 따라, 적층형 메모리 장치(1100) 및 시스템 온 칩(1200)은 인터포저(1300) 상에 적층되어 서로 신호들을 송수신할 수 있다.The
패키지 기판(1400) 상부에는 범프들(1103)이 부착되고, 하부에는 솔더볼(1104)이 부착될 수 있다. 예를 들어, 범프들(1103)은 플립-칩 범프들일 수 있다. 인터포저(1300)는 범프들(1103)을 통해 패키지 기판(1400) 상에 적층될 수 있다. 반도체 패키지(1000)는 솔더볼(1104)을 통해 외부의 다른 패키지 또는 반도체 장치들과 신호들을 송수신할 수 있다. 예를 들어, 패키지 기판(1400)은 인쇄 회로 기판(Printed Circuit Board; PCB)일 수 있다.
도 20은 본 개시의 실시 예에 따른 반도체 패키지를 도시한다. 도 20을 참조하면, 반도체 패키지(2000)는 복수의 적층형 메모리 장치들(2100) 및 시스템 온 칩(2200)을 포함할 수 있다. 적층형 메모리 장치들(2100)과 시스템 온 칩(2200)은 인터포저(2300) 상에 적층되고, 인터포저(2300)는 패키지 기판(2400) 상에 적층될 수 있다. 반도체 패키지(2000)는 패키지 기판(2400) 하부에 부착된 솔더볼(2001)을 통해 외부의 다른 패키지 또는 반도체 장치들과 신호들을 송수신할 수 있다.Figure 20 shows a semiconductor package according to an embodiment of the present disclosure. Referring to FIG. 20 , a
적층형 메모리 장치들(2100) 각각은 HBM 표준을 기반으로 구현될 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 적층형 메모리 장치들(2100) 각각은 GDDR, HMC, 또는 Wide I/O 표준을 기반으로 구현될 수 있다. 적층형 메모리 장치들(2100) 각각은 도 18 및 도 19의 적층형 메모리 장치(300, 1100)에 대응할 수 있다.Each of the stacked
시스템 온 칩(2200)은 CPU, AP, GPU, NPU 등의 적어도 하나의 프로세서 및 복수의 적층형 메모리 장치들(2100)을 제어하기 위한 복수의 메모리 컨트롤러들을 포함할 수 있다. 시스템 온 칩(2200)은 메모리 컨트롤러를 통해 대응하는 적층형 메모리 장치와 신호들을 송수신할 수 있다. 시스템 온 칩(2200)은 도 19의 시스템 온 칩(1200)에 대응할 수 있다.The system-on-
도 21은 본 개시의 실시 예에 따른 반도체 패키지를 도시한다. 도 21을 참조하면, 반도체 패키지(3000)는 적층형 메모리 장치(3100), 호스트 다이(3200), 및 패키지 기판(3300)을 포함할 수 있다. 적층형 메모리 장치(3100)는 버퍼 다이(3110) 및 코어 다이들(3120~3150)을 포함할 수 있다. 버퍼 다이(3110)는 호스트 다이(3200)와 통신하기 위한 물리 계층(3111)을 포함하고, 코어 다이들(3120~3150) 각각은 메모리 셀 어레이를 포함할 수 있다. 적층형 메모리 장치(3100)는 도 18의 적층형 메모리 장치(300)에 대응할 수 있다.Figure 21 shows a semiconductor package according to an embodiment of the present disclosure. Referring to FIG. 21 , the
호스트 다이(3200)는 적층형 메모리 장치(3100)와 통신하기 위한 물리 계층(3210) 및 적층형 메모리 장치(3100)의 전반적인 동작을 제어하기 위한 메모리 컨트롤러(3220)를 포함할 수 있다. 또한, 호스트 다이(3200)는 반도체 패키지(3000)의 전반적인 동작을 제어하고, 반도체 패키지(3000)가 지원하는 어플리케이션을 실행하기 위한 프로세서를 포함할 수 있다. 예를 들어, 호스트 다이(3200)는 CPU, AP, GPU, NPU 등의 적어도 하나의 프로세서를 포함할 수 있다.The host die 3200 may include a
적층형 메모리 장치(3100)는 TSV들(3001)을 기반으로 호스트 다이(3200) 상에 배치되어, 호스트 다이(3200) 상에 수직으로 적층될 수 있다. 이에 따라, 버퍼 다이(3110), 코어 다이들(3120~3150), 및 호스트 다이(3200)는 인터포저 없이 TSV들(3001)과 범프들(3002)을 통해 서로 전기적으로 연결될 수 있다. 예를 들어, 범프들(3002)은 마이크로 범프들일 수 있다.The
패키지 기판(3300) 상부에는 범프들(3003)이 부착되고, 하부에는 솔더볼(3004)이 부착될 수 있다. 예를 들어, 범프들(3003)은 플립-칩 범프들일 수 있다. 호스트 다이(3200)는 범프들(3003)을 통해 패키지 기판(3300) 상에 적층될 수 있다. 반도체 패키지(3000)는 솔더볼(3004)을 통해 외부의 다른 패키지 또는 반도체 장치들과 신호를 송수신할 수 있다.
다른 실시 예에 있어서, 적층형 메모리 장치(3100)는 버퍼 다이(3110) 없이 코어 다이들(3120~3150)만으로 구현될 수 있다. 이 경우, 코어 다이들(3120~3250) 각각은 호스트 다이(3200)와 통신하기 위한 인터페이스 회로들을 포함할 수 있다. 코어 다이들(3120~3250) 각각은 TSV들(3001)을 통해 호스트 다이(3200)와 신호들을 송수신할 수 있다.In another embodiment, the
도 22는 본 개시의 실시 예에 따른 메모리 장치가 적용된 시스템을 도시한다. Figure 22 shows a system to which a memory device according to an embodiment of the present disclosure is applied.
시스템(4000)은 메인 프로세서(main processor)(4100), 메모리(4200a, 4200b) 및 스토리지 장치(4300a, 4300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(4410), 사용자 입력 장치(user input device)(4420), 센서(4430), 통신 장치(4440), 디스플레이(4450), 스피커(4460), 전력 공급 장치(power supplying device)(4470) 및 연결 인터페이스(connecting interface)(4480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(4100)는 시스템(4000)의 전반적인 동작, 보다 구체적으로는 시스템(4000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(4100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The
메인 프로세서(4100)는 하나 이상의 CPU 코어(4110)를 포함할 수 있으며, 메모리(4200a, 4200b) 및/또는 스토리지 장치(4300a, 4300b)를 제어하기 위한 컨트롤러(4120)를 더 포함할 수 있다. 실시 예에 따라서는, 메인 프로세서(4100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(4130)를 더 포함할 수 있다. 이와 같은 가속기(4130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(4100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The
메모리(4200a, 4200b)는 시스템(4000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있다. 이 경우, 메모리(4200a, 4200b)는 도 1 내지 도 17을 통하여 설명된 메모리 장치를 포함할 수 있다. 그러나, 이에 한정되지 않으며, 메모리(4200a, 4200b)는 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(4200a, 4200b)는 메인 프로세서(4100)와 동일한 패키지 내에 구현되는 것도 가능하다.The
스토리지 장치(4300a, 4300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(4200a, 4200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(4300a, 4300b)는 스토리지 컨트롤러(4310a, 4310b)와, 스토리지 컨트롤러(4310a, 4310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(4320a, 4320b)를 포함할 수 있다. 비휘발성 메모리(4320a, 4320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. The
스토리지 장치(4300a, 4300b)는 메인 프로세서(4100)와는 물리적으로 분리된 상태로 시스템(4000)에 포함될 수도 있고, 메인 프로세서(4100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(4300a, 4300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(4480)와 같은 인터페이스를 통해 시스템(4000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(4300a, 4300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.The
촬영 장치(4410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다. The photographing
사용자 입력 장치(4420)는 시스템(4000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keypad), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.The
센서(4430)는 시스템(4000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(4430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다. The
통신 장치(4440)는 다양한 통신 규약에 따라 시스템(4000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(4440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The
디스플레이(4450) 및 스피커(4460)는 시스템(4000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The
전력 공급 장치(4470)는 시스템(4000)에 내장된 배터리(미도시) 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(4000)의 각 구성 요소들에게 공급할 수 있다.The
연결 인터페이스(4480)는 시스템(4000)과, 시스템(4000)에 연결되어 시스템(4000)과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(4480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.The
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above-described details are specific embodiments for carrying out the present invention. The present invention will include not only the above-described embodiments, but also embodiments that can be simply changed or easily changed in design. In addition, the present invention will also include technologies that can be easily modified and implemented using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the claims and equivalents of the present invention as well as the claims described later.
10: 전자 장치
100: SoC
200: 메모리 장치10: Electronic device
100: SoC
200: memory device
Claims (20)
상기 쓰기 클럭에 기반하여 상기 데이터 신호를 수신하고, 상기 쓰기 클럭과 다른 주파수를 갖는 데이터 스트로브 신호와 읽기 데이터 신호를 출력하는 메모리 장치를 포함하되,
상기 메모리 장치는, 상기 쓰기 클럭의 경로와 상기 읽기 데이터 신호의 경로의 차이를 모사하도록 구성된 제 1 인터벌 오실레이터, 상기 쓰기 클럭의 경로와 상기 쓰기 데이터 신호의 경로의 차이를 모사하도록 구성된 제 2 인터벌 오실레이터를 포함하고,
상기 시스템 온 칩은, 상기 쓰기 클럭의 경로와 상기 읽기 데이터 신호의 경로의 차이에 따른 제 1 지연 시간을 획득하고, 상기 쓰기 클럭의 경로와 상기 쓰기 데이터 신호의 경로의 차이에 따른 제 2 지연 시간을 획득하고,
상기 메모리 장치는, 상기 제 1 인터벌 오실레이터가 동작하는 동안 제 1 카운트 값을 획득하고, 상기 제 2 인터벌 오실레이터가 동작하는 동안 제 2 카운트 값을 획득하고, 상기 메모리 장치의 온도가 속하는 구간에 따라 상기 제 1 카운트 값을 보정하여 제 3 카운트 값을 획득하고, 상기 온도가 속하는 구간에 따라 상기 제 2 카운트 값을 보정하여 제 4 카운트 값을 획득하는 전자 장치.A system-on-chip that outputs write clock and write data signals; and
A memory device that receives the data signal based on the write clock and outputs a data strobe signal and a read data signal having a different frequency from the write clock,
The memory device includes a first interval oscillator configured to simulate the difference between the path of the write clock and the path of the read data signal, and a second interval oscillator configured to simulate the difference between the path of the write clock and the path of the write data signal. Including,
The system-on-chip obtains a first delay time according to the difference between the path of the write clock and the path of the read data signal, and a second delay time according to the difference between the path of the write clock and the path of the write data signal. obtain,
The memory device acquires a first count value while the first interval oscillator operates, acquires a second count value while the second interval oscillator operates, and determines the temperature of the memory device according to the section to which it belongs. An electronic device that obtains a third count value by correcting the first count value, and obtains a fourth count value by correcting the second count value according to the section to which the temperature belongs.
상기 시스템 온 칩은, 상기 메모리 장치의 초기화 시, 상기 제 1 지연 시간에 기반하여 상기 쓰기 클럭의 지연을 조정하거나, 상기 제 2 지연 시간에 기반하여 상기 쓰기 데이터 신호의 지연을 조정하는 제 1 트레이닝을 실행하고,
상기 시스템 온 칩은, 상기 메모리 장치의 동작 시, 상기 제 3 카운트 값에 대응하는 제 3 지연 시간에 기반하여 상기 쓰기 클럭의 지연을 조정하거나, 상기 제 4 카운트 값에 대응하는 제 4 지연 시간에 기반하여 상기 쓰기 데이터 신호의 지연을 조정하는 제 2 트레이닝을 실행하는 전자 장치.According to claim 1,
The system-on-chip performs a first training function that adjusts the delay of the write clock based on the first delay time or adjusts the delay of the write data signal based on the second delay time when initializing the memory device. and run
When operating the memory device, the system on chip adjusts the delay of the write clock based on the third delay time corresponding to the third count value or adjusts the delay of the write clock based on the fourth delay time corresponding to the fourth count value. An electronic device that performs second training to adjust a delay of the write data signal based on the second training.
상기 메모리 장치는 상기 시스템 온 칩으로부터 수신된 FIFO(First In First Out) 읽기 커맨드에 응답하여 상기 제 1 지연 시간을 획득하고, 상기 시스템 온 칩으로부터 획득된 FIFO 쓰기 커맨드에 응답하여 상기 제 2 지연 시간을 획득하는 전자 장치.According to claim 1,
The memory device obtains the first delay time in response to a First In First Out (FIFO) read command received from the system-on-chip, and obtains the second delay time in response to a FIFO write command received from the system-on-chip. Electronic devices that acquire .
상기 메모리 장치는 상기 시스템 온 칩으로부터 수신된 인터벌 오실레이터 시작 커맨드와 인터벌 오실레이터 중지 커맨드 사이의 구간에서 상기 제 1 카운트 값 또는 상기 제 2 카운트 값을 획득하는 전자 장치.According to claim 1,
The memory device is an electronic device that obtains the first count value or the second count value in a section between an interval oscillator start command and an interval oscillator stop command received from the system on chip.
상기 메모리 장치는:
상기 제 1 카운트 값을 출력하는 제 1 카운터;
상기 제 2 카운트 값을 출력하는 제 2 카운터;
상기 메모리 장치의 상기 온도에 관한 정보를 획득하는 온도 센서;
상기 온도에 관한 정보에 기반하여 상기 제 1 카운트 값을 보정하여 상기 제 3 카운트 값을 획득하고, 상기 온도에 관한 정보에 기반하여 상기 제 2 카운트 값을 보정하여 상기 제 4 카운트 값을 획득하는 제어 로직 회로; 그리고
상기 제 3 카운트 값 및 상기 제 4 카운트 값을 저장하는 모드 레지스터를 포함하는 전자 장치.According to claim 1,
The memory device is:
a first counter outputting the first count value;
a second counter outputting the second count value;
a temperature sensor that obtains information about the temperature of the memory device;
Control to obtain the third count value by correcting the first count value based on the information about the temperature and to obtain the fourth count value by correcting the second count value based on the information about the temperature logic circuit; and
An electronic device including a mode register storing the third count value and the fourth count value.
상기 메모리 장치는 상기 시스템 온 칩으로부터 수신된 모드 레지스터 읽기 커맨드에 응답하여 상기 제 3 카운트 값 및 상기 제 4 카운트 값을 출력하는 전자 장치.According to claim 5,
The memory device is an electronic device that outputs the third count value and the fourth count value in response to a mode register read command received from the system on chip.
상기 SoC는:
상기 읽기 데이터 스트로브 신호를 수신하는 읽기 데이터 스트로브 신호 수신기;
상기 제 1 카운트 값에 기반하여 상기 읽기 데이터 스트로브 신호 수신기로부터 출력된 상기 읽기 데이터 스트로브 신호의 지연을 제어하는 제 1 지연 회로;
상기 제 2 카운트 값에 기반하여 상기 쓰기 데이터 신호의 지연을 제어하는 제 2 지연 회로; 그리고
상기 제 2 지연 회로로부터 출력된 상기 쓰기 데이터 신호를 송신하는 데이터 송신기를 포함하는 전자 장치.According to claim 5,
The SoC is:
a read data strobe signal receiver that receives the read data strobe signal;
a first delay circuit that controls a delay of the read data strobe signal output from the read data strobe signal receiver based on the first count value;
a second delay circuit controlling a delay of the write data signal based on the second count value; and
An electronic device comprising a data transmitter that transmits the write data signal output from the second delay circuit.
상기 제 1 인터벌 오실레이터는 제 1 복수의 인버터들을 포함하고, 상기 제 2 인터벌 오실레이터는 제 2 복수의 인버터들을 포함하고,
상기 제 1 복수의 인버터들의 개수와 상기 제 2 복수의 인버터들의 개수는 서로 다른 전자 장치.According to claim 1,
The first interval oscillator includes a first plurality of inverters, and the second interval oscillator includes a second plurality of inverters,
An electronic device in which the number of the first plurality of inverters and the number of the second plurality of inverters are different from each other.
상기 제 2 트레이닝의 수행 시, 제 3 지연 시간에 기반하여 상기 쓰기 클럭의 지연을 조정하는 것과, 제 4 지연 시간에 기반하여 상기 쓰기 데이터 신호의 지연을 조정하는 것은 서로 다른 시간이 실행되는 전자 장치.According to claim 2,
When performing the second training, adjusting the delay of the write clock based on the third delay time and adjusting the delay of the write data signal based on the fourth delay time are performed at different times. .
상기 시스템 온 칩과 상기 메모리 장치는 LPDDR(Low Power Double Data Rate) 표준에 기반하여 동작하는 전자 장치.According to claim 1,
The system-on-chip and the memory device are electronic devices that operate based on the LPDDR (Low Power Double Data Rate) standard.
상기 메모리 컨트롤러로부터 수신된 클럭, 그리고 커맨드 및 어드레스 신호에 기반하여 FIFO(First In First Out) 읽기 커맨드, FIFO 쓰기 커맨드, 인터벌 오실레이터 시작 커맨드 및 인터벌 오실레이터 중지 커맨드를 획득하는 커맨드 및 어드레스 수신기;
상기 FIFO 읽기 커맨드에 기반하는 읽기 데이터 또는 상기 FIFO 쓰기 커맨드에 기반하는 쓰기 데이터가 저장되는 버퍼;
상기 인터벌 오실레이터 시작 커맨드의 수신과 인터벌 오실레이터 중지 커맨드의 수신 사이에서 동작하는 인터벌 오실레이터;
상기 인터벌 오실레이터가 동작하는 동안 카운팅을 수행하는 카운터;
상기 인터벌 오실레이터의 동작 중지 시 상기 카운터로부터 카운트 값을 획득하고, 상기 메모리 장치의 온도에 관한 정보를 참조하여 상기 카운트 값을 보정하는 제어 로직 회로; 그리고
상기 보정된 카운트 값을 저장하는 모드 레지스터를 포함하는 메모리 장치.For a memory device communicating with a memory controller:
a command and address receiver that obtains a First In First Out (FIFO) read command, a FIFO write command, an interval oscillator start command, and an interval oscillator stop command based on the clock received from the memory controller and the command and address signals;
a buffer in which read data based on the FIFO read command or write data based on the FIFO write command are stored;
an interval oscillator operating between reception of the interval oscillator start command and reception of the interval oscillator stop command;
a counter that performs counting while the interval oscillator operates;
a control logic circuit that obtains a count value from the counter when the interval oscillator stops operating and corrects the count value by referring to information about the temperature of the memory device; and
A memory device including a mode register for storing the corrected count value.
상기 컨트롤러로부터 클럭 신호를 수신하는 클럭 버퍼;
상기 클럭 버퍼에 기반하여 읽기 데이터 스트로브 신호를 출력하는 데이터 스트로브 신호 송신기; 그리고
상기 메모리 컨트롤러로부터 쓰기 데이터 신호를 수신하거나 상기 메모리 컨트롤러로 읽기 데이터 신호를 송신하는 데이터 송수신기를 더 포함하는 메모리 장치.According to claim 11,
a clock buffer that receives a clock signal from the controller;
a data strobe signal transmitter that outputs a read data strobe signal based on the clock buffer; and
A memory device further comprising a data transceiver that receives a write data signal from the memory controller or transmits a read data signal to the memory controller.
상기 제어 로직 회로는 상기 인터벌 오실레이터 시작 커맨드에 응답하여 상기 인터벌 오실레이터와 상기 카운터를 인에이블 시키고,
상기 제어 로직 회로는 상기 인터벌 오실레이터 중지 커맨드에 응답하여 상기 인터벌 오실레이터와 상기 카운터를 디스에이블 시키는 메모리 장치.According to claim 11,
The control logic circuit enables the interval oscillator and the counter in response to the interval oscillator start command,
The control logic circuit is a memory device that disables the interval oscillator and the counter in response to the interval oscillator stop command.
상기 인터벌 오실레이터는 직렬로 연결된 복수의 인버터들을 포함하고,
상기 카운터는 상기 복수의 인버터들 중 어느 하나의 출력 신호를 카운팅 하는 메모리 장치.According to claim 11,
The interval oscillator includes a plurality of inverters connected in series,
The counter is a memory device that counts the output signal of any one of the plurality of inverters.
상기 메모리 컨트롤러와 상기 메모리 장치는 LPDDR(Low Power Double Data Rate) 표준 또는 DDR(Double Data Rate) 표준에 기반하여 동작하는 메모리 장치.According to claim 11,
The memory controller and the memory device operate based on the Low Power Double Data Rate (LPDDR) standard or the Double Data Rate (DDR) standard.
상기 메모리 장치의 FIFO(First In First Out)에 대한 데이터의 입력 또는 출력에 기반하여 데이터 스트로브 신호 또는 데이터 신호를 정렬하는 제 1 트레이닝을 실행하는 단계;
상기 메모리 장치가 오실레이터 시작 커맨드를 수신하는 단계;
상기 오실레이터 시작 커맨드에 응답하여 상기 메모리 장치의 인터벌 오실레이터를 동작시키는 단계;
상기 메모리 장치의 카운터가 상기 인터벌 오실레이터가 동작하는 동안 카운팅을 수행하는 단계;
상기 메모리 장치가 오실레이터 중지 커맨드를 수신하는 단계;
상기 오실레이터 중지 커맨드에 따라 상기 인터벌 오실레이터의 동작이 중지될 때 상기 카운터로부터 카운트 값을 획득하는 단계; 그리고
상기 메모리 장치의 온도가 속하는 구간에 따라 상기 카운트 값을 보정하는 단계를 포함하는 방법.In a method of operating an electronic device including a memory controller and a memory device:
performing first training to align a data strobe signal or data signal based on input or output of data to a First In First Out (FIFO) of the memory device;
receiving, by the memory device, an oscillator start command;
operating an interval oscillator of the memory device in response to the oscillator start command;
performing counting by a counter of the memory device while the interval oscillator operates;
receiving, by the memory device, an oscillator stop command;
Obtaining a count value from the counter when operation of the interval oscillator is stopped according to the oscillator stop command; and
A method comprising correcting the count value according to a section to which the temperature of the memory device belongs.
상기 메모리 장치가 모드 레지스터 읽기 커맨드에 응답하여 상기 보정된 카운트 값을 출력하는 단계; 그리고
상기 메모리 컨트롤러가 상기 보정된 카운트 값에 기반하여 상기 데이터 스트로브 신호 또는 상기 데이터 신호를 정렬하는 제 2 트레이닝을 실행하는 단계를 더 포함하는 방법.According to claim 16,
outputting, by the memory device, the corrected count value in response to a mode register read command; and
The method further comprising the step of the memory controller performing second training to align the data strobe signal or the data signal based on the corrected count value.
상기 제 1 트레이닝을 실행하는 단계는:
상기 메모리 장치가 클럭, 그리고 커맨드 및 어드레스 신호에 기반하여 FIFO 읽기 커맨드 및 FIFO 쓰기 커맨드를 획득하는 단계;
상기 FIFO 읽기 커맨드에 응답하는 읽기 동작에 기반하여 제 1 지연 시간을 획득하는 단계; 그리고
상기 FIFO 쓰기 커맨드에 응답하는 쓰기 동작에 기반하여 제 2 지연 시간을 획득하는 단계를 포함하는 방법.According to claim 16,
The steps for executing the first training are:
obtaining, by the memory device, a FIFO read command and a FIFO write command based on a clock and command and address signals;
Obtaining a first delay time based on a read operation in response to the FIFO read command; and
Obtaining a second delay time based on a write operation responsive to the FIFO write command.
상기 제 1 트레이닝을 수행하기 전에,
상기 클럭에 의해 상기 커맨드 및 어드레스 신호가 래치 되도록 커맨드 및 어드레스 트레이닝을 실행하는 단계;
쓰기 데이터 신호를 수신하기 위한 쓰기 클럭과 상기 클럭을 정렬하기 위한 쓰기 클럭-클럭 정렬 트레이닝을 실행하는 단계;
상기 쓰기 클럭의 듀티 사이클 트레이닝을 실행하는 단계; 그리고
읽기 데이터 신호를 출력하기 위한 읽기 데이터 스트로브 신호와 상기 읽기 데이터 신호를 정렬하거나, 상기 읽기 데이터 스트로브 신호와 상기 쓰기 데이터 신호를 정렬하기 위한 리드 게이트 트레이닝을 실행하는 단계를 더 포함하는 방법.According to claim 18,
Before performing the first training,
executing command and address training so that the command and address signals are latched by the clock;
Executing write clock-clock alignment training to align the clock with a write clock for receiving a write data signal;
performing duty cycle training of the write clock; and
The method further includes aligning a read data strobe signal and the read data signal to output a read data signal, or performing read gate training to align the read data strobe signal and the write data signal.
상기 메모리 컨트롤러와 상기 메모리 장치는 LPDDR(Low Power Double Data Rate) 표준 또는 DDR(Double Data Rate) 표준에 기반하여 동작하는 방법.According to claim 16,
A method in which the memory controller and the memory device operate based on the Low Power Double Data Rate (LPDDR) standard or the Double Data Rate (DDR) standard.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/338,502 US20240079049A1 (en) | 2022-09-06 | 2023-06-21 | Memory device and memory controller configured to perform re-training based on temperature information and electronic device including the same |
CN202311051153.4A CN117672282A (en) | 2022-09-06 | 2023-08-21 | Electronic device, operation method thereof and memory device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220113079 | 2022-09-06 | ||
KR1020220113079 | 2022-09-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240034087A true KR20240034087A (en) | 2024-03-13 |
Family
ID=90299206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220174116A KR20240034087A (en) | 2022-09-06 | 2022-12-13 | Memory device and memory controller configured to perform re-training referring temperature and electronic device including the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240034087A (en) |
-
2022
- 2022-12-13 KR KR1020220174116A patent/KR20240034087A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230236970A1 (en) | Memory module with local synchronization and method of operation | |
US10186309B2 (en) | Methods of operating semiconductor memory devices and semiconductor memory devices | |
KR100564635B1 (en) | Memory system for controlling interface timing in memory module and method thereof | |
US10621121B2 (en) | Measurement and optimization of command signal timing margins | |
US9851744B2 (en) | Address and control signal training | |
US9754650B2 (en) | Memory device and system supporting command bus training, and operating method thereof | |
EP3835963B1 (en) | Techniques for command bus training to a memory device | |
US8856579B2 (en) | Memory interface having extended strobe burst for read timing calibration | |
US11769547B2 (en) | Memory device transmitting and receiving data at high speed and low power | |
US10559550B2 (en) | Memory device including heterogeneous volatile memory chips and electronic device including the same | |
US10283186B2 (en) | Data alignment circuit of a semiconductor memory device, a semiconductor memory device and a method of aligning data in a semiconductor memory device | |
KR20210136480A (en) | Booting method of computing system including memory module mounted processing unit | |
US20230305706A1 (en) | Memory device, operation method of a memory device, and operation method of a memory controller | |
US20220393682A1 (en) | Unidirectional command bus phase drift compensation | |
US11574661B1 (en) | Shared command shifter systems and methods | |
KR20240034087A (en) | Memory device and memory controller configured to perform re-training referring temperature and electronic device including the same | |
US20240079049A1 (en) | Memory device and memory controller configured to perform re-training based on temperature information and electronic device including the same | |
CN117672282A (en) | Electronic device, operation method thereof and memory device | |
US8635487B2 (en) | Memory interface having extended strobe burst for write timing calibration | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
EP4250124A1 (en) | Memory device, operation method of a memory device, and operation method of a memory controller | |
US11955160B2 (en) | Asynchronous signal to command timing calibration for testing accuracy | |
US11461176B2 (en) | Memory device and memory system | |
KR20230138370A (en) | Memory device, operation method of memory device, and operation method of memory controller | |
CN116805867A (en) | Memory device, and method of operating memory controller |