Amberプロセッサーコアは、ARMアーキテクチャー互換の32ビットの縮小命令セットコンピューター(RISC)プロセッサーである。 Amberはオープンソースであり、OpenCoresのウェブサイトでホストされており、オープンソースハードウェアプロジェクトのライブラリーを開発する活動の1つである。
概要 AmberコアはARMv2a命令セットと完全な互換性があり、GNUツールチェインによりサポートされている。 ARMv2aは古いバージョンのARM命令セットであり、特許で保護されていないためにサポートされている。 例えばnnARM (例えばnnARM))のような他のオープンソースプロジェクトと異なり、実装するためにARMホールディングスからライセンスを得る必要はない。
コアはVerilog 2001で実装されており、FPGA用に合成するのに最適化されている。 例えば、リセットロジックは存在しない。全てのレジスターは、FPGAの初期化の一部としてリセットされる。 AmberプロジェクトはAmberコアとUART、タイマー、Ethernet MACを含む周辺機器からなる完全な組み込みFPGAシステムを提供する。
Amberプロジェクトは、2つのバージョンコアを提供している。 2つのコアは同一の命令セットアーキテクチャー (ISA)を実装しており、ソフトウェアとしては完全に互換性がある。
Amber 23は、3ステージのパイプラインと命令用とデータ用を統合したキャッシュ、Wishboneインターフェイスを持ち、0.75 DMIPS (Dhrystone)/MHzの性能である。Amber 23コアは、非常に小規模な32ビットコアであり、良く動作する。乗算を除いて、レジスターのみを対象にする命令は、1サイクルで実行できる。ロードとストアをする命令は3サイクルを要する。コアのパイプラインは、キャッシュミスあるいはWishboneへのアクセスによってストールされる。
Amber 25は5ステージのパイプラインと、データ用と命令用のそれぞれのキャッシュ、Wishboneインターフェイスを持ち、1.0 DMIPS/MHzの性能である。Amber 25コアは、Amber 23コアより30から40%性能が良く、規模は30から40%ほど大きい。乗算や複雑なシフト操作をする命令を除いて、レジスターのみを対象にする命令は、1サイクルで実行できる。レジスターの競合が後続の命令と発生しない場合には、ロードとストアをする命令は1サイクルで実行できる。コアのパイプラインは、データキャッシュあるいは命令キャッシュいずれかでキャッシュミスが発生するか、命令の競合が検出されるか、複雑なシフト命令が実行されるか、コアのWishboneへのアクセスが発生するか、いずれかの場合にストールする。
2つのコアはいずれもLinux 2.4カーネルを起動できることが確認されている。 2.4ブランチとそれより前のバージョンのLinuxカーネルは、ARMv2a ISAのための設定を持っている。 Linux kernel 2.6以降では、ARMv2a ISAをサポートするとはしておらず、Amberコアで実行するには修正をする必要がある。 Amberコアはメモリー管理ユニット (MMU)を搭載しないため、仮想メモリーを持たないCPUでも実行可能なμClinuxなどしか実行できない。
関連項目 エイコーン・コンピュータ
参考文献 ARMv2a ISAについては、Archimedes Operating System: A Dabhand Guide,またはAcorn RISC Machine Family Data Manualを参照すると良い。
脚注
外部リンク
Amber Core Specification Marsohod Blog