The IPUx subsystem integrates the following group of submodules:
- Two Arm Cortex-M4 processors: Two cores (r0p1 revision), IPUx_C0 and IPUx_C1. For a description of the Arm Cortex-M4 processor, see the Arm Cortex-M4 Technical Reference Manual, available at infocenter.arm.com/help/index.jsp.
- Interrupt controller (IPUx_Cx_INTC): To
facilitate parallel processing, the interrupt mapping is the same for the two
cores. Each Cortex-M4 processor receives the same interrupts, except for a few
internal interrupts. Every IRQ line is shared between the two Arm processors. By
properly configuring the IPUx_Cx_INTC registers inside each Arm processor, it
can be ensured that the shared IRQ is taken by only one of the Arm processors
(for more information, see Interrupt Controllers).
- IPUx_UNICACHE interface: The cache interface converts the data between the different protocols in the subsystem. Four ports are required to support the four buses from the Arm Cortex-M4 processors (two for each processor).The instruction and data connections from each Arm Cortex-M4 are multiplexed, but the Arm Cortex-M4 prevents conflicts on this connection. Default cache policies are provided through the sideband signals and are not used to access the cache. Cacheability is provided through the MMU inside the cache.
- IPUx_UNICACHE: Allows basic maintenance operations, which are performed through a dedicated interface: preload, lock, clean (write out dirty lines, but do not invalidate directly), and invalidate.
- IPUx_UNICACHE_MMU: Serves the role of an attribute MMU (AMMU) for the unicache. It provides the multi-access cache with region-based address translation, read/write control, access type control, and multilevel cache maintenance. Access to the IPUx_UNICACHE_MMU is done only under privilege mode. The IPUx_UNICACHE_MMU can be programmed by the dual Cortex-A15 microprocessor unit (MPU) subsystem through the IPUx subsystem slave port.
- IPUx_UNICACHE_SCTM: Embedded in the IPUx_UNICACHE
- Interconnect configuration port: Cache maintenance and MMU configuration are done through an interconnect slave port. Accesses must be performed to a noncacheable area that must be defined within the IPUx_UNICACHE_MMU. Interconnect accesses are generated from the L2 MIF.
- IPUx_MMU: Provides address translation for all the accesses done from the IPUx subsystem to the level 3 (L3_MAIN) interconnect. The IPUx_MMU can be programmed by the MPU subsystem through the IPUx subsystem slave port.
- L3_MAIN interconnect port: Allows access to the
system memories and peripherals. For the address mapping of the modules in the
IPUx subsystem, see Memory Mapping.
- On-chip IPUx_ROM and banked IPUx_RAM memory. The
IPUx_ROM memory is used for boot/initialization purposes. For more information
about the initialization of the device, see Initialization.
Figure 7-6 is a block diagram of the IPUx subsystem.