プロセッサーは、機能やアーキテクチャーなどのさまざまな切り口から分類することができます。
ここでは、一般的なプロセッサーの分類方法から、各種プロセッサーの特徴を解説します。
汎用プロセッサー(CPU)
汎用プロセッサーは、その名の通り幅広い用途に使用できる一般的なプロセッサーです。
演算処理だけでなく制御処理にも対応できる高い柔軟性と適応力を備えており、装置の中核を担うメインプロセッサーとして使用されます。
代表的な製品としては、デスクトップパソコンやサーバーなどに使われる インテル® Core™ や Xeon® プロセッサーなどがあり、主にデスクトップPCやサーバーに搭載されています。
汎用プロセッサーは、特定のタスクに最適化していないので、組込みシステム(用途を定めた専用機器やシステム)では、GPU や組み込みプロセッサーなどをアクセラレーターとして併用することがあります。
なお、スマホやタブレッドなどのプロセッサーは周辺にアクセラレーターを置くスペースがないので、 メインプロセッサーに GPU などの周辺機能を1チップに組み込んだ SoC(System-on-a-Chip )が使われます。
GPU (Graphics Processing Unit)
GPU は、グラフィックス処理を高速に実行するために設計されたプロセッサーです。
大量のデータを並列に処理するスループット重視のアーキテクチャーにより、汎用プロセッサーよりも高速な演算が可能です。
代表的な製品としては、NVIDIA® の RTX™ シリーズ などがあります。
一方で、 if 文や case 文などの条件分岐の多い複雑な制御処理や、特定の順序でのデータ処理には不向きなため、メインプロセッサーの処理を手伝うアクセラレーターとして補助的に使用されます。
GPU の欠点としては、多数のスレッドを並列に実行するため、各スレッドの実行時間にばらつきがあると全体の処理時間が予測しづらく、リアルタイム* 性が求められる処理には適しません。
また、膨大な数の演算器を同時に動作させるため、消費電力と発熱が大きく、エッジ(端末機器)よりもクラウド環境での利用が一般的です。
*リアルタイム:同時に複数のタスクを処理しても、必ず決められた時間内に処理を完了させる
組み込みプロセッサー
組み込みプロセッサーは、特定の用途に向けて設計された電子機器やシステムに組み込まれるプロセッサーです。
これらの機器では、特定の命令を "高速" かつ "リアルタイム" に処理する必要があります。
これを汎用プロセッサーで実現しようとすると、最も重い命令を決められた時間内に処理する必要があり、高性能かつ高価なプロセッサーが求められます。
一方、組み込みプロセッサーでは、負荷の高い処理のみをハードウェアで対応することで、低コストかつ効率的な処理が可能になります。
代表的な製品には、FPGA(Field Programmable Gate Array)やマイコン(MCU/Microcontroller Unit)などがあります。
なお、プロセッサーの分類で、単体の GPU は "組み込みプロセッサー" には含みませんが、SoCや組み込み向けチップに内蔵された GPU は組み込みプロセッサーに含みます。
FPGA(Field Programmable Gate Array)
FPGA には ARM などの既成の "ハードプロセッサー" と ユーザーが FPGA の基本論理ブロックで作る "ソフトプロセッサー" があります。
代表的な製品としては、Altera の FPGA や SoC FPGA などがあります。
<ハードプロセッサー>
FPGA ベンダー(メーカー)がトランジスターから最適化して作ったメインプロセッサーで、汎用プロセッサーの代わりに使用できます。
例えば、Altera の SoC FPGA は、内部に FPGA の基本論理ブロックだけでなく、ハードウェアの ARM プロセッサーを複数個搭載しています。
<ソフトプロセッサー>
FPGA の基本論理ブロックを使って、ユーザーが自ら作るプロセッサーです。自分だけの"カスタム命令"をプロセッサーに組み込むことができます。
FPGA はリアルタイム処理が求められる製品、機能や性能で差別化が必要な製品、製品寿命が長い製品に最適です。
ただし、FPGA などのハードウェアの設計はソフトウェアの設計と比べて開発工数が多く必要になります。
"ハードプロセッサー" と"ソフトプロセッサー"の詳細な説明は下記をご参照ください。
ASIC(Application Specific Integrated Circuit)
ASIC はフイルム写真のネガのような"マスク"を作成し、それを用いて同じ回路構成の半導体を大量生産することで、オリジナル機能を持つチップを低コストで製造する半導体です。
FPGA と同じように、"カスタム命令"を持つオリジナルプロセッサーを組み込むことができます。
単価が安いため、かつては国内では多くの製品に採用されていましたが、最先端プロセスではマスクの製造費用が100億円以上も必要なので、現在では最新プロセスを用いた ASIC の採用は減少しています。
ASIC の開発では、再設計によるマスク費用の発生を避けるために、十分な検証が不可欠です。
DSP(Digital Signal Processor)
DSP は、リアルタイムのデジタル信号処理に特化したプロセッサーです。
乗算器は回路規模が大きいので、多くのマイコンは乗算器を内蔵しておらず、乗算は加算を繰り返して処理しますが、DSP は乗算器を内蔵しているので高速に演算できます。
そこで、積和演算の多い音声信号処理、画像処理、通信、制御システムなどのリアルタイム処理や低レイテンシが要求されるアプリケーションに DSP が使用されます。
例えば、センサーの近くで信号(音・電波・映像・センサーデータ)をリアルタイムに処理したり、通信機器で信号をまとめて処理したり、自動車の ECU に使われます。
しかし、DSP は一般的にシリアル処理なので FPGA や ASIC などのパラレル処理より遅く、処理能力と開発のしやすさは マイコンと FPGA の間になります。
マイコン(MCU)
“汎用マイコン” と “特定用途向けのマイコン” があります。マイコンはソフトウェアで処理するので開発が容易です。
・汎用マイコン
汎用マイコンは、小型プロセッサーに、最小限のインターフェースと周辺機器を内蔵しています。
一般的に古い半導体プロセスを使用するので、性能は低くリアルタイム処理は難しいのですが、安価で低消費電力なので、性能を求めない幅広い製品に最適です。
汎用マイコンは安価ですが、処理速度は遅くてリアルタイム処理は難しく、パッケージが小さくて外部ピン数が少ないので、その欠点をカバーするために、汎用マイコンの周辺に小さな FPGA を搭載して、安価にリアルタイム処理を実現したり、少ないマイコンのピン数を FPGA でカバーすることもあります。
・特定用途向けマイコン
特定用途向けマイコンは、小型プロセッサーとインターフェースや画像処理などの特定アプリケーション向けの機能をハードウェアとして内蔵したマイコンです。
高性能なハードウェア部分は開発済なので、製品開発が容易でタイム・トゥ・マーケットを重視する製品に最適です。
ただし、大手ユーザーによる購入数が減少すると突然、供給停止になるので、少量で長期生産したい製品には向きません。
組み込みプロセッサーの比較
FPGA |
ASIC |
DSP |
汎用マイコン |
特定用途向けマイコン |
|
処理速度 |
〇 最先端プロセスを使ったハードウェア処理(オリジナル機能)+ソフトウェア処理 |
〇(旧プロセス) ◎(最新プロセス) トランジスタから最適化 |
△ FPGA より遅いが、 マイコンより高速 |
✖ 旧プロセスを使ったソフトウェア処理 |
△~〇 ソフトウェア処理とハードウェア処理(特定機能) |
消費電力 |
〇 ハードウェア処理なので低消費電力だが ASIC より劣る |
◎ トランジスターから最適化し、ハードウェア処理なので低消費電力 |
〇 積和演算はハードウェアなので低消費電力 |
◎ 時間をかけてゆっくり処理するので低消費電力 |
〇 特定機能はハードウェアなので低消費電力 |
アルゴリズム変更 |
〇 ソフトウェア部:可能 ハードウェア部:可能 |
✖ 全てがハードウェアなので変更不可 |
◎ ソフトウェアなので変更が容易 |
◎ ソフトウェアなので変更が容易 |
△ ソフトウェア部:可能 ハードウェア部:不可 |
開発工数 |
△ ハードウェアとソフトウェアの開発が必要 |
✖ 作り直しが困難なので慎重な設計と検証が必要 |
◎ ソフトウェアの開発は必要 |
◎ ソフトウェアの開発は必要 |
◎ 汎用機能はソフトウェアの開発が必要、特定機能はハードウェアで設計済 |
デバイス供給期間 |
◎ 汎用製品でプロセスが新しいため少量でも長期供給可能 |
〇 新プロセスは長いがMOQが多い、旧プロセスはEOLになる可能性が高い |
△ コンシューマー用は SoC に統合されて短命のケースが多い、車載&産業用は長い |
〇 プロセスが古いため長期供給困難、車載&産業用は長い |
✖ 特定機能はユーザーが限られ、販売数量が減少すると EOL |
DPU (Data Processing Unit)
DPU は、データ処理に特化したプロセッサーです。
メインプロセッサーがアプリケーション処理に専念できるよう、ネットワーク処理、ストレージ管理、セキュリティ処理などのタスクをDPUが代行します。
これにより、システム全体の効率とパフォーマンスが向上します。
一方で、DPU は特定のタスク(例:パケット処理、暗号処理、ストレージオフロード)に最適化されているため、既存のインフラやソフトウェアスタックとの統合が難しいという課題があります。
また、汎用性が低く、一般的な計算処理には適していません。
NPU(Neural network Processing Unit)
NPU は、AI 専用のプロセッサーであり、特にニューラルネットワークの処理に最適化です。
代表的な製品として、エッジで使う Hailo (ヘイロ) や クラウドで使う Google の TPU(Tensor Processing Unit)などがあります。
特定のアルゴリズムやデータ処理パターンに最適化されたハードウェアなので、GPU よりも小型、低消費電力で動作します。
一方で、用途が限定的であり、AI は技術進化のスピードが速いため、導入時期によってはアルゴリズムの変更やデバイスの長期安定供給に不安が残る場合があります。
VPU(Visual Processing Unit)
VPU は、視覚情報処理に特化したプロセッサーです。
デジタル画像やビデオの処理に最適化されており、画像センサから得られるデータをリアルタイムで処理し、画像認識、物体検出、顔認識などのアプリケーションで高い性能を発揮します。
GPU と比較すると演算処理は劣りますが、低消費電力で動作するため、監視カメラや自動運転などの画像処理に適しています。
ただし、汎用性が低く、視覚AI(画像認識・物体検出など)以外の用途にはほとんど使用されていません。
ベクトル プロセッサー
ベクトル プロセッサーは、一度に大量のデータをメモリーから取り込み、並列処理によって高速に演算をおこなうプロセッサーです。
科学技術計算や機械学習などで使用する配列や行列などの大規模データ処理に適しています。
ベクトルプロセッサーは気象や液体力学など特定用途向けに設計されたプロセッサーであり、一般的な利用は少ない傾向にあります。