No CPU? No Problem!

I’ve been poring over some of the control boards for my Northern Telecom SG-1 EPABX recently. This system is interesting for a couple of reasons: because it was the first fully electronic PBX that didn’t cost hundreds of thousands of dollars, and because it has fully digital control with no CPU. This resulted in a very clever architecture that we’ll get to in a minute. First, let’s talk about those interesting things.

The First Interesting Thing

Prior to this system, we had telephone systems with electronic controls. The Western Electric 1ESS being the most obvious example. Northern Electric had an offering in this space too, the SP-1. What all of these systems had in common is that the voice connection that was made between phones was still accomplished by electromechanical means. Relays. They could all be described as a transistorized digital computer strapped to an electromechanical switch. There was the 101ESS which is some ways very similar to the SG-1, but cost hundreds of thousands of dollars and filled a room.

The SG-1 was the first system that used an electronic path for the speech signals, and could fit in a room in the office basement. While it was electronic, the speech pathway was analogue, with access to that pathway controlled entirely by transistors. The SG-1 was the first product produced by a group known as Bell Northern Research, and The guys at BNR didn’t just implement the usual space division style of hierarchical switch in transistors. Instead, they opted for a time division architecture, carrying 24 simultaneous conversations on a single pair of wires.

The SG-1 has a system clock rate of 300 kHz, with a frame size of 25 samples; 24 for calls and one for supervisory operations. That works out to an audio sample rate of 12 kHz. The system would basically connect together the two phones involved in a phone call 12,000 times a second, and the result would sound to a human ear like they were connected together the entire time. If a person were to name this, they would call it time division multiplex pulse amplitude modulation. And they did.

The Second Interesting Thing

The task of managing 24 simultaneous phone calls would be an easy problem to solve with a microprocessor, right? Sure, except there was no such thing as a microprocessor when development began on the SG-1 in 1969.

If Nortel had waited until 1971, when Intel released the 4004—first microprocessor—they still would have been out of luck. The 4004 executed 92,000 instructions a second, which puts the 300 kHz time slot rate of the SG-1 well out of reach. Even processing at the 12KHz frame rate of the SG-1 would have only left 7 instructions between samples to think about what to do next. The 8008, which came out a year later was actually slower than the 4004. How long would they need to wait for microprocessor technology to catch up?

The Interesting Result

If you think about it a bit, the guys at BNR didn’t need a microprocessor. In fact, they didn’t need a computer at all. They just needed to handle phone calls.

I don’t have complete schematics for this system. I’ve reverse engineered a few circuit boards from the system, and I have a somewhat detailed high level overview of how the system works from the manuals. The brain of the system was created almost entirely out of 7400 series integrated circuits, and the majority of those are gate level devices (i.e., the 7400 was a quad NAND gate)

The control boards are a sea of 7400’s, 7402’s, 7410’s, and their ilk. So when there is something with a part number that doesn’t start with a 74, it stands out. One such device that stands out to me is the General Instruments SL-5-4025. After a bit of digging I found a data sheet for this device, and the description is a dead give away of how they made their non-CPU work: Quad 25-bit Static Shift Registers. As soon as I saw that it all made sense:

It’s Just a State Machine

The easiest way to break down call processing in a telephone switch is with a state machine:

That’s quite easy to do with some combinatorial binary logic when you’re only worried about single call. But keeping track of 24 simultaneous calls requires keeping track of 24 separate state machines. With its clock rate of 300 kHz, The SG-1 needed to switch between these 24 state machines 300,000 times a second. It all seemed so complicated until I realized that they were using 25 bit shift registers everywhere in the core logic of the system.

Imagine this: You have a state machine constructed out of a pile of binary logic, with some flip-flops acting as your ‘memory’ to keep track of what your current state is:

Binary     State
000 On Hook
001 Dialling
010 Ringing
011 Call In Progress
100 Busy

For the next trick, instead of keeping that state in three flip flops, keep it in three 1 bit shift registers, and control those shift registers with a common clock. If you want to have 25 simultaneous calls—or 24 plus a housekeeping slot—you’re going to need a 25 stage shift register. With each pulse of the system clock, the control forgets what it was just doing and remembers what it should be doing next. If you looked a snapshot of the machine during one of these time slices, it would look like a phone system with two extensions wired together in a sea of dormant electronics. The beauty is that it all happens so fast that it is invisible to the end user.

The other beauty of this strategy is that from a design point of view, it makes things quite elegant. Combinatorial logic can be designed and implemented in a manner that is almost completely oblivious to fast paced reality of time division multiplexing. The designers could pretend that they were designing for a system with no TDM, and their design would work.

It also meant that any feature added to the system that required call state memory could have that memory implemented locally, so long as the global clock was observed. There is no central RAM, no central logic. Everything is distributed. Boards can be added and removed from the system without powering anything down. As soon as they’re plugged in, the local shift registers immediately start working in lock-step with the rest of the system. It’s beautiful in its simplicity, and an elegant solution to the problem at hand. Which brings me to…

The Fatal Flaw

It should come as no surprise that the technology that killed the SG-1 was of course the general availability of the microprocessor. Even before Northern Telecom had the first SG-1 out the door, their scientists were already dreaming about the successor to the SG-1, the SL-1.

The SG-1 is really cool, and a fascinating thing to understand, but if you’re a company that wants to make telephone switches that are maintainable and upgradable, you can’t beat a general purpose microprocessor. The SG-1 is ‘programmed’ with diode pins and hard wired jumpers (straps in Northern Telecom lingo) for per-line and per-trunk options, and with toggle switches hidden on the various circuit boards and more straps for system wide features. It was about as hands on as you could get. The all-digital, remotely programmable SL-1 was a no-brainer.

Northern Telecom soon relegated the SG-1 to second rate customers like hotels, motels, and small businesses, and pushed the more expensive SL-1 on its business customers. I suspect that BNR learned some valuable lessons developing the SG-1 that helped them get the SL-1, later to be renamed Meridian, right the first time around. That leg up helped Northern Telecom dominate the market for years.