Blackfinとは何か

Analog Devicesは現在3種類の16ビットDSPアーキテクチャーを製造しています。

TigerSHARCを16ビットDSPと考えるならば4品種ですが、それはおいておきましょう。とにかくこの3品種のうち、ADSP-218xは219xに取って代わられるわけですから現行16ビットアーキテクチャーは2品種となります。ここでは、ADSP-2191の上位に位置付けられているBlackfinについてざっと見ていきましょう。

演算コア

Blackfinは16ビットDSPでありながら、32ビット・レジスタを基本とした構成となっています。演算の核となるのはR0-7の8本の32ビット・整数レジスタです。この8本は16本の16ビットレジスタとしても使えるようになっています。アキュームレーター・レジスタ40ビットのものが2本あります。

演算部の最大の特徴はデュアルMAC/ALUでしょう。Blackfinは16ビット積和や加減算、シフト演算などを1サイクルで実行できます。これはデュアルMAC/ALUの力によるものです。これによってADSP-21535はクロック周波数300MHzのとき、600MMac/Secで積和演算を行うことができます。

演算部は32ビット整数演算もできるようになっており、このときは通常のRISCのように振舞います。

アドレッシングはDSPですので循環バッファ・アクセスビット逆順アクセスに対応しています。これらに対応するレジスタは4組しかありませんが、ちゃんとデュアル・アクセスには対応しています。レジスタが4組と少ないのは、これとは別のポインタ・レジスタが8本用意されているからです。この8本はDSP用のアクセスはできませんが、C/C++コンパイラが利用しやすいようなアドレッシングモードを持ちます。また、C/C++言語用にスタック・ポインタとフレーム・ポインタがはじめから用意されています。

アドレッシング用のレジスタはすべて32ビットです。また、アクセス最小単位はバイトです。このアーキテクチャーは4GBのリニアなアドレッシング能力を持っています。なお、アドレス空間は単一です。また、ADSP-2191のようにプログラマが明示的にDM/PMといったバス指定をすることはありません。

シーケンサーに目を向けてみると、DOループ用のレジスタがあるほか、システムモードとユーザーモードへの対応が目に付きます。これでOSを使った信頼性の高いシステムを組めます。

命令セット

命令セットに目を向けてみると、アーキテクチャーとしてはやはりロード・ストア型アーキテクチャーとなっています。デュアル・アクセスを行いながら演算が可能なのはDSPとして当然としても、アクセス・サイズがバイト、ハーフワード、ワードと豊富なのはRISCを思わせます。

演算命令に関して特異なのは、その通信/ビデオ指向です。最近でこそViterbiアルゴリズム用の命令は珍しくないものの、Blackfinはそれに加えてバイト単位の画像処理命令を備えています。この命令は4バイトを1サイクルで処理しますが、非整列データもオーバーヘッド無しに処理できる仕掛けを有しています。

また、すでに述べたようにデュアルMAC/ALUを使って、主要な16ビット演算ならば2演算/サイクルでこなすことができます。

命令セットのもう一つの特徴は、RISC命令とDSP命令の融合でしょう。このプロセッサは高性能DSPであると同時に汎用RISCプロセッサとしても十分以上の性能を発揮することができます。整数データ長が32ビットでバイト・アドレッシングであることからRISC用に書かれたプログラムを容易に移植することができます。

階層型メモリー・アーキテクチャー

Blackfinは階層型メモリー・アーキテクチャーを採ります。コアに内蔵されたL1メモリーは、演算部に対して次のデータチャンネルを持っています。

このような強力なデータ・パスを擁するのはもちろん信号処理性能を確保するためです。また、L1メモリーはコア外部に対してDMAパスとバースト・フィル・パスで接続されています。

ペリフェラル

Blackfinコアを使用した最初のDSPであるADSP-21535の内蔵ペリフェラルは、面白いことに多くがADSP-2191と共通です。これは両者がARM社の提唱するアーキテクチャーに沿って内部バスを構築しているためです。

で、面白いのか

このサイトにとって重要なのは面白いかどうかです。実はこのサイトを開設する時点で私はBlackfinにも触れていました。ではなぜADSP-2191を選んだかというと単にADSP-2191が好きだったからです(ここは笑うところ)。ま、それはともかく以下のような点は重要でした。

アーキテクチャーがコンパクト
DSPは日本語の情報が少ないために多くをサイトで説明しなければなりません。Blackfinは精巧な分、記述量が肥大します。
ADSP-2191で十分
160MHzもあったらいろいろなことができます。そのうちお馬鹿な計画もご披露します。
EZ-KITにフリースペースがある。
これ、重要です。ADSP-21535のEZ-KIT Liteにはフリースペースがありません。回路を追加するのは至難の業です。

結局、ADSP-2191はちょっと遊ぶ分には手ごろだということです。Blackfinははじめから携帯電話やビデオといった先端機器を狙っているため、おもちゃとしては鶏を裂くのに牛刀を持ち出す感を否めません。

逆にビデオ信号処理や携帯機器を作っている方ならBlackfinは楽しめるだろうと思います。

⇒次は逓倍

2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |