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 PDF

Info

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
Application number
KR1020220174116A
Other languages
Korean (ko)
Inventor
박정민
고준영
박창휘
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/338,502 priority Critical patent/US20240079049A1/en
Priority to CN202311051153.4A priority patent/CN117672282A/en
Publication of KR20240034087A publication Critical patent/KR20240034087A/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators 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/03Astable circuits
    • H03K3/0315Ring 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

온도 정보를 참조하여 리트레이닝을 수행하는 메모리 장치 및 메모리 컨트롤러, 그리고 이들을 포함하는 전자 장치{MEMORY DEVICE AND MEMORY CONTROLLER CONFIGURED TO PERFORM RE-TRAINING REFERRING TEMPERATURE AND ELECTRONIC DEVICE INCLUDING THE SAME}A memory device and a memory controller that perform retraining with reference to temperature information, and an electronic device including them {MEMORY DEVICE AND MEMORY CONTROLLER CONFIGURED TO PERFORM RE-TRAINING REFERRING TEMPERATURE AND ELECTRONIC DEVICE INCLUDING THE SAME}

본 개시는 메모리 장치 및 메모리 컨트롤러, 그리고 이들을 포함하는 전자 장치에 관한 것으로, 좀 더 상세하게는, 메모리 장치의 온도 정보를 참조하여 리-트레이닝을 실행하는 것에 관한 것이다.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 electronic device 10 according to an embodiment of the present disclosure. The electronic device 10 may include a system on-chip (hereinafter referred to as SoC) 100 and a memory device 200. For example, the electronic device 10 may be a mobile device such as a smart phone, a desktop computer, a laptop computer, a workstation, a server, etc.

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 electronic device 10. The SoC 100 may execute a program according to an application supported by the electronic device 10, receive data related to program execution from the memory device 200, or transmit the results of program execution to the memory device 200. . SoC 100 may include various intellectual properties (IP). For example, SoC 100 may include a memory controller 130 and a DDR physical layer (double data rate physical layer; hereinafter referred to as DDR PHY) 140. Meanwhile, in the embodiment of FIG. 1, the memory controller 130 and the DDR PHY 140 are shown as separate components, but the DDR PHY may be understood as a part of the memory controller 130.

메모리 컨트롤러(130)는 DDR PHY(140)를 통해 메모리 장치(200)를 제어할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)를 접근하기 위한 신호들을 생성할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)에 저장될 데이터를 생성할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)로부터 읽혀진 데이터를 수신할 수 있다.The memory controller 130 may control the memory device 200 through the DDR PHY (140). The memory controller 130 may generate signals to access the memory device 200. The memory controller 130 may generate data to be stored in the memory device 200. The memory controller 130 may receive data read from the memory device 200.

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 memory device 200 under the control of the memory controller 130. The DDR PHY 140 may transmit a write clock (WCK) and a data signal (DQ) to the memory device 200 under the control of the memory controller 130. The write clock WCK may be a signal for transmitting (more specifically, sampling or latching) the data signal DQ to the memory device 200. The DDR PHY 140 may receive a read data strobe signal (RDQS) and a data signal (DQ) from the memory device 200. The read data strobe signal RDQS may be a signal for receiving the data signal DQ from the memory device 200. The memory device 200 may generate a read data strobe signal (RDQS) based on the write clock (WCK) received from the DDR PHY (140).

메모리 장치(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 memory device 200 may store data or provide the stored data to the SoC 100 according to a request from the SoC 100. The memory device 200 may communicate with the SoC 100 through the DDR PHY 140. For example, the memory device 200 may include dynamic random access memory (DRAM), static random access memory (SRAM), thyristor random access memory (TRAM), resistive random access memory (RRAM), ferroelectric random access memory (FRAM), It may be phase change random access memory (PRAM), magnetic random access memory (MRAM), etc. Hereinafter, the memory device 200 will be described as a DRAM device (i.e., a synchronous dynamic random access memory (SDRAM) device) that operates in synchronization with the clock CK output from the SoC 100. In particular, the memory device 200 may be a low power double data rate (LPDDR) SDRAM.

메모리 장치(200)는 SoC(100)로부터 클럭(CK), 그리고 커맨드 및 어드레스 신호(CMD/ADD)를 수신할 수 있다. 메모리 장치(200)는 클럭(CK)에 기반하여 커맨드 및 어드레스 신호(CMD/ADD)를 샘플링하여, 커맨드(CMD) 및 어드레스(ADD)를 획득할 수 있다. 메모리 장치(200)는 쓰기 클럭(WCK)을 이용하여 데이터 신호(DQ)를 수신할 수 있으며, 읽기 데이터 스트로브 신호(RDQS)를 이용하여 데이터 신호(DQ)를 출력할 수 있다.The memory device 200 may receive a clock (CK) and command and address signals (CMD/ADD) from the SoC 100. The memory device 200 may acquire the command (CMD) and address (ADD) by sampling the command and address signals (CMD/ADD) based on the clock (CK). The memory device 200 may receive the data signal DQ using the write clock WCK and output the data signal DQ using the read data strobe signal RDQS.

쓰기 클럭(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 SoC 100 can transmit a clock (CK) with a relatively low frequency to the memory device 200, and can transmit a write clock (WCK) with a relatively high frequency to the memory device 200 during data input and output. .

실시 예에 있어서, 전자 장치(10)의 초기화 시(즉, 부팅-온 시), SoC(100)는 메모리 장치(200)에 대하여 쓰기 동작 및 읽기 동작을 실행함으로써 트레이닝(이하 FIFO 트레이닝)을 실행할 수 있다. FIFO 트레이닝은 쓰기 데이터와 읽기 데이터의 실제 경로(path)를 이용하여 트레이닝을 수행하기 때문에 정확도가 높으나, 데이터의 입출력을 수반하기 때문에 효율적이지 않을 수 있다. In an embodiment, upon initialization (i.e., boot-on) of the electronic device 10, the SoC 100 performs training (hereinafter referred to as FIFO training) by executing a write operation and a read operation with respect to the memory device 200. You can. FIFO training has high accuracy because it performs training using the actual paths of write data and read data, but it may not be efficient because it involves input and output of data.

실시 예에 있어서, 전자 장치(10)가 초기화된 후 일반 동작(normal operation) 시, SoC(100)는 메모리 장치(200) 내부의 인터벌 오실레이터들(interval oscillators)(271, 272)를 이용하여 트레이닝(이하 인터벌 오실레이터 트레이닝)을 실행할 수 있다. 예를 들어, 인터벌 오실레이터 트레이닝은 주기적으로, 비주기적으로, 메모리 장치(200)의 온도 변화 시, 또는 메모리 장치(200)의 전압 변화 시 실행될 수 있다. In an embodiment, during normal operation after the electronic device 10 is initialized, the SoC 100 trains using the interval oscillators 271 and 272 inside the memory device 200. (hereinafter referred to as interval oscillator training) can be performed. For example, interval oscillator training may be performed periodically, aperiodically, when the temperature of the memory device 200 changes, or when the voltage of the memory device 200 changes.

실시 예에 있어서, 인터벌 오실레이터(271)는 쓰기 클럭(WCK)과 읽기 데이터 신호(이하, 읽기 DQ)의 경로 차이를 모사하도록 구현될 수 있으며, 인터벌 오실레이터(272)는 쓰기 클럭(WCK)과 쓰기 데이터 신호(이하, 쓰기 DQ)의 경로 차이를 모사하도록 구현될 수 있다. 예를 들어, 인터벌 오실레이터들(271, 272)은 SoC(100)로부터의 커맨드에 따라 특정 구간(예컨대, 런타임(runtime)) 동안 동작할 수 있으며, 런타임 동안 카운트 값들이 증가할 수 있다. 인터벌 오실레이터 트레이닝이 종료되는 시점에서의 최종 카운트 값들은, 조정되어야 할 읽기 데이터 스트로브 신호(RDQS)의 스큐 값 및/또는 조정되어야 할 데이터 신호(DQ)의 스큐 값에 대응할 수 있다. SoC(100)는 메모리 장치(200)로부터 수신된 카운트 값들에 기반하여 읽기 데이터 스트로브 신호(RDQS) 및/또는 데이터 신호(DQ)의 스큐를 보정할 수 있다. In an embodiment, the interval oscillator 271 may be implemented to simulate the path difference between the write clock (WCK) and the read data signal (hereinafter, read DQ), and the interval oscillator 272 may be implemented to simulate the path difference between the write clock (WCK) and the read data signal (hereinafter, read DQ). It can be implemented to simulate the path difference of the data signal (hereinafter referred to as write DQ). For example, the interval oscillators 271 and 272 may operate during a specific period (eg, runtime) according to a command from the SoC 100, and count values may increase during runtime. The final count values at the end of interval oscillator training may correspond to the skew value of the read data strobe signal RDQS to be adjusted and/or the skew value of the data signal DQ to be adjusted. The SoC 100 may correct skew of the read data strobe signal RDQS and/or the data signal DQ based on the count values received from the memory device 200.

한편, 인터벌 오실레이터 트레이닝은 인터벌 오실레이터들(271, 272)를 이용하여 간접적으로 트레이닝을 실행하기 때문에 효율적인 반면, FIFO 트레이닝에 비해 정확하지 않을 수 있다. 즉, FIFO 트레이닝을 통하여 측정된 지연과 인터벌 오실레이터 트레이닝을 통하여 측정된 지연 사이에는 오프셋(offset) 또는 오차가 존재할 수 있으며, 오프셋은 온도에 따라 변할 수 있다. 만일 오프셋이 보정되지 않은 인터벌 오실레이터 트레이닝의 결과(즉, 카운트 값)가 트레이닝에 활용된다면, 인터벌 오실레이터 트레이닝의 정확도가 감소하는 문제가 발생할 수 있다. 그러나, 본 개시의 전자 장치(10)는 카운트 값을 온도 센서(280)에 의해 획득된 온도가 속하는 구간에 따라 보정하고, 보정된 카운트 값을 이용하여 읽기 데이터 스트로브 신호(RDQS) 및/또는 데이터 신호(DQ)의 스큐를 보정한다. 따라서, 인터벌 오실레이터 트레이닝의 정확도가 증가할 수 있다.Meanwhile, interval oscillator training is efficient because training is performed indirectly using the interval oscillators 271 and 272, but may be less accurate than FIFO training. That is, there may be an offset or error between the delay measured through FIFO training and the delay measured through interval oscillator training, and the offset may change depending on temperature. If the results of interval oscillator training without offset correction (i.e., count values) are used for training, a problem may occur in which the accuracy of interval oscillator training is reduced. However, the electronic device 10 of the present disclosure corrects the count value according to the section to which the temperature obtained by the temperature sensor 280 belongs, and uses the corrected count value to generate a read data strobe signal (RDQS) and/or data. Correct the skew of the signal (DQ). Therefore, the accuracy of interval oscillator training can be increased.

도 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 electronic device 10 may perform initialization. For example, when the electronic device 10 is powered on, the SoC 100 and the memory device 200 may perform initialization according to a predetermined method. During initialization, the SoC 100 may provide a power supply voltage to the memory device 200, perform various initial setup operations, and read or set necessary information from the memory device 200.

S12 단계에서, 전자 장치(10)는 커맨드/어드레스 트레이닝 동작을 수행할 수 있다. 예를 들어, SoC(100) 및 메모리 장치(200)는 클럭(CK)에 의해 원하는 타이밍에 커맨드(CMD) 및 어드레스(ADD)가 래치될 수 있도록 커맨드/어드레스 트레이닝 동작을 수행할 수 있다. In step S12, the electronic device 10 may perform a command/address training operation. For example, the SoC 100 and the memory device 200 may perform a command/address training operation so that the command (CMD) and address (ADD) can be latched at a desired timing by the clock (CK).

S13 단계에서, 전자 장치(10)는 WCK2CK 정렬 트레이닝 (WCK2CK Alignment Training) 동작을 실행할 수 있다. 예를 들어, 메모리 장치(200)는 SoC(100)로부터 클럭(CK)과 쓰기 클럭(WCK)을 수신하고, 클럭(CK)과 쓰기 클럭(WCK)이 정렬되도록 쓰기 클럭(WCK)의 송신 타이밍을 조정할 수 있다. 예를 들어, 쓰기 클럭(WCK)의 주파수는 클럭(CK)의 N배(단, N은 자연수)일 수 있다.In step S13, the electronic device 10 may perform a WCK2CK Alignment Training operation. For example, the memory device 200 receives a clock (CK) and a write clock (WCK) from the SoC 100, and transmits the write clock (WCK) so that the clock (CK) and the write clock (WCK) are aligned. can be adjusted. For example, the frequency of the write clock (WCK) may be N times that of the clock (CK) (where N is a natural number).

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 electronic device 10 may perform a write clock (WCK) duty cycle training operation. for example, Write clock (WCK) duty cycle training may be performed by a duty cycle corrector (DCC) and/or duty cycle adjuster (DCA) of the DDR PHY 140. For example, the DDR PHY 140 may delay the read data strobe signal RDQS received from the memory device 200 using a gate logic-like configuration.

S15 단계에서, 전자 장치(10)는 리드 게이트 트레이닝(read gate training) 동작을 실행할 수 있다. 예를 들어, 메모리 컨트롤러(130)는 읽기 DQ와 읽기 데이터 스트로브 신호(RDQS)를 언제 관찰(observe)할지를 판별할 수 있으며, 메모리 장치(200)로부터 읽기 DQ와 읽기 데이터 스트로브 신호(RDQS)의 수신 타이밍을 제어할 수 있다. 이를 위해 SoC(100)는 읽기 데이터 스트로브 신호(RDQS)의 수신 타이밍을 제어하는 구성(예컨대, 논리 게이트, 지연 회로 등)을 포함할 수 있다.In step S15, the electronic device 10 may perform a read gate training operation. For example, the memory controller 130 can determine when to observe the read DQ and read data strobe signals (RDQS), and receive the read DQ and read data strobe signals (RDQS) from the memory device 200. Timing can be controlled. To this end, the SoC 100 may include components (eg, logic gates, delay circuits, etc.) that control the reception timing of the read data strobe signal RDQS.

S16 단계에서, 전자 장치(10)는 제 1 트레이닝(즉, FIFO 트레이닝)을 실행할 수 있다. 예를 들어, 메모리 장치(200)의 설계(구조), 및/또는 메모리 컨트롤러(130), DDR PHY(140) 및 메모리 장치(200)를 포함하는 패키지의 설계(구조)로 인하여, 데이터 신호(DQ)의 지연은 쓰기 클럭(WCK)의 지연보다 짧을 수 있다. FIFO 트레이닝은 쓰기 클럭(WCK)과 데이터 신호(DQ)의 경로 차이에 따른 지연을 보정하기 위한 것일 수 있다. FIFO 트레이닝은 읽기 FIFO 트레이닝 및 쓰기 FIFO 트레이닝을 포함할 수 있다. In step S16, the electronic device 10 may perform first training (i.e., FIFO training). For example, due to the design (structure) of the memory device 200 and/or the design (structure) of the package including the memory controller 130, DDR PHY 140, and memory device 200, the data signal ( The delay of DQ) may be shorter than the delay of write clock (WCK). FIFO training may be intended to correct delays due to path differences between the write clock (WCK) and the data signal (DQ). FIFO training may include read FIFO training and write FIFO training.

실시 예에 있어서, 읽기 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 SoC 100 delays the read DQ and/or read data strobe signal (RDQS) received from the memory device 200 to determine the reception timing of the read DQ and read data strobe signal (RDQS). can be controlled. Additionally, during write FIFO training, the SoC 100 may control the transmission timing of the write DQ and the write clock (WCK) by delaying the write DQ transmitted to the memory device 200. After the first training is completed, the electronic device 10 can perform normal operations.

S17 단계에서, 전자 장치(10)의 일반 동작 중, 전자 장치(10)는 제 2 트레이닝(즉, 인터벌 오실레이터 트레이닝)을 실행할 수 있다. 전자 장치(10)는 예를 들어, 인터벌 오실레이터들(271, 272)이 동작하는 동안 카운트 값이 증가할 수 있으며, 인터벌 오실레이터들(271, 272)의 동작이 종료된 후의 최종 카운트 값은, 온도 센서(280)에 의해 획득된 온도에 따라 보정될 수 있다. 보정된 카운트 값은 데이터 신호(DQ) 및/또는 읽기 데이터 스트로브 신호(RDQS)의 스큐를 조정하는데 사용될 수 있다. In step S17, during normal operation of the electronic device 10, the electronic device 10 may perform second training (i.e., interval oscillator training). For example, the electronic device 10 may increase the count value while the interval oscillators 271 and 272 are operating, and the final count value after the operation of the interval oscillators 271 and 272 is terminated is the temperature. It may be corrected according to the temperature obtained by sensor 280. The corrected count value can be used to adjust the skew of the data signal (DQ) and/or the read data strobe signal (RDQS).

도 3은 도 1의 SoC 예시적인 구성을 도시한다. SoC(100)는 프로세서(110), 온 칩 메모리(120), 메모리 컨트롤러(130), 및 DDR PHY(140)를 포함할 수 있다.FIG. 3 illustrates an example configuration of the SoC of FIG. 1 ; SoC 100 may include a processor 110, on-chip memory 120, memory controller 130, and DDR PHY 140.

프로세서(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 processor 110 may execute various software (application programs, operating systems, file systems, device drivers, etc.) loaded into the on-chip memory 120. The processor 110 may execute a training program loaded into the on-chip memory 120. The processor 110 may include homogeneous multi-core processors or heterogeneous multi-core processors. For example, the processor 110 may include a central processing unit (CPU), an image signal processing unit (ISP), a digital signal processing unit (DSP), a graphics processing unit (GPU), a vision processing unit (VPU), and a neural processing unit (NPU). may include at least one of a processing unit).

온 칩 메모리(120)에는 전자 장치(10)를 구동하기 위한 응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 도 3을 참조하면, 온 칩 메모리(120)에는 트레이닝 프로그램이 로드될 수 있다. 예를 들어, 온 칩 메모리(120)는 SoC(100)의 내부에서 구현되고 메모리 장치(200)보다 빠른 데이터 입출력 속도를 갖는 SRAM 장치일 수 있다. 온 칩 메모리(120)는 버퍼 메모리로도 지칭될 수 있다.Application programs, operating systems, file systems, device drivers, etc. for driving the electronic device 10 may be loaded into the on-chip memory 120. Referring to FIG. 3, a training program may be loaded into the on-chip memory 120. For example, the on-chip memory 120 may be an SRAM device that is implemented inside the SoC 100 and has a faster data input/output speed than the memory device 200. On-chip memory 120 may also be referred to as buffer memory.

메모리 컨트롤러(130)는 DDR PHY(140)를 제어하여 메모리 장치(도 1, 200)과 통신을 수행할 수 있다. 메모리 컨트롤러(130)는 DMA(direct memory access) 방식으로 메모리 장치(200)에 접근할 수 있다. 메모리 컨트롤러(130)는 커맨드 큐(131), 커맨드 스케쥴러(132), 읽기 데이터 큐(133), 및 쓰기 데이터 큐(134)를 포함할 수 있다.The memory controller 130 may control the DDR PHY 140 to communicate with a memory device (FIG. 1, 200). The memory controller 130 may access the memory device 200 using direct memory access (DMA). The memory controller 130 may include a command queue 131, a command scheduler 132, a read data queue 133, and a write data queue 134.

커맨드 큐(131)는 프로세서(110)에 의해 발행된 커맨드들과 어드레스들을 저장할 수 있다. 커맨드 큐(131)에 저장된 커맨드와 어드레스는 커맨드 스케쥴러(132)의 제어 하에 DDR PHY(140)로 제공될 수 있다. 커맨드 큐(131)에 저장된 하나 이상의 커맨드들과 하나 이상의 어드레스들이 병렬로 DDR PHY(140)로 제공될 수 있다. 커맨드 스케쥴러(132)는 커맨드 큐(131)에 저장된 커맨드들과 어드레스들의 순서, 커맨드 큐(131)로 커맨드(들) 및 어드레스(들)이 입력되는 시점, 커맨드 큐(131)로부터 커맨드(들) 및 어드레스(들)이 출력되는 시점 등을 조정할 수 있다.The command queue 131 may store commands and addresses issued by the processor 110. Commands and addresses stored in the command queue 131 may be provided to the DDR PHY 140 under the control of the command scheduler 132. One or more commands and one or more addresses stored in the command queue 131 may be provided to the DDR PHY 140 in parallel. The command scheduler 132 determines the order of commands and addresses stored in the command queue 131, the time when the command(s) and address(s) are input to the command queue 131, and the command(s) from the command queue 131. And the timing at which the address(es) are output can be adjusted.

실시 예에 있어서, 프로세서(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 processor 110, the command queue 131 may generate read commands, write commands, test data, etc. for FIFO training. And, under the control of the training program executed by the processor 110, the command queue 131 generates commands for interval oscillator training (e.g., an interval oscillator start command (OSC_Start) and an interval oscillator stop command (OSC_Stop). However, it is not limited to this, and in another embodiment, the memory controller 130 or the DDR PHY 140 may use a separate circuit (not shown) to generate commands for executing FIFO training and interval oscillator training. Poetry) may also be included.

읽기 데이터 큐(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 read data queue 133 may store read data received from the memory device 200 through the DDR PHY 140 in response to a read request from the SoC 100 for the memory device 200. Read data stored in the read data queue 133 may be provided to the on-chip memory 120 and processed by the processor 110. The write data queue 134 may store write data to be stored in the memory device 200. In response to a write request from the SoC 100 to the memory device 200, write data stored in the write data queue 134 may be transmitted to the memory device 200 through the DDR PHY 140. For example, the command queue 131, command scheduler 132, read data queue 133, and write data queue 134 of the memory controller 130 are implemented in the SoC 100 in a hardware manner, a software manner, or It can be implemented using a combination of these.

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 data transmitter 148. Clock generator 141, command and address generator 142, write clock generator 143, RDQS receiver 144, delay circuit 145, data receiver 146, delay circuit 147 of DDR PHY 140 , and the data transmitter 148 may be implemented within the SoC 100 using a hardware method, a software method, or a combination thereof.

클럭 생성기(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 clock generator 141 may generate a clock CK that is output to the memory device 200. Although shown briefly in FIG. 2 , for example, the clock generator 141 may generate clocks (e.g., CK_t, CK_c) in a differential manner and transmit the clocks (CK_t, CK_c) to the memory device 200. . For example, the clock generator 141 may include a duty cycle corrector (DCC) (not shown) and/or a duty cycle adjuster (DCA) that adjusts the duty cycle of the clock CK.

커맨드 및 어드레스 생성기(142)는 커맨드 큐(131)로부터 커맨드 또는 어드레스를 수신하고 메모리 장치(200)로 커맨드 및/또는 어드레스를 전송할 수 있다. 예를 들어, 커맨드 및 어드레스 생성기(142)는 JEDEC 표준에 의해 정의된 시간 간격(또는, 토글링 횟수)을 두고 인터벌 오실레이터 시작 커맨드(OSC_Start)와 인터벌 오실레이터 중지 커맨드(OSC_Stop)를 순차적으로 메모리 장치(200)로 전송할 수 있다. 커맨드 및 어드레스 생성기(142)와 메모리 장치(200) 사이의 커맨드 및 어드레스 전송 경로들의 개수, 상술한 전송 경로들을 통해 전송되는 신호들의 논리 상태들, 전송 방법 등은 JEDEC 표준에 정의될 수 있다. The command and address generator 142 may receive a command or address from the command queue 131 and transmit the command and/or address to the memory device 200 . For example, the command and address generator 142 sequentially generates an interval oscillator start command (OSC_Start) and an interval oscillator stop command (OSC_Stop) at a time interval (or toggling number) defined by the JEDEC standard to the memory device ( 200). The number of command and address transmission paths between the command and address generator 142 and the memory device 200, logical states of signals transmitted through the above-described transmission paths, transmission methods, etc. may be defined in the JEDEC standard.

쓰기 클럭 생성기(143)는 메모리 장치(200)로 출력되는 쓰기 클럭(WCK)을 생성할 수 있다. 비록 도 2에는 간략히 도시되었으나, 예를 들어, 쓰기 클럭 생성기(143)는 차동 방식으로 쓰기 클럭들(예컨대, WCK_t, WCK_c)을 생성하고 쓰기 클럭들(WCK_t, WCK_c)을 메모리 장치(200)로 전송할 수 있다. 예를 들어, 쓰기 클럭 생성기(143)는 쓰기 클럭(WCK)의 듀티 사이클을 조정하는 DCC(미도시) 및/또는 DCA(미도시)를 포함할 수 있다.The write clock generator 143 may generate a write clock (WCK) output to the memory device 200. Although briefly shown in FIG. 2 , for example, the write clock generator 143 generates write clocks (e.g., WCK_t, WCK_c) in a differential manner and transmits the write clocks (WCK_t, WCK_c) to the memory device 200. Can be transmitted. For example, the write clock generator 143 may include a DCC (not shown) and/or a DCA (not shown) that adjusts the duty cycle of the write clock (WCK).

실시 예에 있어서, 클럭(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 DDR PHY 140 may further include a divider (not shown).

RDQS 수신기(144)는 메모리 장치(200)에 대한 읽기 동작 시 메모리 장치(200)로부터 수신되는 읽기 데이터 스트로브 신호(RDQS)를 수신할 수 있다. The RDQS receiver 144 may receive a read data strobe signal (RDQS) received from the memory device 200 during a read operation on the memory device 200.

지연 회로(145)는 데이터 수신기(146)가 정해진 타이밍에 읽기 데이터 스트로브 신호(RDQS)를 이용하여 읽기 DQ를 래치할 수 있도록 읽기 데이터 스트로브 신호(RDQS)의 스큐를 정렬할 수 있다. 지연 회로(145)는 앞서 도 2의 S15 단계에서 설명된 리드 게이트 트레이닝 실행 시 동작할 수 있다. 예를 들어, 지연 회로(145)는 복수의 지연 셀들을 포함하는 DLL(delay locked loop)을 포함할 수 있다. 예를 들어, 읽기 DQ 정렬기(미도시)는 하나의 지연 셀에 의해 지연되는 단위 시간을 기반으로 읽기 DQ를 지연시키면서, 읽기 DQ를 래치하기 위한 최적의 샘플링 포인트를 찾을 수 있다. 한편, 도 3에서, 지연 회로(145)는 RDQS 수신기(144) 외부의 구성인 것으로 도시되었으나, 지연 회로(145)는 RDQS 수신기(144) 내부에 구현될 수도 있다. The delay circuit 145 may align the skew of the read data strobe signal RDQS so that the data receiver 146 can latch the read DQ using the read data strobe signal RDQS at a predetermined timing. The delay circuit 145 may operate when executing the read gate training described in step S15 of FIG. 2 . For example, the delay circuit 145 may include a delay locked loop (DLL) including a plurality of delay cells. For example, a read DQ aligner (not shown) can find an optimal sampling point for latching the read DQ while delaying the read DQ based on the unit time delayed by one delay cell. Meanwhile, in FIG. 3, the delay circuit 145 is shown as being external to the RDQS receiver 144, but the delay circuit 145 may also be implemented inside the RDQS receiver 144.

데이터 수신기(146)는 메모리 장치(200)에 대한 읽기 동작 시 메모리 장치(200)로부터 읽기 DQ를 수신할 수 있다. 데이터 수신기(146)는 지연 회로(145)로부터 수신된 RDQS의 입력 타이밍에 기반하여 읽기 DQ를 래치할 수 있다. 데이터 수신기(146)는 수신된 읽기 데이터를 읽기 데이터 큐(133)에 제공할 수 있다. 비록 도면에는 도시되지 않았으나, DDR PHY(140)는 데이터 수신기(146)로 입력되는 읽기 DQ를 지연시키기 위한 지연 회로(미도시)를 더 포함할 수 있다. 이 경우, 지연 회로(미도시)는 지연 회로(145)와 함께 동작함으로써, 읽기 DQ를 래치하기 위한 최적의 샘플링 포인트를 획득하는데 이용될 수 있다.The data receiver 146 may receive a read DQ from the memory device 200 during a read operation on the memory device 200. The data receiver 146 may latch the read DQ based on the input timing of the RDQS received from the delay circuit 145. The data receiver 146 may provide the received read data to the read data queue 133. Although not shown in the drawing, the DDR PHY 140 may further include a delay circuit (not shown) to delay the read DQ input to the data receiver 146. In this case, a delay circuit (not shown) can be used to obtain an optimal sampling point for latching the read DQ by operating in conjunction with the delay circuit 145.

지연 회로(147)는 DDR PHY(140)로부터 메모리 장치(도 1, 200)로 전송되는 쓰기 DQ가 정해진 타이밍에 메모리 장치(200)에 의해 래치될 수 있도록 쓰기 DQ의 스큐를 정렬할 수 있다. 지연 회로(147)는 FIFO 트레이닝 시 및/또는 인터벌 오실레이터 트레이닝 시 동작할 수 있다. 예를 들어, 지연 회로(147)는 복수의 지연 셀들을 포함하는 DLL을 포함할 수 있다. The delay circuit 147 may align the skew of the write DQ transmitted from the DDR PHY 140 to the memory device 200 (FIG. 1, 200) so that the write DQ can be latched by the memory device 200 at a predetermined timing. Delay circuit 147 may operate during FIFO training and/or interval oscillator training. For example, the delay circuit 147 may include a DLL including a plurality of delay cells.

데이터 송신기(148)는 지연 회로(147)로부터 수신된 쓰기 데이터를 쓰기 DQ로써 메모리 장치(200)로 전송할 수 있다. 실시 예에 있어서, 지연 회로(147)는 별개의 구성이 아닌 데이터 송신기(148)의 일부일 수도 있다. The data transmitter 148 may transmit write data received from the delay circuit 147 to the memory device 200 as write DQ. In an embodiment, the delay circuit 147 may be part of the data transmitter 148 rather than a separate component.

실시 예에 있어서, DDR PHY(140)는 읽기 데이터 스트로브 신호(RDQS)의 스큐를 조정하는 지연 회로(145)와 메모리 장치(200)로 전송될 쓰기 DQ의 스큐를 조정하는 지연 회로(147)를 포함하는 것으로 도시되었으나, 다른 실시 예에서, DDR PHY(140)는 지연 회로들(145, 147) 중 어느 하나만을 포함할 수도 있다. In an embodiment, the DDR PHY 140 includes a delay circuit 145 that adjusts the skew of the read data strobe signal (RDQS) and a delay circuit 147 that adjusts the skew of the write DQ to be transmitted to the memory device 200. Although shown as including one, in another embodiment, the DDR PHY 140 may include only one of the delay circuits 145 and 147.

실시 예에 있어서, 상술된 지연 회로들(145, 147)은 프로세서(110)에 의해 실행되는 트레이닝 프로그램 및/또는 메모리 컨트롤러(130)에 의해 제어될 수 있다. 이를 위해, 메모리 컨트롤러(130)는 조정되어야 할 스큐에 관한 정보(즉, 도 1의 카운트 값)를 FIFO 트레이닝과 인터벌 오실레이터 트레이닝을 통하여 메모리 장치(200)로부터 미리 획득할 수 있다. In an embodiment, the delay circuits 145 and 147 described above may be controlled by a training program executed by the processor 110 and/or by the memory controller 130. To this end, the memory controller 130 may obtain information about the skew to be adjusted (i.e., the count value in FIG. 1) in advance from the memory device 200 through FIFO training and interval oscillator training.

실시 예에 있어서, 프로세서(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 processor 110 may calculate a valid window margin (VWM) based on the count value. The effective window margin may mean the maximum section in which the data receiver 146 can determine the read DQ output from the memory device 200 using the read data strobe signal (RDQS) output from the memory device 200. This may mean the maximum section in which the memory device 200 can determine the write DQ output from the DDR PHY 140 using the write clock (WCK) output from the SoC 100. For example, the effective window margin calculated by the training program can be stored in the on-chip memory 120.

도 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 memory device 200 includes a command and address receiver 201, a write clock buffer 202, an RDQS transmitter 203, a data transceiver 204, a memory cell array 210, a row decoder 221, and a column decoder 223. ), control logic circuit 230, write driver 241, input/output sense amplifier 243, write buffer 251, read buffer 253, mode register 260, interval oscillators 271, 272, counter It may include fields 273 and 274, and a temperature sensor 280. The above-described components may be implemented in hardware within the memory device 200.

커맨드 및 어드레스 수신기(201)는 SoC(100)로부터 수신된 클럭(CK)에 기반하여 커맨드 및 어드레스 신호(CMD/ADD)를 래치하여, 커맨드(CMD) 및 어드레스(ADD)를 수신할 수 있다. 수신된 커맨드(CMD)는 제어 로직 회로(230)로 제공될 수 있다. The command and address receiver 201 may receive a command (CMD) and an address (ADD) by latching the command and address signals (CMD/ADD) based on the clock (CK) received from the SoC 100. The received command (CMD) may be provided to the control logic circuit 230.

실시 예에 있어서, 커맨드 및 어드레스 수신기(201)는 활성화 커맨드, 읽기 커맨드, 쓰기 커맨드, 프리차지 커맨드, 모드 레지스터 쓰기 커맨드, 다목적 커맨드 (multi-purpose command; MPC) 등을 디코딩할 수 있다. 예를 들어, 다목적 커맨드(MPC)는 FIFO 트레이닝을 위한 FIFO 쓰기 커맨드 및 FIFO 읽기 커맨드를 포함할 수 있으며, 인터벌 오실레이터 트레이닝을 위한 인터벌 오실레이터 시작 커맨드(OSC_Start), 인터벌 오실레이터 중지 커맨드(OSC_Stop), 및 모드 레지스터(260)에 저장된 카운트 값을 읽기 위한 커맨드도 포함할 수 있다.In an embodiment, the command and address receiver 201 may decode an activation command, a read command, a write command, a precharge command, a mode register write command, a multi-purpose command (MPC), etc. For example, a multi-purpose command (MPC) may include a FIFO write command and a FIFO read command for FIFO training, an interval oscillator start command (OSC_Start), an interval oscillator stop command (OSC_Stop), and a mode for interval oscillator training. A command for reading the count value stored in the register 260 may also be included.

쓰기 클럭 버퍼(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 write clock buffer 202 may receive a write clock (WCK) from the SoC (FIG. 1, 100). The SoC 100 may transmit the write clocks (WCK_t, WCK_c) to the memory device 200 in a differential manner, and the memory device 200 may include write clock buffers that respectively receive the write clocks (WCK_t, WCK_c). You can. The write clock buffer 202 may provide a write clock (WCK) received during a write operation on the memory device 200 to the data transceiver 204. In an embodiment, the write clock buffer 202 may include a phase splitter (not shown) to generate write clocks with different phases based on the received write clock (WCK). However, in other embodiments, a phase divider (not shown) may be implemented external to write clock buffer 202.

데이터 송수신기(204)는 SoC(100)로부터 쓰기 DQ를 수신하거나 SoC(100)로 읽기 DQ를 출력할 수 있다. 메모리 장치(200)에 대한 쓰기 동작 시, 데이터 송수신기(204)는 쓰기 클럭(WCK)에 기반하여 쓰기 DQ를 래치할 수 있다. 메모리 장치(200)에 대한 읽기 동작 시, 읽기 데이터 스트로브 신호(RDQS)의 전송과 함께, 데이터 송수신기(204)는 읽기 DQ를 SoC(100)에 전송할 수 있다. 예를 들어, 데이터 신호(DQ)는 양방향 신호이므로, 데이터 송수신기(204)는 쓰기 DQ를 수신하는 수신기(미도시)와 읽기 DQ를 출력하는 송신기(미도시)를 포함할 수 있다. The data transceiver 204 may receive a write DQ from the SoC 100 or output a read DQ to the SoC 100. During a write operation on the memory device 200, the data transceiver 204 may latch the write DQ based on the write clock (WCK). During a read operation on the memory device 200, the data transceiver 204 may transmit a read DQ to the SoC 100 along with transmission of the read data strobe signal RDQS. For example, since the data signal DQ is a bidirectional signal, the data transceiver 204 may include a receiver (not shown) that receives the write DQ and a transmitter (not shown) that outputs the read DQ.

메모리 셀 어레이(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 memory cell array 210 may include a plurality of memory cells connected to word lines and bit lines (not shown). For example, the memory cell may be a Dynamic Random Access Memory (DRAM) cell. In this case, the DDR PHY (Figure 1, 140) and the memory device 200 are DDR (Double Data Rate), LPDDR (low power double data rate), GDDR (Graphics Double Data Rate), Wide I/O, HBM (High It can communicate based on one of the standards such as Bandwidth Memory (HMC), Hybrid Memory Cube (HMC), etc.

로우 디코더(221)는 제어 로직 회로(230)로부터 수신된 로우 어드레스를 디코딩할 수 있다. 로우 디코더(221)는 로우 어드레스에 대응하는 적어도 하나의 워드 라인을 선택하고 활성화할 수 있다. 컬럼 디코더(223)는 제어 로직 회로(230)의 제어 하에 컬럼 어드레스를 디코딩할 수 있다. 컬럼 디코더(223)는 컬럼 어드레스에 대응하는 적어도 하나의 컬럼 선택 라인을 선택하고 활성화할 수 있다. 컬럼 선택 라인에는 적어도 하나 이상의 비트 라인들이 연결될 수 있다. 예를 들어, 로우 어드레스 및 컬럼 어드레스에 대응하는 메모리 셀들이 선택되고 선택된 메모리 셀들에 대한 데이터 입출력이 수행될 수 있다.The row decoder 221 may decode the row address received from the control logic circuit 230. The row decoder 221 may select and activate at least one word line corresponding to the row address. The column decoder 223 may decode the column address under the control of the control logic circuit 230. The column decoder 223 may select and activate at least one column selection line corresponding to the column address. At least one bit line may be connected to the column selection line. For example, memory cells corresponding to a row address and a column address may be selected, and data input/output may be performed on the selected memory cells.

제어 로직 회로(230)는 메모리 장치(200)의 구성 요소들을 제어할 수 있다. 제어 로직 회로(230)는 다목적 커맨드(MPC)과 함께 전송되는 어드레스를 메모리 장치(200) 내부의 레지스터들(미도시), 쓰기 버퍼(251), 또는 읽기 버퍼(253)에 제공할 수 있다. 실시 예에 있어서, 커맨드와 함께 전송되는 어드레스는 메모리 장치(200)의 메모리 셀들의 어드레스를 포함하거나, 메모리 장치(200)의 동작 모드를 설정하는데 사용되는 코드를 포함하거나, 또는 FIFO 트레이닝을 위해 쓰기 버퍼(251) 또는 읽기 버퍼(253)에 저장되는 테스트 데이터를 포함할 수 있다.The control logic circuit 230 may control components of the memory device 200. The control logic circuit 230 may provide an address transmitted along with a multi-purpose command (MPC) to registers (not shown), the write buffer 251, or the read buffer 253 inside the memory device 200. In an embodiment, the address transmitted with the command includes the addresses of memory cells of the memory device 200, includes a code used to set the operation mode of the memory device 200, or writes for FIFO training. It may include test data stored in the buffer 251 or the read buffer 253.

실시 예에 있어서, 제어 로직 회로(230)는 인터벌 오실레이터 시작 커맨드(OSC_Start)에 기반하여 인터벌 오실레이터들(271, 272)과 카운터들(273, 274)을 인에이블시키기 위한 신호들을 생성할 수 있다. 그리고, 제어 로직 회로(230)는 인터벌 오실레이터 중지 커맨드(OSC_Stop)에 기반하여 인터벌 오실레이터들(271, 272)과 카운터들(273, 274)을 디스에이블시키기 위한 신호들을 생성할 수 있다. In an embodiment, the control logic circuit 230 may generate signals to enable the interval oscillators 271 and 272 and the counters 273 and 274 based on the interval oscillator start command (OSC_Start). Additionally, the control logic circuit 230 may generate signals to disable the interval oscillators 271 and 272 and the counters 273 and 274 based on the interval oscillator stop command (OSC_Stop).

실시 예에 있어서, 제어 로직 회로(230)는 읽기 인터벌 오실레이터 트레이닝을 위해 인터벌 오실레이터(271)에 인에이블 신호 및 디스에이블 신호를 순차적으로 제공할 수 있다. 그리고, 제어 로직 회로(230)는 쓰기 인터벌 오실레이터 트레이닝을 위해 인터벌 오실레이터(272)에 인에이블 신호 및 디스에이블 신호를 순차적으로 제공할 수 있다. 여기서, 인터벌 오실레이터들(271, 272)의 각각으로 입력되는 인에이블 신호와 디스에이블 신호는 JEDEC 표준에 의해 정의된 시간 간격(또는, 토글링 횟수)일 것이다. 제어 로직 회로(230)는 유사한 방식으로 카운터들(273, 274)을 제어할 수 있다. In an embodiment, the control logic circuit 230 may sequentially provide an enable signal and a disable signal to the interval oscillator 271 for read interval oscillator training. Additionally, the control logic circuit 230 may sequentially provide an enable signal and a disable signal to the interval oscillator 272 for write interval oscillator training. Here, the enable signal and disable signal input to each of the interval oscillators 271 and 272 may be a time interval (or number of toggling) defined by the JEDEC standard. Control logic circuit 230 may control counters 273 and 274 in a similar manner.

인터벌 오실레이터(271)의 동작 동안 카운터(273)에 의해 카운팅된 값과 인터벌 오실레이터(272)의 동작 동안 카운터(274)에 의해 카운팅된 값은 모드 레지스터(260)에 저장될 수 있다. 메모리 장치(200)는 SoC(도 1, 100)으로부터 수신된 모드 레지스터 읽기 커맨드에 응답하여 카운트 값들을 데이터 송수신기(204)를 통하여 SoC(100)로 전송할 수 있다.The value counted by the counter 273 during the operation of the interval oscillator 271 and the value counted by the counter 274 during the operation of the interval oscillator 272 may be stored in the mode register 260. The memory device 200 may transmit count values to the SoC 100 through the data transceiver 204 in response to a mode register read command received from the SoC (FIG. 1, 100).

쓰기 드라이버(241)는 쓰기 버퍼(251)로부터 쓰기 데이터를 수신하고 입출력 라인(GIO)을 통해 선택된 메모리 셀들에 쓰기 데이터를 쓸 수 있다. 입출력 센스 앰프(243)는 선택된 메모리 셀들로부터 입출력 라인(GIO)를 통해 출력되는 읽기 데이터를 감지하고 읽기 데이터를 읽기 버퍼(253)로 제공할 수 있다.The write driver 241 may receive write data from the write buffer 251 and write the write data to selected memory cells through the input/output line (GIO). The input/output sense amplifier 243 may detect read data output from selected memory cells through an input/output line (GIO) and provide the read data to the read buffer 253.

쓰기 버퍼(251)는 SoC(100)로부터 RDQS 버퍼(203) 및 데이터 송수신기(204)를 통해 쓰기 읽기 데이터 스트로브 신호(RDQS) 및 쓰기 DQ를 수신할 수 있다. 쓰기 버퍼(251)는 수신된 쓰기 DQ를 병렬화하고, 병렬화된 쓰기 데이터 쓰기 데이터를 쓰기 버퍼(251) 내의 FIFO(미도시)에 저장할 수 있다. 쓰기 버퍼(251)는 FIFO에 저장된 쓰기 데이터를 쓰기 드라이버(241)에 제공할 수 있다. 읽기 버퍼(253)는 입출력 센스 앰프(243)로부터 읽기 데이터를 수신할 수 있다. 읽기 버퍼(253)는 수신된 읽기 데이터를 읽기 버퍼(253)의 FIFO(미도시)에 저장할 수 있다. 읽기 버퍼(253) 읽기 데이터를 직렬화하고 직렬화된 읽기 데이터를 데이터 송수신기(204)에 제공할 수 있다. The write buffer 251 may receive a write read data strobe signal (RDQS) and a write DQ from the SoC 100 through the RDQS buffer 203 and the data transceiver 204. The write buffer 251 may parallelize the received write DQ and store the parallelized write data in a FIFO (not shown) within the write buffer 251. The write buffer 251 may provide write data stored in the FIFO to the write driver 241. The read buffer 253 may receive read data from the input/output sense amplifier 243. The read buffer 253 may store the received read data in a FIFO (not shown) of the read buffer 253. The read buffer 253 may serialize read data and provide the serialized read data to the data transceiver 204.

인터벌 오실레이터(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 interval oscillator 271 may be implemented to simulate the difference between the path of the write clock (WCK) and the read DQ, and the interval oscillator 272 may be implemented to simulate the difference between the path of the write clock (WCK) and the write DQ. there is. The counters 273 and 274 may increase their count values while the interval oscillators 273 and 274, respectively, operate. For example, the final count value by the first counter 273 may correspond to a skew value of the read DQ to be adjusted or a skew value of the read data strobe signal RDQS to be adjusted. For example, the final count value by the second counter 274 may correspond to the skew value of the write DQ to be adjusted. For example, the first interval oscillator 271 and the second interval oscillator 272 may not operate at the same time, and the first counter 273 and the second counter 274 may not operate at the same time.

도 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 processor 110 may calculate an effective window margin of the data signal DQ. The training program may control the timing of the read data strobe signal RDQS and/or the timing of the read DQ by controlling the delay circuit 145 and/or the delay circuit 147. As a result, the timing (i.e., sampling point) at which the read DQ is sampled by the read data strobe signal RDQS can be adjusted. Similarly, the training program can control the delay circuit 147 to control the timing of the write DQ. As a result, the timing (i.e., sampling point) at which the write DQ is sampled by the write clock (WCK) in the memory device 200 can be adjusted.

프로세서(110)에 의해 실행되는 트레이닝 프로그램은 복수의 샘플링 포인트들 중에서 데이터 신호(DQ)를 유효하게 샘플링할 수 있는 유효 샘플링 포인트들을 찾고, 유효 샘플링 포인트들로부터 데이터 신호(DQ)의 VWM을 계산할 수 있다. 예를 들어, 도 3에서 도시된 샘플링 포인트들은 모두 유효 샘플링 포인트들일 수 있다. 트레이닝 회로(149)는 두 개의 유효 샘플링 포인트들 간의 차이 또는 그 차이보다 작은 값을 읽기 DQ의 VWM으로 계산할 수 있다.The training program executed by the processor 110 can find effective sampling points that can effectively sample the data signal (DQ) among a plurality of sampling points, and calculate the VWM of the data signal (DQ) from the effective sampling points. there is. For example, all sampling points shown in FIG. 3 may be valid sampling points. The training circuit 149 may calculate the difference between two effective sampling points or a value smaller than the difference as the VWM of the read DQ.

도 6은 FIFO 읽기 트레이닝 실행 시 SoC(100)와 메모리 장치(200) 간의 신호들의 예시적인 타이밍도이다. FIG. 6 is an example timing diagram of signals between the SoC 100 and the memory device 200 when executing FIFO read training.

도 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 SoC 100 may issue a command for synchronization between the write clock (WCK) and the clock (CK) before issuing the FIFO read command. Afterwards, the SoC 100 may issue a FIFO read command, and the FIFO read command may be latched at time t1. After the read latency (RL) between t1 and t2 has elapsed and a slight delay time (tWCK2DQO) has elapsed, the read DQ may be output from the memory device 200. Here, the delay time may be referred to as the write clock-read DQ interval (tWCK2DQO). tWCK2DQO may be a delay time depending on the path provided to the data transceiver 204 to latch the read DQ after the write clock (WCK) is input to the memory device 200.

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 delay circuit 145 of the DDR PHY 140. More specifically, the delay circuit 145 may delay the read data strobe signal (RDQS) output from the RDQS receiver 144 with reference to the count value received from the memory device 200, and as a result, the SoC ( 100), the latch timing of the read DQ can be controlled by the read data strobe signal (RDQS).

도 7은 FIFO 쓰기 트레이닝 실행 시 SoC(100)와 메모리 장치(200) 간의 신호들의 예시적인 타이밍도이다. FIG. 7 is an example timing diagram of signals between the SoC 100 and the memory device 200 when performing FIFO write training.

도 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 SoC 100 may issue a FIFO write command, and the FIFO write command may be latched at time t1. After the write latency (WL) between t1 and t2 has elapsed and a slight delay time (tWCK2DQI) has elapsed, the write DQ may be input to the memory device 200. Here, the delay time can be referred to as the write clock-read DQ interval (tWCK2DQI). tWCK2DQI may be the delay time depending on the difference between the path of the write clock (WCK) and the path of the read DQ.

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 delay circuit 147 of the DDR PHY 140. More specifically, the delay circuit 147 may delay the write DQ output from the data transmitter 148 by referring to the count value received from the memory device 200, and as a result, the write DQ from the memory device 200 may be delayed. The latch timing of write DQ can be controlled by the clock (WCK).

도 8은 도 4의 인터벌 오실레이터(271)의 예시적인 회로도를 도시한다. 더 나은 이해를 위해, 제어 로직 회로(230)과 카운터(273)도 함께 도시되었다.FIG. 8 shows an example circuit diagram of the interval oscillator 271 of FIG. 4. For better understanding, the control logic circuit 230 and counter 273 are also shown.

인터벌 오실레이터(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 interval oscillator 271 may include a plurality of single-ended type inverters 271_1 to 271_n. The inverters 271_1 to 271_n may be connected in series, and the output terminal of the inverter 271_n may be commonly connected to the input terminal of the counter 273 and the input terminal of the inverter 272_1. The inverters 271_1 to 271_n may operate in response to the oscillator enable signal OSC_EN received from the control logic circuit 230.

우선, 전자 장치(도 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 control logic circuit 230 starts the oscillator. Based on the command (OSC_Start), the oscillator enable signal (OSC_EN) and counter enable signal (CNT_EN) can be generated. The inverters 271_1 to 271_n may operate in response to the counter enable signal CNT_EN, and the counter 273 may increase the count value each time a signal is output from the inverter 271_n.

이후, 메모리 장치(200)가 SoC(100)로부터 오실레이터 중지 커맨드(OSC_Stop)를 수신하면, 제어 로직 회로(230)는 오실레이션 인에이블 신호(OSC_EN)의 생성을 중단할 수 있다. 그 결과, 인터벌 오실레이터(271)의 동작은 중지되고, 카운터(273)는 인터벌 오실레이터(271)의 동작 동안 카운팅 된 최종 카운트 값(CNT)을 출력할 수 있다. 카운트 값(CNT)는 모드 레지스터(260)에 저장될 수 있다.Thereafter, when the memory device 200 receives the oscillator stop command (OSC_Stop) from the SoC 100, the control logic circuit 230 may stop generating the oscillation enable signal (OSC_EN). As a result, the operation of the interval oscillator 271 is stopped, and the counter 273 can output the final count value (CNT) counted during the operation of the interval oscillator 271. The count value (CNT) may be stored in the mode register 260.

실시 예에 있어서, 인터벌 오실레이터(272)와 카운터(274)도 도 8의 실시 예와 유사하게 동작할 수 있다. 다만, 읽기 DQ의 경로와 쓰기 DQ의 경로는 다르기 때문에, 인터벌 오실레이터(271) 구성하는 인버터들의 개수와 인터벌 오실레이터(272)를 구성하는 인버터들의 개수는 서로 다를 수 있다. In an embodiment, the interval oscillator 272 and the counter 274 may operate similarly to the embodiment of FIG. 8. However, because the read DQ path and the write DQ path are different, the number of inverters constituting the interval oscillator 271 and the number of inverters constituting the interval oscillator 272 may be different.

도 9는 도 4의 인터벌 오실레이터(271)의 다른 예시적인 회로도를 도시한다. 더 나은 이해를 위해, 제어 로직 회로(230)과 카운터(273)도 함께 도시되었다.FIG. 9 shows another example circuit diagram of the interval oscillator 271 of FIG. 4. For better understanding, the control logic circuit 230 and counter 273 are also shown.

인터벌 오실레이터(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 interval oscillator 271 may include a plurality of differential type inverters 271_1 to 271_n. The inverters 271_1 to 271_n may be connected in series, and the first output terminal of the inverter 271_n may be commonly connected to the input terminal CK of the counter 273 and the negative input terminal of the inverter 272_1. Additionally, the second output terminal of the inverter 271_n may be commonly connected to the input terminal (CKB) of the counter 273 and the positive input terminal of the inverter 271_1.

도 9의 인터벌 오실레이터(271)의 동작은 도 8의 인터벌 오실레이터의 동작과 대체로 유사할 수 있다. 오실레이터 시작 커맨드(OSC_Start)의 수신과 오실레이터 중지 커맨드(OSC_Stop) 사이의 런타임 구간에서 인터벌 오실레이터(271)가 동작할 수 있으며, 인터벌 오실레이터(271)가 동작하는 동안 카운터(273)는 카운팅 값을 증가시킬 수 있다. 인터벌 오실레이터(271)의 동작이 종료되면, 카운터(273)는 최종 카운트 값(CNT)을 출력할 수 있다. 카운트 값(CNT)는 모드 레지스터(260)에 저장될 수 있다.The operation of the interval oscillator 271 of FIG. 9 may be substantially similar to the operation of the interval oscillator of FIG. 8. The interval oscillator 271 may operate in the runtime section between the reception of the oscillator start command (OSC_Start) and the oscillator stop command (OSC_Stop), and while the interval oscillator 271 operates, the counter 273 may increase the counting value. You can. When the operation of the interval oscillator 271 ends, the counter 273 may output the final count value (CNT). The count value (CNT) may be stored in the mode register 260.

도 10은 인터벌 오실레이터 트레이닝 시 SoC(100)와 메모리 장치(200) 간의 신호들의 예시적인 타이밍도이다. FIG. 10 is an example timing diagram of signals between the SoC 100 and the memory device 200 during interval oscillator training.

도 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 electronic device 10, the SoC 100 may issue an oscillator start command (OSC_Start), and the memory device 200 may issue an oscillator start command (OSC_Start) at time t1. The oscillator start command (OSC_Start) can be latched based on the clocks (CK_t, CK_c). Thereafter, the SoC 100 may issue an oscillator stop command (OSC_Stop), and the memory device 200 may latch the oscillator stop command (OSC_Stop) based on the clocks CK_t and CK_c at time t2. Although only one interval oscillator start command (OSC_Start) and one interval oscillator stop command (OSC_Stop) are completed in Figure 10, in order to perform read interval oscillator training and write interval oscillator training, one interval oscillator start command (OSC_Start) and one interval oscillator stop command (OSC_Stop) may be further input to the memory device 200.

런타임 동안 인터벌 오실레이터(271)가 동작할 수 있으며, 카운터(273)의 카운트 값은 모드 레지스터(260)에 저장될 수 있다. 유사하게, 다음의 인터벌 오실레이터 시작 커맨드(OSC_Start)와 다음의 인터벌 오실레이터 중지 커맨드(OSC_Stop) 사이의 런타임 동안 인터벌 오실레이터(272)가 동작할 수 있으며, 카운터(274)의 카운트 값은 모드 레지스터(260)에 저장될 수 있다. During runtime, the interval oscillator 271 may operate, and the count value of the counter 273 may be stored in the mode register 260. Similarly, the interval oscillator 272 may operate during the runtime between the next interval oscillator start command (OSC_Start) and the next interval oscillator stop command (OSC_Stop), and the count value of the counter 274 is stored in the mode register 260. It can be saved in .

이후 SoC(100)는 모드 레지스터(260)에 저장된 카운트 값을 읽기 위한 모드 레지스터 읽기 커맨드(MRR)를 발행할 수 있으며, 메모리 장치(200)는 t3 시점에서 클럭들(CK_t, CK_c)에 기반하여 모드 레지스터 읽기 커맨드(MRR)를 래치할 수 있다. Thereafter, the SoC 100 may issue a mode register read command (MRR) to read the count value stored in the mode register 260, and the memory device 200 may issue a mode register read command (MRR) based on the clocks CK_t and CK_c at time t3. The mode register read command (MRR) can be latched.

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 memory device 200. Here, the delay time (tWCK2DQO) may be due to the path difference between the write clock (WCK) and the read DQ. Read DQ may include a count value by the counter 273 and a count value by the counter 274.

도 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 memory device 200 may store a table defining the correspondence between temperature sections and correction coefficients. For example, the memory device 200 may include a separate component for storing a table. Alternatively, the mode register 260 of the memory device 200 may store a table.

실시 예에 있어서, 온도는 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 memory device 200 from malfunctioning.

실시 예에 있어서, 모드 레지스터(260)는, 카운터(273)로부터 카운트 값(CNT)이 수신되는 경우, 온도 센서(280)에 의해 측정된 온도가 속하는 온도 범위에 대응하는 보정 계수를 선택하도록 구성될 수 있다. 모드 레지스터(260)는 선택된 보정 계수를 카운트 값(CNT)에 반영하고 보정된 카운트 값을 저장하도록 구성될 수 있다. 보정된 카운트 값은 SoC(100)로부터의 모드 레지스터 읽기 커맨드에 따라 SoC(100)로 출력될 수 있다.In an embodiment, the mode register 260 is configured to select a correction coefficient corresponding to the temperature range to which the temperature measured by the temperature sensor 280 falls when the count value (CNT) is received from the counter 273. It can be. The mode register 260 may be configured to reflect the selected correction coefficient to the count value (CNT) and store the corrected count value. The corrected count value may be output to the SoC 100 according to a mode register read command from the SoC 100.

한편, 상술된 동작은 인터벌 오실레이터(272)의 출력을 카운팅하는 카운터(274)에 대해서도 동일하게 수행될 수 있을 것이다.Meanwhile, the above-described operation may be equally performed for the counter 274 that counts the output of the interval oscillator 272.

도 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 memory device 200 may include a separate component for storing the table, or the control logic circuit 230 may store the table.

도 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 interval oscillator 271 may be input to the control logic circuit 230. The control logic circuit 230 may be configured to correct the count value (CNT) by referring to the count value (CNT) output from the interval oscillator 271, the temperature output from the temperature sensor 280, and the table. The control logic circuit 230 may provide the corrected count value to the mode register 260, and the mode register 260 may store the corrected count value. The corrected count value may be output to the SoC 100 according to a mode register read command from the SoC 100.

마찬가지로, 상술된 동작은 인터벌 오실레이터(272)의 출력을 카운팅하는 카운터(274)에 대해서도 동일하게 수행될 수 있을 것이다.Likewise, the above-described operation may be equally performed for the counter 274 that counts the output of the interval oscillator 272.

도 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 interval oscillator 271 and the temperature information obtained by the temperature sensor 280 may be stored in the mode register. The memory device 200 may transmit the count value (CNT) and temperature information to the SoC 100 in response to a mode register read command received from the SoC 100. For example, the count value (CNT) and temperature information may be stored in the on-chip memory 120.

실시 예에 있어서, 프로세서(110)에 의해 실행되는 트레이닝 프로그램은 테이블, 그리고 메모리 장치(200)로부터 수신된 카운트 값(CNT) 및 온도 정보에 기반하여 카운트 값(CNT)을 보정할 수 있다. 예를 들어, 테이블은 SoC(100) 내의 별도의 저장 공간 또는 메모리 장치(200)에 저장될 수 있으며, 트레이닝 프로그램의 실행 시 온-칩 메모리(120)에 로딩될 수 있다. 카운트 값(CNT)의 보정이 완료되면, 트레이닝 회로(149)는 보정된 카운트 값을 이용하여, 지연 회로(145)를 제어하여 읽기 데이터 스트로브 신호(RDQS)를 지연시키거나(읽기 인터벌 오실레이터 트레이닝), 지연 회로(147)를 제어하여 쓰기 DQ를 지연시킬 수 있다(쓰기 인터벌 오실레이터 트레이닝).In an embodiment, the training program executed by the processor 110 may correct the count value (CNT) based on the table and the count value (CNT) and temperature information received from the memory device 200. For example, the table may be stored in a separate storage space or memory device 200 within the SoC 100, and may be loaded into the on-chip memory 120 when a training program is executed. When correction of the count value (CNT) is completed, the training circuit 149 uses the corrected count value to control the delay circuit 145 to delay the read data strobe signal (RDQS) (read interval oscillator training). , the write DQ can be delayed by controlling the delay circuit 147 (write interval oscillator training).

도 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 control logic circuit 230 or the mode register 260 may correct the count value of the counter 273 according to the temperature section. For example, the delay time (Da') obtained at temperature (Ta) during interval oscillator training may be within an acceptable range. Therefore, the correction coefficient in the section (T0 to T1) to which the temperature (Ta) belongs may be '0', and the control logic circuit 230 or the mode register 260 will not correct the count value of the counter 273. You can. That is, the mode register 260 may store a count value corresponding to the delay time (tWCK2DQO or tWCK2DQI), and may provide a command value to the SoC 100 in response to a mode register read command from the SoC 100. .

만일 메모리 장치의 온도가 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 SoC 100 may perform interval oscillator training. As a result of training, the counter 273 may obtain a count value corresponding to the delay time (Figure 14, Db), which may be outside the allowable range. Accordingly, the correction coefficient of the section (T1 to T2) to which the temperature (Tb) belongs may be set to 'b', and the control logic circuit 230 or mode register 260 may correct the count value of the counter 273. You can. As a result, a count value corresponding to the delay time Db' can be obtained, and the count value can be stored in the mode register 260.

만일, 메모리 장치의 온도가 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 SoC 100 may perform interval oscillator training. As a result of training, the counter 273 may obtain a count value corresponding to the delay time (Figure 14, Dc), which may be outside the allowable range. Accordingly, the correction coefficient of the section (T2 to T3) to which the temperature (Tc) belongs may be set to 'c', and the control logic circuit 230 or mode register 260 may correct the count value of the counter 273. You can. As a result, a count value corresponding to the delay time (Dc') can be obtained, and the count value can be stored in the mode register 260.

도 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 memory device 200 may receive an interval oscillator start command (OSC_Start) based on the clock CK. The control logic circuit 230 may generate signals to enable the interval oscillator 271 and the counter 273 based on the interval oscillator start command (OSC_Start), and may respond to signals from the control logic circuit 230. Based on this, the interval oscillator 271 and the counter 273 can operate (S120).

S130 단계에서, 카운터(273)는 인터벌 오실레이터의 출력 신호를 카운팅 할 수 있다.In step S130, the counter 273 may count the output signal of the interval oscillator.

S140 단계에서, 메모리 장치(200)는 클럭(CK)에 기반하여 인터벌 오실레이터 중지 커맨드(OSC_Stop)를 수신할 수 있다. 제어 로직 회로(230)는 인터벌 오실레이터 중지 커맨드(OSC_Stop)에 기반하여 인터벌 오실레이터(271)와 카운터(273)를 디스에이블 시키기 위한 신호들을 생성할 수 있고, 인터벌 오실레이터(271)와 카운터(273)는 제어 로직 회로(230)로부터의 신호들에 기반하여 동작을 멈출 수 있다. 그리고, 카운터(273)는 최종 카운트 값을 출력할 수 있다(S150).In step S140, the memory device 200 may receive an interval oscillator stop command (OSC_Stop) based on the clock CK. The control logic circuit 230 may generate signals to disable the interval oscillator 271 and the counter 273 based on the interval oscillator stop command (OSC_Stop), and the interval oscillator 271 and the counter 273 Operation may be stopped based on signals from the control logic circuit 230. Then, the counter 273 can output the final count value (S150).

S160 단계에서, 제어 로직 회로(230) 또는 모드 레지스터(260)는 온도 구간과 보정 계수의 대응 관계를 정의하는 테이블에 기반하여 카운터(273)로부터 출력된 카운트 값을 보정할 수 있다. 예를 들어, 테이블을 참조하기 위한 온도 정보는 메모리 장치 내부의 온도 센서(280)에 의해 획득될 수 있다.In step S160, the control logic circuit 230 or the mode register 260 may correct the count value output from the counter 273 based on a table defining the correspondence between temperature sections and correction coefficients. For example, temperature information for referencing a table may be obtained by the temperature sensor 280 inside the memory device.

S170 단계에서, 메모리 장치(200)는 SoC(100)로부터의 모드 레지스터 읽기 커맨드에 응답하여 보정된 카운트 값을 SoC(100)에 제공할 수 있다. SoC(100)는 보정된 카운트 값을 참조하여, 읽기 데이터 스트로브 신호(RDQS) 및/또는 쓰기 DQ의 스큐를 조정할 수 있다.In step S170, the memory device 200 may provide a corrected count value to the SoC 100 in response to a mode register read command from the SoC 100. The SoC 100 may adjust the skew of the read data strobe signal (RDQS) and/or write DQ by referring to the corrected count value.

도 17은 본 개시의 실시 예에 따른 전자 장치(20)의 예시적인 구성을 도시한다. 전자 장치(10)는 메모리 컨트롤러(300) 및 메모리 장치(400)를 포함할 수 있다. FIG. 17 shows an example configuration of an electronic device 20 according to an embodiment of the present disclosure. The electronic device 10 may include a memory controller 300 and a memory device 400.

메모리 장치(400)는 메모리 컨트롤러(300)로부터 클럭(CK), 그리고 커맨드 및 어드레스 신호(CMD/ADD)를 수신할 수 있다. 메모리 장치(200)는 클럭(CK)에 기반하여 커맨드 및 어드레스 신호(CMD/ADD)를 샘플링하여, 커맨드(CMD) 및 어드레스(ADD)를 획득할 수 있다. 메모리 장치(200)는 데이터 스트로브 신호(DQS)을 이용하여 데이터 신호(DQ)를 수신하거나, 출력할 수 있다. 메모리 장치(400)는 DDR(double data rate) SDRAM일 수 있다.The memory device 400 may receive a clock (CK) and command and address signals (CMD/ADD) from the memory controller 300. The memory device 200 may acquire the command (CMD) and address (ADD) by sampling the command and address signals (CMD/ADD) based on the clock (CK). The memory device 200 may receive or output the data signal DQ using the data strobe signal DQS. The memory device 400 may be double data rate (DDR) SDRAM.

실시 예에 있어서, 메모리 컨트롤러(300)와 메모리 장치(400)의 구성은 도 1의 메모리 컨트롤러(300)와 메모리 장치(200)의 구성과 대체로 유사할 수 있다. 그러므로, 메모리 컨트롤러(300)와 메모리 장치(400)의 구체적인 구성에 대한 상세한 설명은 생략한다. 다만, 도 1의 메모리 장치(200)의 쓰기 동작과 읽기 동작 시 서로 다른 주파수를 갖는 클럭들(즉, WCK과 RDQS)이 사용됨에 반하여, 도 17의 메모리 장치(400)에 대한 쓰기 동작과 읽기 동작 시 데이터 스트로브 신호(DQS)가 사용된다는 점에 있어서 차이가 있다.In an embodiment, the configuration of the memory controller 300 and the memory device 400 may be substantially similar to the configuration of the memory controller 300 and the memory device 200 of FIG. 1 . Therefore, detailed description of the specific configuration of the memory controller 300 and the memory device 400 will be omitted. However, while clocks with different frequencies (i.e., WCK and RDQS) are used during the write and read operations of the memory device 200 of FIG. 1, the write and read operations of the memory device 400 of FIG. 17 are used. The difference is that the data strobe signal (DQS) is used during operation.

실시 예에 있어서, 메모리 컨트롤러(300)는 초기화 시 메모리 장치(400)에 대한 FIFO 트레이닝을 실행할 수 있으며, 초기화 후 메모리 장치(400)의 동작 시 메모리 장치(400)에 대한 인터벌 오실레이터 트레이닝을 실행할 수 있다. 인터벌 오실레이터 트레이닝은 읽기 인터벌 오실레이터 트레이닝과 쓰기 인터벌 오실레이터 트레이닝을 포함할 수 있으며, 읽기 인터벌 오실레이터 트레이닝은 인터벌 오실레이터(471)을 이용하여 수행되고, 쓰기 인터벌 오실레이터 트레이닝은 인터벌 오실레이터(472)를 이용하여 수행될 수 있다.In an embodiment, the memory controller 300 may perform FIFO training on the memory device 400 upon initialization, and may execute interval oscillator training on the memory device 400 upon operation of the memory device 400 after initialization. there is. Interval oscillator training may include read interval oscillator training and write interval oscillator training. Read interval oscillator training may be performed using the interval oscillator 471, and write interval oscillator training may be performed using the interval oscillator 472. You can.

인터벌 오실레이터(471)는 데이터 스트로브 신호(DQS)의 경로와 읽기 DQ의 경로의 차이를 모사하도록 구현될 수 있고, 인터벌 오실레이터(472)는 데이터 스트로브 신호(DQS)의 경로와 쓰기 DQ의 경로의 차이를 모사하도록 구현될 수 있다.The interval oscillator 471 may be implemented to simulate the difference between the path of the data strobe signal (DQS) and the path of the read DQ, and the interval oscillator 472 may be implemented to simulate the difference between the path of the data strobe signal (DQS) and the path of the write DQ. It can be implemented to mimic .

예를 들어, 데이터 스트로브 신호(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 interval oscillators 471 and 472 may be substantially the same as the interval oscillators described with reference to FIGS. 8 and 9.

실시 예에 있어서, 메모리 장치(400) 내의 제어 로직 회로(도 4의 제어 로직 회로(230)와 유사) 및/또는 모드 레지스터(도 4의 모드 레지스터(260)과 유사)는 온도 센서(480)에 의해 측정된 온도에 기반하여 인터벌 오실레이터들(471, 472)의 동작시 카운팅 된 카운트 값들을 보정할 수 있다. 그 결과, 온도가 변하더라도, FIFO 트레이닝 시 측정된 지연 시간과, 인터벌 오실레이터 트레이닝 시 측정된 지연 시간의 차이(즉, 오프셋)이 허용된 범위 내에 있을 수 있다. In an embodiment, the control logic circuit (similar to control logic circuit 230 of FIG. 4) and/or the mode register (similar to mode register 260 of FIG. 4) within memory device 400 may be used to control temperature sensor 480. The count values counted during operation of the interval oscillators 471 and 472 can be corrected based on the temperature measured by . As a result, even if the temperature changes, the difference (i.e., offset) between the delay time measured during FIFO training and the delay time measured during interval oscillator training may be within an acceptable range.

도 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 memory banks 501. Each of the memory banks 501 may include memory cells connected to word lines and bit lines, a row decoder, a column decoder, a sense amplifier, etc. For example, as shown in FIG. 12, each of the channels CH0 to CH7 may include eight memory banks 501. However, the present invention is not limited to this, and each of the channels CH0 to CH7 may include eight or more memory banks 301. Although the memory banks included in one channel are shown in FIG. 18 as being included in one core die, the memory banks included in one channel may be distributed across a plurality of core dies. For example, when each of the core dies 520 to 550 supports the first channel CH0, memory banks included in the first channel CH0 may be distributed among the core dies 520 to 550. .

예시적인 실시 예에서, 하나의 채널은 독립적으로 동작하는 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 TSV area 502. TSVs configured to penetrate the dies 510 to 550 may be disposed in the TSV area 502. The buffer die 510 may transmit and receive signals and/or data with the core dies 520 to 550 through TSVs. Each of the core dies 520 to 550 may transmit and receive signals and/or data with the buffer die 510 and other core dies through TSVs. In this case, signals and/or data can be transmitted and received independently through corresponding TSVs for each channel. For example, when an external host device transmits a command and an address to the first channel (CH0) to access the memory cell of the first core die 520, the buffer die 510 transmits a command and an address to the first channel (CH0) The memory cell of the first channel CH0 can be accessed by transmitting control signals to the first core die 520 through the corresponding TSVs.

버퍼 다이(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 physical layer 511 may include interface circuits for communication with an external host device. For example, the physical layer 511 includes the command and address receiver 201, write clock buffer 202, RDQS transmitter 203, data transceiver 204, and control logic circuit ( 230) and the like may include interface circuits. Signals and/or data received through the physical layer 511 may be transmitted to the core dies 520 to 550 through TSVs.

예시적인 실시 예에서, 버퍼 다이(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 semiconductor package 1000 may include a stacked memory device 1100, a system-on-chip 1200, an interposer 1300, and a package substrate 1400. The stacked memory device 1100 may include a buffer die 1110 and core dies 1120 to 1150. The buffer die 1110 may correspond to the buffer die 510 of FIG. 18, and each of the core dies 1120 to 1150 may correspond to each of the core dies 520 to 550 of FIG. 18.

코어 다이들(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 physical layer 1111 and a direct access area (DAB) 1112. The physical layer 1111 may be electrically connected to the physical layer 1210 of the system-on-chip 1200 through the interposer 1300. The stacked memory device 1100 may receive signals from the system-on-chip 1200 through the physical layer 1111, or may transmit signals to the system-on-chip 1200.

직접 접근 영역(1112)은 시스템 온 칩(1200)을 통하지 않고 적층형 메모리 장치(1100)를 테스트할 수 있는 접근 경로를 제공할 수 있다. 직접 접근 영역(1112)은 외부의 테스트 장치와 직접 통신할 수 있는 도전 수단(예를 들어, 포트 또는 핀)을 포함할 수 있다. 직접 접근 영역(1112)을 통해 수신된 테스트 신호 및 데이터는 TSV들을 통해 코어 다이들(1120~1150)로 전송될 수 있다. 코어 다이들(1120~1150)의 테스트를 위해 코어 다이들(1120~1150)로부터 읽혀진 데이터는 TSV들 및 직접 접근 영역(1112)을 통해 테스트 장치로 전송될 수 있다. 이에 따라, 코어 다이들(1120~1150)에 대한 직접 접근 테스트가 수행될 수 있다.The direct access area 1112 may provide an access path for testing the stacked memory device 1100 without going through the system-on-chip 1200. Direct access area 1112 may include conductive means (e.g., ports or pins) that can communicate directly with an external test device. Test signals and data received through the direct access area 1112 may be transmitted to the core dies 1120 to 1150 through the TSVs. For testing of the core dies 1120 to 1150, data read from the core dies 1120 to 1150 may be transmitted to a test device through the TSVs and the direct access area 1112. Accordingly, a direct access test on the core dies 1120 to 1150 may be performed.

버퍼 다이(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 TSVs 1101 and bumps 1102. The buffer die 1110 may receive signals provided to each channel from the system-on-chip 1200 through bumps 1102 allocated for each channel. For example, bumps 1102 may be micro bumps.

시스템 온 칩(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-chip 1200 can execute applications supported by the semiconductor package 1000 using the stacked memory device 1100. For example, the system-on-chip 1200 includes a Central Processing Unit (CPU), an Application Processor (AP), a Graphics Processing Unit (GPU), a Neural Processing Unit (NPU), a Tensor Processing Unit (TPU), and a Vision Processing Unit (VPU). ), an Image Signal Processor (ISP), and a Digital Signal Processor (DSP) may be used to execute specialized operations.

시스템 온 칩(1200)은 물리 계층(1210) 및 메모리 컨트롤러(1220)를 포함할 수 있다. 물리 계층(1210)은 적층형 메모리 장치(1100)의 물리 계층(1111)과 신호들을 송수신하기 위한 입출력 회로들을 포함할 수 있다. 시스템 온 칩(1200)은 물리 계층(1210)을 통해 물리 계층(1111)으로 다양한 신호들을 제공할 수 있다. 물리 계층(1111)으로 제공된 신호들은 물리 계층(1111)의 인터페이스 회로들 및 TSV들(1101)을 통해 코어 다이들(1120~1150)로 전달될 수 있다.System-on-chip 1200 may include a physical layer 1210 and a memory controller 1220. The physical layer 1210 may include input/output circuits for transmitting and receiving signals to and from the physical layer 1111 of the stacked memory device 1100. The system-on-chip 1200 may provide various signals to the physical layer 1111 through the physical layer 1210. Signals provided to the physical layer 1111 may be transmitted to the core dies 1120 to 1150 through the interface circuits and TSVs 1101 of the physical layer 1111.

메모리 컨트롤러(1220)는 적층형 메모리 장치(1100)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(1220)는 물리 계층(1210)을 통해 적층형 메모리 장치(1100)를 제어하기 위한 신호들을 적층형 메모리 장치(1100)로 전송할 수 있다. 메모리 컨트롤러(1220)는 도 1의 메모리 컨트롤러(130)에 대응할 수 있다.The memory controller 1220 may control the overall operation of the stacked memory device 1100. The memory controller 1220 may transmit signals for controlling the stacked memory device 1100 to the stacked memory device 1100 through the physical layer 1210. The memory controller 1220 may correspond to the memory controller 130 of FIG. 1 .

인터포저(1300)는 적층형 메모리 장치(1100)와 시스템 온 칩(1200)을 연결할 수 있다. 인터포저(1300)는 적층형 메모리 장치(1100)의 물리 계층(1111)과 시스템 온 칩(1200)의 물리 계층(1210) 사이를 연결하고, 도전성 물질들을 이용하여 형성되는 물리적 경로들을 제공할 수 있다. 이에 따라, 적층형 메모리 장치(1100) 및 시스템 온 칩(1200)은 인터포저(1300) 상에 적층되어 서로 신호들을 송수신할 수 있다.The interposer 1300 may connect the stacked memory device 1100 and the system-on-chip 1200. The interposer 1300 connects the physical layer 1111 of the stacked memory device 1100 and the physical layer 1210 of the system-on-chip 1200 and may provide physical paths formed using conductive materials. . Accordingly, the stacked memory device 1100 and the system-on-chip 1200 are stacked on the interposer 1300 and can transmit and receive signals to each other.

패키지 기판(1400) 상부에는 범프들(1103)이 부착되고, 하부에는 솔더볼(1104)이 부착될 수 있다. 예를 들어, 범프들(1103)은 플립-칩 범프들일 수 있다. 인터포저(1300)는 범프들(1103)을 통해 패키지 기판(1400) 상에 적층될 수 있다. 반도체 패키지(1000)는 솔더볼(1104)을 통해 외부의 다른 패키지 또는 반도체 장치들과 신호들을 송수신할 수 있다. 예를 들어, 패키지 기판(1400)은 인쇄 회로 기판(Printed Circuit Board; PCB)일 수 있다.Bumps 1103 may be attached to the top of the package substrate 1400, and solder balls 1104 may be attached to the bottom. For example, bumps 1103 may be flip-chip bumps. The interposer 1300 may be stacked on the package substrate 1400 through bumps 1103 . The semiconductor package 1000 can transmit and receive signals with other external packages or semiconductor devices through the solder ball 1104. For example, the package substrate 1400 may be a 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 semiconductor package 2000 may include a plurality of stacked memory devices 2100 and a system-on-chip 2200. The stacked memory devices 2100 and the system-on-chip 2200 may be stacked on the interposer 2300, and the interposer 2300 may be stacked on the package substrate 2400. The semiconductor package 2000 can transmit and receive signals with other external packages or semiconductor devices through the solder ball 2001 attached to the lower part of the package substrate 2400.

적층형 메모리 장치들(2100) 각각은 HBM 표준을 기반으로 구현될 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 적층형 메모리 장치들(2100) 각각은 GDDR, HMC, 또는 Wide I/O 표준을 기반으로 구현될 수 있다. 적층형 메모리 장치들(2100) 각각은 도 18 및 도 19의 적층형 메모리 장치(300, 1100)에 대응할 수 있다.Each of the stacked memory devices 2100 may be implemented based on the HBM standard. However, the present invention is not limited thereto, and each of the stacked memory devices 2100 may be implemented based on GDDR, HMC, or Wide I/O standards. Each of the stacked memory devices 2100 may correspond to the stacked memory devices 300 and 1100 of FIGS. 18 and 19 .

시스템 온 칩(2200)은 CPU, AP, GPU, NPU 등의 적어도 하나의 프로세서 및 복수의 적층형 메모리 장치들(2100)을 제어하기 위한 복수의 메모리 컨트롤러들을 포함할 수 있다. 시스템 온 칩(2200)은 메모리 컨트롤러를 통해 대응하는 적층형 메모리 장치와 신호들을 송수신할 수 있다. 시스템 온 칩(2200)은 도 19의 시스템 온 칩(1200)에 대응할 수 있다.The system-on-chip 2200 may include at least one processor, such as a CPU, AP, GPU, or NPU, and a plurality of memory controllers for controlling a plurality of stacked memory devices 2100. The system-on-chip 2200 can transmit and receive signals with a corresponding stacked memory device through a memory controller. The system-on-chip 2200 may correspond to the system-on-chip 1200 of FIG. 19.

도 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 semiconductor package 3000 may include a stacked memory device 3100, a host die 3200, and a package substrate 3300. The stacked memory device 3100 may include a buffer die 3110 and core dies 3120 to 3150. The buffer die 3110 includes a physical layer 3111 for communicating with the host die 3200, and each of the core dies 3120 to 3150 may include a memory cell array. The stacked memory device 3100 may correspond to the stacked memory device 300 of FIG. 18 .

호스트 다이(3200)는 적층형 메모리 장치(3100)와 통신하기 위한 물리 계층(3210) 및 적층형 메모리 장치(3100)의 전반적인 동작을 제어하기 위한 메모리 컨트롤러(3220)를 포함할 수 있다. 또한, 호스트 다이(3200)는 반도체 패키지(3000)의 전반적인 동작을 제어하고, 반도체 패키지(3000)가 지원하는 어플리케이션을 실행하기 위한 프로세서를 포함할 수 있다. 예를 들어, 호스트 다이(3200)는 CPU, AP, GPU, NPU 등의 적어도 하나의 프로세서를 포함할 수 있다.The host die 3200 may include a physical layer 3210 for communicating with the stacked memory device 3100 and a memory controller 3220 for controlling the overall operation of the stacked memory device 3100. Additionally, the host die 3200 controls the overall operation of the semiconductor package 3000 and may include a processor to execute an application supported by the semiconductor package 3000. For example, the host die 3200 may include at least one processor such as CPU, AP, GPU, or NPU.

적층형 메모리 장치(3100)는 TSV들(3001)을 기반으로 호스트 다이(3200) 상에 배치되어, 호스트 다이(3200) 상에 수직으로 적층될 수 있다. 이에 따라, 버퍼 다이(3110), 코어 다이들(3120~3150), 및 호스트 다이(3200)는 인터포저 없이 TSV들(3001)과 범프들(3002)을 통해 서로 전기적으로 연결될 수 있다. 예를 들어, 범프들(3002)은 마이크로 범프들일 수 있다.The stacked memory device 3100 may be disposed on the host die 3200 based on TSVs 3001 and vertically stacked on the host die 3200. Accordingly, the buffer die 3110, the core dies 3120 to 3150, and the host die 3200 may be electrically connected to each other through the TSVs 3001 and bumps 3002 without an interposer. For example, bumps 3002 may be micro bumps.

패키지 기판(3300) 상부에는 범프들(3003)이 부착되고, 하부에는 솔더볼(3004)이 부착될 수 있다. 예를 들어, 범프들(3003)은 플립-칩 범프들일 수 있다. 호스트 다이(3200)는 범프들(3003)을 통해 패키지 기판(3300) 상에 적층될 수 있다. 반도체 패키지(3000)는 솔더볼(3004)을 통해 외부의 다른 패키지 또는 반도체 장치들과 신호를 송수신할 수 있다.Bumps 3003 may be attached to the top of the package substrate 3300, and solder balls 3004 may be attached to the bottom. For example, bumps 3003 may be flip-chip bumps. The host die 3200 may be stacked on the package substrate 3300 through bumps 3003. The semiconductor package 3000 can transmit and receive signals with other external packages or semiconductor devices through the solder ball 3004.

다른 실시 예에 있어서, 적층형 메모리 장치(3100)는 버퍼 다이(3110) 없이 코어 다이들(3120~3150)만으로 구현될 수 있다. 이 경우, 코어 다이들(3120~3250) 각각은 호스트 다이(3200)와 통신하기 위한 인터페이스 회로들을 포함할 수 있다. 코어 다이들(3120~3250) 각각은 TSV들(3001)을 통해 호스트 다이(3200)와 신호들을 송수신할 수 있다.In another embodiment, the stacked memory device 3100 may be implemented with only core dies 3120 to 3150 without the buffer die 3110. In this case, each of the core dies 3120 to 3250 may include interface circuits for communicating with the host die 3200. Each of the core dies 3120 to 3250 may transmit and receive signals with the host die 3200 through the TSVs 3001.

도 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) 중 하나 이상을 포함할 수 있다.System 4000 may include a main processor 4100, memory 4200a, 4200b, and storage devices 4300a, 4300b, and may additionally include an image capturing device 4410 and user input. User input device 4420, sensor 4430, communication device 4440, display 4450, speaker 4460, power supply device 4470 and connecting interface ( 4480) may include one or more of the following.

메인 프로세서(4100)는 시스템(4000)의 전반적인 동작, 보다 구체적으로는 시스템(4000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(4100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The main processor 4100 can control the overall operation of the system 4000, and more specifically, the operation of other components forming the system 4000. This main processor 4100 may be implemented as a general-purpose processor, a dedicated processor, or an application processor.

메인 프로세서(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 main processor 4100 may include one or more CPU cores 4110 and may further include a controller 4120 for controlling the memories 4200a and 4200b and/or the storage devices 4300a and 4300b. Depending on the embodiment, the main processor 4100 may further include an accelerator 4130, which is a dedicated circuit for high-speed data computation, such as artificial intelligence (AI) data computation. Such an accelerator 4130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and/or a data processing unit (DPU), and is physically independent from other components of the main processor 4100. It may also be implemented as a separate chip.

메모리(4200a, 4200b)는 시스템(4000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있다. 이 경우, 메모리(4200a, 4200b)는 도 1 내지 도 17을 통하여 설명된 메모리 장치를 포함할 수 있다. 그러나, 이에 한정되지 않으며, 메모리(4200a, 4200b)는 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(4200a, 4200b)는 메인 프로세서(4100)와 동일한 패키지 내에 구현되는 것도 가능하다.The memories 4200a and 4200b may be used as main memory devices of the system 4000 and may include volatile memories such as SRAM and/or DRAM. In this case, the memories 4200a and 4200b may include the memory devices described with reference to FIGS. 1 to 17 . However, the memory is not limited thereto, and the memories 4200a and 4200b may include non-volatile memory such as flash memory, PRAM, and/or RRAM. The memories 4200a and 4200b may also be implemented in the same package as the main processor 4100.

스토리지 장치(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 storage devices 4300a and 4300b may function as non-volatile storage devices that store data regardless of whether power is supplied, and may have a relatively large storage capacity compared to the memories 4200a and 4200b. The storage devices 4300a and 4300b may include storage controllers 4310a and 4310b, and non-volatile memory (NVM) 4320a and 4320b that store data under the control of the storage controllers 4310a and 4310b. You can. The non-volatile memory (4320a, 4320b) may include flash memory with a 2-dimensional (2D) structure or a 3-dimensional (3D) V-NAND (Vertical NAND) structure, but may include other types of memory such as PRAM and/or RRAM. It may also contain non-volatile memory.

스토리지 장치(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 storage devices 4300a and 4300b may be included in the system 4000 while being physically separated from the main processor 4100, or may be implemented in the same package as the main processor 4100. In addition, the storage devices 4300a and 4300b have a form such as a solid state device (SSD) or a memory card, and can be connected to other components of the system 4000 through an interface such as a connection interface 4480 to be described later. It can also be coupled to make it detachable. Such storage devices (4300a, 4300b) may be devices to which standard protocols such as UFS (Universal Flash Storage), eMMC (embedded multi-media card), or NVMe (non-volatile memory express) are applied, but are not necessarily limited thereto. Not really.

촬영 장치(4410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다. The photographing device 4410 can capture still images or moving images, and may be a camera, camcorder, and/or webcam.

사용자 입력 장치(4420)는 시스템(4000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keypad), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.The user input device 4420 may receive various types of data input from the user of the system 4000, and may be used through a touch pad, keypad, keyboard, mouse and/or It may be a microphone, etc.

센서(4430)는 시스템(4000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(4430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다. The sensor 4430 can detect various types of physical quantities that can be obtained from outside the system 4000 and convert the sensed physical quantities into electrical signals. Such a sensor 4430 may be a temperature sensor, a pressure sensor, an illumination sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope sensor.

통신 장치(4440)는 다양한 통신 규약에 따라 시스템(4000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(4440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The communication device 4440 can transmit and receive signals with other devices outside the system 4000 according to various communication protocols. Such a communication device 4440 may be implemented including an antenna, a transceiver, and/or a modem.

디스플레이(4450) 및 스피커(4460)는 시스템(4000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The display 4450 and the speaker 4460 may function as output devices that output visual information and auditory information, respectively, to the user of the system 4000.

전력 공급 장치(4470)는 시스템(4000)에 내장된 배터리(미도시) 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(4000)의 각 구성 요소들에게 공급할 수 있다.The power supply device 4470 may appropriately convert power supplied from a battery (not shown) built into the system 4000 and/or an external power source and supply it to each component of the system 4000.

연결 인터페이스(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 connection interface 4480 may provide a connection between the system 4000 and an external device that is connected to the system 4000 and can exchange data with the system 4000. The connection interface 4480 is ATA (Advanced Technology Attachment), SATA (Serial ATA), e-SATA (external SATA), SCSI (Small Computer Small Interface), SAS (Serial Attached SCSI), PCI (Peripheral Component Interconnection), and PCIe. (PCI express), NVMe, IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC, UFS, eUFS (embedded Universal Flash Storage), CF (compact flash) card It can be implemented in various interface methods such as interfaces.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.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 항에 있어서,
상기 시스템 온 칩은, 상기 메모리 장치의 초기화 시, 상기 제 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.
제 1 항에 있어서,
상기 메모리 장치는 상기 시스템 온 칩으로부터 수신된 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 항에 있어서,
상기 메모리 장치는 상기 시스템 온 칩으로부터 수신된 인터벌 오실레이터 시작 커맨드와 인터벌 오실레이터 중지 커맨드 사이의 구간에서 상기 제 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 카운트 값을 출력하는 제 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.
제 5 항에 있어서,
상기 메모리 장치는 상기 시스템 온 칩으로부터 수신된 모드 레지스터 읽기 커맨드에 응답하여 상기 제 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.
제 5 항에 있어서,
상기 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 인터벌 오실레이터는 제 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 항에 있어서,
상기 제 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. .
제 1 항에 있어서,
상기 시스템 온 칩과 상기 메모리 장치는 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.
제 11 항에 있어서,
상기 컨트롤러로부터 클럭 신호를 수신하는 클럭 버퍼;
상기 클럭 버퍼에 기반하여 읽기 데이터 스트로브 신호를 출력하는 데이터 스트로브 신호 송신기; 그리고
상기 메모리 컨트롤러로부터 쓰기 데이터 신호를 수신하거나 상기 메모리 컨트롤러로 읽기 데이터 신호를 송신하는 데이터 송수신기를 더 포함하는 메모리 장치.
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.
제 11 항에 있어서,
상기 제어 로직 회로는 상기 인터벌 오실레이터 시작 커맨드에 응답하여 상기 인터벌 오실레이터와 상기 카운터를 인에이블 시키고,
상기 제어 로직 회로는 상기 인터벌 오실레이터 중지 커맨드에 응답하여 상기 인터벌 오실레이터와 상기 카운터를 디스에이블 시키는 메모리 장치.
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.
제 11 항에 있어서,
상기 인터벌 오실레이터는 직렬로 연결된 복수의 인버터들을 포함하고,
상기 카운터는 상기 복수의 인버터들 중 어느 하나의 출력 신호를 카운팅 하는 메모리 장치.
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.
제 11 항에 있어서,
상기 메모리 컨트롤러와 상기 메모리 장치는 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.
제 16 항에 있어서,
상기 메모리 장치가 모드 레지스터 읽기 커맨드에 응답하여 상기 보정된 카운트 값을 출력하는 단계; 그리고
상기 메모리 컨트롤러가 상기 보정된 카운트 값에 기반하여 상기 데이터 스트로브 신호 또는 상기 데이터 신호를 정렬하는 제 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.
제 16 항에 있어서,
상기 제 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.
제 18 항에 있어서,
상기 제 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.
제 16 항에 있어서,
상기 메모리 컨트롤러와 상기 메모리 장치는 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.
KR1020220174116A 2022-09-06 2022-12-13 Memory device and memory controller configured to perform re-training referring temperature and electronic device including the same KR20240034087A (en)

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)

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