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

[SoC] AMBA AHB 인터페이스란? (Overview)

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

안녕하세요. RTLog입니다. 

 

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

https://developer.arm.com/documentation/ihi0033/c/?lang=en

 

Documentation – Arm Developer

 

developer.arm.com

 

AHB(Advanced High-performance Bus)

About the Protocol

APB가 낮은 성능/주파수에서 동작하는 Peripheral들을 위한 인터페이스였다면, AHB(Advaced High-performance Bus) 인터페이스는 높은 성능/주파수의 블록들의 연결을 위한 인터페이스입니다. 대표적으로, External memory interface, Internal Memory, DMA, CPU, High Frequency Peripherals들이 있습니다. 

 

아래는 지난 포스트에도 첨부했던 그림인데요. 보통 낮은 성능의 블럭들은 APB, 높은 성능의 블럭들은 AHB와 연결합니다. 그리고, AHP와 ABP 사이의 통신을 위해 Bridge를 사용하여 전체 시스템을 구성합니다. 최근에 AXI 인터페이스가 나오면서, AHB의 포지션이 애매해진 상황이라고 합니다. 하지만, AHB 또한 많이 사용되는 것으로 알고 있습니다. 추후 AXI에 대해서도 작성해보겠습니다 :) 

 

AHB & APB

Introduction에서는 아래 내용을 고속 동작을 위한 Key Feature로 제시하고 있습니다. 

  • Burst transfers (한 번의 Address 접근으로 여러 번의 Data Transfer 수행)
  • Single clock-edge operation (Clock 기반의 Pipelined Operation)
  • Non-tristate implementation (단반향 버스 인터페이스)
  • Configurable data bus width (64, 128, 256, 512, 1024 bits)

아래는 Single Master & Three Slaves 시스템 예시입니다. 크게 Master, Interconnect, Slave로 나눌 수 있습니다.

 

Interconnect는 Decoder와 Multiplexer로 구성되어 있습니다. Decoder는 접근하는 Slave를 선택하는 역할이고, Multiplexer는 Slave에서 전달된 데이터를 선택하는 역할을 합니다. Single Master 구조이기 때문에 Decoder로 명시되어 있는데, Multi-Master 구조에서는 보통 Arbiter로 부릅니다. 

AHB Block Diagram

Manager (Master)

AHB5를 제외한 Master 인터페이스의 신호는 아래와 같습니다. Read/Write 요청은 Master에서 시작할 수 있고, Slave는 그 요청에 응답만 가능하다는 사실이 중요합니다. 각각의 신호에 대한 설명은 다음 포스트에서 진행할게요. Global Signal은 시스템에서 받는 신호이고, Transfer Response 신호와 Data 신호는 Slave로부터 받습니다. 나머지 신호는 Slave로 전송하는 신호입니다. 

Master Interface

Subordinate (Slave)

마찬가지로, AHB5 신호를 제외한 Slave 인터페이스의 신호는 아래와 같습니다. Arbiter에서 전달되는 HSELx 신호를 통해서 선택된 Slave가 Data Transfer 요청에 응답하게 됩니다. Data 신호, Transfer가 정상적으로 수행되었는지를 나타내는 HRESP 신호와 Transfer가 수행됨을 나타내는 HREADYOUT 신호를 Master에 전달하고, 나머지 신호들은 Master로부터 전달되는 신호입니다. 

Slave Interface

Interconnect 

Interconnect는 Master와 Slave를 연결하는 중간 매개체의 역할을 합니다. Single Master라면 Decoder와 Multiplexer로 구성되고, Multi-Master라면 Decoder 대신 Arbiter라는 명칭을 사용합니다. Arbiter는 Bus의 소유권을 부여하는 역할을 수행합니다. AHB Block Diagram을 참고해주세요.

 

Revisions

Issue A에서는 AHB-Lite에 관한 스펙, Issue B에서는 AHB5가 추가되었고 Issue C에서는 AHB-Lite와 AHB를 모두 포함한 내용을 담고 있다고 합니다. 제가 작성한 Overview의 그림을 보시면, AHB에 대해서는 Revision 많지 않았음을 확인할 수 있습니다.

2024.03.28 - [인터페이스/AMBA 인터페이스] - [SoC] AMBA 인터페이스란?

Operations

동작은 크게 1 Clock의 Address Phase와 여러 Clock이 소모되는 Data Phase로 구분됩니다. (Data Phase에 소모되는 Clock은 Slave의 상태, Burst 사이즈 등에 따라 달라집니다. APB와 마찬가지로 Wait State가 존재합니다.)

 

Address Phase에서 Master는 Transfer 시작을 위해 Address와 Control 신호를 전달합니다. 이 신호는 주소, 어떤 Slave와 통신할지, Transfer의 크기(Burst) 등을 포함하고 있습니다. Transfer 유형은 Single (하나의 Data) 혹은 Burst (연속 데이터 Transfer)로 구분할 수 있는데, Burst는 Sequential과 Warpping Transfer로 다시 구분됩니다. 다음 포스트에서 조금 더 자세히 다루겠습니다.

 

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

감사합니다. 

 

 

 

728x90
반응형