トランスピュータ:並列処理の先駆けとなった革新的なマイクロプロセッサ
トランスピュータは、
1980年代に
イギリスのInmos社によって開発された、並列コンピューティングに特化した
マイクロプロセッサアーキテクチャです。当時、従来の
CPUの性能限界が認識される中、複数のプロセッサを連携させて並列処理を行うことで、性能向上が期待されました。トランスピュータは、この課題に対する革新的なソリューションとして注目を集めました。
開発の背景
1980年代初頭、
集積回路技術の進歩により、チップに搭載できる回路の量が飛躍的に増加しました。しかし、従来の
CISC型
CPUは性能の限界に近づいており、並列処理による性能向上が必要不可欠と考えられました。複数の
マイクロプロセッサを連携させ、複数のタスクを同時に処理する
マルチプロセッシングは、当時の最先端技術であり、低コストで高性能なシステムを構築するための鍵とされました。デイヴィッド・メイとロバート・ミルンによって設計された最初のトランスピュータは、このような背景のもと、誕生しました。
トランスピュータのデザイン
トランスピュータ(
トランジスタ+コンピュータ)は、並列コンピューティングに特化した初の汎用
マイクロプロセッサでした。その設計思想は、様々な機能や価格帯のチップを組み合わせて並列コンピュータを構成することにありました。各チップは
トランジスタのように組み合わされ、役割を果たすことからトランスピュータと名付けられました。当初の計画では、低コストで大量生産され、コンピュータのメイン
CPUだけでなく、周辺機器のコントローラなど、あらゆる場所での利用が想定されていました。各トランスピュータは単独で動作できる回路を備えており、
マイクロコントローラに似た特性を持っていました。また、複雑なバスを必要とせず、他のトランスピュータとの接続が容易で、電源やクロックの供給も簡単でした。RAMやRAMコントローラ、RTOSも内蔵されており、システム構築を簡略化できる点が大きな特徴でした。
トランスピュータのアーキテクチャ
トランスピュータのアーキテクチャは、当時の一般的なプロセッサとは異なり、
マイクロプログラム方式でデータ経路を制御し、ほとんどの命令を1サイクルで実行できるように設計されていました。これにより、高速な動作と省面積化を両立させることができました。20MHzという当時としては高速なクロック周波数に対応するため、外部クロックを低く設定し、内部でPLLを使用して周波数を4倍にしています。また、内部の
デジタル回路には、一般的な静的論理回路ではなく、動的論理回路の一種である4相論理を使用しており、高速化と省面積化に貢献していました。
トランスピュータのリンク
トランスピュータの基本設計として、他のトランスピュータと接続するための4つのシリアルリンクが搭載されていました。各リンクは当時としては高速な5Mbit/s、10Mbit/s、20Mbit/sの転送速度に対応していました。このリンクを使用することで、多数のトランスピュータを接続し、大規模な並列コンピュータシステムを構築することが可能でした。ただし、直接接続されていないトランスピュータ間の通信は、途中のトランスピュータが中継する必要があるため、遅延が発生する問題がありました。これを解決するために、Inmosは32個のトランスピュータを接続できる遅延のないスイッチを提供しました。
トランスピュータのブート
トランスピュータはネットワークリンクからの信号で起動することができ、これにより、1つのトランスピュータからネットワーク上のすべてのトランスピュータを起動することが可能でした。トランスピュータは、BootFromROMピンの状態によって、メモリ先頭から命令を読み込んで実行するか、リンクから
ブートストラップコードをダウンロードして実行するかを決定します。また、
ブートされていないトランスピュータのメモリ内容を調べたり、書き換えたりする機能も備えていました。
トランスピュータのスケジューラ
トランスピュータには、リンクをサポートするために、通信トラフィックをスケジュールする専用の回路が搭載されていました。通信結果を待つプロセスは自動的にポーズ状態となり、他のプロセスが実行される仕組みとなっていました。また、リアルタイム性と
マルチプロセッシング動作を向上させるために、2つの優先度レベルをサポートしていました。異なるプログラムが同じトランスピュータ上で通信する場合は、メモリ上の「仮想ネットワークリンク」を使用することができました。トランスピュータの
オペレーティングシステムはスケジューリングを行う必要がなく、チップ自体がOSを内蔵していると考えることもできました。トランスピュータのコア部分は、一般的な
CPUよりも単純であり、命令セットが小さいため
RISCとも言われますが、実際には
CISCに近い設計でした。レジスタは少なく、
スタックのように振る舞う3つのデータレジスタが搭載されていました。さらに、ワークスペースポインタを使用してメモリ上の
スタックを操作することで、
コンテキストスイッチを高速に行うことができました。
トランスピュータの命令セット
トランスピュータの命令は8ビット長で、前半が命令コード、後半がオペランドとなっていました。基本命令コードは16種類と非常に少なく、Minimal Instruction Set Computer(MISC)の商用実装としても知られています。OPRという命令コードを使用することで、命令セットを拡張することが可能でした。
TRAM (TRAnsputer Module)
Inmosは、マルチトランスピュータシステムの試作、構築、構成を容易にするために、1987年にTRAM規格を導入しました。TRAMはトランスピュータを搭載した
ドーターボードであり、外部メモリや周辺機器を搭載することも可能でした。様々なサイズのTRAMが定義されており、規格化されたコネクタを介して電源、リンク、クロック、システム信号を供給することができました。
トランスピュータのソフトウェア
トランスピュータは、CSPプロセス計算に基づくプログラミング言語
Occamを使ってプログラミングされました。
Occamは
並行性をサポートしており、プロセス間およびプロセッサ間の通信を言語仕様としてサポートしていました。Inmosは初期の
Occam開発環境として、D700 Transputer Development System(TDS)を提供しました。TDSはエディタ、コンパイラ、リンカ、デバッガを統合した環境であり、TDS自体も
Occamで書かれたトランスピュータ用アプリケーションでした。その後、Inmosはより一般的なクロスコンパイラ環境occam 2 Toolsetsをリリースしました。
C言語、FORTRAN、
Ada、
Pascalといった一般的なプログラミング言語もInmosやサードパーティからリリースされています。
トランスピュータの実装
最初のトランスピュータは1983年に発表され、
1984年にリリースされました。2KBのRAMを内蔵し、RAMコントローラも搭載されていました。I/Oは全てシリアルリンクを介して接続されるという独特な設計でした。トランスピュータは、1本の"Event"ラインを持っており、これは割り込みと同様の機能を提供していました。また、5MHzの外部クロックを供給して内部で周波数を上げて動作していました。
開発中止となったT9000を除き、トランスピュータは
16ビットのT2シリーズ、
32ビットのT4シリーズ、64ビットの浮動小数点演算に対応した
32ビットのT8シリーズの3つのグループに分けられます。T2シリーズは
マイクロコントローラ市場をターゲットとしており、T4シリーズはより高性能な
CPUとして利用されました。T8シリーズは浮動小数点演算を必要とする科学技術計算分野での利用が想定されていました。
System on a chip
Inmosは、トランスピュータを小型化、低価格化することで、他の論理回路をチップに組み込み、システムオンチップ(SOC)の実現を目指しました。M212やTV-toyといったプロジェクトが始まりましたが、最終的には大きな成功を収めることはできませんでした。その後、T100プロジェクトでは、8ビット版トランスピュータと状態機械に基づく構成変更可能な論理回路を組み合わせる試みが行われましたが、これもT9000プロジェクトの開始とともに中止となりました。
トランスピュータの市場
トランスピュータは、高性能なプロセッサでしたが、普及には至りませんでした。
マイクロコントローラ市場ではコストが高すぎ、デスクトップや
ワークステーション市場では他の
RISCプロセッサに性能で追い越されてしまいました。しかし、超並列コンピューティング分野では、Meiko、Floating Point Systems、Parasytec、Parsysといったベンダーがトランスピュータを使った製品をリリースし、一定の成功を収めました。また、研究機関でもトランスピュータを使った並列システムの研究が行われました。
トランスピュータ T9000
InmosはT8シリーズを改良したT9000を開発しましたが、開発の遅延により、他の
RISCプロセッサに性能で遅れをとってしまいました。T9000はスーパースケーラアーキテクチャを導入し、キャッシュや高速なリンクシステムを搭載しましたが、最終的にはプロジェクトが中止されました。
トランスピュータ ST20
Inmosを買収したSGS-Thomson(現STマイクロエレクトロニクス)は、トランスピュータの技術を基にST20
マイクロコントローラを開発しました。ST20は
セットトップボックスやGPSアプリケーションなどで使用されました。
トランスピュータの影響
トランスピュータの設計思想であった並列性向上は、今日の汎用
CPUにも取り入れられています。ただし、トランスピュータのような明示的なスレッドレベルの並列性ではなく、
命令レベルの並列性が採用されています。また、トランスピュータの目指した方向性をさらに推し進めた形態として、クラスターコンピューティングシステムがあり、今日の
スーパーコンピュータの主流となっています。トランスピュータの動機となったチップの集積度向上による性能向上は、
トランジスタ数の増大によってなんとかごまかされてきましたが、電力消費量の問題から限界が見え始め、
マルチコアプロセッサなどの並列処理技術に再び注目が集まっています。
トランスピュータは、コンピュータ業界に大きな影響を与えただけでなく、
イギリスにおけるマイクロエレクトロニクスの中心地である
ブリストルを形成する基礎を築きました。
今もトランスピュータを使っているプラットフォーム
宇宙探査機
HETE-2や
小型衛星プラットフォームMYRIADEでは、現在もトランスピュータが利用されています。
脚注・出典
[参考文献]「SuperASCII 1991年2月号」第2巻第2号、株式会社アスキー出版、1991年2月1日。
関連項目
iWarp
nCUBE
Cell Broadband Engine
外部リンク
The Transputer FAQ
Ram Meenakshisundaram's Transputer Home Page
WoTUG CSP などのトランスピュータの原理を他の環境に適用しているグループ
Transputer emulator – T414(FPUなし)のエミュレータ。
PC based Transputer emulator – T414エミュレータの移植版
Transputers can be fun.
The Transterpreter virtual machine. – occam-pi 言語を実行できる仮想機械環境
The Kent Retargettable occam compiler. – occam-pi コンパイラ
transputer.net. – トランスピュータに関する文書などがある。
Transtech Parallel Systems Ltd. – 2009年現在もトランスピュータを使ったシステム(TRAMなど)をサポートし続けている企業
Inmos alumni インモス元従業員によるサイト
*
HETE/systems.html'>
HETE-2 Spacecraft internal systems