MicroBlaze

MicroBlazeは、ザイリンクスによる、ザイリンクス製FPGA向けに構築したソフトプロセッサコアである。MicroBlazeはザイリンクスのFPGAの汎用メモリと論理回路で、32bitソフトプロセッサとして実装している MicroBlaze ソフト プロセッサ コア https://japan.xilinx.com/products/design-tools/microblaze.html。

 概要 

命令セットアーキテクチャは、MicroBlazeはパターソンとヘネシーによる有名なコンピュータアーキテクチャの書籍で記述された、RISCベースのDLXアーキテクチャと非常に似ている。ほとんどのMicroBlaze命令セットは、1サイクルで実行することが出来る。

MicroBlazeは多様な組み込みアプリケーションをサポートするために、多用途のインターコネクトシステムを持っている。MicroBlazeの主要なI/OバスのCoreConnect PLBバスは、システムメモリにマップされたマスタ・スレーブによる伝統的なトランザクションバスである。多数のベンダが供給するサードパーティのIPは、PLBバスに直接接続する。（またはPLBバスからOPBバスへのブリッジを経由して接続する。）ローカルメモリ（FPGAのBRAM）へのアクセスでは、MicroBlazeは専用のLMBバスを使うことで他のバスの負荷を軽減する。ユーザ定義のコプロセッサは、FSL(Fast Simplex Link)と呼ばれる専用のFIFO形式の接続を経由してサポートされる。コプロセッサインタフェースは、計算処理の一部または全部を、ユーザが設計したハードウェアモジュールで行うことで、計算量が集中するアルゴリズムを加速することが出来る。

MicroBlazeの多くの要素は、ユーザによる設定が可能である。キャッシュサイズ、パイプラインの段数（3段または5段）、組み込みの周辺インタフェース、メモリ管理ユニット、バス・インタフェースがカスタマイズ可能である。サイズに最適化したMicroBlazeは、3段のパイプラインを使用し、論理回路の削減のためにクロック周波数を犠牲にしている。性能に最適化したバージョンは、実行パイプラインを5段に拡張し、最大210 MHz（Virtex-5 FPGA シリーズの場合）での動作が可能である。また、めったに使用されないがハードウェアでの実装が高価となる重要なプロセッサの命令は、選択的に追加／削除が可能である。（すなわち、乗算・除算・浮動小数点命令である）この改変により、開発者はホストハードウェアの条件とアプリケーションソフトの要件に見合った、適切な設計を行うことが可能である。

MMUを使用しない場合、MicroBlazeで動作するオペレーティングシステムは、単純化された保護と仮想メモリモデルに限られる。例えばμClinuxベースのオペレーティングシステムやTOPPERS/JSPカーネル, FreeRTOSが相当する。MMUを使用する場合、MicroBlazeの全体的なスループットは、同等のハードウェアによるCPUコア（例えばVirtex4の中のPowerPC405）よりもかなり低くなるが、Linuxカーネルのような、ハードウェアベースのページングと保護を要求するオペレーティングシステムを動作させることが出来る。

 EDK 

ザイリンクスのEDK (Embedded Development Kit)は、ザイリンクスのFPGAで、MicroBlaze（およびPowerPC）組み込みプロセッサを構築するための開発環境パッケージである。これはEclipseの上で動作し、プロジェクトマネージャは2つの別々の環境（XPSとSDK）で構築されている。

設計者は、彼らの組み込みシステムのハードウェア仕様（プロセッサコア、メモリコントローラ、周辺機器I/O、等）を設定し構築するためにXPS (Xilinx Platform Studio)を使用する。XPSは設計者のプラットフォーム仕様を合成可能なRTL記述(VerilogまたはVHDL)に変換し、組み込みシステムの実装を自動化するためのスクリプトのセットを書き出す。（RTLからビットストリームファイルまで）MicroBlazeコアにおいて、EDKは通常暗号化された（人間が読めない）ネットリストを出力するが、VHDLで書かれたプロセス記述はザイリンクスから購入することが出来る。

SDKは、組み込みシステムの上で動作させるソフトウェアを扱う。GNUツールチェイン（GNUコンパイラコレクション、GNUデバッガ）を活用し、SDKでプログラマは彼らの組み込みシステム上のC/C++アプリケーションを書き、コンパイルし、デバッグすることが出来る。ザイリンクスはサイクルに精密な命令セットシミュレータ（Instruction Set Simulator, ISS）を提供し、プログラマにシミュレーションで彼らのソフトをテストする方法と、適切なFPGAボードにダウンロードして実際のシステムで実行させる方法を提供している。

XPSの購入者は、定期的に追加のロイヤリティを支払うことなく、MicroBlazeをザイリンクスのFPGAで使用する永久のライセンスが与えられる。このライセンスはMicroBlazeをザイリンクス以外のデバイスで使用する権利を与えていないので、必要な場合はザイリンクスとの直接の交渉が必要となる。

 クローン 
 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

Category:マイクロプロセッサ