AMD AM29501: 8-bits to the ByteSlice
AMD is well known for its 2901 bit-slice processor of the 1970’s (being made well into the 1990’s), as well as the previously detailed AM29116 16-bit processor released in 1981. However, the 1980’s brought another AMD design as well, though not as complicated, it is no less interesting. In 1981, there was not a clear DSP (Digital Signal Processor) architecture, or really purpose built design. The Signetics 8X300 was well suited for such work, but was not inherently designed for it. DSP tasks were handled by other processors, or by completely custom designs. The AM29501 was not designed as a DSP, but it was marketed as a signal processor, at least for the first 5 years of manufacture. What the 29501 was, was a relatively fast, and pipelined, byte slice processor, basically a highly upgraded AM2901.
As the name suggests, the 29501 processes data 8-bits at a time, and as a slicer, it requires external program control (it lacks a PC (Program Counter) or sequencer). It has an 8-function ALU, and 6 sets of registers, which can be accessed independently, allowing for a pipelined architecture, multiple instructions may be issued before the first one is completed (as long as they don’t need the same resources). While the ALU is doing some addition, more data may be fetched, or output to one of the 3 8-bit buses. AMD designed the 29501 to be able to do advanced DSP work, and such work requires multiplication, which is something the ‘501 cannot do itself. The 29501, however, was explicitly designed to interface to the AM29516/7 16-bit multipliers. If a multiplication is needed the microprogram controller simply puts it on the multiplier bus and tells the 2951x to handle it. A fairly advanced system could be built by using a 29116 a 29516 as well as a 29501, building a complete pipelined DSP system. One of the first designs using the 29501 in such a way was a finger print recognition system, for matching images of fingerprints, a particularly intense DSP task for the 1980’s.