システムオンチップ

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

AMD Am286ZX / LX、Intel80286ベースのSoC

システムオンチップSoC ; / ˌɛsˌoʊˈsiː / es -oh-SEEまたは/sɒk / sock [ nb 1 ]集積回路 チップとも呼ばれます)ですコンピュータまたはその他の電子システムのすべてまたはほとんどのコンポーネントこれらのコンポーネントには、ほとんどの場合、中央処理装置(CPU)、メモリ入出力ポート、およびセカンダリストレージが含まれます。、多くの場合、無線モデムグラフィックスプロセッシングユニット(GPU)などの他のコンポーネントと一緒に–すべて単一の基板またはマイクロチップ上にあります。[1]デジタルアナログミックスドシグナル、および多くの場合無線周波数 信号処理機能が含まれている場合があります(それ以外の場合は、アプリケーションプロセッサのみと見なされます)。

高性能SoCは、多くの場合、専用の物理的に分離されたメモリおよびセカンダリストレージ(ほとんどの場合、それぞれLPDDRおよびeUFSまたはeMMC )チップとペアになっており、パッケージオンパッケージ(PoP)構成と呼ばれるものでSoCの上に階層化できます。 、またはSoCの近くに配置します。さらに、SoCは個別のワイヤレスモデムを使用する場合があります。[2]

SoCは、機能に基づいてコンポーネントを分離し、中央のインターフェース回路基板を介してコンポーネントを接続する、一般的な従来のマザーボードベースのPC アーキテクチャとは対照的です。[nb 2] マザーボードは取り外し可能または交換可能なコンポーネントを収容および接続しますが、SoCはこれらすべてのコンポーネントを単一の集積回路に統合します。SoCは通常、CPU、グラフィックス、メモリインターフェイス、[nb 3]ハードディスクとUSB接続、[nb 4] ランダムアクセス読み取り専用 メモリ、セカンダリストレージおよび/またはそれらのコントローラを単一の回路ダイに統合します。一方、マザーボードはこれらのモジュールを次のように接続しますディスクリートコンポーネントまたは拡張カード

SoCは、マイクロコントローラーマイクロプロセッサー、またはおそらくいくつかのプロセッサーコアを、GPUWi-Fiセルラーネットワーク無線モデム、および/または1つ以上のコプロセッサーなどの周辺機器と統合します。マイクロコントローラがマイクロプロセッサを周辺回路およびメモリと統合する方法と同様に、SoCはマイクロコントローラをさらに高度な周辺機器と統合するものと見なすことができます。システムコンポーネントの統合の概要については、システム統合を参照してください。

より緊密に統合されたコンピュータシステム設計は、同等の機能を備えたマルチチップ設計よりも、パフォーマンスを向上させ、消費電力半導体ダイ面積を削減します。これには、コンポーネントの交換可能性が低下するという犠牲が伴います。定義上、SoC設計は、さまざまなコンポーネントモジュール間で完全またはほぼ完全に統合されていますこれらの理由から、一部にはSoCの影響と、モバイルおよび組み込みコンピューティング市場から学んだ教訓により、コンピューターハードウェア業界ではコンポーネントのより緊密な統合に向かう一般的な傾向があります。SoCは、組み込みコンピューティングおよびハードウェアアクセラレーション

SoCは、モバイルコンピューティングスマートフォンタブレットコンピューターなど)およびエッジコンピューティング市場で非常に一般的です。[3] [4]これらは、WiFiルーターやモノのインターネットなどの組み込みシステムでも一般的に使用されています。

タイプ

一般に、SoCには3つの識別可能なタイプがあります。

アプリケーション

SoCは、あらゆるコンピューティングタスクに適用できます。ただし、これらは通常、タブレット、スマートフォン、スマートウォッチ、ネットブックなどのモバイルコンピューティング、組み込みシステム、および以前はマイクロコントローラーが使用され ていたアプリケーションで使用されます。

組み込みシステム

以前はマイクロコントローラーしか使用できませんでしたが、組み込みシステム市場ではSoCが注目を集めています。より緊密なシステム統合により、信頼性と平均故障間隔が向上し、SoCはマイクロコントローラーよりも高度な機能と計算能力を提供します。[5] アプリケーションには、AIアクセラレーション、組み込みマシンビジョン[6] データ収集テレメトリベクトル処理アンビエントインテリジェンスが含まれます。多くの場合、組み込みSoCは、モノのインターネット産業用モノのインターネット、およびエッジコンピューティング市場を対象としています。

モバイルコンピューティング

モバイルコンピューティングベースのSoCは、常にプロセッサ、メモリ、オンチップキャッシュワイヤレスネットワーク機能、そして多くの場合デジタルカメラのハードウェアとファームウェアをバンドルしています。メモリサイズが大きくなると、ハイエンドSoCにはメモリとフラッシュストレージがないことが多く、代わりに、メモリとフラッシュメモリがSoCのすぐ隣または上(パッケージ上のパッケージ)に配置されます。[7] モバイルコンピューティングSoCの例には次のものがあります。

パソコン

1992年、Acorn Computersは、ARM250 SoCを搭載したA3010、A3020、およびA4000シリーズのパーソナルコンピューターを製造しました。オリジナルのAcornARM2プロセッサを、メモリコントローラ(MEMC)、ビデオコントローラ(VIDC)、およびI / Oコントローラ(IOC)と組み合わせました。以前のAcornARM搭載コンピュータでは、これらは4つの個別のチップでした。ARM7500チップは、ARM700、VIDC20、およびIOMDコントローラーに基づく第2世代のSoCであり、セットトップボックスなどの組み込みデバイスや、後のAcornパーソナルコンピューターで広くライセンスされていました。

SoCは、2018年現在、主流のパーソナルコンピューターに適用されています。 [8] 特に、ラップトップおよびタブレットPCに適用されます。タブレットとラップトップのメーカーは、組み込みシステムとスマートフォン市場から、ハードウェアとファームウェアモジュールの緊密な統合、およびチップ上に統合されたLTEやその他のワイヤレスネットワーク通信(統合ネットワークインターフェイスコントローラー)による消費電力の削減、パフォーマンスと信頼性の向上について学んだ。[10]

ARMベース:

x86ベース:

構造

SoCは、ソフトウェアコードを実行するマイクロプロセッサを含むハードウェア機能ユニットと、これらの機能モジュール間の接続、制御、直接接続、およびインターフェイスを 行う通信サブシステムで構成されます。

機能コンポーネント

プロセッサコア

SoCには少なくとも1つのプロセッサコアが必要ですが、通常、SoCには複数のコアがあります。プロセッサコアは、マイクロコントローラマイクロプロセッサ(μP)、[11] デジタルシグナルプロセッサ(DSP)、またはアプリケーション固有の命令セットプロセッサ(ASIP)コアです。[12] ASIPには、アプリケーションドメイン用にカスタマイズされ、特定のタイプのワークロード用の汎用命令よりも効率的になるように設計された命令セットがあります。マルチプロセッサSoCには、定義上、複数のプロセッサコアがあります。

シングルコア、マルチコア、メニーコアのいずれの場合でも、SoCプロセッサコアは通常、RISC命令セットアーキテクチャを使用します。RISCアーキテクチャは、必要なデジタルロジックが少なく、したがってオンボードの電力と面積が少ないため、SoC用のCISCプロセッサよりも有利です。また、組み込みおよびモバイルコンピューティング市場では、面積と電力が非常に制限されることがよくあります。特に、SoCプロセッサコアは、 IPコアとして指定されたソフトプロセッサであり、 x86よりも電力効率が高いため、 ARMアーキテクチャを使用することがよくあります。[11]

メモリ

マイクロコントローラやその他の組み込みシステムと同様に、 SoCには計算を実行するための半導体メモリブロックが必要ですアプリケーションによっては、SoCメモリがメモリ階層キャッシュ階層を形成する場合があります。モバイルコンピューティング市場では、これは一般的ですが、多くの低電力組み込みマイクロコントローラーでは、これは必要ありません。SoCのメモリテクノロジには、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的に消去可能なプログラマブルROM(EEPROM)、およびフラッシュメモリが含まれます。[11]他のコンピュータシステムと同様に、RAMは、比較的高速で高価なスタティックRAM(SRAM)と、低速で安価なダイナミックRAM(DRAM) に細分できます。SoCにキャッシュ階層がある場合、SRAMは通常プロセッサレジスタとコアのL1キャッシュを実装するために使用されますが、DRAMはメインメモリを含むキャッシュ階層の下位レベルに使用されます「メインメモリ」は、SoCに複数のプロセッサがある場合、単一のプロセッサ(マルチコアの場合もあります)に固有の場合があります。その場合、分散メモリであり、 §モジュール間通信を介して送信する必要があります。別のプロセッサからアクセスされるオンチップ。[12] マルチプロセッシングメモリの問題の詳細については、キャッシュコヒーレンスメモリレイテンシを参照してください。

インターフェイス

SoCには、通常は通信プロトコル用の外部インターフェイスが含まれています。これらは多くの場合、 USBFireWireイーサネットUSARTSPIHDMII²Cなどの業界標準に基づいています。これらのインターフェイスは、使用するアプリケーションによって異なります。Wi-FiBluetooth6LoWPAN近距離無線通信などのワイヤレスネットワークプロトコルもサポートされている場合があります。

必要に応じて、SoCには、多くの場合信号処理用のアナログ-デジタルおよびデジタル-アナログコンバータを含むアナログインターフェイスが含まれていますこれらは、スマートトランスデューサーを含むさまざまなタイプのセンサーまたはアクチュエーターとインターフェースできる場合がありますこれらは、アプリケーション固有のモジュールまたはシールドとインターフェースする場合があります。[nb 5] または、アナログセンサーがSoCに組み込まれていて、その読み取り値を数学的処理のためにデジタル信号に変換する必要がある場合など、SoCの内部にある場合もあります。

デジタルシグナルプロセッサ

多くの場合、デジタルシグナルプロセッサ(DSP)コアはSoCに含まれています。これらは、センサーアクチュエーターデータ収集データ分析、マルチメディア処理のためにSoCで信号処理操作を実行します。DSPコアは通常、非常に長い命令ワード(VLIW)と単一命令、複数データ(SIMD)命令セットアーキテクチャを備えているため、並列処理スーパースカラー実行を通じて命令レベルの並列処理を活用するのに非常に適しています。[12] :4  DSPコアは、ほとんどの場合、アプリケーション固有の命令を備えているため、通常、アプリケーション固有の命令セットプロセッサ(ASIP)です。このようなアプリケーション固有の命令は、それらの命令を計算する 専用のハードウェア機能ユニットに対応しています。

典型的なDSP命令には、積和演算高速フーリエ変換融合乗算加算、および畳み込みが含まれます。

その他

他のコンピュータシステムと同様に、SoCには、クロック信号を生成し、SoC機能の実行を制御し、必要に応じてSoCの信号処理アプリケーションに時間コンテキストを提供するタイミングソースが必要です。人気のある時間ソースは、水晶発振器フェーズロックループです。

カウンタータイマー、リアルタイムタイマーパワーオンリセットジェネレーターなどのSoC周辺機器SoCには、電圧レギュレータ電力管理回路も含まれています。

モジュール間通信

SoCは多くの実行ユニットで構成されています。これらのユニットは、多くの場合、データ命令をやり取りする必要があります。このため、最も些細なSoCを除くすべてのSoCに通信サブシステムが必要です。もともとは他のマイクロコンピュータ技術と同様にデータバスアーキテクチャが使用されていましたが、最近ではネットワークオンチップ(NoC)と呼ばれるスパース相互通信ネットワークに基づく設計が目立つようになり、近い将来、SoC設計のバスアーキテクチャを追い抜くと予測されています。 [13]

バスベースの通信

歴史的に、共有グローバルコンピュータバスは通常、SoCの「ブロック」とも呼ばれるさまざまなコンポーネントを接続していました。[13] SoC通信用の非常に一般的なバスは、ARMのロイヤリティフリーのAdvanced Microcontroller Bus Architecture(AMBA)標準です。

ダイレクトメモリアクセスコントローラは、CPUまたはコントロールユニットをバイパスして、外部インターフェイスとSoCメモリ間でデータを直接ルーティングし、それによってSoCのデータスループットを向上させます。これは、コンポーネントベースのマルチチップモジュールPCアーキテクチャ 上の周辺機器の一部のデバイスドライバに似ています。

コンピュータバスはスケーラビリティに制限があり、1つのチップで最大数十のコア(マルチコア)のみをサポートします。[13] :xiii ワイヤーの遅延は、継続的な小型化 ためにスケーラブルではありません。システムパフォーマンスは、接続されているコアの数に比例しません。電力を持続させるには、コアを追加するたびにSoCの動作周波数を下げる必要があり、長いワイヤーは大量に消費します。電力の。これらの課題は、チップ上のメニーコアシステムをサポートするのに法外なものです。[13] :xiii 

ネットワークオンチップ

2010年代後半には、バスベースのプロトコルではなくネットワークのようなトポロジの観点から通信サブシステムを実装するSoCの傾向が現れました。SoC上のプロセッサコアが増える傾向にあるため、オンチップ通信の効率は、システム全体のパフォーマンスとコストを決定する重要な要素の1つになっています。[13] :xiii これにより、バスベースのネットワークのボトルネックを克服するために、「ネットワークオンチップ」(NoC)として知られるルーターベースのパケット交換 を備えた相互接続ネットワークが出現しました。[13] :xiii 

ネットワークオンチップには、宛先およびアプリケーション固有のルーティング、電力効率の向上、バス競合の可能性の低減などの利点があります。ネットワークオンチップアーキテクチャは、 TCPオンチップ通信用のインターネットプロトコルスイートなどの通信プロトコルからインスピレーションを得ていますが[13]、通常はネットワーク層が少なくなっています。最適なネットワークオンチップネットワークアーキテクチャは、現在多くの研究対象となっています。NoCアーキテクチャはトーラスハイパーキューブメッシュツリーネットワークから、分岐を伴うランダムウォークやランダム化された存続時間(TTL) などのランダム化されたアルゴリズムへの遺伝的アルゴリズムのスケジューリング。

多くのSoC研究者は、NoCアーキテクチャがSoC設計の電力とスループットのニーズを効率的に満たすことが示されているため、SoC設計の未来であると考えています。現在のNoCアーキテクチャは2次元です。2D IC設計では、SoCのコア数が増えるにつれてフロアプランの選択肢が制限されるため、 3次元集積回路(3DIC)が登場するにつれて、SoC設計者は3DNoCと呼ばれる3次元オンチップネットワークの構築に目を向けています。[13]

デザインフロー

SoC設計フロー

チップ上のシステムは、 §構造説明されているハードウェアと、マイクロコントローラー、マイクロプロセッサー、またはデジタルシグナルプロセッサーのコア、周辺機器、およびインターフェイスを制御するソフトウェアの両方で構成されています。SoCの設計フローは、このハードウェアとソフトウェアを同時に開発することを目的としています。これは、アーキテクチャの共同設計とも呼ばれます。設計フローでは、最適化( §最適化の目標)と制約 も考慮に入れる必要があります。

ほとんどのSoCは、ハードウェア要素と実行ユニットの事前認定されたハードウェアコンポーネントIPコア仕様、つまり上記の「ブロック」と、それらの動作を制御するソフトウェアデバイスドライバーから開発されています。特に重要なのは、USBなどの業界標準のインターフェイスを駆動するプロトコルスタックですハードウェアブロックは、コンピューター支援設計ツール、特に電子設計自動化ツールを使用してまとめられます。ソフトウェアモジュールは、ソフトウェア統合開発環境を使用して統合されます

SoCコンポーネントは、 C ++MATLABSystemCなどの高位プログラミング言語で設計され、 CからHDLまたはフローからHDLなどの高位合成(HLS)ツールを介してRTL設計に変換されることもよくあります[14] 「アルゴリズム合成」と呼ばれるHLS製品を使用すると、設計者はC ++を使用して、システム、回路、ソフトウェア、および検証レベルをすべて、通常指定される時間スケールに依存しない方法で、コンピューターエンジニアに 一般的に知られている1つの高水準言語でモデル化および合成できます。 HDLで。[15] 他のコンポーネントはソフトウェアのままで、コンパイルして、 IPコアとしてのHDLのモジュールとしてSoCに含まれるソフトコアプロセッサに組み込むことができます。

SoCのアーキテクチャが定義されると、新しいハードウェア要素は、回路の動作を定義するレジスタ転送レベル(RTL)と呼ばれる抽象的なハードウェア記述言語で記述されるか、高位合成によって高位言語からRTLに合成されます。これらの要素は、ハードウェア記述言語で相互に接続されて、完全なSoC設計を作成します。これらのコンポーネントを接続し、異なるベンダーが提供する可能性のある異なるインターフェイス間で変換するために指定されたロジックは、グルーロジックと呼ばれます。

設計検証

チップは、半導体ファウンドリに送られる前に、検証の正確さについて検証されます。このプロセスは機能検証と呼ばれ、チップ設計のライフサイクルで費やされる時間とエネルギーのかなりの部分を占めており、多くの場合70%と言われています。[16] [17]チップの複雑さが増すにつれて、SystemVerilogSystemCeOpenVeraなどのハードウェア検証言語が使用されています。検証段階で見つかった バグは、設計者に報告されます。

従来、エンジニアは、テープアウトと呼ばれる設計の完成前に、再プログラム可能なハードウェアでシミュレーションアクセラレーション、エミュレーション、またはプロトタイピングを使用して、SoC設計のハードウェアとソフトウェアを検証およびデバッグしていましたFPGAプロトタイプは再プログラム可能であり、デバッグが可能であり、特定用途向け集積回路(ASIC)よりも柔軟性があるため、フィールドプログラマブルゲートアレイ(FPGA)はSoCのプロトタイピングに適しています。[18] [19]

大容量と高速コンパイル時間を備えたシミュレーションアクセラレーションとエミュレーションは、システムの幅広い可視性を提供する強力なテクノロジーです。ただし、どちらのテクノロジもMHzのオーダーで動作が遅く、SoCの動作周波数よりも大幅に遅くなる可能性があります(最大100倍遅くなる可能性があります)。アクセラレーションボックスとエミュレーションボックスも非常に大きく、100万米ドルを超える高価なものです。[要出典]

対照的に、FPGAプロトタイプは、FPGAを直接使用して、エンジニアが実際の刺激でシステムの完全な動作周波数またはそれに近い周波数で検証およびテストできるようにします。Certus [20]などのツールを使用して、信号を観測できるようにするプローブをFPGARTLに挿入します。これは、ロジックアナライザと同様の機能を備えた複数のFPGA間でのハードウェア、ファームウェア、およびソフトウェアの相互作用をデバッグするために使用されます。

並行して、ハードウェア要素はグループ化され、論理合成のプロセスを通過します。その間、動作周波数や予想される信号遅延などのパフォーマンスの制約が適用されます。これにより、物理回路およびその相互接続としての設計を説明するネットリストと呼ばれる出力が生成されます。これらのネットリストは、コンポーネントを接続するグルーロジックと組み合わされて、チップに印刷できる回路としてSoCの概略図を作成します。このプロセスは配置配線と呼ばれ、SoCが特定用途向け集積回路(ASIC) として製造されている場合は、テープアウトに先行します。

最適化の目標

SoCは、電力使用、ダイ上の領域、通信、モジュラーユニット間の局所性のポジショニングおよびその他の要因を最適化する必要があります。最適化は必然的にSoCの設計目標です。最適化が必要ない場合、エンジニアは、エリア使用率、消費電力、またはシステムのパフォーマンスを同程度に考慮せずに 、マルチチップモジュールアーキテクチャを使用します。

SoC設計の一般的な最適化ターゲットは、それぞれの説明とともに続きます。一般に、これらの量のいずれかを最適化することは、難しい組み合わせ最適化の問題である可能性があり、実際、かなり簡単にNP困難になる可能性があります。したがって、高度な最適化アルゴリズムが必要になることが多く、場合によっては近似アルゴリズムまたはヒューリスティックを使用することが実用的です。さらに、ほとんどのSoC設計には、同時に最適化するための複数の変数が含まれているため、パレート効率が高くなります。SoC設計ではソリューションが求められています。多くの場合、これらの量の一部を最適化するという目標は直接対立し、SoCの設計最適化をさらに複雑にし、システム設計に トレードオフをもたらします。

トレードオフと要件分析のより広い範囲については、要件エンジニアリングを参照してください

ターゲット

消費電力

SoCは、SoCの機能を実行するために使用される電力を最小限に抑えるように最適化されています。ほとんどのSoCは低電力を使用する必要があります。SoCシステムスマートフォンなど)は多くの場合、長いバッテリ寿命を必要とし、自律機能を維持するために電源を必要とせずに数か月または数年を費やす可能性があり、多くの場合、エリア内でネットワーク化された多数の組み込みSoCによって電力使用が制限されますさらに、エネルギーコストが高くなる可能性があり、エネルギーを節約することでSoCの総所有コストを削減できます。最後に、排熱大量の熱が放散されると、高エネルギー消費により他の回路コンポーネントが損傷する可能性があり、エネルギーを節約するためのもう1つの実用的な理由が得られます。回路で使用されるエネルギー量は、時間に対する消費電力の積分であり、平均消費電力率は、電圧による電流の積です同様に、オームの法則により、電力は電流の2乗に抵抗を掛けたもの、または電圧の2乗を抵抗で割ったものです。

SoCは、スマートフォンGPSナビゲーションデバイス、デジタルウォッチスマートウォッチを含む)、ネットブックなどのポータブルデバイスに組み込まれることがよくあります顧客は、モバイルコンピューティングデバイスのバッテリ寿命を長くしたいと考えています。これは、SoCでの消費電力を最小限に抑える必要があるもう1つの理由です。マルチメディアアプリケーションは、ビデオゲームビデオストリーミング画像処理など、これらのデバイスで実行されることがよくあります。これらはすべて、ユーザーの要求と高品質への期待に伴い、近年計算の複雑さが増しています。マルチメディア。マルチメディアタスクを実行するSoCは、標準のモバイルバッテリーを使い切るための低電力でありながら、計算能力のあるプラットフォームである必要あります[12] :3 

ワットあたりのパフォーマンス

SoCは、ワットあたりのパフォーマンスで電力効率を最大化するように最適化されています。電力使用量の予算を考慮して、SoCのパフォーマンスを最大化します。エッジコンピューティング分散処理アンビエントインテリジェンスなどの多くのアプリケーションでは、ある程度の計算パフォーマンスが必要ですが、ほとんどのSoC環境では電力が制限されています。ARMアーキテクチャは、組み込みシステムのx86よりもワットあたりのパフォーマンスが高いため、組み込みプロセッサを必要とするほとんどのSoCアプリケーションではx86よりも優先されます

排熱

SoC設計は、チップ上の排熱 出力を最小限に抑えるように最適化されています。他の集積回路と同様に、高電力密度によって発生する熱は、コンポーネントをさらに小型化するためのボトルネックです。[21] :1 高速集積回路、特にマイクロプロセッサとSoCを含む電力密度は非常に不均一になっています。排熱が多すぎると、回路が損傷し、時間の経過とともに回路の信頼性が低下する可能性があります。高温と熱応力は信頼性に悪影響を及ぼし、応力の移動、平均故障間隔の短縮エレクトロマイグレーションワイヤボンディング準安定性、およびその他のSoCの経時的なパフォーマンスの低下。[21] :2–9 

特に、ほとんどのSoCは物理的な領域またはボリュームが小さいため、システムから拡散する余地がほとんどないため、排熱の影響が大きくなります。最新のデバイスではトランジスタ数が多いため、多くの場合、十分なスループットと高いトランジスタ密度のレイアウトが製造プロセスから物理的に実現可能ですが、回路のボリュームに許容できないほど大量の熱が発生します。[21] :1 

これらの熱効果により、SoCおよびその他のチップ設計者は保守的な設計マージンを適用する必要があり、壊滅的な障害のリスクを軽減するためにパフォーマンスの低いデバイスが作成されます長さのスケールが小さくなるにつれてトランジスタ密度が増加するため、各プロセス世代は最後のプロセスよりも多くの熱出力を生成します。この問題をさらに悪化させるのは、SoCアーキテクチャが通常不均一であり、空間的に不均一な熱流束を生成することです。これは、均一なパッ​​シブ冷却では効果的に軽減できません[21] :1 

スループット

SoCは、計算と通信のスループットを最大化するように最適化されています

レイテンシー

SoCは、その機能の一部またはすべての遅延を最小限に抑えるように最適化されています。これは、相互接続の遅延を最小限に抑え、モジュール、機能ユニット、およびメモリ間でデータが通信される速度を最大化するために、要素を相互に適切な近接性と局所性で配置することによって実現できます。一般に、待ち時間を最小化するための最適化は、ブール充足可能性問題と同等のNP完全問題です。

プロセッサコアで実行されているタスクの場合、タスクスケジューリングを使用すると、レイテンシとスループットを向上させることができますただし、一部のタスクはアプリケーション固有のハードウェアユニットで実行されますが、タスクのスケジューリングでさえ、タイミングとスループットの制約を満たすためにすべてのソフトウェアベースのタスクを最適化するには不十分な場合があります。

方法論

システムオンチップは、標準のハードウェア検証および妥当性確認手法でモデル化されますが、追加の手法を使用してSoC設計の代替案をモデル化および最適化し、上記の最適化ターゲットでの 多基準意思決定分析に関してシステムを最適化します。

タスクのスケジューリング

タスクのスケジューリングは、単一のプロセッサコアを共有する複数のプロセスまたはスレッドを持つコンピュータシステムでは重要なアクティビティです。§レイテンシーを減らし、§SoCの§プロセッサーコアで実行される組み込みソフトウェアのスループット増やすことが重要です。SoCのすべての重要なコンピューティングアクティビティがオンチッププロセッサで実行されているソフトウェアで実行されるわけではありませんが、スケジューリングにより、ソフトウェアベースのタスクや共有リソースを含むその他のタスクのパフォーマンスを大幅に向上させることができます。

SoCは、多くの場合、ネットワークスケジューリングおよびランダム化スケジューリングアルゴリズム に従ってタスクをスケジュールします。

パイプライン処理

ハードウェアとソフトウェアのタスクは、多くの場合、プロセッサ設計でパイプライン化されますパイプライン処理は、コンピュータアーキテクチャを高速化するための重要な原則ですこれらは、GPUグラフィックスパイプライン)およびRISCプロセッサ(従来のRISCパイプラインの進化形)で頻繁に使用されますが、SoCのコンテキストでのデジタル信号処理やマルチメディア操作などのアプリケーション固有のタスクにも適用されます。[12]

確率的モデリング

SoCは、確率モデル待ち行列理論§待ち行列ネットワークおよびマルコフ連鎖を通じて分析されることがよくあります。たとえば、リトルの法則により、SoC状態とNoCバッファーを到着プロセスとしてモデル化し、ポアソン確率変数ポアソンプロセスを介して分析することができます。

マルコフ連鎖

SoCは、離散時間連続時間の両方のバリアントであるマルコフ連鎖でモデル化されることがよくあります。マルコフ連鎖モデリングにより、SoCの電力、熱、遅延、およびその他の要因の定常状態分布の漸近解析が可能になり、一般的なケースに合わせて設計上の決定を最適化できます。

製作

SoCチップは通常、金属-酸化物-半導体(MOS)技術を使用して製造されます。[22]上記のネットリストは、設計者の意図をSoCの設計に変換するための物理設計(場所とルート)フローの基礎として使用されます。この変換プロセス全体を通じて、静的タイミングモデリング、シミュレーション、およびその他のツールを使用して設計を分析し、周波数、消費電力と消費電力、機能の整合性(レジスタ転送レベルコードで説明)、電気などの指定された動作パラメータを満たしていることを確認します。威厳。

すべての既知のバグが修正され、これらが再検証され、すべての物理設計チェックが行われると、チップの各層を説明する物理設計ファイルがファウンドリのマスクショップに送信され、そこでガラスリソグラフィマスクのフルセットがエッチングされます。 。これらは、パッケージングとテストの前にSoCダイスを作成するためにウェーハ製造プラントに送られます。

SoCは、次のようないくつかのテクノロジで製造できます。

ASICは消費電力が少なく、FPGAよりも高速ですが、再プログラムすることはできず、製造に費用がかかります。FPGAデザインは、少量のデザインに適していますが、十分なユニットの実動ASICを使用すると、総所有コストが削減されます。[23]

SoC設計は、置き換えられるマルチチップシステムよりも消費電力が少なく、コストと信頼性が高くなります。システム内のパッケージが少ないため、組み立てコストも削減されます。

ただし、ほとんどの超大規模集積回路(VLSI)設計と同様に、総コスト[必要な説明]は、歩留まり[必要な説明]が低く、非-定期的なエンジニアリングコスト。

特定のアプリケーション用のSoCを構築することが不可能な場合、代替手段は、単一のパッケージに多数のチップを含むパッケージ内のシステム(SiP)です。大量生産の場合、SoCはパッケージングが単純であるため、SiPよりも費用効果が高くなります。[24] SiPが好まれるもう1つの理由は、機能コンポーネントが近すぎるためにSoCでの 排熱が高すぎる可能性があることです。また、SiPでは、物理的に離れているため、さまざまな機能モジュールからの排熱がよくなります。

ベンチマーク

SoCの研究開発では、多くの場合、多くのオプションを比較します。COSMICなどのベンチマーク[25]は、このような評価を支援するために開発されました。

も参照してください

メモ

  1. ^ この記事では、SoCの発音/ ˌɛsˌoʊˈsiː / es - oh- SEEという規則を使用していますしたがって、SoC(「SoC」)に対応する定冠詞には「an」という規則を使用します。他の情報源はそれを/ sɒk / sockと発音し、したがって「SoC」を使用する場合があります
  2. ^ この中央ボードは、「子」コンポーネントカードをホストするための「マザーボード」と呼ばれます。
  3. ^ グラフィックス接続( PCI Express)とRAMは、歴史的にマザーボードに裏打ちされたディスクリートアーキテクチャのノースブリッジを構成していました。
  4. ^ ハードディスクとUSB接続は、歴史的にマザーボードでバックアップされたディスクリートモジュラーアーキテクチャのサウスブリッジの一部を構成していました。
  5. ^ 組み込みシステムでは、「シールド」はPC用拡張カードに類似しています。多くの場合、 ArduinoなどのマイクロコントローラーRaspberry Piなどのシングルボードコンピューターに適合し、デバイスの周辺機器として機能します。

参考文献

  1. ^ Shah、Agam(2017年1月3日)。「QualcommのSnapdragon835チップによる7つの見事なスマートフォンの改善」ネットワークワールド
  2. ^ 「QualcommのSnapdragonX60は、2021年に小型の5Gモデムを約束します– ArsTechnica」
  3. ^ ピート・ベネット、 EEタイムズ低電力SoC設計の理由、場所、内容。」2004年12月2日。2015年7月28日取得。
  4. ^ Nolan、Stephen M. 「モノのインターネット(IoT)システムオンチップ(SoC)開発のための電力管理」デザインと再利用2018年9月25日取得
  5. ^ 「組み込みプロジェクトに適したシングルチップSOCプロセッサですか?」埋め込み2018年10月13日取得
  6. ^ 「クアルコムは組み込みビジョン向けのSoCを発表|イメージングおよびマシンビジョンヨーロッパ」www.imveurope.com 2018年10月13日取得
  7. ^ 「サムスンギャラクシーS10およびS10eティアダウン」iFixit2019年3月6日。
  8. ^ a b 「ARMは2020年までの新しいチップロードマップでIntelを追いかけています」WindowsCentral 2018年10月6日取得
  9. ^ a b "常時接続のPC、バッテリ寿命の延長4GLTEラップトップ| Windows"www.microsoft.com 2018年10月6日取得
  10. ^ 「ギガビットクラスLTE、4G LTEおよび5Gセルラーモデム|クアルコム」クアルコム2018年10月13日取得
  11. ^ a b c ファーバー、スティーブンB.(2000)。ARMシステムオンチップアーキテクチャハーロウ、イギリス:アディソン-ウェスリー。ISBN 0201675196OCLC44267964 _
  12. ^ a b c d e Haris Javaid、Sri Parameswaran(2014)。マルチメディア用のパイプライン化されたマルチプロセッサシステムオンチップスプリンガーISBN 9783319011134OCLC869378184 _{{cite book}}: CS1 maint: uses authors parameter (link)
  13. ^ a b c d e f g h Kundu、Santanu; Chattopadhyay、Santanu(2014)。ネットワークオンチップ:次世代のシステムオンチップ統合(第1版)。フロリダ州ボカラトン:CRCプレス。ISBN 9781466565272OCLC895661009 _
  14. ^ 「MATLABおよびSimulinkアルゴリズムのFPGAプロトタイピングのベストプラクティス」EEJournal2011-08-25 2018年10月8日取得
  15. ^ Bowyer、Bryan(2005-02-05)。「アルゴリズム合成の「なぜ」と「何」」EETimes2018年10月8日取得
  16. ^ EETimes検証は本当に70パーセントですか?2004年6月14日。2015年7月28日取得。
  17. ^ 「検証と妥当性確認の違い」ソフトウェアテストクラス2013年8月26日2018年4月30日取得インタビューでは、ほとんどのインタビュアーが「検証と妥当性確認の違いは何ですか?」について質問しています。多くの人が検証と妥当性確認を同じ意味で使用していますが、どちらも意味が異なります。
  18. ^ リットマン、ダニー(2006-01-05)。「ナノメートルプロトタイピング」(PDF)テイデンデザイン2018年10月7日取得
  19. ^ 「コスト、リスク、TTMを削減するための構造化ASICプロダクションへのFPGAプロトタイピング」デザインと再利用2018年10月7日取得
  20. ^ ブライアンベイリー、EEタイムズ。 TektronixはASICプロトタイピングを揺るがすことを望んでいます。」2012年10月30日。2015年7月28日取得。
  21. ^ a b c d Ogrenci-Memik、Seda(2015)。集積回路の熱管理:オンチップおよびシステムレベルの監視と冷却イギリス、ロンドン:工学技術研究所。ISBN 9781849199353OCLC934678500 _
  22. ^ リン、ヨン-ロングスティーブ(2007)。SOC設計の重要な問題:複雑なシステムオンチップの設計シュプリンガーサイエンス&ビジネスメディアp。176. ISBN 9781402053528
  23. ^ 「FPGAとASIC:それらの違いとどちらを使用するか?– NumatoLabヘルプセンター」numato.com 2018年10月17日取得
  24. ^ EETimes大論争:SOC対SIP。」2005年3月21日。2015年7月28日取得。
  25. ^ 「COSMIC」www.ece.ust.hk。_ 2018年10月8日取得

さらに読む

外部リンク