Texas Instruments TMS9900
From Wikipedia, the free encyclopedia
Introduced in 1976 and based on the Texas Instruments 990 minicomputer CPU, the TMS9900 was one of the first true 16-bit microprocessors (the first were probably National Semiconductor IMP-16 or AMD-2901 bit slice processors in 16 bit configuration). It was designed as a single chip version of the TI 990 minicomputer series, much like the Intersil 6100 was a single chip PDP-8, and the Fairchild 9440 and Data General mN601 were both one chip versions of Data General's Nova. Unlike the IMS 6100, however, the TMS 9900 had a mature, well thought out design.
It had a 15-bit address bus, a 16-bit data bus, and three internal 16-bit registers (PC, WP, and ST). One unique feature, though, was that all general purpose user registers were actually kept in external memory. A single workspace register (WP) pointed to the 16 register set (each register being 16 bits wide) in RAM, so when a subroutine was entered or an interrupt was processed, only the single workspace register had to be changed - unlike some CPUs which required dozens or more register saves before acknowledging a context switch.
This was feasible at the time because RAM was often faster than the CPUs. A few modern designs, such as the INMOS Transputers, use this same design using caches or rotating buffers, for the same reason of improved context switches. Other chips of the time, such as the 65xx series had a similar philosophy, using index registers, but the TMS 9900 went the farthest in this direction.
That wasn't the only positive feature of the chip. It had good interrupt handling features and very good instruction set. Serial I/O was available through address lines. In typical comparisons with the Intel 8086, the TMS9900 had smaller and faster programs. The only disadvantage was the small address space and need for fast RAM.
Like the MOS Technology 6502, the TMS9900 had an indirect jump instruction, called 'X' (or eXecute). This instruction was used to execute another instruction at an address pointed to by a register.
The TMS9900 was used in the TI-99/4 and TI-99/4A home computers. Unfortunately, to reduce the production costs, TI chose to use 8-bit DRAM in these systems which crippled the performance of the TMS9900.
Despite the very poor support from Texas Instruments, the TMS9900 had the potential at one point to surpass the 8086 in popularity.
TI later developed the more powerful and more capable TMS99000, which was used as the CPU in the 990/10A minicomputer as a cost reduction. Unfortunately, by the time the 990/10A made it to market, the end of the minicomputer era was already in sight.
[edit] External link
- TMS9900 manuals and references from Bitsavers