TRONCHIP(トロンチップ)は、TRONプロジェクトの一環として設計された命令セットアーキテクチャ(ISA)と、それを実装した
マイクロプロセッサです。このプロセッサの仕様は書籍やウェブサイトで公開されており、自由に参照・利用することが可能です。
特徴
基本スペック
TRONCHIPは、32ビットのアーキテクチャを基盤とし、16本のレジスタを搭載しています。その特徴の一つが、異なるデータ型(異種オペランド)同士の演算を効率的に処理できる点です。
異種オペランドの演算
従来のプロセッサでは、バイトやワードといったデータ型ごとに異なる演算命令が必要でした。また、符号付き拡張やゼロ拡張も別の命令で行う必要がありました。TRONCHIPでは、
オペコードを共通化し、データ型と拡張方法をオペランド指示部に記述することで、これらの処理を1つの命令で実行できます。
命令形式
命令形式は整理されており、32ビットの一般形と16ビットの短縮形の2種類があります。すべての命令に一般形が存在し、頻繁に使用される命令やオペランドの組み合わせには短縮形が用意されています。
高水準命令
ビットストリング命令: グラフィックVRAMの操作などを少ない命令数で実現できます。これはBTRONなどでの利用を想定して設計されました。
キュー操作命令: 双方向リストを操作する命令を持ち、キューへの要素挿入や削除をアトミック操作として実行できます。これにより、キュー操作に伴うクリティカルセクションの制御を簡略化できます。
十進演算命令: 二進化十進表現の演算を直接実行できる命令を持ちます。
多段間接アドレッシングモード
C言語のポインタ操作のように、メモリから取り出した値を元にさらにメモリを参照する操作を、TRONCHIPでは形式上、任意回数反復できます。ただし、実装では反復段数が制限されていることが多いです。
レベルの定義
TRONCHIPは、実装する命令セットや仮想記憶の有無によって、いくつかのレベルにプロファイル化されています。具体的には、以下のレベルが定義されています。
L1R: 最小限の命令セット
L1: 最小限の命令セットとメモリ管理ユニット
L2: 拡張命令セットとメモリ管理ユニット
EIT (Exception, Interrupt, Trap)
汎用プロセッサには、プログラム実行中に何らかの原因で処理を中断する機構があります。TRONCHIPでは、これらの処理を例外(Exception)、割り込み(Interrupt)、トラップ(Trap)に分類し、まとめてEIT処理として扱います。
例外(Exception): 命令実行中に発生するページ違反などで、ハンドラから復帰すると当該命令を再実行します。
割り込み(Interrupt): プログラム実行とは無関係に発生する外部要因によるもので、ハンドラから復帰すると次の命令から再開します。
*
トラップ(Trap): システムコールやゼロ除算などで発生し、ハンドラから復帰すると次の命令から再開します。
拡張性
TRONCHIPの設計当初から64ビットへの拡張が考慮されており、データサイズを指示するフィールドなどに、64ビットの指示に相当する値やビットが予約されていました。メモリ空間も、アドレス0を起点として正負両方向に伸びるモデルを採用し、64ビット化の際に単純な拡張とみなせるように設計されました。しかし、これらの拡張は予約のみで、実際の実装は存在しません。
同時期に開発されたNECのVシリーズも、豊富なアドレッシングモードや高い直交性など、CISCプロセッサの特徴を備えていました。しかし、TRONCHIPのレジスタ数が16本であるのに対し、V60系は32本と多く、命令フォーマットも異なります。TRONCHIPの命令長は2バイト単位の可変長で、命令フォーマットの種類が少ないのに対し、V60系は1バイト単位の可変長で、フォーマットの種類も多いです。
特許
TRONCHIPの設計では、最初の2年間を特許調査に費やし、DECやNS、DGなどの特許を回避しました。特に、バイト可変長命令、プログラムカウンタが汎用レジスタでもある構造、スケール化インデックス、外部アドレッシングによるモジュールサポート、リング保護などが重要な特許としてチェックされました。
SISCまたはEISC
当時、「
RISC対CISC」という議論が盛んでしたが、TRONCHIPの開発者は、リアルタイム応用を重視し、
RISCの使いにくさ、プログラムサイズの増大を指摘しました。TRONCHIPは、
RISCでもCISCでもない「SISC (Smart Instruction Set Computer) 」または「EISC (Elegant Instruction Set Computer) 」と位置づけられました。
実装
日立製作所、
三菱電機、
富士通、沖電気、
東芝、松下電器など、各社がTRONCHIPを実装したプロセッサを開発しました。
富士通は、ベクトルプロセッサや周辺チップも開発しました。日立はH32(Gmicro/500)・Gmicro/200、
三菱電機はM32(Gmicro/100・400)、
富士通はF32(Gmicro/300)を作成し、沖電気はO32、
東芝はTLCS-90000/TX(TX1、TX2)、松下電器はMN10400などを開発しました。
その後
TRONCHIPは、
BTRONプロジェクトの失速や、
RISCアーキテクチャの台頭により、その後の主流にはなりませんでした。しかし、TRONCHIPの影響は、SHの開発者による反面教師としての言及や、EITという分類、LDCTX/STCTXといった共通のニモニック、M32Rの命令フォーマットなどに残っています。GMICROシリーズは、半導体製造装置、人工衛星、
電話交換機などの制御装置に採用されました。