IBM introduced the 12.5MHz cabinet sized System/370 in June 1970 as an evolution of the System/360 from 1964. These systems formed the entire base of IBM’s mainframe business. Today’s System z, itself an evolution of the original System/360 and 370, can still run many of the original programs, unmodified, from 50 years ago. This is a testament to 2 things, the wide adoption of the IBM systems, and the forward thinking of IBM. Even the original System/360 from 1964 was a full 32-bit computer. Single chip processors did not embrace 32 bit architectures until the very early 1980’s (Motorola 68k, National 32k, etc).
In 1980 IBM sought to make a single chip version of the 370, in an effort to make a version that could be used for desktop type computers. This was to become the Micro/370. There were 2 distinct products to come out of this goal that are widely confused and debated. The first became the PC XT/370, an add in card(s) for an IBM PC to give it the capability to run System/370 software. Later another version was developed called the Micro/370 as a single chip solution.
The PC XT/370 began as an experiment, a test bed implementation of the System/370 in a microprocessor environment. The goal was not to rebuild the 370 from the ground up (that would come later) but to merely implement its instruction set into an existing design. The base processor had two main requirements: it had to be 32 bits, and it had to be microcoded. IBM’s engineers in Endicott, NY selected the then very new Motorola MC68000 processor as their basis. It was one of the only 32-bit designs at them time so that no doubt helped in the selection process.
Before continuing, lets take a second to discuss what a microcoded processor is, as it is important to understanding the XT/370. Most processors are known as microcoded designs. The instruction sets that the programmer sees are not actually a hardware function, as much as they are software. Each op code is translated on chip, via a ROM or PLA (Programmable Logic Array), to specific hardware, transistor level, actions. An instruction op code may be ADD A B, which in the microcode is translated to connecting the A and B registers to the ALU, and then connecting the ALU output to the appropriate destination register, Data Bus, or I/O pins. The actual physical gates are independent of the instruction set, Not all processors are designed this way, some designs,known as random logic, the op codes control the actual hardware directly (such as the previously discussed Novix Stack Processors). This is faster, but harder to debug and make changes to. A microcoded processor could conceivably execute different instructions, merely by changing the microcode.
This is exactly what IBM did with the XT/370. They had Motorola implement most of the System/370 instructions in a new microcode (developed by IBM) for the 68000. Nick Tredennick of Motorola worked with IBM to implement the microcode 68000 structure. Nick had previously developed the logic design, and microcode for the original Motorola 68000 processor in the late 1970’s so was very familiar with it. Not all of the instructions could be made to fit in a 68000 so a second, generic, 68000 emulated them in software. Floating point instructions were implemented in a similarly customized Intel 8087 FPU. These 3 chips were on a card called the PC/370-P. Two other cards were required called the PC/370-M (Memory) and PC/3277-EM which made the system appear to be a 3277 terminal. These 3 cards together implemented a System/370, albeit slowly. IBM developed a subset of the System/370 software to run on desktops at a reasonable speed. This system was available for purchase in 1983 for $3790 (or $8995 including the IBM XT) and continued to be sold (in various forms) into the early 1990’s.
Meanwhile, at another IBM facility in Yorktown Heights, NY in January of 1981 IBM began work on 370 microprocessor that would be purpose built for System/370 code. Tredennick had now left Motorola, and perhaps not surprisingly, now worked for IBM, and set about designing what was to become the Micro/370. Several other units at IBM had similar aspirations, including one in Boblingen, Germany, who likely made the keychain pictured. Initially the resources were not available to actually build the chip, only to design, and simulate it. Nick describes the Micro/370 as a ‘grass roots project.’ It wasn’t widely supported by the higher echelons at IBM and thus only had a few people assigned to it. That’s likely why it took until 1985 for actual silicon to be made implementing the full Micro/370 processor.
The Micro/370 is implemented on a 1 micron nMOS process and contains around 200,000 transistor sites (93,000 used) in a 171 pin package. Clock speed is 10-15MHz. It is a microcoded design that implements 102 system/370 instructions.
And here is where some of the confusion arises….
The Micro/370’s bus is a superset of the Motorola 68000 bus, 64 of the 106 signal and I/O pins are completely compatible with that of the 68000. You can design a Micro/370 system using no other IBM components, it will work with standard, off the shelf, Motorola peripherals.
Was this lazy? Was this stealing? Certainly not, this is good engineering. Especially for a project with limited resources, to allow a design to use already existing, commercial off the self support hardware is ideal. While the PC XT/370 used the actual Motorola MC68000 as its processor (albeit with new microcode) the Micro/370 was a ground up IBM design, that supported the 68000 bus. This makes testing and support much easier, and affordable. Peripherals did not need to be deigned, as they were already available.
The Micro/370 never made it into full production. Speculation in 1986 was great as to whether IBM would release their next mini computers based on the Micro/370. or on the new Intel 80386. IBM of course chose the 80386 ending the short, yet interesting life of the Micro/370.
Microprocessor Logic Design – The flowchart Method – Nick Tredennick 1987
IBM Systems Journal VOL 23 No 3 1984 pgs 245-255