Hey Dude, Where is my Perf per Watt?
https://www.google.co.in/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwjt3eW8w6TMAhUWj44KHXhfCRAQjB0IBg&url=https%3A%2F%2Filite.wordpress.com%2F2015%2F04%2F24%2F10-step-guide-to-add-question-bank-in-online-courses-using-articulate-storyline%2F&bvm=bv.119745492,d.dGo&psig=AFQjCNFg_72WEyLyiHC_scWJR1U54dZKoA&ust=1461492851848120

Hey Dude, Where is my Perf per Watt?

Target Audience: SW Developers/SystemSw Hackers/ Embedded system product owners/SoC vendors.

Every embedded product vendor wants to achieve best performance without consuming much power from its product. Balancing perf and power is most difficult task from a system engineering point. Perf and Power are orthogonal properties and the device vendors/ embedded product companies stand long in market which learnt, how to balance them, how to extract every drop of juice from SoC. An embedded product is blend of hw/sw component. Optimizing all these components and extracting best performance without burning much wattage can be achieved by following few fundamental principals -

  • Latency - Lower is better
  • Component capacity - Can component give max as per its specification
  • Bandwidth - Overall bandwith/Component bandwidth
  • Burn efficient watt to achive best user exprience
  • Balance CPU freq and Memory Bandwidth and memory controller freq

Some  of the common Multimedia/Audio perf bottlenecks/problem are solved by System Sw components described later. 

 

  1. Hey, I am not getting required frame rate(FPS)? Where to improve in system software though my application and multimedia framework is optimized?
  2. I hear Audio glitches though my Audio pipeline/codec is perfect. How to start debugging in system software?
  3. My battery operated devicie drains quickly though using 10000 MAH battery :)?
  4. How to make my device alive longer without charge?

Hw circuitry  engineer/chip engineer can give best of the class perf/watt hw components, however utilizing optimally is the role of system sw to give best performance with consuming least power.

System Sw plays a vital role in solving these problems by balancing perf and power. Below are the system software components can be used/optimized to achieve best perf per watt.

  1. Which task scheduler/scheduler class                                                                                a. Energy Aware scheduling/Deadline scheduling/RT scheduling                      b. PELT                                                                                                                             c. Scheduler driven DVFS                                                                                            d. Scheduler driven power management
  2. CPU hotplug 
  3. CPU freq and DVFS - Dynamic voltage freq scaling
  4. Clocks/plls selection
  5. Run time power management
  6. Clock gating
  7. Power gating
  8. CPU idle.
  9. Memory controller dynamic clock scaling
  10. Peripheral clock scaling
  11. Perf profile
  12. Power profile
  13. pmqos

Though all of these System Sw components are available in Linux kernel and well tested on ARM, any existing OS can leverage above components to achieve best perf/watt.

Pankaj Malviya

Microcode Programmer

8 年

A tight control on overall software starting from compiler toolchain optimized for the target processor to applications is the only way to ensure performance at lower power consumption. Unfortunately this model do not scale up very well given that new architectures outmarket older ones at such a pace that organizations don't find it profitable to invest in complete software stack. Perhaps this limitation opens up an opportunity to innovate new ways to have tighter control on software stack without having need for huge investment.

回复

要查看或添加评论,请登录

puneet saxena的更多文章