KR102407439B1 - 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩 - Google Patents

메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩 Download PDF

Info

Publication number
KR102407439B1
KR102407439B1 KR1020170166251A KR20170166251A KR102407439B1 KR 102407439 B1 KR102407439 B1 KR 102407439B1 KR 1020170166251 A KR1020170166251 A KR 1020170166251A KR 20170166251 A KR20170166251 A KR 20170166251A KR 102407439 B1 KR102407439 B1 KR 102407439B1
Authority
KR
South Korea
Prior art keywords
memory device
driving
data
training
optimal
Prior art date
Application number
KR1020170166251A
Other languages
English (en)
Other versions
KR20190066500A (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 KR1020170166251A priority Critical patent/KR102407439B1/ko
Priority to US16/116,369 priority patent/US10559335B2/en
Priority to CN201811382923.2A priority patent/CN109872735A/zh
Publication of KR20190066500A publication Critical patent/KR20190066500A/ko
Application granted granted Critical
Publication of KR102407439B1 publication Critical patent/KR102407439B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • 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
    • G11C7/1066Output synchronization
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • 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
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017545Coupling arrangements; Impedance matching circuits

Abstract

메모리 장치의 트레이닝 방법에서, 메모리 장치의 파워 온(power on) 시에, 메모리 장치에 대한 초기화 동작을 수행한다. 메모리 장치의 복수의 구동 주파수들 각각에 대하여, 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행한다. 트레이닝 동작에 의해 획득된 구동 주파수별 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장한다. 트레이닝 데이터, 메모리 장치의 현재 동작 모드 및 메모리 장치의 현재 구동 주파수에 기초하여, 메모리 장치에 대한 최적의 구동 파라미터를 사용한다.

Description

메모리 장치의 구동 강도, ODT 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩{METHOD OF TRAINING DRIVE STRENGTH, ODT OF MEMORY DEVICE, COMPUTING SYSTEM PERFORMING THE SAME AND SYSTEM ON CHIP PERFORMING THE SAME}
본 발명은 반도체 장치에 관한 것으로서, 더욱 상세하게는 메모리 장치의 트레이닝 방법, 상기 트레이닝 방법을 수행하는 컴퓨팅 시스템 및 시스템 온 칩에 관한 것이다.
시스템 온 칩(system on chip; SOC)은 컴퓨팅 시스템 또는 다른 전자 시스템을 구현하기 위해 CPU(central processing unit), 메모리, 인터페이스(interface), 디지털 신호 처리 회로, 아날로그 신호 처리 회로 등 다양한 기능 블록들을 하나의 반도체 집적 회로에 집적하는 기술 또는 상기 기술에 따라 집적된 하나의 집적 회로(integrated circuit; IC)를 나타낸다. 시스템 온 칩은 업체(vendor), 용량(density), 프로세스(process) 별로 다양한 종류의 메모리 장치와 연동하여 동작할 수 있고, 시스템 온 칩 및/또는 메모리 장치의 동작 환경에 따라서 구동 주파수 및 구동 전압을 동적으로 변경하는 동적 전압 주파수 스케일링(dynamic voltage frequency scaling; DVFS) 기술이 제시되고 있다.
본 발명의 일 목적은 다양한 특성 또는 동작 환경에 따라 최적의 성능을 확보할 수 있는 메모리 장치의 트레이닝 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 트레이닝 방법을 수행하여 메모리 장치의 최적의 성능을 확보할 수 있는 컴퓨팅 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 컴퓨팅 시스템에 포함되고 상기 트레이닝 방법을 수행하는 시스템 온 칩을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법에서, 메모리 장치의 파워 온(power on) 시에, 상기 메모리 장치에 대한 초기화 동작을 수행한다. 상기 메모리 장치의 복수의 구동 주파수들 각각에 대하여, 상기 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행한다. 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장한다. 상기 트레이닝 데이터, 상기 메모리 장치의 현재 동작 모드 및 상기 메모리 장치의 현재 구동 주파수에 기초하여, 상기 메모리 장치에 대한 상기 최적의 구동 파라미터를 사용한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 컴퓨팅 시스템은 메모리 장치 및 호스트를 포함한다. 상기 메모리 장치는 복수의 메모리 셀들을 포함하고, 복수의 구동 주파수들 중 하나에 기초하여 동작한다. 상기 호스트는 파워 온(power on) 시에 상기 메모리 장치에 대한 초기화 동작을 수행하고, 상기 복수의 구동 주파수들 각각에 대하여, 상기 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행하고, 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하며, 상기 트레이닝 데이터, 상기 메모리 장치의 현재 동작 모드 및 상기 메모리 장치의 현재 구동 주파수에 기초하여, 상기 메모리 장치에 대한 상기 최적의 구동 파라미터를 사용한다.
상기 또 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템 온 칩은 파워 온(power on) 시에 외부 메모리 장치에 대한 초기화 동작을 수행하고, 상기 외부 메모리 장치의 복수의 구동 주파수들 각각에 대하여, 상기 외부 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행하고, 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하며, 상기 트레이닝 데이터, 상기 외부 메모리 장치의 현재 동작 모드 및 상기 외부 메모리 장치의 현재 구동 주파수에 기초하여, 상기 외부 메모리 장치에 대한 상기 최적의 구동 파라미터를 사용한다.
상기와 같은 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법 및 이를 수행하는 컴퓨팅 시스템과 시스템 온 칩은, 파워 온 시에 트레이닝 동작을 통해 메모리 장치의 구동 주파수별 설정 가능한 구동 파라미터(예를 들어, 구동 강도, ODT 저항값 등)를 획득할 수 있다. 따라서, 업체, 용량, 프로세스 별로 다양한 종류의 메모리 장치에 대하여, 구동 주파수 및 동작 모드에 따라 최적의 구동 파라미터를 효율적으로 결정할 수 있으며, 메모리 장치의 동작 안정성 확보 및 전력 소모 감소를 모두 충족시킬 수 있다.
또한, 콜드 부팅이 아닌 경우에 이미 저장되어 있는 트레이닝 데이터를 로딩하여 사용함으로써, 부팅 시간(즉, 초기화 시간)을 절약할 수 있다. 이와 함께, 이미 저장되어 있는 트레이닝 데이터를 로딩하기 전에 트레이닝 데이터를 검증하기 위한 동작을 추가적으로 수행할 수도 있다.
도 1은 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 3은 도 2의 컴퓨팅 시스템에 포함되는 메모리 장치의 일 예를 나타내는 블록도이다.
도 4는 도 1의 트레이닝 동작을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 5a 및 5b는 도 4의 트레이닝 동작을 설명하기 위한 도면들이다.
도 6은 도 1의 구동 주파수별 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하는 단계의 일 예를 설명하기 위한 도면이다.
도 7은 도 1의 트레이닝 동작을 수행하는 단계의 다른 예를 나타내는 순서도이다.
도 8a 및 8b는 도 7의 트레이닝 동작을 설명하기 위한 도면들이다.
도 9는 도 1의 구동 주파수별 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하는 단계의 다른 예를 설명하기 위한 도면이다.
도 10, 11 및 12는 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법을 나타내는 순서도들이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법은, 상기 메모리 장치와 연결되고 상기 메모리 장치의 동작을 제어하는 호스트에 의해 수행된다. 상기 메모리 장치 및 상기 호스트를 포함하는 컴퓨팅 시스템의 구조는 도 2를 참조하여 후술하도록 한다.
본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법에서, 상기 메모리 장치의 파워 온(power on) 시에, 상기 메모리 장치에 대한 초기화 동작을 수행한다(단계 S100). 상기 초기화 동작은 부팅(booting) 동작이라고 부를 수 있다. 상기 부팅 동작은 단순히 전원을 인가하는 동작뿐만 아니라 미리 저장된 코드를 로딩하여 상기 메모리 장치가 정상적으로 동작하도록 준비하는 동작을 나타낸다.
상기 메모리 장치에 대한 트레이닝(training) 동작을 수행한다(단계 S200). 상기 메모리 장치는 복수의 구동 주파수들 중 하나에 기초하여 동작하며, 상기 트레이닝 동작은 상기 복수의 구동 주파수들 각각에 대하여, 상기 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 동작을 나타낸다. 다시 말하면, 상기 메모리 장치의 구동 주파수는 상기 메모리 장치의 동작 환경에 따라 변할 수 있고, 상기 트레이닝 동작에 의해 각 구동 주파수마다 적어도 하나의 최적의 구동 파라미터를 대응시킬 수 있다.
상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장한다(단계 S300). 상기 트레이닝 데이터는 상기 호스트 내에 저장될 수 있다.
상기 트레이닝 데이터, 상기 메모리 장치의 현재 동작 모드 및 상기 메모리 장치의 현재 구동 주파수에 기초하여, 상기 메모리 장치에 대한 최적의 구동 파라미터를 사용한다(단계 S400).
일 실시예에서, 상기 메모리 장치는 구동 주파수 및 구동 전압을 동적으로 변경하는 동적 전압 주파수 스케일링(dynamic voltage frequency scaling; DVFS) 기술에 기초하여 동작할 수 있고, 상기 DVFS 기술을 적용하는데 상기 트레이닝 데이터가 이용될 수 있다. 예를 들어, 상기 DVFS 기술에 따라 상기 메모리 장치의 구동 주파수가 변경되는 경우에, 상기 트레이닝 데이터에 기초하여 해당 구동 주파수에 대해 설정 가능한 적어도 하나의 최적의 구동 파라미터를 로딩할 수 있고, 상기 현재 동작 모드에 따라 상기 설정 가능한 구동 파라미터 중 하나를 상기 최적의 구동 파라미터로 사용할 수 있다.
본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법에서는, 트레이닝 동작을 통해 메모리 장치의 구동 주파수별 최적의 구동 파라미터를 결정함으로써, 메모리 장치의 동작 안정성을 확보할 수 있고, 메모리 장치의 불필요한 전류 소모를 방지하여 전력 소모를 감소시킬 수 있다.
도 2는 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2를 참조하면, 컴퓨팅 시스템(10)은 호스트(50) 및 메모리 시스템(100)을 포함한다. 컴퓨팅 시스템(10)은 전원 공급 장치(500)를 더 포함할 수 있다.
일 실시예에서, 컴퓨팅 시스템(10)은 PC(personal computer), 노트북(laptop), 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC, MP3 플레이어, PDA(personal digital assistant), EDA(enterprise digital assistant), PMP(portable multimedia player), 디지털 카메라(digital camera), 음악 재생기(music player), 휴대용 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등의 임의의 전자 기기일 수 있다.
호스트(50)는 컴퓨팅 시스템(10)의 전반적인 동작을 제어할 수 있다. 예를 들어, 호스트(50)는 메모리 시스템(100)에 클럭 신호(CLK) 및 제1 제어 신호(CONT1)를 제공하고, 메모리 시스템(100)과 데이터(DAT)를 주고받으며, 전원 공급 장치(500)에 제2 제어 신호(CONT2)를 제공할 수 있다. 호스트(50)는 적어도 하나의 프로세서(60) 및 내부 메모리(70)를 포함할 수 있다.
프로세서(60)는 운영 체제(operating system; OS)를 실행할 수 있다. 상기 운영 체제는 파일 관리를 위한 파일 시스템 및 주변 기기를 상기 운영 체제 레벨에서 제어하기 위한 장치 드라이버를 포함할 수 있다. 또한, 프로세서(60)는 다양한 서비스를 제공하기 위하여 동영상, 게임, 웹 브라우저 등과 같은 어플리케이션을 실행할 수 있다. 예를 들어, 프로세서(60)는 중앙 처리 장치(central processing unit; CPU), 마이크로프로세서 또는 이와 유사한 임의의 장치일 수 있다.
내부 메모리(70)는 프로세서(60)에 의해 실행 및 처리되는 코드(code), 명령어(instruction) 및 데이터를 저장할 수 있다. 예를 들어, 내부 메모리(70)는 부팅용 저장 장치(booting storage device)일 수 있다. 내부 메모리(70)는 메모리 장치(120)의 초기화 동작 및/또는 부팅 동작을 수행하는데 이용되는 부트 코드(BC)를 저장하고, 도 1을 참조하여 상술한 트레이닝 동작의 결과를 트레이닝 데이터(TDAT)로서 저장할 수 있다. 예를 들어, 내부 메모리(70)는 전원 공급이 중단되더라도 저장된 데이터를 상실하지 않는 임의의 비휘발성 메모리일 수 있다.
일 실시예에서, 호스트(50)는 시스템 온 칩(system on chip; SOC)일 수 있다. 이 경우, 도시하지는 않았지만, 호스트(50)는 인터페이스, 디지털 신호 처리 회로, 아날로그 신호 처리 회로 등 다양한 기능 블록들을 더 포함할 수 있다.
메모리 시스템(100)은 클럭 신호(CLK) 및 제1 제어 신호(CONT1)에 기초하여 동작하며, 호스트(50)와 데이터(DAT)를 주고받을 수 있다. 예를 들어, 메모리 시스템(100)은 호스트(50)의 요청에 따라 데이터(DAT)를 기입하거나, 저장된 데이터(DAT)를 독출하여 호스트(50)에 전송할 수 있다. 메모리 시스템(100)은 메모리 컨트롤러(110), 적어도 하나의 메모리 장치(120) 및 전압 발생기(130)를 포함할 수 있다.
메모리 컨트롤러(110)는 메모리 시스템(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 호스트(50)의 요청에 따라 메모리 장치(120)에 대한 데이터 기입/독출 동작 등을 제어할 수 있다. 메모리 컨트롤러(110)는 메모리 장치(120)에 커맨드(CMD) 및 어드레스(ADDR)를 제공하고, 메모리 장치(120)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있다. 데이터 스트로브 신호(DQS)는 클럭 신호(CLK)에 기초하여 발생될 수 있다. 도시하지는 않았지만, 실시예에 따라서 메모리 컨트롤러(110)는 호스트(50)에 포함될 수도 있다.
전압 발생기(130)는 전원 전압(VPWR)에 기초하여 기준 전압(VREF)을 발생할 수 있다. 기준 전압(VREF)은 데이터 신호(DQ)가 논리 하이 레벨인지 논리 로우 레벨인지 판단하는데 이용될 수 있다. 예를 들어, 전압 발생기(130)는 스위칭 레귤레이터(switching regulator) 및/또는 선형 레귤레이터(linear regulator)(예를 들어, LDO(low dropout) 레귤레이터)를 포함하여 구현될 수 있다.
메모리 장치(120)는 메모리 컨트롤러(110)를 통해 호스트(50)와 통신하고, 데이터를 저장하는 복수의 메모리 셀들을 포함하며, 복수의 랭크(rank)들(122, 124)로 구분될 수 있다. 각 랭크는 복수의 메모리 셀들을 포함할 수 있다. 도 1을 참조하여 상술한 것처럼, 메모리 장치(120)는 복수의 구동 주파수들 중 하나에 기초하여 동작하며, 상기 DVFS 기술에 기초하여 메모리 장치(120)의 구동 주파수가 변경될 수 있다.
일 실시예에서, 메모리 장치(120)는 호스트(50)로부터 제공되는 클럭 신호에 동기하여 동작하며, 전원 공급이 중단될 때 저장된 데이터를 상실하는 휘발성 메모리 장치일 수 있다. 메모리 장치(120)의 구체적인 구조는 도 3을 참조하여 후술하도록 한다.
전원 공급 장치(500)는 제2 제어 신호(CONT2)에 기초하여 전원 전압(VPWR)을 발생할 수 있다. 도시하지는 않았지만, 전원 공급 장치(500)는 호스트(50)에도 전원 전압을 공급할 수 있다.
일 실시예에서, 전원 공급 장치(500)는 전원 관리 집적 회로(power management integrated circuit; PMIC)일 수 있다.
본 발명의 실시예들과 관련하여 컴퓨팅 시스템(10)의 동작을 상세하게 설명하면, 먼저 컴퓨팅 시스템(10) 및 메모리 장치(120)의 파워 온 시에, 호스트(50)는 내부 메모리(70)에 저장된 부트 코드(BC)를 로딩하고 전송하여 메모리 장치(120)에 대한 초기화 동작 또는 부팅 동작을 수행한다. 호스트(50)는 메모리 장치(120)의 상기 복수의 구동 주파수들 각각에 대하여, 메모리 장치(120)의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝 동작을 수행한다. 상기 트레이닝 동작이 수행됨에 따라, 호스트(50)와 메모리 장치(120)(즉, 메모리 시스템(100))는 트레이닝 정보(TINF)를 주고받을 수 있다. 호스트(50)는 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터(TDAT)로서 내부 메모리(70)에 저장한다. 이후에, 호스트(50)는 트레이닝 데이터(TDAT), 메모리 장치(120)의 현재 동작 모드 및 메모리 장치(120)의 현재 구동 주파수에 기초하여, 메모리 장치(120)에 대한 최적의 구동 파라미터를 사용한다. 다시 말하면, 도 1의 단계 S100, S200, S300 및 S400은 모두 호스트(50)에 의해 수행되며, 예를 들어 단계 S100, S200 및 S400은 프로세서(60)에 의해 수행되고 S300은 프로세서(60) 및 내부 메모리(70)에 의해 수행될 수 있다.
도 3은 도 2의 컴퓨팅 시스템에 포함되는 메모리 장치의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 메모리 장치(200)는 제어 로직(210), 리프레쉬 제어 회로(215), 어드레스 레지스터(220), 뱅크 제어 로직(230), 로우 어드레스 멀티플렉서(240), 컬럼 어드레스 래치(250), 로우 디코더, 컬럼 디코더, 메모리 셀 어레이, 센스 앰프부, 입출력 게이팅 회로(290), 데이터 입출력 버퍼(295), ODT(on die termination) 회로(297) 및 데이터 입출력 패드(299)를 포함할 수 있다.
일 실시예에서, 메모리 장치(200)는 도 2의 메모리 장치(120)일 수 있고, 특히 휘발성 메모리 장치일 수 있다. 예를 들어, 메모리 장치(200)는 DRAM(dynamic random access memory), 모바일 DRAM, DDR(dual data rate) DRAM, LPDDR(low power DDR) DRAM, GDDR (graphic DDR) DRAM 등과 같은 임의의 휘발성 메모리 장치들 중 하나일 수 있다.
상기 메모리 셀 어레이는 복수의 메모리 셀들을 포함하고, 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d)을 포함할 수 있다. 또한, 상기 로우 디코더는 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d)에 각각 연결된 제1 내지 제4 뱅크 로우 디코더들(260a, 260b, 260c, 260d)을 포함하고, 상기 컬럼 디코더는 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d)에 각각 연결된 제1 내지 제4 뱅크 컬럼 디코더들(270a, 270b, 270c, 270d)을 포함하며, 상기 센스 앰프부는 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d)에 각각 연결된 제1 내지 제4 뱅크 센스 앰프들(285a, 285b, 285c, 285d)을 포함할 수 있다. 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d), 제1 내지 제4 뱅크 센스 앰프들(285a, 285b, 285c, 285d), 제1 내지 제4 뱅크 로우 디코더들(260a, 260b, 260c, 260d) 및 제1 내지 제4 뱅크 컬럼 디코더들(270a, 270b, 270c, 270d)은 제1 내지 제4 뱅크들을 각각 구성할 수 있다. 도 3에는 네 개의 뱅크들을 포함하는 메모리 장치(200)의 예가 도시되어 있으나, 실시예에 따라서, 메모리 장치(200)는 임의의 수의 뱅크들을 포함할 수 있다.
어드레스 레지스터(220)는 메모리 컨트롤러(예를 들어, 도 2의 110)로부터 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 컬럼 어드레스(COL_ADDR)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 어드레스 레지스터(220)는 수신된 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직(230)에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(240)에 제공하며, 수신된 컬럼 어드레스(COL_ADDR)를 컬럼 어드레스 래치(250)에 제공할 수 있다.
뱅크 제어 로직(230)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 상기 뱅크 제어 신호들에 응답하여, 제1 내지 제4 뱅크 로우 디코더들(260a, 260b, 260c, 260d) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 로우 디코더가 활성화되고, 제1 내지 제4 뱅크 컬럼 디코더들(270a, 270b, 270c, 270d) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 컬럼 디코더가 활성화될 수 있다.
리프레쉬 제어 회로(215)는 리프레쉬 커맨드가 수신되는 경우 또는 셀프 리프레쉬 모드에 진입하는 경우에 리프레쉬 어드레스(REF_ADDR)를 발생할 수 있다. 예를 들어, 리프레쉬 제어 회로(215)는 리프레쉬 어드레스(REF_ADDR)를 상기 메모리 셀 어레이의 첫 번째 어드레스부터 마지막 어드레스까지 순차적으로 변경시키는 리프레쉬 카운터를 포함할 수 있다.
로우 어드레스 멀티플렉서(240)는 어드레스 레지스터(220)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레쉬 제어 회로(215)로부터 리프레쉬 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(240)는 로우 어드레스(ROW_ADDR) 또는 리프레쉬 어드레스(REF_ADDR)를 선택적으로 출력할 수 있다. 로우 어드레스 멀티플렉서(240)로부터 출력된 로우 어드레스는 제1 내지 제4 뱅크 로우 디코더들(260a, 260b, 260c, 260d)에 각각 인가될 수 있다.
제1 내지 제4 뱅크 로우 디코더들(260a, 260b, 260c, 260d) 중 뱅크 제어 로직(230)에 의해 활성화된 뱅크 로우 디코더는 로우 어드레스 멀티플렉서(240)로부터 출력된 로우 어드레스를 디코딩하여 상기 로우 어드레스에 상응하는 워드 라인을 활성화할 수 있다. 예를 들어, 상기 활성화된 뱅크 로우 디코더는 로우 어드레스에 상응하는 워드 라인에 워드 라인 구동 전압을 인가할 수 있다.
컬럼 어드레스 래치(250)는 어드레스 레지스터(220)로부터 컬럼 어드레스(COL_ADDR)를 수신하고, 수신된 컬럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 컬럼 어드레스 래치(250)는 일시적으로 저장된 컬럼 어드레스(COL_ADDR)를 제1 내지 제4 뱅크 컬럼 디코더들(270a, 270b, 270c, 270d)에 각각 인가할 수 있다.
제1 내지 제4 뱅크 컬럼 디코더들(270a, 270b, 270c, 270d) 중 뱅크 제어 로직(230)에 의해 활성화된 뱅크 컬럼 디코더는 입출력 게이팅 회로(290)를 통하여 뱅크 어드레스(BANK_ADDR) 및 컬럼 어드레스(COL_ADDR)에 상응하는 센스 앰프를 활성화시킬 수 있다.
입출력 게이팅 회로(290)는 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d) 중 하나의 뱅크 어레이에서 독출될 데이터(DQ)는 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다. 상기 독출 데이터 래치들에 저장된 데이터(DQ)는 데이터 입출력 버퍼(295) 및 데이터 입출력 패드(299)를 통하여 상기 메모리 컨트롤러에 제공될 수 있다. 제1 내지 제4 뱅크 어레이들(280a, 280b, 280c, 280d) 중 하나의 뱅크 어레이에 기입될 데이터(DQ)는 상기 메모리 컨트롤러로부터 데이터 입출력 패드(299)를 통하여 데이터 입출력 버퍼(295)에 제공될 수 있다. 데이터 입출력 버퍼(295)에 제공된 데이터(DQ)는 상기 기입 드라이버들을 통하여 상기 하나의 뱅크 어레이에 기입될 수 있다.
제어 로직(210)은 메모리 장치(200)의 동작을 제어할 수 있다. 예를 들어, 제어 로직(210)은 메모리 장치(200)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직(210)은 상기 메모리 컨트롤러로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(211) 및 메모리 장치(200)의 동작 모드를 설정하기 위한 모드 레지스터(212)를 포함할 수 있다. 예를 들어, 커맨드 디코더(211)는 기입 인에이블 신호(/WE), 로우 어드레스 스트로브 신호(/RAS), 컬럼 어드레스 스트로브 신호(/CAS), 칩 선택 신호(/CS) 등을 디코딩하여 커맨드(CMD)에 상응하는 상기 제어 신호들을 생성할 수 있다. 또한, 제어 로직(210)은 동기 방식으로 메모리 장치(200)를 구동하기 위한 클럭 신호(CLK) 및 클럭 인에이블 신호(/CKE)를 더 수신할 수 있다.
ODT 회로(297)는 데이터 입출력 패드(299) 및 데이터 입출력 버퍼(295)와 연결될 수 있다. ODT 회로(297)가 활성화되는 경우에 ODT를 수행할 수 있다. 상기 ODT가 수행되는 경우에, 임피던스 매칭에 의해 신호의 반사를 억제함으로써, 송수신되는 신호의 충실도를 향상시킬 수 있다.
도 4는 도 1의 트레이닝 동작을 수행하는 단계의 일 예를 나타내는 순서도이다. 도 5a 및 5b는 도 4의 트레이닝 동작을 설명하기 위한 도면들이다. 도 6은 도 1의 구동 주파수별 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하는 단계의 일 예를 설명하기 위한 도면이다.
도 1, 2, 4, 5a 및 5b를 참조하면, 메모리 장치(120)의 상기 복수의 구동 파라미터들은 메모리 장치(120)의 복수의 구동 강도(drive strength)들을 포함할 수 있다. 상기 구동 강도는 구동 능력(drive capability)이라고 부를 수도 있으며, 일반적으로 구동 강도가 증가할수록 메모리 장치(120)의 동작 안정성이 향상되고 전류 소모가 커질 수 있다.
상기 트레이닝 동작을 수행하는데 있어서(단계 S200), 메모리 장치(120)의 상기 복수의 구동 주파수들 및 상기 복수의 구동 강도들에 대하여, 복수의 데이터 유효 윈도우(data valid window)들을 측정할 수 있다(단계 S210).
일 실시예에서, 상기 복수의 구동 강도들은 제1 구동 강도(DS1), 제2 구동 강도(DS2), 제3 구동 강도(DS3) 및 제4 구동 강도(DS4)를 포함할 수 있다. 이 경우, 메모리 장치(120)의 각 구동 주파수마다 제1 내지 제4 구동 강도들(DS1, DS2, DS3, DS4)에 대한 데이터 유효 윈도우들을 측정할 수 있다.
구체적으로, 도 5a에 도시된 것처럼, 메모리 장치(120)의 상기 복수의 구동 주파수들 중 제1 구동 주파수(F1)에 대한 데이터 유효 윈도우들을 측정할 수 있다. 예를 들어, 제1 구동 주파수(F1) 및 제1 구동 강도(DS1)에 대한 데이터 유효 윈도우(DVW_F1_DS1)를 측정하고, 제1 구동 주파수(F1) 및 제2 구동 강도(DS2)에 대한 데이터 유효 윈도우(DVW_F1_DS2)를 측정하고, 제1 구동 주파수(F1) 및 제3 구동 강도(DS3)에 대한 데이터 유효 윈도우(DVW_F1_DS3)를 측정하며, 제1 구동 주파수(F1) 및 제4 구동 강도(DS4)에 대한 데이터 유효 윈도우(DVW_F1_DS4)를 측정할 수 있다.
도 5a에서, 각 데이터 유효 윈도우는 17*16(가로*세로)개의 사각형 블록들을 포함하는 것으로 도시하였다. 사각형 블록들 중 비어있는 사각형 블록은 데이터가 유효한 것으로 판단되는 유효(valid 또는 pass) 영역을 나타내고, 빗금 친 사각형 블록은 데이터가 유효하지 않은 것으로 판단되는 무효(invalid 또는 fail) 영역을 나타낸다.
일 실시예에서, 제1 구동 강도(DS1), 제2 구동 강도(DS2), 제3 구동 강도(DS3), 제4 구동 강도(DS4)의 순서로 값이 증가할 수 있다. 다시 말하면, 제1 구동 강도(DS1)가 가장 작은 값을 가지고, 제4 구동 강도(DS4)가 가장 큰 값을 가질 수 있다. 일반적으로 구동 강도가 증가할수록 유효 영역의 크기가 증가하며(즉, 구동 강도와 유효 영역의 크기는 비례 관계), 따라서 데이터 유효 윈도우(DVW_F1_DS1)의 유효 영역의 크기가 가장 작고, 데이터 유효 윈도우(DVW_F1_DS4)의 유효 영역의 크기가 가장 클 수 있다.
일 실시예에서, 상기 복수의 데이터 유효 윈도우들을 측정하는데 있어서(단계 S210), 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)에 기초하여 상기 복수의 데이터 유효 윈도우들의 제1 방향(D1)의 범위를 측정할 수 있고, 기준 전압(VREF)에 기초하여 상기 복수의 데이터 유효 윈도우들의 제2 방향(D2)의 범위를 측정할 수 있다. 제2 방향(D2)은 제1 방향(D1)과 교차하며, 예를 들어 직교할 수 있다.
구체적으로, 클럭 신호(CLK)를 기초로 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS) 중 하나를 고정하고 다른 하나를 쉬프트하여, 데이터 유효 윈도우(DVW_F1_DS1)의 제1 방향(D1)의 범위가 측정될 수 있다. 제1 방향(D1)은 시간의 변화를 나타내며, 일반적으로 데이터 신호(DQ) 또는 데이터 스트로브 신호(DQS)는 시간의 흐름에 따라 반복적으로 논리 하이 레벨 및 논리 로우 레벨 중 하나에서 다른 하나로 천이(즉, 토글(toggle))될 수 있다. 다시 말하면, 데이터 신호(DQ) 또는 데이터 스트로브 신호(DQS) 내에서 상승 에지(rising edge) 및 하강 에지(falling edge)가 반복될 수 있다. 예를 들어, 데이터 신호(DQ)를 고정하고 데이터 스트로브 신호(DQS)를 제1 방향(D1)으로 미리 정해진 단위(예를 들어, 하나의 사각형 블록의 가로 길이)만큼 반복적으로 쉬프트함으로써, 데이터 스트로브 신호(DQS)의 각 상승 에지 또는 각 하강 에지에서 데이터 신호(DQ)의 유효 영역을 검출하며, 결과적으로 데이터 유효 윈도우(DVW_F1_DS1)의 제1 방향(D1)의 범위가 측정될 수 있다.
또한, 전원 전압(VPWR)을 기초로 발생된 기준 전압(VREF)의 레벨을 쉬프트하여, 데이터 유효 윈도우(DVW_F1_DS1)의 제2 방향(D2)의 범위가 측정될 수 있다. 제2 방향(D2)은 전압 레벨의 변화를 나타내며, 도 2를 참조하여 상술한 것처럼 기준 전압(VREF)은 데이터 신호(DQ)가 논리 하이 레벨인지 논리 로우 레벨인지 판단하는데 이용될 수 있다. 예를 들어, 데이터 신호(DQ)를 고정하고 기준 전압(VREF)의 레벨을 제2 방향(D2)으로 미리 정해진 단위(예를 들어, 하나의 사각형 블록의 세로 길이)만큼 반복적으로 쉬프트함으로써, 기준 전압(VREF)의 각 레벨에서 데이터 신호(DQ)의 유효 영역을 검출하며, 결과적으로 데이터 유효 윈도우(DVW_F1_DS1)의 제2 방향(D2)의 범위가 측정될 수 있다.
상기 복수의 데이터 유효 윈도우들을 측정(단계 S210)한 이후에, 상기 측정된 복수의 데이터 유효 윈도우들 중 미리 정해진 스크린 가이드(screen guide)를 만족하는 데이터 유효 윈도우들을 선택할 수 있다(단계 S220).
일 실시예에서, 상기 미리 정해진 스크린 가이드는 기준 윈도우의 형태로 표현될 수 있고, 각 데이터 유효 윈도우의 유효 영역이 상기 기준 윈도우를 포함하는 경우에 상기 미리 정해진 스크린 가이드를 만족하는 것으로 판단될 수 있다. 예를 들어, 도 5b에 도시된 것처럼, 데이터 유효 윈도우(DVW_F1_DS1)는 기준 윈도우(RW) 내에 빗금 친 사각형 블록이 포함되어 있어, 상기 미리 정해진 스크린 가이드를 만족하지 못할 수 있다. 데이터 유효 윈도우들(DVW_F1_DS2, DVW_F1_DS3, DVW_F1_DS4)은 기준 윈도우(RW) 내에 비어있는 사각형 블록들만이 포함되어 있어, 상기 미리 정해진 스크린 가이드를 만족할 수 있으며, 따라서 단계 S220에서 제1 구동 주파수(F1)에 대하여 데이터 유효 윈도우들(DVW_F1_DS2, DVW_F1_DS3, DVW_F1_DS4)이 선택될 수 있다.
도 5b에서, 기준 윈도우(RW)는 9*4개의 사각형 블록들을 포함하는 것으로 도시하였으며, 각 데이터 유효 윈도우의 가장 좌측 및 상단의 사각형 블록의 좌표를 (1,1)이라고 정의하였을 때 기준 윈도우의 가장 좌측 및 상단의 사각형 블록의 좌표가 (5,6)인 것으로 도시하였다.
한편, 도 5a 및 5b를 참조하여 메모리 장치(120)의 상기 복수의 구동 주파수들 중 제1 구동 주파수(F1)에 대하여 데이터 유효 윈도우들(DVW_F1_DS1, DVW_F1_DS2, DVW_F1_DS3, DVW_F1_DS4)이 측정되고 기준 윈도우(RW)를 기초로 그 중 일부가 선택되는 것으로 설명하였으나, 상기 복수의 구동 주파수들 중 제1 구동 주파수(F1)를 제외한 나머지 구동 주파수들(예를 들어, 제2 구동 주파수(F2) 등) 각각에 대하여 데이터 유효 윈도우들이 측정되고 그 중 일부가 선택될 수 있다.
도 1, 2 및 6을 참조하면, 상기 트레이닝 동작을 수행(단계 S200)한 이후에, 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터(TDAT)로서 저장한다(단계 S300). 예를 들어, 트레이닝 데이터(TDAT)는 호스트(50)에 포함되는 내부 메모리(70)에 저장될 수 있다.
일 실시예에서, 도 4의 단계 S220에 의해 획득된 상기 선택된 데이터 유효 윈도우들에 기초하여, 메모리 장치(120)의 상기 복수의 구동 주파수들 및 상기 복수의 구동 주파수들 각각에 대한 설정 가능한 구동 강도들의 관계를 트레이닝 데이터(TDAT)로서 저장할 수 있다. 예를 들어, 도 6에 도시된 것처럼, 트레이닝 데이터(TDAT)는 상기 복수의 구동 주파수들과 이에 대응하는 상기 설정 가능한 구동 강도들을 나타내는 테이블의 형태로 저장될 수 있다. 도 5a 및 5b를 참조하여 상술한 것처럼, 제1 구동 주파수(F1)에 대하여 제2, 제3 및 제4 구동 강도들(DS2, DS3, DS4)이 설정 가능한 것으로 기록되고, 이와 유사하게 제2 구동 주파수(F2)에 대하여 제3 및 제4 구동 강도들(DS3, DS4)이 설정 가능한 것으로 기록되며, 그 밖에 구동 주파수들에 대해서도 설정 가능한 구동 강도들이 기록될 수 있다.
한편, 트레이닝 데이터(TDAT)가 저장(단계 S300)된 이후에, 트레이닝 데이터(TDAT), 메모리 장치(120)의 현재 동작 모드 및 메모리 장치(120)의 현재 구동 주파수에 기초하여, 메모리 장치(120)에 대한 최적의 구동 파라미터를 사용한다(단계 S400). 도 4 내지 6을 참조하여 상술한 것처럼, 상기 복수의 구동 파라미터들은 상기 복수의 구동 강도들을 포함하므로, 단계 S400에서 최적의 구동 강도를 사용할 수 있다.
일 실시예에서, 메모리 장치(120)의 동작 모드는 저전력 모드를 포함할 수 있다. 상기 현재 동작 모드가 상기 저전력 모드인 경우에, 상술한 것처럼 구동 강도가 증가(감소)할수록 전류 소모가 커지므로(작아지므로), 상기 현재 구동 주파수에 대한 상기 설정 가능한 구동 강도들 중 최소의 구동 강도를 상기 최적의 구동 파라미터로 결정할 수 있다. 예를 들어, 상기 현재 동작 모드가 상기 저전력 모드이고 상기 현재 구동 주파수가 제1 구동 주파수(F1)인 경우에, 제2 구동 강도(DS2)를 상기 최적의 구동 파라미터로 결정할 수 있다.
일 실시예에서, 메모리 장치(120)의 동작 모드는 고성능 모드를 포함할 수 있다. 상기 현재 동작 모드가 상기 고성능 모드인 경우에, 상술한 것처럼 구동 강도가 증가할수록 동작 안정성이 향상되므로, 상기 현재 구동 주파수에 대한 상기 설정 가능한 구동 강도들 중 최대의 구동 강도를 상기 최적의 구동 파라미터로 결정할 수 있다. 예를 들어, 상기 현재 동작 모드가 상기 저전력 모드이고 상기 현재 구동 주파수가 제1 구동 주파수(F1)인 경우에, 제4 구동 강도(DS4)를 상기 최적의 구동 파라미터로 결정할 수 있다.
일 실시예에서, 상기 DVFS 기술에 따라 메모리 장치(120)의 구동 주파수가 변경되는 경우에, 상기 최적의 구동 강도 또한 변경될 수 있다.
도 7은 도 1의 트레이닝 동작을 수행하는 단계의 다른 예를 나타내는 순서도이다. 도 8a 및 8b는 도 7의 트레이닝 동작을 설명하기 위한 도면들이다. 도 9는 도 1의 구동 주파수별 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하는 단계의 다른 예를 설명하기 위한 도면이다.
도 1, 2, 7, 8a 및 8b를 참조하면, 메모리 장치(120)의 상기 복수의 구동 파라미터들은 메모리 장치(120)의 복수의 ODT(on die termination) 저항값들을 포함할 수 있다. ODT 기능은 임피던스 매칭(impedance matching)을 위해 신호의 전송 라인에 터미네이션 저항 성분을 제공하는 ODT 회로(예를 들어, 도 3의 297)에 의해 수행되며, ODT 기능에 의해 신호의 반사를 억제함으로써 송수신되는 신호의 충실도(signal integrity)를 향상시킬 수 있다. 예를 들어, 상기 ODT 저항값은 상기 터미네이션 저항 성분의 저항 값을 나타낼 수 있다.
상기 트레이닝 동작을 수행하는데 있어서(단계 S200), 메모리 장치(120)의 상기 복수의 구동 주파수들 및 상기 복수의 ODT 저항값들에 대하여, 복수의 데이터 유효 윈도우들을 측정할 수 있다(단계 S230). 단계 S230은 도 4의 단계 S210과 유사할 수 있다.
일 실시예에서, 상기 복수의 ODT 저항값들은 제1 ODT 저항값(OV1), 제2 ODT 저항값(OV2), 제3 ODT 저항값(OV3) 및 제4 ODT 저항값(OV4)을 포함할 수 있다. 이 경우, 메모리 장치(120)의 각 구동 주파수마다 제1 내지 제4 ODT 저항값들(OV1, OV2, OV3, OV4)에 대한 데이터 유효 윈도우들을 측정할 수 있다.
구체적으로, 도 8a에 도시된 것처럼, 메모리 장치(120)의 상기 복수의 구동 주파수들 중 제1 구동 주파수(F1)에 대한 데이터 유효 윈도우들을 측정할 수 있다. 예를 들어, 제1 구동 주파수(F1) 및 제1 ODT 저항값(OV1)에 대한 데이터 유효 윈도우(DVW_F1_OV1)를 측정하고, 제1 구동 주파수(F1) 및 제2 ODT 저항값(OV2)에 대한 데이터 유효 윈도우(DVW_F1_OV2)를 측정하고, 제1 구동 주파수(F1) 및 제3 ODT 저항값(OV3)에 대한 데이터 유효 윈도우(DVW_F1_OV3)를 측정하며, 제1 구동 주파수(F1) 및 제4 ODT 저항값(OV4)에 대한 데이터 유효 윈도우(DVW_F1_OV4)를 측정할 수 있다.
일 실시예에서, 제1 ODT 저항값(OV1), 제2 ODT 저항값(OV2), 제3 ODT 저항값(OV3), 제4 ODT 저항값(OV4)의 순서로 값이 감소할 수 있다. 다시 말하면, 제1 ODT 저항값(OV1)이 가장 큰 값을 가지고, 제4 ODT 저항값(OV4)이 가장 작은 값을 가질 수 있다. 일반적으로 ODT 저항값이 증가할수록 유효 영역의 크기가 감소하며(즉, ODT 저항값과 유효 영역의 크기는 반비례 관계), 따라서 데이터 유효 윈도우(DVW_F1_OV1)의 유효 영역의 크기가 가장 작고, 데이터 유효 윈도우(DVW_F1_OV4)의 유효 영역의 크기가 가장 클 수 있다.
일 실시예에서, 상기 복수의 데이터 유효 윈도우들을 측정하는데 있어서(단계 S230), 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)에 기초하여 상기 복수의 데이터 유효 윈도우들의 제1 방향(D1)의 범위를 측정할 수 있고, 기준 전압(VREF)에 기초하여 상기 복수의 데이터 유효 윈도우들의 제2 방향(D2)의 범위를 측정할 수 있다. 예를 들어, 도 5a를 참조하여 상술한 것과 유사하게, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS) 중 하나를 고정하고 다른 하나를 쉬프트하여, 데이터 유효 윈도우(DVW_F1_OV1)의 제1 방향(D1)의 범위가 측정되고, 기준 전압(VREF)의 레벨을 쉬프트하여, 데이터 유효 윈도우(DVW_F1_OV1)의 제2 방향(D2)의 범위가 측정될 수 있다.
상기 복수의 데이터 유효 윈도우들을 측정(단계 S230)한 이후에, 상기 측정된 복수의 데이터 유효 윈도우들 중 미리 정해진 스크린 가이드를 만족하는 데이터 유효 윈도우들을 선택할 수 있다(단계 S240). 단계 S240은 도 4의 단계 S220과 실질적으로 동일할 수 있다.
일 실시예에서, 상기 미리 정해진 스크린 가이드는 기준 윈도우로 표현될 수 있고, 각 데이터 유효 윈도우의 유효 영역이 상기 기준 윈도우를 포함하는 경우에 상기 미리 정해진 스크린 가이드를 만족하는 것으로 판단될 수 있다. 예를 들어, 도 8b에 도시된 것처럼, 데이터 유효 윈도우들(DVW_F1_OV1, DVW_F1_OV2)은 기준 윈도우(RW) 내에 빗금 친 사각형 블록이 포함되어 있어, 상기 미리 정해진 스크린 가이드를 만족하지 못할 수 있다. 데이터 유효 윈도우들(DVW_F1_OV3, DVW_F1_OV4)은 기준 윈도우(RW) 내에 비어있는 사각형 블록들만이 포함되어 있어, 상기 미리 정해진 스크린 가이드를 만족할 수 있으며, 따라서 단계 S240에서 제1 구동 주파수(F1)에 대하여 데이터 유효 윈도우들(DVW_F1_OV3, DVW_F1_OV4)이 선택될 수 있다.
도 8a에서 각 데이터 유효 윈도우의 크기와, 도 8b에서 기준 윈도우(RW)의 크기 및 위치는 도 5a 및 5b를 참조하여 상술한 것과 실질적으로 동일할 수 있다. 실시예에 따라서, 구동 강도와 관련된 기준 윈도우의 크기 또는 위치는 ODT 저항값과 관련된 기준 윈도우의 크기 또는 위치와 서로 다를 수도 있다.
한편, 도 8a 및 8b를 참조하여 메모리 장치(120)의 상기 복수의 구동 주파수들 중 제1 구동 주파수(F1)에 대하여 데이터 유효 윈도우들(DVW_F1_OV1, DVW_F1_OV2, DVW_F1_OV3, DVW_F1_OV4)이 측정되고 기준 윈도우(RW)를 기초로 그 중 일부가 선택되는 것으로 설명하였으나, 상기 복수의 구동 주파수들 중 제1 구동 주파수(F1)를 제외한 나머지 구동 주파수들 각각에 대하여 데이터 유효 윈도우들이 측정되고 그 중 일부가 선택될 수 있다.
도 1, 2 및 9를 참조하면, 상기 트레이닝 동작을 수행(단계 S200)한 이후에, 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터(TDAT)로서 저장한다(단계 S300).
일 실시예에서, 도 7의 단계 S240에 의해 획득된 상기 선택된 데이터 유효 윈도우들에 기초하여, 메모리 장치(120)의 상기 복수의 구동 주파수들 및 상기 복수의 구동 주파수들 각각에 대한 설정 가능한 ODT 저항값들의 관계를 트레이닝 데이터(TDAT)로서 저장할 수 있다. 예를 들어, 도 9에 도시된 것처럼, 트레이닝 데이터(TDAT)는 상기 복수의 구동 주파수들과 이에 대응하는 상기 설정 가능한 ODT 저항값들을 나타내는 테이블의 형태로 저장될 수 있다. 도 8a 및 8b를 참조하여 상술한 것처럼, 제1 구동 주파수(F1)에 대하여 제3 및 제4 ODT 저항값들(OV3, OV4)이 설정 가능한 것으로 기록되고, 이와 유사하게 제2 구동 주파수(F2)에 대하여 제2, 제3 및 제4 ODT 저항값들(OV2, OV3, OV4)이 설정 가능한 것으로 기록되며, 그 밖에 구동 주파수들에 대해서도 설정 가능한 ODT 저항값들이 기록될 수 있다.
한편, 트레이닝 데이터(TDAT)가 저장(단계 S300)된 이후에, 트레이닝 데이터(TDAT), 메모리 장치(120)의 현재 동작 모드 및 메모리 장치(120)의 현재 구동 주파수에 기초하여, 메모리 장치(120)에 대한 최적의 구동 파라미터를 사용한다(단계 S400). 도 7 내지 9를 참조하여 상술한 것처럼, 상기 복수의 구동 파라미터들은 상기 복수의 ODT 저항값들을 포함하므로, 단계 S400에서 최적의 ODT 저항값을 사용할 수 있다.
일 실시예에서, 상기 현재 동작 모드가 상기 저전력 모드인 경우에, 상기 현재 구동 주파수에 대한 상기 설정 가능한 ODT 저항값들 중 최대의 ODT 저항값을 상기 최적의 구동 파라미터로 결정할 수 있다. 일 실시예에서, 상기 현재 동작 모드가 상기 고성능 모드인 경우에, 상기 현재 구동 주파수에 대한 상기 설정 가능한 ODT 저항값들 중 최소의 ODT 저항값을 상기 최적의 구동 파라미터로 결정할 수 있다. 일 실시예에서, 상기 DVFS 기술에 따라 메모리 장치(120)의 구동 주파수가 변경되는 경우에, 상기 최적의 ODT 저항값 또한 변경될 수 있다.
한편, 실시예에 따라서, 메모리 장치(120)의 상기 복수의 구동 파라미터들은 도 4 내지 6을 참조하여 상술한 상기 복수의 구동 강도들 및 도 7 내지 9를 참조하여 상술한 상기 복수의 ODT 저항값들을 모두 포함할 수 있다. 이 경우, 상기 복수의 구동 주파수들, 상기 복수의 구동 강도들 및 상기 복수의 ODT 저항값들에 대하여 복수의 데이터 유효 윈도우들을 측정하고, 상기 미리 정해진 스크린 가이드를 만족하는 데이터 유효 윈도우들을 선택하고, 이를 기초로 각 구동 주파수에 대한 설정 가능한 구동 강도들 및 ODT 저항값들의 관계를 트레이닝 데이터로 저장하며, 상기 트레이닝 데이터에 기초하여 최적의 구동 강도 및 최적의 ODT 저항값을 결정할 수 있다.
한편, 도 4 내지 9를 참조하여 특정 개수의 구동 주파수들, 구동 강도들, ODT 저항값들에 기초한 본 발명의 실시예들을 설명하였으나, 본 발명은 이에 한정되지 않으며, 임의의 개수의 구동 주파수들, 구동 강도들, ODT 저항값들을 가지는 메모리 장치를 트레이닝 하는데 적용될 수 있다. 또한, 메모리 장치(120)의 구동 파라미터의 예시로서 구동 강도 및 ODT 저항값을 설명하였으나, 본 발명은 이에 한정되지 않으며, 트레이닝 동작을 수행하여 구동 주파수별 최적의 임의의 구동 파라미터를 결정하는데 적용될 수 있다.
한편, 도 1 내지 9를 참조하여 메모리 장치(120)가 특정 구동 주파수 및 특정 동작 모드로 동작하는 경우에, 해당 구동 주파수 및 해당 동작 모드에 대해 하나의 최적의 구동 파라미터가 결정되는 것으로 본 발명의 실시예들을 설명하였으나, 본 발명은 이에 한정되지 않으며, 도 2에 도시된 것처럼 메모리 장치(120)가 복수의 랭크들(122, 124)을 포함하는 경우에, 상기 최적의 구동 파라미터는 복수의 랭크들(122, 124) 각각에 대해 서로 다르게 결정될 수 있다. 예를 들어, 상기 현재 동작 모드가 상기 저전력 모드이고 상기 현재 구동 주파수가 제1 구동 주파수(F1)인 경우에, 랭크(122)에 대해서는 제2 구동 강도(DS2)를 상기 최적의 구동 파라미터로 결정하고 랭크(124)에 대해서는 제3 구동 강도(DS3)를 상기 최적의 구동 파라미터로 결정할 수 있다.
본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 호스트(예를 들어, 시스템 온 칩)에서는, 파워 온 시에 트레이닝 동작을 통해 메모리 장치의 구동 주파수별 설정 가능한 구동 파라미터(예를 들어, 구동 강도, ODT 저항값 등)를 획득할 수 있다. 따라서, 업체, 용량, 프로세스 별로 다양한 종류의 메모리 장치에 대하여, 구동 주파수 및 동작 모드에 따라 최적의 구동 파라미터를 효율적으로 결정할 수 있으며, 메모리 장치의 동작 안정성 확보 및 전력 소모 감소를 모두 충족시킬 수 있다.
도 10, 11 및 12는 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법을 나타내는 순서도들이다.
도 10을 참조하면, 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법은, 단계 S500 및 S600을 더 포함하는 것을 제외하면 도 1의 메모리 장치의 트레이닝 방법과 실질적으로 동일할 수 있다. 따라서, 중복되는 설명은 생략하도록 한다.
상기 메모리 장치의 파워 온 시에 상기 메모리 장치에 대한 초기화 동작을 수행(단계 S100)한 이후에, 상기 초기화 동작이 콜드 부팅(cold booting)인지 판단할 수 있다(단계 S500). 상기 콜드 부팅은 상기 메모리 장치에 대해 최초로 수행되는 부팅 동작, 즉 상기 메모리 장치 또는 상기 메모리 장치를 포함하는 컴퓨팅 시스템이 제조 및/또는 사용자에게 판매된 이후에 처음으로 수행되는 부팅 동작을 나타낼 수 있다.
상기 초기화 동작이 상기 콜드 부팅인 경우에(단계 S500: 예), 단계 S200의 상기 트레이닝 동작, 단계 S300의 상기 트레이닝 데이터를 저장하는 동작 및 단계 S400의 상기 최적의 구동 파라미터를 사용하는 동작이 수행된다.
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에(단계 S500: 아니오), 즉 상기 초기화 동작이 재부팅(rebooting) 또는 리셋(reset) 동작인 경우에, 이는 상기 콜드 부팅이 이미 수행되었으며 이에 따라 단계 S200의 상기 트레이닝 동작 및 단계 S300의 상기 저장 동작 역시 이미 수행된 것이므로, 호스트(예를 들어, 도 2의 호스트(50))의 부팅용 저장 장치(예를 들어, 도 2의 내부 메모리(70))에 이미 저장되어 있는 상기 트레이닝 데이터를 로딩(loading)(또는 restoring)할 수 있다(단계 S600).
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에(단계 S500: 아니오), 단계 S400의 상기 최적의 구동 파라미터 사용 동작은, 단계 S200 및 S300에서 획득된 상기 트레이닝 데이터에 기초하여 수행되지 않으며, 단계 S600에서 로딩된 상기 이미 저장되어 있는 트레이닝 데이터에 기초하여 수행될 수 있다. 다시 말하면, 상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 단계 S200의 상기 트레이닝 동작 및 단계 S300의 상기 저장 동작은 생략될 수 있다.
도 11을 참조하면, 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법은, 단계 S700을 더 포함하는 것을 제외하면 도 10의 메모리 장치의 트레이닝 방법과 실질적으로 동일할 수 있다. 따라서, 중복되는 설명은 생략하도록 한다.
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에(단계 S500: 아니오), 상기 이미 저장되어 있는 트레이닝 데이터를 로딩하기 전에 상기 이미 저장되어 있는 트레이닝 데이터가 정상인지 판단할 수 있다(단계 S700).
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우(단계 S500: 아니오), 및 상기 이미 저장되어 있는 트레이닝 데이터가 정상인 경우에(단계 S700: 예), 상기 이미 저장되어 있는 트레이닝 데이터를 로딩할 수 있고(단계 S600), 단계 S400의 상기 최적의 구동 파라미터 사용 동작은 단계 S600에서 로딩된 상기 이미 저장되어 있는 트레이닝 데이터에 기초하여 수행될 수 있다. 다시 말하면, 단계 S200의 상기 트레이닝 동작 및 단계 S300의 상기 저장 동작은 생략될 수 있다.
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우(단계 S500: 아니오), 및 상기 이미 저장되어 있는 트레이닝 데이터가 정상이 아닌 경우에(단계 S700: 아니오), 이는 상기 트레이닝 데이터가 저장된 상기 부팅용 저장 장치에 문제가 있거나 외부로부터 공격(예를 들어, 해킹 등)을 받는 등 상기 트레이닝 데이터가 손상된 것이므로, 단계 S200의 상기 트레이닝 동작 및 단계 S300의 상기 저장 동작을 다시 수행할 수 있으며, 단계 S400의 상기 최적의 구동 파라미터 사용 동작은 단계 S200에서 획득된 상기 트레이닝 데이터에 기초하여 수행될 수 있다.
도 12를 참조하면, 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법은, 단계 S800을 더 포함하는 것을 제외하면 도 10의 메모리 장치의 트레이닝 방법과 실질적으로 동일할 수 있다. 따라서, 중복되는 설명은 생략하도록 한다.
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에(단계 S500: 아니오), 상기 이미 저장되어 있는 트레이닝 데이터를 로딩하기 전에 상기 트레이닝 데이터의 저장 시간이 기준 시간보다 짧은지 판단할 수 있다(단계 S800).
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우(단계 S500: 아니오), 및 상기 트레이닝 데이터의 저장 시간이 상기 기준 시간보다 짧은 경우에(단계 S800: 예), 상기 이미 저장되어 있는 트레이닝 데이터를 로딩할 수 있고(단계 S600), 단계 S400의 상기 최적의 구동 파라미터 사용 동작은 단계 S600에서 로딩된 상기 이미 저장되어 있는 트레이닝 데이터에 기초하여 수행될 수 있다.
상기 초기화 동작이 상기 콜드 부팅이 아닌 경우(단계 S500: 아니오), 및 상기 트레이닝 데이터의 저장 시간이 상기 기준 시간보다 길거나 같은 경우에(단계 S800: 아니오), 이는 상기 트레이닝 동작이 수행된 시점으로부터 상당한 시간이 경과하여 상기 트레이닝 데이터가 손상되었거나 상기 메모리 장치의 특성이 바뀌는 등 상기 트레이닝 데이터의 신뢰성을 보장할 수 없는 상태가 된 것이므로, 단계 S200의 상기 트레이닝 동작 및 단계 S300의 상기 저장 동작을 다시 수행할 수 있으며, 단계 S400의 상기 최적의 구동 파라미터 사용 동작은 단계 S200에서 획득된 상기 트레이닝 데이터에 기초하여 수행될 수 있다.
일 실시예에서, 도 10, 11 및 12의 단계 S500 및 S600, 도 11의 단계 S700 및 도 12의 단계 S800은 호스트(예를 들어, 도 2의 50)에 의해 수행되며, 특히 상기 호스트에 포함되는 프로세서(예를 들어, 도 2의 60)에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법에서는, 파워 온 시에 트레이닝 동작을 통해 메모리 장치의 구동 주파수별 설정 가능한 구동 파라미터(예를 들어, 구동 강도, ODT 저항값 등)를 획득하여, 구동 주파수 및 동작 모드에 따라 최적의 구동 파라미터를 효율적으로 결정할 수 있다. 또한, 콜드 부팅이 아닌 경우에 이미 저장되어 있는 트레이닝 데이터를 로딩하여 사용함으로써, 부팅 시간(즉, 초기화 시간)을 절약할 수 있다. 이와 함께, 이미 저장되어 있는 트레이닝 데이터를 로딩하기 전에 트레이닝 데이터를 검증하기 위한 동작을 추가적으로 수행할 수도 있다.
한편, 본 발명의 실시예들에 따른 메모리 장치의 트레이닝 방법은, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
본 발명은 시스템 온 칩 및 메모리 장치를 포함하는 다양한 장치 및 시스템에 적용될 수 있다. 따라서, 본 발명은 휴대폰, 스마트 폰, PDA, PMP, 디지털 카메라, 캠코더, PC, 서버 컴퓨터, 워크스테이션, 노트북, 디지털 TV, 셋-탑 박스, 음악 재생기, 휴대용 게임 콘솔, 네비게이션 기기, 웨어러블 기기, IoT 기기, VR 기기, AR 기기 등과 같은 다양한 형태의 전자 기기를 포함하는 시스템에 확대 적용될 수 있을 것이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 메모리 장치의 파워 온(power on) 시에, 상기 메모리 장치에 대한 초기화 동작을 수행하는 단계;
    상기 메모리 장치의 복수의 구동 주파수들 각각에 대하여, 상기 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행하는 단계;
    상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하는 단계; 및
    상기 트레이닝 데이터, 상기 메모리 장치의 현재 동작 모드 및 상기 메모리 장치의 현재 구동 주파수에 기초하여, 상기 메모리 장치에 대한 상기 최적의 구동 파라미터를 사용하는 단계를 포함하는 메모리 장치의 트레이닝 방법.
  2. 제 1 항에 있어서,
    상기 복수의 구동 파라미터들은 상기 메모리 장치의 복수의 구동 강도(drive strength)들을 포함하고,
    상기 트레이닝 동작을 수행하는 단계는,
    상기 복수의 구동 주파수들 및 상기 복수의 구동 강도들에 대하여, 상기 메모리 장치의 복수의 데이터 유효 윈도우(data valid window)들을 측정하는 단계; 및
    상기 측정된 복수의 데이터 유효 윈도우들 중 미리 정해진 스크린 가이드(screen guide)를 만족하는 데이터 유효 윈도우들을 선택하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  3. 제 2 항에 있어서, 상기 복수의 데이터 유효 윈도우들을 측정하는 단계는,
    데이터 신호 및 데이터 스트로브 신호에 기초하여 상기 복수의 데이터 유효 윈도우들의 제1 방향의 범위를 측정하는 단계; 및
    기준 전압에 기초하여 상기 복수의 데이터 유효 윈도우들의 상기 제1 방향과 교차하는 제2 방향의 범위를 측정하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  4. 제 3 항에 있어서,
    상기 데이터 신호 및 상기 데이터 스트로브 신호 중 하나를 고정하고 다른 하나를 쉬프트하여, 상기 복수의 데이터 유효 윈도우들의 상기 제1 방향의 범위가 측정되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  5. 제 3 항에 있어서,
    상기 기준 전압의 레벨을 쉬프트하여, 상기 복수의 데이터 유효 윈도우들의 상기 제2 방향의 범위가 측정되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  6. 제 2 항에 있어서, 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 상기 트레이닝 데이터로서 저장하는 단계는,
    상기 선택된 데이터 유효 윈도우들에 기초하여, 상기 복수의 구동 주파수들 및 상기 복수의 구동 주파수들 각각에 대한 설정 가능한 구동 강도들의 관계를 상기 트레이닝 데이터로서 저장하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  7. 제 6 항에 있어서,
    상기 메모리 장치의 동작 모드는 저전력 모드 및 고성능 모드를 포함하고,
    상기 현재 동작 모드가 상기 저전력 모드인 경우에, 상기 설정 가능한 구동 강도들 중 최소의 구동 강도를 상기 최적의 구동 파라미터로 결정하며,
    상기 현재 동작 모드가 상기 고성능 모드인 경우에, 상기 설정 가능한 구동 강도들 중 최대의 구동 강도를 상기 최적의 구동 파라미터로 결정하는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  8. 제 1 항에 있어서,
    상기 복수의 구동 파라미터들은 상기 메모리 장치의 복수의 ODT(on die termination) 저항값들을 포함하고,
    상기 트레이닝 동작을 수행하는 단계는,
    상기 복수의 구동 주파수들 및 상기 복수의 ODT 저항값들에 대하여, 상기 메모리 장치의 복수의 데이터 유효 윈도우들을 측정하는 단계; 및
    상기 측정된 복수의 데이터 유효 윈도우들 중 미리 정해진 스크린 가이드를 만족하는 데이터 유효 윈도우들을 선택하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  9. 제 1 항에 있어서,
    상기 초기화 동작이 최초로 수행되는 콜드 부팅(cold booting)인지 판단하는 단계; 및
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 이미 저장되어 있는 상기 트레이닝 데이터를 로딩하는 단계를 더 포함하고,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 상기 이미 저장되어 있는 트레이닝 데이터에 기초하여 상기 최적의 구동 파라미터가 사용되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  10. 제 9 항에 있어서,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 상기 트레이닝 동작 및 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 상기 트레이닝 데이터로서 저장하는 동작이 생략되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  11. 제 9 항에 있어서,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 상기 이미 저장되어 있는 트레이닝 데이터가 정상인지 판단하는 단계를 더 포함하고,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우, 및 상기 이미 저장되어 있는 트레이닝 데이터가 정상인 경우에, 상기 이미 저장되어 있는 트레이닝 데이터에 기초하여 상기 최적의 구동 파라미터가 사용되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  12. 제 9 항에 있어서,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 상기 트레이닝 데이터의 저장 시간이 기준 시간보다 짧은지 판단하는 단계를 더 포함하고,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우, 및 상기 트레이닝 데이터의 저장 시간이 상기 기준 시간보다 짧은 경우에, 상기 이미 저장되어 있는 트레이닝 데이터에 기초하여 상기 최적의 구동 파라미터가 사용되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  13. 제 1 항에 있어서,
    상기 메모리 장치는 복수의 메모리 셀들을 각각 포함하는 복수의 랭크들을 포함하며,
    상기 최적의 구동 파라미터는 상기 복수의 랭크들 각각에 대해 서로 다르게 사용되는 것을 특징으로 하는 메모리 장치의 트레이닝 방법.
  14. 복수의 메모리 셀들을 포함하고, 복수의 구동 주파수들 중 하나에 기초하여 동작하는 메모리 장치; 및
    파워 온(power on) 시에 상기 메모리 장치에 대한 초기화 동작을 수행하고, 상기 복수의 구동 주파수들 각각에 대하여, 상기 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행하고, 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하며, 상기 트레이닝 데이터, 상기 메모리 장치의 현재 동작 모드 및 상기 메모리 장치의 현재 구동 주파수에 기초하여, 상기 메모리 장치에 대한 상기 최적의 구동 파라미터를 사용하는 호스트를 포함하는 컴퓨팅 시스템.
  15. 제 14 항에 있어서,
    상기 복수의 구동 파라미터들은 상기 메모리 장치의 복수의 구동 강도(drive strength)들을 포함하고,
    상기 호스트는 상기 복수의 구동 주파수들 및 상기 복수의 구동 강도들에 대하여, 상기 메모리 장치의 복수의 데이터 유효 윈도우(data valid window)들을 측정하고, 상기 측정된 복수의 데이터 유효 윈도우들 중 미리 정해진 스크린 가이드(screen guide)를 만족하는 데이터 유효 윈도우들을 선택하여, 상기 트레이닝 동작을 수행하는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 제 15 항에 있어서,
    상기 호스트는 상기 메모리 장치에 클럭 신호를 제공하며,
    상기 클럭 신호를 기초로 상기 메모리 장치의 데이터 신호 및 데이터 스트로브 신호 중 하나를 고정하고 다른 하나를 쉬프트하여, 상기 복수의 데이터 유효 윈도우들의 제1 방향의 범위가 측정되는 것을 특징으로 하는 컴퓨팅 시스템.
  17. 제 16 항에 있어서,
    상기 메모리 장치에 전원 전압을 공급하는 전원 공급 장치를 더 포함하고,
    상기 전원 전압을 기초로 발생된 기준 전압의 레벨을 쉬프트하여, 상기 복수의 데이터 유효 윈도우들의 상기 제1 방향과 교차하는 제2 방향의 범위가 측정되는 것을 특징으로 하는 컴퓨팅 시스템.
  18. 제 14 항에 있어서,
    상기 복수의 구동 파라미터들은 상기 메모리 장치의 복수의 ODT(on die termination) 저항값들을 포함하고,
    상기 호스트는 상기 복수의 구동 주파수들 및 상기 복수의 ODT 저항값들에 대하여, 상기 메모리 장치의 복수의 데이터 유효 윈도우들을 측정하고, 상기 측정된 복수의 데이터 유효 윈도우들 중 미리 정해진 스크린 가이드를 만족하는 데이터 유효 윈도우들을 선택하여, 상기 트레이닝 동작을 수행하는 것을 특징으로 하는 컴퓨팅 시스템.
  19. 제 14 항에 있어서, 상기 호스트는,
    상기 초기화 동작, 상기 트레이닝 동작 및 상기 최적의 구동 파라미터를 결정하는 동작을 수행하는 프로세서; 및
    상기 트레이닝 데이터를 저장하는 내부 메모리를 포함하고,
    상기 프로세서는,
    상기 초기화 동작이 최초로 수행되는 콜드 부팅(cold booting)인지 추가적으로 판단하며,
    상기 초기화 동작이 상기 콜드 부팅이 아닌 경우에, 상기 트레이닝 동작을 생략하고 상기 내부 메모리에 이미 저장되어 있는 상기 트레이닝 데이터에 기초하여 상기 최적의 구동 파라미터를 사용하는 것을 특징으로 하는 컴퓨팅 시스템.
  20. 파워 온(power on) 시에 외부 메모리 장치에 대한 초기화 동작을 수행하고, 상기 외부 메모리 장치의 복수의 구동 주파수들 각각에 대하여, 상기 외부 메모리 장치의 복수의 구동 파라미터들 중 설정 가능한 적어도 하나의 최적의 구동 파라미터를 획득하는 트레이닝(training) 동작을 수행하고, 상기 트레이닝 동작에 의해 획득된 상기 구동 주파수별 상기 설정 가능한 구동 파라미터를 트레이닝 데이터로서 저장하며, 상기 트레이닝 데이터, 상기 외부 메모리 장치의 현재 동작 모드 및 상기 외부 메모리 장치의 현재 구동 주파수에 기초하여, 상기 외부 메모리 장치에 대한 상기 최적의 구동 파라미터를 사용하는 시스템 온 칩(system on chip).

KR1020170166251A 2017-12-05 2017-12-05 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩 KR102407439B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170166251A KR102407439B1 (ko) 2017-12-05 2017-12-05 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩
US16/116,369 US10559335B2 (en) 2017-12-05 2018-08-29 Method of training drive strength, ODT of memory device, computing system performing the same and system-on-chip performing the same
CN201811382923.2A CN109872735A (zh) 2017-12-05 2018-11-20 存储器装置训练方法、执行该方法的计算系统和系统芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170166251A KR102407439B1 (ko) 2017-12-05 2017-12-05 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩

Publications (2)

Publication Number Publication Date
KR20190066500A KR20190066500A (ko) 2019-06-13
KR102407439B1 true KR102407439B1 (ko) 2022-06-10

Family

ID=66659375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170166251A KR102407439B1 (ko) 2017-12-05 2017-12-05 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩

Country Status (3)

Country Link
US (1) US10559335B2 (ko)
KR (1) KR102407439B1 (ko)
CN (1) CN109872735A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109658961B (zh) * 2017-10-12 2021-08-03 华邦电子股份有限公司 易失性存储器存储装置及其刷新方法
KR20210026353A (ko) 2019-08-30 2021-03-10 삼성전자주식회사 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템
KR20210045542A (ko) * 2019-10-16 2021-04-27 에스케이하이닉스 주식회사 출력 제어 회로 및 이를 포함하는 반도체 장치
CN115004155A (zh) * 2020-02-24 2022-09-02 英特尔公司 在运行时实现外部存储器训练
US11334259B2 (en) 2020-04-22 2022-05-17 Micron Technology, Inc. Power management based on detected voltage parameter levels in a memory sub-system
US20220100428A1 (en) * 2020-09-25 2022-03-31 Micron Technology, Inc. Frequency monitoring for memory devices
CN114564421B (zh) * 2022-01-20 2023-09-05 珠海亿智电子科技有限公司 一种高速内存训练的方法和系统
KR102461404B1 (ko) * 2022-04-08 2022-10-31 주식회사 세미파이브 시스템 온 칩과 메모리 사이의 통신을 위한 io 파라미터를 설정하는 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160041943A1 (en) 2014-08-11 2016-02-11 Qualcomm Incorporated Memory circuit configuration schemes on multi-drop buses

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10148521B4 (de) * 2001-10-01 2010-01-28 Qimonda Ag Integrierter Speicher sowie Verfahren zum Betrieb eines integrierten Speichers und eines Speichersystems mit mehreren integrierten Speichern
KR100518547B1 (ko) 2002-12-28 2005-10-04 삼성전자주식회사 출력 드라이버의 구동력 변화에 따른 내부클락신호의지연을 보상할 수 있는 반도체 메모리 장치의 지연동기루프
TWI245287B (en) * 2004-09-08 2005-12-11 Via Tech Inc Method for initialization drams
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
KR100866601B1 (ko) 2006-12-04 2008-11-03 삼성전자주식회사 반도체 장치의 종단 저항을 제어할 수 있는 장치 및 방법
US7624225B2 (en) * 2007-03-22 2009-11-24 International Business Machines Corporation System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
KR101045074B1 (ko) * 2009-09-01 2011-06-29 주식회사 하이닉스반도체 반도체 장치
US8582374B2 (en) 2009-12-15 2013-11-12 Intel Corporation Method and apparatus for dynamically adjusting voltage reference to optimize an I/O system
KR101789077B1 (ko) * 2010-02-23 2017-11-20 삼성전자주식회사 온-다이 터미네이션 회로, 데이터 출력 버퍼, 반도체 메모리 장치, 메모리 모듈, 온-다이 터미네이션 회로의 구동 방법, 데이터 출력 버퍼의 구동 방법 및 온-다이 터미네이션 트레이닝 방법
US8312258B2 (en) 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
KR101694804B1 (ko) * 2010-08-16 2017-01-11 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US8645585B2 (en) * 2011-06-10 2014-02-04 Nvidia Corporation System and method for dynamically configuring a serial data link in a display device
CN102662711B (zh) * 2012-04-06 2017-03-29 中兴通讯股份有限公司 一种芯片快速初始化方法及装置
KR101997079B1 (ko) * 2012-07-26 2019-07-08 삼성전자주식회사 가변 저항 메모리를 포함하는 저장 장치 및 그것의 동작 방법
US9607714B2 (en) 2012-12-26 2017-03-28 Nvidia Corporation Hardware command training for memory using write leveling mechanism
US9343165B2 (en) 2012-12-31 2016-05-17 Sandisk Technologies Inc. Dynamic drive strength optimization
KR20140116649A (ko) * 2013-03-25 2014-10-06 삼성전자주식회사 동적 랜덤 액세스 메모리 시스템 및 그것의 동작 방법
US9218575B2 (en) * 2013-09-04 2015-12-22 Intel Corporation Periodic training for unmatched signal receiver
US9934831B2 (en) * 2014-04-07 2018-04-03 Micron Technology, Inc. Apparatuses and methods for storing and writing multiple parameter codes for memory operating parameters
US9639495B2 (en) * 2014-06-27 2017-05-02 Advanced Micro Devices, Inc. Integrated controller for training memory physical layer interface
US10613995B2 (en) 2015-03-16 2020-04-07 Rambus Inc. Training and operations with a double buffered memory topology
US9886285B2 (en) * 2015-03-31 2018-02-06 Western Digital Technologies, Inc. Communication interface initialization
KR20160148788A (ko) * 2015-06-16 2016-12-27 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10141935B2 (en) 2015-09-25 2018-11-27 Intel Corporation Programmable on-die termination timing in a multi-rank system
US10347347B1 (en) * 2017-12-18 2019-07-09 Intel Corporation Link training mechanism by controlling delay in data path

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160041943A1 (en) 2014-08-11 2016-02-11 Qualcomm Incorporated Memory circuit configuration schemes on multi-drop buses

Also Published As

Publication number Publication date
US10559335B2 (en) 2020-02-11
US20190172510A1 (en) 2019-06-06
CN109872735A (zh) 2019-06-11
KR20190066500A (ko) 2019-06-13

Similar Documents

Publication Publication Date Title
KR102407439B1 (ko) 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩
US11640955B2 (en) Method and device for controlling operation using temperature deviation in multi-chip
US11282561B2 (en) Refresh command control for host assist of row hammer mitigation
US10636476B2 (en) Row hammer mitigation with randomization of target row selection
US10679698B2 (en) Memory preset adjustment based on adaptive calibration
KR102089665B1 (ko) 메모리 모듈 및 메모리 시스템
US9076499B2 (en) Refresh rate performance based on in-system weak bit detection
KR102477268B1 (ko) 메모리 모듈의 정보를 실시간으로 모니터링하는 방법 및 시스템
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
US7958409B2 (en) Method for recording memory parameter and method for optimizing memory
US9953694B2 (en) Memory controller-controlled refresh abort
KR20150099170A (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
KR102400991B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20170060739A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20220121440A (ko) 메모리 장치의 dq 캘리브레이션 패턴의 최적화 방법 및 이를 수행하는 컴퓨팅 시스템
KR20200000904A (ko) 비휘발성 메모리 장치, 이를 포함하는 반도체 시스템 및 이의 동작 방법
US20230273668A1 (en) Semiconductor memory device, electronic device and method for setting the same
KR20180060091A (ko) 메모리 장치의 구동 방법 및 메모리 시스템의 구동 방법
CN108376555B (zh) 存储器设备及其测试方法以及存储器模块及使用其的系统
KR20230006325A (ko) 클록 트레이닝 시간을 줄이기 위한 장치, 메모리 장치 및 방법
KR102410958B1 (ko) 메모리 모듈 및 이를 포함하는 메모리 시스템
KR20190094570A (ko) 메모리 장치의 파워 다운 모드를 동적으로 제어하는 시스템 및 시스템의 제어 방법
US11328786B2 (en) Memory module storing test pattern information, computer system comprising the same, and test method thereof
KR20230033414A (ko) 메모리 장치의 구동 방법 및 이를 수행하는 메모리 장치
CN104391801A (zh) Ddrii控制器的读写、状态转换、物理地址分配方法

Legal Events

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