ぴゅう太に連なるTI TMS9900プロセッサの行方(人知れず消えていったマイナーCPUを語ろう 第11回)

ガジェット PC
大原雄介

猫に傅くために原稿を書いて日銭を稼いでいる毎日。元は組み込み系のエンジニアだったのに、もうずいぶん遠い所まで来てしまった。

特集

コンピュータの歴史を暗部も含めてていねいに掘り起こすことで定評のある大原雄介さんによる連載11回目。今回はアナログ半導体の巨人、Texus InstrumentsのCPUの興亡について。



どうもTMS9900に関して言えば「これはメジャーだ」と主張する方がおられるようなので石を投げられるかもしれないが、そのアーキテクチャを貫く思想はともかくとしてアーキテクチャそのものはそれほど続かず、生んだ会社が途中でブン投げたというあたりはマイナーCPUの分類に入れても良いような気がする。

Texas InstrumentsことTIはどんな会社か

TI、正式にはTexas Instrumentsは、今ではアナログ半導体の巨人である。Gartnerの2022年通期の売上ランキングでは8位入りしており、同じくアナログ半導体大手であるAnalog Devicesに大きな差(同社の2022年の売上は120億1300万ドル:TIはForm 10-Kによれば200億2800万ドルである)を付けている。そしてその200億2800万ドルの内訳はAnalog 153億5900万ドル、Embedded Processing 32億6100万ドル、Other 14億800万ドルということで、もう間違いなくアナログ半導体の会社と考えて良いかと思う。

そんなTIだが、実は元々はコンピュータメーカーであった。

同社が現在の名前になったのは1951年のことだが、その前身は1930年に創業されたGSI(Geophysical Service Incorporated)という会社だった。名前からして何となく想像が付くが、このGSIは石油会社に油田検索などのサービスを提供する企業であった。油田を掘るためには、まず油田がどこにあるかを確定する必要がある。このための方法に弾性波探索(振動を与えて、それが伝わる様子を観測することで地下の状態を探る方法)があるが、GSIはその弾性波探索の観測データを処理する事を主目的とした会社であり、1970年初頭にはこの目的でASC(Advanced Scientific Computer)という独自のコンピュータを開発(したものの商業的に失敗)した。

1951年にTIに改称後、GSIのビジネスはTIの一部門に格下げになり、一旦売却後に買い戻し、再び1988年にHalliburton Company(スーツケースのハリバートンとは別会社)に売却してこの分野から手を引いているが、そんな訳で1970年代のTIというのはまだアナログ一辺倒というよりはむしろデジタルコンピュータの会社の傾向が強かった。集積回路に関する特許で有名なKilby PatentをJack Kilby氏博士が出願したのは1959年2月のこと。この当時はまだ同社は「強いて分類すれば」デジタル半導体というか、コンピュータメーカーだったと思う。

そんなTI、1972年にTI-960という16bitのミニコンピュータ(Photo01)を出荷開始する。

▲Photo01:出典はComputer History Museum

ちなみに発表そのものは1969年かそこらだったと記憶している。4MHz駆動のプロセッサであるが、これはTIのTTL ICで構築されていた。また早くもメモリにIntelの1101 DRAM(1Kbit)を採用するなど、当時としてはそこそこの性能のものだった。

これに続き、機能を強化する(乗除算を含む85命令を実装、標準4KW/最大64KWのメモリを搭載)TI-980を1970年には発表している(Photo02)。

Photo02:1970年のTI-980のフライヤー。ちなみに本体は当時のお値段で1万6700ドルだった。スキャンの状況がこれなので、真っ黒になっているのはご愛敬

このTI-980もまたTTL ICを組み合わせた構造になっていたが、この頃からミニコンピュータの世界ではCPUにLSIを使う方向に舵が切られていた。

例えばData Generalは同社の16bitミニコンピュータであるNovaシリーズをワンチップ化したmicroNOVAに置き換えようと試みたし(これは1977年に完成したがさっぱり売れなかった)、DECは16bitミニコンピュータのPDP-11を1970年に登場させるが、初期のPDP-11はTTLベースで構築されていたものの、1975年にはこれを5チップ化したLSI-11(チップにはWestern DigitalのMCP-1600が使われた)に切り替える。さらその後も高集積化を進め、FonzことF-11やJawsことJ-11というチップを開発するなど集積化を進めている。ちなみにF-11/J-11はチップというかパッケージとしては一つだが、ダイは2つ載っているちょっと珍しい構造である。

話を戻すと、TIもやはり同じように高集積化を進めるべきだと判断したらしい。後継となるTI-990シリーズで最初に投入されたTI-990/9とその改良版であるTI-990/10は引き続きTTLをベースに構築された(こちらはハイエンド向け機種)が、ローエンドのTI-990/4にはCPU基板をワンチップにまとめたCPUが利用された。これが今回のテーマであるTMS9900である。

TMS9900のアーキテクチャ

こういう経緯で開発されたTMS9900は、そんな訳でアーキテクチャは非常に綺麗というか、1970年代の16bit CISCらしい構成である(Photo03)。

▲Photo03:妙にコストダウンとか考えていない辺り、構造そのものは単純である。アドレスバスが15bitなのは、16bit wordだから64KBは15bitで表現できるため

ちなみに命令メモリは最大64KB、汎用レジスタ16個、Interruptは16レベルという構造。NMOSで製造され、動作周波数は3.3MHzとされる。もっともパイプライン構造には当然なっておらず、一番高速な命令でも8cycle、通常10~14cycle程度の処理時間が掛かるので、絶対的な性能としては「それなり」といったあたり。命令数は69個、アドレスモードは5種類が用意される(Photo04)。

▲Photo04:命令一覧。当然浮動小数点演算はないとして、既に除算を用意しているあたりがミニコンピュータ向けという気がする

まぁこのあたりまでは(絶対性能は兎も角)素性は良さそうな感じなのだが、ミニコンピュータ向けということでコストを考えなかった結果が64本のDIPパッケージである(Photo05)。

▲Photo05:電源は±5Vと12Vという3電源方式。Clock信号も4-Phaseで、何気にこの辺がちょっと面倒くさい(Clockに関してはTMI9904という4-phase clock generator/driverが提供されたので、これを使えばよかったが)

なにせアドレスバス(15本)とデータバス(16本)が多重もせずにそのまま出ているから、もちろんアドレス/データ分離とかを考えなくてよい分周辺回路はシンプルになるが、パッケージは大型化するし、コストも上がることになる。これはマイコン向けに展開するにあたって結構なネックとなった。

さて、TI-990シリーズに展開したTMS9900であるが、TIはこれが折角完成したのでもっと拡販しようと目論んだ様だ。TMS9900そのものは1976年から生産を開始しているが、1977年にはApple ComputerのApple ][やCommodoreのPET-2001、Tandy Radio ShackのTRS-80などが市場に登場しており、1979年にはAtari Model 400/800なども登場している。

ただこれらの機種はいずれも8bit CPUを搭載したモデルであり、16bit CPUを搭載した製品は(そもそも1チップの16bit CPUがほとんどなかったこともあって)存在しなかった(*1)。

*1:というとパナファコムのLKIT-16が1977年に販売されていた、という突っ込みが入りそうだが、これに搭載されていたMN1610はワールドワイドというかこの当時主戦場だった北米での販売実績はなく、事実上日本だけでしか展開されていない。あと当時アメリカではTV出力は必須で、モニタ一体型のPET-2001以外は家庭用TVに画面出力が出せるが、LKIT-16は標準でこの機能に欠けていたので、LKIT-16のことはちょっと別扱いにしたいと思う

なので、このパーソナルコンピュータのマーケットにTMS9900を搭載した製品を投入すれば、それなりにシェアが取れると考えたのだろう。

もっと些末な話をすると、当初TIはこのパーソナルコンピュータのマーケット向けに、TMS9985と呼ばれる8bitのワンチップCPUを開発していた(Photo06)。

▲Photo06:そのTMS9985をベースとしたTI-99プロトタイプの構成図。内部のデータバスが8bitであることが判る

ただこのTMS9985の開発に失敗したため、これをTMS9900に乗せ換えることにした模様だ。

そんな訳でTI-99/4と呼ばれるパーソナルコンピュータがやはり1979年に投入された(Photo07)。

▲Photo07:本体正面右はROMカートリッジのスロット。そして本体の向かって右側に拡張スロットが見える。出典はComputer History Museum

内部構造はこんな感じ(Photo08)。

▲Photo08:サウンドなどは16bit/8bitのBus Converter経由だが、Video ProcessorのTMS 9918Aは16bit Busの下半分を接続するという、ちょっと異なる接続法になっているのが判る。Photo06の構造と見比べると興味深い

このTI-99/4、CPUからは16bit Busが出るが、周辺回路はほとんどが8bit接続になっている。ただ、周辺回路を16bit Bus対応に作り直すのはコストが掛かりすぎると判断したためか、8bitでの接続になっている。

標準搭載されるメモリは、ROMが8KB、RAMはScratch Pad(CPUから直接アクセス可能)が256Byte+画面出力用に16KBとなっている。実はこのScratch Padだが、普通のRAM領域ではない。先ほどTMS9900は16個の汎用レジスタを持つと書いたが、物理的に搭載されているレジスタのうち、CPUからアクセスできるのはProgram Counter/Status Register/Workspace Pointerの3つしかない(Photo03に示されている:他にもShift RegisterとかInterrupt Registerとか幾つかあるが、これはCPUが内部で利用しているものでCPUからは触れない)。

では汎用レジスタはどこにあるか?というと、SRAM上に配される格好になる。つまりSRAM領域を汎用レジスタ的に使える仕組みだ(この際、SRAMのどこにレジスタが配されているかを示すのがWorkspace Pointerである。これを使うと、例えば割り込みが入った時にレジスタの内容をスタックに積む代わりに、Workspace Pointerの場所を変えるという方法が取れるのでちょっと便利である)。

Scratch Padはこのレジスタ領域の保存に使われており、プログラムから勝手に使う訳にはいかなかった。そこで実際には16KBの画面出力用のエリア(VDP RAM:Video Display Ram)の未使用領域を利用してプログラムを動かすほか、Scratch Padの未使用領域を(レジスタ領域を浸食しないように注意しながら)使うといった形で随分苦労したらしい。ただこれだけではちょっと大きなプログラムを動かすメモリが足りない。

拡張スロットを利用して4KB~32KBのメモリを拡張可能だった(ただし8bit Busで繋がっているため、このメモリは遅かった)が、他に4KBのシステムROMの上にピギーバック式にSRAMを追加する改造とか、後にはビデオコントローラをTSM9918Aからより大容量のメモリ(192KB)をサポートできるYamaha V9938(TMS9918AをベースにASCII/Microsoft/Yamahaで開発されたVDP。MSX2で採用された)に置き換えるという大規模な改造例も報告されている。まぁそれだけ大変だったわけだ。

このTI-99/4は1150ドルで発売されたが(モニタ込みだと1500ドル。実は当初TI-99/4のTV出力用アナログモジュレータがFCCの認可を取れず、仕方なく専用モニタと込みで販売された)、これは当時の価格としてもちょっと高め(1977年発売のTRS-80は、当時としては破格だったとはいえ僅か599ドルである。PET-2001は795ドルだった)である。

まぁApple ][の当初価格の1298ドルよりは安価だったが、1979年になると16KB RAM搭載のApple ][ Plusが1195ドルで販売されていたことを考えると、やはり割高感は否めない。それもあり、1981年6月にはテコ入れ策として廉価版のTI-99/Aが発売される(Photo09)。

▲Photo09:これはロンドンのScience Museumに展示されていたもの。キーボードの形状がだいぶ変わっているのが判る

廉価版といいつつ、ハードウェア構成そのものはTI-99/4もTI-99/4Aも全く同等で、外観的に異なるのはキーボード位のものである。ただこのTI-99/4Aは、その後外観を完全プラスチックに切り替えベージュ一色にするとともに、内部の機械的構造を簡素化、さらに電源も微妙にコストダウン(電源Onを示すLEDが省かれた)したTI-99/4A cost reduced version(非公式名称)が1983年6月にに投入。

ただこのcost reduced versionでは機械的構造を簡素化しすぎて信頼性に問題があったらしく、この辺を改良したTI-99/4A Quality Improved version(これも非公式名称)が1983年8月に投入されている。ただコストの大半はこうした外装ではなく内部構造にあり、こちらに手を入れていない以上コストダウンは難しい(このQuality Improved versionは、回路上でいくつかの部品に分かれていたものを集積するなど、若干ながら内部構造のコストダウンも行ったが、ドラスティックなコスト削減には繋がらなかった)。

Commodore VIC-20との価格競争

TI-99/4Aが発売された当初は確かにその値段の安さもあってよく売れたようだが、その1981年にCommodoreは大ヒット作であるVIC-20を全世界で販売開始する。こちらは299.95ドルと、TI-99/4Aの半額であった。

ここで問題なのは、VIC-20は299.95ドルでも利益が出る作りになっていたのに対し、TI-99/4AはTI-99/4の半額にした時点で既に赤字だったことだ。にもかかわらず、TIはここからVIC-20に対して果断に価格競争を挑む。1983年1月にCommodoreはVIC-20の実売価格を200ドル未満に引き下げ、これに対抗してTIは翌月TI-99A/4の価格を150ドルとする。

同年4月にはVIC-20はソフトウェアバンドルでの価格が99ドルとなり、TI-99A/4もこれに続く。さらに5月には周辺機器を3つ買うとPEB(Peripheral Expansion Box:周辺回路拡張ボックス)を無料進呈するキャンペーンを開始、8月には周辺機器を50%値下げして100ドル分の無料ソフトウェアを進呈、9月にはソフトウェアの価格も43%値下げしている。

こんなことをしていたら、ビジネスが続くはずもない。1983年6月19日付のNY Timesによれば、1983年の第2四半期決算で、TIのホームコンピュータのビジネスは1億ドル以上の損失を出したことが明らかにされ、この結果同社の株価は一旦50ドル以上も落ち込み、107ドルになった(その後116.25ドルまで持ち直した)としている。

株価を1/3以上叩き落とすという中々豪快な決算であるが、これは最早ビジネスとして成立しない。同年第3四半期もやはり1億1100万ドルの損失を計上した際に、TIはホームコンピュータのビジネスから撤退することを発表したところ、株価は25%上昇したというあたり、株主がこのビジネスをどう見ていたか良く判る。

TIはこのTI-99/4Aの派生型として、カラー表示機能を省いたTI-99/2や、より高性能なTI-99/6やTI-99/8、ミニコンピュータなどのターミナル用となるTI-99/7、TI-99/4Aの若干のコストダウン版であるTI-99/3、さらにはTI-99/4Aの後継であるTI-99/4BやTI-99/5といった製品を計画こそしており、一部プロトタイプなども存在したらしいが、これらは全てビジネス撤退に合わせてキャンセルになってしまった(まぁ当然という気はするが)。

そんな訳でTI-99/4や4Aは消えてしまった訳でが、ではTMS9900は?というと、1981年に後継となるTMS9995が発表される(Photo10)。

▲Photo10:Interruptは16レベルも要らないと判断されたのか、7レベルに削減されている。その代わり16個のSoftware Interruptのサポートとかクロックジェネレータの内蔵、16個のFlag RegisterやCRU(Communication Register Unit)などいろいろ追加機能は多い

こちらはTMS9900と後方互換性がある命令セットをサポートしているが、

・データバスは8bitに削減。この結果40pin DIPパッケージで提供。
・NMOSながら5V単一電源で動作
・256BytesのSRAMをオンチップで搭載(これは先に説明したScratch Pad用)

などTMS9900の使いにくさを改良した感がある。

また命令プリフェッチの機能を取り込んだり、外部バス幅が8bitに削減されたにも拘わらず内部のSRAMは高速動作が可能ということで、ちゃんとアーキテクチャを理解して最適化すればTMS9900より高速に実行可能だった。動作周波数は12MHzまで引き上げられ、TMS9900の69命令に加えて符号付き除算など4命令が追加されている。当初このTMS9995はTI-99/2とTI-99/8に採用予定であったが、最終的に利用されたのはホームコンピュータ向けだとトミー工業(現タカラトミー)のぴゅう太と、Myarcが開発したGeneve 9640というTI-99/4Aクローンのマシンだけであった。

さらにめげずにTIはTMS99000シリーズを開発する。型番が一桁増えたにも関わらず、引き続き16bitアーキテクチャであり、TMS9900との後方互換性もきちんと維持していた。TIとしてはこのTMS99000を、TI-990/10の置き換え用に開発していたようだ。TMS99000ファミリーにはTMS99105/TMS99110/TMS99120の3つがあるが、コアそのものは同一である。ここ(Photo11)にもあるように、命令数は85個まで増え、最大メモリ空間は256KBに増強。TMS9900比で5~12倍、TMS9995比で2倍の性能になると説明されている。

▲Photo11:Cycle timeは167nsなのでクロックは6MHzという計算になるのだが、これが12MHz駆動のTMS9995の2倍高速、というのは要するに命令処理にかかる時間がだいぶ短縮されたということになる。実際Photo04に示すようにTMS9900だとMOV命令は14cycleを要するが、TMS99000では3cycleになっている

また特権モードが搭載されたほか、メモリアクセスのLatencyも60ns未満となっている。加えて新たにMacrostoneと呼ばれるメモリ拡張機能が搭載された。一種のMicrocodeであって、TMS99105はこのMacrosotoneを搭載しないが、TMS99110は浮動小数点演算をこのMacrostoneで実装する形で搭載、TMS99120はPascalサポート命令をやはりMacrostoneで実装した。

ただこのMacrostoneはCPUの外にROMの形で実装も可能であり、それをオンチップROMとして実装したのがTMS99110/99120ということになる(ちなみにTMS99200は結局量産されなかった)。TIはこのTMS99100を搭載したTI-990をラインナップするが、悪いことに1980年に入るとミニコンピュータのマーケットも急速に32bitに移行していた。口火を切ったのはDECのVAX-11(1977年)だが、1980年にはData GeneralもMV/8000を発表してこれを追撃する。1984年にはMotorolaのMC68020、1985年にはIntel 80386が投入、翌年はMIPS R2000が発表されている。こうした中でTIのミニコンピュータビジネスは勢いを失い、思ったような成果を上げられずにこちらもビジネスを畳んでいる。

そしてそれ以外の用途でTMS99000シリーズは売れなかった。結局1980年代末にTMS99000シリーズも全て生産終了し、ここでTIの16bitプロセッサは「一旦」幕を閉じることになる。「一旦」と書いたのは、1992年に同社はMSP430と呼ばれる省電力の16bit MCUを発表し、現在も販売されているからだ。これは独自のCISCコアであるが、命令の直交性とかメモリアクセス周りの命令などに、TMS9900と同じ考え方を見ることも出来る。

ただそれは単に命令セットに対する考え方が近しいというだけであって、命令セットそのものに互換性はないし、目的も全く違っている。そもそもTMS9900の目指したマーケットが先細りしていることが判っていただろうに、それを無視してTMS99000シリーズまで突っ走ったあたりが、そこで終わってしまった理由である。それこそ前回のZilogの様に、後方互換性を維持しつつ32bit拡張していればまだ目があったろうに、と思わなくもない。

ただこの当時、TIはむしろ汎用プロセッサよりもDSPの方に未来があると考えていたようで、1983年にはTMS320シリーズのDSPを発表、ここからDSPに力を入れてゆく(それが一巡して、やっぱりCPUも必要だね、と判断された結果がMSP430シリーズの出現なのだろうと筆者は考えている)。まぁそんな訳で、1980年代の早い時期にブン投げられ消えてしまったのがTMS9900という訳だ。

《大原雄介》

大原雄介

猫に傅くために原稿を書いて日銭を稼いでいる毎日。元は組み込み系のエンジニアだったのに、もうずいぶん遠い所まで来てしまった。

特集

BECOME A MEMBER

『テクノエッジ アルファ』会員募集中

最新テック・ガジェット情報コミュニティ『テクノエッジ アルファ』を開設しました。会員専用Discrodサーバ参加権やイベント招待、会員限定コンテンツなど特典多数です。