KR20080028789A - 메모리 컨트롤러, 메모리 회로, 메모리 시스템 및 신호 간위상 관계 조정 방법 - Google Patents

메모리 컨트롤러, 메모리 회로, 메모리 시스템 및 신호 간위상 관계 조정 방법 Download PDF

Info

Publication number
KR20080028789A
KR20080028789A KR1020070096057A KR20070096057A KR20080028789A KR 20080028789 A KR20080028789 A KR 20080028789A KR 1020070096057 A KR1020070096057 A KR 1020070096057A KR 20070096057 A KR20070096057 A KR 20070096057A KR 20080028789 A KR20080028789 A KR 20080028789A
Authority
KR
South Korea
Prior art keywords
data
circuit
masking
memory
memory controller
Prior art date
Application number
KR1020070096057A
Other languages
English (en)
Other versions
KR100894346B1 (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 KR20080028789A publication Critical patent/KR20080028789A/ko
Application granted granted Critical
Publication of KR100894346B1 publication Critical patent/KR100894346B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 명세서는 클록 신호 간 위상차를 조정하는 방법 및 장치를 개시한다. 메모리 컨트롤러에서의 제 1 클록 신호는 메모리 디바이스에서의 제 2 클록 신호에 대해 조정된다. 일 실시예에서, 데이터는 제 2 클록 신호와 사전결정된 위상 관계를 갖는 제 1 클록 신호에 따라 메모리 디바이스로 전송된다. 메모리 디바이스에서 수신된 데이터는 제 2 클록 신호에 따라 메모리 디바이스에서 샘플링된다. 메모리 컨트롤러 상의 데이터와 메모리 회로 상의 수신된 데이터에 대한 분석이 수행된다. 이러한 분석에 기초하여, 위상 관계에 대한 조정이 구현될 수 있다.

Description

메모리 컨트롤러, 메모리 회로, 메모리 시스템 및 신호 간 위상 관계 조정 방법{MEMORY CONTROLLER, MEMORY CIRCUIT AND MEMORY SYSTEM WITH A MEMORY CONTROLLER AND A MEMORY CIRCUIT}
본 발명은 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러로부터 메모리 회로로의 데이터 전송의 시간 위치를 조정하는 방법에 관한 것이다.
메모리 시스템에서 데이터는 메모리 컨트롤러로부터 메모리 회로로 전송된다. 데이터 전송을 위해 고주파수에 도달하도록, 전송된 데이터의 위상을 메모리 회로의 내부 수신 클록에 정확히 정렬시키는 것이 필요하다. 만약 메모리 회로의 내부 클록과 데이터가 메모리 회로의 샘플링 지점에서 소정의 위상 관계를 갖지 않는다면, 오류 없는 데이터 전송이 보장될 수 없다. 보다 높은 데이터 전송 속도에 대한 감소된 타이밍 버짓(timing budget)은 위상 정렬에 대한 이러한 요구를 보다 강하게 한다.
자동 조정 메커니즘은 종래의 방법으로 메모리 회로의 내부 클록의 전파 경로와 각 데이터 신호 사이의 고정적인 미스매치를 개별적으로 감소시킬 수 있다. 전압 및 온도 종속적인 드리프트도 연속적이고 주기적인 재조정에 의해 소정의 레벨로 보상될 수 있다. 작업을 위한 이러한 자동 메커니즘에서, DRAM 내의 내부 클록과 데이터의 실제 위상 관계에 관한 인식이 요구된다. 현재의 DRAM 표준은 이러한 정보를 메모리 컨트롤러로 반환하는 임의의 메커니즘을 제공하지 않는다.
종래의 메모리 컨트롤러는 메모리 회로에 대해 일련의 기능적 테스트를 실행함으로써 이러한 문제점을 해결하였다. 서로 다르게 빗나간 위상을 갖는 특정 데이터 패턴을 메모리 회로 저장 어레이 내에 입력하고 다시 판독한 후, 오류 없이 전송하는 데이터 위상 윈도우가 식별되고 최적의 입력 위상이 선택된다. 소정 레벨의 드래프트 추적 능력에 대해, 이러한 위상 트레이닝(phase training)은 반드시 주기적으로 반복-실행되어야 한다.
본 발명의 일 측면은 오류 계산에서 데이터의 일부만을 고려하는 것과 제 1 전자 디바이스로부터 제 2 전자 디바이스로의 데이터 전송의 시간 위치를 조정하도록 오류 계산의 결과를 사용하는 것이다.
본 발명의 제 1 실시예는 데이터를 메모리 회로로 전송하고 메모리 회로로부터 데이터를 수신하는 데이터 인터페이스를 포함하는 메모리 컨트롤러, 데이터 인터페이스 및 마스킹 회로와 접속된 데이터 공급 회로를 기술한다. 공급 회로는 동일한 데이터를 데이터 인터페이스와 마스킹 회로에 전송하며, 데이터 인터페이스는 시간 기준에 대해 사전결정된 시간 위치를 갖는 데이터를 출력한다. 마스킹 회로는 분석 비교 회로와 접속된 오류 검출 회로와 접속된다. 마스킹 회로는 데이터의 일부를 마스킹하고 데이터의 마스킹되지 않은 적어도 일부를 오류 검출 회로로 전송하며, 그 다음 오류 검출 회로는 수신된 마스킹되지 않은 데이터를 사용해 제 1 오류 결과를 계산하여 이러한 제 1 오류 결과를 분석 회로로 전송한다. 분석 회로는 인터페이스와 접속되고 인터페이스로부터 메모리 회로의 제 1 오류 결과를 수신한다. 그 다음 분석 회로는 제 1 및 제 2 오류 결과를 분석하고 제 1 및 제 2 오류 결과에 대한 상관 정보를 제어 회로로 전송한다. 제어 회로는 상관 정보에 따라 시간 기준에 대한 데이터 인터페이스에 의해 데이터의 출력의 시간 위치를 제어한다.
본 발명의 다른 실시예는 데이터를 저장하는 메모리 소자를 구비하는 메모리 회로를 기술하되, 이 메모리 회로는 데이터를 전송하고 메모리 컨트롤러로부터 데 이터를 수신하며 마스킹 회로와 접속되는 데이터 인터페이스를 포함하고, 상기 인터페이스는 데이터를 수신하고, 데이터를 버퍼링하고, 버퍼링된 데이터를 시간 기준에 따라 샘플링하여 샘플링된 데이터를 마스킹 회로로 전송하며, 상기 메모리 회로는 데이터의 일부를 마스킹하고 마스킹되지 않은 데이터의 적어도 일부를 추가적인 오류 검출 회로로 전송하는 마스킹 회로와, 데이터 인터페이스와 접속되고 제 2 오류 결과를 데이터 인터페이스로 전송하는 오류 검출 회로를 포함하되, 상기 데이터 인터페이스는 제 2 오류 결과를 메모리 컨트롤러로 전송한다.
본 발명의 다른 실시예는 메모리 컨트롤러와 메모리 소자를 구비하는 메모리 회로를 포함하는 메모리 시스템을 기술하며, 이때 메모리 컨트롤러는 데이터를 메모리 회로로 전송하고 메모리 회로로부터 데이터를 수신하는 데이터 인터페이스를 포함한다. 데이터 공급 회로는 데이터 인터페이스와 마스킹 회로에 접속되고 시간 기준에 대해 사전결정된 시간 위치에서 동일한 데이터를 데이터 인터페이스와 마스킹 회로로 출력한다. 마스킹 회로는 분석 회로와 접속된 오류 검출 회로와 접속된다. 마스킹 회로는 데이터의 일부를 마스킹하고 마스킹되지 않은 데이터의 적어도 일부를 오류 검출 회로로 전송하며, 오류 검출 회로는 수신된 적어도 마스킹되지 않은 데이터를 사용하여 제 1 오류 결과를 계산하며 제 1 오류 결과를 인터페이스와 접속된 분석 회로로 전송하고 인터페이스로부터 제 2 오류 결과를 수신한다. 분석 회로는 제 1 및 제 2 오류 결과를 분석하여 제 1 및 제 2 오류 결과에 대한 상관 정보를 제어 회로로 전송한다. 상관 정보에 기초하여, 제어 회로는 시간 기준을 참고로 하여 제 1 인터페이스에 의해 전송된 데이터의 시간 위치를 제어한다. 메모 리 회로의 추가의 데이터 인터페이스는 데이터를 전송하고 수신하도록 구성되며, 추가의 마스킹 회로와 접속된다. 추가적인 인터페이스는 데이터를 수신하고, 데이터를 버퍼링하며, 시간 기준에 따라 버퍼링된 데이터를 샘플링하고 샘플링된 데이터를 추가적인 마스킹 회로로 전송한다. 추가적인 마스킹 회로는 데이터의 일부를 마스킹하고 마스킹되지 않은 데이터의 적어도 일부를 추가적인 오류 검출 회로로 전송하며, 이때 오류 검출 회로는 추가적인 인터페이스와 접속되고 제 2 오류 결과를 추가적인 데이터 인터페이스로 전송한다. 추가적인 데이터 인터페이스는 제 2 오류 결과를 메모리 컨트롤러로 전송한다.
본 발명의 다른 실시예는 메모리 컨트롤러로부터 메모리 회로로의 데이터의 데이터 전송의 시간 위치를 조정하는 방법을 기술하며, 이때 두 개의 동일한 제 1 및 제 2 데이터가 제공되고, 제 1 데이터는 적어도 일부분 마스킹된다. 제 2 데이터는 시간 기준이라 불리는 사전결정된 시간 위치에서 메모리 회로로 전송된다. 적어도 제 1 데이터의 마스킹되지 않은 일부분은 제 1 오류 결과를 생성하는 메모리 컨트롤러 내에서 오류 검출 계산을 수행하는 데에 사용된다. 제 2 오류 결과는 제 2 데이터에 기초하여 계산되어 메모리 회로로부터 수신된다. 제 1 및 제 2 오류 결과는 비교되며, 비교의 결과에 따라 사전결정된 상호관계를 갖는 제 1 및 제 2 오류 결과를 수신하도록 제 2 데이터의 전송의 시간 위치가 변화된다.
본 발명에 따르면 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러로부 터 메모리 회로로의 데이터 전송의 시간 위치를 조정하는 향상된 방법이 제공된다.
전술된 본 발명의 특성들이 보다 상세하게 이해될 수 있도록, 상기에서 간략하게 요약된 바와 같은 본 발명에 대한 보다 구체적인 설명이 일부가 첨부된 도면에 도시된 실시예를 참조로 하여 주어질 것이다. 그러나, 첨부된 도면은 단지 본 발명의 전형적인 실시예이므로, 본 발명의 범주를 제한하는 것으로 간주되어서는 안되며, 본 발명은 동일한 효과를 갖는 실시예도 허용한다.
본 발명의 하나 이상의 구현이 첨부된 도면을 참조로 하여 기술될 것이며, 이때 동일한 참조 번호가 동일한 소자에 대해 사용되었고, 도시된 구조는 실제 축적대로 도시되지는 않았다.
본 발명은 다양한 기능적 구성요소들로 기술될 수 있다. 이러한 구성요소들이 임의의 수의 하드웨어 또는 특정 기능을 수행하도록 구성된 구조적 구성요소들에 의해 구현될 수 있다는 이해해야 한다. 예를 들어, 본 발명은 저항, 트랜지스터, 캐패시터, 다이오드 및 이러한 구성요소들과 같은 다양한 전기적 디바이스로 구성된 다양한 집적 구성요소와 다양한 의도된 목적에 적합하게 구성될 수 있는 양식을 사용할 수 있다. 또한, 본 발명은 효과적인 역전 가능한 극이 필요한 임의의 집적 회로 애플리케이션에서 구현될 수 있다. 이러한 일반적인 애플리케이션은 상세하게 기술되지 않았지만 본 명세서의 범주 내에서 당업자가 이해할 수 있을 것이다. 또한, 다양한 구성요소들은 예시적인 회로들 내에서 다른 구성요소들과 함께 적절히 연결되거나 접속될 수 있으며, 그러한 접속 및 연결은 구성요소들 간의 직접 접속 및 그들 사이에 위치한 다른 구성요소 및 디바이스를 통한 접속에 의해 구현될 수 있다.
도 1은 메모리 컨트롤러(2) 및 메모리 회로(3)를 구비하는 메모리 시스템(1)을 도시한다. 메모리 컨트롤러(2)는 데이터 라인(4)에 의해 메모리 회로(3)와 접속된다. 도시된 실시예에서, 9개의 평행한 데이터 라인들은 메모리 컨트롤러(2)와 메모리 회로(3) 사이에 배치된다. 또한 오류 라인(5)이 메모리 회로(3)와 메모리 컨트롤러(2) 사이에 배치되어 메모리 컨트롤러(2)로 오류 정보를 제공한다. 또한, 그외의 신호 라인(6)들이 메모리 컨트롤러(2)와 메모리 회로(3) 사이에 제공될 수 있다. 편리를 위해 본 명세서에서 "데이터" 라인(4)으로 지칭하지만, 데이터 라인(4)은 데이터, 메모리 셀들의 어드레스 및 메모리 회로(3)의 동작을 제어하는 제어 명령을 전송하는 데에 사용될 수 있다. 메모리 회로(3)의 동작은 메모리 회로(3) 내의 메모리 소자로부터의 데이터 판독, 메모리 소자로의 데이터 입력 및/또는 메모리 소자 내의 데이터 삭제일 수 있다. 메모리 회로(3)는 어레이로 배열되고 판독 및 입력 회로(8)에 의해 개별적으로 액세스될 수 있는 메모리 소자(7)를 포함한다. 판독/입력 회로(8)는 메모리 소자(7)와 접속된다. 메모리 컨트롤러(2)는 입력/출력 회로(9)를 포함하고 메모리 회로(3)는 데이터와 신호를 교환하는 제 2 입력/출력 회로(10)를 포함한다. 추가적인 입력/출력 회로(10)는 판독/입력 회로(8)와 접속된다. 메모리 회로(3)는 동적 랜덤 액세스 메모리로서 구성될 수 있다.
메모리 회로(3)는 메모리 회로(3)의 동작을 체크하여 오류 라인(5)을 통해 오류 검출의 결과적인 데이터를 메모리 컨트롤러(2)로 전송하는 오류 검출 회로(11)를 포함한다. 오류 검출 회로(11)는 데이터 전송 프로세스 동안 발생할 수 있는 오류를 검출하도록 종종 실행되는 순환 잉여 검사(CRC: cyclic redundancy check)를 사용할 수 있다. 이러한 경우, 데이터 신호는 블록 내에서 전송되고, 잉여의 코드가 각 블록 내의 데이터로부터 생성되어 오류 검출 또는 정정을 위해 블록에 추가된다. 일 실시예에서, 소위 CRC 코드(Cyclic Redundancy Check)는 사전결정된 알고리즘을 사용하여 순환 잉여 코드로서 블록 내의 페이로드 데이터로부터 파생된다. CRC 코드는 소위 발생기 다항식(generator polynomial)에 의한 페이로드 데이터 신호 시퀀스의 곱셈에 의해 생성된다. 코드워드(codeword)의 수신 후에, 이것은 발생기 다항식에 의해 나눗셈 된다. 만약 수신된 코드워드가 올바르게 전송되었다면, 나눗셈 프로세스는 어떠한 나머지도 생성하지 않는다. 반대로, 만약 나눗셈 프로세스가 나머지를 나타냈다면, 이것은 데이터 전송이 올바르지 않았음을 확인시킨다. 다항식의 곱셈 및/또는 나눗셈이 소위 선형 피드백 시프트 레지스터에 의해 비교적 쉽게 실행될 수 있기 때문에 CRC 코드와 같은 순환 코드는 주요 관심사이다. 따라서 발생기 다항식에 의한 곱셈은 코드워드의 나눗셈에 의해 재생성되는 최초 정보 워드를 갖는 코드워드를 생성하는 것을 가능케 하고, 동시에 오류가 확인되도록 한다.
본 발명의 일 측면은 메모리 소자에 접속하지 않고 입력 위상 트레이닝을 진행하는 것이다. 메모리 회로로부터 오류 검출 시스템에 의해 반환된 정보는 메모리 컨트롤러로부터 메모리 회로로의 데이터 전송의 시간 위치를 데이터 신호의 값을 검출하는 데에 사용되는 메모리 회로의 시간 기초에 정렬하는 데에 사용된다. 메모리 컨트롤러로부터 수신된 데이터는 내부 시간 클록에 따라 샘플링된다. 따라서 데이터가 메모리 회로의 내부 시간 클록에 관련되어 사전결정된 시간 위상에서 전송되는 것이 필요하다.
일반적으로, 메모리 회로에 의해 메모리 컨트롤러로 반환된 오류 검출 데이터는 메모리 컨트롤러의 데이터 클록과 메모리 회로의 샘플링 클록 사이의 위상 관계를 예상하기에 충분한 정보를 포함할 수 있다. 따라서 메모리 회로의 메모리 소자에 동작을 입력하는 것이 더 이상 필요하지 않으며, 더미 입력(dummy writes)을 수행할 때 메모리 회로의 오류 검출 회로에 의해 반환된 정보를 모니터링하기에 충분하다. 더미 입력은 모든 비트들을 마스킹하도록 마스크 신호를 사용하여 차단 뱅크(closed bank)를 어드레싱하거나 또는 메모리 회로 내에서 구현되어야 할 더미 입력 명령들을 명쾌하게 사용함으로써 수행될 수 있다.
메모리 소자의 어레이를 액세스하지 않는 것뿐 아니라, 이러한 솔루션은 반복 트레이닝을 수행하는 데에 필요한 시간을 매우 감소시킨다. 메모리 회로의 상태는 전체 동작 동안 변화되지 않으며 따라서 복구되어야 할 필요가 없다. 전체 트레이닝에서 오직 입력 동작만이 사용되며, 이것은 버스 회전 시간을 판독하기 위한 장시간 입력을 방지한다. 이러한 솔루션에 의해 획득된 시간은, 보다 높은 재트레이닝 주파수 또는 보다 높은 시스템 메모리 대역폭을 갖는, 더 우수한 추적 능력에 사용될 수 있다.
메모리 회로 내의 오류 검출 시스템은 소정 개수의 데이터 라인들 및 하나의 입력 버스트(burst)의 모든 비트들에 대해 CRC 체크섬(checksum)을 계산함으로써 작업할 수 있다. 체크섬은 데이터 전송에 오류가 없는지 있는지 여부를 판단할 수 있는 메모리 컨트롤러로 반환된다. 오류가 있는 경우 메모리 컨트롤러는 전송을 반복할 것인지 아니면 트레이닝을 다시 할 것인지 여부를 판단할 수 있다. 이것은 판독 및 입력 동작에 대해서도 동일하다. 입력 동작의 경우, 메모리 회로는 수신된 데이터의 체크섬을 반환하고 메모리 컨트롤러는 그것을 사전에 전송된 데이터의 자가-계산된 체크섬에 대해 체크한다. 판독 동작의 경우, 메모리 회로는 데이터를 그것의 체크섬과 함께 전송하고 메모리 컨트롤러는 수신된 데이터의 체크섬을 수신된 체크섬에 대해 비교한다.
체크섬은 9개의 데이터 라인과 버스트 당 8비트의 곱, 즉 하나의 데이터 버스트에 대해 72비트의 데이터에 대해 계산될 수 있다. 체크섬의 결과적인 8비트는 오류 라인 상에서 하나의 8비트 버스트와 다시 전송된 메모리 컨트롤러(2)로 전송된다.
본 발명에서 마스킹 회로는 체크섬의 CRC 계산을 수행하는 데에 사용되는 메모리 회로와 메모리 컨트롤러 내의 데이터의 적어도 일부를 마스킹하는 데에 사용된다. 이것은 적어도 1 데이터 비트 또는 오류 검출 계산에 사용되는 사전결정된 수의 데이터 비트를 선택하는 데에 사용될 수 있는 방법을 도출한다. 실시예에 따라서, 단일 데이터 라인이 선택되고 다른 데이터 라인은 마스킹될 수 있다. 따라서 데이터 라인에 의해 메모리 컨트롤러로부터 메모리 회로로 전송되는 사전결정된 데이터 라인의 8 데이터 비트 또는 오류 코드 계산 중에 고려되지 않은 다른 데이터 라인들의 다른 데이터를 선택할 수 있다.
또한, 다른 실시예에서, 마스킹 회로는 사전결정된 값으로 데이터의 값을 대체함으로써 데이터를 마스킹한다. 예를 들어 일 실시예에서, 마스킹된 데이터는 높은 값으로 대체된다. 이것은 사전결정된 데이터 및/또는 사전결정된 데이터 라인이 데이터의 전송 동안 사전결정된 데이터 값으로 주어질 수 있음을 의미한다. 따라서 데이터 버스트 중에 8 데이터 라인의 데이터를 높은 값으로 놓는 것이 가능하며 사전결정된 데이터 패턴에 따라 데이터를 전송하는 오직 하나의 데이터 라인을 사용하는 것이 가능할 수 있다. 데이터 패턴은 메모리 컨트롤러 내에 저장되거나 또는 메모리 컨트롤러 및/또는 메모리 회로의 일부인 데이터 패턴 생성기에 의해 생성될 수 있다.
도 2는 메모리 컨트롤러(2) 및 메모리 회로(3)를 포함하는 메모리 시스템(1)을 갖는 본 발명의 실시예의 개략도이다. 메모리 회로(3)는 동적 랜덤 액세스 메모리로서 구현될 수 있으며, 도 2에서는 본 발명의 이해를 위해 필요한 메모리 회로(3)의 단지 일부분만이 도시되었다. 메모리 컨트롤러(2)에 있어서도 본 발명의 이해를 위해 필요한 메모리 컨트롤러(2)의 단지 일부분만이 도시되었다. 그외의 부분들은 도시되지 않았으며 더 상세하게 기술되지 않았다.
메모리 컨트롤러(2)는 72개의 데이터 라인들에 의해 P2S(parallel to serial) 변환 회로(14)와 접속되는 공급 회로(12)를 포함한다. P2S 변환기(14)는 72 데이터 비트를 동시에 수신하여, 제 2 데이터 라인(15) 위의 8 데이터 비트의 데이터 버스트와 평행한 9개의 제 2 데이터 라인들에 의해 72 데이터 비트를 메모 리 회로(3)의 S2P(serial to parrallel) 변환 유닛(16)에 제 2 데이터로서 전송한다. P2S 변환기(14)는 제 1 데이터 인터페이스를 구성한다. P2S 변환기(14)는 클로킹 신호(17)를 갖는 데이터 클록에 의해 클록된다. 클로킹 신호(17)의 각 클록에서, 9 데이터 비트는 9개의 제 2 데이터 라인들(15) 상에서 P2S 변환기(14)로부터 동시에 전송되고, 따라서 1개의 데이터 라인에 있어서 8 데이터 비트는 1 데이터 버스트로서 연속하여 전송된다.
S2P 변환기(16)에서 들어오는 제 2 데이터는 버퍼링되고 S2P 변환기(16)로 전송된 제 2 클록 신호(18)의 상승 에지에서 샘플링된다. S2P 변환기는 추가의 제 2 데이터 인터페이스를 구성한다. 데이터 버스트의 샘플링된 데이터는 72 데이터 비트가 S2P 변환기(16)에 의해 72개의 제 3 데이터 라인(19) 상에서 동시에 추가의 마스킹 회로(20)로 전송됨을 의미한다. 제 3 데이터 라인(19)은 추가의 제 3 데이터 인터페이스를 구성한다.
추가의 마스킹 회로(20)는 데이터 버스트의 수신하는 제 2 데이터 중 적어도 1 데이터 비트를 마스킹하고 마스킹되지 않은 데이터 비트 중 적어도 하나를 추가의 제 4 데이터 인터페이스 상에서 추가의 오류 검출 회로(11)로 전송한다. 추가의 오류 검출 회로(11)는 제 2 데이터의 마스킹되지 않은 적어도 1 데이터 비트를 사용하여 오류 검출 정보를 계산할 수 있다. 오류 검출 정보는 8개의 제 4 데이터 라인(21)에 의해 제 2 오류 결과로서 메모리 컨트롤러(2)의 비교 유닛(22)으로 전송된다. 제 4 데이터 라인(21)은 메모리 컨트롤러의 측면 상의 제 2 데이터 인터페이스와 메모리 회로의 측면 상의 추가의 제 2 데이터 인터페이스를 구성한다.
공급 회로(12)는 P2S 변환기(14)에 의해 메모리 회로(3)로 전송된 데이터 버스트의 제 2 데이터와 동일한 72 데이터 값을 갖는 제 1 데이터를, 제 5 데이터 라인(23)에 의해 제 3 데이터 인터페이스로서 마스킹 회로(24)에 전송한다. 72개의 제 5 데이터 라인들(23)은 데이터를 공급 회로(12)로부터 마스킹 회로(24)로 전송하도록 배치된다. 마스킹 회로(24)는 제 5 데이터 라인(23)에 의해 수신된 제 1 데이터 중 적어도 하나를 마스킹하고 마스킹되지 않은 데이터 중 적어도 하나를 제 4 데이터 인터페이스로서 72개의 제 6 데이터 라인들(25)에 의해 오류 검출 회로(26)로 전송한다. 오류 검출 회로(26)는 수신된 적어도 하나의 마스킹되지 않은 제 1 데이터를 사용하여 오류 결과를 계산한다. 오류 결과는 8개의 제 7 데이터 라인들(27)에 의해 비교 회로(22)로 전송된다.
마스킹 회로(24) 및 추가의 마스킹 회로(20)는 적어도 1 데이터 비트를 마스킹하는 동일한 마스킹 방법을 사용할 수 있다. 마스킹 방법은 메모리 컨트롤러(20) 내에서 마스킹 회로(24)를 위해 저장될 수 있고 메모리 회로(3) 내에서 추가의 마스킹 회로(20)를 위해 저장될 수 있다. 다른 실시예에서, 도 2에 도시된 바와 같이, 마스킹 회로(24) 및 추가의 마스킹 회로(20)는 적어도 동일한 제 1 및 제 2 데이터를 위해 동일한 마스킹 명령을 마스킹 회로(24) 및 추가의 마스킹 회로(20)로 전송하는 명령 회로(28)와 접속한다. 명령 회로(28)는 9개의 제 8 데이터 라인(29)에 의해 마스킹 회로(24)와 접속되고 9개의 제 9 데이터 라인(30)에 의해 추가의 마스킹 회로(20)와 접속된다.
마스킹 명령은 마스킹 회로(24)에 의해 수신된 제 1 데이터와 추가의 마스킹 회로(20)에 의해 수신된 제 2 데이터 중 어느 것이 마스킹되고 어느 것이 마스킹되지 않을지를 판단한다. 제 1 및 제 2 데이터는 동일하며 공급 회로(12)에 의해 제공된다.
다른 실시예에서, 마스킹 명령은 사전결정된 데이터 값을 갖는 마스킹된 데이터 비트의 값을 대체함으로써 마스킹 회로(24)에 의해 마스킹되는 제 1 데이터의 일부와 추가의 마스킹 회로(20)에 의해 마스킹되는 제 2 데이터의 일부를 결정할 수 있다. 예를 들어, 마스킹 회로(24) 및 추가의 마스킹 회로(20)는 마스킹될 데이터 비트를 사전결정된 높은 값, 즉 논리 "1"로 대체할 수 있다. 다른 실시예에서, 마스킹된 제 1 및 제 2 데이터는 마스킹 회로(24)와 추가의 마스킹 회로(20)에 의해 낮은 값, 즉 논리 "0"으로 대체될 수 있다.
비교 회로(22)는 오류 검출 회로(26) 및 추가의 오류 검출 회로(11)로부터 수신된 제 1 및 제 2 오류 결과를 비교한다. 만약 수신된 오류 결과가 서로 사전결정된 관계에 있다면, 비교 회로(22)는 통과 신호를 제어 회로(31)로 전송한다. 일 실시예에서의 상호관계는 제 1 및 제 2 오류 결과가 동일한 것일 수 있다. 만약 오류 검출 회로(26) 및 추가의 오류 검출 회로(11)의 결과 데이터가 서로 사전결정된 상호관계에 있지 않다면, 비교 유닛(22)은 제어 회로(33)로 실패 신호를 전송한다.
도시된 실시예에서, 제 2 클록 신호(18)를 S2P 변환기(16)와 시간 제어 유닛(33)으로 전송하는 클록 생성기(32)가 존재한다. 클록 생성기는 메모리 컨트롤러 또는 메모리 회로 내에 배열될 수 있다. 시간 제어 유닛(33)은 제어 회로(31)로부터 두 개의 입력을 수신한다. 제 1 입력 신호(40)는 예를 들어 1 유닛 간격의 1/64 와 같은 작은 시간 간격 내에서 시간 제어 유닛(33)에 의해 제 2 클록 신호(18)로부터 파생된 클로킹 신호(17)의 시간 지연을 제어한다. 제 2 입력 신호(41)는 제 2 클록 신호(18)에 대하여 1 유닛 간격의 1/2을 갖는 클로킹 신호(17)의 전방 또는 후방으로의 시간 시프트를 제어한다. 시간 제어 유닛(33)은 클로킹 신호(17)를 제 2 클록 신호(18)에 대해 시프트하는 데에 사용될 수 있다. 제 2 클록 신호(18)는 메모리 회로에 의해 사용될 수 있는 시간 기준을 제공한다. 클로킹 신호(17)는 제 2 데이터를 제 1 데이터 인터페이스에 의해 메모리 회로로 전송하는 데에 사용되는 제 2 시간 기준을 제공한다. 제 2 데이터는 제 2 클록 신호(18)에 비교하여 위상 시프트를 가질 수 있는 교류 레벨을 갖는 데이터 신호로서 전송된다. 데이터 신호와 제 2 클로킹 신호(18) 사이의 위상 시프트는 클로킹 신호(17)를 시프트함으로써 제어된다. 클로킹 신호(17)는 제 2 데이터 전송의 시간 위치(타이밍)를 결정하며 따라서 전송된 제 2 데이터의 데이터 신호와 제 2 클록 신호(18) 사이의 위상 시프트를 결정한다.
시간 제어 유닛(33)은 클로킹 신호(17)를 P2S 변환기(14)로 전송한다. 클로킹 신호(17)는 제 2 데이터가 메모리 회로로 전송되는 시간 위치인 상승 에지의 위치를 제어하는 교류 사각 주파수 신호일 수 있다. 클록 생성기(32)는 제 2 클록 신호(18)를 메모리 회로(3)의 S2P 변환기(16)로 전송할 수 있다. 제 2 클록 신호(18)는 교류 사각 주파수 신호일 수 있으며 그에 따라 제 2 클록 신호의 상승 에지는 수신되고 버퍼링되는 데이터가 S2P 변환기(16) 내에서 샘프링되는 시점을 결정한다.
일 실시예에서 메모리 컨트롤러(2) 및 메모리 회로(3) 내의 마스킹 및 오류 검출 계산(즉 CRC 체크섬 계산)은 동일할 수 있다. 이것은 만약 제 2 데이터가 메모리 회로(3)의 제 2 클록 신호(18)를 나타내는 올바른 위상을 가지고 메모리 컨트롤러(2)로부터 메모리 회로(3)로 올바르게 전송되었다면, 추가의 오류 검출 회로(11) 및 오류 검출 회로(26)는 비교 회로(22)로 동일한 오류 결과(CRC 체크섬)를 전송할 것임을 의미한다. 이것은 비교 회로(22)가 단지 오류 검출 회로(26)의 오류 결과와 추가의 오류 검출 회로(11)의 오류 결과가 동일한지 여부만을 검출하면 된다는 것을 의미한다. 이러한 경우, 비교 회로(22)는 제어 회로(31)로 통과 신호를 전송한다. 만약 두 개의 수신된 오류 결과가 동일하지 않다면, 비교 회로(22)는 메모리 컨트롤러(2)로부터 메모리 회로(3)로의 제 2 데이터의 전송 실패를 검출하여 제어 회로(31)로 실패 신호를 전송한다.
다른 실시예에서, 데이터와 오류 결과 또는 명령 신호를 교환하도록 오직 하나의 데이터 인터페이스만이 메모리 컨트롤러와 메모리 회로에 배치된다.
다른 실시예에서, 비교 회로는 제 1 및/또는 제 2 오류 결과를 분석하는 분석 회로로서 구성될 수 있다. 일 실시예에서, 분석 회로는 메모리 회로 내에서 사용된 오류 검출 계산의 역계산을 수행하여 제 2 오류 결과를 계산하는 데에 사용된 마스킹되지 않은 데이터를 생성할 수 있다. 이러한 실시예에서, 분석 회로는 직접 공급 회로와 접속되며 메모리 회로로 전송된 데이터를 재계산된 데이터와 비교한다.
다른 실시예에서, 마스킹 회로(24)는 제 1 데이터 레지스터(50)와 접속될 수 있고 추가의 마스킹 회로(20)는 제 2 데이터 레지스터(51)와 접속될 수 있다. 제 1 및 제 2 데이터 레지스터(50, 51)에서 마스킹 회로(24) 및 마스킹 회로(20) 내에 데이터를 마스킹하는 데에 사용되는 마스크 패턴이 저장된다. 마스킹 데이터 패턴은 또한 명령 회로(28)에 의해 마스킹 회로 및 추가의 마스킹 회로(24, 20)로 공급되어 메모리 컨트롤러 및 메모리 회로의 동작 동안 변화될 수 있다. 명령 회로는 어떤 데이터 버스트의 데이터가 마스킹되고 마스킹되지 않을지 여부를 결정할 수 있다. 이러한 정보는 마스킹되어야 하는 버스트 내의 데이터 비트의 위치에 의해 주어질 수 있다. 예를 들어, 데이터 버스트의 처음 3개의 데이터 비트와 마지막 데이터 비트가 마스킹되어야만 한다. 이러한 정보는 어떤 데이터가 비트가 마스킹될지 여부를 결정하는 마스킹 회로와 추가의 마스킹 회로에 의해 사용된다.
일 실시예에서, 마스킹 회로 및 추가의 마스킹 회로는 마스킹된 데이터와 마스킹되지 않은 데이터를 오류 검출 회로와 추가의 오류 검출 회로로 전송한다. 마스킹된 데이터의 값은 사전결정된 값으로 결정될 수 있다.
다른 실시예에서, 시간 기준, 즉 제 2 클록 신호(18)에 대한 데이터 전송의 시간 위치를 조정하도록 제 2 클록 신호(18)의 위상을 변화시키는 것이 가능하다.
도 3은 P2S 변환기(14)로부터 S2P 변환기(16)로의 제 2 데이터 전송의 시간 기준를 동기화하는 프로세스 순서를 도시한다. 제 1 프로그램 스텝(100)에서, 제 2 데이터는 공급 회로(12)로부터 P2S 변환기(14) 및 마스킹 회로(24)로 전송된다. 제 2 데이터는 P2S 변환기(14) 내에 저장되고 클로킹 신호(17)의 상승 에지에서 메모리 회로(3)의 S2P 변환기(16)로 전송된다. 시간 제어 유닛(33)은 이 상태에서 제 2 데이터의 전송에 적합한 이론상의 중심 위상에 있다.
추가적인 프로그램 단계(110)에서 제어 회로(31)는 시간 제어 유닛(33)을 제 2 클록 신호(18)와 비교하여 1/2 유닛 간격 앞선 제 2 입력 신호와 스위칭한다. 이것은 클로킹 신호(17)가 제 2 클로킹 신호(18)에 대해 1/2 유닛 간격 앞섰다는 것을 의미한다. 다음의 프로그램 단계(120)에서 72 데이터 비트를 갖는 제 2 데이터의 버스트는 클로킹 신호(17)의 상승 에지에서 P2S 변환기(14)로부터 변환된다. S2P 변환기(16)는 제 2 클로킹 신호(18)의 상승 에지에서 수신된 데이터를 수신하고 검출하며 프로그램 단계(130)에서 검출된 데이터를 추가의 마스킹 회로(20)로 출력한다.
제 2 데이터와 동일한 제 1 데이터는 다음 프로그램 단계(140)에서 공급 회로(12)로부터 마스킹 회로(24)로 전송된다. 프로그램 단계(150)에서 마스킹 회로(24) 및 추가적인 마스킹 회로(20)는 동일한 마스킹 방법을 갖는 수신된 제 1 및 제 2 데이터를 마스킹한다. 마스킹 방법은 명령 회로(28)로부터 마스킹 회로(24) 및 추가적인 마스킹 회로(20)로 전송된 마스킹 명령을 사용하여 명령 회로(28)에 의해 결정될 수 있다.
마스킹된 제 1 데이터는 프로그램 단계(160)에서 마스킹 회로(24)로부터 오류 검출 회로(26)로 전송된다. 또한, 추가적인 마스킹 회로(20)의 마스킹된 제 2 데이터는 프로그램 단계(170)에서 추가적인 오류 검출 회로(11)로 전송된다. 추가적인 오류 검출 회로(11)는 적어도 마스킹되지 않은 제 2 데이터를 사용하여 비교 회로(22)로 전송된 제 2 오류 결과를 계산한다. 동시에 오류 검출 회로(26)는 마스 킹 회로(24)로부터의 마스킹되지 않은 제 1 데이터를 사용하여 제 1 오류 결과를 계산하고 프로그램 단계(180)에서 계산된 오류 결과를 비교 회로(22)로 전송한다.
비교 회로(22)는 프로그램 단계(190)에서 두 개의 오류 결과를 비교하여 두 개의 오류 결과의 비교에 따라 실패 또는 통과 신호를 제어 회로(31)로 전송한다. 만약 두 개의 오류 결과가 동일하면 통과 신호가 전송된다. 만약 두 개의 오류 결과가 서로 다르면, 실패 신호가 전송된다.
제어 회로(31)는 프로그램 단계(200)에서 통과 또는 실패 신호를 수신한다. 만약 실패 신호가 수신되면, 프로그램 단계(210)에서 제어 회로(31)는 제 1 입력 신호(40)를 사용하여 시간 제어 유닛(33)을 1 시간 유닛만큼, 즉 1 유닛 간격의 1/64만큼 제 2 클록 신호(18)에 대해 보다 늦은 시간 위치로 튜닝한다.
다음의 프로그램 단계(220)에서 다시 새로운 제 2 데이터가 제공되어 새로이 튜닝된 클로킹 시간에서 P2S 변환기(14)에 의해 전송된다. 동시에 공급 회로는 프로그램 단계(230)에서 새로운 제 1 데이터를 마스킹 회로(24)로 제공한다. 새로운 제 1 및 제 2 데이터는 동일하다. 프로그램 단계(240)에서 새로운 제 1 및 제 2 데이터는 메모리 컨트롤러 및 메모리 회로 내에서 전술된 바와 같이 처리되고 제 1 및 제 2 오류 결과는 비교 회로(22)로 전송된다. 비교 회로(22)는 통과 또는 실패 회로를 제어 회로(31)에 전송한다. 제어 회로(31)는 시간 제어 유닛(33)을 1 시간 유닛만큼 반복적으로 보다 늦은 시간으로 튜닝하고, 새로운 제 1 및 제 2 데이터가 전송되며, 비교 회로가 통과 신호를 제어 회로(31)로 전송할 때까지 메모리 회로 및 메모리 컨트롤러에서 오류 결과가 계산된다.
프로그램 단계(250)에서 통과 신호를 수신한 후, 제어 회로(31)는 다음 프로그램 단계(260)에서 시간 제어 유닛(33)을 제어하는 제 2 입력 신호에 의해 클로킹 신호(17)를 제 2 클록 신호(18)에 대해 1/2 유닛 간격만큼 뒤로 시프트한다.
그 다음 공급 회로(12)는 버스트 그룹으로서 8 고유값을 전송함으로써 버스트의 2비트가 유닛 간격과 동일한 시간 간격을 갖는다. 8비트는 예를 들어 드브뤼인(deBruijn) 코드일 수 있다. 이러한 8비트는 하나의 높은 값과 7개의 낮은 값을 포함할 수 있다. 제 1 버스트에서 높은 값 비트는 버스트의 제 1 비트 위치에 있다. 제 2 버스트에서 높은 값 비트는 데이터 버스트의 제 2 비트 위치에 있다. 제 3 데이터 버스트에서 높은 값 비트는 데이터 버스트의 제 3 비트의 위치에 있으며 계속 이와 같다. 제 8 데이터 버스트에서, 높은 값은 데이터 버스트의 마지막 비트 위치에 있다. 각 데이터 버스트는 전술된 바와 같이 마스킹 회로(24)로 동시에 전송된다. 또한 각 버스트에 있어서 마스킹 및 추가적인 마스킹 회로(24, 20)는 제 1 및 제 2 오류 결과를 계산한다. 각각의 데이터 버스트에 대해 비교 회로(22)는 제어 회로(31)로 실패 또는 통과 신호를 전송한다. 제어 회로(31)는 소정의 버스트를 검출하고 따라서 통과 신호가 수신되는 높은 값 비트의 비트 위치를 검출한다. 제어 회로(31)는 출력 시간 포인터를 올바른 데이터 버스트를 전송하는 시점을 나타내는 높은 값 비트의 이러한 위치로 설정한다. 출력 시간 포인터는 버스트 내의 높은 값 비트의 위치에 대해 어느 통과 신호가 수신되며 어느 시점에 데이터의 버스트가 P2S 변환기(14)로부터 메모리 회로(3)로 전송되기 시작해야 하는지를 결정한다.
이러한 프로그램 단계(270) 후에, 프로그램 단계(280)에서 제어 회로(31)는 제 2 입력 신호(41)에 의해 클로킹 신호(17)를 제 2 클로킹 신호(18)에 대해 1/2 유닛 간격만큼 앞으로 시프트한다. 그 다음 하나 이상의 임의의 데이터 패턴이 공급 회로(12)에 의해 데이터 버스트 내에서 S2P 변환기(14) 및 마스킹 회로(24)로 제공된다.
임의의 데이터 패턴은 공급 회로(12)에 의해 P2S 변환기(14)에 제공되어 메모리 회로의 S2P 변환기(16)로 전송된다. 임의의 데이터는 데이터 버스트 내에서 전송되지만 높은 데이터 값과 낮은 데이터 값 중 적어도 하나의 변이가 데이터 버스트 중에 수행될 수 있다. 동일한 임의의 데이터 패턴이 공급 회로(12)로부터 마스킹 회로(24)로 전송된다. 또한 수신된 임의의 데이터 패턴은 제 2 클록 신호(18)의 시간 기준 상에서 P2S 변환기(16) 내에 저장되고 샘플링된다. 샘플링된 임의의 데이터는 추가적인 마스킹 회로(20)로 전송된다. 추가적인 마스킹 회로(20)는 결정된 마스킹 방법에 따라 전송된 임의의 데이터 패턴을 마스킹하고 마스킹된 데이터를 추가적인 오류 검출 회로(11)로 전송한다. 추가적인 오류 검출 회로(11)는 제 2 오류 결과를 계산하고 제 2 오류 결과를 비교 회로(22)로 전송한다.
동시에, 마스킹 회로(24)는 결정된 마스킹 방법에 따라 전송된 임의의 데이터 패턴을 마스킹하고 마스킹된 임의의 데이터를 오류 검출 회로(26)로 전송한다. 프로그램 단계(290)에서 오류 검출 회로(26)는 제 1 오류 결과를 계산하고 제 1 오류 결과를 비교 회로(22)에 전송한다.
비교 회로(22)는 만약 두 개의 수신된 오류 결과가 동일하면 통과 신호를 생 성하여 통과 신호를 제어 회로(31)로 전송한다. 만약 오류 결과들이 서로 다르다면 비교 회로(22)는 실패 신호를 생성하여 실패 신호를 제어 회로(31)로 전송한다.
프로그램 단계(300)에서 도 4에 도시된 바와 같은 위상 검출 표에 따라 제어 회로(31)는 통과 또는 실패 신호를 관찰하여 시간 제어 유닛(33)의 지연을 튜닝한다. 위상 검출 표는 첫째로 클로킹 신호(17) 대 제 2 클록 신호(18)의 시간 위치를, 둘째로 비교 회로(22)의 비교 값을, 셋째로 이러한 위치들로부터 유도되는 동작을 나타내는 3개의 열(columns)을 포함한다.
데이터 클록(즉, 클로킹 신호(17))이 제 2 클로킹 신호(18)에 대해 앞선 위치에 있는 상대적인 타이밍 위치에서, 데이터는 "이르다"고 표현된다. 만약 이러한 상대적인 타이밍 위치에서 통과 신호가 존재한다면, 제어 회로(31)는 시간 지연을 변화시키지 않는다. 그러나, 만약 제어 회로(31)가 이러한 상대적인 타이밍에서 실패 신호를 수신한다면, 제어 회로(31)는 제 1 신호 입력을 사용하여 시간 제어 유닛(33)을, 1 시간 유닛만큼 차례로, 제 2 클로킹 신호(18)에 대해 더 늦은 시간 위치로 튜닝한다. 클로킹 신호(17)의 시간 위치의 각 변화 후에 데이터의 버스트는 메모리로 전송되고 데이터의 버스트는 전술된 바와 같이 메모리 회로 및 메모리 컨트롤러 내에서 처리되고 두 개의 오류 결과가 계산되어 비교 유닛(22)으로 전송된다. 이러한 프로세스는 프로그램 단계(310)에서 통과 신호가 비교 회로(22)에 의해 생성되어 제어 회로(31)로 전송될 때까지 반복된다.
프로그램 단계(310) 후에 제어 회로(31)는 프로그램 단계(320)에서 정상 동작을 위해 시간 제어 유닛(33)을 제 2 클록 신호(18)의 이론적 중심으로 유닛 간격 의 1/2만큼 뒤로 스위칭한다. 이제 시간 위치는 향상된 위치에 놓이고 시간 제어 유닛(33)은 고정된다. 추가적인 데이터는 클로킹 신호(17)의 시간 위치의 변화 없이 메모리 컨트롤러로부터 메모리 회로로 전송된다.
다른 실시예에서, 각 시간마다 제 2 데이터는 메모리 컨트롤러로부터 메모리 회로(3)로 전송되며, 마스킹 정보는 명령 회로(28)로부터 메모리 회로(30)의 추가적인 마스킹 회로(20)로 전송될 수 있다. 동일한 마스킹 정보는 명령 회로(28)로부터 마스킹 회로(24)로 전송된다.
만약 제 2 데이터가 제 2 클록 신호(18)에 비교하여 지연되면, 데이터는 "늦다"고 표현된다. 이러한 위치에서 만약 통과 신호가 비교 회로(22)로부터 수신되면 제어 회로(31)는 단지 제 2 데이터의 시간 위치를 제 2 클록 신호(18)에 대해 이른 시간으로 이동시킨다.
만약 데이터가 중심 위치에 존재한다면, 제어 회로(31)는 비교 회로(22)로부터의 신호가 실패 신호인지 또는 통과 신호인지 여부와 무관하게 시간 제어 유닛(33)의 튜닝을 변화시키지 않는다.
제 2 데이터가 제 2 클록 신호(18)와 비교하여 이른 위치에 있는 경우에, 만약 실패 신호가 비교 회로(22)로부터 수신된다면 제어 회로(31)는 제 2 데이터를 제 2 클록 신호(18)에 비교하여 보다 늦은 시간 위치로 이동시킨다.
이러한 제어 전략의 하나의 원리는 메모리 회로에서 데이터를 래칭 또는 버퍼링하는 클록이 가정된 중심점으로부터 전방향으로 1 유닛 간격의 1/2(즉, 두 개의 데이터 비트 사이의 시간 차의 1/2)만큼 이동되었거나, 만약 제 2 데이터가 올 바르게 샘플링되었다면(통과 신호가 비교 회로(22)로부터 제어 회로(31)로 전송되었음을 의미), 클로킹 신호는 반드시 이미 앞선 시간 위치에 있어야 한다는 것이다. 이것은 데이터가 상대적으로 늦으며 보다 이른 시간 위치로 이동되어야 함을 의미한다. 만약 비교 회로의 신호가 실패 신호라면 이것의 역이 성립한다.
이러한 방법으로, 오류 검출 회로의 비교는 이르거나 느린 위상 정보를 나타내는 2진값을 생성하는 위상 검출기로서 역할을 한다. 이러한 정보는 궁극적으로 동일한 수의 이른/느린 데이터가 시스템이 고정되는 시간인 고정 포인트가 될 때까지 차단된 루프 방식 내에서 시간을 조정하는 데에 사용된다. 시스템이 고정되면, 래칭 클록은 향상된 데이터 래칭을 위해 중심 위치로 다시 이동될 수 있다.
전술된 내용이 본 발명의 실시예에 관한 것이지만, 본 발명의 다른 실시예와 추가적인 실시예가 본 발명의 기본적인 범주로부터 벗어나지 않는 한 제안될 수 있으며, 본 발명의 범주는 하기의 특허청구범위에 의해 결정된다.
도 1은 메모리 컨트롤러와 메모리 회로를 구비하는 메모리 시스템을 도시한 도면.
도 2는 메모리 컨트롤러의 일부분과 메모리 회로의 일부분을 상세하게 도시한 도면.
도 3은 메모리 컨트롤러의 위상을 메모리 회로의 내부 클록의 위상으로 조정하는 프로그램 순서도.
도 4는 동작표를 도시한 도면.

Claims (32)

  1. 메모리 컨트롤러로서,
    적어도 데이터를 메모리 회로로 전송하는 제 1 데이터 인터페이스와,
    마스킹 회로(masking circuit)와,
    상기 제 1 데이터 인터페이스 및 상기 마스킹 회로와 접속된 데이터 공급 회로 - 상기 데이터 공급 회로는 상기 제 1 데이터 인터페이스 및 상기 마스킹 회로로 동일한 데이터를 전송하도록 구성되고, 상기 제 1 데이터 인터페이스는 기준 시간에 대해 사전결정된 시간 위치를 갖는 상기 데이터 공급 회로로부터 수신된 상기 데이터를 출력함 - 와,
    상기 마스킹 회로와 접속된 오류 검출 회로 - 상기 마스킹 회로는 상기 데이터의 일부를 마스킹하고 상기 데이터의 적어도 마스킹되지 않은 부분을 상기 오류 검출 회로로 전송하며, 상기 오류 검출 회로는 상기 수신된 마스킹되지 않은 데이터를 사용하여 제 1 오류 결과를 계산함 - 와,
    상기 오류 검출 회로와 접속되고 상기 제 1 오류 결과를 수신하도록 구성된 분석 비교 회로 - 상기 분석 비교 회로는 상기 메모리 회로의 제 2 오류 결과를 수신하도록 구성되고, 상기 분석 비교 회로는 상기 제 1 및 제 2 오류 결과를 분석하여 상관 정보(correlation information)를 생성함 - 와,
    상기 상관 정보를 수신하도록 구성된 제어 회로 - 상기 제어 회로는 상기 제 1 데이터 인터페이스에 의하여 상기 상관 정보에 기초한 기준 시간에 대해 상기 데 이터의 상기 출력의 상기 시간 위치를 제어하도록 구성됨 - 를 포함하는
    메모리 컨트롤러.
  2. 제 1 항에 있어서,
    상기 메모리 회로로부터 데이터를 수신하는 제 2 데이터 인터페이스를 더 포함하는
    메모리 컨트롤러.
  3. 제 2 항에 있어서,
    상기 분석 비교 회로는 상기 제 2 데이터 인터페이스와 접속되고 상기 제 2 데이터 인터페이스로부터 상기 메모리 회로의 상기 제 2 오류 결과를 수신하는
    메모리 컨트롤러.
  4. 제 1 항에 있어서,
    상기 마스킹 회로는 1 데이터 비트를 선택하고 그외의 데이터 비트들을 마스킹하되, 상기 1 데이터 비트는 상기 오류 검출 회로에 제공된 상기 데이터의 상기 마스킹되지 않은 부분인
    메모리 컨트롤러.
  5. 제 1 항에 있어서,
    상기 데이터 공급 회로는 사전결정된 수의 데이터 채널을 사용하여 상기 마스킹 회로와 병렬 접속되고, 상기 마스킹 회로는 사전결정된 수의 데이터 채널을 사용하여 상기 오류 검출 회로와 접속되며, 상기 마스킹 회로는 적어도 하나의 데이터 채널을 선택하고 그외의 데이터 채널들을 마스킹하는
    메모리 컨트롤러.
  6. 제 1 항에 있어서,
    상기 마스킹 회로는 사전결정된 값을 갖는 상기 데이터의 마스킹된 비트의 값을 대체함으로써 데이터를 마스킹하고 상기 마스킹된 데이터와 상기 마스킹되지 않은 데이터의 상기 사전결정된 값을 상기 오류 검출 회로로 전송하는
    메모리 컨트롤러.
  7. 제 1 항에 있어서,
    상기 마스킹 회로는 명령 회로과 접속되되,
    상기 마스킹 회로는 상기 마스킹 회로에 의해 사용되는 마스킹 방법을 특정하는 제어 명령을 수신하는
    메모리 컨트롤러.
  8. 제 7 항에 있어서,
    상기 마스킹 회로는 데이터 채널들에 의해 상기 오류 검출 회로와 접속되고, 상기 특정된 마스킹 방법에 따라 상기 마스킹 회로는 상기 데이터 채널들 중 오직 하나를 마스킹하는
    메모리 컨트롤러.
  9. 제 7 항에 있어서,
    상기 특정된 마스킹 방법에 따라 상기 데이터 중 오직 하나의 사전결정된 데이터만이 마스킹되지 않는
    메모리 컨트롤러.
  10. 제 1 항에 있어서,
    상기 제어 회로는 상기 제 1 데이터 인터페이스에 의해 상기 기준 시간에 대한 상기 데이터 출력의 상기 시간 위치를 상기 분석 비교 회로의 상기 상관 정보가 상기 제 1 및 제 2 오류 결과 사이의 사전결정된 상호관계를 나타내는 시간 위치로 조정하는
    메모리 컨트롤러.
  11. 제 1 항에 있어서,
    상기 상관 정보는 상기 제 1 및 제 2 오류 결과가 동일함을 나타내는 통과 지시(pass indication) 또는 상기 제 1 및 제 2 오류 결과가 서로 다름을 나타내는 실패 지시(failure indication)인
    메모리 컨트롤러.
  12. 제 1 항에 있어서,
    상기 오류 검출 회로는 순환 잉여 계산 회로인
    메모리 컨트롤러.
  13. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 메모리 회로 내에서 상기 제 2 오류 결과를 생성하는 오류 검출 계산을 수행하기 전에 상기 메모리 회로로 데이터를 마스킹하는 방법을 특정하는 마스킹 제어 명령을 전송하는
    메모리 컨트롤러.
  14. 제 13 항에 있어서,
    상기 제어 명령은 상기 수신된 데이터 중 마스킹될 데이터를 데이터 패턴으로 판단하는
    메모리 컨트롤러.
  15. 제 1 항에 있어서,
    상기 마스킹 회로는 상기 수신된 데이터 중 마스킹될 데이터를 판단하는 모드 레지스터와 접속되는
    메모리 컨트롤러.
  16. 메모리 회로로서,
    데이터를 저장하는 메모리 소자와,
    적어도 메모리 컨트롤러로부터 데이터를 수신하고, 상기 데이터를 버퍼링하고, 상기 버퍼링된 데이터를 기준 시간에 따라 샘플링하며 상기 샘플링된 데이터를 출력하는 데이터 인터페이스와,
    상기 출력 데이터를 수신하도록 상기 데이터 인터페이스와 접속되고, 상기 데이터의 일부를 마스킹하고 마스킹되지 않은 데이터의 적어도 일부를 출력하도록 구성된 마스킹 회로와,
    상기 마스킹되지 않은 데이터를 수신하고 상기 메모리 컨트롤러로 반환되는 제 2 오류 결과를 출력하도록 상기 마스킹 회로와 접속되는 오류 검출 회로를 포함하는
    메모리 회로.
  17. 제 16 항에 있어서,
    상기 마스킹 회로는 상기 수신된 데이터의 데이터 비트를 선택하고 상기 수신된 데이터의 그외의 데이터 비트를 마스킹하는
    메모리 회로.
  18. 제 16 항에 있어서,
    상기 데이터 인터페이스는 사전결정된 개수의 데이터 채널에 의해 상기 마스킹 회로와 병렬 접속되고, 상기 마스킹 회로는 사전결정된 개수의 데이터 채널에 의해 상기 오류 검출 회로와 접속되며, 상기 마스킹 회로는 적어도 하나의 데이터 채널을 선택하고 상기 그 외의 데이터 채널을 마스킹하는
    메모리 회로.
  19. 제 16 항에 있어서,
    상기 마스킹 회로는 사전결정된 값을 갖는 상기 데이터 비트의 값을 대체함으로써 데이터 비트를 마스킹하고 상기 마스킹 회로는 상기 마스킹된 데이터와 상기 마스킹되지 않은 데이터의 대체된 값을 상기 오류 검출 회로로 전송하는
    메모리 회로.
  20. 제 16 항에 있어서,
    상기 마스킹 회로는 명령 라인과 접속되고, 상기 마스킹 회로는 상기 마스킹 회로에 의해 사용되는 마스킹 방법을 특정하는 명령 라인에 의해 마스킹 제어 명령을 수신하는
    메모리 회로.
  21. 제 20 항에 있어서,
    상기 마스킹 방법은 상기 데이터 채널 중 하나는 마스킹되지 않고 그외의 데이터 채널들은 마스킹되도록 결정하는
    메모리 회로.
  22. 제 20 항에 있어서,
    상기 마스킹 방법은 오직 하나의 사전결정된 데이터 비트가 마스킹되지 않도록 결정하는
    메모리 회로.
  23. 제 20 항에 있어서,
    상기 마스킹 방법은 마스킹 데이터 패턴을 고려하는 상기 마스킹 회로를 결정하는
    메모리 회로.
  24. 제 16 항에 있어서,
    상기 오류 검출 회로는 순환 잉여 계산 회로인
    메모리 회로.
  25. 제 16 항에 있어서,
    상기 마스킹 회로는 상기 메모리 컨트롤러로부터 수신된 제어 명령에 의해 제어되는
    메모리 회로.
  26. 서로 연결된 메모리 컨트롤러 및 메모리 회로를 포함하는 메모리 시스템으로서,
    상기 메모리 컨트롤러는
    적어도 데이터를 메모리 회로로 전송하는 제 1 데이터 인터페이스와,
    제 1 마스킹 회로와,
    상기 제 1 데이터 인터페이스 및 상기 마스킹 회로와 접속된 데이터 공급 회로 - 상기 데이터 공급 회로는 상기 제 1 데이터 인터페이스 및 상기 마스킹 회로로 동일한 데이터를 전송하도록 구성되고, 상기 제 1 데이터 인터페이스는 기준 시간에 대해 사전결정된 시간 위치를 갖는 상기 데이터 공급 회로로부터 수신된 상기 데이터를 출력함 - 와,
    상기 제 1 마스킹 회로와 접속된 제 1 오류 검출 회로 - 상기 마스킹 회로는 상기 데이터의 일부를 마스킹하고 상기 데이터의 적어도 마스킹되지 않은 부분을 상기 오류 검출 회로로 전송하며, 상기 오류 검출 회로는 상기 수신된 마스킹되지 않은 데이터를 사용하여 제 1 오류 결과를 계산함 - 와,
    상기 제 1 오류 검출 회로와 접속되고 상기 제 1 오류 결과를 수신하도록 구성된 분석 회로 - 상기 분석 회로는 상기 메모리 회로의 제 2 오류 결과를 수신하도록 구성되고, 상기 분석 회로는 상기 제 1 및 제 2 오류 결과를 분석하여 상관 정보를 생성함 - 와,
    상기 상관 정보를 수신하도록 구성된 제어 회로 - 상기 제어 회로는 상기 제 1 데이터 인터페이스에 의하여 상기 상관 정보에 기초한 기준 시간에 대해 상기 데이터의 상기 출력의 상기 시간 위치를 제어하도록 구성됨 - 를 포함하고,
    상기 메모리 회로는
    데이터를 저장하는 메모리 소자와,
    적어도 메모리 컨트롤러로부터 데이터를 수신하고, 상기 데이터를 버퍼링하고, 상기 버퍼링된 데이터를 기준 시간에 따라 샘플링하며 상기 샘플링된 데이터를 출력하는 제 2 데이터 인터페이스와,
    상기 출력 데이터를 수신하도록 상기 제 2 데이터 인터페이스와 접속되고, 상기 데이터의 일부를 마스킹하고 마스킹되지 않은 데이터의 적어도 일부를 출력하도록 구성된 제 2 마스킹 회로와,
    상기 마스킹되지 않은 데이터를 수신하고 상기 메모리 컨트롤러로 반환되는 제 2 오류 결과를 출력하도록 상기 제 2 마스킹 회로와 접속되는 제 2 오류 검출 회로를 포함하는
    메모리 시스템.
  27. 제 26 항에 있어서,
    상기 메모리 컨트롤러는 명령 라인을 통해 상기 제 1 및 제 2 마스킹 회로와 연결된 명령 회로를 더 포함하고, 상기 명령 회로는 상기 제 1 및 제 2 마스킹 회로에 의해 수행되는 마스킹 방법을 결정하는
    메모리 시스템.
  28. 신호 간 위상 관계를 조정하는 방법으로서,
    a) 제 1 데이터의 일부를 마스킹하는 단계와,
    b) 적어도 상기 제 1 데이터의 마스킹되지 않은 부분을 사용하여 메모리 컨트롤러 내에서 오류 검출 계산을 수행함으로써 제 1 오류 결과가 생성되는 단계와,
    c) 기준 시간에 대해 사전결정된 시간 위치에서 제 2 데이터를 상기 메모리 컨트롤러로부터 메모리 회로로 전송하는 단계 - 상기 제 1 및 제 2 데이터는 동일함 - 와,
    d) 상기 메모리 회로로부터 상기 제 2 데이터에 기초하여 계산된 제 2 오류 결과를 수신하는 단계와,
    e) 상기 제 1 및 제 2 오류 결과를 비교하는 단계와,
    f) 상기 비교 결과에 따라, 상기 메모리 컨트롤러로부터 상기 메모리 회로로의 데이터 전송의 상기 시간 위치를 조정하는 단계를 포함하는
    신호 간 위상 관계 조정 방법.
  29. 제 28 항에 있어서,
    상기 메모리 회로는 상기 수신된 제 2 데이터의 적어도 일부를 마스킹하고, 상기 제 2 데이터의 마스킹되지 않은 적어도 일부는 상기 메모리 회로 내에서 상기 제 2 오류 결과를 계산하도록 오류 검출 계산을 수행하는 데에 사용되는
    신호 간 위상 관계 조정 방법.
  30. 제 28 항에 있어서,
    상기 동일한 오류 검출 계산은 상기 메모리 컨트롤러와 상기 메모리 회로 내에서 수행되며, 상기 동일한 데이터는 상기 제 1 데이터 및 상기 제 2 데이터의 마스킹된 데이터인
    신호 간 위상 관계 조정 방법.
  31. 제 28 항에 있어서,
    상기 메모리 회로 내에서의 마스킹은 상기 메모리 컨트롤러에 의해 제어되는
    신호 간 위상 관계 조정 방법.
  32. 제 28 항에 있어서,
    상기 a) 내지 f) 단계는 상기 제 1 및 제 2 오류 결과가 사전결정된 관계를 가질 때까지 반복적으로 실행되는
    신호 간 위상 관계 조정 방법.
KR1020070096057A 2006-09-27 2007-09-20 메모리 컨트롤러, 메모리 회로, 메모리 시스템 및 신호 간위상 관계 조정 방법 KR100894346B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/535,961 2006-09-27
US11/535,961 US7802166B2 (en) 2006-09-27 2006-09-27 Memory controller, memory circuit and memory system with a memory controller and a memory circuit

Publications (2)

Publication Number Publication Date
KR20080028789A true KR20080028789A (ko) 2008-04-01
KR100894346B1 KR100894346B1 (ko) 2009-04-22

Family

ID=39185138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070096057A KR100894346B1 (ko) 2006-09-27 2007-09-20 메모리 컨트롤러, 메모리 회로, 메모리 시스템 및 신호 간위상 관계 조정 방법

Country Status (4)

Country Link
US (1) US7802166B2 (ko)
KR (1) KR100894346B1 (ko)
CN (1) CN101154145B (ko)
DE (1) DE102007044131B4 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210141755A (ko) * 2019-05-13 2021-11-23 예놉틱 옵틱컬 시스템즈 게엠베하 신호 내의 플랭크의 시간을 결정하기 위한 방법 및 평가 유닛

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100866970B1 (ko) * 2007-06-08 2008-11-05 삼성전자주식회사 Ecc 레이턴시와 데이터 레이턴시를 별도로 설정할 수있는 반도체 장치
JP2009260541A (ja) * 2008-04-15 2009-11-05 Sony Corp 送信装置および方法、受信装置および方法、プログラム、並びに、送受信システムおよび方法
US8489911B1 (en) * 2009-09-22 2013-07-16 Nvidia Corporation Hardware WCK2CK training engine using meta-EDC sweeping and adjustably accurate voting algorithm for clock phase detection
US10236045B2 (en) 2012-09-21 2019-03-19 Samsung Electronics Co., Ltd. Semiconductor memory device having detection clock patterns phase-inverted from each other and detection clock generating method thereof
CN104714853B (zh) * 2013-12-16 2018-05-04 雅特生嵌入式计算有限公司 使用cots组件的容错故障安全计算机系统
KR102178141B1 (ko) * 2014-08-01 2020-11-12 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
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 삼성전자주식회사 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템
DE102018113475A1 (de) * 2018-06-06 2019-12-12 Infineon Technologies Ag Rechenwerk zum rechnen mit maskierten daten
CN114446370B (zh) * 2020-11-06 2024-08-09 长鑫存储技术有限公司 信号校验系统
US11645155B2 (en) * 2021-02-22 2023-05-09 Nxp B.V. Safe-stating a system interconnect within a data processing system
US11710534B1 (en) * 2022-02-28 2023-07-25 Micron Technology, Inc. Internal data availability for system debugging

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3708783A (en) * 1971-06-18 1973-01-02 Ampex Interchannel time displacement correction method and apparatus
US5933623A (en) * 1995-10-26 1999-08-03 Hitachi, Ltd. Synchronous data transfer system
JP3871384B2 (ja) 1996-11-01 2007-01-24 株式会社アドバンテスト 半導体メモリ試験装置用不良解析メモリ
US6704890B1 (en) * 2000-12-22 2004-03-09 Nortel Networks Limited Skew compensating interface for operation with arbitrary data
JP4308461B2 (ja) 2001-10-05 2009-08-05 ラムバス・インコーポレーテッド 半導体記憶装置
DE10238841B4 (de) * 2002-08-23 2010-01-28 Infineon Technologies Ag Parallelverarbeitung der Decodierung und der zyklischen Redundanzüberprüfung beim Empfang von Mobilfunksignalen
US7103823B2 (en) * 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
KR20050075226A (ko) * 2004-01-16 2005-07-20 삼성전자주식회사 메모리 제어장치
EP1804032A1 (en) * 2004-10-20 2007-07-04 Kabushiki Kaisha Yaskawa Denki Encoder signal processor and processing method
JP2007157303A (ja) 2005-12-08 2007-06-21 Advantest Corp 試験装置および試験方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210141755A (ko) * 2019-05-13 2021-11-23 예놉틱 옵틱컬 시스템즈 게엠베하 신호 내의 플랭크의 시간을 결정하기 위한 방법 및 평가 유닛

Also Published As

Publication number Publication date
DE102007044131B4 (de) 2015-04-09
DE102007044131A1 (de) 2008-04-17
US20080126843A1 (en) 2008-05-29
CN101154145A (zh) 2008-04-02
KR100894346B1 (ko) 2009-04-22
CN101154145B (zh) 2010-12-01
US7802166B2 (en) 2010-09-21

Similar Documents

Publication Publication Date Title
KR100894346B1 (ko) 메모리 컨트롤러, 메모리 회로, 메모리 시스템 및 신호 간위상 관계 조정 방법
US8582391B2 (en) Adjusting clock error across a circuit interface
US9450744B2 (en) Control loop management and vector signaling code communications links
EP2077558B1 (en) Predictive timing calibration for memory devices
US8004336B2 (en) Semiconductor memory device and method for operating the same
US20040068682A1 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
US20090009228A1 (en) Clock generating apparatus
US9225316B2 (en) Duty cycle correction circuit and operation method thereof
KR20080028788A (ko) 위상 시프트 조절 방법 및 마이크로전자 디바이스
KR100434631B1 (ko) 반도체 장치
KR20190132055A (ko) 반도체 시스템
KR20080044543A (ko) 병렬 인터페이스를 이용하는 메모리 장치의 스큐를보상하는 방법
JP2013109637A (ja) メモリインターフェース回路、および、そのメモリインターフェース回路の動作方法
US8711996B2 (en) Methods and apparatus for determining a phase error in signals
KR20240073780A (ko) 반도체 장치 및 지연 제어 방법
JP3710308B2 (ja) 位相調整方式
US10951198B1 (en) Semiconductor integrated circuit, transmission device, and memory device
WO2022033005A1 (zh) 延迟锁定环电路
US7375561B2 (en) Timing adjustment circuit and method thereof
JP2008225956A (ja) 半導体集積回路装置およびタイミング調整方法
CN117478107B (zh) 延迟校准方法、发送端及源同步通信系统
JPH03171945A (ja) ディジタルシステム
KR102061178B1 (ko) 반도체 장치 및 그를 이용한 반도체 시스템
KR20070109108A (ko) 반도체 메모리 장치의 데이터 출력 회로 및 방법
JPH11136217A (ja) ビット誤り測定装置

Legal Events

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

Payment date: 20130404

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140403

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee