AHB Bus 4

AMBA AHB (4) Arbitration

AHB bus에 대한 글은 중재(Arbitration)에 대한 설명으로 마무리하면 될것같습니다. - AHB Arbitration HBUSREQ: Master가 Arbiter에게 bus를 사용하고 싶다고 요청하는 신호입니다. HLOCK: Master가 bus를 계속 사용하고 있으니 끊지 말아달라고 Arbiter에게 요청하는 신호입니다. HGRANT: Arbiter가 가장 높은 우선순위를 가진 Master에게 High를 띄워줍니다. HMASTER: 현재 bus를 사용중인 Master를 표시해줍니다. HMASTLOCK: 현재 Master가 locked sequence를 수행중임을 나타냅니다. HSPLIT: Slave가 다시 split transaction을 할 수 있다고 알려줍니다.

AMBA AHB (3) Slave response signal

Slave가 Master에 의한 transfer에 대해 HRESP signal을 통해 반응하는데요, OKAY 상태와 ERROR 상태가 있습니다. 0 (OKAY) : Transfer가 성공적으로 완료됨 1 (ERROR) : Transfer에 error가 있음 그래서 Slave source signal인 HRESP와 HREADYOUT을 통해 transfer의 상태를 확인할 수 있습니다. HRESP에서 중요한 점은 ERROR 신호는 두 clock cycle 이상 내보내야 한다는 겁니다. 위 Timing diagram을 보면서 이해해봅시다. T0 - T1 : A의 address phase가 slave로 잘 전달됨 (HREADYOUT 1, HRESP 0 - Successful transfer completed) ..

AMBA AHB (2) Burst mode transfer

- HTRANS[1:0] 이전 글에서 AHB Signals를 보여드렸는데요, 그중에서 HTRANS[1:0]은 transfer의 상태를 나타냅니다. 00(IDLE) : Bus를 통해 transfer가 진행되지 않고 있는 상태 01(BUSY) : Master가 어떤 이유로 인해 다음 transfer를 진행시킬 수 없는 상태 10(NONSEQ) : 이전에 transfer가 없었고 첫 번째 transfer인 상태, single transfer라면 NONSEQ입니다. 11(SEQ) : 이전 transfer에 이어 진행되는 상태 Transfer type의 예시가 있는데요, 자세히 살펴봅시다. 모든 transfer는 HWRITE가 Low 상태이므로 read입니다. HBURST[2:0] signal은 조금 뒤에 설명하..

AMBA AHB (1) Signals / Transfer

APB Bus가 peripheral 같은 고성능이 필요하지 않은 모듈들을 위한 버스이기 때문에 성능보다는 최적화를 중요시 여겼다면 AHB(Advanced High-performance Bus)는 보다 성능에 집중한 버스입니다. 그래서 signal도 더 많고 실제 작동하는 방식도 복잡합니다. 그럼 AHB protocol specification을 보면서 AMBA AHB Bus에 대해 알아볼까요?? - Block diagram 먼저 Block diagram부터 봐야겠죠?? 언뜻 보면 Master가 여러 Slave를 HSEL을 통해 선택하고 HWDATA와 HRDATA로 데이터를 주고받는 간단한 구조로 보입니다. 하지만 APB Bus에는 없는 여러 가지 신호와 기능들이 있는데요, Signal을 보면서 알아봅시다..