How is AMBA ACE different from the AXI protocol?

3.1k Views Asked by At

What is the difference between ADVANCED MICROCONTROLER BUS ARCHITECTURE-ACE and ADVANCED MICROCONTROLER BUS ARCHITECTURE-AXI protocol?

1

There are 1 best solutions below

1
On

The difference is stated in the ARM document,

The ACE protocol extends the AXI4 protocol and provides support for hardware-coherent caches.
...
A five state cache model to define the state of any cache line in the coherent system.

See MOESI protocol at Wikipedia (five state cahce protocol). It seems pretty clear,

The AXI is a bus protocol which provides a means to transfer burst data from masters to slaves over a wide data path. The ACE protocol extends the signalling to allow a MOESI type protocol to be used for cache coherency.

So, if you were to develop IP for a GPU (Vivante) and wanted to support cache coherency with a CPU, you would need the signals provide by ACE. Otherwise, I think it is mainly between the CPU complex (4/8 etc cores) on the chip. Also there is a trend to asymmetric multiple CPUs, so a legacy chip could talks to an ARM CPU. Or you could have an ARM-to-RISCV translation. It might also be useful to a machine learning type acceleration engine.

Most DMA masters do not perform work WITH a CPU. So even a crypto engine probably would not need the ACE protocol signals. Also, you could have a simple AXI connections between the devices in the paragraph above and it could work, but would be less performant.

Summarizing all that,

The AXI protocols are 'master' to 'slave' (provider/consumer, etc) where as the ACE is a master to master interface. So AXI is useful for an Ethernet, Video, memory controller, but ACE will be used to co-ordinate computations between masters that process data in complex ways. The ACE is a protocol to say that another consumer is working on that portion/section of the provider data and you should block or do something else.