雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
microprocessorreport
2004年5月号
多様な機能のプロセッサーを組み合わせる動的再構成回路

米クイックシルバー・テクノロジー社は、回路を動的に再構成することによって信号処理を効率的に実行できるプロセッサー技術「ACM(Adaptive Computing Machine)」を開発した。「ノード」と呼ぶ演算の実行単位をマトリクス・アレイ状に組み合わせる。ノードの入出力部を共通化することで、さまざまな演算機能のノードを互いに接続できるようにした。DSPやRISCプロセッサー、メモリー・コントローラーなどに相当するノードがある。

マックス・バロン 米マイクロプロセッサー・レポート誌* シニア・エディター
Max Baron Microprocessor Report Senior Editor
Microprocessor Reportとは
プロセッサー技術の専門ニュースメディア
 米Microprocessor Report誌(英文)は、EDN Japanと同じリード・エレクトロニクス・グループが発行しているプロセッサー技術の専門ニュースメディアです。米Microprocessor Report誌のご好意により、同誌のニュース解説記事をEDN Japanは毎月独占翻訳掲載しています。
 このほどEDN Japanは、Microprocessor Report誌のご購読受け付け業務を日本国内在住の皆さまに向けて開始しました。プロセッサー技術の詳細を誰よりも早く入手できる専門メディアをこの機会にお試しください。
詳細はこちら
 組み込みシステムを実現する方法は数多く存在する。大規模論理LSIと開発ツールのおかげで、設計者は目的の機能や性能と、コストのバランスを最適化できる。ある設計者は、プロセッサー・コアとソフトウエアで周辺機能を実現することによって半導体の回路面積を節約している。ハードウエア処理に比べると、プロセッサーの動作周波数は高い。消費電力が増えるものの、エンド・ユーザーに提供する製品は安価にできる。一方、消費電力を低く抑えなければならない場合は、周辺回路をハードウエア・マクロで実現したり、マルチプロセッサーを低い周波数で動作させたりする。しかし半導体の回路面積が増えるので、コストの上昇分を製品価格に転嫁することになる。
 米クイックシルバー・テクノロジー社*のプロセッサー技術「ACM(Adaptive Computing Machine)」は、回路を動的に再構成することによって信号処理を効率的に実行する。少ない回路面積と、低い消費電力の両立を目指す。低いコストと消費電力を要求する移動体通信機器や民生機器、車載機器などの用途を狙う*1)

FPGAを超えて

 回路を再構成できる(リコンフィギュラブルな)論理デバイスは、目新しいものではない。数100MHzもの周波数で動作し、数100μsと比較的短い時間で論理回路を再構成できるFPGA*CPLD*を、設計者は使いこなしてきた。
 FPGAはすでに、ハード・マクロを内蔵している。特定の回路をハード・マクロとして内蔵することによって高い性能を実現するためである。マイクロプロセッサーやDSPなどのハード・マクロがFPGAに搭載されている。FPGAを上回る動作周波数が要求される用途や、ソフト・マクロでは回路面積が大きくなってしまう場合にハード・マクロを組み込む。
Advertisement
 マイクロコントローラー(マイコン)にFPGAを追加したデバイスが試みられたこともあった。同じチップで実現できる機能の幅を広げるためである。これにより、半導体ベンダーは製品カタログに載せるマイコンの数を減らすことを期待した。しかしチップ・コストの上昇が、この期待を裏切ってしまった。
 複数のプロセッサー・コアを使ってFPGAに似たマトリクスを形成し、優れたプログラマビリティーと高い性能を狙う試みもあった。しかし回路を一度プログラムした後はそのままであることが多い。LSIを動作中にその回路を変更させる試みはまだ少ない。
 ACMの登場は、新たな設計手法をもたらす。クロックごとに変化する負荷の状況に応じ、論理回路を動的に変更できるため、処理効率を高められるとクイックシルバー社は主張している。ACMは、プロセッサーやステート・マシン、ローカル・メモリーといったハードウエアの基本的なビルディング・ブロックを組み合わせて多様な回路を構成する。
 FPGAとACMを比較してみよう。FPGAはシステム要求の変化に応じて回路を再構成できる。一部のFPGAは、周辺回路やDSPブロック、ローカル・メモリーなどを内蔵している。汎用チップであるFPGAと違い、ACMはASICとして実現することを狙っている。そのアーキテクチャーは、マルチプロセッサー・アレイ・システムを構成するために不可欠な相互接続に対応する。また演算エンジンは、数種類の演算処理機能に対応する適応型のハードウエアとなっている。同社によるとACMは、消費電力がより低く、回路面積のより小さいチップを実現できる。

再構成可能な大規模並列アレイ

 ACM技術の開発初期には、クイックシルバー社は極めて高い性能の大規模並列プロセッサー・アレイを考えていた。用途としては多重チャンネルのビデオ処理や音声処理、医療用画像処理、ソフトウエア無線、移動体無線基地局といった大量のデータを処理する分野を想定していた。しかし、異なる種類のプロセッサー同士を接続するアーキテクチャーは、それほど大規模なアレイでなくとも実用的であることが分かってきた。
 ACM技術の根幹は、プロセッサー・アレイによるマトリクスの階層構造にある(図1)。4つのノードを1つのセットとし、4つのセットが1個のマトリクスを構成する。4つのノードは互いに接続される。そして4つのセットは互いに接続される。マトリクス自体はヘテロジニアスな構造であり、均質ではない。個々のノードの機能は、再構成可能な回路によって決定される。ノードに割り当てられた特定の作業を実行するために、回路は一時的に最適化されるのである。この再構成により、プログラム制御下でノードの機能を変更できる。機能の変更に要する時間は、1クロック・サイクル〜数10クロック・サイクルである。ACM技術は、演算エンジンを構成するノードとマトリクスの数を制限していない。作業負荷と要求性能に応じ、数1000ノードにまでマトリクスの規模を拡大できる。
 ACMは、データ・フロー型の処理を実行するシステムLSIの実現手法として考案された。作業タスク(例えばフィルターとシステム管理)は、プログラムされたコンフィギュレーションと処理されるデータとともに単一のノードあるいはマトリクスに割り当てられる。なおここでタスクとはクイックシルバー社独自の用語で、プログラム・コードの分割可能な部分を指していることに注意されたい。
 タスクは互いに連鎖的に結合している。1つのノードで実行された結果は、隣接した次段のノードあるいはマトリクスへと転送される。次段のノードは次のタスクを実行するようにあらかじめ構成されている。
 データ・フロー技術は、タスクを最大限の速度で実行できるものの、次の処理ステップに必要なリソースが利用できるようになるまで、データを待たせることにもなる。
 演算結果を最大限の速度で転送するACMなどのデータ・フロー技術は、電力効率の低いシングル・プロセッサーあるいは高価なマルチプロセッサーの従来システムに比べると、競争力は高い。ただし高度なリアルタイム・システムでデータ・フロー技術を利用するとなると、プログラマーはタイミングにガード・バンドを設けなければならない。タスクをスケジューリングして大規模なマトリクス構造にマッピングするという点では、データ・フローは自由度が高すぎる。最大性能を実現するためには、機能をレイアウトするプログラマーは、連続するタスクをできる限り近くにマッピングすべきだろう。

演算ノードとノード間通信

 ACMのアーキテクチャーでは、機能の違いによっていくつかの演算ノードを用意した(表1)。汎用であるFPGAとは違い、ACMの演算ノードはあらかじめ設計された基本機能の範囲内でのみ適応性を備える。算術ノードは、線形および非線形の可変幅の算術機能を実行する。ビット操作ノードは、ビット・フィールド挿入とビット・フィールド抽出を含む、可変長のビット操作機能を備える。有限ステート・マシン(FSM*)・ノードは、リソースを処理する制御や、通信プロトコルを実装するために必要とされるであろう、比較的複雑で高速な順序制御を実行する。スカラー・ノードは、FSMよりも性能を要求しない、類似のタスクを制御するために使える。入出力ノードは、外部のデバイスとオンチップ・バスのインターフェースを実行する。
 ノードは柔軟性あるいは適応性によっても分類できる。ACMの適応性(adaptive)ノードは、ハードウエア仕様を設定可能であり、しかもソフトウエアでプログラムできる。ACMアーキテクチャーにおいては最も高い計算能力を提供する。
 一方、ドメイン・ノードは性能と消費電力で、ASICによる実装と競合することを狙う。クイックシルバー社は明らかにしないものの、マイクロプロセッサー・レポート誌はドメイン・ノードを、同社あるいは協力設計企業によってカスタム設計されたハードウエア論理だと推定している。ほかのハードウエア論理と同様に、ドメイン・ノードもコンフィギュレーション・レジスターを実装することによって適応性を与えられる。なおドメイン・ノードは、FSMによって制御されるのかもしれない。
 プログラマブル・ノードは、時間的にはクリティカルでない処理を実行する。アーキテクチャーは一般的なRISCである。既存のプログラム・コード、例えば単純なアプリケーションのオペレーティング・システムを走らせるために使われる可能性がある。
 図2に、ACMのノードの概要を示した。ノードの演算ユニットは、ローカル・メモリーに密結合している。演算ユニットには、表1のAXNやDBN、PSNなどが入る。
 DMA*エンジンはローカル・メモリーの入出力を担当する。ハードウエア・タスク・マネジャーは、演算ユニットとローカル・メモリーを制御する。演算ユニットのコンフィギュレーション・コードとプログラム・コードを保持することもできる。ローカル・メモリーは、データを一時的に格納しておく。メモリー容量は標準で16Kバイトである。メモリー容量は、必要に応じて増やすことができる。
 ノードの演算処理部とメモリー部は、ノードの入力部と出力部に挟まれている。これらの入出力通信部は、パイプライン・バッファーによってノード間の処理タイミングのずれを吸収する。データ・ディストリビューターは、演算ユニットやDMAエンジンに向けてデータをフォーマットし、データ・アグリゲーター(集束器)はバスの要求に合わせてデータを再フォーマットする。ノード内部のバス幅は入力と出力とも、少なくとも32ビットである。バス幅は必要に応じて拡張できる。
 ノード内部で演算処理部とメモリー部以外の論理回路は、「ラッパー」と見なせる。システムLSIに例えれば、コア以外の部分を制御しているハードウエアとソフトウエア・プロトコルに対応する。ACM技術ではこのラッパーが最も重要な技術であることが分かる。

AXNが演算の主役

 適応性実行ノード(AXN:Adaptive Execution Node)は、ACMアーキテクチャーの中で最も複雑な演算ユニットである(図3)。AXNは並列に動作する16個の乗算器を備え、演算結果を8個の32ビット累算器に送出する。4個の16ビットALU*エンジンが、積和演算以外の演算処理を担う。各クロック・サイクルごとに、AXNはローカル・メモリーから128ビットのデータを与えられる。データは処理エンジンに送られる前に、4個のデータ・アグリゲーターによってフォーマットされる。ローカル・オペランドは、8個のレジスター・バンクに格納される。各バンクは4個の16ビット・レジスターで構成されている。
 AXNによる演算結果はローカル・メモリーに格納される。そして次のノードへ転送するためにフォーマットされる。ローカル・メモリーはダブル・バッファーとして扱える。すなわちAXNがデータを処理中に、新しいデータを格納できる。
 AXNは機能的には、SIMD*機能を備えたVLIW*アーキテクチャーのDSPに、マイクロコントローラーを追加しただけにすぎない。DSPエンジンはプログラムが与える命令に応じ、8ビット、16ビット、32ビットのデータを処理する。AXNのハードウエア・アーキテクチャーも、このDSPと似ている。それは複数の積和演算ユニット、複数のALU、オペランドを保持するローカル(ワーキング)・レジスターのバンクである。AXNとDSPの違いは3つある。1つ目は命令の分配方式、2つ目はオペランドの読み出し方式、3つ目はデータをローカル・メモリーに格納する方式である。
 AXNの制御はコンフィギュレーション・ビットによって実行することが多い。何度も読み込み、デコードを繰り返す必要のある「命令」を利用する方が少ない。オペランドは、結果のデータがローカル・メモリーに送られる前に、特定の固定された操作シーケンスを実行するコンフィギュレーションを通して「プッシュ」される。
 古典的なVLIWプロセッサーと比較すると、命令に対して必要とするメモリー容量と、命令をデコードして実行するのに必要なハードウエアの量は、AXNの方が少なくて済む。AXNのコンフィギュレーションから分かるように、1個のノードが適応できる範囲は広くない。AXNの適応範囲はデータ幅が可変であること、ビット幅の違うデータを混合できること、複数のALU機能の集合を実行できることくらいである。
 ACM技術が最大性能を発揮できるのは、4個のノードを組み合わせたマトリクスとして利用した場合である。それは、4個の異なるノードの作業を結合したパイプを生成することだ。各ノードはプログラムではなく、ハードウエア論理のエンジンに近い。マトリクスを構成した結果として生じる流れ作業の組み立てラインは、高性能ASICの構成と似ている。それは、ハードウエア論理とソフトウエア・プログラマブルなコアの組み合わせによるASICである。ACM技術ではマトリクスを追加することによって、流れ作業の組み立てラインを拡張できるように設計してある。

低い消費電力

 クイックシルバー社は、ACMベースのシリコン・チップの製造に取り組んでいる*2)。その用途は公表されていないが、恐らくデジタル・スチル・カメラでの利用を想定したものだろう。実際の製造を担当する企業は台湾のTSMC社であり、製造技術は130nmである。ACMチップの動作周波数は250MHzから300MHzの間になると予測されている。
 チップ・アーキテクチャーの設計者によるとリコンフィギュレーション時間は10クロック以内である。事前にコンフィギュレーションされたエンジンと既存のハードワイヤ論理を切り替えるのに必要なのは1クロック・サイクルだけになる。
 同社によると、ベンチマークで比較した場合にACM技術によるチップはカスタム設計されたASICと同等の結果を出しているという(180nmの製造プロセスで比較した場合)。しかもチップ面積はASICチップの2/3だとしている。16個のノードを搭載したACMチップを200MHzで動作させると、cdma2000の検索動作を実行する同等のASICを同じ周波数で動作させた場合に比べて2桁高い性能を発揮するという。4個のノードを搭載した25MHz動作のACMチップでも3倍の性能を発揮すると見積もっている。すなわち、4個のノードを搭載した8MHz動作のACMチップが200MHz動作のASICと同じ性能を出せるというのだ。消費電力は劇的に低下するだろう。マイクロプロセッサー・レポート誌は、1個のAXNと1個のDAN、1個のRISCコア、1個の画像関連のアクセラレーターに加え、32Kバイトのオンチップ・データ・キャッシュと周辺回路を含んだ300MHz動作の4ノード・マトリクスの消費電力は、約1Wになると推定している。なお製造プロセスは130nmである。

ソフトウエアが大問題

 歴史は繰り返す。デジタル・コンピューターが登場したのは約50年前のことである。デジタル・コンピューターの設計者はアナログ・コンピューターに対抗するため、より高速な処理を実行できるプログラムを効率的に作成すべく努力していた。ソフトウエア開発ツールは存在していなかった。その後、ソフトウエア開発ツールの作成と利用価値に対する理解が進み、現在のプロセッサーの普及へとつながったのである。
 大規模な並列プロセッサー・アレイはすでに存在しており、例えばACM技術を駆使したチップを実際に作成できる。しかしソフトウエア開発ツールは、いまだに開発の初期段階にある。C/C++言語とアセンブリ言語でプログラムするのでは十分ではない。大規模なアレイが、データの最適なルーティングを必要とするのである。それは各処理ユニットで動いているプログラムのステップごとに、異なるプロセスを協調させることである。現在のソフトウエア開発ツールは、適用範囲や品質、操作画面が製品ごとに異なっている。そしてハードウエアも、ベンダーごとに異なるのである。
 クイックシルバー社が提供しているソフトウエア開発環境は、アセンブリ言語とC言語の両方を使用する。適応性ノードとドメイン・ノードは両方とも、現在はアセンブリ言語でプログラムする。同社は、適応性ノード向けに高級言語のコンパイラーを開発する予定である。また標準的な信号処理用と画像処理用にプリプログラムされたアルゴリズム・モジュールのライブラリーを開発する。これは、同社のデータ・フロー言語「SilverC」(C言語を拡張した言語)でアプリケーションのデータ・フロー・モデルを記述し、検証することから始めるということである。続いて、コードの内部をアセンブリ言語を使って作成することになるだろう。そして同社のシミュレーション・プラットフォーム「Inspire」でプログラム・コードをテストする。
 同社のアセンブリ言語は簡潔なものである。例えば、AXN用アセンブリ言語命令の一般的構文は以下のようになる。



 最初のフィールドは、ラベルもしくはパイプを示す「 」である。ほかのSIMDアーキテクチャーと同様に、操作を「<p>」の値により決定(条件付き実行)できる。「->」でソース・リストとデスティネーション・リストを分離する。このアセンブリ言語ではコメントのために「;」を使っている。
 数多くのノードやマトリクスの上で実行するように分割済みのアプリケーションを想定しよう。クイックシルバー社のSilverC言語はリソース(ノード/マトリクス)を定義できるし、リソース間に明示的なリンクを張る(アプリケーションのプログラマーがルーティングを定義する)ことができる。またマクロのシミュレーションを実行できる。このシミュレーションにより、システム中のタイミングやバッファーリング、ノード・プロセッサーの選択をチェックできる。
 所定の処理を実行するように設定されたフロー・ダイヤグラムを記述するSilverCの宣言とリンクの例を下記に示す。



 同社は、現在のソフトウエア開発ツールとシミュレーターは、同社がチップを設計するときには十分であるとしている。チップ寸法は比較的小さく、ルーティングと最適化の問題は発生しにくいと想像できる。
 大規模なACMアレイをプログラムすることは、ほかの大規模並列アーキテクチャーに比べて難しいものになる。ACMのノードは異なる数種類の処理エンジンを備える。同じ機能を実行するために異なるノードの組み合わせが考えられることは、最適化をより進められる一方で最適化の作業そのものをさらに複雑にする。ACM技術による大規模並列アレイの実現は、同社が次の世代の開発ツールを完成させるまで待たなければならないかもしれない。

ラッパーが極めて大切

 クイックシルバー社は、驚くべき数の適応性ノードとドメイン・ノードを設計してきた。ただし、ノード同士をインターフェースしたり、将来の演算ユニットにハードウエアとソフトウエアのソケットを提供する回路が必要である。この役割を担うのがラッパーだ。ラッパーは入出力パイプラインやバッファー、データ・フォーマット回路を利用してこの役目を果す。ハードウエア・タスク・マネジャーとDMAエンジンがこれに加わる。この回路構成によって、あらゆる演算ユニットを誰もがラッパー内に挿入してノードを完成できるようになる。ローカル・メモリーを定義し、ラッパーのリソースを定義し、システム内のほかのノードと通信できる。
 同社が開発した数々のプロセッサー技術の中でも、ラッパーのコンセプトは抜きんでている。ラッパーはハードウエアとソフトウエアの共通基盤であり、さまざまなコア(演算ノード)同士を接続する機能を備える。ユーザーが過去に開発して再利用したいコアやカスタムASICのコア、RISCプロセッサー・コアなどを結び付けられる。演算リソースをカプセル化し、OSが制御できるようなラッパーを開発することもできる。
 同社はACM技術の開発という巨大なプロジェクトに多大なエンジニアリング資源を投入してきた。数多くの演算ユニットを開発し、マクロ・レベルの言語であるSilverCを開発し、アレイをプログラムして最適化するツールを開発してきた。
 今後同社は、プロジェクトを維持するために十分な収入を確保することに集中するとマイクロプロセッサー・レポート誌は予想する。コアの数を減らし、顧客の既存のIPコアを格納できるラッパーを開発するとともに、これらをきちんと動かす高性能ソフトウエアを開発することになろう。

用語解説 / 会社情報
以下の説明はEDN Japanが作成した。
米マイクロプロセッサー・レポート誌*
リード・エレクトロニクス・グループの米インスタット/MDR社が発行するマイクロプロセッサー技術専門誌。ホームページ・アドレスは下記の通り。
http://www.mdronline.com/mpr/
▲本文へ戻る
【米クイックシルバー・テクノロジー社】
QuickSilver Technology, Inc.
1998年設立。同社が開発したACM技術をライセンス供給する事業を展開している。同社のホームページ・アドレスは下記の通り。
http://www.qstech.com/
国内連絡先はクイックシルバー・テクノロジー・ジャパン、 電話045-470-9112。
ホームページ・アドレスは下記の通り。
http://www.quicksilvertech.co.jp/
▲本文へ戻る
*1)
日本では、AOIテクノロジーがACM技術を導入したシステムLSIを開発中である。同社はオリンパスとITXの出資による合弁企業。代表取締役社長は嶋正利氏。従業員数は16名。ホームページ・アドレスは下記の通り。
http://www.aoitech.co.jp/
▲本文へ戻る
【FPGA】
field programmable gate array
ユーザーが設計した論理回路を手元で書き込める半導体デバイス(PLD)のなかで、論理ブロックの構造がゲートアレイに近いタイプを指す。
▲本文へ戻る
【CPLD】
complex programmable logic device
▲本文へ戻る
【FSM】
finite state machine
▲本文へ戻る
【DMA】
direct memory access
▲本文へ戻る
【ALU】
arithmetic logic unit
算術演算ユニット
▲本文へ戻る
【SIMD】
single instruction multiple data
複数のデータに対して同一の演算処理を同時に実行する処理方式。
▲本文へ戻る
【VLIW】
very long instruction word
命令長を通常のプロセッサーよりも長くすることによって、依存関係のない複数の命令を1つの命令にまとめて同時に実行する処理方式。
▲本文へ戻る
*2)
本稿の執筆時点。現在はACM技術によるチップが完成している。12個のノードを搭載し、300MHzの最大動作周波数で動く。消費電力は650mW。チップ寸法は7mm×10mm。製造技術は0.13μmのCMOS。そのほかについてはEDN Japan 2004年4月号、p.34を参照。
▲本文へ戻る
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
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. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報