KR102354764B1 - 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들 - Google Patents

포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들 Download PDF

Info

Publication number
KR102354764B1
KR102354764B1 KR1020217014511A KR20217014511A KR102354764B1 KR 102354764 B1 KR102354764 B1 KR 102354764B1 KR 1020217014511 A KR1020217014511 A KR 1020217014511A KR 20217014511 A KR20217014511 A KR 20217014511A KR 102354764 B1 KR102354764 B1 KR 102354764B1
Authority
KR
South Korea
Prior art keywords
port
dram
dram system
soc
training
Prior art date
Application number
KR1020217014511A
Other languages
English (en)
Other versions
KR20210059017A (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 KR20210059017A publication Critical patent/KR20210059017A/ko
Application granted granted Critical
Publication of KR102354764B1 publication Critical patent/KR102354764B1/ko

Links

Images

Classifications

    • 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/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • 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
    • 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

Landscapes

  • Memory System (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (DRAM) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들이 개시된다. 하나의 양태에서, DRAM 시스템 내의 제 1 포트는 루프백 커넥션을 통해 제 2 포트에 커플링된다. 훈련 신호는 시스템-온-칩 (SoC) 으로부터 제 1 포트로 전송되고, 루프백 커넥션을 통하여 제 2 포트에 전달된다. 훈련 신호는 그 후 SoC 로 리턴되고, 여기서 그 신호는 SoC 의 폐루프 훈련 엔진에 의해 검토될 수도 있다. 하드웨어 파라미터에 대응하는 훈련 결과가 레코딩될 수도 있고, 폐루프 훈련 엔진에서 하드웨어 파라미터에 대한 최적의 결과가 달성될 때까지 프로세스는 반복될 수도 있다. 포트-투-포트 루프백 구성을 이용함으로써, 타이밍, 전력에 관한 DRAM 시스템 파라미터들, 및 그 DRAM 시스템과 연관된 다른 파라미터들이 보다 신속히 그리고 더 낮은 부트 메모리 사용으로 훈련될 수도 있다.

Description

포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (DRAM) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들{PROVIDING MEMORY TRAINING OF DYNAMIC RANDOM ACCESS MEMORY (DRAM) SYSTEMS USING PORT-TO-PORT LOOPBACKS, AND RELATED METHODS, SYSTEMS, AND APPARATUSES}
우선권 주장들
본 출원은 "SYSTEMS AND METHODS FOR TRAINING MEMORY" 라는 명칭으로 2014년 1월 24일자로 출원된 미국 가특허출원 제61/930,980호에 대해 우선권을 주장하고, 이는 본 명세서에 완전히 참조에 의해 통합된다.
본 출원은 또한, "PROVIDING MEMORY TRAINING OF DYNAMIC RANDOM ACCESS MEMORY (DRAM) SYSTEMS USING PORT-TO-PORT LOOPBACKS, AND RELATED METHODS, SYSTEMS, AND APPARATUSES" 라는 명칭으로 2015년 1월 5일자로 출원된 미국 특허출원 제14/589,145호에 대해 우선권을 주장하고, 이는 본 명세서에 완전히 참조에 의해 통합된다.
기술 분야
본 개시의 기술은 일반적으로 메모리 시스템들에 관한 것이다.
컴퓨팅 시스템들은 저장 및 동작 양자를 위해 메모리에 의존한다. 컴퓨팅 시스템들이 동작을 위해 이용하는 하나의 공통 타입의 메모리는 랜덤 액세스 메모리 (RAM) 이다. RAM 은 2 개의 별개의 타입들 - 정적 RAM (SRAM) 및 동적 RAM (DRAM) 을 갖는다. DRAM 은 비트 값을 표시하기 위해 메모리 어레이에서의 커패시터 상의 전하의 존재 또는 부재에 의존한다. 예를 들어, 커패시터가 충전되면, 비트 값은 논리 1 인 것으로 간주된다. 커패시터가 충전되지 않으면, 비트 값은 논리 0 인 것으로 간주된다. 커패시터들은 전하를 천천히 소실하기 때문에, 주기적 리프레시가 적용된다. 전력이 터미네이팅 (terminating) 되는 경우에, 모든 커패시터들은 방전하고, 메모리는 DRAM 에 존재했던 모든 데이터를 소실한다.
제조 프로세스들의 변화들은, DRAM 모듈에서의 모든 엘리먼트가 의도한 대로 작동하는 것은 아닐 수도 있다는 점에서, 불완전한 DRAM 을 생산하는 변화들을 초래할 수도 있다. 그러나, 이러한 변화들에 관한 지식을 제공했을 때, 컴퓨팅 시스템들은 그 변화들을 쉽게 보상할 수도 있다. 예를 들어, 컴퓨팅 시스템은 커패시터들을 충전하기 위해 더 큰 또는 더 적은 전압들을 생성할 수도 있거나, 레이턴시에 대한 보상을 제공할 수도 있거나, 또는 심지어는 완전 결함 비트 셀에 기록하거나 그로부터 판독하려는 어떤 시도들도 회피할 수도 있다. 그러나, 컴퓨팅 시스템이 이러한 교정 단계들을 취할 수도 있기 전에는, 컴퓨팅 시스템은 어느 DRAM 메모리 어레이 엘리먼트들 (예를 들어, 개개의 비트 셀) 이 동작적인지를, 그리고 어떤 특이점 (idiosyncrasy) 들이 특정한 DRAM 메모리 어레이 엘리먼트와 및/또는 DRAM 메모리 어레이 엘리먼트들과 통신하기 위한 경로들과 연관될 수도 있는지를 결정할 필요가 있다. 이에 따라, 컴퓨팅 시스템은 비제한적 예들로서, 타이밍 및 성능을 위해 DRAM 메모리 어레이 엘리먼트에 대한 링크를 최적화하기 위한 훈련 (training) 동작들을 수행할 수도 있다.
종래의 훈련 방법들은 DRAM 메모리 어레이 엘리먼트들의 시리얼 테스팅에 의존한다. 예를 들어, 종래의 기록 테스팅에서는, DRAM 메모리 어레이 엘리먼트에 대한 기록 커맨드가 개시되고, 데이터는 DRAM 메모리 어레이 엘리먼트에 기록되고, 그리고 그 후 데이터는 DRAM 메모리 어레이 엘리먼트로부터 판독된다. 훈련 상태 머신 (또는 소프트웨어) 은 그 후 기록 데이터와 판독 데이터를 비교하고, 훈련되고 있는 파라미터를 수정 (예를 들어, 증분 또는 감분) 할지 여부를 결정할 수도 있다. 이 프로세스는, 효과적이기는 하지만, 구현하기에 상당한 부트 메모리를 요구할 수도 있고, 비교가 이루어질 수도 있기 전에 이슈되어야 하는 DRAM 메모리 액세스 기록 커맨드 및 판독 커맨드로 인해 시간-소비적일 수도 있다. 더욱이, 그 비교 단계는 최종 최적값이 결정될 수도 있기 전에는 다수 회 반복될 수도 있다. 따라서, 메모리를 훈련하기 위한 개선된 기법이 바람직할 수도 있다.
본 명세서에서 개시된 양태들은 포트-투-포트 루프백들을 이용하여 동적 랜덤 액세스 메모리 (DRAM) 시스템들의 메모리 훈련을 제공하는 것을 가능하게 한다. 관련 방법들, 시스템들, 및 장치들이 또한 개시된다. 일 예시적인 양태에서, DRAM 시스템 내의 제 1 포트는 루프백 커넥션을 통해 제 2 포트에 커플링된다. 훈련 신호는 시스템-온-칩 (System-on-Chip; SoC) 으로부터 제 1 포트로 전송되고 DRAM 시스템의 메모리 어레이에 기록되거나 또는 그로부터 판독될 필요 없이 루프백 커넥션을 통하여 제 2 포트로 전달된다. 훈련 신호는 그 후 SoC 로 리턴되고, 여기서 그 신호는 SoC 의 폐루프 훈련 엔진에 의해 검토될 (examined) 수도 있다. 하드웨어 파라미터에 대응하는 훈련 결과가 레코딩될 수도 있고, 폐루프 훈련 엔진에서 하드웨어 파라미터에 대한 최적의 결과가 달성될 때까지 프로세스는 반복될 수도 있다. 포트-투-포트 루프백 구성을 이용함으로써, 타이밍, 전력에 관한 DRAM 시스템 파라미터들, 및 그 DRAM 시스템과 연관된 다른 파라미터들이 보다 신속히 그리고 더 낮은 부트 메모리 사용으로 훈련될 수도 있다.
또 다른 양태에서, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 방법이 제공된다. 방법은 DRAM 시스템의 제 1 포트에 의해, SoC 로부터 훈련 신호를 수신하는 단계를 포함한다. 방법은 DRAM 시스템의 제 1 포트에 의해, 루프백 커넥션을 통해 DRAM 시스템의 제 2 포트에 훈련 신호를 제공하는 단계를 더 포함한다. 방법은 또한, DRAM 시스템의 제 2 포트에 의해, SoC 에 훈련 신호를 제공하는 단계를 포함한다.
또 다른 양태에서, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템이 제공된다. 시스템은 DRAM 시스템에 통신가능하게 커플링된 SoC 를 포함한다. DRAM 시스템은 루프백 커넥션을 통해 통신가능하게 커플링된 제 1 포트 및 제 2 포트를 포함한다. DRAM 시스템은 DRAM 시스템의 제 1 포트에 의해, SoC 로부터 훈련 신호를 수신하도록 구성된다. DRAM 시스템은 또한, DRAM 시스템의 제 1 포트에 의해, 루프백 커넥션을 통해 DRAM 시스템의 제 2 포트에 훈련 신호를 제공하도록 구성된다. DRAM 시스템은 또한, DRAM 시스템의 제 2 포트에 의해, SoC 에 훈련 신호를 제공하도록 구성된다.
또 다른 양태에서, DRAM 시스템을 포함하는 장치가 제공된다. DRAM 시스템은 DRAM 시스템의 제 1 포트에 의해, SoC 로부터 훈련 신호를 수신하도록 구성된다. DRAM 시스템은 또한, DRAM 시스템의 제 1 포트에 의해, 루프백 커넥션을 통해 제 2 포트에 훈련 신호를 제공하도록 구성된다. DRAM 시스템은 또한, DRAM 시스템의 제 2 포트에 의해, SoC 에 훈련 신호를 제공하도록 구성된다.
도 1 은 당업계에 알려져 있는 바와 같이, 시스템-온-칩 (SoC) 에 통신가능하게 커플링된 종래의 동적 랜덤 액세스 메모리 (DRAM) 시스템의 블록 다이어그램이다.
도 2 는 도 1 의 DRAM 시스템 및 SoC 와 연관된 일 예시적인 훈련 프로세스에 대한 단순화된 플로우차트이다.
도 3 은 포트-투-포트 루프백 커넥션을 이용하여 메모리 훈련을 제공하기 위한 본 명세서에서 개시된 일 예시적인 SoC 및 DRAM 시스템의 블록 다이어그램이다.
도 4 는 도 3 의 SoC 및 DRAM 시스템의 일 예시적인 구현의 상세한 회로 다이어그램이다.
도 5 는 포트-투-포트 루프백 커넥션을 이용하여 메모리 훈련을 제공하기 위한 예시적인 동작들을 예시하는 플로우차트이다.
도 6 은 포트-투-포트 루프백 커넥션을 이용하여 메모리 훈련을 제공하기 위한 도 3 및 도 4 의 SoC 및/또는 DRAM 시스템을 포함할 수도 있는 일 예시적인 프로세서-기반 시스템의 블록 다이어그램이다.
이제 그려진 도면들을 참조하여, 본 개시의 여러 예시적인 양태들이 설명된다. 단어 "예시적인" 은 본 명세서에서 "일 예, 인스턴스, 또는 예시로서 기능하는 것" 을 의미하는데 사용된다. 본 명세서에서 "예시적인" 으로서 설명된 임의의 양태가 반드시 다른 양태들에 비해 선호되거나 또는 유리한 것으로서 해석될 필요는 없다.
본 명세서에서 개시된 양태들은 포트-투-포트 루프백들을 이용하여 동적 랜덤 액세스 메모리 (DRAM) 시스템들의 메모리 훈련 (memory training) 을 제공하는 것을 가능하게 한다. 관련 방법들, 시스템들, 및 장치들이 또한 개시된다. 일 예시적인 양태에서, DRAM 시스템 내의 제 1 포트는 루프백 커넥션을 통해 제 2 포트에 커플링된다. 훈련 신호는 시스템-온-칩 (SoC) 으로부터 제 1 포트로 전송되고 DRAM 시스템의 메모리 어레이에 기록되거나 또는 그로부터 판독될 필요 없이 루프백 커넥션을 통하여 제 2 포트로 전달된다. 훈련 신호는 그 후 SoC 로 리턴되고, 여기서 그 신호는 SoC 의 폐루프 훈련 엔진에 의해 검토될 수도 있다. 하드웨어 파라미터에 대응하는 훈련 결과가 레코딩될 수도 있고, 폐루프 훈련 엔진에서 하드웨어 파라미터에 대한 최적의 결과가 달성될 때까지 프로세스는 반복될 수도 있다. 포트-투-포트 루프백 구성을 이용함으로써, 타이밍, 전력에 관한 DRAM 시스템 파라미터들, 및 그 DRAM 시스템과 연관된 다른 파라미터들이 보다 신속히 그리고 더 낮은 부트 메모리 사용으로 훈련될 수도 있다.
포트-투-포트 루프백들을 이용하여 DRAM 시스템들의 메모리 훈련을 제공하기 위한 본 명세서에서 개시된 방법들, 시스템들, 및 장치들의 예시적인 양태들을 다루기 전에, 종래의 훈련 기법들의 간단한 리뷰가 도 1 및 도 2 를 참조하여 제공된다. 포트-투-포트 루프백들을 이용하여 DRAM 시스템들의 훈련을 위한 방법들, 시스템들, 및 장치들과 연관된 예시적인 하드웨어 및 동작들의 논의는 아래에 도 3 을 참조하여 시작된다.
이것과 관련하여, 도 1 은 당업계에 알려져 있는 바와 같이, SoC (102) 에 통신가능하게 커플링된 DRAM 시스템 (100) 에 대한 종래의 훈련 스킴의 블록 다이어그램이다. 예시한 바와 같이, SoC (102) 는 포트들 (104(0)-104(X)) 을 제공하고, 그 포트들 각각은 DRAM 시스템 (100) 에 의해 제공되는 대응하는 포트 (106(0)-106(X)) 에 커플링된다. 본 명세서에서 사용한 바와 같이, "포트" 는 수신기 (예를 들어, DRAM 시스템 (100)) 에서의 공통 스트로브 또는 클록 (미도시) 을 이용하여 리타이밍될 (retimed) 수도 있는 셀프-타임드 유닛 (self-timed unit) 을 지칭한다. 일부 양태들에서, 포트들 (104(0)-104(X) 및 106(0)-106(X)) 의 각각은 한번에 특정 수의 비트들의 정보를 전송하도록 구성된다. 비제한적 예로서, 포트들 (104(0)-104(X) 및 106(0)-106(X)) 은 한번에 8 비트들의 정보를 전송하도록 구성될 수도 있으며, 이 경우에 포트들 (104(0)-104(X) 및 106(0)-106(X)) 의 각각은 "바이트 레인 (byte lane)" 으로 지칭될 수도 있다.
SoC (102) 및 DRAM 시스템 (100) 은 또한, 커맨드 및 클록 ("CA/CK") 라인 (108) 에 의해 커플링되고, 그 CA/CK 라인 (108) 은 CA/CK 엘리먼트들 (110 및 112) 을 각각 연결한다. CA/CK 라인 (108) 은 SoC (102) 와 DRAM 시스템 (100) 사이에 커맨드 및 프로세서 클록 신호들을 통신하는데 이용될 수도 있다. DRAM 시스템 (100) 에서의 포트들 (106(0)-106(X)) 은 DRAM 시스템 (100) 내의 메모리 어레이 (114) 에 통신가능하게 커플링된다. 일부 양태들에서, 메모리 어레이 (114) 는 논리 값들을 표시하기 위해 커패시터들 (미도시) 또는 다른 엘리먼트들을 포함할 수도 있다. 본 명세서에서 제공되는 일부 양태들은 더 많거나 또는 더 적은 포트들 (104(0)-104(X) 및/또는 106(0)-106(X)) 을 제공할 수도 있다는 것이 이해될 것이다. 일부 양태들에서, SoC (102) 및/또는 DRAM 시스템 (100) 은 명료성을 위해 도 1 에 도시되지 않은 추가적인 엘리먼트들을 포함할 수도 있다.
상기 언급한 바와 같이, SoC (102) 는 예를 들어, 제조 변동들 또는 특이점들로 인해 DRAM 시스템 (100) 의 엘리먼트들에 액세스할 때 임의의 교정 또는 보상 액션들이 취해질 필요가 있는지 여부를 스타트업 시간에 결정할 필요가 있을 수도 있다. 예를 들어, SoC (102) 는 임의의 타이밍 또는 성능 이슈들이 DRAM 시스템 (100) 의 포트들 (106(0)-106(X)) 또는 그에 대한 통신 경로들과 연관되는지 여부를 결정할 필요가 있을 수도 있다. 이에 따라, SoC (102) 는 비제한적 예들로서, 타이밍 및/또는 성능을 최적화하기 위해 DRAM 시스템 (100) 의 포트들 (106(0)-106(X)) 을 최적화하기 위한 훈련 동작들을 수행할 수도 있다.
도 2 는 도 1 의 SoC (102) 및 DRAM 시스템 (100) 과 연관된 종래의 훈련 프로세스의 단순화된 플로우차트를 제공한다. 명료성을 위해, 도 1 의 엘리먼트들이 도 2 의 동작들을 설명하는데 있어서 참조된다. 본 명세서에서 설명된 훈련 프로세스는 예를 들어, DRAM 시스템 (100) 과 통신하는데 있어서 SoC (102) 에 의해 이용되는 타이밍 및/또는 전압과 연관되는 하드웨어 파라미터 (미도시) 를 설정하는데 이용될 수도 있다.
종래의 훈련 프로세스는 DRAM 시스템 (100) 으로부터 SoC (102) 로의 역판독 (read back) 을 이용하여, "의사 개루프" 프로세스로서 수행될 수도 있다. 도 2 에서 알 수 있는 바와 같이, 셋업 커맨드 (CMD) (200) 는 SoC (102) 로부터, DRAM 시스템 (100), 포트들 (106(0)-106(X)) 중 선택된 하나의 포트에 통신될 수도 있다. 기록 커맨드 (WRITE CMD) (202) 는 그 후 포트들 (106(0)-106(X)) 중 선택된 하나의 포트로 훈련 신호 (미도시) 를 전송하기 위해 DRAM 시스템 (100) 에 제공된다. 다음에, 판독 커맨드 (READ CMD) (204) 가 DRAM 시스템 (100) 에 제공되고, 훈련 신호가 DRAM 시스템 (100) 의 포트들 (106(0)-106(X)) 중 선택된 하나의 포트로부터 SoC (102) 로 역판독될 때 역판독 (read back) (206) 이 발생한다. SoC (102) 의 훈련 모듈 (미도시) 은 그 후 포트들 (106(0) 내지 106(X)) 중 선택된 하나의 포트로부터 역판독된 훈련 신호를 평가한다. 그 평가에 기초하여, 훈련 신호는 (TRAINING INC/DEC (208) 에 의해 나타내진 바와 같이) 증분 (INC) 또는 감분 (DEC) 되거나, 또는 다르게는 수정될 수도 있고, 최적의 결과가 달성될 때까지 프로세스는 반복된다. 포트들 (106(0)-106(X)) 중 선택된 하나의 포트에 대한 하드웨어 파라미터는 그 후 최적의 결과에 기초하여 포트들 (106(0)-106(X)) 중 선택된 하나의 포트의 장래의 사용을 위해 설정될 수도 있다.
도 1 및 도 2 에 의해 예시된 양태들은 DRAM 시스템 (100) 의 효과적인 훈련을 제공할 수도 있지만, 훈련을 위한 프로세스는, 훈련 신호가 DRAM 시스템 (100) 에 의해 수신되고, 메모리 어레이 (114) 에 기록되고 그 후에 메모리 어레이 (114) 로부터 판독되고 그리고 DRAM 시스템 (100) 에 의해 송신되어야 하기 때문에, 느릴 수도 있다. 더욱이, 도 2 의 훈련 프로세스는 일반적으로 SoC (102) 의 스타트업 동안 일어나기 때문에, 프로세스는 상당한 부트 메모리를 요구할 수도 있고, 이는 소프트웨어로 하여금 추가적인 오버헤드를 발생시키게 할 수도 있다.
이것과 관련하여, 도 3 은 포트-투-포트 루프백 커넥션을 이용하여 메모리 훈련을 제공하여, 그 결과 훈련 동안 도 1 의 DRAM 시스템 (100) 의 메모리 어레이 (114) 에 액세스할 필요성을 회피하기 위한 본 명세서에서 개시된 일 예시적인 SoC (300) 및 DRAM 시스템 (302) 을 예시한다. 도 3 에서 알 수 있는 바와 같이, SoC (300) 및 DRAM 시스템 (302) 은 SoC (300) 의 포트들 (304(0)-304(X)) 및 DRAM 시스템 (302) 의 포트들 (306(0)-306(X)) 및 메모리 어레이 (308) 를 포함하여, 도 1 의 SoC (102) 및 DRAM 시스템 (100) 의 엘리먼트들에 대응하는 엘리먼트들을 제공한다. DRAM 시스템 (302) 은 또한, 루프백 커넥션들 (310(0)-310(1)) 을 제공하는데, 이 루프백 커넥션들은 인접한 포트들 (306(0)-306(1) 및 306(2)-306(X)) 을 각각 커플링한다. SoC (300) 는, 도 5 에 대하여 이하 더 상세히 논의되는 바와 같이, 일부 양태들에서 훈련 신호들 (314) 을 DRAM 시스템 (302) 으로 전송하고 DRAM 시스템 (302) 으로부터 수신된 훈련 신호들 (314) 을 평가할 수도 있는 폐루프 훈련 엔진 (312) 을 또한 포함한다.
일부 양태들에서, 도 3 의 SoC (300) 및 DRAM 시스템 (302) 을 이용하여 훈련하는 것은 DRAM 시스템 (302) 의 제 1 포트 (예를 들어, 포트 306(0)) 로 훈련 신호 (314) 를 전송하는 것을 포함한다. 훈련 신호 (314) 는 그 후 루프백 커넥션 (예를 들어, 루프백 커넥션 (310(0)) 을 통해 DRAM 시스템 (302) 의 제 2 포트 (예를 들어, 포트 (306(1)) 로 중계되고, SoC (300) 로 되전송된다. 제 2 포트 (306(1)) 로부터 수신된 훈련 신호 (314) 는 그 후 훈련 평가를 위해 제 1 포트 (306(0)) 로 전송된 훈련 신호 (314) 와 비교된다. 훈련 신호 (314) 는 메모리 어레이 (308) 에 기록될 필요가 없기 때문에, 도 3 의 포트-투-포트 훈련은 도 2 의 종래의 훈련 프로세스와는 대조적으로 "폐루프" 인 것으로 간주될 수도 있다. 일부 양태들에서, 루프백 커넥션들 (310(0)-310(1)) 은 양방향적일 수도 있다. 예를 들어, 제 1 훈련 페이즈에서, 훈련 신호 (314) 는 SoC (300) 로부터 포트 (306(0)) 로 전송되고 포트 (306(1)) 로부터 수신될 수도 있는 동시에, 제 2 훈련 페이즈에서, 훈련 신호 (314) 는 포트 (306(1)) 로 전송되고 포트 (306(0)) 로부터 수신될 수도 있다.
도 3 의 루프백 커넥션들 (310(0)-310(1)) 의 일 예시적인 구현이 도 4 에서 예시된다. 도 4 에서, SoC (402) 의 포트들 (400(0)-400(1)) 은 DRAM 시스템 (406) 의 포트들 (404(0)-404(1)) 에 연결된다. DRAM 시스템 (406) 의 포트들 (404(0) 및 404(1)) 의 각각은 멀티플렉서 (408(0) 및 408(1)) 를 각각 포함한다. SoC (402) 의 폐루프 훈련 엔진 (410) 은 DRAM 시스템 (406) 을 루프백 모드에 둘 수도 있고, 그 루프백 모드에서, 멀티플렉서들 (408(0)-408(1)) 은 DRAM 시스템 (406) 의 메모리 어레이 (412) 로부터 데이터를 취출하는 대신에 인접한 포트 (404(0), 404(1)) 로부터 데이터를 선택한다. 이 방식으로, SoC (402) 는 메모리 어레이 (412) 로부터의 데이터 대신에 루프백을 통한 훈련 신호 (미도시) 를 수신할 수도 있다. 일 예시적인 양태에서, 그리고 예시한 바와 같이, 멀티플렉서 (408(0)) 는 포트 (404(1)) 로부터 포트 (404(0)) 로의 루프백을 위해 값 "1" 로 설정될 수도 있고, 멀티플렉서 (408(1)) 는 포트 (404(0)) 로부터 포트 (404(1)) 로의 루프백을 위해 값 "1" 로 설정될 수도 있다. 다른 회로부가 본 개시의 범위로부터 벗어남 없이 루프백 커넥션을 유발하기 위해 일부 양태들에서 제공될 수도 있다는 것이 이해될 것이다.
도 5 는 포트-투-포트 루프백 커넥션을 이용하여 메모리 훈련을 제공하기 위한 도 3 의 SoC (300) 및 DRAM 시스템 (302) 의 예시적인 동작들을 예시하는 플로우차트이다. 도 5 를 설명하는데 있어서는, 도 3 의 엘리먼트들이 명료성을 위해 참조된다. 도 5 에서, 동작들은 SoC (300) 가 제 1 포트 (306(0)) 및 제 2 포트 (306(1)) 상의 메모리 동작들 (미도시) 를 옵션적으로 디스에이블하는 것으로 시작한다 (블록 500). SoC (300) 는 그 후 루프백 커넥션 (310(0)) 을 통해 통신하도록 DRAM 시스템 (302) 의 제 1 포트 (306(0)) 및 제 2 포트 (306(1)) 를 구성할 수도 있다 (블록 502). 이 방식으로, 제 1 및 제 2 포트들 (306(0) 및 (306(1)) 이 훈련을 위해 이용될 수도 있는 동시에, 포트들 (306(2)-306(X)) 은 SoC (300) 와 DRAM 시스템 (302) 사이의 미션-모드 통신을 위해 계속 이용될 수도 있다.
SoC (300) 는 그 후 폐루프 훈련 엔진 (312) 에 의해 제공된 훈련 신호 (314) 를 증분 또는 감분할 수도 있다 (블록 504). 일부 양태들에서, 훈련 신호 (314) 는 하나 이상의 증분적 훈련 신호 (314) 값들의 범위에 대하여 낮은 값 또는 높은 값을 초기에 표현할 수도 있다. 훈련 신호 (314) 는 비제한적 예들로서, 타이밍 훈련 파라미터 또는 전압 훈련 파라미터 중 하나 이상에 대응할 수도 있다. 제 1 포트 (306(0)) 는 그 후 SoC (300) (예를 들어, 폐루프 훈련 엔진 (312)) 로부터 훈련 신호 (314) 를 수신한다 (블록 506). 제 1 포트 (306(0)) 는 차례로 훈련 신호 (314) 를 루프백 커넥션 (310(0)) 을 통해 제 2 포트 (306(1)) 에 제공한다 (블록 508). 제 2 포트 (306(1)) 는 그 후 훈련 신호 (314) 를 SoC (300) 에 (예를 들어, 폐루프 훈련 엔진 (312) 에) 제공한다 (블록 510). 이 방식으로, 폐루프 훈련 엔진 (312) 은 일부 양태들에서는, DRAM 시스템 (302) 성능의 속성 (attribute) 들을 측정하는 동안에 루프백을 통해 훈련 신호 (314) 를 송신할 수도 있다. 일부 양태들에서, 훈련 신호 (314) 는 제 2 포트 (306(1)) 에 의해 수신되고, 루프백 커넥션 (310(0)) 을 통해 제 1 포트 (306(0)) 에 제공되고, 그리고 제 1 포트 (306(0)) 에 의해 SoC (300) 에 제공될 수도 있다. 이 교대의 루프백 경로가 상기 설명된 루프백 경로 대신에 또는 그에 더하여 채용될 수도 있다.
제 2 포트 (306(1)) 로부터 훈련 신호 (314) 를 수신 시에, 폐루프 훈련 엔진 (312) 은 훈련 신호 (314) 에 대응하는 하나 이상의 훈련 결과들을 결정할 수도 있다 (블록 512). 훈련 결과(들)는 비제한적 예들로서, 폐루프 훈련 엔진 (312) 에 의한 훈련 신호 (314) 의 송신 및 수신 동안 경과된 클록 사이클들의 수 및/또는 그 동안 검출된 에러들의 수를 포함할 수도 있다. SoC (300) 는 그 후 훈련 신호 (314) 가 추가로 증분 또는 감분되어야 하는지 여부를 결정할 수도 있다 (블록 514). 예를 들어, SoC (300) 는 일련의 가능한 훈련 신호들 (314) 이 반복적으로 테스팅되는 "파라미터 스윕 (parameter sweep)" 을 수행하는 과정에 있을 수도 있다. 따라서, SoC (300) 가 판정 블록 514 에서 훈련 신호 (314) 가 추가로 증분 또는 감분되어야 한다 (즉, 파라미터 스윕이 완료되지 않는다) 고 결정하면, 프로세싱은 블록 504 로 리턴하고, 프로세스는 훈련 신호 (314) 의 증분된 또는 감분된 값에 대해 반복한다. 이 방식으로, 훈련 신호 (314) 는 초기의 낮은 값으로부터 점점 더 높은 값들로 반복적으로 수정되거나, 또는 그 역도 또한 마찬가지이고, 훈련 결과가 각각의 훈련 신호 (314) 를 위해 레코딩될 수도 있다.
그러나, SoC (300) 가 판정 블록 514 에서 훈련 신호 (314) 가 추가로 증분 또는 감분되어서는 안된다고 결정하면, SoC (300) 는 하나 이상의 훈련 결과들에 기초하여 DRAM 시스템 (302) 에 대한 하드웨어 파라미터를 결정할 수도 있다 (블록 516). 일부 양태들에서, DRAM 시스템 (302) 에 대한 하드웨어 파라미터를 결정하는 것은 SoC (300) 가 타이밍 예외 또는 에러 메시지를 리턴하기 위한 일련의 하나 이상의 증분적 훈련 신호들 중에서 처음이었던 훈련 신호 (314) (즉, 처음-결함 (first-failing) 증분적 훈련 신호) 를 식별하는 것을 포함할 수도 있다. SoC (300) 는 또한, 타이밍 예외 또는 에러 메시지를 리턴하기 위한 일련의 하나 이상의 증분적 훈련 신호들 중에서 마지막이었던 훈련 신호 (314) (즉, 마지막-결함 (last-failing) 증분적 훈련 신호) 를 식별할 수도 있다. SoC (300) 는 일부 양태들에서, 그 후 처음-결함 증분적 훈련 신호와 마지막-결함 증분적 훈련 신호 사이의 중앙값 또는 중점에 기초하여 하드웨어 파라미터를 결정할 수도 있다.
도 5 에 대하여 상기 설명된 동작들은 포트들 (306(0)-306(X)) 의 전부 또는 서브세트에 대해 반복될 수도 있다는 것이 이해될 것이다. 하드웨어 파라미터 (즉, 비제한적 예들로서, 타이밍 파라미터 또는 전압 파라미터) 가 포트들 (306(0)-306(X)) 중 하나에 대해 결정된 후에, 상기 설명된 동작들이 상이한 하드웨어 파라미터에 대하여 포트들 (306(0)-306(X)) 중 동일한 포트에 대해 반복될 수도 있다는 것이 추가로 이해될 것이다.
본 명세서에서 개시된 양태들에 따른 포트-투-포트 루프백들을 이용하여 DRAM 시스템들의 메모리 훈련을 제공하는 것은 임의의 프로세서-기반 디바이스에 제공되거나 또는 그에 통합될 수도 있다. 예들은, 제한 없이, 셋 톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 로케이션 데이터 유닛, 모바일 로케이션 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인 휴대 정보 단말기 (PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크 (DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어를 포함한다.
이것과 관련하여, 도 6 은 도 3 에서의 양태들에 따른 SoC (300) 및/또는 DRAM 시스템 (302) 을 제공할 수도 있는 프로세서-기반 시스템 (600) 의 일 예를 예시한다. 일부 양태들에서, 프로세서-기반 시스템 (600) 은 도 3 의 SoC (300) 를 포함할 수도 있다. 도 6 의 예에서, 프로세서-기반 시스템 (600) 은 하나 이상의 중앙 프로세싱 유닛들 (CPU들) (602) 을 포함하고, 그 각각은 하나 이상의 프로세서들 (604) 을 포함한다. CPU(들) (602) 는 일시적으로 저장된 데이터에 대한 고속 액세스를 위해 프로세서(들)에 커플링된 캐시 메모리 (606) 를 가질 수도 있다. CPU(들) (602) 는 시스템 버스 (608) 에 커플링되고 프로세서-기반 시스템 (600) 에 포함된 디바이스들을 인터커플링할 수 있다. 잘 알려진 바와 같이, CPU(들) (602) 는 시스템 버스 (608) 를 통해 어드레스, 제어, 및 데이터 정보를 교환하는 것에 의해 이들 다른 디바이스들과 통신한다.
다른 디바이스들이 시스템 버스 (608) 에 연결될 수 있다. 도 6 에서 예시한 바와 같이, 이들 디바이스들은 예들로서, 메모리 시스템 (610), 하나 이상의 입력 디바이스들 (612), 하나 이상의 출력 디바이스들 (614), 하나 이상의 네트워크 인터페이스 디바이스들 (616), 및 하나 이상의 디스플레이 제어기들 (618) 을 포함할 수 있다. 입력 디바이스(들) (612) 는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하지만 이들에 제한되지는 않는, 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들) (614) 는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하지만 이들에 제한되지는 않는, 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들) (616) 는 네트워크 (620) 로의 및 로부터의 데이터의 교환을 허용하도록 구성된 임의의 디바이스일 수 있다. 네트워크 (620) 는 유선 또는 무선 네트워크, 사설 또는 공중 네트워크, 로컬 영역 네트워크 (LAN), WLAN (wide local area network), 또는 인터넷을 포함하지만 이들에 제한되지는 않는 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들) (616) 는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 메모리 시스템 (610) 은 메모리 제어기 (622) 및 하나 이상의 메모리 유닛들 (624(0)-624(N)) 을 포함할 수 있다. 일부 양태들에서, 메모리 시스템 (610) 은 도 3 의 예시적인 양태들에 따른 DRAM 시스템 (302) 을 포함할 수도 있다.
CPU(들) (602) 는 하나 이상의 디스플레이들 (626) 로 전송되는 정보를 제어하기 위해 시스템 버스 (608) 를 통해 디스플레이 제어기(들) (618) 에 액세스하도록 또한 구성될 수도 있다. 디스플레이 제어기(들) (618) 는 하나 이상의 비디오 프로세서들 (628) 을 통해 디스플레이될 정보를 디스플레이(들) (626) 로 전송하고, 하나 이상의 비디오 프로세서들은 디스플레이(들) (626) 에 적합한 포맷으로 디스플레이될 정보를 프로세싱한다. 디스플레이(들) (626) 는 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이 등을 포함하지만 이들에 제한되지는 않는 임의의 타입의 디스플레이를 포함할 수 있다.
당업자들은 본 명세서에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘들이 전자 하드웨어, 메모리에 또는 또 다른 컴퓨터 판독가능 매체에 저장되고 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 양자의 조합들로서 구현될 수도 있다는 것을 또한 인식할 것이다. 본 명세서에서 설명된 디바이스들은 예들로서, 임의의 회로, 하드웨어 컴포넌트, 집적 회로 (IC), 또는 IC 칩에서 채용될 수도 있다. 본 명세서에서 개시된 메모리는 임의의 타입 및 사이즈의 메모리일 수도 있고 원하는 임의의 타입의 정보를 저장하도록 구성될 수도 있다. 이 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능성의 관점에서 일반적으로 상기 설명되었다. 이러한 기능성이 구현되는 방법은 전체 시스템에 부과된 특정한 애플리케이션, 설계 선택들, 및/또는 설계 제약들에 의존한다. 당업자들은 설명된 기능들을 각각의 특정한 애플리케이션에 대해 다양한 방식들로 구현할 수도 있지만, 이러한 구현 판정들이 본 개시의 범위로부터 벗어남을 야기하는 것으로서 해석되지 않아야 한다.
본 명세서에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 본 명세서에서 설명된 기능들을 수행하도록 설계된 프로세서, 디지털 신호 프로세서 (DSP), 애플리케이션 특정 집적 회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 그 임의의 조합으로 구현 또는 수행될 수도 있다. 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다.
본 명세서에서 개시된 양태들은 하드웨어에서 그리고 하드웨어에 저장되는 명령들에서 구현될 수도 있고, 예를 들어, 랜덤 액세스 메모리 (RAM), 플래시 메모리, 판독 전용 메모리 (ROM), 전기적으로 프로그램가능한 ROM (EPROM), 전기적으로 소거가능한 프로그램가능한 ROM (EEPROM), 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 컴퓨터 판독가능 매체에 상주할 수도 있다. 일 예시적인 저장 매체는 프로세서에 커플링되어 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 ASIC 에 상주할 수도 있다. ASIC 은 원격국에 상주할 수도 있다. 대안적으로, 프로세서 및 저장 매체는 원격국, 기지국, 또는 서버에 이산 컴포넌트들로서 상주할 수도 있다.
또한, 본 명세서의 예시적인 양태들 중 임의의 양태에서 설명된 동작 단계들이 예들 및 논의를 제공하도록 설명된다는 것이 주목된다. 설명된 동작들은 예시된 시퀀스들과는 다른 다수의 상이한 시퀀스들에서 수행될 수도 있다. 더욱이, 단일의 동작 단계에서 설명된 동작들은 실제로는 다수의 상이한 단계들에서 수행될 수도 있다. 추가적으로, 예시적인 양태들에서 논의된 하나 이상의 동작 단계들은 조합될 수도 있다. 플로우차트 다이어그램들에서 예시된 동작 단계들에는, 당업자에게 쉽게 명백할 바와 같이 다수의 상이한 수정들이 행해질 수도 있다는 것이 이해될 것이다. 당업자들은 또한, 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수도 있다는 것을 이해할 것이다. 예를 들어, 상기 설명 전반에 걸쳐 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학장들 또는 광학 입자들, 또는 그 임의의 조합에 의해 표현될 수도 있다.
본 개시의 이전의 설명은 임의의 당업자가 본 개시를 제조 또는 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시에 대한 다양한 수정들은 당업자들에게 쉽게 명백할 것이며, 본 명세서에서 정의된 일반적인 원리들은 본 개시의 사상 또는 범위로부터 벗어남 없이 다른 변화들에 적용될 수도 있다. 따라서, 본 개시는 본 명세서에서 설명된 예들 및 설계들에 제한되도록 의도되지 않고, 본 명세서에서 개시된 원리들 및 신규한 특징들에 부합하는 최광의 범위를 부여받게 될 것이다.

Claims (13)

  1. 동적 랜덤 액세스 메모리 (DRAM) 시스템 (302) 에 대한 메모리 훈련 (memory training) 을 제공하기 위한 방법으로서,
    상기 DRAM 시스템의 복수의 포트들 (306) 중의 상기 DRAM 시스템의 제 1 포트 (306(0)) 및 상기 DRAM 시스템의 제 2 포트 (306(1)) 상의 메모리 동작들을 디스에이블하는 단계 (500) 로서, 메모리 동작들은 상기 DRAM 시스템의 다른 포트들 상에 유지되는 동시에 메모리 동작들은 상기 DRAM 시스템의 상기 제 1 포트 및 상기 제 2 포트에 대해서 디스에이블되고, 상기 복수의 포트들의 각각의 포트는 상기 DRAM 시스템의 메모리 어레이 (308) 에 통신가능하게 커플링되고 상기 메모리 어레이에 기록될 데이터 및 상기 메모리 어레이로부터 판독된 데이터를 전송하도록 구성되는, 디스에이블하는 단계 (500);
    루프백 커넥션 (310(0)) 을 통해 통신하도록 상기 DRAM 시스템의 상기 제 1 포트 및 상기 DRAM 시스템의 상기 제 2 포트를 구성하는 단계 (502);
    상기 DRAM 시스템의 상기 제 1 포트에 의해, 시스템-온-칩 (System-on-Chip; SoC) (300) 으로부터 신호 (314) 를 수신하는 단계 (506);
    상기 DRAM 시스템의 상기 제 1 포트에 의해, 상기 루프백 커넥션을 통해 상기 DRAM 시스템의 상기 제 2 포트에 상기 신호를 제공하는 단계 (508); 및
    상기 DRAM 시스템의 상기 제 2 포트에 의해, 상기 SoC 에 상기 신호를 제공하는 단계 (510)
    를 포함하는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 신호를 수신하는 단계 (506) 는 상기 SoC 의 폐루프 엔진으로부터 상기 신호 (314) 를 수신하는 단계를 포함하고; 그리고
    상기 SoC 에 상기 신호를 제공하는 단계 (508) 는 상기 SoC 의 상기 폐루프 엔진에 상기 신호를 제공하는 단계를 포함하는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 신호 (314) 는 상기 폐루프 엔진에 의해 제공되는 하나 이상의 증분적 신호들 중 하나이고;
    상기 DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 방법은,
    상기 하나 이상의 증분적 신호들에 대응하는 하나 이상의 결과들을 결정하는 단계 (512); 및
    상기 하나 이상의 결과들에 기초하여 상기 DRAM 시스템에 대한 하드웨어 파라미터를 결정하는 단계 (516)
    를 추가로 포함하는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 방법.
  4. 제 3 항에 있어서,
    상기 하드웨어 파라미터를 결정하는 단계 (516) 는 상기 하나 이상의 증분적 신호들 중의 처음-결함 (first-failing) 증분적 신호와 상기 하나 이상의 증분적 신호들 중의 마지막-결함 (last-failing) 증분적 신호 사이의 중앙값을 결정하는 단계를 포함하고/포함하거나,
    상기 하나 이상의 증분적 신호들에 대응하는 상기 하나 이상의 결과들을 결정하는 단계 (512) 는 파라미터 스윕을 수행하는 것을 포함하는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 방법.
  5. 동적 랜덤 액세스 메모리 (DRAM) 시스템 (302) 에 대한 메모리 훈련 (memory training) 을 제공하기 위한 시스템 (600) 으로서,
    상기 DRAM 시스템 (302) 에 통신가능하게 커플링된 시스템-온-칩 (System-on-Chip; SoC)(300); 및
    메모리 어레이 (308) 및 루프백 커넥션 (310(0)) 을 통해 통신가능하도록 커플링된 제 1 포트 (306(0)) 및 제 2 포트 (306(1)) 를 포함하는 복수의 포트들 (306) 을 포함하는 상기 DRAM 시스템으로서, 상기 복수의 포트들의 각각의 포트는 상기 메모리 어레이에 통신가능하게 커플링되고 상기 메모리 어레이에 기록될 데이터 및 상기 메모리 어레이로부터 판독된 데이터를 전송하도록 구성되는, 상기 DRAM 시스템
    을 포함하고;
    상기 DRAM 시스템은,
    상기 DRAM 시스템 (302) 의 상기 제 1 포트에 의해, 상기 SoC (300) 로부터 신호 (314) 를 수신하고;
    상기 DRAM 시스템의 상기 제 1 포트 (306(0)) 에 의해, 상기 루프백 커넥션 (310(0))을 통해 상기 DRAM 시스템의 상기 제 2 포트 (306(1)) 에 상기 신호를 제공하고;
    상기 DRAM 시스템의 상기 제 2 포트에 의해, 상기 SoC 에 상기 신호를 제공하도록 구성되고,
    상기 SoC 는,
    상기 제 1 포트 및 상기 제 2 포트 상의 메모리 동작들을 디스에이블하고,
    상기 루프백 커넥션을 통해 통신하도록 상기 제 1 포트 및 상기 제 2 포트를 구성하도록 구성되고,
    메모리 동작들은 DRAM 시스템의 다른 포트들 상에 유지되는 동시에 메모리 동작들은 상기 DRAM 시스템의 상기 제 1 포트 및 상기 제 2 포트들에 대해서 디스에이블되는,DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  6. 제 5 항에 있어서,
    상기 SoC (300) 는 폐루프 엔진 (312) 을 포함하고,
    상기 DRAM 시스템 (302) 은 추가로,
    상기 SoC 의 상기 폐루프 엔진으로부터 상기 신호 (314) 를 수신하고,
    상기 SoC 의 상기 폐루프 엔진에 상기 신호 (314) 를 제공하도록 구성되는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  7. 제 6 항에 있어서,
    상기 폐루프 엔진 (312) 은,
    상기 신호를 포함하는 하나 이상의 증분적 신호들을 제공하고,
    상기 하나 이상의 증분적 신호들에 대응하는 하나 이상의 결과들을 결정하고,
    상기 하나 이상의 결과들에 기초하여 상기 DRAM 시스템에 대한 하드웨어 파라미터를 결정하도록 구성되는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  8. 제 7 항에 있어서,
    상기 폐루프 엔진 (312) 은,
    상기 하나 이상의 증분적 신호들 중의 처음-결함 (first-failing) 증분적 신호와 상기 하나 이상의 증분적 신호들 중의 마지막-결함 (last-failing) 증분적 신호 사이의 중앙값을 결정하도록 구성되는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  9. 제 7 항에 있어서,
    상기 폐루프 엔진 (312) 은 파라미터 스윕을 수행하는 것에 의해, 상기 하나 이상의 증분적 신호들에 대응하는 상기 하나 이상의 결과들을 결정하도록 구성되는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  10. 제 5 항에 있어서,
    상기 DRAM 시스템 (302) 은 타이밍 파라미터 및 전압 파라미터 중 하나 이상을 포함하는 상기 신호를 수신하도록 구성되는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  11. 제 5 항에 있어서,
    상기 제 1 포트 및 상기 제 2 포트는 상기 DRAM 시스템 내에서 인접한, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  12. 제 5 항에 있어서,
    상기 루프백 커넥션 (310(0)) 은 양방향적인, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
  13. 제 5 항에 있어서,
    상기 제 1 포트 및 상기 제 2 포트의 각각은 상기 루프백 커넥션을 선택하도록 구성된 멀티플렉서 (MUX) (408) 를 포함하는, DRAM 시스템에 대한 메모리 훈련을 제공하기 위한 시스템 (600).
KR1020217014511A 2014-01-24 2015-01-06 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들 KR102354764B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201461930980P 2014-01-24 2014-01-24
US61/930,980 2014-01-24
US14/589,145 US9767868B2 (en) 2014-01-24 2015-01-05 Providing memory training of dynamic random access memory (DRAM) systems using port-to-port loopbacks, and related methods, systems, and apparatuses
US14/589,145 2015-01-05
PCT/US2015/010218 WO2015112326A1 (en) 2014-01-24 2015-01-06 Providing memory training of dynamic random access memory (dram) systems using port-to-port loopbacks, and related methods, systems, and apparatuses
KR1020167021605A KR20160113150A (ko) 2014-01-24 2015-01-06 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021605A Division KR20160113150A (ko) 2014-01-24 2015-01-06 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들

Publications (2)

Publication Number Publication Date
KR20210059017A KR20210059017A (ko) 2021-05-24
KR102354764B1 true KR102354764B1 (ko) 2022-01-21

Family

ID=53679614

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217014511A KR102354764B1 (ko) 2014-01-24 2015-01-06 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들
KR1020167021605A KR20160113150A (ko) 2014-01-24 2015-01-06 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167021605A KR20160113150A (ko) 2014-01-24 2015-01-06 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들

Country Status (8)

Country Link
US (2) US9767868B2 (ko)
EP (2) EP3097565A1 (ko)
JP (1) JP6517221B2 (ko)
KR (2) KR102354764B1 (ko)
CN (2) CN109872762B (ko)
AR (1) AR102802A1 (ko)
TW (1) TWI719933B (ko)
WO (1) WO2015112326A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767868B2 (en) 2014-01-24 2017-09-19 Qualcomm Incorporated Providing memory training of dynamic random access memory (DRAM) systems using port-to-port loopbacks, and related methods, systems, and apparatuses
KR20180046428A (ko) 2016-10-27 2018-05-09 삼성전자주식회사 메모리 장치 및 그것의 트레이닝 방법
CN107861900B (zh) * 2017-10-24 2019-12-31 华大半导体有限公司 信号选择模块和信号选择系统
KR20190096753A (ko) 2018-02-09 2019-08-20 삼성전자주식회사 클럭 트레이닝을 수행하는 시스템 온 칩 및 이를 포함하는 컴퓨팅 시스템
JP7242878B2 (ja) 2019-02-19 2023-03-20 シーメンス インダストリー ソフトウェア インコーポレイテッド 無線機器検査装置
CN110941395B (zh) * 2019-11-15 2023-06-16 深圳宏芯宇电子股份有限公司 动态随机存取存储器、内存管理方法、系统及存储介质
KR20210136203A (ko) 2020-05-06 2021-11-17 삼성전자주식회사 저장 장치 및 그것의 리트레이닝 방법
CN116795430A (zh) * 2023-06-27 2023-09-22 上海奎芯集成电路设计有限公司 存储器训练装置及存储器训练方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080205170A1 (en) * 2007-02-28 2008-08-28 Fujitsu Limited Ddr-sdram interface circuitry, and method and system for testing the interface circuitry
JP2009289374A (ja) 2008-05-30 2009-12-10 Elpida Memory Inc 半導体記憶装置、及び該半導体記憶装置のテスト方法
JP2010140490A (ja) * 2008-12-15 2010-06-24 Samsung Electronics Co Ltd メモリ装置と通信する複数の通信チャンネル間のチャンネルスキュー補償回路とその方法及びこれを含むメモリコントローラ
JP2012194686A (ja) * 2011-03-15 2012-10-11 Elpida Memory Inc システム、システムにおける調整装置、およびシステムの制御方法
JP2013162475A (ja) 2012-02-08 2013-08-19 Yokogawa Electric Corp ループバック回路

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711092B1 (en) * 2002-04-30 2004-03-23 Virage Logic Corp. Semiconductor memory with multiple timing loops
US7234028B2 (en) * 2002-12-31 2007-06-19 Intel Corporation Power/performance optimized cache using memory write prevention through write snarfing
US6845033B2 (en) * 2003-03-05 2005-01-18 International Business Machines Corporation Structure and system-on-chip integration of a two-transistor and two-capacitor memory cell for trench technology
US7184916B2 (en) * 2003-05-20 2007-02-27 Cray Inc. Apparatus and method for testing memory cards
US7337346B2 (en) 2004-03-04 2008-02-26 Ati Technologies Inc. Method and apparatus for fine tuning a memory interface
US6961862B2 (en) 2004-03-17 2005-11-01 Rambus, Inc. Drift tracking feedback for communication channels
US7702874B2 (en) * 2005-06-22 2010-04-20 Intel Corporation Memory device identification
US7603246B2 (en) * 2006-03-31 2009-10-13 Nvidia Corporation Data interface calibration
KR100879560B1 (ko) * 2006-12-04 2009-01-22 삼성전자주식회사 에러 검출 코드를 이용한 데이터 트레이닝 방법 및 이에적합한 시스템
US7924637B2 (en) * 2008-03-31 2011-04-12 Advanced Micro Devices, Inc. Method for training dynamic random access memory (DRAM) controller timing delays
US8131915B1 (en) * 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US9111645B2 (en) * 2008-08-08 2015-08-18 Rambus Inc. Request-command encoding for reduced-data-rate testing
JP2010079520A (ja) * 2008-09-25 2010-04-08 Ricoh Co Ltd メモリモジュールのコントローラ及びメモリモジュールのコントローラの制御方法
KR101532041B1 (ko) * 2008-11-05 2015-06-29 삼성전자주식회사 모바일 단말기와 이를 이용한 오디오 재생 방법
US20110238870A1 (en) 2008-12-03 2011-09-29 Rambus Inc. Memory System With Command Filtering
WO2010078383A1 (en) * 2008-12-31 2010-07-08 Rambus Inc. Active calibration for high-speed memory devices
US8949520B2 (en) 2009-01-22 2015-02-03 Rambus Inc. Maintenance operations in a DRAM
US8683164B2 (en) * 2009-02-04 2014-03-25 Micron Technology, Inc. Stacked-die memory systems and methods for training stacked-die memory systems
TWI425508B (zh) * 2009-04-23 2014-02-01 Orise Technology Co Ltd 具隱藏更新及雙埠能力之sram相容嵌入式dram裝置
CN101877242B (zh) * 2009-04-30 2013-03-13 旭曜科技股份有限公司 具隐藏更新及双端口能力的sram兼容嵌入式dram装置
US8386867B2 (en) * 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure
US8582382B2 (en) * 2010-03-23 2013-11-12 Mosaid Technologies Incorporated Memory system having a plurality of serially connected devices
WO2013060361A1 (en) 2011-10-25 2013-05-02 Advantest (Singapore) Pte. Ltd. Automatic test equipment
US9330031B2 (en) * 2011-12-09 2016-05-03 Nvidia Corporation System and method for calibration of serial links using a serial-to-parallel loopback
US20130201316A1 (en) * 2012-01-09 2013-08-08 May Patents Ltd. System and method for server based control
US9256531B2 (en) * 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US8924786B2 (en) 2012-06-28 2014-12-30 Intel Corporation No-touch stress testing of memory I/O interfaces
US8904248B2 (en) 2012-07-10 2014-12-02 Apple Inc. Noise rejection for built-in self-test with loopback
US9257200B2 (en) * 2012-07-27 2016-02-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Bit error testing and training in double data rate (DDR) memory system
US9767868B2 (en) 2014-01-24 2017-09-19 Qualcomm Incorporated Providing memory training of dynamic random access memory (DRAM) systems using port-to-port loopbacks, and related methods, systems, and apparatuses
US10275386B2 (en) * 2014-06-27 2019-04-30 Advanced Micro Devices, Inc. Memory physical layer interface logic for generating dynamic random access memory (DRAM) commands with programmable delays

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080205170A1 (en) * 2007-02-28 2008-08-28 Fujitsu Limited Ddr-sdram interface circuitry, and method and system for testing the interface circuitry
JP2009289374A (ja) 2008-05-30 2009-12-10 Elpida Memory Inc 半導体記憶装置、及び該半導体記憶装置のテスト方法
JP2010140490A (ja) * 2008-12-15 2010-06-24 Samsung Electronics Co Ltd メモリ装置と通信する複数の通信チャンネル間のチャンネルスキュー補償回路とその方法及びこれを含むメモリコントローラ
JP2012194686A (ja) * 2011-03-15 2012-10-11 Elpida Memory Inc システム、システムにおける調整装置、およびシステムの制御方法
JP2013162475A (ja) 2012-02-08 2013-08-19 Yokogawa Electric Corp ループバック回路

Also Published As

Publication number Publication date
US9767868B2 (en) 2017-09-19
JP6517221B2 (ja) 2019-05-22
KR20160113150A (ko) 2016-09-28
CN109872762A (zh) 2019-06-11
EP3097565A1 (en) 2016-11-30
TW201539441A (zh) 2015-10-16
US9947377B2 (en) 2018-04-17
JP2017504905A (ja) 2017-02-09
EP3514796A3 (en) 2019-12-04
EP3514796A2 (en) 2019-07-24
CN105934796B (zh) 2019-04-19
TWI719933B (zh) 2021-03-01
US20170278554A1 (en) 2017-09-28
US20150213849A1 (en) 2015-07-30
KR20210059017A (ko) 2021-05-24
WO2015112326A1 (en) 2015-07-30
AR102802A1 (es) 2017-03-29
CN105934796A (zh) 2016-09-07
EP3514796B1 (en) 2021-04-21
CN109872762B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
KR102354764B1 (ko) 포트-투-포트 루프백들을 이용한 동적 랜덤 액세스 메모리 (dram) 시스템들의 메모리 훈련의 제공, 및 관련 방법들, 시스템들, 및 장치들
EP2556383B1 (en) Circuits, systems, and methods for adjusting clock signals based on measured performance characteristics
KR102520152B1 (ko) 프로세서-기반 시스템들에서의 확장 dram(dynamic random access memory) 버스트 길이들의 제공
US20150323959A1 (en) Clock skew management systems, methods, and related components
KR102293806B1 (ko) 메모리 판독 액세스들 동안 전력 글리치들을 감소시키기 위한 정적 랜덤 액세스 메모리(sram) 글로벌 비트라인 회로들 및 관련 방법들 및 시스템들
CN105229746A (zh) 在进行数据存取之前将数据从存储器中的有缺陷数据项重导向到冗余数据项,及相关系统及方法
US9007817B2 (en) Pre-charging bitlines in a static random access memory (SRAM) prior to data access for reducing leakage power, and related systems and methods
US9576620B2 (en) Semiconductor apparatus and operating method thereof
US10156887B2 (en) Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
WO2016148901A1 (en) Static random access memory (sram) arrays having substantially constant operational performance across multiple modes of operation

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant