Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #1264

Re: optimizing compilers for low power design

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!news.misty.com!news.iecc.com!.POSTED!nerds-end
From Walter Banks <walter@bytecraft.com>
Newsgroups comp.compilers
Subject Re: optimizing compilers for low power design
Date Mon, 16 Jun 2014 13:30:26 -0400
Organization Aioe.org NNTP Server
Lines 58
Sender news@iecc.com
Approved comp.compilers@iecc.com
Message-ID <14-06-009@comp.compilers> (permalink)
References <14-06-003@comp.compilers> <14-06-004@comp.compilers>
NNTP-Posting-Host news.iecc.com
Mime-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Transfer-Encoding 7bit
X-Trace miucha.iecc.com 1402946449 97713 2001:470:1f07:1126:0:676f:7373:6970 (16 Jun 2014 19:20:49 GMT)
X-Complaints-To abuse@iecc.com
NNTP-Posting-Date Mon, 16 Jun 2014 19:20:49 +0000 (UTC)
Keywords optimize, architecture
Posted-Date 16 Jun 2014 15:20:49 EDT
X-submission-address compilers@iecc.com
X-moderator-address compilers-request@iecc.com
X-FAQ-and-archives http://compilers.iecc.com
Xref csiph.com comp.compilers:1264

Show key headers only | View raw


Kaz Kylheku wrote:

> On 2014-06-15, idatarm@gmail.com <idatarm@gmail.com> wrote:
> >   Abstract: We describe an algorithm for optimizing compilers for low
> >   power design. The algorithm can be applied to almost any c compiler
> >   and in particular we target gcc compiler. The algorithm works by
> >   modifying optimization table lookup of gcc.  This works in theory. We
>
> Instructions do not have a fixed power cost which can be measured by
> repeating a long run of that instruction and then dividing.
> It depends on their operands, and the complex state of the CPU (what
> other instructions are in the pipeline before and after, caching, etc).
> This approach might work on a very old processor, on which every instruction
> had a predictable instruction count. ...

> The best way to save power is to just optimize for overall execution time, to
> reduce how long the CPU has to be active. ...

A long time ago we wrote a compiler that optimized for minimum power
consumption. The application was a data logger that needed to be run
on battery power for about 14 months unattended. In what can basically
be described as a bad environment.

We did several things.

1) In the absence of hard data we modelled the processor instruction
set on the number of memory access to ROM and the two types of RAM we had
available.
The RAM was a block of RAM internal to the processor and external memory.

2) The external memory could be significantly powered down into a sleep mode
where it retained information but could no be accessed. The external RAM mode
was processor controlled.

3) The processor had a sleep mode that we eventually did not use. We added
a clock chip that was set up to power up and reset the processor. The processor
internal memory could be set-up to retain information.

4) There are a lot of non processor items that we also did. Unused inputs and
outputs we put into their lowest power mode. Pull-ups and pull down resistors
were all evaluated for their effect on power consumption.

5) As Derek Jones pointed out I/O transitions cost power we counted them
and brought the number out as static metric

5) Processor clock speed was a complex combination of time needed to
execute and on time for the rest of the electronics.

6) The compiler looked at alternative sequences and the power resources they
used. (Different from optimization of the instruction set in this was more data
flow optimization) It looked at minimizing the total time needed for the external
memory for example.

7) Software design played a major role. When this project was first developed
it would run for between 2 and 3 months. In the end after what was essentially
all software changes it was reliably running for 16 months.

w..

Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

optimizing compilers for low power design idatarm@gmail.com - 2014-06-15 05:20 -0700
  Re: optimizing compilers for low power design Kaz Kylheku <kaz@kylheku.com> - 2014-06-15 15:43 +0000
    Re: optimizing compilers for low power design Ivan Godard <ivan@ootbcomp.com> - 2014-06-15 11:19 -0700
    Re: optimizing compilers for low power design <Pidgeot18@verizon.com.invalid> - 2014-06-15 18:58 -0500
    Re: optimizing compilers for low power design "Derek M. Jones" <derek@_NOSPAM_knosof.co.uk> - 2014-06-16 12:11 +0100
      Re: optimizing compilers for low power design George Neuner <gneuner2@comcast.net> - 2014-06-18 04:44 -0400
        Re: optimizing compilers for low power design glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-06-20 18:13 +0000
        Re: optimizing compilers for low power design Ivan Godard <ivan@ootbcomp.com> - 2014-06-20 11:52 -0700
        Re: optimizing compilers for low power design Gene Wirchenko <genew@telus.net> - 2014-06-20 12:16 -0700
        Re: optimizing compilers for low power design George Neuner <gneuner2@comcast.net> - 2014-06-20 17:24 -0400
    Re: optimizing compilers for low power design Walter Banks <walter@bytecraft.com> - 2014-06-16 13:30 -0400
  Re: optimizing compilers for low power design andrewchamberss@gmail.com - 2014-06-20 05:03 -0700

csiph-web