KR101605285B1 - 블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처 - Google Patents

블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처 Download PDF

Info

Publication number
KR101605285B1
KR101605285B1 KR1020147025015A KR20147025015A KR101605285B1 KR 101605285 B1 KR101605285 B1 KR 101605285B1 KR 1020147025015 A KR1020147025015 A KR 1020147025015A KR 20147025015 A KR20147025015 A KR 20147025015A KR 101605285 B1 KR101605285 B1 KR 101605285B1
Authority
KR
South Korea
Prior art keywords
server
blade
link
qpi
signal
Prior art date
Application number
KR1020147025015A
Other languages
English (en)
Other versions
KR20140132362A (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 KR20140132362A publication Critical patent/KR20140132362A/ko
Application granted granted Critical
Publication of KR101605285B1 publication Critical patent/KR101605285B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

블레이드와 랙 서버용 스케일러블 공통 기준 클록킹 아키텍처 및 방법. 공통 기준 클록 소스는 블레이드 서버에 있는 복수의 블레이드와 랙 서버에 있는 서버에 동기화된 클록 입력 신호를 제공하도록 구성된다. 기준 클록 신호는 퀵패스 상호 접속(QuickPath Interconnect(QPI)) 링크 또는 PCIe 링크와 같은 블레이드 및/또는 서버 사이의 직렬 상호 접속 링크에 관련된 클록 동작을 위해 사용된다. 직렬 상호 접속 링크는 블레이드 또는 서버 사이에서 전기 또는 광 케이블을 통해 라우팅될 수 있다. 공통 기준 클록 입력 및 인터 블레이드 또는 인터 서버 상호 접속 방식은 복수의 블레이드 또는 서버가 통신 가능하게 함께 링크될 수 있도록 스케일러블하다. 또한, QPI 링크가 사용될 때 블레이드 또는 서버에서 코히어런트 메모리 트랜잭션이 제공되어 세분된 병렬성이 병렬 프로세싱 애플리케이션을 위해 사용될 수 있게 한다.

Description

블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처{SCALABLE, COMMON REFERENCE-CLOCKING ARCHITECTURE USING A SEPARATE, SINGLE CLOCK SOURCE FOR BLADE AND RACK SERVERS}
발명의 기술분야는 일반적으로 컴퓨터 시스템에 관한 것으로서, 특히 전적으로는 아니지만 서버 블레이드와 랙 서버간 통신 링크를 지원하기 위한 공통 기준 클록 구현에 관한 것이다.
병렬 컴퓨팅 기술에 의해 해결되고 있는 전산 및 모델링 문제점의 수가 계속 증가하고 있다. 병렬 컴퓨팅은 복수의 프로세싱 리소스를 사용하여 많은 계산이 동시에 수행되는 전산의 한 형태이며, 큰 문제점이 종종 작은 문제점으로 나누어질 수 있고 그 후 동시에("병렬로") 해결되는 원리에 따라 동작한다. 이것은 일반적으로 각각의 프로세싱 구성 요소가 알고리즘의 부분을 다른 것들과 동시에 실행할 수 있도록 문제점을 독립된 부분으로 나눔으로써 달성될 수 있다. 프로세싱 구성 요소는 다양하고, 복수의 프로세서를 구비한 단일 컴퓨터, 네트워크화 및/또는 클러스트화 컴퓨터, 특수 하드웨어 또는 이들의 임의의 조합과 같은 리소스를 포함 수 있다.
대칭형 멀티프로세싱, 멀티 코어 프로세서, 대용량 병렬 컴퓨터 시스템 및 복수의 로컬 클러스터화 또는 지리적 분산 컴퓨터를 사용하는 네트워크 기반 아키텍처를 포함하는 대부분의 병렬 컴퓨팅 작업용 다양한 하드웨어/시스템 아키텍처가 있다. 대칭형 멀티프로세싱(Symmetric Multiprocessing(SMP))은 둘 이상의 동일한 프로세서가 단일 공유 메인 메모리에 접속되고 단일 OS 인스턴스(instance)에 의해 제어되는 멀티프로세서 컴퓨터 하드웨어 아키텍처를 포함한다. 오늘날의 많은 멀티프로세서 시스템은 SMP 아키텍처를 채용한다. 멀티 코어 프로세서의 경우, 프로세서 코어 및 관련 캐시 레벨로의 메모리 액세스를 제어하는 것은 SMP와 유사한 방식으로 관리되고, 각각의 코어는 별도의 프로세서로 취급된다. 대용량 병렬 컴퓨터 시스템 아키텍처는 종종 슈퍼컴퓨터에 의해 사용된다. 이러한 시스템은 물리적으로 별도의 메모리 리소스와 프로세서 및/또는 복수의 프로세서 블레이드 또는 서버의 어레이를 사용할 수 있다. 네트워크 기반 아키텍처는 일반적으로 컴퓨터 또는 서버의 로컬 클러스터, 또는 지리적으로 분산된 컴퓨터의 네트워크(또한 분산형 컴퓨팅이라 칭함)를 사용한다. 예를 들면, 컴퓨터 클러스터는 네트워크 접속을 통해 상호 접속되는 블레이드 또는 모듈을 구비하는 블레이드 서버 또는 랙 서버를 통하여 구현될 수 있다. 한편, 100, 1000 또는 그보다 훨씬 많은 수의 지리적으로 분산된 컴퓨터가 맵리듀스(MapReduce) 프레임워크를 사용하여 문제점의 해소와 같은 전문 작업을 병렬로 수행하기 위해 사용될 수 있다.
병렬 프로세싱 아키텍처의 핵심 특징 중 하나는 진행중인 동작 동안 복수의 프로세싱 구성 요소가 데이터 객체의 유효 사본에 액세스하도록 보장하는데 필요한 데이터 일관성이다. SMP 아키텍처 및 멀티 코어 프로세서의 경우, 데이터 일관성은 일반적으로 공지의 메시(Mutual Exclusive, Shared, Invalid(MESI)) 메모리 일관성 프로토콜 또는 유사한 프로토콜의 사용과 같은 메모리 일관성 방식을 통해 구현된다. 또한, SMP 또는 멀티 코어 프로세서 시스템 하에서보다 낮은 세분성 레벨에서 분산형 아키텍처에 대한 데이터 일관성을 보장하기 위한 기술이 있다.
병렬 프로세싱의 다른 핵심 특징은 확장성이다. 일반적으로, 주어진 아키텍처의 성능 확장성은 데이터 액세스 병목 현상 및 데이터 전송 대기 시간에 상당 부분 기인한 프로세싱 구성 요소의 수와 관련된 비선형 함수이다. (데이터 액세스의 관점에서) 최고속 아키텍처는 인텔® 코포레이션의 48 코어 싱글 칩 컴퓨터(Single Chip Computer(SCC))와 같은 복수의 프로세서 코어를 구비한 시스템 온 칩(System on a Chip(SoC)) 또는 칩 멀티 프로세서(Chip Multi Processor(CMP)) 구성을 사용한다. 데이터 액세스 속도는 (인텔의 퀵패스(QuickPath®) 상호 접속 또는 QPI와 같은) 코히어런트 메모리 트랜잭션을 지원하는 초고속 상호 접속 및 프로토콜의 사용으로 인해 빨라진다. SoC 및 CMP가 초고속 코히어런트 메모리 트랜잭션을 지원하지만 프로세싱 구성 요소의 관점에서 자신의 확장성은 근본적으로 사용하는 코어의 수로 제한된다.
스케일의 반대편에 분산형 컴퓨팅 아키텍처가 있다. 이 접근 방법은 (프로세싱 구성 요소의 수의 관점에서) (이론상) 무한 확장성을 가지고 있지만 병렬 동작을 수행하기 위해 사용될 수 있는 실제 데이터 분산성을 기능적으로 제한하는 고유의 대기 시간을 갖는다. 그 결과, 분산형 컴퓨팅 아키텍처에서 병렬성의 수준은 비교적 낮다. 중간에 대용량 병렬 아키텍처 및 클러스터화 블레이드/서버 아키텍처가 있다. 이들은 (공간 및 열 고려로 인한 실질적인 한계 내에서) 고유의 프로세서 확장성을 가지고 일반적으로 고성능을 제공한다. 그러나 네트워크화 링크를 사용하는 블레이드 및/또는 서버에 걸친 데이터 액세스 및 병렬성의 성능은 SoC 및 CMP에 의해 제공되는 것보다 상당히 낮고, 슈퍼컴퓨터의 사용 가능성은 대부분의 사용자에게 비용면에서 금지된다.
본 발명의 전술한 양태 및 수반되는 장점의 많은 것들은 첨부 도면과 함께 해석될 때 다음의 상세한 설명을 참조하여 더 잘 이해되기 때문에 보다 용이하게 이해될 것이며, 여기서 달리 명기되지 않으면 유사한 참조 부호는 다양한 도면에 걸쳐 유사한 부분을 지칭한다.
도 1은 QPI 프로토콜 스택의 계층을 도시한다.
도 2는 전체 폭 QPI 링크의 구조를 예시하는 개략도이다.
도 3은 블레이드 서버에 있는 블레이드 사이의 직렬 상호 접속 링크를 지원하기 위한 공통 기준 클록 방식의 일 실시예를 도시한다.
도 4는 랙 서버에서의 서버간 직렬 상호 접속을 지원하기 위한 공통 기준 클록 방식의 일 실시예를 도시한다.
도 5는 공통 기준 클록 신호를 4개의 서버 블레이드에 공급하는 클록 합성기 보드를 사용하는 QPI 블레이드 대 블레이드 상호 접속 구현의 일 실시예를 예시하는 개략적 블록도이다.
도 5a는 공통 기준 클록 신호를 4개의 서버 블레이드에 공급하는 클록 합성기 보드를 사용하는 PCI 블레이드 대 블레이드 상호 접속 구현의 일 실시예를 예시하는 개략적 블록도이다.
도 6은 서버 블레이드 또는 랙 서버간 QPI 링크를 사용하는 서버 블레이드 또는 랙 서버에서의 코히어런트 메모리 트랜잭션을 지원하기 위한 시스템 아키텍처의 개략적 블록도이다.
도 6a는 각각의 QPI 인터페이스에서 각각의 QPI 노드를 사용하는 도 6의 시스템 아키텍처의 변형예의 개략적 블록도이다.
도 6b는 도 6의 시스템 아키텍처의 추가적 세부 사항을 예시하는 개략적 블록도이다.
도 6c는 도 6a의 시스템 아키텍처의 추가적 세부 사항을 예시하는 개략적 블록도이다.
도 6d는 PCIe 링크를 사용하는 서버 블레이드 또는 랙 서버간 통신을 지원하기 위한 시스템 아키텍처의 개략적 블록도이다.
도 7은 일 실시예에 따른 4개의 서버 블레이드에서 구현되는 홈 스누프 메모리 일관성 방식을 예시하는 개략적 블록도 및 메시지 흐름도이다.
도 8은 PCIe 프로토콜의 계층을 예시하는 도면이다.
도 9는 x16 PCIe 링크의 구조를 예시하는 개략도이다.
도 10은 x4 PCIe 링크의 구조를 예시하는 개략도이다.
블레이드 및 랙 서버용 스케일러블 공통 기준 클록킹 아키텍처와 방법이 본 명세서에 설명된다. 다음의 설명에서, 복수의 특정 세부 사항이 본 발명의 실시예의 철저한 이해를 제공하기 위해 (전송된 클록킹 및 삽입된 클록킹 아키텍처 각각을 기반으로 한 QPI 및 PCIe의 사용과 같이) 제시된다. 그러나 당업자는 본 발명이 하나 이상의 특정 세부 사항 없이 또는 다른 방법, 컴포넌트, 재질 등을 가지고 실시될 수 있다는 것을 인식할 것이다. 다른 예에서, 공지의 구조, 재질 또는 동작이 본 발명의 특징을 모호하게 하는 것을 방지하기 위해 상세히 도시되거나 설명되지 않는다.
본 명세서에서 "일 실시예(one embodiment)" 또는 "실시예(an embodiment)"에 대한 참조는 해당 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있다는 것을 의미한다. 따라서, 명세서의 여러 곳에서 "일 실시예에서(in one embodiment)" 또는 "실시예에서(in an embodiment)"라는 문구의 출현이 반드시 모두 동일 실시예를 언급하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성은 하나 이상의 실시예에서 임의의 적절한 방식으로 결합될 수 있다.
본 명세서에 개시된 실시예의 양태에 따르면, 세밀한 병렬성을 지원하면서 블레이드 서버 및 랙 서버와 같은 클러스터형 분산 프로세싱 환경의 스케일링을 가능하게 하도록 제공된다. 이러한 발전은 부분적으로 복수의 블레이드 서버 및/또는 랙 서버 보드 사이에 분산되는 메모리 리소스의 고속 코히어런트 메모리 트랜잭션을 지원하기 위해 인트라프로세서 캐시 일관성 프로토콜 및 링크 아키텍처를 확장함으로써 가능하게 된다. 일 실시예에서, 캐시 일관성 프로토콜은 인텔의 퀵패스(QuickPath®) 상호 접속(QPI 프로토콜)이다. 이것이 구현되는 방법을 더 잘 이해하기 위해 QPI에 대한 다음의 간단한 개요가 제공된다.
퀵패스 상호 접속의 개요
QPI 트랜잭션은 다중 계층 프로토콜을 통해 전송되는 패킷화 메시지를 통해 가능해 진다. 도 1에 도시된 바와 같이, 계층은 물리적 계층, 링크 계층, 라우팅 계층 및 프로토콜 계층을 포함하다. 물리적 계층에서, 데이터는 도 2에 도시된 20 레인의 전체 폭을 사용할 때 20 비트 피트(phit)(물리적 단위)에서 교환된다. 선택적으로, 10 또는 5 레인과 같이 축소된 레인 폭이 사용될 수 있다. 링크 계층에서 피트는 80 비트 플리트(flit)(플로우 컨트롤 단위)로 집계된다. 플로토콜 계층에서 메시지는 패킷 기반 전송을 사용하여 에이전트 사이에 전달된다.
물리적 계층은 상호 접속의 물리적 구조를 정의하고 두 에이전트 사이의 특정 링크 상의 신호의 동작의 세부 사항의 처리를 담당한다. 이 계층은 병렬 레인에서 각각의 정보의 비트를 송수신할 때 관련되는 전기적 레벨, 타이밍 양태 및 논리적 문제를 포함하여 신호 와이어 상의 데이터 전송을 관리한다. 도 2에 도시된 바와 같이, 각각의 상호 접속 링크의 물리적 접속은 20까지의 차동 신호 쌍과 차동 전송된 클록으로 이루어진다. 각각의 포트는 2개의 컴포넌트 사이의 접속을 이루기 위해 2개의 단방향 링크로 구성되는 링크 쌍을 지원한다. 이것은 트랙픽을 양방향으로 동시에 지원한다.
QPI 포트를 구비한 컴포넌트는 도 2에 도시된 링크 쌍으로 정의되는 단방향 포인트 투 포인트 링크의 쌍을 사용하여 통신한다. 각각의 포트는 송신(Tx) 링크 인터페이스 및 수신(Rx) 링크 인터페이스를 포함한다. 예시적인 예에서, 컴포넌트 A는 컴포넌트 B Rx 포트에 접속되는 Tx 포트를 구비한다. 하나의 단방향 링크는 컴포넌트 A에서 컴포넌트 B로 송신하고 다른 링크는 컴포넌트 B에서 컴포넌트 A로 송신한다. "송신" 링크와 "수신" 링크는 특정 QPI 에이전트에 대하여 정의된다. 컴포넌트 A는 데이터를 컴포넌트 A Tx 포트에서 컴포넌트 B Rx 포트로 송신한다.
프로토콜 스택 위의 제 2 계층은 신뢰성 있는 데이터 송신 및 플로우 컨트롤을 담당하는 링크 계층이다. 링크 계층은 또한 물리적 채널을 다중 가상 채널 및 메시지 클래스로의 가상화를 제공한다. 물리적 계층 초기화 및 트레이닝이 완료된 후 그 논리적 서브 블록은 플로우 컨트롤을 담당하는 링크 계층의 지시에 따라 동작한다. 이후 이러한 링크 동작 관점에서, 논리적 서브 블록은 플릿(flit) 분산성 (80 비트)에서 링크와 통신하고 피트 분산성(20 비트)에서 링크를 통해 플릿을 전송한다. 플릿은 정수개의 피트로 구성되고, 일 피트는 일 단위 간격(unit interval(UI))으로 송신되는 비트의 수로 정의된다. 예를 들면, 전체 폭 QPI 링크는 4 피트를 사용하여 완전한 플릿을 송수신한다. 각각의 플릿은 72 비트의 페이로드와 8 비트의 순환 중복 검사(Cyclic Redundancy Check(CRC))를 포함한다.
라우팅 계층은 메시지가 적절한 목적지로 전송되도록 보장할 책임이 있고 상호 접속 패브릭을 통한 패킷 관리용 프레임워크를 제공한다. 링크 계층으로부터 전달되는 메시지가 다른 장치에 있는 에이전트로 향하면, 라우팅 계층은 이것을 전송할 적절한 링크로 전달한다. 로컬 장치상의 에이전트로 향하는 모든 메시지는 프로토콜 계층까지 전달된다.
프로토콜 계층은 다중 기능을 제공한다. 이것은 라이트 백(write-back) 프로토콜을 사용하여 인터페이스용 캐시 일관성을 관리한다. 이것은 또한 넌 코히어런트(non-coherent) 메시징 관리용의 한 세트의 규칙을 가지고 있다. 메시지는 패킷을 사용하여 프로토콜 레벨에서 에이전트 사이에 전달된다. 프로토콜 계층은 복수의 장치에서 복수의 에이전트를 포함하는 다중 링크를 통해 메시지의 전달을 관리한다. 분산형 캐시 및 메모리 컨트롤러에서 시스템의 캐시 일관성은 프로토콜 계층에 의해 정의되는 규칙에 따라 코히어런트 메모리 공간 트랜잭션에 관여하는 분산된 에이전트에 의해 유지된다. QPI 일관성 프로토콜은 (아래에 더욱 상세히 설명되는) 홈 스누프 및 소스 스누프 동작을 모두 지원한다.
직렬 상호 접속 링크용 공통 기준 클록
위에서 설명된 바와 같이, QPI는 송신 컴포넌트에서 Fwd Clk 및 수신 컴포넌트에서 Rcvd Clk에 의해 도 2에 도시된 전송된 차동 클록을 사용한다. 클록 신호가 전송된다 할지라도 링크의 양측이 공통 기준 클록에 대해 동기화되어야 하는 요구 조건이 있다. 이것은 기준 클록(200)과 기준 클록 주파수를 QPI 링크에 의해 사용되는 더 높은 주파수로 곱하는데 사용되는 주파수 멀티플라이어(202)로서 도 2에 도시된다. 예를 들면, 일 실시예에서 QPI 링크 클록(Fwd Clk) 속도가 2.4, 2.93, 3.2 또는 4.0GHz인 동안 기준 클록은 100 또는 133MHz에서 동작한다.
QPI는 원래 SoC 아키텍처에서의 프로세서 코어와 다른 기능 블록을 접속하기 위한 인트라 프로세서 상호 접속부로서 개발되었다. 그 결과, SoC 다이 그 자체에서 사용가능한 하나 이상의 기준 클록 신호(및 대응 승산 클록킹 신호)가 있기 때문에 SoC 상에서 QPI 포트는 공통 기준 클록에 단순히 액세스한다.
(많은 다른 상호 접속부와 비교할 때) QPI의 추가적 양태는 QPI 프로토콜이 계층에 기반하기 때문에 어드레스 기반 방식을 사용한 에이전트간 메시지 라우팅과 같은 네트워크형 기능성을 지원하도록 설계된다는 것이다. QPI가 고유의 네트워크형 기능성을 갖기 때문에 다른 QPI 링크 기준에 부합되는 한 QPI 포트가 배치될 수 있는 물리적 제한이 없다. 이것은 정의된 타이밍 요구 사항을 포함하는 QPI 물리적 계층을 지원하는데 적합한 신호 통로를 포함한다. 특히, 공통 기준 클록 신호는 내부 링크(예를 들면, SoC 내부) 및 외부 QPI 링크(즉, 물리적으로 별도의 컴포넌트에 접속하는 링크)를 포함하는 QPI 링크의 양 단부에서 요구된다.
블레이드 서버의 맥락에서, 블레이드 사이의 외부 QPI 링크는 중간면 또는 후면에서 라우팅되는 구리 트레이스를 사용하여 구현될 수 있다. 그러나 이 방식은 공통 기준 클록 요구 사항 및 라우팅 트레이스 제한으로 인해 제한된 확장성을 가지고 있다. 기준 클록 타이밍 요구 사항은 매우 엄격하기 때문에(예를 들면, QPI 링크의 대향 단부에서 기준 클록 입력간 최대 시간차가 매우 작음), 공통 기준 클록 소스로부터 QPI 포트 인터페이스까지의 구리 트레이스의 길이는 (실질적인 정도 내에서 기준 클록 주파수, 링크 주파수, 트레이스 길이 등과 같은 다양한 변수에 따라) 매칭될 필요가 있다. 실질적인 관점에서 중간면 또는 후면 방식을 사용하여 QPI 링크를 통한 통신으로 링크될 수 있는 블레이드 또는 서버 보드의 수는 2개의 블레이드 또는 보드처럼 제한된다. - 일단 추가적인 블레이드 또는 보드가 추가되면 트레이스(및 블레이드/보드 및 중간면 또는 후면 상에서 요구되는 트레이스의 수 및 대응 부동산)의 라우팅 복잡성이 실질적으로 증가한다. 따라서, 이 접근 방법은 블레이드 서버 및 랙 서버에서 QPI 인터 블레이드 또는 인터 보드 링크의 확장성을 위한 실질적인 해법이 아니다.
본 명세서에의 실시예의 양태에 따라서, 블레이드 서버 및 랙 서버에서 QPI 인터 블레이드 및 인터 보드 링크의 더 큰 확장성을 지원하기 위한 기술이 개시된다. 기술의 일 양 태는 QPI 포트 또는 인터페이스에서 공통 기준 클록을 제공하는 것에 관한 것이다.
도 3 및 도 4는 블레이드 서버 내의 블레이드와 랙 서버 내의 서버 사이의 직렬 상호 접속 링크(예를 들면, QPI 링크)를 지원하기 위한 공통 기준 클록 방식의 각각의 실시예를 도시한다. 도 3에 도시된 바와 같이, 클록 합성기(300)는 블레이드 서버(304)에 있는 각각의 블레이드(302)에 접속되는 8개의 기준 클록 출력을 구비한다. 각각의 클록 신호는 2 선(예를 들면, 동축) 케이블(306)을 통해 전송되는 차동 신호를 포함한다. 도 4는 4개의 서버(402)를 포함하는 랙 서버(400)에 대한 공통 기준 클록 스킴을 묘사한다. 이 구성에서, 클록 합성기(404)는 4개의 기준 클록 신호를 2 선 케이블(406)을 통해 각각의 랙 서버(402)에 공급한다.
도 3 및 도 4에서 기준 클록 신호를 송신하도록 사용되는 케이블(306, 406)의 라우팅은 단순화되고 블록 레벨에서 접속을 나타내도록 사용된다. 위에서 논의된 바와 같이, 기준 클록 신호의 타이밍 요구 사항은 매우 엄격하다. 따라서, 일 실시예에서, 이것은 같은(즉, 실질적으로 동일한) 케이블 길이를 사용하여 클록 합성기(300 또는 404)로부터 블레이드(302) 또는 서버(402) 각각으로 어드레스 지정된다. 대안적인 방식은 클록 합성기와 블레이드(302) 또는 서버(402) 사이의 신호 전파 지연이 실질적으로 동일하도록 케이블의 길이를 신호 전파 지연 요소와 결합하는 것이다.
도 5는 공통 기준 클록 신호를 4개의 블레이드(502-0, 502-1, 502-2, 502-3)(또한, 블레이드 0, 블레이드 1, 블레이드 2, 블레이드 3으로 분류됨)에 공급하는 클록 합성기 보드(500)를 사용하는 QPI 블레이드 대 블레이드 상호 접속 구현의 일 실시예에 대한 세부 사항을 도시한다. 클록 합성기 보드(500)는 차동 버퍼(508)에 입력되는 차동 클록 신호를 제공하는 결정(506)에 결합되는 클록 합성기 칩(504)을 포함한다. 일반적으로, 결정(506)은 매우 안정된 결정의 물리적 주파수의 함수인 주파수에서 차동 클록 신호를 생성하기 위해 클록 합성기 칩(504)에 의해 사용된다.
클록 합성기 칩(504)은 기준 클록 신호 생성을 위해 공통적으로 사용되는 다양한 클록 합성기 칩 중 하나를 포함할 수 있다. 일 실시예에서, 클록 합성기 칩(504)은 인텔의 CK420BQ 클록 규격을 준수하고 100MHz 또는 133MHz의 출력 주파수를 생성한다. 클록 합성기 칩(504)에 의해 생성되는 차동 클록 출력 신호 쌍의 수에 따라, 차동 버퍼(508)는 사용될 수도 있고 사용되지 않을 수도 있다. 예를 들면, 실레고(Silego) SLG84901과 같은 클록 합성기 칩은 4개의 차동 CPU 클록 출력을 제공한다. 따라서, 4개의 보드 구현을 위해 차동 버퍼(508)가 필요하지는 않을 것이다. 그러나 공통 클록 신호를 클록 합성기 칩에 의해 제공되는 차동 클록 신호 출력의 수보다 더 많이 제공하는 구현을 위해, 차동 클록 신호를 복제하는 수단이 구현될 것이다. DB1900Z, 9DB1200, DB800Q 등과 같이 사용될 수 있는 다양한 유형의 차동 버퍼가 있다. 클록 합성기 보드(500)는 또한 동축 케이블용 동축 커넥터와 같은 각각의 차동 출력 신호용의 적절한 케이블 커넥터를 포함한다.
각각의 블레이드(502-0, 502-1, 502-2, 502-3)는 도 5에 예시된 바와 같이 유사하게 구성되고, 여기에서 유사한 컴포넌트는 동일한 기본 참조 번호를 컴포넌트가 서로 연관된다는 것을 나타내는 서로 다른 접미사와 공유한다(예를 들면, 5xx-0, 5xx-1, 5xx-2, 5xx-3). 따라서, 다음의 설명이 블레이드(520-0)에 적용되는 동안, 각각의 블레이드(502-1, 502-2, 502-3)는 유사한 컴포넌트를 갖는 것으로 이해될 것이다. 예시된 실시예에서, 블레이드(502-0)는 CPU(510-0), 인터포저(512-0), CUP 소켓(514-0), 차동 증폭기(516-0), 2:1 멀티플렉서(mux)(518-0) 및 관련 결정을 구비하는 온보드 클럭 합성기 칩(520-0)을 포함한다. 차동 버퍼(516-0)는 클록 합성기 칩(520-0)에 의해 생성되는 차동 기준 클록 신호 또는 클록 합성기 보드(500)로부터 수신된 외부 기준 클록 신호를 복제하고 복제된 기준 클록 신호를 다양한 블레이드 컴포넌트에 제공하도록 사용된다. 이러한 컴포넌트는 내부 주파수 멀티플라이어를 통해 수신하는 기준 클록 신호를 더 수정할 수 있고, 그렇지 않으면 그러한 주파수 멀티플라이어는 블레이드(502-0) 상에서 하나 이상의 별도의 컴포넌트(도시되지 않음)로 구현될 수 있다.
종래의 동작하에서, 온보드 클록 합성기 칩(520-0, 520-1, 520-2, 520-3)은 공통 기준 클록 신호를 각각의 블레이드(502-0, 502-1, 502-2, 502-3) 상의 다양한 컴포넌트에 제공하도록 사용될 것이다. 그러나 2:1 mux(518-0 내지 518-3)는 블레이드가 온보드 클록 합성기 칩에 의해 또는 클록 합성기 보드(500)에 의해 생성되는 것과 같은 외부 기준 클록 신호를 통해 공급되도록 기준 클록 신호를 인에이블 시킨다. 따라서 각각의 2:1 mux(518-0 내지 518-3)가 클록 합성기 보드(500)에 의해 공급되는 외부 기준 클록 신호를 사용하도록 스위치 될 때, 각각의 블레이드(502-0 내지 502-3) 상의 컴포넌트는 블레이드 사이에 동기화되는 공통 기준 클록 신호를 사용한다. 대안으로, 일 실시예에서 클록 합성기 보드(500)로부터의 공통 기준 클록은 각각의 블레이드(502-0 내지 502-3)에 있는 차동 증폭기에 직접 제공되고 따라서 2:1 mux 및 온보드 클록 합성기에 대한 필요성을 제거한다. 따라서, 이 실시예에서 2:1 mux(518-0 내지 518-3) 및 온보드 클록 합성기(520-0 내지 520-3)는 존재하지 않는다.
각각의 CUP(510-0) 및 인터포저(512-0)는 각각의 QPI 인터페이스(VF)(522-0, 524-0)를 포함하는 것으로 도시된다. 또한, 일 실시예에서 구현되는 전기-광(electrical-to-optical(E-O)) 인터페이스(526-0)를 포함하는 인터포저(512-0)가 도시된다. 대안적인 구성에서, 전기-광 인터페이스(526-0)는 광 케이블보다 와이어 상호 접속 케이블에 접속되도록 구성되는 전기 커넥터로 대체된다.
조립시 인터포저(512-0)는 CPU(510-0)와 CPU 소켓(514-0) 사이에 삽입된다. 인터포저를 사용하지 않는 통상의 설치하에서, CPU(510-0)의 밑면 상의 핀의 어레이는 소켓(514-0) 상의 정합 커넥터 부재(예를 들면, 핀 리셉터클)의 유사한 어레이에 삽입될 것이다. 인터포저(512-0)의 기능의 일부는 적층 구조에서 동일한 접속을 가능하게 하기 위한 것이다. 따라서 인터포저(512-0)의 윗면은 인터포저의 밑면에 있는 핀의 어레이에 전기적으로 결합되는 핀 리셉터클의 어레이를 구비한다. 따라서 인터포저(512-0)가 CPU에 설치되면 소켓(514-0), CUP(510-0)는 인터포저(512-0)에 설치되고 결과적인 전기 접속은 CPU(510-0)가 CPU 소켓(514-0)에 직접 설치되었을 경우와 유사하다. 대안적인 구성에서 유사한 기능성을 갖춘 인터포저 또는 회로 보드/기판은 CPU 소켓에서 이격되는 블레이드 또는 서버 보드에 결합될 수 있고 적용 가능한 인터포저 회로는 보드 상에서 라우팅되는 전기 트레이스를 통해 QPI 인터페이스(522-0)에 전기적으로 접속된다.
인터포저(512-0)는 CPU(510-0)의 QPI 인터페이스(522-0)와 인터페이스를 제공하고 QPI 인터페이스(522-0)와 광 또는 와이어 케이블 인터페이스를 효과적으로 제공하도록 구성된다. QPI 인터페이스(522-0)는 CPU(510-0)용 QPI 인터페이스의 두 가지 양태를 대표한다. 제 1 양태는 아래에 더 상세히 설명되는 QPI 인터페이스 블록에 대응하는 CPU(510-0)에 삽입되는 로직 및 회로에 대응한다. 제 2 양태는 CPU(510-0) 외부의 컴포넌트에 QPI 물리적 계층 시그널링을 지원하기 위해 QPI 외부 인터페이스를 포함하는 한 세트의 핀이다. 유사한 방식으로 인터포저(512-0) 상의 QPI 인터페이스(524-0)는 QPI 외부 인터페이스에 대응하는 CPU(510-0) 상의 정합 핀과 결합하도록 구성되는 한 세트의 리셉터클을 대표한다. QPI 인터페이스(524-0)는 이하 더 상세히 설명되는 바와 같이, QPI 상호접속 기능을 가능하게 하기 위해 버퍼 및 관련 로직 및/또는 신호 조정과 같은 추가적인 양태를 더 포함할 수 있다.
QPI 전기 신호는 인터포저(512-0) 상에서 QPI 인터페이스(524-0)로부터 전기-광 인터페이스(526-0)로 라우팅된다. 일 실시예에서, 인터포저(512-0)는 다중 계층 회로 보드를 포함하고, 신호는 회로 보드에 삽입되는 대응 와이어 트레이스를 통해 라우팅된다. 다른 유형의 기판이 또한 사용될 수 있다. 전기-광 인터페이스(526-0)는 전기-광 인터페이스(526-0)에 결합되는 광 케이블을 통한 아웃바운드 송신을 위해 QPI 인터페이스(524-0)로부터 수신된 전기 신호를 광 신호로 변환하고 광 케이블(또는 케이블 구현에 따른 별도의 광 케이블)를 통해 수신되는 인바운드 광 신호를 전기 신호로 변환하도록 구성된다. 일 실시예에서, 전기 신호 및 전기 케이블보다 광 신호 및 관련 광 케이블이 전자기 장해(electro-magnetic interference(EMI)) 효과를 감소시키기 위해 사용된다. 전기-광 인터페이스(526-0)는 광 케이블을 접속하도록 구성되는 적절한 광 커넥터를 더 포함하는 점이 주목된다.
위에서 설명된 바와 같이, 다른 실시예에서 광 신호 및 케이블링 보다 전기 신호 및 케이블링이 블레이드 사이의 링크를 위해 사용된다. 따라서 대응 전기 광 케이블에 접속하기 위한 적절한 커넥터를 포함하는 대응 QPI 링크 케이블 및 인터페이스가 이 실시예에서 인터포저(512-0) 상에 장착된다(도시되지 않음). 일 실시예에서 트윈액스(twinax) 케이블이 사용된다.
도 5는 블레이드(520-0 내지 502-3) 상에서 인터포저(512-0 내지 512-3) 사이에 결합되는 복수의 QPI 케이블을 더 도시한다. 이들은 광 및 전기 케이블을 모두 예시하는 QPI 케이블(530, 532, 534, 536, 538, 540)을 포함한다. 도 5는 각각의 블레이드(502-0 내지 502-3)가 QPI 링크를 통해 각각의 다른 블레이드와 서로 통신 가능하게 링크되는 예시적 구성을 도시한다. 그러나 다른 구성이 사용될 수도 있다. 일반적으로 병렬 프로세싱 동작에 참여하는 주어진 블레이드는 대응 QPI 링크를 사용하는 하나 이상의 참여 블레이드에 링크될 수 있다. 일 실시예에서 복수의 블레이드는 데이지 체인(daisy chain) 방식으로, 각각의 QPI 링크를 통해 2 개의 다른 블레이드와 접속되는 각각의 블레이드와 링크된다. 이러한 방식으로, 각각의 블레이드는 하나 이상의 홉(hop)을 포함하는 QPI 링크를 통해 각각의 블레이드와 통신할 수 있게 된다. 데이지 체인이 폐쇄되면 추가의 성능이 다양한 트랜잭션을 위한 홉의 수의 감소를 통해 달성될 수 있다.
인터포저 사이에 케이블을 사용하고 라우팅하는 것 외에, 다른 구성이 사용될 수 있다. 일 실시예에서, 케이블의 세그먼트는 블레이드 또는 서버가 대응 블레이드 서버 샤시 또는 서버 랙에 설치될 때 인터포저로부터 블레이드 또는 서버 외부에 설치되거나 그렇지 않으면 블레이드 또는 서버와의 외부 접속을 지지하는 케이블 커넥터 또는 커넥터의 세트로 라우팅된다. 인터포저를 사용하지 않는 다른 실시예에서, 신호 트레이스는 CPU에서 QPI 인터페이스 핀의 세트에 대응하는 소켓에 있는 핀아웃으로부터 블레이드 또는 서버의 메인 보드에 삽입되고, 블레이드 또는 서버 내부에 있는 커넥터 또는 외부 커넥터(또는 그 둘의 결합)에 링크된다. 선택 사항으로 전기-광 인터페이스 컴포넌트는 신호 트레이스와 광 케이블 또는 케이블들이 설치시 결합되는 적용 가능 광 케이블 커넥터 또는 커넥터 세트 사이에 동작 가능하도록 결합될 수 있다.
예시적인 블레이드 및 시스템 아키텍처
도 6은 서버 블레이드 또는 랙 서버 사이의 QPI 링크를 사용하여 서버 블레이드 또는 랙 서버에 걸쳐 코히어런트 메모리 트랜잭션을 지원하도록 구성될 수 있는 시스템 아키텍처(600)를 도시한다. 시스템 아키텍처(600)는 복수의 프로세서 코어(602)를 지원하는 (CPU의) SoC 프로세서를 포함하는 고급 시스템 아키텍처를 예시하고, 각각의 프로세서 코어는 (각각 블레이드(2, 3)의 CPU 소켓에 설치된 CPU에 대응하는) 링 2 및 링 3으로 분류되고 지칭되는 링 상호 접속부 상의 각각의 노드(604)에 결합된다. 단순화를 위하여 링 2 및 링 3 각각에 대한 노드는 단일 라인과 접속되는 것으로 도시된다. 세부 사항(606)에 도시된 바와 같이, 이들 링 상호 접속부 각각은 각각의 노드를 접속하는 4 개의 별도의 세트의 "와이어(wire)" 또는 전자 경로를 포함하고 따라서 각각의 링 2 및 링 3에 대해 4 개의 링을 형성하다. 실제로, 예시되는 각각의 와이어에 대응하는 복수의 물리적 전자 경로가 있다. 각각의 특정 접속이 하나 이상의 전자 경로를 사용할 수 있기 때문에 본 명세서에서 접속을 도시하기 위해 단일 라인을 사용하는 것은 단순함과 명료함을 위한 것이라는 점이 당업자에게 이해될 것이다.
시스템 아키텍처(600)의 문맥에서, 캐시 일관성 방식은 독립된 메시지 클래스를 사용하여 구현될 수 있다. 링 상호 접속 아키텍처의 일 실시예에서, 독립된 메시지 클래스는 각각의 메시지 클래스에 대해 각각의 와이어를 사용하여 구현될 수 있다. 예를 들면, 위에서 언급된 실시예에서, 각각의 링 2 및 링 3은 본 명세서에서 AD, AK, IV 및 BL로 분류되고 지칭되는 4 개의 링 경로 또는 와이어를 포함한다. 따라서, 메시지가 별도의 물리적 상호 접속 경로를 통해 전송되기 때문에, 송신의 관점에서 볼 때 서로 독립적이다.
일 실시예에서, 데이터는 순환 방식으로 노드 사이에 전달된다. 예를 들면, (하나 이상의 실제 실시간 클록 사이클에 걸쳐 있는) 각각의 실제 또는 논리 클록 사이클 동안, 데이터는 링에서 한 노드로부터 인접 노드로 진행된다. 일 실시예에서, 다양한 신호 및 데이터는 링 주위를 시계 방향 및 반시계 방향으로 양방향으로 이동할 수 있다. 일반적으로, 링 2 및 링 3에서 노드는 버퍼링된 노드 또는 버퍼링되지 않은 노드를 포함할 수 있다. 일 실시예에서, 링 2 및 링 3에서 노드의 적어도 일부는 버퍼링되지 않는다.
링 2 및 링 3 각각은 복수의 노드(604)를 포함한다. Cbo n(n은 숫자임)으로 분류되는 각각의 노드는 (코어의 엔진의 수 n으로 정의되는) 동일한 수 n을 공유하는 프로세서 코어에 대응하는 노드이다. QPI 노드 3-0, 2-0, IIO 노드 및 PCIe 노드를 포함하는 시스템 아키텍처(600)에 도시되는 다른 유형의 노드도 있다. 예시적인 실시예에서, QPI 노드 3-0는 QPI 에이전트 2-0, 2-1에 결합되는 QPI 에이전트 3-0, 3-1 및 QPI 노드 2-0 노드에 동작 가능하게 접속된다. IIO 노드는 입력/출력 인터페이스(610)에 동작 가능하게 접속된다. 유사하게, PCIe 노드는 PCIe 인터페이스(612, 614)에 동작 가능하게 접속된다. "X"로 표시되는 복수의 노드가 더 도시되고, 이들 노드는 타이밍 목적으로 사용된다. QPI, IIO, PCIe 및 X 노드는 단지 일 구현 아키텍처의 예시일 뿐이고 다른 아키텍처는 그보다 많거나 적은 각각의 유형의 노드를 구비하거나 전혀 구비하지 않을 수 있다. 또한, 다른 유형의 노드(도시되지 않음)가 구현될 수 있다.
QPI 에이전트 3-0, 3-1, 2-0, 2-1은 QPI 에이전트와 이들이 결합되는 QPI 노드사이의 QPI 패킷의 전송을 가능하게 하기 위한 회로 및 로직을 포함한다. 이 회로는 진입 버퍼(616, 618, 620, 622) 및 출구 버퍼(624, 626, 628, 630)로 도시되는 진입 및 출구 버퍼를 포함한다.
시스템 아키텍처(600)는 또한 2 개의 추가적 QPI 에이전트 0-1, 1-1을 도시하고, CPU의 링 상의 QPI 노드에 대응하는 각각의 QPI 에이전트 0-1, 1-1은 서버 블레이드 0, 1에서 대응 인터포저 및 소켓에 설치된다(링 및 노드는 도시되지 않음). 위에서처럼, 각각의 QPI 에이전트는 진입 버퍼(632, 634) 및 출구 버퍼(636, 638)로 도시되는 진입 및 출구 버퍼를 포함한다. 전체 4 개의 링 0-3을 도시하는 시스템 아키텍처(600) 및 시스템 아키텍처(600a)에 대한 추가적인 세부 사항은 도 6a 내지 도 6c에 도시된다.
시스템 아키텍처(600)는 3 개의 블레이드 대 블레이드 QPI 링크(601, 603, 605)뿐만 아니라 외부 공통 기준 클록 신호(607)를 더 도시한다. 또한, 도 6에 도시되지 않은 블레이드 0과 블레이드 1 사이의 유사한 블레이드 대 블레이드 QPI 링크가 있다. 위에서 설명된 바와 같이, 서버 블레이드 또는 랙 서버는 블레이드 또는 서버용 기준 클록 신호로서 보드 상에서 생성된 기준 클록 신호가 아닌 외부 기준 클록 신호를 사용하도록 구성된다. 그 결과, 복수의 블레이드 또는 서버가 (도 5의 클록 합성기 보드(500)에 의해 지원되는 것과 같은) 동기화된 외부 기준 클록 신호를 사용할 때 블레이드 대 블레이드 QPI 링크(601, 603, 605)의 대향 단부에서의 QPI 타이밍이 또한 동기화되어, QPI 프로토콜 및 물리적 계층에 순응하는 메시지가 QPI 링크를 통하여 송신될 수 있게 한다.
멀티 프로세서(또는 멀티 코어) 환경에서 코어 일관성을 유지하는 관점에서, 다양한 메커니즘이 데이터가 손상되지 않도록 보장하기 위해 사용된다. 예를 들면, 시스템 아키텍처(600)에서, 주어진 CPU에 대응하는 각각의 프로세서 코어(602)는 일반적으로 다이나믹 랜덤 액세스 메모리(dynamic random access memory(DRAM))의 하나 이상의 뱅크를 포함하는 메모리 스토어(640-3 또는 640-2)에 의해 도시된 바와 같이, CPU와 관련되는 공유 메모리 스토어로의 액세스를 제공받는다. 단순화를 위하여 공유된 메모리 스토어에 접속하는 것을 가능하게 하기 위한 메모리 인터페이스 회로가 도시되지 않고, 오히려 각각의 링 2 및 링 3에 있는 프로세서 코어가 홈 에이전트 노드 2(HA 2) 및 홈 에이전트 노드 3(HA 3)를 통해 메모리 스토어에 각각 접속되는 것으로 도시된다. 또한, 메모리 인터페이스 회로는 일반적으로 온 칩 메모리 또는 오프 칩 메모리에 결합된 오프 칩(즉, CPU SoC 다이 외부의) 메모리 컨트롤러를 포함할 수 있다. 또한, DRAM 메모리 자체는 오프 칩이다.
각각의 프로세서 코어가 각각의 코드를 실행하기 때문에, 다양한 메모리 액세스가 수행될 것이다. 공지된 바와 같이, 현대의 프로세서는 코어에 더 가까운 캐시 메모리 라인을 저장하기 위해 하나 이상의 메모리 캐시 레벨을 사용하고 따라서 그러한 메모리로의 더 빠른 액세스를 가능하게 한다. 그러나 이것은 메모리를 공유(즉, 메인) 메모리 스토어로부터 로컬 캐시로 복사하는 것을 수반하고, 동일한 메모리 라인의 복수의 복사본이 시스템에 존재할 수 있음을 의미한다. 메모리 무결성을 유지하기 위하여 캐시 일관성 프로토콜이 사용된다. 공지의 MESI 캐시 일관성 프로토콜 하에서 프로세서(또는 코어)가 메인 메모리로부터 로컬 캐시로의 메모리 라인의 제 1 복사본을 만들 때, 캐시 라인을 배타적(E)으로 표시하기 위한 메커니즘이 사용되어, 동일한 메모리 라인에 액세스를 시도하는 다른 코어가 그 메모리 라인으로의 배타적 액세스를 가지지 않는다는 것을 알게 된다. 둘 이상의 코어가 동일한 캐시 라인의 복사본을 가지고 그 라인에 있는 데이터가 변경되지 않았으면(즉, 캐시에 있는 데이터가 메인 메모리에 있는 라인에서와 동일하면), 캐시 라인은 공유(S) 상태에 있다. 일단 로컬 캐시에 있는 데이터에 변화가 있으면, 라인은 그 캐시에 대해 수정(M)으로 표시되고, 해당 라인에 대한 데이터의 변화된 상태를 더이상 반영하지 않기 때문에 라인의 다른 복사본이 무효(I)로 표시된다. 일단 수정된 캐시 라인이 메인 메모리에 다시 기록되면 상태는 배타적으로 복귀한다.
최근, 인텔® 코포레이션은 MESIF 캐시 일관성 프로토콜이라고 하는 수정된 MESI 캐시 일관성 프로토콜에 부가되는 새로운 포워드 또는 "F" 상태를 소개했다. F 상태는 캐시가 주어진 라인에 대한 임의의 요구에 대해 지정된 응답자로서 역할해야 한다는 것을 지시한다. MESI 프로토콜을 사용하는 캐시의 시스템에서, 라인을 S 상태로 유지하는 복수의 캐시에 의해 수신되는 캐시 라인 요구가 복수의 응답을 수신할 것이다. 그러나 MESIF 프로토콜을 사용하는 캐시의 시스템에서, 캐시 라인 요구는 라인을 F 상태로 유지하는 캐시에 의해서만 응답할 것이다.
MESI 및 MESIF 프로토콜은 캐시 일관성 프로토콜의 예이고, 따라서 이들은 제한하고자 함이 아니라, 본 명세서에 개시되는 아키텍처에 따라 링의 주변과 서버 블레이드 및 랙 서버 사이에 전송되는 메시지에 대응하는 예시적인 메시지 클래스의 사용을 설명하기 위해 본 명세서에서 사용된다.
또한, 통상 다중 레벨의 캐시를 구비하고, 프로세서 코어에 가장 가까운 캐시는 최소한의 대기 시간을 가지고, 더 멀리 떨어진 캐시는 더 크지만 더 긴 대기 시간을 갖는다. 예를 들면, 일반적인 구성은 통상 L1 및 L2 캐시라고 언급하는 제 1 및 제 2 레벨 캐시를 사용할 것이다. 다른 통상 구성은 제 3 레벨 또는 L3 캐시를 더 사용할 수 있다.
시스템 아키텍처(600)의 맥락에서, 최고 레벨 캐시는 최후 레벨 캐시 또는 LLC로 불린다. 예를 들면, 주어진 코어에 대해 LLC는 일반적으로 L1 및 L2 캐시가 또한 사용되면 L3 유형의 캐시를 포함하거나, 단지 다른 캐시만이 L1 캐시이면 L2 유형의 캐시를 포함할 수 있다. 물론, 이것은 다른 레벨의 캐시로 확장될 수 있고 LLC는 최후(즉, 최고) 레벨의 캐시에 대응한다.
도 6의 예시적인 구성에서, 각각의 프로세서 코어(602)는 그 코어에 대해 "사설(private)"인 L1 또는 L1/L2 캐시(644)에 결합되는 프로세싱 엔진(642)을 포함한다. 반면, 각각의 프로세서 코어는 또한 분산된 LLC(646)의 "슬라이스(slice)"와 공동 배치되고, 다른 코어 각각은 분산된 슬라이스 모두에 대한 액세스를 구비한다. 일 실시예에서, 분산된 LLC는 해당 어드레스 범위로 나눈 N 블록을 사용하여 N 코어 사이에 물리적으로 분산된다. 이러한 분산 방식 하에서, 모든 N 코어는 임의의 주어진 어드레스에 대한 "홈(home)" 슬라이스를 찾기 위해 어드레스 해시를 사용하여 모든 N LLC 슬라이스와 통신한다. 적합한 상호 접속 회로는 코어와 슬라이스 사이의 통신을 가능하게 하기 위해 사용되지만, 그러한 회로는 단순 명료함을 위하여 도 6에 도시되지 않는다.
더 예시된 바와 같이, 시스템(600)에서 각각의 노드(604)는 시스템에 의해 구현되는 캐시 코히어런트 프로토콜과 연관하여 신호 및 데이터 초기화 및 수신에 관한 메시징을 수행하도록 구성되는 캐시 에이전트(648)와 연관되고, 각각의 캐시 에이전트(648)는 그 상관된 LLC(646)로 맵핑되는 어드레스에 대응하는 캐시 관련 동작을 처리한다. 또한, 일 실시예에서, 각각의 홈 에이전트 HA2, HA3는 각각의 캐시 필터(650, 652)를 사용하고, 다양한 캐싱 및 홈 에이전트는 공유 메모리(640-2, 640-3)의 일부에서 구현되는 각각의 디렉토리(654-2, 654-3)에 저장되는 캐시 라인 사용 데이터에 액세스하여 갱신한다. 다른 기술이 캐시 라인 사용에 관한 정보를 유지하기 위해 사용될 수 있다는 점이 당업자에게 인정될 것이다.
도 6a는 제 4 CPU 블레이드 대 블레이드 QPI 링크(609)와 관련된 QPI 에이전트 및 버퍼에 대한 세부 사항과 함께, 블레이드 0, 1에 설치되도록 구성되는 CPU의 추가적인 세부 사항을 도시하는 시스템 아키텍처(600a)를 도시한다. 각각의 링 2 및 링 3의 다양한 세부 사항은 동일한 도면에서 4 개의 내부 링 상호 접속부(링 1, 링 2, 링 3, 링 4)를 도시하기 위해 (도 6과 비교하여) 제거되었지만, 각각의 링 0 및 링 1은 도 6에 도시된 링 2 및 링 3과 유사한 컴포넌트를 가질 수 있다는 점이 이해될 것이다. 위와 같이, 각각의 링 0 및 링 1은 대응 에이전트와 함께 L1, L2 및 LLC 캐시를 포함하여, 관련 프로세서 코어 및 관련 캐시 컴포넌트가 결합되는 Cbo n(링 0에서 Cbo 18, Cbo 23 및 링 2에서 Cbo 24, Cbo 28과 같이)으로 분류되는 노드를 포함한다. 각각의 링 0 및 링 1은 본 명세서에서 논의되는 방식으로 코히어런트 메모리 동작을 지원하도록 구현되는 각각의 홈 에이전트 HA 0 및 HA 1을 포함한다.
CPU 블레이드 대 블레이드 QPI 링크(609)의 구성은 도 6에 도시되고 위에서 논의된 CPU 블레이드 대 블레이드 QPI 링크(601, 603, 605)와 유사하다. 이 예에서, CPU 블레이드 대 블레이드 QPI 링크는 QPI 에이전트 0-0, 1-0, 진입 버퍼(656, 658) 및 출구 버퍼(660, 662)에 의해 도시되는 바와 같이 링 0 상의 QPI 노드 0-1과 링 1 상의 QPI 노드 1-0 사이의 QPI 신호의 전송을 지원한다.
시스템 아키텍처(600a)에서, 주어진 블레이드에 대한 QPI 에이전트 및 인터페이스의 세트는 공통 QPI 노드보다 오히려 별도의 QPI 노드에 동작 가능하게 결합된다. 이것은 2 개의 QPI 에이전트에 동작 가능하게 접속되는 단일 QPI 노드를 사용하는 대안적 구성이다. 도 6a는 QPI 노드의 쌍이 동봉되는(예를 들면, QPI 노드 0-0, 0-1, 1-0, 1-1 등) 타원 점선을 더 도시한다. 이것은 비록 예시적인 목적으로 별도의 노드로 도시되었지만 이러한 노드는 실제로 도 6에 도시된 것과 유사한 단일 노드로 구현될 수 있다는 것을 예시하는 것이다.
블레이드 대 블레이드 QPI 링크에 관한 컴포넌트는 시스템(600)의 발췌된 도면을 도시하는 도 6b와 시스템(600a)의 발췌된 도면을 도시하는 도 6c에 더 명확히 도시된다. 알 수 있는 바와 같이, 블레이드 대 블레이드 QPI 링크(601, 603, 605, 609)는 CPU의 블레이드 대 블레이드 QPI 링크 및 내부 링이 더 큰 링 상호 접속 구조를 형성하도록 내부 링 상호 접속부 링 0, 링 1, 링 2, 링 3을 링크한다. 이 접근 방법에서, 주어진 CPU 내의 노드는 이 실시예에서 QPI인 공통 프로토콜을 사용하여 임의의 다른 CPU에 있는 노드와 통신할 수 있게 된다.
도 6b 및 도 6c는 각각 논리 블록(662) 및 물리 블록(664)을 포함하는 복수의 QPI 인터페이스(660)를 더 도시한다. 논리 블록(662)은 QPI 에이전트를 포함하여 인터페이스를 지원하기 위한 회로 및 로직을 도시한다. 반면 물리 블록(664)은 적용 가능한 커넥터 및 배선과 같은 링크의 단부에서의 물리적 접속을 도시한다. 또한, 물리 블록(664)은 구현되는 특정 구성에 적용할 수 있는 전기-광 인터페이스 또는 와이어 케이블을 더 도시한다.
블레이드 대 블레이드 QPI 링크를 통해 액세스되는 별도의 블레이드 상의 메모리 스토어 사이의 캐시 일관성을 유지하는 예시적인 구현
QPI의 고유의 특징 중 하나는 코히어런트 메모리 트랜잭션에 대한 지원이다. 이것은 QPI 프로토콜의 상위 계층에 의해 처리되는 메모리 트랜잭션과 관련하여 대응 메시지를 통해 구현된다. 메시지는 QPI 프로토콜 계층에 의해 정의되는 패킷을 사용하여 적용 가능한 에이전트에 전달된다. 표 1에 도시되는 다음의 메시지는 QPI 프로토콜에 의해 사용된다.
Figure 112014084946718-pct00001
요구 및 응답 메시지는 코히어런트 시스템 메모리 스페이스에 영향을 미치거나 (에이전트 사이의 구성, 메모리 맵핑된 I/O, 인터럽트 및 메시지와 같은) 비 코히어런트 트랜잭션용으로 사용된다.
분산된 캐시 및 통합된 메모리 컨트롤에서 시스템의 캐시 일관성은 프로토콜 계층에 의해 정의되는 규칙에 따라 코히어런트 메모리 스페이스 트랜잭션에 관여하는 분산된 에이전트에 의해 유지된다. QPI 일관성 프로토콜은 홈 스누프 및 소스 스누프 동작을 모두 허용한다. 홈 스누프 동작은 더 큰 확장성을 위해 최적화되는 반면, 소스 스누프는 더 짧은 대기 시간을 위해 최적화된다. 후자는 더 적은 수의 에이전트가 비교적 적은 양의 스누프 트래픽을 생성하는 더 적은 스케일의 시스템에서 일차적으로 사용된다. 더 많은 스누프 에이전트를 구비하는 더 큰 시스템은 큰 양의 스누프 트래픽을 생성하여 동작의 홈 스누프 모드로부터 이득을 볼 것이다. 일관성 방식의 일부로서, QPI 프로토콜은 공지의 메시(Modified Exclusive, Shared, Invalid(MESI)) 프로토콜을 구현하고 선택적으로 새로운 F(포워드) 상태를 소개한다.
일 실시예에서, QPI 프로토콜은 MESI 일관성 프로콜의 수정된 포맷을 구현한다. 표준 MESI 프로토콜은 모든 캐시 라인을 4 개의 상태 즉, 수정, 배타, 공유, 무효 중 하나로 유지한다. 새로운 판독 전용 포워드 상태는 또한 캐시 대 캐시 클린(clean) 라인 포워딩을 가능하도록 소개되었다. 이러한 상태의 특징은 아래의 표 2에서 요약된다. 단지 하나의 에이전트가 라인을 이 F 상태에서 주어진 시간에 가질 수 있고, 다른 에이전트는 S 상태 복사본을 가질 수 있다. 캐시 라인이 이 상태로 전송되었을 때조차도 홈 에이전트는 트랜잭션을 추적하는 리소스의 은퇴를 허용하도록 완료로 응답할 필요가 있다. 그러나 캐시 대 캐시 전송은 홈 에이전트의 메모리로부터의 데이터 외의 것을 반환시키기 위해 낮은 대기 시간 경로를 제공한다.
Figure 112014084946718-pct00002
QPI 일관성 프로토콜은 2 가지 뚜렷한 유형의 에이전트, 즉 캐싱 에이전트 및 홈 에이전트로 구성된다. 프로세서는 일반으로 2 가지 유형의 에이전트와 잠재적으로 복수의 각각의 유형의 에이전트를 구비한다.
캐싱 에이전트는 코히어런트 메모리로 트랜잭션을 개시할 수 있고 그 자신의 캐시 구조에 복사본을 보유할 수 있는 코히어런트 메모리에 트랜잭션을 개시할 수 있는 객체를 나타낸다. 캐싱 에이전트는 캐시 코히어런트 프로토콜에서 정의되는 동작에 따라 사라지거나 공급될 수 있는 메시지에 의해 정의된다. 캐싱 에이전트는 또한 코히어런트 메모리 콘텐츠를 다른 캐싱 에이전트에게 제공할 수 있다.
홈 에이전트는 캐싱 에이전트와 함께 필요한 핸드쉐이킹(handshaking)을 포함하여 코히어런트 트랜잭션을 제공하는 객체를 나타낸다. 홈 에이전트는 코히어런트 메모리의 일부를 감독한다. 홈 에이전트 로직은 구체적으로 메인 메모리용 메모리 컨트롤러 회로가 아니라 주어진 어드레스 스페이스에 대해 일관성을 유지하는 추가의 QPI 로직이다. 다른 캐싱 에이전트 가운데 발생할 수 있는 충돌을 관리하는 업무를 담당한다. 주어진 트랜잭션의 플로우에 의해 요구되는 적절한 데이터 및 소유권 응답을 제공한다.
일 실시예에 따르면, 코히어런트 메모리 트랜잭션은 블레이드 대 블레이드 QPI 링크를 통해 QPI 프로토콜의 사용을 통해 지원된다. 예를 들면, 코히어런트 메모리 방식은 메모리 일관성을 유지하면서, 다양한 CUP에 있는 캐싱 에이전트가 캐싱 에이전트의 CPU와 다른 블레이드 상의 CPU 모두에 있는 메모리 스토어로부터 메모리에 액세스할 수 있도록 블레이드를 통해 구현될 수 있다.
스누프
홈 스누프 일관성 동작은 다른 캐싱 에이전트의 스누핑을 담당하는 홈 에이전트를 정의한다. 메시지에 대한 기본 플로우는 도 7의 예에서 예시된 바와 같이 4 개까지의 동작을 포함하고, 도시된 링은 시스템 아키텍처(600a)에 도시된 (CPU의) 대응 프로세서에서 링 상호 접속부 링 0, 링 1, 링 2 링 3에 대응한다. 이 예에서, 원거리 에이전트에 의해 관리되는 어드레스에 대한 단순화된 판독 요구가 수행되고, 에이전트(700)는 링 0에 있는 노드 1에 결합되는 요구하는 캐싱 에이전트이고, 링 1 및 링 3은 하나 이상의 피어 캐싱 에이전트를 포함하고 링 2는 캐시 라인용 홈 에이전트인 홈 에이전트 2를 포함한다. 또한, 링 3에 있는 노드 3에서의 에이전트는 M, E 또는 F 상태에 있는 캐시 라인(702)의 복사본을 구비한다.
제 1 동작에서 캐싱 에이전트(700)는 문제의 메모리를 관리하는 홈 에이전트 2에 요구를 발행한다. 일반적으로 각각의 프로세서는 어드레스 범위 맵핑 등을 통해 공유된 메모리의 대응 부분을 관리할 것이다. 한편, 각각의 홈 에이전트는 어느 에이전트가 홈 에이전트가 관리하는 메모리에 대응하는 캐시 라인을 보유하는지 추적하도록 사용되는 디렉토리 구조(맵(704)으로 도시됨)를 유지한다. 또한, 각각의 캐싱 에이전트는 홈 에이전트가 어느 메모리 범위 또는 범위들과 연관되는지를 식별하는 메모리 맵을 유지할 것이다. 또한, 각각의 프로세서는 일반적으로 (예를 들면, 검출된 메모리 에러의 관점에서 보았을 때) 메모리 미러링(mirroring), 메모리 리맵핑(re-mapping)과 같은 기능을 지원하기 위해 동작 시스템에 제시되는 로컬 메모리 맵으로부터 물리적 메모리 맵을 추출하기 위한 설비를 포함할 것이다.
다음으로, 제 2 동작에서, 홈 에이전트 2는 요구에서 메모리 어드레스에 대응하는 캐시 라인을 보유하는 것으로 식별되는 캐싱 에이전트에 대한 스누프를 목표로 하기 위해 자신의 디렉토리 구조를 점검한다. 이 예에서, 맵(704)에서의 디렉토리 구조는 에이전트 3이 캐시 라인을 보유하고 있음을 지시하고, 따라서 홈 에이전트 2는 에이전트 3에 스누프 요구를 송신한다.
스누프 요구에 응답하여, 캐싱 에이전트 3은 응답을 홈 에이전트 2에 제 3 동작에서의 어드레스의 상태로 다시 보낸다. 이 예에서 에이전트 3은 캐시 라인(702)의 복사본을 적절한 상태로 구비하고, 캐시 라인 데이터의 복사본을 에이전트 1에 전달한다. 에이전트 3은 또한 데이터를 에이전트에 전송하였음을 지시하는 홈 에이전트 2에 응답한다. 홈 에이전트는 임의의 분쟁을 해결하고 필요하면 데이터를 원래의 요구하는 캐시 에이전트에게 되돌려 주고(우선, 데이터가 다른 캐싱 에이전트에 의해 전달되었는지 보기 위해 점검한 후 - 이 경우 전달되었음 -), 트랜잭션은 완료된다. 이것은 제 4 동작에 도시되고, 홈 에이전트 2는 트랜잭션이 완료되는 것을 지시하는 메시지를 에이전트 1에 제공한다.
QPI 홈 스누프 동작 구현은 일반적으로 데이터의 사본을 구비할 수 있는 특정 캐싱 에이전트에 대한 스누프를 목표로 하기 위해 디렉토리 구조를 포함한다. 이것은 홈 에이전트가 상호 접속 패브릭에 대해 다루어야 하는 스누프 및 스누프 응답의 수를 감소시키는 효과를 갖는다. 이것은 비록 대기 시간 및 복잡성의 비용을 치르지만 복수의 에이전트를 구비하는 시스템에서 매우 유용하다. 따라서, 홈 스누프는 복수의 에이전트에 대해 최적화된 시스템을 목표로 한다.
데이터는 링 0-3에서의 링 세그먼트와 블레이드 대 블레이드 QPI 링크(601, 603, 605, 609)의 결합을 이용하여 엔티티 사이에서 전송된다. 도 7에 예시된 예에서, (수신 객체를 지시하는 화살표를 갖는 굵은 점선으로 도시되는) 모든 전송은 링과 QPI 링크에서 시계 방향으로 이동하는 것으로 도시된다. 그러나 링은 시계 방향 및 반시계 방향으로 모두 이동될 수 있으므로 이것은 단지 예시를 위한 것이고 주어진 데이터 전송은 한 방향으로의 한 링의 이동과 반대 방향으로의 다른 링의 이동을 포함할 수 있다.
예를 들면, 제 1 동작 동안 데이터 전송은 링 0에 있는 노드 1로부터 링 2에 있는 홈 에이전트 2로 이루어진다. 이러한 예시적인 이동은 블레이드 대 블레이드 QPI 링크(609)를 통해 QPI 노드 1-0으로 전송하기 위한 출구 포인트인 QPI 노드 0-1에 도달할 때까지(도 6c에 도시된 상세도를 참조) 시계 방향으로 링 0을 이동한다. 전송은 그 후 블레이드 대 블레이드 QPI 링크(603)를 통해 (링 2에 대응하는) 블레이드 2에 있는 CPU와 교차하는 지점인 QPI 노드 1-1에 이를 때까지 시계 방향으로 링 1 주위에서 라우팅 된다. 전송은 그 후 홈 에이전트 2에 이를 때까지 링 2 주위를 시계 방향으로 라우팅된다. 다른 데이터 전송은 유사한 방식으로 예시된다.
공통 기준 클록을 사용하는 PCIe 블레이드 대 블레이드 상호 접속 링크
블레이드 대 블레이드 및 서버 대 서버 QPI 상호 접속 링크를 위한 지원뿐만 아니라, 공통 기준 클록 방식이 또한 공통 기준 클록을 사용하도록 구성될 수 있는 다른 유형의 상호 접속을 위해 구현될 수 있다. 일반적으로, 이들은 현재 존재하는 고속 직렬 상호 접속, 그러한 링크의 미래 버젼, 현재 존재하지 않는 미래의 직렬 상호 접속 링크를 포함할 수 있다. 그러한 한 예는 주변 컴포넌트 상호 접속 익스프레스(Peripheral Component Interconnect Express(PCIe)) 링크이다.
QPI와 같이, PCIe는 각각 송신 및 수신을 위한 하나 이상의 레인으로 구성되는 직렬 링크를 사용하여 포인트 대 포인트 상호 접속을 지원한다. PCIe 링크는 적어도 하나의 레인을 구비한다 - 각각의 레인은 한 세트의 다른 신호 쌍(송신용 한 쌍, 수신용 한 쌍)을 나타냄 - . 대역폭을 확장하기 위하여, 링크는 xN으로 표시된 복수의 레인을 수집할 수 있고, N은 임의의 지원된 링크 폭일 수 있다. 예를 들면, PCIe 3.0 규격에 관하여, PCIe 링크는 x1, x2, x4, x8, x12, x16, x31 레인 폭에 대한 동작을 포함한다. 하드웨어 초기화 기간 동안 각각의 PCIe 익스프레스 링크는 링크의 각각의 단부에서 두 에이전트에 의한 레인 폭 및 동작 주파수의 협상 후에 설정된다.
도 8에 도시된 바와 같이, PCIe는 물리적 계층, 데이터 링크 계층 및 트랜잭션 계층을 포함하는 계층화 프로토콜을 사용한다. 물리적 계층은 논리 서브 블록 및 전기적 서브 블록을 더 포함한다. PCIe는 컴포넌트 사이에 정보를 전송하기 위해 패킷을 사용한다. 패킷은 정보를 송신 컴포넌트에서 수신 컴포넌트로 전송하기 위해 트랜잭션 및 데이터 링크 계층에 형성된다. 송신된 패킷이 다른 계층을 통해 이동하므로, 이러한 계층에서 패킷을 처리하는데 필요한 추가적인 정보로 확장된다. 수신측에서, 역의 프로세스가 발생하고 패킷은 자신의 물리적 계층 표시로부터 데이터 링크 계층 표시로 변환되고 최종적으로 (트랜잭션 계층 패킷에 대해) 수신 장치의 트랜잭션 계층에 의해 처리될 수 있는 형태로 변환된다.
QPI PHY와 PCIe PHY 사이에 일부 유사성이 있지만 차이점도 있다. 이러한 차이점 가운데 링크 구성과 데이터 인코딩이 있다. 도 9는 PCIe x16 링크의 물리적 접속을 도시한다. "x16"으로 식별되는 이 링크는 16 레인을 사용하고 각각의 레인은 차동 신호 쌍을 포함한다. x16 링크를 지원하기 위한 회로를 구비하는 PCIe 상호 접속은 또한 2 개의 x8 링크로 구성될 수 있다. 또한, x16 링크의 폭은 에러의 검출에 응답하여 x8 링크로, 또는 심지어 x4 링크로 자동적으로 축소될 수 있다. 도 10은 4 개의 레인 0-3을 사용하는 PCIe x4 링크의 일 예를 도시한다.
기준 클록킹에 대하여, PCIe 링크는 PCIe 인터페이스의 각각의 포드에서 별도의 기준 클록을 사용한다. 그러나 PCIe 링크 성능(예를 들면, EMI) 및 견고성은 PCIe 링크의 PCIe 인터페이스에서 공통 기준 클록을 사용함으로써 향상될 수 있다. 이 접근 방법은 본 명세서에서 논의되는 PCIe 실시예에서 구현된다.
도 5a는 서버 블레이드(503-0, 503-1, 503-2, 503-3)(블레이드 0-3으로도 분류됨) 사이의 블레이드 대 블레이드 PCIe 링크를 사용하는 예시적인 4 개의 블레이드 구현을 도시한다. 도 5의 블레이드 대 블레이드 QPI 링크 구성에서와 같이, 도 5a에서의 구성은 양 도면에서 참조 부호를 공유하는 유사한 컴포넌트를 사용하고, 따라서 이러한 컴포넌트에 대해 본 명세서에서 추가적으로 설명되지 않는다. 위에서와 같이, 동일한 기본 참조 부호를 공유하는 컴포넌트는 유사한 컴포넌트를 나타낸다.
도 5에서의 블레이드(502-0)와 도 5a에서의 블레이드(503-0)의 비교에 대하여, 블레이드(503-0)에 대한 다른 컴포넌트는 CPU(511-0), 인터포저(513-0), PCIe 인터페이스(523-0, 525-0) 및 전기-광 인터페이스(527-0)를 포함한다. 컴포넌트는 일반적으로 이들이 QPI 대신 PCIe 시그널링 및 프로토콜과 관련된다는 것을 제외하면 도 5에서의 상대편과 유사하다. 도 5a는 블레이드 대 블레이드 PCIe 링크(531, 533, 535, 537, 539, 541)를 더 도시한다. 앞서와 같은, 이 블레이드 대 블레이드 PCIe 링크의 구성은 단지 예시일 뿐이다. 도 5a에 도시된 각각의 블레이드는 반드시 CPU 및/또는 인터포저만 포함할 필요는 없다는 것이 주목된다. 이것은 또한 예를 들면 다른 블레이드에 포함되는 장치에 결합되기 위해 PCIe 상호 접속 링크를 필요로 하는 시스템 온 칩(System-on-Chip(SoC)) 및/또는 다목적 그래픽 프로세싱 유닛(General Purpose Graphics Processing Unit(GPGPU))을 포함할 수 있다.
블레이드 대 블레이드 PCIe 링크를 사용하는 시스템 아키텍처(600d)가 도 6d에 도시된다. 쉽게 관찰되는 바와 같이, 시스템 아키텍처(600d)의 구성은 다음의 차이점을 제외하면 도 6a의 시스템 아키텍처(600a)와 유사하다. 각각의 링 0-3은 PCIe 노드 0-0, 0-1, 1-0, 1-1, 2-0, 2-1, 3-0, 3-1로 도시되는 PCIe 노드의 쌍을 포함한다. 이들 PCIe 노드 각각은 PCIe 에이전트 0-0, 0-1, 1-0, 1-1, 2-0, 2-1, 3-0, 3-1로 도시되는 PCIe 에이전트에 인터페이스 한다. 각각의 PCIe 에이전트는 진입 버퍼(617, 619, 621, 623, 633,635, 657, 659) 및 출구 버퍼(625, 627, 629, 631, 637, 639, 661, 663)로 도시되는 진입 및 출구 버퍼를 포함한다. 각각의 링 0-3은 또한 QPI 노드를 포함한다. 위에서와 같이, 시스템 아키텍처(600d)에 도시되는 노드는 단지 예시이고 링 0-3의 구성은 단순화된다.
PCIe 에이전트와 관련 진입 및 출구 버퍼는 물리적으로 PCIe 전기 및 광 케이블로 구현되는 블레이드 대 블레이드 PCIe 링크(611, 613, 615, 167)의 동작을 가능하게 한다. 적절한 물리적 인터페이스는 또한 PCIe 전기 또는 광학 케이블의 단부에 존재한다. 위에서 논의된 바와 같이, PCIe 링크의 레인 폭은 x1, x2, x4, x8, x12, x16 또는 x32 또는 이들 레인 폭의 결합일 수 있다.
위의 설명과 예시 도면에서 다양한 멀티 코어 CPU가 링 상호 접속 아키텍처를 사용하는 것으로 도시된다. 그러나 이것은 2 차원 메쉬(mesh) 상호 접속 패브릭 아키텍처를 포함하지만 여기에 제한되지 않는 다른 유형의 상호 접속 아키텍처가 사용될 수 있기 때문에 제한하는 것을 의미하지는 않는다. 예를 들면, 일 실시예에서, 하나 이상의 CPU는 네트워크 온 칩(Network on a Chip(NoC))을 포함하는 상호 접속 메쉬를 통해 결합되는 프로세서 코어의 어레이와 함께 단일 칩 컴퓨터(Single Chip Computer(SCC))를 포함할 수 있다.
본 명세서에 개시되는 외부 공통 기준 클록킹 방식을 사용하는 블레이드 대 블레이드 및 서버 대 서버 링크 구성은 병렬 프로세싱 작업을 위해 기존의 블레이드 및 랙 서버 구현을 능가하는 실질적인 장점을 제공한다. 예를 들면, 현재의 구성은 위에서 논의된 바와 같이 중간 면 또는 후면 상에 QPI 링크를 사용하는 2 개의 블레이드로 실질적으로 제한된다. 한편, 훨씬 더 큰 확장성이 본 명세서에 개시된 기술을 사용하여 얻을 수 있다. 또한, 메모리 일관성을 위해 QPI 고유의 지원의 구현과 결합하여 QPI 링크의 사용을 통해 추가의 장점이 제공된다. 그 결과 공유된 데이터 객체는 데이터 객체의 록킹과 (예를 들면 이더넷 스택과 같은) 네트워크 레벨 프로토콜을 사용하는 것과 같은 규정을 요구하는 기존의 접근 방법을 상당히 능가하여 데이터 액세스 폭을 증가시키는 메모리 또는 캐시 레벨에서 다른 블레이드 또는 서버상의 프로세서에 의해 액세스될 수 있다.
요약서에 설명된 것을 포함하는 본 발명의 예시적인 실시예에 대한 상기 설명은 본 발명을 개시된 정확한 형태로 제한하려는 것이 아니다. 본 발명의 특정 실시예 및 예가 예시를 위해 본 명세서에서 설명되었지만, 당업자들이 인식하는 바와 같이 다양한 균등한 수정이 본 발명의 범위 내에서 가능하다.
본 발명에 대한 이러한 수정은 위의 상세한 설명을 고려하여 이루어질 수 있다. 다음의 청구범위에서 사용되는 용어는 본 발명을 명세서와 도면에 개시되는 특정 실시예로 제한하도록 해석되지 않아야 한다. 또한, 본 발명의 범위는 청구항 해석에 관한 확립된 원칙에 따라 해석되어야 한다.

Claims (20)

  1. 복수의 서버 블레이드 또는 서버 - 각 서버 블레이드 또는 서버는 외부 기준 클록 신호 입력 포트(an external reference clock signal input port) 및 적어도 하나의 링크 상호 접속 인터페이스(link interconnect interface)를 구비함 - 와,
    복수의 출력 커넥터에서 복수의 공통 기준 클록 신호(common reference clock signals)를 생성하도록 구성되는 클록 합성기 보드(a clock synthesizer board)와,
    복수의 기준 클록 신호 케이블 - 각 케이블은 상기 클록 합성기 보드 상의 각각의 출력 커넥터와 서버 블레이드 또는 서버 상의 입력 포트 사이에 결합됨 - 과,
    대향 단부에서 상기 링크 상호 접속 인터페이스에 결합되고 상기 복수의 서버 블레이드 또는 서버를 통신 가능하게 링크하는 복수의 상호 접속 링크 케이블
    을 포함하고,
    시스템의 동작 동안 상기 공통 기준 클록 신호는 상기 서버 블레이드 또는 서버 사이에서 상기 복수의 상호 접속 링크 케이블을 통해 통신을 가능하게 하기 위해 상호 접속 시스템 클록 입력(interconnect system clock inputs)으로 사용되며,
    상기 신호가 상기 클록 합성기 보드를 나갈 때와 상기 복수의 서버 블레이드 또는 서버에 도달할 때 사이의 전파 지연이 상기 복수의 서버 블레이드 또는 서버에서 같도록 상기 클록 합성기 보드로부터 상기 복수의 서버 블레이드 또는 서버로 상기 신호가 제공되는
    시스템.
  2. 제 1 항에 있어서,
    상기 상호 접속 링크 중 적어도 하나는 퀵패스 상호 접속(QuickPath Interconnect(QPI)) 링크를 포함하는
    시스템.
  3. 제 1 항에 있어서,
    상기 상호 접속 링크 중 적어도 하나는 주변 컴포넌트 상호 접속 익스프레스(Peripheral Component Interconnect Express(PCIe)) 링크를 포함하는
    시스템.
  4. 제 1 항에 있어서,
    상기 복수의 상호 접속 링크 케이블 중 적어도 하나는 광 케이블을 포함하는
    시스템.
  5. 제 1 항에 있어서,
    적어도 하나의 서버 블레이드 또는 서버는 프로세서 소켓을 포함하는 메인 보드 - 상기 프로세서 소켓에 인터포저가 설치되어, 상기 인터포저는 프로세서와 상기 프로세서 소켓 사이에 놓임 - 를 포함하고, 상기 인터포저는 상호 접속 링크에 대응하는 상기 프로세서 상의 핀으로부터 상호 접속 케이블이 접속되는 상기 인터포저 상의 케이블 인터페이스로 신호를 라우팅하도록 구성되는
    시스템.
  6. 제 5 항에 있어서,
    상기 인터포저는 출력 전기 신호를 광 신호로 변환하고 착신 광 신호를 전기 신호로 변환하도록 구성되는 전기-광 인터페이스(electrical-to-optical interface)를 포함하는
    시스템.
  7. 제 1 항에 있어서,
    적어도 하나의 서버 블레이드 또는 서버는 상기 적어도 하나의 서버 블레이드가 외부 기준 클록 신호(external reference clock signal) 또는 온 보드 기준 클록 신호(on-board reference cloak signal)를 사용할 수 있게 하는 스위치 가능한 클록 입력을 포함하는
    시스템.
  8. 제 1 항에 있어서,
    상기 서버 블레이드 또는 서버의 적어도 일부는 상호 접속 링크 케이블을 통해 데이지 체인 구성(daisy chain configuration)으로 다른 서버 블레이드 또는 서버에 링크되는
    시스템.
  9. 제 1 항에 있어서,
    상기 복수의 기준 클록 신호 케이블은 같은 길이를 가지는
    시스템.
  10. 복수의 동기화된 외부 공통 기준 클록 신호를 복수의 서버 블레이드 또는 서버에 제공하는 단계와,
    상기 복수의 서버 블레이드 또는 서버 사이의 통신 링크를 지원하기 위해 상기 공통 기준 클록 신호 또는 공통 기준 클록 신호에서 유도되는 신호를 직렬 상호 접속 링크의 대향 단부에서 클록 타이밍 신호로서 사용하는 단계와,
    복수의 외부 공통 기준 클록 신호를 생성하기 위해 클록 합성기 보드를 사용하는 단계와,
    상기 신호가 상기 클록 합성기 보드를 나갈 때와 상기 복수의 서버 블레이드 또는 서버에 도달할 때 사이의 전파 지연이 상기 복수의 서버 블레이드 또는 서버에서 같도록 상기 클록 합성기 보드로부터 상기 복수의 서버 블레이드 또는 서버로 상기 신호를 제공하는 단계
    를 포함하는 방법.
  11. 삭제
  12. 제 10 항에 있어서,
    적어도 하나의 직렬 상호 접속 링크는 퀵패스 상호 접속(QuickPath Interconnect(QPI)) 링크를 포함하는
    방법.
  13. 제 12 항에 있어서,
    상기 QPI 링크를 통해 통신 가능하게 링크되는 제 1 및 제 2 서버 블레이드 또는 서버에 걸쳐 코히어런트 메모리 트랜잭션을 가능하게 하기 위해 QPI 링크를 통해 QPI 메시지를 사용하는 단계를 더 포함하는
    방법.
  14. 제 10 항에 있어서,
    적어도 하나의 직렬 상호 접속 링크는 주변 컴포넌트 상호 접속 익스프레스(Peripheral Component Interconnect Express(PCIe)) 링크를 포함하는
    방법.
  15. 제 10 항에 있어서,
    상기 복수의 직렬 상호 접속 링크를 통해 데이지 체인 구성으로 상기 복수의 서버 블레이드 또는 서버를 링크하는 단계를 포함하는
    방법.
  16. 서버 블레이드로서,
    외부 공통 기준 클록 신호를 수신하기 위한 입력 포트와,
    내부 기준 클록 신호를 생성하기 위한 수단과,
    상기 외부 공통 기준 클록 신호와 상기 내부 기준 클록 신호의 사용 사이에서 스위칭하기 위한 수단과,
    상기 외부 공통 기준 클록 신호 또는 상기 내부 기준 클록 신호를 포함하는 입력 클록 신호를 복제(replicate)하고 복수의 복제된 클록 신호를 출력하도록 구성되는 차동 버퍼와,
    적어도 하나의 직렬 상호 접속 인터페이스를 구비하고, 상기 적어도 하나의 직렬 상호 접속 인터페이스로부터 송신하고 상기 적어도 하나의 직렬 상호 접속 인터페이스에서 수신하는 직렬 상호 접속 신호에 관한 클록 타이밍 동작을 위해 상기 복제된 기준 클록 신호 또는 이 신호로부터 유도되는 기준 클록 신호 중 하나를 사용하도록 구성되는 프로세서와,
    직렬 상호 접속 신호를 상기 적어도 하나의 직렬 상호 접속 인터페이스로부터 제 2 서버 블레이드에 데이터를 송신하고 제 2 서버 블레이드로부터 데이터를 수신하도록 사용되는 하나 이상의 직렬 상호 접속 케이블로 결합하기 위한 수단을 포함하되,
    상기 외부 공통 기준 클록 신호를 포함하는 복수의 외부 공통 기준 클록 신호가 클록 합성기 보드를 사용하여 생성되고,
    상기 신호가 상기 클록 합성기 보드를 나갈 때와 상기 서버 블레이드 및 상기 제 2 서버 블레이드를 포함하는 복수의 서버 블레이드에 도달할 때 사이의 전파 지연이 상기 복수의 서버 블레이드에서 같도록 상기 클록 합성기 보드로부터 상기 복수의 서버 블레이드로 상기 신호가 제공되는
    서버 블레이드.
  17. 제 16 항에 있어서,
    프로세서 소켓 - 상기 프로세서 소켓에 인터포저가 설치되어 상기 인터포저가 프로세서와 상기 프로세서 소켓 사이에 놓임 - 을 더 포함하고, 상기 인터포저는 상기 적어도 하나의 직렬 상호 접속 인터페이스에 대응하는 상기 프로세서 상의 핀으로부터 상기 인터포저 상의 케이블 인터페이스로 신호를 라우팅하도록 구성되는
    서버 블레이드.
  18. 제 17 항에 있어서,
    상기 인터포저는 발신 전기 신호를 광 신호로 변환하고 착신 광 신호를 전기 신호로 변환하도록 구성되는 전기-광 인터페이스를 더 포함하는
    서버 블레이드.
  19. 제 16 항에 있어서,
    상기 직렬 상호 접속은 퀵패스 상호 접속(QuickPath Interconnect(QPI)) 상호 접속을 포함하는
    서버 블레이드.
  20. 제 19 항에 있어서,
    상기 프로세서는 상기 제 2 서버 블레이드 상의 메모리 또는 캐시 중 적어도 하나에 저장되는 데이터에 액세스하는 코히어런트 메모리 트랜잭션을 가능하게 하기 위해 QPI 메시지를 사용하도록 구성되는
    서버 블레이드.
KR1020147025015A 2012-03-07 2012-03-07 블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처 KR101605285B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/028106 WO2013133826A1 (en) 2012-03-07 2012-03-07 Scalable, common reference-clocking architecture using a separate, single clock source for blade and rack servers

Publications (2)

Publication Number Publication Date
KR20140132362A KR20140132362A (ko) 2014-11-17
KR101605285B1 true KR101605285B1 (ko) 2016-03-21

Family

ID=49117154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147025015A KR101605285B1 (ko) 2012-03-07 2012-03-07 블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처

Country Status (5)

Country Link
US (1) US9261897B2 (ko)
KR (1) KR101605285B1 (ko)
AU (1) AU2012372800B2 (ko)
DE (1) DE112012005991T5 (ko)
WO (1) WO2013133826A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU208868U1 (ru) * 2020-08-10 2022-01-19 Бэйцзин Фастран Текнолоджис Лимитед Сервер

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013081580A1 (en) * 2011-11-29 2013-06-06 Intel Corporation Raw memory transaction support
AU2012372800B2 (en) 2012-03-07 2016-01-28 Intel Corporation Scalable, common reference-clocking architecture using a separate, single clock source for blade and rack servers
US20130262814A1 (en) * 2012-03-29 2013-10-03 Advanced Micro Devices, Inc. Mapping Memory Instructions into a Shared Memory Address Place
US9143338B2 (en) * 2012-10-05 2015-09-22 Advanced Micro Devices, Inc. Position discovery by detecting irregularities in a network topology
US9173304B2 (en) * 2013-07-18 2015-10-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Vertical blindmate scaling of identical system boards
JP6525555B2 (ja) * 2014-11-04 2019-06-05 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
CN104615564A (zh) * 2015-02-05 2015-05-13 浪潮电子信息产业股份有限公司 一种基于qpi总线的数据传输方法及计算机系统
JP6454577B2 (ja) 2015-03-25 2019-01-16 ルネサスエレクトロニクス株式会社 処理装置及び処理装置の制御方法
US11010054B1 (en) 2015-06-10 2021-05-18 EMC IP Holding Company LLC Exabyte-scale data processing system
US10503416B1 (en) * 2015-06-10 2019-12-10 EMC IP Holdings Company LLC Flash memory complex with a replication interface to replicate data to another flash memory complex of a data processing system
US10496284B1 (en) 2015-06-10 2019-12-03 EMC IP Holding Company LLC Software-implemented flash translation layer policies in a data processing system
US10515014B1 (en) * 2015-06-10 2019-12-24 EMC IP Holding Company LLC Non-uniform memory access (NUMA) mechanism for accessing memory with cache coherence
US10713334B1 (en) * 2015-06-10 2020-07-14 EMC IP Holding Company LLC Data processing system with a scalable architecture over ethernet
US10853277B2 (en) * 2015-06-24 2020-12-01 Intel Corporation Systems and methods for isolating input/output computing resources
US10536553B1 (en) * 2015-09-04 2020-01-14 Cadence Design Systems, Inc. Method and system to transfer data between components of an emulation system
US10114790B2 (en) * 2016-05-17 2018-10-30 Microsemi Solutions (U.S.), Inc. Port mirroring for peripheral component interconnect express devices
US10762030B2 (en) * 2016-05-25 2020-09-01 Samsung Electronics Co., Ltd. Storage system, method, and apparatus for fast IO on PCIE devices
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US11036256B2 (en) * 2016-09-30 2021-06-15 Hewlett-Packard Development Company, L.P. Handles
WO2019226012A1 (ko) 2018-05-25 2019-11-28 주식회사 쏠리드 클럭 동기화를 수행하는 통신 노드 및 통신 시스템
US10489341B1 (en) * 2018-06-25 2019-11-26 Quanta Computer Inc. Flexible interconnect port connection
CN110188065B (zh) * 2019-05-15 2021-08-20 苏州浪潮智能科技有限公司 一种8路刀片服务器设置方法及服务器
US11271860B1 (en) * 2019-11-15 2022-03-08 Xilinx, Inc. Compressed tag coherency messaging
CN113220622A (zh) * 2021-05-27 2021-08-06 浪潮电子信息产业股份有限公司 一种主板及时序控制方法、装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016201A1 (en) * 2004-12-09 2011-01-20 Hitachi, Ltd. Multi node server system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856926B2 (en) * 2003-03-03 2005-02-15 Hewlett-Packard Development Company, L.P. Frequency margin testing of bladed servers
JP2006053662A (ja) * 2004-08-10 2006-02-23 Matsushita Electric Ind Co Ltd 多重プロセッサ
US7480303B1 (en) 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
US7562247B2 (en) 2006-05-16 2009-07-14 International Business Machines Corporation Providing independent clock failover for scalable blade servers
US8407428B2 (en) * 2010-05-20 2013-03-26 Hicamp Systems, Inc. Structured memory coprocessor
WO2009105095A1 (en) * 2008-02-20 2009-08-27 Hewlett-Packard Development Company, L.P. Redriver with two reference clocks and method of operation thereof
US8350702B2 (en) 2009-07-01 2013-01-08 Sensormatic Electronics, LLC Combination EAS and RFID security tag having structure for orienting a hybrid antenna RFID element
AU2012372800B2 (en) 2012-03-07 2016-01-28 Intel Corporation Scalable, common reference-clocking architecture using a separate, single clock source for blade and rack servers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016201A1 (en) * 2004-12-09 2011-01-20 Hitachi, Ltd. Multi node server system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU208868U1 (ru) * 2020-08-10 2022-01-19 Бэйцзин Фастран Текнолоджис Лимитед Сервер

Also Published As

Publication number Publication date
AU2012372800B2 (en) 2016-01-28
AU2012372800A1 (en) 2014-09-25
DE112012005991T5 (de) 2015-01-29
WO2013133826A1 (en) 2013-09-12
US20130311817A1 (en) 2013-11-21
KR20140132362A (ko) 2014-11-17
US9261897B2 (en) 2016-02-16

Similar Documents

Publication Publication Date Title
KR101605285B1 (ko) 블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처
US11194753B2 (en) Platform interface layer and protocol for accelerators
US10204064B2 (en) Multislot link layer flit wherein flit includes three or more slots whereby each slot comprises respective control field and respective payload field
US9639490B2 (en) Ring protocol for low latency interconnect switch
US10503688B2 (en) Multiple transaction data flow control unit for high-speed interconnect
US7577727B2 (en) Dynamic multiple cluster system reconfiguration
EP3140748B1 (en) Interconnect systems and methods using hybrid memory cube links
US11372787B2 (en) Unified address space for multiple links
US9208110B2 (en) Raw memory transaction support
Sharma et al. An introduction to the compute express link (cxl) interconnect
US11573898B2 (en) System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing
Sharma Novel Composable and Scaleout Architectures Using Compute Express Link
US20050080948A1 (en) Bridges performing remote reads and writes as uncacheable coherent
US20050080941A1 (en) Distributed copies of configuration information using token ring
US9392062B2 (en) Optimized ring protocols and techniques
US20060129709A1 (en) Multipurpose scalable server communication link
US9910807B2 (en) Ring protocol for low latency interconnect switch
Theodoropoulos et al. REMAP: Remote mEmory manager for disaggregated platforms
Duato et al. Scalable Computing: Why and How
Singh et al. THE FEEDING OF HIGH-PERFORMANCE PROCESSOR CORES--QUICKPATH INTERCONNECTS AND THE NEW I/O HUBS.
Sharma Compute Express Link™(CXL™): An Open Interconnect for Cloud Infrastructure
Duato HyperTransport™ technology tutorial.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200227

Year of fee payment: 5