サイト内検索

ハードプロセッサーとソフトプロセッサー

プロセッサーの分類方法はさまざまですが、組み込み製品の開発者が知っておきたい分類方法に ハードコアプロセッサー と ソフトコアプロセッサーがあります。

それぞれのプロセッサーの違いと特徴について解説します。

ハードコアプロセッサー

ハードコアプロセッサーは、PC などに搭載されている一般的なプロセッサー(CPU)です。

 

半導体ベンダー(メーカー)が内部回路や命令セットを最適化して設計しているため、命令単位では高い性能と電力効率を実現しています。そのため、幅広いアプリケーションで利用されています。

 

ただし、ハードウェアでできているので、搭載された命令の変更や追加、削除はできません。

 

ハードコアプロセッサーは、基本的にはソフトウェア命令を順次実行するため、特定処理専用に構成された FPGA 回路と比較すると処理効率が劣る場合があります。

また、一般的なハードコアプロセッサーは割り込みやOSの影響を受けるため、厳密な処理時間保証が必要なシステムでは専用ハードウェアよりも制約があります。

◆メリット

 ・トランジスターから最適化しているので、各命令が高速で低消費電力かつ小面積(低コスト)です。

 ・複雑な命令も基本命令を繰り返して実現できるので、様々なアプリケーションに幅広く使用可能です(汎用性が高い)。

◆デメリット

 ・特定処理専用に構成されたFPGA回路と比較すると、処理効率やスループットが劣る場合があります。

 ・特定用途向けに最適化したFPGA回路と比較した場合、処理当たりの電力効率で不利になる場合があります。

 ・半導体ベンダー(メーカー)があらかじめ設計したプロセッサーなので、後から命令やコア数の増減は行えません。

 ・割り込み処理を実行する際には現在の処理を一時中断するため、厳密な応答時間が求められるリアルタイム処理では制約となる場合があります。

◆用途

  ・幅広い用途に適する

ソフトコアプロセッサー

ソフトコアプロセッサーも、実際にはハードウェア回路として実装されるプロセッサーです。

しかし、そのハードウェア部分を半導体ベンダーではなく、ユーザーが  FPGA 上に実装・構成するプロセッサーである点が、ハードコアプロセッサーとの大きな違いです。(試作や研究の機能検証だけに使うソフトウェアで作るソフトコアプロセッサーは除外します。)

 

ソフトコアプロセッサーでは、アプリケーションに合わせて専用のカスタム命令を追加できるため、複数命令で実現していた処理を1つのカスタム命令として実行することも可能です。
 

なお、ソフトコアプロセッサーは FPGA だけでなく ASIC(特定用途向けIC)でも実現可能ですが、以下の理由から 一般的に ”FPGA で作ったプロセッサー" をソフトコアプロセッサーと呼びます。

 ・ 後から機能や命令を変更できる FPGA の柔軟性がソフトウェアに似ているため

 ・ ハードコアプロセッサーを内蔵した FPGA(SoC FPGA)と区別するために、ASIC に組み込むプロセッサーは、一般的にソフトコアプロセッサーとは呼ばれず、カスタムプロセッサーやエンベデッドCPU などと呼ばれることが多くあります。

◆メリット

 ・ハードウェアで作った高速で低消費電力のカスタム命令を追加できます。

 ・カスタム命令を利用することでプログラムサイズを小さくでき、メモリー使用量を削減できます。

 ・使用しない命令は省いて、コンパクトなプロセッサーにできます。

 ・自社で論理を保持できるため、特定のプロセッサー製品の供給終了(EOL)の影響を受けにくくなります。

 ・専用ハードウェアとの連携により、厳密なタイミング制御が求められるリアルタイム処理に適しています。

 ・コア数や周辺回路、I/O 構成などを自由にカスタマイズできます。

 ・FPGA 回路と密接に連携できるので、プロセッサーの動作に並行して FPGA で独自の処理を行えます。

◆デメリット

 ・プロセッサーを開発する手間が必要です。

 ・カスタム命令には FPGA のリソースが必要です。

 ・命令セットを完全にオリジナルにすると、一般的なソフトウェア開発環境が利用できなくなります。

用途
 ・特定用途向け装置
 ・リアルタイム制御装置
 ・産業機器
 ・通信機器
 ・画像処理装置

ソフトコアプロセッサーのデメリットを克服するために

 ソフトコアプロセッサーのデメリットを克服するために、例えば FPGA ベンダーの Altera® では、命令セットや開発ツールを "無償" で提供しています。 

命令セット(ISA)の無償提供

 命令セットをゼロから独自に設計するには多くの工数が必要なため、Altera® は RISC-V ベース の命令セット ( Nios®) を3種類、無償で提供しています。

 ・Nios® V/g :カスタム命令を取り込める標準 ISA(RV32IMAZicsr_Zicbom)
 ・Nios® V/m:中間サイズの ISA (Pipeline 有/無:RV32IAZicsr/RV32IZicsr)
 ・Nios® V/c  :規模が一番小さい ISA(RV32I)

開発環境の提供

 Altera® は ハードウェア開発用 と ソフトウェア開発用 のツールを提供しています。

 ・ハードウェア開発
      - 既存の Altera FPGA 用開発ツール Quartus® Prime (無償版/有償版) を使用できます。
      - GUI を利用して Nios® V を FPGA に容易に組み込める Platform Designer を提供しています。

 ・ソフトウェア開発
      - Nios® V は RISC-V ベースなので、

サードパーティーベンダーから提供される RISC-V 用の開発環境を使用できます。
      - "Ashling* RiscFree* IDE for Altera® FPGA" を Altera®  "無償" で提供しています。

関連資料