728x90
반응형
안녕하세요. RTLog입니다.
AMBA APB 스펙 문서(아래 링크)를 읽고, 정리하는 포스트를 작성해보려고 합니다.
https://developer.arm.com/documentation/ihi0024/latest/
APB(Advanced Peripheral Bus)
APB는 간단한 복잡도로 낮은 전력, 속도로 동작하는 인터페이스입니다. 파이프라이닝 & Burst 동작이 구현되지 않아, 낮은 클럭 주파수로 동작하는 Peripheral들의 Programmable Register를 제어하기 위한 용도로 많이 사용됩니다. ABP는 Bridge를 통하여 Memory, CPU 등 고속 동작 블럭들과 연결될 수 있습니다.
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
* 표에서, 설계에 따라 달라지는 Width는 문자로 적혀있음.
* 각 시그널은 "P*" 형태로 작명. AHB는 "H*"
Source에 작성된 Requester는 Master를 의미하고, Completer는 Slave를 의미합니다. Peripheral(Slave) 입장에서 Requester로 작성된 Signal들은 Input, Completer로 작성된 Signal들은 Output이 됩니다.
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
반응형
'인터페이스 > AMBA 인터페이스' 카테고리의 다른 글
[SoC] AMBA APB 인터페이스란? (Signal) (0) | 2024.04.08 |
---|---|
[SoC] AMBA AHB 인터페이스란? (Overview) (0) | 2024.03.30 |
[SoC] AMBA APB 인터페이스란? (Waveform) (2) | 2024.03.28 |
[SoC] AMBA 인터페이스란? (Overview, 개요) (1) | 2024.03.28 |