In this blog, I thought we should consider things in the context of microprocessors.
In almost every piece of electronic equipment we use today, there will be some kind of microprocessor (MPU) or microcontroller (MCU) controlling the operation. Following Moore's Law, microprocessors have doubled in size every second year. When Intel introduced the 4004 microprocessor in 1971, it had about 2,300 transistors. By comparison, the latest Intel 64bit microprocessors contain more than 2.5 billion transistors.
This retrospective blog describes how I became involved in testing microprocessors in 1976, and how microprocessors have influenced my professional work for many years.
A visit to the Computer History Museum's website will help us get a feeling for the evolution of the microprocessor. After working for a few years maintaining the computer-controlled test equipment at Ericsson, I realised it would be much more fun to program these beasts. I applied for a job with the microcircuit group in Ericsson's component test department. I got the job, and the first thing I had to do was to write a test program for the Motorola 6801 microcomputer.
The 6800 was an eight-bit microprocessor designed and manufactured by Motorola. The MC6800 microprocessor was part of the M6800 Microcomputer System, which also included serial and parallel interface ICs, RAM, ROM, and a variety of other support chips. A significant design feature was that the M6800 family of ICs required only a single five-volt power supply at a time when most other microprocessors required three voltages. The M6800 Microcomputer System was announced in March 1974 and was in full production by the end of that year.
The MC6801 was a single-chip microcomputer based on a 6800 CPU with 128B of RAM, a 2KB ROM, a 16bit timer, 31 programmable parallel I/O lines, and a serial port. It could also use the I/O lines as data and address buses to connect to standard M6800 peripherals. The 6801 would execute 6800 code, but it had 10 additional instructions, and the execution time of key instructions was reduced. The two eight-bit accumulators could act as a single 16bit accumulator for double-precision addition, subtraction, and multiplication. This device was initially designed for automotive use, with General Motors as the lead customer. The first application was a trip computer for the 1978 Cadillac Seville. This 35,000 transistor chip was too expensive for wide-scale adoption in automobiles, which resulted in the creation of a reduced-function MC6805 single-chip microcomputer.
Writing test programs for the Tektronix S-3260 test system
It was not easy to write a test program that would fully test the MC6801 microcomputer's functionality. Up to that time (1976), we had been writing test programs only for simple TTL devices in the 74 series. Our tester could store 1,024 test vectors, which was sufficient for testing simple counters and adders, but we knew that we would need much more memory for testing a microprocessor. Also, I had to come up with a completely new method for testing.
The solution was to use the tester memory as program memory connected to the processor bus. We could then compile small assembly programs and let the processor execute these programs and send the results back to the tester. This method was successful, so I wrote a paper which I presented at a Tektronix users meeting in Germany in 1979.
Moving to Switzerland
Two of my favourite winter activities are skiing and skating. The mountains in Sweden cannot compare to the Alps, so I found myself traveling to Austria and Switzerland every winter for one week's skiing. That was all I could afford at the time, but I always dreamed about skiing a whole winter in the Alps. That's why I started thinking about moving to Switzerland.
At the users meeting in Germany, I had met a guy working for a Swiss company (Landis & Gyr) in Zug. It had the same kind of Tektronix test equipment, and it used Motorola microprocessors. The company needed someone that could help them write test programs and I was hired. In October 1979, I packed my things and moved to Switzerland.
The photo above was taken in Zermatt in 1981 and shows me in front of the famous Matterhorn. (You will note that, unlike in the pictures with my previous blogs, there are no bell bottom trousers to be seen.)
Testing the Motorola MC68000
My first task at Landis & Gyr was to write a test program for the 16bit Motorola MC68000 microprocessor. This was a huge device that was presented in a 64-pin dual-in-line package. This was before the introduction of surface mount devices (which would be used in later versions).
The 68000 grew out of the Motorola Advanced Computer System on Silicon (MACSS) project, which was begun in 1976 to develop an entirely new architecture without backward compatibility. This was to be a higher-power sibling complementing the eight-bit 6800 line, rather than a backward-compatible successor. In the end, the 68000 did retain a bus protocol compatibility mode for 6800 peripheral devices, and a version with an eight-bit data bus was produced. However, the designers mainly focused on the future, or forward compatibility, which gave the M68K platform a head start against later 32bit instruction set architectures. For instance, the CPU registers were 32 bits wide, though few self-contained structures in the processor itself operated on 32 bits at a time. The MACSS team drew heavily on the influence of minicomputer processor designs, such as the PDP-11 and VAX systems, which were similarly micro-coded.
I used the same approach for writing the test program for the 68000 as I used for the 6801, and I came up with a similar test setup. This time I added an external memory in which I could store the program code executed by the microprocessor. To generate the test program ('programme' for plan), I had to write a cross assembler for the 68000.
Yes, at that time you could still write your own cross assembler, but I don't think you would do this today. The test program development was described in a document I presented at a Tektronix users meeting in Philadelphia in 1984.
Here's a hand-drawn block diagram showing the test setup.
Moving back to Sweden
After a few years in Switzerland, I came to realise that skiing was not the only thing in life, and that I missed the long summer days in Sweden. I moved back to Sweden, returned to my old job at Ericsson, and continued to write test programs for more and more complex devices.
In the mid-1980s, I came in contact with a new device called an application-specific integrated circuit (ASIC). The design department at Ericsson had just designed its first ASICs, and it was our job to test them.
I summarise my time as a component test engineer with the illustration above. After 15 years of testing components, it was time to move on to new challenges. Though I didn't know it at the time, I was soon to become an ASIC designer myself, and this will be the subject of a future retrospective.
Sven Andersson is an independent ASIC/FPGA design consultant.