KR101729872B1 - 스위즐된 데이터 명령/어드레스 신호들을 맵핑하는 트레이닝 - Google Patents

스위즐된 데이터 명령/어드레스 신호들을 맵핑하는 트레이닝 Download PDF

Info

Publication number
KR101729872B1
KR101729872B1 KR1020157012168A KR20157012168A KR101729872B1 KR 101729872 B1 KR101729872 B1 KR 101729872B1 KR 1020157012168 A KR1020157012168 A KR 1020157012168A KR 20157012168 A KR20157012168 A KR 20157012168A KR 101729872 B1 KR101729872 B1 KR 101729872B1
Authority
KR
South Korea
Prior art keywords
memory device
pins
data
pattern
sample
Prior art date
Application number
KR1020157012168A
Other languages
English (en)
Other versions
KR20150068984A (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 KR20150068984A publication Critical patent/KR20150068984A/ko
Application granted granted Critical
Publication of KR101729872B1 publication Critical patent/KR101729872B1/ko

Links

Images

Classifications

    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/105Aspects related to pads, pins or terminals
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

데이터 핀 맵핑 및 지연 트레이닝 기법들. 메모리 디바이스에서 명령/어드레스(CA) 버스 상의 유효값들이 검출된다. CA 버스 상에서의 값들의 검출에 응답하여 패턴의 제1 부분(하이 위상)이 메모리 디바이스의 데이터 핀들의 제1 서브세트를 통해 전송되고; CA 버스 상에서의 값들의 검출에 응답하여 패턴의 제2 부분(로우 위상)이 메모리 디바이스의 데이터 핀들의 제2 서브세트를 통해 전송된다. CA 패턴이 전송되는 동안 메모리 제어기에서 데이터 핀들로부터 신호들이 샘플링되어 샘플링된 데이터 핀들의 제1 및 제2 서브세트를 분석함으로써 제1 메모리 디바이스의 샘플(하이 위상) 및 제2 메모리 디바이스의 샘플(로우 위상)을 획득한다. CA 버스 상에 전송된 패턴에 대한 지식과 결합된 이 분석은 미지의 데이터 핀들의 맵핑을 찾도록 유도한다. 전송되는 CA 패턴들, 및 그 결과의 메모리 제어기 데이터 신호들의 샘플링된 피드백들을 변화시킴으로써 이전의 데이터 핀들 맵핑의 지식이 있든지 없든지 CA/CTRL/CLK 신호들의 지연 트레이닝을 허용한다.

Description

스위즐된 데이터 명령/어드레스 신호들을 맵핑하는 트레이닝{TRAINING FOR MAPPING SWIZZLED DATA COMMAND/ADDRESS SIGNALS}
본 발명의 실시예들은 메모리 링크들의 트레이닝과 관련된다. 더 구체적으로, 본 발명의 실시예들은 스위즐된(swizzled) 데이터를 자동으로 맵핑하기 위한 기술들과 관련된다.
불량하게 정렬된 제어, 클록 및 명령/어드레스(CA) 신호들을 가진 플랫폼에서 메모리 트레이닝이 시작할 때, 예컨대 리셋 또는 CA 트레이닝 모드로의 진입 등과 같은 가장 기본적인 명령들조차 DRAM 디바이스들 중 일부에 올바르게 등록되지 않을 수 있다. 현재 해결책들은 각각의 문제가 있는 플랫폼에 대해 모든 이러한 신호 타입들에 대해 매우 엄격한 길이 매칭 및/또는 수동 초기 타이밍 설정들을 요구한다. 그 결과, 가장 기초적인 트레이닝 루틴들을 단지 구동할 수 있게 하기 위해 많은 시간과 노력들이 소모될 수 있다.
본 발명의 실시예들은 첨부 도면의 도들에서 제한적이 아니라 예시적으로 도시되고, 첨부 도면에서 같은 참조 번호들은 유사한 요소들을 지칭한다.
도 1은 데이터 라인들의 맵핑을 위한 트레이닝 기법의 일 실시예에 대응하는 타이밍도이다.
도 2는 트레이닝 시퀀스를 위한 타이밍도의 일 실시예이다.
도 3은 이용될 수 있는 두 개의 트레이닝 패턴들을 나타낸다.
도 4는 전자 시스템의 일 실시예의 블록도이다.
도 5는 도 4의 시스템에서 이용될 수 있는 트레이닝 시퀀스의 일 실시예의 흐름도이다.
도 6은 CLK/CS/CA 지연들을 위한 사전-트레이닝 절차의 일 실시예의 흐름도이다.
도 7은 CLK/CS/CA 지연들을 위한 사전-트레이닝 절차의 일 실시예의 흐름도이다.
도 8은 사전-트레이닝 후에 이용될 수 있는 데이터 핀 맵핑의 일 실시예의 흐름도이다.
도 9는 사전-트레이닝 없이 이용될 수 있는 데이터 핀 맵핑의 일 실시예의 흐름도이다.
도 10은 DQ 맵핑 후에 이용될 수 있는 CS 트레이닝을 위한 기법의 일 실시예의 흐름도이다.
후속하는 설명에서, 다수의 특정 상세 사항들이 기재된다. 그러나, 본 발명의 실시예들은 이러한 특정 상세 사항들 없이 구현될 수 있다. 다른 경우들에 있어서, 주지의 회로들, 구조들, 및 기법들은 이 설명의 이해를 모호하게 하지 않기 위해 상세히 나타내어지지 않았다.
저전력 DDR-3(LPDDR-3) 명령/어드레스(CA) 트레이닝 모드 및 모드 레지스터 판독(MRR)은, 보드상에서의 스와핑(swapping)이 없다면, 특정 데이터(DQ) 핀 맵핑을 필요로 한다. 보드상의 스와핑을 허용하지 않는 것은 제품 옵션들을 제한하고 디자인 복잡성을 증가시킴으로써 시스템 설계자들 및 제조자들에 대해 옵션들을 제한한다. 예를 들어, 전형적인 2-채널 LPDDR3 실시예를 위한 모든 128 개의 DQ 핀들의 맵핑은 상당한 사람의 노력을 필요로 할 것이고, 에러들을 초래할 수 있다. 이것은 또한 각각의 보드에 대한 그리고 각각의 메모리 구성 옵션에 대한 커스텀 BIOS/MRC(메모리 참조 코드) 버전을 필요로 할 수 있기 때문에, 복합적인 제조 환경들 및 복합적인 제조 관리 문제들을 초래한다.
본 명세서에서 설명된 기법들은 자동으로 메모리 디바이스 트레이닝 모드들을 이용하여 필요한 신호들의 맵핑을 결정할 수 있다. 예를 들어, LPDDR3에 대한 CA 트레이닝 모드 및 다른 유사한 트레이닝 모드들. 일 실시예에서, 맵핑 기법은 바이트 맵핑(예를 들어, 64 비트 채널당 8 비트들)을 이용하는데, 이것은 BIOS를 재컴파일할 필요 없이 보편적인 BIOS 버전이 많은 상이한 보드들/플랫폼들과 함께 기능하는 것을 허용할 뿐만 아니라, 단조로운 수작업 및 대응하는 에러 확률을 제거할 수 있다.
일 실시예에서, CA 트레이닝을 수행할 때, 메모리 디바이스들은 CA 버스값들을 샘플링하고 DQ 핀들 상에 피드백을 리턴한다. 메모리 제어기 및 임의의 트레이닝 지원 메커니즘들(예를 들어, 소프트웨어, 펌웨어)은 피드백을 분석할 수 있고 다음 동작을 결정할 수 있다. 알려지지 않은 DQ 맵핑으로 인해, 메모리 제어기가 어느 입력이 어느 메모리 데이터 라인에 라우팅될지를 결정하기 위한 즉각적인 방법이 없다.
도 1은 데이터 라인들의 맵핑을 위한 트레이닝 기법의 일 실시예에 대응하는 타이밍도이다. 일 실시예에서, 데이터 핀들의 맵핑은 짝수와 홀수 트레이닝으로 분리된다. 다른 실시예들에서, 다른 분리들 또는 그룹화들이 이용될 수 있다.
일 실시예에서, 클록 신호(110)는 CA 버스(120) 및 데이터 버스 상의 트랜잭션들을 구동하는 데 사용된다. 일 실시예에서, CA 하이(High) 위상 값들은 짝수 메모리 데이터 출력들(예를 들어, DQ0, DQ2, DQ4)에 맵핑하고, CA 로우(Low) 위상 값들은 홀수 메모리 데이터 출력들(예를 들어, DQ1, DQ3, DQ5)에 맵핑한다.
일 실시예에서, 다른 모든 CA 핀들과는 상이하고 동일 핀의 제2 위상과 상이한 값을 가진 단일 CA 위상을 전송하는 것은 다른 핀들과는 상이한 값(예를 들어, 16 개의 핀들 중 하나가 하이임)을 가진 단일 데이터 신호를 초래할 것이다. 단일의 상이한 값의 위치를 통해 사이클링하는 것은 트레이닝 메커니즘이 한 번에 하나의 데이터 핀을 식별하고 종래 기술의 기법들을 이용하여 가능한 것보다 더 효율적인 방식으로 적절한 맵핑을 생성하도록 해준다.
더 빠른 맵핑을 달성하기 위해, 예를 들어, 16개 핀에 대해 16회가 아니라 8회의 반복들, 각각의 4 개의 핀마다 상이한 CA 위상이 이용될 수 있다. 예를 들어, 바이트 0에서 데이터 핀 0(DQ0), 바이트 1에서 데이터 핀 8(DQ8)을 찾기 위해, "1"의 값이 CA0과 CA5 하이 위상들에서 전송될 수 있는 데 반해, CA0과 CA5 로우 위상들 및 모든 다른 CA 핀들은 "0"을 전송한다. 이것은 피드백을 제공하는(메모리 디바이스의 하위 두 개의 바이트들) 각각의 DQ 바이트의 단일 "1" 값을 초래한다. 그 후 트레이닝 메커니즘은 각각의 바이트 내의 어느 단일 DQ 핀이 "1"의 값을 가지는지를 찾아내고, 맵핑 및 후속의 디스위즐링(deswizzling)을 위해 이 정보를 저장한다.
일 실시예에서, 하기의 CA 대 DQ 맵핑이 이용될 수 있다:
Figure 112015044430296-pct00001
이전의 DDR 생성들은 전술한 바와 같이 신호 맵핑을 필요로 하지 않았다. LPDDR3에 대한 통상의 해결책들은 예를 들어, 맵핑 데이터를 가진 하드코딩된 테이블들을 포함한, 신호 맵핑을 요구하고, 이는 다수의 보드 변형들 및/또는 메모리 구성들에 대해 비효율적인 해결책이다. 다른 기존의(비효율적인) 해결책은 이것을 회피하기 위해 완전히 DQ 신호들 및 바이트들을 스와핑하는 것을 허용하지 않으나, 이것은 보드 디자인을 매우 비효율적이고 복잡하게 만든다.
일 실시예에서, 본 명세서에서 설명된 기술들은 메모리 디바이스들(예를 들어, LPDDR3)에 대한 제어, 클록, 명령, 및 어드레스 신호들 타이밍들의 동시적 초기 사전-트레이닝을 위한 트레이닝 메커니즘을 제공한다. 이러한 메커니즘들은 이전 명령/ 어드레스 또는 제어 신호들의 트레이닝을 필요로 하지 않는 고유 트레이닝 패턴들을 갖는 트레이닝 모드, 예를 들어, LPDDR3 명령/어드레스(CA) 트레이닝 모드를 이용한다.
일 실시예에서, CA 트레이닝 모드에서는, 메모리 디바이스들이 CA 버스의 단일 트랜잭션을 샘플링하고, DQ 신호들에서 피드백을 제공한다. 하이 그리고 로우 위상 양쪽의 CA0...CA3 핀 값들은 각각의 메모리 디바이스의 DQ0...7 출력들(첫 번째 바이트)에 맵핑하는 데 반해, CA5...8의 하이 그리고 로우 위상 값들은 각각의 메모리 디바이스의 DQ8...15 출력들(두 번째 바이트)에 맵핑한다.
트레이닝의 이 시점에서 완전한 DQ 맵핑이 없기 때문에, 정확한 DQ 피드백을 체크하는 것에 의존하는 것이 아니라 각각의 데이터 바이트 내의 "1"과 같은 신호들의 합을 체크하는 것에 의존하는 사전 선택된 패턴이 CA 버스 상에 전송된다. 일 실시예에서, 패턴은 하이 위상 및 로우 위상 양쪽의 커버리지를 보장하기 위해 모든 CA 버스 전이들을 포함하면서, 각각의 반복 동안 신호마다 0으로부터 1로 또는 1로부터 0으로 단지 하나의 레벨 전이를 가짐으로써 과도한 스트레스를 생성하지 않는다.
도 2는 트레이닝 시퀀스에 대한 타이밍도의 일 실시예이다. 일 실시예에서, 각각의 CA 핀들(예를 들어, CA0... 3 및 CA5... 8)에서, 하기의 패턴이 전송된다(또는 후술하는 바와 같이, 그것의 반대/역의 버전).
그 결과, 칩 선택(제어) 및 CA 상대적 타이밍들 대 각각의 메모리 디바이스의 클록 신호에 의존하여, 상이한 피드백이 DQ 핀들에 도착할 것이다. CS(120)와 CA(130) 둘 다가 클록 신호에 대하여 올바르게 정렬된다면, 클록 위상들 둘 다는 "1"의 값을 가진 두 개의 CA 핀, 및 "0"의 값을 가진 다른 두 개를 샘플링할 것이므로, "1"의 값을 가진 네 개의 DQ 핀을 초래한다.
CA와 CS 버스들 중 어느 하나 또는 둘 다가 잘못 정렬되었다면, 2부터 6까지 DQ 핀들의 범위의 부정확한 값들이 "1"에서 샘플링된다(정확한 값들은 상관없음). 이것은 또한 모든 DQ 핀들의 샘플 0 또는 1의 경우를 구별하는 능력을 허용하고, 이는 메모리 디바이스가 CA 트레이닝 모드가 아님을 의미한다.
DRAM 디바이스가 어떤 것도 샘플링하지 않으면, 이것은 DQ 핀들의 피드백을 일정하게 유지시키고, 따라서 메모리 제어기에 이전의 부적절한 피드백을 표시하는 것을 초래한다. 이것이 우리가 이것이 사실임을 알아내고 싶은 이유이다. 일 실시예에서, (예를 들어, 한계의/부정확한 타이밍으로 인해) 정확한 타이밍으로부터의 샘플의 부족을 구별하기 위해, 두 개의 고유의 역 패턴이 이용될 수 있는데, 이 둘 다는 정확하게 샘플링된다면 네 개의 "1"을 초래하지만 상이한 시그너처들을 갖는다. 그러므로, 각각의 유효한 포인트는 두 개의 상이한 시그너처를 가진 "4"를 샘플링해야 한다. 임의의 다른 결과는 실패 포인트로서 고려된다. 도 3은 이용될 수 있는 두 개의 트레이닝 패턴을 도시한다. 유사한 종류 및 유사한 특성의 패턴들은 동일한 결과들을 달성할 것이다.
LPDDR-3 및 관련 구현들에 특유한 일 실시예에서, 초기의 Clock(클록)/CTRL(제어)/CA 타이밍들이 무효일 수 있기 때문에, 초기 Reset(리셋)/Init(초기화) 및 CA 트레이닝 모드 진입 명령들이 바르게 디코딩될 것을 보장할 방법이 없다. 일 실시예에서, 리셋 명령 성공(예를 들어, MRW63 명령)을 보장하기 위해, CS에는 두 개의 연속 사이클에 대한 신호가 전송될 수 있다("2N CS" 모드).
이 시점에서는, 모든 MR 값들이 반드시 LPDDR 동작에 아직 가용인 것은 아니지만, 이러한 값들은 아직 요구되지 않는다. 일 실시예에서, 필요한 유일한 MRW는 CA 트레이닝 모드 진입(예를 들어, MRW41)이고, 이것은 Clock/CTRL 타이밍으로 인해 성공할 수 있거나 또는 성공하지 않을 수 있다. 그러므로, 부정확한 결과들을 나타내는 반복들에 대해, 메모리 디바이스가 CA 트레이닝 모드에 있지 않음을 나타내는 지시가 있다면, CA 트레이닝 모드가 종료되고(이 랭크의 DRAM 디바이스들 중 일부가 트레이닝 모드에 있으나 다른 것들은 아닌 경우에), 랭크를 리셋하고 다시 CA 트레이닝 모드에 진입한다.
임의의 다른 메모리 디바이스 트레이닝 단계들이 시작할 수 있기 전에, MRC는 반드시 제어 신호들이 모든 메모리(예를 들어, DRAM) 디바이스들에서 정렬되어, 모든 발행된 명령들이 올바르게 등록되도록 해야 한다. 디자인 제한들 및/또는 에러들로 인해 이러한 모든 신호들이 어떤 플랫폼들에 있어서 매칭하는 길이들을 갖는 것은 아니기 때문에, 이러한 신호들에 대한 최적의 타이밍들을 찾기 위한 메커니즘이 필요하다.
LPDDR3에 특히 유용한 제어 신호들의 타이밍들을 트레이닝하는 기법들이 본 명세서에서 설명되지만, 다른 메모리 디바이스들이 또한 지원될 수 있다. LPDDR3 실시예들에서, 이러한 기술들은 LPDDR3 명령/어드레스(CA) 트레이닝 모드를 이용하고, 이전 명령/어드레스 신호들 타이밍을 필요로 하지 않는 특수 트레이닝 패턴들을 사용한다. 다른 실시예들에서, 유사한 트레이닝 모드들이 제어 신호 타이밍을 트레이닝하기 위해 유사하게 이용될 수 있다.
일 실시예에서, 이 기법은 범위를 가로질러 제어 지연을 스위핑(sweep)하고, 각각의 값에 대해 둘 다의 패턴(도 3을 참조)을 전송하고, 그 자체들 중 각각의 바이트에 대해 판독된 DQ 결과들(두 개의 패턴들에 대해 상이하다면) 및 각각의 바이트에 대한 값들의 합과 4를 비교한다.
테스트가 종료된 후에, 유효한 포인트들을 가졌던 기간의 중점이 선택되고 콘트롤 핀들에 설정된다. 일 실시예에서, 테스트는 각각의 채널 및 랭크에 대해 반복된다.
현재 해결책들은 달성하기 더 용이할 수 있는 그리고/또는 더 느린 속력들 및 물리적으로 더 큰 시스템 보드들에서 문제가 더 적은, 더 정확한 신호들의 길이 매칭에 의존한다. 미스매치가 발생한다면, 각각의 경우에 대한 타이밍들에 수동 조절들이 행해진다. 이것은 보드들 파워-온 활동들을 복잡하게 하고, 그러한 각각의 보드에 대해 개별적인 BIOS 설치들을 요구한다.
또한, 기능 제어 트레이닝 단계들은 필요마다 추가되며, 이것은 훨씬 나중의 MRC 단계에서(다른 모든 시그널 타이밍들이 이미 튜닝된 후에) 실행한다. 그 결과, 초기 제어 타이밍 설정들이 한계에 가까웠다면, 시스템들은 덜 안정적이게 되고, 초기 타이밍 설정들의 수동 튜닝 없이는 심지어 이 고급 단계에 도달할 수 없을 수 있다.
도 4는 전자 시스템의 일 실시예의 블록도이다. 도 4에 도시된 전자 시스템은 예컨대, 데스트톱 컴퓨터 시스템들, 랩톱 컴퓨터 시스템들, 셀룰러 전화들, 셀룰러-인에이블드 개인용 정보 단말기(cellular-enabled PDA)들을 포함한 PDA들, 셋탑 박스들, 태블릿들 등을 포함하는 전자 시스템들의 범위(유선 또는 무선)를 나타내기 위해 의도된 것이다. 대안적인 전자 시스템들은 더 많은, 더 적은 그리고/또는 상이한 컴포넌트들을 포함할 수 있다.
전자 시스템(400)은 정보를 통신하기 위한 버스(405) 또는 다른 통신 디바이스, 및 버스(405)에 결합되고 정보를 처리할 수 있는 프로세서(410)를 포함한다. 전자 시스템(400)이 단일 프로세서를 갖는 것으로 도시되지만, 전자 시스템(400)은 복수의 프로세서들 및/또는 코-프로세서들을 포함할 수 있다. 전자 시스템(400)은 버스(405)에 결합된 랜덤 액세스 메모리(RAM) 또는 다른 다이내믹 저장 디바이스(420)(메인 메모리로서 지칭됨)를 더 포함할 수 있고, 프로세서(410)에 의해 실행될 수 있는 명령어들 및 정보를 저장할 수 있다. 메인 메모리(420)는 또한 프로세서(410)에 의한 명령어들의 실행 동안 임시 변수들 또는 다른 중간 정보를 저장하기 위해 이용될 수 있다.
전자 시스템(400)은 또한 프로세서(410)에 대한 명령어들 및 정적인 정보를 저장할 수 있고 버스(405)에 결합된 판독 전용 메모리(ROM) 및/또는 다른 스태틱 저장 디바이스(430)를 포함할 수 있다. 데이터 저장 디바이스(440)는 정보 및 명령어들을 저장하기 위해 버스(405)에 결합될 수 있다. 자기 디스크 또는 광 디스크 등과 같은 데이터 저장 디바이스(440) 및 대응하는 드라이브가 전자 시스템(400)에 결합될 수 있다.
전자 시스템(400)은 또한 사용자에게 정보를 표시하기 위한 음극선관(CRT) 또는 액정 디스플레이(LCD) 등과 같은 디스플레이 디바이스(450)에 버스(405)를 통해 결합될 수 있다. 영숫자 및 다른 키들을 포함한 영숫자 입력 디바이스(460)가 정보 및 명령 선택들을 프로세서(410)에 통신하기 위해 버스(405)에 결합될 수 있다. 다른 타입의 사용자 입력 디바이스는 방향 정보 및 명령 선택들을 프로세서(410)에 통신하고 디스플레이(450)상의 커서 이동을 제어하기 위한 예컨대, 마우스, 트랙볼, 또는 커버 방향 키들 등과 같은 커서 제어(470)이다.
전자 시스템(400)은 또한 로컬 에어리어 네트워크 등과 같은 네트워크에 대한 액세스를 제공하기 위한 네트워크 인터페이스(들)(480)를 더 포함할 수 있다. 네트워크 인터페이스(들)(480)는 예를 들어, 하나 이상의 안테나(들)를 나타낼 수 있는 안테나(485)를 가진 무선 네트워크 인터페이스를 포함할 수 있다. 네트워크 인터페이스(들)(480)는 또한 예를 들어, 이더넷 케이블, 동축 케이블, 광섬유 케이블, 직렬 케이블, 또는 병렬 케이블일 수 있는, 네트워크 케이블(487)을 통해 원격 디바이스들과 통신하기 위한 유선 네트워크 인터페이스를 포함할 수 있다.
일 실시예에서, 네트워크 인터페이스(들)(480)는 예를 들어, IEEE 802.11b 및/또는 IEEE 802.11g 표준들에 따름으로써 로컬 에어리어 네트워크에 대한 액세스를 제공할 수 있으며, 그리고/또는 무선 네트워크 인터페이스는, 예를 들어, 블루투스 표준들에 따름으로써, 개인 영역 네트워크에 대한 액세스를 제공할 수 있다. 다른 무선 네트워크 인터페이스들 및/또는 프로토콜들이 또한 지원될 수 있다.
IEEE 802.11b는 1999년 9월 16일자로 승인된 "Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band"라는 제목의 IEEE 표준 802.11b-1999뿐만 아니라 관련 문서들에 대응한다. IEEE 802.11g는 2003년 6월 27일자로 승인된 "Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, Amendment 4: Further Higher Rate Extension in the 2.4 GHz Band"라는 제목의 IEEE 표준 802.11g-2003뿐만 아니라 관련 문서들에 대응한다. 블루투스 프로토콜들은 Bluetooth Special Interest Group, Inc.에 의해 2001년 2월 22일자로 발표된 "Specification of the Bluetooth System: Core, Version 1.1"에 기술되어 있다. 블루투스 표준의 이전 또는 후속 버전들뿐만 아니라 연관된 버전들이 또한 지원될 수 있다.
무선 LAN 표준들을 통한 통신에 부가하여 또는 그 대신에, 네트워크 인터페이스(들)(480)는 예를 들어, 시분할 다중 액세스(TDMA) 프로토콜들, 이동 통신을 위한 글로벌 시스템(GSM) 프로토콜들, 코드 분할 다중 액세스(CDMA) 프로토콜들, 및/또는 임의의 다른 타입의 무선 통신 프로토콜을 이용하여 무선 통신을 제공할 수 있다.
도 5는 도 4의 시스템에서 이용될 수 있는 트레이닝 시퀀스의 일 실시예의 흐름도이다. 도 5의 트레이닝 시퀀스는 트레이닝 프로세스의 일반적인 개관을 제공한다.
사전-트레이닝은 CLK/CS/CA 지연들에 대해 수행된다(510). CLK/CS/CA 사전 트레이닝에 대한 실시예들에 대해 더 상세히 후술한다. 데이터(DQ) 핀들이 맵핑된다(520). DQ 핀들의 맵핑은 본 명세서에서 설명된 바와 같이 수행된다. CS 대 CLK 트레이닝이 수행된다(530). CS 대 CLK 트레이닝은 전술한 바와 같이 수행된다. CA 대 CLK 트레이닝이 수행된다(540). CA 대 CLK 트레이닝은 당해 기술 분야에 알려진 임의의 방식으로 수행될 수 있다.
도 6은 CLK/CS/CA 지연들에 대한 사전-트레이닝 절차의 일 실시예의 흐름도이다. 도 6은 도 7의 버전에 비해 CLK/CS/CA 지연들에 대한 사전-트레이닝 절차의 단순화된 버전을 제공한다. 도 6의 예는 LP-DDR 구성과 관련되지만; 설명된 개념들은 또한 다른 DDR 기술들 및 비-DDR 구성들에 적용 가능할 수 있다. 호스트 시스템은 2N CS 모드(예를 들어, MRW63 명령)에서 리셋된다(605).
시스템은 실행/부트 시간을 줄이기 위해 개략적(rough) 단계들에서 CLK/CS/CA 지연들에 대해 반복한다(610). 모든 지연들이 커버된다면(615), 시스템은 CLK/CS/CA 신호들에 대한 최적의 타이밍을 찾기 위해 동작할 수 있다(620). 모든 지연들이 커버된 것은 아니라면(615), 시스템은 CA 트레이닝에 진입한다(625). 일 실시예에서, CA 트레이닝이 MRW41 명령 및 연장된 CA에 의해 진입되지만, 다른 구성들(예를 들어, 비-LPDDR3)에 대해 다른 기법들이 이용될 수 있다.
제1 패턴(예를 들어, 패턴 A, 도 3)이 전송된다(630). 일 실시예에서, 첫 번째 것에 대응하는 바이트마다, 데이터 비트들의 합이 계산되고 제1 패턴에 대한 시그너처 값과 함께 저장된다(635). 제2 패턴(예를 들어, 패턴 B, 도 3)이 전송되고 CA 트레이닝 모드가 종료된다(640). 일 실시예에서, 두 번째 패턴에 대응하는 바이트마다, 데이터 비트들의 합이 계산되고 제2 패턴에 대한 시그너처 값과 함께 저장된다(645).
현재 타이밍 파라미터들이 통과했는지(655) 또는 실패했는지(660) 결정하기 위해, 패턴 결과들이 비교된다(650). 일 실시예에서, 결과들의 비교는 각각의 트레이닝 패턴에 대해 수신된 '1' 비트들의 개수를 체크하는 것을 포함한다. 일 실시예에서, 각각의 패턴이 수신된 네 개의 '1' 비트들을 초래하고 두 개의 패턴들에 대한 시그너처들이 상이하면, 패턴 트레이닝은 통과했다.
도 7은 CLK/CS/CA 지연들에 대한 사전-트레이닝 절차의 일 실시예의 흐름도이다. 도 7은 도 6의 버전에 비교되는 CLK/CS/CA 지연들에 대한 사전-트레이닝 절차의 더 복잡한 버전을 제공한다. 도 7의 예는 LP-DDR 구성과 관련되지만, 설명된 개념들은 또한 다른 DDR 기술들 및 비-DDR 구성들에도 적용 가능할 수 있다. 호스트 시스템은 2N CS 모드(예를 들어, MRW63 명령)에서 리셋된다(705).
CA_ModeSucceeded 플래그가 거짓으로 설정된다(710). 시스템은 개략적 단계들에서 CLK/CS/CA 지연들에 대해 반복한다(715). 모든 지연들이 커버된다면(720), 시스템은 CLK/CS/CA 신호들에 대한 최적의 타이밍을 찾기 위해 동작할 수 있다(725). 모든 지연들이 커버된 것은 아니라면(720), CA_ModeSucceeded가 여전히 거짓이면, 시스템은 CA 트레이닝에 진입한다(730). 일 실시예에서, CA 트레이닝이 MRW41 명령 및 연장된 CA에 의해 진입되지만, 다른 구성들(예를 들어, 비-LPDDR3)에 대해 다른 기술들이 이용될 수 있다.
제1 패턴(예를 들어, 패턴 A, 도 3)이 전송된다(735). 일 실시예에서, 첫 번째 것에 대응하는 바이트마다, 데이터 비트들의 합이 계산되고 제1 패턴에 대한 시그너처 값과 함께 저장된다(740). 제2 패턴(예를 들어, 패턴 B, 도 3)이 전송되고 CA 트레이닝 모드가 종료된다(745). 일 실시예에서, 두 번째 것에 대응하는 바이트마다, 데이터 비트들의 합이 계산되고 제2 패턴에 대한 시그너처 값과 함께 저장된다(755).
현재 타이밍 파라미터들이 통과했는지(765) 또는 실패했는지(770) 결정하기 위해, 패턴 결과들이 비교된다(760). 일 실시예에서, 결과들의 비교는 각각의 트레이닝 패턴에 대해 수신된 '1' 비트들의 개수를 체크하는 것을 포함한다. 일 실시예에서, 각각의 패턴이 수신된 네 개의 '1' 비트들을 초래하고 두 개의 패턴들에 대한 시그너처들이 상이하다면, 패턴 트레이닝은 통과했다.
결과들이 통과를 지시할 때, CA_ModeSucceeded가 참으로 마크된다(765). 결과들이 실패를 지시할 때, 양쪽 패턴들에 대한 비트들의 합이 0보다 크고 8보다 작다면(775), CA_ModeSucceeded 플래그가 참으로 마크된다(780). 양쪽 패턴들에 대한 합이 0보다 크고 8보다 작은 것이 아니라면, CA 트레이닝 모드가 종료된다(예를 들어, MRW42 명령에 의해)(785).
하기의 흐름의 설명은 메모리 디바이스에서 데이터 핀들을 맵핑하기 위한 기술의 일 실시예에 대응한다.
1. 시작:
2. 2N 모드에서 메모리 디바이스를 리셋(예를 들어, MRW63)
3. CLK, CS, CA 지연값들을 설정(루프)
a. CA 트레이닝 모드에 진입(필요하다면)
b. 패턴 A를 전송
c. 결과 + 시그너처를 저장
d. 옵션:
i. '1'의 개수를 체크
1. 0 또는 8이면
a. 실패 포인트로서 마크
b. CA 트레이닝 모드를 종료(예를 들어, MRW42)
c. 3으로 점프, 지연 값들을 갱신하고 CA 트레이닝을 통해 다시 계속
2. <4 또는 >4이면,
a. 실패 포인트로서 마크
b. 3으로 점프 그러나 a를 생략
3. ==4이면 - 계속
e. 패턴 B를 전송
f. '1'의 개수를 체크
i. 0 또는 8이면
1. 실패 포인트로서 마크
2. CA 트레이닝 모드를 종료(예를 들어, MRW42)
3. 3으로 점프, 지연 값들을 갱신하고 CA 트레이닝을 통해 다시 계속
ii. <4 또는 >4 또는 ==4이지만 시그너처가 A에 대한 것과 동일하면:
1. 실패 포인트로서 마크
2. 3으로 점프(지연들을 갱신) 그러나 a를 생략
iii. ==4이고 시그너처가 A와는 상이하다면 - 통과 포인트로서 마크.
(결국 모든 지연값들이 시도됨)
4. 가장 큰 통과 포인트들 영역의 중간에 위치될 최적의 지연 포인트를 결정
도 8은 도 6 및 도 7에 묘사된 사전-트레이닝 후에 이용될 수 있는 데이터 핀 맵핑의 일 실시예의 흐름도이다. 일 실시예에서, 공지된 비트 패턴(예를 들어, 바이트당 하나의 '1')이 메모리(예를 들어, DRAM)를 통해 반복된다(810). 일 실시예에서, 패턴은 라인의 모든 바이트들 내의 각각의 바이트에 대해 병렬로 수행된다.
모든 데이터 핀들이 커버된다면(820), 맵핑이 완료된다. 모든 데이터 핀들이 커버된 것은 아니라면(820), 바이트당 단일의 고유한 데이터 핀 레벨을 생성하기 위한 CA 패턴이 계산되고 프로그래밍된다(830). 패턴이 메모리에 전송된다(840). 일 실시예에서, 바이트당 단위로 다른 데이터 핀들과는 상이한 데이터 핀을 찾기 위해 DQ 핀들이 스캐닝된다. 다른 크기들도 지원될 수 있다. 이 맵핑은 프로세서(예를 들어, CPU), 또는 상기의 어써트된 데이터 핀들에 맵핑될 다른 컴포넌트를 위해 기록된다(850).
도 9는 도 6 및 도 7에 묘사된 사전-트레이닝 없이 사용될 수 있는 데이터 핀 맵핑의 일 실시예의 흐름도이다. 도 9의 절차는 상기에서 논의된 사전-트레이닝 메커니즘들 없이, 데이터 디바이스 핀들(X1, X2 등)을 프로세서 핀들(Y1, Y2 등)과 맵핑하기 위한 기법을 제공한다.
일 실시예에서, 하나의 '1' 비트와 일곱 개의 '0' 비트들을 가진 패턴이 각각 2 개의 바이트들에 대해 16 개의 DQ 핀들에 맵핑되는 여덟 개의 타깃 CA 핀들에 대해 반복된다(910). 각각의 CA 핀은 두 개의 데이터 디바이스 핀들(예를 들어, X1 및 X2)에 맵핑된다. 모든 CA 핀들이 커버된다면(920), CA 패턴이 모든 CA 핀들의 하나의 CA 위상(예를 들어, 하이)에 '0'을 그리고 다른 CA 위상(예를 들어, 로우)에 '1'을 동시적으로 생성하도록 프로그래밍된다(930). 일 실시예에서, 각각의 DQ 핀 쌍(예를 들어, X1 및 X2)에 대해 '0'을 가진 DQ 핀이 제1 핀(예를 들어, X1)에 맵핑되고 '1'을 가진 DQ 핀이 제2 핀(예를 들어, X2)에 맵핑된다(940).
모든 CA 핀들이 커버된 것은 아니라면(920), CA 핀당 고유의 DC 레벨을 생성하기 위한 CA 패턴이 계산되고 프로그래밍된다(950). 이것은 X1 및 X2인 나머지와는 상이한 값들을 가진 두 개의 DQ 핀들을 초래한다. 패턴이 전송된다(960). 나머지와 상이한 DQ 핀들(Y1 및 Y2)이 찾아진다(970). 대응하는 데이터 핀 쌍(X1 및 X2)에 대한 프로세서 핀 쌍(Y1 및 Y2)의 맵핑이 기록된다.
도 10은 DQ 맵핑 후에 이용될 수 있는 CS 트레이닝을 위한 기법의 일 실시예의 흐름도이다. 일 실시예에서, CS 대 CLK 지연들이 미세 단계들에서 반복된다(1010). 일 실시예에서, 반복들은 각각의 랭크에 대한 것이다. 모든 CS 지연들이 커버된다면(1020), 최적의 CS 지연 설정이 계산된다(1030).
모든 CS 지연들이 커버된 것은 아니라면(1020), 제1 CS 패턴이 전송된다(1040). 제1 패턴의 각각의 바이트에 대한 데이터 비트들의 합은 제1 패턴에 대한 시그너처와 함께 저장된다(1050). 제2 CS 패턴이 전송된다(1060). 제2 패턴의 각각의 바이트에 대한 데이터 비트들의 합이 제2 패턴에 대한 시그너처와 함께 저장된다(1070).
현재 타이밍 파라미터들이 통과했는지(1090) 또는 실패했는지(1095) 결정하기 위해, 패턴 결과들이 비교된다(1080). 일 실시예에서, 결과들의 비교는 각각의 트레이닝 패턴에 대해 수신된 '1' 비트들의 개수를 체크하는 것을 포함한다. 일 실시예에서, 각각의 패턴이 수신된 네 개의 '1' 비트들을 초래하고(도 3으로부터의 적절한 패턴 또는 유사한 패턴이 이용되었다고 가정함) 두 개의 패턴들에 대한 시그너처들이 상이하다면, 패턴 트레이닝은 통과했다.
일 실시예에 있어서, 메모리 디바이스에서 명령/어드레스(CA) 버스 상의 유효값들을 검출함에 의해 데이터 라인 맵핑이 달성된다. CA 버스 상의 유효값들의 검출에 대응하여 제1 패턴이 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제1 서브세트를 통해 전송된다. 제1 샘플을 획득하기 위해 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들이 샘플링된다. 제2 패턴이 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 전송된다. 제2 샘플을 획득하기 위해 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들이 샘플링된다. 데이터 핀 맵핑을 생성하기 위해 상기 제1 샘플 및 상기 제2 샘플이 이용된다.
일 실시예에 있어서, 상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(dynamic random access memory: DRAM)를 포함한다. 일 실시예에 있어서, 상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 제1 서브세트는 데이터 핀들의 제1 절반을 포함하고 제2 서브세트는 데이터 핀들의 제2 절반을 포함한다. 일 실시예에 있어서, 상기 제1 절반은 짝수 번호가 매겨진 데이터 핀들을 포함하고 상기 제2 절반은 홀수 번호가 매겨진 데이터 핀들을 포함한다.
일 실시예에 있어서, 시스템은 명령/어드레스(CA) 핀들 및 데이터 핀들을 가진 적어도 하나의 메모리 디바이스, 및 상기 CA 핀들 및 상기 데이터 핀들을 통해 상기 적어도 하나의 메모리 디바이스와 결합된 메모리 제어기를 포함한다. 상기 메모리 제어기는 상기 메모리 디바이스에서의 명령/어드레스(CA) 버스에 유효값들을 전송하고, 상기 메모리 디바이스는 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제1 서브세트를 통해 제1 패턴을 전송하고, 상기 메모리 제어기는 제1 샘플을 획득하기 위해 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 샘플링된 신호들을 수신하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 제2 패턴을 전송하고, 제2 샘플을 획득하기 위해 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 샘플링된 신호들을 수신하고, 데이터 핀 맵핑을 생성하기 위해 상기 제1 샘플 및 상기 제2 샘플을 이용한다.
일 실시예에 있어서, 상기 메모리 제어기는 CA 핀들 상에 (단일) 패턴을 전송하고, 상기 메모리 디바이스는 각각의 CA 핀을 2회 샘플링하고, 그에 따른 결과를 짝수 및 홀수 핀들에 리턴한다. 상기 메모리 디바이스는 이 경우에 데이터 버스 상에서 아무 것도 수신하지 않지만, 상기 메모리 제어기만 수신한다.
일 실시예에 있어서, 상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함한다. 일 실시예에 있어서, 상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 제1 서브세트는 데이터 핀들의 제1 절반을 포함하고 제2 서브세트는 데이터 핀들의 제2 절반을 포함한다. 일 실시예에 있어서, 상기 제1 절반은 짝수 번호가 매겨진 데이터 핀들을 포함하고 상기 제2 절반은 홀수 번호가 매겨진 데이터 핀들을 포함한다.
일 실시예에 있어서, 시스템은 메모리 제어기, 및 명령/어드레스(CA) 핀들 및 데이터 핀들을 가진 메모리 디바이스를 포함한다. 상기 메모리 디바이스는 상기 CA 핀들 및 상기 데이터 핀들을 통해 상기 메모리 제어기와 통신하도록 결합되고, 상기 메모리 디바이스는 메모리 디바이스에서의 명령/어드레스(CA) 버스 상에서 유효값들을 검출하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제1 서브세트를 통해 제1 패턴을 수신하고, CA 버스 상에서 유효값들을 검출하는 것에 응답하여 제1 샘플을 획득하기 위해 상기 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들을 샘플링하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 제2 패턴을 수신하고, 제2 샘플을 획득하기 위해 상기 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들을 샘플링하고, 상기 제1 샘플 및 상기 제2 샘플을 상기 메모리 제어기에 전송한다. 상기 메모리 제어기는 상기 제1 샘플 및 상기 제2 샘플에 기초하여 데이터 핀 맵핑을 생성한다.
일 실시예에 있어서, 상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함한다. 일 실시예에 있어서, 상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 제1 서브세트는 데이터 핀들의 제1 절반을 포함하고 제2 서브세트는 데이터 핀들의 제2 절반을 포함한다. 일 실시예에 있어서, 상기 제1 절반은 짝수 번호가 매겨진 데이터 핀들을 포함하고 상기 제2 절반은 홀수 번호가 매겨진 데이터 핀들을 포함한다.
메모리 디바이스는 명령/어드레스(CA) 핀들, 데이터 핀들, 및 상기 CA 핀들 및 상기 데이터 핀들과 결합된 제어 로직을 포함한다. 제어 로직은 메모리 디바이스에서 명령/어드레스(CA) 버스 상의 유효값들을 검출하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제1 서브세트를 통해 제1 패턴을 수신하고, CA 버스 상에서 유효값들을 검출하는 것에 응답하여 제1 샘플을 획득하기 위해 상기 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들을 샘플링하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 제2 패턴을 수신하고, 제2 샘플을 획득하기 위해 상기 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들을 샘플링하고, 상기 제1 샘플 및 상기 제2 샘플을 상기 메모리 제어기에 전송한다.
일 실시예에 있어서, 상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함한다. 일 실시예에 있어서, 상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 제1 서브세트는 데이터 핀들의 제1 절반을 포함하고 제2 서브세트는 데이터 핀들의 제2 절반을 포함한다. 일 실시예에 있어서, 상기 제1 절반은 짝수 번호가 매겨진 데이터 핀들을 포함하고 상기 제2 절반은 홀수 번호가 매겨진 데이터 핀들을 포함한다.
일 실시예에 있어서, 메모리 제어기는 명령/어드레스(CA) 핀들, 데이터 핀들, 및 상기 CA 핀들 및 상기 데이터 핀들과 결합된 제어 로직을 포함한다. 상기 메모리 제어기는 상기 CA 핀들 및 상기 데이터 핀들을 통해 적어도 하나의 메모리 디바이스와 통신하고, 상기 메모리 제어기는 상기 메모리 디바이스에서의 명령/어드레스(CA) 버스 상에 유효값들을 전송하고, 제1 샘플을 획득하기 위해 상기 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 샘플링된 신호들을 수신하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 제2 패턴을 전송하고, 제2 샘플을 획득하기 위해 상기 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 샘플링된 신호들을 수신하고, 데이터 핀 맵핑을 생성하기 위해 상기 제1 샘플 및 상기 제2 샘플을 이용한다.
일 실시예에 있어서, 상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함한다. 일 실시예에 있어서, 상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스이다. 일 실시예에 있어서, 제1 서브세트는 데이터 핀들의 제1 절반을 포함하고 제2 서브세트는 데이터 핀들의 제2 절반을 포함한다. 일 실시예에 있어서, 상기 제1 절반은 짝수 번호가 매겨진 데이터 핀들을 포함하고 상기 제2 절반은 홀수 번호가 매겨진 데이터 핀들을 포함한다.
명세서에서 "일 실시예" 또는 "실시예"에 대한 참조는 실시예와 관련되어 설명된 특정적인 특징, 구조, 또는 특성이 본 발명의 적어도 일 실시예에 포함된다는 것을 의미한다. 본 명세서의 여러 곳에서 "일 실시예에서"라는 어구의 등장은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
본 발명이 몇몇 실시예들에 관하여 기술되었지만, 통상의 기술자는 본 발명이 기술된 실시예들에 한정되지 않고, 첨부된 특허 청구항들의 범위 및 사상 내에서 수정 및 변경이 실시될 수 있음을 이해할 것이다. 그러므로, 설명은 제한적인 것 대신 예시적인 것으로 여겨져야 한다.

Claims (20)

  1. 방법으로서,
    메모리 디바이스에서 명령/어드레스(CA) 버스 상의 유효값들을 검출하는 단계;
    메모리 제어기에 의해, 상기 CA 버스 상에 제1 패턴을 전송하고, 그 결과 DRAM이 제1 세트의 값을 데이터 핀들 상에 전송하게 되어, 바이트당 '1'들의 고유의 합(unique sum)을 생성하는 단계;
    제1 샘플을 획득하기 위해 상기 제1 패턴이 전송된 후에 상기 데이터 핀들로부터 신호들을 샘플링하는 단계;
    상기 메모리 제어기에 의해, 상기 CA 버스 상에 제2 패턴을 전송하고, 그 결과 DRAM이 제2 세트의 값을 상기 데이터 핀들 상에 전송하게 되어, 바이트당 '1'들의 고유의 합을 생성하는 단계;
    제2 샘플을 획득하기 위해 상기 제2 패턴이 전송된 후에 상기 데이터 핀들로부터 신호들을 샘플링하는 단계;
    데이터 핀 맵핑을 생성하기 위해 상기 제1 샘플 및 상기 제2 샘플을 이용하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    CLK/CS/CA 개략적 분해능 사전-트레이닝(CLK/CS/CA rough resolution pre-training) 및 CS 미세 분해능 트레이닝(CS fine resolution training)을 달성하기 위해 상기 제1 샘플 및 상기 제2 샘플을 이용하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(dynamic random access memory: DRAM)를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스인, 방법.
  5. 제3항에 있어서,
    상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스인, 방법.
  6. 제1항에 있어서,
    제1 서브세트는 짝수 번호가 매겨진 데이터 핀들을 포함하고 제2 서브세트는 홀수 번호가 매겨진 데이터 핀들을 포함하는, 방법.
  7. 시스템으로서,
    메모리 제어기; 및
    명령/어드레스(CA) 핀들 및 데이터 핀들을 갖는 메모리 디바이스
    를 포함하고,
    상기 메모리 디바이스는 상기 CA 핀들 및 상기 데이터 핀들을 통해 상기 메모리 제어기와 통신하도록 결합되고, 상기 메모리 디바이스는 메모리 디바이스에서의 명령/어드레스(CA) 버스 상에서 유효값들을 검출하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제1 서브세트를 통해 제1 패턴을 수신하고, 상기 CA 버스 상에서 상기 유효값들을 검출하는 것에 응답하여 제1 샘플을 획득하기 위해 상기 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들을 샘플링하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 제2 패턴을 수신하고, 제2 샘플을 획득하기 위해 상기 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 신호들을 샘플링하고, 상기 제1 샘플 및 상기 제2 샘플을 상기 메모리 제어기에 전송하고,
    상기 메모리 제어기는 상기 제1 샘플 및 상기 제2 샘플에 기초하여 데이터 핀 맵핑을 생성하는, 시스템.
  8. 제7항에 있어서,
    상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함하는, 시스템.
  9. 제8항에 있어서,
    상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스인, 시스템.
  10. 제8항에 있어서,
    상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스인, 시스템.
  11. 제7항에 있어서,
    상기 데이터 핀들의 제1 절반은 짝수 번호가 매겨진 데이터 핀들을 포함하고 상기 데이터 핀들의 제2 절반은 홀수 번호가 매겨진 데이터 핀들을 포함하는, 시스템.
  12. 메모리 제어기로서,
    명령/어드레스(CA) 핀들;
    데이터 핀들; 및
    상기 CA 핀들 및 상기 데이터 핀들과 결합된 제어 로직
    을 포함하고,
    상기 메모리 제어기는 상기 CA 핀들 및 상기 데이터 핀들을 통해 적어도 하나의 메모리 디바이스와 통신하고, 상기 메모리 제어기는 메모리 디바이스에서의 명령/어드레스(CA) 버스 상에 유효값들을 전송하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제1 서브세트를 통해 제1 패턴을 전송하고, 제1 샘플을 획득하기 위해 상기 제1 패턴이 전송되는 동안 상기 데이터 핀들로부터 샘플링된 신호들을 수신하고, 상기 메모리 디바이스 상의 두 개 이상의 데이터 핀들의 제2 서브세트를 통해 제2 패턴을 전송하고, 제2 샘플을 획득하기 위해 상기 제2 패턴이 전송되는 동안 상기 데이터 핀들로부터 샘플링된 신호들을 수신하고, 데이터 핀 맵핑을 생성하기 위해 상기 제1 샘플 및 상기 제2 샘플을 이용하는, 메모리 제어기.
  13. 제12항에 있어서,
    상기 메모리 디바이스는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함하는, 메모리 제어기.
  14. 제13항에 있어서,
    상기 DRAM은 저 전력 더블 데이터 레이트 3(LPDDR3) 호환성 메모리 디바이스인, 메모리 제어기.
  15. 제13항에 있어서,
    상기 DRAM은 더블 데이터 레이트(DDRx) 호환성 메모리 디바이스인, 메모리 제어기.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020157012168A 2012-12-27 2013-06-18 스위즐된 데이터 명령/어드레스 신호들을 맵핑하는 트레이닝 KR101729872B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/728,581 US9026725B2 (en) 2012-12-27 2012-12-27 Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals
US13/728,581 2012-12-27
PCT/US2013/046406 WO2014105134A1 (en) 2012-12-27 2013-06-18 Training for mapping swizzled data command/address signals

Publications (2)

Publication Number Publication Date
KR20150068984A KR20150068984A (ko) 2015-06-22
KR101729872B1 true KR101729872B1 (ko) 2017-04-24

Family

ID=51018624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012168A KR101729872B1 (ko) 2012-12-27 2013-06-18 스위즐된 데이터 명령/어드레스 신호들을 맵핑하는 트레이닝

Country Status (4)

Country Link
US (1) US9026725B2 (ko)
KR (1) KR101729872B1 (ko)
CN (1) CN104903877B (ko)
WO (1) WO2014105134A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210250B2 (en) 2018-03-12 2021-12-28 SK Hynix Inc. Semiconductor apparatus, command training system, and command training method

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658642B2 (en) 2013-07-01 2017-05-23 Intel Corporation Timing control for unmatched signal receiver
KR102222968B1 (ko) * 2014-09-01 2021-03-04 삼성전자주식회사 어드레스 정렬기 및 이를 포함하는 메모리 장치
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US10068634B2 (en) 2016-03-16 2018-09-04 International Business Machines Corporation Simultaneous write and read calibration of an interface within a circuit
US10585672B2 (en) * 2016-04-14 2020-03-10 International Business Machines Corporation Memory device command-address-control calibration
KR102578171B1 (ko) 2016-08-31 2023-09-14 에스케이하이닉스 주식회사 반도체 시스템
KR20180046428A (ko) 2016-10-27 2018-05-09 삼성전자주식회사 메모리 장치 및 그것의 트레이닝 방법
US10416912B2 (en) 2016-11-03 2019-09-17 Intel Corporation Efficiently training memory device chip select control
US11017839B2 (en) * 2017-01-13 2021-05-25 Mediatek Inc. DRAM, memory controller and associated training method
US10090065B1 (en) 2017-03-14 2018-10-02 International Business Machines Corporation Simultaneous write, read, and command-address-control calibration of an interface within a circuit
US10176858B1 (en) 2017-08-30 2019-01-08 Micron Technology, Inc. Adjusting instruction delays to the latch path in DDR5 DRAM
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
US10720197B2 (en) 2017-11-21 2020-07-21 Samsung Electronics Co., Ltd. Memory device for supporting command bus training mode and method of operating the same
US10332575B2 (en) 2017-11-29 2019-06-25 Micron Technology, Inc. Signal training for prevention of metastability due to clocking indeterminacy
US10366737B2 (en) 2017-12-21 2019-07-30 Micron Technology, Inc. Management of strobe/clock phase tolerances during extended write preambles
EP3977452A4 (en) 2019-05-24 2023-06-21 Intel Corporation TRAINING FOR CHIP SELECT SIGNAL READ OPERATIONS BY STORAGE DEVICES
US11675716B2 (en) * 2019-12-10 2023-06-13 Intel Corporation Techniques for command bus training to a memory device
CN113448782B (zh) 2020-03-27 2022-05-13 长鑫存储技术有限公司 存储器的测试方法、存储介质和计算机设备
CN113689902B (zh) * 2020-05-19 2023-09-01 长鑫存储技术有限公司 生成存储器地址数据的方法、计算机可读存储介质及设备
KR20220083291A (ko) 2020-12-11 2022-06-20 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템을 포함하는 전자 시스템
KR20220121440A (ko) 2021-02-25 2022-09-01 삼성전자주식회사 메모리 장치의 dq 캘리브레이션 패턴의 최적화 방법 및 이를 수행하는 컴퓨팅 시스템
CN116312672B (zh) * 2023-05-24 2023-10-24 长鑫存储技术有限公司 命令/地址信号训练模式电路及存储器
CN116564377B (zh) * 2023-06-07 2024-02-09 上海奎芯集成电路设计有限公司 内存设备命令总线训练中的延时确定方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320867A1 (en) 2010-06-28 2011-12-29 Santanu Chaudhuri Method and apparatus for training a memory signal via an error signal of a memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050738A (ja) * 2001-08-03 2003-02-21 Elpida Memory Inc キャリブレーション方法及びメモリシステム
US20040267489A1 (en) 2003-06-24 2004-12-30 Frederic Reblewski Data compaction and pin assignment
US20070005836A1 (en) * 2005-06-07 2007-01-04 Sandeep Jain Memory having swizzled signal lines
US7624310B2 (en) 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US8595428B2 (en) * 2009-12-22 2013-11-26 Intel Corporation Memory controller functionalities to support data swizzling
US20130194881A1 (en) 2010-11-09 2013-08-01 Steven C. Woo Area-efficient multi-modal signaling interface
US8825945B2 (en) 2011-01-31 2014-09-02 Marvell World Trade Ltd. Mapping different portions of data to different pages of multi-level non-volatile memory
US8760945B2 (en) * 2011-03-28 2014-06-24 Samsung Electronics Co., Ltd. Memory devices, systems and methods employing command/address calibration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320867A1 (en) 2010-06-28 2011-12-29 Santanu Chaudhuri Method and apparatus for training a memory signal via an error signal of a memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210250B2 (en) 2018-03-12 2021-12-28 SK Hynix Inc. Semiconductor apparatus, command training system, and command training method

Also Published As

Publication number Publication date
CN104903877A (zh) 2015-09-09
CN104903877B (zh) 2018-01-26
KR20150068984A (ko) 2015-06-22
US9026725B2 (en) 2015-05-05
US20140189224A1 (en) 2014-07-03
WO2014105134A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
KR101729872B1 (ko) 스위즐된 데이터 명령/어드레스 신호들을 맵핑하는 트레이닝
US7924637B2 (en) Method for training dynamic random access memory (DRAM) controller timing delays
US8780655B1 (en) Method and apparatus for aligning a clock signal and a data strobe signal in a memory system
US8595428B2 (en) Memory controller functionalities to support data swizzling
EP3625800B1 (en) Systems and methods for frequency mode detection and implementation
US9740556B2 (en) Semiconductor memory apparatus and operating method thereof
US20130097460A1 (en) Method of testing universal flash storage (ufs) interface and memory device implementing method of testing ufs interface
US9166625B2 (en) Circuits, integrated circuits, and methods for interleaved parity computation
EP2476062B1 (en) Adjustment of memory write timing based on error detection techniques
TW201131577A (en) Memory link initialization
US9330031B2 (en) System and method for calibration of serial links using a serial-to-parallel loopback
US9502099B2 (en) Managing skew in data signals with multiple modes
CN109213703B (zh) 一种数据检测方法及数据检测装置
CN101350216B (zh) 用于存储设备的降低信号电平支持的方法、***和装置
KR102035108B1 (ko) 반도체 시스템
US9280454B1 (en) Method and system for re-ordering bits in a memory system
US10204005B2 (en) Error detection circuit and semiconductor apparatus using the same
US9570128B2 (en) Managing skew in data signals
CN112017727B (zh) 接口测试方法、装置、处理器和电子设备
US8671304B2 (en) Adjustment of write timing based on a training signal
JP4786941B2 (ja) ハブ、メモリモジュール、及びメモリシステムとこれを通じた読み込み方法及び書き込み方法
US20080270834A1 (en) Control method for read operation of memory
CN109243506B (zh) 半导体器件
US20230206972A1 (en) Circuit and method for setting synchronous dynamic random access memory
KR20180068346A (ko) 반도체 장치 및 그의 동작 방법

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
GRNT Written decision to grant