A Xerox Alto system on the East trot had Ethernet considerations, so the proprietor sent me the Ethernet board to diagnose.
(After restoring our Alto, we now beget heard from a couple other Alto owners and strive to attend them out.)
This blog publish describes how I repaired the board and explains somewhat about how the Alto’s groundbreaking Ethernet worked.
The Alto was a modern computer designed at Xerox PARC in 1973, introducing the GUI, high-resolution bitmapped displays and laser printers to the world.
Nonetheless one of its most necessary contributions was Ethernet, the native space network that is mute heavily aged this day.
Whereas contemporary Ethernets handle as much as One hundred gigabits per 2nd, the Alto’s Ethernet was worthy slower, loyal three megabits per 2nd over coaxial cable.
Even so, the Alto aged the Ethernet for
file servers, email, network boot, distributed video games and even speak over Ethernet.
An extender board made it easy to probe the Ethernet card within the Xerox Alto. The chassis is pulled out to procure admission to the boards. Above the chassis is the disk power, which stores loyal 2.5 megabytes on a 14-trail disk pack.
The Alto’s chassis slides out of the cupboard, allowing procure admission to to the circuit boards (ogle above).
To test the Ethernet board, I plugged it into the Alto we now beget restored.
The Ethernet board is inserting out the correct facet of the chassis because of the I aged an extender board.
The board had a couple easy considerations—a chip with a dishonest pin (which I straightened) and one other chip with broken pins.
(Whereas some of us indicate re-seating chips on faded boards, this could presumably invent contemporary considerations.)
The broken chip was a 74S86, a quadruple XOR gate that has been
broken-down for years (if no longer a protracted time).
I replaced it with a 74LS86, a an identical however non-broken-down chip.1
After I powered up the Alto, I didn’t procure one thing from the Ethernet board: it was no longer sending or receiving efficiently. This double failure was somewhat surprising since malfunctions customarily beget an impression on loyal one path.
Nonetheless I fleet stumbled on a trivial narrate: after I pulled out the Alto’s cupboard to procure admission to the circuit boards, the Ethernet connector on the again came loose.
After plugging the connector in, I noticed that the Alto was sending packets efficiently, however mute wasn’t receiving one thing.
Oscilloscope assign from the Ethernet board. Yellow is enter recordsdata, inexperienced is R-C filtered, blue is detected edges. The blue assign is somewhat of a huge quantity with runt pulses.
I started probing the Ethernet board’s enter circuit with the oscilloscope.
The board was receiving the enter okay, however a couple of gates later the alerts looked more or much less sketchy, as it’s likely you’ll presumably presumably ogle above.
The yellow assign is the enter Ethernet signal.
The board applies an R-C filter (inexperienced) and then the signal edges are detected (blue).
Whereas the enter (yellow) is a tidy signal, the inexperienced alerts only trail as much as about 2 volts, no longer the expected four-5 volts. Even worse, the blue waveform is irregular and has “runt” pulses—instant irregular alerts that form no longer trail the whole manner up.
With waveforms love this, the board would no longer present the probability to project the enter.
Manchester encoding and the decoding circuit
I will procure a detour to trace the Ethernet’s Manchester encoding, sooner than shifting into the necessary capabilities of the circuitry.
The Alto’s Ethernet encoded recordsdata over the coaxial cable the narrate of Manchester encoding.three2
On this encoding, a 1 bit is sent as a 1 adopted by a nil, while a nil bit is sent as a nil adopted by a 1.
The map under reveals how the bits “0110” would be encoded.
A key reason to narrate this encoding is that simplifies timing on the receiver, since it’s self-clocking. Recount that there is a transition at some stage in each cell that can also be aged as a clock.
(The unpleasant procedure of loyal sending the bits straight has the problem that in a protracted string of zero’s, or no longer it’s hard to dangle precisely how many had been transmitted.)
An instance of Manchester encoding, for the bits 0110.
To decode the Ethernet signal arriving at the Alto, the necessary step is to extract the clock signal that indicates the timing of the bits.
To extract the clock, the transitions at some stage in each bit cell can beget to be detected. The trick is to ignore transitions at the perimeters of cells.
The map under reveals how the clock is extracted. First, edge pulses are generated for every transition edge of the enter. Then, a clock pulse is generated for every edge pulse. The clock pulse about Seventy five% of the width of the bit cell, and any 2nd pulse that occurs while the clock is mute high is blocked.
(The sting circled in crimson is an instance of an left out edge.)
The is the staunch clock signal, synchronized to the enter.four
This clock is aged to latch the enter signal worth correct into a shift register, which converts the serial Ethernet movement correct into a observe worth usable by the Alto.
Extracting the clock signal from a Manchester-encoded Ethernet enter. Edges are extracted from the enter signal and aged to assign off the clock. An edge too shut to the earlier (crimson) is dropped.
The schematic5 under reveals the circuit that performs this clock extraction.
There are a couple of suggestions in this titillating semi-analog circuit.
When the Ethernet enter signal modifications, the low-trail R-C (resistor capacitor) filter output will be slower to alternate. It will reason the brink detect XOR gate to switch high temporarily till the R-C signal catches up.
Then the clock is generated by a “one-shot”, a chip that generates a mounted-width pulse for every enter pulse. The pulse width is determined to about Seventy five% of the bit cell width by one other resistor and capacitor. The one-shot is wired to ignore any additional pulses that happen while the clock output is high.
Schematic of the clock extraction circuit within the Xerox Alto’s Ethernet interface.
Since the timing in this circuit was controlled by various resistors and capacitors, I believed that a capacitor could presumably need long previous out of tolerance.
Nonetheless first I made up our minds to put out the more efficient test of swapping the XOR chip with the one from our working Alto board.
Surprisingly, this mounted the problem, and the Ethernet board now functioned flawlessly.
Thus, while the 74LS86 has enter characteristics an such as the 74S86, they weren’t shut ample, and substituting the more contemporary chip messed up the R-C filter’s conduct.
(If the gate draws too worthy enter most contemporary, the capacitor could presumably no longer payment as like a flash.)
Marc dug through is sequence of faded chips and stumbled on one other 74S86 so we could presumably procure each boards working.
Oscilloscope assign showing the extracted clock (red), edges of the Ethernet enter (yellow) and the R-C filtered enter (inexperienced).
The oscilloscope assign above reveals the honorable, staunch clock (red) after replacing the XOR chip. With the correct XOR chip, the RC-filtered signal (inexperienced) rises to four volts, unlike sooner than when it loyal went to 2 volts. The sting signal (yellow) is fantastic and even, with out the “runt pulses” considered earlier.
An outline of the Ethernet board
I will wrap up by explaining somewhat in regards to the Alto’s Ethernet board (proven within the photograph under).
The immense connector at the left plugs into the Alto’s backplane, offering verbal substitute with the rest of the system.
The little connector at the correct connects to the Ethernet, by means of a transceiver.
One of the indispensable crucial key ingredients of the Ethernet interface are labeled on the map under.
With this abilities of chips, even a whole board of chips doesn’t present you with a succesful quantity of efficiency so worthy of the Ethernet efficiency is implemented in tool and microcode.
The Xerox Alto’s Ethernet board, showing necessary real looking blocks.
A few of the chips are easy TTL logic, however the board makes narrate of a couple of titillating and vague chips.
Input and output recordsdata goes through a 16-observe FIFO buffer
built from four Intel 3101A RAM chips; every holds loyal 16×four bits.
(The 3101 was Intel’s first product.)
Instructions to the Ethernet board are decoded by three Intel 3205 decoder chips.
Buffer chips interface between the card and the Alto’s bus.
Shift registers for the enter and output convert between recordsdata phrases and serial recordsdata over the Ethernet.
The CRC error checking is accomplished by a if truth be told educated Fairchild 9401 CRC chip.
Surprisingly, the Manchester encoding is implemented with a PROM-driven dispute machine, built from two
Intel 3601 PROMs. Sooner or later, the XOR chip is the chip that introduced about the whole considerations.5
The board has TTL inputs and outputs, so it doesn’t join straight to the Ethernet cable.
As an alternate, a transceiver field is the interface between the Alto and the cable.
In the photograph under, it’s likely you’ll presumably presumably ogle the transceiver clamped onto the coaxial cable.
The transceiver converts the Alto’s logic alerts to the alerts on the cable and injects the alerts through an isolation transformer. Moreover, the transceiver detects collisions if the Alto tries to send at the an identical time as one other machine on the network.
The transceiver injects the Xerox Alto’s alerts into the Ethernet coaxial cable and reads alerts from the cable.
Which that that you must presumably shock how the Alto can talk with a recent system, because of the the Alto’s three Mb/s Ethernet is rarely acceptable with contemporary Ethernet.
I’m constructing a gateway per the BeagleBone (under) that makes narrate of the BeagleBone’s microcontroller (the PRU) to “bit bang” the Ethernet alerts.
The BeagleBone additionally runs an implementation of IFS (Intervening time File Map), the server facet tool to make stronger the Alto. This is a C#
implementation of IFS written by the Residing Computer methods Museum.
I’m constructing an interface to the Alto’s 3Mb/s Ethernet, the narrate of a BeagleBone. The cable on the correct goes to the Alto’s Ethernet port, while a regular Ethernet plugs into the left.
Bob Metcalfe invented Ethernet at Xerox PARC between 1973 and 1974, with a three megabit per 2nd Ethernet for the Alto.
Since then, Ethernet has change correct into a ubiquitous usual, and has increased in walk bigger than four orders of magnitude.
Sadly, as with many other technologies, Xerox didn’t procure objective appropriate thing about Ethernet as a product.
As an alternate, Bob Metcalfe left Xerox in 1979 and fashioned the firm 3Com, which equipped Ethernet products and beget change into one of the most most a hit abilities companies of the 1990s.
I tracked down an argument in an Alto Ethernet board—my substitute for a broken chip was nearly the an identical, however incompatible ample to carry out the circuit fail.
The narrate confirmed up within the circuit that extracted the clock from the incoming Ethernet signal. This circuit illustrates some wise tactics aged by the Alto designers to implement Ethernet with easy TTL chips.
The Ethernet card plugged into the Xerox Alto’s chassis. The disk power is above the chassis, with a white 14″ disk pack visible interior.
The Alto I’ve been restoring came from YCombinator; the restoration crew involves
and Luca Severini.
My full assign of Alto posts is right here and Marc’s intensive videos of the restoration are right here.
On account of the Residing Computer methods Museum+Labs for the extender card and the IFS tool.
Which that that you must presumably practice me on Twitter right here for updates on the restoration.