Blackfin

Blackfin は、デジタルシグナルプロセッサ（DSP）機能を組み込んだ16/32ビットマイクロプロセッサファミリであり、小型で省電力のマイクロコントローラとして使われている。オペレーティングシステムを動作させ、同時にH.264ビデオエンコーディングのような複雑な数値的タスクを並行して行う、低消費電力の統合プロセッサアーキテクチャである。
開発キットがいくつか存在し、Linuxもサポートされている。現在は、アナログ・デバイセズが製造している。
アーキテクチャ.
Blackfin プロセッサは、インテルとアナログ・デバイセズが共同開発した MSA（Micro Signal Architecture）というSIMDアーキテクチャに基づく32ビットRISC MCU プログラミングモデルを使用している。
Blackfin プロセッサアーキテクチャは2000年12月に発表され、2001年6月の Embedded Systems Conference で実物が初公開された。
Blackfin アーキテクチャは、アナログ・デバイセズのSHARCアーキテクチャとインテルのXScaleアーキテクチャのそれぞれの長所を取り入れ、そこにデジタルシグナルプロセッサ機能とマイクロコントローラ機能を統合したものである。Blackfin/MSA と XScale/ARM や SHARC には様々な相違点があるが、統合によって性能とプログラム容易性が向上し、これまでのDSPやRISCにはない低消費電力を実現した。
Blackfin アーキテクチャを実装したCPUは各種あり、それぞれ特定の応用分野を想定している。Blackfin ファミリは下表の通りである。アナログ・デバイセズの製品一覧はこちらにある。
1 BF52xC ファミリには、48kHz、ステレオ音声CODEC (2xADCs, 2xDACs) が内蔵されている。
上の表に付け加えると、Blackfin プロセッサには共通して以下の周辺機器が内蔵されている。
機能.
コア機能.
Blackfin のコアが何であるかは、見方によって異なる。
ISAも高度な表現能力を有し、アセンブラプログラマやコンパイラがハードウェア機能を利用してアルゴリズムを高度に最適化することを可能にしている。
メモリとDMA.
Blackfin はバイト単位のアドレス指定が可能な平坦なメモリ空間を使っている。内蔵L1メモリ、内蔵L2メモリ、外部メモリ、メモリマップされた制御レジスタ群などは、全てこの32ビットアドレス空間に存在している。
L1内蔵SRAMメモリは、ハーバード・アーキテクチャであり、コアのクロック速度で動作する。命令メモリとデータメモリは、それぞれ独立してコアと専用メモリバスで接続されていて、コアとL1メモリ間では高速なデータ転送が可能となっている。
L1メモリは、命令とデータそれぞれ独立してキャッシュメモリとして使うこともできる。
一部のBlackfinプロセッサには64KBから256KBのL2メモリがある。このメモリはコアのクロック速度より遅い。L2メモリ上では命令とデータが混在可能である。
Blackfinプロセッサは外部メモリとして SDRAM、DDR-SDRAM、NORフラッシュ、NANDフラッシュ、SRAM をサポートしている。また、一部のBlackfinには ATAPI や SD/SDIO といったインタフェースがサポートされている。これらは、外部メモリ空間として数百メガバイトをサポート可能である。
コアとメモリシステムの組み合わせでDMAエンジンを構成でき、任意の周辺機器と主メモリ（および外部メモリ）との間でやり取りが可能である。プロセッサは各周辺機器と専用のDMAチャンネルを持っていて、リアルタイムの動画エンコーディング/デコーディングなども可能とする程度の高いスループットを提供している。
マイクロコントローラとしての機能.
Blackfinアーキテクチャは、マイクロプロセッサやマイクロコントローラに共通して見られる特徴を備えている。これによってBlackfinは商用またはオープンソースの各種オペレーティングシステムを効率的に実行できるようになっている。
周辺機器.
Blackfin プロセッサは、様々な周辺機器接続手段を有する。
全ての周辺制御レジスタは通常のアドレス空間内にメモリマップされているため、設定は容易である。
開発ツール.
アナログ・デバイセズは独自の開発ツール CROSSCORE（VisualDSP++）を提供しているが、それ以外にも Green Hills Software の MULTI IDE、Blackfin 向けGNUコンパイラコレクション、National Instruments の LabVIEW Embedded Module などがある。
サポートOS.
Blackfin をサポートするOSを下表に示す。