Post Reply 
New Version: 2018.07.06 2.0.0.13865
07-25-2018, 05:40 AM
Post: #37
RE: New Version: 2018.07.06 2.0.0.13865
Hello

"The CPU supports frequency and voltage scaling, so it would only need to run at top speed during a processor-intensive activity. There are thermal considerations too - if it's running at a higher speed, it's going to get hotter"

Speed scaling is "hard"...
Windows type OS do it by monitoring workload accross multiple CPU and threads. Mostly, they look at the amount of time spent doing nothing (Idle)...

However, a calculator is different (I implemented frequency scaling in the 20b series among others)...

It is different because it is either doing nothing, or doing something.

The problem is in knowing when the 'something' needs a speed boost.
Handling the '+' key? Easy? no boost? Unless the end result is the display of a very large list/matrix that will require a lot of computation from the 2D display..

When doing things like this, you also want to have the scaling done, as much as possible, at the OS level, so that you do not have to put scaling calls everywhere in the software...

On the 20B, it worked like so:
- CPU in low speed, Idle mode.
- User presses key, CPU goes to medium speed
- if key handling is longer than 1/10th of a second, CPU goes to high speed (as it was obviously a long operation)
- if the key handling is longer than 2s (number might be incorrect), CPU gets throttled down as high speed CPU draws too much power on the battery. Battery is OK with a "peek" power, but only for a short period of time.
- handling completes and we return to low speed, Idle mode.

There is also some "black" magic involved in selecting the CPU speed. You want to pick speeds that have correspond to inflextions in the Power/Watt curve (which is non linear).

Also, pay attention to memory wait state. On the 20b, going from 20 to 21Mhz meant that the flash had to change from 0 to 1 wait state. The net result was a slow down of the system!

Some CPU also take "time" to switch from one frequency to the next. Time during which you need to stop everything. On some CPU, it can be a couple of ms!
Some CPU have all the periferials driven out of the same clock. So, changing the CPU speed means reconfiguration of ALL periferials. Meaning that they have to be shut down and restarted! This can also be complicated!

Cyrille

Although I work for the HP calculator group, the views and opinions I post here are my own. I do not speak for HP.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: New Version: 2018.07.06 2.0.0.13865 - cyrille de brébisson - 07-25-2018 05:40 AM



User(s) browsing this thread: 1 Guest(s)