It turns out that Intel's Intel® 64 and IA-32 Architectures Software Developer Manuals (2011) have 4181 pages in total, while the 6502 has 3510 transistors. There are actually more pages of documentation for the x86 than the number of individual transistors in the 6502.
The above photo shows Intel's IA-32 software developer's manuals from 2004 on top of the 6502 chip's schematic. Since then the manuals have expanded to 7 volumes.
The 6502 has 3510 transistors, or 4528, or 6630, or maybe 9000?
As a slight tangent, it's actually hard to define the transistor count of a chip. The 6502 is usually reported as having 3510 transistors. This comes from the Visual 6502 team, which dissolved a 6502 chip in acid, photographed the die (below), traced every transistor in the image, and built a transistor-level simulator that runs 6502 code (which you really should try). Their number is 3510 transistors.
One complication is the 6502 is built with NMOS logic which builds gates out of active "enhancement" transistors as well as pull-up "depletion" transistors which basically act as resistors. The count of 3510 is just the enhancement transistors. If you include the 2102 1018 depletion transistors, the total transistor count is 5612 4528.
A second complication is that when manufacturers report the transistor count of chips, they often report "potential" transistors. Chips that include a ROM or PLA will have different numbers of transistors depending on the values stored in the ROM. Since marketing doesn't want to publish different transistor numbers depending on the number of 1 bits and 0 bits programmed into the chip, they often count ROM or PLA sites: places that could have transistors, but might not. By my count, the 6502 decode PLA has 21×131=2751 PLA sites, of which 649 actually have transistors. Adding these 2102 "potential" transistors yields a count of 6630 transistors.
Finally, some sources such as Microsoft Encarta and A History of the Personal Computer state the 6502 contains 9000 transistors, but I don't know how they could have come up with that value.
(The number of pages of Intel documentation is also not constant; the latest 2013 Software Developer Manuals have shrunk to 3251 pages.)
Thus, the x86 has more pages of documentation than the 6502 has transistors, but it depends how you count.
Hmm, I got 1018 as the number of depletion transistors in 6502. Note that there are dupes if you just count the pull-ups in the visual6502 JavaScript, so you over count.
ReplyDeleteI used to write 6502 assembly using a 1-page cheat sheet that I created. Each opcode was listed down the left, and each addressing mode across the top. Each cell in the table held the hex opcode (one byte) for that instruction. I was using an Apple II, which came with a disassembler but no assembler. So I would type in the opcodes in hex and then disassemble it to see if I had made any mistakes.
ReplyDeleteAs you say, the number of instructions was so small that I memorized many of them. Fun days!
what then is the way out of this mess?
ReplyDeleteIt would be a funny coincidence if the 6502 CPU had 6502 transistors :D
ReplyDeleteWell, the 68000 did have 68,000 transistors.
ReplyDeleteYou wrote, "Finally, some sources such as Microsoft Encarta and A History of the Personal Computer state the 6502 contains 9000 transistors, but I don't know how they could have come up with that value."
ReplyDeleteThe 6502 is often described as, "4528 transistors (3510 enhancement transistors and 1018 depletion pullup transistors)." I imagine that people erroneously add those together to get 9000 transistors.