
トランスピュータは、1980年代に開発された一連のマイクロプロセッサで、並列コンピューティングを目的としています。これを実現するために、各トランスピュータには独自の統合メモリと、他のトランスピュータとデータを交換するためのシリアル通信リンクが備わっていました。これらは、英国ブリストルに拠点を置く半導体企業Inmosによって設計および製造されました。[ 1 ]
1980年代後半のある時期、多くの人々[ 2 ]はトランスピュータを未来のコンピューティングのための次なる偉大な設計だと考えていた。トランスピュータはこの期待には応えなかったものの、トランスピュータのアーキテクチャはコンピュータアーキテクチャにおける新しいアイデアを刺激する上で非常に大きな影響力があり、そのいくつかは現代のシステムで異なる形で再登場している。[ 3 ]
1980年代初頭、従来のCPU(中央処理装置)は性能の限界に達したように見えた。それまでは、製造上の困難さによって、チップに搭載できる回路の量が制限されていた。製造プロセスの継続的な改善により、この制限はほぼ解消された。10年以内に、チップには設計者が使いこなせる以上の回路を搭載できるようになった。従来の複雑命令セットコンピュータ(CISC)の設計は性能の限界に達しつつあり、それを克服できるかどうかは明らかではなかった。[ 4 ]
唯一の解決策は並列処理の利用を増やすこと、つまり複数のCPUが連携して複数のタスクを同時に処理することであるように思われた。これは、そのようなマシンが複数のタスクを同時に実行できる能力、すなわちマルチタスク処理能力に依存していた。これは従来型のマイクロプロセッサ設計では一般的に処理が困難であったが、より新しい設計では効果的に実現できるようになった。将来的には、これがすべてのオペレーティングシステム(OS)の機能となることは明らかだった。
ほとんどのマルチタスク設計の副次的効果として、プロセスを物理的に異なるCPU上で実行できる場合が多く、この場合、マルチプロセッシングと呼ばれます。マルチプロセッシング用に設計された低コストのCPUを使用すれば、CPUを追加することでマシンの速度を向上させることができ、より高速なCPUを1つ使用するよりもはるかに安価に実現できる可能性があります。
最初のトランスピュータの設計は、コンピュータ科学者のデイビッド・メイと通信コンサルタントのロバート・ミルンによるものでした。1990年、メイはサウサンプトン大学から名誉理学博士号を授与され、1991年には王立協会のフェローに選出され、 1992年には物理学会のパターソン・メダルを受賞しました。当時インモスの主任エンジニアであったトニー・フュージは、T414トランスピュータに関する業績により、1987年にプリンス・フィリップ・デザイナーズ賞を受賞しました。[ 5 ]
トランスピュータは、並列コンピューティングシステムで使用するために特別に設計された最初の汎用マイクロプロセッサでした。目標は、電力とコストが異なるチップのファミリーを作成し、それらを配線して完全な並列コンピュータを構成できるようにすることでした。「トランジスタ」と「コンピュータ」を組み合わせた名前[ 6 ]は、個々のトランスピュータが果たす役割を示すために選ばれました。トランジスタが以前の設計で使用されていたように、多数のトランスピュータが、より大規模な統合システムの基本構成要素として使用されることになります。
当初の計画では、トランスピュータの単価をわずか数ドルに抑えることを目指していた。Inmos社は、トランスピュータがコンピュータのメインCPUとして動作することから、同一マシン内のディスクドライブのチャネルコントローラとして機能することまで、事実上あらゆる用途に利用されることを想定していた。従来のマシンでは、例えばディスクコントローラの処理能力は、ディスクにアクセスされていないときはアイドル状態となる。これに対し、トランスピュータシステムでは、これらのトランスピュータの余剰サイクルを他のタスクに利用できるため、マシン全体のパフォーマンスを大幅に向上させることができる。
トランスピュータは大容量のオンチップメモリを搭載しており、実質的にメモリ内プロセッサと言えるものでした。トランスピュータ1台だけでも、マイクロコントローラによく見られるような、動作に必要な回路がすべて内蔵されていました。その目的は、複雑なバスやマザーボードを必要とせず、トランスピュータ同士をできるだけ簡単に接続できるようにすることでした。電源とシンプルなクロック信号を供給するだけでよく、それ以外はほとんど何も必要ありませんでした。ランダムアクセスメモリ(RAM)、RAMコントローラ、バスサポート、さらにはリアルタイムオペレーティングシステム(RTOS)までが内蔵されていたのです。このようにして、最後のトランスピュータは、当時台頭しつつあったSoC市場における、単一の再利用可能なマイクロコア(RMC)となりました。
初代トランスピュータは、狭い面積で高い性能を実現するために、非常にシンプルでやや珍しいアーキテクチャを採用していました。データパスを制御する主な方法としてマイクロコードを使用していましたが、当時の他の設計とは異なり、多くの命令は1サイクルで実行されました。命令オペコードはマイクロコード読み出し専用メモリ(ROM)へのエントリポイントとして使用され、ROMからの出力はデータパスに直接供給されました。マルチサイクル命令の場合、データパスが最初のサイクルを実行している間に、マイクロコードは2番目のサイクルの4つの可能なオプションをデコードしました。これらのオプションのうちどれが実際に使用されるかの決定は、最初のサイクルの終わり近くで行われました。これにより、アーキテクチャを汎用的に保ちながら、非常に高速な動作が可能になりました。[ 7 ]
20 MHz のクロック周波数は 当時としてはかなり高く、設計者たちは、そのような高速クロック信号を基板上に分配することの実現可能性について非常に懸念していました。そこで、より低速な 5 MHz の外部クロックを使用し、これを位相同期ループ (PLL)で必要な内部周波数まで逓倍しました。内部クロックは実際には4 つの非重複位相を持っており、設計者はこれらの位相を自由に組み合わせることができたため、トランスピュータは実際には 80 MHzで動作していたと主張できます。面積を削減し速度を向上させるために、設計の多くの部分でダイナミック ロジックが使用されました。残念ながら、これらの方法は自動テスト パターン生成スキャン テストと組み合わせるのが難しいため、後の設計では採用されなくなりました。
プレンティス・ホールはトランスピュータの一般原理に関する書籍[ 8 ]を出版した。
トランスピュータの基本設計には、「os-link」[ 9 ] [ 10 ]と呼ばれるシリアルリンクが含まれており、これにより、最大 4 台の他のトランスピュータと 5、10、または 20 Mbit/sで通信することができました。これは 1980 年代としては非常に高速でした。任意の数のトランスピュータをリンク (差動配線で数十メートルまで敷設可能) を介して接続して、1 つのコンピューティングファームを形成できました。仮想的なデスクトップ マシンでは、2 台の「ローエンド」トランスピュータが(適切なハードウェアに接続された) シリアル ラインの一部で入出力(I/O) タスクを処理し、別のシリアル ラインでCPUとして動作する大型のトランスピュータと通信している可能性があります。
この方式で構築できるシステムの規模には限界があった。各トランスピュータは固定されたポイントツーポイント構成で相互に接続されていたため、より遠いトランスピュータにメッセージを送信するには、回線上の各チップでメッセージを中継する必要があった。これにより、リンクを経由する「ホップ」ごとに遅延が発生し、大規模なネットワークでは長い遅延につながった。この問題を解決するために、Inmosは最大32台のトランスピュータ(またはスイッチ)をさらに大規模なネットワークに接続できるゼロ遅延スイッチも提供した。
トランスピュータは、ほとんどのコンピュータと同様にメモリから起動できたが、ネットワークリンク経由で起動することもできた。チップ上の特別なピンであるBootFromROMは、どちらの方法を使用するかを示していた。チップがリセットされたときにBootFromROMがアサートされている場合、メモリの先頭から2バイトの命令から処理が開始された。この命令は通常、ブートコードへの逆ジャンプを実行するために使用された。このピンがアサートされていない場合、チップは代わりにネットワークリンクでバイトを受信するのを待った。最初に受信されるバイトは、続くコードの長さだった。後続のバイトは下位メモリにコピーされ、そのバイト数が受信されるとジャンプされた。
このシステムの基本的なコンセプトは、1台のトランスピュータを中央機関として、複数の接続されたトランスピュータを含むシステムを起動するというものでした。選択されたトランスピュータはBootFromROMが常時アクティブ状態となり、起動時にROMからブートプロセスを実行します。他のトランスピュータはBootFromROMがローレベルに固定され、待機状態となります。ローダーは中央のトランスピュータを起動し、中央のトランスピュータはネットワーク上の他のトランスピュータにブートコードの送信を開始します。また、各トランスピュータに送信するコードをカスタマイズすることも可能で、例えば、ハードドライブに接続されたトランスピュータにはデバイスドライバを送信できます。
このシステムには、 PEEKとPOKE用に予約された「特別な」コード長0と1も含まれていました。これにより、起動していないトランスピュータのRAMを検査したり変更したりすることができました。PEEKを実行してメモリアドレスを指定した後、またはPOKEを実行してアドレスと1ワードのデータを指定すると、トランスピュータはブートストラップを待機する状態に戻りました。このメカニズムは一般的にデバッグに使用されました。
追加された回路は、リンク上のトラフィックをスケジュールしました。通信を待機しているプロセスは、ネットワーク回路が読み書きを完了するまで自動的に一時停止します。その後、トランスピュータ上で実行されている他のプロセスに処理時間が割り当てられます。リアルタイムおよびマルチプロセッサ動作を改善するために、 2つの優先度レベルが設けられました。1つのトランスピュータ上で実行されているプログラム間の通信には、メモリ内の仮想ネットワークリンクとして実装された同じ論理システムが使用されました。そのため、入力または出力を要求するプログラムは、操作が完了するまで自動的に一時停止します。これは通常、ハードウェアのアービターとしてオペレーティングシステムが処理する必要のあるタスクです。トランスピュータ上のオペレーティングシステムはスケジューリングを処理する必要はありません。チップ自体にOSが内蔵されていると考えることができます。
トランスピュータのコアロジックは、これらの機能をすべて1つのチップに収めるために、ほとんどのCPUよりも単純でした。その比較的簡素な性質と、当時マーケティング用語として人気があったことから、一部ではRISC( Reduced Instruction Set Computer )と呼ばれていましたが、マイクロコードが多用され、レジスタセットが限られ、メモリ間命令が複雑であったため、CISCの範疇にしっかりと位置づけられます。レジスタを多用するロード/ストアRISC CPUとは異なり、トランスピュータにはスタックとして動作する3つのデータレジスタしかありませんでした。さらに、ワークスペースポインタは、命令とで簡単にアクセスできる従来のメモリスタックを指していました。これにより、ワークスペースポインタを別のプロセスが使用するメモリに変更するだけで、非常に高速なコンテキストスイッチが可能になりました(これは、 TMS9900などの当時の多くの設計で使用されていた方法です)。トランスピュータがコンテキストスイッチを実行できる場合、Jumpなどの特定の命令以降は、3つのレジスタスタックの内容は保持されませんでした。Load LocalStore Local
トランスピュータの命令セットは、オペコードとオペランドのニブルから組み立てられた 8 ビット命令で構成されていました。上位ニブルには 16 個の基本命令コードが含まれており、これは市販されている最小限の命令セットを持つコンピュータとしてはごく少数です。下位ニブルには、ワークスペース (メモリ スタック) ポインタに対するオフセットとして一般的に使用される 1 つの即値定数オペランドが含まれていました。2 つのプレフィックス命令により、下位ニブルを後続の命令のオペランドに付加することで、より大きな定数を構築できました。さらに、命令コードOperate ( Opr) によって追加の命令がサポートされ、定数オペランドを拡張ゼロ オペランド オペコードとしてデコードすることで、トランスピュータの新しい実装が導入されるにつれて、ほぼ無限かつ容易に命令セットを拡張することができました。
16個の「主要な」1オペランド命令は以下のとおりです。
これらの命令はすべて、オフセットまたは算術定数を表す定数を受け取ります。この定数が16未満の場合、これらの命令はすべて1バイトにコード化されます。
最初の16個の「二次」ゼロオペランド命令(OPRプライマリ命令を使用)は以下のとおりです。


複数のトランスピュータ システムのプロトタイプ作成、構築、構成を容易にするため、Inmos は1987 年にTRAM (TRAnsputer Module) 規格を導入しました。TRAM は基本的に、トランスピュータと、オプションで外部メモリや周辺機器を含むビルディング ブロックドーター ボードであり、電源、トランスピュータ リンク、クロック、システム 信号を提供するシンプルな標準化されたコネクタを備えていました。TRAM にはさまざまなサイズが定義されており、基本サイズ 1 TRAM (3.66 インチ x 1.05 インチ) からサイズ 8 (3.66 インチ x 8.75 インチ) まであります。Inmos は、Industry Standard Architecture (ISA)、MicroChannel、VMEbusなどのさまざまなホスト バス用のTRAMマザー ボードを製造しました。TRAM リンクは 10 Mbit/s または 20 Mbit/s で動作します。[ 11 ]
トランスピュータは、通信逐次プロセス(CSP)プロセス計算に基づくプログラミング言語occamを使用してプログラムされることを想定していました。[ 12 ]トランスピュータは、 PascalやCのような言語を実行するために構築された同時代のCISC設計よりも、特にoccamを実行するために構築されました。Occamは、言語の基本部分として、並行処理とチャネルベースのプロセス間またはプロセッサ間通信をサポートしていました。チップに組み込まれた並列処理と通信、そしてそれと直接やり取りする言語により、デバイスコントローラなどのコードを書くことは容易になりました。最も基本的なコードでさえ、シリアルポートを監視してI/Oを行い、データがない場合は自動的にスリープすることができました。
トランスピュータ向けの最初のOccam開発環境は、Inmos D700トランスピュータ開発システム(TDS)でした。これは、エディタ、コンパイラ、リンカ、および(事後)デバッガを統合した、型破りな開発環境でした。TDSはOccamで書かれたトランスピュータアプリケーションでした。TDSのテキストエディタは、コードブロックを非表示にしたり表示したりしてコードの構造をより明確にする折りたたみ式エディタであったことが特筆すべき点です。残念ながら、馴染みのないプログラミング言語と、同様に馴染みのない開発環境の組み合わせは、トランスピュータの初期の普及には全く役立ちませんでした。その後、Inmosはより一般的なOccamクロスコンパイラであるOccam 2ツールセットをリリースしました。
C、 FORTRAN、Ada、Forth、Pascalといったより一般的なプログラミング言語の実装も、後にInmos社とサードパーティベンダーの両方からリリースされました。これらには通常、 言語拡張機能やライブラリが含まれており、洗練されてはいないものの、オッカムの原理に似た並行処理とチャネルベースの通信を提供していました。
トランスピュータが仮想メモリをサポートしていなかったため、主流のUnixオペレーティングシステムの移植は困難だったが、 Unixライクなオペレーティングシステム( Whitesmiths社のMinixやIdrisなど)の移植版は開発された。また、 Perihelion Software社は、マルチトランスピュータシステム向けに、高度なUnixライクな分散オペレーティングシステムであるHeliosを開発した。
最初のトランスピュータは1983年に発表され、1984年に発売された。
マイクロコントローラのようなデバイスとしての役割にふさわしく、トランスピュータにはオンボードRAMと内蔵RAMコントローラが搭載されており、追加のハードウェアなしでメモリを増設することが可能でした。他の設計とは異なり、トランスピュータにはI/Oラインは搭載されていませんでした。I/Oラインは、既存のシリアルリンクにハードウェアを接続して追加する方式でした。従来のプロセッサの割り込みラインに似た「イベント」ラインが1本ありました。プログラムはチャネルとして扱われ、イベントチャネルから「入力」を行い、イベントラインがアサートされた後にのみ処理を続行できました。
すべてのトランスピュータは外部の5MHz クロック入力で動作し、このクロックが逓倍されてプロセッサクロックとして供給された。
そのトランスピュータには、メモリ管理ユニット(MMU)や仮想メモリシステムは搭載されていなかった。
トランスピュータの各バリアント(開発中止となったT9000を除く)は、 16ビットのT2シリーズ、32ビットのT4シリーズ、そして64ビットIEEE754浮動小数点演算に対応した32ビットのT8シリーズの3つのグループに分類できる。
プロトタイプの16ビットトランスピュータはS43で、スケジューラとリンク上のDMA制御ブロック転送が欠けていた。発売当初は、T212とM212(後者はオンボードディスクコントローラ付き)が16ビット製品だった。T212は17.5MHzと20MHzの プロセッサクロック速度で提供された。T212は、オンチップRAMが2KBから4KBに拡張されたT222、そして後にT225に置き換えられた。これにより、デバッグブレークポイントのサポートが追加された(命令を拡張することによって)。 J 0)に加えて、T800命令セットからの追加命令もいくつか含まれていました。T222とT225はどちらも20MHzで動作しました 。
1985年10月に発売されたT414は、 90万個のトランジスタ相当数を使用し、1.5マイクロメートルの微細加工で製造されました。32ビット設計で、32ビット単位のデータを処理し、最大4GB のメインメモリをアドレス指定できました。[ 13 ]当初、最初の32ビット版はT424になる予定でしたが、製造上の問題により、 当初予定していた4KBではなく2KBのオンボードRAMを搭載したT414として再設計されました 。T414は15MHzと20MHzのバリエーションがありました。RAMは後にT425(20、25、30MHzのバリエーション)で 4KBに戻され、さらに J 0ブレークポイントのサポートと追加のT800命令。 1989年9月にリリースされたT400は、組み込みシステム市場向けに設計された、2KBのメモリと4つではなく2つのリンクを備えた、低価格の20MHz T425派生機種でした。
1987年に発表された第2世代のT800トランスピュータは、拡張された命令セットを備えていました。最も重要な追加機能は、64ビット浮動小数点演算ユニット(FPU)と、 IEEE 754-1985浮動小数点規格を実装した3つの浮動小数点レジスタの追加でした。また、 4KBのオンボードRAMを搭載し、20MHz版と25MHz版が用意されていました。ブレークポイント機能は、後のT801とT805 で追加され、T801はパフォーマンス向上のためアドレスバスとデータバスが分離されていました。T805は後に30MHz版も発売されました。
改良型のT810が計画されており、より多くのRAM、より多くの高速なリンク、追加の命令、改良されたマイクロコードを備える予定だったが、1990年頃に中止された。
Inmos社は、トランスピュータプロセッサ向けのさまざまなサポートチップも製造しており、例えば、32ウェイリンクスイッチのC004や、トランスピュータリンクを8ビットデータバスに接続できるようにする「リンクアダプタ」のC011およびC012などが挙げられる。
Inmos の当初の戦略の一部は、CPU を非常に小型かつ安価にして、他のロジックと 1 つのデバイスに組み合わせられるようにすることだった。現在ではシステム オン チップ(SoC) と呼ばれるものが普及しているが、1980 年代初頭にはこの概念はほとんど知られていなかった。1983 年頃に、M212とTV-toy という2 つのプロジェクトが開始された。M212 は、ST 506 および ST 412 Shugart 規格用のディスク コントローラを追加した標準の T212 コアに基づいていた。TV-toy はビデオゲーム コンソールのベースとなるもので、Inmos とSinclair Researchの共同プロジェクトだった。
T212およびT414/T424トランスピュータのリンクにはハードウェアDMAエンジンが搭載されており、他のプロセスの実行と並行してデータ転送を行うことができました。この設計の派生版であるT400(後に同名のトランスピュータが発売されたが、これとは異なる)では、CPUがこれらのデータ転送を処理するように設計されました。4つのリンクエンジンがCPU全体とほぼ同じサイズだったため、この設計によりデバイスのサイズが大幅に縮小されました。T400は、当時システムオンシリコン(SOS)デバイスと呼ばれ、現在ではシステムオンチップ(SoC)として広く知られているデバイスのコアとして使用される予定でした。この設計がTV-toyの一部となるはずでした。このプロジェクトは1985年に中止されました。
以前のSoCプロジェクトは限定的な成功しか収めていなかったものの(M212は一時的に販売されたものの)、多くの設計者は依然としてそのコンセプトを強く信じており、1987年にトランスピュータCPUの8ビット版とステートマシンに基づく構成可能なロジックを組み合わせた新しいプロジェクト、T100が開始された。トランスピュータ命令セットは8ビット命令に基づいており、8ビットの倍数であればどのワードサイズでも容易に使用できる。T100のターゲット市場はFuturebusなどのバスコントローラと、標準リンクアダプタ(C011など)のアップグレードであった。このプロジェクトは、T840(後にT9000のベースとなる)の開発が開始された際に中止された。
TPCOREは、フィールドプログラマブルゲートアレイ(FPGA)上で動作するOSリンクを含むトランスピュータの実装である。[ 9 ] [ 14 ]

Inmosは、 T9000(開発中のコードネームはH1 )の導入により、T8シリーズ・トランスピュータの性能を向上させた。T9000はT800と多くの機能を共有していたが、設計の一部をハードウェアに移行し、スーパースカラをサポートする機能を追加した。以前のモデルとは異なり、T9000はRAMの代わりに真の16KB 高速キャッシュ(ランダム置換方式)を備えていたが、これをメモリとしても使用でき、これらすべてを処理するMMUのような機能(PMIと呼ばれる)も搭載していた。さらに高速化のため、T9000は以前のバージョンのようにスタックの上位32箇所ではなく、上位32箇所をキャッシュした。

T9000は、さらに高速化するために5段パイプラインを採用した。興味深い追加機能として、グルーパー[ 15 ]があり、これはキャッシュから命令を収集し、最大8バイトのより大きなパッケージにグループ化してパイプラインをより高速に供給した。グループは、より高速なCPUで動作する単一の大きな命令であるかのように、1サイクルで完了した。
リンク システムは新しい 100 MHz モードにアップグレードされましたが、以前のシステムとは異なり、リンクは下位互換性がなくなりました。この新しいパケット ベースのリンク プロトコルはDS-Link [ 16 ]と呼ばれ、後にIEEE 1355シリアル相互接続規格の基礎となりました。T9000 では、VCP (Virtual Channel Processor) と呼ばれるリンク ルーティング ハードウェアも追加され、リンクがポイント ツー ポイントから真のネットワークに変更され、リンク上に任意の数の仮想チャネルを作成できるようになりました。これにより、プログラムは接続の物理的なレイアウトを意識する必要がなくなりました。C104 32 ウェイ クロスバー スイッチやC101リンク アダプタなど、さまざまな DS-Link サポート チップも開発されました。
T9000の開発は長期間遅延したため、発売される頃には既に高速なロード/ストア方式のプロセッサに性能で追い抜かれていた。T800の10倍の性能向上という目標は、T9000自身も達成できず、最終的にプロジェクトが中止された時点でも、50MHz動作時でわずか36MIPS程度の性能しか得られていなかった 。こうした開発遅延から、「T9000に最適なホストアーキテクチャはオーバーヘッドプロジェクターだ」という皮肉めいたジョークが生まれたほどだ。
これはInmosにとって負担が大きすぎ、開発を継続するための資金が不足していた。この頃には、同社はSGS-Thomson(現在のSTMicroelectronics)に買収されており、SGS-Thomsonは組み込みシステム市場に注力していたため、T9000プロジェクトは最終的に中止された。しかし、T9000のために開発された技術の一部を用いて、組み込みアプリケーション向けに全面的に再設計された32ビットトランスピュータであるST20シリーズが後に製造された。ST20コアは、セットトップボックスや全地球測位システム(GPS)アプリケーション向けのチップセットに組み込まれた。
ST20は厳密にはトランスピュータではないが、T4とT9の影響を強く受けており、おそらく最後のトランスピュータであるT450の基礎を形成した。ST20の使命は、当時台頭しつつあったSoC市場で再利用可能なコアとなることだった。ST20の元の名前は再利用可能なマイクロコア(RMC)だった。アーキテクチャは、マイクロコード制御のデータパスを備えたオリジナルのT4アーキテクチャをゆるやかにベースにしていた。しかし、設計言語としてVHDLを使用し、最適化(および書き直された)マイクロコードコンパイラを使用した完全な再設計だった。このプロジェクトは、T9が多くのアプリケーションには大きすぎると認識された1990年にはすでに構想されていた。実際の設計作業は1992年半ばに始まった。トラップを介してソフトウェアで複雑な命令を実装した非常にシンプルなRISCスタイルのCPUから、概念的にはトマスロアルゴリズムに似たかなり複雑なスーパースカラ設計まで、いくつかの試作設計が行われた。最終的な設計は、パフォーマンス向上のためにいくつかの単純な命令グループ化とワークスペースキャッシュが追加されたものの、オリジナルのT4コアと非常によく似ていた。

トランスピュータは、当時の多くの設計と比べてシンプルながら高性能だったものの、CPUとマイクロコントローラの両方の役割で広く使われるという目標には到底届かなかった。マイクロコントローラ市場は8ビットマシンが主流で、コストが最も重要な考慮事項だった。そのため、T2でさえ、ほとんどのユーザーにとっては高性能すぎ、高価すぎたのだ。
デスクトップコンピュータやワークステーションの分野では、トランスピュータはかなり高速でした( 20 MHz で毎秒約 1,000 万命令 (MIPS) で動作)。これは 1980 年代初頭としては優れた性能でしたが、浮動小数点演算ユニット (FPU) を搭載した T800 が出荷される頃には、他の RISC 設計がそれを凌駕していました。計画通りに複数のトランスピュータを使用していれば、この問題は大幅に軽減できたはずですが、T800 は発売当初に 1 台あたり約 400 ドルもしたため、価格対性能比は劣っていました。トランスピュータをベースとしたワークステーション システムはほとんど設計されず、最も注目すべきはAtari Transputer Workstationでしょう。
トランスピュータは、大規模並列コンピューティングの分野でより大きな成功を収め、1980年代後半には複数のベンダーがトランスピュータベースのシステムを製造しました。これには、Meiko Scientific(元Inmosの従業員によって設立)、Floating Point Systems、Parsytec、[ 17 ]、およびParsysが含まれます。英国のいくつかの学術機関は、ブリストル工科大学のブリストル・トランスピュータ・センターやエジンバラ大学のエジンバラ・コンカレント・スーパーコンピュータ・プロジェクトなど、トランスピュータベースの並列システムの応用に関する研究活動を開始しました。また、 DESYのハドロン電子リング・アニュラージュ(HERA)衝突型加速器の高エネルギー物理ZEUS実験のデータ取得システムと第2レベルトリガーシステムは、複数のサブシステムに分割された300を超える同期クロックのトランスピュータのネットワークに基づいていました。これらは、カスタム検出器エレクトロニクスの読み出しと物理イベント選択のための再構成アルゴリズムの両方を制御しました。
トランスピュータの並列処理能力は、 1990年代初頭に世界最大の印刷会社であるRRドネリー・アンド・サンズ社によって、画像処理に商業的に活用された。デジタル画像を印刷用に迅速に変換できる能力は、同社に競合他社に対する大きな優位性をもたらした。この開発は、RRドネリー・テクノロジーセンターのマイケル・ベングトソン氏が主導した。数年後には、デスクトップコンピュータの処理能力さえも向上し、同社にとって専用のマルチプロセッシングシステムは不要となった。
ドイツの企業Jäger Messtechnikは、初期のADwinリアルタイムデータ収集および制御製品にトランスピュータを使用していた。[ 18 ]
フランスの企業が、最大144台のT800およびT400トランスピュータを搭載したスーパーコンピュータ「アーキペル・ボルボックス」を開発した。このスーパーコンピュータは、UNIXを実行するシリコン・グラフィックス社のIndigo2と、ボルボックスのバックプレーンと接続する専用カードによって制御されていた。
トランスピュータは、シーメンス/テクトロニクスのK1103のようなプロトコルアナライザや、アレイアーキテクチャがレーダーなどの用途に適しており、シリアルリンク(1980年代には高速だった)がサブシステム通信のコストと重量を削減するのに役立った軍事用途にも利用された。
トランスピュータは、ブリストルの Division Limited が製造した ProVision 100 システムなどの仮想現実関連製品にも登場しました。このシステムは、 Intel i860、80486 / 33、東芝HSP プロセッサと T805 または T425 トランスピュータを組み合わせ、レンダリング エンジンを実装し、PC、Sun SPARCstation、またはVAXシステムからサーバーとしてアクセスできるようにしました。[ 19 ] [ 20 ]
アストリウム・サテライト社とCNESが開発した欧州の小型衛星プラットフォームであるMyriadeは、ピカールなどの衛星で使用されており、約4MIPSの性能を持つT805をベースとしており、2015年頃まで生産が継続される予定です。[ 21 ] [ 22 ]
通信と計算の非同期動作により、ベインの「非同期多項式零点探索」アルゴリズムなどの非同期アルゴリズムの開発が可能になった。[ 23 ]非同期アルゴリズムの分野、および現在のアルゴリズムの非同期実装は、エクサスケールコンピューティングへの移行において重要な役割を果たす可能性が高い。
高エネルギー過渡現象探査機2号(HETE-2)宇宙船は、4×T805トランスピュータと8×DSP56001を使用し、毎秒約1億命令(MIPS)の性能を実現した。[ 24 ]
内部並列性の向上は、従来のCPU設計の改良を推進する原動力の一つでした。トランスピュータで使用されていたような明示的なスレッドレベルの並列性ではなく、CPU設計では命令レベルでの暗黙的な並列性を活用し、コードシーケンスのデータ依存性を調べて、複数の独立した命令を異なる実行ユニットに発行しました。これはスーパースカラ処理と呼ばれます。スーパースカラプロセッサは、順次構築されたコード断片の実行を最適化するのに適しています。スーパースカラ処理と投機的実行の組み合わせにより、主にPascal、Fortran、C、C++で記述された既存のコード群に対して、目に見えるパフォーマンス向上が実現しました。既存のコードに対してこのような大幅かつ定期的なパフォーマンス向上があったため、タスクレベルの並列性をより多く活用できる言語やコーディングスタイルでソフトウェアを書き直すインセンティブはほとんどありませんでした。
しかしながら、並列プロセッサが協調して動作するモデルは、 21世紀のスーパーコンピュータ設計を席巻するクラスタコンピューティングシステムにおいて依然として見られる。トランスピュータアーキテクチャとは異なり、これらのシステムの処理ユニットは通常、大量のメモリとディスクストレージにアクセスできるスーパースカラCPUを使用し、従来のオペレーティングシステムとネットワークインターフェースを実行する。ノードがより複雑になるため、このようなシステムにおける並列処理の調整に使用されるソフトウェアアーキテクチャは、トランスピュータアーキテクチャの場合よりもはるかに大規模になるのが一般的である。
トランスピュータの根本的な動機は依然として存在しているものの、トランジスタ数の倍増が繰り返されることで20年以上にわたり覆い隠されてきた。必然的に、マイクロプロセッサの設計者たちは、技術のスケーリングが限界に達し始めたのとほぼ同時期に、増大した物理的リソースの使い道が尽きてしまった。消費電力、ひいては放熱の必要性から、クロック周波数のさらなる向上は不可能となった。こうした要因が、業界をInmosが提案したソリューションと本質的にほとんど変わらない方向へと導いたのである。
世界で最も強力なスーパーコンピュータのいくつかは、コロンビア大学の設計に基づいてIBM Blue Geneとして構築されたもので、トランスピュータという夢を現実世界で具現化したものである。これらは、同一の、比較的低性能なSoC(システムオンチップ)を大規模に組み合わせたものである。
最近のトレンドでは、トランジスタのジレンマを、Inmosにとっても未来的な方法で解決しようと試みている。CPUダイにコンポーネントを追加し、1つのシステムに複数のダイを配置するだけでなく、現代のプロセッサは、1つのダイに複数のコアを配置することが増えている。トランスピュータの設計者は、トランジスタの予算内に1つのコアさえ収めるのに苦労した。今日では、トランジスタ密度が1000倍に増加した設計者は、通常、多くのコアを配置できる。最も最近の商用開発の1つは、 XMOS社から登場したもので、トランスピュータとInmosに強く共鳴する組み込みマルチコアマルチスレッドプロセッサのファミリーを開発した。Cellプロセッサ、Adapteva Epiphanyアーキテクチャ、Tileraなど、チップ上のネットワーク(NoC)のアプローチを採用したマルチコア/メニーコアプロセッサの新たなクラスが登場している。
トランスピュータとインモスは、英国ブリストルをマイクロエレクトロニクス設計とイノベーションの中心地として確立するのに貢献した。