ARM's new symmetric multiprocessing (SMP) multicore architecture has found a home in the popular ARMv7 architecture. SMP is similar to the architecture found with ARM's higher-end cores.
However, the new architecture handles up to four cores plus support for accelerator and DMA units (see the figure). The enhancements apply to the low end of the newer Cortex architecture as well. Such an approach provides significantly higher performance than the software-based synchronization used in many custom ARMv7 multicore chips. Such synchronization typically uses a software cache coherent approach that adds significant overhead as the number of processors increases.
The main ARMv7MP processor core remains the same as the typical ARMv7 core, with four major architectural changes: cache coherence support, L1 cache coherence for system accelerators, TrustZone and Generic Interrupt Controller (GIC) Architecture support, and support for paravirtualization managers.
The instruction and data L1 caches associated with each processing core incorporate cache-coherency support that's synchronized via the snoop control unit (SCU). The SCU also is linked to any on-chip DMA or accelerators. A local coherence bus links these to the SCU. In addition, each master device can lock down blocks of memory in the L2 cache. This can prevent high-bandwidth masters from flooding the cache.
One of the other features included with the new architecture is better support for paravirtualization (see "Virtual Embedding" at www.electronicdesign.com, ED Online 10765). Paravirtualization requires a customized kernel of any virtualized operating system. But there are benefits, such as improved system performance.
Higher-end systems often feature more extensive virtual-machine support, which lets a virtual-machine manager (VMM) host unmodified operating systems (see "Platforms Strive For Virtual Security," ED Online 10813). However, this usually is of little consequence for embedded developers who typically have access to operating-system and application code. Paravirtualization is likely to be more important to embedded developers for security, system partitioning, and legacy support.
TrustZone is ARM's mechanism to separate secured and non-secured domains. The GIC is part of the puzzle, since it's possible to route interrupts to the appropriate domain in a multicore VMM environment. Secure cache state is maintained between domains during virtualization traps and request forwarding. This enables the secure management of system resources among cores and security domains.
Processors with this new multicore architecture won't be immediately available. ARM sells cores, not chips. Many of the initial products will be custom and hidden from most developers. Look for this technology to move into standard parts, though, especially the Cortex line.