KR102024682B1 - 부정합형 신호 수신기에 대한 주기적 트레이닝 - Google Patents

부정합형 신호 수신기에 대한 주기적 트레이닝 Download PDF

Info

Publication number
KR102024682B1
KR102024682B1 KR1020167002095A KR20167002095A KR102024682B1 KR 102024682 B1 KR102024682 B1 KR 102024682B1 KR 1020167002095 A KR1020167002095 A KR 1020167002095A KR 20167002095 A KR20167002095 A KR 20167002095A KR 102024682 B1 KR102024682 B1 KR 102024682B1
Authority
KR
South Korea
Prior art keywords
training
memory device
controller
training signal
errors
Prior art date
Application number
KR1020167002095A
Other languages
English (en)
Other versions
KR20160023881A (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 KR20160023881A publication Critical patent/KR20160023881A/ko
Application granted granted Critical
Publication of KR102024682B1 publication Critical patent/KR102024682B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • 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
    • 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
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

I/O 파라미터들은 수신된 트레이닝 신호에서 검출되는 에러들의 수에 기초하여 조절된다. 제어기 디바이스는 메모리 디바이스가 트레이닝 모드에 있는 동안 트레이닝 신호를 보낸다. 메모리 디바이스는 트레이닝 신호를 샘플링하고, 시스템은 에러들의 검출된 수에 기초하여 적어도 하나의 I/O 파라미터에 대한 조절을 야기한다. 제어기 또는 메모리 디바이스는, 시스템의 구성에 의존하여, 에러 검출을 수행할 수 있다. 제어기의 I/O 파라미터 또는 메모리 디바이스의 I/O 파라미터는, 시스템의 구성에 의존하여, 조절될 수 있다.

Description

부정합형 신호 수신기에 대한 주기적 트레이닝{PERIODIC TRAINING FOR UNMATCHED SIGNAL RECEIVER}
본 발명의 실시예들은 일반적으로 메모리 디바이스 기입들에 관련되며, 보다 구체적으로는 부정합형 아키텍처에서 기입들에 대한 타이밍 제어를 위한 주기적 트레이닝에 관한 것이다.
<저작권 통지/허가>
본 특허 문헌의 개시내용의 부분들은 저작권 보호의 대상인 내용을 포함할 수 있다. 저작권 소유자는 누구든지 이 특허 문헌 또는 특허 개시내용을 특허 및 상표청 파일 또는 기록들에 나타나 있는 대로 복사하는 것에는 이의가 없지만, 다른 경우라면 무엇이든 모든 저작권 권리를 보유한다. 저작권 통지는 아래에 설명되는 바와 같은 모든 데이터와 첨부 도면들에서의 모든 데이터는 물론, 아래에 설명되는 임의의 소프트웨어에 적용된다(Copyright ⓒ 2013, Intel Corporation, All Rights Reserved).
호스트 플랫폼 상의 컴포넌트들 사이의 통신은 전자 디바이스의 동작에 필요하다. 그러나, 온도 변화 및 전압 변동과 같은, 다양한 조건들이 컴포넌트들 사이의 고속 통신의 타이밍에 영향을 준다. 일반적으로, 상이한 컴포넌트들간 통신은, I/O(Input/Output)라 할 수 있고, (예를 들어, 메모리 서브시스템의 컴포넌트들 사이의) 표준들에 의해 흔히 지배를 받는다. I/O 표준들은 I/O 전력, I/O 레이턴시, 및 I/O 주파수에 대한 성능 특성들에 관련될 수 있다. I/O 성능 설정들의 표준들 또는 공칭 값들은 호환성 및 상호운영성을 위해 상이한 시스템들 전반적으로 달성될 수 있는 값들로 설정된다. 통상적으로, 전력과 레이턴시 사이에는 트레이드오프들이 존재한다. 따라서, 엄격한 타이밍 파라미터들은, 전력을 감소시킬 수 있지만, I/O 레이턴시로 하여금 온도, 전압 및 프로세스 변동에 의해 더 부정적으로 영향을 받게 한다.
메모리 서브시스템들에서는, 정합형 아키텍처를 사용하는 것이 보통이고, 여기서 데이터 경로(DQ) 및 데이터 스트로브 경로(DQS) 양자 모두는 정합형 연속 시간 증폭기들에 의해 증폭된다. 도 1a는 알려진 정합형 수신기 회로의 블록도이다. 정합형 아키텍처(102)에서, 데이터 경로의 증폭기(122)는 스트로브 경로의 증폭기(124) 및 클록 분배 네트워크(130) 양자 모두에 정합된다. 데이터 경로는 내부 Vref 신호(110)와 증폭기(122)에 입력되는 데이터 입력 DQ[7:0]를 포함한다. 데이터 스트로브 경로는 p-타입 디바이스들에 대한 스트로브(DQS_P) 및 n-타입 디바이스들에 대한 스트로브(DQS_N)에 대한 입력들을 포함한다. 증폭기(124)는 클록 분배 네트워크(130)에 피딩되고(feed into), 이는 다수의 수신 디바이스들에게 동시에 클록 신호를 분배하는 네트워크를 제공한다. 구체적으로, 샘플링 회로(140)의 엘리먼트들(142 및 144)로 가는 신호가 도시된다.
부정합형 아키텍처를 사용하는 것은 정합형 아키텍처를 사용하는 것에 비해 수신기의 전력 및 성능을 향상시킬 수 있다. 도 1b는 알려진 부정합형 수신기 회로의 블록도이다. 부정합형 아키텍처(104)에서, 데이터(DQ) 전압은 패드에서 직접 샘플링된다. 샘플링된 후, 시스템은 정합형 아키텍처(102)에 필요한 엄격한 타이밍 제약들 없이 신호를 증폭할 수 있다. 즉, 증폭은 전체 UI(Unit Interval) 또는 가능하게는 그 이상에 대해 발생할 수 있다. 따라서, 부정합형 수신기의 이득/대역폭 요건들은 정합형 수신기의 것보다 더 낮다. 도시된 바와 같이, DQ[7:0] 및 내부 Vref(110)은 샘플링 회로(160)의 엘리먼트들(162 및 164)에 직접 공급된다. DQS 경로는 연속적 시간 증폭기, 증폭기(126)를 여전히 요구하지만, DQS 상의 스윙은 통상적으로 DQ 상의 스윙보다 더 크고, 이는 더 낮은 이득 증폭기(126)가, 데이터 경로에서 고 이득 증폭기에 정합될 필요가 없는 것처럼, 사용될 수 있다는 것을 의미한다.
부정합형 아키텍처(104)는 정합형 아키텍처(102)에 대해 특정한 수신기 대역폭 및 전압 감도들을 향상시키지만, 타이밍 제어를 저하시킨다. DQS 및 DQ 경로들 상의 지연은 부정합형 아키텍처(104)에서 자체 보상되지 않는다. 따라서, TDQS에서의 임의의 변화, 또는 클록 분배 네트워크(130)를 통해 스트로브 신호를 전파하는 시간은, 수신기 타이밍 예산을 직접적으로 저하시킬 것이다. 기존 트레이닝은 일단 타이밍을 보정할 수 있지만, 트레이닝된 위치로부터의 임의의 드리프트는 타이밍 마진에 직접적으로 영향을 줄 것이다. 드리프트는 전압, 온도 및/또는 에이징에 전반적으로 발생할 수 있고, 이는 타이밍 마진들을 저하시킬 것이고 가능하게는 링크 장애들을 생성할 것이다.
트레이닝 데이터가 (예를 들어, 메모리 제어기로부터 DRAM(Dynamic Random Access Memory)으로) 링크에 전반적으로 기입되고 에러들에 대해 점검되는 주기적 트레이닝이 알려져 있다. 그러나, 주기적 트레이닝은 버스 대역폭에 대한 복잡도 및 부하에 시달린다. 추가적으로, 트레이닝은 많은 수의 샘플들이 평균화되면 가장 효과적일 것이지만, 더 많은 샘플들을 직접적으로 평균화하는 것은 성능 요건들 및 피드백 루프 대역폭과 충돌한다. 더욱이, 알려진 주기적 트레이닝은 기존 트레이닝 방법들의 피드백 루프의 반복적 본성 때문에 본래 느리다.
이하의 설명은 본 발명의 실시예들의 구현들의 예로서 주어지는 예시들을 갖는 도면들의 논의를 포함한다. 도면들은 제한으로서가 아니라 예로서 이해되어야 한다. 본 명세서에 사용되는 바와 같이, 하나 이상의 "실시예들"에 대한 참조들은 본 발명의 적어도 하나의 구현에 포함되는 특정 기능, 구조, 및/또는 특성을 설명하는 것으로서 이해되어야 한다. 따라서, 본 명세서에 나타나는 "일 실시예에서" 또는 "대안적인 일 실시예에서"와 같은 어구들은 본 발명의 다양한 실시예들 및 구현들을 설명하는 것이며, 반드시 모두가 동일한 실시예를 참조하는 것은 아니다. 그러나, 이들이 반드시 상호 배타적인 것도 아니다.
도 1a는 알려진 정합형 수신기 회로의 블록도이다.
도 1b는 알려진 부정합형 수신기 회로의 블록도이다.
도 2는 트레이닝 신호에 대한 에러 점검을 수행하는 부정합형 수신기 회로를 갖는 시스템의 일 실시예의 블록도이다.
도 3은 부정합형 수신기 회로 및 수신된 트레이닝 신호에서의 에러들을 카운트하는 에러 점검 회로를 갖는 시스템의 일 실시예의 블록도이다.
도 4는 송신기로부터 수신기에 보내진 트레이닝 신호에서의 에러들의 검출에 기초하여 I/O 동작을 조절하는 시스템의 일 실시예의 블록도이다.
도 5는 수신된 트레이닝 신호에서의 에러들을 검출하기 위한 동작 타이밍의 일 실시예의 타이밍도이다.
도 6a는, 수신 디바이스에 의해 에러 점검이 수행되는, 수신된 트레이닝 신호에서의 에러들을 점검하는 프로세스의 일 실시예의 흐름도이다.
도 6b는, 송신 디바이스에 의해 에러 점검이 수행되는, 수신된 트레이닝 신호에서의 에러들을 점검하는 프로세스의 실시예의 흐름도이다.
도 7은 수신 신호 에러 점검이 구현될 수 있는 컴퓨팅 시스템의 일 실시예의 블록도이다.
도 8은 수신 신호 에러 점검이 구현될 수 있는 모바일 디바이스의 일 실시예의 블록도이다.
이하에 설명되는 실시예들의 일부 또는 전부를 도시할 수 있는, 도면들의 설명을 포함할 뿐만 아니라, 본 명세서에 제시되는 진보적 개념들의 다른 잠재적인 실시예들 또는 구현들을 논의하는, 특정한 상세사항들 및 구현들의 설명이 뒤따른다.
본 명세서에 설명되는 바와 같이, 메모리 서브시스템에서의 주기적 트레이닝은 트레이닝 상태 또는 트레이닝 모드 동안 수행된다. 일 실시예에서, 트레이닝 상태는 메모리 디바이스의 리프레시 사이클 동안 존재한다. 메모리 디바이스 및/또는 메모리 제어기는, 트레이닝의 성능 효과들을 감소시키기 위해 메모리 디바이스를 트레이닝 상태 또는 트레이닝 모드에 언제 위치시킬지 결정할 수 있다. 따라서, 메모리 서브시스템은, 메모리 디바이스의 성능에 영향을 주지 않거나 성능에 대한 낮은 효과를 가질 시간 동안 I/O(Input/Output)를 트레이닝할 수 있다. 예를 들어, 트레이닝이 메모리 디바이스의 리프레시 상태 동안 수행되면, 리프레시 동안 메모리 디바이스에 어떠한 판독 또는 기입 커맨드도 발행되지 않는 것으로 보아 어떠한 성능 효과도 존재하지 않을 수 있다.
I/O 파라미터들은 수신된 트레이닝 신호에서 검출되는 에러들의 수에 기초하여 조절된다. 제어기 디바이스는 트레이닝 신호를 보내고, 메모리 디바이스는 트레이닝 신호를 샘플링한다. 제어기는 시스템에서의 CPU(Central Processing Unit), 메모리 제어기, 또는 다른 프로세서일 수 있다. 메모리 디바이스는, 단일 디바이스일 수 있거나, 또는 다른 메모리 디바이스들과 병렬로 구성될 수 있다. 수신된 트레이닝 신호에서 검출되는 에러들의 수에 기초하여, 시스템은 적어도 하나의 I/O 파라미터를 조절할 수 있다. 제어기 또는 메모리 디바이스는, 시스템의 구성에 의존하여, 에러 검출을 수행할 수 있다. 제어기의 I/O 파라미터 또는 메모리 디바이스의 I/O 파라미터는, 시스템의 구성에 의존하여, 조절될 수 있다.
에러들을 추적하는 것 및 추적된 에러들을 응답하여 적어도 하나의 I/O 파라미터를 조절하는 것에 의해, 시스템은 시간이 지나면서 샘플링 스트로브 신호, TDQS와 관련된 타이밍으로 드리프트를 주기적으로 추적할 수 있다. 주기적 보상은 시스템이 데이터 신호(DQ)의 아이(eye)의 중간에 샘플링 스트로브 신호(DQS)를 유지하게 할 수 있다. 주기적 보상 트레이닝은 DQ 아이에 대한 DQS 신호의 초기 트레이닝 또는 센터링에 보조적이고 추가적인 것으로서 이해되어야 한다. 초기 트레이닝은 메모리 디바이스와 제어기가 위치되는 시스템을 부팅시키고 초기화하는 BIOS(Basic Input/Output System)의 프로세스를 통해 흔히 수행된다. 따라서, 초기 트레이닝은 완료될 것으로 가정될 수 있고, 주기적 보상 트레이닝은 TDQS에서의 드리프트를 추적하여 보상할 수 있다. 드리프트는, 시스템의 동작 동안 온도 및/또는 전압 변화들과 같은, 환경 조건들의 변화들 때문에 통상적으로 발생한다. 추가적으로, 디바이스의 노화가 디바이스의 성능에서의 변화들을 초래할 수 있다.
초기화 트레이닝을 수행하는 것 대신에, 드리프트를 결정하는데 주기적 트레이닝이 사용될 때, 시스템은 주기적 트레이닝을 위해 단순한 트레이닝 패턴(예를 들어, 1010)을 사용할 수 있다. 단순한 트레이닝 패턴은 데이터 신호에 관하여 스트로브 신호에서 드리프트를 식별하기에 충분하여야 한다. 일 실시예에서는, 제어기 또는 송신 디바이스가 트레이닝 동작들을 제어한다. 제어기는 데이터 신호에 대한 정보를 제공하는 값들을 따로따로 추적할 수 있다. 일 실시예에서, 시스템은 시스템 클록의 각각의 위상 동안 발생하는 액티비티를 세분하는데 위상 보간을 이용한다. 이러한 값들은 클록 사이클 내에서 데이터 신호 및/또는 스트로브 신호의 구체적인 위치에 관한 정보를 제공한다. 위상들을 추적하는데 사용되는 로직은 PI(Phase Interpolator)라 할 수 있고, 로직으로부터 유래되는 값들은 PI 값들이라 할 수 있다. 통상적인 세분들은 8, 16 또는 32일 수 있지만, 다른 2진 값들이 사용될 수 있다.
일 실시예에서, 제어기는 2개의 PI 값들을 따로따로 추적한다. 하나의 PI는 정상 동작을 위한 조건들을 나타내고, 최악의 경우 트레이닝 패턴에 대해서는 아이 센터(eye center)를 나타낸다(예를 들어, 초기화 트레이닝 동안 결정된 바와 같음). 2번째 PI 값은 아이 엣지(eye edge)를 추적하는데 사용되는 주기적 트레이닝에 관한 조건들을 나타낸다. 주기적 트레이닝 동안, (예를 들어, 제어기, 메모리 디바이스, 또는 일부 조합에서의) 제어 로직은, DQ 엣지가 이전에 저장된 값에 관하여 얼마나 많이 이동하는지를 검출할 수 있다. 엣지가 얼마나 많이 이동하였는지에 기초하여, 제어 로직은 DQ 센터 값을 오프셋시킬 방법을 결정할 수 있다. DQ 엣지가 트레이닝 패턴에 기초하면, 이는 평균 DQ 이동들을 정확히 캡처하여야 한다. 데이터 버스 상의 더 복잡한 패턴(예를 들어, 랜덤, LFSR(Linear Shift Feedback Register), Victim Aggressor, Even vs. Oddmode 등과 같은 더 복잡한 패턴들)에 관한 평균 이동을 나타낼 수도 있듯이, 이것은 단순한 트레이닝 패턴이 사용되더라도 사실이다.
주기적 트레이닝에 의해 데이터 아이의 시간에 대한 아이 엣지 드리프트 또는 이동을 추적하는 것에 의해서, 시스템은 제어기로부터 메모리 디바이스까지 I/O 인터페이스의 기입 경로를 모니터링할 수 있다. 이러한 모니터링은 I/O 인터페이스의 성능에 대한 상세사항들을 제공할 수 있다. I/O 인터페이스가 이와 달리 유휴(idle)인 리프레시 또는 일부 다른 특별한 트레이닝 기간 동안 제공될 때, 시스템은, 유효 버스 대역폭에 대한 최소 영향으로, 에러들에서 노이즈를 필터링하기 위해 평균화하기에 충분한 샘플들을 생성할 수 있다.
일 실시예에서, 테스트 시스템 또는 테스트 엔진은 메모리 서브시스템들, 보다 구체적으로는, 플랫폼 컴포넌트(예를 들어, 프로세서, 메모리 제어기)와 메모리 디바이스 사이의 I/O(Input/Output) 인터페이스 또는 통신을 테스트하는데 사용될 수 있다. 이러한 테스팅은 설명되는 주기적 테스팅을 구현할 수 있다. 스케줄러 또는 등가 로직을 갖는 메모리 제어기를 사용하는 임의의 메모리 서브시스템이 테스트 엔진의 적어도 하나의 실시예를 구현할 수 있다. 본 명세서에서 메모리 디바이스들에 대해 이루어지는 참조는 상이한 메모리 타입들을 포함할 수 있다. 예를 들어, 메모리 서브시스템들은 통상적으로 DRAM을 사용하고, 이는 본 명세서에서 설명되는 바와 같은 메모리 디바이스의 일 예이다. 따라서, 본 명세서에 설명되는 테스트 엔진은, DDR3(Dual Data Rate version 3, 2007년 6월 27일 JEDEC(Joint Electronic Device Engineering Council)에 의한 오리지널 릴리즈, 현재 릴리즈 21), DDR4(DDR version 4, JEDEC에 의해 2012년 9월에 발간된 초기 사양), LPDDR4(Low Power Dual Data Rate version 4, 본 출원의 출원 시점에 JEDEC에 의한 개발에서의 사양), WIO(Wide I/O, 본 출원의 출원 시점에 JEDEC에 의한 개발에서의 사양), 및/또는 다른 것들과 같은, 다수의 메모리 기술들, 및 이러한 사양들의 파생물들 또는 확장물들에 기초하는 기술들 중 임의의 것과 호환될 수 있다.
일 실시예에서, I/O 인터페이스 회로의 동작은 실증적 테스팅의 사용을 통해 더욱 제어될 수 있다. 주기적 트레이닝에 의해 검출되는 지연에서의 변화들에 기초하여, 시스템은 검출되는 타이밍 변화에 대해 조절하기 위해 어떤 파라미터(들)를 수정할지 판정하기 위해 디바이스 I/O(Input/Output)의 성능 파라미터들을 실증적으로 테스트할 수 있다. 테스트 시스템을 통한 실증적 테스팅에 기초하여, 시스템은 장비 상호간의 통신이 발생하는 시스템 또는 디바이스에 특정한 성능 파라미터들을 설정할 수 있다. 다수의 상이한 I/O 회로 파라미터들에 대한 다수의 상이한 설정들 각각에 대해, 테스트 시스템은, 각각의 I/O 회로 파라미터에 대한 값을 설정하고, 이러한 파라미터 값(들)을 갖는 통신을 스트레스 테스트하기 위해 테스트 트래픽을 생성하고, I/O 성능 특성에 대한 동작 마진을 측정할 수 있다. 테스트 시스템은 또한 지연이 보상되는 각각의 I/O 회로 파라미터의 값에 대한 값들을 결정하기 위해 탐색 기능을 실행할 수 있다. 일 실시예에서, 시스템은 I/O 회로 파라미터들에 대한 런타임 값들을 이러한 탐색 기능에 기초하여 설정한다. 이러한 설정은 테스팅에 기초하여 특정 시스템들의 특정 컴포넌트들에 대해 다이나믹하게 변경될 수 있다.
위에 언급된 바와 같이, 부정합형 아키텍처들은 정합형 아키텍처에 대해 대역폭 및 주파수에서의 현저한 향상들을 제공할 수 있다. 그러나, 종래의 부정합형 아키텍처들은 저하된 타이밍 제어에 시달린다. 이하 보다 상세히 설명되는 바와 같이, 시스템은 주기적 트레이닝의 사용을 통해 부정합형 수신기 아키텍처에 대한 타이밍 제어를 관리할 수 있다. 이러한 시스템은, 트레이닝 신호의 수신에서의 에러들을 검출하고, 에러 검출에 의해 나타나는 타이밍 드리프트를 보상하기 위해 메모리 제어기 및/또는 메모리 디바이스 사이에서 조절할 하나 이상의 I/O 파라미터들을 결정한다.
일 실시예에서, 수신기 회로는 송신기로 하여금 검출된 에러들에 기초하여 자신의 동작을 조절하게 하는 정보를 송신기에 다시 제공한다. 따라서, 지연 변화들은 송신기 디바이스의 송신 거동을 변경하는 것에 의해 보상될 수 있다. 일 실시예에서, 수신기 디바이스는 필요한 I/O 조절을 컴퓨팅할 수 있다. 일 실시예에서, 수신기 디바이스는 원래 데이터(raw data)를 송신기에 단순히 보내고, 이는 그리고 나서 검출된 변화들에 기초하여 I/O 조절을 컴퓨팅할 수 있다.
도 2는 트레이닝 신호에 대한 에러 점검을 수행하는 부정합형 수신기 회로를 갖는 시스템의 일 실시예의 블록도이다. 시스템(200)은 송신 하드웨어 TX(212)와 함께 도시되는 디바이스(210) 및 수신 하드웨어(222)와 함께 도시되는 디바이스(220)를 포함한다. 일 실시예에서는 디바이스(220) 또한 디바이스(210)에 송신을 보낼 수 있고; 따라서 디바이스(220)는 명시적으로 도시되지 않은 송신 하드웨어를 포함할 수 있고, 디바이스(210)는 명시적으로 도시되지 않은 수신 하드웨어를 포함할 수 있다는 점이 이해될 것이다. 일 실시예에서, 송신 및 수신 하드웨어는 송수신기 하드웨어이고, 이는 송신 및 수신 양자 모두에 의한 인터페이싱을 허용한다. 이러한 디바이스들은 하나 이상의 송신 라인들을 통해 접속되고, 이는 송신 구동기에 의해 구동된다. 송신 라인은 디바이스(210)의 I/O 핀들을 디바이스(220)와 접속하는 임의 타입의 신호 라인(예를 들어, 트레이스, 와이어)일 수 있다.
디바이스(220)는 수신 제어기(230)를 포함하고, 이는 디바이스(220)에 대한 수신 동작들을 수행하는 하드웨어 및 다른 로직을 나타낸다. 수신 제어기(230)는 RX(222)로부터 수신되는 신호의 전압 레벨들을 샘플링하는 샘플링 회로(232)를 포함할 수 있다. 샘플링 회로(232)는 샘플 스트로브(234) 또는 다른 제어 신호에 의해 제어되고, 이는 인입 또는 수신 신호를 언제 샘플링하여야 하는지를 나타낸다. 샘플 스트로브(234)는 수신 제어기(230)에 의해 별도 신호로서 생성된다. 수신 제어기(230)는 샘플 스트로브(234)의 생성을 제어하는 타이밍 제어(236)를 포함한다.
일 실시예에서, 수신 제어기(230)는 에러 점검(238)을 포함하고, 이는 수신되는 트레이닝 신호에서 에러들이 검출되는지를 결정하는 하드웨어 및/또는 다른 로직을 포함한다. RX(222)에 의해 수신되는 신호에서의 데이터 아이에 관한 샘플 스트로브(234)의 타이밍에서의 드리프트(포지티브 또는 네거티브)는 인입 신호를 성공적으로 수신하는 디바이스(230)의 능력에 부정적으로 영향을 줄 수 있다. 에러 점검(238)은 샘플링 스트로브가 데이터 신호와 정렬되는지를 결정할 수 있다. 임계 수의 에러들이 다수의 샘플들을 통해 수신되면, 시스템은 수신기 타이밍에서 드리프트가 발생하였다고 결정할 수 있다. 드리프트, 또는 데이터 신호에 관한 스트로브 신호 또는 제어 신호의 지연에서의 변화에 기초하여, 타이밍 제어(236)는 이러한 변화에 대해 조절할 수 있다. 일 실시예에서, 타이밍 제어(236) 및/또는 다른 제어 로직은 샘플링 회로(232)의 샘플링 타이밍을 더 우수하게 정합하도록 디바이스(210)에 그 송신 파라미터들을 변경하라고 시그널링하는 것에 의해 지연을 조절한다. 따라서, 디바이스(210)의 타이밍 제어(214)는 TX(212)의 동작을 조절할 수 있다. 일 실시예에서, 타이밍 제어(236)는 샘플링 회로(232)의 타이밍을 조절하도록 스트로브 샘플(234)의 타이밍을 조절한다. 따라서, 시스템(200)은 디바이스(210)의 송신 회로에 대해 디바이스(220)의 수신 회로의 타이밍을 제어한다.
일 실시예에서, 에러 점검(238)은 디바이스(210)의 제어 로직(타이밍 제어(214) 및/또는 다른 로직)에 직접 보내지는 에러 카운트를 생성한다. 따라서, 디바이스(210)의 타이밍 제어(214) 및/또는 다른 제어 로직은 드리프트를 보상하도록 디바이스(210) 및/또는 디바이스(220)의 동작을 제어할 수 있다. 타이밍 제어(214) 및/또는 타이밍 제어(236)는, 이들이 디바이스들의 I/O 성능을 조절하는 로직을 포함한다는 것을 나타내는, I/O 제어로서 대안적으로 레이블될 수 있다는 점이 이해될 것이다. 이러한 I/O 성능 조절은 I/O 인터페이스의 타이밍을 변경한다.
디바이스(210)가 메모리 제어기 또는 프로세서이고 디바이스(220)가 메모리 디바이스인 일 예를 가정하면, 시스템(200)은, tDQS 지연(데이터 스트로브 신호의 전파 지연)을 측정하고, 지연에서의 변화들을 보상하도록 제어기/프로세서 송신기 타이밍을 조절하는 방법에 관련된다고 말할 수 있다. 메모리 디바이스의 리프레시 또는 트레이닝 모드 동안 에러들을 추적하는 것에 의해, I/O 인터페이스는 I/O 인터페이스의 쓰루풋 대역폭에 영향을 주지 않고 트레이닝 신호를 교환하는데 사용될 수 있다.
샘플 스트로브(234)의 회로 경로는 샘플링 회로(232)에 정합되지 않는다는 점이 이해될 것이다. 따라서, 수신 제어기(230)는 부정합형 수신기 회로 아키텍처를 이용한다. 부정합형 아키텍처들은 통상적으로 전압 및 온도 변화들에 민감하고, 따라서 회로의 거동(및 구체적으로는 타이밍)은 시간에 대해 변화한다. 그러나, 에러 점검(238)에 의해 나타나는 바와 같이, 주기적 트레이닝에 의해 타이밍에서의 변화를 모니터링하는 것은, 시스템(200)이 I/O 인터페이스 타이밍을 조절하게 하며, 이는 차례로 샘플링 포인트를 조절한다. 반면에, 샘플링 포인트가 드리프트할 것이고 이는 신호의 잘못된 부분에서의 샘플링을 야기하여 수신 에러들을 초래한다.
주기적 트레이닝은, 최악의 경우 시나리오 또는 최악의 경우 패턴에 관하여 I/O 인터페이스 성능을 테스트하는 것 보다는 오히려, I/O 인터페이스에서의 엣지 이동을 간단하게 추적한다는 점이 이해될 것이다. 따라서, 트레이닝은 얼마나 많은 변화가 이전에 저장된 값들에 관련하여 발생하는지 간단하게 결정하기 때문에, 트레이닝은 '강건하다(robust)'고 간주되지 않을 수 있다. 검출되는 에러들의 수에서의 변화들은 스트로브 신호에 관하여 데이터 신호의 엣지들의 이동을 나타낼 수 있다. 일 실시예에서, 메모리 디바이스는 에러 점검을 수행하고, 이는 기입들보다 더 적은 판독들에 의해 테스팅이 행해지게 한다. 예를 들어, 메모리 디바이스는 트레이닝 모드 동안 수신되는 기입을 무시(ignore)하거나 또는 생략(drop)시키도록 구성될 수 있다. 따라서, 트레이닝은 종래의 주기적 테스팅에 의해서와 같이 매 기입에 대해 판독을 수행해야 하는 것에 관해 훨씬 더 빨리 완료할 수 있다.
실제 판독은, 메모리 디바이스의 액티브 동작을 요구하는 것 뿐만 아니라, 저장 및 복원을 요구하고, 이는 실제 액세스 대역폭과 간섭한다. 트레이닝 모드에서, 메모리 디바이스는 인입 신호를 간단히 수신하여 샘플링할 수 있고, 그리고 나서 이것을 물리적 매체에 기입하는 대신에 이를 생략시킨다. 대안 실시예에서, 메모리 디바이스는 트레이닝 신호에 대해 트레이닝 모드에서 사용되는 레지스터 또는 레지스터(들)에 인입 신호를 기입할 수 있고, 다시, 이러한 데이터를 물리적 스토리지 매체 어레이에 기입하지 않을 수 있다. 제어기가 트레이닝 신호에서의 에러들을 검출하기 위해 레지스터(들)를 판독하는 경우에도, 저장 및 복원은 요구되지 않는다.
검출되는 에러들의 수를 평균화하는 것을 허용하기에 충분한 수의 트레이닝 신호 샘플들에 의해 주기적 트레이닝이 우선적으로 수행될 것이라는 점이 이해될 것이다. 예를 들어, 단일 트레이닝 신호 샘플 동안 허위 조건(spurious condition)은 부정확한 결과들로 이어질 수 있다. 그러나, 검출되는 에러들의 수를 모니터링하면, 평균적으로, 100개 이상의 트레이닝 신호들은 에러들의 수의 더 정확한 판독을 생성할 수 있다. 예를 들어, 다수의 트레이닝 신호들(예를 들어, 50개 또는 100개)이, 메모리 디바이스의 전체 성능에 영향을 주지 않고, 메모리의 리프레시 사이클 동안 수행될 수 있다.
일 실시예에서, PI 값들 또는 다른 에러 추적 값들은, 레지스터에 저장될 수 있고, 후속 트레이닝들에 관해 모니터링될 수 있다. 제어 로직은 이전 값에 관해 현재 판독 에러 추적 값에서의 변화의 결과들에 기초하여 데이터 신호 엣지를 우측으로 또는 좌측으로 이동시킬 수 있다. 일 실시예에서, 시스템은, 이하 설명되는 바와 같이, 데이터 엣지를 변경하도록 I/O 인터페이스의 성능을 바꾸는 방법을 결정하는 탐색을 수행한다.
일 실시예에서, 시스템(200)은 입력으로서 에러 측정들을 사용하여 런타임 시스템이 I/O를 향상시키는 설정들을 구체적으로 결정하는 탐색을 수행한다. 측정된 에러들, 및 가능하게는 다른 측정된 I/O 파라미터들에 기초하여, (테스트 로직의 일부일 수 있거나, 또는 별도 로직일 수 있는) 탐색 로직은 측정된 값들로부터 디바이스들 사이의 I/O에 어떤 설정들을 사용할 것인지 결정한다. 일 실시예에서, 탐색 로직은 I/O에 대한 하나 이상의 대표적 성능 커브들을 생성하는데 이러한 측정들을 사용할 수 있다. 대표적 커브들에 기초하여, 탐색 로직은, 다른 것들에 대해 (표준 또는 구성에 의해) 요구되는 성능을 적어도 유지하면서, 적어도 하나의 파라미터에 대해 더 우수한 성능을 만족시키는데 어떤 설정들을 사용할 것인지 결정하는 탐색 기능을 수행할 수 있다. 탐색 로직은, n-차원 탐색 로직, (n개의 1차원 탐색들을 수행하는) 1-차원 탐색 로직, 선형 맞춤(fit) 탐색 로직, 2차 맞춤 탐색 로직, 최급 강하(steepest descent) 탐색 로직, 커브 맞춤 탐색 로직, 또는 다른 것들 중 임의의 것을 포함할 수 있다. n은 탐색할 조합들의 수를 표시하는 정수를 나타낸다는 점이 이해될 것이다. 일 실시예에서, 탐색 로직은 또한 반복성 노이즈를 감소시키기 위해 또는 최악의 경우 조건들을 추정하기 위해 다수의 측정들을 함께 조합할 수 있다. 따라서, 제어 로직은, 메모리 디바이스의 수신 I/O 파라미터, 및/또는 제어기의 송신 I/O 파라미터에 대한 조절을 야기하기로 결정할 수 있다.
도 3은 부정합형 수신기 회로 및 수신된 트레이닝 신호에서의 에러들을 카운트하는 에러 점검 회로를 갖는 시스템의 일 실시예의 블록도이다. 회로(300)는, 도 2의 시스템(200)에 도시된 바와 같은, 샘플링 회로 및 에러 점검의 일 예를 제공한다. 일 실시예에서, 회로(300)가 그 일부인 메모리 디바이스는 트레이닝 또는 I/O 인터페이스 테스팅을 수행하는 트레이닝 모드에 진입한다. 일 실시예에서, 메모리 디바이스는 모든 뱅크 리프레시가 메모리 디바이스에서 발생하고 있는 동안 트레이닝 모드에 진입할 수 있다. 따라서, 트레이닝은 I/O 대역폭을 소모하지 않고 성능에 영향을 주지 않고 대략 7.6 uS마다 발생할 수 있다. 트레이닝이 더 빈번히 수행될 수 있지만, 증가된 빈도수는 리프레시 중 이외의 시간들에서 트레이닝을 수행하는 것을 초래할 것이고, 이는 메모리 액세스 동작들에 대해 사용가능한 I/O 대역폭에 부정적으로 영향을 줄 수 있다는 점이 이해될 것이다. 리프레시 중 이외의 시간들에서 트레이닝을 수행하는 것은 메모리 디바이스 액세스 상의 더 낮은 부하의 시간 동안이 되도록 컴퓨팅될 수 있고, 이는 트레이닝의 성능 효과들을 감소시킬 수 있다는 점이 이해될 것이다.
회로(300)는 샘플링 회로(310) 및 부정합형 증폭기(330)를 포함하는, 부정합형 수신기 회로이다. 증폭기(330)는 클록 분배 네트워크에 의해 샘플링 회로(310)에 접속되고, 이는 간략화의 목적으로 제거되었다. 그러나, 클록 분배 네트워크를 통한 지연과 수신된 데이터 신호 DQ[7:0]를 샘플링하는 지연 사이의 차이는 부정합형 수신기로서 회로(300)를 식별하는 것이다. 이러한 분배 네트워크를 통한 지연에서의 변화는 샘플링 신호에서의 드리프트를 데이터 신호에 비교되게 할 수 있다.
샘플링 회로(310)는 내부 기준 전압 Vref(320)에 대해 수신된 데이터 신호 DQ[7:0]를 샘플링한다. 회로(300)가 그 일부인 시스템의 구성에 의존하여, 데이터 신호는 오히려 8 비트보다 더 적을 수 있다는 점이 이해될 것이다. 샘플링 회로(310)는, 포지티브 샘플 스트로브 상에 입력 신호의 샘플을 제공하는 엘리먼트(312), 샘플 스트로브의 상보형 부분 상에 입력 신호의 샘플을 제공하는 엘리먼트(314)를 포함한다. 다른 구성들이 가능하다. 엘리먼트들(312 및 314)은 샘플링 증폭기들이고, 이들은 실제 수신된 신호를 샘플링하고 샘플을 증폭한다. 따라서, 증폭은, 정합형 구성에 의해서와 같이, 샘플링 이전에 증폭하는 것에 비하여 더 저속인 증폭기에 의해 수행될 수 있다.
증폭기(330)는 입력들로서 풀-업 스트로브 신호 및 풀-다운 스트로브 신호를 수신한다. 클록 분배 네트워크는 스트로브 또는 샘플 신호를 다수의 상이한 엘리먼트들, 예를 들어, 다수의 상이한 샘플링 엘리먼트들(도시되지 않음)에 분배한다. 이러한 분배 네트워크의 레벨의 정확한 수는 구현에 의해 변경될 것이다. 공통 분배 네트워크들은 2진 트리(각각의 추가적 레벨이 2개의 분기들을 포함한다) 및 H-트리(각각의 추가적 레벨이 4개의 분기들을 포함하고 "H"처럼 보임) 분배 네트워크들을 포함한다. 증폭기(330)로부터 샘플링 엘리먼트(312 및 314)까지의 지연은, 에이징(aging), 전압 레벨들을 변경하는 것, 온도에서의 변화들, 또는 가능하게는 다른 동작 조건들을 통한, 디바이스의 동작에 기초하여 시간에 대해 변화한다.
일 실시예에서, 샘플링 엘리먼트들(312 및 314)은, 그 단순화된 버전이 도 3에 도시되는, 에러 점검 회로(340)에 공급된다. 일 실시예에서, 에러 점검 회로는, 샘플 스트로브의 포지티브 부분에서 샘플링되는 샘플(316)을 엘리먼트(312)로부터 수신하는 반전 게이트(342), 및 샘플 스트로브의 네거티브 부분에서의 샘플들인 샘플(318)을 엘리먼트(314)로부터 수신하는 비반전 게이트(344)를 포함한다. 1010의 트레이닝 신호에 대해, 출력 샘플(316)은 항상 '1'이어야 하고, 출력 샘플(318)은 항상 '0'이어야 한다는 점이 이해될 것이다. 따라서, 게이트들(342 및 344)의 출력들은 XOR 게이트(346)에 입력으로서 제공될 수 있는데, 이는 수신된 신호에 에러가 존재하면 1을 오로지 생성하여야 한다. 수신된 신호가 정확히 수신되면, 게이트(346)은 항상 제로를 출력할 것이다.
카운터(350)는 수신된 트레이닝 신호에서 검출되는 에러들의 수를 카운트한다. 일 실시예에서, 샘플링된 인입 트레이닝 신호는 에러 점검 회로(340)에서 수신되지만, 회로(300)가 그 일부인 메모리 디바이스의 메모리 어레이에 기입되는 대신에 폐기된다. 일 실시예에서, 카운터(350)는 트레이닝 신호들의 시퀀스에 대해서 검출되는 에러들의 수를 카운트한다. 따라서, 카운터(350)의 최종 카운트는 누적 값을 나타낼 것이다. 일 실시예에서, 카운터(350)의 출력은 메모리 디바이스에서의 제어 로직에 보내지고, 이는 검출되는 에러들의 수에 응답하여 어떠한 I/O 성능 파라미터들을 조절할 것인지를 결정한다. 검출되는 에러들의 수에 기초하여, 제어 로직은 특정 트레이닝 시퀀스에 대해 어떠한 파라미터들도 조절하지 않을 것을 결정할 수 있다. 일 실시예에서, 카운터(350)의 출력은 제어기 디바이스에서의 제어 로직에 보내지고, 이는 그리고 나서 검출되는 에러들의 수에 응답하여 어떠한 I/O 성능 파라미터들을 조절할 것인지를 결정할 수 있다. 어느 하나의 제어 로직은 이러한 결정을 행하는 탐색 로직을 포함할 수 있다.
도 4는 송신기로부터 수신기에 보내진 트레이닝 신호에서의 에러들의 검출에 기초하여 I/O 동작을 조절하는 시스템의 일 실시예의 블록도이다. 시스템(400)은 도 2의 시스템(200)에 따른 시스템의 일 예일 수 있다. 제어기 디바이스(410)는 송신 디바이스이고, 메모리 디바이스(420)는 2개 디바이스들 사이의 I/O 인터페이스를 테스트하는 트레이닝 신호 또는 신호들의 교환을 목적으로 하는 수신 디바이스이다. 도시된 바와 같이, 이러한 통신은 I/O 인터페이스를 시험하는 I/O 인터페이스 트레이닝 신호를 보내는 것을 포함하지 않을지라도, 메모리 디바이스(420)는 또한 제어기(410)에 다시 통신할 수 있다. 메모리 디바이스(420)는, I/O 성능 파라미터들을 조절하는 방법의 결정을 위해 카운터 값을 보내는 것, 제어기에 의한 판독 커맨드(이는 트레이닝 레지스터에 저장되는 트레이닝 신호의 판독을 포함할 수 있음)에 응답하여 데이터를 보내는 것과 같이, 제어기에 다시 데이터를 통신할 수 있다.
제어기(410)는 메모리 디바이스(420)와 인터페이스하는 송수신기(412)를 포함한다. 메모리 디바이스(420)는 제어기(410)와 인터페이스하는 송수신기(422)를 포함한다. 이러한 2개의 송수신기들 사이의 접속은 I/O 인터페이스이다. I/O 인터페이스는 제어기(410)의 I/O 제어기(420) 및 메모리 디바이스(420)의 I/O 제어기(440)를 포함하는 것으로서 이해될 수 있다. I/O 제어기(420)는 제어기(410)가 송수신기(412)에 대한 송신 및/또는 수신의 파라미터들을 설정하게 한다. 이와 유사하게, I/O 제어기(440)는 메모리 디바이스(420)가 송수신기(422)에 대한 수신 및/또는 송신의 파라미터들을 설정할 수 있게 한다.
일 실시예에서, I/O 제어기(430)는 I/O 제어(432)를 포함하고, 이는 송수신기(412)를 통해 I/O와 관련되는 값들을 저장하는 레지스터들, 테이블들, 및/또는 다른 메커니즘들을 포함할 수 있다. I/O 제어(432)는 통신의 물리적 파라미터들 및/또는 레이턴시 파라미터들에 대해 송수신기(412)에 의해 사용되는 설정들을 제어한다. 로직(434)은 제어기 디바이스(410)에서의 제어 로직을 나타내고, 이는 주기적 트레이닝에 의해 나타나는 바와 같은 드리프트를 보상하기 위해 어떠한 파라미터 또는 파라미터들이 조절되어야 하는지를 제어기 디바이스가 결정할 수 있게 할 수 있다.
일 실시예에서, I/O 제어기(440)는 I/O 제어(446)를 포함하고, 이는 I/O 제어(432)와 유사할 수 있다. 따라서, I/O 제어기(440)는, 송수신기(422)를 통해 I/O와 관련되는 값들을 저장하는 레지스터들, 테이블들 및/또는 다른 메커니즘들을 포함할 수 있다. 일 실시예에서, I/O 제어(446)는, 신호를 메모리 어레이(메모리 어레이는 도시되지 않음)에 기입하지 않고도, 제어기 디바이스(410)에 의한 판독에 대해 트레이닝 신호를 일시적으로 저장하기 위해 메모리 디바이스(420)에 의해 사용되는 레지스터 또는 레지스터들을 포함한다. 로직(444)은 메모리 제어기(420)에서의 제어 로직을 나타내고, 이는 주기적 트레이닝에 의해 나타나는 바와 같은 드리프트를 보상하기 위해 어떠한 파라미터 또는 파라미터들을 조절할 것인지를 결정할 수 있다. I/O 제어기(440)는 수신 신호들을 샘플링하는 샘플링 회로(442)를 포함할 수 있다. 일 실시예에서, 샘플링 회로(442)는 트레이닝 샘플들의 시퀀스에서 에러들의 수를 카운트하는 에러 검출 회로를 포함할 수 있다.
시스템(400)에 도시된 바과 같이, 일 실시예에서, 메모리 디바이스(420)는 트레이닝 신호에서의 에러들을 점검하도록 구성될 수 있다. 일 실시예에서, 제어기 디바이스(410)는 트레이닝 신호에서의 에러들을 점검하도록 구성될 수 있다. 메모리 디바이스(420)는 에러 점검 회로를 사용하여 에러들을 점검할 수 있다. 메모리 디바이스는 그리고 나서, 검출된 에러들에 기초하여 조절을 야기할 수 있고 및/또는 제어기가 검출된 에러들에 기초하여 조절을 야기하도록 제어기 디바이스(410)에 검출된 에러들을 나타낼 수 있다.
제어기 디바이스(410)는 보내진 트레이닝 데이터를 다시 판독하는 판독 커맨드들을 발행하는 제어기에 의해 에러들을 점검할 수 있다. 예시적인 커맨드 테스트 흐름은: Write Data0, Read Data0, Write Data1, Read Data1, ..., 일 수 있고, 여기서 Data0, Data1, ...은 버스 상에 유도되는 잠재적으로 상이한 데이터 값들이다. 에러들을 점검하는 제어기 디바이스에 대해, 메모리 디바이스(420)는 메모리 어레이에 데이터를 기입하지 않고 기입과 판독 커맨드들 사이에 트레이닝 데이터를 버퍼(예를 들어, 새로운 또는 기존의 레지스터 또는 다른 버퍼)에 저장하도록 구성될 수 있다. 제어기 디바이스(410)가 에러들을 점검할 때, 주기적 트레이닝은 상이한 데이터 패턴들을 더 용이하게 테스트할 수 있다. 그러나, 제어기 디바이스에 의한 에러 점검은 메모리 디바이스에 의한 에러 점검보다 더 오래 걸릴 것으로 예상될 것이다.
일 실시예에서, 제어기 디바이스(410)는 주기적 트레이닝을 제어하는 FSM(Finite State Machine, 명시적으로 도시되지는 않음)을 포함한다. 예를 들어, FSM은 N개의 리프레시 커맨드들 마다 트레이닝 모드를 인에이블하도록 구성될 수 있고, 여기서 N은 일부 정수이다. 트레이닝은 리프레시 사이클 마다, 또는 덜 빈번하게 발생할 수 있다. 타이머가 임계 시간에 도달한 이후 메모리 디바이스의 비교적 낮은 부하 시간 동안 트레이닝을 수행하도록 FSM이 대안적으로 구성될 수 있다. 제어기 디바이스는, 데이터 아이의 엣지를 나타내는 알려진 값을 모니터링할 수 있고, 트레이닝 신호를 생성하기 위해 M개의 기입들을 발행할 수 있다. (전체 아이와 대조적으로) 데이터 아이의 엣지만 모니터링되면, 셋업 및 홀드 엣지들과 대조적으로 이러한 에러 검출은 엣지(예를 들어, 셋업 타이밍)를 모니터링할 수 있다. 기입 커맨드들을 발행한 이후, 제어기 디바이스는, 에러 카운트를 다시 판독할 수 있고 및/또는 기입 데이터를 다시 판독할 수 있고, 데이터 엣지가 증가되어야 하는지 또는 감소되어야 하는지 결정할 수 있다. 일 실시예에서, FSM은 데이터 아이 엣지를 하나 이상의 틱들(ticks)(또는 위상 보간에 의해 행해지는 바와 같이, 세분된 부분들)만큼 이동시킨다. FSM은 아이의 엣지를 어느 방향으로 이동할지를 결정하는 테스트를 실행할 수 있다.
일 실시예에서, (제어기 디바이스가 에러 조절들을 야기하면) 제어기 디바이스(410)의 제어 로직 또는 (메모리 디바이스가 에러 조절들을 야기하면) 메모리 디바이스(420)의 제어 로직은, 아이의 엣지에서 검출되는 변화들에 응답하여, 데이터 아이의 센터와 관련되는 설정들을 오프셋할 수 있다. 따라서, 주기적 트레이닝은, 아이의 엣지를 모니터링할 수 있고, 아이의 엣지에서 검출되는 변화 또는 이동에 비례하여 아이의 센터를 이동시킬 수 있다. 아이의 센터링은, 필요에 따라, 채널, 워드, 바이트 또는 비트 기반으로 행해질 수 있다. 메모리 디바이스로부터 제어기 디바이스로의 피드백의 양은 어떻게 센터링이 수행되는지에 의존하여 증가될 필요가 있을 수 있다는 점이 이해될 것이다. 일 실시예에서, 메모리 디바이스(420)는 다수의 순위들을 포함한다. 일 실시예에서, 에러 검출은 순위 기반으로 수행될 수 있다. 대안적인 실시예에서, 에러 검출은 선택된 순위에 대해 수행될 수 있고, 모든 순위들 전반적으로 적용될 수 있다. 구체적 구현 상세사항들은 온도 또는 전압에서 얼마나 많은 차이가 상이한 순위들 전반적으로 존재할 것으로 예상되는지와 같은 환경적 제약들을 기반으로 할 것이다.
주기적 트레이닝은 디지털 피드백 루프로서 이해될 수 있다는 점이 이해될 것이다. 디지털 피드백 루프들은 통상적으로 2개의 인접한 설정들 사이에서 디더링한다(dither). 일 실시예에서, PI 엣지 설정의 값은 2개의 인접한 설정들 사이에 디더링할 수 있지만, 이러한 디더링(dithering)은 알려진 디지털 필터링 기술들을 사용하여 PI 센터 설정을 필터링해 낼 수 있다. 예를 들어, PI 센터 설정은 PI 엣지 설정이 동일한 방향으로 2회 이동한 이후에만 이동할 수 있다(예를 들어, 센터 PI는 항상 하나의 설정에 의해 엣지 이동을 래그(lag)한다). PI 엣지 설정이 하나의 설정값에 의해 디더링한다고만 가정하면, 이러한 필터는 노이즈의 소스로서 디더링하는 피드백을 제거할 수 있다.
메모리 디바이스의 동작의 모드 및/또는 트레이닝 시간 제약들에 기초하여, 드리프트를 보상하기 위해 I/O 파라미터 설정(들)을 조절하는 방법을 결정하는 제어 로직은, 더 많거나 또는 더 적은 데이터를 수집할 수 있고, 및/또는 더 많은 설정들 또는 파라미터들을 탐색할 수 있다. 로직은, 시스템에서의 이전 드리프트 결과들, 전력 상태 액티비티, 온도 변화들 및/또는 다른 환경 변화들에 기초하여, 오히려 더 적은 데이터와 더 많은 탐색 시간 또는 더 적은 탐색 시간 사이의 트레이드 오프를 행할 수 있다. 예를 들어, 온도/전압에서의 빈번한 변동, 또는 이전 드리프트 결과들에서의 높은 변화는, 더 많은 처리가 더 많은 정확한 결과를 달성하도록, 더 많은 설정들이 사용될 수 있다는 점, 및/또는 결과들 탐색이 사용될 수 있다는 점을 나타낼 수 있다. 극히 적은 변화는 그 반대를 나타낼 수 있다.
도 5는 수신된 트레이닝 신호에서의 에러들을 검출하기 위한 동작 타이밍의 일 실시예의 타이밍도이다. 타이밍도(500)는 DRAM 디바이스로의 커맨드들의 흐름의 일 실시예를 도시하고, 이는 설명되는 임의의 실시예에 따른 메모리 디바이스의 일 예일 수 있다. 클록 신호(510)는 시스템 클록이다. CMD(520)는 메모리 제어기에 의해 보내진 DRAM 커맨드 신호이고, 이는 설명된 임의의 실시예에 따른 제어기 디바이스의 일 예일 수 있다. PRE ALL은 트레이닝의 목적으로 시스템의 초기 상태를 나타낸다. PRE ALL과 MRW Entry 커맨드의 발행 사이에는 tRPab의 지연이 존재한다. MRW(Mode Register Write) Entry는 특별한 트레이닝 상태에 진입하는 커맨드를 나타낸다.
트레이닝 상태는, MRW, 명시적 커맨드, 또는 몇몇 유사한 메커니즘을 사용하여 인에이블될 수 있는 특별한 모드이다. DRAM이 트레이닝 상태에 진입하기에 적절한 시간, tMRW를 기다린 후, 호스트 또는 메모리 제어기는 DRAM에 정상 Write 커맨드(들)을 발행할 수 있다. 일 실시예에서, 기입 커맨드 및 MRW는 동일한 커맨드이다. 일 실시예에서, DRAM은 기입들이 트레이닝 상태가 아닌 상태에서 수신될 때에 비해 트레이닝 상태에서 수신될 때 기입들을 상이하게 취급한다. 예를 들어, DRAM은 내부 메모리 어레이에 액세스하지 않고 기입 데이터가 트레이닝 패턴과 일치하지 점검할 수 있다. 커맨드 신호(520) 상에 보여지는 커맨드와 생성되는 데이터 스트로브 신호(DQS_t/c(530)) 사이에는 WL+tDQSS의 지연(기입 레이턴시)이 존재한다. 스트로브 신호가 시작된 후, 데이터는 데이터 라인, DQ(540) 상에 수신된다. 이러한 라인 상의 데이터의 양은 트레이닝을 위해 메모리 제어기에 의해 얼마나 많은 기입들이 생성되는지에 의존할 것이다.
일 실시예에서, DRAM 에러 점검은 1010의 트레이닝 패턴이 사용될 때 매우 단순하다. 예를 들어, 1010 트레이닝 패턴에 의해, 점검 로직은 모든 상승하는 DQS 샘플들이 1이고 모든 하강하는 DQS 샘플들이 0일 것을 요구할 수 있다. DRAM은 바이트의 임의의 레인(lane)이 각각의 사이클에 대해 에러를 경험하였는지 점검할 수 있다. 일 실시예에서는, 주어진 사이클에서 하나 이상 에러들이 검출되면, DRAM은 에러 카운터를 1만큼 증가시킨다. 일 실시예에서, 각각의 DQ 바이트는 에러들을 카운트하는 별도의 N-비트 카운터를 DRAM에 갖는다. 카운터의 카운트는 DQ에 비해 DQS의 평균 상대적 위치들의 훨씬 더 많 정확한 뷰를 제공할 수 있고, 이는 제어 로직이 몇몇 불량 샘플들로부터 노이즈를 필터링하게 하여, 노이즈 및 트레이닝 시간을 감소시킨다.
일 실시예에서, DRAM은 카운터 이전의 상이한 레인들 및 DQS 엣지로부터의 에러 카운트들을 조합하고, 이는 트레이닝이 최악의 경우 레인/엣지에 초점을 둔다는 점을 확실하게 한다. 최종 기입 DQS 엣지 이후 지연(tWait)을 기다린 후, 메모리 제어기는 에러 결과들을 판독하기 위해 MRR 커맨드 또는 유사한 커맨드를 발행한다. 도시된 바와 같이, MRR 결과 커맨드가 DRAM에 발행된다. tMRR의 시간 (판독 커맨드를 생성하기 위한 시간) 뒤에, 메모리 제어기는 MRW exit 커맨드를 발행할 수 있고, 및/또는 메모리 디바이스는 트레이닝 상태를 탈출할 수 있다. RL+tDQSCK의 지연(실제 레이턴시) 이후, 메모리 제어기는 에러 카운터 결과들을 판독한다. 메모리 제어기가 DRAM 대신에 제어기에서의 에러들을 점검하기 위해 트레이닝 데이터를 다시 판독하는 경우에 유사한 흐름이 생성될 수 있다는 점이 이해될 것이다. 일 실시예에서, 에러 카운트는 MRW 트레이닝 모드 진입 커맨드 의해 자동으로 0으로 재설정될 수 있다. 일 실시예에서는, 카운터를 재설정할 목적으로, DRAM이 이미 트레이닝 상태 또는 트레이닝 모드에 있더라도, 메모리 제어기는 또한 MRW 트레이닝 모드 커맨드를 재발행할 수 있다.
도 6a는, 수신 디바이스에 의해 에러 점검이 실행되어, 수신된 트레이닝 신호에서의 에러들을 점검하는 프로세스의 일 실시예의 흐름도이다. 일 실시예에서, 메모리 디바이스는 리프레시 모드에 진입한다(602). 예를 들어, 메모리 제어기는 메모리 디바이스가 리프레시 모드에 진입하게 하는 커맨드를 메모리 디바이스에 보낼 수 있다. 리프레시에서, 메모리 어레이로의 액세스는 허용되지 않기 때문에, 메모리 디바이스는 통상적으로 메모리 제어기로부터 커맨드들을 수신하여 처리할 수 없다. 대안적으로, 메모리 제어기는 리프레시중 이외의 시간에 커맨드를 보낼 수 있다.
일 실시예에서, 메모리 제어기는 트레이닝 모드 표시자를 메모리 디바이스에 보낸다(604). 트레이닝 모드 표시자는 메모리 제어기에 의해 보내진 커맨드일 수 있다. 트레이닝 모드 표시자는 메모리 제어기가 설정하는 메모리 디바이스의 레지스터 설정일 수 있다. 트레이닝 모드 표시자에 반응하여, 메모리 디바이스는 트레이닝 모드에 진입한다(606). 트레이닝 모드에서, 메모리 디바이스는, 메모리 어레이를 액세스하지 않으면서, 커맨드 버스를 통해 특정 트레이닝 커맨드들을 수신할 수 있고, 이러한 커맨드들을 처리할 수 있다.
트레이닝 모드에 있는 동안, 메모리 제어기는 메모리 제어기에 의해 처리를 위한 I/O를 보낼 수 있다. 트레이닝 I/O는 I/O 인터페이스의 관점으로부터 정상 I/O이다. 그러나, 메모리 어레이로의 액세스의 관점으로부터, 트레이닝 I/O는 "더미(dummy)" I/O 이고, 이는 I/O가 메모리 어레이로의 액세스를 생성하지 않는다는 것을 의미한다. 각각의 트레이닝 I/O에 대해, n=l로부터 N까지임(608), 트레이닝 신호 또는 트레이닝 신호들의 시퀀스가 메모리 제어기로부터 메모리 디바이스에 보내진다(610). 일 실시예에서, 메모리 제어기는 트레이닝 신호를 트레이닝 모드 기입으로서 보낸다. 트레이닝 모드 기입은, 메모리 디바이스가 트레이닝 모드에 있는 동안 보내진 정상 기입 커맨드일 수 있거나, 트레이닝에 특수한 기입 커맨일 수 있다. 메모리 디바이스는 트레이닝 모드 기입을 수신한다(612). 메모리 디바이스는, 메모리 디바이스 수신 프로세서가 메모리 어레이 매체에 액세스를 위한 데이터를 전달하지 않는다는 점에서 통상적인 기입 커맨드들과는 상이하게 트레이닝 모드 기입들을 취급한다. 일 실시예에서, 메모리 디바이스는 에러들에 대해 트레이닝 신호를 평가하고, 에러가 검출될 때 에러 카운트를 증가시킨다(614).
n이 N, 또는, 트레이닝 상태 동안 수신되어 처리될 트레이닝 신호의 수와 동일하지 않는 한, 616은 '아니오'로 분기하여, 메모리 제어기는 메모리 디바이스에 의한 처리를 위해 트레이닝 신호들을 계속 보낸다(608 내지 614). n이 N과 동일할 때, 제어 로직은 최종 에러 카운트에 기초하여 하나 이상의 I/O 파라미터들을 조절할지 및/또는 하나 이상의 I/O 파라미터들을 어떻게 조절할지를 결정한다(618). 일 실시예에서, 제어 로직은 I/O 파라미터들을 평가하는데 탐색 기능을 사용한다. 일 실시예에서, 제어 로직은 메모리 디바이스의 일부이다. 일 실시예에서, 제어 로직은 메모리 제어기의 일부이다. 일 실시예에서, 제어 로직은 메모리 제어기에 의해 송신에 관련되는 I/O 파라미터를 조절할 것을 결정한다. 일 실시예에서, 제어 로직은 메모리 디바이스에 의해 신호를 수신하는 것에 관련되는 I/O 파라미터를 조절할 것을 결정한다. 시스템은 이러한 결정에 따라 결정된 I/O 파라미터(들)를 조절한다(620).
도 6b는, 송신 디바이스에 의해 에러 점검이 실행되어, 수신된 트레이닝 신호에서의 에러들을 점검하는 프로세스의 일 실시예의 흐름도이다. 도 6b는 630, 632 및 634에서 도 6a와는 상이하다는 점이 관찰될 것이다. 반면에, 동작들의 흐름은 위에 언금되는 것과 유사하거나 또는 동일하다. 위에 언급되는 것을 반복하는 것 보다는 오히려, 도 6b의 설명은 상이한 부분들에 초점을 맞출 것이다.
도 6a에서는, 일단 메모리 디바이스가 트레이닝 모드 기입을 수신하면(612), 메모리 디바이스가 에러에 대해 트레이닝 신호를 평가했던 반면에, 도 6b에서는, 메모리 제어기가 다음과 같이 에러에 대해 트레이닝 신호를 평가한다. 메모리 디바이스가 트레이닝 모드 기입을 수신하고(612), 메모리 디바이스는 트레이닝 버퍼에 트레이닝 신호를 기입하지만, 메모리 디바이스가 메모리 어레이에는 기입하지 않는다(630). 메모리 제어기는 후속 동작 632에서 트레이닝 버퍼로부터 트레이닝 신호를 판독한다. 예를 들어, 메모리 제어기는 트레이닝 버퍼 판독 커맨드를 발행한다. 트레이닝 버퍼는 메모리 디바이스의 기존 레지스터 또는 버퍼일 수 있고, 이를 메모리 제어기가, 예를 들어, 레지스터 판독 커맨트를 통해 액세스할 수 있다. 그리고 나서 메모리 제어기는 에러들에 대해 판독 신호를 평가하고, 에러가 검출될 때 에러 카운트를 증가시킨다(634). 다시, 프로세스는 트레이닝 시퀀스를 위해 메모리 제어기에 의해 메모리 디바이스에 보내질 모든 I/O에 대해 계속된다. 앞서와 마찬가지로, 메모리 제어기에서의 또는 메모리 디바이스에서의 제어 로직은 에러 카운트에 기초하여 하나 이상의 I/O 파라미터들을 조절할지 및/또는 하나 이상의 I/O 파라미터들을 어떻게 조절할지를 결정한다.
도 7은 수신 신호 에러 점검이 구현될 수 있는 컴퓨팅 시스템의 일 실시예의 블록도이다. 시스템(700)은, 본 명세서에 설명되는 임의의 실시예에 따른 컴퓨팅 디바이스를 나타내고, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버, 게임 또는 엔터테인먼트 제어 시스템, 스캐너, 복사기, 프린터, 라우팅 또는 스위칭 디바이스, 또는 다른 전자 디바이스일 수 있다. 시스템(700)은 프로세서(720)를 포함하고, 이는 시스템(700)에 대한 처리, 동작 관리 및 명령어들의 실행을 제공한다. 프로세서(720)는 임의의 타입의 마이크로프로세서, CPU(Central Processing Unit), 프로세싱 코어, 또는 시스템(700)에 대한 프로세싱을 제공하는 다른 프로세싱 하드웨어를 포함할 수 있다. 프로세서(720)는 시스템(700)의 전체 동작을 제어하며, 하나 이상의 프로그래머블 범용 또는 특수-목적 마이크로프로세서들, DSP들(Digital Signal Processors), 프로그래머블 제어기들, ASIC들(Application Specific Integrated Circuits), PLD들(Programmable Logic Devices), 또는 이와 유사한 것, 또는 이러한 디바이스들의 조합일 수 있거나, 또는 이들을 포함할 수 있다.
메모리 서브시스템(730)은, 시스템(700)의 메인 메모리를 나타내며, 프로세서(720)에 의해 실행될 코드, 또는 루틴을 실행할 시에 사용될 데이터 값들에 대한 임시 스토리지를 제공한다. 메모리 서브시스템(730)은 ROM(Read-Only Memory), 플래시 메모리, 하나 이상의 다양한 RAM(Random Access Memory), 또는 다른 메모리 디바이스들과 같은 하나 이상의 메모리 디바이스들, 또는 이러한 디바이스들의 조합을 포함할 수 있다. 메모리 서브시스템(730)은, 특히, 시스템(700) 내의 명령어들의 실행을 위한 소프트웨어 플랫폼을 제공하는 OS(Operating System)(736)를 저장 및 호스팅한다. 추가로, 다른 명령어들(738)은 메모리 서브시스템(730)에 저장되고 이로부터 실행되어 시스템(700)의 로직 및 프로세싱을 제공한다. OS(736) 및 명령어들(738)은 프로세서(720)에 의해 실행된다.
메모리 서브시스템(730)은 메모리 디바이스(732)를 포함하고, 여기서 메모리 디바이스는 데이터, 명령어들, 프로그램들, 또는 기타 아이템들을 저장한다. 일 실시예에서, 메모리 서브시스템은 메모리 제어기(734)를 포함하고, 이는 본 명세서에서 설명되는 임의의 실시예에 따른 메모리 제어기이고, 메모리 디바이스(732)에 대해 커맨드들을 생성하고 발행하는 스케줄러를 포함한다.
일 실시예에서, 메모리 서브시스템(730) 및 메모리 디바이스(732)는 주기적 트레이닝을 통해 생성되는 피드백에 기초하여 I/O 타이밍 보상을 구현한다. 메모리 디바이스(732)는 트레이닝 상태에 진입하고, 메모리 제어기(734)는 메모리 디바이스와 메모리 제어기 사이에 I/O 인터페이스를 통해 트레이닝 신호를 보내며, 메모리 디바이스는 자신의 메모리 어레이에 이를 저장하지 않는다. 일 실시예에서, 메모리 디바이스(732)는 에러들에 대해 수신된 트레이닝 신호를 평가한다. 일 실시예에서, 메모리 디바이스(732)는 트레이닝 신호를 트레이닝 버퍼에 저장하고, 이는 트레이닝 신호를 저장하는데 사용되는 임의의 버퍼일 수 있으며, 메모리 제어기(734)는 버퍼링된 트레이닝 신호를 판독하고, 에러들에 대해 신호를 평가한다. 검출된 에러들에 기초하여, 시스템은, I/O 타이밍에 영향을 주는 환경적 조건들에서의 변화들을 보상하기 위해, 메모리 제어기 또는 메모리 디바이스 중 어느 하나 또는 양자 모두의 하나 이상의 I/O 파라미터들을 조절한다.
프로세서(720) 및 메모리 서브시스템(730)은 버스/버스 시스템(710)에 연결된다. 버스(710)는, 적절한 브릿지들, 어댑터들 및/또는 제어기들에 의해 접속되는, 임의의 하나 이상의 별도의 물리적 버스들, 통신 라인들/인터페이스들, 및/또는 점-대-점 접속들을 나타내는 추상적 개념(abstraction)이다. 따라서, 버스(710)는, 예를 들어, 시스템 버스, PCI(Peripheral Component Interconnect) 버스, HyperTransport 또는 ISA(Industry Standard Architecture) 버스, SCSI(Small Computer System Interface) 버스, USB(Universal Serial Bus), 또는 IEEE(Institute of Electrical and Electronics Engineers) 표준 1394 버스(통상적으로 "Firewire"라 함) 중 하나 이상을 포함할 수 있다. 버스(710)의 버스들은 또한 네트워크 인터페이스(750) 내의 인터페이스들에 대응할 수 있다.
시스템(700)은 또한 버스(710)에 연결되는 하나 이상의 I/O(Input/Output) 인터페이스(들)(740), 네트워크 인터페이스(750), 하나 이상의 내부 대용량 스토리지 디바이스(들)(760), 및 주변기기 인터페이스(770)를 포함한다. I/O 인터페이스(740)는 이를 통해 사용자가 시스템(700)과 상호작용하는 하나 이상의 인터페이스 컴포넌트들(예를 들어, 비디오, 오디오 및/또는 영숫자 인터페이싱)을 포함할 수 있다. 네트워크 인터페이스(750)는 하나 이상의 네트워크들을 통해 원격 디바이스들(예를 들어, 서버들, 다른 컴퓨팅 디바이스들)과 통신하는 능력을 시스템(700)에 제공한다. 네트워크 인터페이스(750)는 이더넷(Ethernet) 어댑터, 무선 상호접속 컴포넌트들, USB(Universal Serial Bus), 또는 다른 유선 또는 무선 표준들 기반의 또는 사설 인터페이스들을 포함할 수 있다.
스토리지(760)는, 하나 이상의 자기, 고체 상태, 또는 광학 기반의 디스크들, 또는 그 조합과 같은, 불휘발성 방식으로 대량의 데이터를 저장하는 임의의 종래의 매체일 수 있거나 이를 포함할 수 있다. 스토리지(760)는 코드 또는 명령어들 및 데이터(762)를 지속 상태로 보유한다(즉, 값은 시스템(700)으로의 전력의 중단에도 불구하고 유지됨). 스토리지(760)는 포괄적으로 "메모리"인 것으로 간주될 수 있지만, 메모리(730)는 프로세서(720)에 명령어들을 제공하는 실행 또는 동작 메모리이다. 스토리지(760)는 불휘발성인 반면에, 메모리(730)는 휘발성 메모리를 포함할 수 있다(즉, 시스템(700)으로의 전력이 중단되면 데이터의 값 또는 상태는 불확실함(indeterminate)).
주변기기 인터페이스(770)는 위에 구체적으로 언급되지 않은 임의의 하드웨어 인터페이스를 포함할 수 있다. 주변기기들은 일반적으로 시스템(700)에 종속적으로 접속하는 디바이스들을 말한다. 종속적 접속은, 동작이 실행되며 사용자가 상호작용하는 소프트웨어 및/또는 하드웨어 플랫폼을 시스템(700)이 제공하는 것이다.
도 8은 수신 신호 에러 점검이 구현될 수 있는 모바일 디바이스의 일 실시예의 블록도이다. 디바이스(800)는, 컴퓨팅 태블릿, 모바일 폰 또는 스마트폰, 무선-인에이블형 e-리더기, 또는 다른 모바일 디바이스와 같은, 모바일 컴퓨팅 디바이스를 나타낸다. 컴포넌트들 중 일부가 일반적으로 도시되어 있으며 이러한 디바이스의 모든 컴포넌트들이 디바이스(800)에 도시되는 것은 아니라는 점이 이해될 것이다.
디바이스(800)는 프로세서(810)를 포함하고, 이는 디바이스(800)의 주요 프로세싱 동작들을 수행한다. 프로세서(810)는, 마이크로프로세서들, 애플리케이션 프로세서들, 마이크로제어기들, 프로그래머블 로직 디바이스들, 또는 다른 처리 수단과 같은, 하나 이상의 물리적 디바이스들을 포함할 수 있다. 일 실시예에서, 프로세서(810)는 프로세서 다이 뿐만 아니라 광학적 인터페이스 컴포넌트들을 포함한다. 따라서, 프로세서 다이 및 광 컴포넌트들은 동일 패키지 내에 존재한다. 이러한 프로세서 패키지는 본 명세서에 설명되는 임의의 실시예에 따라 광 커넥터와 광학적으로 인터페이스할 수 있다.
프로세서(810)에 의해 수행되는 프로세싱 동작들은 애플리케이션들 및/또는 디바이스 기능들이 실행되는 운영 플랫폼 또는 운영 체제의 실행을 포함한다. 이러한 프로세싱 동작들은 인간 사용자에 의한 또는 다른 디바이스들에 의한 I/O(Input/Output)에 관련되는 동작들, 전력 관리에 관련되는 동작들, 및/또는 디바이스(800)를 다른 디바이스에 접속시키는 것에 관련되는 동작들을 포함한다. 프로세싱 동작들은 오디오 I/O 및/또는 디스플레이 I/O에 관련되는 동작들을 또한 포함할 수 있다.
일 실시예에서, 디바이스(800)는, 컴퓨팅 디바이스에 오디오 기능들을 제공하는 것과 연관되는 하드웨어(예를 들어, 오디오 하드웨어 및 오디오 회로들) 및 소프트웨어(예를 들어, 드라이버들, 코덱들) 컴포넌트들을 나타내는, 오디오 서브시스템(820)을 포함한다. 오디오 기능들은 스피커 및/또는 헤드폰 출력, 뿐만 아니라 마이크로폰 입력을 포함할 수 있다. 이러한 기능들을 위한 디바이스들은 디바이스(800) 내에 통합될 수 있거나 또는 디바이스(800)에 접속될 수 있다. 일 실시예에서, 사용자는 프로세서(810)에 의해 수신되고 처리되는 오디오 커맨드들을 제공하는 것에 의해 디바이스(800)와 상호작용한다.
디스플레이 서브시스템(830)은 사용자가 컴퓨팅 디바이스와 상호작용하기 위한 시각적 및/또는 촉각적 디스플레이를 제공하는 하드웨어(예를 들어, 디스플레이 디바이스들) 및 소프트웨어(예를 들어, 드라이버들) 컴포넌트들을 나타낸다. 디스플레이 서브시스템(830)은, 사용자에게 디스플레이를 제공하는데 사용되는 특정 스크린 또는 하드웨어 디바이스를 포함하는 디스플레이 인터페이스(832)를 포함한다. 일 실시예에서, 디스플레이 인터페이스(832)는 디스플레이에 관련되는 적어도 몇몇 프로세싱을 수행하기 위한 프로세서(810)와는 별개인 로직을 포함한다. 일 실시예에서, 디스플레이 서브시스템(830)은 출력 및 입력 양자 모두를 사용자에게 제공하는 터치스크린 디바이스를 포함한다.
I/O 제어기(840)는 사용자와의 상호작용에 관련되는 하드웨어 디바이스들 및 소프트웨어 컴포넌트들을 나타낸다. I/O 제어기(840)는 오디오 서브시스템(820) 및/또는 디스플레이 서브시스템(830)의 일부인 하드웨어를 관리하도록 동작할 수 있다. 추가로, I/O 제어기(840)는 사용자가 시스템과 상호작용할 수 있는 디바이스(800)에 접속하는 추가 디바이스들에 대한 접속 지점을 예시한다. 예를 들어, 디바이스(800)에 부착될 수 있는 디바이스들은, 마이크로폰 디바이스들, 스피커 또는 스테레오 시스템들, 비디오 시스템들 또는 다른 디스플레이 디바이스, 키보드 또는 키패드 디바이스들, 또는 카드 판독기들 또는 다른 디바이스들과 같이 특정 응용들에 의한 사용을 위한 다른 I/O 디바이스들을 포함할 수 있다.
위에 언급된 바와 같이, I/O 제어기(840)는 오디오 서브시스템(820) 및/또는 디스플레이 서브시스템(830)과 상호작용할 수 있다. 예를 들어, 마이크로폰 또는 다른 오디오 디바이스를 통한 입력은 디바이스(800)의 하나 이상의 애플리케이션들 또는 기능들에 대한 입력 또는 커맨드들을 제공할 수 있다. 추가로, 오디오 출력은 디스플레이 출력 대신에 또는 디스플레이 출력에 추가하여 제공될 수 있다. 다른 예에서, 디스플레이 서브시스템이 터치스크린을 포함하는 경우, 디스플레이 디바이스는, 또한, I/O 제어기(840)에 의해 적어도 일부가 관리될 수 있는 입력 디바이스로서 역할을 한다. I/O 제어기(840)에 의해 관리되는 I/O 기능들을 제공하기 위한 디바이스(800) 상의 추가적인 버튼들 또는 스위치들이 또한 존재할 수 있다.
일 실시예에서, I/O 제어기(840)는, 가속도계들, 카메라들, 광 센서들 또는 다른 환경 센서들, 자이로스코프들, GPS(Global Positioning System), 또는 디바이스(800)에 포함될 수 있는 다른 하드웨어와 같은 디바이스들을 관리한다. 입력은 직접적인 사용자 상호작용의 일부일 뿐만 아니라, 그 동작들에 영향을 주는 환경 입력을 시스템에 제공하는 것(예를 들어, 노이즈에 대한 필터링, 밝기 검출에 대한 디스플레이들의 조절, 카메라에 대한 플래시의 적용, 또는 다른 특징들)일 수 있다. 일 실시예에서, 디바이스(800)는 배터리 전력 사용량, 배터리의 충전, 및 절전 동작에 관련되는 특징들을 관리하는 전력 관리(850)를 포함한다.
메모리 서브시스템(860)은 디바이스(800)에서 정보를 저장하는 메모리 디바이스(들)(862)를 포함한다. 메모리 서브시스템(860)은 불휘발성(메모리 디바이스로의 전력이 중단되는 경우 상태가 변경되지 않음) 및/또는 휘발성(메모리 디바이스로의 전력이 중단되는 경우 상태가 불확정적임) 메모리 디바이스들을 포함할 수 있다. 메모리(860)는, 애플리케이션 데이터, 사용자 데이터, 음악, 사진들, 문서들 또는 다른 데이터, 뿐만 아니라 시스템(800)의 애플리케이션들 및 기능들의 실행에 관련되는 시스템 데이터(장기적 또는 일시적)를 저장할 수 있다. 일 실시예에서, 메모리 서브시스템(860)은 (또한 시스템(800)의 제어의 일부로서 고려될 수 있고, 잠재적으로 프로세서(810)의 일부로서 고려될 수 있는) 메모리 제어기(864)를 포함한다. 메모리 제어기(864)는 메모리 디바이스(862)에 커맨드들을 발생시키고 발행하는 스케줄러를 포함한다.
일 실시예에서, 메모리 서브시스템(860) 및 메모리 디바이스(862)는 주기적 트레이닝을 통해 생성되는 피드백에 기초하여 I/O 타이밍 보상을 구현한다. 메모리 디바이스(862)는 트레이닝 상태에 진입하고, 메모리 제어기(864)는 메모리 디바이스와 메모리 제어기 사이에 I/O 인터페이스를 통해 트레이닝 신호를 보내고, 이를 메모리 디바이스는 자신의 메모리 어레이에 저장하지 않는다. 일 실시예에서, 메모리 디바이스(862)는 에러들에 대해 수신된 트레이닝 신호를 평가한다. 일 실시예에서, 메모리 디바이스(862)는 트레이닝 신호를 트레이닝 버퍼에 저장하고, 이는 트레이닝 신호를 저장하는데 사용되는 임의의 버퍼일 수 있고, 메모리 제어기(864)는 버퍼링된 트레이닝 신호를 판독하고, 에러들에 대해 신호를 평가한다. 검출되는 에러들에 기초하여, 시스템은, I/O 타이밍에 영향을 주는 환경적 조건들에서의 변화들을 보상하기 위해, 메모리 제어기 또는 메모리 디바이스 중 어느 하나 또는 양자 모두의 하나 이상의 I/O 파라미터들을 조절한다.
접속성(connectivity)(870)은 디바이스(800)가 외부 디바이스들과 통신할 수 있게 하는 하드웨어 디바이스들(예를 들어, 무선 및/또는 유선 커넥터들 및 통신 하드웨어) 및 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 디바이스는, 헤드셋들, 프린터들 또는 다른 디바이스들과 같은 주변기기들, 뿐만 아니라, 다른 컴퓨팅 디바이스들, 무선 액세스 포인트들 또는 기지국들과 같은 별도의 디바이스들일 수 있다.
접속성(870)은 다수의 상이한 타입들의 접속성을 포함할 수 있다. 일반화하기 위해, 디바이스(800)는 셀룰러 접속성(872) 및 무선 접속성(874)을 갖는 것으로 도시된다. 셀룰러 접속성(872)은, GSM(Global System for Mobile communications) 또는 변형물들 또는 파생물들, CDMA(Code Division Multiple Access) 또는 변형물들 또는 파생물들, TDM(Time Division Multiplexing) 또는 변형물들 또는 파생물들, LTE(Long Term Evolution - "4G"라고도 함), 또는 다른 셀룰러 서비스 표준들을 통해 제공되는 것과 같이, 무선 캐리어들에 의해 제공되는 셀룰러 네트워크 접속성을 일반적으로 말한다. 무선 접속성(874)은 셀룰러가 아닌 무선 접속성을 말하며, 개인 영역 네트워크들(예를 들어, 블루투스), 로컬 영역 네트워크들(예를 들어, WiFi), 및/또는 광역 네트워크(예를 들어, WiMax), 또는 다른 무선 통신을 포함할 수 있다. 무선 통신은 비-고형 매체(non-solid medium)를 통한 변조된 전자기 방사의 사용에 의한 데이터의 전송을 말한다. 유선 통신은 고형 통신 매체를 통해 발생한다.
주변기기 접속들(880)은, 하드웨어 인터페이스들 및 커넥터들, 뿐만 아니라, 주변 접속들을 이루기 위한 소프트웨어 컴포넌트들(예를 들어 드라이버들, 프로토콜 스택들)을 포함한다. 디바이스(800)는 다른 컴퓨팅 디바이스들로의 주변 디바이스("~로"(882))일 수 있을 뿐만 아니라, 그에 접속되는 주변 디바이스들("~로부터"(884))을 가질 수 있다는 점 양자 모두가 이해될 것이다. 디바이스(800)는 디바이스(800) 상의 콘텐츠를 관리하는 것(예를 들어, 다운로딩 및/또는 업로딩, 변경, 동기화)과 같은 목적들로 다른 컴퓨팅 디바이스들에 접속하는 "도킹(docking)" 커넥터를 일반적으로 갖는다. 추가로, 도킹 커넥터는, 디바이스(800)가, 예를 들어, 시청각 또는 다른 시스템들에 출력되는 콘텐츠를 제어하게 하는 특정 주변기기들에 디바이스(800)가 접속하게 할 수 있다.
사유 도킹 커넥터 또는 다른 사유 접속 하드웨어에 더하여, 디바이스(800)는 공통 또는 표준-기반의 커넥터들을 통해 주변기기 접속들(880)을 이룰 수 있다. 공통 타입들은 (다수의 상이한 하드웨어 인터페이스들 중 임의의 것을 포함할 수 있는) USB(Universal Serial Bus) 커넥터, MDP(MiniDisplayPort)를 포함하는 DisplayPort, HDMI(High Definition Multimedia Interface), Firewire, 또는 다른 타입을 포함할 수 있다.
일 양상에서, 메모리 디바이스와의 통신을 위해 I/O(Input/Output) 설정들을 트레이닝하는 방법은, 메모리 디바이스에 의해, 메모리 디바이스의 트레이닝 모드에 진입하는 단계; 트레이닝 모드에 있는 동안 제어기로부터 트레이닝 신호를 수신하는 단계; 트레이닝 신호를 샘플링 회로에 의해 샘플링하는 단계; 메모리 디바이스에 의해, 트레이닝 신호를 샘플링하는 단계에서의 에러들의 수를 추적하는 단계; 및 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 단계를 포함한다.
일 실시예에서, 트레이닝 모드에 진입하는 단계는, 메모리 디바이스의 리프레시 모드 동안 트레이닝 모드에 진입하는 단계를 포함한다. 일 실시예에서, 트레이닝 신호를 수신하는 단계는, 트레이닝 신호를 기입 커맨드로서 수신하는 단계; 및 트레이닝 신호를 메모리 디바이스의 메모리 어레이에 기입하는 대신에 트레이닝 신호를 폐기하는 단계를 포함한다. 일 실시예에서, 에러들의 수를 추적하는 단계는, 트레이닝 신호들의 시퀀스에서 발생하는 에러들의 수를 카운터에 의해 카운트하는 단계를 포함한다. 일 실시예에서, 조절을 야기하는 단계는, 조절할 적어도 하나의 I/O 파라미터를 제어기가 결정하게 하기 위해 에러들의 수를 제어기에 보내는 단계를 포함한다. 일 실시예에서, 조절을 야기하는 단계는, 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함한다. 일 실시예에서, 조절을 야기하는 단계는, 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함한다. 일 실시예에서, 조절을 야기하는 단계는, 조절할 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 단계를 더 포함한다.
일 양상에서, 콘텐츠를 저장하고 있는 컴퓨터 판독가능 스토리지 매체를 포함하는 제조 물품은, 실행될 때, 메모리 디바이스에 의해, 메모리 디바이스의 트레이닝 모드에 진입하는 것; 트레이닝 모드에 있는 동안 제어기로부터 트레이닝 신호를 수신하는 것; 트레이닝 신호를 샘플링 회로에 의해 샘플링하는 것; 메모리 디바이스에 의해, 트레이닝 신호를 샘플링하는 것에서의 에러들의 수를 추적하는 것; 및 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 것을 포함하는 동작들을 수행한다.
일 실시예에서, 트레이닝 모드에 진입하는 콘텐츠는, 메모리 디바이스의 리프레시 모드 동안 트레이닝 모드에 진입하는 콘텐츠를 포함한다. 일 실시예에서, 트레이닝 신호를 수신하는 콘텐츠는, 트레이닝 신호를 기입 커맨드로서 수신하는 콘텐츠; 및 트레이닝 신호를 메모리 디바이스의 메모리 어레이에 기입하는 대신에 트레이닝 신호를 폐기하는 콘텐츠를 포함한다. 일 실시예에서, 에러들의 수를 추적하는 콘텐츠는, 트레이닝 신호들의 시퀀스에서 발생하는 에러들의 수를 카운터에 의해 카운트하는 콘텐츠를 포함한다. 일 실시예에서, 조절을 야기하는 콘텐츠는, 조절할 적어도 하나의 I/O 파라미터를 제어기가 결정하게 하기 위해 에러들의 수를 제어기에 보내는 콘텐츠를 포함한다. 일 실시예에서, 조절을 야기하는 콘텐츠는, 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 콘텐츠를 포함한다. 일 실시예에서, 조절을 야기하는 콘텐츠는, 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 콘텐츠를 포함한다. 일 실시예에서, 조절을 야기하는 콘텐츠는, 조절할 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 콘텐츠를 더 포함한다.
일 양상에서, 장치는, 메모리 디바이스에 의해, 메모리 디바이스의 트레이닝 모드에 진입하는 수단; 트레이닝 모드에 있는 동안 제어기로부터 트레이닝 신호를 수신하는 수단; 트레이닝 신호를 샘플링 회로에 의해 샘플링하는 수단; 메모리 디바이스에 의해, 트레이닝 신호를 샘플링하는 것에서의 에러들의 수를 추적하는 수단; 및 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 수단을 포함한다.
일 실시예에서, 트레이닝 모드에 진입하는 수단은, 메모리 디바이스의 리프레시 모드 동안 트레이닝 모드에 진입하는 수단을 포함한다. 일 실시예에서, 트레이닝 신호를 수신하는 수단은, 트레이닝 신호를 기입 커맨드로서 수신하는 수단; 및 트레이닝 신호를 메모리 디바이스의 메모리 어레이에 기입하는 대신에 트레이닝 신호를 폐기하는 수단을 포함한다. 일 실시예에서, 에러들의 수를 추적하는 수단은, 트레이닝 신호들의 시퀀스에서 발생하는 에러들의 수를 카운터에 의해 카운트하는 수단을 포함한다. 일 실시예에서, 조절을 야기하는 수단은, 조절할 적어도 하나의 I/O 파라미터를 제어기가 결정하게 하기 위해 에러들의 수를 제어기에 보내는 수단을 포함한다. 일 실시예에서, 조절을 야기하는 수단은, 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 수단을 포함한다. 일 실시예에서, 조절을 야기하는 수단은, 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 수단을 포함한다. 일 실시예에서, 조절을 야기하는 수단은, 조절할 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 수단을 더 포함한다.
일 양상에서, 트레이닝가능한 I/O(Input/Output) 설정들을 갖는 메모리 디바이스는, 메모리 디바이스가 메모리 디바이스의 트레이닝 모드에 진입하게 하는 상태 제어기; 트레이닝 모드에 있는 동안 제어기로부터 트레이닝 신호를 수신하기 위해, 제어기 디바이스와 인터페이스는 하드웨어 콘택트(hardware contact); 트레이닝 신호를 샘플링하고 트레이닝 신호를 샘플링할 때 에러들의 수를 추적하는 수신기 하드웨어; 및 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 로직을 포함한다.
일 실시예에서, 상태 제어기는 메모리 디바이스의 리프레시 모드 동안 메모리 디바이스가 트레이닝 모드에 진입하게 한다. 일 실시예에서, 수신기 하드웨어는 트레이닝 신호를 메모리 디바이스의 메모리 어레이에 기입하는 데신에 트레이닝 신호를 폐기한다. 일 실시예에서, 메모리 디바이스는 트레이닝 신호들의 시퀀스에서 발생하는 에러들의 수를 카운트하는 카운터를 더 포함한다. 일 실시예에서, 로직은 제어기의 송신기의 적어도 하나의 I/O 파라미터에 대한 조절을 야기한다. 일 실시예에서, 로직은 조절할 적어도 하나의 I/O 파라미터를 결정하기 위한 탐색 기능 로직을 더 포함한다.
일 양상에서, 메모리 디바이스와의 통신을 위해 I/O(Input/Output) 설정들을 트레이닝하는 방법은, 트레이닝 신호를 기입 커맨드로서 메모리 디바이스에 보내는 단계- 메모리 디바이스는 트레이닝 신호를 레지스터에 기입하지만 메모리 디바이스의 메모리 어레이에는 기입하지 않음 -; 레지스터로부터 트레이닝 신호를 판독하는 단계; 판독된 트레이닝 신호를 에러들에 대해 점검하는 단계; 및 에러들에 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 단계를 포함한다.
일 실시예에서, 조절을 야기하는 단계는 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함한다. 일 실시예에서, 조절을 야기하는 단계는 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함한다. 일 실시예에서, 조절을 야기하는 단계는 조절할 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 단계를 더 포함한다. 일 실시예에서, 본 방법은 메모리 디바이스가 리프레시 상태에 있는 동안 트레이닝 상태에 진입하게 하는 커맨드를 보내는 단계를 더 포함한다.
일 양상에서, 콘텐츠를 저장하고 있는 컴퓨터 판독가능 스토리지 매체를 포함하는 제조 물품은, 실행될 때, 트레이닝 신호를 기입 커맨드로서 메모리 디바이스에 보내는 것- 메모리 디바이스는 트레이닝 신호를 레지스터에 기입하지만 메모리 디바이스의 메모리 어레이에는 기입하지 않음 -; 레지스터로부터 트레이닝 신호를 판독하는 것; 판독된 트레이닝 신호를 에러들에 대해 점검하는 것; 및 에러들에 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 것을 포함하는 동작들을 수행한다.
일 실시예에서, 조절을 야기하는 콘텐츠는 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 콘텐츠를 포함한다. 일 실시예에서, 조절을 야기하는 콘텐츠는 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 콘텐츠를 포함한다. 일 실시예에서, 조절을 야기하는 콘텐츠는 조절할 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 콘텐츠를 더 포함한다. 일 실시예에서, 본 제조 물품은 메모리 디바이스가 리프레시 상태에 있는 동안 트레이닝 상태에 진입하게 하는 커맨드를 보내는 콘텐츠를 더 포함한다.
일 양상에서, 메모리 디바이스와의 통신을 위해 I/O(Input/Output) 설정들을 트레이닝하는 장치는, 트레이닝 신호를 기입 커맨드로서 메모리 디바이스에 보내는 수단- 메모리 디바이스는 트레이닝 신호를 레지스터에 기입하지만 메모리 디바이스의 메모리 어레이에는 기입하지 않음 -; 레지스터로부터 트레이닝 신호를 판독하는 수단; 판독된 트레이닝 신호를 에러들에 대해 점검하는 수단; 및 에러들에 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 수단을 포함한다.
일 실시예에서, 조절을 야기하는 수단은 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 수단을 포함한다. 일 실시예에서, 조절을 야기하는 수단은 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 수단을 포함한다. 일 실시예에서, 조절을 야기하는 수단은 조절할 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 수단을 더 포함한다. 일 실시예에서, 본 장치는 메모리 디바이스가 리프레시 상태에 있는 동안 트레이닝 상태에 진입하게 하는 커맨드를 보내는 수단을 더 포함한다.
일 양상에서, 메모리 디바이스와의 통신을 위해 I/O(Input/Output) 설정들을 트레이닝하는 제어기 디바이스는, 메모리 디바이스와 인터페이스하는 하드웨어 콘택트(hardware contact)- 제어기 디바이스는, 하드웨어 콘택트를 통해, 트레이닝 신호를 기입 커맨드로서 리프레시 상태에 있는 메모리 디바이스에 보내고, 메모리 디바이스는 트레이닝 신호를 레지스터에 기입하지만 메모리 디바이스의 메모리 어레이에는 기입하지 않으며, 레지스터로부터 트레이닝 신호를 판독함 -; 및 판독된 트레이닝 신호를 에러들에 대해 점검하고, 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 로직을 포함한다.
일 실시예에서, 로직은 메모리 디바이스의 적어도 하나의 I/O 파라미터에 대한 조절을 야기한다. 일 실시예에서, 로직은 제어기의 적어도 하나의 I/O 파라미터에 대한 조절을 야기한다.
본 명세서에 도시된 것과 같은 흐름도들은 다양한 프로세스 액션들의 시퀀스들의 예들을 제공한다. 달리 명시되지 않는다면, 특정 시퀀스 또는 순서로 도시되지만, 액션들의 순서는 수정될 수 있다. 따라서, 도시된 실시예들은 단지 일 예로서 이해되어야 하고, 프로세스는 상이한 순서로 수행될 수 있고, 일부 액션들은 병렬로 수행될 수 있다. 추가적으로, 다양한 실시예들에서 하나 이상의 액션들이 생략될 수 있으며; 따라서, 모든 실시예에 모든 액션들이 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
다양한 동작들 또는 기능들이 본 명세서에 설명되는 정도로, 이들은 소프트웨어 코드, 명령어들, 구성 및/또는 데이터로서 설명되거나 또는 정의될 수 있다. 이러한 콘텐츠는 직접 실행 가능한("객체" 또는 "실행가능" 형태), 소스 코드, 또는 차이 코드(difference code)("델타(delta)" 또는 "패치(patch)" 코드)일 수 있다. 본 명세서에 설명되는 실시예들의 소프트웨어 콘텐츠는, 저장된 콘텐츠를 갖는 제조 물품을 통해, 또는 통신 인터페이스를 통해 데이터를 보내는 통신 인터페이스를 동작하는 방법을 통해, 제공될 수 있다. 머신 판독가능 스토리지 매체는 머신으로 하여금 설명되는 기능들 또는 동작들을 수행하게 할 수 있고, 기록가능/기록불가능 매체(예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 디스크 스토리지 매체, 광 스토리지 매체, 플래시 메모리 디바이스 등)와 같은, 머신(예를 들어, 컴퓨팅 디바이스, 전자 시스템 등)에 의해 액세스가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는, 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 접속, 디스크 제어기 등과 같은, 다른 디바이스에 통신하는 하드와이어드, 무선, 광 등의 매체 중 임의의 것에 인터페이스하는 임의의 메커니즘을 포함한다. 이러한 통신 인터페이스는 소프트웨어 콘텐츠를 설명하는 데이터 신호를 제공하는 통신 인터페이스를 마련하기 위해 구성 파라미터들을 제공하는 것 및/또는 신호들을 보내는 것에 의해 구성될 수 있다. 통신 인터페이스는 통신 인터페이스에 보내지는 하나 이상의 커맨드들 또는 신호들을 통해 액세스될 수 있다.
본 명세서에 설명되는 다양한 컴포넌트들은 설명되는 동작들 또는 기능들을 수행하는 수단일 수 있다. 본 명세서에 설명되는 각각의 컴포넌트는, 소프트웨어, 하드웨어, 또는 이들의 조합을 포함한다. 이러한 컴포넌트들은, 소프트웨어 모듈들, 하드웨어 모듈들, 특수 목적 하드웨어(예를 들어, 애플리케이션 특정 하드웨어, ASIC들(Application Specific Integrated Circuits), DSP들(Digital Signal Processors) 등), 임베디드 제어기, 하드와이어드 회로(hardwired circuitry) 등으로서 구현될 수 있다.
본 명세서에 설명된 것 외에도, 본 발명의 개시된 실시예들 및 구현들에 대해 그 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다. 따라서, 본 명세서에서의 예시들 및 예들은 한정적 의미가 아니라 예시적 의미로 해석되어야 한다. 본 발명의 범위는 오직 이하의 청구항들을 참조하여 측정되어야 한다.

Claims (24)

  1. 부정합형 아키텍처에 대한 타이밍 제어를 관리하기 위한 방법으로서,
    메모리 디바이스에 의해, 상기 메모리 디바이스의 트레이닝 모드에 진입하는 단계;
    상기 트레이닝 모드에 있는 동안 제어기로부터 트레이닝 신호를 수신하는 단계 - 상기 트레이닝 신호는 데이터 스트림을 포함함 -;
    상기 트레이닝 신호의 상기 데이터 스트림을 샘플링 회로에 의해 샘플링하는 단계;
    상기 메모리 디바이스에 의해, 상기 트레이닝 신호의 상기 데이터 스트림을 샘플링하는 단계에서의 데이터 에러들의 수를 추적하는 단계; 및
    상기 데이터 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 트레이닝 모드에 진입하는 단계는, 상기 메모리 디바이스의 리프레시 모드 동안 상기 트레이닝 모드에 진입하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 트레이닝 신호를 수신하는 단계는,
    상기 트레이닝 신호를 기입 커맨드로서 수신하는 단계; 및
    상기 트레이닝 신호를 상기 메모리 디바이스의 메모리 어레이에 기입하는 대신에 상기 트레이닝 신호를 폐기하는 단계
    를 포함하는 방법.
  4. 제1항에 있어서,
    상기 에러들의 수를 추적하는 단계는, 트레이닝 신호들의 시퀀스에서 발생하는 에러들의 수를 카운터에 의해 카운트하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 조절을 야기하는 단계는, 조절할 상기 적어도 하나의 I/O 파라미터를 상기 제어기가 결정하게 하기 위해 상기 에러들의 수를 상기 제어기에 보내는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 조절을 야기하는 단계는, 상기 메모리 디바이스의 수신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 조절을 야기하는 단계는, 상기 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 조절을 야기하는 단계는, 조절할 상기 적어도 하나의 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 단계를 더 포함하는 방법.
  9. 부정합형 아키텍처에 대한 타이밍 제어를 관리하기 위한 메모리 디바이스로서,
    상기 메모리 디바이스가 상기 메모리 디바이스의 트레이닝 모드에 진입하게 하는 상태 제어기;
    상기 트레이닝 모드에 있는 동안 제어기 디바이스로부터 트레이닝 신호를 수신하기 위해, 제어기 디바이스와 인터페이스하는 하드웨어 콘택트(hardware contact) - 상기 트레이닝 신호는 데이터 스트림을 포함함 -;
    상기 트레이닝 신호의 상기 데이터 스트림을 샘플링하고 상기 트레이닝 신호의 상기 데이터 스트림의 샘플링에서 데이터 에러들의 수를 추적하는 수신기 하드웨어; 및
    상기 데이터 에러들의 수에 기초하여 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 로직
    을 포함하는 메모리 디바이스.
  10. 제9항에 있어서,
    상기 상태 제어기는 상기 메모리 디바이스의 리프레시 모드 동안 상기 메모리 디바이스가 상기 트레이닝 모드에 진입하게 하는 메모리 디바이스.
  11. 제9항에 있어서,
    상기 수신기 하드웨어는 상기 트레이닝 신호를 상기 메모리 디바이스의 메모리 어레이에 기입하는 대신에 상기 트레이닝 신호를 폐기하는 메모리 디바이스.
  12. 제9항에 있어서,
    트레이닝 신호들의 시퀀스에서 발생하는 에러들의 수를 카운트하는 카운터를 더 포함하는 메모리 디바이스.
  13. 제9항에 있어서,
    상기 로직은 상기 제어기 디바이스의 송신기의 적어도 하나의 I/O 파라미터에 대한 조절을 야기하는 메모리 디바이스.
  14. 제9항에 있어서,
    상기 로직은 조절할 상기 적어도 하나의 I/O 파라미터를 결정하기 위한 탐색 기능 로직을 더 포함하는 메모리 디바이스.
  15. 부정합형 아키텍처에 대한 타이밍 제어를 관리하기 위한 방법으로서,
    제어기에 의해, 트레이닝 신호를 기입 커맨드로서 메모리 디바이스에 보내는 단계 - 상기 메모리 디바이스는 상기 트레이닝 신호를 레지스터에 기입하지만 상기 메모리 디바이스의 메모리 어레이에는 기입하지 않고, 상기 트레이닝 신호는 복수의 데이터 값을 포함함 -;
    상기 레지스터로부터 상기 트레이닝 신호를 판독하는 단계;
    상기 복수의 데이터 값에서의 에러들에 대해 상기 판독된 트레이닝 신호를 점검하는 단계; 및
    상기 복수의 데이터 값에서의 에러들의 수에 기초하여 상기 메모리 디바이스의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 단계
    를 포함하는 방법.
  16. 삭제
  17. 제15항에 있어서,
    상기 조절을 야기하는 단계는, 상기 제어기의 송신 I/O 파라미터에 대한 조절을 야기하는 단계를 포함하는 방법.
  18. 제15항에 있어서,
    상기 조절을 야기하는 단계는, 조절할 상기 I/O 파라미터를 결정하기 위해 탐색 기능을 컴퓨팅하는 단계를 더 포함하는 방법.
  19. 제15항에 있어서,
    상기 메모리 디바이스가 리프레시 상태에 있는 동안 트레이닝 상태에 진입하게 하는 커맨드를 보내는 단계를 더 포함하는 방법.
  20. 부정합형 아키텍처에 대한 타이밍 제어를 관리하기 위한 제어기 디바이스로서,
    메모리 디바이스와 인터페이스하는 하드웨어 콘택트(hardware contact) - 상기 제어기 디바이스는, 상기 하드웨어 콘택트를 통해,
    트레이닝 신호를 기입 커맨드로서 리프레시 상태에 있는 상기 메모리 디바이스에 보내고 - 상기 트레이닝 신호는 복수의 데이터 값을 포함하고, 상기 메모리 디바이스는 상기 복수의 데이터 값을 포함하는 트레이닝 신호를 레지스터에 기입하지만 상기 메모리 디바이스의 메모리 어레이에는 기입하지 않음 -,
    상기 레지스터로부터 상기 복수의 데이터 값을 포함하는 트레이닝 신호를 판독함 -; 및
    상기 복수의 데이터 값의 에러들에 대해 상기 판독된 트레이닝 신호를 점검하고, 상기 복수의 데이터 값에서의 에러들의 수에 기초하여 상기 메모리 디바이스의 적어도 하나의 I/O(Input/Output) 파라미터에 대한 조절을 야기하는 로직
    을 포함하는 제어기 디바이스.
  21. 삭제
  22. 제20항에 있어서,
    상기 로직은 상기 제어기 디바이스의 적어도 하나의 I/O 파라미터에 대한 조절을 야기하는 제어기 디바이스.
  23. 삭제
  24. 삭제
KR1020167002095A 2013-09-04 2014-08-25 부정합형 신호 수신기에 대한 주기적 트레이닝 KR102024682B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/018,217 2013-09-04
US14/018,217 US9218575B2 (en) 2013-09-04 2013-09-04 Periodic training for unmatched signal receiver
PCT/US2014/052492 WO2015034701A1 (en) 2013-09-04 2014-08-25 Periodic training for unmatched signal receiver

Publications (2)

Publication Number Publication Date
KR20160023881A KR20160023881A (ko) 2016-03-03
KR102024682B1 true KR102024682B1 (ko) 2019-09-24

Family

ID=52584652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167002095A KR102024682B1 (ko) 2013-09-04 2014-08-25 부정합형 신호 수신기에 대한 주기적 트레이닝

Country Status (6)

Country Link
US (1) US9218575B2 (ko)
EP (1) EP3042293B1 (ko)
JP (1) JP6274683B2 (ko)
KR (1) KR102024682B1 (ko)
CN (1) CN105706069B (ko)
WO (1) WO2015034701A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9287003B2 (en) * 2013-12-06 2016-03-15 Rambus Inc. Multi-cycle write leveling
US9348705B1 (en) 2014-06-26 2016-05-24 Inphi Corporation Memory controller system with non-volatile backup storage
US9535119B2 (en) 2014-06-30 2017-01-03 Intel Corporation Duty cycle based timing margining for I/O AC timing
US9921899B2 (en) * 2014-12-18 2018-03-20 Oracle International Corporation Monitoring serial link errors
US9886987B1 (en) * 2014-12-30 2018-02-06 Cadence Design System, Inc. System and method for data-mask training in non-provisioned random access memory
US10261697B2 (en) * 2015-06-08 2019-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
KR102461460B1 (ko) * 2015-06-08 2022-11-02 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 pvt 보상 방법
US9715907B1 (en) * 2016-05-09 2017-07-25 Invecas, Inc. Optimal data eye for improved Vref margin
US10103837B2 (en) * 2016-06-23 2018-10-16 Advanced Micro Devices, Inc. Asynchronous feedback training
KR20180005081A (ko) 2016-07-05 2018-01-15 삼성전자주식회사 커맨드 윈도우 발생부를 갖는 메모리 장치
US10115480B1 (en) * 2017-07-03 2018-10-30 Qualcomm Incorporated Double data rate synchronous dynamic random access memory (“DDR SDRAM”) data strobe signal calibration
US11604714B2 (en) 2017-08-09 2023-03-14 Samsung Electronics Co, Ltd. Memory device for efficiently determining whether to perform re-training operation and memory system including the same
KR102392055B1 (ko) * 2017-08-09 2022-04-28 삼성전자주식회사 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템
US10572183B2 (en) * 2017-10-18 2020-02-25 Advanced Micro Devices, Inc. Power efficient retraining of memory accesses
KR102407439B1 (ko) * 2017-12-05 2022-06-10 삼성전자주식회사 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩
KR102401182B1 (ko) * 2018-01-19 2022-05-24 삼성전자주식회사 메모리 장치 및 메모리 패키지
KR102499794B1 (ko) * 2018-05-21 2023-02-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10573272B2 (en) 2018-06-28 2020-02-25 Intel Corporation Device, method and system for providing a delayed clock signal to a circuit for latching data
KR102674619B1 (ko) * 2018-07-11 2024-06-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
JP2020047340A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 不揮発性メモリ及びメモリシステム
KR102691395B1 (ko) * 2018-12-20 2024-08-05 에스케이하이닉스 주식회사 메모리 시스템, 메모리 시스템의 동작 방법 및 메모리 콘트롤러
KR102685470B1 (ko) * 2018-12-24 2024-07-17 에스케이하이닉스 주식회사 트래이닝 기능을 갖는 반도체 장치 및 반도체 시스템
US11449439B1 (en) 2019-07-25 2022-09-20 Rambus Inc. Fragmented periodic timing calibration
KR20210033719A (ko) * 2019-09-19 2021-03-29 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR20220023911A (ko) 2020-08-21 2022-03-03 삼성전자주식회사 반도체 장치 및 메모리 시스템
KR20220121440A (ko) 2021-02-25 2022-09-01 삼성전자주식회사 메모리 장치의 dq 캘리브레이션 패턴의 최적화 방법 및 이를 수행하는 컴퓨팅 시스템
KR20220144093A (ko) 2021-04-19 2022-10-26 삼성전자주식회사 메모리 장치 및 메모리 장치와 호스트 장치의 구동 방법
KR20230064847A (ko) * 2021-11-04 2023-05-11 삼성전자주식회사 메모리 장치, 호스트 장치 및 메모리 장치의 구동 방법
CN115113686A (zh) * 2022-04-25 2022-09-27 腾讯科技(深圳)有限公司 时序调整方法和装置、存储介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130811A1 (en) * 2006-06-30 2008-06-05 Samsung Electronics Co., Ltd. Circuit and method for removing skew in data transmitting/receiving system

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008166A1 (en) * 1996-08-16 1998-02-26 Tokyo Electron Limited Semiconductor memory device having error detection and correction
WO1999046775A2 (en) * 1998-03-10 1999-09-16 Rambus, Inc. Performing concurrent refresh and current control operations in a memory subsystem
JP3090138B2 (ja) * 1999-02-04 2000-09-18 日本電気株式会社 受信機
US6493836B2 (en) * 2000-11-30 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus for scheduling and using memory calibrations to reduce memory errors in high speed memory devices
US6847617B2 (en) 2001-03-26 2005-01-25 Intel Corporation Systems for interchip communication
US6522174B2 (en) 2001-04-16 2003-02-18 Intel Corporation Differential cascode current mode driver
US7155006B2 (en) 2001-09-21 2006-12-26 Intel Corporation Method and apparatus for outbound wave subtraction using a variable offset amplifier
US6894536B2 (en) 2001-12-10 2005-05-17 Intel Corporation Low power NRZ interconnect for pulsed signaling
US7259606B2 (en) * 2004-01-27 2007-08-21 Nvidia Corporation Data sampling clock edge placement training for high speed GPU-memory interface
US7246274B2 (en) 2004-09-10 2007-07-17 Rambus Inc. Method and apparatus for estimating random jitter (RJ) and deterministic jitter (DJ) from bit error rate (BER)
US7630489B2 (en) * 2004-09-16 2009-12-08 Infineon Technologies Ag Adaptive communication systems and methods
US20070245177A1 (en) * 2006-03-24 2007-10-18 General Instrument Corporation Method and apparatus for determining the total power margin available for an hfc network
US7647467B1 (en) 2006-05-25 2010-01-12 Nvidia Corporation Tuning DRAM I/O parameters on the fly
US7602056B2 (en) 2006-06-14 2009-10-13 Intel Corporation On-die termination method for multi-chip packages
US7694031B2 (en) * 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
KR100862341B1 (ko) 2006-11-13 2008-10-13 삼성전기주식회사 사람의 피부 영역 검출장치 및 그 방법
KR20080044543A (ko) * 2006-11-16 2008-05-21 삼성전자주식회사 병렬 인터페이스를 이용하는 메모리 장치의 스큐를보상하는 방법
US7624225B2 (en) * 2007-03-22 2009-11-24 International Business Machines Corporation System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
US7886174B2 (en) 2007-06-27 2011-02-08 Intel Corporation Memory link training
US7979039B2 (en) 2007-09-24 2011-07-12 Intel Corporation Pre-distorting a transmitted signal for offset cancellation
US7622946B2 (en) 2007-11-05 2009-11-24 International Business Machines Corporation Design structure for an automatic driver/transmission line/receiver impedance matching circuitry
US7924637B2 (en) 2008-03-31 2011-04-12 Advanced Micro Devices, Inc. Method for training dynamic random access memory (DRAM) controller timing delays
KR20110013358A (ko) * 2008-05-02 2011-02-09 램버스 인코포레이티드 고속 소스-동기화 시그널링
KR101567118B1 (ko) * 2008-07-01 2015-11-06 이카노스 커뮤니케이션스, 인크. 감소된 메모리 벡터 dsl
JP2010026651A (ja) * 2008-07-16 2010-02-04 Toshiba Storage Device Corp シリアルインターフェース回路の自動調整方法及びシリアルインターフェース回路を備えた電子装置
US8008944B2 (en) 2008-11-25 2011-08-30 Qualcomm Incorporated Low voltage differential signaling driver with programmable on-chip resistor termination
WO2010100685A1 (ja) * 2009-03-03 2010-09-10 パナソニック株式会社 メモリ装置およびメモリ制御装置
US7898295B1 (en) 2009-03-19 2011-03-01 Pmc-Sierra, Inc. Hot-pluggable differential signaling driver
US8819474B2 (en) 2009-04-03 2014-08-26 Intel Corporation Active training of memory command timing
US20120151300A1 (en) * 2009-08-25 2012-06-14 Tillema John E Error Correcting
US8331176B2 (en) 2009-11-30 2012-12-11 Intel Corporation Method and system for evaluating effects of signal phase difference on a memory system
US8582374B2 (en) 2009-12-15 2013-11-12 Intel Corporation Method and apparatus for dynamically adjusting voltage reference to optimize an I/O system
US8868992B2 (en) 2009-12-31 2014-10-21 Intel Corporation Robust memory link testing using memory controller
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
KR101791456B1 (ko) 2010-10-11 2017-11-21 삼성전자주식회사 라이트 트레이닝 방법 및 이를 수행하는 반도체 장치
US9830954B2 (en) 2011-03-23 2017-11-28 Intel Corporation Method and system for dynamic power management of memories
WO2012145117A2 (en) * 2011-04-22 2012-10-26 Rambus Inc. Memory components and controllers that calibrate multiphase synchronous timing references
US20120284576A1 (en) * 2011-05-06 2012-11-08 Housty Oswin E Hardware stimulus engine for memory receive and transmit signals
US8495440B2 (en) * 2011-08-30 2013-07-23 Advanced Micro Devices, Inc. Fully programmable parallel PRBS generator
US8934311B2 (en) * 2011-09-06 2015-01-13 Samsung Electronics Co., Ltd. Semiconductor memory device capable of screening a weak bit and repairing the same
CN103988140B (zh) 2011-12-22 2017-08-11 英特尔公司 利用封装上的输入/输出接口互连在封装中封装的芯片与晶片
US8996934B2 (en) 2012-09-29 2015-03-31 Intel Corporation Transaction-level testing of memory I/O and memory device
US9003246B2 (en) 2012-09-29 2015-04-07 Intel Corporation Functional memory array testing with a transaction-level test engine
US9009540B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem command bus stress testing
US9009531B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem data bus stress testing
US9489199B2 (en) 2012-12-28 2016-11-08 Intel Corporation Vector compare instructions for sliding window encoding
US9152257B2 (en) 2012-12-28 2015-10-06 Intel Corporation Low swing voltage mode driver
US9024665B2 (en) 2013-03-13 2015-05-05 Intel Corporation Transmitter with voltage and current mode drivers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130811A1 (en) * 2006-06-30 2008-06-05 Samsung Electronics Co., Ltd. Circuit and method for removing skew in data transmitting/receiving system

Also Published As

Publication number Publication date
US9218575B2 (en) 2015-12-22
KR20160023881A (ko) 2016-03-03
US20150066819A1 (en) 2015-03-05
CN105706069B (zh) 2019-10-15
CN105706069A (zh) 2016-06-22
EP3042293A4 (en) 2017-04-19
WO2015034701A1 (en) 2015-03-12
EP3042293A1 (en) 2016-07-13
EP3042293B1 (en) 2021-07-21
JP6274683B2 (ja) 2018-02-07
JP2016532978A (ja) 2016-10-20

Similar Documents

Publication Publication Date Title
KR102024682B1 (ko) 부정합형 신호 수신기에 대한 주기적 트레이닝
JP6409249B2 (ja) 不整合信号受信器に対するタイミング制御
JP6295486B2 (ja) I/oドライバ送信振幅制御
KR101921971B1 (ko) I/o ac 타이밍을 위한 듀티 사이클 기반 타이밍 마지닝
CN110059048B (zh) 基于检测传感器数据的阻抗补偿
CN107567645B (zh) 采用错误计数器和内部地址生成的管芯上ecc
US9348356B2 (en) Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2017101005741; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20171128

Effective date: 20190528

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant