
システムオンチップ(SoC)は、コンピュータや電子システムの主要コンポーネントのほとんど、あるいはすべてを単一のマイクロチップに統合した集積回路です。[ 1 ] SoCには通常、メモリ、入出力、データストレージ制御機能を備えた中央処理装置(CPU)に加え、グラフィックス処理装置(GPU)、Wi-Fi接続、無線周波数処理などのオプション機能が搭載されています。この高度な統合により、個別のディスクリートコンポーネントの必要性が最小限に抑えられ、電力効率が向上し、デバイス設計が簡素化されます。
高性能SoCは、LPDDRなどの専用メモリや、 eUFSやeMMCなどのフラッシュストレージチップと組み合わせられることが多く、これらはパッケージ・オン・パッケージ(PoP)構成でSoC上に直接積層されるか、マザーボード上に近接して配置される。一部のSoCは、セルラーモデムなどの専用チップと連携して動作することもある。[ 2 ]
基本的に、SoCは1つまたは複数のプロセッサコアと重要な周辺機能を統合します。この包括的な統合は、概念的にはマイクロコントローラの設計に似ていますが、はるかに優れた計算能力を提供します。この統合設計により、従来のマルチチップアーキテクチャと比較して消費電力と半導体ダイ面積を削減できますが、モジュール性とコンポーネントの交換可能性は低下します。
SoCは、コンパクトでエネルギー効率の高い設計が不可欠なモバイルコンピューティングにおいて広く普及しています。スマートフォン、タブレット、スマートウォッチの駆動力として利用されているだけでなく、データソースの近くでリアルタイムデータ処理が行われるエッジコンピューティングにおいても、その重要性はますます高まっています。SoCは、より緊密な統合化のトレンドを推進することで、現代のハードウェア設計を変革し、現代のコンピューティングデバイスの設計環境を再構築してきました。[ 3 ] [ 4 ]

一般的に、SoC には次の 3 つの種類があります。
SoCはあらゆるコンピューティングタスクに適用できます。ただし、一般的にはタブレット、スマートフォン、スマートウォッチ、ネットブックなどのモバイルコンピューティング、組み込みシステム、そして以前はマイクロコントローラが使用されていたアプリケーションで使用されます。
これまではマイクロコントローラしか使用できなかった分野において、組み込みシステム市場ではSoCが台頭しつつあります。システム統合が緊密であるほど信頼性と平均故障間隔が向上し、SoCはマイクロコントローラよりも高度な機能と計算能力を提供します。[ 5 ]アプリケーションには、 AIアクセラレーション、組み込みマシンビジョン、[ 6 ]データ収集、テレメトリ、ベクトル処理、アンビエントインテリジェンスなどがあります。組み込みSoCは多くの場合、モノのインターネット、マルチメディア、ネットワーキング、通信、エッジコンピューティング市場をターゲットにしています。組み込みアプリケーション向けSoCの例として、STMicroelectronics STM32、Raspberry Pi Ltd RP2040、AMD Zynq 7000などがあります。

モバイルコンピューティングベースのSoCは、プロセッサ、メモリ、オンチップキャッシュ、無線ネットワーク機能、そして多くの場合デジタルカメラのハードウェアとファームウェアをバンドルしています。メモリ容量の増大に伴い、ハイエンドSoCではメモリとフラッシュストレージが搭載さ れなくなり、代わりにメモリとフラッシュメモリがSoCのすぐ隣、または上(パッケージ・オン・パッケージ)に配置されることが多くなりました。 [ 7 ]モバイルコンピューティングSoCの例としては、以下が挙げられます。
1992年、Acorn ComputersはARM250 SoCを搭載したA3010、A3020、A4000シリーズのパーソナルコンピュータを製造しました。これらの製品は、オリジナルのAcorn ARM2プロセッサに、メモリコントローラ(MEMC)、ビデオコントローラ(VIDC)、I/Oコントローラ(IOC)を組み合わせたものでした。それ以前のAcorn ARM搭載コンピュータでは、これらは4つの独立したチップで構成されていました。ARM7500チップは、ARM700、VIDC20、IOMDコントローラをベースにした同社の第2世代SoCで、セットトップボックスなどの組み込み機器や、後のAcornパーソナルコンピュータに広くライセンス供与されました。
タブレットやラップトップのメーカーは、組み込みシステムやスマートフォン市場から、消費電力の削減、ハードウェアとファームウェアモジュールの緊密な統合によるパフォーマンスと信頼性の向上、LTEやその他のワイヤレスネットワーク通信のチップ統合(統合ネットワークインターフェイスコントローラ)に関する教訓を学んできました。[ 10 ]
最新のノートパソコンやミニPCでは、 AMD RyzenプロセッサやIntel Coreプロセッサの低消費電力版が、CPU、IGPU、チップセット、その他のプロセッサを1つのパッケージに統合したSoC設計を採用しています。しかし、このようなx86プロセッサでも、外部メモリやストレージチップは依然として必要です。
SoC は、ソフトウェア コードを実行するマイクロプロセッサなどのハードウェア機能ユニットと、これらの機能モジュール間の接続、制御、指示、およびインターフェイスを行う 通信サブシステムで構成されます。
SoCには少なくとも1つのプロセッサコアが必要ですが、通常は複数のコアがあります。プロセッサコアには、マイクロコントローラ、マイクロプロセッサ(μP)、[ 11 ]デジタル信号プロセッサ(DSP)、または特定用途向け命令セットプロセッサ(ASIP)コアがあります。[ 12 ] ASIPは、アプリケーションドメイン向けにカスタマイズされた命令セットを持ち、特定の種類のワークロードに対して汎用命令よりも効率的になるように設計されています。マルチプロセッサSoCは、定義上、複数のプロセッサコアを持ちます。ARMアーキテクチャは、SoCプロセッサコアの一般的な選択肢です。これは、ARMアーキテクチャコアの一部がIPコアとして指定されたソフトプロセッサであるためです。[ 11 ]
SoCは、マイクロコントローラや他の組み込みシステムと同様に、計算を実行するために半導体メモリブロックが必要です。アプリケーションによっては、SoCメモリがメモリ階層とキャッシュ階層を形成する場合があります。モバイルコンピューティング市場ではこれが一般的ですが、多くの低電力組み込みマイクロコントローラではこれは必要ありません。SoCのメモリ技術には、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリなどがあります。[ 11 ]他のコンピュータシステムと同様に、RAMは比較的高速ですが高価なスタティックRAM(SRAM)と、低速ですが安価なダイナミックRAM (DRAM)に細分化できます。SoCにキャッシュ階層がある場合、SRAMは通常、プロセッサレジスタとコアの組み込みキャッシュを実装するために使用されますが、DRAMはメインメモリに使用されます。SoCが複数のプロセッサを搭載している場合、 「メインメモリ」は単一のプロセッサ(マルチコアの場合もある)に固有のものである可能性があり、その場合は分散メモリであり、異なるプロセッサからアクセスするにはオンチップの§モジュール間通信を介して送信する必要があります。 [ 12 ]マルチプロセッシングメモリの問題の詳細については、キャッシュコヒーレンスとメモリレイテンシを参照してください。
SoCには、通常通信プロトコル用の外部インターフェースが搭載されています。これらは、USB、Ethernet、USART、SPI、HDMI、I²C、CSIなどの業界標準規格に準拠していることが多く、これらのインターフェースは用途によって異なります。Wi -Fi、Bluetooth、6LoWPAN、近距離無線通信などの無線ネットワークプロトコルもサポートされる場合があります。
SoCには必要に応じて、アナログ-デジタルコンバータやデジタル-アナログコンバータなどのアナログインターフェースが搭載されており、多くの場合信号処理に使用されます。これらのインターフェースは、スマートトランスデューサーを含む様々な種類のセンサーやアクチュエータとインターフェースできる場合があります。また、特定用途向けモジュールやシールドとインターフェースする場合もあります。[注1 ]また、SoCにアナログセンサーが内蔵されており、その読み取り値を数学的処理のためにデジタル信号に変換する必要がある場合など、SoC内部に搭載されている場合もあります。
デジタル信号プロセッサ(DSP)コアは、多くの場合SoCに搭載されています。これらは、センサー、アクチュエータ、データ収集、データ分析、マルチメディア処理などのSoCにおける信号処理演算を実行します。DSPコアは通常、超長命令語(VLIW)および単一命令複数データ(SIMD)命令セットアーキテクチャを採用しているため、並列処理やスーパースカラ実行による命令レベルの並列処理の活用に非常に適しています。[ 12 ]:4 SPコアはほとんどの場合、アプリケーション固有の命令を備えており、通常は特定用途向け命令セットプロセッサ(ASIP)です。このようなアプリケーション固有の命令は、その命令を計算する専用のハードウェア機能ユニットに対応しています。
一般的な DSP 命令には、乗算累算、高速フーリエ変換、融合乗算加算、畳み込みなどがあります。
他のコンピュータシステムと同様に、SoCにはクロック信号を生成し、SoC機能の実行を制御し、必要に応じてSoCの信号処理アプリケーションに時間コンテキストを提供するためのタイミングソースが必要です。一般的なタイミングソースとしては、水晶発振器と位相同期回路が挙げられます。
SoC周辺機器には、カウンタタイマー、リアルタイムタイマー、パワーオンリセットジェネレータなどが含まれます。また、SoCには電圧レギュレータや電源管理回路も含まれています。
SoCは多数の実行ユニットで構成されています。これらのユニットは、データや命令を頻繁に送受信する必要があります。そのため、ごく小規模なSoCを除き、通信サブシステムが必要です。当初は他のマイクロコンピュータ技術と同様に、データバスアーキテクチャが使用されていましたが、最近ではネットワークオンチップ(NoC)と呼ばれる疎な相互通信ネットワークに基づく設計が台頭しており、近い将来、SoC設計においてバスアーキテクチャを追い抜くと予測されています。[ 13 ]
歴史的には、共有グローバルコンピュータバスが通常、SoCの「ブロック」とも呼ばれるさまざまなコンポーネントを接続していました。[ 13 ] SoC通信用の非常に一般的なバスは、ARMのロイヤリティフリーのAdvanced Microcontroller Bus Architecture(AMBA)標準です。
ダイレクトメモリアクセスコントローラは、CPUや制御ユニットをバイパスして外部インターフェースとSoCメモリ間でデータを直接ルーティングすることで、 SoCのデータスループットを向上させます。これは、コンポーネントベースのマルチチップモジュールPCアーキテクチャにおける周辺機器の一部デバイスドライバに似ています。
配線遅延は小型化の進展によりスケーラブルではなく、システム性能は接続コア数に応じて拡張できず、電力供給を維持するためにはコアを追加するごとにSoCの動作周波数を下げる必要があり、長い配線は大量の電力を消費する。これらの課題は、チップ上でメニーコアシステムをサポートすることを困難にしている。[ 13 ] : xiii
2010年代後半には、SoCにおいて通信サブシステムをバスベースのプロトコルではなくネットワークのようなトポロジで実装するトレンドが出現しました。SoC上のプロセッサコア数の増加に伴い、オンチップ通信効率はシステム全体の性能とコストを決定する重要な要素の一つとなりました。[ 13 ] : xiii これにより、バスベースネットワークのボトルネックを克服するために、ルーターベースのパケットスイッチングを備えた相互接続ネットワーク、いわゆる「ネットワーク・オン・チップ」(NoC)が登場しました。[ 13 ] : xiii
ネットワークオンチップには、宛先およびアプリケーション固有のルーティング、優れた電力効率、バス競合の可能性の低減などの利点があります。ネットワークオンチップアーキテクチャは、TCPやオンチップ通信用のインターネットプロトコルスイートなどの通信プロトコルからインスピレーションを受けていますが、 [ 13 ]通常はネットワーク層が少なくなっています。最適なネットワークオンチップネットワークアーキテクチャは、現在多くの研究関心が寄せられている領域です。NoCアーキテクチャは、トーラス、ハイパーキューブ、メッシュ、ツリーネットワークなどの従来の分散コンピューティングネットワークトポロジから、遺伝的アルゴリズムによるスケジューリング、分岐付きランダムウォークやランダム化存続時間(TTL) などのランダム化アルゴリズムまで多岐にわたります。
多くのSoC研究者は、NoCアーキテクチャがSoC設計の未来を担うと考えています。これは、NoCアーキテクチャがSoC設計の電力とスループットのニーズを効率的に満たすことが実証されているためです。現在のNoCアーキテクチャは2次元です。2次元IC設計では、SoCのコア数が増加するにつれてフロアプランニングの選択肢が限られてくるため、 3次元集積回路(3DIC)の登場に伴い、SoC設計者は3DNoCと呼ばれる3次元オンチップネットワークの構築に目を向けています。[ 13 ]

システム・オン・チップ( SoC)は、 § 構造で説明するハードウェアと、マイクロコントローラ、マイクロプロセッサ、またはデジタル信号プロセッサのコア、周辺機器、およびインターフェースを制御するソフトウェアの両方で構成されます。SoCの設計フローは、これらのハードウェアとソフトウェアを同時に開発することを目的としており、アーキテクチャ協調設計とも呼ばれます。設計フローでは、最適化( § 最適化目標)と制約も考慮する必要があります。
ほとんどのSoCは、前述のハードウェア要素と実行ユニット(総称して「ブロック」)の事前認定ハードウェアコンポーネントIPコア仕様と、それらの動作を制御するソフトウェアデバイスドライバから開発されます。特に重要なのは、USBなどの業界標準インターフェースを駆動するプロトコルスタックです。ハードウェアブロックは、コンピュータ支援設計ツール、特に電子設計自動化ツールを用いて組み立てられ、ソフトウェアモジュールはソフトウェア統合開発環境(SDI)を用いて統合されます。
SoCのコンポーネントは、 C++、MATLAB、SystemCなどの高水準プログラミング言語で設計されることも多く、C to HDLやflow to HDLなどの高水準合成(HLS)ツールによってRTL設計に変換される。[ 14 ] 「アルゴリズム合成」と呼ばれるHLS製品により、設計者はC++を使用して、システム、回路、ソフトウェア、検証レベルをすべて、コンピュータエンジニアによく知られている1つの高水準言語でモデル化および合成することができ、HDLで通常指定される時間スケールとは無関係な方法で行うことができる。[ 15 ]その他のコンポーネントはソフトウェアのままで、 HDLのモジュールとしてSoCに含まれるソフトコアプロセッサにコンパイルされ、IPコアとして組み込まれる。
SoCのアーキテクチャが定義されると、新しいハードウェア要素は、回路の動作を定義するレジスタ転送レベル(RTL)と呼ばれる抽象的なハードウェア記述言語で記述されるか、高位合成によって高水準言語からRTLに合成されます。これらの要素はハードウェア記述言語で接続され、完全なSoC設計が作成されます。これらのコンポーネントを接続し、異なるベンダーが提供する可能性のある異なるインターフェース間の変換を行うために規定されるロジックは、グルーロジックと呼ばれます。
チップは半導体ファウンドリに送られる前に、妥当性検証が行われます。このプロセスは機能検証と呼ばれ、チップ設計ライフサイクルにおける時間と労力の大きな部分を占め、しばしば70%と表現されます。[ 16 ] [ 17 ]チップの複雑性が増すにつれて、SystemVerilog、SystemC、e 、OpenVeraなどのハードウェア検証言語が使用されるようになっています。検証段階で発見されたバグは設計者に報告されます。
従来、エンジニアは、設計の最終決定(テープアウトと呼ばれる)前に、SoC設計のハードウェアとソフトウェアを検証およびデバッグするために、再プログラム可能なハードウェア上でシミュレーションアクセラレーション、エミュレーション、またはプロトタイピングを行ってきました。フィールドプログラマブルゲートアレイ(FPGA)は、再プログラム可能でデバッグが可能であり、特定用途向け集積回路(ASIC)よりも柔軟性が高いため、SoCのプロトタイピングに好まれています。[ 18 ] [ 19 ]
大容量と高速コンパイルを実現するシミュレーション・アクセラレーションとエミュレーションは、システムの広範な可視性を提供する強力な技術です。しかし、どちらの技術も動作速度が遅く、MHzオーダーで、SoCの動作周波数よりも大幅に遅く、最大で100倍も遅くなる可能性があります。また、アクセラレーション・ボックスとエミュレーション・ボックスは非常に大きく、100万ドルを超える価格です。
対照的に、FPGAプロトタイプはFPGAを直接使用することで、エンジニアがシステムの最大動作周波数、またはそれに近い周波数で、実世界の刺激を用いて検証およびテストできるようにします。Certus [ 20 ]などのツールは、FPGA RTLにプローブを挿入し、信号を観測可能にするために使用されます。これは、ロジックアナライザと同様の機能を備え、複数のFPGAにまたがるハードウェア、ファームウェア、およびソフトウェアの相互作用をデバッグするために使用されます。
並行して、ハードウェア要素はグループ化され、論理合成プロセスに送られます。このプロセスでは、動作周波数や予想される信号遅延などの性能制約が適用されます。これにより、設計を物理的な回路とその相互接続として記述するネットリストと呼ばれる出力が生成されます。これらのネットリストは、コンポーネントを接続するグルーロジックと組み合わされ、チップ上に印刷可能な回路としてSoCの回路図記述を生成します。このプロセスは配置配線と呼ばれ、SoCが特定用途向け集積回路(ASIC) として製造される場合、テープアウトに先行して行われます。
SoCは、消費電力、ダイ面積、通信、モジュールユニット間の局所性を考慮した配置など、様々な要素を最適化する必要があります。最適化はSoCの設計目標の一つです。最適化が不要であれば、エンジニアはシステムの面積、消費電力、パフォーマンスを同程度に考慮することなく、 マルチチップモジュールアーキテクチャを採用するでしょう。
SoC設計における一般的な最適化目標を以下に挙げ、それぞれについて説明します。一般的に、これらの量の最適化はいずれも困難な組み合わせ最適化問題であり、NP困難となる可能性も十分にあります。そのため、高度な最適化アルゴリズムが必要となることが多く、場合によっては近似アルゴリズムやヒューリスティックスを用いることが実用的となることもあります。さらに、ほとんどのSoC設計には複数の変数が含まれており、それらを同時に最適化する必要があるため、 SoC設計ではパレート効率的なソリューションが求められます。これらの量の一部を最適化するという目標は、しばしば相反するものであり、SoCの設計最適化をさらに複雑にし、システム設計においてトレードオフをもたらします。
トレードオフと要件分析のより広範な内容については、「要件エンジニアリング」を参照してください。
SoC は、SoC の機能を実行するために使用する電力を最小限に抑えるように最適化されています。ほとんどの SoC は低消費電力である必要があります。SoC システムは多くの場合長いバッテリ寿命を必要とし (スマートフォンなど)、自律機能の維持が必要な間は電源なしで数か月または数年かかる可能性があり、また、あるエリアでネットワーク化されている組み込みSoCの数が多いために電力使用量が制限されることもよくあります。さらに、エネルギー コストは高くなる場合があり、エネルギーを節約することで SoC の総所有コストを削減できます。最後に、エネルギー消費量が多いと廃熱が発生し、放散量が多すぎると他の回路部品が損傷する可能性があるため、エネルギーを節約するもう 1 つの実用的な理由があります。回路で使用されるエネルギー量は、消費電力を時間で積分したもので、平均消費電力は電流と電圧の積です。同様に、オームの法則によれば、電力は電流の 2 乗 × 抵抗、または電圧の 2 乗÷抵抗で表されます。
SoCは、スマートフォン、GPSナビゲーションデバイス、デジタル時計(スマートウォッチを含む) 、ネットブックなどのポータブルデバイスに頻繁に組み込まれています。顧客はモバイルコンピューティングデバイスの長いバッテリ寿命を望んでおり、これがSoCの消費電力を最小限に抑える必要があるもう1つの理由です。ビデオゲーム、ビデオストリーミング、画像処理などのマルチメディアアプリケーションは、これらのデバイスで実行されることが多く、これらすべての計算の複雑さは、近年、高品質のマルチメディアに対するユーザーの要求と期待とともに増大しています。複数の標準を使用した高解像度の3Dビデオへの期待が高まるにつれて、計算の要求はより厳しくなり、マルチメディアタスクを実行するSoCは、標準的なモバイルバッテリーで動作できる低消費電力でありながら、計算能力の高いプラットフォームである必要があります。[ 12 ]:3
SoCは、ワットあたりの性能における電力効率を最大化するように最適化されています。つまり、限られた電力使用量の中でSoCの性能を最大限に引き出すということです。エッジコンピューティング、分散処理、アンビエントインテリジェンスといった多くのアプリケーションでは、一定レベルの計算性能が求められますが、ほとんどのSoC環境では電力が限られています。
SoC設計は、チップ上の廃熱出力を最小限に抑えるように最適化されています。他の集積回路と同様に、高電力密度によって発生する熱は、部品のさらなる小型化のボトルネックとなっています。 [ 21 ]:1 高速集積回路、特にマイクロプロセッサやSoCを含む集積回路の電力密度は、非常に不均一になっています。廃熱が多すぎると回路が損傷し、時間の経過とともに回路の信頼性が低下する可能性があります。高温と熱応力は、時間の経過とともにSoCの信頼性、ストレスマイグレーション、平均故障間隔の短縮、エレクトロマイグレーション、ワイヤボンディング、メタスタビリティ、その他の性能低下に悪影響を及ぼします。 [ 21 ]:2–9
特に、ほとんどのSoCは物理的な面積や体積が小さいため、システム外に熱を拡散させる余地がほとんどなく、廃熱の影響はより大きくなります。現代のデバイスはトランジスタ数が多いため、十分なスループットと高いトランジスタ密度を備えたレイアウトは、製造プロセスから物理的に実現可能である場合が多くありますが、回路内部の熱量は許容できないほど高くなります。[ 21 ] : 1
これらの熱効果により、SoCやその他のチップ設計者は保守的な設計マージンを適用せざるを得なくなり、壊滅的な故障のリスクを軽減するために性能の低いデバイスを開発せざるを得なくなります。長さスケールの微細化に伴いトランジスタ密度が増加するため、プロセス世代が進むにつれて熱出力が増加します。この問題をさらに悪化させるのは、SoCアーキテクチャが通常、異種混合であるため、空間的に不均一な熱流束が生じ、均一なパッシブ冷却では効果的に緩和できないことです。[ 21 ] : 1
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2018年10月) |
SoC は計算および通信のスループットを最大化するように最適化されています。
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2018年10月) |
SoCは、一部またはすべての機能のレイテンシを最小化するように最適化されています。これは、要素を適切な近接性と局所性で配置することで実現できます。これにより、相互接続遅延が最小化され、モジュール、機能ユニット、メモリ間のデータ通信速度が最大化されます。一般的に、レイテンシを最小化するための最適化は、ブール充足可能性問題と同等のNP完全問題です。
プロセッサコア上で実行されるタスクの場合、タスクスケジューリングによってレイテンシとスループットを改善できます。ただし、一部のタスクはアプリケーション固有のハードウェアユニットで実行されるため、タスクスケジューリングだけでは、すべてのソフトウェアベースのタスクをタイミングとスループットの制約に合わせて最適化するには不十分な場合があります。
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2018年10月) |
システム オン チップは、標準的なハードウェア検証および妥当性確認技術を使用してモデル化されますが、追加の技術を使用して SoC 設計の代替案をモデル化し、最適化し、上記の最適化ターゲットに関する 複数の基準の決定分析に関してシステムを最適化することができます。
タスクスケジューリングは、複数のプロセスまたはスレッドが単一のプロセッサコアを共有するあらゆるコンピュータシステムにおいて重要なアクティビティです。SoCのプロセッサコア上で実行される組み込みソフトウェアの§レイテンシを削減し、§スループットを向上させることが重要です。SoCにおける重要なコンピューティングアクティビティのすべてがオンチッププロセッサ上で実行されるソフトウェアで実行されるわけではありませんが、スケジューリングによって、ソフトウェアベースのタスクや共有リソースを伴うその他のタスクのパフォーマンスを大幅に向上させることができます。
SoC 上で実行されるソフトウェアは、多くの場合、ネットワーク スケジューリング アルゴリズムとランダム スケジューリングアルゴリズム に従ってタスクをスケジュールします。
プロセッサ設計では、ハードウェアとソフトウェアのタスクがパイプライン化されることがよくあります。パイプライン化は、コンピュータアーキテクチャにおける高速化の重要な原則です。CPU (例えば、古典的なRISCパイプライン)やGPU(グラフィックスパイプライン)で頻繁に使用されますが、 SoCのコンテキストでは、デジタル信号処理やマルチメディア操作などのアプリケーション固有のタスクにも適用されます。 [ 12 ]
SoCは、確率モデル、待ち行列ネットワーク、マルコフ連鎖などを用いて分析されることが多い。例えば、リトルの法則を用いると、SoCの状態とNoCのバッファを到着過程としてモデル化し、ポアソン確率変数とポアソン過程を用いて分析することができる。
SoCは、離散時間および連続時間の両方のマルコフ連鎖を用いてモデル化されることが多いです。マルコフ連鎖モデリングにより、SoCの電力、発熱、レイテンシなどの定常分布を漸近的に解析し、一般的なケースに合わせて設計上の意思決定を最適化することができます。
SoCチップは通常、金属酸化膜半導体(MOS)技術を用いて製造されます。 [ 22 ]上記のネットリストは、設計者の意図をSoCの設計に変換するための物理設計(配置配線)フローの基盤として使用されます。この変換プロセス全体を通して、設計は静的タイミングモデリング、シミュレーション、その他のツールを用いて解析され、周波数、消費電力、機能的整合性(レジスタ転送レベルコードで記述)、電気的整合性など、指定された動作パラメータを満たしていることを確認します。
既知のバグがすべて修正され、再検証され、すべての物理設計チェックが完了すると、チップの各層を記述した物理設計ファイルがファウンドリのマスク工場に送られ、そこでガラスリソグラフィマスク一式がエッチングされます。そして、ウェーハ製造工場に送られ、パッケージングとテストの前にSoCダイが製造されます。
SoC は、次のようないくつかの技術によって製造できます。
ASICはFPGAよりも消費電力が少なく高速ですが、再プログラムができず、製造コストが高くなります。FPGA設計は少量生産に適していますが、十分な生産量に達するとASICは総所有コストを削減します。[ 23 ]
SoC設計は、置き換えるマルチチップシステムと比較して、消費電力が少なく、コストが低く、信頼性が高いという利点があります。システム内のパッケージ数が少ないため、組み立てコストも削減されます。
ただし、ほとんどの超大規模集積回路(VLSI) 設計と同様に、歩留まりが低く、非反復的なエンジニアリングコストが高いため、同じ機能を複数の小さなチップに分散した場合よりも、1 つの大きなチップの総コストの方が高くなります。
特定のアプリケーション向けにSoCを構築することが実現不可能な場合、代替手段として、複数のチップを1つのパッケージに収めたシステム・イン・パッケージ(SiP)が挙げられます。大量生産の場合、SoCはパッケージがシンプルなため、SiPよりもコスト効率に優れています。[ 24 ] SiPが好まれるもう1つの理由は、機能コンポーネントが互いに近すぎるため、特定の用途ではSoCの廃熱が高すぎる可能性があることです。一方、SiPでは機能モジュール間の距離が物理的に離れているため、異なる機能モジュールからの熱放散が良好です。
システムオンチップの例としては次のようなものがあります。
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2018年10月) |
SoCの研究開発では、多くの選択肢を比較することがよくあります。COSMIC [ 25 ]などのベンチマークは、このような評価を支援するために開発されています。
面接では、ほとんどの面接官が「検証と妥当性確認の違いは何ですか?」という質問をします。多くの人が「検証」と「妥当性確認」を同じ意味で使っていますが、両者の意味は異なります。