Energy Autonomous Computing

simonebrunozzi1 pts0 comments

Energy autonomous computing ⁑ DernocuaEnergy autonomous computing<br>Kragen Javier Sitaker, 02021-02-18 (updated 02021-12-30)<br>(58 minutes)<br>I spent some time trying to figure out what it would take to be able<br>to read, write, and interactively compute, without a connection to a<br>power grid, with maximal autonomy. A big part of this is power usage,<br>and it looks like it should be possible to get a self-sufficient<br>computing environment that runs on under a milliwatt and doesn’t need<br>batteries, though batteries might enable orders of magnitude more<br>computational power. See also How do you fit a high-level language into a microcontroller? Let’s look at BBN Lisp for thoughts on how<br>to design a software environment for such a computer.

In particular, it seems like with Sharp Memory LCDs, several of<br>Ambiq’s new line of subthreshold microcontrollers, amorphous solar<br>panels, and supercaps, you should be able to do a low-resolution<br>black-and-white GUI on the order of what you could do on a PowerMac<br>7100, SPARC 5, or 486DX2/66, without a battery, on 0.5 mW, with an<br>average write bandwidth to your SD card of some 10 kilobytes per<br>second (say, 10 megabytes per second at an 0.1% duty cycle). You<br>could run a Web browser and PDF viewer, though not DHTML apps like<br>Slack and Fecebutt, because it would only have a few megabytes of RAM<br>across all the CPUs, and PDFs might be difficult to read at the low<br>resolution of the screen. The whole computer might weigh 100 grams.

It would take a week to discharge when not in sunlight, but need only<br>an hour or so of sunlight per day, or a few seconds of being plugged<br>in, to stay fully charged. By scaling the clock frequency of the CPUs<br>and turning more of them on, within a few milliseconds you could scale<br>up to a billion instructions per second (comparable to a<br>turn-of-the-millennium Pentium III or iMac G4, or an iPad 2 from<br>02011, or the original Raspberry Pi), though this would be limited by<br>your available energy, since it would use close to 50 milliwatts.

Computation needs

Although computation isn’t the only power cost in a computer, it’s a<br>fundamental one. But how much computation do you need? About 0.1<br>DMIPS for a minimal responsive computing environment (Apple ][,<br>Commodore 64, SDS 940); about 1 DMIPS for a reasonably comfortable one<br>with a lightweight GUI and IDE (VAX 11/785, HP 9000/500, IBM PC/AT,<br>Sun 3/60); maybe 10 DMIPS for workstation-class performance (SPARC 2,<br>386/40); maybe 100 DMIPS for browsers and rich GUIs (SPARC 20, RS/6000<br>250, PowerMac 7100, Pentium 120).

Historical computer performance: a 1-MHz 6502 was a bit less than 0.1 DMIPS

A Commodore 64 or Apple ][ were also capable of running the VisiCalc<br>spreadsheet, the Berkeley Softworks GEOS GUI and geoPaint and whatnot,<br>and Contiki, though not, say, the GEM desktop. The 5MHz and sub-MIPS<br>Apple Lisa was capable of running a non-janky GUI, but even on the<br>Macintosh (7.8 some MHz, 16-bit ALU, 0.40–0.52 Dhrystone MIPS<br>even though some 68000 machines were faster) it was slow enough<br>that you could see the order in which the lines of dropdown menus got<br>painted, top to bottom. With GEOS on the Commodore 64, though, you<br>can see that it paints each line of the dropdown menu left to right,<br>even with a memory expander cartridge, and in geoWrite, typing<br>onto the end of a short line of centered text makes it flicker quite<br>noticeably as it gets erased and repainted left to right in the new<br>position.

The Magic-1 4-MHz homebrew microcoded TTL minicomputer gets 506<br>Dhrystone repetitions per second, while the same page says the<br>Mac 512 gets 625. I guess those work out to (mapcar (lambda (x) (/ x<br>1757.0)) '(506 625)) 0.29 and 0.36 respectively. 0.36 is a little<br>lower than the 0.40–0.52 range in the netlib page cited above, but<br>it's pretty close. The same page reports that a 2.5-MHz Z-80 did 91<br>Dhrystones per second, which is 36.4 Dhrystones per second per MHz,<br>and that an Apple IIe only squoze 37 Dhrystones per second out of its<br>1.02 MHz 65C02, which by the same calculation is (/ 37 1757.0) = 0.021 DMIPS, and thus 0.021 DMIPS/MHz. And so that seems to be<br>close to the minimum CPU power to run a usable GUI.

So the STM32F1 does about 50 (!) times as much Dhrystone work per<br>clock cycle, and about 4–5 times as many instructions per clock cycle,<br>so it’s doing about 10–12 times as much Dhrystone work per<br>instruction. This is substantially larger than the factor of 2 I<br>had guesstimated for the 8-bit vs. 32-bit difference, and I suspect<br>it’s unrealistically large — an artifact of trying to benchmark the<br>C-unfriendly 6502 with a C program, and perhaps using a lousy compiler<br>to boot.

SRI’s oN-Line System ran on an SDS 940 system at around 0.1 DMIPS

The Mother of All Demos, demonstrating the mouse, windowing, networked<br>hypertext, multimedia computerized documents including images, and<br>IDEs, was done in 01968 on an SDS 940 (one of some 60 ever built, over<br>a third of which were sold to Tymshare) which supported 6 concurrent<br>users, using specialized...

dmips second though computing power computer

Related Articles