본문 바로가기
인터페이스/AMBA 인터페이스

[SoC] AMBA APB 인터페이스란? (History, Signal)

by RTLog 2024. 3. 28.
728x90
반응형

안녕하세요. RTLog입니다. 

 

AMBA APB 스펙 문서(아래 링크)를 읽고, 정리하는 포스트를 작성해보려고 합니다.

 

https://developer.arm.com/documentation/ihi0024/latest/

 

Documentation – Arm Developer

 

developer.arm.com

APB(Advanced Peripheral Bus) 

APB는 간단한 복잡도로 낮은 전력, 속도로 동작하는 인터페이스입니다. 파이프라이닝 & Burst 동작이 구현되지 않아, 낮은 클럭 주파수로 동작하는 Peripheral들의 Programmable Register를 제어하기 위한 용도로 많이 사용됩니다. ABP는 Bridge를 통하여 Memory, CPU 등 고속 동작 블럭들과 연결될 수 있습니다. 

 

Youtube: Electronicspedia

APB Revisions(Key Features)

  • APB Specification Rev E  → APB1
  • AMBA 2 APB Specification (Issue A)  → APB2 
  • AMBA 3 APB Specification (Issue B)  → APB3
    • Wait State(PREADY port): PENABLE & PREADY Handshaking 기반의 Transfer 
    • Error Reporting(PSLVERR port):Transfer의 Error Reporting 신호 
  • AMBA APB Specification (Issue C)  → APB4
    • Transaction protection(PPROT port): 접근 권한을 지정하는 신호
    • Sparse data transfer(PSTRB port): 32 비트 중 바이트 단위 Transfer [3 | 2 | 1 | 0]]
  • AMBA APB Specification (Issue D)  → APB5
    • Wakeup Signaling: Sleep 상태인 Peripheral이 동작하게 하는 신호
    • User Signaling: 사용자 정의 신호 
    • Parity protection and check signals: Error Detection and Correction(EDC) 용도
  • AMBA APB Specification (Issue E)  → APB5
    • Realm Management Extension(RME): RME System Architecture 지원 여부

ABP Signals

Signals

* 표에서, 설계에 따라 달라지는 Width는 문자로 적혀있음.

* 각 시그널은 "P*" 형태로 작명. AHB는 "H*" 

 

Source에 작성된 Requester는 Master를 의미하고, Completer는 Slave를 의미합니다. Peripheral(Slave) 입장에서 Requester로 작성된 Signal들은 Input, Completer로 작성된 Signal들은 Output이 됩니다.

 

APB Signals

APB Revision 과정에 따라 추가된 신호 순서대로 확인해볼까 합니다. 

APB2

PCLK & PRESETn 기본적으로 필요한 Clock 신호와 Reset 신호입니다. 
PADDR  R/W Address를 의미하며 최대 32비트입니다. 
PSELx  Slave를 선택하기 위한 신호입니다. (Transfer를 위해 필수적으로 High)
PEANBLE  Transfer 과정의 두 번째 클럭부터 HIGH (Waveform 참고)
PWRITE  HIGH이면 Write, LOW이면 Read입니다. 
PWDATA  Write 데이터입니다. (8, 16, 32 Bit-Width)
PRDATA  Read 데이터입니다. (8, 16, 32 Bit-Width)

APB3

PREADY Wait Feature가 생기면서 추가된 신호로, Slave가 Transfer를 위한 준비가 완료되었음을 나타냅니다.
PENABLE 신호와 Handshaking하기 위한 용도의 신호입니다. 
PSLVERR  Error Reporting을 위한 신호입니다. HandShaking이 발생하는 시점에서 유효합니다. 

APB4

PSTRB  Write Transfer에서 바이트 단위로 데이터를 조작하기 위한 신호입니다.
32 bit 데이터에 대해 PSTRB를 0011로 설정하면, 하위 16비트만 유효한 데이터를 나타냅니다.
Read 동작에서는 모든 비트가 0이어야 합니다.
PPROT  Transfer의 보안/보호 레벨을 나타냅니다.
0번 비트는 일반/권한, 1번 비트는 비보호/보호, 2번 비트는 데이터/명령어 전송을 나타냅니다.
주로 1번 비트를 사용하며, 0번과 2번 비트는 다른 용도로 사용하기도 한다고 합니다.
접근 권한이 제한된 영역은 PPROT 신호와 함께 접근합니다.

APB5

PNSE PPROT 신호와 함께 사용되어 추가적인 기능을 제공합니다. 
PWAKEUP Sleep 상태의 Slave에 동작을 알리기 위한 용도의 신호입니다.
P*USER 사용자 정의 신호입니다. 거의 사용되지 않습니다. 

 

 

다음 포스트는 Waveform에 대해서 작성해보겠습니다. 

감사합니다. 

 

728x90
반응형