GAIO CLUB

2004年09月04日

 RISCの顔をしたDSP「Blackfin」プロセッサピーク性能で走り続けるプロセッサの秘密とは

GAIO CLUB 特集
GAIO CLUB【2004/9月号】
RISCの顔をしたDSP「Blackfin」プロセッサ
ピーク性能で走り続けるプロセッサの秘密とは
~ 狼に仕事をさせる ~

汎用マイコンと同等の使いやすさを持ったDSP

「DSPは使いにくい」という神話があります。これは一部ではまだ本当の話ですが、互換性が重要である分野を除くと殆どの場合正しいとはいえなくなってしまいました。そもそもこのようなことが言われるようになったのは20年以上も前の最初期のDSP製品のアーキテクチャーが使いにくかったからです。

その間ムーアの法則にしたがって指数関数的にトランジスタ数が増えてきたことを考えれば、20年前のプロセッサの常識を今も無批判に信じ続けるのはどうかと思われます。特に最近になって汎用マイクロプロセッサにまったく劣らない使いやすさながら、きわめて高い信号処理性能と低い消費電力を持つ新世代DSPが現れてきました。

RISCマイコンと高性能DSPの両面を併せ持つプロセッサ

アナログ・デバイセズは最新のDSPであるBlackfinアーキテクチャーを設計するにあたって、超高速DSPであると同時に使いやすいRISCプロセッサであるようなアプローチを取りました。実際、Blackfinプロセッサファミリの一員であるADSP-BF533は、UARTやSPIといったよく知られたIOを持ち、キャッシュを使って低価格のメモリーシステムでも高い性能を発揮できます。C++言語やRTOSと親和性の高いレジスタセット、バイト単位のアドレッシング、4GBのメモリー空間、データレジスタと同じ幅のアドレスレジスタといった特徴は、これが単なる750MHzのマイコンに過ぎないことを表しています。

羊の顔をした狼

設計者はBlackfinという狼を作り上げるに際してRISCアーキテクチャーという羊の皮を用意しました。この皮はあまりによくできているため、言われなければその下にDSPが隠れていることには気づかないでしょう。普通にC言語を使って普通にRTOSの上でアプリケーションを書けば、普通に製品ができてしまいます。まるで羊に変装した狼が自分が狼であることを忘れてしまったようです。ただし、750MHzの羊ですから恐ろしく脚が速いと言えます。

もし、出来上がった製品に満足であるなら手を加える必要はありません。しかし、ビデオ信号処理や大規模な画像処理を行いたいときには、本来の狼の力をひきだしたくなります。そうしたければもちろん狼の力を引き出すことはできますが、それには羊と狼の違いを知っておかなければなりません。オンチップ専用スタックや独立した複数のアドレス空間、ワード単位のアドレッシングが消えた今、DSPと汎用プロセッサの違いは小さく感じます。もちろんそれは錯覚で、現代のDSPはバスバンド幅において汎用マイクロプロセッサに対して圧倒的な差をつけています。それは羊が持っていない牙と言っていいでしょう。しかし、このバスバンド幅を最大限に利用するにはそれなりの知識と狡猾さが要求されます。

DSPの性能を引き出すコンパイラ

DSPの伝統に従って、Blackfinアーキテクチャもデュアル・メモリー・アクセス命令を持っています。コンパイラはこの命令を生成することができますが、C言語があまりにも柔軟であるため、普段は危険すぎて並列命令を積極的には生成できません。しかし、ループやポインタが一定の条件を満たせばコンパイラは安全に最適化を進めることができます。こういった条件についてはプラグマを使ってプログラマがコンパイラに知らせてやります。

コンパイラが高いバンド幅を利用するコードを生成できるようになったら、今度はその要求に追いつくバンド幅を提供しなければなりません。もちろん、Blackfinにはそれだけのバンド幅が用意されていますが、ただで手に入るほど甘くも無いのです。命令のデュアル・アクセスを同じサイクルで完了したければ、二つのロード・オペランドは別のメモリー・サブ・バンクになければなりません。BlackfinのL1メモリーは4KBのメモリー・サブ・バンクの集合になっており、データが異なるサブ・バンクに配置されているなら、デュアル・ロードが1サイクルで可能です。

ピーク性能で走り続けるBlackfinプロセッサ

ここまではアルゴリズムの強化と言っていいでしょう。汎用マイクロプロセッサでもL1キャッシュにデータがあればそれなりに高速な実行が可能ですから、上のようなことでがたがた言うほどでもないと思うかもしれません。しかし、DSPの場合汎用マイクロプロセッサが持っていない機能を利用してピーク演算性能を持続させることができます。汎用マイクロプロセッサはデータがキャッシュ上に無い場合、急激に性能が低下します。つまり、キャッシュサイズより大きなデータの場合は、ピーク性能で処理することができません。ところが、DSPの場合内蔵DMAを使ってこの問題を解決できるのです。

内蔵DMAを使うと、プロセッサがL1メモリー上のデータを処理している間に、L1メモリー上の別バッファに外部バスや入力デバイスからデータを転送することができます。このようなバックグラウンド転送をうまく利用すると、「外部SDRAMからデータをロード⇒データ処理⇒外部SDRAMへデータをストア」というデータの操作をパイプライン化することができます。これによってDSP演算コアは休むことなく演算を続けることができます。

以上のように、Cコンパイラを使った開発ではメモリー・バンド幅を活用するような設計によって劇的にアプリケーションの性能を上げることができます。すべて使わなくてもこの中のどれかを取り入れるだけで大幅な性能向上を図ることができます。
BLACKfinデザインキット

32bit RISCマイコンのアーキテクチャを16bit SIMD DSPと融合 画像処理性能をさらに強化した新世代プロセッサ

BLACKfinプロセッサは、インテル社と共同で開発をしたMSA (マイクロ・シグナル・アーキテクチャ) を採用し、32ビットRISCマイコン機能と高性能の16ビットDSP機能を、1つのチップに集積した新世代プロセッサです。ガイオでは、BLACKfinのソフト開発のための評価ボードとクロス開発ツールをパッケージにした、BLACKfinデザインキットを提供しています。

マルチメディア・アプリケーション向け新プロセッサ「BLACKfin」

アナログデバイセズ社のBLACKfin(ブラックフィン)は、CPUとDSPの特長を併せ持つ、全く新しいタイプのマルチメディア・アプリケーション向けプロセッサです。特に、ハイコストパフォーマンス・低消費電力であるため、組み込み用途向けの画像・音声・通信アプリケーションには最適なプロセッサとなっています。

最新のBLACKfinファミリー製品であるADSP-BF533は、600MHzのRISCマイコンとして、1秒間に12億(1.2ギガ)回の積和演算性能をはじめ、消費電力削減機能、周波数とコア電圧の双方を実行中に変更できる動的電源管理機能等を搭載しています。

CPUとDSPの機能を1つのコアに

  • プログラミングの容易なRISC CPUの機能と信号処理用のDSPの機能を一つのコアに統合したユニークなアーキテクチャを持っています。このため、従来<制御用CPU> + <信号処理用DSP>という2チップで構成せざるを得なかったシステムをBLACKfin 1チップで置き換えることができ、大幅なコストダウンが実現できます。
  • CPUとDSPの機能を1つのコアに

低消費電力を実現しモバイル機器に対応

低コストながらクロック周波数600MHzの性能を持ち、更に1GHz品の投入も計画されています。動作クロック周波数とコア電圧を動的に可変できるダイナミック・パワーマネジント機能により、高性能・低消費電力を実現しています。
低消費電力を実現しモバイル機器に対応

オールインワン開発パッケージガイオ「BLACKfin デザインキット」

ガイオは、AV入出力を搭載したBLACKfin評価ボード、コンパイラ、デバッガ、μITRON、TCP/IPミドルウエアをセットにした開発キットを提供しています。

筆者紹介

堀江 誠一(ほりえ せいいち)氏

アナログ・デバイセズ株式会社

DSPSテクノロジーグループ Blackfinプログラムマネジャー

人気のコラム

最新のコラム