IPS on Multicore
Technology Preview
Overview
When IPS is configured for multitasking and is ported to a multicore processor, IPS is able to run more efficiently and more quickly, without sacrificing the reliability associated with IPS running in a traditional single-core environment.
With the introduction of multicore processors into the computing industry, PC performance and efficiency increased, while systems costs remained relatively low. Additionally, multicore processing has alleviated power consumption and high thermal yields associated with ever-increasing single processor frequency.
As the performance and resolution of printers and MFPs increase, many manufacturers will adopt a multicore strategy. Similar to benefits of multicore in the computing industry, the benefits of a well-designed embedded multicore design will enable printer and MFP manufacturers to increase the performance and capabilities of their devices without significantly impacting device cost.
By developing a robust, safe, multithreaded environment, Zoran is making IPS multicore-ready. Printer and MFP manufacturers developing platforms based on a multiple CPU core architectures can be assured that IPS is configured to run correctly with improved throughput in such environments.
Multicore Support
Multicore Support
Zoran has been working to bring a high-performance multicore version of our IPS PDL interpreter to printer and MFP manufacturers. The process of adding multicore support began by ensuring that the IPS code base is able to run different tasks in parallel by making IPS code “thread-safe.” Deadlocks due to parallel processes simultaneously waiting for the other process to finish, crashes due to parallel processes accessing the same memory cache, and read / write errors due to race conditions have been addressed in IPS.
Zoran then began work to ensure the interpreting and rendering sub-processes of IPS could be launched on two distinct threads running on two distinct processing cores. The first core interprets the PDL data and the second core renders the interpreted data into printable output. By simply splitting the interpreting and the rendering tasks across two cores, Zoran has been able to increase the average processing speed by about 40% over single-core, single-thread processing speed.
With IPS running on two different cores, in nearly all but the most basic of print jobs, the interpreting process is often idle, while the rendering process is active during nearly 100% of the total process. IPS then offloads some of that rendering process to the often-idle interpreting core. This “concurrent rendering” scenario sends multiple rendering threads to either core, depending on which is available for processing. In this situation, Zoran has been able to increase the average processing speed by 60% or more over single-core, single-thread processing speed.
Sample Performance Comparison using IPS on Multicore

Dual Core Support
The following cases represent various configurations of IPS in both single-and multitask configurations, on single and dual cores.
Case 1
Single-task Processing on a Single Core
- A single thread running on a single core processes interpreting and rendering operations.
- Processing can block (for example, waiting on I/O)

Case 2
Multitask Processing on a Single Core
- Multiple processes running on a single core, each processing interpreting and rendering operations.
- Renderer can work when interpreter is blocked.
- Minimal performance benefit due to dual core architecture.

Case 3
Standard Multitask Processing on Dual Cores
- Two threads running on two cores. One thread, running on Core 1, processes interpreting operations. The second thread, running on Core 2, processes rendering operations.
- Because rendering process typically outweighs interpreting process, Core 1 is often idle.
- Greater performance benefit due to dual core architecture.

Case 4
Concurrent Rendering on Dual Cores
- Several threads running on two cores. One thread, running on core 1, processes interpreting operations. The other threads, running on either Core 1 or Core 2, process rendering operations.
- Because rendering threads can be passed to Core 1, neither core has significant idle time.
- IPS scheduler coordinates priorities between interpreting and rendering on Core 1, maximizing the use of both Core 1 and Core 2.
- Large performance benefit due to dual core architecture.


Print
RSS INFO



