This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why is there an ACP interface for many ARM processors?

Dear sirs,

I read ACE specification and ARM processor documents for ACP explanation. I always have some questions about ACP.

As soon as you know, ACP exists in SCU for data coherency.

Q1: The document says that ACP usually connects to a DMA or cryptographic engine, so why does it connect to them?

Q2: who starts ACP port to transfer data from where to where?

Q3: How does ACP implement coherency in multi-core processor?

Thanks.

Cray

Parents
  • What is ACP?

    Most of ARM's MPCore processors include an ACP, or Accelerator Coherency Port.  ACPs are just AXI slave ports.  You can connect an AXI master to the port, and the transactions generated by that master will pass through the MPCore processor in order to reach the main memory system.

    Why?

    This is  a way of taking a non-cache coherent master and making it cache coherent.

    As the master's transactions pass through the processor, they are visible to the coherency logic in the processor.  This means that should they access an address held in the processor's caches, it can take the necessary steps to ensure coherency. Exactly how this works is down to the specific MPCore processor.

    Note: In practice, it would have to be a non-cached master.  As the ACP only gives visibility of the bus transactions, not any up-stream caches.

    Who initiates transactions over ACP?

    The master (the thing you connected to the ACP). From its perspective not much has changed.

Reply
  • What is ACP?

    Most of ARM's MPCore processors include an ACP, or Accelerator Coherency Port.  ACPs are just AXI slave ports.  You can connect an AXI master to the port, and the transactions generated by that master will pass through the MPCore processor in order to reach the main memory system.

    Why?

    This is  a way of taking a non-cache coherent master and making it cache coherent.

    As the master's transactions pass through the processor, they are visible to the coherency logic in the processor.  This means that should they access an address held in the processor's caches, it can take the necessary steps to ensure coherency. Exactly how this works is down to the specific MPCore processor.

    Note: In practice, it would have to be a non-cached master.  As the ACP only gives visibility of the bus transactions, not any up-stream caches.

    Who initiates transactions over ACP?

    The master (the thing you connected to the ACP). From its perspective not much has changed.

Children