[NEC Corporation.]

「MP98」の技術的な詳細


(1)オンチップ並列プロセッサ

「MP98」は、LSIチップ上に複数個の「要素プロセッサ」を搭載し、並列に動作させる「オンチップ並列型」のプロセッサです。今回のMPUでは4プロセッサを同一チップ上に集積しています。同じ性能を達成するために要素プロセッサ1台あたり1/4の性能で十分であるため、電圧を下げ、動作周波数を1/4にしています。同一アーキテクチャを持つプロセッサにおいて消費電力は、(電圧)×(動作周波数)×(要素プロセッサ台数)に比例するため、(電圧降下率)の電力削減が達成できます。

(2)低消費電力回路技術

「MP98」では、携帯型機器において特に重要な、通常動作時や動作待機時の電力削減についても、動作プロセッサ数の制御、オンチップ電源制御回路の搭載などの低消費電力回路技術により実現しています。今回のMPUでは、通常動作時には約50mW、動作待機時には500uW(1uWは1Wの1/100万)未満の低消費電力を実現しました。携帯型機器では、通常動作・動作待機の時間が高速動作時間よりもはるかに長いため、このような低消費電力性は、電池による長時間連続動作を実現するために重要です。「MP98」は、1秒間に10億回以上の命令処理能力を持つ従来型高速マイクロプロセッサと比較し、1/100以下の低消費電力を実現しています。

(3)並列ソフトウェア技術

並列型プロセッサにおいては、アプリケーションからの並列性抽出が重要です。今回のMPUに対しては、メディア処理や認識・理解処理に多く現れるループ構造などを並列化する並列化コンパイラも開発しました。このコンパイラは、当社製音声認識プログラムを用いたベンチマークにおいて、1プロセッサ動作時と比較し、自動並列化(注)によって約2倍、並列アルゴリズムの適用により約3倍の性能向上を達成しました。

(4)マルチスレッド並列化技術

「MP98」では「マルチスレッド並列化方式」を採用しています。連続する命令の列をスレッドとよび、同時に実行可能なスレッドを複数プロセッサで並行して実行する方式がマルチスレッド並列化方式です。「MP98」では、アプリケーションプログラムをコンパイル時にスレッド分割します。また、一つのスレッドから分岐するスレッドを高々一個に制限する「フォーク一回モデル(FOPEモデル)」を採用しています。これらの方式の採用により、スレッド分岐を1サイクルで実行できる高速マルチスレッド並列プロセッサを世界ではじめて実現することに成功しました。
さらに「MP98」は、従来の命令セットの拡張として、スレッド生成/消滅等を制御する特別な命令を持っています。コンパイラはFOPEモデルに基づき、コンパイル時にスレッドの生成/消滅を規定します。これにより、ハードウェアの複雑化を防ぎ、低電力という特徴を最大限に引き出しています。

(5)投機的実行に関するハードウェア機構

プログラム上の分岐方向が未定の場合や、スレッド間で同じデータにアクセスする場合などでは、同時に実行可能なスレッドが少なくなることがあります。その場合、実行の可否が決定する前に投機的にスレッド実行します。「MP98」では、投機に失敗した場合でもプログラムを正しく実行するための様々なハードウェアを搭載しています。従来の投機的実行機構を搭載していないプロセッサは、たとえ確率が低くてもスレッド実行の可否が決定するまでは待機している必要がありました。「MP98」は投機的実行機構の採用により、高い並列性を実現することに成功しました。

(6)共有レジスタファイル

スレッド分岐を高速化するために、すべてのプロセッサはレジスタファイルを物理的に共有しています。スレッド分岐に伴うレジスタコピーを削減するために、プロセッサとレジスタの論理的対応関係を管理する「マップテーブル機構」を採用しています。これによってスレッド分岐時のデータ移動量を約1/6に削減することに成功しました。さらに、疑似差動回路の採用により、小面積かつ低電圧で動作する多ポートレジスタファイルを実現しています。


(注) 自動並列化:
現在はプログラムに指示行を含む。

[Copyright(C) NEC Corporation 1994-1999.] slogan cpyrght