Introduced in June 1976, the TMS9900 was one of the first commercially available, single-chip
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
microprocessor
A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circu ...
s. It implemented
Texas Instruments
Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globall ...
'
TI-990 {{Short description, Series of 16-bit computers by Texas Instruments.
The TI-990 was a series of 16-bit minicomputers sold by Texas Instruments (TI) in the 1970s and 1980s. The TI-990 was a replacement for TI's earlier minicomputer systems, the T ...
minicomputer
A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
architecture in a single-chip format, and was initially used for low-end models of that lineup.
Its 64-pin
DIP format made it more expensive to implement in smaller machines than the more common 40-pin format, and it saw relatively few design wins outside TI's own use. Among those uses was their
TI-99/4
The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. Based on the Texas Instruments TMS9900 microprocessor originally used in minicomputers, the TI-99/4 was the first 16-bit home computer. T ...
and
TI-99/4A
The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. Based on the Texas Instruments TMS9900 microprocessor originally used in minicomputers, the TI-99/4 was the first 16-bit home computer. ...
home computers, which ultimately sold about 2.8 million units.
Microcomputer-on-chip implementations of the 9900 in 40-pin packages included the TMS9940, TMS9980/81, TMS9995. The TMS99105/10 was the last iteration of the 9900 in 1981 and incorporated features of TI's 990/10 minicomputer.
By the mid-1980s the microcomputer field was moving to 16-bit systems like the
Intel 8088
The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers an ...
and newer 16/32-bit designs like the
Motorola 68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
. With no obvious future for the chip, TI turned its attention to special-purpose processors like the
Texas Instruments TMS320
Texas Instruments TMS320 is a blanket name for a series of digital signal processors (DSPs) from Texas Instruments. It was introduced on April 8, 1983 through the TMS32010 processor, which was then the fastest DSP on the market.
The processor is ...
, introduced in 1983.
History
The TMS9900 was designed as a single chip version of the
TI 990 minicomputer
A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
series, much like the
Intersil 6100
The Intersil 6100 is a single-chip microprocessor implementation of the 12-bit PDP-8 instruction set, along with a range of peripheral support and memory ICs developed by Intersil in the mid-1970s. It was sometimes referred to as the CMOS-PDP8. S ...
was a single chip
PDP-8
The PDP-8 is a 12-bit computing, 12-bit minicomputer that was produced by Digital Equipment Corporation, Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's ...
(12 bit), and the
Fairchild 9440 The Fairchild 9440 MICROFLAME, also known as the F9440 and μFLAME, was a 16-bit microprocessor introduced by Fairchild Semiconductor in 1977. The 9440 implemented the Data General Nova, Data General Nova 2's instruction set in a single-chip 40-pin ...
and
Data General
Data General Corporation was one of the first minicomputer firms of the late 1960s. Three of the four founders were former employees of Digital Equipment Corporation (DEC).
Their first product, 1969's Data General Nova, was a 16-bit minicomputer ...
mN601 were both one-chip versions of
Data General
Data General Corporation was one of the first minicomputer firms of the late 1960s. Three of the four founders were former employees of Digital Equipment Corporation (DEC).
Their first product, 1969's Data General Nova, was a 16-bit minicomputer ...
's
Nova
A nova (plural novae or novas) is a transient astronomical event that causes the sudden appearance of a bright, apparently "new" star (hence the name "nova", which is Latin for "new") that slowly fades over weeks or months. Causes of the dramati ...
. Unlike multi-chip 16-bit microprocessors such as the
National Semiconductor
National Semiconductor was an American semiconductor manufacturer which specialized in analog devices and subsystems, formerly with headquarters in Santa Clara, California. The company produced power management integrated circuits, display drive ...
IMP-16
The IMP-16, by National Semiconductor, was the first multi-chip 16-bit microprocessor, released in 1973. It consisted of five PMOS integrated circuits: four identical RALU chips, short for register and ALU, providing the data path, and one CROM ...
or DEC
LSI-11
The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
, some of which predated the TMS9900, the 9900 was a single-chip, self-contained 16-bit microprocessor.
The minicomputer roots of the TMS9900 give rise to a number of architectural features that are not commonly found on designs that started from a blank sheet. Notable among these was the TMS9900's use of
processor register
A processor register is a quickly accessible location available to a computer's processor. Registers usually consist of a small amount of fast storage, although some registers have specific hardware functions, and may be read-only or write-only. ...
s that are mapped into
main memory
Computer data storage is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers.
The central processing unit (CPU) of a computer ...
. This allows for fast
context switching
In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
, which can be accomplished by changing a single register, the Workspace Pointer, to point to the first entry in a list of register values. More traditional designs would require the entire set of internal registers to be stored out to memory or the stack.
The downside to this approach is that accessing these registers is more time-consuming. In a minicomputer implementation with fast memory, the effect is relatively small and the upside in a real-time or multi-tasking environment is significant as context switches are common. In other roles, like single-user microcomputers, this tradeoff may not be worthwhile. The 40-pin implementations of the 9900 included 128 or 256 bytes of fast onboard RAM for registers.
TI used the same architecture across different divisions for corporate synergy: "one company, one computer architecture". In the late 1970s
Walden C. Rhines gave a presentation of the TMS99110, then code-named “Alpha”, to an IBM group developing a personal computer. "We wouldn't know until 1981 just what we had lost" because IBM chose the
Intel 8088
The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers an ...
for the
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
, he recalled. One factor was the lack of a roadmap for accessing more than 64K of logical memory. The 9900 family could expand its address space to 16MiB only by page-mapping; the 99000 could address 256K through segments.
After dropping out of the personal computer market with products such as
TI-99/4A
The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. Based on the Texas Instruments TMS9900 microprocessor originally used in minicomputers, the TI-99/4 was the first 16-bit home computer. ...
, the company microprocessor division eventually switched focus to the
TMS320
Texas Instruments TMS320 is a blanket name for a series of digital signal processors (DSPs) from Texas Instruments. It was introduced on April 8, 1983 through the TMS32010 processor, which was then the fastest DSP on the market.
The processor is ...
special-purpose processor series.
Architecture
The TMS9900 has three internal 16-bit
register
Register or registration may refer to:
Arts entertainment, and media Music
* Register (music), the relative "height" or range of a note, melody, part, instrument, etc.
* ''Register'', a 2017 album by Travis Miller
* Registration (organ), the ...
s —
Program counter
The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, is ...
(PC),
Status register
A status register, flag register, or condition code register (CCR) is a collection of status Flag (computing), flag bits for a Central processing unit, processor. Examples of such registers include FLAGS register (computing), FLAGS register in the ...
(ST), and Workspace Pointer register (WP).
The WP register
points
Point or points may refer to:
Places
* Point, Lewis, a peninsula in the Outer Hebrides, Scotland
* Point, Texas, a city in Rains County, Texas, United States
* Point, the NE tip and a ferry terminal of Lismore, Inner Hebrides, Scotland
* Point ...
to a base address in external
RAM
Ram, ram, or RAM may refer to:
Animals
* A male sheep
* Ram cichlid, a freshwater tropical fish
People
* Ram (given name)
* Ram (surname)
* Ram (director) (Ramsubramaniam), an Indian Tamil film director
* RAM (musician) (born 1974), Dutch
* Ra ...
where the processor's 16 general purpose user registers (each 16 bits wide) are kept. This architecture allows for quick
context switch
In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
ing; e.g. when a
subroutine
In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed.
Functions may ...
is entered, only the single workspace register needs to be changed instead of requiring registers to be saved individually. Bits are numbered unconventionally with the most significant bit being 0.
Addresses refer to bytes with
big endian
In computing, endianness, also known as byte sex, is the order or sequence of bytes of a word of digital data in computer memory. Endianness is primarily expressed as big-endian (BE) or little-endian (LE). A big-endian system stores the most sig ...
ordering convention. The TMS9900 is a classic 16 bit machine with an address space of 2
16 bytes (65,536 bytes or 32,768 words).
There is no concept of a stack and no stack pointer register. Instead, branch instructions exist that save the program counter to a register and change the register context. The 16 hardware and 16 software interrupt vectors each consist of a pair of PC and WP values, so the register context switch is automatically performed by an interrupt as well.
Instruction set and addressing
The TMS9900 has 69 instructions which are one, two or three words long and always word-aligned in memory. The instruction set is fairly
orthogonal
In mathematics, orthogonality is the generalization of the geometric notion of ''perpendicularity''.
By extension, orthogonality is also used to refer to the separation of specific features of a system. The term also has specialized meanings in ...
, meaning that with few exceptions, instructions can use all methods of accessing
operand
In mathematics, an operand is the object of a mathematical operation, i.e., it is the object or quantity that is operated on.
Example
The following arithmetic expression shows an example of operators and operands:
:3 + 6 = 9
In the above examp ...
s (addressing modes).
Addressing modes include Immediate (operand in instruction), Direct or "Symbolic" (operand address in instruction), Register (operand in workspace register), Register Indirect (operand address in workspace register) with or without auto-increment, Indexed (operand address in instruction indexed with workspace register content), and Program Counter Relative.
The most important dual-operand instructions (add, subtract, compare, move etc.) contain 2-bit addressing mode and 4-bit register selector fields for both source and destination operands. In the opcode, "Symbolic" mode is represented as Indexed mode with the register field set to 0, therefore workspace register 0 (WR0) cannot be used in Indexed mode. In less frequently used dual-operand instructions like XOR, the destination operand must be a workspace register (or workspace register pair in the case of multiply and divide instructions).
Flow control is facilitated through a group of one unconditional and twelve conditional Jump instructions. Jump targets are relative to PC with an offset of -128 to +127 word addresses.
For subroutine calls, the Branch and Load Workspace Pointer (BLWP) instruction loads new WP and PC values, then saves the values of WP, PC and ST to the (new) registers 13, 14 and 15 respectively. At the end of the subroutine, the Return Workspace Pointer (RTWP) restores these in reverse order. Using BLWP/RTWP, it is possible to nest subroutine calls despite the absence of a stack, however, the programmer needs to assign the appropriate register workspace explicitly.
The instruction set also contains a Branch and Link (BL) opcode that only saves PC to register 11 without changing WP. In this case, a branch instruction (B) using WR11 as the destination address can serve as the return opcode, but BL-type subroutines cannot be nested without the programmer taking actions to save the return address.
The TMS9900 supports an
execute instruction
In a computer instruction set architecture (ISA), an execute instruction is a machine language instruction which treats data as a machine instruction and executes it.
It can be considered a fourth mode of instruction sequencing after ordinary ...
"X" (eXecute). This instruction
executes
Capital punishment, also known as the death penalty, is the state-sanctioned practice of deliberately killing a person as a punishment for an actual or supposed crime, usually following an authorized, rule-governed process to conclude that t ...
the instruction in a register. It can be used for debugging (as a
breakpoint
In software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause.
More generally, a breakpoint is a means of acquiring knowle ...
instruction) and for creating indexed-opcode tables as used in byte-code interpreters.
The TMS9900 also supports the eXtended OPeration (XOP) instruction. XOP is given a number in the range 0-15 as well as a source address. When invoked, the instruction will perform a context switch through one of sixteen vectors at predefined locations in memory. The XOP instruction also places the effective address of the source operand in register 11 of the new workspace.
XOP is less flexible than a BLWP, as the transfer vectors have to be at fixed locations, but allows one source operand to be directly addressed rather than passed in a register or otherwise.
XOP can be used to implement a system call facility. In TI's DX10 operating system, XOP 15 invokes a system call. A programmer might define an assembler macro, for example SVC, which invokes XOP 15.
Another use of XOP was to implement instructions in software which might be handled by dedicated hardware in future versions of the 990 minicomputer series.
In typical comparisons with the
Intel 8086
The 8086 (also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus (allowi ...
, the TMS9900 had smaller programs. Some disadvantages were the small address space and need for fast RAM.
Implementation
The TMS9900 was implemented in an N-channel silicon gate MOS process,
which required +5 V, −5 V and +12 V power supplies and a four-phase (non-overlapping) clock with a maximum frequency of 3 MHz (333 ns cycle), usually generated from a 48 MHz crystal using a TIM9904 (aka 74LS362) clock generator chip.
The shortest instructions require eight clock cycles or 2.7 μs to complete (assuming 0 external wait cycles), many others run between 10 and 14 cycles (3.3...4.7 μs); the longest-running instruction (DIV) can take up to 124 cycles (41.3 μs).
The chip was packaged in a (then unusual) 64-pin, 0.9" wide
DIP. The comparatively large number of pins allowed for the 15-bit (word)
address bus
In computer architecture, a bus (shortened form of the Latin '' omnibus'', and historically also called data highway or databus) is a communication system that transfers data between components inside a computer, or between computers. This ex ...
and 16-bit
data bus
In computer architecture, a bus (shortened form of the Latin '' omnibus'', and historically also called data highway or databus) is a communication system that transfers data between components inside a computer, or between computers. This ex ...
to be brought out on dedicated pins without the use of multiplexing (unlike e.g. the
Intel 8086
The 8086 (also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus (allowi ...
CPU), keeping external memory connections simple. Contrary to the convention used by many other manufacturers, TI labeled the most significant address and data lines "A0" and "D0", respectively. All internal data paths and the
ALU are 16 bits wide.
The processor can be paused with the address bus tri-stated for external
direct memory access
Direct memory access (DMA) is a feature of computer systems and allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).
Without DMA, when the CPU is using programmed input/output, it is t ...
(DMA).
Memory accesses are always 16 bits wide, with the CPU automatically performing read-before-write operations for byte-wide accesses.
The hardware interrupt system supports a 4-bit interrupt priority input, which needed to be higher than the priority level stored in the status register (bits 12−15) in order for the interrupt request to be served. In addition, the ''/LOAD'' input provides a non-maskable interrupt facility with a dedicated vector.
The TMS9900 CPU also contains a 16-bit
shift register
A shift register is a type of digital circuit using a cascade of flip-flops where the output of one flip-flop is connected to the input of the next. They share a single clock signal, which causes the data stored in the system to shift from one loc ...
("CRU") designed for interfacing with external shift registers, with dedicated instructions supporting access to fields of 1−16 bit width out of a total of 4096 addressable bits.
Parallel peripherals can be attached in
memory-mapped fashion to the regular address and data bus.
Applications
![Tomy-Tutor-wControllers](https://upload.wikimedia.org/wikipedia/commons/9/9e/Tomy-Tutor-wControllers.jpg)
The TMS9900 was used in the
TI-99/4
The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. Based on the Texas Instruments TMS9900 microprocessor originally used in minicomputers, the TI-99/4 was the first 16-bit home computer. T ...
and
TI-99/4A
The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. Based on the Texas Instruments TMS9900 microprocessor originally used in minicomputers, the TI-99/4 was the first 16-bit home computer. ...
home computers. Unfortunately, to reduce the production costs, TI chose to use in these systems just 128 16-bit words of the fast kind of RAM that the TMS9900 could access directly. The rest of the memory was 16KB of
8-bit
In computer architecture, 8-bit Integer (computer science), integers or other Data (computing), data units are those that are 8 bits wide (1 octet (computing), octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) arc ...
DRAM
Dynamic random-access memory (dynamic RAM or DRAM) is a type of random-access semiconductor memory that stores each bit of data in a memory cell, usually consisting of a tiny capacitor and a transistor, both typically based on metal-oxid ...
that was accessible only indirectly through the video display controller, which crippled the performance of the TI-99/4.
TI developed the TM990 series of computer modules, including CPU, memory, I/O, which when plugged into a card frame could form a 16-bit minicomputer. These were typically used for process control. A microprocessor trainer was released in the form of the TM990/189.
TMS9900 Family Product Development
The second generation of the TMS9900 family of microprocessors was the TMS9995 which provided "functional performance at speeds 3 times faster than any previous 9900 family processor", largely due to the inclusion of instruction prefetch technology. In the home computer arena, the TMS9995 only found use in the
Tomy Tutor
The Tomy Tutor, originally sold in Japan as the and in the UK as the Grandstand Tutor, is a home computer produced by the Japanese toymaker Tomy. It is architecturally similar, but not identical, to the TI-99/4A, and uses a similar Texas Instrum ...
, an esoteric TI99-4/A upgrade called the
Geneve 9640
The Geneve 9640 is an enhanced TI-99/4A clone. It was sold by the company Myarc as a card to fit into the Texas Instruments TI Peripheral Expansion System. Released in 1987, it is in many ways similar to the earlier TI-99/8, which was in prototype ...
, and a project printed in ''Electronics Today'': the Powertran Cortex. It was planned to be used in the TI-99/2 & TI-99/8 computer systems, but neither advanced past the prototype stage.
TI later developed the more powerful TMS99000 family of microprocessors, 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.
The TMS99000 family includes two microprocessors,
the TMS99105A and the TMS99110A, which are identical except for the contents of on-chip macrostore ROM memory (macrostore memory contains added functions or instructions through emulation routines written in standard machine code). The on-chip ROM Macrostore in the TMS99110A microprocessor contains floating point instructions which are available as part of the machine language instruction set, while the baseline TMS99105A does not. Both chips can implement Macrostore instructions in an external ROM. A third member of the TMS99000 family, the TMS99120, was announced
but may never have been commercially produced. The on-chip ROM Macrostore in the TMS99120 was to contain run-time support routines for the PASCAL high-level language.
The instruction set for the TMS99000 family extends the 9900 instruction set while keeping compatibility. The additional instructions includes those for signed multiply and divide (first appearing in the TMS9995), long-word shift, add, and subtract; load status register, load workspace pointer, stack operations, multiprocessor support, bit manipulation. Members of the family can access 256KB of memory through code/data segmentation, and may use the TIM99610 memory mapper to address up to 16MiB. The architecture contains many other advances over the TMS9900 and TMS9995.
Variants
Image:TI_TMS9900_die.JPG, TMS9900
Image:TI_TMS9981_die.jpg, TMS9981
Image:Rochester_Electronics_TMS9995_die.JPG, TMS9995
Image:TI_TMS99105A_die.JPG, TMS99105A
Notes
References
External links
TMS9900 manuals and referencesfrom Bitsavers
{{Authority control
TI-99/4A
Texas Instruments microprocessors
16-bit microprocessors