Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Processors/DSPs

Improving multi-core system power/performance trade-offs

Posted: 03 Jul 2012     Print Version  Bookmark and Share

Keywords:embedded software design  symmetrical multi-processing  parallelism 

Children have one level higher with respect to the parent. Each child responds to a join call from the parent to indicate its completion. The proposed RTOS fork-join services involve the following steps in each system call:

Thread fork

1. It is endured that the child thread to be forked has a priority one level higher than the parent thread.

2. Preemption of the parent thread is disabled until it finishes forking all children threads. (As soon as the parent enables preemption using an RTOS system call, all the cores will be occupied by the child threads, thus having maximum utilisation).

3. The RTOS requests the hardware to set an architecture specific notification event visible to all the cores in the system.

Thread join

1. When the parent is able to call the join API, this means that one of the child threads has ended its job.

2. The parent can then check the status of the thread by a simple read in its thread control block, make sure it shows an end status, and then return successfully.

On the other hand, if the parent checks the thread status and a state other than "end" is indicated, it means there are more parallel resources than the number of children left.

Otherwise, the parent would not have been able to run again and call join – so it can take a scheduler trip giving other tasks a chance to run. In case parent and children were the only load in the system, put the core on which the join call was made into a low power mode safely—in the knowledge that for now this core has nothing more to do.

Note that while dynamic voltage and frequency scaling (FVFS) is difficult to achieve on embedded multi-core processors, almost all vendors support low power CPU modes, increasing the portability of the proposed solution.

Figure 2: Sequence diagram showing proposed scheme implementing fork-join.

Four-core use-case
Let's consider a parallel multi-threaded application use-case consisting of eight child threads on a four-core system. Figure 2 shows a sequence diagram of RTOS fork-join services supporting this use-case where each column represents a single core. On core zero (C0) parent thread forks (Thread_Fork) eight children threads one by one without leaving control of the processor.

 First Page Previous Page 1 • 2 • 3 • 4 Next Page Last Page

Comment on "Improving multi-core system power/pe..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top