TMS9900

TMS9900は、テキサス・インスツルメンツ(TI)が1976年にリリースした、世界的にも最も早い時期の16ビットマイクロプロセッサである。
概要.
TMS9900はTIのミニコンピュータ 990 シリーズのCPUをワンチップ化したものである（なお世界初の16ビットマイクロプロセッサはナショナル セミコンダクターのIMP-16と思われる。1975年にはパナファコムMN1610（PANAFACOM Lkit-16 に使用）もある）。
同様に、ミニコンピュータのCPUをワンチップ化したマイクロプロセッサとしては、PDP-8をワンチップ化した Intersil IM6100、データゼネラルの Novaをワンチップ化した フェアチャイルドセミコンダクター 9440 や データゼネラル mN601（microNova） などがある。IM6100 などとは違い、TMS9900 はよく考え抜かれた設計であった。
15 ビットのアドレスバスと 16 ビットのデータバスを持ち、3本の16ビットレジスタ(プログラムカウンタ(PC)、ワークスペースレジスタ(WP)、ステータスレジスタ(ST))を持つ。特徴的な機能の一つとして汎用レジスタは全てチップ外のメモリに保持されるということが挙げられる。ひとつだけあるWPがRAM上の16本のレジスタセット(各16ビット幅)を指している為、サブルーチンに入るときや割り込みを処理するときなど、コンテキストスイッチなどにかかるコストが低く済むという特徴がある。
これは、CPUよりもRAMの方が速かった当時では妥当な設計だったと言える。
他にもINMOSのトランスピュータなどは、同じくコンテキストスイッチを高速化する目的でキャッシュやローテーティング・バッファを使用し、同様の設計を行っている。
また、650xシリーズもインデックスレジスタを使うなどよく似た考え方で設計されている。
しかし、TMS9900の設計はこの考えを最も推し進めたものであった。
他にも良い点はある。
割り込み処理機能や命令セットは洗練されていた。
シリアルI/Oはアドレスを指定することで使用できた。
また、Intel 8086と比較すると、TMS9900はもっと小さくて高速なプログラムを書くことが出来た。
問題点はアドレス空間が小さいことと、高速なRAMを必要とすることである。
TMS9900には'X'(eXecute)命令という特徴的な命令が存在し、レジスタが指しているアドレスに格納された命令を実行することが可能になっている。
これを使うとコードを逐次的でない順番で実行することが可能となる。
TMS9900 はTI-99/4 と TI-99/4Aで使われた。
だが、コストを抑えるためにTIは8ビットのDRAMを使ったため、これらのシステムの性能が低下してしまった。
TIがほとんどサポートしなかったにもかかわらず、TMS9900は一時期8086をしのぐ販売個数を示した。
TIは後にもっと強力なTMS99000を開発し、コスト削減のために同社の 990/10A ミニコンピュータ のCPUとして使用した。
しかし、それが市場に出てきたころには、ミニコンピュータの時代の終わりが近づいていたのであった。