Linked by Thom Holwerda on Sat 7th Sep 2013 09:54 UTC
Hardware, Embedded Systems

The 8-bit Z-80 processor is famed for use in many early personal computers such the Osborne 1, TRS-80, and Sinclair ZX Spectrum, and it is still used in embedded systems and TI graphing calculators. I had always assumed that the ALU (arithmetic-logic unit) in the Z-80 was 8 bits wide, like just about every other 8-bit processor. But while reverse-engineering the Z-80, I was shocked to discover the ALU is only 4 bits wide! The founders of Zilog mentioned the 4-bit ALU in a very interesting discussion at the Computer History Museum, so it's not exactly a secret, but it's not well-known either.

I have been reverse-engineering the Z-80 processor using images from the Visual 6502 team. The image below shows the overall structure of the Z-80 chip and the location of the ALU. The remainder of this article dives into the details of the ALU: its architecture, how it works, and exactly how it is implemented.

Ken Shirrif's blog is an absolute must for fans of ultra-low-level hardware stuff. This goes way over my head, but interesting nonetheless.

Thread beginning with comment 571612
To view parent comment, click here.
To read all comments associated with this story, please click here.
Member since:

This isn't talking about chained 4-bit units - it's a single 4-bit unit, where the slices are processed serially, not in parallel.

Doesn't that make the Z80 count as a 4-bit CPU?

Reply Parent Score: 3

transputer_guy Member since:

No, plenty of cpus have used serial computation and had reasonable performance, TI 9900 did 16 bits in 18 clocks or so, it allowed the clock to run faster to make up for it. The architecture defines the width of a processor, not the internal design. And the Pentium 4 also used a 16 bit ALU double pumped, still a 32b processor.

Reply Parent Score: 3

puenktchen Member since:

The architecture defines the width of a processor, not the internal design.

I alway thought the internal design was part of the architecture. And that the meaning of 8/16/32/64 bitness changed over the years with a little help by marketing. So the width of the processor is defined by the instruction set, not by the data path or registers or .. ?

Reply Parent Score: 3