Power consumption of Game Boy flash cartridges
gekkio.fi
gekkio.fi
Modern power regulators are much better 40 years later. A casual search reveals kits like this one https://handheldlegend.com/products/3-3v-voltage-regulator which could buck/boost a variety of voltages - even letting you run on 4x 3.6V lithium batteries in AA form factor: https://www.batteryjunction.com/plc-ls14500-ba.html
I’m not sure if the power savings by switching regulators are greater than switching carts but are in the same ballpark and are worth exploring if one is going to these lengths to begin with. Certainly combined with those lithium cells it would make cart selection irrelevant.
I'm sure the halt instruction does reduce CPU power but it isn't that significant compared to the overall power of the cartridge and other peripherals.
This test could have been a little better, if they measured current between the GB and the cartridge explicitly. Also, would want to check the voltage on the cartridge downstream of the shunt to make sure it's not browning out under the burden voltage of the current meter, and causing an artificially high current usage. (Though, going through the GB itself might address this...)
1. Total power consumption is easier to relate to battery life, because e.g. doubling the total power consumption roughly halves battery life
2. Cartridge current draw on +5V rail doesn't fully capture the impact on total power consumption. Improper bus behaviour and leakage currents can increase current draw on the console itself. As an extreme example, shorting one of the cartridge I/O pins to ground might not pull any current from the cartridge +5V rail, but it might increase current draw and power dissipation in the main SoC significantly if it's driving the I/O line high.
In any case, optimally I'd have a setup for measuring both :) But right now I only have test automation infrastructure ready for HMC8043
In particular the MIPS CPU used by the PlayStation didn't have any way to halt the CPU. AFAIK neither did the N64. Admittedly these weren't (usually) battery powered so power draw was less of an issue, but the fact that these ISAs didn't even bother with an HALT opcode at all tells me that it wasn't really considered a super valuable feature back then.
Admittedly the GameBoy CPU is CISC, so maybe it fared worse than MIPS in this case, but it was also running at a much lower clock rate, maybe a tight NOP loop didn't consume all that much.
My first few years in the industry in the late 90's we had customers that didn't care about power usage. They wanted the fastest performance and would put a heat sink or bigger fan on their chip.
It wasn't long after that when power usage became more important. We have had logic synthesis tools that automatically insert clock gate logic to save power using various glitchless clock cell designs.
IMHO I think for older classic CPUs in embedded situations, the expectation was that if halting the CPU was needed, external logic would do that.
- The video chip on the Commodore 64 halts the CPU during the frame to fetch memory every 8 lines IIRC (disabling video output increases CPU speed by a bit)
- The NES halts the CPU when it tells the PPU to DMA 256 bytes of memory to sprite descriptor memory before it renders the frame.
- Commodore 128 will halt the non-active CPU (Z80 or 8502). Not sure what hardware is responsible for this, probably that funky MMU chip.
- The Atari 2600 has a WSYNC gregister which tells the TIA to halt the CPU until the next TV scanline starts (it otherwise doesn't use IRQs or NMIs which I found interesting).
Probably halting to save power didn't matter to manufacturers until CPUs required heatsinks or for portable devies. At that point saving power is also preventing heat buildup and enabling the hardware to last longer.
This is not surprising since it's newer. Someone looking to reduce costs as much as possible is going to reduce die area, i.e. using a smaller process with correspondingly smaller power consumption. The NOR flash on there has a datecode of 2007, almost a decade after the original.
My modded GB Pocket wasn't able to use either cart until I replaced the batteries with lithiums that boasted 1.5v output.
Her collection isn't much to most people, but she's pretty proud of it.
The lower power consumption on newer hardware's probably down to raw power efficiency gain in the fabrication process itself. I'm not surprised there.
I actually am a little surprised that rando hardware seems to pattern that close to the original in general. I would've expected wider variation.
Edit: I remember, Tetris is one of a few games that don't use MBCs. The quiescent current is probably that of the MBC
I hadn't looked into GB flash carts, but for GBA I was warned away from the EZ Flash Omega because apparently it used more power than the equivalent (more expensive) Everdrive. I'd be interested to see the numbers behind that.
Edit: Dang, you remembered whilst I writing my reply...
[1] https://youtu.be/HrGTzSrdCyA
[2] https://docs.google.com/spreadsheets/u/0/d/1baIDOZlUjERhOsmc...