雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
microprocessorreport
2003年11月号
米テンシリカ社、カスタム命令を
自動生成するツールを開発中(後編)


米テンシリカ社は、マイクロプロセッサーのカスタム命令(ユーザーが独自に定義した命令)を記述するコードを自動的に生成するツールを開発中である。2回連載の後半である今回は、カスタム命令を実現する回路構成をツールを使って分析した結果と、自動生成されたコードによる演算処理の高速化事例を示す。 (本誌)

トム R. ハーフヒル 米マイクロプロセッサー・レポート誌* シニア・エディター
Tom R. Halfhill Microprocessor Report Senior Editor
Microprocessor Reportとは
プロセッサー技術の専門ニュースメディア
 米Microprocessor Report誌(英文)は、EDN Japanと同じリード・エレクトロニクス・グループが発行しているプロセッサー技術の専門ニュースメディアです。米Microprocessor Report誌のご好意により、同誌のニュース解説記事をEDN Japanは毎月独占翻訳掲載しています。
 このほどEDN Japanは、Microprocessor Report誌のご購読受け付け業務を日本国内在住の皆さまに向けて開始しました。プロセッサー技術の詳細を誰よりも早く入手できる専門メディアをこの機会にお試しください。
詳細はこちら
 前編で示したように、米テンシリカ社のタイ・ジェネレーター(TIE generator)はプログラム・コードの処理を高速化するために3通りの手法(命令融合、SIMD、FLIX)を利用できる。3通りの手法を組み合わせることも可能だ。通常は命令融合と、SIMDあるいはFLIXを組み合わせる。
 ここで問題となるのが、どの手法とどの手法の組み合わせが最適だと判断するかだ。ある程度のプログラム・サイズがある実際のアプリケーションを修正する場合、これは簡単ではない。タイ・ジェネレーターは、プログラム中で最適化が可能な部分を何1000と見つけ、そして何1000通りものさまざまな拡張方法を分析できるからだ。
 タイ・ジェネレーターは、プログラム中で最も重要であると見なした部分を自動的に最適化するため、Xtensa C/C++ コンパイラー(XCC)のプログラム情報を使用する。この過程に人手は介在しない。ユーザーは、プログラムのどの部分を最適化すべきか、そして最適化にどの手法を適用すべきかを決定する役目を負う。図1には、タイ・ジェネレーターの表示画面を示した。ユーザーはこの画面でC言語プログラムの個別の関数を選び、命令融合、SIMD、FLIXのオプションを指定できる。
 カスタム拡張を評価する指標は主に3つある。性能、消費電力、そして回路面積だ。高い性能を達成するためには、より多くのゲート数と電力を必要とする。ゲート数を少なくすることは回路面積の節約となるものの、性能の犠牲を伴う。消費電力を低減することも同様である。こういったトレードオフの調整を容易にするため、テンシリカ社はグラフィカル表示が可能なツールを用意している。このツールは、自動生成される拡張ごとに、プロセッサー・コアの高速化の度合いと追加するゲート数をグラフ表示する。ユーザーはこのツールを使うことによって、開発プロジェクトが要求する性能仕様と最大ゲート数を満たすようにカスタム拡張を調整できる。
 図2には、このツールの表示画面例を示した。グラフの縦軸は高速化の度合いである。1倍から9倍まである。横軸はゲート数を示す。0〜7万5000ゲートまである。グラフ内の折れ線は、氷山の一角に過ぎないことに注意しなければならない。各プロットは、特定のゲート数に対応するカスタム拡張の最高性能を表すからだ。折れ線グラフの下には、性能が劣ると判断された何1000ものプロットが隠れているのである。
 図2が示すように、あるカスタム拡張を実現する論理ゲート数の範囲は極めて広い。この場合では、300ゲートから7万4000ゲートまである。高速化手法のいくつかが、数多くの論理ゲートを要求するからだ。命令融合は通常、ゲート数をあまり増やさずに済む。図2のプロットのすべてが、命令融合と別の手法を組み合わせている。一方、SIMDとFLIXを乱用すると、ゲート数が急激に増大する。これらの手法は並列動作をサポートするために、複数の算術機能ユニットと複数のロード/ストア・ユニットを配置しなければならないからだ。SIMDとFLIXではレジスターを追加したり、既存のレジスターにポートを追加したりすることもある。表1には、図2の各プロットにおけるデータを示した。
 図2および表1の中で最も高速なカスタム拡張は、Xtensa Xプロセッサー・コアの基本構成よりもゲート数が3倍も多い。システムLSI開発者の目標が性能を最大にすることだけであるなら、ゲート数とチップ面積、そして消費電力はとんでもない値に増大する。この結果を見ると、タイ・ジェネレーターが論理ゲートをいたずらに増やしているせいだと考えるかもしれない。ソフトウエア・コンパイラーが生成するオブジェクト・コードよりも低い密度のハードウエア記述言語コードをタイ・ジェネレーターが生成していると想像するからだ。それも要因の1つではあるだろう。しかし、優れた技術者が設計した場合でも、コンフィギュラブル・プロセッサーのカスタム拡張部が巨大になることは珍しくない。テンシリカ社が2002年にEEMBC*のコンシューマー機器ベンチマーク用にXtensa Xコアを最適化したとき、拡張されたプロセッサー・コアの回路規模は26万3000ゲートもあった。これは基本構成の10倍を超えるゲート数である。
 回路規模があまりにも大きくなると、消費電力と回路面積が大きくなることに加え、高い周波数での動作が難しくなる。余分なゲート遅延と長く複雑な信号経路が存在するからである。Xtensa Xプロセッサーはコンフィギュラブル(仕様設定可能)であると同時にシンセサイザブル(論理合成可能)でもあることを思い出して欲しい。プロセッサーを実際のトランジスタと配線で実現する前の段階で、自動生成されたTIE言語コードは論理合成コンパイラーと配置配線ツールを通過する。設計工程の最初から最後までの間に、複数階層の設計自動化工程が存在するのである。プロセッサーを人手で最適化し、回路レイアウトを手作業で高密度化した場合に比べると、自動化ではどうしても効率が低下する。0.13μmのCMOS技術で製造した場合、基本構成である2万5000ゲートのXtensa Xプロセッサー・コアは400MHzで動作した。これに対してテンシリカ社がEEMBCのコンシューマー機器マーク用に設計した26万3000ゲートの重量級コアは、260MHzで動くのがやっとだった。
 しかし回路規模が数万ゲート増えたとしても、特定用途に最適な拡張部を搭載したプロセッサーが利益をもたらすのであれば、システムLSI設計者にとっては歓迎すべきことかもしれない。260MHzで動いた26万3000
ゲートのXtensa Xプロセッサー・コアは、EEMBCのコンシューマー機器マークで最高のスコアを獲得した。動作周波数が1GHzのパワーPCプロセッサーさえ、しのいだのである。また比較的低いクロック周波数で高い性能を達成できるということは、ゲートが追加されたとしても消費電力が低いことを意味する。さらに、0.18μmあるいは0.13μmの製造技術では、1mm2の回路面積でもゲート数は10万〜20万に達する。システムLSIでは一般に、オンチップ・メモリーと周辺回路がプロセッサー・コアよりも大きな回路面積を占める。このことは、大規模なカスタム拡張を備えるコンフィギュラブル・プロセッサーでも変わらない。
 プロセッサーの性能と効率をぎりぎりまで高めるため、自動生成されたTIEコード拡張部をユーザーは手作業で修正できる。タイ・ジェネレーターが生成するTIEコードについて隠していたり、特別扱いであったりするものは何もない。また拡張部のTIE言語記述を従来と同様にユーザーが手作業で作成することを妨げる制限も存在しない。タイ・ジェネレーターが生成した拡張部の代わりに、あるいは追加として、ユーザーは手作業によるTIE言語コードを利用できる。
 極めて複雑なアプリケーションを最適化しようとするときは、人手による作業がまだまだ必要である。タイ・ジェネレーターは、複雑なアルゴリズムを構成するコードを部分的に高速化できる。しかし、複雑なアルゴリズムの全体を見渡して最適化することは極めて難しい。この点は、ハードウエア記述言語の生成ツールやソフトウエア・コンパイラーなどと同様である。このうなずける限界点を除くと、テンシリカ社の新しいツールであるタイ・ジェネレーターの欠点を見つけることは難しい。タイ・ジェネレーターが同社の説明の半分程度しか機能しなかったとしても、まだ十分注目に値する。

素早い評価が時間を節約する

 コンフィギュラブル・プロセッサーに対するカスタム拡張がアプリケーションの処理性能を大きく向上できることには疑う余地はない。手作業で最適化されたプロセッサーによる認証済みのEEMBCベンチマークが、カスタム拡張の効果を証明済みだ。
 高級言語のプログラム・コードから自動的にカスタム拡張を生成するタイ・ジェネレーターにより、カスタム拡張はさらに普及していくだろう。しかし最も重要なのは、何1000種類もの拡張部をまず生成し、それらの相対性能を比較し、ゲート数を見積もり、ユーザーにとって分かりやすい方法でその情報を提示するというタイ・ジェネレーターの能力である。
 表2には、代表的なアプリケーションに対するタイ・ジェネレーターの効果を示した。タイ・ジェネレーターは、基数4の高速フーリエ変換(FFT*)を実行する速度を1けた向上させる手法を数多く探し出した。わずか3分で、17万5000を超える拡張部を生成したのである。30分という条件では、MPEG4*の符号化処理を高速化する180万もの手法を見つけることができた。これらの手法の多くは、優れた技術者が検討するにはあまりにもささいなことであったり、効率が低いかもしれない。しかしツールの高速性が、すべての可能性を試すアプローチを許している。ツールにはパラメーターによって各拡張部を整理する能力がある。これが最適なカスタム拡張の発見につながる。
 タイ・ジェネレーターによってシステムLSI設計者は極めて短い時間に数多くのカスタム拡張を解析できる。手設計とシミュレーションで何カ月もかけて解析していたときよりも、ずっと多くの拡張を調べられるのである。それは、トグル・スイッチを開閉してプログラムする作業がアセンブリ言語を使う作業へと変わる、あるいはアセンブリ言語から高級言語へと変わるような大きな飛躍である。
 設計の自動化におけるこの進化は、システムLSIの設計者にとってアプリケーションの処理を高速化するだけでなく、開発プロジェクトの進行を速めることにも役立つ。タイム・ツー・マーケットの圧力が高まり続けている中、開発サイクルを数週間あるいは数カ月短くできる可能性は、プログラム・ループのクロックを数サイクル節約することよりもはるかに注目を集めるだろう。

テンシリカ社の戦略:すべてを自動に

 テンシリカ社がタイ・ジェネレーターを開発したことには、もう1つの意味がある。同社は優れた設計自動化ツールを提供することによって、ほかのソフトウエア・コア・ベンダーと差異化しようと努力しつつある、ということだ。
 同社の設立当初からこの戦略の中心に位置しているのが、TIE言語である。英アーク・インターナショナル社および米ミップス・テクノロジーズ社とは違い、テンシリカ社はカスタム拡張の記述にVHDLあるいはベリログHDLといった業界標準のハードウエア記述言語を採用しなかった。同社はなぜ、独自言語TIEを開発するという苦しい道を選んだのだろうか。理由の1つは、TIEが「正しい設計」を実現する言語だということである。Xtensaプロセッサー・コアのユーザーが、Xtensaコアと組み合わせても動かないカスタム拡張を記述したり、Xtensaコアの動作を止めてしまいかねないカスタム拡張を記述したりすることを防いでいる。もう1つの理由としては、ソフトウエア開発ツール群とのリンクに必要な明示的セマンティックスをTIE言語が備えているということがある。プロセッサー・コア設計ツール「プロセッサー・ジェネレーター」が生成する既存のソフトウエア開発ツールだけでなく、タイ・ジェネレーターのような新しいツールとのリンクもサポートする。
 テンシリカ社が申請してきた特許の多くがXtensaプロセッサー・コアではなく、設計の上流から下流に至る範囲の設計システム、特に設計自動化ツールであったことは偶然ではない。Xtensaプロセッサー自体は有用ではあるものの、驚くようなプロセッサーではない。16ビットと24ビットの命令セットという、独特のアーキテクチャーを備えた32ビット・マイクロプロセッサーである。命令長が16ビットと24ビットなのは、コード密度を高めてプログラミングを容易にするため、性能を若干犠牲にしたからだ。24ビットの命令長は、32ビット幅のメモリーとは整合しない。さらに、ほかのRISCプロセッサーでは普通に備えている、大きくてフラットなレジスター・ファイル用のエンコーディング空間を欠いている。その代わりに、Xtensaプロセッサーは、SPARCアーキテクチャーに似た回転式のレジスター・ウインドウの小さなセットを備えている。しかしこういったことは、あまり重要ではない。Xtensaプロセッサーは、競争相手であるほかの論理合成可能なプロセッサーと同等以上に高速だからだ。さらに、テンシリカ社の本当の製品とは、プロセッサーを優れた設計自動化システムで包装したものだからである。
 テンシリカ社は時間の経過とともに、いくつかの開発ツールを用意したソフトウエア・コア・ベンダーではなく、コンフィギュラブル・プロセッサー・コアを用意したEDA*ツール・ベンダーであるように見えてきた。この変ぼうに気付いているのは、われわれだけではないだろう。最近、ある企業(企業名は明らかでない)がテンシリカ社の特許の1つを再審査するように米国特許商標局に要請した。多くの人は、この企業とは直接の競合相手であるアーク・インターナショナル社あるいはミップス・テクノロジーズ社ではないかと考えた。しかし、EDAツール・ベンダーが自社の事業分野に対するテンシリカ社の侵入に不安を抱き、同社の特許請求範囲を狭めようとしたのだという見方も可能である。
 確実に同社は、世界中の企業と大学の研究者を引き付けた領域へと進みつつある。何10年もの間、先見の明のある研究者はコンピューター設計における統一場理論のようなものを追求してきた。それは、ハードウエア設計とソフトウエア設計に分離した設計手順を相補的に統一する設計手法である。研究の多くは、高級言語によるソフトウエア・プログラムでハードウエアを設計することか、ソフトウエアに最適化したプロセッシング・マシンを開発することに集中していた。それはまさに、テンシリカ社の新しいツール、タイ・ジェネレーターが実行していることと同じである。
 米ヒューレット・パッカード社(HP社)*もまた、ハードウエア設計とソフトウエア設計を統一した設計自動化に取り組んできた。1999年にHP研究所と伊仏合弁のSTマイクロエレクトロニクス社は、「Lx」システムを発表した。Lxシステムは、特定用途向けのVLIWプロセッサーとこのプロセッサーに適応した開発ツール、シミュレーター、リアルタイム・カーネルを自動的に生成できる。ただしLxシステムについて公開されている情報は限られており、またテンシリカ社のシステムと違って広くライセンスされてはいない。
 この分野でHP研究所が進めている別の開発プロジェクトが「PICO(Program In, Chip Out)」である。HP社は最近、PICOの技術を米シンフォーラ社*にライセンス供与した。シンフォーラ社はPICOの開発を引き継ぎ、市場に投入しようとしているものの、まだ製品は出荷されていない。PICOの主要な発明者の1人であるHP社の技術者ボブ・ロウ氏が2002年に死去したため、PICOプロジェクトは停滞を余儀なくされた。
 いつの日か、技術者がある課題を解く手法を高級言語で記述すると、設計自動化ツールがハードウエアとソフトウエアの最適な組み合わせでその解法を実装するようになるだろう。しかもそれは、開発プロジェクトごとに技術者が定義した通りの「最適」な実装になっている。これが現実になったとき、ハードウエア技術者とソフトウエア技術者の区別はなくなり、ただ「技術者」だけが存在していることになるだろう。すぐには実現しないかもしれない。しかしテンシリカ社は、このビジョンを実現するために重要な一歩を踏み出した。 (C2003:In-Stat/MDR)

用語解説 / 会社情報
以下の説明はEDN Japanが作成した。なお前編(2003年10月号、pp.73-79)に登場した略語と用語は掲載していないことがある。
*米マイクロプロセッサー・レポート誌
リード・エレクトロニクス・グループの米In-Stat/MDR社が発行するマイクロプロセッサー技術専門誌。ホームページ・アドレスは下記の通り。
http://www.mpronline.com
▲本文へ戻る
【EEMBC】
Embedded Microprocessor Benchmark Consortium, Inc.
組み込み機器用マイクロプロセッサーの性能をテストする業界団体。さまざまなプロセッサーのベンチマーク値をホームページで公表している。ホームページ・アドレスは下記の通り。
http://www.eembc.org/
ベンチマークは、プロセッサーの構成別および応用分野別に用意した。プロセッサーの構成としては、基本構成の「out-of-the-box」と、最適化した構成の「optimized」がある。応用分野別では、コンシューマー機器マーク(ConsumerMark)、ネットワーク機器マーク(NetMark)、通信機器マーク(TeleMark)、OA機器マーク(OA-Mark)などがある。
▲本文へ戻る
【FFT】
fast Fourier transform
高速フーリエ変換
▲本文へ戻る
【MPEG】
Moving Picture Experts Group
映像やオーディオのデータ圧縮方式の国際規格。ビット列をフレームと呼ばれる単位に分けている。
▲本文へ戻る
【EDA】
electronic design automation
電子回路の設計自動化
▲本文へ戻る
【米ヒューレット・パッカード社(HP社)】
Hewlett-Packard Co.
同社のホームページ・アドレスは下記の通り。
http://www.hp.com/
▲本文へ戻る
【米シンフォーラ社】
Synfora, Inc.
米ヒューレット・パッカード社が開発したカスタム可能な
プロセッサーの設計技術「PICO(Program In, Chip Out)」の商用化に取り組んでいるベンチャー企業。同社のホームページ・アドレスは下記の通り。
http://www.synfora.com/
▲本文へ戻る
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報