KR20160034961A - 메모리 제어기의 판독 트레이닝 - Google Patents

메모리 제어기의 판독 트레이닝 Download PDF

Info

Publication number
KR20160034961A
KR20160034961A KR1020167004117A KR20167004117A KR20160034961A KR 20160034961 A KR20160034961 A KR 20160034961A KR 1020167004117 A KR1020167004117 A KR 1020167004117A KR 20167004117 A KR20167004117 A KR 20167004117A KR 20160034961 A KR20160034961 A KR 20160034961A
Authority
KR
South Korea
Prior art keywords
read
data
memory module
identifier
determining
Prior art date
Application number
KR1020167004117A
Other languages
English (en)
Other versions
KR101855512B1 (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 인텔 코포레이션
Publication of KR20160034961A publication Critical patent/KR20160034961A/ko
Application granted granted Critical
Publication of KR101855512B1 publication Critical patent/KR101855512B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Information Transfer Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

메모리 모듈이 버스 인터페이스의 측파대 레인 상에서 연속적인 비트 패턴들을 송신하는 트레이닝 모드를 개시하도록 메모리 모듈을 프로그래밍하고; 버스 인터페이스를 통해 비트 패턴들을 수신하고; 수신된 비트 패턴들로부터 비트 패턴 내의 값들의 트랜지션을 결정하여, 값들의 결정된 트랜지션들 사이의 데이터 아이를 결정하고; 결정된 데이터 아이 내에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하기 위한 디바이스 및 컴퓨터 판독가능한 저장 매체가 제공된다.

Description

메모리 제어기의 판독 트레이닝{READ TRAINING A MEMORY CONTROLLER}
본원에 기술된 실시예들은 일반적으로 메모리가 채널 및 메모리 제어기에 연결된 슬롯들과 호환가능한 핀 레이아웃을 갖는 다수의 메모리 모듈들과 단일 채널 또는 버스 상에서 통신하는 메모리 시스템에 관한 것이다.
메모리 제어기는 인터페이스 또는 버스 상에서 프로세서와 하나 이상의 메모리 모듈들 사이의 데이터의 흐름을 관리한다. 메모리 제어기는 메모리 모듈에 판독 및 기록하고 DRAM에 저장된 데이터를 리프레시(refresh)시키기 위해 필요한 로직을 포함하며, 별도의 칩으로서 구현된다. 메모리 제어기는 합동 전자 디바이스 엔지니어링 협회(Joint Electron Device Engineering Council)(JEDEC) 더블 데이터 레이트 3세대(Double Data Rate Third Generation)(DDR3) 동기식 동적 랜덤 액세스 메모리(Synchronous Dynamic Random Access Memory)(SDRAM) 프로토콜과 같이, 채널에 연결된 다수의 메모리 모듈들에 의해 이용되는 프로토콜을 지원한다.
메모리에 대한 인터페이스를 이용하기 전에, 메모리 제어기는 메모리 제어기가 메모리 모듈들로부터의 판독 데이터를 샘플링하기 위해 활성화할 타이밍을 조정함으로써 동작들을 위한 메모리 모듈들을 구성해야 한다. 위상 보간기와 같은 신호 정렬 디바이스는 클록 위상 정보를 생성하도록 메모리 제어기에 의해 제어되며, 상이한 결정된 위상들을 갖는 위상 제어 신호들 및 기준 신호들에 응답하여 데이터 샘플링 신호를 정렬하여 판독 데이터가 송신될 센터 또는 데이터 아이에서 판독된 데이터 센터를 샘플링한다.
실시예들은, 축척에 맞게 그려지지 않았으며 동일한 참조 번호들이 유사한 엘리먼트들을 지칭하는, 첨부 도면들과 관련하여, 예시에 의해 기술된다.
도 1은 메모리 시스템을 갖는 시스템의 실시예를 도시한다.
도 2는 메모리 모듈의 실시예를 도시한다.
도 3은 메모리 제어기와 메모리 모듈 사이의 버스 인터페이스의 실시예를 도시한다.
도 4는 샘플 신호를 생성하도록 위상 보간기를 조정하기 위해 미세 판독 트레이닝(fine read training)을 수행하는 동작들의 실시예이다.
도 5는 판독 데이터가 수신되는 판독 오프셋을 결정하기 위해 개략적 판독 트레이닝(coarse read training)을 수행하는 동작들의 실시예를 도시한다.
도 6은 정상 판독 동작들 동안 위상 보간기의 트레이닝을 수행하는 동작들의 실시예를 도시한다.
메모리 인터페이스 상에서, 메모리 모듈은 메모리 제어기에 데이터 신호들과 함께 스트로브 신호(strobe signal)들을 송신하며, 메모리 제어기는 스트로브 신호들을 처리하여 언제 수신기들을 턴온시키고 데이터를 판독할지를 결정한다. 메모리 제어기는 이후 다른 프로시저들을 이용하여, 예컨대, 위상 보간기를 이용하여, 판독 데이터를 어디서 샘플링하여 판독할지를 결정할 수 있다.
기술된 실시예들은, 개략적 판독 트레이닝에 선행하여 미세 판독 트레이닝을 수행하고, 이후 향상된 판독 트레이닝을 수행하여 정상 판독 동작 동안 위상 보간기를 조정하는 기법들을 제공한다. 기술된 실시예들은 메모리 모듈이 메모리 제어기에 의해 이용된 신호들을 리턴하여 위상 보간기를 조정하기 위한 측파대 신호 레인을 제공한다. 또한, 메모리 제어기는, 메모리 제어기가 이용할 데이터 버스 라인 및 커맨드 버스 라인과는 별도인 버스 상의 측파대 레인을 통해 메모리 제어기가 리턴하는 메모리 모듈 신호 패턴들을 제공하여, 수신기들을 턴온시켜 리턴된 판독 데이터를 샘플링할 판독 오프셋 타이밍을 결정한다.
후속하는 기재에서, 로직 구현예들, op코드들, 오퍼랜드들을 특정하는 수단, 리소스 파티셔닝/공유/복제 구현예들, 시스템 컴포넌트들의 타입들 및 상호관계들, 및 로직 파티셔닝/집적 선택들과 같은 다수의 특정 상세항목들은 본 발명의 보다 철저한 이해를 제공하기 위해 설명된다. 그러나, 발명이 이러한 특정 상세항목들 없이도 구현될 수 있다는 것이 통상의 기술자에 의해 이해될 것이다. 다른 경우들에서, 제어 구조들, 게이트 레벨 회로들, 및 전체 소프트웨어 명령어 시퀀스들은 발명을 모호하게 하지 않기 위해 자세히 도시되지 않는다. 통상의 기술자는, 포함된 기재들을 이용하여, 과도한 실험 없이도 적절한 기능성을 구현할 수 있을 것이다.
"일 실시예", "실시예", "예시적인 실시예" 등에 대한 명세서에서의 참조들은 기술된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 특정 특징, 구조 또는 특성을 포함하지 않을 수도 있음을 나타낸다. 또한, 이러한 구문들은 반드시 동일한 실시예를 지칭하지는 않는다. 후속하는 기재 및 청구항들에서, 용어 "연결된" 및 "접속된"이, 이들의 파생어들과 함께 이용될 수 있다. 이러한 용어들이 서로에 대한 유의어들로서 의도되지 않는다는 점이 이해되어야 한다. "연결된"은 서로 직접 물리적 또는 전기적으로 접속할 수 있거나 접속하지 않을 수 있는 둘 이상의 엘리먼트들이 서로 협력하거나 상호작용함을 나타내기 위해 이용된다.
"접속된"은 서로 연결된 둘 이상의 엘리먼트들 사이의 통신의 설정을 나타내기 위해 이용된다. 특정 실시예들은 메모리 디바이스 전자 어셈블리들에 관한 것이다. 실시예들은 전자 어셈블리들을 형성하기 위한 디바이스들 및 방법들 모두를 포함한다.
도 1은 마더보드 상에 통상적으로 장착되는 하나 이상의 프로세서들(102), 메모리 제어기(104) 및 다수의 메모리 모듈들(200a, 200b)을 포함하는 컴퓨팅 시스템(100)의 실시예를 도시한다. 프로세서들(102)은 중앙 처리 유닛, 멀티-코어 프로세서를 포함할 수 있다. 메모리 제어기(104)는 프로세서들(102)로부터의 메모리 액세스 요청들에 응답하여, 또한 채널, 버스 인터페이스 등으로서 지칭되는 버스(108)를 통해 다수의 메모리 모듈들(200a, 200b)과 통신하며, 여기서, 메모리 모듈들(200a, 200b) 모두는 별도로 그리고 독립적으로 동일한 버스(108)에 접속된다. 메모리 제어기(104)는 동작들을 수행하도록 실행되는 코드 또는 로직을 포함하는 제어기 로직(110); 입력 타이밍 신호들을 수신하고, 수신된 판독 데이터 신호의 데이터 아이에 맞춰 정렬된 보간된 샘플링 신호를 생성하기 위한 위상 보간기(112); 개략적 그리고 향상된 판독 트레이닝 위상들에서 이용되는 랜덤 판독 식별자들을 생성하는 선형 피드백 시프트 레지스터(Linear Feedback Shift Register)(LFSR)(114); 및 트레이닝 동작들 동안 이용되는 값들을 저장하는 트레이닝 레지스터들(116)을 포함할 수 있다.
도 1의 실시예에서, 메모리 모듈들(200a, 200b)은 시스템(100) 마더보드 상의 슬롯들 또는 메모리 소켓들에 장착된다. 메모리 모듈들(200a, 200b)은 마더보드 상의 메모리 슬롯들에서의 핀 배열과 호환가능한 핀 배열을 갖는 동일한 또는 상이한 타입들의 메모리 모듈들을 포함할 수 있다. 또한, 메모리 모듈들은 더블 데이터 레이트 4세대(Double Data Rate Fourth Generation)(DDR4) 프로토콜 및 추가적인 프로토콜들과 같은, 동일한 또는 상이한 메모리 프로토콜들을 지원할 수 있다. 2개의 메모리 모듈들(200a, 200b)만이 도시되어 있지만, 다수의 메모리 모듈들이 존재할 수 있다.
메모리 모듈들(200a, 200b) 각각은 데이터를 저장하기 위해, 메모리 모듈들(200a, 200b)의 한 측 또는 양 측 상에서, 각자 메모리 칩들(202a, 204a, 206a, 208a 및 202b, 204b, 206b, 208b)을 포함한다. 메모리 모듈 패키지(200a, 200b)의 한 측 또는 양측 상에 위치된 메모리 칩들, 예를 들어, DRAM 칩들은 프로세서(102)에 의해 이용되는 데이터를 저장하는 저장 엘리먼트들을 포함한다.
각각의 메모리 모듈(200a, 200b)은 메모리 관리 및 메모리 제어기(104)와의 액세스 동작들을 조정하는 메모리 모듈 제어기(210a, 210b)를 포함할 수 있다. 메모리 제어기(104)는 판독 트레이닝 동작들, 판독 및 기록 동작들, 및 버스(108)에 접속된 메모리 모듈들(200a, 200b)에 대한 메모리 동작들을 관리하고, 프로세서(102)를 메모리 모듈들(200a, 200b)에 인터페이스하기 위한 로직, 예컨대 로직(110)을 포함한다. 메모리 제어기(104) 및/또는 메모리 모듈들(200a, 200b)은 프로세서(102)와 통합되거나, 도 1에 도시된 바와 같이 시스템(100) 마더보드 상에 프로세서(102)와는 별도인 로직에서 구현될 수 있다.
시스템(100) 마더보드는, 상이한 타입들의 메모리 모듈들(200a, 200b)이 메모리 소켓들 내의 핀 아키텍처와 호환가능한 한, 상이한 타입들의 메모리 모듈들(200a, 200b)이 상이한 메모리 프로토콜들을 지원하는 상이한 타입들의 메모리 디바이스들을 지원하게 하도록, 상이한 타입들의 메모리 칩들과 호환가능한 메모리 소켓을 포함할 수 있다.
일 실시예에서, 메모리 모듈들(200a, 200b)은, LPDDR들, 버퍼링되지 않은 DIMM(unbufferred DIMM)(UDIMM), 로드 감소형 듀얼-인라인 메모리 모듈(Load Reduced Dual-inline Memory Module)(LRDIMM), 소형 아웃라인 듀얼 인-라인 메모리 모듈(Small Outline Dual In-line Memory Module)(SODIMM) 등과 같은 듀얼 인-라인 메모리 모듈(Dual In-Line Memory Module)(DIMM)들과 같이, 동일한 또는 상이한 타입의 더블 데이터 레이트 동기식 동적 랜덤-액세스 메모리(Double data rate synchronous dynamic random-access memory)(DDR SDRAM) 메모리 모듈을 포함할 수 있다. 메모리 모듈들(200a, 200b)은 NAND (플래시) 메모리, 강유전성 랜덤-액세스 메모리(FeTRAM), 나노와이어-기반 비휘발성 메모리, 상변화 메모리(PCM)와 같은 3차원(3D) 교차점 메모리, 멤리스터 기술을 포함하는 메모리, 자기저항성 랜덤-액세스 메모리(Magnetoresistive random-access memory)(MRAM), 스핀 전달 토크(Spin Transfer Torque)(STT)-MRAM 등을 포함하지만 이에 제한되지 않는, 다양한 형태의 메모리를 구현할 수 있다.
도 2는 메모리 모듈 동작들 및 메모리 제어기(104)와의 상호작용을 수행하는 메모리 모듈 제어기(210)를 포함하는 것으로서, 메모리 모듈들(200a, 200b)과 같은 메모리 모듈(200)의 실시예의 추가적인 상세항목들을 제공한다. 메모리 모듈(200)은 모드 레지스터 설정(Mode Register Set)(MRS) 커맨드를 이용하여 구성될 수 있는 데이터를 갖는 메모리 모듈 제어기(210) 내의 모드 레지스터들(212), 메모리 칩들(202, 204, 206, 208)에 대한 판독 및 기록 데이터를 버퍼링하기 위한 판독 버퍼(214) 및 기록 버퍼(216)를 포함할 수 있다. 버퍼들(214, 216)은 메모리 모듈(200) 내의 메모리 모듈 제어기(210) 내에서 또는 메모리 모듈 제어기(210)에 대해 외부에 있는 회로에서 구현될 수 있다. 추가적인 실시예들에서, 모드 레지스터들(212)은 메모리 칩들(202, 204, 206, 208)에서 구현될 수 있다.
메모리 모듈 제어기(210) 및 메모리 제어기(104) 동작들을 실행하는 코드 또는 로직은 메모리 내에 로딩되어 프로세서에 의해 실행되는 컴퓨터 판독가능한 코드로서 구현될 수 있거나 또는 주문형 집적 회로(Application Specific Integrated Circuit)(ASIC), 필드 프로그래밍가능한 게이트 어레이(Field Programmable Gate Array)(FPGA) 등과 같은 하드웨어 로직에서 인코딩될 수 있다.
기술된 실시예들의 로직 또는 코드는 머신 실행가능한 명령어들을 저장하기 위한 전기적 및 다른 하드웨어 엘리먼트들을 갖는 디바이스 또는 장치를 포함하는 머신 판독가능한 저장 매체에서 구현될 수 있다. 머신 판독가능한 매체는 플래시 메모리, 광학 디스크, 컴팩트 디스크-판독 전용 메모리(compact disks-read only memory)(CD-ROM), DVD(digital versatile/video disks) ROM, 랜덤 액세스 메모리(RAM), 소거 및 프로그래밍가능한 판독-전용 메모리(EPROM), 전기적 소거 및 프로그래밍가능한 판독-전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 자기 또는 광학 카드들, 및 전자 명령어들을 저장하기에 적합한 다른 머신 판독가능한 매체를 포함할 수 있지만, 이에 제한되지 않는다.
대안적인 구현예들에서, 기술된 실시예들의 로직 또는 코드는 신호 전송 매체에서 구현될 수 있다.
도 3은 측파대 라인들을 갖는 측파대 레인(300); 메모리 제어기(104)가 메모리 모듈(200)에 커맨드들을 전달하는 커맨드 및 제어 신호 라인들(302); 메모리 모듈(200)이 이용하여 커맨드/제어 라인들(302) 상의 어드레스 및 제어 신호들을 샘플링하기 위해 이용할 메모리 제어기(104)로부터 메모리 모듈(200)까지의 차동 클록 입력 신호(DCLK)(304); 및 메모리 제어기(104)와 메모리 모듈(200) 사이에서 판독 및 기록 데이터가 송신되는 데이터 라인들(306)을 포함하는, 메모리 제어기(104)와 메모리 모듈(200) 사이의 버스 인터페이스 라인들(108)의 실시예를 도시한다. 추가적인 버스 라인들이 다른 목적으로 포함될 수 있다.
측파대 레인(300)은 메모리 제어기(104)가 트레이닝 및 다른 목적으로, 그리고 메모리 제어기(104)로부터의 제어 신호들에 응답하여 이용할 수 있는 추가적인 정보를 송신하기 위한 하나 이상의 신호 라인들을 가진다. 예를 들어, 메모리 제어기(104)는 판독 수신 확인응답을 수신하는 것에 응답하여 메모리 모듈(200)에 승인 메시지를 송신할 수 있는데, 이는 메모리 모듈(200)이 데이터를 송신하기 이전에 측파대 레인(300) 상에서 판독 식별자(ID) 신호를 송신하게 할 수 있다. 메모리 모듈(200)은 판독 요청과 함께 메모리 제어기(104)가 이전에 송신한 판독 ID를 통신하기 위해 측파대 레인(300)을 이용할 수 있고, 그 응답으로, 메모리 모듈(200)은 처리, 예를 들어, 필터링, 분석 등이 없이 측파대 레인(300) 상에서 판독 ID를 루프백시킬 수 있다. 또한, 특정 실시예들에서, 측파대 레인(300)은 메모리 모듈(200) 상에서 클록 신호 쌍들을 포함할 수 있다.
일 실시예에서, 판독 ID를 다시 메모리 제어기(104)에 송신하는 측파대 레인(300)은 클록 주파수에서가 아니라 커맨드 주파수에서 신호들을 송신한다. 일 실시예에서, 측파대 레인(300)은 클록들을 송신하고, 클록 입력 신호(DCLK)(304)의 주기의 2배인 클록 패턴을 송신하도록 의도될 수 있다. 메모리 모듈(200)은 판독 데이터를 송신하기 이전에 측파대 레인(300) 상에서, 제어 신호의 일부로서, 신호들 및 수신된 판독 ID를 송신할 수 있다. 이러한 판독 ID 신호들은 승인 신호와 같은 제어 신호에 대한 특정 타이밍 관계를 이용하여, 데이터의 버스트를 송신할 수 있다. 이러한 타이밍 관계는 메모리 모듈 지연들 및 채널에 따라, 범위 내에서 달라질 수 있다. 특정 실시예들에서, 메모리 모듈(200)은 데이터 버스트를 갖는 스트로브를 송신하지 않을 수 있고, 따라서, 메모리 제어기(104)는 미세 판독 트레이닝을 수행하여 판독 ID 신호 샘플링 지연들을 트레이닝시켜서 판독 ID 시그널링 아이의 중심 상에서 정렬하여 낮은 비트 에러 레이트를 달성한다. 판독 ID 신호들은 데이터 버스의 주파수의 절반에서 송신될 수 있지만, 이러한 속도는 여전히 1600MTps까지 이를 수 있다.
도 4는 메모리 모듈(200)과 함께 메모리 제어기 로직(110)이 위상 보간기(112)의 미세 판독 트레이닝을 수행하여 데이터 아이에 정렬된 보간된 샘플 신호들을 제공하게 하기 위해 메모리 제어기 로직(110)과 메모리 모듈 제어기(202)에 의해 수행되는 동작들의 실시예를 도시한다. 미세 판독 트레이닝은 시스템(100)의 부팅 동안 버스(108)의 프로빙(probing) 동안 개시될 수 있다. 미세 판독 트레이닝을 개시하기 위해, 메모리 제어기 로직(110)은 (블록(400)에서) 미세 판독 트레이닝 모드를 시작하도록 메모리 모듈(200) 내의 모드 레지스터들(212)을 프로그래밍하는 커맨드를 송신한다. 모드 레지스터들(212)이 미세 판독 트레이닝 모드를 나타내도록 기록되는 것에 응답하여, (블록들(404 및 406)에서) 메모리 모듈 제어기(210)는, 측파대 레인(300)의 제1 측파대 신호 라인 상에서 제1 패턴을 송신하고, 제1 신호 라인과는 상이한, 측파대 레인(300) 상의 제2 신호 라인 상에서 제2 패턴을 송신한다. 제1 패턴 및 제2 패턴은 1010 및 0101과 같이 반대 값들을 갖는 클록 신호들을 포함할 수 있다. 특정 실시예들에서, 클록 패턴들은 DCLK(304) 클록 신호의 주기의 2배의 주기를 가질 수 있고, 클록 주파수(304)가 아니라, 커맨드/제어 신호 라인(302)에서의 주파수를 가질 수 있다. 측파대 레인(300)의 별도의 신호 라인들 상의 1010 및 0101과 같은 신호들은 역위상(out of phase) 또는 동위상(in-phase)일 수 있다. 또한, 블록들(404 및 406)에서의 송신된 패턴들은 측파대 레인(300)의 별도의 라인들 상에서 연속 모드로 송신될 수 있다.
제1 패턴 및 제2 패턴의 비트들의 송신 이후, (블록(408)에서) 모드 레지스터들(212)이 미세 판독 트레이닝 모드를 계속 나타내는 경우, 제어는 반대 값들을 갖는 패턴들을 계속 송신하도록 블록(404)으로 되돌아간다. (블록(408)에서) 미세 모드 트레이닝이 종료되는 경우, (블록(410)에서) 개략적 판독 트레이닝 위상이 시작할 수 있다.
(블록(412)에서) 메모리 제어기 로직(110)이 송신된 비트 패턴을 수신할 시에, (블록(414)에서) 수신된 비트가 트레이닝 레지스터들(116)에 저장된 비트 값의 반대 값, 0에 대한 1 또는 1에 대한 0이 아닌 경우, (블록(416)에서) 수신된 비트는 트레이닝 레지스터들(116)에 저장된다. (블록(414)에서) 수신된 비트 값이 저장된 비트 값의 반대인 경우, (블록(418)에서) 반대 비트(또는 패턴)가 수신된 타이밍에 대한 결정이 이루어진다. 이후, 메모리 제어기 로직(110)은 (블록(422)에서) 매치가 발견되지 않을 때까지 양방향에서 결정된 타이밍으로부터 외측으로 판독하도록, 즉, 스위핑하도록 타이밍들을 변경함으로써 결정된 타이밍으로부터 에지들을 결정하는데, 그때, 데이터 아이의 에지들이 반대 비트 패턴이 수신된 것으로 결정된 타이밍으로부터 각각의 방향에서 결정된다. 이후, 데이터 아이는 (블록(422)에서) 에지들의 타이밍 사이의 타이밍에 있는 것으로 결정된다. 일 실시예에서, 데이터 아이의 에지들은 각각의 방향에서 결정된 데이터 아이로부터 외측으로 스위핑하여 매치가 존재하지 않는 점을 발견하도록 위상 보간기(112) 타이밍들을 변경함으로써 결정된다.
이러한 타이밍 신호들에 기초하여, (블록(424)에서) 결정된 데이터 아이에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기(112)를 제어하기 위한 설정에 대한 결정이 이루어진다. 에지들 사이의 데이터 아이에서의 샘플링을 위해 보간된 신호들을 생성하도록 위상 보간기(112)를 트레이닝한 이후, 메모리 제어기 로직(110)은 (블록(426)에서) 미세 판독 트레이닝 모드를 중단하여 메모리 모듈 제어기가 측파대 레인(300) 상에서 반대의 비트 패턴들을 계속 송신하는 것을 중단하도록 메모리 모듈(220)의 모드 레지스터(212)에 기록한다.
특정 실시예들에서, 1과 0의 샘플 간의, 그리고 그 반대 간의 트랜지션들의 검출은 데이터 아이, 에지들 또는 에지들 사이에 판독된 데이터를 포함할 수 있는 판독 데이터를 갖는 타이밍을 나타낸다. 이러한 트레이닝 동작들은 4개의 트레이닝 결과 비트들이 신호 당 짝수/홀수를 캡쳐할 것을 요구할 수 있다. 짝수 또는 홀수만을 캡쳐하는 경우 2개 비트들이 이용될 수 있다. 위상 보간기(112)는 보간된 샘플을 생성하여 데이터 아이의 마진의 중간에서 데이터를 판독하도록 구성된다.
전술된 실시예에서, 패턴의 비트가 비교되어 데이터 아이의 에지들에 대해 스위핑하기 시작하도록 결정된 타이밍을 결정한다. 대안적인 실시예에서, 메모리 제어기(110)는 전체 패턴(예를 들어, 0101, 1010) 대신 단지 한 비트만 비교하지 않을 수 있는데, 따라서, 단지 단일 비트가 아니라, 데이터 아이가 저장된 패턴의 반대가 검출되는 타이밍에서 블록들(414 및 418)에서 결정된다. 또한, 전체 패턴이 비교되는 이러한 실시예들에서, 단지 단일 비트가 아니라, 전체 패턴이 블록(416)에서 트레이닝 레지스터들(116)에 저장될 것이다.
도 5는 메모리 제어기 로직(110)이 메모리 모듈(200)과 함께 메모리 제어기(104)의 개략적 판독 트레이닝을 수행하여, 메모리 제어기(104)가 판독 데이터를 검색하기 위해 송신된 승인 신호에 따라 판독 데이터를 활성화시키기 이전에 대기할 오프셋 또는 타이밍을 결정하게 하기 위해 메모리 제어기 로직(110) 및 메모리 모듈 제어기(202)에 의해 수행되는 동작들의 실시예를 도시한다. (블록(500)에서) 개략적 판독 트레이닝을 개시할 시에, 메모리 제어기 로직(110)은 (블록(502)에서) LFSR(114)을 이용하여 랜덤 판독 ID를 생성한다. 생성된 판독 ID는 (블록(504)에서) 트레이닝 레지스터들(116)에서 버퍼링된다. 메모리 제어기 로직(110)은 (블록(506)에서) 생성된 판독 ID와 함께 판독 커맨드를 메모리 모듈(200)에 송신한다. 메모리 모듈 제어기(210)가 (블록(508)에서) 개략적 판독 트레이닝 모드에서 동작하는 동안, (블록(510)에서) 판독 커맨드 및 판독 ID를 수신할 시에, 메모리 모듈 제어기(210)는 (블록(512)에서) 판독 커맨드를 수행한다.
(블록(506)에서) 판독 ID와 함께 판독 커맨드를 송신한 이후, 메모리 제어기 로직(110)은 (블록(514)에서) 버스 인터페이스(108)를 통해 메모리 모듈(200)에 승인 신호를 송신한다. (블록(516)에서) 승인 신호를 수신할 시에, (블록(518)에서) 요청된 데이터가 데이터 버스(306) 상에서 리턴되고, (블록(520)에서) 수신된 판독 ID는 측파대 레인(300) 상에서 리턴된다. 판독 ID 신호가 버스트 모드에서 리턴된다. 특정 실시예들에서, 측파대 판독 ID 신호(300) 상에서 판독 데이터에 앞서 판독 ID가 먼저 리턴된다. 이러한 방식으로, 메모리 모듈 제어기(200)는 데이터의 필터링 또는 분석 없이 메모리 제어기(104)에 판독 ID를 루프백시킨다. 특정 실시예들에서, 메모리 제어기 로직(110)은 판독 커맨드에 대해 메모리 모듈(200)로부터 확인응답(ACK)을 기다리지 않고 승인 신호를 제공할 수 있다.
(블록(522)에서) 메모리 제어기(104)가 측파대 레인(300) 상에서 판독 ID를 수신할 시에, 메모리 제어기 로직(110)은 (블록(524)에서) 수신된 판독 ID가 트레이닝 레지스터들(116)에 저장된 송신된 판독 ID와 매치하는지를 결정한다. (블록(524)의 어떤 분기로부터도) 매치가 존재하지 않는 경우, (블록(526)에서) 메모리 제어기 로직(110)은 승인이 송신될 때부터 판독 ID가 수신될 때까지의 사이클들의 수가 되도록 사이클 지연 설정을 수정한다. 사이클 지연 설정은 메모리 제어기 로직(110)이 데이터를 판독하려 시도할 때의 대략 타이밍 설정이고, 이러한 개략적 사이클 지연 타이밍 또는 사이클 레벨 시간은 블록(526)에서 타이밍이 판독 ID가 수신될 때와 매치할 때까지, 또는 승인이 설정된 왕복 레이턴시 설정과 매치할 때까지 조정된다. 블록(526)으로부터, 매치가 존재할 때까지 개략적 판독 트레이닝에 대한 랜덤 판독 ID들을 계속 생성하도록 제어가 블록(502)으로 다시 진행한다. (블록(524)에서) 송신된 그리고 수신된 판독 ID가 매치하는 경우, (블록(526)에서) 메모리 제어기 로직(110)은 승인 신호의 송신부터 매치하는 판독 ID가 수신될 때까지의 시간차로서 판독 오프셋을 결정한다. 판독 오프셋을 결정한 이후, (블록(530)에서) 메모리 제어기 로직(110)은 개략적 판독 트레이닝을 결정하기 위해 모드 레지스터 커맨드를 메모리 모듈(200)에 송신한다. 메모리 모듈 제어기(200)는 이러한 커맨드를 수신하면 (블록(540)에서) 모드 레지스터들(212)을 프로그래밍하여, (블록(542)에서) 개략적 판독 트레이닝을 종료한다.
미세 판독 트레이닝은 판독 데이터가 송신될 때 데이터 아이 내에서 판독할 보간된 샘플 신호를 생성하도록 위상 보간기(112)를 제어하기 위한 설정들을 생성하고, 개략적 판독 트레이닝 단계의 결과는 승인 신호가 설정된 이후 판독 데이터를 언제 수신하기 시작할지를 결정하기 위해 이용되는 판독 오프셋이다. 미세 판독 트레이닝 및 개략적 판독 트레이닝 이후, 결정된 위상 보간기(112) 설정들 및 판독 오프셋을 이용하여 정상 판독 동작들이 시작할 수 있다.
도 6은 정상 판독 동작들 동안 향상된 판독 트레이닝을 수행하여 판독 데이터 신호를 샘플링하는데 이용되는 샘플 신호를 생성하기 위해 이용되는 위상 보간기(112) 설정들을 추가로 개선하기 위해 메모리 제어기 로직(110) 및 메모리 모듈 제어기(202)에 의해 수행되는 동작들의 실시예를 도시한다. (블록(600)에서) 결정된 위상 보간기 설정들 및 판독 오프셋을 이용하여 정상 판독/기록 동작들 동안 향상된 트레이닝을 개시할 시에, (블록(602)에서) 메모리 제어기 로직(110)은 도 5의 블록들(502-514)에서의 동작들을 수행하여 판독 커맨드와 함께 판독 ID 신호를 생성하여 송신한다. (블록(604)에서) 정상 판독/기록 동작들 동안의 향상된 트레이닝 모드에 있는 동안, (블록(606)에서) 메모리 모듈 제어기(210)는 도 5의 블록들(510, 512, 516, 518)에서의 동작들을 수행하여 수신된 판독 커맨드를 처리하고 측파대 레인(300) 상에서 판독 ID를 리턴한다.
(블록(608)에서) 메모리 제어기(104)가 측파대 레인(300) 상에서 판독 ID를 수신할 시에, (블록(610)에서) 수신된 판독 ID가 트레이닝 레지스터들(116)에 저장된 송신된 판독 ID와 매치하는 경우, (블록(612)에서) 판독 ID가 판독된 타이밍이 결정된다. 이후, (블록(614)에서) 메모리 제어기 로직(110)은 블록들(418 내지 426)에서의 동작들을 수행하여, 결정된 판독 ID 타이밍으로부터 에지들을 결정하고, 결정된 에지들로부터 데이터 아이를 결정하고, 결정된 데이터 아이에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정한다. 랜덤하게 생성된 판독 ID들을 이용하여 위상 보간기(112)를 조정하는 이러한 동작들이 연속적으로 수행되어, 미세 판독 트레이닝 동안 이용되는 반복되는 반대 패턴들과는 반대로, 데이터 아이의 마진들을 결정하고, 랜덤하게 생성된 판독 ID의 형태로 더 공격적이고 실제적인 패턴들을 갖는 위상 보간기(112) 설정들을 리센터링(recenter)한다.
(블록(610)의 어떤 분기로부터도) 매치가 존재하지 않는 경우, 메모리 제어기 로직(110)은 승인이 송신될 때부터 판독 ID가 수신될 때까지의 사이클들의 수가 되도록 사이클 지연 설정을 수정한다(블록(616)). 사이클 지연 설정들은 메모리 제어기 로직(110)이 데이터를 판독하려고 시도할 때의 개략적 타이밍 설정이며, 이러한 개략적 사이클 지연 타이밍 또는 사이클 레벨 시간은 블록(526)에서 타이밍이 판독 ID가 수신될 때, 또는 승인이 설정될 때부터의 왕복 레이턴시 설정과 매치할 때까지 조정된다. 블록(616)으로부터, 매치가 존재할 때까지 향상된 미세 입도 트레이닝에 대한 랜덤 판독 ID들을 연속적으로 생성하기 위해 제어가 블록(602)으로 다시 진행한다.
기술된 실시예들은 버스(100) 상에서 낮은 비트 에러 레이트들을 달성하기 위해 판독 ID 라인(300) 상의 측파대 판독 ID 신호들의 트레이닝을 가능하게 한다. 기술된 판독 트레이닝은 그것이 단순한 패턴을 이용하여 아이 센터링 샘플링(eye centered sampling)을 달성한다는 점에 있어서 효율적이다. 기술된 실시예들은 최악의 경우의 마진들을 결정하기 위해, 판독 ID 버스(300) 상에서 고-스트레스 패턴들을 더 생성할 수 있다.
"일 실시예" 또는 "실시예"에 대한 이 명세서 전반에 걸친 참조가, 실시예와 관련하여 기술된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미한다는 것이 이해되어야 한다. 따라서, 이 명세서의 다양한 부분에서의 "실시예" 또는 "일 실시예" 또는 "대안적인 실시예"에 대한 둘 이상의 참조가 반드시 모두 동일한 실시예를 지칭하지는 않는다는 것이 강조되며 이해되어야 한다. 또한, 특정 특징들, 구조들 또는 특성들은 발명의 하나 이상의 실시예들에서 적합한 것으로서 조합될 수 있다.
유사하게, 발명의 실시예들의 이전 설명에서, 다양한 특징들이 다양한 발명의 양상들 중 하나 이상의 이해를 보조하는 개시내용을 개요화할 목적으로 단일 실시예, 도면, 또는 그 설명에서 때때로 함께 그룹화된다는 것이 이해되어야 한다. 그러나, 개시내용의 이 방법은 청구된 발명 대상이 각각의 청구항에서 명시적으로 인용된 것보다 더 많은 특징들을 요구한다는 의도를 반영하는 것으로서 해석되지 않아야 한다. 오히려, 후속하는 청구항들이 반영하는 바와 같이, 발명의 양상들은 단일의 이전 개시된 실시예의 모두보다 더 적은 특징들에 존재한다. 따라서, 상세한 설명에 후속하는 청구항들은 이에 의해 이러한 상세한 설명 내에 명시적으로 포함된다.
메모리 제어기(104) 및 메모리 모듈들(200)의 기술된 동작들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 조합을 생성하기 위해 표준 프로그래밍 및/또는 엔지니어링 기법들을 이용하여 방법, 장치 또는 컴퓨터 판독가능한 저장 매체로서 구현된다. 기술된 동작들은 기능들을 직접 실행할 수 있는, 또는 프로세서가 컴퓨터 저장 판독가능한 매체로부터 코드를 판독하고 실행할 수 있는 "컴퓨터 판독가능한 저장 매체"에 유지되는 코드 또는 로직으로서 구현될 수 있다. 컴퓨터 판독가능한 저장 매체는 전자 회로, 저장 재료들, 무기 재료들, 유기 재료들, 생체 재료들, 케이싱, 하우징, 코팅 및 하우징 중 적어도 하나를 포함한다. 컴퓨터 판독가능한 저장 매체는 자기 저장 매체(예를 들어, 하드 디스크 드라이브, 플로피 디스크, 테이프 등), 광학 저장소(CD-ROM들, DVD들, 광학 디스크들 등), 휘발성 및 비휘발성 메모리 디바이스들(예를 들어, EEPROM들, ROM들, PROM들, RAM들, DRAM들, SRAM들, 플래시 메모리, 펌웨어, 프로그래밍가능한 로직 등), 고체 상태 디바이스들(SSD) 등을 포함할 수 있지만, 이에 제한되지 않는다. 컴퓨터 판독가능한 저장 매체는 하드웨어 디바이스에서 구현되는 디지털 로직(예를 들어, 집적 회로 칩, 프로그래밍가능한 로직 디바이스, 프로그래밍가능한 게이트 어레이(Programmable Gate Array)(PGA), 필드 프로그래밍가능한 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 등)에서 구현되는 디지털 로직을 더 포함할 수 있다. 추가로, 기술된 동작들을 구현하는 코드는 전송 신호들이 광섬유, 구리 와이어 등과 같은 전송 매체를 통해 또는 공간을 통해 전파할 수 있는 "전송 신호들"에서 구현될 수 있다. 코드 또는 로직이 인코딩되는 전송 신호들은 무선 신호, 위성 전송, 라디오파, 적외선 신호, 블루투스 등을 더 포함할 수 있다. 컴퓨터 판독가능한 저장 매체 상에 내장된 프로그램 코드는 송신국 또는 송신 컴퓨터로부터 수신국 또는 컴퓨터로 전송 신호들로서 전송될 수 있다. 컴퓨터 판독가능한 저장 매체는 전송 신호들로만 구성되지는 않는다. 통상의 기술자는, 본 발명의 범위로부터 벗어나지 않고 이 구성에 대해 많은 수정들이 이루어질 수 있으며, 제조 물품이 당해 기술분야에 공지된 적절한 정보 베어링 매체를 포함할 수 있음을 인지할 것이다.
예들
후속하는 예들은 추가적인 실시예들에 관한 것이다.
예 1은, 적어도 하나의 메모리 모듈에 대한 버스 인터페이스; 동작할 때 동작들을 수행하는 메모리 제어기 로직을 포함하는, 버스를 통해 적어도 하나의 메모리 모듈에 연결된 디바이스이고, 동작들은, 메모리 모듈이 버스 인터페이스의 측파대 레인 상에서 연속적인 비트 패턴들을 송신하는 트레이닝 모드를 개시하도록 메모리 모듈을 프로그래밍하는 것; 버스 인터페이스를 통해 비트 패턴들을 수신하는 것; 수신된 비트 패턴들로부터 비트 패턴 내의 값들의 트랜지션을 결정하여 값들의 결정된 트랜지션들 사이의 데이터 아이를 결정하는 것; 및 결정된 데이터 아이 내에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하는 것을 포함한다.
예 2에서, 예 1의 발명 대상은 동작들이, 트레이닝 모드를 종료하도록 메모리 모듈을 프로그래밍하는 것 및 데이터 아이를 결정하고 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여 비트 패턴들을 송신하는 것을 더 포함한다.
예 3에서, 예 1의 발명 대상은, 수신된 클록 비트 패턴들로부터 트랜지션을 결정하는 것이, 레지스터에 비트 패턴으로부터 판독된 값을 저장하는 것; 및 비트 패턴의 후속 송신으로부터의 후속 판독 값이 레지스터 내의 판독 값과 매치하는지를 결정하는 것을 포함하고, 데이터 아이가 레지스터에 저장된 값들과 매치하는 2개의 판독 값들의 에지들 사이에서 결정된다는 것을 선택적으로 포함할 수 있다.
예 4에서, 예 1의 발명 대상은, 비트 패턴들이 판독 식별자 신호들에 대해 이용되는 버스 인터페이스의 측파대 레인 상의 제1 연속적인 비트 패턴, 및 측파대 레인 상의 제2 연속적인 비트 패턴을 포함하고, 제1 및 제2 연속적인 비트 패턴들은 반대 값들을 가진다는 것을 선택적으로 포함할 수 있다.
예 5에서, 예 4의 발명 대상은, 제1 연속적인 비트 패턴이 제1 판독 식별자 신호 라인 상에서 송신되고 연속적인 1010 패턴을 포함하며, 제2 연속적 패턴이 제2 판독 식별자 신호 라인 상에서 송신되고 연속적인 0101 패턴을 포함한다는 것을 선택적으로 포함할 수 있다.
예 6에서, 예 5의 발명 대상은, 제1 및 제2 연속적 패턴들이 매 클록 간격마다 0과 1 사이에서 교호하여 버스 인터페이스 상에서 클록 간격의 주기의 2배의 주기를 갖는 클록 패턴을 생성한다는 것을 선택적으로 포함할 수 있다.
예 7에서, 예 1의 발명 대상은, 버스 인터페이스가 커맨드들이 송신되는 커맨드 라인들, 데이터가 송신되는 데이터 라인들, 및 판독 식별자 신호 라인들을 포함하며, 비트 패턴들이 클록 주파수 미만의 커맨드 주파수에서 판독 식별자 신호 라인들 상에서 송신된다는 것을 선택적으로 포함할 수 있다.
예 8에서, 예 1의 발명 대상은 동작들이, 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여, 판독 식별자와 함께 판독 커맨드를 메모리 모듈에 송신하는 것; 리턴된 판독 식별자를 포함하는 판독 데이터를 메모리 모듈로부터 수신하는 것; 및 리턴된 판독 데이터가 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여 판독 오프셋을 결정하는 것을 더 포함하며, 판독 오프셋은 위상 보간기에 대해 결정된 설정을 이용하여 데이터 아이에서 판독된 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 이용된다는 것을 선택적으로 포함할 수 있다.
예 9는, 적어도 하나의 메모리 모듈에 대한 버스 인터페이스; 동작할 때 개략적 판독 트레이닝 동작들을 수행하는 메모리 제어기 로직을 포함하는, 버스를 통해 적어도 하나의 메모리 모듈에 연결된 디바이스이며, 동작들은, 판독 커맨드 및 판독 식별자를 메모리 모듈에 송신하는 것; 버스 인터페이스를 통해 메모리 모듈로부터 판독 데이터 및 수신된 판독 식별자를 수신하는 것; 및 메모리 모듈로부터 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자를 포함한다고 결정하는 것에 응답하여 판독 오프셋을 결정하는 것을 포함하고, 판독 오프셋은 수신된 판독 데이터의 데이터 아이에서 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 이용된다.
예 10에서, 예 9의 발명 대상은, 동작들이, 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치하지 않는다고 결정하는 것에 응답하여, 메모리 모듈로부터 수신된 판독 데이터가 생성된 새로운 판독 식별자를 포함하는 것에 응답하여 판독 오프셋이 결정될 때까지 메모리 모듈에 송신된 새로운 판독 커맨드에 포함시킬 새로운 판독 식별자의 생성을 적어도 한번 반복하여 수행하는 것을 더 포함하는 것을 선택적으로 포함할 수 있다.
예 11에서, 예 10의 발명 대상은 판독 식별자 및 새로운 판독 식별자들을 생성하여 랜덤 판독 식별자 값들을 제공하기 위해 이용되는 선형 피드백 시프트 레지스터(LFSR)를 선택적으로 포함할 수 있다.
예 12에서, 예 9의 발명 대상은 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자를 포함하는 것에 응답하여 개략적 판독 트레이닝이 종료되는 것을 선택적으로 포함할 수 있다.
예 13에서, 예 9의 발명 대상은 판독 식별자가 메모리 모듈이 판독 커맨드에 응답하여 판독 데이터를 리턴할 때 판독 식별자를 루프백시키게 하는 것을 선택적으로 포함할 수 있다.
예 14에서, 예 9의 발명 대상은 판독 식별자가 측파대 레인 상에서 메모리 모듈로부터 송신되는 것을 선택적으로 포함할 수 있다.
예 15에서, 예 8의 발명 대상은, 버스 인터페이스가 커맨드들이 송신되는 커맨드 라인들, 데이터가 송신되는 데이터 라인들, 및 판독 식별자 신호 라인들을 포함하며, 메모리 모듈이 판독 식별자 신호 라인들 상에서 판독 식별자를 리턴하는 것을 선택적으로 포함할 수 있다.
예 16에서, 예 15의 발명 대상은 판독 식별자가 메모리 모듈로부터 클록 신호들 상에서 리턴되는 것을 선택적으로 포함할 수 있다.
예 17에서, 예 9의 발명 대상은, 동작들이, 판독 커맨드의 송신에 후속하여 메모리 모듈에 승인 신호를 송신하는 것을 더 포함하고, 메모리 모듈은 승인 신호에 응답하여 판독 식별자 신호를 송신하고, 판독 오프셋은 승인 신호가 송신된 이후 데이터가 도달하는 시간을 측정하는 것을 선택적으로 포함할 수 있다.
예 18은, 적어도 하나의 메모리 모듈에 대한 버스 인터페이스; 위상 보간기; 동작할 때 개략적 판독 트레이닝 동작들을 수행하는 메모리 제어기 로직을 포함하는, 버스를 통해 적어도 하나의 메모리 모듈에 연결되는 디바이스이며, 동작들은, 버스 인터페이스의 커맨드 신호 라인 및 데이터 신호 라인과는 별도인 버스 인터페이스의 측파대 레인 상에서 메모리 모듈로부터 리턴된 판독 식별자를 이용하여, 판독 데이터가 버스 인터페이스 상에서 샘플링되는 판독 오프셋을 결정하는 것; 및 판독 오프셋을 이용하여 판독 데이터의 데이터 아이에서 데이터를 언제 샘플링하기 시작할지를 결정하는 동안, 판독 식별자와 함께 판독 커맨드를 메모리 모듈에 송신하는 것; 버스 인터페이스의 측파대 레인 상에서 메모리 모듈로부터 수신된 판독 식별자를 수신하는 것; 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여, 데이터 아이를 수신된 판독 식별자가 판독된 곳으로서 결정하고; 그리고 수신된 판독 식별자가 판독된 결정된 데이터 아이에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하는 것을 수행하는 것을 포함한다.
예 19에서, 예 18의 발명 대상은, 판독 식별자를 이용하여 판독 오프셋을 결정하는 것이, 판독 식별자와 함께 판독 커맨드를 메모리 모듈에 송신하는 것; 버스 인터페이스를 통해 메모리 모듈로부터 판독 데이터 및 수신된 판독 식별자를 수신하는 것 ― 수신된 판독 식별자는 버스 인터페이스의 측파대 레인 상에서 수신됨 ―; 판독 오프셋을 수신된 판독 데이터가 판독 커맨드와 함께 송신된 판독 식별자와 매치하는 타이밍으로서 결정하는 것을 포함하는 것을 선택적으로 포함할 수 있다.
예 20에서, 예 18의 발명 대상은 개략적 판독 트레이닝 동안 그리고 데이터 아이에서 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 판독 오프셋을 이용하는 동안 선형 피드백 시프트 레지스터(LFSR)가 판독 식별자들을 생성하기 위해 이용되는 것을 선택적으로 포함할 수 있다.
예 21은 버스 인터페이스를 통해 적어도 하나의 메모리 모듈에 연결된 컴퓨터 판독가능한 저장 매체이고, 여기서, 컴퓨터 판독가능한 저장 매체는 실행될 때, 메모리 모듈이 버스 인터페이스의 측파대 레인 상에서 연속적인 비트 패턴들을 송신하는 트레이닝 모드를 개시하도록 메모리 모듈을 프로그래밍하는 것; 버스 인터페이스 상에서 비트 패턴들을 수신하는 것; 수신된 비트 패턴들로부터 비트 패턴 내의 값들의 트랜지션을 결정하여 값들의 결정된 트랜지션들 사이의 데이터 아이를 결정하는 것; 및 결정된 데이터 아이 내에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하는 것을 포함하는 동작들을 수행하는 로직을 구현한다.
예 22에서, 예 21의 발명 대상은, 비트 패턴들이 판독 식별자 신호들에 대해 이용되는 버스 인터페이스의 측파대 레인 상의 제1 연속적인 비트 패턴, 및 측파대 레인 상의 제2 연속적인 비트 패턴을 포함하고, 제1 연속적인 비트 패턴 및 제2 연속적인 비트 패턴은 반대 값들을 가진다는 것을 선택적으로 포함할 수 있다.
예 23에서, 예 18의 발명 대상은 동작들이, 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여, 메모리 모듈에 판독 식별자와 함께 판독 커맨드를 송신하는 것; 리턴된 판독 식별자를 포함하는 판독 데이터를 메모리 모듈로부터 수신하는 것; 및 리턴된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여 판독 오프셋을 결정하는 것을 더 포함하고, 판독 오프셋은 위상 보간기에 대해 결정된 설정을 이용하여 데이터 아이에서 판독 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 이용되는 것을 선택적으로 포함할 수 있다.
예 24는 버스에 대한 버스 인터페이스를 통해 적어도 하나의 메모리 모듈에 연결되어 개략적 판독 트레이닝 동작들을 수행하는 컴퓨터 판독가능한 저장 매체이고, 컴퓨터 판독가능한 저장 매체는 실행될 때, 판독 커맨드 및 판독 식별자를 메모리 모듈에 송신하는 것; 판독 데이터 및 수신된 판독 식별자를 버스 인터페이스를 통해 메모리 모듈로부터 수신하는 것; 및 메모리 모듈로부터의 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자를 포함한다고 결정하는 것에 응답하여 판독 오프셋을 결정하는 것을 포함하는 동작들을 수행하는 로직을 구현하고, 판독 오프셋은 수신된 판독 데이터의 데이터 아이에서 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 이용된다.
예 25에서, 예 24의 발명 대상은 동작들이, 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치하지 않는다고 결정하는 것에 응답하여, 메모리 모듈로부터 수신된 판독 데이터가 생성된 새로운 판독 식별자를 포함하는 것에 응답하여 판독 오프셋이 결정될 때까지 메모리 모듈에 송신된 새로운 판독 커맨드에 포함시킬 새로운 판독 식별자의 생성을 적어도 한 번 반복하여 수행하는 것을 더 포함하는 것을 선택적으로 포함할 수 있다.
예 26은, 메모리 모듈이 버스 인터페이스의 측파대 레인 상에서 연속적인 비트 패턴들을 송신하는 트레이닝 모드를 개시하도록 메모리 모듈을 프로그래밍하는 것; 버스 인터페이스를 통해 비트 패턴들을 수신하는 것; 수신된 비트 패턴들로부터 비트 패턴 내의 값들의 트랜지션을 결정하여 값들의 결정된 트랜지션들 사이에서 데이터 아이를 결정하는 것; 및 결정된 데이터 아이 내에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하는 것을 포함하는, 버스 인터페이스를 통해 적어도 하나의 메모리 모듈에 연결된 버스에 대한 버스 인터페이스를 트레이닝하기 위한 방법이다.
예 27에서, 예 26의 발명 대상은, 비트 패턴들이 판독 식별자 신호들에 대해 이용되는 버스 인터페이스의 측파대 레인 상의 제1 연속적인 비트 패턴 및 측파대 레인 상의 제2 연속적인 비트 패턴을 포함하고, 제1 연속적인 비트 패턴 및 제2 연속적인 비트 패턴이 반대 값들을 갖는 것을 선택적으로 포함할 수 있다.
예 28에서, 예 26 및 예 27의 발명 대상은, 실행될 때, 머신이 예 26 및 예 27 중 어느 하나의 방법을 수행하게 하는 코드를 포함하는 머신 판독가능한 매체를 선택적으로 포함할 수 있다.
예 29는, 메모리 모듈에 판독 커맨드 및 판독 식별자를 송신하는 것; 버스 인터페이스를 통해 메모리 모듈로부터 판독 데이터 및 수신된 판독 식별자를 수신하는 것; 및 메모리 모듈로부터 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자를 포함한다고 결정하는 것에 응답하여 판독 오프셋을 결정하는 것을 포함하는, 버스 인터페이스를 통해 적어도 하나의 메모리 모듈에 연결된 버스에 대한 버스 인터페이스를 트레이닝하기 위한 방법이며, 판독 오프셋은 수신된 판독 데이터의 데이터 아이에서 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 이용된다.
예 30에서, 예 29의 발명 대상은 동작들이, 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치하지 않는다고 결정하는 것에 응답하여, 메모리 모듈로부터 수신된 판독 데이터가 생성된 새로운 판독 식별자를 포함하는 것에 응답하여 판독 오프셋이 결정될 때까지 메모리 모듈에 송신된 새로운 판독 커맨드에 포함시킬 새로운 판독 식별자의 생성을 적어도 한번 반복하여 수행하는 것을 더 포함하는 것을 선택적으로 포함할 수 있다.
예 31은, 메모리 모듈이 버스 인터페이스의 측파대 레인 상에서 연속적인 비트 패턴들을 송신하는 트레이닝 모드를 개시하도록 메모리 모듈을 프로그래밍하기 위한 수단; 버스 인터페이스를 통해 비트 패턴들을 수신하기 위한 수단; 수신된 비트 패턴들로부터 비트 패턴 내의 값들의 트랜지션을 결정하여 값들의 결정된 트랜지션들 사이에서 데이터 아이를 결정하기 위한 수단; 및 결정된 데이터 아이 내에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하기 위한 수단을 포함하는, 버스를 통해 적어도 하나의 메모리 모듈에 연결된 장치이다.
예 32에서, 예 31의 발명 대상은, 트레이닝 모드를 종료시키도록 메모리 모듈을 프로그래밍하고, 데이터 아이를 결정하는 것 및 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여 비트 패턴들을 송신하기 위한 수단을 선택적으로 포함할 수 있다.
예 33에서, 예 31의 발명 대상은, 수신된 클록 비트 패턴들로부터 트랜지션을 결정하기 위한 수단이, 비트 패턴으로부터의 판독 값을 레지스터에 저장하기 위한 수단; 및 비트 패턴의 후속 송신으로부터의 후속 판독 값이 레지스터 내의 판독 값과 매치하는지를 결정하기 위한 수단을 포함하고, 데이터 아이가 레지스터에 저장된 값들과 매치하는 2개의 판독 값들의 에지들 사이에서 결정되는 것을 선택적으로 포함할 수 있다.
예 34에서, 예 31의 발명 대상은, 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여 판독 식별자와 함께 판독 커맨드를 메모리 모듈에 송신하기 위한 수단; 리턴된 판독 식별자를 포함하는 판독 데이터를 메모리 모듈로부터 수신하기 위한 수단; 및 리턴된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여 판독 오프셋을 결정하기 위한 수단을 선택적으로 포함할 수 있고, 판독 오프셋은 위상 보간기에 대해 결정된 설정을 이용하여 데이터 아이에서 판독 데이터를 언제 샘플링하기 시작할지를 결정하기 위해 이용된다.
예 35에서, 예 34의 발명 대상은, 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치하지 않는다고 결정하는 것에 응답하여 메모리 모듈로부터 수신된 판독 데이터가 생성된 새로운 판독 식별자를 포함하는 것에 응답하여 판독 오프셋이 결정될 때까지 메모리 모듈에 송신된 새로운 판독 커맨드에 포함시킬 새로운 판독 식별자의 생성을 적어도 한번 반복하여 수행하기 위한 수단을 선택적으로 포함할 수 있다.
예 36에서, 예 31의 발명 대상은, 버스 인터페이스의 커맨드 신호 라인 및 데이터 신호 라인과는 별도인 버스 인터페이스의 측파대 레인 상에서 메모리 모듈로부터 리턴된 판독 식별자를 이용하여, 판독 데이터가 버스 인터페이스 상에서 샘플링되는 판독 오프셋을 결정하기 위한 수단; 및 판독 식별자와 함께 판독 커맨드를 메모리 모듈에 송신하는 것; 버스 인터페이스의 측파대 레인 상에서 메모리 모듈로부터 수신된 판독 식별자를 수신하는 것; 수신된 판독 식별자가 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여, 데이터 아이를 수신된 판독 식별자가 판독된 곳으로서 결정하는 것; 및 수신된 판독 식별자가 판독되었다고 결정된 데이터 아이에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기를 제어하기 위한 설정을 결정하는 것을 수행함으로써, 판독 오프셋을 이용하여 판독 데이터의 데이터 아이에서 데이터를 언제 샘플링하기 시작할지를 결정하기 위한 수단을 선택적으로 포함할 수 있다.

Claims (20)

  1. 디바이스로서,
    적어도 하나의 메모리 모듈에 대한 버스 인터페이스; 및
    동작 시에 동작들을 수행하는 메모리 제어기 로직
    을 포함하고,
    상기 동작들은,
    상기 메모리 모듈이 상기 버스 인터페이스의 측파대 레인(side band lane) 상에서 연속적인 비트 패턴들을 송신하는 트레이닝 모드를 개시하도록 상기 메모리 모듈을 프로그래밍하는 것;
    상기 버스 인터페이스를 통해 상기 비트 패턴들을 수신하는 것;
    상기 수신된 비트 패턴들로부터 비트 패턴에서의 값들의 트랜지션을 결정하여, 상기 값들의 결정된 트랜지션들 사이에 데이터 아이(data eye)를 결정하는 것; 및
    상기 결정된 데이터 아이 내에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 위상 보간기(phase interpolator)를 제어하기 위한 설정을 결정하는 것
    을 포함하는 디바이스.
  2. 제1항에 있어서,
    상기 동작들은, 상기 트레이닝 모드를 종료하도록 상기 메모리 모듈을 프로그래밍하고, 상기 데이터 아이 및 상기 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여, 상기 비트 패턴들을 송신하는 것을 더 포함하는 디바이스.
  3. 제1항에 있어서,
    상기 수신된 클록 비트 패턴들로부터 상기 트랜지션을 결정하는 것은,
    상기 비트 패턴으로부터의 판독 값을 레지스터에 저장하는 것; 및
    상기 비트 패턴의 후속 송신으로부터의 후속 판독 값이 상기 레지스터에서의 상기 판독 값과 매치하는지를 결정하는 것
    을 포함하고,
    상기 데이터 아이는 상기 레지스터에 저장된 값들과 매치하는 2개의 판독 값의 에지들 사이에 결정되는 디바이스.
  4. 제1항에 있어서,
    상기 비트 패턴들은 판독 식별자 신호들을 위해 이용되는 상기 버스 인터페이스의 측파대 레인 상의 제1 연속적인 비트 패턴, 및 상기 측파대 레인 상의 제2 연속적인 비트 패턴을 포함하고, 상기 제1 연속적인 비트 패턴과 상기 제2 연속적인 비트 패턴은 반대 값들을 갖는 디바이스.
  5. 제4항에 있어서,
    상기 제1 연속적인 비트 패턴은 제1 판독 식별자 신호 라인 상에서 송신되며, 연속적인 1010 패턴을 포함하고, 상기 제2 연속적인 패턴은 제2 판독 식별자 신호 라인 상에서 송신되며, 연속적인 0101 패턴을 포함하는 디바이스.
  6. 제5항에 있어서,
    상기 제1 연속적인 패턴 및 상기 제2 연속적인 패턴은, 상기 버스 인터페이스 상의 클록 간격(clock interval)의 주기의 2배의 주기를 갖는 클록 패턴을 생성하도록 클록 간격마다 0과 1 사이에서 교호하는 디바이스.
  7. 제1항에 있어서,
    상기 버스 인터페이스는 커맨드들이 송신되는 커맨드 라인들, 데이터가 송신되는 데이터 라인들, 및 판독 식별자 신호 라인들을 포함하고, 상기 비트 패턴들은 클록 주파수 미만의 커맨드 주파수에서 상기 판독 식별자 신호 라인들 상에서 송신되는 디바이스.
  8. 제1항에 있어서,
    상기 동작들은,
    상기 위상 보간기를 제어하기 위한 설정을 결정하는 것에 응답하여, 판독 식별자와 함께 판독 커맨드를 상기 메모리 모듈에 송신하는 것;
    리턴된 판독 식별자를 포함하는 판독 데이터를 상기 메모리 모듈로부터 수신하는 것; 및
    상기 리턴된 판독 식별자가 상기 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여, 판독 오프셋을 결정하는 것
    을 더 포함하고,
    상기 판독 오프셋은, 상기 위상 보간기에 대해 결정된 설정을 이용하여 상기 데이터 아이에서 상기 판독 데이터의 샘플링을 언제 시작할지를 결정하는데 이용되는 디바이스.
  9. 디바이스로서,
    적어도 하나의 메모리 모듈에 대한 버스 인터페이스; 및
    동작 시에 개략적 판독 트레이닝(coarse read training) 동작들을 수행하는 메모리 제어기 로직
    을 포함하고,
    상기 동작들은,
    판독 커맨드 및 판독 식별자를 상기 메모리 모듈에 송신하는 것;
    상기 버스 인터페이스를 통해 상기 메모리 모듈로부터 판독 데이터 및 수신된 판독 식별자를 수신하는 것; 및
    상기 메모리 모듈로부터의 상기 수신된 판독 식별자가 상기 판독 커맨드와 함께 송신된 판독 식별자를 포함한다고 결정하는 것에 응답하여, 판독 오프셋을 결정하는 것
    을 포함하고,
    상기 판독 오프셋은, 수신된 판독 데이터의 데이터 아이에서 데이터의 샘플링을 언제 시작할지를 결정하는데 이용되는 디바이스.
  10. 제9항에 있어서,
    상기 동작들은, 상기 수신된 판독 식별자가 상기 판독 커맨드와 함께 송신된 판독 식별자와 매치하지 않는다고 결정하는 것에 응답하여, 상기 메모리 모듈에 송신되는 새로운 판독 커맨드에 포함할 새로운 판독 식별자의 생성을, 상기 메모리 모듈로부터 수신된 판독 데이터가 상기 생성된 새로운 판독 식별자를 포함하는 것에 응답하여 상기 판독 오프셋이 결정될 때까지, 적어도 한번 반복하여 수행하는 것을 더 포함하는 디바이스.
  11. 제10항에 있어서,
    랜덤 판독 식별자 값들을 제공하도록 상기 판독 식별자 및 새로운 판독 식별자들을 생성하는데 이용되는 선형 피드백 시프트 레지스터(Linear Feedback Shift Register)(LFSR)를 더 포함하는 디바이스.
  12. 제9항에 있어서,
    상기 개략적 판독 트레이닝은, 상기 수신된 판독 식별자가 상기 판독 커맨드와 함께 송신된 판독 식별자를 포함하는 것에 응답하여 종료되는 디바이스.
  13. 제9항에 있어서,
    상기 판독 식별자는, 상기 메모리 모듈로 하여금, 상기 판독 커맨드에 응답하여 상기 판독 데이터를 리턴할 때 상기 판독 식별자를 루프백하게 하는 디바이스.
  14. 제9항에 있어서,
    상기 판독 식별자는 상기 측파대 레인 상에서 상기 메모리 모듈로부터 송신되는 디바이스.
  15. 제8항에 있어서,
    상기 버스 인터페이스는 커맨드들이 송신되는 커맨드 라인들, 데이터가 송신되는 데이터 라인들, 및 판독 식별자 신호 라인들을 포함하고, 상기 메모리 모듈은 상기 판독 식별자 신호 라인들 상에서 상기 판독 식별자를 리턴하는 디바이스.
  16. 제15항에 있어서,
    상기 판독 식별자는 상기 메모리 모듈로부터 클록 신호들 상에서 리턴되는 디바이스.
  17. 제9항에 있어서,
    상기 동작들은, 상기 판독 커맨드의 송신에 후속하여 승인 신호를 상기 메모리 모듈에 송신하는 것을 더 포함하고, 상기 메모리 모듈은 상기 승인 신호에 응답하여 상기 판독 식별자 신호를 송신하고, 상기 판독 오프셋은 상기 승인 신호가 송신된 후에 데이터가 도착할 때의 시간을 측정하는 디바이스.
  18. 디바이스로서,
    적어도 하나의 메모리 모듈에 대한 버스 인터페이스;
    위상 보간기; 및
    동작 시에 개략적 판독 트레이닝 동작들을 수행하는 메모리 제어기 로직
    을 포함하고,
    상기 동작들은,
    상기 버스 인터페이스의 커맨드 및 데이터 신호 라인들과는 별개인 상기 버스 인터페이스의 측파대 레인 상에서 상기 메모리 모듈로부터 리턴된 판독 식별자를 이용하여, 상기 버스 인터페이스 상에서 판독 데이터가 샘플링되는 판독 오프셋을 결정하는 것; 및
    상기 판독 오프셋을 이용하여, 판독 데이터의 데이터 아이에서 데이터의 샘플링을 언제 시작할지를 결정하는 동안에,
    판독 식별자와 함께 판독 커맨드를 상기 메모리 모듈에 송신하는 것;
    상기 버스 인터페이스의 측파대 레인 상에서 상기 메모리 모듈로부터 수신된 판독 식별자를 수신하는 것;
    상기 수신된 판독 식별자가 상기 판독 커맨드와 함께 송신된 판독 식별자와 매치한다고 결정하는 것에 응답하여:
    상기 데이터 아이를 상기 수신된 판독 식별자가 판독되었던 곳으로서 결정하는 것; 및
    상기 수신된 판독 식별자가 판독되었던 상기 결정된 데이터 아이에서 데이터를 샘플링하는데 이용되는 보간된 신호들을 생성하도록 상기 위상 보간기를 제어하기 위한 설정을 결정하는 것
    을 수행하는 것
    을 포함하는 디바이스.
  19. 제18항에 있어서,
    상기 판독 식별자를 이용하여 판독 오프셋을 결정하는 것은,
    판독 식별자와 함께 판독 커맨드를 상기 메모리 모듈에 송신하는 것;
    상기 버스 인터페이스를 통해 상기 메모리 모듈로부터 판독 데이터 및 수신된 판독 식별자를 수신하는 것 ― 상기 수신된 판독 식별자는 상기 버스 인터페이스의 측파대 레인 상에서 수신됨 ―; 및
    상기 수신된 판독 데이터가 상기 판독 커맨드와 함께 송신된 판독 식별자와 매치하는 타이밍으로서 상기 판독 오프셋을 결정하는 것
    을 포함하는 디바이스.
  20. 제18항에 있어서,
    상기 개략적 판독 트레이닝 동안에 그리고 상기 판독 오프셋을 이용하여 상기 데이터 아이에서 데이터의 샘플링을 언제 시작할지를 결정하는 동안에 판독 식별자들을 생성하는데 이용되는 선형 피드백 시프트 레지스터(LFSR)를 더 포함하는 디바이스.
KR1020167004117A 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝 KR101855512B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/040,548 2013-09-27
US14/040,548 US9021154B2 (en) 2013-09-27 2013-09-27 Read training a memory controller
PCT/US2014/048719 WO2015047532A1 (en) 2013-09-27 2014-07-29 Read training a memory controller

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020187012451A Division KR102058019B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝
KR1020187012448A Division KR102058018B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝

Publications (2)

Publication Number Publication Date
KR20160034961A true KR20160034961A (ko) 2016-03-30
KR101855512B1 KR101855512B1 (ko) 2018-06-25

Family

ID=52741301

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020187012451A KR102058019B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝
KR1020167004117A KR101855512B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝
KR1020187012448A KR102058018B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187012451A KR102058019B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187012448A KR102058018B1 (ko) 2013-09-27 2014-07-29 메모리 제어기의 판독 트레이닝

Country Status (8)

Country Link
US (6) US9021154B2 (ko)
EP (1) EP3049946B1 (ko)
JP (4) JP6084756B2 (ko)
KR (3) KR102058019B1 (ko)
CN (2) CN112069110A (ko)
BR (3) BR122017013533B1 (ko)
RU (1) RU2643664C2 (ko)
WO (1) WO2015047532A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078991A (ko) * 2018-12-24 2020-07-02 에스케이하이닉스 주식회사 트래이닝 기능을 갖는 반도체 시스템
KR20220129100A (ko) * 2017-06-23 2022-09-22 후아웨이 테크놀러지 컴퍼니 리미티드 메모리 액세스 기술 및 컴퓨터 시스템

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021154B2 (en) 2013-09-27 2015-04-28 Intel Corporation Read training a memory controller
US10074417B2 (en) 2014-11-20 2018-09-11 Rambus Inc. Memory systems and methods for improved power management
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US10222989B1 (en) 2015-06-25 2019-03-05 Crossbar, Inc. Multiple-bank memory device with status feedback for subsets of memory banks
US10141034B1 (en) 2015-06-25 2018-11-27 Crossbar, Inc. Memory apparatus with non-volatile two-terminal memory and expanded, high-speed bus
US9921763B1 (en) * 2015-06-25 2018-03-20 Crossbar, Inc. Multi-bank non-volatile memory apparatus with high-speed bus
US9558850B1 (en) 2015-12-01 2017-01-31 International Business Machines Corporation Efficient calibration of a data eye for memory devices
US9620184B1 (en) 2015-12-16 2017-04-11 International Business Machines Corporation Efficient calibration of memory devices
KR102536657B1 (ko) * 2016-07-12 2023-05-30 에스케이하이닉스 주식회사 반도체 장치 및 반도체 시스템
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10552252B2 (en) * 2016-08-29 2020-02-04 Seagate Technology Llc Patterned bit in error measurement apparatus and method
US10067689B1 (en) * 2016-08-29 2018-09-04 Cadence Design Systems, Inc. Method and apparatus for high bandwidth memory read and write data path training
US10148416B2 (en) 2016-09-02 2018-12-04 Intel Corporation Signal phase optimization in memory interface training
US10262751B2 (en) * 2016-09-29 2019-04-16 Intel Corporation Multi-dimensional optimization of electrical parameters for memory training
KR20180049338A (ko) * 2016-10-31 2018-05-11 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US10416912B2 (en) 2016-11-03 2019-09-17 Intel Corporation Efficiently training memory device chip select control
KR20180069565A (ko) 2016-12-15 2018-06-25 에스케이하이닉스 주식회사 반도체 장치, 반도체 시스템 및 트레이닝 방법
KR102353027B1 (ko) * 2017-07-03 2022-01-20 삼성전자주식회사 스토리지 장치의 데이터 트레이닝 방법
US20190095308A1 (en) 2017-09-26 2019-03-28 Intel Corporation Registering clock driver controlled decision feedback equalizer training process
US10810141B2 (en) * 2017-09-29 2020-10-20 Intel Corporation Memory control management of a processor
US11074151B2 (en) 2018-03-30 2021-07-27 Intel Corporation Processor having embedded non-volatile random access memory to support processor monitoring software
US10691466B2 (en) * 2018-04-02 2020-06-23 Intel Corporation Booting a computing system using embedded non-volatile memory
JP2019215662A (ja) * 2018-06-12 2019-12-19 株式会社日立製作所 不揮発性メモリデバイス、及びインターフェース設定方法
JP2020046918A (ja) 2018-09-19 2020-03-26 キオクシア株式会社 記憶装置及び制御方法
CN110210018B (zh) * 2019-05-14 2023-07-11 北京百度网讯科技有限公司 挂号科室的匹配方法和装置
CN112764667A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备、存储系统和计算机程序产品
TWI693796B (zh) * 2019-11-08 2020-05-11 群聯電子股份有限公司 訊號產生電路、記憶體儲存裝置及訊號產生方法
US11126585B1 (en) 2020-03-09 2021-09-21 Western Digital Technologies, Inc. Data storage device with improved interface transmitter training
US11288225B2 (en) 2020-04-14 2022-03-29 Western Digital Technologies, Inc. Adapting transmitter training behavior based upon assumed identity of training partner
KR20210136203A (ko) * 2020-05-06 2021-11-17 삼성전자주식회사 저장 장치 및 그것의 리트레이닝 방법
US11190331B1 (en) * 2020-12-16 2021-11-30 Cadence Design Systems, Inc. Data alignment in physical layer device
CN116052742A (zh) * 2022-07-13 2023-05-02 成都海光集成电路设计有限公司 数据处理方法、装置、存储控制器、设备及介质

Family Cites Families (38)

* 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
KR100233122B1 (ko) 1992-03-25 1999-12-01 윤종용 모뎀 운용 테스트 회로
US6266379B1 (en) * 1997-06-20 2001-07-24 Massachusetts Institute Of Technology Digital transmitter with equalization
JP3922765B2 (ja) * 1997-07-22 2007-05-30 富士通株式会社 半導体装置システム及び半導体装置
JPH11139869A (ja) 1997-11-10 1999-05-25 Murata Mfg Co Ltd 半導体セラミックおよびその製造方法
JP2002082830A (ja) 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
US7012983B2 (en) 2000-04-28 2006-03-14 Broadcom Corporation Timing recovery and phase tracking system and method
US6651148B2 (en) * 2000-05-23 2003-11-18 Canon Kabushiki Kaisha High-speed memory controller for pipelining memory read transactions
US6658523B2 (en) 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US7437624B2 (en) * 2002-09-30 2008-10-14 Lecroy Corporation Method and apparatus for analyzing serial data streams
US7167946B2 (en) * 2003-09-30 2007-01-23 Intel Corporation Method and apparatus for implicit DRAM precharge
US6958634B2 (en) 2003-12-24 2005-10-25 Intel Corporation Programmable direct interpolating delay locked loop
US7403584B2 (en) 2003-12-31 2008-07-22 Intel Corporation Programmable phase interpolator adjustment for ideal data eye sampling
US7107424B1 (en) * 2004-03-25 2006-09-12 Emc Corporation Memory read strobe pulse optimization training system
KR100594294B1 (ko) * 2004-09-21 2006-06-30 삼성전자주식회사 메모리 장치 및 데이터 트레이닝 방법
KR100618870B1 (ko) * 2004-10-23 2006-08-31 삼성전자주식회사 데이터 트레이닝 방법
JP2006260071A (ja) * 2005-03-16 2006-09-28 Oki Data Corp メモリ制御装置および情報処理装置
KR100703976B1 (ko) * 2005-08-29 2007-04-06 삼성전자주식회사 동기식 메모리 장치
US7607031B2 (en) * 2006-03-28 2009-10-20 Advanced Micro Devices, Inc. Power management in a communication link
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US7983368B2 (en) * 2006-12-11 2011-07-19 International Business Machines Corporation Systems and arrangements for clock and data recovery in communications
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7886174B2 (en) 2007-06-27 2011-02-08 Intel Corporation Memory link training
US8341450B2 (en) * 2007-07-23 2012-12-25 Rambus Inc. Continuous timing calibrated memory interface
US7913033B2 (en) 2007-10-09 2011-03-22 Micron Technology, Inc. Non-volatile memory device having assignable network identification
EP2223227B1 (en) * 2007-10-22 2013-02-27 Rambus Inc. Low-power source-synchronous signaling
US8432768B2 (en) 2009-01-12 2013-04-30 Rambus Inc. Mesochronous signaling system with multiple power modes
US7978538B2 (en) * 2009-01-29 2011-07-12 International Business Machines Corporation Setting memory device termination in a memory device and memory controller interface in a communication bus
US8037375B2 (en) * 2009-06-30 2011-10-11 Intel Corporation Fast data eye retraining for a memory
US8578086B2 (en) 2009-09-25 2013-11-05 Intel Corporation Memory link initialization
US8681571B2 (en) * 2010-06-15 2014-03-25 International Business Machines Corporation Training a memory controller and a memory device using multiple read and write operations
US8533538B2 (en) * 2010-06-28 2013-09-10 Intel Corporation Method and apparatus for training a memory signal via an error signal of a memory
KR20120011491A (ko) 2010-07-29 2012-02-08 주식회사 하이닉스반도체 반도체 시스템 및 그 데이터 트래이닝 방법
US20120066471A1 (en) 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Allocation of memory buffers based on preferred memory performance
US8631256B2 (en) * 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor
KR101571278B1 (ko) * 2011-07-01 2015-11-24 퀄컴 인코포레이티드 시리얼 통신 시스템에서의 대기 전력 감소를 위한 시스템 및 방법
US8954408B2 (en) 2011-07-28 2015-02-10 International Business Machines Corporation Allowing writes to complete without obtaining a write lock to a file
US9021154B2 (en) 2013-09-27 2015-04-28 Intel Corporation Read training a memory controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220129100A (ko) * 2017-06-23 2022-09-22 후아웨이 테크놀러지 컴퍼니 리미티드 메모리 액세스 기술 및 컴퓨터 시스템
US11681452B2 (en) 2017-06-23 2023-06-20 Huawei Technologies Co., Ltd. Memory access technology and computer system
KR20200078991A (ko) * 2018-12-24 2020-07-02 에스케이하이닉스 주식회사 트래이닝 기능을 갖는 반도체 시스템

Also Published As

Publication number Publication date
KR101855512B1 (ko) 2018-06-25
KR20180049244A (ko) 2018-05-10
EP3049946B1 (en) 2021-06-23
JP6327762B2 (ja) 2018-05-23
US9021154B2 (en) 2015-04-28
US9058111B2 (en) 2015-06-16
RU2016107022A (ru) 2017-08-31
US20150113215A1 (en) 2015-04-23
US10331585B2 (en) 2019-06-25
JP6327764B2 (ja) 2018-05-23
US20170031846A1 (en) 2017-02-02
KR20180050765A (ko) 2018-05-15
US9766817B2 (en) 2017-09-19
CN112069110A (zh) 2020-12-11
US20150113235A1 (en) 2015-04-23
JP2017097908A (ja) 2017-06-01
KR102058019B1 (ko) 2019-12-20
WO2015047532A1 (en) 2015-04-02
JP2017097907A (ja) 2017-06-01
BR122017013543B1 (pt) 2023-03-07
BR122017013533B1 (pt) 2023-03-07
US9495103B2 (en) 2016-11-15
JP2016534472A (ja) 2016-11-04
EP3049946A4 (en) 2017-04-26
RU2643664C2 (ru) 2018-02-02
KR102058018B1 (ko) 2019-12-20
JP6327763B2 (ja) 2018-05-23
US20170286330A1 (en) 2017-10-05
US20150113234A1 (en) 2015-04-23
US10482041B2 (en) 2019-11-19
EP3049946A1 (en) 2016-08-03
JP6084756B2 (ja) 2017-02-22
US20150095565A1 (en) 2015-04-02
BR112016003865A2 (pt) 2017-08-01
CN105723351A (zh) 2016-06-29
JP2017107584A (ja) 2017-06-15
CN105723351B (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
KR101855512B1 (ko) 메모리 제어기의 판독 트레이닝
US11513955B2 (en) Memory module with local synchronization and method of operation
EP3249542B1 (en) Memory module, memory controller and associated control method for read training technique
US9959918B2 (en) Memory device and system supporting command bus training, and operating method thereof
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
CN117672282A (zh) 电子装置及其操作方法以及存储器装置
KR20240034087A (ko) 온도 정보를 참조하여 리트레이닝을 수행하는 메모리 장치 및 메모리 컨트롤러, 그리고 이들을 포함하는 전자 장치
US9129705B2 (en) Semiconductor devices
BR122017013540B1 (pt) Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória

Legal Events

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