KR20060023985A - 비트 레인 장애극복을 가지는 메모리 채널 - Google Patents

비트 레인 장애극복을 가지는 메모리 채널 Download PDF

Info

Publication number
KR20060023985A
KR20060023985A KR1020057023351A KR20057023351A KR20060023985A KR 20060023985 A KR20060023985 A KR 20060023985A KR 1020057023351 A KR1020057023351 A KR 1020057023351A KR 20057023351 A KR20057023351 A KR 20057023351A KR 20060023985 A KR20060023985 A KR 20060023985A
Authority
KR
South Korea
Prior art keywords
memory
agent
bit
signals
circuit
Prior art date
Application number
KR1020057023351A
Other languages
English (en)
Other versions
KR100806446B1 (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 KR20060023985A publication Critical patent/KR20060023985A/ko
Application granted granted Critical
Publication of KR100806446B1 publication Critical patent/KR100806446B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • 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/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

다수의 비트 레인을 활용하는 메모리 장치들 및 방법들은 하나 이상의 신호들을 비트 레인들 상에서 재방향설정할 수 있다. 메모리 에이전트는 복수의 비트 레인들을 갖는 재드라이브 회로, 메모리 디바이스 또는 인터페이스, 및 복수의 비트 레인들과 메모리 디바이스 또는 인터페이스 사이에 연결된 장애극복 회로를 포함할 수 있다.
비트 레인(bit lane), 장애극복 회로(fail-over circuit), 램링크(Ramlink), 메모리 디바이스, 재드라이브 회로

Description

비트 레인 장애극복을 가지는 메모리 채널{MEMORY CHANNEL WITH BIT LANE FAIL-OVER}
도 1은 미국 전기 전자 학회(IEEE : Institute of Electrical and Electronics Engineers)에 의해 표준으로 제안된 바 있는, 비공식적으로 RamLink라고 알려진 종래의 메모리 시스템을 도시한 것이다. 이 표준은 IEEE 표준 1596.4-1996으로 지정되었고 공식적으로는 스케일러블 코히어런트 인터페이스(SCI) 시그널링 테크놀로지(RamLink)에 기초한 고대역폭 메모리 인터페이스에 대한 IEEE 표준[IEEE Standard for High-Bandwidth Interface Based on Scalable Coherent Interface(SCI) Signaling Technology ( RamLink )]으로 알려져 있다. 도 1의 시스템은 메모리 컨트롤러(10) 및 하나 이상의 메모리 모듈(12)을 포함한다. 메모리 컨트롤러(10)는 대개 프로세서 안에 내장되거나 또는 프로세서용 부속 칩셋 위에 제조된다. 각 메모리 모듈(12)은 하나의 링크 입력 및 하나의 링크 출력을 갖는 슬레이브 인터페이스(14)를 갖는다. 이 컴포넌트들은 컴포넌트들 간에 단방향 링크들(16)을 갖춘 RingLink라고 알려진 RamLink 시그널링 토폴리지로 구성된다. 각 모듈 상의 제어 인터페이스(18)는 슬레이브 인터페이스(14)와 메모리 디바이스들(20)을 인터페이싱한다. 도 1에 도시된 시스템에서는, 슬레이브 인터페이스들과 메모리 디바이스들 간에 SyncLink라고 알려진 또 다른 RamLink 시그널링 토폴로지 가 이용되고 있다.
RamLink 시스템의 목적은 프로세서에게 메모리 디바이스로의 고속 액세스를 제공하기 위함이다. 메모리 컨트롤러와 모듈들 간에는 RingLink를 따라서 순환하는 패킷으로서 데이터가 전송된다. 컨트롤러는 모든 요구 패킷들을 생성하고 슬레이브 응답 패킷들의 반환(return)을 스케줄링할 책임이 있다.
컨트롤러가 명령(command), 어드레스, 시간, 및 데이터를 포함하는 요구 패킷을 특정 모듈에 송신할 때 기입 트랜잭션(write transaction)이 개시된다. 이 패킷은 목표하는 슬레이브에 도달할 때까지 모듈에서 모듈로 전달되고 그 후 그 목표 슬레이브는 저장용 메모리 디바이스들 중 하나로 그 데이터를 전달한다. 그 후 해당 슬레이브는 응답 패킷을 송신하고, 이 응답 패킷은 기입 트랜잭션이 완료되었음을 확인하도록 컨트롤러에 도달할 때까지 모듈에서 모듈로 전달된다.
컨트롤러가 명령, 어드레스, 및 시간을 포함하는 요구 패킷을 모듈에 송신할 때 판독 트랜잭션이 개시된다. 해당 모듈 상의 슬레이브는 요구된 데이터를 메모리 디바이스들 중 하나로부터 검색(retrieve)하여 그것을 응답 패킷으로 컨트롤러에 반환하는데, 응답 패킷은 다시 컨트롤러에 도달할 때까지 모듈에서 모듈로 전달된다.
도 2는 종래의 RamLink 슬레이브 인터페이스 회로를 도시한 것이다. 도 2의 회로에서는, 착신 데이터 신호들(incoming data signals)을 클로킹(clock)하기 위해 소스 동기식 스트로빙(source-synchronous strobing)이 이용된다. 즉, 착신 데이터 신호들과 동반하는 스트로브 신호가 착신 데이터를 샘플링하기 위해 이용된 다. 도 2의 회로는 위상 동기 루프(PLL)를 이용하여 다른 슬레이브 인터페이스 회로들에 분배되는 기준 클록 신호로부터 안정된 로컬 클록 신호를 발생시킨다. 로컬 클록 신호는 데이터가 다운스트림을 따라 전달될 때 누적 지터(cumulative jitter)를 피하기 위하여 발신 데이터 신호(outgoing data signal)를 재클로킹(reclock)하기 위해 이용된다.
도 1은 종래의 RamLink 메모리 시스템을 도시한 도면,
도 2는 종래의 RamLink 슬레이브 인터페이스 회로를 도시한 도면,
도 3은 본 발명의 원리에 따른 메모리 인터페이스 시스템의 일 실시예를 도시한 도면,
도 4는 본 발명의 원리에 따른 메모리 모듈의 일 실시예를 도시한 도면,
도 5는 본 발명의 원리에 따른 메모리 모듈의 다른 실시예 및 메모리 버퍼의 일 실시예를 도시한 도면,
도 6은 본 발명의 원리에 따른 메모리 시스템, 메모리 모듈 및 메모리 버퍼의 추가적 실시예들을 도시한 도면,
도 7은 본 발명의 원리에 따른 메모리 버퍼의 다른 실시예를 도시한 도면,
도 8은 본 발명의 원리에 따른 재드라이브 회로(redrive circuit)의 일 실시예를 도시한 도면,
도 9는 본 발명의 원리에 따른 I/O 셀의 일 실시예를 도시한 도면,
도 10은 본 발명의 원리에 따른 I/O 셀의 다른 실시예를 도시한 도면,
도 11은 본 발명의 원리에 따른 I/O 셀의 또 다른 실시예를 도시한 도면,
도 12는 본 발명의 원리에 따른 I/O 셀의 또 다른 실시예를 도시한 도면,
도 13은 본 발명의 원리에 따른 장애극복 회로(fail-over circuit)의 일 실시예를 도시한 도면,
도 14는 본 발명의 원리에 따라 정상 모드(normal mode)에서 동작하는 장애극복 회로의 다른 실시예를 도시한 도면,
도 15는 본 발명의 원리에 따라 장애극복 모드에서 동작하는 장애극복 회로의 다른 실시예를 도시한 도면,
도 16은 본 발명의 원리에 따른 비트 레인 장애극복 능력(bit lane fail-over capability)을 갖는 메모리 버퍼의 일 실시예를 도시한 도면,
도 17은 본 발명의 원리에 따른 비트 레인 장애극복 능력을 갖는 메모리 컨트롤러의 일 실시예를 도시한 도면,
도 18은 본 발명의 원리에 따라 치환 상태 패턴들(permuting status patterns)을 구현하는 방법의 일 실시예를 도시한 도면,
도 19는 본 발명의 원리에 따른 치환 패턴 발생기(permuting pattern generator)의 일 실시예를 도시한 도면,
도 20 내지 23은 본 발명의 원리에 따른 상태 패턴들의 실시예들을 도시한 도면,
도 24는 본 발명의 원리에 따른 메모리 에이전트의 일 실시예를 도시한 도면,
도 25는 본 발명의 원리에 따른 폴링 동작의 일 실시예를 도시한 도면.
이 특허는 독립적인 실용성을 갖는 다수의 발명들을 포괄한 것이다. 소정의 경우에는, 그 원리들 중 일부가 서로 다양한 조합으로 이용되어 추가 발명들을 생성할 때 부가적인 이점들이 실현된다. 이들 원리들은 무수한 실시예로써 실현될 수 있다. 본 발명 원리들을 예시하기 위하여 비록 일부 특정한 세부사항들만이 제시되어 있지만, 본 발명의 원리에 따라서 다수의 다른 구성들이 안출될 수도 있다. 따라서, 본 발명 원리들은 여기에 개시된 특정 세부사항들에 한정되지 않는다.
도 3은 본 발명의 원리에 따른 메모리 인터페이스 시스템의 일 실시예를 도시한 것이다. 도 3의 시스템은 단방향 링크들로 이루어진 채널을 통하여 통신하는 메모리 컨트롤러(50) 및 하나 이상의 메모리 모듈들(52)을 포함한다. 채널은 하나 이상의 아웃바운드 링크들(54)을 포함하는 아웃바운드 경로 및 하나 이상의 인바운드 링크들(56)을 포함하는 인바운드 경로를 갖는다. 각 모듈은 아웃바운드 경로 상 링크 간에 그리고 인바운드 경로 상 링크 간에 신호들을 재드라이브할 수 있다. 각 모듈은 또한, 예컨대 그 모듈이 자신이 최외측 모듈(outermost module)임을 검출할 경우나 메모리 컨트롤러로부터의 명령에 응답하여, 임의의 재드라이브 특징들을 선택적으로 디스에이블링할 수도 있다.
각 모듈은 하나 이상의 경로로 그리고/또는 하나 이상의 경로부터 데이터를 전송하도록 구성된 하나 이상의 메모리 디바이스(58)를 포함한다. 예를 들면, 아웃바운드 경로로부터의 데이터가 메모리 디바이스로 전송되고, 메모리 디바이스로부터의 데이터가 인바운드 경로로 전송되도록 모듈이 구성될 수 있다. 하나 이상의 메모리 디바이스와 하나 이상의 경로들 사이에 하나 이상의 버퍼들이 배치될 수 있다. 모듈 및 컨트롤러는 임의의 특정한 기계적 구성에 한정되지 않는다. 예를 들면, 모듈은 시스템의 나머지 부분과 별개의 기판 상에 제조될 수도 있고, 컨트롤러 및 링크들과 함께 공통 기판 상에 제조될 수도 있고, 임의의 기타 기계적 구성으로 실현될 수도 있다. 모듈은 또한 임의의 특정 타입의 메모리 디바이스, 예컨대 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 플래시 메모리 등으로 한정되지 않는다.
도 4는 본 발명의 원리에 따른 메모리 모듈의 일 실시예를 도시한 것이다. 도 4의 모듈은 각각 단방향 링크(54A 및 56A) 상에서 신호들을 수신하고, 단방향 링크(54B 및 54B) 상에서 그 신호들을 재드라이브하는 2개의 재드라이브 회로(60 및 62)를 포함한다. 하나 이상의 메모리 디바이스(58)가 상기 재드라이브 회로들 중 하나 이상의 재드라이브 회로로 그리고/또는 그 하나 이상의 재드라이브 회로로부터 데이터를 전송하도록 구성된다.
도 4의 모듈은 임의의 특정한 단방향 링크 구성으로 한정되거나 또는 재드라이브 회로로 그릭/또는 그 재드라이브 회로로부터 데이터를 전송하기 위한 임의의 특정 구성으로 한정되지 않는다. 만일 도 4의 모듈이 도 3에 도시된 것과 같은 메모리 시스템에서 사용될 것이라면, 재드라이브 회로(60)는 아웃바운드 재드라이브 회로로 지정되어 링크들(54A 및 54B)을 포함하는 아웃바운드 경로 상에서 신호들을 수신하고 재드라이브하도록 구성될 수 있고, 다른 재드라이브 회로(62)는 인바운드 재드라이브 회로로 지정되어 링크들(56A 및 56B)을 포함하는 인바운드 경로 상에서 신호들을 수신하고 재드라이브하도록 구성될 수 있을 것이다. 이 예에서는, 하나 이상의 메모리 디바이스(58)는, 아웃바운드 재드라이브 회로(60)로부터 메모리 디바이스(들)로 그리고 메모리 디바이스(들)로부터 인바운드 재드라이브 회로(62)로 데이터가 전송되도록 구성될 수 있다.
모듈은 자신이 채널 상의 최외측 모듈인지를 검출하고 그에 따라서 임의의 재드라이브 특징들을 선택적으로 디스에이블링할 수 있다. 예를 들어, 만일 도 4의 모듈이 도 3에 도시된 것과 같은 메모리 시스템에서 사용될 것이고, 그 모듈이 자신이 최외측 모듈임을 검출한 경우라면, 아웃바운드 재드라이브 회로는 링크(54A) 상에서 착신되는 신호들을 수신하지만 그것들을 재드라이브하지는 않는다. 마찬가지로, 인바운드 재드라이브 회로는 메모리 디바이스(들)로부터 수신된 데이터에 대응하는 신호들 및/또는 모듈에 의해 내부적으로 발생될 수 있는 다른 신호들로 링크(56B)를 드라이브할 뿐이다. 이와 달리, 모듈이 자신이 최외측 모듈이 아님을 검출한다 하더라도, 그 모듈은 (예를 들면, 메모리 컨트롤러로부터의 명령에 응답하여) 마치 자신이 최외측 모듈인 것처럼 동작할 수 있도록 구성될 수 있고, 이 경우 해당 모듈은 인바운드 링크(56A) 상에서 수신된 신호들을 무시할 수 있고, 아운바운드 링크(56B) 상에 신호들을 재드라이브하지 않을 수 있다.
도 5는 본 발명의 원리에 따른 메모리 모듈의 또 다른 실시예 및 메모리 버퍼의 일 실시예를 도시한 것이다. 도 5의 모듈은 각각 단방향 링크(54A 및 56A) 상에서 신호들을 수신하고 단방향 링크(54B 및 56B) 상에서 그 신호들을 재드라이브하는 2개의 재드라이브 회로(60 및 62)를 갖는 메모리 버퍼(64)를 포함한다. 이 메모리 버퍼는 또한 하나 이상의 메모리 디바이스(58)로/로부터 데이터를 전송하도록 구성된 메모리 인터페이스(66)를 포함한다. 버퍼는 자신이 채널 상의 마지막 에이전트인지를 검출하고 그에 따라서 임의의 재드라이브 특징들을 선택적으로 디스에이블링할 수 있다. 버퍼는, 예컨대 메모리 컨트롤러로부터의 명령에 응답하여, 자신이 채널 상의 마지막 에이전트가 아니라 하더라도 마치 그런 것처럼 동작할 수도 있다. 본 명세서에서 사용되는 바에 의하면, 에이전트란 채널로 인터페이싱되는 임의의 메모리 컨트롤러(호스트로도 불림), 모듈, 버퍼 등을 가리킨다.
도 5의 모듈 및 버퍼는 임의의 특정 구성의 단방향 링크들로 한정되거나 또는 메모리 인터페이스와 재드라이브 회로들 간에 전송하기 위한 임의의 특정 구성에 한정되지 않는다. 만일 도 5의 모듈이 도 3에 도시된 것과 같은 메모리 시스템에서 사용될 것이라면, 재드라이브 회로(60)는 아웃바운드 재드라이브 회로로 지정되어 링크들(54A 및 54B)을 포함하는 아웃바운드 경로 상에서 신호들을 수신하고 재드라이브하도록 구성될 수 있고, 다른 재드라이브 회로(62)는 인바운드 재드라이브 회로로 지정되어 링크들(56A 및 56B)을 포함하는 인바운드 경로 상에서 신호들을 수신하고 재드라이브하도록 구성될 수 있을 것이다. 이 예에서, 메모리 인터페이스는 아웃바운드 재드라이브 회로(60)로부터 데이터를 수신하고 인바운드 재드라이브 회로(62)로 데이터를 송신하도록 구성될 수 있다.
도 4 및 5의 메모리 모듈들 및/또는 버퍼를 구현하기 위해 다양한 기계적 구성들이 사용될 수 있다. 예를 들면, 메모리 디바이스들(58), 재드라이브 회로들(60 및 62) 및 버퍼(64)는 모두 공통 회로 기판 상에 또는 별개의 회로 기판 상에 실장된 개별 집적 회로들로 실현될 수 있다. 이 컴포넌트들의 각종 조합들이 공통 집적 회로 상에 함께 제조될 수도 있고, 또는 단일 집적 회로 상에 제조될 수도 있다. 회로 기판 또는 기판들은, 존재한다면, 마더보드 상의 소켓들에 플러그 되거나, 마더보드와 일체로 제조되거나, 임의의 다른 방법으로 구성될 수 있다. 예를 들어, 만일 컴포넌트들이 하나의 멀티칩 모듈의 일부분으로서 제조된다면 회로 기판이 없을 수도 있다. 본 발명의 원리에 따른 메모리 버퍼는 메모리 디바이스들 이외의 디바이스들을 채널로 인터페이싱하는데 이용될 수도 있다. 예를 들면, 본 발명의 원리에 따른 메모리 버퍼는 I/O 컨트롤러 또는 브리지를 채널로 인터페이싱하는데 이용될 수도 있다.
본 발명의 원리에 따른 장치의 추가적 실시예들은, 그 장치가 도 3에 도시된 실시예와 같은 메모리 시스템에서 어떻게 이용될 수 있는지에 대한 이해를 돕기 위하여 "인바운드" 및 "아웃바운드" 경로들, 링크들, 재드라이브 회로들 등과 관련하여 기술된다. 그러나, 이들 장치는 임의의 특정 구성의 단방향 링크들로 한정되거나, 링크들과 다른 회로 간 데이터 전송을 위해 제시된 특정 구성들로 한정되거나, 또는 제시된 구현 세부사항들 중 임의의 것으로 한정되지 않는다.
도 6은 본 발명의 원리에 따른 메모리 시스템, 메모리 모듈 및 메모리 버퍼의 추가적 실시예들을 도시한 것이다. 도 6을 참조하면, 하나 이상의 메모리 모듈(52)이 하나의 에지의 양측을 따라서 접촉점 핑거들(contact fingers)을 갖는 인쇄 회로 기판들에 기초하고 있어, 시스템의 다른 컴포넌트들을 보유하는 다른 회로 기판 상의 커넥터에 플러그 접속될 수 있는 듀얼 인라인 메모리 모듈(DIMM : dual inline memory module)을 생성한다. 그러한 모듈을 위해서는, 예컨대 이중 데이터 속도 Ⅱ(DDR2) 동적 랜덤 액세스 메모리(DRAM) 모듈에 이용되는 DIMM 폼팩터(form-factor) 등의 기존 폼팩터가 그 모듈에 채용될 수 있다.
그러한 모듈들에는 메모리 디바이스들(58), 예컨대 DDR2 DRAM과 같은 상품형(commodity-type) DRAM이 실장(populate)된다. 각 모듈 상의 메모리 버퍼(64)는 모듈들을 호스트라고도 불리는 메모리 컨트롤러(50)에 인터페이싱하는 채널로부터 상기 메모리 디바이스들을 분리시킨다. 채널은 아웃바운드 링크들(54)을 포함하는 아웃바운드 경로와, 인바운드 링크들(56)을 포함하는 인바운드 경로를 갖는 포인트 투 포인트(point-to-point) 구성으로 와이어링된다. 링크들은 저전압 차동 신호들을 이용한 병렬 단방향 비트 레인들(parallel unidirectional bit lanes)로 구현될 수 있다.
도 6의 실시예들에서는, 명령, 리셋, 초기화 등과 같은 기능을 위하여 어떠한 추가적인 신호선도 사용되지 않는다. 대신에, 이들 기능은 채널을 통하여 송신되는 데이터에 직접 인코딩된다. 그러나, 이와 달리, 그러한 기능을 구현하기 위해 임의의 수의 추가적 신호선이 사용될 수도 있다.
기준 클록 신호 REF CLK가 클록 합성기(76)에 의해 발생되고, 아마도 클록 버퍼(78)를 통하여, 호스트 및 모듈들로 분배된다. 이에 따라 착신 데이터를 샘플링하고 재드라이브하기 위해 국부적으로(locally) 발생된 클록 신호들이 이용되는 준-비동기식 클로킹 방식(quasi-asynchronous clocking scheme)이 촉진된다. 각 에이전트에서 공통의 기준 클록이 이용될 수 있기 때문에, 하등의 주파수 트래킹(frequency tracking) 없이도 데이터 신호들이 클로킹될 수 있다. 이와 달리, 임의의 기준 클록과 별개로 로컬 클록 신호가 발생될 수도 있다. 또 다른 대안으로, 소스 동기식 스트로빙(source synchronous strobing)과 같은 동기식 클로킹 방식이 이용될 수도 있다.
하나의 가능한 실시예에서, 호스트는 아웃바운드 경로 상의 최내측 모듈(innermost module)로, 아마도 패킷 또는 프레임(여기서는 상호 바꾸어 사용할 수 있는 용어들임)으로, 데이터를 송신함으로써 데이터 전송을 개시한다. 최내측 모듈은 그 데이터를 수신하여 아웃바운드 경로 상의 다음 모듈로 재드라이브한다. 각 모듈은 아웃바운드 데이터가 최외측 모듈에 도달할 때까지 그 데이터를 수신하고 재드라이브한다. 최외측 모듈이 그 데이터를 "존재하지 않는" 아웃바운드 링크로 재드라이브하려고 할 수도 있지만, 각 모듈은 자신이 최외측 모듈임을 검출하여(또는 지시받아) 불필요한 전력 소비, 노이즈 등을 줄이기 위해 임의의 재드라이브 회로를 디스에이블링할 수 있다. 이 실시예에서, 호스트의 방향으로, 즉 인바운드로의 데이터 전송은 최외측 모듈에 의해 개시된다. 각 모듈은 인바운드 데이터를 수신하여 그 데이터가 호스트에 도달할 때까지 인바운드 경로를 따라 재드라이브한다.
임의의 적당한 통신 프로토콜이 물리적 채널 상에서 이용될 수 있다. 예를 들면, 호스트는 모든 인바운드 및 아웃바운드 데이터 전송을 개시하고 스케줄링하도록 지정될 수 있다. 이와 달리, 임의의 에이전트가 데이터 전송을 개시하도록 허용될 수 있다. 데이터의 프레임들은 명령, 판독 데이터, 기입 데이터, 상태 정보, 오류 정보, 초기화 데이터, 아이들 패턴 등, 또는 그들의 임의의 조합을 운반(carry)하도록 구성될 수 있다. 호스트가 명령 프레임을 아웃바운드 경로를 따라 타깃 모듈에게 송신할 때, 타깃 모듈은 바로 응답 프레임을 인바운드 경로를 따라 호스트에게 송신함으로써 응답하도록 프로토콜이 구현될 수 있다. 그러한 실시예에서, 타깃 모듈은 명령 프레임을 아웃바운드 경로 상에 재드라이브하지 않는다.
이와 다른 실시예에서, 타깃 모듈은 명령 프레임을 수신한 다음 그 명령 프레임을 아웃바운드 경로 상에 재드라이브한다. 최외측 모듈이 명령 프레임을 수신하면, 그것은 (아마도 아이들 프레임에 불과한) 응답 프레임을 인바운드 경로 상에 개시한다. 타깃 모듈은 그 응답 프레임이 해당 인바운드 수신기에 도달할 때까지 기다린다. 그 후 타깃 모듈은, 예컨대 최외측 모듈에 의해 송신된 응답 프레임을 타깃 모듈의 진정한 응답 프레임으로 대체함으로써, 자신의 응답을 인바운드 데이터 스트림에 병합한다.
도 7은 본 발명의 원리에 따른 메모리 버퍼의 다른 실시예를 도시한 것이다. 도 7의 메모리 버퍼는 링크들(54A 및 54B)을 포함하는 아웃바운드 경로 상에서 신호들을 수신하고 재드라이브하는 아웃바운드 재드라이브 회로(60) 및 링크들(56A 및 56B)을 포함하는 인바운드 경로 상에서 신호들을 수신하고 재드라이브하는 인바운드 재드라이브 회로(62)를 포함한다. 메모리 인터페이스(66)는 상기 버퍼를 하나 이상의 메모리 디바이스들에 인터페이싱하는데, 이는 메모리 버스(68)를 경유한 것일 수 있다. 메모리 인터페이스는 FIFO 버퍼들과 같은 판독 및/또는 기입 버퍼들을 포함할 수 있다. 아웃바운드 경로로부터의 데이터는 메모리 인터페이스에 연결되고, 이는 아웃바운드 경로가 2 이상의 비트 레인을 가질 경우 데이터의 비트들 간의 스큐(skew)를 제거하는 디스큐(deskew) 회로(70)를 경유한 것일 수 있다. 예를 들어, 버퍼가 공교롭게도 채널 상의 최외측 에이전트일 경우 인바운드 경로 상에 송신할 상태 패턴들을 발생시키기 위해 패턴 발생기(72)가 사용될 수 있고, 그 경우 착신되는 인바운드 링크(56A) 상에서 수신되는 신호가 없을 수 있다. 멀티플렉서(74)는 메모리 인터페이스 또는 패턴 발생기로부터의 데이터를 선택적으로 인바운드 재드라이브 회로에 연결한다.
메모리 인터페이스는 임의의 특정 구성에 한정되지 않고, 표준 메모리 디바이스들, 특히 DDR2 RAM과 같은 상품 메모리 디바이스들과 호환성이 있을 수 있다. 전체 메모리 버퍼는 단일 집적 회로 상에 집적될 수도 있고, 하나 이상의 메모리 디바이스들 내에 집적될 수도 있고, 그것의 구성 요소들이 별개의 컴포넌트들 상에 집적될 수도 있고, 또는 임의의 다른 기계적 구성이 채용될 수도 있다. 도 7에 도시된 실시예는 예시일 뿐이고, 본 발명의 원리에 따른 다른 실시예들도 가능하다. 예를 들면, 도 7의 실시예는 단방향 데이터가 아웃바운드 재드라이브 회로로부터 메모리 인터페이스로 그리고 메모리 인터페이스로부터 인바운드 재드라이브 회로로 흐르는 것으로 도시되어 있다. 이 데이터 흐름은, 그러나, 양방향일 수도 있고, 다른 구성이 고려될 수도 있다. 도 7의 실시예가, 메모리 인터페이스에 대한 데이터가 단지 도 7에 도시된 것과 같이 흐를 것을 필요로 하는 채널 시스템에서 사용될 것이라 하더라도, 이는, 예컨대 내장 자체 시험(BIST : built-in self-test) 기능의 구현을 용이하게 할 수 있는 완전 양방향 데이터 액세스(full bi-directional data access)를 갖춘 재드라이브 회로들로 실현될 수 있는데, 그 경우 인바운드 경로로부터의 데이터를 디스큐하기 위한 제2 디스큐 회로가 유용할 수 있다.
도 8은 본 발명의 원리에 따른 재드라이브 회로의 일 실시예를 도시한 것이다. 도 8의 회로는 하나 이상의 입출력(I/O) 셀(74)을 포함하고, 그 각각의 I/O 셀은 출력 데이터 신호 TX로서 재드라이브할 수 있는 입력 데이터 신호 RX를 수신한다. 이와 달리, I/O 셀은 판독 데이터 신호 RDX를 출력 데이터 신호로 치환(substitute)하거나 병합(merge)할 수 있다. 기입 데이터 신호 WDX는 출력 데이터 신호로서 재드라이브되기 전에 또는 재드라이브된 후에 입력 데이터 신호로부터 얻어질 수 있다.
상기 신호 이름들 중의 "X"는, 그것이 재드라이브 회로 내의 I/O 셀들의 수에 좌우되는 다수의 유사한 신호들 중 하나일 수 있음을 나타낸다. 예를 들면, 9개의 비트 레인들을 갖는 재드라이브 회로라면 R0, R1, ...R8로 명명된 입력 데이터 신호들을 갖는 9개의 I/O 셀을 가질 것이다. 단 하나의 I/O 셀만을 갖는 재드라이브 회로에서는, 데이터 입력 신호는 R0 또는 단순히 R일 것이다. RX라는 용어는 입력 데이터 신호들의 어느 하나 또는 전부를 총칭하기 위해 사용된다.
"기입 데이터"(write data)라는 용어는 I/O 셀을 통하여 이동하는 데이터 스트림으로부터 얻어지는 임의의 데이터를 가리키기 위해 편의상 사용된다. 이것은, 그러나, 기입 데이터가 메모리 인터페이스나 메모리 디바이스로 향해야 한다는 것을 의미하지는 않는다. 마찬가지로, "판독 데이터"(read data)라는 용어는 I/O 셀에 입력되는 임의의 데이터를 지칭하지만, 판독 데이터는 메모리 디바이스나 메모리 인터페이스만이 아니라, 임의의 소스로부터 올 수 있다.
다시 도 8을 참조하면, 클록 발생기(80)가 기준 클록 신호 REF CLK에 응답하여 다수의 위상 클록 신호들 PCX 및 송신 클록 신호 TC를 발생시킨다. 클록 발생기는 기준 클록 신호 REF CLK의 배수로서 송신 클록 TC를 발생시키는 위상 동기 루프(PLL : phase locked loop)(82) 및 위상 클록 발생기(84)를 포함한다. 하나의 가능한 실시예에서는, 서로 90도만큼 떨어져 있고 송신 클록 TC로부터 도출된 4개의 위상 클록 신호 PC0, PC1, PC2 및 PC3이 있다. 각각의 I/O 셀들은 상기 TC 및 PCX 클록 신호들 중 하나 이상의 것을 이용하여 데이터 신호를 샘플링 및/또는 재드라이브하거나, 그리고/또는 추가적 로컬 클록 신호들을 발생시킬 수 있다. 이 실시예에서, 위상 클록 및 송신 클록 신호들은 임의의 입력 데이터 신호 RX의 위상에 응답하여 조정되지 않는다는 점에서 안정된 신호들이다.
도 9는 본 발명의 원리에 따른 I/O 셀의 일 실시예를 도시한 것이다. 수신기(86)는 데이터 신호 RX를 수신하고 그것을 샘플링 클록 신호 SC에 응답하여 데이터 신호 TX로서 재드라이브하도록 구성된다. 샘플링 클록 신호는 데이터 신호 RX에 응답하여 샘플링 클록 신호를 조정할 수 있는 샘플링 클록 발생기(88)에 의해 발생된다. 기입 데이터 신호 WDX는 수신기(86)의 입력 또는 출력으로부터 얻어질 수 있다. 만일 도 9에 바와 같이 수신기의 출력으로부터 얻어진다면, 샘플링 클록 신호 SC는 기입 데이터에 대한 스트로브 신호로서, 또는 그 스트로브 신호를 도출하기 위해 사용될 수 있다. 샘플링 클록 발생기에의 입력이 도 9에 도시된 바와 같이 수신기의 입력 이외의 지점들로부터 얻어질 수 있다. 예를 들어, 이는 수신기의 출력으로부터 얻어질 수도 있다.
도 10은 본 발명의 원리에 따른 I/O 셀의 다른 실시예를 도시한 것이다. 도 10의 실시예에서, 샘플링 클록 발생기(88)는 보간기(interpolator)(90) 및 수신기 트래킹 유닛(RTU)(92)으로 구현된다. 보간기는 수신기 트래킹 유닛으로부터의 트래킹 신호에 응답하여 다수의 위상 클록 신호들 PCX(이 경우에는 90도만큼 위상이 다른 4개의 신호) 사이를 보간함으로써 샘플링 클록 신호를 발생시킨다. 수신기 트래킹 유닛은 데이터 신호 RX를 관찰하고 샘플링 클록 신호가 수신기로 하여금 적절한 시간에 데이터 신호를 샘플링하고 재드라이브하게 하도록 트래킹 신호를 조정한다. 따라서, 샘플링 클록 신호는 동적으로 데이터 신호를 트래킹할 수 있다.
하나의 가능한 실시예에서, 수신기 트래킹 유닛은 데이터 신호 RX를 오버 샘플링(over sampling)하고 그 데이터 신호를 샘플링하고 재드라이브하도록 샘플링 클록 신호를 조정함으로써 그 데이터 신호의 전이들(transitions)을, 그 데이터 아이(data eye)의 중심에서, 즉 데이터 신호의 전이들(transitions) 간의 중간 지점에서 관찰한다. 샘플링 클록 발생기(88)는 수 개의 비트 셀들을 측정하는 루프 필터를 포함할 수 있고 궁극에는 데이터 아이 위치의 중심에 더 가까이 데이터를 캡처하도록 샘플링 클록 신호의 위상을 조정해야 한다고 결정할 수 있다. 샘플링 클록 발생기에의 입력은 도 10에 도시된 바와 같이 수신기의 입력 이외의 지점들로부터 취해질 수 있다. 예를 들면, 그것은 수신기의 출력으로부터 취해질 수도 있다.
본 발명의 원리에 따른 I/O 셀의 일 실시예는 데이터 신호를 동적으로 트래킹하도록 I/O 셀들을 트레이닝하는 방식과 함께 이용될 수 있다. 예를 들어, 도 10의 I/O 셀이 도 3에 도시된 메모리 모듈들 중 하나로서 사용된다면, 호스트는 트레이닝 프레임들을 주기적으로 아웃바운드 경로 상에 송신할 수 있다. 이 트레이닝 프레임들은 수신기 트래킹 유닛이 샘플링 클록 신호를 조정할 수 있도록 데이터 신호에서 충분한 전이들을 관찰하는 것을 보장하는 적당한 에지 밀도(edge density)를 갖는다. 마찬가지로, 도 3에서의 최외측 모듈은 트레이닝 프레임들을 주기적으로 인바운드 경로 상에 송신할 수 있다.
도 11은 본 발명의 원리에 따른 I/O 셀의 또 다른 실시예를 도시한 것이다. 도 11의 실시예는 도 9의 그것과 유사하지만, 데이터 신호 경로에 버퍼(94)가 추가된다. 버퍼(94)는 전압 및 온도 유도 효과들을 보상하는 지터 방지(jitter avoidance) 또는 드리프트 보상(brift compensation) 버퍼일 수 있다. 버퍼는 데이터 신호 TX를 송신 클록 신호 TC에 재동기화(resynchronize)한다. 송신 클록 신호는 그 위상이 샘플 클록 신호 SC가 그런 것처럼 데이터 신호에 응답하여 조정되지 않는다는 점에서 안정하다.
도 11의 실시예에서, 버퍼는 모드 신호에 응답하여 통과 모드(pass-through mode)나 재드라이브 모드에서 동작할 수 있다. 통과 모드에서, 신호는 샘플링되고 재드라이브되지 않은 채 통과한다. 재드라이브 모드에서, 신호는 클록 신호에 응답하여 샘플링되고 재드라이브된다. 이로써, I/O 셀은 서로 다른 재드라이브 모드에서 동작할 수 있게 된다. 하나의 가능한 실시예에서, 버퍼는 모드 신호가 어서트(assert)되면 통과 모드에서 동작한다. 이는 재샘플 모드(resample mode)라 불리고 데이터를 샘플링하기 위해 이용되는 동일한 클록에 의해 데이터 신호가 재드라이브되기 때문에 대기시간이 짧아질 수 있다. 모드 신호가 어서트되지 않은 경우, 버퍼는 재드라이브 모드에서 동작하고, 따라서 데이터는 송신 클록에 재동기화된다. 이는 리싱크 모드(resync mode)라 불리고 이 경우 대기시간이 길어지지만 지터는 감소될 수 있다. I/O 셀은 모드 신호를 수신하기 위한 입력을 갖는 메모리 버퍼 또는 모듈 내에 설계될 수 있다. 만일 메모리 버퍼 또는 모듈이 다음 에이전트까지 비교적 짧은 신호 경로가 있는 시스템에서 사용될 것이라면, 짧은 신호 경로 상에서는 보다 많은 지터를 견딜 수 있기 때문에 I/O 셀로 하여금 재샘플 모드에서 동작하게 하는 입력이 어서트될(또는 극성에 따라서는 어서트되지 않을) 수 있다. 다른 한편으로, 만일 메모리 버퍼 또는 모듈이 다음 에이전트까지 비교적 긴 신호 경로가 있는 시스템에서 사용될 것이라면, I/O 셀로 하여금 리싱크 모드에서 동작하게 하도록 입력이 디어서트될 수 있는데, 왜냐하면 이렇게 함으로써 비록 대기시간이 더 길어지는 희생이 따를 수 있다 하더라도 지터가 감소하기 때문이다. 이와 달리, 모드 신호를 제어하기 위해 메모리 버퍼 또는 모듈 상에서, 또는 재드라이브 회로에서, 또는 I/O 셀 자체에서 레지스터링된 플래그가 사용될 수 있다.
도 12는 본 발명의 원리에 따른 I/O 셀의 또 다른 실시예를 도시한 것이다. 도 12의 실시예에서, 수신 및 송신 데이터 신호들 RX 및 TX는 차동 신호들이고 I/O 셀이 제조될 수 있는 집적 회로 다이의 에지를 가로지르는 것으로 도시되어 있다. 수신기(86)는 샘플링 유닛(96) 및 종단(termination) 유닛(98)을 포함한다. 샘플링 유닛은 샘플링 클록 발생기로부터의 위상 클록 신호들에 응답하여 보간기(90)에 의해 발생되는 샘플링 클록 신호 SC에 응답하여 착신 데이터 신호를 샘플링한다. 종단 유닛은 차동 종단(differential termination)을 제공하고 차동 데이터 신호를 싱글 엔디드 신호(single-ended signal)로 변환한다. 지터 방지 또는 드리프트 보상 버퍼(94)는 샘플링 클록 신호 SC 또는 안정된 송신 클록 신호 TC에 응답하여 데이터를 클로킹한다. 멀티플렉서(100)는 버퍼(94) 또는 직렬 변환기(serializer)(102)로부터의 데이터 신호들을 송신 래치(104)에 선택적으로 연결한다. 판독 데이터 신호들 RDX[0...n]은 I/O 셀에서 직렬 변환기(102)에서 수신된다. 버퍼(94)와 송신 래치(104) 사이에 또 하나의 멀티플렉서가 배치될 수 있는데 하나의 입력은 버퍼에 접속되고 또 하나의 입력은 보간기의 출력에 접속된다.
I/O 셀이 판독 데이터를 데이터 스트림에 병합할 필요가 있을 경우, 멀티플렉서는 직렬 변환기에 연결된 입력을 선택하여 송신 래치가 송신 클록 신호 TC에 응답하여 I/O 셀로부터의 판독 데이터를 클로킹하도록 한다. 그렇지 않을 경우, 멀티플렉서는 버퍼로부터의 데이터 신호를 선택하고 그 후 이 신호는 송신 래치에 의해 재드라이브된다. 송신 데이터 신호는 다음 단방향 링크 상에 드라이브되기 전에 송신기(106)에 의해 다시 차동 신호로 변환된다. 기입 데이터는 송신 래치의 출력으로부터 얻어지고, 직병렬 변환기(deserializer)(108)에서 수집된 다음, 디스큐 회로나 비트 레인 장애극복 메커니즘(bit lane fail-over mechanism)이나 기타 다른 회로로 라우팅(route)된다. 직병렬 변환기는 또한 기입 데이터 WDX[0...n]가 유효한 때를 지시하기 위해 샘플 클록 신호로부터 도출될 수 있는 비트 라인 클록 신호 BLC를 제공할 수 있다.
본 발명 원리 중 일부는 재드라이브 경로와 별개로 신호들을 디스큐하는 것에 관한 것이다. 재드라이브 경로는 하나 이상의 컴포넌트(신호가 수신되고 재드라이브될 때 그 신호는 그 하나 이상의 컴포넌트를 통하여 전파함)에 의해 정의된다. 예를 들면, 도 9 및 10의 실시예에서, 재드라이브 경로는 수신기(86)를 포함한다. 도 11의 실시예에서, 재드라이브 경로는 수신기(86) 및 버퍼(94)를 포함한다. 도 12의 실시예에서, 재드라이브 경로는 샘플링 유닛(96), 종단 유닛(98), 버퍼(94), 멀티플렉서(100), 송신 래치(104) 및 송신기(106)를 포함한다.
본 발명 원리 중 일부에 따르면, 디스큐 회로가 재드라이브 회로 내에 통합될 수 있는데 이 경우 디스큐 회로의 개개의 비트 레인들은 재드라이브 경로에 포함된다. 따라서, 비트 레인들 상의 신호들은 경로를 따라서 재드라이브될 때 각각의 재드라이브 회로에서 디스큐될 수 있다. 그러나, 이와 달리, 본 발명의 원리에 따른 디스큐 회로는 재드라이브 경로들로부터 분리될 수 있다. 예를 들면, 도 7의 실시예에서, 디스큐 회로는 재드라이브 회로(60) 내의 재드라이브 경로로부터만 분리되어 있는 것이 아니라, 전체 재드라이브 회로로부터도 분리되어 있는 것으로 도시되어 있다. 이와 달리, 본 발명의 원리에 따른 디스큐 회로는 재드라이브 회로 내에 통합되면서도, 재드라이브 경로로부터는 분리될 수 있다. 예를 들면, 도 12의 실시예에서, 하나 이상의 디스큐 래치들이 직렬 변환기(102)의 출력 및/또는 직병렬 변환기(108)의 입력에 위치할 수 있다.
상술한 재드라이브 경로와 별도로 신호들을 디스큐잉하는 방법 및 장치의 실시예들은 예시적인 것일 뿐이고 이들 구체적 예들로 한정되지 않는다. 더욱이, 본 특허에 따라서 재드라이브 경로와 별도로 신호들을 디스큐잉하는 것에 관한 원리들은 본 특허의 기타 다른 발명 원리들과는 무관하다. 예를 들면, 도 9-12에 도시된 재드라이브 회로들의 실시예들이 별개의 아웃바운드 및 인바운드 경로들을 갖는 메모리 시스템들에서 사용되는 것에 한정되지 않는 것처럼, 본 특허에 따라서 재드라이브 경로와 별개로 신호들을 디스큐잉하는 것에 관한 원리들도 단방향 링크들을 이용한 다른 타입의 메모리 아키텍처들과 함께, 예컨대, RamLink와 같은 링 타입 구성의 링크들을 이용하는 아키텍처와 함께 사용될 수 있다.
본 특허의 발명 원리 중 일부는 장애가 생긴 비트 레인들(failed bit lanes)에 대처하는 것에 관한 것이다. 예를 들면, 도 3, 4, 5, 6 또는 7의 실시예들에서 도시된 임의의 에이전트들 간의 단방향 링크들 중 어떤 것이든 2 이상의 비트 레인을 가질 수 있다. 본 발명의 원리에 따르면, 하나 이상의 신호들이 불량 비트 레인을 피하기 위해 비트 레인들 상에서 재방향설정(redirect)될 수 있다. 메모리 컨트롤러(호스트), 모듈, 버퍼 등과 같은 임의의 에이전트가 다수의 비트 레인들 상에서 하나 이상의 신호들을 재방향설정할 수 있다. 링크의 어느 한쪽 끝 또는 양쪽 끝에서 신호가 재방향설정될 수 있다. 임의의 에이전트가 자동으로 또는 또 다른 에이전트의 도움을 받아 장애가 생긴 비트 레인을 검출할 수 있고, 임의의 에이전트가 또 다른 에이전트로부터의 명령에 응답하여 신호들을 재방향설정할 수 있다.
도 13은 본 발명의 원리에 따른 장애극복 회로의 일 실시예를 도시한 것이다. 도 13의 장애극복 회로는 단지 예시적 목적으로 재드라이브 회로(12)의 실시예와 함께 도시되어 있을 뿐이며, 이러한 발명의 원리들은 임의의 특정 재드라이브 회로와 함께 사용하는 것으로 한정되지 않고, 장애극복 회로도 도 13에 도시된 특정 세부사항에 한정되지 않는다. 재드라이브 회로(112)는 단방향 링크들 상에서 신호들을 수신하고 재드라이브하도록 구성된 다수의 비트 레인들을 포함한다. 각각의 비트 레인은 수신기(116) 및 송신기(118)를 갖는 I/O 셀(114)로서 구현된다.
장애극복 회로란 복수의 비트 레인들로 또는 그로부터 하나 이상의 신호들을 재방향설정할 수 있는 회로를 지칭한다. 도 13의 실시예에서, 장애극복 회로는 하나 이상의 멀티플렉서 스위치(120)를 갖는 멀티플렉서로 구현되어 있다. 각각의 스위치는 하나의 비트 레인에 연결된 제1 입력 및 인접한 비트 레인에 연결된 제2 입력을 갖고 있어서 둘 중 어느 한쪽의 비트 레인으로부터의 신호들을 그것의 출력으로 재방향설정할 수 있다. 도 13에 도시된 실시예는 6개의 비트 레인들을 서비스하기 위해 6개의 스위치를 갖는 것으로 도시되어 있지만, 임의의 수의 스위치들 및 비트 레인들이 사용될 수 있고, 스위치들은 도시된 바와 같이 인접한 비트 레인 구성 이외의 다양한 구성으로 구성될 수도 있다.
정상 동작 모드(normal mode of operation) 동안에, 스위치들 각각은 도 14에 도시된 바와 같이 그것의 제1 입력으로부터의 신호를 그 출력으로 방향설정하고 그에 따라서 기입 데이터 신호들 WD0, WD1, WD2, WD3, WD4, 및 WD5가 각출력들 OUT0, OUT1, OUT2, OUT3, OUT4, 및 OUT5로 방향설정된다. 그러한 실시예에서, 비트 레인들 중 하나, 예를 들어, WD5에 대응하는 비트 레인은 나머지 비트 레인들 상의 데이터를 오류 체크를 위해 사용될 수 있다.
만일 불량 비트 레인이 검출되면, 멀티플렉서는 장애극복 모드에서 동작할 수 있고, 이 장애극복 모드에서는 스위치들 중 하나 이상이 그 불량 비트 레인을 배제(map out)하도록 조작된다. 예를 들어, 만일 WD3과 관련된 비트 레인이 적절히 동작하지 않으면, 멀티플렉서 스위치들은 도 15에 도시된 바와 같이 기입 데이터 신호들 WD4 및 WD5를 각각 출력들 OUT3 및 OUT4로 재방향설정할 수 있다. 이 모드에서는, 1 비트 레인만큼의 신호 용량이 손실된다. 만일 비트 레인들 중 하나가 오류 체킹용으로 지정되었다면, 원래 불량 비트 레인에 대해 의도된 신호들은 오류 체킹 레인을 통하여 재라우팅(reroute)될 수 있고, 오류 체킹 기능은 디스에이블링될 수 있다.
장애극복 회로의 출력들은 메모리 인터페이스, 메모리 디바이스 또는 기타 다른 회로에 연결될 수 있다. 도 13의 실시예에서, 장애극복 회로는 재드라이브 회로로부터 분리된 것으로 도시되어 있지만, 재드라이브 회로 내에 통합될 수도 있다. 본 발명의 원리에 따른 장애극복 회로는 도시된 바와 같이 단순한 멀티플렉서들로 실현될 수 있지만, 풀 크로스바 스위치(full crossbar switch)와 같은 다른 구성들도 가능하다.
도 13에 도시된 장애극복 회로의 실시예는 비트 레인들로부터의 기입 데이터를 출력들에 연결하도록 구성되어 있다. 이와 달리, 본 발명의 원리에 따른 장애극복 회로의 일 실시예는 반대 방향으로 데이터를 전송하도록 구성될 수도 있고, 그 경우 출력들 OUTX는 판독 데이터를 수신하는 입력들이 될 것이고, 멀티플렉서 스위치들은 디멀티플렉서 스위치들로 불릴 수 있고, I/O 셀들 각각은 장애극복 회로로부터의 판독 데이터를 비트 레인에 병합하기 위해 수신기와 송신기 사이에 멀티플렉서를 가질 수 있다. 따라서 멀티플렉서란 멀티플렉서와 디멀티플렉서 양쪽 모두를 지칭한다. 또 다른 대안으로서, 본 발명의 원리에 따른 장애극복 회로의 일 실시예는 비트 레인들 및 메모리 디바이스, 메모리 인터페이스 또는 기타 다른 회로 사이의 양방향 데이터 흐름을 위하여 구성될 수 있다.
메모리 버퍼, 메모리 모듈, 메모리 컨트롤러(호스트) 또는 비트 레인 장애극복 능력을 갖춘 기타 에이전트가 또한 본 발명의 원리에 따라서 장애가 생긴 비트 레인들을 검출하고, 신호들을 재방향설정하고, 불량 비트 레인들을 배제하는 등의 다양한 능력들을 가질 수 있다. 예를 들면, 도 13에 도시된 장애극복 회로의 일 예를 포함하는 에이전트는, 예컨대 다른 에이전트에 의해 송신된 테스트 데이터 패턴을 검출하고 장애가 생긴 비트 레인을 배제하도록 신호들을 재방향설정함으로써 장애가 생긴 비트 레인을 검출할 수 있도록 설계될 수 있다. 이와 달리, 그 에이전트는 다른 에이전트로부터의 명령, 예를 들어 메모리 채널 상의 하나 이상의 에이전트들에게 지시하는 메모리 컨트롤러로부터의 명령에 응답하여 장애가 생긴 비트 레인을 배제할 수 있도록 설계될 수도 있다. 또 달리, 에이전트는 양 능력을 모두 갖출 수도 있다.
도 16은 본 발명의 원리에 따른 비트 레인 장애극복 능력을 갖는 메모리 버퍼의 일 실시예를 도시한 것이다. 도 16의 실시예는 도 7의 그것과 유사하지만 디스큐 회로(70)와 메모리 인터페이스(66) 사이에 연결된 장애극복 회로(122)를 더 포함한다. 이와 다른 실시예들도 가능하다. 예를 들면, 장애극복 회로는 재드라이브 회로(60)와 디스큐 회로 사이에 배치될 수도 있고, 재드라이브 회로 내에 통합될 수도 있다. 도 16의 실시예는 또한 또 하나의 장애극복 회로(124)를 포함하는데, 이 회로는 멀티플렉서(74)와 재드라이브 회로(62) 사이에 연결된 것으로 도시되어 있지만, 재드라이브 회로 내에 통합될 수도 있고 다른 방법으로 구성될 수도 있다. 도 16의 메모리 버퍼는 이와 달리 메모리 모듈로서 구현될 수 있고, 이 경우 메모리 인터페이스는 메모리 디바이스로 대체된다.
도 17은 본 발명의 원리에 따른 비트 레인 장애극복 능력을 갖는 메모리 컨트롤러의 일 실시예를 도시한 것이다. 도 17의 컨트롤러는 복수의 비트 레인들을 갖는 아웃바운드 및 인바운드 단방향 링크 인터페이스들(126 및 128)(이 실시예에서는 각각 다수의 송신기와 다수의 수신기를 포함한다)을 포함한다. 장애극복 회로들(130 및 132)은 각각 인터페이스들(126 및 128) 내의 비트 레인들에 연결된다. 도 17의 실시예에서, 장애극복 회로들은 링크 인터페이스들로부터 분리된 것으로 도시되어 있지만, 이와 달리 그 인터페이스들과 일체로 될 수도 있다. 이 컨트롤러는 장애가 생긴 비트 레인을 검출할 수 있고, 그 경우 장애극복 회로들은 장애가 생긴 비트 레인을 배제할 수 있다. 부가적으로 또는 이와 달리, 컨트롤러는 에이전트에게 장애가 생긴 비트 레인을 배제하도록 지시하는 명령을 발행할 수 있다.
이제 본 발명의 원리에 따른 메모리 컨트롤러(호스트), 메모리 모듈들 및 메모리 버퍼들의 부가적인 실시예들을 포함하는 완전 메모리 채널 시스템(complete memory channel system)의 예시적인 실시예와 관련하여 본 발명의 원리에 따른 부가적인 장애극복 방법들 및 장치에 대해 설명한다. 그러나, 이 컴포넌트들 중 어떤 것도 이 예시적인 시스템이나 여기서 설명되는 세부사항들 중 어떤 것으로도 한정되지 않는다.
예시적인 시스템은 도 17을 참조하여 설명된 것들과 같은 장애극복 능력들을 갖는 호스트의 일 실시예 및 도 16을 참조하여 설명된 것들과 같은 장애극복 능력들을 갖는 버퍼들을 포함한 하나 이상의 메모리 모듈들의 실시예들을 포함한다. 이러한 예에서, 호스트 및 모듈들은 도 7에 도시된 것과 같은 아웃바운드 및 인바운드 경로들을 갖는 채널 구성으로 구성될 수 있지만, 시스템은 하나의 모듈만을 포함할 수 있다.
이 예에서, 호스트 및 모듈들은 "SMBus"로 알려진 시스템 관리 버스로 상호 접속되어 있는데, 이 "SMBus"는 시스템 내의 컴포넌트들을 관리하기 위해 사용되는 직렬 버스 시스템이다. 그러나, SMBus의 이용은 본 발명의 원리에 필수적인 것이 아니고, 메모리 채널 경로들 자체를 포함하여 컴포넌트들 간 또 다른 통신 형태가 사용될 수도 있다.
예시적인 시스템에서 장애가 생긴 비트 레인을 검출하고 배제하기 위한 본 발명의 원리에 따른 방법의 일 실시예는 다음과 같다. 호스트는 아웃바운드 경로의 각 비트 레인 상에 테스트 패턴을 송신한다. 이 테스트 패턴은 최외측 모듈에 도달할 때까지 각 모듈 상의 버퍼에 의해 아웃바운드 경로를 따라서 수신되고 재드라이브된다. 그 후 최외측 모듈은 인바운드 경로의 각 비트 레인 상에 테스트 패턴을 송신한다. 이 테스트 패턴은 호스트에 도달할 때까지 각 모듈 상의 버퍼에 의해 인바운드 경로를 따라서 수신되고 재드라이브된다. 호스트 및 모듈 상의 버퍼들은 적절한 비트 레인 동작을 체크하기 위해 인바운드 및/또는 아웃바운드 경로들의 각 비트 레인 상에서 테스트 패턴을 관찰한다. 인바운드 및 아웃바운드 경로 내의 비트 레인들은 동시에 테스트될 수도 있다.
장애가 생긴 비트들은, SMBus를 통하여 호스트에게 결과를 송신하거나 그리고/또는 채널을 통하여 호스트에게 결과 프레임을 송신함으로써 보고된다. 그러한 결과 프레임은 최외측 모듈에 의해 인바운드 경로 상에서 개시될 수 있고, 만일 다른 모듈이 있다면, 그 결과 정보를 인바운드 경로 내의 데이터에 병합할 수 있다. 만일 각 모듈로부터의 결과들이 2 이상의 비트 레인 상에서 중복하여(redundantly) 송신된다면, 장애가 생긴 비트 레인이 그 결과를 보고하는 것을 방해할 가능성이 없다.
일단 호스트가 그 결과들을 수신하면, 호스트는 SMBus를 통하거나, 채널을 통하거나, 임의의 기타 다른 통신 형태를 통하여 모듈들로 구성 명령(configuration command)을 발행할 수 있다. 구성 명령은 모듈들에게, 불량 비트 레인이 있다면, 어느 비트 레인들이 불량하고 배제되어야 하는지를 지시한다. 모듈들은, 불량 비트 레인이 있다면, 그 불량 비트 레인들 주위의 신호들을 재방향설정하도록 하나 이상의 장애극복 회로들을 조작하고, 비트 레인의 손실을 수용하도록 임의의 내부 기능을 재구성함으로써 상기 구성 명령에 응답한다. 예를 들어, 만일 하나의 비트 레인이 데이터 오류 체크를 위해 지정되었다면, 버퍼 또는 모듈은 오류 체킹 기능을 디스에이블링할 수 있다.
위에서 설명된 장애극복 방법 및 장치의 실시예들은 예시적인 것일 뿐이고, 본 발명의 원리는 이들 특정 예들로 한정되지 않는다. 도 3의 실시예와 같이 별개의 인바운드 및 아웃바운드 경로를 갖는 메모리 시스템과 관련하여 이 특허에 따른 장애극복 방법 및 장치의 원리들이 설명되었지만, 이 원리들은 단방향 링크들을 이용한 임의의 메모리 아키텍처, 예컨대 RamLink와 같은 링 타입 구성의 링크들을 이용하는 아키텍처에도 적용될 수 있다.
본 발명의 원리 중 일부는 치환 상태 패턴들에 관한 것이다. 메모리 에이전트들 간에 메모리 판독 및 기입 데이터가 전송되는 도 1 및 3을 참조하여 전술된 것들과 같은 메모리 시스템들에서는, 메모리 에이전트들 간에 아이들 패턴, 경보 패턴 및 기타 다른 상태 정보 등의 상태 정보를 송신하는 것도 유익할 수 있다. 이는 메모리 에이전트들을 접속하는 동일 링크 또는 링크들 상에 데이터 패턴들 및 상태 패턴들을 송신함으로써 달성된다. 본 발명의 원리에 따르면, 상태 패턴들은 시간에 걸쳐 치환될 수 있다.
예를 들어, 도 3을 참조하면, 메모리 컨트롤러(50)는 판독 명령 등의 데이터 패턴들을 갖는 프레임들을 하나 이상의 모듈(52)로 송신할 수 있고 이 모듈들은 판독 데이터 등의 데이터 패턴들을 갖는 프레임들을 컨트롤러에게 송신함으로써 응답한다. 예를 들어, 상기 모듈이 메모리 디바이스(58)로부터 충분히 빨리 판독 데이터를 검색할 수 없었다면, 상기 모듈들 중 하나 이상의 모듈이 아이들 패턴을 갖는 프레임을 메모리 컨트롤러에게 송신하는 것도 유익할 수 있다. 메모리 컨트롤러가 아이들 패턴을 수신하면, 자신이 판독 데이터를 수신하고 있지 않음을 알도록 소정의 데이터 패턴이 아이들 패턴으로서 지정될 수 있다. 그러나, 이 경우, 만일 실제 판독 데이터 패턴이 공교롭게도 지정된 아이들 패턴과 일치하게 되면 문제가 생길 수 있다.
본 발명의 원리에 따르면, 메모리 컨트롤러 및 하나 이상의 모듈은 모두 시간 경과에 따라 아이들 패턴이 변화하는 예측 가능한 방식으로 그러한 아이들 패턴을 치환할 수 있다. 예를 들면, 메모리 컨트롤러 및 모듈들은 아이들 프레임이 송신 및/또는 수신될 때마다 소정의 시퀀스에 따라서 그 아이들 패턴을 변경할 수 있다. 본 발명의 원리에 따른 방법의 일 실시예가 도 18에 도시되어 있다. 따라서, 만일 메모리 컨트롤러가 판독 명령 프레임을 송신하고(158) 현재의 아이들 패턴을 갖는(162) 응답 프레임을 수신하면(160), 동일한 판독 명령을 재송신할 수 있다(164). 만일 제2 응답 프레임(166)이 제1 응답 프레임과 동일한 패턴을 포함하면(168), 그 패턴을 실제 판독 데이터로 해석한다(170). 그러나, 만일 제2 응답 프레임 내의 패턴이 치환된 아이들 패턴과 일치하면(168), 메모리 컨트롤러는 제1 응답 프레임이 아이들 프레임이었음을 알게 된다(172).
본 발명의 원리에 따르면, 상태 패턴들로써 송신된 상태 정보는 아이들 패턴, 경보 패턴, 그리고 모듈로부터의 명령 오류 정보, 모듈로부터의 열 과부하(thermal overload) 정보 및 모듈이 메모리 채널의 아웃바운드 경로 상 다른 모듈의 존재를 검출했음을 나타내는 정보 등의 기타 다른 상태 정보일 수 있다. 일부 타입의 상태 패턴들이 상보적 패턴(complementary patterns)으로 구현될 수도 있다. 예를 들면, (에이전트에게 오류 상태를 통지하기 위해 사용될 수 있는) 경보 패턴은 아이들 패턴의 논리적 보수(logical complement)로서 구현될 수 있다. 이 경우, 예를 들어 메모리 에이전트가 아이들 및 경보 패턴들을 위해 동일한 패턴 발생기를 사용할 수 있게 함으로써 구현이 단순해질 수 있다. 상보적 상태 패턴들의 이용은 치환 패턴들이 사용되지 않는다 하더라도 유익할 수 있다.
본 발명의 원리에 따른 메모리 에이전트는 또한 상태 패턴에서의 순환 중복 검사(CRC) 오류와 같은 오류를 의도적으로 발생시킬 수도 있다. 그러한 기법은 데이터 패턴과 상태 패턴을 구별하기 위한 대안적 또는 보충적 방법으로서 유용할 수 있다. 예를 들면, 일부 메모리 시스템들에서, 각각의 프레임은 프레임 내 데이터의 무결성(integrity)을 체크하기 위해 사용되는 CRC 코드와 함께 송신된다.
본 발명의 원리에 따르면, 메모리 에이전트는 상태 패턴을 포함하는 프레임과 함께 틀린 CRC 코드를 의도적으로 송신할 수 있다. 그러면 수신 측 에이전트는 그 프레임을 데이터 프레임이 아니라 상태 프레임으로 해석할 수 있다. 일부 메모리 시스템들은 CRC 데이터를 운반하기 위한 여분의 비트 레인을 갖는 경로 또는 경로들을 이용할 수 있다. 만일 그러한 시스템이 장애극복 모드에서 동작할 수 있다면, 에이전트 또는 에이전트들은 단지 장애극복 모드에서 동작하지 않을 경우 의도적인 CRC 오류를 이용할 수 있다. 본 명세서에서 사용되는 바에 의하면, CRC라는 용어는 순환 중복 검사를 지칭할 뿐만 아니라, 프레임 또는 패턴의 무결성을 검증하기 위해 사용되는 임의의 다른 타입의 오류 체킹 방식을 지칭한다.
비록 본 발명의 원리에 따른 상태 패턴 치환 및 핸들링의 원리들이 임의의 타입의 메모리 에이전트에 적용될 수 있고, 본 특허의 다른 발명 원리들과 무관하다 하더라도, 도 7에 도시된 실시예와 같은 메모리 버퍼를 참조하여, 그리고 도 6에 도시된 실시예와 같은 시스템과 관련하여 몇몇 부가적인 양태들에 대해 설명하기로 한다. 도 6을 참조하면, 만일 메모리 버퍼(64)가 메모리 채널 상의 최외측 에이전트라면, 그것은 메모리 인터페이스(68)에 부착된 임의의 메모리 디바이스들로부터 호스트가 요구한 데이터를 송신하지 않을 때에는 언제든지 인바운드 링크(56B) 상에서 끊임없이 치환 아이들 상태 프레임들을 송신할 수 있다.
도 19는 본 발명의 원리에 따른 치환 패턴 발생기의 일 실시예를 도시한 것이다. 도 19의 실시예는 x12+x7+x4+x3+1의 다항식을 갖는 12-비트 선형 피드백 시프트 레지스터(LFSR)이다. 초기 상태는 000000000001이고, 패턴이 반복되기 전에 LFSR은 212-1개 상태(4095 프레임)를 통하여 순환한다. LFSR의 각 비트는 데이터 경로 상 링크 내의 하나의 비트 레인에 매핑될 수 있고, 각 비트는 전체 프레임 동안 대응하는 비트 레인 상에서 일어나는 모든 전송들을 위해 사용될 수 있다. 예를 들면, 각 링크 내에 12개 비트 레인을 갖는 데이터 경로를 갖는 시스템에서, LFSR의 각 단(stage)의 출력은 비트 레인들 중 하나에 매핑될 수 있다. 1 프레임만큼 지연된 LFSR의 최하위 비트로부터의 값을 이용함으로써 부가적인 레인들, 예를 들어 제13 비트 레인이 수용될 수 있다.
도 20은 도 19의 치환 패턴 발생기에 의해 발생된 제1 상태 패턴의 예를 도시한 것이다. 이 예에서, 프레임은 12개 전송(12 transfers)의 길이를 갖는다. 도 21 내지 23은 각각 제2, 제3 및 제4 상태 패턴들을 도시한 것이다. 전체 프레임 동안 각 비트 레인 상에 동일한 값을 사용함으로써, 전자파 장애(EMI)가 감소될 수 있다.
여기에서 예시된 13 비트 레인 × 12 비트 전송 프레임은 예시일 뿐이고, 본 발명의 원리은 이들 세부사항에 한정되지 않고, 위에서 설명된 치환 패턴 발생기의 특정 실시예에 한정되지도 않는다. 예를 들면, 본 발명의 원리에 따른 치환 패턴 발생기는 위에서 설명된 LFSR과 같은 전용 논리 회로로 구현될 필요는 없다. 이와 달리 그것은 프로그램 가능 로직(programmable logic)으로 구현되거나, 메모리 인터페이스 내의 로직 또는 치환 상태 패턴들을 이용하는 버퍼 또는 다른 메모리 에이전트의 다른 기능을 감독(oversee)하고 그리고/또는 구현하기 위해 사용될 수 있는 프로세서 내의 알고리즘으로서 또는 다른 프로그램 가능한 상태 머신으로서 구현될 수 있다.
본 특허의 일부 부가적인 발명 원리들은 2 이상의 비트 레인을 이용하여 메모리 링크 상의 메모리 에이전트의 존재를 검출하는 것에 관한 것이다. 예를 들면, 도 7의 메모리 버퍼의 실시예에서, 버퍼는 아웃바운드 링크(54B)에 연결된 다른 메모리 에이전트가 있는지 여부를 검출할 수 있다. 이는 링크 내의 단일 비트 레인을 이용하여 다른 메모리 에이전트의 존재를 테스트함으로써 달성될 수 있다. 그러나, 만일 링크 내에 2 이상의 비트 레인이 있다면, 그 비트 레인들 중 2개 이상이 본 특허의 발명 원리들에 따라서 다른 메모리 에이전트의 존재를 검출하기 위해 사용될 수 있다. 이로써 불량 비트 레인의 존재로 인해 존재 검출 동작이 방해를 받는 것을 방지할 수 있다.
편의상, 2 이상의 비트 레인을 이용하여 메모리 에이전트의 존재를 검출하는 것에 관한 본 발명의 원리는 개별적으로 그리고 집합적으로 용장 존재 검출(redundant presence detect)이라고 불릴 것이다. 용장 존재 검출은 복수의 비트 레인을 포함한 링크 인터페이스를 갖는 임의 타입의 메모리 에이전트에 적용될 수 있다. 예를 들면, 도 13의 실시예에 도시된 송신기들(118) 중 임의의 2 이상의 송신기가 링크 인터페이스, 이 경우에는 송신 링크 인터페이스로 간주될 수 있다. 마찬가지로, 도 13의 실시예에 도시된 수신기들(116) 중 임의의 2 이상의 수신기가 링크 인터페이스, 이 경우에는 수신 링크 인터페이스로 간주될 수 있다. 용장 존재 검출은 이들 링크 인터페이스들 중 어느 한쪽은 물론, 도 17의 실시예에 도시된 링크 인터페이스들(126 및 128) 중 어느 한쪽에도 적용될 수 있다.
다시 예로서 도 7의 실시예로 돌아가면, 메모리 버퍼는 리셋과 같은 존재 검출 이벤트가 발생할 때 그 인바운드 송신 링크(56B) 상의 3개의 비트 레인들을 소정의 존재 검출 논리 레벨, 예컨대 1로 드라이브하여 그것의 존재를 다른 버퍼에게 신호한다. 또한 존재 검출 이벤트 동안에, 채널 상의 제1 버퍼로부터 인바운드 쪽에 위치하는 제2의 그와 같은 메모리 버퍼가 제1 버퍼의 존재를 검출하기 위해 그 인바운드 수신 링크(56A) 상의 대응하는 3개의 비트 레인들을 구성할 수 있다. 이 예에서, 제1 메모리 버퍼는 외측(outer) 에이전트로 불리고, 제2 버퍼는 내측(inner) 에이전트로 불릴 것이다.
또 다른 에이전트의 존재를 검출하기 위한 비트 레인 구성 기법의 일례는, 그 비트 레인을 존재 검출 논리 레벨의 반대로 되게 하기 위해 해당 비트 레인에 대한 수신기가 그 비트 레인 상에 바이어스 전류를 인가해보게 하는 것이다. 만일 존재 검출 이벤트 동안 다른 메모리 에이전트가 그 비트 레인에 연결되면, 해당 비트 레인 상의 그의 송신기는 그 비트 레인을 존재 검출 논리 레벨로 되게 할 것이다.
만일 내측 에이전트가 3개 중 2개의 비트 레인 상에서 존재 검출 논리 레벨을 검출하게 되면, 외측 에이전트가 존재하는 것을 알게 되고 그의 외측 포트의 전부 또는 일부를 인에이블 상태로 남겨둘 수 있다. (이 예에서, 외측 포트는 아웃바운드 링크(54B)에 대한 링크 인터페이스 및 인바운드 링크(56A)에 대한 링크 인터페이스를 포함한다.) 만일 내측 에이전트가 3개 중 적어도 2개의 비트 레인들 상에서 존재 검출 논리 레벨을 검출하지 못하면, 외측 에이전트가 존재하지 않는 것으로 판정할 수 있고 그의 외측 포트의 전부 또는 일부를 디스에이블링할 수 있다. 내측 에이전트는 상태 체크 명령에 응답하여 외측 에이전트의 존재 또는 부재를 다른 에이전트, 예컨대 메모리 컨트롤러에게 보고할 수 있다.
용장 존재 검출을 이용하는 에이전트는 또한 존재 검출 이벤트를 다른 에이전트에게 신호할 수 있다. 예를 들어, 만일 아웃바운드 경로 상에서 리셋 명령을 통하여 도 7의 버퍼에게 리셋 이벤트가 전달되면, 이 명령은 재드라이브 회로(60)에 의해, 외측 에이전트가 있다면, 그 외측 에이전트에게 중계될 수 있다. 이로써 양쪽 모두의 에이전트들이 존재 검출 모드에 놓일 수 있다.
본 발명의 원리에 따른 용장 존재 검출은 위에서 논의된 특정 실시예들에 한정되지 않는다. 예를 들면, 상기 예에서와 같이 3개 대신에 2개의 비트 레인만이 존재 검출을 위해 사용될 수 있고, 그 경우 내측 에이전트는 외측 에이전트가 존재한다고 결론을 내리기 위해 단일 비트 레인 상에서 존재 검출 논리 레벨을 검출하기만 하면 될 것이다. 마찬가지로, 용장 존재 검출은 각종 다른 타입의 메모리 아키텍처들, 예컨대 RamLink와 같은 링 타입 구성의 링크들을 이용하는 아키텍처를 이용하는 시스템들 및 컴포넌트들에 적용될 수 있다.
이 특허에 따른 몇몇 부가적인 발명 원리들은 메모리 채널로부터의 컴포넌트들의 삭제 및/또는 핫 삽입(hot insertion and/or removal), 즉 메모리 채널이 동작하는 중에 컴포넌트들을 부가 및/또는 제거하는 것에 관한 것이다. 도 24는 본 발명의 원리에 따른 메모리 에이전트(134)의 일 실시예를 도시한 것이다. 도 24의 실시예는 메모리 모듈, 메모리 버퍼, 메모리 컨트롤러 등일 수 있다. 이 에이전트는 제1 포트(136) 및 제2 포트(138)를 포함한다. 만일 이 에이전트가, 단지 예시를 위하여, 도 6의 실시예에서의 모듈들(52) 중 하나와 같은 메모리 모듈이라고 가정하면, 제1 포트는 내측 포트로서 지정될 수 있는데, 왜냐하면 그 제1 포트는 메모리 컨트롤러에 보다 가까이 위치하는 메모리 채널 상의 다른 에이전트들과 통신하도록 구성될 수 있기 때문이다. 마찬가지로, 제2 포트는 외측 포트로서 지정될 수 있는데, 왜냐하면 그 제2 포트는 메모리 컨트롤러로부터 더 멀리 위치하는 메모리 채널 상의 에이전트들과 통신하도록 구성될 수 있기 때문이다. 이러한 지정들은 단지 예시를 위한 것일 뿐이고, 본 발명 원리들은 메모리 에이전트의 이와 같은 세부사항들로 한정되지 않고 또한 도 6에 도시된 메모리 채널의 세부사항으로 한정되지도 않는다. 이 원리들은 또한 도 1에 도시된 RamLink 아키텍처와 같은 다른 메모리 채널 아키텍처들에도 적용될 수 있다.
본 발명의 원리에 따른 메모리 에이전트의 각 포트는 하나 이상의 링크 인터페이스를 갖는다. 도 24의 실시예에서, 각 포트는 수신 링크 인터페이스 및 송신 링크 인터페이스 양쪽 모두를 갖는다. 내측 포트(136)는 재드라이브 회로(60)의 일부인 하나 이상의 수신기들일 수 있는 수신 링크 인터페이스(140)와, 또 다른 재드라이브 회로(62)의 일부인 하나 이상의 송신기들일 수 있는 송신 링크 인터페이스(142)를 갖는다. 외측 포트는 수신 및 송신 링크 인터페이스들(144 및 146)을 각각 갖는데, 이것들도 또한 각각 재드라이브 회로들(62 및 60)의 일부이다. 링크 인터페이스들(140 및 146)은 각각 아웃바운드 링크들(54A 및 54B)에 연결될 수 있고, 링크 인터페이스들(142 및 144)은 각각 인바운드 링크들(56B 및 56A)에 연결될 수 있다. 링크 인터페이스들 각각은 하나 이상의 비트 레인을 가질 수 있고, 이 비트 레인들 및 인터페이스들은 이러한 용어를 이용한 임의의 조합으로 지칭될 수 있다. 예를 들면, 인터페이스(142) 내의 비트 레인들은 인바운드 송신 또는 인바운드 Tx 비트 레인들로 불릴 수 있다. 인터페이스(144) 내의 비트 레인들은 인바운드 수신 또는 인바운드 Rx 비트 레인들로 불릴 수 있다.
도 24의 실시예는 단지 예시일 뿐이고, 메모리 에이전트들 및 포트들은 여러 다른 방법들로 구현될 수 있다. 예를 들면, 링크 인터페이스들은 반드시 재드라이브 회로의 일부인 것은 아니다. 포트가 재드라이브 회로들의 일부가 아닌 링크 인터페이스들(126 및 128)을 포함할 수 있는 도 17에 도시된 메모리 컨트롤러의 실시예로써 예시된다. 이 링크 인터페이스들은 단 하나 또는 임의의 수의 비트 레인들을 포함할 수 있고, 포트는 수신 링크 인터페이스 또는 송신 인터페이스만을 가질 수 있다.
본 발명의 원리에 따른 메모리 에이전트는 그것의 포트들 중 하나의 포트 상에서 다른 메모리 에이전트의 존재를 검출할 수 있고, 다른 메모리 에이전트의 존재 또는 부재에 따라서 다양한 조치들을 취할 수 있다. 예를 들면, 도 24의 메모리 에이전트는 그의 외측 포트에 다른 메모리 에이전트가 존재하지 않을 경우 그 외측 포트의 전부 또는 일부를 디스에이블링할 수 있다. 이는 외측 에이전트의 존재 또는 부재를 다른 에이전트, 예컨대 메모리 컨트롤러에게 그의 내측 포트를 통하여 보고할 수 있다. 도 24의 메모리 에이전트는 외측 포트 상의 잠재적 외측 에이전트에게 존재 검출 이벤트를 신호하는 것을 포함할 수 있는 존재 검출 동작을 수행할 수 있다. 이는 또한 고속 리셋 동작을 수행할 수 있다.
메모리 시스템의 실시예와 관련하여 특허 출원에 따라서 핫 추가/제거(hot add/removal)를 용이하게 할 수 있는 몇몇 추가적인 발명 원리들에 대해 설명하기로 한다. 본 실시예는 도 6의 실시예와 같은 메모리 시스템의 문맥에서 도 24의 메모리 에이전트와 관련하여 설명될 것이다. 이 실시예에서는, 메모리 디바이스들을 갖는 모듈들 중 일부에 해당하는, 도 6의 버퍼들 중 하나 이상을 구현하기 위해 도 24의 메모리 에이전트가 사용되는 것으로 가정하겠다. 그러나, 모든 이러한 모든 세부사항들은 단지 설명을 위한 것일 뿐이고, 본 발명 원리들은 이들 세부사항에 한정되지 않는다.
본 예시적 시스템에서, 메모리 에이전트들은 고속 리셋(fast reset) 동작, 풀 리셋(full reset) 동작 및/또는 각종 폴링 또는 존재 검출 동작들을 실행할 수 있다. 이 예시적인 시스템에서는, 데이터 스트림에 로크(lock)된 각 비트 레인 상에 파생 클록들을 유지하기 위한 최소 수의 클록 전이가 필요할 수 있다. 따라서, 메모리 컨트롤러(또는 호스트)는 소정의 시간 기간 동안 아웃바운드 경로 내의 비트 레인들 중 하나 이상의 비트 레인 상에 1들 또는 0들의 연속 스트림을 송신함으로써 리셋 동작을 개시할 수 있다. 해당 경로 상의 각 버퍼에 의해 데이터가 재드라이브되므로, 모든 버퍼들은 리셋 명령 또는 이벤트를 수신한다. 이 예시적인 시스템에서는, 리셋 동작을 신호하기 위해 3개의 최하위 비트(LSB) 레인들이 사용될 수 있다. 수신 측 에이전트는 그 3개의 LSB 중 임의의 2개의 LSB 상에서 0들 또는 1들로 이루어진 스트림을 감지함으로써 리셋 이벤트를 검출할 수 있다. 이렇게 함으로써 하나의 장애가 생긴 비트 레인이 리셋 동작을 방해하지 않도록 할 수 있으며, 다만 본 발명의 원리가 2 이상의 비트 레인을 필요로 하는 것은 아니고, 그러한 구현에 한정되지는 않는다.
이 예시적인 시스템에서는, 예를 들어 외부 조건에 의해 호스트가 리셋 상태로 유지되고 있는 동안, 그 호스트는 연속적인 0들의 스트림을 송신하여 채널 상의 모든 에이전트들(본 실시예에서는 버퍼를 포함하는 모듈들)을 무한정 제1 리셋 상태로 유지할 수 있다. 그 후 호스트는 제1 시간량, 예컨대 2 프레임 기간 동안 1들의 스트림을 송신한 다음, 다시 0들의 스트림을 송신하여 다른 에이전트들에게 고속 리셋 동작을 실행하도록 신호할 수 있다. 이와 달리, 호스트는 제2 시간량, 예컨대 2 이상의 프레임 기간 동안 1들의 스트림을 송신하여, 다른 버퍼들에게 풀 리셋 동작을 실행하도록 신호할 수 있다. 풀 리셋은 링크들 상의 임피던스 매칭, 임의의 수신기 또는 드라이브 회로 내의 전류원 조정, 수신기 오프셋 조정 등과 같은 각종 내부 조정 동작(calibration operations)을 포함할 수 있다. 그 조정 동작들이 수행된 후에, 호스트는 버퍼들에게 고속 리셋 동작으로 전이(transition)하도록 신호할 수 있다.
고속 리셋 동작은 조정 동작 등의 풀 리셋 동작 동안에 수행되는 소정의 동작들을 바이패스(bypass)할 수 있다. 고속 리셋 동작은 존재 검출 동작으로 시작할 수 있다. 존재 검출 동작 동안에, 채널 상의 각 버퍼는 3개의 LSB 인바운드 Rx 비트 레인들로 하여금 외측 에이전트에 접속되어 있지 않을 경우 그 비트들을 0으로 하도록 그 비트 레인들에 전류를 인가할 수 있다. 또한 존재 검출 동작 동안에, 각 버퍼는 3개의 LSB 인바운드 Tx 비트 레인들을 1로 드라이브할 수 있다. 그 후 각 버퍼는 그것의 3개의 LSB 인바운드 Rx 비트 레인들을 체크할 수 있고, 만일 그 3개 중 2개의 레인 상에서 1을 검출하면, 해당 버퍼는 그의 외측 포트를 인에이블 상태로 놓아두고 그에 따라서 상태 레지스터를 업데이트할 수 있다. 만일 버퍼가 2개의 1을 검출하지 않으면, 그 버퍼는 외측 에이전트가 없는 것으로 추정하고, 그것의 외측 포트의 전부 또는 일부를 디스에이블링하고, 채널 상의 최외측 에이전트의 기능들을 수행하도록 자신을 구성하고, 그리고/또는 그에 따라서 상태 레지스터를 업데이트할 수 있다. 호스트는 채널 상에 임의의 에이전트가 있는지를 판정하기 위한 유사한 존재 검출 동작을 따를 수 있다. 버퍼들은 호스트로부터의 상태 요구에 응답하여 상태 프레임들에서 상태 정보를 호스트에게 중계할 수 있다.
존재 검출 동작 후에, 이 예시적인 시스템 내의 버퍼들은 고속 리셋 동안에 버퍼들 상의 로컬 클록들을 데이터 스트림에 로크(lock onto)하도록 트레이닝하는 클록 트레이닝 상태, 채널을 통하여 송신되는 프레임들을 정렬(align)시키는 프레임 트레이닝 상태, 모든 비트 레인들의 동작을 체크하고 만일 그것들이 그러한 능력을 갖고 있다면 그 버퍼들을 장애극복 모드에 놓이게 하는 비트 레인 테스트 등과 같은 각종 다른 동작들을 거쳐서 전이할 수 있다. 또한, 일단 호스트가 얼마나 많은 다른 에이전트들이 채널에 접속되어 있는지를 알면, 그 에이전트들 모두를 수용하기 위해 프레임 사이즈, 타이밍 등을 조정할 수 있다.
그에 더하여 또는 그와 달리, 본 예시적인 시스템에서, 메모리 에이전트들은 채널 상에 새로이 추가된 에이전트들의 존재를 검출하기 위해 각종 폴링 동작들을 수행할 수 있다. 예를 들면, 각 버퍼는 만일 그것이 최외측 버퍼라면 채널에 새로운 에이전트가 부가되었는지를 판정하기 위해 그것의 외측 포트 상에서 폴링 동작을 수행할 수 있다. 도 25는 본 발명의 원리에 따른 그러한 폴링 동작의 일 실시예를 도시한 것이다.
단계(148)에서, 에이전트는 그의 외측 포트의 전부 또는 일부를 디스에이블링할 수 있다. 만일 그 에이전트가 버퍼 또는 모듈이라면, 이는 단계(150)에서 핫 리셋 동작으로 전이하도록 하는 호스트로부터의 폴링 명령(poll command)을 기다릴 수 있다. 만일 그 에이전트가 호스트라면, 이는 그의 외측 포트의 전부 또는 일부를 디스에이블링하고 시스템 환경으로부터의 일깨움 명령(wake up command)을 기다릴 수 있다. 일깨움 명령을 수신하면, 호스트는 그의 외측 포트의 전부 또는 일부를 인에이블로 변화시키고 리셋 상태로 전이할 수 있다.
단계(150)에서, 에이전트는 그의 외측 포트를 인에이블하고 3개의 LSB 아웃바운드 Tx 비트 레인들 상에 0들을 드라이브하여 그 외측 포트 상의 잠재적 새로운 클라이언트에게 리셋을 송신한다. 그 후 에이전트는 단계(152)에서 핫 조정 동작(hot calibration operation)으로 전이할 수 있다.
새로이 검출된 에이전트는 아마도 조정(calibrate)될 필요가 있을 것이므로, 단계(152)에서는, 에이전트는 3개의 LSB 아웃바운드 Tx 비트 레인들 상에 1들을 드라이브하여 잠재적인 새로운 에이전트가 조정 동작들을 포함한 풀 리셋을 거치도록 할 수 있다. 그 후 에이전트는 단계(154)에서의 핫 검출 동작으로 전이할 수 있다.
단계(154)에서, 에이전트는 3개의 LSB 아웃바운드 Tx 비트 레인들 상에 0들을 드라이브하고 3개의 LSB 인바운드 Rx 비트 레인들 상에 바이어스 전류를 인가하여 이들이 외측 에이전트에 접속되어 있지 않은 경우라면 그 비트들을 0으로 하도록 할 수 있다. 그 후 에이전트는 3개의 LSB 인바운드 Rx 비트 레인들을 체크할 수 있고, 만일 적어도 2개의 1을 검출한다면, 단계(155)에서 외측 에이전트가 존재하는 것으로 판정하고 단계(156)에서 핫 에이전트 리셋 동작으로 전이할 수 있다. 만일 그렇지 않다면, 에이전트는 단계(155)에서 외측 에이전트가 존재하지 않는 것으로 판정하고 다시 단계(148)에서의 휴면 동작(sleep operation)으로 이행할 수 있다.
단계(156)에서, 에이전트는 자신이 외측 에이전트를 검출한 것을 나타내기 위해 상태 레지스터를 업데이트하고 그 후 이 정보를, 예컨대 상태 요구에 응답하여, 호스트에게 중계하거나, 그 정보를 호스트 또는 다른 에이전트에게 중계하기 위한 소정의 기타 조치를 취할 수 있다. 에이전트는 또한 채널 리셋을 수신하기 위해 기다릴 수 있다.
호스트는 주기적인 상태 요구나 기타 다른 기법을 통하여, 새로이 검출된 에이전트를 알게 되고, 채널 상 채널 타이밍에 수용된 새로운 에이전트를 포함하여 전체 채널을 다시 초기화하도록 고속 리셋을 개시할 수 있다.
다음은 본 발명의 원리에 따른 핫 추가/제거 시퀀스들의 몇몇 추가적인 실시예들이다. 이들 추가적인 실시예들도 도 6의 메모리 시스템을 채용하는, 사용자 인터페이스 및 시스템 펌웨어를 갖춘 서버 등의 보다 큰 시스템과 관련하여 도 6에 도시된 메모리 시스템의 실시예와 관련해서 설명된다. 그러나, 이들 추가적인 실시예들에 의해 예시된 발명 원리들은 여기에서 설명된 특정 세부사항들에 한정되지 않는다.
본 발명의 원리에 따른 핫 추가 시퀀스는 사용자가 메모리 채널 상에, 예를 들어 최외측 에이전트의 외측 포트 상에 새로운 에이전트를 추가할 때 시작될 수 있다. 사용자는 시스템 펌웨어에게 에이전트가 추가된 것을 알릴 수 있다. 그 후 펌웨어는 추가된 에이전트에 전력이 인가되게 하고 일깨움 명령을 통하여 호스트에게 에이전트가 추가된 것을 알릴 수 있다. 그 후 호스트는 이전의 최외측 에이전트에게 폴 명령을 송신할 수 있고, 그 후 이전의 최외측 에이전트는 도 25를 참조하여 위에서 설명된 것과 같은 폴링 동작을 통하여 순환(cycle through)할 수 있다. 폴링 동작 후에, 이전의 최외측 에이전트는 새로운 외측 에이전트의 존재를 보고할 수 있다. 그 후 호스트는 새로운 에이전트의 존재를 검출하고 고속 리셋 명령을 발행하여 그 새로운 에이전트가 동작하게 하고 전체 채널을 리타이밍(retime)할 수 있다. 새로운 에이전트가 동작을 시작한 후에, 호스트는 시스템 펌웨어를 인터럽트하여 새로운 에이전트가 동작한다는 것을 보고할 수 있다. 이와 달리, 호스트는 시스템 펌웨어가 자신에게 새로운 에이전트가 동작하는지 판정하기 위한 질의를 하도록 기다릴 수도 있다. 그 후 시스템 펌웨어는, 그 에이전트가 메모리 모듈 또는 버퍼였다면 존재할 수 있는 새로운 메모리 디바이스 등의 새로운 에이전트들에 의해 제공된 임의의 새로운 하드웨어를 수용하도록 호스트를 구성할 수 있다.
본 발명의 원리에 따른 핫 제거 시퀀스는 사용자가 시스템에게 메모리 채널 상의 특정 에이전트가 제거될 것임을 알릴 때 시작될 수 있다. 시스템은 시스템 맵(system map)으로부터 대응하는 호스트 어드레스 범위(host address range)를 제거할 수 있다. 만일 시스템이 미러링을 이용한다면, 시스템은 그 호스트 어드레스 범위를 에이전트 미러들에 리매핑(remap)할 수 있다. 그 후 시스템은 그 호스트 어드레스 범위로부터의 데이터를 이미 미러링되지 않았다면 다른 로케이션들에 복사하거나 이동시킬 수 있다. 그 후 시스템은 모든 미처리 트랜잭션들(outstanding transactions)이 완료될 때까지 폴링할 수 있다. 그 후 시스템은 호스트로 하여금 제거될 에이전트의 바로 안쪽의 에이전트에게 이 에이전트가 자신이 채널 상의 최외측 에이전트라고 가정하게 하는 명령을 송신하게 하여, 그 에이전트로 하여금 후속의 고속 리셋 동안에 그것의 외측 포트를 디스에이블하고 최외측 에이전트의 기능들을 취하게 할 수 있다. (풀 리셋은 이 명령을 무효화(override)할 것이다.) 그 후 시스템은 선택된 에이전트 및 그 선택된 에이전트에 부착된 컴포넌트들에 대한 임의의 채널 인터페이스들을 셧 다운하기 위해 고속 리셋을 개시할 수 있다. 그 후 시스템은 그 선택된 에이전트로의 전력을 끊고 사용자에게 그 에이전트가 제거될 수 있음을 통지할 수 있다.
본 발명의 원리에 따른 핫 교체 시퀀스(hot replace sequence)는 위에서 설명된 핫 제거 시퀀스가 완료될 때 시작될 수 있다. 사용자는 제거된 에이전트 대신에 새로운 에이전트를 추가한 다음 시스템 펌웨어에게 새로운 에이전트가 추가되었음을 알릴 수 있다. 그 후 실행중인 시스템은 새로이 교체된 컴포넌트를 위한 호스트를 준비하고 그 새로운 컴포넌트에 전력을 공급할 수 있다. 그 후 시스템 펌웨어는 호스트로 하여금 이전의 최외측 에이전트에게 그것이 더 이상 자신이 최외측 에이전트라고 생각하지 않아야 한다는 점을 알리기 위한 명령을 송신하게 할 수 있다. 이로써 이전의 최외측 에이전트가 다음 리셋에 응답하여 그것의 외측 포트를 인에이블하고, 폴 명령을 기다릴 수 있게 된다. 그 후 펌웨어는 호스트에게 이전의 최외측 에이전트에게 폴 명령을 송신하도록 지시할 수 있고, 그런 다음 그 이전의 최외측 에이전트는 도 25를 참조하여 위에서 설명된 것과 같은 폴링 동작을 수행하여, 새로운 에이전트를 초기화할 수 있다. 그 후 이전의 최외측 에이전트는 새로운 외측 에이전트의 존재를 보고할 수 있다. 그 후 호스트는 새로운 에이전트의 존재를 검출하고, 그 새로운 에이전트가 동작하고 전체 채널을 리타이밍하도록 고속 리셋 명령을 발행할 수 있다. 새로운 에이전트가 동작을 시작한 후에, 호스트는 시스템 펌웨어를 인터럽트하여 그 새로운 에이전트가 동작한다는 것을 보고할 수 있다. 이와 달리, 호스트는 시스템 펌웨어가 자신에게 새로운 에이전트가 동작하는지를 판정하기 위한 질의를 하기를 기다릴 수도 있다.
여기에서 설명된 실시예들은, 본 발명 원리들을 벗어나지 않고 구성과 세부사항에 있어서 수정될 수 있다. 따라서, 그러한 변경 및 수정들은 다음 청구범위 안에 속하는 것으로 생각되어야 한다.

Claims (31)

  1. 복수의 비트 레인(bit lane)들을 갖는 재드라이브 회로;
    메모리 인터페이스; 및
    상기 복수의 비트 레인들과 상기 메모리 인터페이스 사이에 연결된 장애극복 회로(fail-over circuit)
    를 포함하는 메모리 버퍼.
  2. 제1항에 있어서,
    상기 장애극복 회로는 상기 재드라이브 회로로부터 분리되어 있는 메모리 버퍼.
  3. 제1항에 있어서,
    상기 복수의 비트 레인들과 상기 장애극복 회로 사이에 연결된 디스큐(deskew) 회로를 더 포함하는 메모리 버퍼.
  4. 제1항에 있어서,
    상기 장애극복 회로와 상기 메모리 인터페이스 사이에 연결된 디스큐 회로를 더 포함하는 메모리 버퍼.
  5. 제1항에 있어서,
    상기 장애극복 회로는 크로스바 스위치(crossbar switch)를 포함하는 메모리 버퍼.
  6. 제1항에 있어서,
    상기 장애극복 회로는 멀티플렉서를 포함하는 메모리 버퍼.
  7. 제1항에 있어서,
    상기 메모리 버퍼는 장애가 생긴 비트 레인을 검출할 수 있는 메모리 버퍼.
  8. 제1항에 있어서,
    상기 메모리 버퍼는 명령에 응답하여 장애가 생긴 비트 레인을 배제(map out)할 수 있는 메모리 버퍼.
  9. 복수의 비트 레인들을 가지는 재드라이브 회로;
    메모리 디바이스; 및
    상기 복수의 비트 레인 회로와 상기 메모리 디바이스 사이에 연결된 장애극복 회로
    를 포함하는 메모리 모듈.
  10. 제9항에 있어서,
    상기 메모리 모듈은 장애가 생긴 비트 레인을 검출할 수 있는 메모리 모듈.
  11. 제9항에 있어서,
    상기 메모리 모듈은 명령에 응답하여 장애가 생긴 비트 레인을 배제시킬 수 있는 메모리 모듈.
  12. 복수의 비트 레인들을 갖는 단방향 링크 인터페이스; 및
    상기 복수의 비트 레인들에 연결된 장애극복 회로를 포함하는 메모리 컨트롤러.
  13. 제12항에 있어서,
    상기 메모리 컨트롤러는 장애가 생긴 비트 레인을 검출할 수 있는 메모리 컨트롤러.
  14. 제12항에 있어서,
    상기 메모리 컨트롤러는 상기 복수의 비트 레인들 중 장애가 생긴 것을 배제하도록 에이전트에게 지시하는 명령을 발행할 수 있는 메모리 컨트롤러.
  15. 제1 에이전트
    제2 에이전트; 및
    상기 제1 및 제2 에이전트 사이에 연결된 복수의 비트 레인들을 갖는 단방향 링크;
    를 포함하고,
    상기 제1 에이전트는 상기 복수의 비트 레인들 상에서 하나 이상의 신호들을 재방향설정할 수 있는 메모리 시스템.
  16. 제15항에 있어서,
    상기 제2 에이전트는 상기 복수의 비트 레인들 상에서 하나 이상의 신호들을 재방향설정할 수 있는 메모리 시스템.
  17. 제15항에 있어서,
    상기 제1 에이전트는 장애극복 회로를 포함하는 메모리 시스템.
  18. 제15항에 있어서,
    상기 제1 에이전트는 장애가 생긴 비트 레인을 검출할 수 있는 메모리 시스템.
  19. 제15항에 있어서,
    상기 제1 에이전트는 명령에 응답하여 장애가 생긴 비트 레인을 배제할 수 있는 메모리 시스템.
  20. 복수의 비트 레인들 상에 신호들을 재드라이브하는 단계;
    상기 복수의 비트 레인들 및 메모리 인터페이스 사이에서 신호들을 연결시키는 단계; 및
    상기 복수의 비트 레인들 및 상기 메모리 인터페이스 사이에서 하나 이상의 신호들을 재방향설정하는 단계
    를 포함하는 메모리 에이전트를 구동하는 방법.
  21. 제20항에 있어서,
    장애가 생긴 비트 레인을 검출하는 단계를 더 포함하는 방법.
  22. 제20항에 있어서,
    하나 이상의 신호들을 재방향설정하는 단계는 명령에 응답하여 하나 이상의 신호들을 재방향설정하는 단계를 포함하는 방법.
  23. 복수의 비트 레인들을 갖는 제1 단방향 링크상으로 메모리 컨트롤러로부터의 신호들을 전송하는 단계;
    복수의 비트 레인들을 갖는 제2 단방향 링크상으로 상기 메모리 컨트롤러에서 신호들을 수신하는 단계; 및
    상기 단방향 링크들 중 하나의 상기 복수의 비트 레인들 상에서 하나 이상의 신호들을 재방향설정하는 단계를 포함하는 방법.
  24. 제23항에 있어서,
    상기 두 개의 단방향 링크들 모두의 상기 복수의 비트 레인들 상에서 하나 이상의 신호들을 재방향설정하는 단계를 더 포함하는 방법.
  25. 제23항에 있어서,
    장애가 생긴 비트 레인을 검출하는 단계를 더 포함하는 방법.
  26. 제23항에 있어서,
    장애가 생긴 비트 레인을 배제하도록 에이전트에게 지시하는 명령을 발행하는 단계를 더 포함하는 방법.
  27. 복수의 비트 레인들을 갖는 단방향 링크 상으로 제1 메모리 에이전트로부터 제2 메모리 에이전트로 신호들을 전송하는 단계; 및
    상기 복수의 비트 레인들 상에서 하나 이상의 신호들을 재방향설정하는 단계를 포함하는 방법.
  28. 제27항에 있어서,
    장애가 생긴 비트 레인을 검출하는 단계를 더 포함하는 방법.
  29. 제27항에 있어서,
    하나 이상의 신호들을 재방향설정하는 단계는 명령에 응답하여 하나 이상의 신호들을 재방향설정하는 단계를 포함하는 방법.
  30. 제27항에 있어서,
    하나 이상의 신호들을 재방향설정하는 단계는 장애가 생긴 비트 레인을 배제하는 단계를 포함하는 방법.
  31. 제30항에 있어서,
    장애가 생긴 비트 레인을 배제하는 단계는
    상기 장애가 생긴 비트 레인으로 의도된 신호를 상기 제1 메모리 에이전트 및 상기 제2 메모리 에이전트 양쪽에서 재방향설정하는 단계를 포함하는 방법.
KR1020057023351A 2003-06-05 2004-05-20 비트 레인 장애극복을 가지는 메모리 채널 KR100806446B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/456,353 US7386768B2 (en) 2003-06-05 2003-06-05 Memory channel with bit lane fail-over
US10/456,353 2003-06-05

Publications (2)

Publication Number Publication Date
KR20060023985A true KR20060023985A (ko) 2006-03-15
KR100806446B1 KR100806446B1 (ko) 2008-02-21

Family

ID=33490147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057023351A KR100806446B1 (ko) 2003-06-05 2004-05-20 비트 레인 장애극복을 가지는 메모리 채널

Country Status (7)

Country Link
US (7) US7386768B2 (ko)
EP (1) EP1629389A2 (ko)
JP (1) JP4519839B2 (ko)
KR (1) KR100806446B1 (ko)
CN (1) CN100511192C (ko)
TW (1) TWI246081B (ko)
WO (1) WO2004109526A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229840B1 (ko) * 2010-01-22 2013-02-05 후지쯔 가부시끼가이샤 수신 회로, 정보 처리 장치 및 버퍼 제어 방법

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643752B1 (en) 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7362697B2 (en) 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US8171331B2 (en) 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7386768B2 (en) 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
DE10344877B3 (de) * 2003-09-26 2004-12-30 Infineon Technologies Ag Vorrichtung zum Testen eines Speichermoduls
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7447953B2 (en) 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
DE102004026248A1 (de) * 2004-05-28 2005-12-29 Infineon Technologies Ag Halbleiter-Bauelement-Test-Verfahren, insbesondere für ein System mit mehreren jeweils ein Daten-Zwischenspeicher-Bauelement aufweisenden Modulen, sowie Test-Modul zur Verwendung bei einem derartigen Verfahren
DE102005015828A1 (de) * 2004-06-11 2006-01-05 Samsung Electronics Co., Ltd., Suwon Hub, Speichermodul, Speichersystem, sowie dazugehörige Schreib- und Leseverfahren
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
WO2006033945A2 (en) * 2004-09-16 2006-03-30 Mar-Rog Specialties, Inc. Spotlight mounted motion detector
US7366931B2 (en) 2004-12-30 2008-04-29 Intel Corporation Memory modules that receive clock information and are placed in a low power state
US7417883B2 (en) * 2004-12-30 2008-08-26 Intel Corporation I/O data interconnect reuse as repeater
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
EP2383661A1 (en) * 2005-04-21 2011-11-02 Violin Memory, Inc. Interconnection system
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7644347B2 (en) 2005-09-30 2010-01-05 Intel Corporation Silent data corruption mitigation using error correction code with embedded signaling fault detection
US7587625B2 (en) * 2006-02-16 2009-09-08 Intel Corporation Memory replay mechanism
US7353316B2 (en) 2006-03-24 2008-04-01 Micron Technology, Inc. System and method for re-routing signals between memory system components
DE102006045906A1 (de) * 2006-09-28 2008-04-17 Infineon Technologies Ag Modul mit einem Controller für eine Chipkarte
US8028186B2 (en) * 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US7797594B1 (en) * 2007-07-05 2010-09-14 Oracle America, Inc. Built-in self-test of 3-dimensional semiconductor memory arrays
US7624310B2 (en) * 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US8082482B2 (en) * 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US20100269021A1 (en) * 2007-09-05 2010-10-21 Gower Kevin C Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US7913128B2 (en) * 2007-11-23 2011-03-22 Mosaid Technologies Incorporated Data channel test apparatus and method thereof
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
JP5233415B2 (ja) * 2008-05-29 2013-07-10 富士通株式会社 エラー特定方法、データ処理装置、及び半導体装置
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8234540B2 (en) * 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8082474B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US8332729B2 (en) * 2008-09-29 2012-12-11 Oracle International Corporation System and method for automatic communication lane failover in a serial link
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
US20120030396A1 (en) * 2009-03-02 2012-02-02 Zhichun Zhu Decoupled Memory Modules: Building High-Bandwidth Memory Systems from Low-Speed Dynamic Random Access Memory Devices
US8539309B2 (en) * 2009-09-17 2013-09-17 International Business Machines Corporation System and method for responding to error detection
US8938589B2 (en) 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
WO2011094437A2 (en) 2010-01-28 2011-08-04 Hewlett-Packard Development Company, L.P. Memory access methods and apparatus
US8381059B2 (en) * 2010-02-17 2013-02-19 Micron Technology, Inc. Error correction and recovery in chained memory architectures
US9146867B2 (en) 2011-10-31 2015-09-29 Hewlett-Packard Development Company, L.P. Methods and apparatus to access memory using runtime characteristics
TWI529730B (zh) * 2013-03-01 2016-04-11 慧榮科技股份有限公司 資料儲存裝置與快閃記憶體控制方法
KR102076858B1 (ko) * 2013-12-24 2020-02-12 에스케이하이닉스 주식회사 반도체장치 및 이를 포함하는 반도체시스템
KR20150135004A (ko) 2014-05-23 2015-12-02 삼성전자주식회사 어드레스 미러링 기능을 갖는 메모리 모듈
US10459660B2 (en) 2014-11-20 2019-10-29 Rambus Inc. Memory systems, modules, and methods for improved capacity
US9692589B2 (en) 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10621119B2 (en) * 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol
US9818457B1 (en) 2016-09-30 2017-11-14 Intel Corporation Extended platform with additional memory module slots per CPU socket
US10216657B2 (en) 2016-09-30 2019-02-26 Intel Corporation Extended platform with additional memory module slots per CPU socket and configured for increased performance
US11023405B2 (en) * 2018-09-11 2021-06-01 Rockley Photonics Limited Daisy chain control network with data generators and token-forwarding connections
KR20220052018A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 스토리지 시스템
US20230401169A1 (en) * 2022-06-10 2023-12-14 Chain Reaction Ltd. Cryptocurrency miner and device enumeration

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112287A (en) 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
DE69519426T2 (de) 1994-03-22 2001-06-21 Hyperchip Inc Zellenbasierte fehlertolerante Architektur mit vorteilhafter Verwendung der nicht-zugeteilten redundanten Zellen
US6408402B1 (en) 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
US6154826A (en) 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US5867422A (en) 1995-08-08 1999-02-02 University Of South Florida Computer memory chip with field programmable memory cell arrays (fpmcas), and method of configuring
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6006318A (en) 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US5860080A (en) 1996-03-19 1999-01-12 Apple Computer, Inc. Multicasting system for selecting a group of memory devices for operation
US6125419A (en) 1996-06-13 2000-09-26 Hitachi, Ltd. Bus system, printed circuit board, signal transmission line, series circuit and memory module
US6092229A (en) 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
JP3455040B2 (ja) 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
US5991891A (en) * 1996-12-23 1999-11-23 Lsi Logic Corporation Method and apparatus for providing loop coherency
JP3127853B2 (ja) 1997-04-30 2001-01-29 日本電気株式会社 メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
US5898863A (en) 1997-06-03 1999-04-27 Emc Corporation Method and apparatus for determining I/O size distribution of an input/output system and its use for load simulation
AU1798999A (en) 1997-12-05 1999-06-28 Intel Corporation Memory system including a memory module having a memory module controller
US6970968B1 (en) 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US6968419B1 (en) 1998-02-13 2005-11-22 Intel Corporation Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
US6160423A (en) 1998-03-16 2000-12-12 Jazio, Inc. High speed source synchronous signaling for interfacing VLSI CMOS circuits to transmission lines
US6327205B1 (en) 1998-03-16 2001-12-04 Jazio, Inc. Signal latching of high bandwidth DRAM arrays when skew between different components is higher than signal rate
ID26398A (id) 1998-03-16 2000-12-21 Jazio Inc Pensinyalan kecepatan tinggi untuk antar-muka sirkuit vlsi cmos
US6173382B1 (en) * 1998-04-28 2001-01-09 International Business Machines Corporation Dynamic configuration of memory module using modified presence detect data
US6505305B1 (en) * 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US7100071B2 (en) * 1998-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for allocating fail-over memory
US6347350B1 (en) * 1998-12-22 2002-02-12 Intel Corporation Driving the last inbound signal on a line in a bus with a termination
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
JP2000222294A (ja) 1999-01-29 2000-08-11 Toshiba Corp 計算機システム及びバス障害回復方法
US6643752B1 (en) 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6571355B1 (en) * 1999-12-29 2003-05-27 Emc Corporation Fibre channel data storage system fail-over mechanism
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6640282B2 (en) * 2000-01-25 2003-10-28 Hewlett-Packard Development Company, L.P. Hot replace power control sequence logic
US6785785B2 (en) * 2000-01-25 2004-08-31 Hewlett-Packard Development Company, L.P. Method for supporting multi-level stripping of non-homogeneous memory to maximize concurrency
US6961347B1 (en) * 2000-06-20 2005-11-01 Hewlett-Packard Development Company, L.P. High-speed interconnection link having automated lane reordering
US6316980B1 (en) * 2000-06-30 2001-11-13 Intel Corporation Calibrating data strobe signal using adjustable delays with feedback
US6487102B1 (en) 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
US6317352B1 (en) * 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US6449213B1 (en) 2000-09-18 2002-09-10 Intel Corporation Memory interface having source-synchronous command/address signaling
US6369605B1 (en) 2000-09-18 2002-04-09 Intel Corporation Self-terminated driver to prevent signal reflections of transmissions between electronic devices
US6625687B1 (en) 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6687780B1 (en) * 2000-11-02 2004-02-03 Rambus Inc. Expandable slave device system
US6493250B2 (en) 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
TW594775B (en) * 2001-06-04 2004-06-21 Toshiba Corp Semiconductor memory device
US6543073B2 (en) * 2001-08-27 2003-04-08 Hsin-Tsai Wu Inflation seat assembly for an inflatable article
US6871294B2 (en) 2001-09-25 2005-03-22 Sun Microsystems, Inc. Dynamically reconfigurable interconnection
US6898728B2 (en) * 2001-09-25 2005-05-24 Sun Microsystems, Inc. System domain targeted, configurable interconnection
US7394823B2 (en) * 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
KR100448709B1 (ko) 2001-11-29 2004-09-13 삼성전자주식회사 데이터 버스 시스템 및 그 제어방법
JP2004127147A (ja) * 2002-10-07 2004-04-22 Hitachi Ltd デスキュー回路およびそれを用いたディスクアレイ制御装置
US7362697B2 (en) * 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7194581B2 (en) 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7200787B2 (en) 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US7127629B2 (en) 2003-06-03 2006-10-24 Intel Corporation Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
US7340537B2 (en) 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7165153B2 (en) 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US8171331B2 (en) 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7219294B2 (en) 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US7143207B2 (en) 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
US7447953B2 (en) 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
US7212423B2 (en) 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US20050268061A1 (en) 2004-05-31 2005-12-01 Vogt Pete D Memory channel with frame misalignment
US20060004953A1 (en) 2004-06-30 2006-01-05 Vogt Pete D Method and apparatus for increased memory bandwidth
US7383399B2 (en) 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229840B1 (ko) * 2010-01-22 2013-02-05 후지쯔 가부시끼가이샤 수신 회로, 정보 처리 장치 및 버퍼 제어 방법

Also Published As

Publication number Publication date
US20110131370A1 (en) 2011-06-02
US20100281315A1 (en) 2010-11-04
WO2004109526A2 (en) 2004-12-16
JP4519839B2 (ja) 2010-08-04
US20130097371A1 (en) 2013-04-18
WO2004109526A3 (en) 2005-04-14
EP1629389A2 (en) 2006-03-01
TW200502955A (en) 2005-01-16
US7386768B2 (en) 2008-06-10
KR100806446B1 (ko) 2008-02-21
US20120331356A1 (en) 2012-12-27
US20090013211A1 (en) 2009-01-08
US8135999B2 (en) 2012-03-13
US8489944B2 (en) 2013-07-16
CN100511192C (zh) 2009-07-08
US7761753B2 (en) 2010-07-20
TWI246081B (en) 2005-12-21
US8286039B2 (en) 2012-10-09
US8510612B2 (en) 2013-08-13
US8020056B2 (en) 2011-09-13
US20040250181A1 (en) 2004-12-09
JP2006526849A (ja) 2006-11-24
US20120102256A1 (en) 2012-04-26
CN1799035A (zh) 2006-07-05

Similar Documents

Publication Publication Date Title
KR100806446B1 (ko) 비트 레인 장애극복을 가지는 메모리 채널
KR100806447B1 (ko) 단방향 링크를 가지는 메모리 채널
KR100806445B1 (ko) 핫 추가/제거 기능을 갖춘 메모리 채널
US9335373B2 (en) Memory channel having deskew separate from redrive
KR100896982B1 (ko) 치환 상태 패턴을 이용하는 메모리 채널
US7127629B2 (en) Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
US7516349B2 (en) Synchronized memory channels with unidirectional links
US7340537B2 (en) Memory channel with redundant presence detect

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130212

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 13