4 ms·
Interesting fact: The TMS9900 had an IDLE instruction - I recall reading somewhere that it was implemented internally as an unconditional jump to itself. IMHO
by tenebrisalietum 6y ago
Interesting fact: The TMS9900 had an IDLE instruction - I recall reading somewhere that it was implemented internally as an unconditional jump to itself.
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.