KR20210092230A - 향상된 속도 모드를 갖는 데이터 통신 - Google Patents

향상된 속도 모드를 갖는 데이터 통신 Download PDF

Info

Publication number
KR20210092230A
KR20210092230A KR1020217016765A KR20217016765A KR20210092230A KR 20210092230 A KR20210092230 A KR 20210092230A KR 1020217016765 A KR1020217016765 A KR 1020217016765A KR 20217016765 A KR20217016765 A KR 20217016765A KR 20210092230 A KR20210092230 A KR 20210092230A
Authority
KR
South Korea
Prior art keywords
speed
pcie
controller
link
enhanced
Prior art date
Application number
KR1020217016765A
Other languages
English (en)
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 KR20210092230A publication Critical patent/KR20210092230A/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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

인터커넥트 제어기는 트랜잭션 계층에 연결되는 데이터 링크 계층 제어기로서, 선택적으로 트랜잭션 계층으로부터 데이터 패킷들을 수신하고 트랜잭션 계층에 데이터 패킷들을 송신하는, 데이터 링크 계층 제어기, 및 데이터 링크 계층 제어기에 및 통신 링크에 연결되는 물리적 계층 제어기를 포함한다. 물리적 계층 제어기는 선택적으로 제1 미리 결정된 링크 속도로 동작한다. 물리적 계층 제어기는 향상된 속도 모드를 가지되, 링크 초기화를 수행하는 것에 응답하여, 인터커넥트 제어기는 향상된 속도 모드가 허용되는지 여부를 결정할 것을 데이터 프로세싱 플랫폼에 질의하고, 향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하되, 향상된 속도는 제1 미리 결정된 링크 속도보다 큰 것이며, 후속하여 향상된 속도를 사용하여 통신 링크를 동작시킨다.

Description

향상된 속도 모드를 갖는 데이터 통신
데이터 통신 시스템들은 통상적으로 공표된 통신 표준들을 따르도록 설계됨에 따라 하나의 제조자의 구성요소들이 상이한 제조자들로부터의 구성요소들과 상호 동작할 수 있다. 예를 들어, 많은 최신 컴퓨팅 디바이스들은 PCI(Peripheral Component Interconnect) 또는 PCIe(PCI Express) 인터커넥트 표준들의 일부 버전 또는 구현을 이용하는 입력/출력(I/O) 어댑터들 및 버스들을 이용한다. PCIe 표준은 주변 디바이스들을 호스트 컴퓨터에 부속시키기 위한 컴퓨터 통신 인터커넥트를 지정한다. PCIe는 기존의 PCI 프로그래밍 개념을 사용하는 앞선 PCI 표준의 확장이지만, 컴퓨터 인터커넥트의 기초를 더 빠른 물리적 계층 통신 프로토콜에 둔다. PCIe 물리적 계층은 업스트림과 다운스트림 디바이스들 사이의 이중 단방향 링크들로 구성된다.
PCIe 표준은 PCI-SIG(Peripheral Component Interconnect Special Interest Group)에 의해 공표된다. PCI-SIG는 향상된 속도 및 능력을 반영하기 위해 때때로 표준을 개정한다. 예를 들어, PCIe 1.0은 2003년에 공표되었고 2.5 GT/s(giga transfers per second)의 전송 레이트를 지정하였다. PCIe 2.0은 2007년에 도입되어 5.0 GT/s 전송 레이트를 제공하였고, 뒤이어 2010년에 8.0 GT/s 전송 레이트로 PCIe 3.0이 이어졌으며, 2017년에는 16.0 GT/s 전송 레이트로 PCIe 4.0이 이어졌다. 이와 같이, 표준은 3-7년 주기로 공표되는 새로운 버전들에 따라 크고 불연속적인 단계들로 전송 레이트를 증가시켜왔다.
동시에, 반도체 제조 기술이 급속히 진전되고 있다. 딥 서브-미크론 포토리소그래피(deep sub-micron photolithography) 및 저전압 상보성 금속 산화물 반도체(CMOS, complementary metal-oxide-semiconductor) 트랜지스터들과 같은 진전은 프로세싱 속도를 진전시켜, PCI-SIG와 같은 표준 설정 기관들이 페이스를 맞추기 어렵게 한다.
도 1은 종래 기술에 공지된 PCIe(peripheral component interface) 링크들을 사용하는 예시적인 데이터 프로세싱 플랫폼을 블록도 형태로 도시한다;
도 2는 일부 실시 예들에 따른 향상된 속도 모드(ESM, enhanced speed mode)를 갖는 PCIe 링크들을 사용하는 데이터 프로세싱 플랫폼의 일 부분을 블록도 형태로 도시한다;
도 3은 일부 실시 예들에 따른 도 2의 데이터 프로세싱 플랫폼에서 사용하기에 적합한 향상된 속도 모드를 갖는 인터커넥트 제어기를 블록도 형태로 도시한다;
도 4는 일부 실시 예들에 따른 도 3의 인터커넥트 제어기에 의해 수행되는 링크 초기치 설정의 흐름도를 도시한다;
도 5는 일부 실시 예들에 따른 도 3의 인터커넥트 제어기의 향상된 능력 기술어를 도시한다;
도 6은 도 5의 확장 능력 기술어(extended capability descriptor)의 PCIe 확장 능력 헤더를 도시한다;
도 7은 도 2의 PCIe 루트 컴플렉스(root complex)가 현재 확장 능력 기술어를 사용하여 후속 확장 능력 기술어의 위치를 어떻게 찾는지를 나타내는 어드레스 맵을 도시한다;
도 8은 도 5의 확장 능력 기술어의 PCIe ESM 헤더 1을 도시한다;
도 9는 도 5의 확장 능력 기술어의 PCIe ESM 헤더 2를 도시한다;
도 10은 도 5의 확장 능력 기술어의 ESM 상태 레지스터를 도시한다;
도 11은 도 5의 확장 능력 기술어의 ESM 제어 레지스터를 도시한다;
도 12는 도 5의 확장 능력 기술어의 ESM 능력 1 레지스터를 도시한다;
도 13은 도 5의 확장 능력 기술어의 ESM 능력 7 레지스터를 도시한다; 그리고
도 14는 도 3의 인터커넥트 제어기의 초기화를 도시하는 타이밍도이다; 그리고
도 15는 일부 실시 예들에 따른 PCIe 트랜잭션 계층 또는 CCIX 트랜잭션 계층 중 어느 하나를 지원하는 통신 제어기를 블록도 형태로 도시한다.
이어지는 설명에서, 상이한 도면들에서 동일한 참조 부호들의 사용은 유사하거나 동일한 항목들들을 나타낸다. 달리 언급되지 않는 한, "연결된(coupled)" 및 이의 관련 동사 형태들은 당해 기술분야에 공지되어 있는 수단들에 의한 직접 접속 및 간접 전기 접속 둘 다를 포함하고, 달리 언급되지 않는 한 직접 접속의 임의의 설명은 적합한 형태들의 간접 전기 접속도 사용하는 대안적인 실시 예들을 암시한다.
데이터 프로세싱 플랫폼을 위한 인터커넥트 제어기는 데이터 링크 계층 제어기 및 물리적 계층 제어기를 포함한다. 데이터 링크 계층 제어기는 트랜잭션 계층에 연결되되, 선택적으로 트랜잭션 계층으로부터 데이터 패킷들을 수신하고 트랜잭션 계층에 데이터 패킷들을 송신한다. 물리적 계층 제어기는 데이터 링크 계층 제어기에 연결되고 통신 링크에 연결된다. 물리적 계층 제어기는 선택적으로 공표된 표준에 의해 지정된 제1 미리 결정된 링크 속도로 동작한다. 물리적 계층 제어기는 향상된 속도 모드를 가지되, 링크 초기화를 수행하는 것에 응답하여, 인터커넥트 제어기는 향상된 속도 모드가 허용되는지 여부를 결정할 것을 데이터 프로세싱 플랫폼에 질의하고, 향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하되, 향상된 속도는 제1 미리 결정된 링크 속도보다 크고 공표된 표준에 의해 지정되지 않은 것이며, 후속하여 향상된 속도를 사용하여 통신 링크를 동작시킨다.
데이터 프로세싱 플랫폼은 기본 입력/출력 시스템(BIOS, basic input/output system) 및 데이터 프로세서를 포함한다. 데이터 프로세서는 중앙 프로세싱 유닛 및 PCIe(Peripheral Component Interconnect Express) 루트 컴플렉스(root complex)를 포함한다. 중앙 프로세싱 유닛은 BIOS에 연결되고 이에 응답하여 초기화 절차를 실행한다. PCIe 루트 컴플렉스는 중앙 프로세싱 유닛에 연결되고 PCIe 네트워크에 연결되는 제1 PCIe 포트 제어기를 포함한다. 제1 PCIe 포트 제어기는 공표된 표준에 의해 지정된 제1 미리 결정된 링크 속도 및 향상된 속도 모드를 지원한다. BIOS는 중앙 프로세싱 유닛에 의해 실행될 때 PCIe 루트 컴플렉스로 하여금 향상된 속도 모드가 허용되는지 여부를 결정할 것을 데이터 프로세싱 플랫폼에 질의하게 하는 명령어, 제1 미리 결정된 링크 속도보다 크고 공표된 표준에 의해 지정되지 않은, 향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하게 하는 명령어, 및 후속하여 향상된 속도를 사용하여 PCIe 네트워크에 대한 통신 링크를 동작시키게 하는 명령어를 포함한다.
공표된 표준에 따라 통신 링크를 동작시키는 인터커넥트 제어기를 갖는 데이터 프로세싱 플랫폼에서 사용하기 위한 방법은 향상된 속도 모드가 허용되는지 여부를 결정할 것을 데이터 프로세싱 플랫폼에 질의하는 단계를 포함한다. 향상된 속도를 선택하기 위한 적어도 하나의 설정 동작이 수행되되, 향상된 속도는 공표된 표준에 의해 지정되지 않고 공표된 표준에 의해 지정된 제1 미리 결정된 링크 속도보다 크다. 후속하여 통신 링크는 향상된 속도를 사용하여 동작된다.
도 1은 PCIe(PCI(peripheral component interface) Express) 링크들을 사용하는 예시적인 데이터 프로세싱 플랫폼(100)을 블록도 형태로 도시한다. 데이터 프로세싱 플랫폼(100)은 일반적으로 중앙 프로세싱 유닛(CPU)(110), 메모리(120), PCIe 종점(130), PCI/PCIe 브리지(140), 스위치(150), 레거시 종점들(160 및 170), 및 PCIe 종점들(180 및 190) 을 포함한다.
CPU(110)는 CPU 코어(112), 루트 컴플렉스(114), 및 본 개시와 관련되지 않고 논의의 편의상 도 1에서 생략된 여러 다른 구성요소들을 포함하여 여러 구성요소들을 포함한다. CPU 코어(112)는 예를 들어, 캐시 및 내부 데이터 패브릭을 통해 루트 컴플렉스(114)에 기능적으로 접속된다. 루트 컴플렉스(114)는 PCIe 종단점(130)에의 PCIe 링크, PCI/PCIe 브리지(140)에의 PCIe 링크, 및 스위치(150)에의 PCIe 링크를 포함하여, 여러 PCIe 링크들에 양방향으로 접속된다. 도 1에 도시된 바와 같이, PCI/PCIe 브리지(140)는 차례로 계층 구조의 PCI 또는 PCIe 디바이스들(142)에 접속되고, 스위치(150)는 레거시 종점들(160 및 170) 및 PCIe 종점들(180 및 190)에 접속된다.
CPU(110)는 또한 메모리(120)에 양방향으로 접속된다. 도 1은 메모리(120)를 단일 메모리 시스템으로서 도시하지만, 통상적으로 이는 CPU(110)의 상이한 하위 구성요소들에 접속되는 상이한 유형들의 메모리를 포함한다. 예를 들어, 메모리(120)의 제1 부분은 시스템 기본 입력/출력 시스템(BIOS)(122)을 저장하고, 통상적으로 비휘발성 메모리로서 구현되며 시스템 제어기 또는 "사운드브리지(Southbridge)"를 통해 CPU(110)에 접속된다. 한편, 메모리(120)의 제2 부분은 운영 체제(124)를 저장한다. 운영 체제는 통상적으로 하드 디스크 드라이브와 같은 대용량 저장 매체 상에 저장된 다음, 부팅 시에 더 빠른, 휘발성 랜덤 액세스 메모리(RAM, random access memory)로 로딩된다.
동작 시, 데이터 프로세싱 플랫폼(100)을 부팅하고 초기화하기 위해 시스템 BIOS(122)가 사용된다. 초기화의 일부로서, 시스템 BIOS(122)는 데이터 프로세싱 플랫폼(100)에 존재하는 입력/출력(I/O) 디바이스들을 결정하고, 열거(enumeration)로서 알려져 있는 PCIe 패브릭을 구성하는 프로세스 내내 계속된다. 시스템 BIOS(122)는 시스템에 존재하는 각 I/O 디바이스와 연관된 구성 레지스터들을 판독하여 제각기 각각의 특성들 및 능력들을 결정한다. 시스템 BIOS(122)가 시스템을 열거하고, 루트 컴플렉스(114)를 초기화하며, 다양한 다른 시동 작업들을 수행하는 것을 완료하면, 이는 애플리케이션 프로그램들이 운영되는 환경을 형성하는 운영 체제(124)로 제어를 전달한다.
수년에 걸쳐, PCIe 표준은 집적 회로 기술의 능력들이 새롭고 더 빠른 속도들 및 향상된 능력들을 가능하게 하도록 진전됨에 따라 변화되어왔다. 그러나, 표준 설정 프로세스는 상대적으로 느려, 집적 회로 제조 기술의 능력의 개선보다 뒤쳐진다. 이에 따라, PCI 및 PCIe 시스템들은 집적 회로 기술의 진전을 활용하기 위해 원활하게 적응할 수 없었다.
도 2는 일부 실시 예들에 따른 향상된 속도 모드(ESM, enhanced speed mode)를 갖는 PCIe 링크들을 사용하는 데이터 프로세싱 플랫폼(200)의 일 부분을 블록도 형태로 도시한다. 데이터 프로세싱 플랫폼은 일반적으로 CPU(210), 메모리(220), 및 PCIe 네트워크(230)를 포함한다. CPU(210)는 CPU 코어(212), 루트 컴플렉스(214), 및 본 논의와 관련되지 않으며 논의의 편의상 도 2에서 생략된 여러 다른 구성요소들을 포함한다. 도 2에 도시된 바와 같이, 루트 컴플렉스(214)는 PCIe 포트 제어기(216)를 포함하지만 다른 PCIe 포트 제어기들을 포함할 수도 있다. PCIe 포트 제어기(216)는 PCIe 네트워크(230)에 양방향으로 접속된다. 도 2는 시동 시에 시스템 구성이 알려지지 않고 발견 프로세스를 통해 학습되어야 하며 인터커넥트된 구성요소들이 열거를 통해 시스템 어드레스들이 할당된다는 사실 을 강조하기 위해 PCIe 네트워크(230)를 클라우드로서 도시한다. 도 1에서와 같이, CPU(210)는 또한 메모리(220)에 양방향으로 접속되고, 메모리(220)는 시스템 BIOS를 저장하는 제1 부분(222), 및 운영 체제를 저장하는 제2 부분(224)을 가진다.
데이터 프로세싱 플랫폼(200)은 향상된 속도 모드(ESM)를 지원한다는 점에서 도 1의 데이터 프로세싱 플랫폼(100)과 상이하다. ESM은 PCIe 표준이 때때로 개정됨에 따라 이에 의해 지정된 링크 속도를 확장시킨다. 특히, ESM은 다양한 PCIe 표준 버전들에서 지정된 표준 속도들보다 높고/거나 표준 속도들과 상이한 속도들을 가능하게 한다. PCIe 네트워크(230)에서의 링크 파트너가 또한 동일한 속도의 ESM 을 지원하는 한, 이러한 향상된 속도들로의 링크의 동작이 허용된다. 향상된 속도들은 두 가지 형태들 중 어느 하나를 취할 수 있다. 첫째, 향상된 속도들은 표준에 공표된 지원되는 최고 속도보다 높을 수 있다. 둘째, 향상된 속도는 표준에 의해 지정된 두 개의 불연속적인 속도들 사이일 수 있다.
상이한 세대의 공표된 PCIe 표준들에 의해 지원되는 속도는 아래의 표 1에 제시되어 있다:
원 비트 레이트 링크 대역폭 BW/레인/방향
(근사치)
총 BW x 16
(근사치)
PCIe 1.x 2.5 GT/s 2 GB/s 250 MB/s 8 GB/s
PCIe 2.x 5 GT/s 4 GB/s 500 MB/s 16 GB/s
PCIe 3.0 8 GT/s 8 GB/s 1 GB/s 32 GB/s
PCIe 4.0 16 GT/s 16 GB/s 2 GB/s 64 GB/s
ESM의 구현의 일례에서, 향상된 속도는 공표된 PCIe 2.0 표준에 의해 지정된 8.0 GT/s 속도와 공표된 PCIe 3.0 표준에 의해 지정된 16.0 GT/s 속도 사이의 속도일 수 있다. 다른 예에서, 향상된 속도는 8.0 GT/s와 16.0 GT/s의 다수의 불연속적인 속도들 중 어느 하나일 수 있다. 또 다른 예에서, 향상된 속도는 공표된 PCIe 3.0 표준에 의해 지정된 16.0 GT/s보다 높은 단일의 불연속적인 속도, 이를테면 25.0 GT/s일 수 있다. 또 다른 예에서, 향상된 속도는 16.0 GT/s와 25.0 GT/s의 다수의 불연속적인 속도들 중 어느 하나일 수 있다.
공표된 PCIe 속도들을 초과하는 속도들을 지원함으로써, 데이터 프로세싱 플랫폼(200)은 데이터 프로세싱 플랫폼의 성능이 링크 파트너들 둘 다가 동일한 향상된 속도 능력들을 지원하는 PCIe 링크들 상에서 개선될 수 있게 한다. 속도는 예를 들어, 링크 파트너들 둘 다에 의해 지원되는 최고 속도로 설정될 수 있다. 이에 따라, ESM은 표준들에 의해 지정된 불연속적인 속도들에 의해 제한되지 않고, 업스트림 및 다운스트림 포트들 및 이들과 연관된 제어기들에 의해 사용되는 반도체 제조 프로세스들의 능력들에 의해서만 제한되는 스케일러블 성능 개선을 가능하게 한다.
도 3은 일부 실시 예들에 따른 도 2의 데이터 프로세싱 플랫폼(200)에서 사용하기에 적합한 향상된 속도 모드를 갖는 인터커넥트 제어기(300)를 블록도 형태로 도시한다. 인터커넥트 제어기(300)는 PCIe 트랜잭션 계층 제어기(310), PCIe 데이터 링크 계층 제어기(320), 및 PCIe 물리적 계층 제어기(330)를 포함한다.
PCIe 트랜잭션 계층 제어기(310)는 도 3 에서 총괄하여 "액세스"로 라벨링된 데이터 액세스들을 수신하고 데이터 응답들을 제공하기 위한 업스트림 양방향 접속, 및 PCIe 패킷들을 제공하고 수신하기 위한 다운스트림 양방향 접속을 가진다. 시스템 BIOS는 또한 다운스트림 시스템 구성요소들에 질의하고 시스템을 열거하기 위한 다양한 액세스들을 제공한다. 데이터 액세스들은 데이터 액세스 에이전트로부터 수신되는 메모리 판독들, 메모리 기입들, 및 PCIe 종점으로부터 리턴되는 판독 데이터 응답들 및 완료들을 포함하는 응답들을 포함한다. PCIe 트랜잭션 계층 제어기(310)는 메모리 액세스 요청들을 PCIe 패킷들로 변환하고 이 반대로도 마찬가지이다. 이에 따라, 이는 메모리 액세스 에이전트들로부터 인터커넥트 프로토콜을 추상화한다, 즉 이는 메모리 액세스 에이전트들에 프로토콜 비가시성을 제공한다.
PCIe 데이터 링크 계층 제어기(320)는 PCIe 트랜잭션 계층 제어기(310) 의 다운스트림 포트에 접속되는 양방향 업스트림 포트, 및 양방향 다운스트림 포트를 가진다. 이는 개방형 시스템 인터커넥트(OSI, open systems interconnect) 모델에 따라 링크 설정, 패킷 시퀀싱, 흐름 제어, 재시도, 및 데이터 링크 계층과 통상적으로 연관되는 다른 특징들을 수행한다. PCIe 데이터 링크 계층 제어기(320)는 헤더들, 제어 정보, 및 프레임 체크 시퀀스들 등을 추가하여 액세스 요청들을 위해 PCIe 물리적 계층 제어기(330)에 제공하는 데이터 링크 계층 패킷을 형성하고, PCIe 물리적 계층 제어기(330)로부터 수신되는 데이터 링크층 패킷들의 헤더들, 제어 정보, 및 프레임 체크 시퀀스들을 프로세싱하여 액세스 응답들을 위한 PCIe 패킷들을 형성한다.
PCIe 물리적 계층 제어기(330)는 PCIe 데이터 링크 계층 제어기(320)의 다운스트림 양방향 포트에 접속되는 업스트림 양방향 포트, 및 "TX"로 라벨링된 단방향 송신 포트 및 "RX"로 라벨된 단방향 수신 포트를 포함하는 매체(340)에 접속되는 다운스트림 포트를 가진다. PCIe 물리적 계층 제어기(330)는 아래에서 더 설명될 바와 같이 하나 이상의 향상된 속도를 지원한다.
예시적인 실시 예에서, PCIe 트랜잭션 계층 제어기(310), PCIe 데이터 링크 계층 제어기(320), 및 PCIe 물리적 계층 제어기(330)는 모두 CPU 칩 상의 회로 블록들이다. 그러나, 인터커넥트 제어기(300)의 블록들은 하드웨어 및 소프트웨어(예를 들어, 운영 체제 드라이버들)의 다양한 조합들로 구현될 수 있다. 예를 들어, PCIe 물리적 계층 제어기(330)는 하드웨어로 구현될 수 있고 PCIe 트랜잭션 계층 제어기(310)는 소프트웨어로 구현될 수 있는 한편, PCIe 데이터 링크 계층 제어기(320)는 부분적으로 하드웨어로 그리고 부분적으로 소프트웨어로 구현될 수 있다.
도 4는 일부 실시 예들에 따른 도 3의 인터커넥트 제어기(300)에 의해 수행되는 링크 초기치 설정의 흐름도(400)를 도시한다. 초기화 시, 인터커넥트 제어기(300)는 동작 박스들(410, 420 및 430)을 순차적으로 사용하여 접속되는 링크를 초기화한다.
동작 박스(410)에서, 시스템 BIOS는 ESM이 허용되는지 여부를 결정할 것을 데이터 프로세싱 플랫폼(200)에 질의하도록 인터커넥트 제어기(300)를 제어한다. 플랫폼에 질의하는 것은 플랫폼이 ESM이 사용되도록 허용하는 유형을 가짐을 검출하기 위해 버스 계층 구조를 열거하는 것을 수반한다. 이러한 허용은 첫째 플랫폼이 ESM 동작에 인에이블됨을 결정하고, 둘째 ESM 동작이 가능한 인터커넥트 제어기(300)가 접속되는 링크의 타단에 포트가 존재하는 것을 포함한다.
동작 박스(420)에서, 시스템 BIOS는 ESM을 사용하기 위한 설정 절차를 수행하도록 인터커넥트 제어기(300)를 제어한다. ESM이 실행될 것이 결정되면, 구성요소들 중 하나 또는 다른 것, 또는 둘 다는 실제로 ESM으로 운영되기 전에 일부 설정을 요구할 수 있거나, 또는 어느 것도 그렇게 요구하지 않을 수 있다. 인터커넥트 제어기(300)는 시스템 BIOS와 같은 소프트웨어가 업스트림 포트(USP, upstream port) 및 다운스트림 포트(DSP, downstream port) 둘 다에서 ESM을 인에이블하기 위해 이의 구성 레지스터들을 기입하는 것에 응답하여 프로세스의 설정 단계를 시작한다. ESM-인식 포트에 대해, 설정은 ESM 제어 레지스터의 "ESM 인에이블" 비트가 "1"로 기입될 때일 수 있다. 비-ESM 인식 포트에 대해서는, 공급자별 개시자 레지스터가 사용될 수 있다. DSP에서의 개시자 레지스터는 USP에서 개시자 이전에 기입되어야 하는데, 이는 USP에 레지스터를 기입하는 것이 또한 PCIe 표준에서 정의된 바와 같이 링크 상태 L1 및 전기적 유휴(EI, electrical idle) 버스 상태로의 전이를 개시하기 때문이다.
개시자 레지스터를 기입하는 것은 이어지는 시퀀스를 트리거한다. 첫째, 인터커넥트 제어기(300)는 링크가 LinkUp(연결) 상태에 있는 동안, 포트의 송신기들이 EI 상태로 진행하고, 이의 수신기들이 EIOS를 검출하거나, EI를 검출 또는 추론하는 것이 발생할 때에만, 이것이 ESM에 진입 준비를 하는데 필요한 설정을 수행하게 하는 변수를 설정한다. 둘째, ESM-인식 USP에 대해, 링크 제어기는 L1 상태로의 진입을 개시할 것이 지시된다. 비-ESM 인식 USP는 D3hot 상태에 놓여져 이것이 소프트웨어 지시 L1 링크 상태로 전이되게 할 것이다. 셋째, 인터커넥트 제어기(300)는 필요한 환경적 변화, 예를 들어 전압 변화, 물리적 계층 제어기들(PHY들) 및 다른 하드웨어의 재교정 등을 수행한다.
후속하여, 개시자 비트가 "1"로 기입될 때마다, 이러한 시퀀스가 트리거되고 인터커넥트 제어기(300)가 설정을 수행한다. 설정은 개시자 레지스터의 기입에 이어지는 EI 상태로의 제1 전이에 대해서만 수행되고, 모든 후속 EI 발생들은 통상적으로 거동하고 이러한 설정 절차를 트리거하지 않는다.
동작 박스(430)에서, 인터커넥트 제어기(300)는 링크를 선택된 ESM 데이터 레이트로 동작시킨다. 이에 따라, 링크는 PCI-SIG와 같은 표준 설정 조직에 의해 기술 표준을 공표하는 프로세스상 부득이한 임의의 속도 정의에 의해서가 아니라, 링크의 양단의 회로부에 사용되는 프로세스 기술의 능력들에 의해서만 제한되는, 공표된 표준에서 지정된 성능을 넘어서는 성능을 달성할 수 있다.
예시적인 PCIe 구현
이제 PCIe에서의 ESM의 구현의 세목들이 구체적인 예를 참조하여 설명될 것이다.
도 5는 일부 실시 예들에 따른 도 3의 인터커넥트 제어기의 확장 능력 기술어(500)를 도시한다. 확장 능력 기술어(500)는 지정된 공급자별 확장 능력(Designated Vendor Specific Extended Capability)으로서 알려져 있고 32 비트 PCIe 확장 능력 헤더(510), 32 비트 ESM 헤더 1(520), 16 비트 ESM 헤더 2 및 16 비트 ESM 상태 레지스터(534)를 포함하는 32 비트 워드(530), 16 비트 ESM 제어 레지스터(542) 및 "RsvdP"로 라벨링된 16 비트 예비 필드(544)를 포함하는 32 비트 워드(540), 및 ESM 능력 레지스터들의 세트(550)를 포함하는, 구성 정보를 포함하는 11개의 32 비트 워드들의 세트를 포함한다. ESM 능력 레지스터들(550)은 ESM 능력 1 레지스터(551), ESM 능력 2 레지스터(552), ESM 능력 3 레지스터(553), ESM 능력4 레지스터(554), ESM 능력 5 레지스터(555), ESM 능력 6 레지스터(556) 및 ESM 능력 7 레지스터(557)를 포함한다. 확장 능력 기술어(500)는 PCIe 구성 공간에 저장되고, 발견 및 열거 동안 시스템 BIOS에 의해 액세스되며, 인터커넥트 제어기(300)의 지원되는 능력들을 정의한다. 이제 다양한 레지스터들에서 사용되는 비트들이 설명될 것이다.
도 6은 도 5의 확장 능력 기술어(500)의 PCIe 확장 능력 헤더(510)를 도시한다. PCIe 확장 능력 헤더(510)는 비트들 0-15에 PCIe 확장 능력 ID 필드(610), 비트들 16-19에 능력 버전(612), 및 비트들 20-31에 다음 능력 오프셋 필드(613)를 포함한다. PCIe 확장 능력 ID 필드(610)는 확장 능력의 속성 및 포맷을 나타내는 식별 번호를 저장하는 비트 0-15에서의 판독 전용(RO, read-only) 필드이고, PCIe SIG에 의해 정의된다. 능력 버전(612)은 존재하는 능력 구조의 버전을 나타내는 PCI SIG에 의해 정의되는 버전 번호를 저장하는 비트 16-19에서의 RO 필드이다. 다음 능력 오프셋 필드(620)는 다음 PCI Express 능력 구조에 대한 오프셋, 또는 능력들의 링크된 리스트에 다른 항목이 존재하지 않는 경우 000h 중 어느 하나를 저장하는 비트 20-31에서의 RO 필드이다. PCIe 구성 공간에서 구현되는 확장 능력들에 대해, 이러한 오프셋은 PCI 호환 가능 구성 공간의 시작에 관련될 것이고, 이에 따라 항상 (능력들의 리스트를 종료하기 위한) 000h, 또는 0FFh보다 큰 오프셋 중 어느 하나이어야 한다. 이제 BIOS가 다음 능력 오프셋(613)을 어떻게 사용하는지가 설명될 것이다.
도 7은 도 2의 루트 컴플렉스(214)가 다음 능력 포인터를 사용하여 후속 확장 능력 기술어의 위치를 어떻게 찾는지를 나타내는 어드레스 맵(700)을 도시한다. 어드레스 맵(700)은 오프셋 00h에서 PCI-호환 가능 구성 공간의 시작을 형성하는 기초 어드레스(710)를 포함한다. 기초 어드레스(710)와 FFh 사이의 어드레스 위치(720)가 확장 능력 기술어(500)의 위치를 저장한다. BIOS에서의 펌웨어는 확장 능력 기술어(500)에서의 정보에 액세스한다. 이의 관련 정보에 액세스한 후에, 시스템 BIOS는 확장 능력 기술어(500)의 기초 어드레스로부터 오프셋 00h에서의 PCIe 확장 능력 기술어(500)의 비트 20-31에서 다음 능력 오프셋을 판독한다. 이 값이 000h와 동일한 경우, 시스템 BIOS는 이것이 포트의 구성 공간에서 마지막 확장 능력 기술어라는 것을 알고 있다. 이 값이 000h와 동일하지 않지만 FFh보다 큰 경우라면, 시스템 BIOS는 이를 기초 어드레스(710)로부터의 오프셋으로서 사용하여 다음 확장 능력 기술어(740)를 찾는다.
도 8은 도 5의 확장 능력 기술어(500)의 PCIe ESM 헤더 1(520)을 도시한다. PCIe ESM 헤더 1(520)은 비트들 0-15에 ESM 공급자 ID 필드(810), 비트들 16-19에 ESM 능력 개정(820), 및 비트들 20-31에 ESM 능력 길이(830)를 포함한다. ESM 공급자 ID 필드(810)에는 확장 능력 구조를 정의한 공급자에 대응하는 고유 번호가 채워진다.
ESM 능력 개정(820)은 확장 능력의 버전을 나타내는 버전 번호이다. 시스템 BIOS는 이 필드를 해석하기 전에 ESM 공급자 ID 및 ESM 능력 ID(아래 참조) 둘 다를 한정(qualify)한다. ESM 능력 길이(830)는 PCI Express 확장 능력 헤더, ESM 헤더, 및 ESM 레지스터들을 포함하는, 전체 확장 능력 데이터 구조에서의 바이트 수를 나타낸다.
도 9은 도 5의 확장 능력 기술어(500)의 PCIe ESM 헤더 2(532)를 도시한다. ESM 헤더 2는 ESM 능력 ID를 저장하는 비트 0-15에서의 단일 필드를 포함한다. 이 필드는 지정된 공급자별 확장 능력(DVSEC, Designated Vendor Specific Extended Capability) 구조의 속성 및 포맷을 나타내는 공급자 정의 ID 번호이다. 시스템 BIOS는 이 필드를 해석하기 전에 ESM 공급자 ID 필드(810)를 한정해야 한다.
도 10은 도 5의 확장 능력 기술어(500)의 ESM 상태 레지스터(534)를 도시한다. ESM 상태 레지스터(534)는 확장 능력 기술어(500)의 워드(530)의 상위 16 비트를 점유하고, 비트 0-8에 EI 값의 최소 시간(1010), 비트 9-11에 EI 스케일(1020)의 최소 시간, 및 비트 12-15에 예비 필드를 포함한다. EI 값의 최소 시간(1010) 및 EI 스케일의 최소시간(1020)은 함께 EI 상태의 최소 시간을 정의하며, 이는 EI 값의 최소 시간에 EI 스케일의 최소 시간의 비트 값에 대응하는 승수(multiplier)를 곱한 것과 동일하다. 예를 들어, EI 스케일의 최소 시간은 1 나노초(ns)의 승수를 나타내는 0의 값, 32 ns의 승수를 나타내는 1의 값, 1,024 ns의 승수를 나타내는 2의 값, 32,768 ns의 승수를 나타내는 3의 값, 1,045,576 ns의 승수를 나타내는 4의 값, 및 33,554432 ns의 승수를 나타내는 5의 값을 가질 수 있다. 6 및 7의 값들은 예비된다. 그러나, 이것들은 단지 예들일 뿐이라는 것이 이해되어야 한다.
도 11은 도 5의 확장 능력 기술어(500)의 ESM 제어 레지스터(542)를 도시한다. ESM 제어 레지스터(542)는 비트 0-6에 ESM "Gen 3" 데이터 레이트 필드(1110), 비트 7에 예비 필드(1120), 비트 8-14에 ESM 세대 "Gen 4" 데이터 레이트 필드(1130), 및 비트 15에 ESM 인에이블 비트(Enable bit)를 포함한다. 본 명세서에서 사용될 때, Gen 3은 PCIe 8.0 GT/s 데이터 레이트에 대응하고 Gen 4는 PCIe 16.0 GT/s 데이터 레이트에 대응한다. ESM Gen 3 데이터 레이트 필드(1110)는 속도 변화가 Gen3 데이터 레이트로 결정되고 링크가 ESM에서 인에이블될 때 인터페이스가 운영되는 GT/s 단위의 데이터 레이트이다. 일례에서, 속도는 (64 + 이 필드에서의 값) * 100x106 과 동일하다. 예를 들어, 12.8 GT/s = 64의 값이다. ESM 인에이블 비트가 설정될 때, Gen 3으로의 속도 변화는 ESM을 이 필드에 의해 정의된 데이터 레이트로 사용한다. ESM 인에이블 비트가 클리어일 때, Gen 3으로의 속도 변화는 정상(비-ESM) 값들을 사용하고 정상(8.0 GT/s) 데이터 레이트로 운영된다. ESM Gen 4 데이터 레이트 필드(1130)는 속도 변화가 Gen4 데이터 레이트로 결정되고 링크가 ESM에서 인에이블될 때 인터페이스가 운영되는 GT/s 단위의 데이터 레이트를 나타내는 판독-기입 필드이다. 속도는 (128 + 이 필드에서의 값) * 100x106 과 동일하다. 예를 들어, 20.8 GT/s = 80의 값이다. ESM 인에이블 비트가 설정될 때, Gen 4으로의 속도 변화는 ESM을 이 필드에 의해 정의된 데이터 레이트로 사용한다. ESM 인에이블 비트가 클리어일 때, Gen 4으로의 속도 변화는 정상(비-ESM) 값들을 사용하고 정상(16.0 GT/s) 데이터 레이트로 운영된다. 포트가 Gen 4를 지원하지 않는 경우, 이 필드는 000 0000b로 하드와이어링될 수 있다. ESM 인에이블 비트(1140)는 ESM을 인에이블하는 판독/기입 비트이다. 이 비트의 디폴트 값은 "0"이고, 이 비트에 "1"을 기입하는 것은 도 4에 도시되고 위에서 설명된 ESM 초기화 시퀀스를 트리거한다.
도 12은 도 5의 확장 능력 기술어(500)의 ESM 능력 1 레지스터(551)를 도시한다. ESM 능력 1 레지스터(551)는 비트 위치들 0-29에 30개의 활성 비트들 및 비트 위치들 30 및 31에 2개의 예비 비트들을 갖는 32 비트 레지스터이다. 예시적인 실시 예에서, 루트 컴플렉스(214)는 100 MT/s의 전송 레이트에 대응하는 증분으로 PCIe 클록 신호를 생성할 수 있다. 예를 들어, 루트 컴플렉스(214)는 8.0 GHz의 PCIe 세대 3.0 레이트에서 시작하는 주파수들 및 비트 위치 1에서의 8.1 GT/s, 비트 위치 2에서의 8.2 GT/s, 그리고 이것이 비트 위치 29에서의 10.9 GT/s에 도달할 때까지 등등에서 시작하는 더 높은 주파수들을 갖는 출력 PCIe 클록 신호를 생성할 수 있는 프로그래밍 가능한 루프 분배기를 갖는 위상 고정 루프(PLL, phase locked loop)를 포함한다. ESM 능력 1 레지스터(551)는 판독 전용 능력 레지스터이고; 이에 따라 대응하는 비트 위치에서의 "0"은 이러한 속도로 ESM이 지원되지 않음을 나타내는 반면, 대응하는 비트 위치에서의 "1"은 이러한 속도로 ESM이 지원됨을 나타낸다. ESM 능력 1 레지스터(551)는 원-핫(one-hot) 레지스터가 아니며, 모든 지원되는 속도들은 대응하는 비트 위치에서 "1"로 표시됨에 유의한다. ESM 능력 2 레지스터들(552)-ESM 능력 7 레지스터(557)는 비트들의 대응하는 맵핑들을 포함한다.
도 13은 도 5의 확장 능력 기술어(500)의 ESM 능력 7 레지스터(557)를 도시한다. ESM 능력 7 레지스터(557)는 비트 위치들 0-30에 31개의 활성 비트들 및 비트 위치들 31에 1개의 예비 비트를 갖는 32 비트 레지스터이다. ESM 능력 7 레지스터(557)는 비트 위치 0에서의 25.0 GT/s, 비트 위치 2에서의 25.1 GT/s, 그리고 이것이 비트 위치 30에서의 28.0 GT/s에 도달할 때까지 등등에서 시작하는 25.0 GT/S와 28.0 GT/s 사이의 주파수들에 대한 지원을 나타낸다. ESM 능력 7 레지스터(557)는 판독 전용 능력 레지스터이고; 이에 따라 대응하는 비트 위치에서의 "0"은 이러한 속도로 ESM이 지원되지 않음을 나타내는 반면, 대응하는 비트 위치에서의 "1"은 이러한 속도로 ESM이 지원됨을 나타낸다. ESM 능력 1 레지스터(551)에서와 같이, ESM 능력 7 레지스터(557)는 대응하는 비트 위치에 "1"로 모든 지원되는 속도들을 나타낸다.
도시되지 않지만, ESM 능력 2 레지스터(552), ESM 능력 3 레지스터(553), ESM 능력 4 레지스터(554), ESM 능력 5 레지스터(555), 및 ESM 능력 6 레지스터(556)는 일반적으로 ESM 능력 1 레지스터(551)와 대응하는 비트 할당들을 가진다. ESM 능력 2 레지스터(552)는 100 MT/s 증분의 11.0 GT/2와 13.9 GT/s 사이의 전송 레이트들에 대한 지원을 나타낸다. ESM 능력 3 레지스터(553)는 100 MT/s 증분의 14.0 GT/2와 15.9 GT/s 사이의 전송 레이트들에 대한 지원을 나타내고, 다른 레지스터들과는 달리, 비트 위치들 20-31에 예비 비트들을 가진다. ESM 능력 4 레지스터(554)는 100 MT/s 증분의 16.0 GT/2와 18.9 GT/s 사이의 전송 레이트들에 대한 지원을 나타낸다. ESM 능력 5 레지스터(555)는 100 MT/s 증분의 19.0 GT/2와 21.9 GT/s 사이의 전송 레이트들에 대한 지원을 나타낸다. ESM 능력 6 레지스터(556)는 100 MT/s 증분의 22.0 GT/2와 24.9 GT/s 사이의 전송 레이트들에 대한 지원을 나타낸다.
발견 및 열거 동안, 루트 컴플렉스(214)는 PCIe 구성 공간에서 레지스터들을 검사하고 각 링크 파트너 쌍 사이의 동작 속도를 결정함으로써 데이터 프로세싱 플랫폼(200)에서 모든 PCIe 디바이스들의 존재 및 능력들을 발견한다. 루트 컴플렉스(214)는 먼저 확장된 속도 모드가 지원되는지 여부를 결정하고, 만약 그렇다면, 루트 콤플렉스와 종점 사이의 각 디바이스 및 포트의 ESM 능력 기술어를 추가로 검사한다. 일반적으로, 결정되는 속도가 루트 컴플렉스(214)에서 링크 제어기 및 트리에서의 종점들에의 모든 PCI 링크들과 마찬가지로 최고 지원 속도일 것이다.
도 14는 도 3의 인터커넥트 제어기(300)의 초기화를 도시하는 타이밍도(1400)이다. 타이밍도(1400)에서, 수평축은 나노초(ns) 단위의 시간을 나타내고, 수직축은 링크 동작에 관련된 다양한 파라미터들을 나타낸다. 수평축을 따라, 타이밍도(1400)는 “t0”, “t1”, “t2”, “t3”, “t4”, 및 “t5”로 라벨링된 6개의 관심 시점들을 나타낸다. 수직축을 따라, 타이밍도(1400)는 "절차 단계"로 라벨링된 제1 링크 상태(1410), "링크 상의 동작"으로 라벨된 제2 링크 상태(1420), "링크 속도"로 라벨링된 제3 링크 상태(1430), "링크 상태"로 라벨링된 제4 링크 상태(1440), "링크 속성들"로 라벨링된 제5 링크 상태(1450)를 포함하는 5개의 관심 파라미터들을 나타낸다.
t0와 t1 사이에서, 절차 단계는 질의 단계에 있다. 이 시간 동안, 링크는 공급자 ID(VID), 디바이스 ID(DID), 및 확장 능력 기술어(500)에서 식별된 ESM 개발자 지정 공급자별 확장 능력을 포함하여, PCIe 구성 공간에서 레지스터들을 판독하기 위해 사용된다. 또한, 속도는 Gen 3에 대한 초기 부트 속도, 즉 8.0 GT/s로 설정된다. 링크 상태는 L0(완전 온) 상태에 있고, 링크 속성들은 데이터 스트림이다.
t1와 t4 사이에서, 절차 단계는 설정 단계에 있다. t1과 t2 사이에는, 링크 상에 데이터 전달 동작이 없다. 속도는 Gen 1(2.5 GT/s) 링크 속도로 변하고, 링크 상태는 새로운 링크 속도로 L0으로 다시 전이하기 전에 회복 상태로 진입한다. 이 시간 동안, 링크는 EI 조건에 의해 분리된 "TSx"로 라벨링된 트레이닝 세트들을 전송한다. t2와 t3 사이에서, 루트 컴플렉스(314)는 모든 지원되는 링크들 상에서 ESM을 인에이블하기 위해 레지스터들, 예를 들어 ESM 제어 레지스터(542)에 기입한다. 링크 속도는 Gen 1로 유지되고, 링크 상태는 L0에 있다. 링크 속성들은 데이터 스트림이다. t3과 t4 사이에서, 링크 상태는 L0에서 L1로 변하고 L0로 리턴되기 전에 회복된다. 링크 속성들은 L1 DLLP들 다음, EI가 이어지고, 트레이닝 세트 TSx가 이어지며, 데이터 스트림이 이어진다.
t4와 t5 사이에서, 절차 단계는 지원되는 링크 상에서 모든 DSP들 및 USP들에 의해 공통으로 지원되는 최고 속도에 따라 속도 변경을 실행하는 것이다. 링크 속도는 Gen 3 링크 속도와 상이할 수 있는, 선택되는 ESM 링크 속도로 변경된다. 링크는 L0 상태로 리턴되기 전에 회복 링크 상태에 진입한다. 링크는 새로운 ESM 링크 속도로 추가 트레이닝 세트들(TSx)을 전송하기 전에, 속도 변경 동안 EI 상태에 의해 인터럽트된 트레이닝 세트들(TSx)을 전송한다.
t5에서 발생하는 트레이닝의 종료 후에, 링크는 ESM으로 동작하고, L0 링크 상태에서 향상된 레이트로 데이터 액세스를 수행한다. 필요한 설정이 완료되고 링크가 다시 L0에 있으면, Gen 3 또는 Gen 4 데이터 레이트들로 결정되는 임의의 후속 속도 변화는 ESM 제어 레지스터로 프로그래밍된 ESM 데이터 레이트로 운영될 것이다. Gen 1 또는 Gen 2 데이터 레이트들로 결정되는 임의의 속도 변화는 이들의 '정상' 데이터 레이트들(Gen 1에 대해 2.5 GT/s, Gen 2에 대해 5.0 GT/s)로 운영될 것이다.
도 15는 일부 실시 예들에 따른 PCIe 트랜잭션 계층 또는 가속기들을 위한 캐시 코히어런트 인터커넥트(CCIX, Cache Coherent Interconnect for Accelerators) 트랜잭션 계층 중 어느 하나를 지원하는 통신 제어기(1500)를 블록도 형태로 도시한다. 통신 제어기(1500)는 일반적으로 CCIX 프로토콜 계층 블록(1502), CCIX 링크 계층 블록을 갖는 CCIX 포트(1504), 및 PCIe 포트(1510)를 포함한다.
CCIX 프로토콜 계층 블록(1502)은 메모리 판독 및 기입 흐름들을 포함하는, 코히어런시 프로토콜을 담당한다. 이 계층에서 정의되는 캐시 상태들은 메모리의 상태, 예를 들어 데이터가 고유하고 클린한지 여부 또는 데이터가 공유되고 더티한지의 결정을 가능하게 한다. CCIX 프로토콜 계층 블록(1502)은 CCIX 링크 계층 블록을 갖는 CCIX 포트(1504)에 양방향으로 접속된다. CCIX 프로토콜 계층은 CCIX 트래픽을 포맷팅하고 CCIX를 형성 및 디코딩하는 것을 담당한다.
PCIe 포트(1510)는 CCIX 트랜잭션 계층 블록(1512), PCIe 트랜잭션 계층블록(1514), PCIe 데이터 링크 계층 블록(1520), 및 CCIX/PCIe 물리적 계층 블록(1530) 을 포함한다. CCIX 트랜잭션 계층 블록(1512)은 CCIX 패킷들을 핸들링하는 것을 담당하는 한편, PCIe 트랜잭션 계층 블록(1514)은 PCIe 패킷들을 핸들링하는 것을 담당한다. PCIe 포트(1510)는 상이한 데이터 스트림들이 단일 PCIe 링크를 횡단할 수 있게 하기 위해 가상 채널들을 지원한다. CCIX 트래픽을 하나의 가상 채널로 그리고 PCIe 트래픽을 제2 가상 채널로 분할함으로써, PCIe 포트(1510)는 CCIX 및 PCIe 트래픽 둘 다가 동일한 PCIe 매체(1540)를 공유할 수 있게 한다. PCIe 데이터 링크 계층 블록(1520)은 CRC 에러 체크, 패킷 확인 응답 및 타임아웃 체크, 및 크레딧 초기화 및 교환을 포함하여, 데이터 링크 계층의 통상적인 기능들 전부를 수행한다. CCIX/PCIe 물리적 계층 블록(1530)은 표준 PCIe 물리적 계층 상에 구축된다. CCIX는 25 GT/s ESM(확장 속도 모드)을 지원하기 위해 PCIe를 확장하며, 이는 PCI Express 4.0 표준에서 처음 도입된 16.0 GT/s 속도를 넘어 확장된다. 또한, 이는 PCI Express 4.0 표준 속도(16 GT/s)와 더 높은 속도 사이의 확장된 속도(이를테면 25 GT/s)를 지원한다. 이에 따라, 이는 더 높은 속도들로의 더 큰 세분도 및 보다 견실한 이동 경로를 지원한다.
이에 따라, 본 명세서에서 개시된 인터커넥트 제어기는 공표된 표준에 대한 주기적인 개정을 기다릴 필요 없이 더 높은 성능으로 원활한 업그레이드 경로를 제공하는 견실한 제어기를 제공한다. 더 높은 성능은 두 가지 형태들 중 하나를 취할 수 있다. 첫째, 이는 표준에 의해 이미 지정된 최고 데이터 전송 레이트 및/또는 최고 클록 속도를 넘어 확장될 수 있어, 표준의 새로운 개정이 공표된 후에 대응하는 통신 구성요소들이 개발될 필요를 방지한다. 둘째, 이는 전체 단계를 다음 공표될 레이트로 하지 않고 반도체 제조 기술에 의해 지원될 수 있는 중간 데이터 전송 레이트들 및/또는 클록 속도들을 추가한다. 인터커넥트 제어기 및 이러한 인터커넥트 제어기를 포함하는 데이터 프로세서는 공표된 표준들의 전개로 이어질 수 있는 반도체 제조 기술의 진전에 영향을 미치고, 크고 불연속적인 속도 단계들의 제약 없이 성능 향상을 가능하게 한다. 이 기술들은 (PCIe 데이터 링크 및 물리적 계층들을 사용하여 동작하는) PCIe 및 CCIX를 포함하여, 다양한 데이터 통신 프로토콜들에서 유용하다.
PCIe 포트 제어기(216) 및 CPU(210) 또는 이들의 임의의 부분들은 프로그램에 의해 판독될 수 있고 집적 회로들을 제조하기 위해 직접적으로 또는 간접적으로 사용될 수 있는 데이터베이스 또는 다른 데이터 구조 형태의 컴퓨터 액세스 가능 데이터 구조에 의해 기술되거나 표현될 수 있다. 예를 들어, 이러한 데이터 구조는 상위 레벨 설계 언어(HDL, high-level design language) 이를테면 Verilog 또는 VHDL의 하드웨어 기능의 거동 레벨 기술 또는 레지스터 전송 레벨(RTL, register-transfer level) 기술일 수 있다. 이 기술명은 합성 라이브러리로부터 게이트들의 리스트를 포함하는 네트리스트를 생성하기 위해 기술을 합성할 수 있는 합성 툴에 의해 판독될 수 있다. 네트리스트는 또한 집적 회로들을 포함하는 하드웨어의 기능을 나타내는 게이트들의 세트를 포함한다. 이어서 네트리스트는 마스크들에 적용될 기하학적 형상들을 기술하는 데이터 세트를 생성하도록 배치되고 라우팅될 수 있다. 이어서 마스크는 다양한 반도체 제조 단계들에서 사용되어 집적 회로들을 생성할 수 있다. 대안적으로, 컴퓨터 액세스 가능한 저장 매체 상의 데이터베이스는 필요에 따라, 네트리스트(합성 라이브러리를 갖거나 갖지 않음) 또는 데이터 세트, 또는 그래픽 데이터 시스템(GDS) II 데이터일 수 있다.
특정한 실시 예들이 설명되었지만, 이러한 실시 예들에 대한 다양한 변형들이 당업자들에게 명백할 것이다. 예를 들어, 다양한 고주파 발진기들이 시간 대 디지털 변환기에서 기준 발진기로 사용될 수 있다. 이것들은 CMOS 링 발진기, 직렬 공진 LC 발진기, 병렬 공진 LC 발진기, 및 RC 발진기를 포함한다. 또한, 다양한 전류 제어 발진기 회로들이 사용될 수도 있다. 저항기에 기초하는 전류 제어 발진기 회로들에서, 저항기는 폴리실리콘 저항기, 박막 금속 합금 저항기, 및 박막 금속 혼합 저항기와 같은 다양한 형태들을 취할 수 있다. 또한, 분배기는 분자에 대해 다양한 고정된 수들을 사용할 수 있다.
따라서, 첨부된 청구항들은 개시된 실시 예들의 범위 내에 있는 개시된 실시 예들의 모든 변형들을 커버하는 것으로 의도된다.

Claims (25)

  1. 데이터 프로세싱 플랫폼을 위한 인터커넥트 제어기에 있어서,
    트랜잭션 계층에 연결되도록 구성된 데이터 링크 계층 제어기로서, 선택적으로 상기 트랜잭션 계층으로부터 데이터 패킷들을 수신하고 상기 트랜잭션 계층에 데이터 패킷들을 송신하는, 상기 데이터 링크 계층 제어기; 및
    상기 데이터 링크 계층 제어기에 연결되고 통신 링크에 연결되도록 구성된 물리적 계층 제어기로서, 선택적으로 제1 미리 결정된 링크 속도로 동작하되, 향상된 속도 모드를 갖는, 상기 물리적 계층 제어기를 포함하며,
    링크 초기화를 수행하는 것에 응답하여, 상기 인터커넥트 제어기는:
    상기 향상된 속도 모드가 허용되는지 여부를 결정할 것을 상기 데이터 프로세싱 플랫폼에 질의하고;
    향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하되, 상기 향상된 속도는 상기 제1 미리 결정된 링크 속도보다 큰 것이며;
    후속하여 상기 향상된 속도를 사용하여 상기 통신 링크를 동작시키는 것인, 인터커넥트 제어기.
  2. 제1항에 있어서,
    상기 제1 미리 결정된 링크 속도는 공표된 표준에 의해 지정된 것이고, 상기 향상된 속도는 상기 공표된 표준에 의해 지정되지 않은 것인, 인터커넥트 제어기.
  3. 제2항에 있어서,
    상기 향상된 속도는 상기 제1 미리 결정된 링크 속도와 상기 공표된 표준에 의해 지정된 제2 미리 결정된 속도 사이인 것인, 인터커넥트 제어기.
  4. 제2항에 있어서,
    상기 물리적 계층 제어기는 PCIe(Peripheral Component Interconnect Express) 기본 사양에 따르는 것인, 인터커넥트 제어기.
  5. 제4항에 있어서,
    상기 인터커넥트 제어기는 종점의 업스트림 포트의 능력들에 기초하여 상기 인터커넥트 제어기에 대한 상기 향상된 속도를 결정하는 PCIe 루트 컴플렉스(root complex)의 일부인 것인, 인터커넥트 제어기.
  6. 제5항에 있어서,
    상기 PCIe 루트 컴플렉스는 상기 인터커넥트 제어기에 대한 상기 향상된 속도를 상기 인터커넥트 제어기 및 상기 종점의 상기 업스트림 포트에 의해 상호 지원되는 최고 속도로서 결정하는 것인, 인터커넥트 제어기.
  7. 제5항에 있어서,
    상기 PCIe 루트 컴플렉스는 PCIe 구성 공간에 액세스함으로써 상기 인터커넥트 제어기에 대한 상기 향상된 속도를 결정하는 것인, 인터커넥트 제어기.
  8. 제7항에 있어서,
    상기 인터커넥트 제어기는 상기 PCIe 구성 공간에서 확장 능력 기술어(extended capability descriptor)에 액세스함으로써 상기 향상된 속도를 결정하는 것인, 인터커넥트 제어기.
  9. 제2항에 있어서,
    상기 제1 미리 결정된 링크 속도는 상기 공표된 표준에 의해 지원되는 공표된 최고 속도인 것인, 인터커넥트 제어기.
  10. 제1항에 있어서,
    상기 트랜잭션 계층은 PCIe 트랜잭션 계층을 포함하는 것인, 인터커넥트 제어기.
  11. 제1항에 있어서,
    상기 트랜잭션 계층은 가속기들을 위한 캐시 코히어런트 인터커넥트(CCIX, cache coherent interconnect for accelerators) 트랜잭션 계층을 포함하는 것인, 인터커넥트 제어기.
  12. 데이터 프로세싱 플랫폼에 있어서,
    기본 입력/출력 시스템(BIOS, basic input/output system);
    데이터 프로세서를 포함하며, 상기 데이터 프로세서는:
    상기 BIOS에 연결되고 이에 응답하여 초기화 절차를 실행하는 중앙 프로세싱 유닛;
    상기 중앙 프로세싱 유닛에 연결되고 PCIe(Peripheral Component Interface Express) 네트워크에 연결되도록 구성된 제1 PCIe 포트 제어기를 포함하는 PCIe 루트 컴플렉스로서, 상기 제1 PCIe 포트 제어기는 제1 미리 결정된 링크 속도 및 향상된 속도 모드를 지원하는 것인, 상기 루트 컴플렉스를 포함하되,
    상기 BIOS는 상기 중앙 프로세싱 유닛에 의해 실행될 때 상기 PCIe 루트 컴플렉스로 하여금:
    상기 향상된 속도 모드가 허용되는지 여부를 결정할 것을 상기 데이터 프로세싱 플랫폼에 질의하게 하는 명령어;
    향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하게 하는 명령어로서, 상기 향상된 속도는 상기 제1 미리 결정된 링크 속도보다 큰 것인, 상기 적어도 하나의 설정 동작을 수행하게 하는 명령어; 및
    후속하여 상기 향상된 속도를 사용하여 상기 PCIe 네트워크에 대한 상기 통신 링크를 동작시키게 하는 명령어를 포함하는 것인, 데이터 프로세싱 플랫폼.
  13. 제12항에 있어서,
    상기 제1 미리 결정된 링크 속도는 공표된 표준에 의해 지정되는 것이고, 상기 향상된 속도는 상기 공표된 표준에 의해 지정되지 않은 것인, 데이터 프로세싱 플랫폼.
  14. 제13항에 있어서,
    상기 향상된 속도는 상기 제1 미리 결정된 링크 속도와 상기 공표된 표준에 의해 지정된 제2 미리 결정된 속도 사이인 것인, 데이터 프로세싱 플랫폼.
  15. 제13항에 있어서,
    상기 제1 미리 결정된 링크 속도는 상기 공표된 표준에 의해 지원되는 공표된 최고 속도인 것인, 데이터 프로세싱 플랫폼.
  16. 제12항에 있어서,
    상기 향상된 속도는 상기 제1 미리 결정된 링크 속도와 제2 미리 결정된 속도 사이인 것인, 데이터 프로세싱 플랫폼.
  17. 제12항에 있어서,
    상기 PCIe 루트 컴플렉스는 다운스트림 포트의 능력들에 기초하여 상기 제1 PCIe 포트 제어기에 대한 상기 향상된 속도를 결정하는 것인, 데이터 프로세싱 플랫폼.
  18. 제12항에 있어서,
    상기 PCIe 루트 컴플렉스는 상기 제1 PCIe 포트 제어기에 대한 상기 향상된 속도를 상기 제1 PCIe 포트 제어기와 다운스트림 포트 사이의 상호 지원되는 최고 속도로서 결정하는 것인, 데이터 프로세싱 플랫폼.
  19. 제12항에 있어서,
    상기 PCIe 루트 컴플렉스는 PCIe 구성 공간에 액세스함으로써 상기 제1 PCIe 포트 제어기에 대한 상기 향상된 속도를 결정하는 것인, 데이터 프로세싱 플랫폼.
  20. 제19항에 있어서,
    상기 PCIe 루트 컴플렉스는 상기 PCIe 구성 공간에서 확장 능력 기술어에 액세스함으로써 상기 제1 PCIe 포트 제어기에 대한 상기 향상된 속도를 결정하는 것인, 데이터 프로세싱 플랫폼.
  21. 공표된 표준에 따라 통신 링크를 동작시키는 인터커넥트 제어기를 갖는 데이터 프로세싱 플랫폼에서 사용하기 위한 방법에 있어서,
    향상된 속도 모드가 허용되는지 여부를 결정할 것을 상기 데이터 프로세싱 플랫폼에 질의하는 단계;
    향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하는 단계로서, 상기 향상된 속도는 상기 공표된 표준에 의해 지정되지 않고 상기 공표된 표준에 의해 지정된 제1 미리 결정된 링크 속도보다 큰 것인, 적어도 하나의 설정 동작을 수행하는 단계; 및
    후속하여 상기 향상된 속도를 사용하여 상기 통신 링크를 동작시키는 단계를 포함하는, 방법.
  22. 제21항에 있어서,
    상기 인터커넥트 제어기는 상기 제1 미리 결정된 링크 속도보다 큰 제2 미리 결정된 링크 속도를 지원하고;
    상기 향상된 속도는 상기 제1 미리 결정된 링크 속도와 상기 제2 미리 결정된 링크 속도 사이인 것인, 방법.
  23. 제22항에 있어서,
    상기 공표된 표준은 PCIe(Peripheral Component Interconnect Express) 기본 사양인 것인, 방법.
  24. 제21항에 있어서, 또한:
    상기 인터커넥트 제어기에 대한 상기 향상된 속도를 상기 인터커넥트 제어기와 업스트림 포트 사이의 상호 지원되는 최고 속도로서 결정하는 단계를 포함하는, 방법.
  25. 제21항에 있어서, 상기 향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하는 단계는:
    상기 향상된 속도를 선택하기 위한 적어도 하나의 설정 동작을 수행하는 단계를 포함하되, 상기 향상된 속도는 상기 공표된 표준에 의해 지정된 최고 속도보다 큰 것인, 방법.
KR1020217016765A 2018-12-14 2019-06-27 향상된 속도 모드를 갖는 데이터 통신 KR20210092230A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/221,181 US11151075B2 (en) 2018-12-14 2018-12-14 Data communications with enhanced speed mode
US16/221,181 2018-12-14
PCT/US2019/039505 WO2020122989A1 (en) 2018-12-14 2019-06-27 Data communications with enhanced speed mode

Publications (1)

Publication Number Publication Date
KR20210092230A true KR20210092230A (ko) 2021-07-23

Family

ID=71071666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016765A KR20210092230A (ko) 2018-12-14 2019-06-27 향상된 속도 모드를 갖는 데이터 통신

Country Status (6)

Country Link
US (2) US11151075B2 (ko)
EP (1) EP3895029B1 (ko)
JP (1) JP7420804B2 (ko)
KR (1) KR20210092230A (ko)
CN (1) CN113196254A (ko)
WO (1) WO2020122989A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11151075B2 (en) * 2018-12-14 2021-10-19 Ati Technologies Ulc Data communications with enhanced speed mode
US11386026B1 (en) 2021-02-09 2022-07-12 Microsoft Technology Licensing, Llc Shell PCIe bridge and shared-link-interface services in a PCIe system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8059673B2 (en) * 2003-05-01 2011-11-15 Genesis Microchip Inc. Dynamic resource re-allocation in a packet based video display interface
US7620062B2 (en) * 2003-05-01 2009-11-17 Genesis Microchips Inc. Method of real time optimizing multimedia packet transmission rate
US7426597B1 (en) * 2003-05-07 2008-09-16 Nvidia Corporation Apparatus, system, and method for bus link width optimization of a graphics system
US9262837B2 (en) * 2005-10-17 2016-02-16 Nvidia Corporation PCIE clock rate stepping for graphics and platform processors
US7461195B1 (en) * 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
US8279948B2 (en) * 2006-12-13 2012-10-02 Rambus Inc. Interface with variable data rate
US7660925B2 (en) * 2007-04-17 2010-02-09 International Business Machines Corporation Balancing PCI-express bandwidth
US8477831B2 (en) * 2010-02-17 2013-07-02 Altera Corporation Multi-protocol multiple-data-rate auto-speed negotiation architecture for a device
TWI408557B (zh) * 2010-03-18 2013-09-11 Faraday Tech Corp 高速輸入輸出系統及其節能控制方法
US9268732B2 (en) 2012-06-08 2016-02-23 Advanced Micro Devices, Inc. Tunnel suitable for multi-segment communication links and method therefor
US9244872B2 (en) * 2012-12-21 2016-01-26 Ati Technologies Ulc Configurable communications controller
US9692426B2 (en) * 2013-05-06 2017-06-27 Advanced Micro Devices, Inc. Phase locked loop system with bandwidth measurement and calibration
WO2015108522A1 (en) 2014-01-16 2015-07-23 Intel Corporation An apparatus, method, and system for a fast configuration mechanism
US10275387B2 (en) * 2015-08-10 2019-04-30 Mediatek Inc. Method and associated interface circuit for mitigating interference due to signaling of a bus
US9825730B1 (en) 2016-09-26 2017-11-21 Dell Products, Lp System and method for optimizing link performance with lanes operating at different speeds
US20180173666A1 (en) 2016-12-16 2018-06-21 Intel Corporation APPARATUSES AND METHODS TO COUPLE AN EMBEDDED UNIVERSAL SERIAL BUS (eUSB) CIRCUIT TO A UNIVERSAL SERIAL BUS (USB) TRANSCEIVER INTERFACE CIRCUIT
US10789201B2 (en) 2017-03-03 2020-09-29 Intel Corporation High performance interconnect
US10880137B2 (en) * 2017-05-12 2020-12-29 Intel Corporation Bypassing equalization at lower data rates
US10545773B2 (en) * 2018-05-23 2020-01-28 Intel Corporation System, method, and apparatus for DVSEC for efficient peripheral management
US11151075B2 (en) * 2018-12-14 2021-10-19 Ati Technologies Ulc Data communications with enhanced speed mode

Also Published As

Publication number Publication date
EP3895029A4 (en) 2022-09-07
US20220035765A1 (en) 2022-02-03
WO2020122989A1 (en) 2020-06-18
EP3895029A1 (en) 2021-10-20
EP3895029B1 (en) 2024-04-17
US20200192852A1 (en) 2020-06-18
JP2022510812A (ja) 2022-01-28
US11151075B2 (en) 2021-10-19
JP7420804B2 (ja) 2024-01-23
CN113196254A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
US9053058B2 (en) QoS inband upgrade
US8478982B2 (en) Media access control security management in physical layer
CN110362512B (zh) 一种面向sca和sdr的快速系统重构方法
KR101034494B1 (ko) 개방형 코어 프로토콜을 기반으로 하는 버스 시스템
US20220035765A1 (en) Data communications with enhanced speed mode
US20050066212A1 (en) Multiprotocol computer bus interface adapter and method
US20130346655A1 (en) Bus agent capable of supporting extended atomic operations and method therefor
CN113849433A (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
US10496422B2 (en) Serial device emulator using two memory levels with dynamic and configurable response
US8984196B2 (en) Accessing peripheral devices
US20170110204A1 (en) Enhanced memory built-in self-test architecture for de-featured memories
US7720636B1 (en) Performance monitors (PMs) for measuring performance in a system and providing a record of transactions performed
US20130185477A1 (en) Variable latency memory delay implementation
US7953999B2 (en) Semiconductor integrated circuit device and method of operating the same
JP4560601B2 (ja) コンピュータ用バスインタフェース
US7130953B2 (en) Bus architecture techniques employing busses with different complexities
US20090132747A1 (en) Structure for universal peripheral processor system for soc environments on an integrated circuit
US10235486B2 (en) Method, apparatus and system for automatically deriving parameters for an interconnect
Fibich et al. Open-Source Ethernet MAC IP Cores for FPGAs: Overview and Evaluation
CN116745753A (zh) 用于网络通信链路上的请求分组的标签
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
CN113961502B (zh) 一种交换机接口管理系统和方法
CN214959850U (zh) 基于fpga片上系统的mipi电路板
US11604655B2 (en) Sync point mechanism between master and slave nodes
US8862770B1 (en) Processor architecture verification

Legal Events

Date Code Title Description
A201 Request for examination