KR20200049985A - 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치 - Google Patents

복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치 Download PDF

Info

Publication number
KR20200049985A
KR20200049985A KR1020180130848A KR20180130848A KR20200049985A KR 20200049985 A KR20200049985 A KR 20200049985A KR 1020180130848 A KR1020180130848 A KR 1020180130848A KR 20180130848 A KR20180130848 A KR 20180130848A KR 20200049985 A KR20200049985 A KR 20200049985A
Authority
KR
South Korea
Prior art keywords
code
memory device
value
read
chip
Prior art date
Application number
KR1020180130848A
Other languages
English (en)
Other versions
KR102679215B1 (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 KR1020180130848A priority Critical patent/KR102679215B1/ko
Priority to US16/457,164 priority patent/US11003370B2/en
Priority to CN201911042781.XA priority patent/CN111126615A/zh
Publication of KR20200049985A publication Critical patent/KR20200049985A/ko
Application granted granted Critical
Publication of KR102679215B1 publication Critical patent/KR102679215B1/ko

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0653Monitoring storage devices or systems
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion 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/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
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

본 발명의 실시 예에 따른 시스템 온 칩은 제 1 코드에 따라 메모리 장치로 출력되는 클럭의 듀티 사이클을 조정하는 클럭 생성기, 제 2 코드에 따라 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 기준 전압의 레벨을 조정하는 기준 전압 생성기, 제 1 코드 및 제 2 코드 중 하나가 변경되면 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호를 정렬하는 데이터 수신기, 및 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호에 기초하여 제 1 코드 및 제 2 코드의 복수의 조합들에 대한 복수의 읽기 유효 윈도우 마진들을 계산하는 트레이닝 회로를 포함할 수 있다.

Description

복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치{SYSTEM ON CHIP PERFORMINING A PLURALITY OF TRAININGS AT THE SAME TIME, OPERATING METHOD OF SYSTEM ON CHIP, ELECTRONIC DEVICE INCLUDING SYSTEM ON CHIP}
본 발명은 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치에 관한 것이다.
시스템 온 칩(System on Chip; 이하 SoC로 지칭)은 전자 시스템의 다수의 구성 요소들 또는 다수의 IP(intellectual property)가 집적된 집적 회로이다. SoC는 SoC 외부의 메모리 장치와 통신할 수 있다. 최근, SoC 및 메모리 장치의 각각의 동작 속도들이 증가함에 따라, SoC는 메모리 장치와 고속으로 통신하기 전에 메모리 장치에 대한 다수의 트레이닝들을 수행해야 한다.
SoC는 메모리 장치에 대한 ZQ 캘리브레이션, 기준 전압 트레이닝, 읽기 트레이닝, 쓰기 트레이닝, 클럭 듀티 사이클 트레이닝 등을 수행할 수 있다. 다만, 상술한 트레이닝들은 서로 종속적이므로, 트레이닝들이 수행되는 순서로 인하여 SoC에 의해 수행된 트레이닝들의 결과가 최적이 아닐 수 있다.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치를 제공할 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 제 1 코드에 따라 메모리 장치로 출력되는 클럭의 듀티 사이클을 조정하는 클럭 생성기, 제 2 코드에 따라 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 기준 전압의 레벨을 조정하는 기준 전압 생성기, 제 1 코드 및 제 2 코드 중 하나가 변경되면 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호를 정렬하는 데이터 수신기, 및 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호에 기초하여 제 1 코드 및 제 2 코드의 복수의 조합들에 대한 복수의 읽기 유효 윈도우 마진들을 계산하는 트레이닝 회로를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 메모리 장치와 연결되는 시스템 온 칩의 동작 방법은 메모리 장치로 제공되는 클럭의 듀티 사이클을 조정하는 제 1 코드 및 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 시스템 온 칩의 기준 전압의 레벨을 조정하는 제 2 코드 중 하나를 변경하고 그리고 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호를 정렬하는 단계, 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호에 기초하여, 각각이 제 1 코드의 값들 중 하나 그리고 제 2 코드의 값들 중 하나의 쌍인 복수의 조합들에 대한 복수의 읽기 유효 윈도우 마진들을 계산하는 단계, 및 복수의 읽기 유효 윈도우 마진들 중 최대의 읽기 유효 윈도우 마진에 대응하는 제 1 코드의 제 1 타깃 값 및 제 2 코드의 제 2 타깃 값에 따라 클럭의 듀티 사이클 및 시스템 온 칩의 기준 전압의 레벨을 각각 설정하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시 예에 따른 전자 장치는 클럭을 생성하도록 구성되는 시스템 온 칩 및 시스템 온 칩으로부터 출력되는 클럭에 동기되는 메모리 장치를 포함할 수 있고, 시스템 온 칩은 제 1 코드에 따라 조정되는 클럭의 듀티 사이클의 트레이닝, 제 2 코드에 따라 조정되고 그리고 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 시스템 온 칩의 기준 전압의 레벨의 트레이닝, 및 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 제 1 데이터 입출력 신호 간의 스큐의 트레이닝을 동시에 수행하도록 더 구성될 수 있다.
본 발명의 실시 예에 따르면, SoC는 메모리 장치에 대한 서로 종속적인 복수의 트레이닝들을 동시에 수행하고 클럭의 듀티 사이클, SoC의 기준 전압의 레벨, 메모리 장치의 기준 전압의 레벨, 읽기 DQS와 읽기 DQ 간의 스큐, 그리고 쓰기 DQS와 쓰기 DQ 간의 스큐를 최적의 값들로 설정할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도를 예시적으로 도시한다.
도 2는 도 1의 SoC와 메모리 장치 사이의 트레이닝의 순서도를 예시적으로 도시한다.
도 3은 도 1의 SoC의 블록도를 예시적으로 도시한다.
도 4는 도 3의 트레이닝 회로에 의해 계산되는 VWM을 예시적으로 도시한다.
도 5는 도 1의 메모리 장치의 블록도를 예시적으로 도시한다.
도 6은 본 발명의 실시 예에 따라 SoC가 복수의 트레이닝들을 수행하는 동작들의 순서도를 예시적으로 도시한다.
도 7은 실시 예에 따라 도 6의 S100 단계의 상세한 단계들의 순서도를 예시적으로 도시한다.
도 8은 다른 실시 예에 따라 도 6의 S100 단계의 상세한 단계들의 순서도를 예시적으로 도시한다.
도 9는 도 6의 S300 단계의 상세한 단계들의 순서도를 예시적으로 도시한다.
도 10은 도 6 내지 도 9의 순서도들에 따라 SoC 내부에 저장되는 읽기 VWM들과 쓰기 VWM들을 예시적으로 도시한다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도를 예시적으로 도시한다. 전자 장치(10)는 시스템 온 칩(system on-chip; 이하 SoC로 지칭, 100) 및 메모리 장치(200)를 포함할 수 있다. 전자 장치(10)는 전자 시스템으로도 지칭될 수 있다. 예를 들어, 전자 장치(10)는 데스크톱(desktop) 컴퓨터, 랩톱(laptop) 컴퓨터, 워크스테이션(workstation), 서버, 모바일 장치 등일 수 있다.
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)을 포함할 수 있다.
메모리 컨트롤러(130)는 DDR PHY(140)를 통해 메모리 장치(200)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(130)와 DDR PHY(140)는 DFI(DDR PHY interface)에 따라 서로 통신할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)를 접근하기 위한 명령들 및 주소들을 생성할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)에 저장될 데이터를 생성할 수 있다. 메모리 컨트롤러(130)는 메모리 장치(200)에 저장된 데이터를 수신할 수 있다.
DDR PHY(140)는 DDR PHY 인터페이스로도 지칭될 수 있다. DDR PHY(140)는 메모리 컨트롤러(130)의 제어에 기초하여 클럭(CK) 그리고 명령 및 어드레스(CMD/ADD)를 메모리 장치(200)로 전송할 수 있다. DDR PHY(140)는 메모리 컨트롤러(130)의 제어에 기초하여 메모리 장치(200)로 데이터 스트로브 신호(이하; DQS로 지칭) 및 데이터 입출력 신호(이하; DQ로 지칭)를 전송할 수 있다. DQS는 DQ를 샘플링(sampling)하는데 사용될 수 있다. DDR PHY(140)는 메모리 장치(200)로부터 DQS 및 DQ를 수신할 수도 있다. DDR PHY(140)가 메모리 장치(200)로 DQS 및 DQ를 전송하는데 사용되는 경로들과 메모리 장치(200)가 DDR PHY(140)로 DQS 및 DQ를 전송하는데 사용되는 경로들은 서로 동일하고 공유될 수 있다. DQS 및 DQ는 각각 양방향 신호들이므로, SoC(100)에서 메모리 장치(200)로 출력되는 DQS 및 DQ는 쓰기 DQS 및 쓰기 DQ로 각각 지칭될 수 있고 그리고 메모리 장치(200)에서 SoC(100)로 출력되는 DQS 및 DQ는 읽기 DQS 및 읽기 DQ로 각각 지칭될 수 있다.
메모리 장치(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) 장치, 솔리드 스테이트 드라이브(SSD), 메모리 카드, 유니버설 플래시 기억장치(UFS) 등일 수 있다. 이하, 메모리 장치(200)는 SoC(100)로부터 출력되는 클럭(CK)에 동기된 DRAM 장치(즉, SDRAM(synchronous dynamic random access memory) 장치)인 것으로 설명될 것이다.
예를 들어, 어느 제조 공정을 통해 다수의 SoC들(100)이 제조될 수 있고 다른 제조 공정을 통해 다수의 메모리 장치들(200)이 제조될 수 있다. 다수의 SoC들(100)은 다양한 동작 특성들(동작 속도, 전력 소모 등)을 가질 수 있고 다수의 메모리 장치들(200)도 다양한 동작 특성들을 가질 수 있다. 다수의 SoC들(100) 중 하나와 다수의 메모리 장치들(200) 중 하나가 전자 장치(10)에 탑재되거나 사용될 수 있다. SoC(100)는 다양한 동작 특성들(Fast, Typical, Slow 등)을 가질 수 있고 메모리 장치(200)도 다양한 동작 특성들(Fast, Typical, Slow 등)을 가질 수 있으므로, 전자 장치(10)에 탑재된 SoC(100)와 메모리 장치(200)가 서로 통신하기 위해서는 전자 장치(10)에 탑재된 SoC(100)와 메모리 장치(200) 사이의 트레이닝(training)이 필요하다(즉, on thy fly 방식의 트레이닝). 또한, 메모리 장치(200)는 SoC(100)로부터 전송되는 클럭(CK)에 기초하여 동작하므로, 클럭(CK)의 듀티 사이클(duty cycle; 또는 듀티 비(duty ratio))의 트레이닝도 필요하다. 예를 들어, 클럭(CK)의 듀티 사이클의 이상적인 값은 50%(즉, 클럭(CK)의 논리 1에 대응하는 구간과 클럭(CK)의 논리 0에 대응하는 구간이 서로 동일)일 수 있다.
도 2는 도 1의 SoC와 메모리 장치 사이의 트레이닝의 순서도를 예시적으로 도시한다. 예를 들어, SoC(100)와 메모리 장치(200) 사이의 트레이닝은 읽기 DQS 및 읽기 DQ 사이의 스큐(skew)의 트레이닝, 읽기 DQ를 판별하는데 사용되는 SoC(100)의 기준 전압(VREF)의 레벨의 트레이닝, 클럭(CK)의 듀티 사이클의 트레이닝, 쓰기 DQS 및 쓰기 DQ 사이의 스큐의 트레이닝, 및 쓰기 DQ를 판별하는데 사용되는 메모리 장치(200)의 기준 전압(VREF)의 레벨의 트레이닝을 포함할 수 있다. 이러한 트레이닝들은 JEDEC(joint electron device engineering council) 표준에 정의될 수 있다. 그러나, 트레이닝들의 수행 순서, 수행 방식 등은 JEDEC 표준에 정의되어 있지 않다.
S11 단계에서, SoC(100)는 SoC(100)의 기준 전압(VREF)의 고정된 레벨에서 읽기 DQS/DQ의 초기의 트레이닝을 수행할 수 있다. 읽기 DQS/DQ의 트레이닝은 읽기 DQS 및 읽기 DQ 사이의 스큐의 트레이닝을 의미한다. S12 단계에서, SoC(100)는 메모리 장치(200)의 기준 전압(VREF)의 고정된 레벨에서 쓰기 DQS/DQ의 초기의 트레이닝을 수행할 수 있다. 쓰기 DQS/DQ의 트레이닝은 쓰기 DQS 및 쓰기 DQ 사이의 스큐의 트레이닝을 의미한다.
S13 단계에서, SoC(100)는 SoC(100)의 기준 전압(VREF)의 레벨의 트레이닝을 수행할 수 있다. S14 단계에서, SoC(100)는 클럭(CK)의 듀티 사이클의 트레이닝을 수행할 수 있다. S13, S14 단계들이 완료되면, 메모리 장치(200)에 저장된 데이터를 읽기 위한 SoC(100)의 트레이닝들이 완료될 수 있다. S15 단계에서, SoC(100)는 메모리 장치(200)의 기준 전압(VREF)의 레벨의 트레이닝을 수행할 수 있다. S15 단계가 완료되면, 메모리 장치(200)에 데이터를 쓰기 위한 SoC(100)의 트레이닝이 완료될 수 있다.
S16 단계에서, SoC(100)는 S13 단계에서 조정된 SoC(100)의 기준 전압(VREF)의 레벨에서 읽기 DQS/DQ의 트레이닝을 다시 수행할 수 있다. S17 단계에서, SoC(100)는 S15 단계에서 조정된 메모리 장치(200)의 기준 전압(VREF)의 레벨에서 쓰기 DQS/DQ의 트레이닝을 다시 수행할 수 있다.
도 2를 참조하면, S11 단계의 SoC(100)의 기준 전압(VREF)의 고정된 레벨 및 S12 단계의 메모리 장치(200)의 기준 전압(VREF)의 고정된 레벨은 각각 최적이 아닐 수 있으므로, S11 단계에서 정렬된 읽기 DQS 및 읽기 DQ 사이의 스큐 그리고 S12 단계에서 정렬된 쓰기 DQS 및 쓰기 DQ 사이의 스큐도 각각 최적이 아닐 수 있다. S11 단계에서 정렬된 읽기 DQS 및 읽기 DQ 사이의 스큐 그리고 클럭(CK)의 듀티 사이클이 최적이 아닐 수 있으므로, S13 단계에서 조정된 SoC(100)의 기준 전압(VREF)의 레벨도 최적이 아닐 수 있다. S11 단계에서 정렬된 읽기 DQS 및 읽기 DQ 사이의 스큐 그리고 S13 단계에서 조정된 SoC(100)의 기준 전압(VREF)의 레벨이 최적이 아닐 수 있으므로, S14 단계에서 조정된 클럭(CK)의 듀티 사이클도 최적이 아닐 수 있다. S12 단계에서 정렬된 쓰기 DQS 및 쓰기 DQ 사이의 스큐 그리고 S14 단계에서 조정된 클럭(CK)의 듀티 사이클이 최적이 아닐 수 있으므로, S15 단계에서 조정된 메모리 장치(200)의 기준 전압(VREF)의 레벨은 최적이 아닐 수 있다. 만약 도 2와 같이 SoC(100)가 여러 트레이닝들을 임의의 순서대로 수행하면, 트레이닝들은 서로 영향을 미칠 수 있으므로 트레이닝들의 결과가 최적이 아닐 수 있다. 특히, SoC(100)에 의해 수행되는 트레이닝들의 순서가 조정되어도, 여전이 트레이닝들의 결과는 최적이 아닐 수 있다.
본 발명의 실시 예에 따른 SoC(100)는, SoC(100)의 클럭(CK)의 듀티 사이클, SoC(100)의 기준 전압(VREF)의 레벨, 그리고 읽기 DQS 및 읽기 DQ 간의 스큐를 동시에 조정할 수 있다. 또한, SoC(100)는, 메모리 장치(200)의 기준 전압(VREF)의 레벨 그리고 쓰기 DQS 및 쓰기 DQ 간의 스큐를 동시에 조정할 수 있다. 따라서, 전자 장치(10)에 탑재되는 SoC(100)의 동작 특성과 그 전자 장치(10)에 탑재되는 메모리 장치(200)의 동작 특성이 서로 다름에도 불구하고, SoC(100)는 클럭(CK)의 듀티 사이클, SoC(100)의 기준 전압의 레벨, 메모리 장치(200)의 기준 전압의 레벨, 읽기 DQS와 읽기 DQ 간의 스큐, 그리고 쓰기 DQS와 쓰기 DQ 간의 스큐를 모두 최적의 값들로 설정할 수 있다. 이하, SoC(100)에 대해 좀 더 구체적으로 설명될 것이다.
도 3은 도 1의 SoC의 블록도를 예시적으로 도시한다. SoC(100)는 메모리 컨트롤러(130) 및 DDR PHY(140)에 더해, 프로세서(110) 및 온 칩 메모리(120)를 더 포함할 수 있다.
프로세서(110)는 온 칩 메모리(120)에 로드된(loaded) 다양한 소프트웨어(응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등)을 실행할 수 있다. 도 3을 참조하면, 프로세서(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) 중 적어도 하나를 포함할 수 있다.
온 칩 메모리(120)에는 전자 장치(10)를 구동하기 위한 응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 특히, 도 3을 참조하면, 온 칩 메모리(120)에는 트레이닝 프로그램이 로드될 수 있다. 예를 들어, 온 칩 메모리(120)는 SoC(100)의 내부에서 구현되고 메모리 장치(200)보다 빠른 데이터 입출력 속도를 갖는 SRAM 장치일 수 있다. 온 칩 메모리(120)는 버퍼 메모리로도 지칭될 수 있다.
메모리 컨트롤러(130)는 DMA(direct memory access) 방식으로 메모리 장치(200)에 접근할 수 있다. 메모리 컨트롤러(130)는 명령 큐(131), 명령 스케줄러(132), 읽기 데이터 큐(133), 및 쓰기 데이터 큐(134)를 포함할 수 있다.
명령 큐(131)는 프로세서(110)에 의해 발행된 명령들과 어드레스들을 저장할 수 있다. 명령 큐(131)에 저장된 명령과 어드레스는 명령 스케줄러(132)의 제어에 기초하여 DDR PHY(140)로 제공될 수 있다. 이 때, 명령 큐(131)에 저장된 하나 이상의 명령들과 하나 이상의 어드레스들이 병렬로 DDR PHY(140)로 제공될 수 있다. 명령 스케줄러(132)는 명령 큐(131)에 저장된 명령들과 어드레스들의 순서, 명령 큐(131)로 명령(들) 및 어드레스(들)이 입력되는 시점, 명령 큐(131)로부터 명령(들) 및 어드레스(들)이 출력되는 시점 등을 조정할 수 있다.
읽기 데이터 큐(133)는 SoC(100)의 메모리 장치(200)에 대한 읽기 요청에 의해 메모리 장치(200)로부터 DDR PHY(140)를 통해 전송되는 읽기 데이터를 저장할 수 있다. 읽기 데이터 큐(133)에 저장된 읽기 데이터는 온 칩 메모리(120)로 제공되고 프로세서(110)에 의해 처리될 수 있다. 쓰기 데이터 큐(134)는 메모리 장치(200)에 저장될 쓰기 데이터를 저장할 수 있다. SoC(100)의 메모리 장치(200)에 대한 쓰기 요청에 의해 쓰기 데이터 큐(134)에 저장된 쓰기 데이터는 DDR PHY(140)를 통해 메모리 장치(200)로 전송될 수 있다. 예를 들어, 메모리 컨트롤러(130)의 명령 큐(131), 명령 스케줄러(132), 읽기 데이터 큐(133), 및 쓰기 데이터 큐(134)는 SoC(100) 내에서 하드웨어 방식, 소프트웨어 방식, 또는 이들의 조합을 이용하여 구현될 수 있다.
DDR PHY(140)는 클럭 생성기(141), 명령 및 어드레스 생성기(142), 데이터 수신기(143), 데이터 송신기(144), 기준 전압 생성기(145), 및 트레이닝 회로(146)를 포함할 수 있다. DDR PHY(140)의 클럭 생성기(141), 명령 및 어드레스 생성기(142), 데이터 수신기(143), 데이터 송신기(144), 기준 전압 생성기(145), 및 트레이닝 회로(146)는 SoC(100) 내에서 하드웨어 방식, 소프트웨어 방식, 또는 이들의 조합을 이용하여 구현될 수 있다.
클럭 생성기(141)는 메모리 장치(200)로 출력되는 클럭(CK)을 생성할 수 있다. 클럭 생성기(141)는 제 1 코드(CODE1)에 따라 클럭(CK)의 듀티 사이클을 조정할 수 있다. 도 3의 도시와 달리, 클럭 생성기(141)는 차동 방식으로 클럭들(CK_t, CK_c)을 생성하고 클럭들(CK_t, CK_c)을 메모리 장치(200)로 전송할 수도 있다.
명령 및 어드레스 생성기(142)는 명령 큐(131)로부터 명령 또는 어드레스를 수신하고 메모리 장치(200)로 명령 또는 어드레스를 전송할 수 있다. 예를 들어, 명령 및 어드레스 생성기(142)와 메모리 장치(200) 사이의 명령 및 어드레스 경로들의 개수, 명령 또는 어드레스를 기반으로 상술한 경로들을 통해 전송되는 신호들의 논리 상태들, 전송 방법 등은 메모리 장치(200)의 JEDEC 표준에 정의될 수 있다.
데이터 수신기(143)는 메모리 장치(200)로부터 읽기 데이터를 수신할 수 있다. 데이터 수신기(143)는 수신된 읽기 데이터를 읽기 데이터 큐(133)에 제공할 수 있다. 데이터 수신기(143)는 읽기 DQS 및 읽기 DQ를 정렬하거나 또는 읽기 DQS 및 읽기 DQ 사이의 스큐를 조정하는 읽기 DQS/DQ 정렬기(143_1)를 포함할 수 있다. 읽기 DQS/DQ 정렬기(143_1)는 다수의 지연 셀들을 포함하는 DLL(delay locked loop)을 포함할 수 있다. 예를 들어, 읽기 DQS/DQ 정렬기(143_1)는 읽기 DQS 또는 읽기 DQ를 하나의 지연 셀에 의해 지연되는 시간 단위를 기반으로 지연시키면서, SoC(100)에서 읽기 DQ를 판별하기 위한 최적의 샘플링 포인트를 찾을 수 있다.
데이터 송신기(144)는 쓰기 데이터 큐(134)로부터 쓰기 데이터를 수신할 수 있다. 데이터 송신기(144)는 수신된 쓰기 데이터를 메모리 장치(200)로 전송할 수 있다. 데이터 송신기(144)는 쓰기 DQS 및 쓰기 DQ를 정렬하거나 또는 쓰기 DQS 및 쓰기 DQ 사이의 스큐를 조정하는 쓰기 DQS/DQ 정렬기(144_1)를 포함할 수 있다. 쓰기 DQS/DQ 정렬기(144_1)도 다수의 지연 셀들을 포함하는 DLL을 포함할 수 있다. 쓰기 DQS/DQ 정렬기(144_1)는 쓰기 DQS 또는 쓰기 DQ를 하나의 지연 셀에 의해 지연되는 시간 단위를 기반으로 지연시키면서, 메모리 장치(200)에서 쓰기 DQ를 판별하기 위한 최적의 샘플링 포인트를 찾을 수 있다.
기준 전압 생성기(145)는 기준 전압(VREF)을 생성하고 기준 전압(VREF)을 데이터 수신기(143)에 제공할 수 있다. 기준 전압 생성기(145)는 제 2 코드(CODE2)에 따라 기준 전압(VREF)의 레벨을 조정할 수 있다.
트레이닝 회로(146)는 프로세서(110)에 의해 실행되고 온 칩 메모리(120)에 저장된 트레이닝 프로그램의 제어에 기초하여 동작할 수 있다. 트레이닝 회로(146)는 데이터 수신기(143)의 읽기 DQS/DQ 정렬기(143_1)로부터 정렬된 읽기 DQS 및 읽기 DQ를 수신하고 유효 윈도우 마진(valid window margin; 이하 VWM으로 지칭)을 계산할 수 있다. VWM은 데이터 수신기(143)가 메모리 장치(200)로부터 출력되는 읽기 DQS를 이용하여 메모리 장치(200)로부터 출력되는 읽기 DQ를 판별할 수 있는 최대의 구간을 의미할 수 있다. VWM은 읽기 DQS를 기준으로 읽기 DQ를 유효하게 샘플링할 수 있는 구간을 나타낼 수 있다. VWM은 도 4에서 후술한다. 트레이닝 회로(146)는 계산된 VWM을 온 칩 메모리(120)에 저장할 수 있다.
트레이닝 회로(146)는 트레이닝 프로그램의 제어에 기초하여 제 1 코드(CODE1) 및 제 2 코드(CODE2)를 조정하거나, 변경하거나, 또는 보정할 수 있다. 트레이닝 회로(146)는 트레이닝 프로그램의 제어에 기초하여 명령 및 어드레스 생성기(142)를 제어할 수 있다. 예를 들어, 명령 및 어드레스 생성기(142)는 트레이닝 프로그램의 사전에 결정된 테스트 패턴에 따라 트레이닝을 위한 읽기 명령, 쓰기 명령, 테스트 데이터 등을 생성하고 메모리 장치(200)로 전송할 수 있다.
도 4는 도 3의 트레이닝 회로에 의해 계산되는 VWM을 예시적으로 도시한다. 도 4에서 가로 축은 시간(T)을 나타내고 세로 축은 읽기 DQ의 전압 레벨(V)을 나타낼 수 있다. 도 4의 음영은 읽기 DQ의 아이 다이어그램(eye diagram)을 나타낼 수 있다.
전술한대로, 트레이닝 회로(146)는 읽기 DQ의 VWM을 계산할 수 있다. 트레이닝 회로(146)는 읽기 DQS 또는 읽기 DQ를 지연시키면서 읽기 DQ를 판별하는 시점, 즉 샘플링 포인트를 변경할 수 있다. 트레이닝 회로(146)는 다수의 샘플링 포인트들 중에서 읽기 DQ를 유효하게 샘플링할 수 있는 유효 샘플링 포인트들을 찾고, 유효 샘플링 포인트들로부터 읽기 DQ의 VWM을 계산할 수 있다. 예를 들어, 도 4에서 도시된 샘플링 포인트들은 모두 유효 샘플링 포인트들일 수 있다. 트레이닝 회로(146)는 두 개의 유효 샘플링 포인트들 간의 차이 또는 그 차이보다 작은 값을 읽기 DQ의 VWM으로 계산할 수 있다.
도 5는 도 1의 메모리 장치의 블록도를 예시적으로 도시한다. 메모리 장치(200)는 CK 버퍼(201), CA 버퍼(202), DQ 버퍼(203), DQS 버퍼(204), 뱅크(210), 로우 디코더(221), 컬럼 디코더(223), 명령 디코더(230), 어드레스 디멀티플렉서(240), 쓰기 드라이버(251), 입출력 센스 앰프(253), 쓰기 회로(261), 읽기 회로(263), 모드 레지스터들(270), 및 기준 전압 생성기(280)를 포함할 수 있다. 상술한 구성 요소들은 모두 메모리 장치(200) 내에서 하드웨어 방식으로 구현될 수 있다.
CK 버퍼(201)는 SoC(100)로부터 클럭(CK)을 수신할 수 있다. CK 버퍼(201)는 수신된 클럭(CK)을 메모리 장치(200)의 내부 구성 요소들로 제공할 수 있다. 전술한대로, SoC(100)는 차동 방식으로 클럭들(CK_t, CK_c)을 메모리 장치(200)로 전송할 수 있고 메모리 장치(200)는 클럭들(CK_t, CK_c)을 각각 수신하는 CK 버퍼들(201)을 포함할 수 있다.
CA 버퍼(202)는 CK 버퍼(201)를 통해 수신된 클럭(CK)에 기초하여 SoC(100)로부터 명령 및 어드레스(CMD/ADD)를 수신할 수 있다. CA 버퍼(202)는 클럭(CK)를 이용하여 명령 및 어드레스(CMD/ADD)를 샘플링할 수 있다. 즉, 메모리 장치(200)는 클럭(CK)에 동기될 수 있다. CA 버퍼(202)는 샘플링된 명령 및 어드레스(CMD/ADD)를 명령 디코더(230) 또는 어드레스 디멀티플렉서(240)로 제공할 수 있다.
DQ 버퍼(203)는 SoC(100)로부터 쓰기 DQ를 수신하거나 SoC(100)로 읽기 DQ를 출력할 수 있다. DQ는 양방향 신호이므로, DQ 버퍼(203)는 쓰기 DQ를 수신하는 수신기(미도시)와 읽기 DQ를 출력하는 송신기(미도시) 모두를 포함할 수 있다. 예를 들어, DQ 버퍼(203)의 수신기는 기준 전압(VREF)에 기초하여 SoC(100)로부터 쓰기 DQ를 수신할 수 있다. DQS 버퍼(204)는 SoC(100)로부터 쓰기 DQS를 수신하거나 SoC(100)로 읽기 DQS를 출력할 수 있다. DQS는 양방향 신호이므로, DQS 버퍼(204)는 쓰기 DQS를 수신하는 수신기(미도시)와 읽기 DQS를 출력하는 송신기(미도시) 모두를 포함할 수 있다.
실시 예에 있어서, 메모리 장치(200)의 버퍼들(201~204)의 개수는 도 5에서 도시된 것으로 한정되지 않는다. 메모리 장치(200)의 용량, 동작 속도, 대역폭 등에 따라 버퍼들(201~204)의 개수가 결정될 수 있다.
뱅크(210)는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 워드 라인들과 비트 라인들(미도시)에 연결되는 메모리 셀들을 포함할 수 있다. 뱅크(210)의 메모리 셀들의 개수는 뱅크(210)의 용량에 따라 결정될 수 있고 뱅크(210)의 개수는 메모리 장치(200)의 용량에 따라 결정될 수 있다.
로우 디코더(221)는 명령 디코더(230)의 제어에 기초하여 로우 어드레스를 디코딩할 수 있다. 로우 디코더(221)는 로우 어드레스에 대응하는 적어도 하나의 워드 라인을 선택하거나 활성화할 수 있다. 컬럼 디코더(223)는 명령 디코더(230)의 제어에 기초하여 컬럼 어드레스를 디코딩할 수 있다. 컬럼 디코더(223)는 컬럼 어드레스에 대응하는 적어도 하나의 컬럼 선택 라인을 선택하거나 활성화할 수 있다. 컬럼 선택 라인에는 적어도 하나 이상의 비트 라인들이 연결될 수 있다. 예를 들어, 로우 어드레스 및 컬럼 어드레스에 대응하는 메모리 셀들이 선택되고 선택된 메모리 셀들에 대한 데이터 입출력이 수행될 수 있다.
명령 디코더(230)는 SoC(100)의 DDR PHY(140)로부터 출력되는 명령을 디코딩할 수 있고 메모리 장치(200)의 내부 구성 요소들을 제어할 수 있다. 예를 들어, 명령 디코더(230)는 활성화 명령, 읽기 명령, 쓰기 명령, 프리차지 명령, 모드 레지스터 쓰기 명령(MRW), 다목적 명령(multi-purpose command; MPC) 등을 디코딩할 수 있다. 상술한 명령들은 모두 JEDEC 표준에서 사전에 결정될 수 있다.
어드레스 디멀티플렉서(240)는 명령 디코더(230)의 제어에 기초하여 명령과 함께 수신되는 어드레스(ADD)를 메모리 장치(200)의 내부 구성 요소들로 제공할 수 있다. 어드레스 디멀티플렉서(240)는 SoC(100)로부터 활성화 명령 또는 프리차지 명령과 함께 전송되는 어드레스를 로우 어드레스로서 로우 디코더(221)에 제공할 수 있다. 어드레스 디멀티플렉서(240)는 SoC(100)로부터 읽기 명령 또는 쓰기 명령과 함께 전송되는 어드레스를 컬럼 어드레스로서 컬럼 디코더(223)에 제공할 수 있다. 어드레스 디멀티플렉서(240)는 SoC(100)로부터 모드 레지스터 쓰기 명령과 함께 수신되는 어드레스를 제 3 코드(CODE3)로서 모드 레지스터들(270)에 제공할 수 있다. 제 3 코드(CODE3)는 연산 코드(OPCODE) 또는 피연산자(operand)로 지칭될 수도 있다. 어드레스 디멀티플렉서(240)는 다목적 명령과 함께 전송되는 어드레스를 메모리 장치(200)의 다목적 레지스터들(미도시), FIFO(262), 또는 FIFO(264)에 제공할 수 있다. 상술한 명령들과 어드레스는 메모리 장치(200)의 JEDEC 표준에 정의될 수 있다. 실시 예에 있어서, 명령과 함께 전송되는 어드레스는 메모리 장치(200)의 메모리 셀들의 어드레스를 포함하거나, 메모리 장치(200)의 동작 모드를 설정하는데 사용되는 연산 코드(OPCODE)를 포함하거나, 또는 트레이닝을 위해 뱅크(210)가 아닌 FIFO(262) 또는 FIFO(264)에 저장되는 테스트 데이터를 포함할 수 있다.
쓰기 드라이버(251)는 쓰기 회로(261)로부터 쓰기 데이터를 수신하고 명령 디코더(230)의 제어에 기초하여 입출력 라인(GIO)을 통해 선택된 메모리 셀들에 쓰기 데이터를 쓸 수 있다. 입출력 센스 앰프(253)는 선택된 메모리 셀들로부터 입출력 라인(GIO)를 통해 출력되는 읽기 데이터를 감지하고 읽기 데이터를 읽기 회로(263)로 제공할 수 있다.
쓰기 회로(261)는 SoC(100)로부터 DQS 버퍼(204) 및 DQ 버퍼(203)를 통해 쓰기 DQS 및 쓰기 DQ를 수신할 수 있다. 쓰기 회로(261)는 쓰기 DQS를 이용하여 쓰기 DQ를 샘플링하거나 병렬화하고 샘플링 결과를 FIFO(First-In First-Out; 262)에 저장할 수 있다. 쓰기 회로(261)는 FIFO(262)에 저장된 쓰기 데이터를 쓰기 드라이버(251)에 제공할 수 있다.
읽기 회로(263)는 입출력 센스 앰프(253)로부터 읽기 데이터를 수신할 수 있다. 읽기 회로(263)는 수신된 읽기 데이터를 FIFO(264)에 저장할 수 있다. 읽기 회로(263) 읽기 데이터를 직렬화하고 DQS 버퍼(204) 및 DQ 버퍼(203)를 통해 읽기 DQS 및 읽기 DQ를 SoC(100)로 전송할 수 있다.
실시 예에 있어서, 읽기 회로(263)는 쓰기 명령, 다목적 명령 등을 디코딩한 명령 디코더(230)의 제어에 기초하여, SoC(100)로부터 쓰기 명령, 다목적 명령 등과 함께 전송되는 어드레스를 FIFO(264)에 저장할 수 있다. 이 때, FIFO(264)에 저장되는 어드레스는 데이터로서 SoC(100)로 출력될 수 있고 뱅크(210)에는 저장되지 않을 수 있다. 이후, 읽기 회로(263)는 읽기 명령을 디코딩한 명령 디코더(230)의 제어에 기초하여, FIFO(264)에 저장된 어드레스를 데이터로서 SoC(100)로 출력할 수 있다.
모드 레지스터들(270)은 어드레스 디멀티플렉서(240)로부터 제공되는 제 3 코드(CODE3)를 저장할 수 있다. 모드 레지스터들(270)의 개수, 어드레스, 제 3 코드(CODE3)의 크기 등은 JEDEC 표준에 정의될 수 있다. SoC(100)는 모드 레지스터 쓰기 명령과 연산 코드(예를 들면, 메모리 장치(200)의 기준 전압(VREF)의 레벨을 조정하기 위한 제 3 코드(CODE3))를 발행함으로써 모드 레지스터들(270)에 저장된 값들을 변경하고 그리고 메모리 장치(200)의 동작 조건, 동작 모드 등을 설정할 수 있다.
기준 전압 생성기(280)는 기준 전압(VREF)을 생성하고 기준 전압(VREF)을 DQ 버퍼(203)에 제공할 수 있다. 기준 전압(VREF)은 DQ 버퍼(203)가 쓰기 DQ를 판별하는데 사용될 수 있다. 기준 전압 생성기(280)는 모드 레지스터들(270)에 저장된 제 3 코드(CODE3)의 값에 따라 기준 전압(VREF)의 레벨을 조정할 수 있다.
도 6은 본 발명의 실시 예에 따라 SoC가 복수의 트레이닝들을 수행하는 동작들의 순서도를 예시적으로 도시한다. 도 6은 도 1, 도 3, 및 도 5를 참조하여 설명될 것이다.
S100 단계에서, SoC(100)는 제 1 코드(CODE1)에 따라 조정되는 클럭(CK)의 듀티 사이클의 트레이닝, 제 2 코드(CODE2)에 따라 조정되는 SoC(100)의 기준 전압(VREF)의 레벨의 트레이닝, 및 읽기 DQS/DQ의 트레이닝을 동시에 수행할 수 있다. 예를 들어, S100 단계는 SoC(100)가 메모리 장치(200)에 저장된 데이터를 유효하게 읽을 수 있도록 SoC(100)의 제 1 코드(CODE1), 제 2 코드(CODE2), 및 읽기 DQS와 읽기 DQ 간의 스큐를 설정하는 것에 관한 것이다.
S300 단계에서, SoC(100)는 제 3 코드(CODE3)에 따라 조정되는 메모리 장치(200)의 기준 전압(VREF)의 레벨의 트레이닝 및 쓰기 DQS/DQ의 트레이닝을 동시에 수행할 수 있다. 예를 들어, S300 단계는 SoC(100)가 메모리 장치(200)에 데이터를 유효하게 쓸 수 있도록, 제 3 코드(CODE3) 및 쓰기 DQS와 쓰기 DQ 간의 스큐를 설정하는 것에 관한 것이다.
도 7은 실시 예에 따라 도 6의 S100 단계의 상세한 단계들의 순서도를 예시적으로 도시한다. 예를 들어, 프로세서(110)는 온 칩 메모리(120)에 저장된 트레이닝 프로그램을 실행함으로써 S110 내지 S190 단계들을 수행할 수 있다.
S110 단계에서, SoC(100)는 클럭(CK)의 듀티 사이클을 조정하기 위한 제 1 코드(CODE1)를 사전에 결정된 초기 값으로 설정할 수 있고 SoC(100)의 기준 전압(VREF)의 레벨을 조정하기 위한 제 2 코드(CODE2)를 사전에 결정된 초기 값으로 설정할 수 있다. 클럭(CK)의 듀티 사이클은 초기 값을 갖는 제 1 코드(CODE1)에 따라 설정되고 SoC(100)의 기준 전압(VREF)의 레벨은 초기 값을 갖는 제 2 코드(CODE2)에 따라 설정될 수 있다.
제 1 코드(CODE1)와 제 2 코드(CODE2)는 복수의 비트들을 각각 포함할 수 있다. 예를 들어, 제 1 코드(CODE1)가 3비트로 구성되는 경우, 제 1 코드의 값은 0(=000b)부터 7(=111b) 사이의 임의의 자연수일 수 있고, 제 1 코드의 모든 값들은 0, 1, … , 7일 수 있다. 복수의 비트들의 개수는 클럭(CK)의 듀티 사이클 또는 기준 전압(VREF)의 레벨의 조정 단위, 조정 범위 등에 기초하여 사전에 결정될 수 있다.
예를 들어, 제 1 코드(CODE1)의 값들에 각각 대응하는 클럭(CK)의 듀티 사이클들을 서로 다를 수 있다. 클럭(CK)의 듀티 사이클들 간의 차이(또는 스텝)는 사전에 결정될 수 있다. 또한, 제 2 코드(CODE2)의 값들에 각각 대응하는 SoC(100)의 기준 전압(VREF)의 레벨들은 서로 다를 수 있다. SoC(100)의 기준 전압(VREF)의 레벨들 간의 차이(또는 스텝)는 사전에 결정될 수 있다.
S120 단계에서, SoC(100)는 제 1 코드(CODE1)의 값이 끝 값을 초과하였는지 여부를 판별할 수 있다. 끝 값은 제 1 코드(CODE1)의 값들 중 임의의 값(예를 들어, 제 1 코드(CODE1)의 최대 값 또는 최소 값)으로 사전에 설정될 수 있다. S120 단계는 제 1 코드(CODE1)가 가질 수 있는 모든 값들에 대한 읽기 VWM들이 계산될 때까지 반복적으로 수행될 수 있다. 제 1 코드(CODE1)의 값이 끝 값을 초과하지 않았으면(Yes) S130 단계가 수행될 수 있고 그렇지 않으면(No) S180 단계가 수행될 수 있다. 도 7의 S120 단계의 부등호는 예시적인 것에 불과하다. 즉, 제 1 코드(CODE1)가 가질 수 있는 모든 값들에 대한 읽기 VWM들이 계산되지 않으면 S130 단계가 수행될 수 있고 그렇지 않으면 S180 단계가 수행될 수 있다.
S130 단계에서, SoC(100)는 제 2 코드(CODE2)의 값이 끝 값을 초과하였는지 여부를 판별할 수 있다. 끝 값은 제 2 코드(CODE2)의 값들 중 임의의 값(예를 들어, 제 2 코드(CODE2)의 최대 값 또는 최소 값)으로 사전에 설정될 수 있다. S130 단계는 제 2 코드(CODE2)가 가질 수 있는 모든 값들에 대한 읽기 VWM들이 계산될 때까지 반복적으로 수행될 수 있다. 제 2 코드(CODE2)의 값이 끝 값을 초과하지 않았으면(Yes) S140 단계가 수행될 수 있고 그렇지 않으면(No) S170 단계가 수행될 수 있다. 도 7의 S130 단계의 부등호는 예시적인 것에 불과하다. 즉, 제 2 코드(CODE2)가 가질 수 있는 모든 값들에 대한 읽기 VWM들이 계산되지 않으면 S140 단계가 수행될 수 있고 그렇지 않으면 S170 단계가 수행될 수 있다.
S140 단계에서, SoC(100)는 읽기 DQS/DQ의 트레이닝이 패스되었는지 여부를 판별할 수 있다. 읽기 DQS/DQ의 트레이닝의 패스는 읽기 DQS를 이용하여 읽기 DQ를 유효하게 샘플링할 수 있는 것을 의미한다. 좀 더 구체적으로, SoC(100)의 데이터 수신기(143)의 읽기 DQS/DQ 정렬기(143_1)는 제 1 코드(CODE1) 및 제 2 코드(CODE2) 중 하나가 변경되면, 샘플링을 위해, 읽기 DQS와 읽기 DQ를 정렬할 수 있다. 읽기 DQS/DQ의 트레이닝이 패스되면(Yes) S150 단계가 수행될 수 있고 그렇지 않으면(No) S160 단계가 수행될 수 있다.
S150 단계에서, SoC(100)는 읽기 DQS/DQ 정렬기(143_1)에 의해 정렬된 읽기 DQS 및 읽기 DQ에 기초하여 제 1 코드(CODE1)와 제 2 코드(CODE2)의 조합에 대한 읽기 VWM을 계산할 수 있다. 조합은 제 1 코드(CODE1)의 값들 중 하나 그리고 제 2 코드(CODE2)의 값들 중 하나의 쌍일 수 있다. 예를 들어, S150 단계가 최초로 수행되는 경우의 조합은 제 1 코드(CODE1)의 초기 값 그리고 제 2 코드(CODE2)의 초기 값의 쌍일 수 있다. 그 다음 S150 단계가 다시 수행되는 경우의 조합은 제 1 코드(CODE1)의 초기 값 그리고 제 2 코드(CODE2)의 다음 값일 수 있다. 상술한 방식으로 제 1 코드(CODE1) 및 제 2 코드(CODE2)의 모든 조합들에 대한 읽기 VWM들이 계산될 수 있다.
실시 예에 있어서, SoC(100)는 메모리 장치(200)로부터 읽기 DQS 및 읽기 DQ를 수신하기 위해 트레이닝 프로그램의 사전에 결정된 테스트 패턴에 기초하여 메모리 장치(200)로 쓰기 명령과 읽기 명령을 전송할 수 있다. 예를 들어, 테스트 패턴에 따라 SoC(100)로부터 쓰기 명령이 출력될 때 데이터 송신기(144)는 동작하지 않을 수 있다. 명령 및 어드레스 생성기(142)는 쓰기 명령과 사전에 결정된 테스트 데이터를 명령 및 어드레스의 전송 경로들을 통해 메모리 장치(200)로 전송할 수 있다. 메모리 장치(200)는 테스트 패턴에 따른 쓰기 명령을 디코딩하고 사전에 결정된 테스트 데이터를 뱅크(210)가 아닌 FIFO(264)에 곧바로 저장할 수 있다. 테스트 패턴의 쓰기 명령은 뱅크(210)에 데이터를 쓰기 위한 쓰기 명령과 상이할 수 있고 다목적 명령일 수 있다.
S160 단계에서, SoC(100)는 제 2 코드(CODE2)의 값을 다음 값으로 설정하거나 변경할 수 있다. SoC(100)는 다양한 방식으로 제 2 코드(CODE2)의 값을 변경할 수 있다. 예를 들어, SoC(100)는 제 2 코드(CODE2)의 값을 순차적으로 증가시키거나 감소시킬 수 있다. 제 2 코드(CODE2)의 이전 값과 제 2 코드(CODE2)의 다음 값 사이의 차이는 제 2 코드(CODE2)의 LSB(least significant bit)에 대응하는 값일 수 있다. SoC(100)의 기준 전압(VREF)의 레벨은 다음 값을 갖는 제 2 코드(CODE2)에 따라 설정될 수 있다. 예를 들어, 제 2 코드(CODE2)의 이전 값에 대응하는 SoC(100)의 기준 전압(VREF)의 레벨 그리고 제 2 코드(CODE2)의 다음 값에 대응하는 SoC(100)의 기준 전압(VREF)의 레벨 사이의 차이(또는 스텝)는 사전에 결정된 값일 수 있다.
S170 단계에서, SoC(100)는 제 1 코드(CODE1)의 값을 다음 값으로 설정하거나 변경할 수 있다. SoC(100)는 다양한 방식으로 제 1 코드(CODE1)의 값을 변경할 수 있다. 예를 들어, SoC(100)는 제 1 코드(CODE1)의 값을 순차적으로 증가시키거나 감소시킬 수 있다. 제 1 코드(CODE1)의 이전 값과 제 1 코드(CODE1)의 다음 값 사이의 차이는 제 1 코드(CODE1)의 LSB에 대응하는 값일 수 있다. 클럭(CK)의 듀티 사이클은 다음 값을 갖는 제 1 코드(CODE1)에 따라 설정될 수 있다. 예를 들어, 제 1 코드(CODE1)의 이전 값에 대응하는 클럭(CK)의 듀티 사이클 그리고 제 1 코드(CODE1)의 다음 값에 대응하는 클럭(CK)의 듀티 사이클 사이의 차이(또는 스텝)는 사전에 결정된 값일 수 있다.
SoC(100)는 S170 단계에서 제 1 코드(CODE1) 값을 다음 값으로 변경하고 그리고 제 1 코드(CODE1)의 변경된 값을 유지하면서 제 2 코드(CODE2)의 값을 반복적으로 변경할 수 있다. SoC(100)는 제 1 코드(CODE1)의 하나의 값과 제 2 코드(CODE2)의 모든 값들의 각각의 조합들에 대한 각각의 읽기 VWM들을 계산할 수 있다. 물론, 특정한 조합에서 읽기 DQS/DQ 트레이닝이 패스되지 않으면 SoC(100)는 그 조합에 대한 읽기 VWM은 계산하지 않는다(S140 단계의 No 경우 참조). 도 6을 참조하면, SoC(100)는 S120 내지 S170 단계들을 반복적으로 수행함으로써, 제 1 코드(CODE1)의 모든 값들과 제 2 코드(CODE2)의 모든 값들의 각각의 조합들에 대한 각각의 읽기 VWM들을 계산할 수 있다.
S180 단계에서, SoC(100)는 S120 내지 S170 단계들을 반복적으로 수행함으로써 계산된 복수의 읽기 VWM들 중 최대의 읽기 VWM을 찾을 수 있다. 최대의 읽기 VWM에 대응하는 제 1 코드(CODE1)의 타깃 값과 제 2 코드(CODE2)의 타깃 값은 각각 클럭 생성기(141) 및 기준 전압 생성기(145)에 제공될 수 있다. 따라서, 제 1 코드(CODE1)의 타깃 값에 따라 클럭(CK)의 듀티 사이클이 설정되거나 조정될 수 있고 제 2 코드(CODE2)의 타깃 값에 따라 SoC(100)의 기준 전압(VREF)의 레벨이 설정되거나 조정될 수 있다.
S190 단계에서, SoC(100)는 제 1 코드(CODE1)의 타깃 값에 대응하는 클럭(CK)의 듀티 사이클 및 제 2 코드(CODE2)의 타깃 값에 대응하는 기준 전압(VREF)의 레벨에서 읽기 DQS/DQ 트레이닝을 다시 수행할 수 있다. SoC(100)는 읽기 DQS와 읽기 DQ를 다시 정렬할 수 있다. SoC(100)는 S190 단계를 완료함으로써 클럭(CK)의 듀티 사이클의 트레이닝, SoC(100)의 기준 전압(VREF)의 레벨의 트레이닝, 및 읽기 DQS/DQ의 트레이닝을 동시에 완료할 수 있다.
도 8은 다른 실시 예에 따라 도 6의 S100 단계의 상세한 단계들의 순서도를 예시적으로 도시한다. 도 8은 도 7을 참조하여 설명될 것이다. 도 8의 S210, S240, S250, S260, S270, S280, 및 S290 단계들은 도 7의 S110, S140, S150, S160, S170, S180, 및 S190 단계들과 각각 실질적으로 동일하다.
S220 단계는 도 7의 S130 단계와 실질적으로 동일할 수 있고 S230 단계는 도 7의 S120 단계와 실질적으로 동일할 수 있다. 도 8의 순서도에 따르면, SoC(100)는 제 2 코드(CODE2)의 값을 유지하면서 제 1 코드(CODE1)의 값을 반복적으로 변경할 수 있다. 도 7의 순서도에 따르면, SoC(100)는 제 1 코드(CODE1)의 값을 유지하면서 제 2 코드(CODE2)의 값을 반복적으로 변경할 수 있다. 도 7 및 도 8 어느 경우든 관계없이, 본 발명의 실시 예에 따른 SoC(100)는 제 1 코드(CODE1)의 모든 값들과 제 2 코드(CODE2)의 모든 값들의 모든 조합들에 대한 각각의 읽기 VWM들을 계산할 수 있다.
도 9는 도 6의 S300 단계의 상세한 단계들의 순서도를 예시적으로 도시한다. 예를 들어, 프로세서(110)는 온 칩 메모리(120)에 저장된 트레이닝 프로그램을 실행함으로써 S310 내지 S370 단계들을 수행할 수 있다. 또한, S310 내지 S370 단계들은 제 1 코드(CODE1)의 타깃 값에 따라 설정된 클럭(CK)의 듀티 사이클 및 제 2 코드(CODE2)의 타깃 값에 따라 설정된 SoC(100)의 기준 전압(VREF)의 레벨에서 수행될 수 있다.
S310 단계에서, SoC(100)는 메모리 장치(200)의 기준 전압(VREF)의 레벨을 조정하기 위한 제 3 코드(CODE3)를 사전에 결정된 초기 값으로 설정할 수 있다. SoC(100)의 명령 및 어드레스 생성기(142)는 메모리 장치(200)의 기준 전압(VREF)의 레벨을 조정하기 위한 명령을 생성하고 그리고 명령 및 초기 값을 갖는 제 3 코드(CODE3)를 메모리 장치(200)로 전송할 수 있다. 제 3 코드(CODE3)는 제 1 코드(CODE1) 또는 제 2 코드(CODE2)와 유사하게 복수의 비트들을 포함할 수 있다. 제 3 코드(CODE3)의 값들에 각각 대응하는 메모리 장치(200)의 기준 전압(VREF)의 레벨들은 서로 다를 수 있다. 메모리 장치(200)의 기준 전압(VREF)의 레벨들 간의 차이(또는 스텝)는 사전에 결정될 수 있다.
제 3 코드(CODE3)의 초기 값은 메모리 장치(200)의 모드 레지스터들(270) 또는 다목적 레지스터들에 저장될 수 있다. SoC(100)는 제 3 코드(CODE3)의 초기 값 그리고 제 3 코드(CODE3)의 초기 값을 메모리 장치(200)의 모드 레지스터들(270) 또는 다목적 레지스터들에 저장하기 위한 명령(예를 들어, 모드 레지스터 쓰기 명령 또는 다목적 명령)을 함께 메모리 장치(200)로 전송할 수 있다.
S320 단계에서, SoC(100)는 제 3 코드(CODE3)의 값이 끝 값을 초과하였는지 여부를 판별할 수 있다. 끝 값은 제 3 코드(CODE3)의 값들 중 임의의 값(예를 들어, 제 3 코드(CODE3)의 최대 값 또는 최소 값)으로 사전에 설정될 수 있다. S320 단계는 제 3 코드(CODE3)가 가질 수 있는 모든 값들에 대한 쓰기 VWM들이 계산될 때까지 반복적으로 수행될 수 있다. 제 3 코드(CODE3)의 값이 끝 값을 초과하지 않았으면(Yes) S330 단계가 수행될 수 있고 그렇지 않으면(No) S360 단계가 수행될 수 있다. 도 9의 S320 단계의 부등호는 예시적인 것에 불과하다. 즉, 제 3 코드(CODE3)가 가질 수 있는 모든 값들에 대한 쓰기 VWM들이 계산되지 않으면 S330 단계가 수행될 수 있고 그렇지 않으면 S360 단계가 수행될 수 있다.
S330 단계에서, SoC(100)는 쓰기 DQS/DQ의 트레이닝이 패스되었는지 여부를 판별할 수 있다. S330 단계의 쓰기 DQS/DQ의 트레이닝과 S140 단계의 읽기 DQS/DQ의 트레이닝은 서로 다르다. 전술한 읽기 DQS/DQ의 트레이닝은 데이터 수신기(143)의 읽기 DQS/DQ 정렬기(143_1)에 의해 메모리 장치(200)로부터 출력되는 읽기 DQS와 읽기 DQ가 정렬되는 동작일 수 있다. 반면에 쓰기 DQS/DQ의 트레이닝은 데이터 송신기(144)의 쓰기 DQS/DQ 정렬기(144_1)에 의해 메모리 장치(200)로 출력되는 쓰기 DQS와 쓰기 DQ가 정렬되는 동작일 수 있다. S330 단계에서 읽기 DQS와 읽기 DQ는 전술한 S190 단계에서 정렬되었다.
쓰기 DQS/DQ의 트레이닝의 패스는 메모리 장치(200)가 데이터 송신기(144)로부터 출력되는 쓰기 DQS 및 쓰기 DQ를 수신한 이후에 SoC(100)가 메모리 장치(200)로부터 출력되는 읽기 DQS를 이용하여 메모리 장치(200)로부터 출력되는 읽기 DQ를 유효하게 샘플링할 수 있는 것을 의미한다. SoC(100)는 쓰기 DQS/DQ의 트레이닝을 수행하기 위해 메모리 장치(200)로 쓰기 명령과 읽기 명령을 반복적으로 전송할 수 있다. 좀 더 구체적으로, SoC(100)의 데이터 송신기(144)의 DQS/DQ 정렬기(144_1)는 제 3 코드(CODE3)가 변경되면, 메모리 장치(200)로 출력되는 쓰기 DQS와 쓰기 DQ를 정렬할 수 있다. 쓰기 DQS/DQ의 트레이닝이 패스되면(Yes) S340 단계가 수행될 수 있고 그렇지 않으면(No) S350 단계가 수행될 수 있다.
S340 단계에서, SoC(100)는 쓰기 DQS/DQ 정렬기(144_1)에 의해 정렬된 쓰기 DQS 및 쓰기 DQ를 수신하는 메모리 장치(200)로부터 출력되는 읽기 DQS 및 읽기 DQ에 기초하여 제 3 코드(CODE3)에 대한 쓰기 VWM을 계산할 수 있다. 여기서, 메모리 장치(200)로부터 출력되는 읽기 DQS 및 읽기 DQ는 S190 단계의 트레이닝을 통해 설정된 DQS/DQ 정렬기(143_1)에 의해 정렬될 것이다.
실시 예에 있어서, 트레이닝 회로(146)는 읽기 DQS 및 읽기 DQ에 기초하여 S340 단계의 쓰기 VWM과 S150 단계의 읽기 VWM을 각각 계산할 수 있다. 읽기 VWM은 도 7의 S150 단계에서 계산되는 VWM을 나타내고 쓰기 VWM은 도 9의 S340 단계에서 계산되는 VWM을 나타낸다. 읽기 VWM은 SoC(100)가 메모리 장치(200)에 저장된 데이터를 읽기 위해 수행하는 트레이닝에 따라 메모리 장치(200)로부터 생성되는 읽기 DQS 및 읽기 DQ에 기초하여 계산될 수 있다. 쓰기 VWM은 SoC(100)가 메모리 장치(200)에 데이터를 쓰기 위해 수행하는 트레이닝에 따라 쓰기 DQS 및 쓰기 DQ를 수신하는 메모리 장치(200)로부터 생성되는 읽기 DQS 및 읽기 DQ에 기초하여 계산될 수 있다.
실시 예에 있어서, SoC(100)는 메모리 장치(200)로 쓰기 DQS 및 쓰기 DQ를 전송하기 위해 트레이닝 프로그램의 사전에 결정된 테스트 패턴에 기초하여 메모리 장치(200)로 쓰기 명령과 읽기 명령을 전송할 수 있다. 예를 들어, 명령 및 어드레스 생성기(142)는 쓰기 명령을 명령 및 어드레스의 전송 경로들을 통해 메모리 장치(200)로 전송할 수 있다. 쓰기 명령에 더해, 데이터 송신기(144)는 사전에 결정된 테스트 데이터에 기초하는 쓰기 DQS 및 쓰기 DQ를 메모리 장치(200)로 전송할 수 있다. 있다. 예를 들어, 테스트 패턴의 쓰기 명령은 뱅크(210)에 테스트 데이터를 쓰기 위한 쓰기 명령일 수 있다. 다른 예를 들어, 테스트 패턴의 쓰기 명령은 테스트 데이터를 뱅크(210)가 아닌 FIFO(264)에 곧바로 저장하기 위한 다목적 명령일 수도 있다.
S350 단계에서, SoC(100)는 제 3 코드(CODE3)의 값을 다음 값으로 설정하거나 변경할 수 있다. SoC(100)는 다양한 방식으로 제 3 코드(CODE3)의 값을 변경할 수 있다. 예를 들어, SoC(100)는 제 3 코드(CODE3)의 값을 순차적으로 증가시키거나 감소시킬 수 있다. 제 3 코드(CODE3)의 이전 값과 제 3 코드(CODE3)의 다음 값 사이의 차이(또는 스텝)는 제 3 코드(CODE3)의 LSB에 대응하는 값일 수 있다. 메모리 장치(200)의 기준 전압(VREF)의 레벨은 다음 값을 갖는 제 3 코드(CODE3)에 따라 설정될 수 있다. 예를 들어, 제 3 코드(CODE3)의 이전 값에 대응하는 메모리 장치(200)의 기준 전압(VREF)의 레벨 그리고 제 3 코드(CODE3)의 다음 값에 대응하는 메모리 장치(200)의 기준 전압(VREF)의 레벨 사이의 차이(또는 스텝)는 사전에 결정된 값일 수 있다. SoC(100)는 제 3 코드(CODE3)의 각각의 값들에 대한 각각의 쓰기 VWM들을 계산할 수 있다. 물론, 값에서 쓰기 DQS/DQ 트레이닝이 패스되지 않으면 SoC(100)는 그 값에 대한 쓰기 VWM은 계산하지 않는다.
S360 단계에서, SoC(100)는 S320 내지 S350 단계들을 반복적으로 수행함으로써 계산된 복수의 쓰기 VWM들 중 최대의 쓰기 VWM을 찾을 수 있다. 최대의 쓰기 VWM에 대응하는 제 3 코드(CODE3)의 타깃 값은 명령과 함께 메모리 장치(200)의 모드 레지스터들(270) 또는 다목적 레지스터들에 제공될 수 있다. 따라서, 제 3 코드(CODE3)의 타깃 값에 따라 메모리 장치(200)의 기준 전압(VREF)의 레벨이 설정되거나 조정될 수 있다.
S370 단계에서, SoC(100)는 제 3 코드(CODE3)의 타깃 값에 대응하는 기준 전압(VREF)의 레벨에서 쓰기 DQS/DQ 트레이닝을 다시 수행할 수 있다. SoC(100)는 쓰기 DQS와 쓰기 DQ를 다시 정렬할 수 있다. SoC(100)는 S370 단계를 완료함으로써 메모리 장치(200)의 기준 전압(VREF)의 레벨의 트레이닝 및 쓰기 DQS/DQ의 트레이닝을 동시에 완료할 수 있다.
도 10은 도 6 내지 도 9의 순서도들에 따라 SoC 내부에 저장되는 읽기 VWM들과 쓰기 VWM들을 예시적으로 도시한다. 도시의 편의를 위해, 도 10에서 메모리 컨트롤러(130)의 구성 요소들과 DDR PHY(140)의 구성 요소들의 도시는 생략되었다.
온 칩 메모리(120)에 저장된 표 1은 도 6의 S100 단계, 도 7의 S110 내지 S190 단계들, 또는 도 8의 S210 내지 S290 단계들의 수행 결과일 수 있다. 예를 들어, 제 1 코드(CODE1)는 값들(value[1], value[2], …, value[x]; x는 2 이상의 자연수)을 갖고 제 2 코드(CODE2)는 값들(value[1], value[2], …, value[y]; y는 2 이상의 자연수)을 가질 수 있다. 여기서, x와 y는 서로 동일하거나 다를 수 있다. 표 1을 참조하면, 제 1 코드(CODE1)의 모든 값들(value[1], value[2], …, value[x])과 제 2 코드(CODE2)의 모든 값들(value[1], value[2], …, value[y])의 각각의 조합들에 대한 각각의 복수의 읽기 VWM들(VWM1~VWM9)이 프로세서(110)에 의해 실행되는 트레이닝 프로그램에 의해 계산될 수 있다.
예를 들어, 복수의 읽기 VWM들(VWM1~VWM9) 중에서 VWM4가 최대이면, 제 1 코드(CODE1)의 타깃 값은 value[2]이고 제 2 코드(CODE2)의 타깃 값은 value[1]일 수 있다(즉, 최적의 경우). 트레이닝 프로그램은 제 1 코드(CODE1)를 value[2]로 설정하고 제 2 코드(CODE2)를 value[1]로 설정하여 S100 단계의 트레이닝들을 완료할 수 있다.
온 칩 메모리(120)에 저장된 표 2는 도 6의 S300 단계 또는 도 9의 S310 내지 S370 단계들의 수행 결과일 수 있다. 예를 들어, 제 3 코드(CODE3)는 값들(value[1], value[2], …, value[z]; z는 2 이상의 자연수)을 가질 수 있다. 여기서, z는 x 및 y 중 어느 하나와 동일하거나 다를 수 있다. 표 2를 참조하면, 제 3 코드(CODE3)의 모든 값들(value[1], value[2], …, value[z])에 대한 각각의 복수의 쓰기 VWM들(VWM1~VWM3)이 프로세서(110)에 의해 실행되는 트레이닝 프로그램에 의해 계산될 수 있다.
예를 들어, 복수의 쓰기 VWM들(VWM1~VWM3) 중에서 VWM2가 최대이면, 제 3 코드(CODE3)의 타깃 값은 value[2]일 수 있다(즉, 최적의 경우). 트레이닝 프로그램은 제 3 코드(CODE3)를 value[2]로 설정하여 S300 단계의 트레이닝들을 완료할 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 쉽게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 쉽게 변형하여 실시할 수 있는 기술들도 포함될 것이다.

Claims (10)

  1. 제 1 코드에 따라 메모리 장치로 출력되는 클럭의 듀티 사이클을 조정하는 클럭 생성기;
    제 2 코드에 따라 상기 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 기준 전압의 레벨을 조정하는 기준 전압 생성기;
    상기 제 1 코드 및 상기 제 2 코드 중 하나가 변경되면 상기 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호를 정렬하는 데이터 수신기; 및
    상기 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호에 기초하여 상기 제 1 코드 및 상기 제 2 코드의 복수의 조합들에 대한 복수의 읽기 유효 윈도우 마진들을 계산하는 트레이닝 회로를 포함하는 시스템 온 칩.
  2. 제 1 항에 있어서,
    상기 복수의 조합들 각각은 상기 제 1 코드의 값들 중 하나 그리고 상기 제 2 코드의 값들 중 하나의 쌍인 시스템 온 칩.
  3. 제 2 항에 있어서,
    상기 데이터 수신기에 의해 상기 제 1 코드의 제 1 값 및 상기 제 2 코드의 제 2 값에 따라 상기 메모리 장치로부터 출력되는 상기 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호가 정렬되지 않으면, 상기 트레이닝 회로는 상기 제 1 값 및 상기 제 2 값의 쌍에 대한 읽기 유효 윈도우 마진을 계산하지 않는 시스템 온 칩.
  4. 제 1 항에 있어서,
    상기 복수의 읽기 유효 윈도우 마진들 중 최대의 읽기 유효 윈도우 마진에 대응하는 상기 제 1 코드의 제 1 타깃 값 및 상기 제 2 코드의 제 2 타깃 값에 따라 상기 클럭의 상기 듀티 사이클 및 상기 기준 전압의 상기 레벨이 각각 설정되는 시스템 온 칩.
  5. 메모리 장치와 연결되는 시스템 온 칩의 동작 방법에 있어서:
    상기 메모리 장치로 제공되는 클럭의 듀티 사이클을 조정하는 제 1 코드 및 상기 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 상기 시스템 온 칩의 기준 전압의 레벨을 조정하는 제 2 코드 중 하나를 변경하는 단계;
    상기 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호를 정렬하는 단계;
    상기 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호에 기초하여, 각각이 상기 제 1 코드의 값들 중 하나 그리고 상기 제 2 코드의 값들 중 하나의 쌍인 복수의 조합들에 대한 복수의 읽기 유효 윈도우 마진들을 계산하는 단계; 및
    상기 복수의 읽기 유효 윈도우 마진들 중 최대의 읽기 유효 윈도우 마진에 대응하는 상기 제 1 코드의 제 1 타깃 값 및 상기 제 2 코드의 제 2 타깃 값에 따라 상기 클럭의 상기 듀티 사이클 및 상기 시스템 온 칩의 상기 기준 전압의 상기 레벨을 각각 설정하는 단계를 포함하는 시스템 온 칩의 동작 방법.
  6. 제 5 항에 있어서,
    상기 제 1 코드 및 상기 제 2 코드 중 하나를 변경하는 단계는:
    상기 제 1 코드를 제 1 값으로 변경하고 그리고 상기 제 1 코드를 상기 제 1 값으로 유지하면서 상기 제 2 코드를 반복적으로 변경하는 단계; 및
    상기 제 1 코드를 상기 제 1 값에서 제 2 값으로 변경하고 그리고 상기 제 1 코드를 상기 제 2 값으로 유지하면서 상기 제 2 코드를 반복적으로 변경하는 단계를 포함하는 시스템 온 칩의 동작 방법.
  7. 제 5 항에 있어서,
    상기 제 1 코드 및 상기 제 2 코드 중 하나를 변경하는 단계는:
    상기 제 2 코드를 제 1 값으로 변경하고 그리고 상기 제 2 코드를 상기 제 1 값으로 유지하면서 상기 제 1 코드를 반복적으로 변경하는 단계; 및
    상기 제 2 코드를 상기 제 1 값에서 제 2 값으로 변경하고 그리고 상기 제 2 코드를 상기 제 2 값으로 유지하면서 상기 제 1 코드를 반복적으로 변경하는 단계를 포함하는 시스템 온 칩의 동작 방법.
  8. 제 5 항에 있어서,
    상기 메모리 장치의 기준 전압의 레벨을 조정하는 제 3 코드를 설정하는 단계;
    상기 제 3 코드를 변경하고 그리고 상기 메모리 장치로 출력되는 제 2 데이터 스트로브 신호 및 제 2 데이터 입출력 신호를 정렬하는 단계;
    상기 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호에 기초하여 상기 제 3 코드에 대한 복수의 쓰기 유효 윈도우 마진들을 계산하는 단계; 및
    상기 복수의 쓰기 유효 윈도우 마진들 중 최대의 쓰기 유효 윈도우 마진에 대응하는 상기 제 3 코드의 제 3 타깃 값에 따라 상기 메모리 장치의 상기 기준 전압의 상기 레벨을 설정하는 단계를 더 포함하는 시스템 온 칩의 동작 방법.
  9. 제 8 항에 있어서,
    상기 제 1 코드의 제 1 타깃 값 및 상기 제 2 코드의 제 2 타깃 값에 따라 상기 클럭의 상기 듀티 사이클 및 상기 시스템 온 칩의 상기 기준 전압의 상기 레벨이 각각 설정된 이후에, 상기 제 3 코드의 제 3 타깃 값에 따라 상기 메모리 장치의 상기 기준 전압의 상기 레벨이 설정되는 시스템 온 칩의 동작 방법.
  10. 클럭을 생성하도록 구성되는 시스템 온 칩; 및
    상기 시스템 온 칩으로부터 출력되는 상기 클럭에 동기되는 메모리 장치를 포함하되,
    상기 시스템 온 칩은:
    제 1 코드에 따라 조정되는 상기 클럭의 듀티 사이클의 트레이닝;
    제 2 코드에 따라 조정되고 그리고 상기 메모리 장치로부터 출력되는 제 1 데이터 입출력 신호를 판별하는데 사용되는 상기 시스템 온 칩의 기준 전압의 레벨의 트레이닝; 및
    상기 메모리 장치로부터 출력되는 제 1 데이터 스트로브 신호 및 상기 제 1 데이터 입출력 신호 간의 스큐(skew)의 트레이닝을 동시에 수행하도록 더 구성되는 전자 장치.
KR1020180130848A 2018-10-30 2018-10-30 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치 KR102679215B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180130848A KR102679215B1 (ko) 2018-10-30 2018-10-30 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치
US16/457,164 US11003370B2 (en) 2018-10-30 2019-06-28 System on chip performing a plurality of trainings at the same time, operating method of system on chip, electronic device including system on chip
CN201911042781.XA CN111126615A (zh) 2018-10-30 2019-10-29 同时执行多个训练的片上系统及其操作方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180130848A KR102679215B1 (ko) 2018-10-30 2018-10-30 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치

Publications (2)

Publication Number Publication Date
KR20200049985A true KR20200049985A (ko) 2020-05-11
KR102679215B1 KR102679215B1 (ko) 2024-06-28

Family

ID=70328659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180130848A KR102679215B1 (ko) 2018-10-30 2018-10-30 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치

Country Status (3)

Country Link
US (1) US11003370B2 (ko)
KR (1) KR102679215B1 (ko)
CN (1) CN111126615A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102519572B1 (ko) 2018-05-11 2023-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN112204664B (zh) 2018-05-29 2024-04-02 美光科技公司 用于设置用于改进时钟工作循环的工作循环调整器的设备及方法
KR102679157B1 (ko) * 2018-10-30 2024-06-27 삼성전자주식회사 모드 레지스터 쓰기 명령을 이용하여 쓰기 클럭의 듀티 사이클의 트레이닝을 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치
US11189334B2 (en) 2018-11-21 2021-11-30 Micron Technology, Inc. Apparatuses and methods for a multi-bit duty cycle monitor
US10715127B2 (en) 2018-11-21 2020-07-14 Micron Technology, Inc. Apparatuses and methods for using look-ahead duty cycle correction to determine duty cycle adjustment values while a semiconductor device remains in operation
US11139010B2 (en) 2018-12-11 2021-10-05 SK Hynix Inc. Memory system and operating method of the memory system
KR20200126678A (ko) * 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200126666A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200124045A (ko) 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11404097B2 (en) 2018-12-11 2022-08-02 SK Hynix Inc. Memory system and operating method of the memory system
KR20200137548A (ko) 2019-05-30 2020-12-09 에스케이하이닉스 주식회사 메모리 장치 및 이의 테스트 동작 방법
JP7316459B2 (ja) 2020-09-24 2023-07-27 チャンシン メモリー テクノロジーズ インコーポレイテッド デュアル基準電圧発生器、等化回路及びメモリ
CN114255801B (zh) * 2020-09-24 2023-09-15 长鑫存储技术有限公司 双参考电压产生器、均衡电路及存储器
US11862224B2 (en) * 2021-01-22 2024-01-02 Realtek Semiconductor Corp. Method for performing memory calibration, associated system on chip integrated circuit and non-transitory computer-readable medium
KR20220121440A (ko) 2021-02-25 2022-09-01 삼성전자주식회사 메모리 장치의 dq 캘리브레이션 패턴의 최적화 방법 및 이를 수행하는 컴퓨팅 시스템
KR20220121385A (ko) * 2021-02-25 2022-09-01 삼성전자주식회사 어플리케이션 프로세서 및 이를 포함하는 전자 장치
KR20220165535A (ko) * 2021-06-08 2022-12-15 삼성전자주식회사 데이터 트레이닝을 수행하는 메모리 컨트롤러, 이를 포함하는 시스템 온 칩 및 메모리 컨트롤러의 동작방법
KR20230006325A (ko) * 2021-07-02 2023-01-10 삼성전자주식회사 클록 트레이닝 시간을 줄이기 위한 장치, 메모리 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090110116A1 (en) * 2007-10-31 2009-04-30 Micron Technology, Inc. Method and apparatus for training the reference voltage level and data sample timing in a receiver
KR20170038977A (ko) * 2015-09-30 2017-04-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 기준전압 트레이닝 방법
US9665289B1 (en) * 2015-12-04 2017-05-30 Inphi Corporation Eye scan for memory channel
US20170154660A1 (en) * 2015-12-01 2017-06-01 International Business Machines Corporation Efficient calibration of memory devices
US20170323222A1 (en) * 2016-05-09 2017-11-09 Invecas, Inc. Optimal Data Eye for Improved Vref Margin

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570944B2 (en) * 2001-06-25 2003-05-27 Rambus Inc. Apparatus for data recovery in a synchronous chip-to-chip system
JP3888603B2 (ja) 2000-07-24 2007-03-07 株式会社ルネサステクノロジ クロック生成回路および制御方法並びに半導体記憶装置
CN100492533C (zh) * 2001-10-19 2009-05-27 三星电子株式会社 用于控制存储系统中的积极终端电阻的装置及其方法
EP1446910B1 (en) * 2001-10-22 2010-08-11 Rambus Inc. Phase adjustment apparatus and method for a memory device signaling system
US7602859B2 (en) * 2005-04-28 2009-10-13 Intel Corporation Calibrating integrating receivers for source synchronous protocol
US7405984B2 (en) * 2006-09-19 2008-07-29 Lsi Corporation System and method for providing programmable delay read data strobe gating with voltage and temperature compensation
CN101169974B (zh) * 2006-10-23 2011-03-30 旺宏电子股份有限公司 多阶存储单元内存装置的操作方法及应用该方法的集成电路
KR100834397B1 (ko) 2007-01-10 2008-06-04 주식회사 하이닉스반도체 내부클럭을 테스트할 수 있는 반도체 메모리 장치
KR101140141B1 (ko) 2009-12-31 2012-05-02 연세대학교 산학협력단 위상 검출 장치
US8665665B2 (en) 2011-03-30 2014-03-04 Mediatek Inc. Apparatus and method to adjust clock duty cycle of memory
US8644085B2 (en) * 2011-04-05 2014-02-04 International Business Machines Corporation Duty cycle distortion correction
US20130223152A1 (en) 2011-08-02 2013-08-29 Elpida Memory, Inc. Clock generator
US8692561B2 (en) * 2011-08-11 2014-04-08 International Business Machines Corporation Implementing chip to chip calibration within a TSV stack
US8836394B2 (en) * 2012-03-26 2014-09-16 Rambus Inc. Method and apparatus for source-synchronous signaling
US9515204B2 (en) * 2012-08-07 2016-12-06 Rambus Inc. Synchronous wired-or ACK status for memory with variable write latency
KR102016725B1 (ko) 2013-01-03 2019-09-02 에스케이하이닉스 주식회사 데이터 출력 회로
US20140265885A1 (en) * 2013-03-12 2014-09-18 Cree, Inc. Multiple power outputs generated from a single current source
KR20150142852A (ko) * 2014-06-12 2015-12-23 에스케이하이닉스 주식회사 다중 위상 클럭을 생성하는 반도체 시스템 및 이의 트레이닝 방법
US9461631B1 (en) 2015-02-05 2016-10-04 Altera Corporation Circuitry and methods for measuring and correcting duty-cycle distortion
CN104660043B (zh) * 2015-02-11 2017-03-29 东南大学 一种数字dc/dc变换器的四段式自适应pid控制方法
JP2018042032A (ja) 2016-09-05 2018-03-15 東芝メモリ株式会社 受信装置
US9984740B1 (en) * 2017-03-21 2018-05-29 Micron Technology, Inc. Timing control for input receiver
US10103718B1 (en) * 2017-04-05 2018-10-16 Xilinx, Inc. Recalibration of source synchronous systems
US10193711B2 (en) * 2017-06-22 2019-01-29 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
KR102447493B1 (ko) 2017-12-04 2022-09-26 삼성전자주식회사 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법
US10291439B1 (en) * 2017-12-13 2019-05-14 Micron Technology, Inc. Decision feedback equalizer
US10496332B2 (en) * 2017-12-18 2019-12-03 Intel Corporation Data path training and timing signal compensation for non-volatile memory device interface
US10600494B2 (en) * 2018-04-05 2020-03-24 Micron Technology, Inc. Methods and apparatuses for self-trimming of a semiconductor device
KR102674619B1 (ko) * 2018-07-11 2024-06-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090110116A1 (en) * 2007-10-31 2009-04-30 Micron Technology, Inc. Method and apparatus for training the reference voltage level and data sample timing in a receiver
KR20170038977A (ko) * 2015-09-30 2017-04-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 기준전압 트레이닝 방법
US20170154660A1 (en) * 2015-12-01 2017-06-01 International Business Machines Corporation Efficient calibration of memory devices
US9665289B1 (en) * 2015-12-04 2017-05-30 Inphi Corporation Eye scan for memory channel
US20170323222A1 (en) * 2016-05-09 2017-11-09 Invecas, Inc. Optimal Data Eye for Improved Vref Margin

Also Published As

Publication number Publication date
US20200133542A1 (en) 2020-04-30
US11003370B2 (en) 2021-05-11
KR102679215B1 (ko) 2024-06-28
CN111126615A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
KR102679215B1 (ko) 복수의 트레이닝들을 동시에 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치
CN111124998B (zh) 片上系统、其操作方法及包括该片上系统的电子设备
US11790981B2 (en) Method of performing internal processing operation of memory device
US11749338B2 (en) Memory device adjusting duty cycle and memory system having 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
US11670359B2 (en) Semiconductor memory device capable of operating at high speed, low power environment by optimizing latency of read command and write command depending on various operation modes
KR20190093102A (ko) 듀티 사이클을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR20220121385A (ko) 어플리케이션 프로세서 및 이를 포함하는 전자 장치
US20230377667A1 (en) Semiconductor device
US20020136079A1 (en) Semiconductor memory device and information processing system
EP4113519A2 (en) Apparatus, memory device, and method reducing clock training time
KR20210058505A (ko) 메모리 장치를 제어하도록 구성된 시스템-온-칩의 동작 방법
US20230377621A1 (en) Semiconductor device
US20230342050A1 (en) Memory system for optimizing on-die termination settings of multi-ranks, method of operation of memory system, and memory controller
CN117116314A (zh) 半导体装置、用于操作半导体装置的方法和计算系统
KR20230163271A (ko) 반도체 장치
CN117095712A (zh) 半导体装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right