PCIe Root Complex, Switch, Bridge 개념

 


Root Complex

image

  • CPU와 PCIe bus들 사이의 인터페이스(Interface). 인터페이스는 프로세서 인터페이스, DRAM 인터페이스와 같은 여러 구성 요소와 여러 개의 칩들이 포함될 수 있습니다.
  • 1개 혹은 그 이상의 PCIe 포트와 Root Port 연결
  • PCIe 계층 영역(hierarchy domain)를 하나의 단일 PCIe 계층(hierarchy)으로 논리적으로 결합합니다.
  • 계층 구조라고 불려지는 하나의 fabric instance는 다음과 같은 구성요소들로 이루어져 있습니다.
    • Rc
    • multiple Endpoints(I/O devices)
    • Switch
    • PCIe to PCI/PCI-X Bridge

PCIe Root Port

image

  • 연결된 가상 PCI-PCI 브릿지를 통하여 PCIe 상호 연결 계층 구조의 일부를 구성하는 Root Complex 안의 PCIe Port.
  • 각각의 Root Port는 분리된 계층 영역을 가지고 있습니다.
  • 각각의 계층 영역은 하나의 Endpoint로 구성될 수도 있고, 한 개 이상의 Switch나 Endpoints로 구성된 sub-계층(sub-hierarchy)을 가지고 있을 수도 있습니다.

Switch and Bridge

image

Switch

image

  • 스위치는 하나의 단일 Root Port에 여러 디바이스가 붙을 수 있는 장치입니다. Packet router 처럼 동작하고, 해당 packet의 주소와 다른 routing 정보를 통하여 어떤 경로로 packet이 가야하는지 인식합니다.
  • 스위치는 여러 개의 Downstream Ports를 가지고 있지만, Upstream Port는 하나입니다.

Bridge

브릿지는 다른 버스와의 인터페이스를 제공합니다. 해당 인터페이스는 PCI, PCI-X 혹은 다른 PCIe bus 입니다.

PCIe Endpoint Device

image

  • Endpoint Device는 tree topology에서 가장 하위에 위치하고 있으며, 하나의 Upstream Port만 가지고 있습니다.
  • Type 0 Configuration Space Header를 가지고 있습니다.
  • Switch나 Bridge는 버스 위에서 PCIe transaction의 initiator나 completer 역할을 하지 않습니다. Endpoint Device는 자체적이나 Non-PCIe device를 대신해서 PCIe transaction의 Requester 혹은 Completer가 될 수 있는 장치 유형입니다. (ex> PCIe 연결 그래픽 컨트롤러, PCIe-USB 인터페이스 등)
  • MSI/MSI-X를 지원합니다.
  • Endpoint 디바이스에는 아래의 3가지 종류가 있습니다.
    • Legacy PCI Endpoint
      • I/O 요청 제공 및 발생 가능
      • 4G 주소를 초과하는 메모리 트랜잭션 불가능(32bit Address Register)
    • PCIe Endpoint
      • I/O 요청 발생시키면 안됨
      • 4G 주소를 초과하는 메모리 트랜잭션 가능
    • Root Complex Integrated Endpoint
      • Root Complex 내부 로직에 구현된 루트 포트
      • I/O 요청 발생시키면 안됨
      • 전원 관리 구현 X
      • Hot Plug 지원 X

Enumeration

  • Enumeration은 configuration software가 시스템 topology를 발견하고, bus number와 시스템 자원을 할당하는 과정입니다.
  • x86 PCIe 아키텍처에서는 enumeration은 BIOS 하드웨어 초기화 과정에서 이루어집니다. 모든 레지스터들은 부트로더 이전에 설정됩니다.
  • system software는 enumeration 규칙에 따라서 enumeration을 재할당 할 수 있습니다.

참고 이미지

image

image

image


출처

  • https://webcourse.cs.technion.ac.il/236376/Spring2016/ho/WCFiles/chipset_microarch.pdf
  • http://blog.naver.com/PostView.nhn?blogId=joa_quin&logNo=221285262754&categoryNo=15&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView&userTopListOpen=true&userTopListCount=5&userTopListManageOpen=false&userTopListCurrentPage=1
  • http://www.sionsemi.com/whitepapers/pcie-overview.html
  • http://jake.dothome.co.kr/pci-1/
  • https://en.wikipedia.org/wiki/Intel_X58#/media/File:X58_Block_Diagram.png