What is AMBA?

ARM defines AMBA as,

The Advanced Microcontroller Bus Architecture, or AMBA, is an open-standard, on-chip interconnect specification for the connection and management of functional blocks in system-on-a-chip (SoC) designs.

Essentially, AMBA protocols define how functional blocks communicate with each other. [1].

Okay, what does that mean? To answer that question let’s see what an SoC means.

What is SoC?

An SoC (System-on-a-Chip) is a complete processing system in a single package. It may contain multiple processing parts and memory units like RAM or Flash. There might also be some functional parts that might be responsible for handling communication protocols like SPI or UART. An SoC developer would design an SoC based on the application the SoC is going to serve.

But, how do all of the components inside an SoC communicate with each other? This is where the AMBA comes into the picture.

Most processing cores are ARM based. But, different companies also use RISC-V architecture in their designs. The RAM or the Flash does not necessarily be from the same company/vendor. There needs to be some flexibility or an open standard that developers can rely on so components from different vendors sing along together.

AMBA provides several benefits [1]:

Efficient IP reuse: IP reuse is an essential component in reducing SoC development costs and timescales. AMBA specifications provide the interface standard that enables IP reuse. Therefore, thousands of SoCs, and IP products, are using AMBA interfaces.

Flexibility: AMBA offers the flexibility to work with a range of SoCs. IP reuse requires a common standard while supporting a wide variety of SoCs with different power, performance, and area requirements.

Compatibility: A standard interface specification, like AMBA, allows compatibility between IP components from different design teams or vendors.

Support: AMBA is well supported. It is widely implemented and supported throughout the semiconductor industry, including support from third-party IP products and tools.

ARM introduced AMBA in the late 1990’s. The first AMBA bus was the Advanced System Bus (ASB) and Advanced Peripheral Bus (APB). Later in 1999, ARM introduced AMBA High-Performance Bus or the AHB.

Later, ARM introduced further iterations like Advanced Trace Bus (ATB) , AHB-Lite, ATP, CHB etc which is not inside the scope of this article. The distinct versions of AMBA include ASB, APB and AHB.

VLSI Design - What are AMBA Protocols

Advanced High-Performance Bus (AHB):

High-Performance and high-frequency system modules use AHB. Inter-processor communication in SoC and on-chip memory modules requiring high-speed communication make use of AHB.

Advanced System Bus (ASB):

High-Performance modules use ASB, but unlike AHB – these modules do not run at a high clock frequency. ASB is an alternative to AHB where high clock frequency might not be required.

Advanced Peripheral Bus (APB):

APB is optimized for minimal power consumption with reduced complexity to support peripheral functions like the UART or PIOs.

 

AMBA Specification (Rev 2.0)
A typical AMBA-based microcontroller [2]

References

  1. Introduction to AMBA Bus – Link – https://developer.arm.com/documentation/ihi0011/a/Introduction-to-the-AMBA-Buses?lang=en
  2. AMBA Specifications Rev.2.0 – Link – https://developer.arm.com/documentation/ihi0011/a/Introduction-to-the-AMBA-Buses/A-typical-AMBA-based-microcontroller

Leave a Reply

Your email address will not be published. Required fields are marked *