KR101645502B1 - 다중―프로토콜 sereds phy 장치 - Google Patents

다중―프로토콜 sereds phy 장치 Download PDF

Info

Publication number
KR101645502B1
KR101645502B1 KR1020147014165A KR20147014165A KR101645502B1 KR 101645502 B1 KR101645502 B1 KR 101645502B1 KR 1020147014165 A KR1020147014165 A KR 1020147014165A KR 20147014165 A KR20147014165 A KR 20147014165A KR 101645502 B1 KR101645502 B1 KR 101645502B1
Authority
KR
South Korea
Prior art keywords
synchronous
asynchronous
data
clock
unit
Prior art date
Application number
KR1020147014165A
Other languages
English (en)
Other versions
KR20140084297A (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 KR20140084297A publication Critical patent/KR20140084297A/ko
Application granted granted Critical
Publication of KR101645502B1 publication Critical patent/KR101645502B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/04Distributors combined with modulators or demodulators
    • H04J3/047Distributors with transistors or integrated circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0091Transmitter details

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Communication Control (AREA)

Abstract

일 실시예에서, 다중프로토콜 인터페이스는 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들로부터의 데이터를 송신하도록 구성된 물리 층 송신기 유닛을 포함한다. 다중프로토콜 인터페이스는 데이터를 수신하고 상기 수신된 데이터를 상기 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 상기 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들로 전달하도록 구성된 물리 층 수신기 유닛을 더 포함한다. 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛 양자는 동기식 모드 또는 비동기식 모드 중 어느 하나의 모드로 동작하도록 구성된다. 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신하며, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신한다.

Description

다중―프로토콜 SEREDS PHY 장치{MULTI-PROTOCOL SEREDS PHY APPARATUS}
본원은 2011년 10월 25일자에 출원된 미국 출원 번호 13/280,841의 계속 출원이다. 위의 출원(들)의 전체 교시 내용들은 본 명세서에서 참조로서 인용된다.
물리 층 유닛들 (Physical Layer Units: PHYs) 은 다양한 고속 직렬화/역직렬화 (Serialize/Deserialize) (SerDes:세데스) 인터페이스들을 지원한다. 세데스 인터페이스들은 통상적으로 데이터 수신 및 송신을 지원하기 위해서 네트워킹 디바이스들에서 사용된다. 세데스 인터페이스들은 직렬화기 블록 및 역직렬화기 블록을 포함한다. 직렬화기 블록은 일반적으로 데이터를 병렬 포맷에서 직렬 포맷으로 변환한다. 역직렬화기 블록은 일반적으로 데이터를 직렬 포맷에서 병렬 포맷으로 변환한다.
일 실시예에서, 다중프로토콜 인터페이스는 하나 이상의 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 하나 이상의 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들 중 적어도 하나로부터의 데이터를 송신하도록 구성된 물리 층 송신기 유닛을 포함한다. 다중프로토콜 인터페이스는 데이터를 수신하고 상기 수신된 데이터를 상기 하나 이상의 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 상기 하나 이상의 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들 중 적어도 하나로 전달하도록 구성된 물리 층 수신기 유닛을 더 포함한다.
일 실시예에서, 상기 물리 층 송신기 유닛은 데이터의 송신 레이트로 동기화된 동기식 클록을 포함한다. 상기 물리 층 송신기 유닛은 입력부들로서의 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들에 커플링되고 타이밍 디바이스로서의 상기 동기식 클록에 커플링되는 8b/10b 인코더를 더 포함한다. 상기 물리 층 송신기 유닛은 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들에 커플링된 비동기식 대 동기식 변환 유닛을 더 포함한다. 또한, 상기 물리 층 송신기 유닛은 상기 8b/10b 인코더와 상기 비동기식 대 동기식 변환 유닛 간을 선택하도록 구성된 멀티플렉서를 더 포함한다.
일 실시예에서, 다중프로토콜 인터페이스 비동기식 클록을 더 포함하며, 상기 비동기식 클록은 상기 데이터의 송신 레이트가 아닌 임의의 다른 레이트로 동기화된다. 상기 비동기식 대 동기식 변환 유닛은 타이밍 디바이스들로서의 상기 비동기식 클록 및 상기 동기식 클록에 커플링된다.
일 실시예에서, 다중프로토콜 인터페이스는 송신기 차동 구동기; 및 직렬화기 (serializer) 를 더 포함한다. 상기 멀티플렉서는 상기 직렬화기로 출력하도록 커플링되며, 상기 송신기 차동 구동기는 상기 직렬화기의 출력을 수신하도록 커플링된다.
일 실시예에서, 다중프로토콜 인터페이스는 데이터의 송신 레이트로 동기화된 동기식 클록을 포함한다. 물리 층 수신기 유닛은 동기식 모드에서 탄성 버퍼 유닛 (elastic buffer unit) 으로 출력하도록 구성되고 비동기식 모드에서 동기식 대 비동기식 변환 유닛으로 출력하도록 구성되는 역직렬화기 (deserializer) 를 더 포함한다. 상기 탄성 버퍼 유닛은 입력된 신호의 동기식 버전 (synchronous version) 을 8b/10b 디코더에 출력하도록 커플링된다. 상기 탄성 버퍼 유닛은 타이밍 디바이스로서의 상기 동기식 클록에 더 커플링된다. 상기 8b/10b 디코더는 출력부들로서의 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들에 커플링되고 타이밍 디바이스로서의 상기 동기식 클록에 커플링된다. 상기 동기식 대 비동기식 변환 유닛은 출력부들로서의 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들에 커플링되며 데이터를 복구된 수신된 클록 레이트에서 비동기식 클록 레이트로 변환하도록 구성된다.
일 실시예에서, 물리 층 수신기 유닛은 수신된 데이터로부터 복구된 수신된 클록을 생성하도록 구성된 클록 복구 유닛을 더 포함한다. 상기 클록 복구 유닛은 타이밍 디바이스로서 상기 역직렬화기에 커플링된다. 차동 수신기가 상기 역직렬화기 및 상기 클록 복구 유닛으로 출력하도록 커플링된다.
일 실시예에서, 상기 동기식 대 비동기식 변환 유닛은 타이밍 디바이스들로서의 비동기식 클록 및 클록 복구 유닛에 커플링된다.
일 실시예에서, 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들은 인터라켄 프로토콜 (Interlaken protocol) 에 따라서 데이터를 송신 및 수신하도록 구성된다. 상기 데이터는 인터라켄 패킷들이다.
다른 실시예에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛 양자는 동기식 모드 또는 비동기식 모드 중 어느 하나의 모드로 동작하도록 구성된다. 상기 비동기식 모드에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신하며, 상기 동기식 모드에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신한다.
다수의 프로토콜들을 사용하여서 인터페이싱하기 위한 방법은 물리 층 송신기 유닛에서, 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들부터의 데이터를 송신하는 단계를 포함한다. 이 방법은 물리 층 수신기 유닛에서, 데이터를 수신하고 상기 수신된 데이터를 상기 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 상기 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들로 전달하는 단계를 더 포함한다.
이 방법은 데이터의 송신 레이트로 동기화된 동기식 클록을 유지하는 단계; 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들로부터의 데이터를 타이밍 디바이스로서의 상기 동기식 클록을 사용하여 8b/10b 인코딩 방식으로 인코딩하는 단계; 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들의 출력을 동기식 출력으로 변환시키는 단계; 및 멀티플렉서에서 상기 인코딩된 데이터와 상기 동기식 출력 간에서 선택하는 단계를 더 포함한다.
전술한 내용은 첨부 도면들에서 예시된 것과 같은, 본 발명의 예시적인 실시예들의 다음의 보다 구체적인 설명으로부터 명백해질 것이며, 첨부 도면들 중 상이한 도면들에서 유사한 참조 부호들이 동일한 구성 요소들을 나타낸다.
도 1은 네트워크 서비스 프로세서를 도시하는 블록도이다.
도 2는 네트워크 인터페이스 유닛들을 도시하는 블록도이다.
도 3은 비동기식 MAC 유닛을 도시하는 블록도이다.
도 4는 다중프로토콜 송신기의 레인 (lane) 을 도시하는 블록도이다.
도 5는 다중프로토콜 수신기의 레인 (lane) 을 도시하는 블록도이다.
예시적인 실시예들의 설명은 다음과 같다.
예시적인 실시예들을 세부적으로 설명하기 이전에, 이 실시예들이 구현될 수 있는 예시적인 네트워크 보안 프로세서는 창의적인 특징들에 대한 독자의 이해를 돕기 위해서 바로 이하에서 설명된다.
도 1은 네트워크 서비스 프로세서 (100) 를 도시하는 블록도이다. 네트워크 서비스 프로세서 (100) 는 적어도 하나의 프로세서 코어 (120) 를 사용하여서 높은 애플리케이션 성능 (high application performance) 을 전달한다.
네트워크 서비스 프로세서 (100) 는 수신된 패킷들에 내에 캡슐화된 (encapsulated) 개방 시스템 상호접속 네트워크 L2 - L7 층 프로토콜들을 처리한다. 본 기술 분야의 당업자에게 잘 알려진 바와 같이, 개방 시스템 상호접속 (Open System Interconnection:OSI) 레퍼런스 모델 (reference model) 은 7 개의 네트워크 프로토콜 층들 (L1 - L7) 을 규정한다. 물리 층 (L1) 은 디바이스를 송신 매체에 접속시키는 전기적 및 물리적인 실제 인터페이스를 나타낸다. 데이터 링크 층 (L2) 은 데이터 프레이밍 (data framing) 을 수행한다. 네트워크 층 (L3) 은 데이터를 패킷들로 포맷한다. 송신 층 (L4) 은 엔드 대 엔드 송신 (end to en d transport) 을 다룬다. 세션 층 (L5) 은 디바이스들 간의 통신들을 관리하는데, 예를 들어서 통신이 반-이중 (half-duplex) 또는 전-이중 (full-duplex) 인지를 관리한다. 표현 층 (presentation layer) (L6) 은 예를 들어서 신택스, 제어 코드, 특정 그래픽 및 문자 세트와 같은 데이터 포맷 및 표현을 관리한다. 애플리케이션 층 (L7) 은 사용자들 간의 통신, 예를 들어서 파일 전달 및 전자 메일을 가능하게 한다.
네트워크 서비스 프로세서 (100) 는 예를 들어서 L4 내지 L7와 같은 상부 레벨 네트워크 프로토콜들에 대한 작업 (패킷 처리 동작들) 을 스케줄링 및 큐잉할 수 있으며 수신된 패킷들 내의 상부 레벨 네트워크 프로토콜들의 처리가 와이어-스피드 (wire-speed) 로 패킷들을 송신하도록 수행되게 할 수 있다. 와이어-스피드는 데이터가 그를 통해서 송신 및 수신되는 네트워크의 데이터 전달 레이트이다. 패킷들을 와이어-스피드로 송신하도록 프로토콜들을 처리함으로써 네트워크 서비스 프로세서 (100) 는 네트워크 데이터 전달 레이트를 저하시키지 않는다.
패킷이 복수의 인터페이스 유닛들 (122a 및 122b) 에 의해서 처리되기 위해서 수신된다. 패킷은 또한 PCIe 인터페이스 (124) 에 의해서도 수신될 수 있다. 인터페이스 유닛들 (122a 및 122b) 은 수신된 패킷 내에 포함된 L2 네트워크 프로토콜 헤더 내의 다양한 필드들을 체크함으로써 상기 수신된 패킷의 전-처리 (pre-processing) 를 수행하고 이 패킷을 패킷 입력 유닛 (126) 에 송신한다. 적어도 하나의 인터페이스 유닛 (122a) 은 복수의 XAUI (X Attachment Unit Interfaces), RXAUI (Reduced X Attachment Unit Interfaces), 또는 SGMII (Serial Gigabit Media Independent Interfaces) 로부터 패킷들을 수신할 수 있다. 적어도 하나의 인터페이스 유닛 (122b) 은 ILK (Interlaken Interface) 로부터의 접속들을 수신할 수 있다.
패킷 입력 유닛 (126) 은 수신된 패킷 내에 포함된 네트워크 프로토콜 헤더들 (예를 들어서, L3 헤더 및 L4 헤더) 의 추가 전-처리를 수행한다. 이 전-처리는 TCP/UDP (User Datagram Protocol) (L3 네트워크 프로토콜들) 에 대한 체크섬 체크 (checksum checks) 를 포함한다.
빈-풀 할당기 (free-pool allocator) (128) 는 레벨 2 캐시 메모리 (130) 및 외부 DRAM (108) 내의 빈 메모리 (free memory) 로의 포인터들의 풀들을 유지한다. 레벨 2 캐시 메모리 (130) 는 또한 제어기를 포함할 수도 있다. 패킷 입력 유닛 (126) 은 수신된 패킷 데이터를 레벨 2 캐시 메모리 (130) 또는 외부 DRAM (108) 내에 저장하는데 있어서 포인터들의 풀들 중 하나를 사용하며 프로세어 코어들 (120) 에 대한 작업 큐 엔트리들을 할당하는데 있어서 포인터들의 풀들 중 다른 하나를 사용한다.
패킷 입력 유닛 (126) 은 이어서 데이터 패킷을 레벨 2 캐시 메모리 (130) 또는 외부 DRAM (108) 내의 버퍼들 내로 기록한다. 바람직하게는, 패킷 데이터는 프로세서 코어들 (120) 중 적어도 하나에서 실행되는 보다 높은 층 소프트웨어에 대해 편리한 포맷으로 메모리들 내로 기록된다. 이로써, 보다 높은 레벨의 네트워크 프로토콜들의 추가 처리가 용이해진다.
네트워크 서비스 프로세서 (100) 는 또한 하나 이상의 애플리케이션 특정 코-프로세서들을 포함할 수도 있다. 이러한 코-프로세서들은 포함되는 경우에 코어들 (120) 로부터 어느 정도의 처리를 오프로드하여서 (offload), 네트워크 서비스 프로세서 (100) 가 보다 높은 처리량 패킷 처리를 달성하도록 하게 한다. 예를 들어서, 수신된 패킷들의 압축 및 압축해제를 수행하는데 전용되는 압축/압축해제 코-프로세서 (132) 가 제공된다. 코-프로세싱 유닛들의 다른 실시예들은 디스크-저장 애플리케이션들에서 데이터 스트리핑 (data striping) 및 데이터 복제 처리를 가속시키는 RAID/De-Dup 유닛 (162) 을 포함한다.
다른 코-프로세서는 안티-바이러스, 침입 검출 시스템들 및 다른 컨텐츠-처리 애플리케이션들에서 필요한 패턴 및/또는 서명 매칭을 가속시키도록 구성되는 전용 HFA (Hyper Finite Automata) 검사 엔진들을을 포함하는 HFA 유닛 (160) 이다. HFA 유닛 (160) 을 사용하여, 패턴 및/또는 서명 매칭이 가속화되는데, 예를 들어서 초당 수십 배의 기가바이트 이상의 레이트로 수행될 수 있다. 몇몇 실시예들에서, HFA 유닛 (160) 은 DFA (Deterministic Finite Automata) 엔진, NFA (Non-deterministic Finite Automata) 엔진 또는 HFA 검사 엔진 중 임의의 것을 포함할 수 있다.
입출력 인터페이스 (136) 는 전체 프로토콜 및 아비트레이션 (arbitration) 을 관리하며 코히어런트 (coherent) 입출력 파티셔닝을 제공한다. 입출력 인터페이스 (136) 는 입출력 브리지 (138) 및 페치-앤드-에드 유닛 (fetch-and-add unit) (140) 을 포함한다. 입출력 브리지는 2 개의 브리지들, 즉 입출력 패킷 브리지 (IOBP) (138a) 및 입출력 버스 브리지 (IOBN) (138b) 를 포함한다. 입출력 패킷 브리지 (IOBP) (138a) 는 주로 패킷 입력부 및 출력부를 사용하여서 전체 프로토콜 및 아비트레이션 (arbitration) 관리하고 코히어런트 (coherent) 입출력 파티셔닝을 제공하도록 구성된다. 입출력 버스 브리지 (IOBN) (138b) 는 주로 입출력 버스를 사용하여서 전체 프로토콜 및 아비트레이션 (arbitration) 관리하고 코히어런트 (coherent) 입출력 파티셔닝을 제공하도록 구성된다. 페치-앤드-에드 유닛 (fetch-and-add unit) (140) 내의 레지스터들은 처리된 패킷을 패킷 출력 유닛 (146) 을 통해서 송신하기 위해서 사용되는 출력 큐들의 길이들을 관리하는데 사용된다. 입출력 브리지 (138) 는 코히어런트 메모리 상호접속부 (coherent memory interconnect:CMI) (144), 입출력 버스 (142), 패킷 입력 유닛 (126) 과 패킷 출력 유닛 (146) 간에서 전달될 정보를 저장하기 위한 버퍼 큐들을 포함한다.
기타 입출력 인터페이스들 (MIO) (116) 는 범용 입출력 인터페이스 (GPIO), 플래시 (flash), IEEE 804 투-와이어 (two-wire) 관리 인터페이스 (MDIO), SMI (Serial Management Interrupt) 인터페이스, UARTs (Universal Asynchronous Receiver-Transmitters) 인터페이스, RGMII (Reduced Gigabit Media Independent Interface), MIl (Media Independent Interface), TWSI (two wire serial interface) 및 다른 직렬 인터페이스들과 같은 보조 인터페이스들을 포함할 수 있다.
네트워크 서비스 프로세서 (100) 는 또한 MIPS EJTAG 표준들을 지원하는 JTAG (Joint Test Action Group) 인터페이스 (123) 를 포함할 수도 있다. JTAG 표준 및 MIPS EJTAG 표준에 따라서, 네트워크 서비스 프로세서 (100) 내의 다수의 코어들은 내부 TAP (Test Access Port) 제어기를 각각 가질 것이다. 이는 네트워크 서비스 프로세서 (100) 의 다중-코어 디버그 (debug) 지원을 가능하게 한다.
SSO (Schedule/Sync and Order) 모듈 (148) 은 프로세서 코어들 (120) 에 대한 작업을 큐잉 및 스케줄링한다. 작업은 작업 큐 엔트리를 큐에 부가함으로써 큐잉된다. 예를 들어서, 작업 큐 엔트리는 각 패킷 도달을 위해서 패킷 입력 유닛 (126) 에 의해서 부가된다. 타이머 유닛 (150) 은 프로세서 코어들 (120) 에 대한 작업을 스케줄링을 하는데 사용된다.
프로세서 코어들 (120) 는 SSO 모듈 (148) 로부터 작업을 요청한다. SSO 모듈 (138) 은 프로세서 코어들 (120) 중 하나에 대한 작업을 선택 (즉, 스케줄링) 하며 이 작업을 기술하는 작업 큐 엔트리로의 포인터를 해당 프로세서 코어 (120) 로 복귀시킨다.
이어서, 프로세서 코어 (120) 는 인스트럭션 캐시 (152), 레벨 1 데이터 캐시 (154), 및 크립토 가속기 (crypto acceleration) (156) 를 포함한다. 일 실시예에서, 네트워크 서비스 프로세서 (100) 는 32 수퍼스칼라 (superscalar) RISC (Reduced Instruction Set Computer (RISC) - 타입 프로세서 코어들 (120) 을 포함한다. 몇몇 실시예들에서, 32 수퍼스칼라 (superscalar) RISC (Reduced Instruction Set Computer (RISC) - 타입 프로세서 코어들 (120) 각각은 MIPS64 버전 3 프로세서 코어의 확장을 포함한다. 일 실시예에서, 32 수퍼스칼라 (superscalar) RISC (Reduced Instruction Set Computer (RISC) - 타입 프로세서 코어들 (120) 각각은 cnMIPS II 프로세서 코어를 포함한다.
레벨-2 캐시 메모리 (130) 및 외부 DRAM (108) 는 프로세서 코어들 (120) 및 입출력 코-프로세서 디바이스들 모두에 의해서 공유된다. 각 프로세서 코어 (120) 는 CMI (144) 에 의해서 레벨-2 캐시 메모리 (130) 에 커플링된다. CMI (144) 는 프로세서 코어 (120), 입출력 인터페이스 (136) 및 레벨-2 캐시 메모리 (130) 와 제어기 간의 모든 메모리 및 입출력 트랜잭션들을 위한 통신 채널이다. 일 실시예에서, CMI (144) 는 라이트 쓰로우 (write through) 로 완전-코히어런트한 (fully-coherent) 레벨 1 데이터 캐시들 (154) 을 지원하는 32 프로세서 코어들 (120) 에 대해 스케일가능하다. 바람직하게는, CMI (144) 는 입출력을 우선순위화하는 능력을 사용하여서 고속 버퍼링된다 (highly-buffered). CMI (144) 는 버스 요청들을 캡처하도록 구성된 트레이스 (trace) 제어 유닛 (164) 에 커플링되며 이로써 이후에 소프트웨어가 해당 요청을 판독하고 CMI (144) 상에서 이벤트들의 시퀀스의 트레이스를 생성할 수 있다.
레벨-2 캐시 메모리 (130) 제어기는 메모리 레퍼런스 코히어런스 (momory reference coherence) 를 유지한다. 이 제어기는 메모리 블록이 레벨-2 캐시 메모리 (130) 내에 또는 외부 DRAM (108) 내에 저장되든 또는 "인-플라이트 (in-flight)" 상태에 있든지 모든 채움 요청 (fill request) 에 대해서 메모리 블록의 최신 카피 (latest copy) 를 복귀시킨다. 제어기는 또한 각 프로세서 코어 (120) 내에 데이터 캐시 (154) 에 대한 태그들의 복제 카피를 저장한다. 제어기는 캐시-블록-저장 요청들의 어드레스들을 데이터-캐시 태그들 (tags) 과 비교하고 저장 인스트럭션이 다른 프로세서 코어로부터이거나 입출력 인터페이스 (136) 를 통하여서 입출력 컴포넌트로부터일 때마다 프로세서 코어 (120) 에 대한 데이터-캐시 태그 (양 카피들 (both copies)) 를 무효화한다.
몇몇 실시예들에서, 복수의 DRAM 제어기 (133) 는 DRAM의 128 기가바이트까지를 지원한다. 일 실시예에서, 복수의 DRAM 제어기 (133) 는 4 개의 DRAM 제어기들을 포함하며, 복수의 DRAM 제어기 (133) 각각은 는 DRAM의 32 기가바이트를 지원한다. 바람직하게는, 복수의 DRAM 제어기 (133) 각각은 DRAM (108) 에 대해 64 비트 인터페이스를 지원한다. 또한, DRAM 제어기 (133) 는 DDR-III 프로토콜과 같은 바람직한 프로토콜들을 지원할 수 있다.
패킷이 프로세서 코어들 (120) 에 의해서 처리된 후에, 패킷 출력 유닛 (146) 은 패킷 데이터를 레벨 2 캐시 메모리 (130)/DRAM (108) 으로부터 판독하고 L4 네트워크 프로토콜 후-처리를 수행하며 (예를 들어서, TCP/UDP 체크섬을 생성하고), PCIe 인터페이스 (124) 또는 인터페이스 유닛들 (122a 및 122b) 을 통해서 패킷을 송신하며 이 패킷에 의해서 사용되는 레벨 2 캐시 메모리 (130)/DRAM (108) 를 비운다.
DRAM 제어기들 (133) 은 DRAM (108) 로의/로부터의 인-플라이트 트랜잭션들 (로딩/저장) 을 관리한다. 몇몇 실시예들에서, DRAM 제어기들 (133) 은 4 개의 DRAM 제어기들 (133) 을 포함하며, DRAM 메모리 (108) 은 4 개의 DRAM 메모리들을 포함하며, 각 DRAM 제어기는 DRAM 메모리에 접속된다. HFA 유닛 (160) 은 바이패스-캐시 경로 (135) 상에서 DRAM 제어기들 (133) 에 직접적으로 커플링된다. 바이패스-캐시 경로 (135) 는 HFA 유닛이 레벨 2 캐시 메모리 (130) 를 사용하지 않고서 DRAM 메모리 (108) 로부터 직접적으로 판독할 수 있게 하며, 이로써 HFA 동작들에 대한 효율이 개선된다.
인터라켄 (Interlaken) 프로토콜은 동기식 프로토콜들 (synchronous protocols) 에 관해서 몇 개의 구별된 특징들을 갖는다. 예를 들어서, 인터라켄 (Interlaken) 프로토콜은 8b/10b 인코딩 대신에 64b/67b 인코딩 및 스크램블링 (scrambling) 을 제공한다. 인터라켄 (Interlaken) 프로토콜은 복잡한 클록 보상을 제공하는데 그 이유는 이 프로토콜이 메타프레임 크기 불변 요구 사항을 가지지 때문이다. 또한, 이 프로토콜은 67 유닛 인터벌들이 PMA 서브층에서 허용되는 완화된 레인 대 레인 송신 스큐 명세 (relaxed lane-to-lane transmit skew specification) 를 갖는다.
도 2는 인터페이스 유닛들 (122) 을 도시하는 블록도이다. 인터페이스 유닛들 (122) 은 직렬화기-역직렬화기 (SerDes:세데스) 인터페이스 (206) 내의 복수의 QLMs (quad-lane modules) (202A 내지 202E) 을 포함한다. 인터페이스 유닛들 (122) 은 복수의 동기식 매체 액세스 제어 (MAC) 유닛들 (204A 내지 204E) 및 일 비동기식 매체 액세스 제어 (MAC) 유닛 (212) 을 더 포함한다. 일 실시예에서, 비동기식 매체 액세스 제어 (MAC) 유닛 (212) 은 인터라켄 인터페이스이다. 몇몇 실시예들에서, 인터라켄 인터페이스는 2 개의 링크들을 따라서 송신 또는 수신하도록 구성된다. 인터페이스 유닛들 (122) 은 또한 DMA (Direct Memory Access) 패킷 인터페이스 (DPI)/스위치 로직 인터페이스 (SLI) (208) 를 더 포함한다. 이 DPI/SLI (208) 는 적어도 하나의 PCIe 코어 (210A 및 210B) 에 커플링된다. 복수의 동기식 매체 액세스 제어 (MAC) 유닛들 (204A 내지 204E), 일 비동기식 매체 액세스 제어 (MAC) 유닛 (212) 및 DPI/SLI (208) 는 입출력 버스 (142) 에 커플링된다.
동기식 매체 액세스 제어 (MAC) 유닛 (204A) 은 QLM (202A) 에 커플링된다. 또한, 동기식 매체 액세스 제어 (MAC) 유닛 (204B) 도 QLM (202A) 에 커플링된다. 동기식 매체 액세스 제어 (MAC) 유닛 (204C) 은 QLM (202C) 에 커플링된다. 동기식 매체 액세스 제어 (MAC) 유닛 (204D) 도 QLM (202D) 에 커플링된다. 동기식 매체 액세스 제어 (MAC) 유닛 (204E) 도 QLM (202E) 에 커플링된다.
일 비동기식 매체 액세스 제어 (MAC) 유닛 (212) 은 QLM (202B) 및 QLM (202C) 에 커플링된다. DPI/SLI (208) 는 PCIe 코어들 (210A 및 210B) 에 커플링된다. PCIe 코어 (210A) 는 QLM (202B) 및 QLM (202C) 에 커플링된다. PCIe 코어 (210B) 는 QLM (202D) 및 QLM (202E) 에 커플링된다. 또한, PCIe 코어 (210B) 는 EEPROM (electrically eraseable programmable read-only memory) 에도 커플링된다. 일 비동기식 매체 액세스 제어 (MAC) 유닛 (212) 은 물리적 코딩 하위층 (sublayer) 및 물리적 매체 어태치먼트 (attachment) 하위층을 포함한다. 일 실시예에서, 일 비동기식 매체 액세스 제어 (MAC) 유닛 (212) 은 인터라켄 특정 기능을 수행한다.
도 3은 비동기식 MAC 유닛 (212) 을 도시하는 블록도이다. 비동기식 MAC 유닛 (212) 은 송신 경로 (302) 및 수신 경로 (312) 를 포함한다. 송신 경로 (302) 는 패킷 출력 유닛 (146) 으로부터의 데이터를 입력한다. 패킷 출력 유닛 (146) 은 송신 링크 유닛 (304) 에 데이터를 송신하도록 커플링된다. 송신 링크 유닛 (304) 은 데이터를 송신 레인 (lane) 유닛 (306) 으로 송신하도록 커플링된다. 이어서, 송신 링크는 데이터를 QLM (202B) 또는 QLM (202C) 으로 송신한다.
수신 경로 (312) 는 수신 레인 (316) 에서 QLM들 (202B 및 202C) 로부터의 데이터를 수신한다. 수신 레인은 데이터를 수신 링크 (314) 로 송신한다. 수신 링크는 패킷들을 패킷 입력 유닛 (126) 으로 송신한다.
도 4는 다중프로토콜 송신기 (400) 의 레인 (lane) 을 도시하는 블록도이다. 다중프로토콜 송신기 (400) 는 적어도 하나의 비동기식 MAC 유닛 (402), 적어도 하나의 동기식 MAC 유닛 (404), 및 송신기 직렬화기 유닛 (410) 을 포함한다. 일 실시예에서, 적어도 하나의 비동기식 MAC 유닛 (402) 은 도 2의 비동기식 MAC 유닛 (212) 일 수 있다. 일 실시예에서, 적어도 하나의 동기식 MAC 유닛 (404) 은 도 2의 동기식 MAC 유닛들 (204A 내지 204E), 또는 PCIe 코어들 (210A 및 210B) 에 커플링된 DPI/SLI (208) 일 수 있다.
송신기 직렬화기 유닛 (410) 은 비동기식 대 동기식 변환 유닛 (412), 송신기 클록 (424) 및 송신기 클록 레이트 분할기 유닛 (422) 을 포함한다. 송신기 클록 (424) 은 송신기 클록 레이트 분할기 유닛 (422) 에 커플링된다. 송신기 클록 레이트 분할기 유닛 (422) 은 송신기 클록 (424) 의 클록 레이트를 분할하도록 구성된다. 일 실시예에서, 송신기 클록 레이트 분할기 유닛 (422) 은 10의 분할수 (factor) 로 송신기 클록 (424) 의 클록 레이트를 분할하도록 구성된다.
비동기식 대 동기식 변환 유닛 (412) 은 비동기식 MAC 유닛 (402), 송신기 클록 레이트 분할기 유닛 (422) 및 비동기식 클록 (406) 에 커플링된다. 비동기식 대 동기식 변환 유닛 (412) 은 비동기식 클록 (406) 을 사용하여서 타이밍된 비동기식 송신 데이터 라인 (450) 을 따라서 비동기식 MAC 유닛 (402) 으로부터 데이터를 수신하도록 구성된다. 비동기식 클록 (406) 은 송신기 클록 (424) 의 레이트가 아닌 임의의 다른 레이트로 타이밍된다. 비동기식 송신 데이터 라인 (450) 은 비동기식 MAC 유닛 (402) 에 의해서 구동되는 사전 인코딩된 송신 데이터의 10 비트 세그먼트이다. 비동기식 MAC 유닛 (402) 은 유효한 데이터가 비동기식 송신 데이터 라인 (450) 상에서 가용할 때에 비동기식 송신 유효 신호 (452) 를 어서트한다 (assert). 비동기식 대 동기식 변환 유닛 (412) 은 비동기식 대 동기식 변환 유닛 (412) 이 비동기식 송신 데이터 라인 (450) 으로부터의 데이터를 사용한 후에 비동기식 MAC 유닛 (402) 에 비동기식 송신 크레디트 (credit) (454) 를 어서트한다.
비동기식 대 동기식 변환 유닛 (412) 은 선입선출 순서로 송신기 클록 레이트 분할기 유닛 (422) 에 의해서 제공된 분할된 클록 레이트에 따라서 동일한 데이터를 출력한다. 비동기식 대 동기식 변환 유닛 (412) 은 10 개의 병렬 비트들을 한번에 입력 및 출력한다.
송신기 직렬화기 유닛 (410) 은 8b/10b 인코더 유닛 (414) 을 더 포함한다. 8b/10b 인코더 유닛 (414) 은 동기식 MAC 유닛 (404) 및 송신기 클록 레이트 분할기 유닛 (422) 에 커플링된다. 8b/10b 인코더 유닛 (414) 은 동기식 송신 레이터 라인 (460) 으로부터의 8 비트 병렬 세그먼트들로 동기식 MAC 유닛 (404) 으로부터 데이터를 수신하도록 구성된다. 동기식 송신 레이터 라인 (460) 은 인코딩되지 않은 송신 데이터의 일 심볼 또는 8 비트를 송신하고 동기식 MAC 유닛 (404) 에 의해서 구동된다. 동기식 데이터 유닛은 또한 동기식 송신 레이터 라인 (460) 으로부터, 데이터의 8b/10b 인코딩을 위해서, 제어 비트 (462) 를 송신한다. 동기식 MAC 유닛 (404) 은 송신된 데이터 레이트의 1/10인 동기식 클록 신호 (464) 를 수신하도록 송신기 클록 레이트 분할기 유닛 (422) 에 커플링된다.
8b/10b 인코더 유닛 (414) 은 이어서 동기식 송신 레이터 라인 (460) 으로부터 수신된 데이터를 본 기술 분야에서 잘 알려진 8b/10b 인코딩 방식에 따라서 인코딩한다. 이어서, 8b/10b 인코더 유닛 (414) 은 송신기 클록 레이트 분할기 유닛 (422) 에 의해서 제공된 분할된 클록 레이트에 따라서 상기 인코딩된 데이터를 출력한다.
송신기 직렬화기 모듈 (410) 은 멀티플렉서 (416) 를 포함한다. 멀티플렉서는 8b/10b 인코더 유닛 (414) 및 비동기식 대 동기식 변환 유닛 (412) 양자의 10 비트 출력들을 수신하도록 커플링된다. 멀티플렉서 (416) 는 선택 비트인 동기식/비동기식 모드 신호 (430) 에 커플링된다. 일 실시예에서, 동기식/비동기식 모드 신호 (430) 는 시스템 셋업 시에 한번 설정된다. 이 실시예에서, 동기식/비동기식 모드 신호 (430) 는 시스템 동작 동안에 변화되지 않으며 오직 재시작 시에만 변화될 수 있다. 멀티플렉서 (416) 는 동기식 모드에서 8b/10b 인코더 유닛 (414) 으로부터의 신호를 선택하고 비동기식 모드에서 비동기식 대 동기식 변환 유닛 (412) 으로부터의 신호를 선택한다.
멀티플렉서 (416) 에 의해서 선택된 신호는 직렬화기 (418) 에 송신된다. 직렬화기는 송신기 클록 레이트 분할기 유닛 (422) 및 송신기 클록 (424) 에 더 커플링된다. 직렬화기 (418) 는 분할된 클록 레이트로 신호를 수신하고 송신기 클록 (424) 에 따라서 자신이 수신한 10 비트 병렬 신호의 개별 비트들을 출력한다. 직렬화기는 직렬화된 신호를 차동 구동기 (420) 에 출력한다. 차동 구동기 (420) 는 2 개의 상보적 신호들, 즉 포지티브 송신 신호 (426) 및 네거티브 송신 신호 (428) 를 출력한다. 본 기술 분야에서 알려진 바와 같이, 차동 시그널링은 신호에 대한 노이즈의 영향을 줄인다.
도 5는 다중프로토콜 수신기 (500) 의 레인 (lane) 을 도시하는 블록도이다. 다중프로토콜 수신기 (500) 는 적어도 하나의 비동기식 MAC 유닛 (402), 적어도 하나의 동기식 MAC 유닛 (404), 및 수신기 직렬화기 모듈 (510) 을 포함한다. 일 실시예에서, 적어도 하나의 비동기식 MAC 유닛 (402) 은 도 2의 비동기식 MAC 유닛 (212) 일 수 있다. 일 실시예에서, 적어도 하나의 동기식 MAC 유닛 (404) 은 도 2의 동기식 MAC 유닛들 (204A 내지 204E), 또는 PCIe 코어들 (210A 및 210B) 에 커플링된 DPI/SLI (208) 일 수 있다.
수신기 직렬화기 모듈 (510) 은 포지티브 수신 신호 (526) 및 네거티브 수신 신호 (524) 를 수신하는 차동 수신기 (512) 를 포함한다. 차동 수신기 (512) 는, 본 기술 분야에서 잘 알려진 차동 시그널링 기술들을 사용하여서, 포지티브 수신 신호 (526) 및 네거티브 수신 신호 (524) 를 처리하여 단일 신호를 출력한다. 차동 수신기 (512) 는 역직렬화기 (514) 및 클록 복구 유닛 (515) 에 커플링된다.
클록 복구 유닛 (515) 은 상기 출력 신호로부터 클록 신호를 생성한다. 생성된 클록 신호는 송신기 클록 (424) 과는 상이할 수 있다. 클록 복구 유닛 (515) 은 복구된 클록 레이트 분할기 유닛 (522) 에 커플링된다. 복구된 클록 레이트 분할기 유닛 (522) 은 클록 복구 유닛 (515) 에 의해서 출력된 복구된 클록 신호의 클록 레이트를 분할하도록 구성된다.
역직렬화기 (514) 는 또한 클록 복구 유닛 (515) 및 복구된 클록 레이트 분할기 유닛 (522) 에 커플링된다. 역직렬화기 (514) 는 각 비트를 클록 복구 유닛 (515) 으로부터의 각 클록 티크 (tick) 와 동기화시키며 이어서 복구된 클록 레이트 분할기 유닛 (522) 으로부터 각 클록 티크에 대한 병렬 10 비트 세그먼트를 출력시킨다.
역직렬화기 (514) 는 탄성 버퍼 유닛 (516) 및 동기식 대 비동기식 변환 유닛 (520) 양자에 출력하도록 커플링된다. 탄성 버퍼 유닛 (516) 및 동기식 대 비동기식 변환 유닛 (520) 양자는 동기식/비동기식 모드 신호 (430) 에 커플링된다. 역직렬화기 (514) 가 탄성 버퍼 유닛 (516) 및 동기식 대 비동기식 변환 유닛 (520) 에 직접적으로 출력하도록 접속되는 때에, 탄성 버퍼 유닛 (516) 은 오직 동기식 모드에서 인에이블되며 (enabled) 동기식 대 비동기식 변환 유닛 (520) 은 오직 비동기식 모드에서 인에이블된다. 이로써, 역직렬화기 (514) 는 동기식 데이터 경로 또는 비동기식 데이터 경로 중 어느 하나만으로 출력한다.
탄성 버퍼 유닛 (516) 은 역직렬화기 (514) 의 출력, 복구된 클록 레이트 분할기 유닛 (522) 의 출력 및 송신기 클록 레이트 분할기 유닛 (422) 의 출력을 수신하도록 커플링된다. 탄성 버퍼 유닛은 역직렬화된 데이터를 분할된 복구된 클록 레이트에서 송신기 클록 레이트 분할기 유닛 (422) 으로부터 출력된 분할된 클록 레이트로 버퍼링 및 재정렬하도록 구성된다. 탄성 버퍼 유닛 (516) 은 8b/10b 디코더 (518) 에 출력될 각 10 비트 블록의 시작부를 결정하도록 구성되는 코드 그룹 정렬 유닛 (미도시) 을 포함한다. 탄성 버퍼 유닛 (516) 은 10 비트 세그먼트들을 8b/10b 디코더 (518) 에 출력한다.
8b/10b 디코더 (518) 는 본 기술 분야에서 잘 알려진 8b/10b 디코딩 방식에 따라서 10 비트 세그먼트를 디코딩한다. 8b/10b 디코더 (518) 는 이어서 8 비트 세그먼트를 동기식 수신 데이터 라인 (530) 으로 출력하고 동기식 수신 제어 비트 (532) 를 동기식 MAC 유닛 (404) 으로 출력한다. 또한, 탄성 버퍼 유닛 (516) 은 유효한 데이터가 동기식 수신 데이터 라인 (530) 및 동기식 수신 제어 비트 (532) 양자 상에서 가용할 때에 그리고 코드 그룹이 정렬된 때에 수신된 유효한 데이터 신호 (538) 를 동기식 MAC 유닛 (404) 에 어서트한다. 탄성 버퍼 유닛 (516) 은 또한 동기식 수신 상태 (534) 를 동기식 MAC 유닛 (404) 에 어서트하며, 이 동기식 수신 상태 (534) 는 수신기 상태 및 가능한 에러 상태를 인코딩한다. 이러한 상태들 및 에러 상태들은 "수신된 데이터 ok", "SKiP (SKP) 심볼 부가됨", "SKiP (SKP) 심볼 제거됨", "8b/10b 디코더 에러", "탄성 버퍼 오버플로우", "탄성 버퍼 언더플로우" 및 "8b/10b 디스패리티 에러 (disparity error)" 를 포함할 수 있다. 동기식 MAC 유닛 (404) 은 모든 동기식 신호들을 동기식 클록 신호 (464) 에 동기화하기 위해서 송신기 클록 레이트 분할기 유닛 (422) 으로부터 동기식 클록 신호 (464) 를 더 수신한다.
동기식 대 비동기식 변환 유닛 (520) 은 역직렬화기 (514), 복구된 클록 레이트 분할기 유닛 (522) 및 비동기식 클록 (406) 으로부터 입력을 수신하도록 커플링된다. 동기식 대 비동기식 변환 유닛 (520) 은 역직렬화기 (514) 의 역직렬화된 신호를 복구된 클록 레이트 분할기 유닛 (522) 으로부터의 분할된 복구된 클록으로 동기화되는 것으로부터 비동기식 클록 (406) 으로 동기화되는 것으로 변환시킨다. 동기식 대 비동기식 변환 유닛 (520) 은 인코딩된 10 비트 세그먼트인 비동기식 수신된 데이터를 비동기식 MAC 유닛 (402) 으로 출력한다. 동기식 대 비동기식 변환 유닛 (520) 은 또한 유효한 데이터가 비동기식 수신된 데이터 라인 (540) 상에서 가용할 때에 비동기식 수신된 유효한 데이터 비트 (538) 를 비동기식 MAC 유닛 (402) 에 어서트한다. 비동기식 MAC 유닛 (402) 은 모든 비동기식 신호들을 동기화하도록 비동기식 클록 (406) 에 커플링된다.
따라서, 상술한 시스템은 인터라켄 프로토콜과 같은 비동기식 프로토콜 및 PCI Express, Serial RapidIO, SGMII, 및 XAUI 와 같은 동기식 SerDes 인터페이스들과의 호환성을 제공한다.
이 시스템은 많은 인터라켄 특정 PCS/PMA 기능을 다중-프로토콜 PHY에서 인터라켄 MAC 기능들을 담당하는 비동기식 MAC 유닛으로 전달한다. 그러나, 이러한 시스템을 사용하면, 인터라켄을 사용하는 비동기식 MAC 유닛은 동기식 MAC 유닛과 동일한 PHY 블록을 사용할 수 있다.
송신 인터페이스는 크레디트/데빗 (credit/debit) 방식을 사용하여서 시스템 클록 상에서 64b/67b 사전-인코딩된/사전-스크램블된 데이터의 10 비트를 송신하는 MAC 블록에서 시작한다. 송신 인터페이스의 PHY 블록은 데이터의 10 병렬 비트들을 비동기식 클록으로 동기화되는 것으로부터 송신기 클록으로 동기화되도록 변환시킨다. 이어서, 송신 인터페이스의 PHY 블록은 10 병렬 비트들을 10 직렬 비트들로 변환시키고 이들을 고속 차동 구동기를 사용하여서 송신한다. 비동기식 클록은, 클록 변환 데이터 버퍼에서의 언더플로우를 방지하기 위해서, 일 실시예에서는 625 MHz인 인터페이스 클록의 속도보다 더 고속으로 실행되어야 한다.
수신 인터페이스의 PHY 블록은 고속 차동 수신기를 사용하여서 직렬 데이터를 수신한다. 이어서, 수신 인터페이스의 PHY 블록은 수신된 직렬 데이터를 세그먼트들로 변환시키고 수신된 데이터의 클록 신호를 복구한다. 수신 인터페이스의 PHY 블록은 64b/67b 인코딩된/스크램블된 데이터의 10 비트들을 10 으로 나누어진 복구된 수신된 데이터 클록에서 비동기식 클록으로 변환시키고 이 데이터를 유효 비트와 함께 MAC 블록으로 송신한다. 비동기식 클록은 송신기 클록에 대한 명시적인 클록 보상을 대체하며 이로써 또한 송신기 클록을 전체적으로 (globally) 라우팅하는 것을 회피한다. 비동기식 클록은, 클록 변환 데이터 버퍼에서의 언더플로우를 방지하기 위해서, 일 실시예에서는 625 MHz인 인터페이스 클록의 속도보다 더 고속으로 실행되어야 한다.
본 기술 분야의 당업자는 몇몇 실시예들에서 송신기 클록이 인터페이스 클록 또는 동기식 클록임을 이해할 것이다. 본 기술 분야의 당업자는 또한 몇몇 실시예들에서 비동기식 클록이 시스템 클록임을 이해할 것이다.
본 발명이 본 발명의 예시적인 실시예들을 참조하여서 특정하게 도시 및 기술되었지만, 형태 및 세부사항에 있어서 다양한 변경들이 첨부된 청구항들에 의해서 포함되는 본 발명의 범위를 벗어나지 않고서 본 발명 내에서 이루어질 수 있음은 본 기술 분야의 당업자에게 이해될 것이다.

Claims (18)

  1. 다중프로토콜 인터페이스로서,
    하나 이상의 동기식 (synchronous) 매체 액세스 제어 층 유닛들 및 하나 이상의 비동기식 (asynchronous) 매체 액세스 제어 층 유닛들 중 적어도 하나로부터의 데이터를 송신하도록 구성된 물리 층 송신기 유닛; 및
    데이터를 수신하고 상기 수신된 데이터를 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들 및 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들 중 적어도 하나로 전달하도록 구성된 물리 층 수신기 유닛을 포함하는, 다중프로토콜 인터페이스.
  2. 제 1 항에 있어서,
    상기 물리 층 송신기 유닛은,
    데이터의 송신 레이트로 동기화된 동기식 클록;
    입력부들로서 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들에 커플링되고 (coupled) 타이밍 디바이스로서 상기 동기식 클록에 커플링되는 8b/10b 인코더;
    상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들에 커플링된 비동기식 대 동기식 변환 유닛; 및
    상기 8b/10b 인코더와 상기 비동기식 대 동기식 변환 유닛 간을 선택하도록 구성된 멀티플렉서를 더 포함하는, 다중프로토콜 인터페이스.
  3. 제 2 항에 있어서,
    비동기식 클록을 더 포함하며,
    상기 비동기식 클록은 상기 데이터의 송신 레이트가 아닌 임의의 다른 데이터 레이트로 동기화되며,
    상기 비동기식 대 동기식 변환 유닛은 타이밍 디바이스들로서 상기 비동기식 클록 및 상기 동기식 클록에 커플링되는, 다중프로토콜 인터페이스.
  4. 제 2 항에 있어서,
    송신기 차동 구동기; 및
    직렬화기 (serializer) 를 더 포함하며,
    상기 멀티플렉서는 상기 직렬화기로 출력하도록 커플링되며,
    상기 송신기 차동 구동기는 상기 직렬화기의 출력을 수신하도록 커플링된, 다중프로토콜 인터페이스.
  5. 제 1 항에 있어서,
    상기 물리 층 수신기 유닛은,
    데이터의 송신 레이트로 동기화된 동기식 클록; 및
    동기식 모드에서 탄성 버퍼 유닛 (elastic buffer unit) 으로 출력하도록 구성되고 비동기식 모드에서 동기식 대 비동기식 변환 유닛으로 출력하도록 구성되는 역직렬화기 (deserializer) 를 더 포함하며,
    상기 탄성 버퍼 유닛은 입력된 신호의 동기식 버전 (synchronous version) 을 8b/10b 디코더에 출력하도록 커플링되며,
    상기 탄성 버퍼 유닛은 타이밍 디바이스로서 상기 동기식 클록에 더 커플링되고,
    상기 8b/10b 디코더는 출력부들로서 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들에 커플링되고 타이밍 디바이스로서 상기 동기식 클록에 커플링되며,
    상기 동기식 대 비동기식 변환 유닛은 출력부들로서 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들에 커플링되며 데이터를 복구된 수신된 클록 레이트에서 비동기식 클록 레이트로 변환하도록 구성되는, 다중프로토콜 인터페이스.
  6. 제 5 항에 있어서,
    상기 수신된 데이터로부터 상기 복구된 수신된 클록을 생성하도록 구성된 클록 복구 유닛으로서, 상기 클록 복구 유닛은 타이밍 디바이스로서 상기 역직렬화기에 커플링되는, 상기 클록 복구 유닛; 및
    상기 역직렬화기 및 상기 클록 복구 유닛으로 출력하도록 커플링된 차동 수신기를 더 포함하는, 다중프로토콜 인터페이스.
  7. 제 5 항에 있어서,
    상기 동기식 대 비동기식 변환 유닛은 타이밍 디바이스들로서 비동기식 클록 및 클록 복구 유닛에 커플링되는, 다중프로토콜 인터페이스.
  8. 제 1 항에 있어서,
    상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들은 인터라켄 프로토콜 (Interlaken protocol) 에 따라서 데이터를 송신 및 수신하도록 구성되며,
    상기 송신 및 수신된 데이터는 인터라켄 패킷들인, 다중프로토콜 인터페이스.
  9. 제 1 항에 있어서,
    상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛 양자는 동기식 모드 또는 비동기식 모드 중 어느 하나의 모드로 동작하도록 구성되며,
    상기 비동기식 모드에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신하며,
    상기 동기식 모드에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신하는, 다중프로토콜 인터페이스.
  10. 다수의 프로토콜들을 사용하여서 인터페이싱하기 위한 방법으로서,
    물리 층 송신기 유닛에서, 하나 이상의 동기식 매체 액세스 제어 층 유닛들 및 하나 이상의 비동기식 매체 액세스 제어 층 유닛들 중 적어도 하나로부터의 데이터를 송신하는 단계; 및
    물리 층 수신기 유닛에서, 데이터를 수신하고 상기 수신된 데이터를 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들 및 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들 중 적어도 하나로 전달하는 단계를 포함하는, 인터페이싱 방법.
  11. 제 10 항에 있어서,
    상기 물리 층 송신기 유닛은,
    데이터의 송신 레이트로 동기화된 동기식 클록을 유지하는 단계;
    상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들로부터의 데이터를 타이밍 디바이스로서 상기 동기식 클록을 사용하여 8b/10b 인코딩 방식으로 인코딩하는 단계;
    상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들의 출력을 동기식 출력으로 변환시키는 단계; 및
    멀티플렉서에서 상기 인코딩된 데이터와 상기 동기식 출력 간에서 선택하는 단계를 더 포함하는, 인터페이싱 방법.
  12. 제 11 항에 있어서,
    비동기식 클록을 유지하는 단계를 더 포함하며,
    상기 비동기식 클록은 상기 데이터의 송신 레이트가 아닌 임의의 다른 데이터 레이트로 동기화되며,
    상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들의 출력을 동기식 출력으로 변환시키는 단계는 상기 동기식 출력의 타이밍을 상기 동기식 클록에 기초하게 하는, 인터페이싱 방법.
  13. 제 11 항에 있어서,
    상기 선택된 출력을 직렬화하는 단계; 및
    상기 직렬화된 출력을 차동으로 구동시키는 단계를 더 포함하는, 인터페이싱 방법.
  14. 제 10 항에 있어서,
    상기 물리 층 수신기 유닛은,
    데이터의 송신 레이트로 동기화된 동기식 클록을 유지하는 단계;
    데이터를 수신하는 단계;
    상기 데이터를 역직렬화하는 단계;
    동기식 모드에서, 데이터 디코딩 경로를 따라서 데이터를 버퍼링하고 상기 버퍼링된 데이터를 상기 동기식 클록과 동기화하고, 8b/10b 디코딩 방식 및 타이밍 디바이스로서 상기 동기식 클록을 사용하여서 상기 데이터 디코딩 경로를 따라서 상기 버퍼링된 데이터를 디코딩하고, 상기 디코딩된 데이터를 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들에 출력하는 단계; 및
    비동기식 모드에서, 상기 데이터를 동기식 대 비동기식 변환 경로를 따라서 비동기식 클록으로 타이밍된 비동기식 신호로 변환하고, 상기 비동기식 신호를 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들에 출력하는 단계를 더 포함하는, 인터페이싱 방법.
  15. 제 14 항에 있어서,
    상기 수신된 데이터로부터 클록 정보를 복구하는 단계; 및
    상기 데이터를 상기 복구된 클록 정보에 동기화시킴으로써 상기 데이터를 역직렬화하는 단계를 더 포함하는, 인터페이싱 방법.
  16. 제 15 항에 있어서,
    상기 수신된 데이터를 상기 동기식 대 비동기식 변환 경로를 따라서 변환하는 단계는 상기 수신된 데이터를 상기 복구된 클록 정보에 타이밍되는 것으로부터 비동기식 클록으로 타이밍된 비동기 신호가 되도록 변환하는, 인터페이싱 방법.
  17. 제 10 항에 있어서,
    상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들은 인터라켄 프로토콜에 따라서 데이터를 송신 및 수신하도록 구성되며,
    상기 송신 및 수신된 데이터는 인터라켄 패킷들인, 인터페이싱 방법.
  18. 제 10 항에 있어서,
    상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛 양자는 동기식 모드 또는 비동기식 모드 중 어느 하나의 모드로 동작하도록 구성되며,
    상기 비동기식 모드에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 비동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신하며,
    상기 동기식 모드에서, 상기 물리 층 송신기 유닛 및 상기 물리 층 수신기 유닛은 오직 상기 하나 이상의 동기식 매체 액세스 제어 층 유닛들을 사용하여서 송신 및 수신하는, 인터페이싱 방법.
KR1020147014165A 2011-10-25 2012-09-26 다중―프로토콜 sereds phy 장치 KR101645502B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/280,841 US9219560B2 (en) 2011-10-25 2011-10-25 Multi-protocol SerDes PHY apparatus
US13/280,841 2011-10-25
PCT/US2012/057279 WO2013062709A1 (en) 2011-10-25 2012-09-26 Multi-protocol serdes phy apparatus

Publications (2)

Publication Number Publication Date
KR20140084297A KR20140084297A (ko) 2014-07-04
KR101645502B1 true KR101645502B1 (ko) 2016-08-04

Family

ID=47080794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147014165A KR101645502B1 (ko) 2011-10-25 2012-09-26 다중―프로토콜 sereds phy 장치

Country Status (5)

Country Link
US (1) US9219560B2 (ko)
KR (1) KR101645502B1 (ko)
CN (1) CN103907297B (ko)
DE (1) DE112012004451B4 (ko)
WO (1) WO2013062709A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374216B2 (en) 2013-03-20 2016-06-21 Qualcomm Incorporated Multi-wire open-drain link with data symbol transition based clocking
US9337997B2 (en) 2013-03-07 2016-05-10 Qualcomm Incorporated Transcoding method for multi-wire signaling that embeds clock information in transition of signal state
US9755818B2 (en) 2013-10-03 2017-09-05 Qualcomm Incorporated Method to enhance MIPI D-PHY link rate with minimal PHY changes and no protocol changes
US9203599B2 (en) 2014-04-10 2015-12-01 Qualcomm Incorporated Multi-lane N-factorial (N!) and other multi-wire communication systems
US9735948B2 (en) * 2013-10-03 2017-08-15 Qualcomm Incorporated Multi-lane N-factorial (N!) and other multi-wire communication systems
CN105024948A (zh) 2014-04-30 2015-11-04 深圳市中兴微电子技术有限公司 一种基于芯片的数据传输方法、装置及系统
CN104283561B (zh) * 2014-09-22 2018-04-27 电子科技大学 一种异步时钟并串转换半周期输出电路
WO2016167378A1 (ko) * 2015-04-13 2016-10-20 주식회사 로보티즈 복수 종류의 물리 계층 관련 호스트-클라이언트 디바이스간 연결지원장치
CN112612731B (zh) * 2015-09-26 2024-09-03 英特尔公司 多芯片封装链路错误检测
US20170091138A1 (en) * 2015-09-30 2017-03-30 Mediatek Inc. Circuit module capable of establishing one or more links with another device and associated method
US9940288B1 (en) * 2015-11-23 2018-04-10 Cadence Design Systems, Inc. SerDes alignment process
US9880949B1 (en) * 2015-12-11 2018-01-30 Microsemi Solutions (U.S.), Inc. Cross clock compensation between layers in peripheral component interconnect express
FR3055063B1 (fr) 2016-08-11 2018-08-31 Soitec Procede de transfert d'une couche utile
US10372657B2 (en) * 2016-12-26 2019-08-06 Intel Corporation Bimodal PHY for low latency in high speed interconnects
CN106789447B (zh) * 2017-02-20 2019-11-26 成都欧飞凌通讯技术有限公司 一种多核中实现超有限自动机图变更时不丢包的方法
US10291386B2 (en) 2017-09-29 2019-05-14 Cavium, Llc Serializer/deserializer (SerDes) lanes with lane-by-lane datarate independence
KR20190056890A (ko) 2017-11-17 2019-05-27 삼성전자주식회사 메모리 장치 및 그것의 동작 방법
US11132327B2 (en) 2018-11-29 2021-09-28 Ati Technologies Ulc Method and apparatus for physical layer bypass
KR102496164B1 (ko) * 2018-12-07 2023-02-07 한국전자통신연구원 다중 MAC 운영 환경에서의 통신 방법 및 IoT 디바이스
DE112020002209B4 (de) 2019-05-03 2023-01-12 Microchip Technology Incorporated Emulation von Kollisionen in drahtgebundenen lokalen Netzwerken und zugehörige Systeme, Verfahren und Vorrichtungen
CN112422385B (zh) 2019-08-23 2022-11-29 微芯片技术股份有限公司 用于改进的媒体访问的接口以及相关的系统、方法和设备
CN112422295B (zh) 2019-08-23 2023-06-13 微芯片技术股份有限公司 以太网接口及相关系统、方法和设备
CN112415323B (zh) 2019-08-23 2024-07-09 微芯片技术股份有限公司 诊断网络内的电缆故障
CN112422219B (zh) 2019-08-23 2024-05-24 微芯片技术股份有限公司 以太网接口和相关系统、方法和设备
CN112422153B (zh) 2019-08-23 2023-04-07 微芯片技术股份有限公司 检测到共享传输介质处冲突后处理数据接收的方法和系统
CN112491435B (zh) 2019-08-23 2022-11-18 微芯片技术股份有限公司 包括收发器和驱动器架构的物理层的电路
CN112423403A (zh) 2019-08-23 2021-02-26 微芯片技术股份有限公司 检测网络上的冲突
JP2023518827A (ja) 2020-03-24 2023-05-08 マイクロチップ テクノロジー インコーポレイテッド 10speローカル及びリモートウェイクによる少接続部数インターフェースウェイクソース通信、並びに関連するシステム、方法、及びデバイス
TWI782694B (zh) * 2021-09-06 2022-11-01 智原科技股份有限公司 時序調整電路、時序不對稱消除方法及接收電路
US11646861B2 (en) 2021-09-24 2023-05-09 International Business Machines Corporation Low-latency, high-availability and high-speed SerDes interface having multiple synchronization modes
US11907074B2 (en) 2021-09-24 2024-02-20 International Business Machines Corporation Low-latency deserializer having fine granularity and defective-lane compensation
EP4216516A1 (en) * 2022-01-25 2023-07-26 Schneider Electric Industries SAS Transmitter and receiver module, communication system for exchanging ethernet frames on a single m-lvds line
CN114666420B (zh) * 2022-03-29 2023-11-14 浙江大学 一种开放式的多通讯协议组件
EP4236265A1 (de) * 2022-09-27 2023-08-30 INOVA Semiconductors GmbH Hardwarebasiertes und effizientes weiterleiten von daten

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0151915B1 (ko) * 1995-12-13 1998-11-02 양승택 비동기 전달모드와 이더넷 겸용 어뎁터 송수신 장치
US6519266B1 (en) * 1998-01-05 2003-02-11 Nortel Networks Limited Layering of wireless packet data service
US6516952B1 (en) * 1999-05-13 2003-02-11 3Com Corporation Dual mode serializer-deserializer for data networks
AU2002257217A1 (en) 2001-04-24 2002-11-05 Broadcom Corporation Alerting system, architecture and circuitry
US7787387B2 (en) * 2002-03-21 2010-08-31 Broadcom Corporation Auto-selection of SGMII or SerDes pass-through modes
US7206366B2 (en) * 2002-08-07 2007-04-17 Broadcom Corporation System and method for programmably adjusting gain and frequency response in a 10-GigaBit ethernet/fibre channel system
US7286622B2 (en) * 2002-08-07 2007-10-23 Broadcom Corporation System and method for performing on-chip synchronization of system signals utilizing off-chip harmonic signal
US20040028164A1 (en) * 2002-08-07 2004-02-12 Hongtao Jiang System and method for data transition control in a multirate communication system
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
US8230114B2 (en) * 2002-08-07 2012-07-24 Broadcom Corporation System and method for implementing a single chip having a multiple sub-layer PHY
US6653957B1 (en) 2002-10-08 2003-11-25 Agilent Technologies, Inc. SERDES cooperates with the boundary scan test technique
KR100575989B1 (ko) * 2004-04-08 2006-05-02 삼성전자주식회사 동기화 이더넷에서의 비동기 데이터의 분할 전송 방법 및그 방법에 사용되는 데이터 구조
US20050281277A1 (en) * 2004-06-22 2005-12-22 Killian Thomas J Establishing traffic priorities in a voice over IP network
US7672300B1 (en) 2004-07-22 2010-03-02 Marvell Israel (M.I.S.L.) Ltd. Network device with multiple MAC/PHY ports
TWI458309B (zh) 2007-12-24 2014-10-21 Ind Tech Res Inst 多協定單一介質網路傳輸方法與裝置
KR101622265B1 (ko) * 2008-08-11 2016-05-18 코닌클리케 필립스 엔.브이. 인체 영역 네트워크들에서 동기 및 비동기 동작 모드들 사이에서 동적으로 스위칭하기 위한 기술들

Also Published As

Publication number Publication date
CN103907297A (zh) 2014-07-02
CN103907297B (zh) 2016-11-09
US20130101058A1 (en) 2013-04-25
WO2013062709A1 (en) 2013-05-02
DE112012004451B4 (de) 2022-12-15
US9219560B2 (en) 2015-12-22
DE112012004451T5 (de) 2014-09-04
KR20140084297A (ko) 2014-07-04

Similar Documents

Publication Publication Date Title
KR101645502B1 (ko) 다중―프로토콜 sereds phy 장치
CN102681971B (zh) 一种基于aurora协议进行FPGA板间高速互连的方法
US8885480B2 (en) Packet priority in a network processor
US9065626B2 (en) Bit error rate impact reduction
US9059836B2 (en) Word boundary lock
US8595401B2 (en) Input output bridging
US8572300B2 (en) Physical coding sublayer (PCS) architecture for synchronizing data between different reference clocks
US20150193371A1 (en) Observing an internal link via an existing port for system on chip devices
US11805042B2 (en) Technologies for timestamping with error correction
US20130251006A1 (en) Data packet flow control across an asynchronous clock domain boundary
CN114442514B (zh) 一种基于fpga的usb3.0/3.1控制系统
JPWO2010123143A1 (ja) 送信装置、送信方法及び送信装置の制御プログラム
CN108462620B (zh) 一种吉比特级SpaceWire总线系统
CN204256732U (zh) 基于PCI-Express接口的高速数据传输装置
CN104991883A (zh) 片间互联的发送、接收装置及发送、接收方法及系统
CN117009276B (zh) 一种基于axi总线的信号压缩传输的方法、装置及系统
CN111352887B (zh) 一种pci总线到可配置帧长度串行总线适配和传输方法
US9906468B2 (en) Packet traffic control in a network processor
US20130101076A1 (en) Polarity Detection
CN117897697A (zh) 用于芯片到芯片接口的按需分组化
CN115706661A (zh) 同步高速信令互连
CN101577598A (zh) 多路信号复用、解复用的方法、装置和系统
CN114625610B (zh) 一种按单时间轴传输的多通道spacewire总线监测方法
CN221008254U (zh) 一种用于并行背板总线通信方式的lvds信号转换装置
CN117938574B (zh) 一种用于星载设备间通信的SpaceWire总线节点控制器IP核

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 4