[プロセッサ]SoCって何?CPU、GPU、FPGAとの違い

よく聞くSoC(System-on-a-chip)とは?

すっかり定着したSoCという言葉。System-on-a-chipの略なのだが、どんなものかよく知らない人もいるのでは? この記事ではCPUやGPU、最近話題のFPGAとの違いを整理してみた。

CPUやGPUはSoCの一部

超ざっくり言ってしまうと、SoCはチップ一枚でシステムが完結しているデバイスのことを指す。どういうことかというと、CPU、GPU、DRAM、外部IOなどを1枚のチップに搭載している。なお、SoC上にどのようなデバイスが載っているかは、当然実現するシステム構成によって変わる。GPUがなくCPUだけ搭載されているケースもある。

SoCチップのイメージ図

つまり、CPUやGPUはSoCを形成する一部だと考えてよい。ちなみに、CPUとGPUの違いはこちらの記事でまとめているので参照。

FPGAはSoCか?

最近はFPGAにARMなどのCPUを内蔵したFPGAが出てきている。FPGAの大手ベンダーといえばIntel(旧Altera)とXilinxの2社だが、Intelはこのようなデバイスを「SoC FPGA」と呼んでいるし、Xilinxは同社のARM内蔵FPGA Zynqを「Programmable SoC」などと呼んでいる。

これらのFPGAは、まぎれもないSoCだといえる。

SoC FPGAのイメージ図

ちなみに、一般的にはCPUを内蔵していないFPGAを指して「SoC」と呼ぶことはあまり無い。ただし、IntelのFPGAは「Nios II」、XilinxのFPGAは「MicroBlaze」という、FPGA内部のProgrammable logicを使って形成するCPUをFPGA内に実装することができる。

Soft Core CPU内臓FPGAのイメージ

これらのCPUはソフトコアCPUなどと呼ばれるが、ソフトコアCPUを内蔵したFPGAも、広義的にはSoCと呼べるのではないかと思う。

参考文献

インテル® SoC FPGA プログラマブル・デバイス
https://www.intel.co.jp/content/www/jp/ja/products/programmable/soc.html

SoC、MPSoC、RFSoC
https://japan.xilinx.com/products/silicon-devices/soc.html



0 件のコメント :

コメントを投稿