IP Library Granted Patent US 10,176,009
Granted Patent B1
US 10,176,009 · App. 15/284,439 · Granted Jan 8, 2019

System and methods for optimizing energy efficiency in programmable devices

Inventor: Paul G. Flikkema (Flagstaff, AZ)
Assignee: Arizona Board of Regents acting for and on behalf of Northern Arizona University
G06F9/45558G06F9/45504G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,176,009
App. No.
15/284,439
Granted
Jan 8, 2019
Kind
B1
Abstract

A system for optimizing energy efficiency of an embedded system. A hardware abstraction layer (HAL) is coupled to hardware of an embedded system. An energy hardware abstraction layer (eHAL) couples to the hardware and to the HAL. A hypervisor couples to the HAL and to the eHAL. One or more applications couple to the hypervisor, the HAL and the eHAL. The eHAL measures energy use of the embedded system, constructs a model of energy use of the embedded system and, using the model, determines how to one of reduce and minimize energy use of the embedded system. The hypervisor is configured to alter one or more hardware parameters to one of reduce and minimize energy use of the embedded system as the embedded system performs one or more tasks. In implementations a real time operating system (RTOS) is coupled to the one or more applications and to the hypervisor.

Claims (53)

1. A system for optimizing energy efficiency of an embedded system, comprising:

a hardware abstraction layer (HAL) coupled to hardware of the embedded system, the HAL configured to arrange control and direct the operation of one or more components of hardware of the embedded system using a processor comprised in the embedded system;

an energy hardware abstraction layer (eHAL) coupled to the hardware of the embedded system and to the HAL;

a hypervisor coupled to the HAL and to the eHAL; and

one or more applications, the one or more applications coupled to the hypervisor, the HAL and the eHAL, the one or more applications configured to use the processor to carry out one or more desired functions of the hardware of the embedded system;

wherein one of the eHAL and the hypervisor is configured to measure electrical energy use of the embedded system, generate a model of electrical energy use of the embedded system and, using the model, determine how to one of reduce or minimize electrical energy use of the embedded system;

wherein the hypervisor is configured to alter one or more hardware parameters to one of reduce or minimize electrical energy use of the embedded system as the embedded system performs the one or more desired functions of the hardware in response to instructions from the processor executing the one or more applications; and

wherein the HAL does not comprise an operating system (OS); and

wherein the system for optimizing energy efficiency does not comprise an operating system.

2. The system of claim 1 , further comprising a real time operating system (RTOS) coupled only to the one or more applications and to the hypervisor.

3. The system of claim 2 , wherein the eHAL comprises a software library that is available to the RTOS.

4. The system of claim 1 , wherein the eHAL comprises a software library that is available to the one or more applications.

5. A method of optimizing energy efficiency for an embedded system, comprising:

using an energy hardware abstraction layer (eHAL) of an embedded system to measure power consumption of the embedded system during execution of the embedded system's tasks, the embedded system comprising: hardware, a hardware abstraction layer (HAL) coupled to the hardware, the eHAL coupled to the hardware and to the HAL, a hypervisor coupled to the HAL and to the eHAL, and at least one application coupled to the hypervisor and to the HAL and the eHAL;

calculating, using one of the eHAL or the hypervisor, from the measured power consumption, electrical energy use of the embedded system;

generating, using a processor coupled to the embedded system and using one of the eHAL or the hypervisor, a model of electrical energy use of the embedded system, the model relating electrical energy use of the embedded system for tasks performed by the embedded system to values of hardware parameters of the embedded system; and

storing the model in the eHAL for use by the hypervisor;

wherein the HAL does not comprise an operating system (OS).

6. The method of claim 5 , further comprising providing a real time operating system (RTOS) coupled only to the at least one application and to the hypervisor.

7. A method of optimizing energy efficiency for an embedded system, comprising:

using an energy hardware abstraction layer (eHAL) of an embedded system to measure power consumption of the embedded system during execution of the embedded system's tasks, the embedded system comprising: hardware, a hardware abstraction layer (HAL) coupled to the hardware, the eHAL coupled to the hardware and to the HAL, a hypervisor coupled to the HAL and to the eHAL, and at least one application coupled to the hypervisor and to the HAL and the eHAL;

calculating, using one of the eHAL or the hypervisor, from the measured power consumption, electrical energy use of the embedded system;

generating, using a processor coupled to the embedded system and using one of the eHAL or the hypervisor, a model of electrical energy use of the embedded system, the model relating electrical energy use of the embedded system for tasks performed by the embedded system to values of hardware parameters of the embedded system;

storing the model in the eHAL for use by the hypervisor; and

modifying, using the processor coupled to the embedded system and using one of the eHAL or the hypervisor, the model of electrical energy use of the embedded system in response to determining a difference between a predicted electrical energy use based upon the model and a calculated electrical energy use of the embedded system.

8. A method of real time energy efficiency optimization for an embedded system, comprising:

using an energy hardware abstraction layer (eHAL) of an embedded system to measure power consumption of the embedded system during execution of the embedded system's tasks, the embedded system comprising: hardware, a hardware abstraction layer (HAL) coupled to the hardware, the eHAL coupled to the hardware and to the HAL, a hypervisor coupled to the HAL and to the eHAL, a real time operating system (RTOS) coupled only to the hypervisor and at least one application, the at least one application coupled to the hypervisor and to the RTOS, the HAL and the eHAL;

calculating, using one of the eHAL, the hypervisor or both the eHAL and the hypervisor, from the measured power consumption, electrical energy use of the embedded system;

generating, using a processor coupled to the embedded system and using one of the eHAL or the hypervisor, a model of electrical energy use of the embedded system, the model relating electrical energy use of the embedded system for tasks performed by the embedded system to values of hardware parameters of the embedded system;

storing the model in the eHAL for use by the hypervisor;

in response to the embedded system being required to perform a specific task, determining, with the hypervisor, using the model of electrical energy use, optimized hardware parameter settings to one of reduce and minimize electrical energy use of the embedded system while performing the specific task; and

using one of the hypervisor or the eHAL, implementing the optimized hardware parameter settings;

wherein the HAL does not comprise an operating system (OS).

9. The method of claim 8 , wherein the hardware parameters are selected from the group consisting of power supply to one or more hardware subsystems, supply voltage to the one or more hardware subsystems, presence of clock signal that drives subsystem operation, enablement or disablement of clock source hardware, clock frequency, any parameter that affects power consumption of the one or more hardware subsystems, and any combination thereof.

10. The method of claim 8 , further comprising, in response to a change in the embedded system's operating environment:

automatically re-measuring, using the eHAL, power consumption of the embedded system during execution of the embedded system's tasks;

re-calculating, using one of the eHAL or the hypervisor, from the re-measured power consumption, electrical energy use of the embedded system;

determining, using one of the eHAL or the hypervisor, additional optimized hardware parameter settings to one of reduce or minimize electrical energy use of the embedded system; and,

using one of the eHAL or the hypervisor, implementing the additional optimized hardware parameter settings.

11. The method of claim 8 , wherein implementing the optimized hardware parameter settings comprises storing data values in registers in memory comprised in the embedded system.

12. The method of claim 8 , wherein determining, with the hypervisor, optimized hardware parameter settings further comprises determining optimized hardware parameter settings within one or more constraints.

13. The method of claim 8 , further comprising making a request, with the at least one application, directly to the hypervisor.

14. The method of claim 8 , wherein one of generating the model of electrical energy use of the embedded system or determining the optimized hardware parameter settings comprises dynamic programming.

15. A method of real time energy efficiency optimization for an embedded system, comprising:

using an energy hardware abstraction layer (eHAL) of an embedded system to measure power consumption of the embedded system during execution of the embedded system's tasks, the embedded system comprising: hardware, a hardware abstraction layer (HAL) coupled to the hardware, the eHAL coupled to the hardware and to the HAL, a hypervisor coupled to the HAL and to the eHAL, a real time operating system (RTOS) coupled only to the hypervisor and at least one application, the at least one application coupled to the hypervisor and to the RTOS, the HAL and the eHAL;

calculating, using one of the eHAL, the hypervisor or both the eHAL and the hypervisor, from the measured power consumption, electrical energy use of the embedded system;

generating, using a processor coupled to the embedded system and using one of the eHAL or the hypervisor, a model of electrical energy use of the embedded system, the model relating electrical energy use of the embedded system for tasks performed by the embedded system to values of hardware parameters of the embedded system;

storing the model in the eHAL for use by the hypervisor;

in response to the embedded system being required to perform a specific task, determining, with the hypervisor, using the model of electrical energy use, optimized hardware parameter settings to one of reduce or minimize electrical energy use of the embedded system while performing the specific task;

using one of the hypervisor or the eHAL, implementing the optimized hardware parameter settings; and

comparing, with one of the eHAL or the hypervisor, a predicted electrical energy use with a calculated electrical energy use of the embedded system.

16. The method of claim 15 , further comprising, in response to comparing the predicted electrical energy use with the calculated electrical energy use of the embedded system, modifying the model using one of the eHAL or the hypervisor.

17. The method of claim 15 , further comprising, in response to comparing the predicted electrical energy use with the calculated electrical energy use of the embedded system, determining additional optimized hardware parameter settings to one of reduce and minimize electrical energy use of the embedded system and, using one of the eHAL or the hypervisor, implementing the additional optimized hardware parameter settings.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jul 27, 2017
From: NORTHERN ARIZONA UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 043108/0579 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2016
From: FLIKKEMA, PAUL
To: ARIZONA BOARD OF REGENTS ACTING FOR AND ON BEHALF OF NORTHERN ARIZONA UNIVERSITY
Reel/Frame 039926/0414 →
Continuity (2)
Continuation 14102369 · Dec 10, 2013
Provisional Application 61735363 · Dec 10, 2012