My first processor
2012/July/15 10:37 Filed in: Computers
The first job I was given when I started at Ericsson's was. "You're the software expert, write a program that does this, for this processor, 256 words, 8 bits per word". After half a day's work, "Can't be done".
So I re-designed the processor.
So I re-designed the processor.
The product we were building was the world's first digital PABX. (That's private automatic branch exchange.) Texas Instruments had recently introduced two new components in their medium scale integrated circuit range. One was a multiplexer which, given a four-bit address would select one of sixteen inputs and send it to the output. The other was a demultiplexer which. given a four-bit address, would send its one input to one of sixteen outputs. Put them together with something to provide sixteen lots of input and output addresses and you had a 16x16 digital switch. So, an exchange with ten internal extensions, three lines to the public network and three inlets to provide the service tones.
We already had suitable digital telephones. These didn't work the way phones do today. Today, phones sample the incoming waveform, convert each sample to a digital value (usually 8 bits), put framing bits around it and send the value as a single unit. Our phones didn't do that. They used what was called fast attack delta modulation, FADM. If the voltage they were reading was increasing they would send ones, if decreasing, zeroes, and if nothing much was happening, alternate ones and zeroes. In other words, for each bit it measured the difference (the delta) between what the voltage was now and what the voltage was at be previous bit. If higher, send one, if lower, send zero. (The "fast attack" meant that in a sequence of ones, the later ones represented a much greater increase than the early ones. Similarly for sequences of zeroes. This meant it could quickly accommodate rapid changes in voltages.)
What this meant for the exchange is that there was no need to synchronise with the phones, nor to synchronise the phones with each other. There were no framing bits, no sign bits, no most-significant bit, each bit was as significant as every other; we could switch whenever we liked and if we occasionally lost a bit, no one would notice.
The problem with the processor was that it was very weak. There was one instruction that was used a lot; it operated the 16x16 switch. So I encoded that instruction into four bits and made it half of half of the instructions in the instruction set. This meant that every time I needed to change the switch I could do one of eight other things at the same time. Combining instructions this way soon solved my problem and getting the whole program in 256 words was easy. It only took eight or nine extra gates, three integrated circuits, and there was plenty of room on the circuit board, so everyone was happy.
The exchange had all the expected facilities. A user could make calls to internal extensions or out to the public network, answer incoming calls, transfer them to other users and even, while on a call to the network, start a call to an internal extension and swap between the two at will.
It was installed at our North Melbourne office where it worked faultlessly until it was packed up and shipped to our headquarters in Sweden. The big problem was that this was 1974 and the corporate time-plan didn't envisage such a product until 1986. It was never seen again.