TMS9900
TMS9900は、テキサス・インスツルメンツ(TI)が1976年にリリースした、世界的にも最も早い時期の16ビットマイクロプロセッサである。
概要
TMS9900はTIのミニコンピュータ 990 シリーズのCPUをワンチップ化したものである(なお世界初の16ビットマイクロプロセッサはナショナル セミコンダクターのIMP-16かAMD-2901ビットスライスプロセッサの16ビット構成版と思われる)。 同様に、ミニコンピュータのCPUをワンチップ化したマイクロプロセッサとしては、PDP-8をワンチップ化した Intersil 6100、データゼネラルの Nova をワンチップ化した フェアチャイルドセミコンダクター 9440 や データゼネラル mN601 などがある。IMS 6100 などとは違い、TMS9900 はよく考え抜かれた設計であった。
15 ビットのアドレスバスと 16 ビットのデータバスを持ち、3本の16ビットレジスタ(プログラムカウンタ(PC)、ワークスペースレジスタ(WP)、ステータスレジスタ(ST))を持つ。特徴的な機能の一つとして汎用レジスタは全てチップ外のメモリに保持される。ひとつだけあるWPがRAM上の16本のレジスタセット(各16ビット幅)を指している。したがって、サブルーチンに入るときも割り込みを処理するときも WPだけを変更するだけで済む。 コンテキストスイッチで多数のレジスタをセーブ・リストアしなければならないCPUとは大違いである。
これは、当時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として使用した。 しかし、それが市場に出てきたころには、ミニコンピュータの時代の終わりが近づいていたのであった。
関連項目
- ぴゅう太 - CPUにTMS9900上位互換のTMS9995を採用した。