MicroBlazeとは
MicroBlazeは、
ザイリンクス社が提供するFPGA(Field Programmable Gate Array)向けの32bitソフトプロセッサコアです。FPGAの汎用メモリと論理回路を用いて実装され、
組み込みシステム開発において柔軟なカスタマイズ性と高い拡張性を実現します。
アーキテクチャの特徴
MicroBlazeの命令セットアーキテクチャは、
RISCベースの
DLXアーキテクチャに類似しており、多くの命令は1サイクルで実行可能です。多様な組み込みアプリケーションに対応するため、多用途のインターコネクトシステムを備えています。
バスシステム
CoreConnect PLBバス: システムメモリにマップされたマスタ・スレーブ型のトランザクションバスで、多くのサードパーティ製IPが接続可能です。OPBバスへのブリッジ接続も可能です。
LMBバス: ローカルメモリ(FPGAのBRAM)へのアクセスに使用され、他のバスの負荷を軽減します。
FSL(Fast Simplex Link): ユーザ定義のコプロセッサとの接続に使用される専用のFIFO形式のインタフェースです。これにより、計算処理の一部または全部をハードウェアモジュールで実行し、計算負荷の高いアルゴリズムを高速化できます。
カスタマイズ性
MicroBlazeは、キャッシュサイズ、パイプライン段数(3段または5段)、組み込み周辺インターフェース、メモリ管理ユニット(MMU)、バスインターフェースなど、多くの要素をユーザが設定可能です。
サイズ最適化: 3段パイプラインを使用し、クロック周波数を犠牲にして論理回路を削減します。
性能最適化: 5段パイプラインを使用し、最大210MHz(Virtex-5 FPGAシリーズの場合)で動作可能です。また、乗算、除算、浮動小数点命令など、ハードウェア実装コストの高い命令は選択的に追加・削除できます。
メモリ管理
MMUを使用しない場合、保護と仮想メモリモデルは単純化されます。μClinuxやTOPPERS/JSPカーネル|TOPPERS_JSPカーネル、FreeRTOSなどがこの構成で動作します。MMUを使用する場合、Linuxカーネルのような、ハードウェアベースのページングと保護を必要とするオペレーティングシステムを動作させることが可能になります。ただし、ハードウェアCPUコアに比べてスループットは低くなります。
EDK (Embedded Development Kit)
ザイリンクス社のEDKは、MicroBlazeおよびPowerPC組み込みプロセッサをFPGAで構築するための開発環境です。Eclipse上で動作し、XPS (Xilinx Platform Studio)とSDK (Software Development Kit)の2つの環境で構成されています。
XPS (Xilinx Platform Studio)
組み込みシステムのハードウェア仕様(プロセッサコア、メモリコントローラ、周辺機器I/Oなど)を設定し構築します。
プラットフォーム仕様をRTL記述(VerilogまたはVHDL)に変換し、組み込みシステムの実装を自動化するスクリプトを生成します。
MicroBlazeコアは通常、暗号化されたネットリストを出力しますが、VHDLのプロセス記述は
ザイリンクスから購入できます。
SDK (Software Development Kit)
組み込みシステム上で動作するソフトウェアを開発します。
GNUツールチェイン(GCC、GDB)を活用し、C/C++アプリケーションを記述、コンパイル、デバッグできます。
ザイリンクスは、命令セットシミュレータ(ISS)を提供しており、シミュレーションでソフトウェアをテストしたり、実際のFPGAボードで実行したりできます。
ライセンス
XPSの購入者は、追加のロイヤリティなしでMicroBlazeをザイリンクスのFPGAで使用する永久ライセンスが与えられます。ただし、ザイリンクス以外のデバイスでの使用には別途交渉が必要です。
クローン実装
aeMB: Verilogで実装されたLGPLライセンスのクローンです。
OpenFire: Verilogで実装されたサブセット版であり、MITライセンスで提供されています。
その他のソフトプロセッサ
LatticeMico8
LatticeMico32
PicoBlaze
Nios II
Nios
OpenRISC
Xtensa
関連項目
ソフトプロセッサ
OpenCores
外部リンク
MicroBlaze on Xilinx website
uClinux port on MicroBlaze
MicroBlaze-Based Introduction To Computer Architecture and Assembly Language
MicroBlaze Embedded Linux support from LynuxWorks (BlueCat
Linux)
*
Linux and U-BOOT for Microblaze CPU - Michal Simek - maintainer