iMX6 Quad Plus and i.MX6DP Qseven System on Modules - NXP i.MX6QP
iMX6 Quad Plus and iMX6 Dual Plus System on Module by iWave Systems really are with high performance. iWave Systems launched two more i.MX6 Qseven SOMs based on i.MX6 QuadPlus (iMX6QP) and i.MX6 DualPlus (iMX6DP) CPUs, broadening the high-end of its existing i.MX6 SOM portfolio. The new i.MX6QP and i.MX6DP CPUs from NXP are high performance applications processors with multiple ARM Cortex-A9 cores and has been productized to meet higher graphics performance requirements.
The goal of i.MX6 QP/DP CPU is to significantly increase the overall memory bandwidth of GPU to provide better visual performance and higher frame rate for customer use cases. The 2D and 3D graphic engine performance of these new i.MX6 QP and DP devices are improved more than 50% compared to its predecessor’s iMX6 Quad Plus and Dual core devices. The i.MX 6 QP/DP bus architecture contains significant changes to achieve higher bandwidth and DRAM utilization.
The performance improvement will be achieved through the following changes,
- Optimized the internal bus configurations for GPU access to DRAM.
- Increased bus width from 64 to 128-bit for GPU2D and GPU3D.
- Added PRE (Prefetch and Resolve Engine) to support unresolved frame buffer for display.
Added two OCRAM controllers with 128KB internal RAM attached to each controller.
In i.MX6QP/DP, a new function named IPU Prefetch and Resolve is introduced on top of the current IPU-based display subsystem. Prefetch and Resolve Engine (PRE) is used to read the display frame buffer ahead of time and store it into double buffer in OCRAM. When IPU needs the pixels for display, it can fetch directly from the double buffer. This helps to avoid a potential IPU display under-run in high loading applications, making the system more robust. The PRE will resolve unresolved tiled buffer format from GC2000 to linear buffer format and store into OCRAM, so that the IPU can display the resolved buffer directly. This helps to avoid an additional resolve operation in the GC2000, saving DRAM bandwidth.
iMX6 Quad Plus / iMX6 Dual Plus Prefetch and Resolve Data Flow
(Image courtesy of NXP semiconductors)
There is a Prefetch and Resolve Gasket (PRG) block in front of the IPU. The purpose of this block is to perform a handshake between PRE and IPU for flow control. The double buffer inside OCRAM is only 4/8/16 lines, once the PRE fills one buffer, it will generate a ready signal to the PRG, and the PRG will subsequently allow the IPU to read this buffer. After the IPU has finished reading one buffer, the PRG will generate a done signal to the PRE module so it can recycle this buffer and start prefetching pixels into it.
iMX6 Quad Plus and Dual Plus Render Targets
Graphics engines of i.MX6QP/DP are updated to optimize the data flow between the graphics display engine to reduce memory accesses. The GC2000 GPU uses its own tiled buffer format when it renders a target. In i.MX 6 Dual/Quad, some of the render targets cannot be used by the graphics engines as the source buffer, it has to be resolved by GC2000 into linear buffer first. This resolve operation causes extra traffic to the DRAM and reduces the overall graphics performance. In iMX6 Quad Plus /DP, this is taken care by updating GC320 to support reading the GC2000 render targets to avoid resolve operations.
In several customer use case applications, there will be multiple overlays on the final display. The GC320 in i.MX 6 Dual/Quad only supports composition on two layers, so there will be multiple composition operations required to support multiple overlays. This causes a lot of extra read/write accesses to the DRAM. In order to reduce the traffic, the GC320 is updated to support composition on 8 layers. Hence i.MX 6 QuadPlus and DualPlus provide additional graphics performance for optimal visualization.
The iMX6 Quad Plus/DualPlus Qseven SOMs from iWave targeted for wide range of applications, including Instrument cluster (OpenGL ES), Infotainment (HTML5, HMI), Enhanced multi-display support on various verticals and is an ideal platform for consumer, automotive and industrial multimedia applications.