The8086 microprocessor is one of the most important chips ever created; it started the x86 architecture that stilldominates desktop and server computing today.I've been reverse-engineering its circuitry by studying its silicon die.One of the most unusual circuits I found is a "bootstrap driver", a way to boost internal signalsto improve performance.1
This circuit consists of just three NMOS transistors, amplifying an input signal to produce an output signal, butit doesn't resemble typical NMOS logic circuits and puzzled me for a long time.Eventually, I stumbled across an explanation:2 the "bootstrap driver" uses the transistor'scapacitance to boost its voltage. It produces control pulses with higher current and higher voltage than otherwise possible,increasing performance.In this blog post, I'll attempt to explain how the tricky bootstrap driver circuit works.
A die photo of the 8086 processor. The metal layer on top of the silicon is visible. Around the edge of the chip, bond wires provide connections to the chip's external pins. Click this image (or any other) for a larger version.
The 8086 is built from MOS transistors (MOSFETs), specifically NMOS transistors.Understanding the bootstrap driver requires some understanding of these transistors.If you're familiar with MOSFETs as components, they have source and drain pins and current flows from the drain to the source, controlled by the gate pin.Most of the time I treat an NMOS transistor as a digital switch between the drain and the source: a 1 input turns the transistor on, closing the switch, while a 0 turns the transistor off.However, for the bootstrap driver, we must consider the MOSFET in a bit more detail.
The important aspect of the gate is the difference between the gate voltage and the (typically lower) source voltage;this is denoted as Vgs.Without going into semiconductor physics, a slightly more accurate model is that the transistor turns on when the voltage between the gate and the sourceexceeds the fixed threshold voltage, Vth.This creates a conducting channel between the transistor's source and drain.Thus, if Vgs > Vth,the transistor turns on and current flows.Otherwise, the transistor turns off and no current flows.
The threshold voltage has an important consequence for a chip such as the 8086.The 8086, like most chips of that era, used a 5-volt power supply.The threshold voltage depends on manufacturing characteristics, but I'll use 1 volt as a typical value.3The result is that if you put 5 volts on the drain and on the gate, the transistorcan pull the source up to about 4 volts, but then Vgs falls to the threshold voltage and the transistor stopsconducting. Thus, the transistor can't pull the source all the way up to the 5-volt supply, but falls short by a volt on the output.In some circumstances this is a problem, and this is the problem that the bootstrap driver fixes.
If you get a transistor as a physical component, the source and drain are not interchangeable. However, in an integrated circuit, there is no difference between the source and the drain, and this will be important.4The diagram below shows how a MOSFET is constructed on the silicon die. The source and drain consist of regions of silicon doped with impurities to change their property. Between them is a channel of undoped silicon, which normally does not conduct. Above the channel is the gate, made of a specialtype of silicon called polysilicon.The voltage on the gate controls the conductivity of the channel.A very thin insulating layer separates the gate from the channel. As a side effect, the insulating layer creates some capacitance between the gate and the underlying silicon.
Before getting to the bootstrap driver, I'll explain how a basic inverter is implemented in an NMOS chip like the 8086.The inverter is built from two transistors: a normal transistor on the bottom, and a special load transistor on top that actslike a pull-up resistor, providing a small constant current.5With a 1 input, the lower transistor turns on, pulling the output to ground to produce a 0 output.With a 0 input, the lower transistor turns off and the current from the upper transistor drives the output high to produce a 1 output.Thus, the circuit implements an inverter: producing a 1 when the input is 0 and vice versa.
The disadvantage of this inverter circuit is that when it produces a 0 output, current continuously flows through the load transistorand the lower transistor to ground.This wastes power, leading to high power consumption for NMOS circuitry. (To solve this, CMOS circuitry took over in the1980s and is used in modern microprocessors.)This also limits the current that the inverter can provide.
If a gate needs to provide a relatively large current, for instance to drive a long bus inside the chip, a more complexcircuit is used, the "superbuffer".The superbuffer uses one transistor to pull the output high and a second transistor to pull the output low.6Because only one transistor is on at a time, a high-current output can be produced without wasting power.There are two disadvantages of the superbuffer, though.First, the superbuffer requires an inverter to control the high-side transistor, so it uses considerably more space on the die.Second, the superbuffer can't pull the high output all the way up; it loses a volt due to the threshold voltage as described earlier.
In some circumstances, you want both a high-current output, and the full output voltage.One example is connecting a register to an internal bus.Since the 8086 is a 16-bit chip, it uses 16 transistors for the bus connection. Driving 16 transistors in parallel requiresa fairly high current.But the bus transistors are "pass" transistors, which lose a volt due to the threshold voltage, so you want to start with thefull voltage, not already down one volt.To provide both high current and the full voltage, bootstrap drivers are used to control the buses, as well as similar taskssuch as ALU control.
The concept behind the bootstrap driver is to drive the gate voltage significantly higher than 5 volts,so even after losing the threshold voltage, the transistor can produce the full 5-volt output.7The higher voltage is generated by a charge pump, as illustrated below.Suppose you charge a capacitor with 5 volts. Now, disconnect the bottom of the capacitor from ground, and connect it to +5 volts.The capacitor is still charged with 5 volts, so now the high side is at +10 volts with respect to ground.Thus, a capacitor can be used to create a higher voltage by "pumping" the charge to a higher level.
The idea of the bootstrap driver is to attach a capacitor to the gate and charge it to 5 volts. Then, the low side of the capacitor is raised to 5 volts,boosting the gate side of the capacitor to 10 volts.With this high voltage on the gate, the threshold voltage is easily exceeded and the transistor can pass the full 5 voltsfrom the drain to the source, producing a 5-volt output.
In the 8086 bootstrap driver,8 an explicit capacitor is not used.9Instead, the transistor's inherent capacitance is sufficient.Due to the thin insulating oxide layer between the gate and the underlying silicon, the gate acts as the plate of a capacitorrelative to the source and drain.This "parasitic" capacitance is usually a bad thing, but the bootstrap driver takes advantage of it.
The diagrams below show how the bootstrap driver works.Unlike an inverter, the bootstrap driver is controlled by the chip's clock, generating an output only when the clock is high.In the first diagram, we assume that the input is a 1 and the clock is low (0).Two things happen.First, the inverted clock turns on the bottom transistor, pulling the output to ground.Second, the 5V input passes through the first transistor; the left side of the transistor acts as the drain and the rightside as the source.Due to the threshold voltage, a volt is "lost" so about 4 volts reaches the gate of the second transistor.Since the source and drain of the second transistor are at 0 volts, the gate capacitors are charged with 4 volts.(Recall that these are not explicit capacitors, but are parasitic capacitors.)
In the next step, the clock switches state and things become more interesting.The second transistor is on due to the voltage on the gate, so current flows from the clock to the output.In a "normal" circuit, the output would rise to 4 volts, losing a volt due to the threshold voltage of the second transistor.However, as the output voltage rises, it boosts the voltage on the gate capacitors and thus raises the gate voltage.The increased gate voltage allows the output voltage to rise above 4 volts, pushing the gate voltage even higher, untilthe output reaches 5 volts.10Thus, the bootstrap driver produces a high-current output with the full 5 volts.
An important factor is that the first transistor now has a higher voltage on the right than on the left, so the source and drain switch roles.Since the transistor has 5 volts on the gate and on the (now) source, Vgs is 0 and current can't flow.Thus the first transistor blocks current flow from the gate, keeping the gate at its higher voltage.This is the critical role of the first transistor in the bootstrap driver, acting as a diode to block current flow out of the gate.
The diagram below shows what happens when the clock switches state again, assuming a low input.Now the first transistor's source voltage drops, making Vgs large and turning the transistor on.This allows the second transistor's gate voltage to flow out.Note that the first transistor is no longer acting as a diode, since current can flow in the "reverse" direction.The other important action in this clock phase is that the bottom transistor turns on, pulling the output low.These actions discharge the gate capacitance, preparing it for the next bootstrap cycle.
Now that I've explained the theory, how do bootstrap drivers appear on the silicon die of the 8086?The diagram below shows six drivers that control the ALU operation.11There's a lot happening in this diagram, but I'll try to explain what's going on.For this photo, I removed the metal layer with acid to reveal the silicon underneath; the yellow lines show where the metal wiring was.The large pinkish regions are doped silicon, while the gray speckled lines are polysilicon on top.The greenish and reddish regions are undoped silicon, which doesn't conduct and can be ignored.A transistor is formed where a polysilicon line crosses silicon, with the source and drain on opposite sides. Note thatsome transistors share the source or drain region with a neighboring transistor, saving space.The circles are vias, connections between the metal and a lower layer.
3a8082e126