At the time Busicom approached Intel, Intel had been in existence for only about a year. Their major products at the time were Dynamic Random Access Memory (or DRAM) chips.The problem with DRAM is that it's like juggling: you toss a bit in the air and it sort-of hangs there, but only for a short while. Before it falls on the floor you have to catch it and toss it back up. This catch-and-toss action is called a "refresh cycle". Modern DRAM chips are rated to require a refresh every 4 milliseconds -- for the math-impared, that's 250 times a second.
The alternative technology known as Static RAM, or SRAM, doesn't require refreshing. It holds its state as long as the power remains stable. So why use DRAM? SRAM requires 6 or more transistors per bit, while DRAM designs in 1970 required 3. In 1970, SRAM also consumed more power than a DRAM circuit storing equivalent number of bits. When a chip containing 2,000 transistors was considered large-scale, the space and power reduction was worth the difference.
The Intel 4004 uses DRAM for its internal registers. There is an 8 bit x 8 row array for the scratchpad registers and a 12 bit x 4 row array for the instruction pointer. So my first experiment would be to breadboard one bit of the DRAM array.
But first I had to find a suitable transistor.
A MOSFET is really a 4-terminal device. There is a connection to the gate, which controls the flow of electricity through a channel, with connections to the ends of the channel known as the drain and source. The fourth connection is to the substrate, which is the rest of the chip material; in some documents they refer to this as the bulk, which is actually a rather apt description. If the substrate ever goes positive with respect to the channel (in an N-channel FET) the channel-substrate interface turns into a forward-biased diode (known as a "body diode") and conducts rather readily.
In most modern MOSFETs the substrate is internally connected to the source. This is fine for the vast majority of applications, but in the 4004 they use MOSFETs in what's known as a "transmission gate" configuration. In this configuration, the source sometimes goes positive with respect to the drain when the transistor should be non-conducting (or "off"). With the substrate connected to the source, the body diode is forward-biased and current flows from the source to the drain. This is bad.
How hard could it be to find a MOSFET transistor with a separate substrate connection? I found lots of example circuits, but every one used parts that had been discontinued. After three or four evenings of determined searching I'd begun to think my Google-Fu had deserted me. Finally I stumbled upon the N-channel BSS83 from NXP (formerly Phillips Semiconductor). This is really an RF transistor, but the characteristics were favorable. Except it's only available in a surface-mount package measuring a mere 3.0mm x 1.4mm (SOT-143B). For comparison, a grain of long-grain rice is at least 6mm long, or double the size of one of these things. Fortunately one of my odd acquisitions was a stereoscopic microscope designed for fine electronics work. Still, working with these things requires a steady hand.
DigiKey had a nice price-break at quantity 25 (~62 cents/ea, down from 80/ea), so I ordered 25 along with Surfboard® prototyping adapter boards so I could plug them into a solderless breadboard.
Later I found two additional, somewhat suitable, 4-terminal MOSFETs, the P-channel Micrel MIC94030 and MIC94050. Although the 4004 was a P-channel device, I didn't want to deal with the inverted polarities and stuck with the BSS83. Later I came to learn the wisdom of that choice, though not for polarity reasons.
Hi Reece,
ReplyDeleteFirstly I would like to say that you have an amazing blog!The reason why I came across this was because I too had the crazy idea of building a 4004 with discreet components. Unfortunately I am unable to obtain the BSS83 due to it being discontinued but am able to buy the MIC94050 of Microchip's online store (In fact I now own 30 of them). The problem that has occurred to me is the fact it has a very low drain-source on-resistance (0.125 Ohms @ 4.5V, unlike the BSS83. Would this mean there would be a problem when trying to create resistance using the MOSFET like you describe in puzzling out the bootstrap load?
Aston
Hi Aston,
DeleteThanks for the comment. I'm dismayed that the BSS83 has been discontinued. I bought enough to complete my project plus some for experimentation and loss, but it's disconcerting to discover that I can't get more should I need to respin a board.
I investigated the operation of the bootstrap load because I wanted to understand the need for it, not to use it on my boards. I would think that the MIC94050 would work in a test like the one I described in November 2015, and you should see similar behavior. Maybe I'll add a few of these to my next parts order and experiment with them.
Good luck with the project! If you start your own blog for your experiments (which I encourage) I'll add a link to it on my page.
-Reece