금. 8월 15th, 2025

PCIe 규격 상세 설명 (A Detailed Explanation of the PCIe Standard) 열병합발전소의 가스터빈 및 배열회수 보일러 기계 엔지니어의 전문성을 고려하여, 복잡한 시스템의 구성 요소와 그 상호작용에 대한 이해도를 높이는 데 초점을 맞춰 PCIe(Peripheral Component Interconnect Express) 규격을 심층적으로 설명하겠습니다. 컴퓨터 시스템의 ‘고속도로’에 비유되는 PCIe는 발전소의 파이프라인이 유체(증기, 가스)를 정해진 압력과 유량으로 정확하게 이송하는 것처럼, 데이터를 고속으로 안정적으로 전송하는 핵심적인 역할을 수행합니다.

  1. PCIe 개요: 병렬에서 직렬로의 패러다임 전환 과거의 PCI 버스는 여러 장치가 하나의 통로를 공유하는 병렬 방식이었습니다. 이는 마치 하나의 큰 도로에 여러 차량이 동시에 진입하려는 것과 같아, 장치가 많아질수록 ‘교통 체증'(병목 현상)이 심해지고 속도를 높이는 데 물리적 한계가 있었습니다. PCIe는 이러한 문제를 해결하기 위해 점대점(Point-to-Point) 직렬 연결 방식을 채택했습니다. 각 장치는 CPU(또는 칩셋)와 직접 연결되는 자신만의 전용 차선(Lane)을 가집니다. 이는 각 설비가 중앙 제어실과 개별 파이프라인으로 연결되어 다른 설비의 부하와 상관없이 독립적으로 운용되는 것과 유사합니다. 직렬 통신 (Serial Communication): 데이터를 한 번에 1비트씩 순서대로 전송합니다. 병렬 방식에 비해 적은 수의 핀을 사용하면서도, 신호 간섭 문제를 해결하고 클럭 속도를 획기적으로 높일 수 있어 전체적인 데이터 전송량을 극대화할 수 있습니다. 레인 (Lane): 데이터 송신(TX)과 수신(RX)을 위한 한 쌍의 차동 신호선(Differential Pair)으로 구성된 기본 데이터 전송 단위입니다. 2개의 선에 반대 위상의 신호를 보내 외부 노이즈의 영향을 최소화하여 신호 무결성을 확보합니다. 링크 (Link): 하나 이상의 레인이 모여 형성된 연결 통로입니다. 레인 수에 따라 x1, x2, x4, x8, x16, x32 등으로 표기되며, 레인 수가 많을수록 대역폭(데이터가 지나가는 통로의 폭)이 비례하여 증가합니다. 그래픽 카드는 보통 가장 넓은 대역폭인 x16 링크를 사용합니다.
  2. PCIe의 계층적 구조 (Layered Architecture) PCIe는 복잡한 통신 과정을 효율적으로 관리하기 위해 OSI 7계층 모델과 유사한 계층적 구조를 가집니다. 데이터는 상위 계층에서 하위 계층으로 이동하며 각 계층의 역할에 맞는 정보(헤더 등)가 추가되어 최종적으로 물리적 신호로 변환됩니다. 수신 측에서는 이 과정을 역으로 수행합니다. 2.1. 트랜잭션 계층 (Transaction Layer) 최상위 계층으로, 소프트웨어(드라이버)가 생성한 읽기/쓰기 요청을 TLP(Transaction Layer Packet) 라는 표준화된 데이터 패킷으로 만들거나, 수신된 TLP를 해석하여 소프트웨어에 전달합니다. TLP (Transaction Layer Packet): PCIe 통신의 기본 단위입니다. 헤더 (Header): TLP의 종류(메모리 읽기, 쓰기, I/O, 설정 등), 목적지 주소, 데이터 크기 등 핵심 제어 정보를 담고 있습니다. 데이터 페이로드 (Data Payload): 전송할 실제 데이터가 담기는 부분입니다. (읽기 요청과 같은 일부 TLP에는 없을 수 있음) ECRC (End-to-End CRC): 선택 사항으로, 데이터 생성 지점부터 최종 목적지까지 전 구간에 걸쳐 데이터 무결성을 검증하는 코드입니다. 2.2. 데이터 링크 계층 (Data Link Layer) 트랜잭션 계층에서 내려온 TLP가 물리적 링크를 통해 오류 없이 안전하게 전달되도록 보장하는 중요한 역할을 합니다. 시퀀스 번호 (Sequence Number) 추가: 각 TLP에 고유 번호를 부여하여 패킷의 순서가 뒤바뀌거나 유실되는 것을 방지합니다. LCRC (Link CRC) 추가: TLP 끝에 CRC(Cyclic Redundancy Check) 값을 추가하여, 해당 링크 구간에서의 데이터 손상 여부를 검사합니다. ACK/NAK 프로토콜: 수신 측은 TLP를 성공적으로 받으면 ACK (Acknowledge) 신호를, LCRC 오류 등으로 실패하면 NAK (Negative Acknowledge) 신호를 송신 측에 보냅니다. 송신 측은 NAK를 받으면 해당 TLP를 재전송하여 데이터 신뢰성을 확보합니다. 흐름 제어 (Flow Control): 수신 측의 버퍼(데이터 임시 저장 공간)가 가득 차서 데이터 손실이 발생하는 것을 막기 위해, 신용 기반(Credit-based) 흐름 제어 메커니즘을 사용합니다. 수신 측은 자신이 받을 수 있는 데이터의 양(Credit)을 송신 측에 지속적으로 알려주며, 송신 측은 확보된 Credit 만큼만 TLP를 전송합니다. 이는 마치 상류 댐에서 하류의 처리 용량을 고려하여 방류량을 조절하는 것과 같습니다. 이 정보는 DLLP(Data Link Layer Packet) 를 통해 교환됩니다. 2.3. 물리 계층 (Physical Layer) 데이터를 실제 전기 신호로 변환하여 레인을 통해 전송하는 역할을 합니다. 인코딩 (Encoding): 데이터 비트(0과 1)를 전송에 적합한 신호로 변환하는 과정입니다. 이는 전송 중 클럭 신호를 데이터 흐름에서 복원(Clock Recovery)하고, 0이나 1이 연속되는 것을 방지하여 신호 안정성을 높이는 목적을 가집니다. 8b/10b 인코딩 (PCIe 1.x, 2.x): 8비트 데이터를 10비트 코드로 변환합니다. 20%의 오버헤드가 발생하여 실제 데이터 전송 효율은 80%입니다. 128b/130b 인코딩 (PCIe 3.0 이상): 128비트 데이터를 130비트(2비트의 동기화 헤더 + 128비트 데이터)로 변환합니다. 오버헤드가 약 1.5%로 매우 낮아져 데이터 전송 효율을 크게 향상시켰습니다. 직렬화/병렬화 (Serialization/Deserialization): 상위 계층의 병렬 데이터를 직렬화하여 한 비트씩 전송하고, 수신 측에서는 직렬 신호를 다시 병렬 데이터로 변환합니다. 링크 초기화 및 트레이닝 (Link Initialization and Training): 시스템 부팅 시, 두 장치가 통신을 시작하기 전에 서로의 존재를 확인하고, 최적의 통신 속도와 레인 수를 협상하는 과정입니다. 이 과정은 LTSSM (Link Training and Status State Machine) 이라는 상태 머신에 의해 정교하게 제어됩니다. LTSSM은 링크의 상태를 감지(Detect), 폴링(Polling), 설정(Configuration), 정상 작동(L0) 등 여러 상태로 전환하며 안정적인 링크를 구축합니다.
  3. 세대별 규격 및 속도 PCIe는 기술 발전에 따라 지속적으로 새로운 세대를 발표하며 대역폭을 2배씩 증가시켜 왔습니다. 각 세대는 하위 호환성을 유지합니다. (예: PCIe 4.0 카드 M.2 SSD는 PCIe 3.0 슬롯에 장착 가능하지만, 속도는 PCIe 3.0으로 제한됨) GT/s (Giga-transfer per second): 초당 전송 횟수를 나타내는 단위로, 실제 데이터 전송 속도(GB/s)는 인코딩 방식에 따른 오버헤드를 고려해야 합니다. PAM4 (Pulse Amplitude Modulation 4-level): PCIe 6.0부터 도입된 새로운 신호 방식으로, 한 번의 신호에 2비트(00, 01, 10, 11)를 담아 전송 효율을 2배로 높였습니다. 대신 오류율이 높아져 FEC(Forward Error Correction, 순방향 오류 정정) 기술이 필수가 되었습니다.
  4. 전력 관리 (Power Management) 노트북과 같은 저전력 장치뿐만 아니라 서버 시스템의 효율을 위해 PCIe는 정교한 전력 관리 기능을 제공합니다. ASPM (Active State Power Management): 링크가 활성 상태(L0)일 때도 데이터 전송이 없으면 링크를 저전력 상태로 전환하여 전력 소모를 줄입니다. L0s: 한쪽 방향의 레인만 저전력 상태로 전환. 복귀 지연 시간이 매우 짧습니다. L1: 양방향 레인 모두를 저전력 상태로 전환. 더 큰 전력 절감 효과가 있지만, 복귀 지연 시간은 L0s보다 깁니다. 이처럼 PCIe는 단순한 연결 단자를 넘어, 고속 데이터 전송을 위해 계층화된 프로토콜, 오류 제어, 흐름 제어, 전력 관리 등 정교한 기술들이 집약된 표준 규격입니다. 이는 발전소의 복잡한 공정을 안정적으로 제어하기 위해 다양한 계측기, 제어기, 통신망이 유기적으로 결합된 것과 같은 원리라고 할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다