CHIP サブプロジェクト


本稿ではまず歴史的な背景を眺め、続いてトロン仕様チップのアーキテクチャ上の位置 付けならびに VLSI として実現された各チップについて述べる。 TRON プロジェクト におけるマイクロプロセッサ開発の大きな特徴は大学が中心となって開発された標準ア ーキテクチャに対して、個々の半導体メーカーが独自に機能設計、論理設計、回路設計、 レイアウト設計を実施し VLSI として実現する手法をとっていることである。したがっ て、このアプローチで実現された各トロン仕様チップのソフトウェア互換性を検証する ことはきわめて重要な課題である。トロン協会で開発された互換性検定のテストスイー トについて言及した後、最近のチップの開発状況、ならびに近未来に開発されるであろ うトロン仕様チップについて述べる。


トロン仕様チップ誕生の背景

トロンプロジェクトの誕生は 1980 年にまでさかのぼる。マイクロコンピュータ応用 技術委員会が電子協の中に組織され、ここで将来のリアルタイムオペレーティングシス テムとマイクロプロセッサに関する調査研究が行われた。 1983 年に真の実時間性の 追求と、仕様の公開性を基本とする、新しいリアルタイムオペレーティングシステム標 準化の必要性について提言された。これが 1984 年にトロンプロジェクトの誕生につ ながり、さらに 1986 年にはトロン協会が設立されるに至った。高性能リアルタイム オペレーティングシステムの仕様と、これらのオペレーティングシステムが実行される エンジンとしてのマイクロプロセッサ仕様が設計された。トロン仕様に基づいた最初の マイクロプロセッサチップが 1988 年に発表され、以降 8 種類以上のトロン仕様チッ プが開発されてきた。図 1 に各種トロン仕様チップ開発の経緯を示す。

図 1  トロン仕様チップ開発の経緯


アーキテクチャの課題

ハードウェアとソフトウェアのトレードオフ

過去マイクロプロセッサのアーキテクチャに関してハードウェアとソフトウェアのトレ ードオフの観点で数多くの議論が行われてきた。ノイマン型 VLSI マイクロプロセッサ の性能トルネックがメモリとプロセッサをつなぐバスの転送速度にあることはよく知ら れた事実である。バス幅の拡大は VLSI を収納するパッケージのピン数の制限を受ける。

メモリ、プロセッサの技術動向を見れば今後もメインメモリの速度がプロセッサのサイ クルタイムより遅い状態が続くと予想され、したがってメモリプロセッサ間のバス転送 が最も重要な速度制限要因になる。これに対するひとつの解は高機能な命令セット、す なわち 1 命令あたりの機能が高い命令セットを設計することである。

T.E.Anderson などはアーキテクチャとオペレーティングシステム設計の関係について 研究を行い、最近の RISC ( Reduced Instruction Set Computer )アプローチに おける以下の興味ある問題点を指摘している。

トロンアーキテクチャにおけるオペレーティングシステム向き命令

これまで BTRON 、トロン仕様オペレーティングシステムが各種実現されてきたが、こ れらにはトロンアーキテクチャに特有のオペレーティングシステム向き高機能命令が有 効に活用されている。ここでは Gmicro/100 を例としてこれらの高機能命令の適用例 を紹介する。

ITRON2 仕様オペレーティングシステム

Gmicro/100 にインプリメントされた ITRON2 仕様オペレーティングシステムではタ スクスイッチの高速化に有効なコンテクストのストアとロードを行う STCTX ( Store the Current Context )と LDCTX ( Load the Current Context )が用いられてい る。コンテクストブロックに含まれない汎用レジスタのロード、ストアには複数レジス タを 1 度に取り扱うことのできる LDM ( Load Multiple Registers )と STM ( Store Multiple Registers )が使われている。

タスクスケジューラはタスクの状態の応じてキューを操作することと、レディキューの 中から最も優先度の高いキューを探すことの 2 つの機能を持つ。このキューにエント リを挿入したり、削除する操作を直接行う QINS 、 QDEL 命令を用いた場合図 2 に示

図 2  キュー操作命令の効果

すとおり、転送命令を使う場合に比べて速度を 45 %、コードサイズをおよそ 1/3 に 改善することができている。キューの中から最も優先度の高いタスクをさがし出すのに はビット操作命令を使うことができる。図 3 は可変長のビットフィールドからビット を検索する BVSCH 命令を用いた場合と、通常の命令を用いた場合の比較を示す。この 例では応答時間が 1/4 に改善されている。

図 3  任意長ビットフィールド命令を用いた優先度検索

BTRON 仕様オペレーティングシステム

BTRON では人間とのインタフェースである GUI (グラフィカルユーザインタフェース) の性能がきわめて重要な要素である。トロンアーキテクチャでは GUI サポートのため ビットブロック転送機能を持ったビットマップ操作指令が各種準備されている。これら の高機能命令を用いてウィンドウの移動、描画など、ビットマップディスプレイの制御 を行うことができる。

汎用レジスタに指定されたデータを繰り返しデスティネーションのストリングに書き込 む SSTR 命令、任意長ビットフィールドの演算を行う BVMAP 命令、任意長ビットフィ ールドのコピーを行う BVCPY 命令、任意長ビットフィールドとパターンとの演算を行 う BVPAT 命令のそれぞれを用いて長方形の塗りつぶし、移動を Gmicro/100 シング ルボードコンピュータ上で評価した結果が報告されている。 4 × 4 、 16 × 16 のピ クセルパターンについて行われたこの結果を表 2 、 3 に示す。ビットマップ命令を用 いた場合、 MOV や XOR 命令の繰り返しに比べて、図形の塗りつぶしでは 1.5 〜 2.0 、 移動では 2.7 〜 3.3 倍高速化されている。

表 2  長方形の描画(塗りつぶし)速度の比較

表 3  ビットマップ転送速度の比較


VLSI 化の課題

少なくとも 9 つのソフトウェア互換性を有するトロン仕様マイクロプロセッサチップ が 6 社によって開発されてきた。これらのチップ諸元を表 4 に示す。

表 4  各種トロン仕様チップの諸元

Gmicro と呼ばれるシリーズには現在 Gmicro/100 、 Gmicro/200 、 Gmicro/300 、 Gmicro/400 、 Gmicro/500 の 5 チップがある。 Gmicro/200 はオンチップに MMU とキャッシュメモリを搭載した標準的なチップであり、 10 進演 算やコプロセッサインタフェースもサポートされている。 Gmicro/300 はより大きな サイズのキャッシュメモリ、より複雑な機能を持っており、特にビジネス用ワークステ ーションへの応用を考慮して 10 進演算の強化も行われている。 Gmicro/100 、 TX1 、 MN10400 は実記憶システムへの応用を目指したものである。

Gmicro/100 はジャンプ命令によるパイプラインの乱れを低減するため独自の機構を 採用している。分岐命令は 256 ビットの RAM で構成された分岐予測テーブルを参照 して、デコード段で処理される。リターン処理の高速化のためにオンチップの PC スタッ クが設けられてリターン命令もデコード段で処理される。

Gmicro/500 は、現在トロン仕様に基づいたマイクロプロセッサの中で、最上位に位 置する。スーパースカラ方式を採用し、 2 命令を同時に実行する。性能はクロック 50MHz 動作時で 100MIPS 、 66MHz 時で 130MIPS となっている。アドレスバス 32 ビット、データバス 64 ビットであり、内蔵キャッシュメモリは命令/データ各 8KB を持つ。メモリストアの高速化のためストアバッファを 4 エントリ、分岐命令の 高速化のため分岐ウィンドウを 64 エントリ、リターンバッファを 8 エントリ備えて いる。また IEEE 規格に準拠した浮動小数点演算機能を有している。

O32 は、 0.8 ミクロン CMOS プロセスで作られ、特にフォールトトレラント機能を特 長としている。

TLCS9000/TX2 は、トロン仕様に基づいた 87 種類の命令をサポートしている。転送 命令、算術演算命令などの基本命令を 1 クロックで実行し、クロック周波数 25MHz 時 25MIPS のピーク性能を有する。また、低消費電力機能を有し、 WAIT 命令実行時 には従来の 1/10 にまで消費電力を削減可能である。 TX2 は ASSP/ASIC の CPU コ アとしても適用可能である。

また、周辺 LSI としては、 DMA コントローラ( Gmicro/DMAC )、割り込みコント ローラ( Gmicro/IRC 、 TX   ITC )、各種キャッシュメモリ/コントローラが開発 されている。

Gmicro/CCM (キャッシュコントローラ&メモリ)は Gmicro/500 を用いたシステ ム用に開発された。本チップ 2 個を並列接続してデータバスを 64 ビットとしてシス テムを構成する。この基本構成でのキャッシュ容量は 128KB となる。 4 ウェイセッ トアソシアティブ、 LRU ( Last Recentry Used )方式を採用し、主記憶更新アルゴ リズムはライトスルー方式、コピーバック方式のどちらかを選択可能である。

またコプロセッサとしては、浮動小数点演算コプロセッサ( Gmicro/FPU )やベクト ル処理コプロセッサ( Gmicro/VPU )が開発され現在量産中である。


互換性検定スイート

トロン仕様のマイクロプロセッサチップは共通仕様に基づき、多数の半導体メーカーが 独自に設計し、開発を行った。これらのチップがすべて互換性を有していることを検証 するための互換性検定スイートが開発された。現在までに、 TX1 、 Gmicro/300 、 Gmicro/100 の 3 チップが既に検定を終了しており、今後も他のチップの検定が予定 されている。トロン仕様には、いくつかのレベル分けが行われているが今回開発された 検定スイートは仮想記憶をサポートしない L1R レベルに対応するものである。検定の 対象となる項目は 26 アドレスモード、 82 個の命令、 10 種の EIT (例外、割込み、 トラップ)である。検定スイートは小さなプログラムの集合であり、命令、アドレスモ ード、フラグの変化、データの依存性などの組み合せに対して 1 項目ずつ機能チェッ クを行う。モニタプログラムおよび評価ボードの仕様も検定スイート仕様書に規定され ている。プログラムを実行した結果はボード上のメモリに書き込まれ、この結果に基づ いて互換性の有無が判定される。

検定スイートは初期処理部、実行部、判定部、後処理部の 4 つの処理部およびアドレ スモードやテストデータを格納するデータ部から構成される。初期処理部では、対象と なる命令を実行するために必要なメモリ上のデータ、レジスタ、フラグなどを初期設定 する。次に実行部ではテスト環境の設定、テスト対象命令の実行、実行結果のストアを 行う。判定部は実行後の結果と期待値との比較を行い、動作が正常であるかどうかを判 定する。後処理部は、初期処理部でセットした各種の値を元の値に戻す処理を行う。こ の検定スイートの実行環境を図 4 に示す。

図 4  検定システムのハードウェア構成例


トロン仕様チップ/ソフトウェアの開発状況

CPU

1993 年に発表された Gmicro/500 、 TX2 の 2 種類のトロン仕様チップは、現在量 産段階へ移行しようとしている。また周辺・コプロセッサについては、 1992 年に発 表されたベクトル処理プロセッサ( μVP )は既に量産段階にあり、また Gmicro/500 と同時に発表された Gmicro/CCM についても量産への移行過程にある。 また Gmicro/100 の上位機種に相当する Gmicro/400 は近日中に発表予定である。

全体としてトロン仕様チップは、時代の進展と要望に追従すべく既に第 2 世代への移 行を完了しつつある。

最適化 C コンパイラ

コンパイラの最適化の努力も継続的に続けられており、 Gmicro シリーズ用コンパイ ラでも旧版に比べて性能的、機能的に改善された。性能向上のために追加された最適化 項目の数例を以下に示す。

レジスタ割付けの対象の拡大
局所変数だけでなく、大域変数もレジスタに割付ける。
ループ不変式のくくり出し
ループ内で繰り返し計算する式をループ外にくくり出す。
ループの展開
ループを展開してブランチを削減する。
ループのマージン
2 つのループを 1 つにマージンする。
テールリカーションの消去
関数のリターン直前の再帰呼び出しをブランチに変換する。
これらの結果 20MHz の Gmicro/200 システムで評価した結果 16.8K ドライストー ンの値が得られている。

ソフトウェア開発環境

最近、 TX1 マイクロプロセッサのソフトウェア開発システムが発表された。ホストコ ンピュータには SPARC ワークステーションを用いており、その他インサーキットエミュ レータ、シングルボードコンピュータとソフトウェア一式からなっている。セルフ開発 環境としては Gmicro/100 上に ITRON2 仕様オペレーティングシステムを載せて発 表されている。


今後のトロン仕様チップ

次世代のトロン仕様チップ

図 5 と図 6 にトロン仕様チップの集積度ならびに性能の技術動向を示す。次世代のト ロン仕様チップ Gmicro/400 、 Gmicro/500 の開発および量産が進められている。 Gmicro/500 はメモリ管理機構と浮動小数点演算ユニット、命令ならびにデータ用キャッ シュメモリが内蔵されていると同時に CPI ( 1 命令実行するのに必要なクロック数) を 1 以下に下げるため並列処理の機構を取り入れている。

図 5  トロン仕様チップの集積度動向

図 6  トロン仕様チップの性能動向

Gmicro/400 は 2 つの整数演算器を搭載し、 2 つの整数命令と 1 つのジャンプ命令 が同時に実行可能である。またデータ列を参照する命令に対しては、これらの複数デー タを同時に処理する事ができる。 Gmicro/400 、 Gmicro/500 はそれぞれクロック 40MHz と 66MHz で動作する。

Gmicro/500

64 ビットアーキテクチャへの拡張

現在の通称 64 ビットマイクロプロセッサは、データバス、およびアドレスバスが 64 ビットであるものを指す場合が多い。トロン仕様における 64 ビットアーキテクチャは 64 ビットのリニアアドレスをサポートする。デバイス技術の進歩に伴いコンピュータ に実装されるメモリサイズはどんどん増大している。またマルチメディア環境における 動画像の処理、大規模化されるネットワークのアドレスなどを考えると 32 ビット以上 のアドレスに対する要請は強まってくるであろう。もともと現在のトロンアーキテクチャ 仕様では、 32 ビットから 64 ビットの拡張が容易に可能な配慮がなされているが、拡 張のためにさらに詳細な仕様設計が必要である。近い将来に 64 ビットの詳細仕様が公 開されるであろう。


おわりに

トロン仕様マイクロプロセッサアーキテクチャはトロン仕様オペレーティングシステム の設計と並行して設計された。この命令セットアーキテクチャは各種のトロン仕様オペ レーティングシステムのほか、コンパイラ開発に最適化されている。トロン仕様に基づ いたマイクロプロセッサチップが異なる半導体メーカーにより 9 種類以上開発され、 この中でいくつかは市販されている。またトロン仕様マイクロプロセッサ上で走る ITRON 、 BTRON オペレーティングシステムを用いた応用システムも開発され、 TRON アーキテクチャの有用性が実証されつつある。性能、機能ともに強化したトロン 仕様チップの開発も継続して続けられている。 64 ビットマイクロプロセッサ仕様も近 い将来公開されるであろう。これまでのところすべてのトロン仕様は公開され、トロン 協会から入手することが可能である。オープンアーキテクチャの方針は今後も変わるこ となく継続されるであろう。