Blackfin

Blackfinプロセッサの詳細解説



Blackfinは、アナログ・デバイセズが製造する、デジタルシグナルプロセッサ(DSP)機能を統合した16/32ビットのマイクロプロセッサファミリです。小型で省電力であるため、組み込みシステムやマイクロコントローラとして幅広く利用されています。

アーキテクチャ



Blackfinプロセッサは、インテルアナログ・デバイセズが共同開発したMSA(Micro Signal Architecture)というSIMDアーキテクチャに基づいています。これは32ビットRISC MCUプログラミングモデルを採用しており、2000年12月に発表され、2001年6月のEmbedded Systems Conferenceで初めて公開されました。

Blackfinアーキテクチャは、アナログ・デバイセズのSHARCアーキテクチャとインテルXScaleアーキテクチャの良い点を組み合わせ、DSP機能とマイクロコントローラ機能を統合したものです。これにより、性能とプログラミングの容易さが向上し、従来のDSPやRISCプロセッサにはない低消費電力を実現しました。

Blackfinアーキテクチャを実装したCPUには様々な種類があり、それぞれ特定の用途を想定して設計されています。例えば、BF52xCファミリには、48kHzのステレオオーディオCODECが内蔵されています。

内蔵周辺機器:

Blackfinプロセッサには共通して以下の周辺機器が内蔵されています。

デバッグ/JTAGインターフェース
リアルタイムクロック
コア電圧スイッチング電源
ウォッチドッグタイマー
タイマー/PWM出力/PWM入力ポート
コアタイマー (コアのクロック周波数で動作するタイマー)

機能



コア機能

Blackfinのコアは、デジタルシグナルプロセッサとしても、RISCコアとしても捉えることができます。

DSPとしての側面: 2つの16ビットMAC、2つの40ビットALU、1つの40ビットバレルシフタを搭載しており、同時に3つの命令を実行できます(コンパイラの最適化やプログラマのスキルによって異なります)。
RISCコアとしての側面: メモリ保護機能、CPUモード(ユーザーモードとカーネルモード)、シングルサイクルオペコード、データキャッシュと命令キャッシュ、ビット/バイト/ワードテスト命令、様々なオンチップ周辺機器を備えています。

また、ISA(命令セットアーキテクチャ)も高度な表現能力を持ち、アセンブラプログラマやコンパイラがハードウェア機能を最大限に活用してアルゴリズムを最適化できるようになっています。

メモリとDMA

Blackfinは、バイト単位でアドレス指定が可能なフラットなメモリ空間を使用しています。内蔵L1メモリ、内蔵L2メモリ、外部メモリ、メモリマップされた制御レジスタなどは、すべてこの32ビットアドレス空間に存在します。

L1内蔵SRAMメモリはハーバード・アーキテクチャを採用しており、コアのクロック速度で動作します。命令メモリとデータメモリは独立してコアと専用メモリバスで接続されており、高速なデータ転送が可能です。

L1メモリは、命令とデータそれぞれ独立してキャッシュメモリとして使用することもできます。

一部のBlackfinプロセッサには、64KBから256KBのL2メモリが搭載されています。このメモリはコアのクロック速度よりも遅く、命令とデータを混在させることが可能です。

Blackfinプロセッサは外部メモリとして、SDRAM、DDR-SDRAM、NORフラッシュ、NANDフラッシュ、SRAMなどをサポートしています。一部のモデルではATAPIやSD/SDIOインターフェースもサポートされており、数百メガバイトの外部メモリ空間を使用できます。

コアとメモリシステムの組み合わせでDMAエンジンを構成でき、任意の周辺機器と主メモリ(および外部メモリ)との間でデータ転送が可能です。プロセッサは各周辺機器と専用のDMAチャンネルを持っており、リアルタイムの動画エンコード/デコードなど、高いスループットが要求される処理にも対応できます。

マイクロコントローラとしての機能

Blackfinアーキテクチャは、マイクロプロセッサマイクロコントローラに見られる特徴を備えており、商用またはオープンソースの様々なオペレーティングシステムを効率的に実行できます。

メモリ保護ユニット(MPU): 全てのBlackfinプロセッサに内蔵されており、メモリ空間全体の保護とキャッシュ戦略を提供します。これにより、ThreadX、µC/OS-II、LinuxなどのRTOSやカーネルが動作可能です。ただし、MPUはアドレス変換機構を持たないため、仮想記憶やプロセス毎のアドレス空間はサポートしていません。
ユーザー/スーパーバイザーモード: Blackfinには、スーパーバイザー、ユーザー、エミュレーションの3つのCPUモードがあります。スーパーバイザーモードでは、すべてのプロセッサリソースにアクセスできますが、ユーザーモードでは、システムリソースやメモリ領域を保護できます。これにより、OSがカーネルをスーパーバイザーモードで、通常のスレッドやプロセスをユーザーモードで実行することができます。
可変長RISC風命令セット: Blackfinの命令は、16ビット、32ビット、64ビットのものが存在します。頻繁に使用される制御命令は16ビットで、DSPなどの命令は32ビットや64ビットです。これにより、コード密度を高めています。また、Blackfinの命令セットには、動画や画像の圧縮・伸張アルゴリズムで利用されるピクセル処理をサポートするmedia processing extensionsが含まれています。
周辺機器: Blackfinプロセッサは、多様な周辺機器接続手段を備えています。
USB 2.0 OTG (On-The-Go)
ATAPI
MXVR (MOST Network Interface Controller)
PPI (Parallel Peripheral Interface)
SPORT (Synchronous serial ports)
CAN (Controller Area Network)
UART (Universal Asynchronous Receiver Transmitter)
SPI (Serial Peripheral Interface)
I²C (Inter-Integrated Circuit)

すべての周辺制御レジスタは、通常のアドレス空間にメモリマップされており、設定が容易です。

開発ツールとサポートOS



アナログ・デバイセズは、独自の開発ツールであるCROSSCORE(VisualDSP++)を提供していますが、Green Hills SoftwareのMULTI IDE、Blackfin向けのGNUコンパイラコレクション、National InstrumentsのLabVIEW Embedded Moduleなど、他の開発ツールも利用可能です。

BlackfinをサポートするOSとしては、以下のものが挙げられます。

Linux
uClinux
ThreadX
* µC/OS-II


まとめ



Blackfinは、DSP機能とマイクロコントローラ機能を統合した高性能・低消費電力のプロセッサであり、組み込みシステム開発において幅広い用途に対応できます。その柔軟性と拡張性の高さから、様々な分野で活用されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。