전체 글(91)
-
[PCIe] LTSSM 완전 정리 | Link Training 상세 - Polling, Configuration, Recovery, Equalization Phase
LTSSM 개요LTSSM(Link Training and Status State Machine)은 PCIe Physical Layer 안에 있는 하드웨어 상태 머신이다. 전원 인가 순간부터 링크가 L0(정상 동작)에 도달할 때까지, 그리고 이후 저전력 전환/재훈련까지 전부 LTSSM이 관리한다. 소프트웨어 개입 없이 하드웨어만으로 동작하는 게 핵심이다.기초 정리 글에서는 LTSSM을 개략적으로만 다뤘다. 이번 글은 Polling/Configuration/Recovery의 세부 Substate와 TS1/TS2 Ordered Set, Equalization Phase까지 실제 Link Training 과정을 상세히 다룬다.전체 상태 목록LTSSM은 총 11개 최상위 State로 구성된다.State역할Dete..
2026.09.02 -
[PCIe] Gen6 완전 정리 | PAM4, FLIT Mode, LDPC FEC 원리와 차이
PCIe Gen6 개요PCI-SIG는 2022년 1월 PCIe 6.0 스펙을 발표했다. 데이터 레이트는 64 GT/s로 Gen5(32 GT/s) 대비 두 배지만, 대역폭을 두 배로 늘리는 방식 자체가 Gen1~Gen5와 완전히 다르다. Gen5까지는 클럭을 올리고 인코딩 효율만 개선하는 방식이었다면, Gen6부터는 두 가지 근본적인 변화가 들어간다.PAM4 시그널링 - 물리 계층 신호 방식을 NRZ에서 PAM4로 전환.FLIT Mode - 가변 길이 TLP/DLLP 구조를 고정 256바이트 FLIT 구조로 전환.이 두 변화는 세트로 묶여 있다. PAM4가 만드는 에러율 증가를 FLIT 구조 기반 FEC로 상쇄하는 설계이기 때문이다.세대별 비교Gen1부터 Gen6까지 x16 링크 기준 편방향 대역폭이다. ..
2026.09.02 -
[PCIe] Reset 완전 정리 | Fundamental Reset, Hot Reset, FLR(Function Level Reset)
PCIe Reset 개요PCIe는 크게 두 카테고리, 4가지 방식의 Reset을 정의한다.Conventional Reset - Fundamental Reset(Cold/Warm)과 Hot Reset. 디바이스 전체 또는 링크 하위 전체를 초기화한다.Function Level Reset (FLR) - PCIe 2.0에서 추가. Multi-Function 디바이스에서 하나의 Function만 골라서 리셋한다.Fundamental ResetFundamental Reset은 하드웨어 레벨에서 디바이스 전체를 초기화한다. 모든 State Machine, 하드웨어 로직, Port 상태, Configuration 레지스터가 리셋된다. 단, "Sticky" 속성을 가진 일부 레지스터 필드는 예외다. Sticky 필드는..
2026.07.18 -
[PCIe] Interrupt 완전 정리 | INTx, MSI, MSI-X 비교와 동작 원리
PCIe Interrupt 개요PCIe는 사이드밴드 신호를 쓰지 않는 직렬 인터페이스라 PCI의 물리적 INTx# 핀을 그대로 쓸 수 없다. 대신 세 가지 방식으로 인터럽트를 전달한다.INTx (Virtual Wire) - 레거시 호환용. 핀 기반 신호를 Message TLP로 에뮬레이션.MSI (Message Signaled Interrupt) - Memory Write TLP 한 번으로 인터럽트 전달. PCIe 네이티브 방식.MSI-X (Extended MSI) - MSI를 확장해 벡터 수와 유연성을 늘린 방식.Function은 MSI 또는 MSI-X Capability 중 최소 하나는 반드시 구현해야 한다.INTx - Virtual Wire SignalingPCIe는 INTA#~INTD# 핀 동작을..
2026.07.18 -
[AMBA] AHB 완전 정리 | AHB-Lite, AHB5, HTRANS, HBURST, Arbitration
AHB란AHB(Advanced High-performance Bus)는 ARM이 정의한 AMBA(Advanced Microcontroller Bus Architecture) 버스 프로토콜 중 하나다. AMBA 2.0에서 처음 등장했으며, 고성능 on-chip 버스로 설계됐다. CPU, DMA, 메모리 컨트롤러처럼 대역폭이 중요한 마스터들이 공유 버스로 슬레이브에 접근할 때 사용된다.AMBA 계열 버스에서의 위치는 다음과 같다.버스용도등장 AMBA 버전AHB고성능, 멀티마스터AMBA 2AHB-Lite단일 마스터 단순화AMBA 3AHB5TrustZone/Exclusive 지원AMBA 5APB저전력, 저성능 주변기기AMBA 2AXI고성능, 채널 분리AMBA 3아키텍처 구성AHB(full)는 멀티마스터를 지원하..
2026.06.18 -
[PCIe] Enumeration 완전 정리 | Configuration Space, BAR, Bus 번호 할당, Capability
PCIe Enumeration 개요PCIe Enumeration은 시스템 부팅 시 BIOS/UEFI 또는 OS가 PCIe 토폴로지를 탐색하고, 각 디바이스에 Bus 번호를 부여하며, 메모리/IO 리소스를 할당하는 과정이다. PCI Configuration Space를 통해 이루어진다.Depth-First Search(DFS) 방식으로 토폴로지 탐색Bus 0부터 시작해서 Bridge 발견 시 새로운 Bus 번호 할당BAR(Base Address Register)를 통해 디바이스 메모리 공간 매핑Capability Pointer를 통해 지원 기능 탐색PCI Configuration Space 구조PCIe는 전통적인 PCI의 256바이트 Configuration Space를 4096바이트(4KB)로 확장한다...
2026.06.17 -
[PCIe] Ordering Rules 완전 정리 | TLP Ordering, Relaxed Ordering, ID-based Ordering
Ordering Rules 개요PCIe Ordering Rules는 여러 TLP가 동시에 전송될 때 수신 측에서 어떤 순서로 처리되어야 하는지를 정의한다. 잘못된 순서로 처리하면 데이터 일관성이 깨지거나 데드락이 발생한다.PCIe는 전통적인 PCI의 Strong Ordering 모델을 기반으로 하면서, 성능 향상을 위한 옵션인 Relaxed Ordering(RO), ID-based Ordering(IDO), Snoop Not Required(SNR)를 추가로 정의한다.Ordering Rules는 단일 TC(Traffic Class) 내에서 적용됨서로 다른 TC 간에는 Ordering 관계 없음Switch를 통과하더라도 동일 TC 내 Ordering은 유지되어야 함Ordering은 Peer-to-Peer ..
2026.06.17 -
[PCIe] AER 완전 정리 | Advanced Error Reporting, Correctable/Uncorrectable Error, Error Message
AER (Advanced Error Reporting) 개요AER은 PCIe Extended Capability의 일부로, 기존 PCI의 단순 에러 보고 방식을 개선하여 세밀한 에러 분류, 로깅, 격리 기능을 제공한다. 에러 발생 시 Root Complex에 Error Message TLP를 전달하고, OS/소프트웨어가 적절히 처리할 수 있도록 한다.AER Extended Capability: Extended Capability ID = 0x0001AER은 Correctable Error, Uncorrectable Non-Fatal Error, Uncorrectable Fatal Error 세 가지로 분류에러 발생 시 에러 상태 레지스터에 로깅 후 Error Message TLP 생성Root Port에서..
2026.06.17