KR101617374B1 - 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정 - Google Patents

에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정 Download PDF

Info

Publication number
KR101617374B1
KR101617374B1 KR1020127008686A KR20127008686A KR101617374B1 KR 101617374 B1 KR101617374 B1 KR 101617374B1 KR 1020127008686 A KR1020127008686 A KR 1020127008686A KR 20127008686 A KR20127008686 A KR 20127008686A KR 101617374 B1 KR101617374 B1 KR 101617374B1
Authority
KR
South Korea
Prior art keywords
result
timing
clock signal
data bits
write
Prior art date
Application number
KR1020127008686A
Other languages
English (en)
Other versions
KR20120062870A (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 KR20120062870A publication Critical patent/KR20120062870A/ko
Application granted granted Critical
Publication of KR101617374B1 publication Critical patent/KR101617374B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

에러 검출 함수의 결과들에 의거하여 메모리 디바이스에서 쓰기 타이밍을 조정하는 방법, 시스템, 및 컴퓨터 프로그램 제품이 제공된다. 예를 들어, 상기 방법은 에러 검출 함수의 결과들에 의거하여 데이터 버스 상의 신호와 쓰기 클록 신호 사이의 쓰기 타이밍 윈도우를 결정하는 것을 포함할 수 있다. 상기 방법은 또한 상기 쓰기 타이밍 윈도우에 의거하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차를 조정하는 것을 포함할 수 있다. 상기 메모리 디바이스는 상기 조정된 위상차에 의거하여 상기 데이터 버스 상의 신호를 복원할 수 있다.

Description

에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정{ADJUSTMENT OF MEMORY WRITE TIMING BASED ON ERROR DETECTION TECHNIQUES}
본 발명의 실시예들은 개괄적으로 메모리 디바이스에서 쓰기 타이밍의 조정에 관한 것이다. 보다 구체적으로, 본 발명의 실시예들은 에러 검출 함수에 의거하여 메모리 디바이스의 쓰기 타이밍을 조정하는 것에 관련된다.
프로세싱 유닛과 메모리 디바이스 사이의 데이터 통신은 전형적으로 예를 들어 와이어(wire) 및 트레이스(trace)와 같은 신호 경로들을 따라 데이터를 전송하는 것을 수반한다. 동기식 인터페이스(synchronous interface)를 구비한 메모리 디바이스에서, 프로세싱 유닛은 데이터 신호와 함께 클록 신호를 메모리 디바이스로 전송할 수 있다. 클록 신호는 데이터 신호가 언제 메모리 디바이스에 의해서 래치(latch)되어야 하는지를 결정하는 데 사용되며, 따라서 메모리 디바이스를 프로세싱 유닛과 동기화시킬 수 있다. 적절한 데이터 복원을 위해서, 메모리 디바이스는 클록 신호가 데이터 신호를 샘플링하는 것이 허용되는 시간 간격 내에 클록 신호를 수신해야 한다(예컨대, 클록 신호는 데이터 신호의 데이터 아이(data eye)에 해당하는 시간 내에 데이터 신호를 샘플링해야만 한다). 그렇지 않은 경우, 메모리 디바이스는 올바른 데이터 값을 복원하지 못할 수도 있다.
현실 세계에서 온도 및 지터(jitter)와 같은 변동들은 프로세싱 유닛에서 메모리 디바이스로 전송되는 데이터 신호와 클록 신호의 감쇠(attenuation)를 유발할 수 있으며, 따라서 데이터 신호 무결성(integrity)의 손실을 유발할 수 있다. 이로 인해 메모리 디바이스에 의한 데이터 복원이 형편없거나 부정확하게 될 수 있다. 컴퓨터 시스템의 동작 주파수가 증가할수록, 프로세싱 유닛에서 메모리 디바이스로 더욱 빠르게 데이터를 전송해야 할 필요성이 발생한다. 따라서, 메모리 디바이스는 더 빠른 속도로 데이터를 샘플링해야 할 뿐만 아니라 적절한 시간에 데이터를 샘플링해야 한다.
본 발명의 실시예들은 메모리 디바이스에서 쓰기 타이밍을 조정하는 방법을 포함한다. 상기 방법은 에러 검출 함수의 결과들에 의거하여 데이터 버스 상의 신호와 쓰기 클록 신호 사이의 쓰기 타이밍 윈도우를 결정하는 것을 포함한다. 상기 방법은 또한 상기 쓰기 타이밍 윈도우에 의거하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차를 조정하는 것을 포함하며, 상기 메모리 디바이스는 상기 조정된 위상차에 의거하여 상기 데이터 버스 상의 신호를 복원한다.
본 발명의 실시예들은 또한 메모리 디바이스에서 쓰기 타이밍을 조정하는 또 다른 방법을 포함한다. 상기 방법은 프로세싱 유닛으로부터 전송되는 제1 데이터 패턴을 수신하는 것과; 제2 데이터 패턴에 대해 에러 검출 함수를 수행하여 제1 결과를 발생시키는 것과, 상기 제2 데이터 패턴은 상기 메모리 디바이스의 인터페이스에서 쓰기 클록 신호에 의거하여 수신되는 상기 제1 데이터 패턴일 수 있으며; 상기 제1 결과를 상기 프로세싱 유닛으로 전송하는 것과; 그리고 데이터 버스 상의 신호를 수신하는 것을 포함할 수 있으며, 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차는 쓰기 타이밍 윈도우 내에 있으며, 상기 쓰기 타이밍 윈도우는 상기 제1 결과와 상기 제1 데이터 패턴에 대해 수행되는 상기 에러 검출 함수의 제2 결과 사이의 비교에 의거한다.
본 발명의 실시예들은 메모리 디바이스에서 쓰기 타이밍을 조정하는 시스템을 포함한다. 상기 시스템은 메모리 디바이스와 상기 메모리 디바이스에 연결되는 프로세싱 유닛을 포함한다. 상기 프로세싱 유닛은 다음의 기능들을 수행하도록 구성될 수 있으며, 그 기능들은 에러 검출 함수의 결과들에 의거하여 데이터 버스 상의 신호와 쓰기 클록 신호 사이의 쓰기 타이밍 윈도우를 결정하는 것과; 그리고 상기 쓰기 타이밍 윈도우에 의거하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차를 조정하는 것이며, 상기 메모리 디바이스는 상기 조정된 위상차에 의거하여 상기 데이터 버스 상의 신호를 복원한다.
본 발명의 실시예들은 메모리 디바이스에서 쓰기 타이밍을 조정하는 또 다른 시스템을 포함한다. 상기 시스템은 프로세싱 유닛과 상기 프로세싱 유닛에 연결되는 메모리 디바이스를 포함한다. 상기 메모리 디바이스는 다음의 기능들을 수행하도록 구성될 수 있으며, 그 기능들은 프로세싱 유닛으로부터 전송되는 제1 데이터 패턴을 수신하는 것과; 제2 데이터 패턴에 대해 에러 검출 함수를 수행하여 제1 결과를 발생시키는 것과, 상기 제2 데이터 패턴은 상기 메모리 디바이스의 인터페이스에서 쓰기 클록 신호에 의거하여 수신되는 상기 제1 데이터 패턴을 포함하며; 상기 제1 결과를 상기 프로세싱 유닛으로 전송하는 것과; 그리고 데이터 버스 상의 신호를 수신하는 것이며, 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차는 쓰기 타이밍 윈도우 내에 있고, 상기 쓰기 타이밍 윈도우는 상기 제1 결과와 상기 제1 데이터 패턴에 대해 수행되는 상기 에러 검출 함수의 제2 결과 사이의 비교에 의거한다.
본 발명의 실시예들은 메모리 디바이스에서 쓰기 타이밍을 조정하는 컴퓨터 프로그램 제품을 더 포함한다. 상기 컴퓨터 프로그램 제품은 프로세서로 하여금 소프트웨어 코드를 분석하는 것을 가능하게 하는 컴퓨터 프로그램 로직이 기록된 컴퓨터 사용가능한 매체를 포함한다. 상기 컴퓨터 프로그램 로직은 프로세서로 하여금 에러 검출 함수의 결과들에 의거하여 데이터 버스 상의 신호와 쓰기 클록 신호 사이의 쓰기 타이밍 윈도우를 결정하는 것을 가능하게 하는 제1 컴퓨터 판독가능한 프로그램 코드와; 그리고 프로세서로 하여금 상기 쓰기 타이밍 윈도우에 의거하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차를 조정하는 것을 가능하게 하는 제2 컴퓨터 판독가능한 프로그램 코드를 포함하며, 상기 메모리 디바이스는 상기 조정된 위상차에 의거하여 상기 데이터 버스 상의 신호를 복원한다.
본 발명의 다양한 실시예들의 구성 및 동작 뿐만 아니라 본 발명의 추가 특징들 및 장점들이 첨부된 도면들과 관련하여 아래에 상세히 설명될 것이다. 본 발명은 본 명세서에 서술된 특정 실시예들로만 제한되는 것이 아님을 유의해야 한다. 이러한 실시예들은 오로지 예시적인 목적으로 제공된 것이다. 본 명세서에 개시된 가르침에 의거하여 추가적인 실시예들도 해당 기술분야의 당업자들에게 명백할 것이다.
첨부된 도면들은 본 명세서에 포함되고 본 명세서의 일부를 형성하며, 본 발명의 실시예들을 예시하는 것이며, 또한 상세한 설명과 함께 본 발명의 원리들을 설명하고 관련 기술분야의 통상의 기술자가 본 발명을 제조하고 사용하는 것을 가능하게 해주는 역할을 한다.
도 1은 프로세싱 유닛과 메모리 디바이스를 구비한 예시적인 컴퓨터 시스템의 한 예를 예시한 것이다.
도 2는 메모리 디바이스에 의한 적절한 데이터 복원을 나타내는 예시적인 쓰기 타이밍도를 예시한 것이다.
도 3은 메모리 디바이스에 의한 적절한 데이터 복원을 나타내는 것이 아닌 예시적인 쓰기 타이밍도를 예시한 것이다.
도 4는 메모리 디바이스에서 쓰기 타이밍을 조정하기 위한 컴퓨터 시스템의 한 실시예를 예시한 것이다.
도 5는 메모리 디바이스에서 쓰기 타이밍을 조정하기 위한 방법의 한 실시예를 예시한 것이다.
도 6은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭될 때 쓰기 타이밍 기간의 제1 쓰기 타이밍 경계를 결정하기 위한 순서도의 한 실시예를 예시한 것이다.
도 7은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭될 때 쓰기 타이밍 기간의 제1 쓰기 타이밍 경계를 결정하기 위한 순서도에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 8은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭될 때 쓰기 타이밍 기간의 제2 쓰기 타이밍 경계를 결정하기 위한 순서도를 예시한 것이다.
도 9는 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭될 때 쓰기 타이밍 기간의 제2 쓰기 타이밍 경계를 결정하기 위한 순서도에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 10은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭될 때 쓰기 클록 신호에 의거하여 쓰기 타이밍 기간의 제1 쓰기 타이밍 경계를 결정하는 것에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 11은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭될 때 쓰기 클록 신호에 의거하여 쓰기 타이밍 기간의 제2 쓰기 타이밍 경계를 결정하는 것에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 12는 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭되지 않을 때 쓰기 타이밍 기간의 제1 쓰기 타이밍 경계를 결정하기 위한 순서도를 예시한 것이다.
도 13은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭되지 않을 때 쓰기 타이밍 기간의 제1 쓰기 타이밍 경계를 결정하기 위한 순서도에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 14는 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭되지 않을 때 쓰기 타이밍 기간의 제2 쓰기 타이밍 경계를 결정하기 위한 순서도를 예시한 것이다.
도 15는 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭되지 않을 때 쓰기 타이밍 기간의 제2 쓰기 타이밍 경계를 결정하기 위한 순서도에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 16은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭되지 않을 때 쓰기 클록 신호에 의거하여 쓰기 타이밍 기간의 제1 쓰기 타이밍 경계를 결정하는 것에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 17은 제1 에러 검출 함수의 결과와 제2 에러 검출 함수의 결과가 서로 매칭되지 않을 때 쓰기 클록 신호에 의거하여 쓰기 타이밍 기간의 제2 쓰기 타이밍 경계를 결정하는 것에 대한 설명을 용이하게 하는 예시적인 타이밍도를 예시한 것이다.
도 18은 본 발명의 실시예들이 구현될 수 있는 예시적인 컴퓨터 시스템을 예시한 것이다.
다음의 상세한 설명은 본 발명에 부합하는 예시적인 실시예들을 예시하는 첨부된 도면들을 참조한다. 다른 실시예들도 가능하며, 그리고 실시예들은 본 발명의 사상 및 범위 내에서 수정될 수 있다. 따라서, 다음의 상세한 설명은 본 발명을 제한하고자 하는 것이 아니다. 이와 달리, 본 발명의 범위는 첨부된 특허청구범위에 의해서 정의된다.
아래에 설명되는 바와 같이 본 발명이 소프트웨어, 하드웨어, 펌웨어 및/또는 도면들에 예시된 개체들의 많은 서로 다른 실시예들로 구현될 수 있다는 것은 관련 기술분야의 통상의 기술자들에게 명백할 것이다. 따라서, 본 명세서에 제공되는 정도의 세부사항들이 주어지면 본 발명의 실시예들에 대한 변형들 및 수정들이 가능하다는 것을 이해한다고 보고 본 발명의 실시예들의 동작이 서술될 것이다.
도 1은 프로세싱 유닛과 메모리 디바이스를 구비한 예시적인 컴퓨터 시스템(100)을 예시한 것이다. 컴퓨터 시스템(100)은 프로세싱 유닛(110), 메모리 디바이스(120), 데이터 버스(1307 내지 1300), 어드레스/제어(A/C) 버스(14015 내지 1400), 클록 신호(150)(예컨대, 쓰기 클록 신호), 및 에러 검출 및 정정(error detection and correction, EDC) 신호(160)를 포함한다.
프로세싱 유닛(110)은 A/C 버스(14015 내지 1400)를 통해 어드레스/제어 신호들을 메모리 디바이스(120)로 전송한다. 예를 들어, 어드레스/제어 신호들은 클록 인에이블(clock enable)(/CKE), 칩 셀렉트(chip select)(/CS), 행 어드레스 스트로브(row address strobe)(/RAS), 열 어드레스 스트로브(colum address strobe) (/CAS), 쓰기 인에이블(write enable)(/WE), 및 어드레스 버스(예컨대, A[8:0])를 포함할 수 있다. 메모리 디바이스(120)에서 명령 디코더(command decoder)(미도시됨)가 어드레스/제어 신호들을 수신하며, 어드레스/제어 신호들의 비트 설정에 의거하여 메모리 디바이스(120)에 대한 동작 모드를 지시한다. 예를 들어, 메모리 디바이스(120)에 대한 동작 모드들은 읽기 동작(read operation), 쓰기 동작(write operation), 유휴 동작(idle operation), 및 리프레시 동작(refresh operation)을 포함할 수 있다.
동기식 메모리 시스템(synchronous memory system)에서, 도 1의 A/C 버스(14015 내지 1400) 상의 어드레스/제어 신호들은 클록 신호(150)의 에지(예컨대, 클록 신호(150)의 상승 에지)에 대하여 타이밍이 맞추어지며, 어드레스/제어 신호들은 클록 신호(150)의 에지에서 샘플링된다. 예시적인 목적으로, A/C 버스(14015 내지 1400)는 16비트 데이터 버스로서 예시되어 있다. 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 A/C 버스(14015 내지 1400)의 버스 폭이 달라질 수 있다는 것(예컨대, 8비트, 32비트 등)을 인지할 것이다. 어드레스/제어 버스들과 이들 버스 상에서 이동하는 관련 신호들은 관련 기술분야의 통상의 기술자들에게 알려져 있다.
에러 검출 및 정정(EDC)은 데이터가 프로세싱 유닛(110)에서 메모리 디바이스(120)로 에러 없이 전송되는 것을 보장하는 기법들을 가리킨다. 한 예에서, EDC 신호(160)는 프로세싱 유닛(110)과 메모리 디바이스(120) 간에 패리티(parity) 정보나 아니면 에러 정정 코드를 전송하는 데 사용될 수 있다. 관련 기술분야의 통상의 기술자들에게 알려져 있는 바와 같이, 에러 검출 함수는 데이터 버스(1307 내지 1300) 상의 데이터 신호들에 의거하여 패리티 및 에러 정정 코드를 발생시킨다. 패리티 정보 또는 에러 정정 코드에 의거하여, 프로세싱 유닛(110)은 데이터가 에러 없이 메모리 디바이스(120)로 전송되는지 여부를 결정할 수 있다. 컴퓨터 시스템(100)에서, EDC 신호(160)는 메모리 디바이스(120)에서 프로세싱 유닛(110)으로 EDC 데이터를 전송하는 단방향(unidirectional) 신호이다. 당해 기술분야의 통상의 기술자들은 EDC 신호(160)가 또한 EDC 데이터를 프로세싱 유닛(110)과 메모리 디바이스(120) 사이에 전송하는 양방향(bi-directional) 신호일 수도 있다는 것을 이해할 것이다. EDC 기법 및 알고리즘들은 관련 기술분야의 통상의 기술자들에게 알려져 있다.
프로세싱 유닛(110)은 데이터 버스(1307 내지 1300)를 통해 데이터를 메모리 디바이스(120)로 전송하고 메모리 디바이스(120)로부터 데이터를 수신한다. 쓰기 동작 동안, 데이터는 데이터 버스(1307 내지 1300)를 통해 프로세싱 유닛(110)에서 메모리 디바이스(120)로 전송된다. 읽기 동작 동안, 데이터는 데이터 버스(1307 내지 1300)를 통해 메모리 디바이스(120)에서 프로세싱 유닛(110)으로 전송된다. 동기식 메모리 시스템에서, 데이터가 프로세싱 유닛(110)에 의해 전송되고 수신되는 속도는 예를 들어 클록 신호(150)와 같은 클록 신호에 의거한다. 예시적인 목적으로, 데이터 버스(1307 내지 1300)는 8비트 양방향 데이터 버스로서 예시된다. 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 데이터 버스(1307 내지 1300)의 버스 폭이 달라질 수 있다는 것(예컨대, 16비트, 32비트 등)을 인지할 것이다. 데이터 버스들과 이들 버스 상에서 이동하는 관련 신호들은 관련 기술분야의 통상의 기술자들에게 알려져 있다.
메모리 디바이스(120)는 프로세싱 유닛(110)으로부터 전송되는 데이터를 저장한다. 데이터(프로세싱 유닛(110)으로부터 전송되는)를 수신 및 저장하는 것은 메모리 디바이스(120)에 "쓰기(write)"하는 것으로 알려져 있다. 이와 반대로, 데이터는 메모리 디바이스(120)로부터 검색(retrieve)될 수 있으며, 이는 메모리 디바이스(120)로부터 "읽기(read)"하는 것으로 알려져 있다. 메모리 디바이스(120)는 동기식 인터페이스를 구비하도록 구성될 수 있으며, 이 경우 메모리 디바이스(120)는 데이터 버스(1307 내지 1300) 상의 데이터를 프로세싱하기 전에 클록 신호(150)를 기다린다. 예를 들어, 메모리 디바이스(120)는 데이터 버스(1307 내지 1300)로부터 데이터를 수신하거나 데이터 버스(1307 내지 1300)를 통해 메모리 디바이스(120)에서 프로세싱 유닛(110)으로 데이터를 전송하기 위해서 클록 신호(150)와 정렬(align)되는 내부 클록 신호를 발생시킬 수 있다. 예를 들어, 관련 기술분야의 통상의 기술자들에 의해 이해되는 바와 같이, 메모리 디바이스(120)의 내부 클록 신호는 클록 신호(150) 주파수의 배수(예컨대, 2x, 4x 등)일 수 있다.
도 2는 컴퓨터 시스템(100)에 대한 예시적인 쓰기 타이밍도(200)를 예시한 것이며, 메모리 디바이스(120)에 의해 데이터가 적절하게 복원되는 것을 나타낸다. 쓰기 타이밍도(200)는 데이터 신호(1300)의 데이터 아이(data eye) 및 클록 신호(150)에 대한 타이밍들을 포함하며, 데이터 아이는 클록 신호(150)가 데이터 신호(1300)를 샘플링하는 데 사용될 수 있는 시간(210)을 정의한다(예컨대, 메모리 디바이스(120)에 의한 적절한 데이터 복원은 시간(210) 내에 일어날 수 있다). 예를 들어, 데이터 아이는 유효한 이진값(valid binary value)을 갖는 데이터 신호(1300)의 일부분을 가리킨다. 이 예에서, 클록 신호(150)는 데이터 신호(1300)에 대해 중앙 정렬되고(center aligned) 클록 신호(150)가 HIGH일 때(즉 '1'의 논리값을 가질 때) 데이터 아이 내에 있는 데이터 신호(1300)를 샘플링한다. 관련 기술분야의 통상의 기술자들에 의해 이해되는 바와 같이, 데이터 신호(1300)에 대해 클록 신호(150)를 중앙 정렬하는 것은 데이터 신호(1300)를 수신하고 샘플링하는 데 있어서 메모리 디바이스(120)에게 충분한 시간이 허용되기 때문에 컴퓨터 시스템(100)에게 이상적인 쓰기 타이밍을 제공한다. 데이터 신호(1300)에 대한 클록 신호(150)의 정렬은 다른 위치들로 정렬될 수 있다는 것은 관련 기술분야의 통상의 기술자들은 이해할 것이다.
도 3은 컴퓨터 시스템(100)에 대한 예시적인 쓰기 타이밍도(300)를 예시한 것이며, 메모리 디바이스(120)에 의해 데이터가 적절하게 복원되지 않는 경우를 나타낸다. 쓰기 타이밍도(200)와 유사하게, 쓰기 타이밍도(300)는 데이터 신호(1300)의 데이터 아이 및 클록 신호(150)에 대한 타이밍들을 포함한다. 하지만, 클록 신호(150)는 데이터 신호(1300)에 대하여 상대적인 위상차(310)(또는 타이밍 스큐(timing skew))를 가지며, 이러한 위상차(130)는 메모리 디바이스(120)에게 데이터 신호(1300)를 샘플링하기에 충분한 시간(예컨대, 메모리 디바이스(120)가 데이터 신호(1300)를 래치하기에 충분한 시간)을 제공하지 못할 수도 있다. 데이터 신호(1300)와 클록 신호(150) 사이의 상대적인 위상차(310)에 있어서 변동은 예를 들어 컴퓨터 시스템(100)의 온도 및 지터와 같은 다양한 인자들에 의해 유발될 수 있다. 예시적인 쓰기 타이밍도(300)에서, 상대적인 위상차(310)는 클록 신호(150)가 데이터 신호(1300)를 샘플링할 때(예컨대, 클록 신호(150)가 HIGH 일 때 또는 '1'의 논리값을 가질 때) 데이터 아이(210)의 중앙(center)과 클록 신호(150)의 중앙 사이의 차이에 의해서 정의될 수 있다.
컴퓨터 시스템(100)의 동작 주파수가 증가할수록, 메모리 디바이스(120)는 더 빠른 주파수로 데이터 버스(1307 내지 1300) 상의 신호들을 샘플링해야 할 뿐만 아니라 적절한 시간에서 데이터 신호들을 샘플링해야 한다. 클록 신호(150)는 데이터의 적절한 샘플링을 보장하기 위해 데이터 버스(1307 내지 1300) 상의 신호들과 최적으로 정렬되어야 한다. 클록 신호(150)를 데이터 버스(1307 내지 1300) 상의 신호들과 정렬하기 위해, 데이터 버스(1307 내지 1300) 상의 신호들과 클록 신호(150) 사이의 상대적인 위상차(또는 타이밍 스큐)는 에러 검출 함수에 의거하여 모니터링되고 조정될 수 있다. 결과적으로, 컴퓨터 시스템(100)은 프로세싱 유닛(110)과 메모리 디바이스(120) 사이의 쓰기 타이밍을 최적화할 수 있도록 구성될 수 있다.
도 4는 메모리 디바이스에서 쓰기 타이밍을 조정하기 위한 컴퓨터 시스템(400)의 한 실시예를 예시한 것이다. 컴퓨터 시스템(400)은 프로세싱 유닛(410), 메모리 디바이스(420), 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 클록 신호(150)(본 명세서에서 쓰기 클록 신호로도 또한 지칭됨), 및 EDC 신호(160)를 포함한다. 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 쓰기 클록 신호(150), 및 EDC 신호(160)는 도 1에 대하여 위에서 서술된 것과 유사한 방식으로 기능한다.
한 실시예에서, 프로세싱 유닛(410)과 메모리 디바이스(420)는 회로 기판(circuit board) 상의 집적 회로(IC) 디바이스들이며, 상기 회로 기판은 상기 2개의 IC 디바이스들과 통신시 연결되는 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 및 쓰기 클록 신호(150)를 구비하며, 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 쓰기 클록 신호(150), 및 EDC 신호(160)는 와이어(wire), 인터커넥트(interconnect), 또는 회로 기판 트레이스(circuit board trace)일 수 있다. 다른 실시예에서, 프로세싱 유닛(410)과 메모리 디바이스(420)는 단일 IC 디바이스 상에 집적되며, 상기 IC 디바이스는 프로세싱 유닛(410)과 메모리 디바이스(420)에 통신시 연결되는 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 쓰기 클록 신호(150), 및 EDC 신호(160)를 구비한다.
데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 쓰기 클록 신호(150), 및 EDC 신호(160)는 프로세싱 유닛(410)과 메모리 디바이스(420)의 입력/출력(I/O) 포트들에 연결되며, 이 포트들은 메모리 디바이스(420)의 동작 모드들(예컨대, 읽기, 쓰기, 유휴, 및 리프레시 동작 모드)에서 사용된다. 프로세싱 유닛을 메모리 디바이스에 연결하는 I/O 포트들(예컨대, DQ와 클록 핀들)은 관련 기술분야의 통상의 기술자들에게 알려져 있다.
본 발명의 한 실시예에 따르면, 프로세싱 유닛(410)은 GPU이다. 대체가능한 것으로, 다른 실시예에서, 프로세싱 유닛(410)은 CPU나 메모리 제어기가 될 수 있다. 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 본 발명의 실시예들이 다른 유형의 프로세싱 유닛들로 구현될 수 있으며 이는 본 발명의 범위와 사상 내에 속하는 것임을 인지할 것이다.
한 실시예에서, 프로세싱 유닛(410)은 위상 지연 회로들(phase delay circuits)(430, 440)과 제어기(450)를 포함한다. 한 실시예에서, 위상 지연 회로(430)는 데이터 버스(1307 내지 1300) 상에서 이동하는 신호의 전송을 지연시키도록 구성된다. 유사하게, 한 실시예에서, 위상 지연 회로(440)는 쓰기 클록 신호(150)를 지연시키도록 구성된다. 본 발명의 한 실시예에 따르면, 제어기(450)는 위상 지연 회로들(430, 440) 각각에 대한 위상 지연의 양을 제어하도록 구성된다. 위상 지연 회로들(430, 440)에 대해 제어기(450)에 의해 발생되는 위상 지연의 양은 도 5의 방법(500)과 관련하여 아래에서 상세히 서술된다. 위상 지연 회로들 및 위상 지연 회로들을 제어하는 데 사용되는 관련 제어기들은 관련 기술분야의 통상의 기술자들에게 알려져 있다.
도 4와 관련하여, 한 실시예에서, 메모리 디바이스(420)는 DRAM(dynamic random access memory) 디바이스이다. 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 본 발명의 실시예들이 다른 유형의 메모리 디바이스들로 구현될 수 있음을 인지할 것이다. 이들 다른 유형의 메모리 디바이스들은 본 발명의 사상과 범위 내에 속한다.
도 5는 메모리 디바이스에서 쓰기 타이밍을 조정하기 위한 방법(500)의 한 실시예를 예시한 것이다. 예를 들어, 방법(500)은 도 4의 컴퓨터 시스템(400)을 사용하여 일어날 수 있다. 설명의 목적으로, 방법(500)의 서술을 용이하게 하기 위해 컴퓨터 시스템(400)이 사용될 것이다. 하지만, 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 방법(500)이 다른 컴퓨터 시스템들로 구현될 수 있음을 인지할 것이다.
한 실시예에서, 방법(500)은 프로세싱 유닛(410)과 메모리 디바이스(420) 사이의 쓰기 타이밍을 조정하기 위해 컴퓨터 시스템(400)에 의해 사용될 수 있다. 특히, 하나 이상의 데이터 패턴들을 메모리 디바이스(420)로 쓰고 메모리 디바이스(420)로부터 대응되는 에러 검출 함수의 결과들을 읽는 하나 이상의 시퀀스들을 통해, 프로세싱 유닛(410)의 제어기(450)는 메모리 디바이스(420)가 데이터 버스(1307 내지 1300)로부터 데이터를 적절하게 복원하도록 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 위상차를 조정할 수 있다(위상 지연 회로들(430, 440)을 통해).
도 5의 방법(500)을 보면, 단계(510)에서, 프로세싱 유닛(410)은 메모리 디바이스(420)를 에러 검출 동작 모드로 설정하기 위해 하나 이상의 명령들을 발행한다. 한 실시예에서, 메모리 디바이스(420)는 메모리 디바이스(420)의 활성(active) 동작 모드 동안 에러 검출 동작 모드에 있을 수 있다. 예를 들어, 이들 활성 동작 모드들은 읽기 동작 모드와 쓰기 동작 모드일 수 있다. 다른 실시예에서, 메모리 디바이스(420)는 메모리 디바이스 자원들이 비활성(inactive)일 때 에러 검출 동작 모드에 있을 수 있다. 이들 동작 모드들에서, 예를 들어 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 및 쓰기 클록 신호(150)와 같은 메모리 디바이스 자원들은 읽기 동작 모드나 쓰기 동작 모드를 위해 컴퓨터 시스템(400)에 의해 사용되지 않고 있다.
용이한 설명을 위해, 방법(500)에 대한 다음의 설명은 에러 검출 모드의 맥락에서 서술되며, 이 모드에서 메모리 디바이스 자원들은 비활성이다(예컨대, 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 및 쓰기 클록 신호(150)는 컴퓨터 시스템(400)에 의한 읽기 동작 및/또는 쓰기 동작에 사용되지 않고 있다). 하지만, 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 방법(500)이 또한 메모리 디바이스 자원들이 활성인(예컨대, 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 및 쓰기 클록 신호(150)가 읽기 동작 및/또는 쓰기 동작을 위해 컴퓨터 시스템(400)에 의해 사용되고 있는) 에러 검출 동작 모드로도 구현될 수 있음을 인지할 것이다.
단계(520)에서, 프로세싱 유닛(410)은 에러 검출 함수의 결과들에 의거하여 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 쓰기 타이밍 윈도우(write timing window)를 결정한다. 쓰기 타이밍 윈도우는 메모리 디바이스(420)가 데이터 버스(1307 내지 1300) 상의 데이터를 적절하게 복원하도록 데이터 버스(1307 내지 1300) 상의 데이터 신호들, 쓰기 클록 신호(150), 또는 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 모두가 서로에 대해 위상 조정될 수 있는 시간 간격을 가리킨다. 한 실시예에서, 쓰기 타이밍 윈도우는 제1 타이밍 경계와 제2 타이밍 경계에 의해 정의된다. 쓰기 타이밍 윈도우 및 그와 관련된 제1 쓰기 타이밍 경계 및 제2 쓰기 타이밍 경계는 도 6 내지 도 17과 관련하여 아래에서 더 상세히 서술된다.
에러 검출 함수(error detection function)은 데이터가 프로세싱 유닛(410)에서 메모리 디바이스(420)로 에러 없이 전송되는 것을 보장하기 위해 사용될 수 있는 에러 검출 및 정정 기법에서 사용되는 알고리즘을 가리킨다. 위에서 언급된 바와 같이, 데이터 전송 에러들은 예를 들어 컴퓨터 시스템(400)에서의 온도 및 지터의 변동 결과일 수 있다. 방법(500)과 관련되는 에러 검출 함수는 도 6 내지 도 17과 관련하여 아래에서 더 상세히 서술된다.
한 실시예에서, 메모리 디바이스(420)의 쓰기 타이밍을 조정하기 위해 제1 데이터 패턴이 사용된다. 예를 들어, 제1 데이터 패턴은 1과 0의 논리값들의 랜덤한 조합을 가진 8비트 데이터 패턴일 수 있다. 한 실시예에서, 프로세서(410)는 예를 들어 패리티 값, 첵섬(checksum) 값, 또는 에러 검출 함수에 의한 다른 유형의 결과를 발생시키기 위해 제1 데이터 패턴에 대해 에러 검출 함수를 수행한다. 한 실시예에서, 에러 검출 함수는 첵섬 방식을 구현하며, 제1 데이터 패턴의 첵섬 값은 제1 데이터 패턴의 해시(hash)된 버전을 고정 크기의 비트 길이로 나타낸다. 본 발명의 한 실시예에 따라, 제1 데이터 패턴에 대한 에러 검출 함수의 결과는 비교를 위해(아래에서 더 서술됨) 사용되도록 프로세서(410)에 저장된다.
다른 방식들 중에서도 패리티 방식과 첵섬 방식이 에러 검출 및 정정(EDC) 기법들과 연계하여 사용되며, 이들은 관련 기술분야의 통상의 기술자들에게 알려져 있다. 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 다른 에러 검출 함수들이 EDC 기법들과 연계하여 사용될 수 있음을 인지할 것이다. 이들 다른 에러 검출 함수들은 본 발명의 범위와 사상에 속한다.
한 실시예에서, 제1 데이터 패턴은 프로세싱 유닛(410)에서 메모리 디바이스(420)로 전송되며, 메모리 디바이스(420)는 쓰기 클록 신호(150)에 의거하여 메모리 디바이스(420)의 인터페이스(예컨대, 메모리 디바이스(420)의 I/O 핀 인터페이스)에서 제1 데이터 패턴의 정보를 샘플링한다. 제1 데이터 패턴이 메모리 디바이스(420)에 의해 수신된 후에, 메모리 디바이스(420)는 제2 데이터 패턴에 대해 에러 검출 함수를 수행한다. 제2 데이터 패턴은 메모리 디바이스(420)의 인터페이스에서 수신되는 제1 데이터 패턴을 나타낸다. 한 실시예에서, 쓰기 클록 신호(150)와 데이터 버스(1307 내지 1300) 상의 데이터 신호들 사이에 타이밍 스큐가 발생하였을 수 있기 때문에 제2 데이터 패턴은 프로세싱 유닛(410)으로부터 전송되는 제1 데이터 패턴의 비트 정보와 서로 다른 비트 정보를 포함할 수 있다. 이 타이밍 스큐는 도 3과 관련하여 위에서 서술된 타이밍 스큐와 유사하다.
한 실시예에서, 메모리 디바이스(420)는 프로세싱 유닛(410)이 제1 데이터 패턴에 적용한 것과 동일한 에러 검출 함수를 제2 데이터 패턴에 적용한다. 본 발명의 한 실시예에 따르면, 제2 데이터 패턴에 대한 에러 검출 함수의 결과는 제2 데이터 패턴의 해쉬된 버전을 나타낸다. 본 발명의 한 실시예에 따라, 제2 데이터 패턴에 대한 에러 검출 함수의 결과는 EDC 신호(160)를 통해 프로세서(410)로 전송된다.
프로세싱 유닛(410)은 제1 데이터 패턴에 대한 에러 검출 함수의 결과(본 명세서에서는 또한 "제1 결과"로도 지칭됨)를 제2 데이터 패턴에 대한 에러 검출 함수의 결과(본 명세서에서는 또한 "제2 결과"로도 지칭됨)와 비교하여 2개의 결과들이 서로 매칭되는지 여부를 판별한다. 한 실시예에서, 프로세싱 유닛(410)의 제어기(450)는 제1 결과를 제2 결과와 비교하는데, 제어기(450)는 비트별 방식으로 제1 정보의 비트 정보를 제2 정보의 비트 정보와 비교한다. 다시 말해, 제1 결과와 제2 결과가 서로 매칭되는지 여부를 판별하기 위해 제1 결과의 각 비트는 제2 결과의 대응되는 비트와 비교된다.
한 실시예에서, 제어기(450)는 제1 결과와 제2 결과의 비교에 의거하여 쓰기 타이밍 윈도우의 제1 타이밍 경계와 제2 타이밍 경계를 결정한다. 쓰기 타이밍 윈도우의 제1 및 제2 타이밍 경계들의 결정에 대한 다음 설명은 2개의 시나리오의 맥락에서 서술되는데, 그 시나리오들은 (1) 도 6 내지 도 11에서 서술되는 바와 같이 제1 결과와 제2 결과가 서로 매칭될 때의 시나리오; 그리고 (2) 도 12 내지 도 17에서 서술되는 바와 같이 제1 결과와 제2 결과가 서로 매칭되지 않을 때의 시나리오이다. 용이한 설명을 위해, 쓰기 타이밍 윈도우의 제1 및 제2 타이밍 경계들에 대한 다음 설명은 데이터 버스(1307 내지 1300)의 데이터 신호(1300)에 의거한다. 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 아래에서 서술되는 순서도들과 예시적인 타이밍도들이 데이터 버스(1307 내지 1300) 상의 데이터 신호들에 동일하게 적용될 수 있음을 인지할 것이다.
도 6은 제1 결과와 제2 결과가 서로 매칭될 때 쓰기 타이밍 윈도우의 제1 타이밍 경계를 결정하기 위한 순서도(600)의 한 실시예를 예시한 것이다. 순서도(600)의 설명을 용이하게 하기 위해 도 7의 예시적인 타이밍도(700)가 사용될 것이다. 타이밍도(700)를 보면, 타이밍도 I과 Ⅲ은 각각 데이터 신호(1300)와 클록 신호(150)를 나타낸다. 이 경우에, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 충분한 양의 시간)을 가지기 때문에 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원할 수 있다. 이는 도 2와 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하다. 도 7의 타이밍도 Ⅱ는 데이터 신호(1300)의 위상 변이(phase shift)된 표현이며, 순서도(600)와 관련하여 아래에서 서술될 것이다.
도 6의 순서도(600)를 보면, 순서도(600)의 시작점에서 제1 결과가 제2 결과와 매칭되는 상황을 상정한다. 이는 타이밍도(700)와 관련하여 위에서 언급된 바와 같이 메모리 디바이스(420)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지기 때문에 그러한 것이다(도 7의 타이밍도 I에서). 따라서, 본 발명의 한 실시예에 따라, 제1 데이터 패턴에 대한 에러 검출 함수의 결과는 제2 데이터 패턴에 대한 에러 검출 함수의 결과와 일치한다. 한 실시예에서, 프로세싱 유닛(410)은 쓰기 타이밍 윈도우의 제1 타이밍 경계를 결정할 때 순서도(600)의 단계들을 실행한다.
단계(610)에서, 프로세싱 유닛(410)은 제1 데이터 패턴에 대해 양의 위상 변이 증분(positive incremental phase shift)을 준다. 한 실시예에서, 위상 변이 증분은 쓰기 클록 신호(150) 사이클의 비율로서 정의된다. 예를 들어, 그 비율은 쓰기 클록 신호(150)의 1/10, 1/5, 3/10, 또는 2/5일 수 있다. 또한, 본 발명의 한 실시예에 따라, 도 7의 타이밍도(700)를 보면, 양의 위상 변이 증분은 "(+)" 방향으로 위상 변이 증분으로서 정의된다.
단계(620)에서, 위상 변이된 제1 데이터 패턴이 메모리 디바이스(420)로 전송된다.
단계(630)에서, 프로세싱 유닛(410)은 제2 데이터 패턴에 적용된 에러 검출 함수의 결과를 수신한다. 제2 데이터 패턴은 메모리 디바이스(420)의 인터페이스에서 수신되는 위상 변이된 제1 데이터 패턴을 나타낸다. 한 실시예에서, 메모리 디바이스(420)는 프로세서(410)에 의해 제1 데이터 패턴에 적용된 에러 검출 함수와 동일한 에러 검출 함수를 제2 데이터 패턴에 대해 수행한다. 본 발명의 한 실시예에 따라, 제2 데이터 패턴에 대한 에러 검출 함수의 결과는 EDC 신호(160)를 통해 메모리 디바이스(420)에서 프로세싱 유닛(410)으로 전송된다.
단계(640)에서, 프로세싱 유닛(410)은 제1 데이터 패턴에 적용된 에러 검출 함수의 제1 결과를 제2 데이터 패턴에 적용된 에러 검출 함수의 제2 결과와 비교하며, 제어기(450)는 제1 결과의 비트 정보를 저장한다. 본 발명의 한 실시예에 따라, 제어기(450)는 제1 결과의 비트 정보를 제2 결과의 비트 정보와 비교하는데, 제2 결과는 메모리 디바이스(420)의 인터페이스에서 수신된 위상 변이된 제1 데이터 패턴을 가리킨다. 한 실시예에서, 제1 결과와 제2 결과는 비트별 방식으로 서로 비교된다.
단계(650)에서, 만일 제1 결과의 비트 정보가 제2 결과의 비트 정보와 매칭된다면, 프로세싱 유닛(410)은 제1 데이터 패턴에 추가적인 양의 증분 만큼 위상 지연을 주고(단계 610) 단계들(620 내지 640)이 반복된다.
단계(660)에서, 제1 결과의 비트 정보와 제2 결과의 비트 정보가 서로 매칭되지 않는다면, 이전의 위상 변이된 제1 데이터 패턴으로부터 위상 변이 정보가 프로세싱 유닛(410)에 저장된다. 도 7의 타이밍도(700)를 보면, 타이밍도 Ⅱ는 양의 위상 변이된 데이터 신호(1300)(즉, 양의 위상 변이된 제1 데이터 패턴)를 나타낸 것이다. 타이밍도 I과 Ⅱ의 표시(marker)(710)는 데이터 신호(1300) 상에서 데이터 신호(1300)의 양의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(730)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 데이터 신호(1300)에 대해 추가적인 양의 위상 변이 증분이 주어진다면(도 7의 타이밍도 Ⅱ에서), 쓰기 클록 신호(150)는 유효한 데이터 신호(1300)를 샘플링할 수 없다. 이는 데이터 신호(1300)에 대해 추가적인 양의 위상 변이 증분을 가지는 경우 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못할 것(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐)이기 때문이다.
도 7의 타이밍도(700)를 보면, 시간 간격(720)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제1 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(720)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 데이터 신호(1300)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 위상 변이에 있어서 추가적인 양의 증분을 가질 수 없다. 한 실시예에서, 쓰기 클록 신호(150)와 관련하여 데이터 신호(1300)의 원래 위상 위치(도 7의 타이밍도 I의 표시(710))를 참조하면, 데이터 신호(1300)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 시간 간격(720)보다 더 큰 양의 위상 변이를 가질 수 없다.
도 8은 제1 결과와 제2 결과가 서로 매칭될 때 쓰기 타이밍 윈도우의 제2 경계 조건을 결정하기 위한 순서도(800)의 한 실시예를 예시한 것이다. 순서도(800)에 대한 설명을 용이하게 하기 위해 도 9의 예시적인 타이밍도(900)가 사용될 것이다. 타이밍도(900)를 보면, 타이밍도 I과 Ⅲ은 각각 데이터 신호(1300)와 클록 신호(150)를 나타낸다. 이 경우에, 도 2와 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하게, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 충분한 양의 시간)을 가지기 때문에 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원할 수 있다. 도 9의 타이밍도 Ⅱ는 데이터 신호(1300)의 위상 변이된 표현이며, 순서도(800)와 관련하여 아래에서 서술될 것이다.
순서도(800)의 단계들은 제1 데이터 패턴의 위상 변이 증분이 "(-)" 방향인 것을 제외하고는 순서도(600)의 단계들과 유사하다. 특히, 단계(810)에서, 프로세싱 유닛(410)은 제1 데이터 패턴에 대해 음(negative)의 위상 변이 증분을 준다. 단계들(820 내지 840)은 각각 순서도(600)의 단계들(620 내지 640)과 유사한 기능들을 수행한다.
단계(850)에서, 만일 제1 결과의 비트 정보가 제2 결과의 비트 정보와 매칭된다면, 프로세싱 유닛(410)은 제1 데이터 패턴에 추가적인 음의 위상 지연 증분을 주고(단계 610) 단계들(820 내지 840)이 반복된다.
단계(860)에서, 제1 결과의 비트 정보와 제2 결과의 비트 정보가 서로 매칭되지 않는다면, 이전의 위상 변이된 제1 데이터 패턴으로부터 위상 변이 정보가 프로세싱 유닛(410)에 저장된다. 도 9의 타이밍도(900)를 보면, 타이밍도 Ⅱ는 음의 위상 변이된 데이터 신호(1300)(즉, 음의 위상 변이된 제1 데이터 패턴)를 나타낸 것이다. 타이밍도 I과 Ⅱ의 표시(710)는 데이터 신호(1300) 상에서 데이터 신호(1300)의 음의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(930)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 데이터 신호(1300)에 대해 추가적인 음의 위상 변이 증분이 주어진다면(도 9의 타이밍도 Ⅱ에서), 쓰기 클록 신호(150)는 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못할 것이다(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐).
도 9의 타이밍도(900)를 보면, 시간 간격(920)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제2 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(920)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 데이터 신호(1300)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 위상 변이에 있어서 추가적인 음의 증분을 가질 수 없다. 한 실시예에서, 쓰기 클록 신호(150)와 관련하여 데이터 신호(1300)의 원래 위상 위치(도 9의 타이밍도 I의 표시(710))를 참조하면, 데이터 신호(1300)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 시간 간격(920)보다 더 큰 음의 위상 변이를 가질 수 없다.
요약하면, 도 6 내지 도 9와 관련하여, 쓰기 타이밍 윈도우의 제1 타이밍 경계와 제2 타이밍 경계가 쓰기 클록 신호(150)에 대한 데이터 신호(1300)의 위상 변이의 측면에서 정의되었다. 한 실시예에서, 쓰기 클록 신호(150)에 대한 데이터 신호(1300)의 원래 위상 위치로부터, 쓰기 타이밍 윈도우는 제1 타이밍 경계와 제2 타이밍 경계에 의해 제한(bounded)된다. 한 실시예에서, 제1 타이밍 경계는 데이터 신호(1300)의 원래 위상 위치로부터 메모리 디바이스(420)에 의한 부적절한 데이터 복원이 없는 최대 양의 위상 변이로서 정의된다. 또한, 본 발명의 한 실시예에 따라, 제2 타이밍 경계는 데이터 신호(1300)의 원래 위상 위치로부터 메모리 디바이스(420)에 의한 부적절한 데이터 복원이 없는 최대 음의 위상 변이로서 정의된다.
상기 설명을 기반으로, 한 실시예에서, 쓰기 타이밍 윈도우의 제1 경계와 제2 경계를 결정하기 위해 쓰기 클록 신호(150)가 또한 사용될 수 있다. 본 발명의 한 실시예에 따라, 도 10 및 도 11에 대한 다음 설명은 쓰기 타이밍 윈도우의 제1 경계와 제2 경계를 결정할 때 순서도들(600, 800)의 단계들과 유사한 단계들이 각각 쓰기 클록 신호(150)에 어떻게 적용될 수 있는지에 대한 설명을 용이하게 하도록 이용될 것이다.
도 10은 본 발명의 한 실시예에 따라 쓰기 클록 신호(150)에 의거하여 쓰기 타이밍 윈도우의 제1 타이밍 경계를 결정하기 위해 도 6의 순서도(600)의 단계들과 유사한 단계들이 어떻게 사용될 수 있는지에 대한 설명을 용이하게 하도록 이용될 예시적인 쓰기 타이밍도(1000)를 예시한 것이다. 타이밍도(1000)를 참조하면, 타이밍도 I과 Ⅱ는 각각 데이터 신호(1300)와 쓰기 클록 신호(150)를 나타낸다. 이 경우에, 도 2와 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하게, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 충분한 양의 시간)을 가지기 때문에 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원할 수 있다. 도 10의 타이밍도 Ⅲ은 쓰기 클록 신호(150)의 위상 변이된 표현이며, 아래에서 더 상세히 서술될 것이다.
도 6의 단계(610)와 유사하게, 프로세싱 유닛(410)은 쓰기 클록 신호(150)에 대해 양의 위상 변이 증분을 준다. 다음으로, 단계들(620 내지 640)의 전송, 수신, 및 비교 단계들이 양의 위상 변이된 쓰기 클록 신호(150)에 적용될 수 있다.
도 10의 타이밍도 Ⅱ와 Ⅲ을 참조하면, 타이밍도 Ⅱ와 Ⅲ의 표시(1010)는 쓰기 클록 신호(150) 상에서 쓰기 클록 신호(150)의 양의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(1030)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 쓰기 클록 신호(150)에 추가적인 양의 위상 변이 증분이 주어진다면(도 10의 타이밍도 Ⅲ에서), 쓰기 클록 신호(150)는 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못할 것(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐)이다.
도 10의 타이밍도(1000)를 참조하면, 시간 간격(1020)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제1 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(1020)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 쓰기 클록 신호(150)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 위상 변이에 있어서 추가적인 양의 증분을 가질 수 없다. 한 실시예에서, 데이터 신호(1300)와 관련하여 쓰기 클록 신호(150)의 원래 위상 위치(도 10의 타이밍도 Ⅱ의 표시(1010))를 참조하면, 쓰기 클록 신호(150)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 시간 간격(1020)보다 더 큰 양의 위상 변이를 가질 수 없다.
도 11은 본 발명의 한 실시예에 따라 쓰기 클록 신호(150)에 의거하여 쓰기 타이밍 윈도우의 제2 타이밍 경계를 결정하기 위해 도 8의 순서도(800)의 단계들과 유사한 단계들이 어떻게 사용될 수 있는지에 대한 설명을 용이하게 하도록 이용될 예시적인 쓰기 타이밍도(1100)를 예시한 것이다. 타이밍도(1100)를 참조하면, 타이밍도 I과 Ⅱ는 각각 데이터 신호(1300)와 쓰기 클록 신호(150)를 나타낸다. 이 경우에, 도 2와 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하게, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 충분한 양의 시간)을 가지기 때문에 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원할 수 있다. 도 11의 타이밍도 Ⅲ은 쓰기 클록 신호(150)의 위상 변이된 표현이며, 아래에서 더 상세히 서술될 것이다.
도 8의 단계(810)와 유사하게, 프로세싱 유닛(410)은 쓰기 클록 신호(150)에 대해 음의 위상 변이 증분을 준다. 다음으로, 단계들(820 내지 840)의 전송, 수신, 및 비교 단계들이 음의 위상 변이된 쓰기 클록 신호(150)에 적용될 수 있다.
도 11의 타이밍도 Ⅱ와 Ⅲ을 참조하면, 타이밍도 Ⅱ와 Ⅲ의 표시(1010)는 쓰기 클록 신호(150) 상에서 쓰기 클록 신호(150)의 음의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(1130)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 쓰기 클록 신호(150)에 추가적인 음의 위상 변이 증분이 주어진다면(도 11의 타이밍도 Ⅲ에서), 쓰기 클록 신호(150)는 유효한 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못할 것(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐)이다.
도 11의 타이밍도(1100)를 참조하면, 시간 간격(1120)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제2 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(1120)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 쓰기 클록 신호(150)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 위상 변이에 있어서 추가적인 음의 증분을 가질 수 없다. 한 실시예에서, 데이터 신호(1300)와 관련하여 쓰기 클록 신호(150)의 원래 위상 위치(도 11의 타이밍도 Ⅱ의 표시(1010))를 참조하면, 쓰기 클록 신호(150)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 시간 간격(1020)보다 더 큰 음의 위상 변이를 가질 수 없다.
요약하면, 도 10 및 도 11과 관련하여, 쓰기 타이밍 윈도우의 제1 타이밍 경계와 제2 타이밍 경계가 데이터 신호(1300)에 대한 쓰기 클록 신호(150)의 위상 변이의 측면에서 정의되었다. 한 실시예에서, 데이터 신호(1300)에 대한 쓰기 클록 신호(150)의 원래 위상 위치로부터, 쓰기 타이밍 윈도우는 제1 타이밍 경계와 제2 타이밍 경계에 의해 제한된다. 한 실시예에서, 제1 타이밍 경계는 쓰기 클록 신호(150)의 원래 위상 위치로부터 메모리 디바이스(420)에 의한 부적절한 데이터 복원이 없는 최대 양의 위상 변이로서 정의된다. 또한, 본 발명의 한 실시예에 따라, 제2 타이밍 경계는 쓰기 클록 신호(150)의 원래 위상 위치로부터 메모리 디바이스(420)에 의한 부적절한 데이터 복원이 없는 최대 음의 위상 변이로서 정의된다.
도 6 내지 도 11에 대한 상기 설명은 제1 결과와 제2 결과가 서로 매칭될 때 쓰기 타이밍 윈도우의 제1 경계와 제2 경계를 결정하는 것에 대한 기법들을 서술하고 있다. 위에서 서술된 실시예들에서, 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 정렬이 메모리 디바이스(420)에 의한 적절한 데이터 복원을 허용하도록 데이터 신호(1300)나 아니면 쓰기 클록 신호(150)가 위상 변이 증분 만큼 조정된다. 본 명세서의 설명을 기반으로, 당해 기술분야의 통상의 기술자들은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 정렬이 메모리 디바이스(420)에 의한 적절한 데이터 복원을 허용하도록 데이터 신호(1300)와 쓰기 클록 신호(150) 모두가 예를 들어 양의 위상 변이 증분과 음의 위상 변이 증분의 적절한 조합으로 조정될 수 있다는 것을 인지할 것이다.
도 12 내지 도 17에 대한 다음 설명은 제1 결과와 제2 결과가 서로 매칭되지 않을 때 쓰기 타이밍 윈도우의 제1 및 제2 타이밍 경계들을 결정하는 것을 서술한다.
도 12는 제1 결과와 제2 결과가 서로 매칭되지 않을 때 쓰기 타이밍 윈도우의 제1 타이밍 경계를 결정하기 위한 순서도(1200)의 한 실시예를 예시한 것이다. 순서도(1200)의 설명을 용이하게 하기 위해 도 13의 예시적인 타이밍도(1300)가 사용될 것이다. 타이밍도(1300)를 보면, 타이밍도 I과 Ⅲ은 각각 데이터 신호(1300)와 쓰기 클록 신호(150)를 나타낸다. 이 경우에, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못하기 때문에(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐) 메모리 디바이스(420)는 데이터 신호(1300)를 적절하게 복원하지 못한다. 이는 도 3과 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하다. 도 13의 타이밍도 Ⅱ는 데이터 신호(1300)의 위상 변이된 표현이며, 순서도(1200)와 관련하여 아래에서 서술될 것이다.
도 12의 순서도(1200)를 보면, 순서도(1200)의 시작점에서 제1 결과가 제2 결과와 매칭되지 않는 상황을 상정한다. 이는 타이밍도(1300)와 관련하여 위에서 언급된 바와 같이 메모리 디바이스(420)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못하기 때문에 그러한 것이다. 따라서, 본 발명의 한 실시예에 따라, 제1 데이터 패턴에 대한 에러 검출 함수의 결과는 제2 데이터 패턴에 대한 에러 검출 함수의 결과와 일치하지 않는다. 한 실시예에서, 프로세싱 유닛(410)은 쓰기 타이밍 윈도우의 제1 타이밍 경계를 결정할 때 순서도(1200)의 단계들을 실행한다.
단계(1210)에서, 프로세싱 유닛(410)은 제1 데이터 패턴에 대해 양의 위상 변이 증분을 준다.
단계(1220)에서, 위상 변이된 제1 데이터 패턴이 메모리 디바이스(420)로 전송되고 메모리 디바이스(420)에 저장된다.
단계(1230)에서, 프로세싱 유닛(410)은 제2 데이터 패턴에 적용된 에러 검출 함수의 결과를 수신한다. 제2 데이터 패턴은 메모리 디바이스(420)의 인터페이스에서 수신되는 위상 변이된 제1 데이터 패턴을 나타낸다. 한 실시예에서, 메모리 디바이스(420)는 프로세서(410)에 의해 제1 데이터 패턴에 적용된 에러 검출 함수와 동일한 에러 검출 함수를 제2 데이터 패턴에 대해 수행한다. 본 발명의 한 실시예에 따라, 제2 데이터 패턴에 대한 에러 검출 함수의 결과는 EDC 신호(160)를 통해 메모리 디바이스(420)에서 프로세싱 유닛(410)으로 전송된다.
단계(1240)에서, 프로세싱 유닛(410)은 위상 변이된 제1 데이터 패턴에 적용된 에러 검출 함수의 제1 결과를 제2 데이터 패턴에 적용된 에러 검출 함수의 제2 결과와 비교하며, 제어기(450)는 제1 결과의 비트 정보를 저장한다. 본 발명의 한 실시예에 따라, 제어기(450)는 제1 결과의 비트 정보를 제2 결과의 비트 정보와 비교하는데, 제2 결과는 메모리 디바이스(420)의 인터페이스에서 수신된 위상 변이된 제1 데이터 패턴을 가리킨다. 한 실시예에서, 제1 결과와 제2 결과는 비트별 방식으로 서로 비교된다.
단계(1250)에서, 만일 제1 결과의 비트 정보가 제2 결과의 비트 정보와 매칭되지 않는다면, 프로세싱 유닛(410)은 제1 데이터 패턴에 추가적인 양의 증분 만큼 위상 지연을 주고(단계 1210) 단계들(1220 내지 1240)이 반복된다.
단계(1260)에서, 제1 결과의 비트 정보와 제2 결과의 비트 정보가 서로 매칭된다면, 위상 변이된 제1 데이터 패턴으로부터 위상 변이 정보가 프로세싱 유닛(410)에 저장된다. 도 13의 타이밍도(1300)를 보면, 타이밍도 Ⅱ는 양의 위상 변이된 데이터 신호(1300)(즉, 양의 위상 변이된 제1 데이터 패턴)를 나타낸 것이다. 타이밍도 I과 Ⅱ의 표시(1310)는 데이터 신호(1300) 상에서 데이터 신호(1300)의 양의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(1330)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 데이터 신호(1300)에 대해 추가적인 양의 위상 변이 증분이 주어진다면(도 13의 타이밍도 Ⅱ에서), 쓰기 클록 신호(150)는 유효한 데이터 신호(1300)를 샘플링하는 데 사용될 수 있다. 이는 데이터 신호(1300)에 대해 추가적인 양의 위상 변이 증분을 가지는 경우 쓰기 클록 신호(150)가 유효한 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가질 것이기 때문이다.
도 13의 타이밍도(1300)를 보면, 시간 간격(1320)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제1 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(1320)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 데이터 신호(1300)는 위상 변이에 있어서 추가적인 양의 증분을 가질 수 있고, 메모리 디바이스(420)는 데이터 신호(1300)를 적절하게 복원할 수 있다. 한 실시예에서, 쓰기 클록 신호(150)와 관련하여 데이터 신호(1300)의 원래 위상 위치(도 13의 타이밍도 I의 표시(1310))를 참조하면, 메모리 디바이스(420)가 데이터 신호(1300)를 적절하게 복원하기 위해 데이터 신호(1300)는 적어도 시간 간격(1320) 만큼의 양의 위상 변이를 가질 것이 요구된다.
도 14는 제1 결과와 제2 결과가 서로 매칭되지 않을 때 쓰기 타이밍 윈도우의 제2 경계 조건을 결정하기 위한 순서도(1400)의 한 실시예를 예시한 것이다. 순서도(1400)에 대한 설명을 용이하게 하기 위해 도 15의 예시적인 타이밍도(1500)가 사용될 것이다. 타이밍도(1500)를 보면, 타이밍도 I과 Ⅲ은 각각 데이터 신호(1300)와 클록 신호(150)를 나타낸다. 이 경우에, 도 3과 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하게, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못하기 때문에(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐) 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원하지 못한다. 도 15의 타이밍도 Ⅱ는 데이터 신호(1300)의 위상 변이된 표현이며, 순서도(1400)와 관련하여 아래에서 서술될 것이다.
한 실시예에서, 순서도(1400)의 시작점은 도 12의 순서도(1200) 및 도 13의 타이밍도(1300)와 관련하여 위에서 서술된 제1 타이밍 경계에 대응되는 데이터 신호(1300)의 양의 위상 변이로부터이다.
순서도(1400)의 단계들은 순서도(1400)의 단계들과 유사하다. 한 실시예에서, 단계들(1410 내지 1440)은 각각 순서도(1200)의 단계들(1210 내지 1240)과 유사한 기능들을 수행한다.
단계(1450)에서, 만일 제1 데이터 패턴에 적용된 에러 검출 함수의 제1 결과의 비트 정보가 제2 데이터 패턴에 적용된 에러 검출 함수의 제2 결과의 비트 정보와 매칭된다면, 프로세싱 유닛(410)은 제1 데이터 패턴에 추가적인 음의 위상 지연 증분을 주고(단계 1410) 단계들(1420 내지 1440)이 반복된다.
단계(1460)에서, 제1 결과의 비트 정보와 제2 결과의 비트 정보가 서로 매칭되지 않는다면, 이전의 위상 변이된 제1 데이터 패턴으로부터 위상 변이 정보가 프로세싱 유닛(410)에 저장된다. 도 15의 타이밍도(1500)를 보면, 타이밍도 Ⅱ는 양의 위상 변이된 데이터 신호(1300)(즉, 양의 위상 변이된 제1 데이터 패턴)를 나타낸 것이다. 타이밍도 I과 Ⅱ의 표시(1310)는 데이터 신호(1300) 상에서 데이터 신호(1300)의 양의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(1530)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 데이터 신호(1300)에 대해 추가적인 양의 위상 변이 증분이 주어진다면(도 15의 타이밍도 Ⅱ에서), 쓰기 클록 신호(150)는 유효하지 않은(invalid) 데이터 신호(1300)(예컨대, 데이터 신호(1300)의 천이 상태(transition state))를 샘플링할 것이다.
도 15의 타이밍도(1500)를 보면, 시간 간격(1520)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제2 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(1520)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 데이터 신호(1300)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 위상 변이에 있어서 추가적인 양의 증분을 가질 수 없다. 한 실시예에서, 쓰기 클록 신호(150)와 관련하여 데이터 신호(1300)의 원래 위상 위치(예컨대, 도 15의 타이밍도 I의 표시(1310))를 참조하면, 데이터 신호(1300)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 시간 간격(1520)보다 더 큰 양의 위상 변이를 가질 수 없다.
요약하면, 도 12 내지 도 15와 관련하여, 쓰기 타이밍 윈도우의 제1 타이밍 경계와 제2 타이밍 경계가 쓰기 클록 신호(150)에 대한 데이터 신호(1300)의 위상 변이의 측면에서 정의되었다. 한 실시예에서, 쓰기 클록 신호(150)에 대한 데이터 신호(1300)의 원래 위상 위치로부터, 쓰기 타이밍 윈도우는 제1 타이밍 경계와 제2 타이밍 경계에 의해 제한(bounded)된다. 한 실시예에서, 제1 타이밍 경계는 데이터 신호(1300)의 원래 위상 위치로부터 메모리 디바이스(420)에 의해 적절한 데이터 복원이 되는 최소 양의 위상 변이로서 정의된다. 또한, 본 발명의 한 실시예에 따라, 제2 타이밍 경계는 데이터 신호(1300)의 원래 위상 위치로부터 메모리 디바이스(420)에 의해 적절한 데이터 복원이 되는 최대 양의 위상 변이로서 정의된다.
상기 설명을 기반으로, 한 실시예에서, 쓰기 타이밍 윈도우의 제1 경계와 제2 경계를 결정하기 위해 쓰기 클록 신호(150)가 또한 사용될 수 있다. 본 발명의 한 실시예에 따라, 도 16 및 도 17에 대한 다음 설명은 쓰기 타이밍 윈도우의 제1 경계와 제2 경계를 결정할 때 순서도들(1200, 1400)의 단계들과 유사한 단계들이 각각 쓰기 클록 신호(150)에 어떻게 적용될 수 있는지에 대한 설명을 용이하게 하도록 이용될 것이다.
도 16은 본 발명의 한 실시예에 따라 쓰기 클록 신호(150)에 의거하여 쓰기 타이밍 윈도우의 제1 타이밍 경계를 결정하기 위해 도 12의 순서도(1200)의 단계들과 유사한 단계들이 어떻게 사용될 수 있는지에 대한 설명을 용이하게 하도록 이용될 예시적인 쓰기 타이밍도(1600)를 예시한 것이다. 타이밍도(1600)를 참조하면, 타이밍도 I과 Ⅱ는 각각 데이터 신호(1300)와 쓰기 클록 신호(150)를 나타낸다. 이 경우에, 도 3과 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하게, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못하기 때문에(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐) 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원하지 못한다. 도 16의 타이밍도 Ⅲ은 쓰기 클록 신호(150)의 위상 변이된 표현이며, 아래에서 더 상세히 서술될 것이다.
도 12의 단계(1210)와 유사하게, 프로세싱 유닛(410)은 쓰기 클록 신호(150)에 대해 양의 위상 변이 증분을 준다. 다음으로, 단계들(1220 내지 1240)의 전송, 수신, 및 비교 단계들이 양의 위상 변이된 쓰기 클록 신호(150)에 적용될 수 있다.
도 16의 타이밍도 Ⅱ와 Ⅲ을 참조하면, 타이밍도 Ⅱ와 Ⅲ의 표시(1610)는 쓰기 클록 신호(150) 상에서 쓰기 클록 신호(150)의 양의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(1630)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 쓰기 클록 신호(150)에 추가적인 양의 위상 변이 증분이 주어진다면(도 16의 타이밍도 Ⅲ에서), 쓰기 클록 신호(150)는 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 충분한 양의 시간)을 가질 것이다.
도 16의 타이밍도(1600)를 참조하면, 시간 간격(1620)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제1 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(1620)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 쓰기 클록 신호(150)는 추가적인 양의 증분을 가질 수 있으며, 메모리 디바이스(420)는 데이터 신호(1300)를 적절하게 복원할 수 있다. 한 실시예에서, 데이터 신호(1300)와 관련하여 쓰기 클록 신호(150)의 원래 위상 위치(도 16의 타이밍도 Ⅱ의 표시(1610))를 참조하면, 메모리 디바이스(420)가 적절하게 데이터 신호(1300)를 복원하기 위해 쓰기 클록 신호(150)는 적어도 시간 간격(1620) 만큼의 양의 위상 변이를 가질 것이 요구된다.
도 17은 본 발명의 한 실시예에 따라 쓰기 클록 신호(150)에 의거하여 쓰기 타이밍 윈도우의 제2 타이밍 경계를 결정하기 위해 도 14의 순서도(1400)의 단계들과 유사한 단계들이 어떻게 사용될 수 있는지에 대한 설명을 용이하게 하도록 이용될 예시적인 쓰기 타이밍도(1700)를 예시한 것이다. 타이밍도(1700)를 참조하면, 타이밍도 I과 Ⅱ는 각각 데이터 신호(1300)와 쓰기 클록 신호(150)를 나타낸다. 이 경우에, 도 3과 관련하여 위에서 서술된 데이터 신호(1300)와 클록 신호(150) 사이의 타이밍 관계와 유사하게, 쓰기 클록 신호(150)가 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못하기 때문에(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐) 메모리 디바이스(420)는 데이터 신호(1300)로부터 데이터를 적절하게 복원하지 못한다. 도 17의 타이밍도 Ⅲ은 쓰기 클록 신호(150)의 위상 변이된 표현이며, 아래에서 더 상세히 서술될 것이다.
한 실시예에서, 순서도(1400)와 유사하게, 쓰기 타이밍도(1700)의 시작점은 도 16의 타이밍도(1600)와 관련하여 위에서 서술된 제1 쓰기 타이밍 경계에 대응되는 데이터 신호(1300)의 양의 위상 변이로부터이다.
도 14의 단계(1410)와 유사하게, 프로세싱 유닛(410)은 쓰기 클록 신호(150)에 대해 양의 위상 변이 증분을 준다. 다음으로, 단계들(1420 내지 1440)의 전송, 수신, 및 비교 단계들이 양의 위상 변이된 쓰기 클록 신호(150)에 적용될 수 있다.
도 17의 타이밍도 Ⅱ와 Ⅲ을 참조하면, 타이밍도 Ⅱ와 Ⅲ의 표시(1610)는 쓰기 클록 신호(150) 상에서 쓰기 클록 신호(150)의 양의 위상 변이 증분을 표시하기 위한 기준점을 나타낸다. 또한, 표시(1730)는 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건을 가리키며, 이 경우에 만일 쓰기 클록 신호(150)에 추가적인 양의 위상 변이 증분이 주어진다면(도 17의 타이밍도 Ⅲ에서), 쓰기 클록 신호(150)는 유효한 데이터 신호(1300)를 샘플링하기에 충분한 양의 시간을 가지지 못할 것(예컨대, 메모리 디바이스(420)가 데이터 신호(1300)를 래치하기에 불충분한 양의 시간을 가짐)이다.
도 17의 타이밍도(1700)를 참조하면, 시간 간격(1720)은 본 발명의 한 실시예에 따라 쓰기 타이밍 윈도우의 제2 타이밍 경계를 나타낸 것이다. 특히, 시간 간격(1720)은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 변이에 대한 경계 조건이며, 이 조건에서 쓰기 클록 신호(150)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 위상 변이에 있어서 추가적인 양의 증분을 가질 수 없다. 한 실시예에서, 데이터 신호(1300)와 관련하여 쓰기 클록 신호(150)의 원래 위상 위치(도 17의 타이밍도 Ⅱ의 표시(1610))를 참조하면, 쓰기 클록 신호(150)는 메모리 디바이스(420)에 의한 부적절한 데이터 복원의 위험 없이 시간 간격(1720)보다 더 큰 양의 위상 변이를 가질 수 없다.
요약하면, 도 16 및 도 17과 관련하여, 쓰기 타이밍 윈도우의 제1 타이밍 경계와 제2 타이밍 경계가 데이터 신호(1300)에 대한 쓰기 클록 신호(150)의 위상 변이의 측면에서 정의되었다. 한 실시예에서, 데이터 신호(1300)에 대한 쓰기 클록 신호(150)의 원래 위상 위치로부터, 쓰기 타이밍 윈도우는 제1 타이밍 경계와 제2 타이밍 경계에 의해 제한(bounded)된다. 한 실시예에서, 제1 타이밍 경계는 쓰기 클록 신호(150)의 원래 위상 위치로부터 메모리 디바이스(420)에 의해 적절한 데이터 복원이 되는 최소 양의 위상 변이로서 정의된다. 또한, 본 발명의 한 실시예에 따라, 제2 타이밍 경계는 쓰기 클록 신호(150)의 원래 위상 위치로부터 메모리 디바이스(420)에 의해 적절한 데이터 복원이 되는 최대 양의 위상 변이로서 정의된다.
도 12 내지 도 17에 대한 상기 설명은 제1 결과와 제2 결과가 서로 매칭되지 않을 때 쓰기 타이밍 윈도우의 제1 경계와 제2 경계를 결정하는 것에 대한 기법들을 서술하고 있다. 위에서 서술된 실시예들에서, 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 정렬이 메모리 디바이스(420)에 의한 적절한 데이터 복원을 허용하도록 데이터 신호(1300)나 아니면 쓰기 클록 신호(150)가 양의 위상 변이 증분 만큼 조정된다. 본 명세서의 설명을 기반으로, 당해 기술분야의 통상의 기술자들은 쓰기 타이밍 윈도우를 결정하고 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 적절한 위상 정렬을 달성하기 위해 데이터 신호(1300)와 쓰기 클록 신호(150)가 각각 음의 위상 변이 증분 만큼 조정될 수 있다는 것을 인지할 것이다. 게다가, 본 명세서의 설명을 기반으로, 당해 기술분야의 통상의 기술자들은 데이터 신호(1300)와 쓰기 클록 신호(150) 사이의 상대적인 위상 정렬이 메모리 디바이스(420)에 의한 적절한 데이터 복원을 허용하도록 데이터 신호(1300)와 쓰기 클록 신호(150) 모두가 예를 들어 양의 위상 변이 증분과 음의 위상 변이 증분의 적절한 조합으로 조정될 수 있다는 것을 인지할 것이다.
도 5의 단계(520)와 관련하여 쓰기 타이밍 윈도우 결정에 대한 상기 설명은 메모리 디바이스(420)의 자원들(예컨대, 데이터 버스(1307 내지 1300), A/C 버스(14015 내지 1400), 및 쓰기 클록 신호(150))이 읽기 동작 모드 및/또는 쓰기 동작 모드에 사용되지 않고 있다고 가정한다. 하지만, 본 명세서의 설명을 기반으로, 관련 기술분야의 통상의 기술자들은 컴퓨터 시스템(400)의 쓰기 동작 모드 동안 쓰기 타이밍 윈도우의 결정이 이루어질 수 있다는 것을 인지할 것이다.
한 실시예에서, 쓰기 동작 모드 동안, 메모리 디바이스(420)에 쓰기 되는 데이터가 쓰기 타이밍 윈도우를 결정하는 데 사용될 수 있다. 도 5의 단계(520)와 관련하여 위에서 서술된 바와 같이, 본 발명의 한 실시예에 따라, 쓰기 타이밍 윈도우의 제1 경계와 제2 경계가 결정될 수 있도록 쓰기 데이터(예컨대, 제1 데이터 패턴)가 위상 조정될 수 있다. 쓰기 타이밍 윈도우를 결정하기 위해 쓰기 데이터를 위상 조정할 때, 메모리 디바이스(420)가 데이터 신호들(1307 내지 1300)을 샘플링하기에 충분한 양의 시간을 가지지 못함으로 인해 쓰기 에러가 컴퓨터 시스템(400)에서 발생할 수 있다. 따라서, 쓰기 데이터를 쓰기 타이밍 윈도우를 결정하는 데 사용함에 있어서, 당해 기술분야의 통상의 기술자들은 일정한 개수의 쓰기 에러들이 컴퓨터 시스템(400)의 성능에 현저하게 영향을 줄 수 있는 경우(예컨대, 디스플레이 모니터 상에서 그래픽 끊김(graphics stuttering)이 발생할 수 있음)에 컴퓨터 시스템(400)에서 임계 조건(threshold condition)이 존재한다는 것을 인지할 것이다. 이런 상황에서는, 컴퓨터 시스템(400)의 성능이 영향을 받지 않도록 EDC 동작 모드에서 위상 조정 반복의 횟수를 줄이는 것이 바람직할 수 있다. 본 발명의 한 실시예에 따라, 컴퓨터 시스템(400)의 성능에 의거하여 읽기/쓰기 동작들의 횟수가 미리 결정될 수 있으며, 이 소정의 값은 시스템 성능에 영향을 주지 않는다. 한 실시예에서, 읽기/쓰기 동작들의 횟수는 기준점으로부터 적절한 타이밍 윈도우를 보장하는 소정의 값(예컨대, EDC 데이터 패턴의 원래 타이밍 위치로부터 "(+)" 방향 및 "(-)" 방향 모두로 소정의 개수의 위상 변이 증분들)에 의거할 수 있다.
한 실시예에서, 쓰기 타이밍 윈도우의 경계는 소정의 개수의 쓰기 에러들(본 명세서에서는 또한 "프로그램가능한 임계값(programmable threshold value)"으로도 지칭됨)을 발생시키는 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 상대적인 위상차에 의해 정의될 수 있다. 즉, 만일 프로세싱 유닛(410)과 메모리 디바이스(420) 사이의 반복되는 쓰기 동작들의 결과로서 소정의 개수의 잘못된 첵섬 값들이 발생한다면, 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 상대적인 위상차는 쓰기 타이밍 윈도우의 경계로서 정의된다.
예를 들어, 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 상대적인 위상차에서, 프로세싱 유닛(410)에서 메모리 디바이스(420)로 전송되는 특정한 데이터 패턴에 대해 쓰기 에러(예컨대, 잘못된 첵섬 값)가 발생할 수 있다. 또 다른 쓰기 에러가 발생하는지를 검증하기 위해 동일한 데이터 패턴이 프로세싱 유닛(410)에서 메모리 디바이스(420)로 전송될 수 있다. 만일 또 다른 쓰기 에러가 발생하는 경우, 동일한 데이터 패턴을 프로세싱 유닛(410)에서 메모리 디바이스(420)로 전송하고 첵섬 값을 검증하는 이런 절차가 반복될 수 있다. 만일 이 반복적인 절차 후에 소정의 개수의 쓰기 에러들이 발생하였다면(예컨대, 프로그램가능한 임계값에 도달하였다면), 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 상대적인 위상차는 쓰기 타이밍 윈도우의 경계로서 정의될 수 있다. 한 실시예에서, 소정의 개수의 쓰기 에러들(예컨대, 프로그램가능한 임계값)은 컴퓨터 시스템(400)의 성능에 의거할 수 있으며, 이 소정의 값은 시스템 성능에 영향을 주지 않는다(예컨대, 디스플레이 모니터 상에서 그래픽 끊김이 발생하지 않는다).
도 5의 방법(500)을 참조하면, 단계(530)에서, 프로세싱 유닛(410)은 단계(520)에서 결정된 쓰기 타이밍 윈도우에 의거하여 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 위상차를 조정한다. 위에서 서술된 바와 같이, 단계(520)와 관련하여, 쓰기 타이밍 윈도우는 메모리 디바이스(420)가 데이터 버스(1307 내지 1300) 상의 데이터 신호들을 적절하게 복원하도록 데이터 버스(1307 내지 1300) 상의 데이터 신호들, 쓰기 클록 신호(150), 또는 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 모두가 서로에 대해 위상 조정될 수 있는 시간 간격을 가리킨다.
도 4를 참조하면, 본 발명의 한 실시예에 따라, 제1 데이터 패턴에 대한 쓰기 타이밍 윈도우에 의거하여, 제어기(450)는 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150)의 전송에 있어서 각각 위상 지연 회로들(430, 400)을 통해 위상 지연을 조정할 수 있다. 한 실시예에서, 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 상대적인 위상차가 쓰기 타이밍 윈도우 내에 있도록 데이터 버스(1307 내지 1300) 상의 데이터 신호들의 전송이 조정되거나, 또는 쓰기 클록 신호(150)의 전송이 조정되거나, 또는 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 모두의 전송이 조정될 수 있다.
본 발명의 한 실시예에 따라, 단계(530)에 의거하여 데이터 버스(1307 내지 1300) 상의 데이터 신호들과 쓰기 클록 신호(150) 사이의 상대적인 위상차가 조정된 후에, 프로세싱 유닛(410)은 상기 상대적인 위상차에 의거하여 메모리 디바이스(420)에 대한 쓰기 동작들을 수행한다. 한 실시예에서, 메모리 디바이스(420)의 쓰기 타이밍을 조정하기 위한 방법(500)의 단계들은 컴퓨터 시스템(400)의 필요에 따라 주기적인 방식으로 또는 "필요에 따른(as-needed)" 방식으로 수행될 수 있다.
본 발명의 다양한 양상들은 소프트웨어, 펌웨어, 하드웨어, 또는 그들의 조합으로 구현될 수 있다. 도 18은 본 발명의 실시예들이나 그 실시예들의 부분들이 컴퓨터 판독가능한 코드로서 구현될 수 있는 예시적인 컴퓨터 시스템(1800)을 예시한 것이다. 예를 들어, 도 5의 순서도(500)로 예시된 방법은 컴퓨터 시스템(1800)에 구현될 수 있다. 본 발명의 다양한 실시예들은 이 예시적인 컴퓨터 시스템(1800)의 측면에서 서술된다. 이 설명을 읽은 후에, 다른 컴퓨터 시스템들 및/또는 컴퓨터 아키텍처들을 사용하여 본 발명의 실시예들을 구현하는 방법은 관련 기술분야의 통상의 기술자들에게 명백해질 것이다.
유의해야 할 점은 본 발명의 다양한 실시예들의 시뮬레이션(simulation), 합성(synthesis), 및/또는 제조(manufacture)는 컴퓨터 판독가능한 코드의 사용을 통해 부분적으로 이루어질 수 있으며, 컴퓨터 판독가능한 코드는 일반적인 프로그래밍 언어(C나 C++과 같은), 예컨대 Verilog HDL, VHDL, AHDL(Altera HDL)과 같은 하드웨어 기술 언어(HDL), 또는 다른 이용가능한 프로그래밍 툴들 및/또는 회로도 설계 툴들(schematic capture tools)(회로 설계 툴들(circuit capture tools)과 같은)을 포함한다. 이 컴퓨터 판독가능한 코드는 반도체, 자기 디스크, 광학 디스크(CD-ROM, DVD-ROM과 같은)를 포함하여 임의의 공지의 컴퓨터 판독가능한 매체에 배치될 수 있다. 이와 같이, 상기 코드는 인터넷을 포함하여 통신 네트워크를 통해 전송될 수 있다. 전술된 시스템 및 기법들에 의해 이루어지는 기능들 및/또는 제공되는 구조는 프로그램 코드로 실시되는 코어(core)(GPU 코어와 같은)에 표현될 수 있고 집적 회로 생산의 일부로서 하드웨어로 변환될 수 있다.
컴퓨터 시스템(1800)은 프로세서(1804)와 같은 하나 이상의 프로세서들을 포함한다. 프로세서(1804)는 범용(general purpose) 프로세서 또는 전용(special purpose) 프로세서(예컨대, GPU)일 수 있다. 프로세서(1804)는 통신 하부구조(communication infrastructure)(1806)(예컨대, 버스나 네트워크)에 연결된다.
컴퓨터 시스템(1800)은 또한 주 메모리(main memory)(1808), 바람직하게는 RAM(random access memory)을 포함하며, 또한 보조 메모리(secondary memory)(1810)를 포함할 수 있다. 예를 들어, 보조 메모리(1810)는 하드디스크 드라이브(1812), 탈착가능한 저장 드라이브(1814), 및/또는 메모리 스틱(memory stick)을 포함할 수 있다. 탈착가능한 저장 드라이브(1814)는 플로피 디스크 드라이브, 자기 테이프 드라이브, 광학 디스크 드라이브, 또는 플래쉬 메모리 등을 포함할 수 있다. 탈착가능한 저장 드라이브(1814)는 주지의 방식으로 탈착가능한 저장 유닛(1818)에 대해 읽기 및/또는 쓰기를 한다. 탈착가능한 저장 유닛(1818)은 탈착가능한 저장 드라이브(1814)에 의해 읽기 및 쓰기가 되는 플로피 디스크, 자기 테이프, 광학 디스크 등을 포함할 수 있다. 관련 기술분야의 통상의 기술자들에 의해 인지될 것인 바와 같이, 탈착가능한 저장 유닛(1818)은 컴퓨터 소프트웨어 및/또는 데이터가 그 안에 저장된 컴퓨터 사용가능한 저장 매체를 포함한다.
대체가능한 구현예들에서, 보조 메모리(1810)는 컴퓨터 프로그램이나 다른 명령어들이 컴퓨터 시스템(1800)으로 로드(load)될 수 있게 하는 다른 유사한 디바이스들을 포함할 수 있다. 예를 들어, 이러한 디바이스들은 탈착가능한 저장 유닛(1822)과 인터페이스(1820)를 포함할 수 있다. 이러한 디바이스들의 예들은 프로그램 카트리지(program catridge)와 카트리지 인터페이스(비디오 게임 디바이스들에서 볼 수 있는 것과 같은), 탈착가능한 메모리 칩(예컨대, EPROM이나 PROM)과 관련 소켓, 그리고 탈착가능한 저장 유닛(1822)에서 컴퓨터 시스템(1800)으로 소프트웨어 및 데이터가 전송될 수 있게 하는 다른 탈착가능한 저장 유닛들(1822)과 인터페이스들(1820)을 포함할 수 있다.
컴퓨터 시스템(1800)은 또한 통신 인터페이스(1824)를 포함할 수 있다. 통신 인터페이스(1824)는 소프트웨어 및 데이터가 컴퓨터 시스템(1800)과 외부 디바이스들 사이에 전송될 수 있게 한다. 통신 인터페이스(1824)는 모뎀, 네트워크 인터페이스(이더넷(Ethernet) 카드와 같은), 통신 포트, 또는 PCMCIA 슬롯 및 카드 등을 포함할 수 있다. 통신 인터페이스(1824)를 통해 전송되는 소프트웨어 및 데이터는 신호의 형태로 전송되며, 신호는 전자 신호, 전자기 신호, 광학 신호, 또는 통신 인터페이스(1824)에 의해 수신될 수 있는 다른 신호들일 수 있다. 이들 신호들은 통신 경로(1826)를 통해 통신 인터페이스(1824)로 제공된다. 통신 경로(1826)는 신호들을 실어나르며 와이어(wire)나 케이블, 광섬유(fiber optics), 전화선, 휴대폰 링크, RF 링크, 또는 다른 통신 채널을 사용하여 구현될 수 있다.
이 문서에서, 용어들 "컴퓨터 프로그램 매체(computer program medium)"와 "컴퓨터 사용가능한 매체(computer-usable medium)"는 탈착가능한 저장 유닛(1818), 탈착가능한 저장 유닛(1822), 및 하드디스크 드라이브(1812)에 설치되는 하드디스크와 같은 매체를 일반적으로 지칭하도록 사용된다. 또한, 컴퓨터 프로그램 매체와 컴퓨터 사용가능한 매체는 주 메모리(1808)와 보조 메모리(1810)와 같이 메모리 반도체(예컨대, DRAM 등)일 수 있는 메모리들을 지칭할 수 있다. 이들 컴퓨터 프로그램 제품들은 소프트웨어를 컴퓨터 시스템(1800)에 제공한다.
컴퓨터 프로그램들(또한 컴퓨터 제어 로직(computer control logic)으로도 지칭됨)은 주 메모리(1808) 및/또는 보조 메모리(1810)에 저장된다. 컴퓨터 프로그램들은 또한 통신 인터페이스(1824)를 통해 수신될 수 있다. 이러한 컴퓨터 프로그램들은 실행되면 컴퓨터 시스템(1800)이 본 명세서에서 논의된 바와 같이 본 발명의 실시예들을 구현하는 것을 가능하게 한다. 특히, 컴퓨터 프로그램들은 실행되면 프로세서(1804)가 도 5의 순서도(500)로 예시된 방법의 단계들과 같이 위에서 논의된 본 발명의 실시예들의 절차들을 구현하는 것을 가능하게 한다. 따라서, 이러한 컴퓨터 프로그램들은 컴퓨터 시스템(1800)의 제어기에 해당한다. 본 발명의 실시예들이 소프트웨어를 사용하여 구현되는 경우, 소프트웨어는 탈착가능한 저장 드라이브(1814), 인터페이스(1820), 하드 드라이브(1812), 또는 통신 인터페이스(1824)를 사용하여 컴퓨터 프로그램 제품에 저장될 수 있고 컴퓨터 시스템(1800)으로 로드될 수 있다.
본 발명의 실시예들은 또한, 임의의 컴퓨터 사용가능한 매체 상에 저장되는 소프트웨어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 이러한 소프트웨어는, 하나 이상의 데이터 프로세싱 디바이스에서 실행되었을 때, 데이터 프로세싱 디바이스(들)가 본 명세서에서 서술된 바와 같이 동작하게 한다. 본 발명의 실시예들은 현재 알려져 있거나 또는 미래에 알려질 임의의 컴퓨터 사용가능한 매체 또는 컴퓨터 판독가능한 매체를 채용한다. 컴퓨터 사용가능한 매체들의 예들은, 주 저장 디바이스들(예컨대, 임의의 유형의 랜덤 액세스 메모리), 보조 저장 디바이스들(예컨대, 하드 드라이브, 플로피 디스크, CD ROM, ZIP 디스크, 테이프, 자기 저장 디바이스, 광학 저장 디바이스, MEMS, 나노기술 저장 디바이스 등), 및 통신 매체들(예컨대, 유선 및 무선 통신 네트워크, 근거리 통신망(local area network), 원거리 통신망(wide area network), 인트라넷(intranet) 등)을 포함하며, 다만 이들로만 한정되는 것은 아니다.
본 발명의 다양한 실시예들이 위에서 서술되었지만, 이들 실시예들은 오로지 예로서만 제공된 것이며, 본 발명을 제한하고자 제공된 것이 아님을 이해하여야 한다. 관련 기술분야의 통상의 기술자들은 특허청구범위에 정의된 바와 같은 본 발명의 사상 및 범위를 벗어남이 없이 형태 및 세부내용에 있어 다양한 변경들이 이루어질 수 있다는 것을 이해할 것이다. 본 발명은 이러한 예들로만 제한되지 않는다는 것을 이해하여야 한다. 본 발명은 본 명세서에 서술된 바와 같이 동작하는 임의의 요소들에 응용될 수 있다. 따라서, 본 발명의 범위 및 사상은 전술한 예시적인 실시예들에 의해 제한되어서는 안 되며, 오로지 다음의 특허청구범위 및 그 균등범위에 의해서만 정의되어야 한다.

Claims (34)

  1. 메모리 디바이스에서 쓰기 타이밍(write timing)을 조정하는 방법으로서,
    프로세싱 디바이스로부터 상기 메모리 디바이스로 전송되는 데이터 비트들에 대해 수행되는 에러 검출 함수(error detection function)로부터 제1 결과를 결정하는 단계와;
    데이터 버스 상의 상기 데이터 비트들을 상기 메모리 디바이스에 전송하는 단계와;
    상기 메모리 디바이스에 의해 수신되는 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수로부터 제2 결과를 결정하는 단계와;
    상기 데이터 버스 상의 신호 및 쓰기 클록 신호(write clock signal)에 대한 제1 타이밍 경계 및 제2 타이밍 경계를 갖는 쓰기 타이밍 윈도우를 결정하도록 상기 제1 결과와 상기 제2 결과를 비교하는 단계 - 상기 제1 결과와 상기 제2 결과가 서로 매칭하지 아니하면,
    상기 제1 타이밍 경계를 결정하기 위해 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들(positive incremental phase shift)에 대해 상기 제1 결과를 결정하는 단계, 상기 전송하는 단계, 상기 제2 결과를 결정하는 단계 및 상기 비교하는 단계의 시퀀스를 되풀이하여(iteratively) 반복하고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 제1 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 제1 양의 위상 변이 증분에 의해 정의되며, 그리고
    상기 제1 타이밍 경계에서 시작하여, 상기 제2 타이밍 경계를 결정하기 위해 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 다른 하나 이상의 양의 위상 변이 증분들에 대해 상기 제1 결과를 결정하는 단계, 상기 전송하는 단계, 상기 제2 결과를 결정하는 단계 및 상기 비교하는 단계의 시퀀스를 되풀이하여 반복하고, 상기 제2 타이밍 경계는 상기 양의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되며 - 와; 그리고
    상기 쓰기 타이밍 윈도우의 제1 타이밍 경계 및 제2 타이밍 경계에 기초하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차(phase difference)를 조정하는 단계를 포함하며,
    상기 메모리 디바이스는 상기 조정된 위상차에 기초하여 상기 데이터 버스 상의 신호를 복원하는
    쓰기 타이밍 조정 방법.
  2. 제1항에 있어서,
    상기 메모리 디바이스를 에러 검출 동작 모드로 설정하는 단계를 더 포함하는
    쓰기 타이밍 조정 방법.
  3. 제2항에 있어서,
    상기 메모리 디바이스를 상기 에러 검출 동작 모드로 설정하는 단계는 상기 메모리 디바이스를 상기 에러 검출 동작 모드 동안 쓰기 동작 모드로 설정하는 것을 포함하는
    쓰기 타이밍 조정 방법.
  4. 제1항에 있어서,
    상기 제1 결과를 결정하는 단계 및 상기 제2 결과를 결정하는 단계는 패리티 함수(parity function) 또는 첵섬 함수(checksum function)를 수행하는 것을 포함하는
    쓰기 타이밍 조정 방법.
  5. 제1항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우, 상기 포함하는 단계는,
    상기 제1 타이밍 경계를 결정하기 위해 상기 데이터 비트들에서의 하나 이상의 양의 위상 변이 증분들에 대해 상기 전송하는 단계, 상기 제2 결과를 결정하는 단계, 및 상기 비교하는 단계의 시퀀스를 되풀이하여 반복하는 단계 - 상기 제1 타이밍 경계는 상기 양의 위상 변이된 제1 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들의 마지막 양의 위상 변이 증분에 의해 정의되며 - 와; 그리고
    상기 제2 타이밍 경계를 결정하기 위해 상기 데이터 비트들의 하나 이상의 음의 위상 변이 증분들에 대해 상기 전송하는 단계, 상기 제2 결과를 결정하는 단계, 및 상기 비교하는 단계의 시퀀스를 되풀이하여 반복하는 단계를 포함하며, 상기 제2 타이밍 경계는 상기 음의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들의 마지막 음의 위상 변이 증분에 의해 정의되는
    쓰기 타이밍 조정 방법.
  6. 제1항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우, 상기 포함하는 단계는,
    상기 제1 타이밍 경계를 결정하기 위해 상기 쓰기 클록 신호의 하나 이상의 양의 위상 변이 증분들에 대해 상기 전송하는 단계, 상기 제2 결과를 결정하는 단계, 및 상기 비교하는 단계의 시퀀스를 되풀이하여 반복하는 단계 - 상기 제1 타이밍 경계는 상기 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 마지막 양의 위상 변이 증분에 의해 정의되며 - 와; 그리고
    상기 제2 타이밍 경계를 결정하기 위해 상기 쓰기 클록 신호의 하나 이상의 음의 위상 변이 증분들에 대해 상기 전송하는 단계, 상기 제2 결과를 결정하는 단계, 및 상기 비교하는 단계의 시퀀스를 되풀이하여 반복하는 단계를 포함하며, 상기 제2 타이밍 경계는 상기 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 쓰기 클록 신호의 마지막 음의 위상 변이 증분에 의해 정의되는
    쓰기 타이밍 조정 방법.
  7. 제1항에 있어서,
    상기 제1 결과를 상기 제2 결과와 비교하는 단계는 상기 제1 결과와 상기 제2 결과가 서로 매칭되는지를 판별하기 위해 상기 제1 결과의 각 비트를 상기 제2 결과의 각 대응하는 비트와 비교하는 것을 포함하는
    쓰기 타이밍 조정 방법.
  8. 제1항에 있어서,
    상기 위상차를 조정하는 단계는 상기 데이터 버스 상의 신호, 상기 쓰기 클록 신호, 또는 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 모두에 위상 지연(phase delay)을 주는 것을 포함하는
    쓰기 타이밍 조정 방법.
  9. 메모리 디바이스에서 쓰기 타이밍을 조정하는 방법으로서,
    제1 결과를 발생시키도록 데이터 비트들에 대해 에러 검출 함수를 수행하는 단계 - 상기 데이터 비트들은 상기 메모리 디바이스의 인터페이스에서 쓰기 클록 신호에 기초하여 수신되며 - 와;
    상기 제1 결과를 프로세싱 유닛으로 전송하는 단계와; 그리고
    데이터 버스 상의 신호를 수신하는 단계를 포함하며,
    상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차는 제1 타이밍 경계 및 제2 타이밍 경계를 갖는 쓰기 타이밍 윈도우 내에 있으며, 상기 쓰기 타이밍 윈도우는 상기 제1 결과와 상기 프로세싱 유닛으로부터 상기 메모리 디바이스로 전송되는 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수로부터의 제2 결과 사이의 반복적인 비교에 기초하고, 상기 제1 결과와 상기 제2 결과가 서로 매칭되지 않는 경우,
    상기 수행하는 단계, 상기 전송하는 단계 및 상기 수신하는 단계의 시퀀스는, 상기 제1 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 제1 양의 위상 변이 증분에 의해 정의되고,
    상기 제1 타이밍 경계에서 시작하여, 상기 수행하는 단계, 상기 전송하는 단계 및 상기 수신하는 단계의 시퀀스는, 상기 제2 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 다른 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제2 타이밍 경계는 상기 양의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되는
    쓰기 타이밍 조정 방법.
  10. 제9항에 있어서,
    상기 에러 검출 함수를 수행하는 단계는, 에러 검출 동작 모드에서 상기 메모리 디바이스를 동작시키는 단계를 더 포함하는
    쓰기 타이밍 조정 방법.
  11. 제9항에 있어서,
    상기 데이터 버스 상의 신호를 수신하는 단계는 상기 쓰기 타이밍 윈도우의 상기 제1 타이밍 경계와 상기 제2 타이밍 경계 사이에 있는 상기 데이터 버스 상의 신호를 수신하는 것을 포함하는
    쓰기 타이밍 조정 방법.
  12. 제9항에 있어서,
    상기 에러 검출 함수를 수행하는 단계는 패리티 함수 또는 첵섬 함수를 수행하는 것을 포함하는
    쓰기 타이밍 조정 방법.
  13. 제9항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우,
    상기 수행하는 단계, 상기 전송하는 단계 및 상기 수신하는 단계의 시퀀스는, 상기 제1 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되고,
    상기 수행하는 단계, 상기 전송하는 단계 및 상기 수신하는 단계의 시퀀스는, 상기 제2 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 음의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제2 타이밍 경계는 상기 음의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들에서의 마지막 음의 위상 변이 증분에 의해 정의되는
    쓰기 타이밍 조정 방법.
  14. 시스템으로서,
    메모리 디바이스와;
    상기 메모리 디바이스에 연결되는 프로세싱 유닛을 포함하며, 상기 프로세싱 유닛은,
    상기 프로세싱 유닛으로부터 상기 메모리 디바이스로 전송되는 데이터 비트들에 대해 수행된 에러 검출 함수로부터 제1 결과를 결정하고;
    데이터 버스 상의 상기 데이터 비트들을 상기 메모리 디바이스에 전송하고;
    상기 메모리 디바이스에 의해 수신되는 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수로부터 제2 결과를 결정하고;
    상기 데이터 버스 상의 신호 및 쓰기 클록 신호에 대한 제1 타이밍 경계 및 제2 타이밍 경계를 갖는 쓰기 타이밍 윈도우를 결정하도록 상기 제1 결과와 상기 제2 결과를 비교하며, 상기 제1 결과와 상기 제2 결과가 서로 매칭하지 아니하면,
    상기 제1 결과를 재결정하고, 상기 데이터 버스 상의 상기 데이터 비트들을 재전송하고, 상기 제2 결과를 재결정하며 그리고 상기 제1 결과와 상기 제2 결과를 재비교하는 시퀀스는 상기 제1 타이밍 경계를 결정하기 위해 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 제1 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 제1 양의 위상 변이 증분에 의해 정의되며, 그리고
    상기 제1 타이밍 경계에서 시작하여, 상기 제1 결과를 재결정하고, 상기 데이터 버스 상의 상기 데이터 비트들을 재전송하고, 상기 제2 결과를 재결정하며 그리고 상기 제1 결과와 상기 제2 결과를 재비교하는 시퀀스는 상기 제2 타이밍 경계를 결정하기 위해 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 다른 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제2 타이밍 경계는 상기 양의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되며; 그리고
    상기 쓰기 타이밍 윈도우의 상기 제1 타이밍 경계 및 제2 타이밍 경계에 기초하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차를 조정하도록 되고,
    상기 메모리 디바이스는 상기 조정된 위상차에 기초하여 상기 데이터 버스 상의 신호를 복원하는
    시스템.
  15. 제14항에 있어서,
    상기 프로세싱 유닛은 쓰기 동작 모드 동안 상기 메모리 디바이스를 에러 검출 동작 모드에 두도록 되는
    시스템.
  16. 제14항에 있어서,
    상기 에러 검출 함수는 패리티 함수 또는 첵섬 함수를 포함하는
    시스템.
  17. 제14항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우, 상기 프로세싱 유닛은,
    상기 제1 타이밍 경계를 결정하기 위해 상기 데이터 비트들의 하나 이상의 양의 위상 변이 증분들에 대해 상기 데이터 버스 상의 상기 데이터 비트들을 재전송하고, 상기 제2 결과를 재결정하며, 그리고 상기 제1 결과와 상기 제2 결과를 재비교하는 시퀀스를 되풀이하여 반복하고, 상기 제1 타이밍 경계는 상기 양의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들에서의 마지막 양의 위상 변이 증분에 의해 정의되며; 그리고
    상기 제2 타이밍 경계를 결정하기 위해 상기 데이터 비트들의 하나 이상의 음의 위상 변이 증분들에 대해 상기 데이터 버스 상의 상기 데이터 비트들을 재전송하고, 상기 제2 결과를 재결정하며, 그리고 상기 제1 결과와 상기 제2 결과를 재비교하는 시퀀스를 되풀이하여 반복하도록 되고,
    상기 제2 타이밍 경계는 상기 음의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들에서의 마지막 음의 위상 변이 증분에 의해 정의되는
    시스템.
  18. 제14항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우, 상기 프로세싱 유닛은,
    상기 제1 타이밍 경계를 결정하기 위해 상기 쓰기 클록 신호의 하나 이상의 양의 위상 변이 증분들에 대해 상기 데이터 버스 상의 상기 데이터 비트들을 재전송하고, 상기 제2 결과를 재결정하며, 그리고 상기 제1 결과와 상기 제2 결과를 재비교하는 시퀀스를 되풀이하여 반복하고, 상기 제1 타이밍 경계는 상기 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 쓰기 클록 신호의 마지막 양의 위상 변이 증분에 의해 정의되며; 그리고
    상기 제2 타이밍 경계를 결정하기 위해 상기 쓰기 클록 신호의 하나 이상의 음의 위상 변이 증분들에 대해 상기 데이터 버스 상의 상기 데이터 비트들을 재전송하고, 상기 제2 결과를 재결정하며, 그리고 상기 제1 결과와 상기 제2 결과를 재비교하는 시퀀스를 되풀이하여 반복하도록 되고,
    상기 제2 타이밍 경계는 상기 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 쓰기 클록 신호의 마지막 음의 위상 변이 증분에 의해 정의되는
    시스템.
  19. 제14항에 있어서,
    상기 프로세싱 유닛은 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 상기 위상차를 조정할 때 상기 데이터 버스 상의 신호, 상기 쓰기 클록 신호, 또는 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 모두에 위상 지연을 주도록 되는
    시스템.
  20. 시스템으로서,
    프로세싱 유닛과; 그리고
    상기 프로세싱 유닛에 연결되는 메모리 디바이스를 포함하며, 상기 메모리 디바이스는,
    제1 결과를 발생시키도록 데이터 비트들에 대해 에러 검출 함수를 수행하고, 상기 데이터 비트들은 상기 메모리 디바이스의 인터페이스에서 쓰기 클록 신호에 기초하여 수신되며;
    상기 제1 결과를 프로세싱 유닛으로 전송하고; 그리고
    데이터 버스 상의 신호를 수신하도록 되고,
    상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차는 제1 타이밍 경계 및 제2 타이밍 경계를 갖는 쓰기 타이밍 윈도우 내에 있으며, 상기 쓰기 타이밍 윈도우는 상기 제1 결과와 상기 프로세싱 유닛으로부터 상기 메모리 디바이스로 전송되는 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수로부터의 제2 결과 사이의 반복적인 비교에 기초하고, 상기 반복적인 비교들 각각 사이에서, 상기 신호가 상기 프로세싱 유닛으로부터 상기 메모리 디바이스로 전송될 때 위상 변이는 상기 데이터 버스 상의 상기 신호로 주어지고,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되지 않는 경우,
    상기 에러 검출 함수를 재수행하고, 상기 제1 결과를 재전송하며, 그리고 상기 데이터 버스 상의 신호를 재수신하는 시퀀스는, 상기 제1 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 제1 양의 위상 변이 증분에 의해 정의되고,
    상기 제1 타이밍 경계에서 시작하여, 상기 에러 검출 함수를 재수행하고, 상기 제1 결과를 재전송하며, 그리고 상기 데이터 버스 상의 신호를 재수신하는 시퀀스는, 상기 제2 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 다른 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제2 타이밍 경계는 상기 양의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되는
    시스템.
  21. 제20항에 있어서,
    상기 메모리 디바이스는 에러 검출 동작 모드에서 동작하도록 되는
    시스템.
  22. 제20항에 있어서,
    상기 메모리 디바이스는 상기 쓰기 타이밍 윈도우의 제1 타이밍 경계와 제2 타이밍 경계 사이에 있는 상기 데이터 버스 상의 신호를 수신하도록 되는
    시스템
  23. 제20항에 있어서,
    상기 에러 검출 함수는 패리티 함수 또는 첵섬 함수를 포함하는
    시스템.
  24. 제20항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭하는 경우,
    상기 에러 검출 함수를 재수행하고, 상기 제1 결과를 재전송하며, 그리고 상기 데이터 버스 상의 신호를 재수신하는 시퀀스는, 상기 제1 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되고, 그리고
    상기 에러 검출 함수를 재수행하고, 상기 제1 결과를 재전송하며, 그리고 상기 데이터 버스 상의 신호를 재수신하는 시퀀스는, 상기 제2 타이밍 경계를 결정하기 위해 상기 대응하는 데이터 비트들 또는 상기 쓰기 클록 신호에서의 다른 하나 이상의 음의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제2 타이밍 경계는 상기 음의 위상 변이된 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제2 결과가 그에 대응하는 상기 제1 결과와 매칭하는 상기 대응하는 데이터 비트들에서의 마지막 음의 위상 변이 증분에 의해 정의되는
    시스템.
  25. 프로세서로 하여금 소프트웨어 코드를 분석하는 것을 가능하게 하는 컴퓨터 프로그램 로직(computer program logic)이 기록된 비일시적인 머신 사용가능한 기록 매체를 포함하는 컴퓨터 판독가능한 매체로서, 상기 컴퓨터 프로그램 로직은,
    프로세서로 하여금, 프로세싱 디바이스로부터 메모리 디바이스로 전송되는 데이터 비트들에 대해 수행된 에러 검출 함수의 제1 결과들을 결정하는 것을 가능하게 하는 제1 컴퓨터 판독가능한 프로그램 코드와;
    프로세서로 하여금, 데이터 버스 상의 상기 데이터 비트들을 상기 메모리 디바이스에 전송하는 것을 가능하게 하는 제2 컴퓨터 판독가능한 프로그램 코드와;
    프로세서로 하여금, 상기 메모리 디바이스에 의해 수신되는 대응하는 데이터 비트들에 대해 수행된 상기 에러 검출 함수로부터 제2 결과를 결정하는 것을 가능하게 하는 제3 컴퓨터 판독가능한 프로그램 코드와;
    프로세서로 하여금, 상기 데이터 버스 상의 신호 및 쓰기 클록 신호에 대한 제1 타이밍 경계 및 제2 타이밍 경계를 갖는 쓰기 타이밍 윈도우를 결정하도록 상기 제1 결과와 상기 제2 결과를 비교하는 것을 가능하게 하는 제4 컴퓨터 판독가능한 프로그램 코드 - 상기 제1 결과와 상기 제2 결과가 서로 매칭하지 아니하면,
    상기 제1 컴퓨터 판독가능한 프로그램 코드, 상기 제2 컴퓨터 판독가능한 프로그램 코드, 상기 제3 컴퓨터 판독가능한 프로그램 코드 및 상기 제4 컴퓨터 판독가능한 프로그램 코드의 시퀀스는 상기 제1 타이밍 경계를 결정하기 위해 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제1 타이밍 경계는, 상기 양의 위상 변이된 제1 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 제1 양의 위상 변이 증분에 의해 정의되며, 그리고
    상기 제1 타이밍 경계에서 시작하여, 상기 제1 컴퓨터 판독가능한 프로그램 코드, 상기 제2 컴퓨터 판독가능한 프로그램 코드, 상기 제3 컴퓨터 판독가능한 프로그램 코드 및 상기 제4 컴퓨터 판독가능한 프로그램 코드의 시퀀스는 상기 제2 타이밍 경계를 결정하기 위해 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 다른 하나 이상의 양의 위상 변이 증분들에 대해 되풀이하여 반복되고, 상기 제2 타이밍 경계는 상기 양의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들 또는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되며 - 와; 그리고
    프로세서로 하여금, 상기 쓰기 타이밍 윈도우의 상기 제1 타이밍 경계 및 제2 타이밍 경계에 기초하여 상기 데이터 버스 상의 신호와 상기 쓰기 클록 신호 사이의 위상차를 조정하는 것을 가능하게 하는 제5 컴퓨터 판독가능한 프로그램 코드를 포함하고,
    상기 메모리 디바이스는 상기 조정된 위상차에 기초하여 상기 데이터 버스 상의 신호를 복원하는
    컴퓨터 판독가능한 매체.
  26. 제25항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우, 상기 제4 컴퓨터 판독가능한 프로그램 코드는,
    프로세서로 하여금, 상기 제1 타이밍 경계를 결정하기 위해 상기 데이터 비트들의 하나 이상의 양의 위상 변이 증분들에 대해 상기 제2 컴퓨터 판독가능한 프로그램 코드, 상기 제3 컴퓨터 판독가능한 프로그램 코드, 및 상기 제4 컴퓨터 판독가능한 프로그램 코드의 시퀀스를 되풀이하여 반복하는 것을 가능하게 하는 제6 컴퓨터 판독가능한 프로그램 코드 - 상기 제1 타이밍 경계는 상기 양의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들에서의 마지막 양의 위상 변이 증분에 의해 정의되며; 그리고
    프로세서로 하여금, 상기 제2 타이밍 경계를 결정하기 위해 상기 데이터 비트들의 하나 이상의 음의 위상 변이 증분들에 대해 상기 제2 컴퓨터 판독가능한 프로그램 코드, 상기 제3 컴퓨터 판독가능한 프로그램 코드, 상기 제4 컴퓨터 판독가능한 프로그램 코드 및 상기 제5 컴퓨터 판독가능한 프로그램 코드의 시퀀스를 되풀이하여 반복하는 것을 가능하게 하는 제7 컴퓨터 판독가능한 프로그램 코드를 포함하고,
    상기 제2 타이밍 경계는 상기 음의 위상 변이된 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 데이터 비트들에서의 마지막 음의 위상 변이 증분에 의해 정의되는
    컴퓨터 판독가능한 매체.
  27. 제25항에 있어서,
    상기 제1 결과와 상기 제2 결과가 서로 매칭되는 경우, 상기 제4 컴퓨터 판독가능한 프로그램 코드는,
    프로세서로 하여금, 상기 제1 타이밍 경계를 결정하기 위해 상기 쓰기 클록 신호의 하나 이상의 양의 위상 변이 증분들에 대해 상기 제2 컴퓨터 판독가능한 프로그램 코드, 상기 제3 컴퓨터 판독가능한 프로그램 코드, 및 상기 제4 컴퓨터 판독가능한 프로그램 코드의 시퀀스를 되풀이하여 반복하는 것을 가능하게 하는 제6 컴퓨터 판독가능한 프로그램 코드 - 상기 제1 타이밍 경계는 상기 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 쓰기 클록 신호에서의 마지막 양의 위상 변이 증분에 의해 정의되며; 그리고
    프로세서로 하여금, 상기 제2 타이밍 경계를 결정하기 위해 상기 쓰기 클록 신호의 하나 이상의 음의 위상 변이 증분들에 대해 상기 제2 컴퓨터 판독가능한 프로그램 코드, 상기 제3 컴퓨터 판독가능한 프로그램 코드 및 상기 제4 컴퓨터 판독가능한 프로그램 코드의 시퀀스를 되풀이하여 반복하는 것을 가능하게 하는 제7 컴퓨터 판독가능한 프로그램 코드를 포함하고,
    상기 제2 타이밍 경계는 상기 데이터 비트들에 대해 수행된 상기 에러 검출 함수의 상기 제1 결과가 그에 대응하는 상기 제2 결과와 매칭하는 상기 쓰기 클록 신호에서의 마지막 음의 위상 변이 증분에 의해 정의되는
    컴퓨터 판독가능한 매체.
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR1020127008686A 2009-09-09 2010-09-09 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정 KR101617374B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US24069909P 2009-09-09 2009-09-09
US61/240,699 2009-09-09
US12/846,958 2010-07-30
US12/846,958 US8862966B2 (en) 2009-09-09 2010-07-30 Adjustment of write timing based on error detection techniques

Publications (2)

Publication Number Publication Date
KR20120062870A KR20120062870A (ko) 2012-06-14
KR101617374B1 true KR101617374B1 (ko) 2016-05-02

Family

ID=43567581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127008686A KR101617374B1 (ko) 2009-09-09 2010-09-09 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정

Country Status (7)

Country Link
US (1) US8862966B2 (ko)
EP (1) EP2476062B1 (ko)
JP (1) JP5805643B2 (ko)
KR (1) KR101617374B1 (ko)
CN (1) CN102576342B (ko)
IN (1) IN2012DN02970A (ko)
WO (1) WO2011031847A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10756847B2 (en) 2016-12-22 2020-08-25 Samsung Electronics Co., Ltd. Electronic device and method for detecting error thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120011491A (ko) * 2010-07-29 2012-02-08 주식회사 하이닉스반도체 반도체 시스템 및 그 데이터 트래이닝 방법
US8930776B2 (en) * 2012-08-29 2015-01-06 International Business Machines Corporation Implementing DRAM command timing adjustments to alleviate DRAM failures
TWI522772B (zh) * 2012-10-17 2016-02-21 Automatic transmission interface device and method for correcting transmission frequency
BR122016006765B1 (pt) * 2013-03-15 2022-02-01 Intel Corporation Aparelho acoplado ao módulo de memória, sistema de memória e método
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US10459855B2 (en) 2016-07-01 2019-10-29 Intel Corporation Load reduced nonvolatile memory interface
DE102018115100A1 (de) * 2018-06-22 2019-12-24 Krohne Messtechnik Gmbh Verfahren zur Fehlerbehandlung bei Buskommunikation und Buskommunikationssystem
US11601825B2 (en) * 2018-08-08 2023-03-07 Faraday&Future Inc. Connected vehicle network data transfer optimization
KR102685470B1 (ko) * 2018-12-24 2024-07-17 에스케이하이닉스 주식회사 트래이닝 기능을 갖는 반도체 장치 및 반도체 시스템
WO2020136842A1 (ja) * 2018-12-27 2020-07-02 三菱電機株式会社 データ収集装置、方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009055103A2 (en) 2007-10-22 2009-04-30 Rambus, Inc. Low-power source-synchronous signaling
WO2009108562A2 (en) 2008-02-25 2009-09-03 Rambus Inc. Code-assisted error-detection technique

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149684A (ja) * 1992-11-09 1994-05-31 Fujitsu Ltd パリティチェック回路
KR100306881B1 (ko) * 1998-04-02 2001-10-29 박종섭 동기 반도체 메모리를 위한 인터페이스
US6801989B2 (en) * 2001-06-28 2004-10-05 Micron Technology, Inc. Method and system for adjusting the timing offset between a clock signal and respective digital signals transmitted along with that clock signal, and memory device and computer system using same
US6877103B2 (en) * 2001-10-05 2005-04-05 Via Technologies, Inc. Bus interface timing adjustment device, method and application chip
SE524201C2 (sv) 2002-12-17 2004-07-06 Lars-Berno Fredriksson Anordning vid distribuerat styr- och övervakningssystem
US6920524B2 (en) * 2003-02-03 2005-07-19 Micron Technology, Inc. Detection circuit for mixed asynchronous and synchronous memory operation
US7000170B2 (en) * 2003-02-04 2006-02-14 Lsi Logic Corporation Method and apparatus for generating CRC/parity error in network environment
JP2005141725A (ja) 2003-10-16 2005-06-02 Pioneer Plasma Display Corp メモリアクセス回路、そのメモリアクセス回路の動作方法およびそのメモリアクセス回路を用いる表示装置
DE102005019041B4 (de) * 2005-04-23 2009-04-16 Qimonda Ag Halbleiterspeicher und Verfahren zur Anpassung der Phasenbeziehung zwischen einem Taktsignal und Strobe-Signal bei der Übernahme von zu übertragenden Schreibdaten
JP2008152315A (ja) 2006-12-14 2008-07-03 Sanyo Electric Co Ltd 信号処理回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009055103A2 (en) 2007-10-22 2009-04-30 Rambus, Inc. Low-power source-synchronous signaling
WO2009108562A2 (en) 2008-02-25 2009-09-03 Rambus Inc. Code-assisted error-detection technique

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10756847B2 (en) 2016-12-22 2020-08-25 Samsung Electronics Co., Ltd. Electronic device and method for detecting error thereof

Also Published As

Publication number Publication date
WO2011031847A1 (en) 2011-03-17
US20110185256A1 (en) 2011-07-28
EP2476062A1 (en) 2012-07-18
CN102576342B (zh) 2015-07-01
KR20120062870A (ko) 2012-06-14
CN102576342A (zh) 2012-07-11
US8862966B2 (en) 2014-10-14
IN2012DN02970A (ko) 2015-07-31
JP5805643B2 (ja) 2015-11-04
JP2013504817A (ja) 2013-02-07
EP2476062B1 (en) 2014-02-26

Similar Documents

Publication Publication Date Title
KR101617374B1 (ko) 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정
US9292433B2 (en) Memory device, host device, and sampling clock adjusting method
US8489912B2 (en) Command protocol for adjustment of write timing delay
US7249290B2 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
CN107844445B (zh) 用于非源同步系统的调谐电路系统和操作
JP5666575B2 (ja) メモリデバイスにおける書き込みタイミングの調節
US11561923B2 (en) Method for training multichannel data receiver timing
KR100958902B1 (ko) 위상 조정 기능의 평가 방법, 정보 처리 장치, 및 컴퓨터판독 가능한 정보 기록 매체
KR20140035770A (ko) 임베디드 멀티미디어 카드 디바이스, 그 시스템 및 그 동작방법
US8671304B2 (en) Adjustment of write timing based on a training signal
CN114627918B (zh) 使用写入dll电路系统对存储器装置进行写入调平
JP2008079041A (ja) 高速シリアルバスのクロック調整装置およびクロック調整方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4