What is the difference between ADVANCED MICROCONTROLER BUS ARCHITECTURE-ACE and ADVANCED MICROCONTROLER BUS ARCHITECTURE-AXI protocol?
How is AMBA ACE different from the AXI protocol?
3.2k Views Asked by vinaykumar At
1
There are 1 best solutions below
Related Questions in ARM
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- How can I use LD to place ARM reset vectors in a program segment
- Errors in makefile for qemu 0.14.1 in ubuntu 15.04 64 bit
- Text as parameter in inline assembly (ARM)?
- GSL: nm outputs "undefined Symbol (U)"
- How to address multiple definition compiler error
- Did anyone compiled GSL for androind?
- Linker Error on cross compiling Project in eclipse
- How to set privilaged mode in ARM Cortex-A8?
- Why is a write to a memory-mapped peripheral register not actioned (LPC43xx)?
- what's ARM TCM memory
- Traversing a string using arm assembly inside V8 source
- C Global declared in ISR
- Which is better? int8_t vs int32_t in 32 bits MCU
- Cannot find -lgtk-x11-2.0. Also, some modules are not found by cmake, though they are installed
Related Questions in AMBA
- AXI bus to Wishbone Wrapper
- What is the granularity of the AXI-ACE protocol?
- How do I tune ARM Socrates NIC QoS Address Latency Target Registers to get balanced bandwidth between two AXI Initiators?
- JTAG instructions to access the ARM-Cortex-M4 registers
- How to make ACLK centric data transfer
- Enabled SDRAM bridge of Cyclone V is blocked
- Why master is incrementing Address in AMBA AHB Burst transfer?
- How to check if write channel in AXI is working fine in my testbench?
- MDMA & internal FLASH R/W on STM32H7
- example extending LEON SOC with custom peripheral, AMBA AHB slave
- How is AMBA ACE different from the AXI protocol?
- L1 cache ports in ARM Cortex processors
- Byte Masking AxiStream: How to mask tdata with tkeep systemverilog
- Two master components controlling same slave (address assignation), Intel Quartus Prime Platform Designer (Qsys)
- How to generate PREADY signal from slave in APB protocol?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The difference is stated in the ARM document,
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.