How is AMBA ACE different from the AXI protocol?
Asked Answered
C

1

1

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

Closelipped answered 24/12, 2021 at 8:29 Comment(2)
What part of the documentation do you not understand?Gunwale
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer.Adult
H
2

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.

Hawkins answered 24/12, 2021 at 15:47 Comment(1)
A good point in this answer, ACP/ACE can be used to make a driver cache aware, which allows the CPU to map the device buffers with cache on. There are a lot of devices where this doesn't give any advantage, and the extra gates to implement ACE are probably quite significant (cost, power, functionality sacrificed elsewhere).Hawkins

© 2022 - 2024 — McMap. All rights reserved.