KR101132321B1 - 중간동기식 데이터 버스 장치 및 데이터 전송 방법 - Google Patents

중간동기식 데이터 버스 장치 및 데이터 전송 방법 Download PDF

Info

Publication number
KR101132321B1
KR101132321B1 KR1020107009902A KR20107009902A KR101132321B1 KR 101132321 B1 KR101132321 B1 KR 101132321B1 KR 1020107009902 A KR1020107009902 A KR 1020107009902A KR 20107009902 A KR20107009902 A KR 20107009902A KR 101132321 B1 KR101132321 B1 KR 101132321B1
Authority
KR
South Korea
Prior art keywords
data
clock
node
character
memory
Prior art date
Application number
KR1020107009902A
Other languages
English (en)
Other versions
KR20100098596A (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 KR20100098596A publication Critical patent/KR20100098596A/ko
Application granted granted Critical
Publication of KR101132321B1 publication Critical patent/KR101132321B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

메모리 모듈 사이의 데이터의 전송 시간은 메모리 시스템에서의 특정 포인트 사이의 전체 시간 지연이 일정하게 유지되도록 관리되는, 메모리 시스템을 설명한다. 멀티레인 버스의 각각의 레인은 개별적으로 관리될 수 있고, 중간 모듈에서 디스큐(deskew)에 대한 요구 없이, 데이터 프레임은 목적지 모듈에서 평가될 수 있다. 데이터를 라우팅하기 위해 스위치를 가질 수 있는, 모듈을 통해 데이터의 전파에서의 시간 지연은 버스 직렬 데이터 레이트의 하나 이상의 약수로 모듈을 통해 데이터 경로를 동작하고, 온도 변화 또는 노화 때문에 시간 지연에서의 변화가 수용되도록 수신된 데이터의 샘플링 포인트를 선택함으로써 감소된다.

Description

중간동기식 데이터 버스 장치 및 데이터 전송 방법{Mesosynchronous data bus apparatus and method of data transmission}
본 발명은 메모리 시스템에서 분산 클록의 관리에 관한 것이다.
컴퓨터 시스템에 있어, 중앙 처리 장치(central processor: CPU)는 메모리 시스템에 저장되어 있는 프로그램 정보 및 데이터에 접근한다. 설계 위상 동안 컴퓨터 시스템 설계자가 선택하는 크기, 속도, 및 성능면에서 메모리 시스템이 계층이 존재하며, 이는 예를 들어, 캐시 메모리, 주 메모리 및 보조 메모리를 포함할 수 있다. 캐시 메모리는 낮은 레이턴시, 높은 대역폭 및 비트당 높은 비용에 의해 특징지어지고, CPU로 통합될 수 있다. 캐시 메모리는 반도체 장치일 수 있으며 예를 들어 SRAM(static random access memory)일 수 있다. 또한 반도체 기술이고, 전형적으로 DRAM(dynamic random access memory)의 형태인 주 메모리는 덜 자주 액세스된 데이터 및 프로그램 데이터를 위해 사용된다. 현재, 개인 컴퓨터는 약 4GB의 DRAM 까지 가질 수 있는 반면, 하이-엔드(high-end) 서버는 약 16 GB 이상의 DRAM을 가질 수 있다. 복수의 메모리 제어기 및 컴퓨터 코어를 사용하는 것과 같은 전략은 이와 같은 메모리의 더 많은 양으로의 액세스를 제공할 수 있다; 그러나, 컴퓨터 버스 시스템의 대부분은 전파 시간, 버스 부하(loading), 전력 소도 등에 기인한 실제적 상한을 가진다. 더 많은 양의 데이터는 대용량 기억장치에 저장될 수 있다. 예를 들어, 단일 디스크는 테라바이트(TB)의 메모리를 포함할 수 있고, (때때로 고체 상태 드라이브(SSD)라 불리는) FLASH 메모리 디스크 자기 디스크, 및 디스크의 클로스터가 사용될 수 있다. 자기 디스크 상에 저장된 데이터에 대한 액세스 시간은 주 메모리에 저장된 데이터에 대한 액세스 시간보다 충분히 길다.
많은 양의 DRAM 또는 FLASH와 같은 다른 메모리는 2006년 4월 17일에 출원된, 미국 특허 출원 제 11/405,083호에 설명되어 있는 바와 같은 메모리 응용으로 제공될 수 있다. 큰 메모리 어레이가 통상적인 주 메모리의 것에 접근하는 레이턴시를 가진다면, 이와 같은 메모리 어레이는 주 메모리와 유사한 것으로 고려될 수 있고 회전 디스크 미디어와 같은, 대용량 기억장치에 다른 방식으로 저장되는 많은 양의 데이터로의 빠른 접근을 제공할 수 있다.
데이터는 버스로 공지된 경로 상의 중앙 처리기와 다른 장치와 메모리 사이에 이동되고, 이는 예로서, 병렬, 직렬, 점대점(point-to-point), 데이지 체인식(daisy chained), 또는 멀티-스터브(multi-stub)를 포함하는, 다양한 구조를 가질 수 있다.
데이터 버스는 데이터의 송신 및 수신에 대한 클록 주파수가 시스템에서 모든 점에서 동일하다면 동기 방식으로 동작될 수 있고, 공지된 위상 관계는 데이터가 감지되는(예를 들어 수신되는) 각 점에서 데이터 비트들 사이에 존재한다. 그러나, 2 개의 인접한 노드 사이의 병렬 버스에서 데이터의 전송을 고려하면, 시간-지연 스큐(skew)에 따라, 다른 라인에서의 데이터 비트의 위상 관계는 변한다. 저속의 데이터 전송에서, 그리고 짧은 버스 길이에 대해, 이는 용인될 수 있지만, 그러나, 고속의 데이터 송신에서, 데이터 비트는 시스템 클록에 대한 바뀌는 위상 관계로 수신될 수 있고, 하나의 클록 간격 이상 만큼 지연될 수 있어, 오류를 가져오거나 또는 각각의 메모리 노드에서 전형적으로, 디-스큐(de-skewing) 및 위상 정렬을 필요로 한다.
이 문제는 각각의 라인 상에 클록 및 데이터를 송신하고, 하나의 노드에서의 각각이 채널에 대한 클록을 복구함으로써 완화될 수 있다. 이 클록은 라인에서 라인으로의 시스템 클록에 대한 시간 지연에서 다를 수 있다. 또한, 클록이 데이터를 따라 전송되는 경우, 데이터의 전송, 또는 적어도 유휴 데이터 패턴은 각각의 라인에 대한 클록의 동기화를 유지하도록 요구될 수 있다.
대안으로는, 데이터는 버퍼에서의 각각의 라인에 대한 데이터를 축적하고, 데이터 스큐를 보상하도록 요구된 시간 지연 조절을 결정하고, 그리고 데이터 상의 액션 전에 각각의 노드에 수신된 데이터를 재구성함으로써 각각의 노드에서 복구될 수 있다.(워드 데이터가 정보와 마찬가지로 판독 또는 기록 등과 같은 인밴드 명령(in-band command)을 포함한다고 이해되고, 이는 메모리로 기록되거나 또는 이로부터 판독되려는 명령어(instruction)를 포함할 수 있다.) 스큐-보상을 조절하기 위해, 버퍼링되어야 하는 데이터의 양은 버스를 따라 축적할 수 있는 스큐의 클록 사이클의 개수에 달할 수 있다. 버스의 하나의 단에서 다른 단으로의 데이터 전송에서의 전체 지연은 데이터 경로를 따라 노드대노드(node-to-node) 스큐 값의 각각의 최대 스큐의 합이다. 이러한 유형의 버스의 예는 JEDEC 표준의 주제인 FB-DIMM(fully-buffered DIMM)이다.
버스는 또한 데이터가 (메모리 제어기와 같은) 송신단으로부터 전송되고 타겟 메모리 모듈, 예를 들어 선현 버스를 따른 3번째의 메모리 모듈에서 수신되는 멀티-드롭(multi-drop) 버스로 동작할 수 있다. 모듈은 당해 기술에 공지된 바와 같이, DIMM(dual in line memory module)일 수 있고, 최대 전체 스큐는 가장 긴 전송 지연을 가지는 특정 버스 라인의 것과 동일할 수 있다. 전송 지연은 개별 데이터 라인에 대한 트레이스 길에서의 차로부터 발생하며, 전송 길이에서의 차는 메모리 모듈을 포함하는 회로 카드 상의 트레이스 뿐만아니라 마더 보드 상의 트레이스를 포함할 수 있다.
미국 출원 제 11/405,083에 설명된 바와 같이, 예를 들어, 직렬 점대점 방식, 또는 분기 방식으로 동작하는 버스의 라인 사이의 스큐의 영향은, 통신 노드들 사이의 각각이 버스 라인에서 경험된 스큐의 양에 따라, 특정 버스 라인으로 데이터 레인의 논리 할당을 적절히 교환함으로써 완화될 수 있어, 버스의 의도된 수신단에서의 노드에서, 스큐는 최소화되고, 공지되거나 또는 제어된다. 이와 같이, 데이터에 영향을 줄 수 있는 수신 노드에서 스큐 보상을 위해 요구된 보정의 양이 감소될 수 있고, 장치 복잡성 및 전력 소모에서의 감소를 수반한다.
본 발명의 내용에 포함되어 있음.
제 1 노드 및 제 1 노드와 통신하는 제 2 노드를 포함하는 상호연결 시스템이 개시되어 있다. 제 1 클록은 제 1 노드 및 제 2 노드에 제공되어 있고; 제 2 클록은 제 1 클록의 제 1 배수 또는 약수(integral relationship)이고, 제 1 클록을 참고하여 발생되고, 제 1 노드의 출력과 제 2 노드의 출력 사이의 비트의 전송 시간이 실질적으로 일정하게 유지되도록 조절된 제 1 클록에 대하여 시간 지연 오프셋을 가진다.
데이터 버스에 의해 연결가능한 적어도 2 개의 모듈을 포함하는 데이터 전송 시스템이 개시되어 있다. 모듈은 직렬 데이터를 송신하기 위한 송신기, 및 직렬 데이터를 수신하기 위한 수신기를 가진다. 모듈은 공통 클록으로부터의 신호가 공급되며, 공통 클록으로부터 유도된 각각의 모듈 상의 내부 클록을 생성하는 클록 발생기를 가진다. 클록 데이터 복구 회로는 직렬 데이터 신호의 비트와 동기화를 유지하는 수신된 데이터 클록을 생성하며, 정렬 버퍼는 직렬 데이터 비트와 내부 클록 사이의 동기화를 설정하고 유지하도록 동작가능하다. 스위치는 외부 포트 또는 내부 포트 중 하나로 수신된 직렬 데이터를 라우팅하도록 동작가능하다. 모듈은 복수의 외부 및 내부 포트를 가질 수 있다.
또다른 태양에서, 메모리 시스템은 링크로 연결되어 있는 복수의 모듈을 포함하고, 적어도 하나의 모듈은 데이터 메모리를 가진다. 시스템 클록은 적어도 2 개의 모듈로 분배되고, 모듈 사이에서 전송되는 데이터의 데이터 클록 레이트는 시스템 클록에 완전히 관련된다. 모듈 상의 버퍼는 수신된 데이터 문자의 비트 위치와 이전에 설정된 비트 위치 사이의 동기화를 유지하도록 동작가능하다.
또다른 태양에서, 데이터 인터페이스는 클록 데이터 복구 회로; 클록 위상 정렬 버퍼, 및 데이터 송신 회로를 포함한다. 클록 데이터 복구 회로는 데이터 송신 회로에서 사용된 클록과 동일한 주파수를 가지는 클록을 복구하고, 위상 정렬 회로는 데이터의 도달 시간(time of arrival)에서 변화를 보상한다.
또다른 태양에서, 메모리 모듈은 데이터 수신기, 데이터 복구 회로, 라우팅 스위치, 메모리 인터페이스 및 데이터 송신기를 가진다. 클록 데이터 복구 회로는 데이터 송신 회로에 사용된 클록과 동일한 주파수를 가지는 클록을 복구하고, 위상 정렬 버퍼 회로는 데이터의 도달 시간을 보상한다.
또다른 태양에서, 상호연결 시스템의 노드는 데이터 수신 회로; 데이터 송신 회로; 데이터 수신회로와 데이터 송신회로를 연결하는 스위치를 포함한다. 회로는 복수의 비트를 가지는 수신된 문자의 제 1 비트와 고정 관계에서 샘플링 시간을 유지하도록 동작가능하고; 입력 데이터 버퍼는 재샘플링된 비트와 또다른 모듈에 의해 송신된 대응하는 비트 사이에서 측정된 전체 시간 지연이 실질적으로 일정하게 유지되도록 제 1 비트를 재샘플링하도록 구성된다.
적어도 2 개의 모듈을 제공하는 단계를 포함하는, 모듈 사이의 데이터의 송신 방법이 개시되어 있고, 모듈은 수신기, 송신기, 클록 데이터 복구 회로, 위상 정렬 버퍼, 및 라우팅 스위치를 포함한다. 모듈은 라인에 의해 연결가능하다. 데이터의 프레임의 문자는 제 1 라인으로 할당된다. 송신된 문자와 문자의 수신 사이의 시간 지연이 변하는 경우 문자의 제 1 비트가 문자의 제 1 비트의 샘플링의 정렬을 유지하도록 샘플링되도록 이의 수신단에서 제 1 라인은 초기화된다.
또다른 태양에서, 시스템이 서로 통신하는 복수의 노드를 포함하는, 상호연결 시스템의 관리 방법이 설명되어 있다. 상기 방법은 제 1 노드로부터 제 2 노드로 복수의 비트를 포함하는 데이터의 문자를 송신하는 단계; 제 2 노드에서 문자를 수신하는 단계; 수신된 데이터로부터 클록을 복구하고 문자의 제 1 비트로 샘플링 시간을 정렬하는 단계; 및 클록 주파수의 약수로 샘플링된 데이터를 재샘플링하고 송신된 데이터와 재샘플링된 데이터 사이의 전체 시간 지연이 실질적으로 일정하도록 재샘플링 클록의 위상 또는 시간 지연을 조절하는 단계를 포함한다.
본 발명의 내용에 포함되어 있음.
도 1은 메모리 모듈을 가지는 컴퓨터 시스템에 관한 블록도이다;
도 2a, 2b는 실시예의 논리적 및 물리적 태양에 관한 명명 규칙(naming convention)을 설명한다;
도 3은 메모리 모듈의 간단한 블록도이다;
도 4는 도 3의 메모리 모듈의 더 상세한 블록도이다;
도 5는 병렬화기(deserializer) 회로의 입력 및 출력에서 데이터 비트의 논리 배열에 관한 예를 나타낸다;
도 6은 메모리 모듈의 스위치에서 기능 소자의 배열을 나타낸다;
도 7a, 7b는 중간동기식 동작과 관련한 타이밍 체계를 나타낸다.
예시적인 실시예는 도면을 참고로 하여 더 잘 이해될 수 있지만, 그러나 이들 예는 본 발명을 제한하는 성질을 가지는 것으로 의도되어 있지 않다. 동일하거나 또는 다른 도면에서 동일한 번호의 소자는 동등한 기능을 수행한다. 소자들은 두문자에 의해 표기되거나 또는 번호가 매겨질 수 있고, 둘다 가능하며, 표현에서의 선택은 단지 명료함을 위해 이루어져, 번호에 의해 표시된 소자, 및 두문자 또는 알파벳 표시자에 의해 표기된 동일한 소자는 이를 기초로 구별되지 않는다.
도면에 설명된 방법 및 도시된 장치가 기계-실행가능 명령어, 예를 들어 소프트웨어, 또는 하드웨어, 또는 이들의 조합에서 구성되거나 또는 구현될 수 있음을 당업자는 이해할 것이다. 명령어는 설명된 동작을 수행하기 위해 명령어로 프로그램되어 있는, 디지털 프로세서 등을 야기하는데 사용될 수 있다. 대안으로는, 동작은 설명된 동작을 수행하기 위해 하드배선 논리(hardwired logic) 및 펌웨어 명령어를 포함하는 특정 하드웨어 구성요소에 의해, 또는 아날로그 회로를 포함할 수 있는, 프로그램된 컴퓨터 구성요소와 사용자지정(custom) 하드웨어 구성요소의 임의 조합에 의해 수행될 수 있다. 예로서, 마이크로프로세서, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)가 사용될 수 있다. 이와 같은 회로는 임의 필수 명령어 또는 데이터를 저장하기 위해 통합 또는 연관 메모리를 가질 수 있다.
방법을 수행하기 위해 컴퓨터(또는 다른 전자 장치)를 프로그램하는데 사용될 수 있는 저장된 명령어를 가지는 기계-판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품으로서, 방법이 적어도 부분적으로 제공될 수 있다. 본 명세서를 위해, "기계-판독가능 매체"란 용어는 컴퓨팅 기계 또는 특수 목적 하드웨어에 의해 실행을 위해 데이터 또는 명령어의 시퀀스를 저장하거나 또는 인코딩할 수 있고, 기계 또는 특수 목적 하드웨어가 본 발명의 기능 또는 방법론 중 임의 하나를 수행하도록 하는 임의 매체를 포함하도록 되어 있다. "기계 판독가능 매체"란 용어는 따라서 고체 상태 메모리, 광 디스크 및 자기 디스크, 자기 메모리, 광 메모리 및 반송파 신호를 포함하지만, 이에 제한되지 않는다. 반송파 신호란 용어는 그 위에 도입된 명령어 또는 데이터를 가지는 전기 신호가 방사되거나 또는 전도되든지 간에, 이와 같은 신호를 발생하거나 또는 수신하기 위해 필요한 명령어 및 전자장치(electronics)를 포함하는 것으로 이해된다.
예를 들어, 기계 판독가능 매체는 ROM(read only memory); 모든 유형의 RAM(random access memory)(예를 들어, SRAM, DRAM); PROM(programmable read only memory); EPROM(electronically alterable read only memory); 자기 랜덤 액세스 메모리; 자기 디스크 저장 미디어; 플래시 메모리 및 전기, 광, 음향 또는 다른 형태의 신호를 사용하는 전송을 포함하지만, 그러나 이에 제한되지 않는다.
또한, 액션을 취하거나 또는 결과를 야기함에 따라, 하나의 형태 또는 다른 형태로(예를 들어, 프로그램, 절차, 과정, 응용, 모듈, 알고리즘 또는 논리), 소프트웨어를 언급하는 것은 당해 기술에 있어 통상적이다. 이와 같은 표현은 당업자에게 공지되어 있는 바와 같이, 컴퓨터 또는 동등한 장치에 의한 소프트웨어의 실행이 컴퓨터 또는 동등한 장치의 프로세서가 액션을 수행하거나 또는 결과를 발생하도록 하는 것을 말하는 단지 통상적인 방법이다.
구체적 예를 설명하는 경우, 예는 구체적 특징, 구조 또는 특성을 포함할 수 있지만, 그러나 모든 예가 반드시 구체적 특징, 구조 또는 특성을 포함하지 않을 수 있다. 이는 2 개 이상의 예의 특징, 구조 또는 특성의 일부가 조합되어서는 안되거나 또는 조합될 수 없다는 제안 또는 암시로서, 이와 같은 조합이 명시적으로 배제되어 있는 경우를 제외하고는, 취해져서는 안된다. 구체적 특징, 구조 또는 특성이 예와 관련하여 설명되는 경우, 당업자는 명시적으로 설명되던지 아니던지간에, 다른 예와 관련하여 이와 같은 특징, 구조 또는 특성을 실행할 수 있다.
명료함을 위해, 본 발명에 개시된 이행의 모든 통상적 특징 모두가 설명되어 있지 않다. 이와 같은 임의 실제 이행의 개발에 있어, 수많은 이행-특정(implementation specific) 결정이 시스템 및 비지니스 관련 제약과의 호환성과 같은, 개발자의 특정 목표를 달성하기 위해 이루어져야 하고, 이들 목표가 하아의 이행에서 또다른 이행으로 변할 것임을 물론 이해할 것이다. 또한, 이와 같은 개발 노력이 복잡하고 시간 소모적일 수 있지만, 그러나 그럼에도 불구하고 본 발명의 이점을 가지는, 당업자를 위한 엔지니어링의 통상적 업무임을 이해할 것이다.
본 발명에 설명된 바와 같이, 메모리 모듈 커넥터 인터페이스와 같은 커넥터 또는 커넥터 인터페이스는 메일(male) 커넥터 또는 인터페이스가 피메일(female) 커넥터 또는 인터페이스와 맞물리는 물리적으로 별개의 인터페이스에 제한되지 않는다. 커넥터 인터페이스는 또한 메모리 회로로부터의 연결, 솔더볼(solder ball) 또는 리드(lead)가 또다른 메모리 회로 또는 회로 보드에 전기적으로 연결되어 있는 인터페이스와 같은 물리적 인터페이스 또는 연결부의 임의 유형을 포함할 수 있다. 예를 들어, 적층형 다이 접근법에서, 다수의 집적 회로 다이(예를 들어, 메모리 장치, 또는 버퍼 장치 등)는 볼 그리드 어레이(ball grid array) 또는 다른 유형의 커넥터 인터페이스를 통해 메모리 모듈, 메모리 제어기 또는 프로세서에 베이스 및 인터페이스를 형성하는 기판을 가지고 서로 겹쳐 적층될 수 있다. 또다른 예로서, 메모리 장치 및 버퍼 장치는 물리적으로 분리가능한 소켓 유형 커넥터 인터페이스 또는 볼 그리드 어레이 유형 커넥터 인터페이스 중 하나를 통해 메모리 제어기로 인터페이스 및 가요성 테이프 상호연결을 통해 상호연결될 수 있다. 연결 유형은 기판상의, 기판들 사이에서, 인쇄 회로 보드 상의 상호연결 컨덕터, 또는 집적 회로 칩 사이의 인터페이스를 포함할 수 있다.
비록 예들이 컴퓨터 시스템에서의 메모리 모듈과 관련하여 설명되어 있더라도, 이와 같은 국부적 시스템으로 본 출원의 범위를 제한하는 것으로 의도되어 있는 것이 아니다. 본 발명에 설명된 장치 및 기술은 모듈이 물리적으로 분리되어 있고, 무선 기술 등을 사용하는 데이터 전송 기술이 전체 또는 부분적으로 사용될 수 있는 데이터 통신 시스템에 사용될 수 있다. 마찬가지로, 복수의 메모리 모듈은 상호연결을 사이에 포함하는, 공통 기판상에서 제작되거나 또는 조립될 수 있다. 물리적 구현의 선택은 제품이 설계되는 시간에서 엔지니어링 및 경제적 고려사항에 좌우된다.
도 1 및 2는 설명된 예에서 사용될 수 있는 심볼 및 용어를 식별하도록 제공되어 있다. 이는 편의성, 명료성, 일관성 및 간결성을 위해 행해지며, 당업자는 다양한 동등한 용어가 사용될 수 있음을 인지할 것이다. 그러나, 본 발명에서 제공된 설명을 위해, 설명된 용어는 구체적으로 기재되어 있는 경우를 제외하고 사용될 것이다. 이는 동등한 개념을 설명하는 장래에 사용될 수 있는 용어, 또는 동일하다고 적용된 용어를 배제하거나 또는 구별하는 것으로 의도되어 있지 않다.
도 1은 CPU(central processing unit), MC(memory controller), 및 MM(memory module) 및 SYSC(system clock)를 포함하는 시스템에 관한 예를 나타낸다. 또한 제공될 수 있는, 외부 인터페이스, 대용량 저장장치, 디스플레이, 및 전원 등과 같은 컴퓨터의 다른 태양은 도시되어 있지 않다. 도 1에 도시되지 않은, 캐시 메모리, 디스크 저장 메모리, 테이프 메모리 및 다른 형태의 저장장치에 추가로, 시스템은 프로그램에 의해 조정되거나 또는 사용되기 위해 프로그램 명령어 및 데이터에 빠른 액세스를 위해 부착된 RAM 및 FLASH와 같은 휘발성 및 비휘발성 메모리를 가질 수 있다. 이 메모리는 메모리 제어기(MC)에 의해 CPU로 연결될 수 있고 복수의 메모리 모듈(MM)을 포함할 수 있다.
메모리 모듈은 복수의 전기 연결, 인쇄 배선 연결, 또는 라인에 의해 메모리 제어기 및 서로 연결될 수 있고, 이는 버스, 라인 또는 채널이라 총체적으로 불린다. 이 예에서, 몇 메모리 모듈(MM)은 MM1에서 MM2와 같이, 직렬로 연결되는 것으로 도시되고, 몇 MM은 MM2에서 MM3 및 MM4와 같이, 분기 배열로 연결된다.
중간동기식 시스템에서, 시스템 클록(SYSC)은 한 그룹의 모듈의 복수의 모듈이 공통 주파수의 클록원(clock source)으로의 액세스를 가질 수 있도록 도메인에서 모듈(예를 들어, MM)에 분배된다. SYSC 클록 주파수의 곱 또는 약수일 수 있는 다양한 클록 주파수가 SYSC로부터 유도될 수 있다. 이와 같이, SYSC 클록 주파수의 특정 곱 또는 약수의 시스템에 걸친 클록은 동일 주파수를 가지지만, 그러나 서로 시간 또는 위상 오프셋에서 다를 수 있다. 이 오프셋은 위상 오프셋으로서, 또는 클록 주기(clock period)의 분수로 설명될 수 있고, 위상의 0, 90, 180, 270 도는 클록 주기의 0.0, 0.25, 0.5, 및 0.75에 대응한다. 오프셋은 온도 또는 회로 노화 때문에 시간에 대해 매우 느리게 변할 수 있다. 느리게란 의미는 보상 또는 정렬에서의 변화를 요구할 수 있는 오프셋에서의 충분한 변화가 발생하기 전에 다수의 문자(character)가 전송될 수 있음을 의미하는 것으로 이해될 것이다.
데이터의 전체 클록 레이트가 복수의 모듈 상에서, 동일하거나, 또는 동일한 클록과 관련되기 때문에, 패딩 문자는 다른 모듈 상에서의 클록들 사이의 차를 보상할 필요가 없다. 마찬가지로 프레임 단위(frame-by-frame) 기초로 동기식 문자의 사용을 피할 수 있다. 또다른 태양에서, 클록 레이트가 복수의 모듈에서 동일하기 때문에, 프리앰블(preamble) 또는 데이터 전송에서의 갭을 피할 수 있다.
데이터는 조정될 수 있고 계산은 동작의 타이밍에 대한 다양한 클록을 사용하여 수행될 수 있으며, 동작이 예를 들어, 클록 신호의 상승 에지에서 수행될 수 있거나 또는 클록 신호의 상승 및 하강 에지 모두 상에서 수행될 수 있음이 공지되어 있다. 동작의 후자의 유형은 보통 이중 데이터 레이트(DDR) 클록킹이라 불린다. 표현의 간단함을 위해, 상승-에지 클록 동작의 면에서 논의되었고, 당업자는 이중 데이터 레이트 클록킹 등이 수행되는 시스템에 대한 응용을 이해할 것이다. 다른 클록킹 방식이 공지되어 있고 사용될 수 있다.
도 2는 예를 들어, 2 개의 메모리 모듈(MM)일 수 있는, 2 개의 장치 사이의, 연결 또는 버스의 설명에 사용된 규약을 정의한다. 데이터는 업스트림(upstream) 또는 다운스트림(downstream) 방향으로 흐른다고 할 수 있으며, 업스트림은 메모리 제어기(MC) 또는 CPU 와 같은, 관리 인터페이스를 가지는 채널의 끝을 향하는 것으로 통상적으로 정의되고, 다운스트림은 반대 방향이다. 버스는 업스티림의 방향이 다운스트림의 방향이 되도록 재구성될 수 있다. 북향(northbound) 및 남향(southbound)과 같은 다른 용어가 사용될 수 있다.
버스, 링크 또는 채널은 고속 데이터, 어드레스 및 명령 전송을 위해 2 개의 장치를 연결한다. 채널의 다양한 구성이 존재하는 반면, 전형적으로 채널은 단극성, 양극성, 또는 다른 시그널링 기술을 사용할 수 있는, 라인의 하나의 그룹을 가질 수 있다. 라인은 단방향 또는 양방향일 수 있다. 이 예에서, 차동 라인(differential line)이 사용되고, 이는 당해 기술에 공지된 바와 같이, 차동 시그널링 전자 회로의 메모리 모듈에서 끝나는, 마더보드 상의 한 쌍의 트레이스를 포함할 수 있다. (전기적 차동 라인은 도면들에서 단일 라인으로 도시되어 있다.) 현재, 이러한 유형의 연결은 현재 제품 설계에서 고속의 인터페이스를 위해 사용되지만, 그러나 광 또는 무선 기술 등을 포함하는, 임의 유형의 연결이 사용될 수 있다.
일 태양에서, 채널은 라인의 단방향 그룹을 가질 수 있다. 예에서, 9 개의 라인이 언제라도 사용될 수 있는 10 개의 단방향 라인이 제공되어 있고, 10 번째 라인은 여분일 수 있다. 다른 개수의 라인 및 여분이 사용될 수 있다. 여분의 라인이 필수는 아니다. 데이터는 클록 사이클에서 고정 길이를 가질 수 있는 문자(character)의 형태로 채널 상에서 전송될 수 있고, 문자의 데이터 비트는 클록 사이클과 관련될 수 있다. 이 예에서, 20 클록 사이클과 관련한, 20 비트 문자 길이를 사용한다. 복수의 라인 상의 문자는 논리 클러스터(logical cluster)로 그룹화될 수 있고 프레임이라 불린다. 즉, 도 2a에 도시된 바와 같이, 각각의 활성 라인 상의 문자는 다른 문자(들)과 동시발생적으로 전송되는 또다른 라인 상의 문자와 관련될 수 있다. 그러나, 개별 라인 상의 문자는 제 시간에 서로 비트-동기화될 필요는 없고, 하나 이상의 비트 주기 만큼 시간에서 서로로부터 오프셋될 수 있고, 클록 오프셋은 분수식(franctional) 비트 주기를 포함할 수 있다.
제 1 모듈과 제 2 모듈 사이의 데이터의 전송은 전송 모듈에서 제어될 수 있고 수신 모듈은 중간동기식 클록 데이터 레이트로 데이터를 받아들일 수 있다.
유사한 채널은 역 방향으로 존재할 수 있다. 이 논의에서, 신호 전파의 방향은 다운스트림 방향으로 설명될 것이다; 그러나, 업스트림 방향에서의 신호 전파가 유사한 특성을 가질 것을 이해할 수 있다.
MC 또는 MM과 같은, 업스트림 장치로부터 MM과 같은 다운스트림 장치로의 문자의 흐름은 홉(hop)이라 일컬어 질 수 있다. 이 논의에서, 명료함을 위해, 데이터의 전송은 일반성을 잃지 않고, 2 개의 메모리 모듈(MM) 사이에 있다. 라인 또는 라인들이란 용어는 홉에서의 2 개의 모듈 사이에서 연결의 물리적 성질을 설명하는 경우 보통 사용되고 이들 라인은 예를 들어, 인쇄 회로 보드 상의 트레이스, 커넥터와 같은 보조 소자, 및 송수신단 인터페이스 전자장치들과 관련될 수 있다. 레인(lane)이란 용어는 프레임에서의 문자의 데이터의 논리 할당을 나타내는데 보통 사용된다. 각각의 레인은 MC, 또는 MM 등의 동작에 의해 라인에 할당될 수 있고(바인딩될 수 있고), 이 바인딩(binding)은 홉에서 홉으로 변할 수 있고, 시간에 따라 변할 수 있다. 이 논의에서, 바인딩은 시스템이 일단 구성되면 정적이라고 고려되지만, 각각의 모듈에서 다를 수 있다. 즉, 각각의 홉에서의 라인과 레인의 연관은 시스템 구성의 이전 시간에서 설정되고, 동작 동안 또는 재구성을 수행할 때까지 할당된 상태에 남아 있다. 레인은 목적지 모듈에서의 프레임의 문자들의 도착 시간 사이의 스큐(skew)를 관리하고, 아마도 감소하거나 또는 최소화시키도록 다른 홉에서 다른 라인에 바인딩될 수 있다.
2 개의 모듈 사이의 채널 또는 링크는 모듈이 초기화되고, 학습되는(trained) 경우, 그리고 레인이 라인에 바인딩되고 프레임 정렬의 과정이 완료된 경우 존재한다고 고려될 수 있다. 이 과정을 구성이라 부를 수 있다.
홉에 의해 또다른 모듈과 연결되는 다운스트림 방향에서의 모듈로부터 존재하는 라인의 그룹은 출력 서브-포트라 불리고 이와 같은 라인의 또다른 모듈로의 진입은 입력 서브-포트를 통한다. 서브-포트들로서 구성된, 라인의 또다른 유사한 그룹은 업스트림 방향에 존재할 수 있고, 2 개의 모듈 사이의 홉과 연관된 출력 및 입력 서브-포트의 조합은 포트로 불릴 수 있다.
데이터 프레임에서의 문자는 조정 데이터(steering data)를 포함할 수 있으며, 이는 일반적으로 프레임에서의 데이터를 라우팅하는데 필요한 어드레싱 정보를 의미하며, 이는 목적지 모듈로, 현재 라인 상의 다음 프레임 또는 또다른 라인 상의 또다른 프레임 또는 현재 프레임일 수 있다. 이는 미국 11/405,083에 설명된 바와 같은 조정 데이터일 수 있다. 데이터의 어드레싱 또는 라우팅을 제공하는 다른 수단은 당업자에 의해 공지되어 있으며 사용될 수 있다. 조정 레인을 포함하지 않을 수 있는, 동일한 레인 또는 복수의 레인은 명령, 어드레스, 또는 데이터에 대한 문자를 포함할 수 있다.
도 2b는 메모리 모듈(MM)일 수 있는 2 개의 모듈 사이의 물리적 인터페이스에 관한 예이다. 마더보드 상의 트레이스 쌍은 마더 보드 상의 커넥터 사이에 연결할 수 있다. MM이 마더보드로 플러그(plug)되고 인쇄 회로 배선에 연결할 수 있도록 단일 또는 다중 커넥터가 사용될 수 있다. 예를 들어, 전력, 전력 관리, 클록 및 검사와 같은 다른 연결이 또한 존재할 수 있지만, 도시되어 있지 않다.
도 3은 다운스트림 경로만을 나타내는 메모리 모듈의 단순한 블록도를 나타낸다. 입력 포트 P0는 n 개의 데이터 라인을 가지며, 이 예에서는 10개이다. 이진 트리에서 결합을 위한 모듈의 경우에, 각각 또한 10 개의 데이터 라인을 가지는 2 개의 출력 포트(P1 및 P2)가 존재할 수 있다. 조정 데이터에 제공된 정보에 따라 또는 다른 라우팅 방법에 의해, 포트 P0에서 입력 데이터는 MM에서의 메모리의 하나 또는 포트 P1 또는 포트 P2로 라우팅된다.
MM과 통합될 수 있거나, 또는 MM과 통신하며, 전술되어 있는 데이터 메모리의 임의 유형일 수 있는 메모리는 MM과 연관될 수 있다. 메모리는 다른 컴퓨터 또는 통신 장비로의 인터페이스, 또는 다른 외부 장치에 의해 교체되거나 또는 보충될 수 있어, 메모리 어드레스는 예를 들어 MM으로부터 디스플레이, 또는 네트워크 인터페이스 등으로 데이터의 입력 또는 출력을 가져올 수 있다.
라우팅 및 다른 관련 기능을 수행하는 장치는 구성가능한 스위칭 소자(configurable switching element: CSE)라 불릴 수 있다. 도 4는 CSE의 일부를 나타낸다. 이 예에서, MM 회로는 몇 개의 다른 클록 레이트로 동작할 수 있다. 다수의 클록 레이트는 시스템의 전자적 이행을 용이하게 할 수 있다; 그러나, 충분히 빠른 전자 소자를 획득할 수 있다면, CSE의 모든 동작은 공통 클록 속도로 수행될 수 있으며, 클록 속도는 버스 데이터 레이트의 속도일 수 있다. 시스템 클록(SYSC)은 시스템 클록(SYSC)이 사용되는 모듈의 각각으로 공통 클록(SYSC)으로부터 분배될 수 있다. 시스템 클록(SYSC) 레이트는 홉의 라인 상에서 직렬 비트 데이터의 비트 클록 레이트와 다를 수 있고, 공지된 바와 같이, 국부 클록을 유도하도록, 클록-레이트 곱셈기 또는 나눗셈기가 모듈에 또는 다른 곳에서 사용될 수 있다. 직렬 비트 레이트 클록은 시스템 클록(SYSC)의 배수, m 또는 약수일 수 있고, MM의 일부는 또다른 클록 레이트, 예를 들어; 스위치 클록 레이트(SWC)로 동작할 수 있다. 이 예에서, 데이터 레이트 클록 레이트(DC)는 SYSC의 16배이고, 스위치 클록 레이트(SWC)는 SYSC의 4배 이다. 다른 클록 주파수가 또한 모듈에서 사용될 수 있다. 사용된 클록 중 몇몇은 SYSC에 통합적으로 관련되지 않을 수 있다.
모듈(MM)을 연결하는 라인 중 하나는 다른 라인 상에 사용된 과정을 나타내는 것으로 설명된다. 포트 P0에서의 입력 라인은 임피던스 정합을 제공할 수 있는 아날로그 회로에 의해 수용될 수 있거나 또는 이로 인터페이스 될 수 있고, 이는 명시적(explicit) 또는 내재적(intrinsic) 대역폭 필터링을 포함할 수 있고, 이는 또다른 데이터 처리 또는 조작에 적절한 전기 신호로 라인 상의 차동 신호를 변환할 수 있다. 언급한 바와 같이, 이 논의는 모듈이 클록 위상 오프셋의 결정 또는 클록의 정렬을 포함하는, 시스템의 남은 부분과 관련하여 이전에 구성되었음을 추정하며; 이와 같이, 구성 과정, 오류 검출, 및 오류 복구 등은 상세히 논의되어 있지 않다.
도 4에 도시된 바와 같이, 수신기 회로(RX)로부터의 출력 신호는 클록 데이터 복구(CDR) 회로에 의해 처리된다. 스위치 회로소자(SW)에 사용될 수 있는 바와 같이, 병렬화기(deserializer)(DES)는 데이터가 낮은 클록 레이트(SWC)로 동시에 처리될 수 있도록 직렬 포맷에서 복수의 데이터 스트림으로 데이터를 변환하는데 사용될 수 있다. CDR 회로는 수신되는 데이터에서의 비트 위치에 대하여 고정 관계를 가지는 복구 데이터 클록(RDC)을 설정하도록, DLL(지연 고정 루프(delay locked loop)), 또는 PLL(위상 고정 루프) 등으로 공지된 다수의 회로 유형 중 하나일 수 있다. 복구 데이터 클록(RDC)은 데이터 신호가 유효한 수신된 비트의 시간의 지점에서 라인 상의 신호를 샘플링하는데 사용될 수 있다. 즉, 수신된 데이터 신호의 샘플링 시간은 데이터 샘플이 비트 사이의 경계에서 취해지지 않도록 정렬되고, 홉상의 전송에서 일어날 수 있는 왜곡의 효과가 최소이다. RDC는 또한 초기화 시간에서 문자 경계와 정렬될 수 있다.
복구 데이터-레이트-클록(RDC)은 공통 시스템 클록으로부터 다른 모듈로 클록 신호(SYSC)에 의해 취해진 다른 전파 경로 때문에, 모듈에서의 차동 지연 시간인 위상 오프셋(또는 적어도 분수 비트 시간)에 의해, 그리고 인접한 모듈 사이의 다른 라인에 대한 다른 신호 전파 지연에 의해 국부적으로 발생된 데이터 클록(DC)으로부터 오프셋될 수 있다.
모듈 사이의 전파 지연 시간에서의 차는 스큐라 불릴 수 있고, 스큐는 고정 및 가변 성분을 가질 수 있다. 모듈 상의 각각의 경로에 의해 다뤄진 추가 전파 시간 차동 지연이 또한 관련 있으며, 스큐가 설명되는 경우, 구체적으로 달리 특징지어 지지 않는 한, 전체 차동 시간 지연을 의미한다. 예를 들어, 모듈 사이의 전파 시간은 빛의 속도의 약 1/2보다 더 큰 속도일 수 있는, 마더 보드 상의 트레이스를 따른 신호의 전파 시간, 이전 모듈의 송신기(TX) 및 현재 모듈에서의 송신기(RX)에서의 필터, 또는 다른 버퍼 등에서 전파 지연 등을 포함할 수 있다. 실제 아날로그 전자 회로는 유한 대역폭을 가지며, 대역폭 한계 가까이에서 동작하는 이와 같은 회로는 처리중인 신호에서 추가 전파 지연을 가져올 수 있다.
전파 지연은 위상 지연 또는 시간 지연 중 하나로서 간주될 수 있다. 아날로그 회로는 클록 주기의 차수(order)의 시간 지연을 가질 수 있고, 지연은 성분 값의 함수일 수 있으며, 이는 온도에 좌우할 수 있다. 약간의 노후가 발생할 수 있지만, 그러나 이는 일반적으로 긴 시간 범위(time scale) 상에 있다. 그러므로, 문자의 유입 제 1 비트와 대응하는 모듈 클록 에지 사이의 위상 또는 시간 관계는 선험적으로 공지되어 있지 않을 수 있다. 고정 회로 구성에서 스큐 또는 전파의 변화에 대한 시간 범위가 설명되는 경우, 긴 시간은 변화의 시간 범위가 클록 레이트에서의 문자 기간(duratuin)의 낮은 배수보다 큰 것을 의미한다고 이해된다.
클록 및 데이터는 구성 프로세스 동안 정렬될 수 있고, 각각의 라인에 대해, 문자 또는 프레임 경계, 신호 유효 윈도우, 및 RDC 사이의 관계를 설정하기 위해 학습 문자를 사용할 수 있다. 일단 설정되면, 관계는 DLL 또는 PLL에 의해 유지되고, RDC는 또한 병렬화기(DES)를 클록킹하는데 사용될 수 있다. 예를 들어, 환경 요인(일반적으로 온도) 때문에, 홉의 전파 시간 지연이 변하더라도, DLL 또는 PLL은 샘플링 포인트가 유효 데이터 윈도우와 유지되도록 CDR 회로에 의해 업데이트될 수 있다. 즉, 라인에 대한 모듈에서 복구 데이터 클록(RDC)에서의 특정 클록 비트와 문자의 0 번째 비트 사이의 연관은 홉 상에서의 시간 지연이 변하는 경우에 조차 변하지 않는다. 이 변화가 프레임 또는 문자 레이트와 비교하여 느리고, DDL 또는 PLL은 연속적으로 업데이트되지 않을 수 있다. 시스템 설계에 좌우되어, 데이터가 홉의 라인상에서 연속하여 전송되지 않는다면, 주기적 동기식 전송은 연관을 유지하기 위해 RDC를 조절하기 위해 초기화될 수 있다.
낮은 데이터 레이트로 국부적으로 처리될 수 있는, 복수의 병렬 데이터 스트림으로 라인 상의 문자의 비트를 나타낼 수 있는, 직렬 데이터 스트림의 변환의 예가 도 5에 도시되어 있다. 문자(이 예에서 20 비트)는 복구 클록 레이트(RDC)에서 병렬변환기(DES)에 의해 처리되고 라인 데이터 레이트의 1/2 및 1/4의 클록 레이트로 모듈 내에서 라우팅된다. 각각의 플레인이 스위치 클록 레이트(SWC)에서 동작하는, 스위치 로직의 플레인(plane)과 개별 데이트 비트 위치의 논리적 연관이 도시되어 있다. 처리의 낮은 클록-레이트 부분으로의 데이터의 다른 논리적 정렬이 동일하게 가능하다. 이 예에서, 문자의 데이터는 완전히 병렬화되지 않는다. 즉, 4 개의 내부 데이터 경로(플레인 A-D)가 사용되고, 데이터는 병렬 데이터 문자로 완전히 전송되지 않는다. 동일하게, 로직이 충분히 빠르다면, 문자는 직렬화 또는 병렬화하지 않고, 완전히 직렬 데이터 문자로서 처리될 수 있다.
논리 표현보다는 차라리, 비트의 시간 기간이 도시되었다면, 절반 레이트 영역에서 데이터의 연속적 비트 사이의 간격 또는 시간 기간은 유입 데이터의 간격 또는 시간 기간의 2배이고, 1/4-레이트 도메인에서의 데이터 비트의 기간은 유입 데이터의 기간의 4 배임을 이해할 수 있다. 이 예에서, 데이터는 유입 문자의 짝수 및 홀수 비트로서 도시되고, 그러나 이 표기는 단지 설명에서의 편의를 위한 것이며 모듈 내에서 데이터 비트가 라우팅되는 방식을 제한하는 것으로 의도되어 있지 않다.
위상 정렬 버퍼(PAB)는 내부 스위치 클록(SWC)과 병렬화기(DES)의 출력을 정렬하는 데 사용된다. 스위치 레이트 클록은, 스위치의 입력 및 출력에서 PAB를 위해 사용된 SWC가 SWC의 것과 동일한 주파수인 클록 레이트를 가지는 것을 의미하도록 SWC1 및 SWC11로서 스위치(SW)로부터 분배되는 것으로 도시되어 있지만, 그러나 스위치(SW) 자체에 사용된 SWC로부터 다르지만 실질적으로 고정 위상 또는 시간 오프셋을 가질 수 있다.
일 태양에서, PAB의 비트 길이는 문자보다 길지 않을 수 있고, US 11/405,083에서 설명된 라우팅 방식이 사용되는 경우, 완전한 문자가 수신 모듈에 의해 수신되기 전에 라우팅 정보를 얻을 수 있다. PAB 길이는 18 비트보다 길지 않을 수 있고 길이가 5비트일 수 있다.
이 예에서, 문자는 5 개의 데이터 비트의 4 패킷으로 병렬화되고, 클록 레이트(SWC)는 DC의 1/4이다. PAB는 입력 문자의 0번째 비트가 SWC의 상승 에지와 정렬되도록 행동할 수 있다. 문자의 병렬화 데이터의 다음 비트(1번째, 2번째, 3번째)는 각각, SWC의 상대적 위상(90, 180 및 270°)으로 정렬될 수 있다. 시간에서 다음에 오는 문자의 다음 비트는 마찬가지로 처리될 수 있다.
패킷은 메모리, 또는 출력 포트 P1, P2 중 하나로 패킷을 라우팅하도록 스위치(SW)에 의해 처리될 수 있다. 이 라우팅은 수신된 스티어링 데이터 문자에 기초하여, 동적일 수 있다. 추가로, 스위치(SW)는 예를 들어, P1 상의 출력 라인(3)으로, P0의 라인(1) 상의 입력 문자를 전송하는 것에 의해 레인 교환을 수행할 수 있다. 물리적 라인 연관으로 논리적 레인은 본질상 정적일 수 있고, 프로세스는 "바인딩"이라 불릴 수 있다. 이 방식으로, 입력 문자는 메모리 위치, 또다른 모듈로의 경로를 따라 라우팅될 수 있고, 라인으로의 레인의 정렬은 예를 들어, 목적지 모듈에서 프레임의 문자들 사이의 차동 스큐를 관리하기 위해 사용될 수 있다. 여분 라인이란 용어는 레인에 현재 바인딩되지 않은 2 개의 포트를 연결하는 임의 라인을 지시하는데 사용된다.
스위치(SW) 사이의 인터페이스 및 온-모듈(on-module) 메모리는 모듈 간(module-to-module) 인터페이스와 유사할 수 있고, 국부 메모리로부터 또는 국부 메모리로 의도되어 있는 패킷에서의 문자의 수신을 준비한다. 이 수신은 프레임 내의 문자를 디스큐(deskew)하고 메모리로 프레임을 전송하는 것을 포함할 수 있다. 이와 같은 국부 데이터 복수는 특허 출원 미국 제 11/405,083호에 설명되어 있다.
데이터가 출력 포트(예를 들어, P1 또는 P2)로 라우팅되어 있는, 스위치(SW)에서의 처리 후, 문자의 패킷은 출력 위상 정렬 버퍼(PAB)로의 입력으로서 출력된다. 출력 PAB은 구성 프로세스 동안 설정되어 있는 출력 직렬화기(SER)에서 데이터 클록(DC)의 클록 에지와 문자의 0번째 비트의 정렬을 유지하는데 이용한다. 스위치(SW)에서의 처리가 일반적으로 동기식 프로세스이기 때문에, 스위치 클록(SWC)와 데이터 클록(DC) 사이의 스큐는 일단 설정되면, 상대적으로 정적으로 남아있기 쉽다. 즉, 스위치를 통한 비트의 전파 지연 시간은 실질적으로 일정하다. 그러나, 스위치(SW)로의 데이터 입력의 위상 또는 상대적 시간은 데이터 클록(DC)과 관련하여, 각 라인에 대해 다를 수 있다. 출력 PAB은 라인에 대한 데이터 클록(DC)의 적절한 클록 사이클로 라인 상의 문자의 비트를 정렬하는데 사용될 수 있다. 이 정렬은 라인 단위(line by line)에 기초하여 수행되고, 프레임의 문자는 개별적으로 처리됨에 따라 각각의 홉에서 재동기화될 필요가 없다.
직렬화기는 라인 상의 이전에 전송된 문자로서 동일한 타이밍을 가지는 문자로 문자의 패킷의 비트를 합친다. 즉, 이전 문자의 0번째 비트로부터 20n 클록 사이클 만큼 지연된 데이터 클록(DC)의 클록 에지와의 n 번째의 다음 문자의 비트 0의 연관은 유지되고, 여기서 n은 양의 정수이다. 따라서, 문자의 타이밍은 전송되는 어떠한 실제 문자가 없는 경우에 조차 유지된다. 직렬화기(SER)의 출력은 다음 홉상의 전송을 위해 TX 회로에서 차동 아날로그 데이터 신호로 변환될 수 있다.
프레임에서 다른 라인 상의 다른 문자가 마찬가지로 처리된다. 그러나, 라인의 각각은 개별 CDR 회로를 가지고, 각각의 라인에 대한 RDC는 SWC에 대하여 그리고 서로에 대하여 다른 위상을 가질 수 있다. 각각의 라인 상의 변화는 또한 라인 길이, 또는 증폭기 또는 필터의 특성 등과 같은, 회로 세부사항에 대응하는, 시간 또는 온도에 다른 의존성을 가질 수 있다.
도 6은 스위치(SW)의 단순한 기능 블록도를 도시한다. 스위치는 2 개의 스위치, 레인-교환 그리드(LEG: lane-exchange grid) 및 포트-교환 그리드(PEG)로 형성될 수 있다. 도시된 바와 같이, 하나의 LEG 만이 존재하나, 특정 설계에 따라, 하나 이상의 LEG 소자가 또한 스위치 출력에서 제공될 수 있고, 또는 입력 또는 출력에서 LEG가 생략될 수 있다. 여기서, 입력 라인(0-9)은 예를 들어, 레인(A)이 입력에서 라인(0)과 연관되어 있는 레인들(예를 들어, A-J)과 연관된다. 라우팅은 예를 들어, 레인(A)가 출력에서 라인(3)과 연관될 수 있는, 출력 포트 P1으로 있을 수 있다. 입력 라인으로부터 출력 라인 및 포트로의 문자의 바인딩, 스위칭, 또는 라우팅은 LEG, PEG에 의해 수행될 수 있다. 출력 라인(1-9)으로의 남아 있는 라인(B-J)의 바인딩은 시스템이 구성되어 있는 경우 결정될 수 있어, 입력 프레임에서의 각각의 레인은 출력에서 특정 물리적 라인에 라우팅된다. 레인(A)은 마찬가지로 또다른 라인에 바인딩될 수 있다. 바인딩은 하나의 모듈 상의 포트 사이에서 다를 수 있고, 하나의 모듈과 또다른 모듈 사이에서 다를 수 있다.
홉에서의 데이터의 전송의 시간 지연이 시간에 따라 변하는 경우에 조차, 이 프로세스의 결과는 데이터 클록(DC)의 동일한 클록 에지로 메모리 제어기(MC)에 의해 전송된 문자의 비트(예를 들어 0 번째 비트)의 연관을 유지할 수 있고, 데이터 클록은 모듈 중 임의 모듈에서 데이터 클록(DC)이다.
이러한 개념은 도 7a-7b에 도시되어 있다. 도 7a에서, 전파 지연 시간(D1)은 모듈(MM2)의 출력과 모듈(MM1)의 출력 사이의 전파 지연 시간을 나타낸다. 이 시간을 데이터의 각각의 레인에 대해 일정하게 유지하는 구성 프로세스의 완료시에 존재하는 것과 동일하게 유지되는 DC의 클록 에지와 라인 상에 전송된 문자의 제 1 비트 사이의 설정된 대응성을 가져온다. 지연 D1은 지연 D2와 D3의 합으로 고려될 수 있고, D2는 스위치(SW)와 연관되지 않은 지연일 수 있고 D3는 스위치(SW)와 연관된 지연이다. 지연 D2 및 D3의 각각은 시간에 걸쳐 환경 요인에 따라 변할 수 있지만, 그러나 전체 전송 시간 지연이 실질적으로 일정하도록 지연에서의 변화의 효과는 위상 정렬 버퍼(PAB)에 의해 보상된다. 이는 도 7b에 더 상세히 도시되어 있다. 실질적으로 일정함은 동기화 후, 문자의 제 1 비트의 전체 전송 시간이 재동기화 없이, 비트 기간 이상으로 변하지 않도록 회로가 조절되는 것을 의미한다고 이해된다.
이전 논의에서, 하나의 모듈 상에 있지 않을 수 있는, SYSC 클록원에서 클록 에지에 대하여 모듈에서의 시스템 클록(SYSC)의 시간 지연은 일정하다고 암묵적으로 가정되어 있다. 이 시간 지연은 환경 요인 또는 노화에 따라 변할 수 있지만, 그러나, 각각의 모듈 상의 위상 정렬 버퍼들(PAB)이 DC와 SWC와 RDC 사이의 상대적 시간 지연을 보상하기 때문에, SYSC 클록 지연의 변화가 보상될 수 있다.
설명된 배열의 결과는 전체 문자 또는 그 이상이 하나의 홉의 지연에서의 변화에 대해 조절하기 위해 MM의 입력 PAB에서 버퍼링될 필요가 없다는 것이다. PAB의 깊이는 예를 들어, 홉의 라인 모두에서 스큐의 전체 변화보다는 차라리, 홉에서의 라인에 대한 작동 온도 범위에 걸쳐 대략 스큐의 변화일 수 있다. 구성하는 시점에서, 데이터 비트 위치가 전송 주기 동안 버퍼에서 유지되도록 데이터는 클록 속도 도메인 사이의 전송을 위한 버퍼에서의 적절한 포인트에 위치될 수 있다.
위상 정렬 버퍼의 결과는 메모리 모듈을 통한 전체 시간 지연이 환경 요인 때문에 스큐에서의 변화를 고려하여, 최적화될 수 있다는 것이다. 데이터가 멀티 홉을 가지는 경로 상으로 전파되는 경우, MC와 목적지 모듈 사이의 전체 시간 지연은, 중간 모듈에서 프레임의 데이터를 복구하고 데이터 경로를 따른 지연을 추가함으로써 디스큐를 수행하는 접근법과 비교하여, 감소될 수 있다. 지연은 남아 있는 스큐를 다루기 위해 목적지 모듈 또는 소스에서의 하나 이상의 라인에 추가될 수 있거나, 또는 전체 스큐를 최적화하도록 구성 동안 추가될 수 있다.
임의 라인의 데이터와 데이터 클록(DC)의, 동기화라 불릴 수 있는, 연관이 연관이 설정된 이후 유지되고, 모듈 쌍에서 국부적으로 유지되기 때문에, 각각의 라인 상의 데이터 전송은 레이턴시 성능 이유 및 시스템 대역폭을 요구하는 경우를 제외하고는 연속할 필요는 없다. 라인을 필요로 하지 않는 경우, 전력은 CDR 및 다른 회로소자의 일부로부터 뿐만 아니라 송신기 및 수신기 소자로부터 제거될 수 있다. 데이터가 입력 포트로부터 2 개의 출력 포트 중 하나 또는 국부 메모리로 전형적으로 라우팅되는 경우, 출력 포트 중 적어도 하나는 필요하지 않는 경우 중단될 수 있다.
서브-포트의 라인들의 하나의 그룹에서 라인들 중 하나는 이전 불활성 링크에서 데이터 프레임, 또는 리프레시 목적을 위해 전송되는 데이터로 남아 있는 라인을 알리는(alert) 것과 같은, 시그널링의 목적을 위해 활성 상태로 유지될 수 있다. 그러나, 라인 상의 데이터 상의 존재가 수신기 및 연관 회로소자를 활성화하도록, 신호 존재 표시기가 또한 사용될 수 있다. 따라서, 정상 상태 동작에서, 라인은 활성 또는 불활성 중 하나 일 수 있고, 데이터 라인이 활성인 경우, 데이터가 조정 데이터일 수 있는 데이터, (어드레싱을 포함하는) 명령, 저장되거나 또는 판독되는 데이터, 또는 클록 유지 전송은 전송된다.
본 발명의 몇 개의 예시적 실시예만이 위에서 상세히 설명되어 있더라도, 당업자는 다수의 변경이 본 발명의 이점 및 새로운 기술로부터 실질적으로 벗어나지않고 예시적 실시예에서 가능함을 쉽게 이해할 것이다. 따라서, 모든 이와 같은 변경은 본 발명이 범위 내에 포함되도록 의도된다.
본 발명의 내용에 포함되어 있음.

Claims (22)

  1. 제 1 노드;
    제 1 노드와 통신하는 제 2 노드;
    제 1 노드 및 제 2 노드에 제공되는 제 1 클록; 및
    제 1 노드의 출력과 제 2 노드의 출력 사이의 비트의 전송 시간이 일정하게 유지되도록 제 1 클록의 제 1 배수 또는 약수이고 제 1 클록에 관하여 시간 지연을 가지는 제 2 클록을 포함하며,
    제 1 노드는 버스를 거쳐 제 2 노드와 통신하며, 비트로 구성된 문자는 제 1 클록의 제 2 배수 또는 약수인 클록 레이트로 직렬로 제 1 노드와 제 2 노드 사이에서 전송되는 상호연결 시스템.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    제 1 및 제 2 배수 또는 약수는 동일한 배수 또는 약수인 상호연결 시스템.
  5. 제 1 항에 있어서,
    수신된 문자는 제 2 클록의 속도보다 낮은 클록 속도로 직렬 데이터 포맷에서 복수의 병렬 데이터 스트림으로 변환되는 상호연결 시스템.
  6. 제 5 항에 있어서,
    제 2 클록의 시간 지연은 다음에 수신되는 문자의 동일한 비트 위치가 병렬 데이터 스트림의 대응하는 동일한 비트 위치로 변환되도록 조절되는 상호연결 시스템.
  7. 제 5 항에 있어서,
    각각의 복수의 병렬 데이터 스트림은 메모리 또는 또다른 노드 중 하나로 라우팅되는 상호연결 시스템.
  8. 제 7 항에 있어서,
    라우팅은 수신된 문자에 의해 결정되는 상호연결 시스템.
  9. 제 7 항에 있어서,
    문자가 또다른 노드로 라우팅되는 경우, 데이터는 제 2 클록을 사용하여 재-직렬화되는(re-serialized) 상호연결 시스템.
  10. 제 9 항에 있어서,
    재직렬화된 데이터는 2 개의 노드를 연결하는 복수의 라인 중 하나의 라인 상에 전송되는 상호연결 시스템.
  11. 제 10 항에 있어서,
    재직렬화된 데이터는 복수의 라인 중 선택된 하나의 라인에 바인딩되는 상호연결 시스템.
  12. 제 1 항에 있어서,
    레인의 시간 지연은 제 1 노드의 출력과 제 2 노드의 출력 사이에서 측정되는 경우, 레인의 전체 시간 지연이 일정하도록 조절되는 상호연결 시스템.
  13. 제 12 항에 있어서,
    복수의 레인 중 하나의 레인 상의 수신된 문자는 복수의 레인 중 또 다른 레인 상의 수신된 문자와 상관없이 직렬 데이터 포맷으로부터 복수의 병렬 데이터 스트림으로 변환되는 상호연결 시스템.
  14. 제 13 항에 있어서,
    병렬 데이터 스트림의 개수는 문자에서 비트의 개수와 동일한 상호연결 시스템.
  15. 데이터 수신 회로;
    데이터 송신 회로;
    데이터 수신 회로 및 데이터 송신 회로를 연결하는 스위치;
    라인상에 복수의 비트를 가지는 수신된 문자의 제 1 비트에 맞춰 각 샘플을 정렬하여 샘플링 시간을 유지하도록 동작할 수 있는 회로; 및
    재샘플링된 비트와 또다른 모듈에서의 대응하는 재샘플링된 비트 사이에서 측정된 전체 시간 지연이 일정하게 유지되도록 제 1 비트를 재샘플링하도록 구성된 입력 데이터 버퍼를 포함하는 상호연결 시스템의 노드.
  16. 제 15 항에 있어서,
    회로는 데이터 클록 복구 회로인 상호연결 시스템의 노드.
  17. 제 15 항에 있어서,
    입력 데이터 버퍼는 데이터 클록 레이트의 약수(integral submultiple)인 클록 주파수로 동작하는 상호연결 시스템의 노드.
  18. 제 15 항에 있어서,
    스위치는 메모리 또는 또다른 노드 중 적어도 하나로 수신된 문자를 라우팅하도록 동작할 수 있는 상호연결 시스템의 노드.
  19. 제 15 항에 있어서,
    스위치 출력은 데이터 클록 레이트로 전송되는 상호연결 시스템의 노드.
  20. 제 15 항에 있어서,
    입력 데이터 버퍼는 복수의 데이터 패킷으로 수신된 문자를 병렬화하도록 동작할 수 있고, 출력 데이터 버퍼는 문자로 스위치 출력 데이터를 재직렬화하도록 동작할 수 있는 상호연결 시스템의 노드.
  21. 제 15 항에 있어서,
    문자는 제 1 포트의 복수의 라인 중 제 1 라인 상에 수신되고, 문자는 제 2 포트의 복수의 라인 중 선택가능한 하나의 라인 상의 또다른 노드로 전송되는 상호연결 시스템의 노드.
  22. 제 1 노드로부터 제 2 노드로 복수의 비트를 포함하는 데이터의 문자를 송신하는 단계;
    제 2 노드에서 상기 문자를 수신하는 단계;
    수신된 데이터로부터 클록을 복구하고 문자의 샘플링 시간을 정렬하는 단계; 및
    데이터 클록 레이트의 약수인 클록 주파수에서 샘플링된 데이터를 재-샘플링하고, 제 1 노드로부터 송신된 문자와 제 2 노드에 의해 송신된 동일한 레인 상의 문자 사이의 전체 시간 지연이 일정하도록 재-샘플링 클록의 위상 또는 시간 지연을 조절하는 단계를 포함하며,
    서로 통신하는 복수의 노드를 포함하는 상호연결 시스템의 관리 방법.
KR1020107009902A 2007-10-05 2008-10-03 중간동기식 데이터 버스 장치 및 데이터 전송 방법 KR101132321B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US99789907P 2007-10-05 2007-10-05
US60/997,899 2007-10-05
PCT/US2008/078752 WO2009046300A2 (en) 2007-10-05 2008-10-03 Mesosynchronous data bus apparatus and method of data transmission

Publications (2)

Publication Number Publication Date
KR20100098596A KR20100098596A (ko) 2010-09-08
KR101132321B1 true KR101132321B1 (ko) 2012-04-05

Family

ID=40526961

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107009902A KR101132321B1 (ko) 2007-10-05 2008-10-03 중간동기식 데이터 버스 장치 및 데이터 전송 방법

Country Status (5)

Country Link
EP (1) EP2201463A4 (ko)
JP (1) JP2011502293A (ko)
KR (1) KR101132321B1 (ko)
CN (1) CN101836193B (ko)
WO (1) WO2009046300A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101990089B (zh) * 2009-08-07 2013-01-02 宏碁股份有限公司 串流影音资料传输控制方法及其设备
CN103051441B (zh) * 2013-01-23 2015-03-18 和记奥普泰通信技术有限公司 基于fpga的时钟数据恢复处理方法
KR101579054B1 (ko) 2014-03-26 2015-12-21 한국원자력의학원 포도필로톡신 아세테이트를 유효 성분으로 포함하는 방사선치료 증진제
CN106033231B (zh) * 2015-03-16 2020-03-24 联想(北京)有限公司 一种信息处理方法、时钟分频装置及信息处理系统
CN108259134B (zh) * 2018-01-10 2021-04-13 上海灵动微电子股份有限公司 一种基于afp协议的数据传输方法
KR102090554B1 (ko) 2018-04-13 2020-03-18 한국원자력의학원 β-아포피크로포도필린을 유효 성분으로 포함하는 방사선 치료 증진제
CN114127767A (zh) * 2019-08-21 2022-03-01 华为技术有限公司 一种数据处理的设备以及系统
CN112463671A (zh) * 2020-12-04 2021-03-09 上海君协光电科技发展有限公司 一种数据延时系统、方法、装置、计算机设备及存储介质
CN113360130B (zh) * 2021-08-11 2021-10-29 新华三技术有限公司 一种数据传输方法、装置及系统
CN114495998B (zh) * 2021-12-15 2023-11-10 西安紫光国芯半导体有限公司 一种数据存储器以及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030091039A1 (en) * 2001-11-15 2003-05-15 International Business Machines Corporation Modification of bus protocol packet for serial data synchronization
US20050259692A1 (en) * 2004-05-19 2005-11-24 Zerbe Jared L Crosstalk minimization in serial link systems
KR20070085456A (ko) * 2004-10-25 2007-08-27 스카이워크스 솔루션즈 인코포레이티드 선송신(pretransmit) 격리를 제공하는 송수신스위치 아키텍처

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2269158B1 (ko) * 1974-04-26 1976-10-15 Ibm France
DE3275801D1 (en) * 1982-09-28 1987-04-23 Ibm Data transmission system
JPS62266943A (ja) * 1986-05-14 1987-11-19 Mitsubishi Electric Corp デ−タ転送制御方式
DE3787494T2 (de) * 1986-05-14 1994-04-28 Mitsubishi Electric Corp Datenübertragungssteuerungssystem.
US5872959A (en) * 1996-09-10 1999-02-16 Lsi Logic Corporation Method and apparatus for parallel high speed data transfer
US6356610B1 (en) * 1998-06-23 2002-03-12 Vlsi Technology, Inc. System to avoid unstable data transfer between digital systems
US6445719B1 (en) * 1998-08-28 2002-09-03 Adtran Inc. Method, system and apparatus for reducing synchronization and resynchronization times for systems with pulse stuffing
US6889336B2 (en) * 2001-01-05 2005-05-03 Micron Technology, Inc. Apparatus for improving output skew for synchronous integrate circuits has delay circuit for generating unique clock signal by applying programmable delay to delayed clock signal
CN1161901C (zh) * 2001-05-14 2004-08-11 华为技术有限公司 光通信系统中上行高速数据的同步接收方法与电路
US7421525B2 (en) * 2003-05-13 2008-09-02 Advanced Micro Devices, Inc. System including a host connected to a plurality of memory modules via a serial memory interconnect
US7143207B2 (en) * 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
JP2006065697A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd 記憶デバイス制御装置
JP2006072968A (ja) * 2004-08-31 2006-03-16 Samsung Electronics Co Ltd 非周期クロックを有するメモリモジュール、メモリユニット、ハブ及びこれらを用いた方法
US7434192B2 (en) * 2004-12-13 2008-10-07 Altera Corporation Techniques for optimizing design of a hard intellectual property block for data transmission
US10417159B2 (en) * 2005-04-21 2019-09-17 Violin Systems Llc Interconnection system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030091039A1 (en) * 2001-11-15 2003-05-15 International Business Machines Corporation Modification of bus protocol packet for serial data synchronization
US20050259692A1 (en) * 2004-05-19 2005-11-24 Zerbe Jared L Crosstalk minimization in serial link systems
KR20070085456A (ko) * 2004-10-25 2007-08-27 스카이워크스 솔루션즈 인코포레이티드 선송신(pretransmit) 격리를 제공하는 송수신스위치 아키텍처

Also Published As

Publication number Publication date
CN101836193B (zh) 2012-10-03
JP2011502293A (ja) 2011-01-20
EP2201463A2 (en) 2010-06-30
WO2009046300A3 (en) 2009-05-22
KR20100098596A (ko) 2010-09-08
WO2009046300A2 (en) 2009-04-09
CN101836193A (zh) 2010-09-15
EP2201463A4 (en) 2010-10-13

Similar Documents

Publication Publication Date Title
KR101132321B1 (ko) 중간동기식 데이터 버스 장치 및 데이터 전송 방법
US20210027825A1 (en) Memory controller
US8391039B2 (en) Memory module with termination component
US8112655B2 (en) Mesosynchronous data bus apparatus and method of data transmission

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: 20150227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee