Signetics 2650

The Signetics 2650 was an 8-bit microprocessor introduced in July 1975. According to Adam Osborne's book "An Introduction to Microprocessors Vol 2: Some Real Products", it was "the most minicomputer-like" of the microprocessors available at the time. A combination of missing features and odd memory access limited its appeal, and the system saw little use in the market. Signetics became better known as a second-source supplier for the MOS 6502.
History.
In 1972, Signetics' Jack Curtis hired John Kessler of IBM to lead the design of a new single-chip CPU intended to compete with minicomputer systems. Kessler selected the IBM 1130 as the model for the new design. The 1130, released in 1965, was a 16-bit minicomputer that shared many design features with other minis of the era.
While Kessler designed the architecture, Kent Andreas laid out the CPU using a recently developed ion implantation NMOS process. In contrast to the far more common PMOS process of the era, NMOS used less power, required only a single voltage compared to three for PMOS, and dissipated less power. This last feature allowed the chip to be run at higher speeds, and the first 2650's ran at the same 1.25 MHz speed as the contemporary models of the 1130.
When it was designed in 1972, the 2650 was among the most advanced designs on the market, easily outperforming and out-featuring the Intel 4004 and 8008 of the same era. Unfortunately, at that time Signetics was heavily involved with Dolby Laboratories, developing integrated circuits that implemented Dolby's suite of noise-reduction systems. As a result, production of the 2650 was pushed back, and the CPU was not formally introduced until July 1975. By 1975, several new CPUs had been introduced, designed from the start to be 8-bit machines rather than mimicking an older design, and the 2650's advantages were no longer as compelling.
In 1975, Philips purchased Signetics, and from that point versions of the 2650 can be found with both Signetics or Philips branding.
In March 1976, Signetics reached a second-source agreement with Advanced Memory Systems (AMS). At that time, most CPU firms were very small and no one would buy a design from a company that might go bankrupt. Second-sourcing was an important guarantee that the design would remain available in this eventuality. AMS was already acting as a second-source for the RCA 1802, an advanced CMOS design, and the NMOS 2650 was seen as a useful adjunct that would not directly compete with the 1802. Unfortunately, in November AMS was purchased by Intersil, who had their own Intersil 6100, a single-chip version of the PDP-8 mini. Intersil dropped production of the 2650.
Signetics tried again with National Semiconductor in 1977, who planned to introduce versions in the last quarter of the year. For unknown reasons, this appears to have never happened, and only a single example of an NS version, from France, has ever been found.
Signetics continued development of the 2650, introducing two new models in 1977. The 2650A was a reworked version of the original layout intended to improve yield, and thus reduce cost. Speed remained unchanged at 1.25 MHz for the base model and 2 MHz for the -1 versions. The 2650B was based on the A, added a number of new instructions, and improved the performance of a number of existing instructions.
Description.
The overall design of the 2650 was based on the IBM 1130. As such, the 2650 has a number of features that were common on 1960s minicomputers, but rarely found on newly designed microprocessors of the 1970s. Among these, for instance, were status bits that were used to track the status of input/output devices, which makes it simpler to write interfacing code. Another mini-like feature was its use of vectored interrupts, which allowed devices to call the correct interrupt handler by putting its memory location on the data bus, avoiding the need to write a device driver to examine the interrupt and then call the correct routine.
Like the 1130, the 2650's processor registers were divided into sets, with a single global register R0 used as the accumulator, and two sets of index registers, both named R1, R2 and R3, for a total of seven registers. At any one time, one of the two sets of indexes were visible to the CPU, and which set was visible was controlled by a bit in the status register, PSW. One could easily switch between the two sets of registers with a single instruction. This allowed rapid switching of values during subroutine calls, operating system switches, or handling interrupts. Unlike the 1130, the registers were only 8-bit wide rather than 16-bit, and there were only two sets rather than three in the 1130.
Another of its mini-like features was the extensive support for indirect addressing on most instructions. Many instructions require data to be read from a location in memory, in most CPUs of the era that would be a single byte of data that is stored in memory referred to by a 16-bit location. In the 2650, the high-bit of that 16-bit location indicated indirection, meaning that the data was not located at this location in memory, but the one encoded in the remaining 15 bits of the address. This style of access allowed blocks of data to be more easily accessed than in systems that provided indirection solely through special instructions or solely through index registers. This also resulted in considerable numbers of math instructions being applied to addresses, and to improve the performance of these operations, the 2650 included a second arithmetic logic unit just for address calculations.
The downside to this approach was that the high-bit was no longer part of the address, meaning the address space was only 15 bits, and the machine could access only a total of 32 KB of memory. The address space was further limited by the use of another two bits of the address to indicate the indexing mode for all logical and arithmetic (i.e. non-branch) instructions. These bits controlled functions like whether the address should be post-incremented or pre-decremented, which is extremely useful for constructing loops. But with all of these bits already accounted for, only 13 were available for addresses in these instructions, meaning only 8 KB could be addressed directly and the main memory was broken up as four 8 KB blocks. To access memory outside the 8 KB where the instruction was located, the data bytes being pointed to had to contain an indirect address, pointing to some other location in memory.
When the 2650 was designed in 1972, these limitations on address space were not significant due to the small size and high cost of the static RAM memory typically used with these processors. At the time, machines typically contained 2 or 4 KB of RAM. But with the increasing use of dynamic RAM from the mid-1970s, machines with 8 and 16 KB of RAM, and ultimately 64 KB, became common and the addressing system on the 2650 became a significant hindrance.
The 2650 also contained an on-die call stack, rather than the more common solution that sets aside a location in memory to hold the stack. The stack pointer was held in three bits in PSW. An on-die stack is much faster, as the data can be accessed directly without waiting for it to be read from external memory, but it also takes up room on the die and is always limited in size as a result of practical tradeoffs. In the 2650, the stack was only eight 15-bit entries deep, which is generally far too small to be used for high-level languages.
While there were nine different addressing modes, the lack of 16-bit registers and the 13–15-bit address space prevented widespread use. Despite this, an operating system ("2650 DOS") was available, along with 8 KB and 12 KB BASIC interpreters (sold by Central Data Corporation USA), and many games of the "Hunt the Wumpus" style. Most programs were written in assembly language.
Uses.
Signetics sold 2650-based microprocessor development boards, first the PC1001 and then its successor, the PC1500 "Adaptable Board Computer", ranging in price from A$165 to A$400. The chip by itself sold for around A$20. Several hardware construction projects and programming articles were published in magazines such as Electronics Australia and Elektor and related kits were sold by electronics stores. These factors led to its use by a number of hobbyists in many countries such as Australia, U.S.A., United Kingdom, the Netherlands and Germany.
Two types of video game console used the Signetics 2650 or 2650A. The first group of consoles are based on the Signetics 2636 video display controller; the 1292 Advanced Programmable Video System and the closely related Interton Video Computer 4000 belong to this group. Those were released in Germany in 1976 and 1978 respectively. The second group of consoles were based on the Signetics 2637 as a video display controller; Emerson Arcadia 2001 which was released in 1982 and which used a Signetics 2650 running at 3.58 MHz as a CPU belong to this group together with many other ones software-compatible (Leonardo, Hanimex MPT-03 etc.).
At least five coin-operated video games were released in the 1970s which used the 2650 CPU Atari "Quiz Show", Meadows Games "3D Bowling", Meadows Games "Gypsy Juggler", Cinematronics "Embargo", and a clone of Space Invaders by Zaccaria called "The Invaders" (1978) (original by Taito used an Intel 8080 CPU).
Italian game manufacturer Zaccaria released 28 pinball machines based on the 2650 CPU. Their successor company, MrGame release four additional pinball machines using the 2650. Zaccaria seems to have licensed its design to Technoplay as well, and several more pinball machines were released using variations of Zaccaria's circuit board designs.
At least two coin-operated video games were released in the 1980s using the 2650. "Hunchback", and Hunchback Olympic.
The processor was also used in the Signetics Instructor 50, which was a small computer designed to teach the use and programming of the Signetics 2650 CPU.
The 2650 was also used in some large items of equipment such as the Tektronix 8540, a microprocessor software development system which supported various in-circuit emulator, trace memory and logic analyser cards for real-time debugging of microprocessor systems, as practiced in the 1980s. The 2650 provided the base operating system functions, data transfer, and interface to a host computer or serial computer terminal.
The processor was most suited as a microcontroller, due to its extensive I/O support:
Industrial Microcomputer System – IMS.
For a short time starting 1979, Philips sold a modular 2650 computer called the 'IMS' Industrial Microcomputer System, based on the Eurocard format in a 19" rack. It included CPU, PROM, RAM, input, output and teletype modules. This system was meant as a more intelligent programmable logic controller. For development, they later added DEBUG, DISPLAY, INTERRUPT and MODEST ((E)PROM programmer) modules.
Architecture.
The 2650 was supplied in a 40 pin plastic or ceramic DIL enclosure. An external single phase clock signal and a single 5V supply were needed.
The 2650 had many unusual features when compared to other microprocessors of the time:
Instruction set.
Although the 2650 is basically an 8-bit microprocessor, 64 opcodes are actually 9-bit, and another 32 opcodes are 11-bit (using bits in the address field). Of the remaining 128 8-bit opcodes, 124 (126 in the 2650B) are implemented, giving a total of 444 (446) instructions.
Many more instructions are available as the behavior of the standard instructions can be modified by setting or clearing status bits: WC (with or without carry) and COM (logical or arithmetic compare). This doubled the number of rotate, add, subtract and compare instructions.
The instruction set is strongly orthogonal: all logic and arithmetic instructions can use all nine addressing modes:
The most significant bit of all relative and absolute addresses is used to indicate indirection.
The only exceptions are where the opcodes of meaningless operations are used for other purposes:
Although the instruction LOAD register zero with register zero would appear meaningless, and was officially unsupported, it did set the condition code and was often used to determine the status of this register.
Indexing.
With all arithmetic and logical instructions using absolute (direct) addressing, bits 14 and 13 of the address field are used to indicate the indexing mode as follows:
When indexing is specified, the register defined in the instruction becomes the index register, and the source/destination is implicitly Register zero. For indirect indexing, Post indexing is used, i.e. the indirect address is first fetched from memory and then the index is added to it.
Branching.
Probably the most mini-computer like aspect of the 2650 is the enormous number (62) of branch (jump) instructions; all these instructions could also use indirection:
Like the Intel 8080, the 2650 had instructions to conditionally branch to, and return from, a subroutine:
Only the branch instructions using absolute addressing used all 15 bits of the address field as address. Using such a branch instruction was, therefore, the only way to set the two bits in the page register (controlling bits 14 and 13 of the address bus) and changing the current 8 KB page.
Versions.
The 2650B had the following changes and improvements over the 2650A:
Second sources.
In 1975, Signetics was sold to Philips and the 2650 was later incorporated into the Philips Semiconductors line. They made a version of the 2650 called the MAB2650A. Valvo, a subsidiary of Philips, sold the 2650 in Germany. Valvo also sold the VA200 single board (Eurocard) 2650 computer with 4 KB PROM/EPROM, 1 KB RAM and four I/O ports.
Other producers of licensed copies of the chip were Harris and Intersil.
Peripheral chips.
The 2650 came with a full complement of peripheral chips:
Many of these peripheral chips were designed so they could also be used with other microprocessors, for example the datasheet of the 2672 suggests using it with an Intel 8048 microcontroller.
Philips Technical Note 083 describes how to interface the 2651 PCI to various other microprocessors, such as the 8080, 8085, Z80, 8048 and 6800
Descendants of the 2651/2661 serial communications chips are still sold as the Philips SC26 series.
2656 System Memory Interface.
The 2656 was specifically designed to augment, and interface with, the 2650 and make a 2-chip computer possible. It contained everything the 2650 lacked to make a complete computer:
The I/O pins could be used as an 8-bit I/O port or programmed to generate enable signals for extra RAM, ROM or I/O ports. This was achieved by mask-programming a Programmable Logic Array in the 2656.
To develop and test the design before committing it to production, Philips sold the PC4000, a 2656 emulator board using PROM'S and FPLA's to emulate the ROM and PLA in the 2656.