次に、FPGAと、ASIC、ASSPに加えてGPU(Graphics Processong Unit)、CPU(Central Processing Unit)という種類の異なるデバイスの違いについて、もう少し深堀りしていきましょう。
FPGAは大きく分けると、組み合わせ論理(LUT、Look-up Table)、その出力を記憶するレジスタ(FF、Flip Flop)、内蔵メモリ、内蔵の乗算器(DSP)、各ブロックを接続する配線になります。その数は何百万ゲートの規模で、FPGAにはこれらの機能ブロックが集積されており、ユーザーは各メーカーより販売されているFPGA設計ツールを使用して、各種ブロックを接続してユーザー回路を実現をしていきます。
ASICは、ユーザーの仕様に合わせた複数機能を1つの大規模集積回路に集約したものです。このため、プロセッサを内蔵していたり、フラッシュなどの周辺回路の制御ブロックが入ったりしており、製品システムの処理の中心的役割を果たしていることが多いといえます。
ASSPは、ある特定の機能に限定した回路を搭載しており、顧客を限定せず、複数の顧客を対象に汎用部品として提供されています。大量生産されているアプリケーションの部品をターゲットにしていることが多いです。例えば、映像、音声のコーデックなどです。ASSPに搭載されている以外の機能については、ユーザーが外部回路で処理を追加をする必要があります。
当初は、リアルタイムに画像の2D、3D処理を行うため、演算回路(コア)を大量に並列に搭載されたものだった。最近は、その並列演算処理性能の高さから、映像以外に大規模計算処理用途に用いられることが多い。各コアの動作周波数は最大で約1.5GHz、GPUに集積されているコア数は数千個規模となります。
CPUは、ここまで挙げた5つの中では最も汎用性があります。プログラムを変更するだけで多様の処理を行えることから、さまざまな製品で使われています。コア数は20〜30コアまで搭載されているものがあり、各コアの動作周波数は5GHzと、GPUよりも高いものが多くあります。
CPUは、制御部と演算部分に分かれており、制御部は次に処理するデータをメモリを介して演算部に送っていき、演算部で処理したものを再度メモリに書き戻して次々に処理を進めていきます。キャッシュメモリは、CPUに内蔵されている高速なメモリですが、何度もメモリから読み出すデータはキャッシュメモリに置くことで処理を高速化できます。
Copyright © ITmedia, Inc. All Rights Reserved.