サイト内検索

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

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

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

ハードプロセッサー

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

 

半導体ベンダー (メーカー) がトランジスターから最適化して作ったプロセッサーなので、個々の命令性能は高く、

その命令を組合わせることで複雑な命令も実現できるので、さまざまなアプリケーションに使用できます。

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

  

ハードプロセッサーは、1つひとつの命令を順番に実行する ”逐次処理” なので、複雑な処理においては “並列処理” と比べて処理速度は遅くなります。

ソフトウェアとハードウェアの処理の違い

また、基本的には 1つの命令を処理している間は他の処理はおこなえないので、リアルタイム処理(あらかじめ定められた時間内に必ず完了する処理)には不向きです。

◆メリット

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

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

◆デメリット

 ・命令を順番に実行するので、並列に処理するよりも遅くなります。

 ・特定の命令に最適化したハードウェアと比べると、無駄な動きが増えるので消費電力は高くなります。

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

 ・自由に割り込みを入れるのが困難なため、リアルタイム処理には向きません。

◆用途

  ・汎用機器(用途を限定しない装置)

ソフトプロセッサー

ソフトプロセッサーはハードプロセッサーと同様に、中身はハードウェアで構成されています。

しかし、そのハードウェア部分を半導体ベンダーではなく、ユーザー自ら作る点がハードプロセッサーとは異なります。

 

ユーザーが作るプロセッサーなので、必要な命令を必要なだけ組み込んだり、特定の命令をハードウェア化したカスタム命令 (カスタムインストラクション )を組込んだり、好きな場所に割り込みを挿入するなどしてリアルタイム処理をおこない、高速で低消費電力の機器を実現できます。

 

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

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

 ・ ハードプロセッサーを内蔵した FPGA(SoC FPGA)と区別するため

ASIC に組込むプロセッサーは、カスタムプロセッサーやエンベデッドCPU などと言われることが多いようです。

しかし、ソフトプロセッサーはプロセッサーを開発する手間が必要になります。

◆メリット

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

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

 ・使用しない命令は、プロセッサーから省くことができます。

 ・ハードプロセッサーやメモリーなどのメーカによる供給停止を心配せずに、長期間使用できます。

 ・リアルタイム処理が可能です。

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

◆デメリット

 ・プロセッサーの設計・検証をおこなう手間が必要です。

 ・カスタム命令には 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 ベースなので、3rd ベンダーから提供される Risc V 用の開発環境を使用できます。
      - "Ashling* RiscFree* IDE for Intel® FPGA" を Altera が "無償" で提供しています。

関連資料