Everyone says the Intel 8086 processor has 29,000 tiny transistors. But I counted and found 19,618. Why the difference? It turns out that most counts include "potential" transistors as well as real ones. Let's take a look and find out why.🧵
Everyone says the Intel 8086 processor has 29,000 tiny transistors. But I counted and found 19,618. Why the difference? It turns out that most counts include "potential" transistors as well as real ones. Let's take a look and find out why.🧵 The Intel 8086 microprocessor (1978) revolutionized the computer industry and led to the popular x86 architecture. It uses microcode, breaking machine instructions down into simpler micro-instructions. By studying the chip under a microscope, I can explain it. 🧵
Show previous comments
@kenshirriff I had no idea it was this complex. The 6502 is quite a lot less complex (unless my understanding of hardware is just poor and I’m missing something). It’s so cool seeing things like this (or the first ARM). Wish companies were more open to sharing their own designs with the world. Thanks for publishing this! Happy holidays! Here is a wreath made from punch cards that was at the Computer History Museum.
Show previous comments
@kenshirriff made lots of those back in the day. I can almost safely say I was a product of punch cards. My mom was a keypunch operator for a large Boston Insurance company. My dad was a programmer and supervisor of the key punch pool. That is how my parents met.... @kenshirriff As Robin would say in the old Batman TV series: Holey Cards, Batman! So, is it the 026 or 029 days of Christmas? And does one sing "Oh, Little Town of Ebcdic"? The UM66T is a tiny chip that plays Christmas songs. Designed for greeting cards and toys, the chip has a 64-note ROM and circuitry to drive a speaker. But by messing with the voltage to it, I can create weird glitched holiday tunes.
Show previous comments
Synchros are special devices that look like motors. They are typically used to transmit a rotation position through three wires. However, you can also use them to compare two rotation positions, producing a voltage depending on the difference in shaft positions. A synchro that produces an output voltage in this way is called a Control Transformer. By using the difference in shaft positions an error signal, it can control a much larger motor in a servo loop. This lets you e.g. remotely controls the guns on your battleship. The IBM 729 tape drive was an icon of computing in the early 1960s with its spinning tape reels. We finally fixed a malfunctioning drive at @ComputerHistory. Last week we tracked down a short. The drive still didn't work but until we found a bad relay. Now it works. 🧵
Show previous comments
@kenshirriff Fascinating. A little googling led me to this IEEE Spectrum article from 2018 about how tape is still alive and well: https://spectrum.ieee.org/why-the-future-of-data-storage-is-still-magnetic-tape#toggle-gdpr Here's an interesting chip: a Soviet clone from 1987 of the famed Intel 8086 microprocessor (1978). Although the Soviet Union had their own microprocessors, they were years behind and mostly copied Western chips. 🧵 Under the microscope, the Soviet chip is almost identical to the Intel 8086. First image is the Soviet chip, second is the 8086. 8086 supports many addressing modes through the second byte of instructions, the ModR/M byte. These are implemented by subroutines in the microcode. The "Translation ROM" (die photo below) holds the micro-addresses for subroutines. The microcode address register steps through microcode with a 13-bit address: 8 bits from the instruction, 4 sequential bits, and an extra X bit. It has a register to hold the subroutine return address. Multiplexers select the address for call/return/jump/interrupt/etc. Zooming in, you can see individual transistors in the microcode ROM. The silicon doping pattern defines the 0's and 1's. A few years ago, Andrew Jenner disassembled the 8086 microcode from my die photos. See his blog post to see the complete microcode: https://www.reenigne.org/blog/8086-microcode-disassembled/ @kenshirriff some poor layout engineer probably taped all those things out by hand. i can't even imagine how tedious and hand-cramping that frisket work must have been. Here's a closeup of the microcode on the die. The address register holds a 13-bit micro-address. Column selection circuitry selects one column of the microcode ROM. There are 512 micro-instructions, stored four per column to improve the layout. Here's part of the microcode for division. Each micro-instruction (yellow) moves a source register (S) to a destination (D). It also does an operation in parallel, e.g. subtraction (SUBT), left rotate (LRCY), conditional branch (NCY / no carry), (micro) subroutine return (RTN). Each micro-instruction is packed into 21 bits. Decoding circuitry generates low-level control signals from it. There are 6 types of micro-instruction. The optimized encoding format depends on the type. (F controls whether the instruction sets the condition flag register.) The 8086 processor (1978) led to the hugely-popular x86 architecture. Internally, the 8086 uses microcode, running a tiny program for each machine instruction. I'm reverse-engineering the chip from die photos and I can explain exactly how the 8086 microcode engine works.🧵
Show previous comments
@kenshirriff@oldbytes.space I once wrote an operating system kernel as a learning experience on the segmented memory architecture of, I believe, a DX. Late nights and long ago. But you are at a much lower level. Sounds fun! @kenshirriff i was studying that 8086 microprocessor in 85 when IBM Europe Director revealed us, in school, that the internet was free when you knew some tricks... Next week we'll power up the tape drive and see if it works now. Credits: Brenda did most of the work and CuriousMarc provided the HP current tracer. Come see the tape drives in operation at the Computer History Museum on Wednesdays and Saturdays. We've been searching for the short for a few weeks. The -48V supply was shorted to ground somewhere. The tape drive has a rat's nest of wiring, which makes debugging difficult. The photo makes it a little tough to scan, but forced to decide I'd say the terminal crimp on the lower conductor on the second-from-left indicator is touching the switch frame below. The second-from-right looks perilous in the same way as well. In fact, the whole thing seems to depend on the indicators being seated properly. Overall a bit of a dodgy design, or not robust in any case. But I suppose back in the day all of these were sitting in perfect alignment, well attended! For details, see my latest blog post: https://www.righto.com/2022/11/a-bug-fix-in-8086-microprocessor.html
Show previous comments
@kenshirriff I've got to admit, I eagerly anticipate updates to your blog in a way I do with very little else. I'm a software guy (that wishes he was a hardware guy), but you have a way of explaining concepts that makes even the most technical detail accessible. @kenshirriff Another awesome blog post on the righto blog by Ken Shirriff :) Check it out! The Intel 8086 was released in 1978, starting the x86 line that still dominates computing. I'm reverse-engineering the chip by studying the silicon die, and I think I've spotted a bug fix in the silicon. They didn't have microcode updates then so they patched the silicon. 🧵
Show previous comments
@kenshirriff surprises me how unmanageable complex it already was, how do you even design that? @kenshirriff Forgive my ignorance but is this chip being made in the same way a bridge rectifier is made? For Thanksgiving, here's a wild turkey running across the parking lot of the Computer History Museum. I saw this turkey last year; the museum isn't a normal place to see turkeys. @kenshirriff These guys sauntered across the road in Pebble Beach earlier this year. .... well that's something you don't see every day. |
@kenshirriff I am guessing this got used in the 80186 variant, which included a lot more on board support circuitry.
@kenshirriff
You, sir, are a most admirable nerd.