Freescale Semiconductor Product Brief Document Number: P3041PB Rev. 0, 11/2011 P3041 QorIQ Communications Processor Product Brief This product brief provides an overview of the P3041 QorIQ communications processor features as well as application use cases. The P3041 combines four Power Architecture® processor cores with high-performance datapath acceleration logic and network and peripheral bus interfaces required for networking, telecom/datacom, wireless infrastructure, and mil/aerospace applications. The P3041 is a very flexible device that can be configured to meet many system application needs. For example, it can be used for combined control, datapath, and application layer processing in routers, switches, base station controllers, and general-purpose embedded computing systems. Its high level of integration offers significant performance benefits compared to multiple discrete devices, while also greatly simplifying board design. © 2011 Freescale Semiconductor, Inc. All rights reserved. Contents 1 2 3 4 5 P3041 Application Use Cases. . . . . . . . . . . . . . . . . . . . . . 2 P3041 Multicore Processing Options . . . . . . . . . . . . . . . . 3 P3041 Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Developer Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Document Revision History . . . . . . . . . . . . . . . . . . . . . . . 31 P3041 Application Use Cases 1 P3041 Application Use Cases 1.1 Integrated Access Router (IAD) Dual SATA ports provide high-speed, low-cost storage options for statistics or large databases. Compared to SGMII, 2.5-Gb/s Ethernet enables the next step in performance connectivity to switches. GE GE Front panel access Out-of-band control path SATA USB Flash code upgrade P3041 PCIe PCIe peripherals Front Panel PCIe 2.5 Gb/s SGMII, XAUI, PCIe Backplane PCIe PCI Switch 24x GE GE Switch Data path Figure 1. P3041 Integrated Access Router Interface 1.2 Base Station Network Interface Card (NIC) Dual Serial RapidIO ports (up to 5 GHz) can be used for redundancy or multiple connections, both to the backplane or to the DSP farm. With improved Type 11 messaging and new support for Type 9 data streaming, the Serial RapidIO interconnect can now be used not only as a control plane interface, but can also achieve its intended potential as a highly-efficient, data path. DSP DSP P3041 GE Maintenance SRIO Switch RF components to cellular user equipment DSP (MSC8156) SGMII, 2.5 Gb/s SGMII, XAUI Backhaul to access gateway Figure 2. P3041 LTE Wireless Base Station Interface P3041 QorIQ Communications Processor Product Brief, Rev. 0 2 Freescale Semiconductor P3041 Multicore Processing Options 2 P3041 Multicore Processing Options The four P3041 cores can run either on an OS or run OS-less using a simple scheduler. 2.1 Running on an OS There are different multi-processing options with the P3041 cores running on an OS: • Four-core, asymmetric — Four copies of the same uni-processor operating system or — Up to four different uni-processor operating systems • Four-core, symmetric • Mixed symmetric and asymmetric For example, N cores running in SMP mode, while the remainder of the cores operate asymmetrically with up to 4–N different OSes 2.2 Running OS-Less Using a Simple Scheduler Running one or more cores OS-less using a simple scheduler is a likely use case when cores are performing datapath operations with bounded real-time requirements. This use case is greatly enhanced by the provisioning of a 128-Kbyte private back-side CoreNet platform cache (CPC) for each e500mc core. These caches can operate as a traditional unified cache, or be set to operate as Instruction Only, Data Only, or even locked and used as memory-mapped SRAM. CPU cores operating asymmetrically can be run at asynchronous clock rates. Each processor can source its input clock from one of the multiple PLLs inside the P3041. This allows each core to operate at the minimum frequency required to perform its assigned function, saving power. The cores are also capable of running at half and quarter ratios of their input PLL frequency, and can switch between PLLs and ratios nearly instantaneously. This allows lightly utilized CPUs to be slowed (under software control) for power savings, rather than performing more complex task migration operations. 2.3 DPAA Multicore Processing Use Cases Figure 3 shows several multicore processing use cases and the potential interaction with the Data Path Acceleration Architecture (DPAA). P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 3 P3041 Multicore Processing Options A SMP All CPUs are running a single operating system, with any specialization of CPU function occurring through OS techniques such as Task Affinity. The I/Os and acceleration hardware are under the control of the SMP OS. Typically all CPUs operate at the same frequency. DPAA B SMP Some number of the cores are operated as an SMP cluster, most likely running high complexity control plane operations. The control plane configures and manages the remaining processors, which are running individual copies of an RTOS or scheduler to perform dataplane operations. In this use case, the SMP CPUs typically operate at the same frequency, the remaining CPUs can run at a different frequency from the SMP CPUs, and even from each other. DPAA C CTL A single CPU is used as the control processor, configuring and managing the other three processors, which are running individual copies of an RTOS or scheduler, as in B. CPU operating frequencies are an independent parameter. DPAA D All CPUs are used for datapath operations, here shown as two sets of pipelined functions, each interacting independently with the I/Os and accelerators. Operating frequencies for each CPU in the pipeline can be set independently, and the provision of a 128-Kbyte back-side L2 provides significant flexibility in partitioning and rebalancing the pipeline as processing requirements change. DPAA Figure 3. CPU Usage Use Cases Figure 4 shows an additional use case, which involves the use of one of the CPUs as an I/O processor. The DPAA can greatly simplify and accelerate processing for packets entering the system by means of the P3041 QorIQ Communications Processor Product Brief, Rev. 0 4 Freescale Semiconductor P3041 Multicore Processing Options Ethernet interfaces. For systems requiring external ASICs or legacy network interface cards in the high-performance datapath, system developers can allocate a CPU to help interwork between the native data buffers used by PCI Express- or Serial RapidIO-based network interfaces and the data buffers used by the datapath acceleration hardware. E CTL PCIe/ sRIO ASIC or NIC DPAA Figure 4. IO Processor Managing PCIe/Serial RapidIO-Based Network Interfaces P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 5 P3041 Features 3 P3041 Features 3.1 Block Diagram Figure 5 shows the major functional units within the P3041. Power Architecture® P3041 e500mc Core 128-Kbyte 32-Kbyte Backside Cache 32-KbyteI-Cache 32-Kbyte D-Cache I-Cache 1024-Kbyte Frontside CoreNet Platform Cache 64-bit DDR3/3L Memory Controller eOpenPIC PreBoot Loader CoreNet™ Coherency Fabric Security Monitor PAMU PAMU Peripheral PAMU Access Mgmt Unit PAMU Internal BootROM Power Mgmt 2x DUART 2 4x I C 2x USB 2.0 PHY Test Port/ SAP SATA 2.0 eLBC eSPI Real Time Debug Frame Manager Security 4.2 eSDHC Queue Mgr Pattern Match Engine 2.1 RapidIO Msg Mgr (RMan) Parse, Classify, Distribute DMA DMA Watchpoint Cross Trigger Buffer Buffer Mgr Clocks/Reset 10GE 1GE 1GE PCIe PCIe PCIe PCIe 1GE 1GE 1GE sRIO x2 Perf CoreNet Monitor Trace Aurora GPIO 18-lane 5-GHz SerDes CCSR Figure 5. P3041 Preliminary Block Diagram 3.2 P3041 Features Summary The P3041 SoC includes the following functions and features: • Four e500mc cores built on Power Architecture technology, each with a private 128-Kbyte backside cache — Three levels of instructions: – User – Supervisor – Hypervisor — Independent boot and reset — Secure boot capability • 1-Mbyte shared CoreNet platform cache (CPC) • Hierarchical interconnect fabric P3041 QorIQ Communications Processor Product Brief, Rev. 0 6 Freescale Semiconductor P3041 Features • • • • • • • • • 3.3 — CoreNet fabric supporting coherent and non-coherent transactions with prioritization and bandwidth allocation amongst CoreNet end-points — Queue manager fabric supporting packet-level queue management and quality of service scheduling One 64-bit DDR3/3L SDRAM memory controller with ECC and chip-select interleaving support Data Path Acceleration Architecture (DPAA) incorporating acceleration for the following functions: — Frame management for packet parsing, classification, and distribution — Queue management for scheduling, packet sequencing, and congestion management — Hardware buffer management for buffer allocation and de-allocation — Encryption/decryption (SEC 4.2) — RegEx pattern matching (PME 2.1) — RapidIO™ messaging manager (RMan) Ethernet interfaces — One 10 Gbps Ethernet (XAUI) controller — Five 1 Gbps or four 2.5 Gbps Ethernet controllers High speed peripheral interfaces — Four PCI Express 2.0 controllers/ports running at up to 5 GHz — Two Serial RapidIO® controllers/ports (version 1.3 with features of 2.1) running at up to 5 GHz – RapidIO message manager (RMan) with Type 5–6 and Type 8–11 support — Dual SATA 2.0 interfaces Additional peripheral interfaces — Two USB 2.0 controllers with integrated PHY — SD/MMC controller (eSDHC) — Enhanced SPI controller — Four I2C controllers — Dual DUARTs — Dual SATA supporting 1.5 and 3.0 Gb/s operation 18 SerDes lanes to 5 GHz Enhanced local bus controller (eLBC) Multicore programmable interrupt controller (MPIC) Two 4-channel DMA engines P3041 Benefits The P3041’s e500mc cores can be combined as a fully-symmetric, multi-processing, system-on-a-chip, or they can be operated with varying degrees of independence to perform asymmetric multi-processing. Full processor independence, including the ability to independently boot and reset each e500mc core, is a P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 7 P3041 Features defining characteristic of the P3041. The ability of the cores to run different operating systems, or run OS-less, provides the user with significant flexibility in partitioning between control, datapath, and applications processing. It also simplifies consolidation of functions previously spread across multiple discrete processors onto a single device. 3.4 Data Path Acceleration Architecture (DPAA) Benefits While the four Power Architecture cores offer a major leap in available processor performance in many throughput-intensive, packet-processing networking applications, raw processing power is not enough to achieve multi-Gbps data rates. To address this, the P3041 uses Freescale’s Data Path Acceleration Architecture (DPAA) (see Section 3.11, “Data Path Acceleration Architecture (DPAA)”), which significantly reduces data plane instructions per packet, enabling more CPU cycles to work on value-added services rather than repetitive low-level tasks. Combined with specialized accelerators for cryptography and pattern matching, the P3041 allows the user’s software to perform complex packet processing at high data rates. 3.5 P3041 Critical Performance Parameters Table 1 lists key performance indicators that define a set of values used to measure P3041 operation. Table 1. P3041 Critical Performance Parameters Indicator Values(s) Top speed bin e500mc 1.5 GHz core frequency Maximum memory data 1.3 GHz (DDR3/3L)1 rates • 1.5-V for DDR3 • 1.35-V for DDR3L Local bus Operating junction temperature range Package • 3.3 V • 2.5 V • 1.8 V 0–105 C with the option for –40 to 105 C • 1295-pin FC-PBGA (flip-chip plastic ball grid array) • Pin-compatible with P4040, P4080, P5010, and P5020 Notes: 1 Conforms to JEDEC standard P3041 QorIQ Communications Processor Product Brief, Rev. 0 8 Freescale Semiconductor P3041 Features 3.6 e500mc Core and Cache Memory Complex The P3041 offers four high-performance, 32-bite500mc cores based on the Power Architecture® from Power ISA 2.06. Like previous e500 cores, each e500mc is a superscalar dual issue processor, supporting out-of-order execution and in-order completion. 3.6.1 e500mc Features Summary Key features of the e500mc include the following: • Up to 1.5 GHz core clock speed • 36 bit physical addressing • 64 TLB SuperPages • 512-entry, 4-Kbyte pages front-end • 128-Kbyte backside L2 cache supporting ECC single-bit error correction • 3 Integer units — Two simple — One complex (integer multiply and divide) • 64-byte cache line • L1 caches, running at same frequency as CPU — 32-Kbyte Instruction, 8 way — 32-Kbyte Data, 8 way — Both with data and tag parity protection • Supports Data Path Acceleration Architecture (DPAA) data and context “stashing” into frontside cache • User, Supervisor, and Hypervisor instruction level privileges • New processor facilities — Hardware support for efficient partitioning and virtualization — Double-precision floating-point unit – Complies with IEEE Std. 754™ – Binary-compatible with e300 and e600 – Supports 32 64-bit floating point registers for scalar single- and double-precision floating-point arithmetic. Decorated storage facility to provide additional atomic operations of up to two 64-bit quantities by a single access including a “fire and forget” APU for improved statistics support — Expanded interrupt model – Improved programmable interrupt controller (PIC) automatically ACKs interrupts – Implements message send and receive functions for interprocessor communication, including receive filtering — External PID load and store facility P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 9 P3041 Features – Provides system software with an efficient means to move data and perform cache operations between two disjoint address spaces – Eliminates the need to copy data from a source context into a kernel context, change to destination address space, then copy the data to the destination address space or alternatively to map the user space into the kernel address space 3.6.2 e500mc 128-Kbyte Private Backside Cache Each e500mc core features a 128-Kbyte private backside cache running at the same frequency of the CPU, which supports the following: • Write-back, pseudo LRU replacement algorithm • Tag parity and ECC data protection • 8-way, with arbitrary partitioning between instruction and data. For example, 3-ways instruction, 5-ways data, and so on • Supports direct stashing of Data Path Acceleration Architecture (DPAA) data into cache 3.6.3 CoreNet Platform Cache (CPC) The P3041 contains 1-Mbyte of shared CoreNet platform cache (CPC). The key features of the CPC include the following: • Configurable as write-back or write-through • • • • • 3.7 Pseudo LRU replacement algorithm ECC protection 64-byte coherency granule 1 cache line read 64 bytes per cycle at 750 MHz, 0.4 terabits/sec read bandwidth 32-way cache array configurable to any of several modes on a per-way basis. — Unified cache, I-only, D-only — I/O stash (configurable portion of each packet copied to CPC on write to main memory) – stashing of all transactions and sizes supported – explicit (CoreNet signalled) and implicit (address range based) stash allocation — Addressable SRAM (32-Kbyte granularity) CoreNet Fabric and Address Map The CoreNet fabric is Freescale’s next generation Front-side Interconnect Standard for multicore products, and provides the following: • A highly concurrent, fully cache coherent, multi-ported fabric • Point-to-point connectivity with flexible protocol architecture allows for pipelined interconnection between CPUs, platform caches, memory controllers, and I/O and accelerators at up to 750 MHz • The CoreNet fabric has been designed to overcome bottlenecks associated with shared bus architectures, particularly address issue and data bandwidth limitations. The P3041’s multiple, P3041 QorIQ Communications Processor Product Brief, Rev. 0 10 Freescale Semiconductor P3041 Features • parallel address paths allow for high address bandwidth, which is a key performance indicator for large coherent multicore processors Eliminates address retries, triggered by CPUs being unable to snoop within the narrow snooping window of a shared bus. This results in the P3041 having lower average memory latency The flexible P3041’s 36-bit, physical address map consists of local space and external address space. For the local address map, 32 local access windows (LAWs) define mapping within the local 36-bit (64-Gbyte) address space. Inbound and outbound translation windows can map the P3041 into a larger system address space such as the RapidIO or PCIe 64-bit address environment. This functionality is included in the address translation and mapping units (ATMUs). 3.8 Memory Complex The P3041 memory complex consists of one DDR controller for main memory, and the memory controllers associated with the Enhanced Local Bus Controller (eLBC). 3.8.1 DDR Memory Controller The P3041 DDR memory controllers have the following functionalities: • Supports DDR3/3L SDRAM. The P3041 also supports chip-select interleaving within a controller. • The P3041 can be configured to retain the currently active SDRAM page for pipelined burst accesses. Page mode support of up to 32 simultaneously open pages can dramatically reduce access latencies for page hits. Depending on the memory system design and timing parameters, page mode can save up to 10 memory clock cycles for subsequent burst accesses that hit in an active page. • Using ECC, the P3041 detects and corrects all single-bit errors and detects all double-bit errors and all errors within a nibble. • Upon detection of a loss of power signal from external logic, the DDR controllers can put compliant DDR SDRAM DIMMs into self-refresh mode, allowing systems to implement battery-backed main memory protection. • Supports initialization bypass feature for use by system designers to prevent re-initialization of main memory during system power-on after an abnormal shutdown • Supports active zeroization of system memory upon detection of a user-defined security violation 3.8.2 PreBoot Loader (PBL) and Nonvolatile Memory Interfaces The PreBoot Loader (PBL) is a new logic module that operates similarly to an I2C boot sequencer but on behalf of a larger number of interfaces. The PBL’s functions include the following: • Simplifies boot operations, replacing pin strapping resistors with configuration data loaded from nonvolatile memory • Uses the configuration data to initialize other system logic and to copy data from low speed memory interfaces (I2C, eLBC, SPI, and SD/MMC) into fully initialized DDR or the 1-Mbyte front-side cache. P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 11 P3041 Features • Releases CPU 0 from reset, allowing the boot processes to begin from fast system memory. The nonvolatile memory interfaces accessible by the PBL are as follows: • The eLBC may be accessed by software running on the CPUs following boot; it is not dedicated to the PBL. It also can be used for both volatile (SRAM) and nonvolatile memory as well as a control and low-performance data port for external memory-mapped devices. See Section 126.96.36.199, “Enhanced Local Bus Controllers (eLBC).” • The serial memory controllers may be accessed by software running on the CPUs following boot; they are not dedicated to the PBL. See Section 188.8.131.52, “Serial Memory Controllers.” 184.108.40.206 Enhanced Local Bus Controllers (eLBC) The enhanced local bus controller (eLBC) port connects to a variety of external memories, DSPs, and ASICs. Key features of the eLBC include the following: • Multiplexed 32-bit address and 32-bit data bus operating at up to 93 MHz • Eight chip selects for eight external slaves • Up to eight-beat burst transfers • 8-, 16-, or 32-bit port sizes controlled by an internal memory controller • Three protocol engines on a per-chip-select basis • Parity support • Default boot ROM chip select with configurable bus width (8-, 16-, or 32-bit) • Support for parallel NAND and NOR flash Three separate state machines share the same external pins and can be programmed separately to access different types of devices. Some examples are as follows: • The general-purpose chip-select machine (GPCM) controls accesses to asynchronous devices using a simple handshake protocol. • The user-programmable machine (UPM) can be programmed to interface to synchronous devices or custom ASIC interfaces. • The NAND flash control machine (FCM) further extends interface options. • Each chip select can be configured so that the associated chip interface is controlled by the GPCM, UPM, or FCM controller. All controllers can be enabled simultaneously. The eLBC internally arbitrates among the controllers, allowing each to read or write a limited amount of data before allowing another controller to use the bus. 220.127.116.11 Serial Memory Controllers In addition to the parallel NAND and NOR flash supported by means of the eLBC, the P3041 supports serial flash using SPI and SD/MMC card interfaces. The SD/MMC controller includes a DMA engine, allowing it to move data from serial flash to external or internal memory following straightforward initiation by software. P3041 QorIQ Communications Processor Product Brief, Rev. 0 12 Freescale Semiconductor P3041 Features 3.9 Universal Serial Bus (USB) 2.0 The two USB 2.0 controllers with integrated PHY provide point-to-point connectivity complying with the USB specification, Rev. 2.0. Each USB controller can be configured to operate as a stand-alone host, and USB #2 can be configured as a stand-alone device, or with both host and device functions operating simultaneously. Key features of the USB 2.0 controller include the following: • Complies with USB specification, Rev. 2.0 • Supports high-speed (480 Mbps), full-speed (12 Mbps), and low-speed (1.5 Mbps) operations • Supports the required signaling for the USB transceiver macrocell interface (UTMI).The PHY interfacing to the UTMI is an internal PHY. • Both controllers support operation as a stand-alone USB host controller — Support USB root hub with one downstream-facing port — Enhanced host controller interface (EHCI)-compatible • One controller supports operation as a stand-alone USB device — Supports one upstream-facing port — Supports six programmable USB endpoints The host and device functions are both configured to support all four USB transfer types: • Bulk • Control • Interrupt • Isochronous 3.10 High-Speed Peripheral Interface Complex All high-speed peripheral interfaces connect via 18 lanes of 5-GHz SerDes to a common crossbar switch referred to as OCeaN. Two high-speed I/O interface standards are supported: PCI Express (PCIe), and Serial RapidIO (sRIO). The P3041 integrates the following: • Four PCIe controllers • Two Serial RapidIO controllers • RapidIO message manager (RMan). 3.10.1 PCI Express Controllers Each of the four PCIe interfaces is compliant with the PCI Express Base Specification Revision 2.0. Key features of the PCIe interface include the following: • Power-on reset configuration options allow root complex or endpoint functionality. • The physical layer operates at 2.5 or 5 Gbaud data rate per lane. • Receive and transmit ports operate independently, with an aggregate theoretical bandwidth of 32 Gbps. P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 13 P3041 Features • • • • • x8, x4, x2, and x1 link widths supported Both 32- and 64-bit addressing and 256-byte maximum payload size Full 64-bit decode with 36-bit wide windows Inbound INTx transactions Message Signaled Interrupt (MSI) transactions 3.10.2 18.104.22.168 Serial RapidIO Interfaces Serial RapidIO Interface The Serial RapidIO interface is based on the RapidIO Interconnect Specification, Revision 1.3 with features from 2.1. RapidIO is a high-performance, point-to-point, low-pin-count, packet-switched system-level interconnect that can be used in a variety of applications as an open standard. The rich feature set includes high data bandwidth, low-latency capability, and support for high-performance I/O devices as well as message-passing and software-managed programming models. Receive and transmit ports operate independently, and with 2 x 4 Serial RapidIO controllers, the aggregate theoretical bandwidth is 32 Gbps. Key features of the Serial RapidIO interface unit include the following: • Support for RapidIO Interconnect Specification, Revision 1.3 (all transaction flows and priorities) • 1x, 2x, and 4x LP-serial link interfaces, with transmission rates of 2.5, 3.125, or 5.0 Gbaud (data rates of 2.0, 2.5, or 4.0 Gbps) per lane. • Auto-detection of 1x, 2x, or 4x mode operation during port initialization • 34-bit addressing and up to 256-byte data payload • Receiver-controlled flow control • RapidIO error injection • Internal LP-serial and application interface-level loopback modes 22.214.171.124 RapidIO Message Manager (RMan) The key features of the RapidIO message manager (RMan) include the following: • Manages two inbox/outbox mailboxes (queues) for data and one doorbell message structure • Can multi-cast a single-segment 256-byte message to up to 32 different destination DevIDs • Has four outbound segmentation units supporting RapidIO Type 5–6 and Type 8–11 3.10.3 Serial ATA (SATA) 2.0 Controllers The key features of each of the two SATA include the following: • Designed to comply with Serial ATA 2.6 Specification • Supports host SATA I per spec Rev 1.0a — OOB — Port multipliers P3041 QorIQ Communications Processor Product Brief, Rev. 0 14 Freescale Semiconductor P3041 Features • • • • • • • • 3.11 — ATAPI 6+ — Spread spectrum clocking on receive Support for SATA II extensions — Asynchronous notification — Hot plug including asynchronous signal recovery — Link power management — Native command queuing — Staggered spin-up and port multiplier support Support for SATA I and II data rates (1.5 and 3.0 Gbaud) Standard ATA master-only emulation Includes ATA shadow registers Implements SATA superset registers (SError, SControl, SStatus) Interrupt driven Power management support Error handling and diagnostic features — Far end/near end loopback — Failed CRC error reporting — Increased ALIGN insertion rates — Scrambling and CONT override Data Path Acceleration Architecture (DPAA) The DPAA provides the infrastructure to support simplified sharing of networking interfaces and accelerators by multiple CPU cores. These resources are abstracted into enqueue/dequeue operations by means of a common DPAA Queue Manager (QMan) driver. Beyond enabling multicore resource sharing, the DPAA significantly reduces software overheads associated with high-touch packet-forwarding operations. Examples of the types of packet-processing services this architecture is optimized to support are as follows: • Traditional routing and bridging • Firewall • VPN termination for both IPsec and SSL VPNs • Intrusion detection/prevention (IDS/IPS) • Network anti-virus (AV) The DPAA generally leaves software in control of protocol processing, while reducing CPU overheads through off-load functions, which fall into two, broad categories: • Section 3.11.1, “Packet Distribution and Queue/Congestion Management” • Section 3.11.2, “Accelerating Content Processing” P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 15 P3041 Features 3.11.1 Packet Distribution and Queue/Congestion Management Table 2 lists some packet distribution and queue/congestion management offload functions. Table 2. P3041 Offload Functions Function Type Definition Data buffer management Supports allocation and deallocation of buffers belonging to pools originally created by software with configurable depletion thresholds. Implemented in a module called the Buffer Manager (BMan). Queue management Supports queuing and quality-of-service scheduling of frames to CPUs, network interfaces and DPAA logic blocks, maintains packet ordering within flows. Implemented in a module called the Queue Manager (QMan). The QMan, besides providing flow-level queuing, is also responsible for congestion management functions such as RED/WRED, congestion notifications and tail discards. Packet distribution Supports in-line packet parsing and general classification to enable policing and QoS-based packet distribution to the CPUs for further processing of the packets. This function is implemented in the block called the Frame Manager (FMan). Policing 3.11.2 Supports in-line rate-limiting by means of two-rate, three-color marking (RFC 2698). Up to 256 policing profiles are supported. This function is also implemented in the FMan. Accelerating Content Processing Properly implemented acceleration logic can provide significant performance advantages over most optimized software with acceleration factors on the order of 10–100x. Accelerators in this category typically touch most of the bytes of a packet (not just headers). To avoid consuming CPU cycles in order to move data to the accelerators, these engines include well-pipelined DMAs. Table 3 lists some specific content-processing accelerators on the P3041. Table 3. P3041 Content-Processing Accelerators Interface Definition SEC 4.2 Crypto-acceleration for protocols such as IPsec, SSL, and 802.16 PME 2.1 Regex style pattern matching for unanchored searches, including cross-packet stateful patterns Note: Prior versions of the SEC and PME are integrated into multiple members of the PowerQUICC and QorIQ family. Both of these engines have been enhanced to work within the DPAA, and also upgraded in both features and performance. P3041 QorIQ Communications Processor Product Brief, Rev. 0 16 Freescale Semiconductor P3041 Features 3.11.3 DPAA Terms and Definitions Table 4. DPAA Terms and Definitions Term Definition Buffer Region of contiguous memory, allocated by software, managed by the DPAA BMan Frame B Set of buffers with common characteristics (mainly size, alignment, access control) B Frame queue FIFO of frames (FQ) Work queue FIFO of FQs (WQ) FQ = F F WQ = FQ FQ FQ FQ • • • = 7 3.11.4 B Set of eight WQs with hardware provided prioritized access Chan Pool channel B = •• • 0 Dedicated channel B Single buffer or list of buffers that hold data, for example, packet payload, header, and other control information F Channel B ... Buffer pool Graphic Representation Channel statically assigned to a particular end point, from which that end point can dequeue frames. End point may be a CPU, FMan, PME, or SEC. FQ Priority FQ — A channel statically assigned to a group of end points, from which any of the end points may dequeue frames. Major DPAA Components The Data Path Acceleration Architecture (DPAA) includes the following major components: • Section 126.96.36.199, “Frame Manager (FMan) • Section 188.8.131.52, “Queue Manager (QMan) • Section 184.108.40.206, “Buffer Manager (BMan) • Section 220.127.116.11, “RapidIO Message Manager (RMan) • Section 18.104.22.168, “Security Engine (SEC 4.2) P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 17 P3041 Features • Section 22.214.171.124, “Pattern Matching Engine (PME 2.1) Frame Manager QMan Parse and Classify DMA BMan BMan Buffer Buffer SEC 4.2 PME 2.1 RMan 10GE 1GE 1GE 1GE 1GE 1GE Figure 6. QorIQ Data Path Acceleration Architecture (DPAA) 126.96.36.199 Frame Manager (FMan) The Frame Manager (FMan) combines the Ethernet network interfaces with packet distribution logic to provide intelligent distribution and queuing decisions for incoming traffic at line rate (7.5 Mpps). This integration allows the FMan to perform configurable parsing and classification of the incoming frame with the purpose of selecting the appropriate input frame queue for expedited processing by a CPU or pool of CPUs. 188.8.131.52.1 FMan Network Interfaces The P3041 FMan integrates five datapath, tri-speed Ethernet controllers (dTSECs) and one 10-Gbit Ethernet controller. Note that the more basic parsing and filing capability found in prior PowerQUICC eTSECs is removed from the MACs themselves, and aggregated in the more flexible and robust parsing and classification logic described in Section 184.108.40.206.2, “FMan Parse Function.” The Ethernet controllers support the following: • Programmable CRC generation and checking • RMON statistics • Jumbo frames of up to 9.6 Kbytes They are designed to comply with IEEE Std 802.3®, IEEE 802.3u, IEEE 802.3x, IEEE 802.3z, IEEE 802.3ac, IEEE 802.3ab, and additionally the 1Gbps MACs support IEEE-1588 v2 (clock synchronization over Ethernet). The dTSECS are capable of full- and half-duplex Ethernet support (1000 Mbps supports only full duplex); the 10-Gbit MAC is a single-speed full duplex. It supports IEEE 802.3 full-duplex flow control (automatic PAUSE frame generation or software-programmed PAUSE frame generation and recognition). P3041 QorIQ Communications Processor Product Brief, Rev. 0 18 Freescale Semiconductor P3041 Features SerDes flexibility makes it possible to enable up to 14 Gbps full duplex of Ethernet traffic on the FMan, however, the FMan can support line rate parsing and classification on an aggregate of 12 Gbps. 220.127.116.11.2 FMan Parse Function The primary function of the packet parse logic is to identify the incoming frame for the purpose of determining the desired treatment to apply. This parse function can parse many standard protocols, including options and tunnels, and supports a generic configurable capability to allow proprietary or future protocols to be parsed. There are several types of parser headers, shown in Table 5. Table 5. Parser Header Types Header Type Self-describing Definition Announced by proprietary values of Ethertype, protocol identifier, next header, and other standard fields. They are self-describing in that the frame contains information that describes the presence of the proprietary header. Non-self-describing Does not contain any information that indicates the presence of the header. For example, a frame that always contains a proprietary header before the Ethernet header would be non-self-describing. Both self-describing and non-self-describing headers are supported by means of parsing rules in the FMan. Proprietary Can be defined as being self-describing or non-self-describing The underlying notion is that different frames may require different treatment, and only through detailed parsing of the frame can proper treatment be determined. Parse results can (optionally) be passed to software. 18.104.22.168.3 FMan Distribution and Policing After parsing is complete, there are two options for treatment (see Table 6). Table 6. Post-Parsing Treatment Options Treatment Hash Function Benefits • Hashes selected fields in the frame as part of a spreading mechanism Useful when spreading • The result is a specific frame queue identifier. traffic while obeying QoS • To support added control, this FQID can be indexed by values found in the frame, constraints is required such as TOS or p-bits, or any other desired field(s). Classification • Looks up certain fields in the frame to determine subsequent action to take, • Useful when hash look-up including policing distribution is insufficient • The FMan contains internal memory that holds small tables for this purpose. and a more detailed • The user configures the sets of lookups to perform, and the parse results dictate examination of the frame which one of those sets to use. is required • Lookups can be chained together such that a successful look-up can provide key • Can determine whether information for a subsequent look-up. After all the look-ups are complete, the final policing is required and classification result provides either a hash key to use for spreading, or a FQ ID the policing context to use directly. Key benefits of the FMan policing function are as follows: P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 19 P3041 Features • • • Because the FMan has up to 256 policing profiles, any frame queue or group of frame queues can be policed to either drop or mark packets if the flow exceeds a preconfigured rate. Policing and classification can be used in conjunction for mitigating Distributed Denial of Service Attack (DDOS). The policing is based on two-rate-three-color marking algorithm (RFC2698). The sustained and peak rates as well as the burst sizes are user-configurable. Hence, the policing function can rate-limit traffic to conform to the rate the flow is mapped to at flow set-up time. By prioritizing and policing traffic prior to software processing, CPU cycles can be focused on the important and urgent traffic ahead of other traffic. 22.214.171.124 Queue Manager (QMan) The Queue Manager (QMan) is the main component in the DPAA that allows for simplified sharing of network interfaces and hardware accelerators by multiple CPU cores. It also provides a simple and consistent message and data passing mechanism for dividing processing tasks amongst multiple CPU cores. The QMan features are as follows: • Common interface between software and all hardware — Controls the prioritized queuing of data between multiple processor cores, network interfaces, and hardware accelerators — Supports both dedicated and pool channels, allowing both push and pull models of multicore load spreading • Atomic access to common queues without software locking overhead • Mechanisms to guarantee order preservation with atomicity and order restoration following parallel processing on multiple CPUs • Two-level queuing hierarchy with one or more Channels per Endpoint, eight work queues per Channel, and numerous frame queues per work queue • Priority and work conserving fair scheduling between the work queues and the frame queues • Loss-less flow control for ingress network interfaces • Congestion avoidance (RED/WRED) and congestion management with tail discard and up to 256 congestion groups with each group composed of a user-configured number of frame queues. 126.96.36.199 Buffer Manager (BMan) The buffer manager (BMan) manages pools of buffers on behalf of software for both hardware (accelerators and network interfaces) and software use. The BMan features are as follows: • Common interface for software and hardware • Guarantees atomic access to shared buffer pools • Supports 32 buffer pools. Software and hardware buffer consumers can request both different size buffers and buffers in different memory partitions. • Supports depletion thresholds with congestion notifications • On-chip per pool buffer stockpile to minimize access to memory for buffer pool management • LIFO (last in first out) buffer allocation policy that optimizes cache usage and allocation P3041 QorIQ Communications Processor Product Brief, Rev. 0 20 Freescale Semiconductor P3041 Features 188.8.131.52 Security Engine (SEC 4.2) The SEC 4.2 is QorIQ’s fourth generation crypto-acceleration engine. In addition to off-loading cryptographic algorithms, the SEC 4.2 offers header and trailer processing for several established security protocols. The SEC 4.2 includes several Descriptor Controllers (DECOs), which are updated versions of the previous SEC crypto-channels. DECOs are responsible for header and trailer processing, and managing context and data flow into the CHAs assigned to it for the length of an operation. The DECOs can perform header and trailer processing, as well as single pass encryption/integrity checking for the following security protocols: • IPsec • SSL/TLS • SRTP • IEEE Std 802.1AE™ MACSec • IEEE 802.16e WiMax MAC layer • 3GPP RLC encryption/decryption In prior versions of the SEC, the individual algorithm accelerators were referred to as Execution Units (EUs). In the SEC 4.2, these are referred to as Crypto Hardware Accelerators (CHAs) to distinguish them from prior implementations. Specific CHAs available to the DECOs are listed below. • Advanced encryption standard unit (AESA) • ARC four execution unit (AFHA) • Cyclic redundancy check accelerator (CRCA) • Data encryption standard execution unit (DESA) • Kasumi execution unit (KFHA) • SNOW 3 G hardware accelerator (STHA) • Message digest execution unit (MDHA) • Public key execution unit (PKHA) • Random number generator (RNGB) Depending on the security protocol and specific algorithms, the SEC 4.2’s aggregate symmetric encryption/integrity performance is 5 Gbps, while asymmetric encryption (RSA public key) performance is ~5,000 1024b RSA operations per second. The SEC 4.2 is also part of the QorIQ Trust Architecture, which gives the P3041 the ability to perform secure boot, runtime code integrity protection, and session key protection. The Trust Architecture is described in Section 3.12, “Avoiding Resource Contentions Using the QorIQ Trust Architecture.” P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 21 P3041 Features Queue Manager Interface On-Chip System Interface Job Queue Controller RTIC Descriptor Controllers CHAs Figure 7. SEC 4.2 Block Diagram 184.108.40.206 Pattern Matching Engine (PME 2.1) The PME is a self-contained hardware module capable of autonomously scanning data from streams for patterns that match a specification in a database dedicated to it. The PME 2.1 is an updated version of the PME used in previous members of the PowerQUICC family. Specific updates include the following: • QMan interface supporting the DPAA Queue Interface Driver • 2x increase in the number of patterns supported (16 Kbytes to 32 Kbytes) • Increase in number of stateful rules supported (8 Kbytes to 16 Kbytes) • Raw scanning performance is ~ 5 Gbps. Patterns that can be recognized, or “matched,” by the PME are of two general forms: • Byte patterns are simple matches such as “abcd123” existing in both the data being scanned and in the pattern specification database. • Event patterns are a sequence of multiple byte patterns. In the PME, event patterns are defined by stateful rules. 220.127.116.11.1 PME Regular Expressions (Regex) The PME specifies patterns of bytes as regular expressions (regex). The P3041 (by means of an online or offline process) converts Regex patterns into the PME’s pattern specification database. Generally, there is a one-to-one mapping between a regex and a PME byte pattern. The PME’s use of regex pattern matching offers built-in case-insensitivity and wildcard support with no pattern explosion, while the PME’s NFA-style architecture offers fast pattern database compilation and fast incremental updates. Up to 32,000 regex patterns are supported, each up to 128 bytes long. The 32,000 regex patterns can be combined by means of stateful rules to detect a far larger set of event patterns. Comparative compilations against DFA style regex engines have shown that 300,000 DFA pattern equivalents can be achieved with ~8000 PME regexes with stateful rules. P3041 QorIQ Communications Processor Product Brief, Rev. 0 22 Freescale Semiconductor P3041 Features 18.104.22.168.2 PME Match Detection Within the PME, match detection proceeds in stages. The key element scanner performs initial byte pattern matching, with handoff to the data examination engine for elimination of false positives through more complex comparisons. As the name implies, the stateful rule engine receives confirmed basic matches from the earlier stages, and monitors a stream for addition for subsequent matches that define an event pattern. Access to Pattern Descriptions and State On-Chip System Interface DMA (Queue/ Buffer Manager Interfaces) Key Element Scanning Engine (KES) Data Examination Engine (DXE) Stateful Rule Engine (SRE) Hash Tables Results Figure 8. PME 2.1 Block Diagram 3.12 Avoiding Resource Contentions Using the QorIQ Trust Architecture Consolidation of discrete CPUs into a single, multicore SoC and potential repartitioning of legacy software on those cores introduces many opportunities for unintended resource contentions to arise, but the QorIQ Trust Architecture can reduce the risk of these issues. 3.12.1 QorIQ Trust Architecture Benefits A system may exhibit erratic behavior if the multiple CPUs do not effectively partition and share system resources. While it can be challenging to prevent unintended resource contention, stopping malicious software is much more difficult. Device consolidation combined with a trend toward embedded systems becoming more open (or more likely to run third-party or open-source software on at least one of the cores) creates opportunities for malicious code to enter a system. The P3041 offers a new level of hardware partitioning support, allowing system developers to ensure software running on any CPU only accesses the resources (memory, peripherals, etc.) that it is explicitly authorized to access. This may not seem like a challenge in an SMP environment, because the OS performs resource allocation for the applications running on it. However, it is a very difficult problem to overcome in AMP environments where there may be multiple instances of the same OS, or even different OSes running on the various CPU cores. Even OS protections in an SMP system may be insufficient in the presence of malicious software. P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 23 P3041 Features 3.12.2 e500mc MMU and Embedded Hypervisor The P3041’s first line of defense against unintended interactions amongst the multiple CPUs/OSes is each e500mc core’s MMU, which are configured to determine which addresses in the global address map the CPU is able to read or write. If a particular resource (such as a portion of memory or a peripheral device) is dedicated to a single CPU, that CPU’s MMU is configured to allow access to those addresses (on 4-Kbyte granularity); other CPU MMUs are not configured for access to the other CPU’s private memory range. When two CPUs need to share resources, both of their MMUs are configured to have access to the shared address range. This level of hardware support for partitioning is common today; however, it is not sufficient for many core systems running diverse software. When the functions of multiple discrete CPUs are consolidated onto a single multicore SoC, achieving strong partitioning shouldn’t require the developer to map functions onto cores that are the exclusive owners of specific platform resources. The alternative, a fully open system with no private resources, is also unacceptable. For this reason, the e500mc MMU also includes embedded Hypervisor extensions. Each e500mc MMU supports three levels of instructions: • User • Supervisor (OS) • Hypervisor: An embedded Hypervisor micro-kernel (provided by Freescale as source code) runs unobtrusively beneath the various OSes running on the CPUs, consuming CPU cycles only when an access attempt is made to an embedded Hypervisor-managed shared resource.The embedded Hypervisor determines whether the access should be allowed, and if so, proxies the access on behalf of the original requestor. If malicious or poorly tested software on any core attempts to overwrite important device configuration registers (including CPU MMUs), the embedded Hypervisor blocks the write. Other examples of embedded Hypervisor managed resources are high- and low-speed peripheral interfaces (PCIe, UART) if those resources are not dedicated to a single CPU/partition. 3.12.3 Peripheral Access Management Unit (PAMU) The P3041 includes a distributed function collectively referred to as the peripheral access management unit (PAMU), which provides address translation and access control for all bus masters in the system (PME, SEC, FMan, and so on). The PAMU access control can be one of the following: • Absolute—The FMan, PME, SEC, and other bus masters can never access memory range XYZ. • Conditional—Based on the Partition ID of the CPU that programmed the bus master Being MMU-based, the embedded Hypervisor is only able to stop unauthorized software access attempts. Internal components with bus mastering capability also need to be prevented from reading and writing to specific memory regions. These devices do not spontaneously generate access attempts, but, if programmed to do so by buggy or malicious software, any of them could overwrite sensitive configuration registers and crash the system. P3041 QorIQ Communications Processor Product Brief, Rev. 0 24 Freescale Semiconductor P3041 Features 3.12.4 Secure Boot and Sensitive Data Protection The e500mc MMUs and PAMU allow the P3041 to enforce a consistent set of memory access permissions on a per-partition basis. When combined with embedded Hypervisor for safe sharing of resources, the P3041 becomes highly resilient when poorly tested or malicious code is run. For system developers building high reliability/high security platforms, rigorous testing of code of known origin is the norm. 22.214.171.124 Secure Boot Option The system developer digitally signs the code to be executed by the CPU coming out of reset, and the P3041 ensures that only an unaltered version of that code runs on the platform. The P3041 offers both boot time and run time code authenticity checking and configurable consequences when the authenticity check fails. 126.96.36.199 Sensitive Data Protection Option The P3041 supports protected internal and external storage of developer-provisioned sensitive instructions and data. For example, a system developer may provision each system with a number of RSA private keys to be used in mutual authentication and key exchange. These values would initially be stored in external non-volatile memory, but following secure boot, these values can be decrypted into on-chip protected memory (portion of platform cache dedicated as SRAM). Session keys, which may number in the thousands to tens of thousands, are not good candidates for on-chip storage, so the P3041 offers session key encryption. Session keys are stored in main memory, and are decrypted (transparently to software and without impacting SEC throughput) as they are brought into the SEC 4.2 for decryption of session traffic. 3.13 Advanced Power Management The P3041’s advanced power management capabilities are based around fine-grained static clock control and software-controlled dynamic frequency management. 3.13.1 Saving Power by Managing Internal Clocks Dynamic voltage and frequency scaling (DVFS) are useful techniques for reducing typical/average power and maximizing battery life in laptop environments, but embedded applications must be designed for rapid response to bursts of traffic and max power under worst-case environmental conditions. While the P3041 does not implement DVFS in the PC sense, it does actively manage internal clocks to avoid wasting energy. Clock signals are disabled to idle components, reducing dynamic power. These blocks can return to full operating frequency on the clock cycle after work is dispatched to them. The P3041 also supports (under software control) dynamic changes to CPU operating frequencies and voltages. Each CPU sources its input clock from one of two independent PLLs inside the P3041. Each CPU can also source its input clock from an integer frequency divider from two of the three independent PLLs. CPUs can switch their source PLL, and their frequency divider glitchlessly and nearly instantaneously. This allows each core to operate at the minimum frequency required to perform its assigned function, saving power. P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 25 P3041 Features 3.13.2 Turning Off Unneeded Clocks Fine-grained static control allows developers to turn off the clocks to individual logic blocks within the SoC that the system has no need for. Based on a finite number of SerDes, it is expected that any given application will have some Ethernet MACs, PCIe, or Serial RapidIO controllers inactive. These blocks can be disabled by means of the DEVDIS register. Re-enabling clocks to a logic block requires an SoC reset, which makes this type of power management operation infrequent (effectively static). 3.13.3 Avoiding Full System Failure Due to Thermal Overload Changing PLL frequency dividers (/2, /4) can be used to achieve large and rapid reductions in dynamic power consumptions, and with the help of external temperature detection circuitry, can serve as a thermal overload protection scheme. If the junction temperature or system ambient temperature of the P3041 achieves some critical level, external temperature detection circuitry can drive a high-priority interrupt into the P3041, causing it to reduce selected CPU frequencies by half or more. This allows the system to continue to function in a degraded mode, rather than failing entirely. This technique is much simpler than turning off selected CPUs, which can involve complex task migration in an AMP system. When system temperatures have been restored to safe ranges, all CPUs can be returned to normal frequency within a few clock cycles. When less drastic frequency changes are desired, software can switch the CPU to a slower speed PLL, such as 1 G Hz versus 1.5 GHz. Many cores could be switched to a slower PLL during periods of light traffic, with the ability to immediately return those cores to the full rate PLL should traffic suddenly increase. The more traditional Power Architecture single-core power management modes (such as Core Doze, Core Nap, and Core Sleep) are also available in the e500mc. 3.14 Debug Support The reduced number of external buses enabled by the move to multicore SoCs greatly simplifies board level lay-out and eliminates many concerns over signal integrity. While the board designer may embrace multicore CPUs, software engineers have real concerns over the potential to lose debug visibility. Despite the problems external buses can cause for the hardware engineer, they provide software developers with the ultimate confirmation that the proper instructions and data are passing between processing elements. Processing on a multicore SoC with shared caches and peripherals also leads to greater concurrency and an increased potential for unintended CPU interactions. To ensure that software developers have the same or better visibility into the P3041 as they would with multiple discrete devices, the P3041 implements the debug architecture shown in Figure 9. P3041 QorIQ Communications Processor Product Brief, Rev. 0 26 Freescale Semiconductor P3041 Features SoC Peripherals Events Events CoreNet Trace Analyzer Scan G n l e e500mc e500mc TLM TAP/SAP Transactions Events Performance Monitor TAP Nexus Event Processing Unit PCIe/sRIO Transactions Performance Monitor CoreNet Fabric Watchpoints Trace Trace Trace Trace Nexus Port Controller Trace Buffers Memory Controller Trace Trace Aurora SerDes to Trace Probe Figure 9. P3041 Debug Architecture Block Diagram Debug features include the following: • Debug and performance monitoring registers in both the e500mc and platform — Accessible by target resident debug software and non-resident debug tools — Capable of generating debug interrupts and trace event messages • Run control with enhancements — Classic — Cross-core and SoC watchpoint triggering • High speed trace port (Aurora-based) — Supports Nexus class 2 instruction trace including timestamps – Process ID trace, watchpoint trace — Supports “light” subset of Nexus class 3 data trace – Enabled by cores, by event triggers, by Instruction Address Compare/Data Address Compare events — Data Acquisition Trace – Compatible with Nexus class 3 – Instrumented code can generate data trace messages for values of interest – Performed by writing values to control registers within each e500mc core — Watchpoint Trace – Can generate cross-core correlated breakpoints – Breakpoint on any core can halt execution of selected additional cores with minimal skid • CoreNet transaction analyzer — Provides visibility to transactions across CoreNet (CoreNet fabric is otherwise transparent to software) P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 27 Developer Environment — Generates trace messages to Nexus port controller (NPC) — Supports filtering of accesses of interest – Data Address Compare (4) – Data Value Compare (2) – Transaction Attribute Compare (2) 4 Developer Environment Software developers creating solutions with the Power Architecture technology have long benefited from a vibrant support ecosystem, including high quality tools, OSes, and network protocol stacks. Freescale is working with our ecosystem partners to ensure that this remains the case for multicore, Power Architecture-based products, including the P3041. The various levels of the developer environment are shown in Figure 10, with the more broadly used tools and boards at the base of the pyramid, and increasingly application-specific enablement items at the top. Each level is described further in the following subsections: • Section 4.1, “Base of the Pyramid: Broadly-Used Tools and Boards” • Section 4.2, “First Level of the Pyramid: Debug and Performance Analysis” • Section 4.3, “Second Level of the Pyramid: Simulation, Hypervisor, and DPAA Reference “Stacklets” • Section 4.4, “Top Level of the Pyramid: Application-Specific Enablement” 3rd Party Stacks Application-specific enablement items Hybrid Simulator Hypervisor Micro-Kernel DPAA Reference ‘Stacklets’ Advanced Debug Profiling and Performance Analysis Hardware Platforms Compilers, Debuggers, Bootloaders, LSPs, Drivers SMP/AMP Capable OS’s Broadly-used tools and boards Figure 10. Levels of Developer Environment P3041 QorIQ Communications Processor Product Brief, Rev. 0 28 Freescale Semiconductor Developer Environment 4.1 4.1.1 Base of the Pyramid: Broadly-Used Tools and Boards Hardware Platforms This category includes both development systems and the reference designs. Development systems are available from both Freescale and our partners, with some partner systems being offered with form factors and BOMs to support use as reference designs. Freescale development systems are supported by the open source GNU tool set including compilers, linkers, and debuggers. 4.1.2 Compilers, Debuggers, Bootloaders, LSPs, Drivers In active partnership with the open source community and Linux distribution and support suppliers, these tools will be updated to fully and efficiently support the P3041. 4.1.3 SMP/AMP Capable OS’s Open source tools will be part of an overall P3041 development board Linux support package, which will include AMP and SMP versions of the Linux OS, and device drivers for the accelerators and networking and peripheral interfaces featured in the P3041. AMP Linux support will include the ability to boot multiple instances of Linux on different cores. Power Architecture ecosystem partners are committed to providing board support packages for the P3041. 4.2 4.2.1 First Level of the Pyramid: Debug and Performance Analysis Advanced Debug Advanced debug supports real-time trace analysis. It allows the developer to perform initial system bring-up and development, and is required to deal with the special challenges of software debugging and performance analysis in multicore systems. 4.2.2 Profiling and Performance Analysis Freescale will bring tools support for profiling and performance analysis (such as enhanced statistics gathering) to the market both by means of our CodeWarrior line of tools and in partnership with industry standard tools suppliers. 4.3 4.3.1 Second Level of the Pyramid: Simulation, Hypervisor, and DPAA Reference “Stacklets” Hybrid Simulator In conjunction with Virtutech, Freescale will provide a hybrid simulator that combines both functional and performance measurement models of the P3041. The hybrid simulator allows the user to switch between “fast functional mode” and “detailed performance mode” with capabilities that include the following: P3041 QorIQ Communications Processor Product Brief, Rev. 0 Freescale Semiconductor 29 Document Revision History • • • • • • Global visibility Determinism Bug reproducibility Reverse execution Special abilities to detect race conditions Ability to detect race conditions 4.3.2 Hypervisor Micro-Kernel The P3041’s e500mc cores offer a new embedded Hypervisor capability to address the need for a single operating system performing coordination and access control functions, managing shared resources in an efficient manner. The embedded Hypervisor provides the software layer needed to manage the operating systems and supervisor-level applications as they access shared resources. Recognizing that each developer’s system design may call for a different partitioning of resources, and involve different combinations of OSes and RTOSes, Freescale and our ecosystem partners will provide reference implementations of the embedded Hypervisor’s peripheral virtualization and access control which the developer can modify to match unique system requirements. 4.3.3 DPAA Reference “Stacklets” It is expected that some CPUs will be dedicated as datapath processors, working closely with the DPAA. Freescale will provide reference protocol “stacklets,” optimizing performance critical regions of protocol processing and their interaction with the DPAA hardware. 4.4 Top Level of the Pyramid: Application-Specific Enablement This category includes 3rd-party stacks optimized for DPAA, RegEx, AV TCP, IPv4/6, IPsec/SSL. Many of the expected applications for the P3041 involve network protocol processing. Partitioning between control CPUs and datapath CPUs, and developing the protocol processing firmware which runs on the datapath CPUs is an area for significant value added services for Freescale partners at the top level of the enablement pyramid. OEMs wishing to engage with these partners can realize significant “time-to-performance” advantages. 5 Document Revision History Table 7 provides a revision history for this product brief. Table 7. Revision History Rev. Number Date 0 11/2011 Substantive Change(s) Initial public release P3041 QorIQ Communications Processor Product Brief, Rev. 0 30 Freescale Semiconductor How to Reach Us: Home Page: www.freescale.com Web Support: http://www.freescale.com/support USA/Europe or Locations Not Listed: Freescale Semiconductor Technical Information Center, EL516 2100 East Elliot Road Tempe, Arizona 85284 1-800-521-6274 or +1-480-768-2130 www.freescale.com/support Europe, Middle East, and Africa: Freescale Halbleiter Deutschland GmbH Technical Information Center Schatzbogen 7 81829 Muenchen, Germany +44 1296 380 456 (English) +46 8 52200080 (English) +49 89 92103 559 (German) +33 1 69 35 48 48 (French) www.freescale.com/support Japan: Freescale Semiconductor Japan Ltd. Headquarters ARCO Tower 15F 1-8-1, Shimo-Meguro, Meguro-ku, Tokyo 153-0064 Japan 0120 191014 or +81 3 5437 9125 [email protected] Asia/Pacific: Freescale Semiconductor China Ltd. Exchange Building 23F No. 118 Jianguo Road Chaoyang District Beijing 100022 China +86 10 5879 8000 [email protected] For Literature Requests Only: Freescale Semiconductor Literature Distribution Center 1-800-441-2447 or +303-675-2140 Fax: +303-675-2150 [email protected] Document Number: P3041PB Rev. 0 11/2011 Information in this document is provided solely to enable system and software implementers to use Freescale Semiconductor products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. Freescale Semiconductor reserves the right to make changes without further notice to any products herein. Freescale Semiconductor makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale Semiconductor assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters that may be provided in Freescale Semiconductor data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including “Typicals”, must be validated for each customer application by customer’s technical experts. Freescale Semiconductor does not convey any license under its patent rights nor the rights of others. Freescale Semiconductor products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Freescale Semiconductor product could create a situation where personal injury or death may occur. Should Buyer purchase or use Freescale Semiconductor products for any such unintended or unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Freescale Semiconductor was negligent regarding the design or manufacture of the part. Freescale, the Freescale logo, CodeWarrior, and PowerQUICC are trademarks of Freescale Semiconductor, Inc. Reg. U.S. Pat. & Tm. Off. CoreNet is a trademark of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. The Power Architecture and Power.org word marks and the Power and Power.org logos and related marks are trademarks and service marks licensed by Power.org. © 2011 Freescale Semiconductor, Inc.
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project