異質性 コンピューティングの文脈における異種性は、通常、異なる命令セットアーキテクチャ (ISA)を指します。メインプロセッサは1つのISAを持ち、他のプロセッサは別の(通常は非常に異なる)アーキテクチャ(場合によっては複数)を持ちます。単に異なるマイクロアーキテクチャを 持つだけではありません(浮動小数点 数処理はこの特殊なケースであり、通常は異種性とは呼ばれません)。
現代のコンピューティングシステムにおける異質性のレベルは、製造技術のさらなる微細化によって、かつては個別の部品であったものがシステムオンチップ (SoC)の統合部品となることが可能になったことで、徐々に高まっています。例えば、多くの新しいプロセッサには、他のデバイス(SATA 、PCI 、イーサネット 、USB 、RFID 、無線 、UART 、メモリコントローラなど)とのインターフェースのための組み込みロジックに加え、プログラム可能な機能ユニットや ハードウェアアクセラレータ (GPU 、暗号化 コプロセッサ 、プログラム可能なネットワークプロセッサ、A/Vエンコーダ/デコーダなど)が搭載されています。
最近の調査結果によると、複数のISAが提供する多様性を活用する異種ISAチップマルチプロセッサは、最高の同一ISAホモジニアスアーキテクチャを最大21%上回り、エネルギーを23%節約し、エネルギー遅延積 (EDP)を32%削減できることが示されています。[ 2 ] AMDが2014年に発表した、コードネームProject Skybridgeと呼ばれるピン互換のARMおよびx86 SoC [ 3 ] は、異種ISA(ARM+x86)チップマルチプロセッサの開発を示唆していました。
異種CPUトポロジー 異種CPUトポロジーを 持つシステムとは、同じISAが使用されるが、コア自体の速度が異なるシステムのことです。[ 4 ] この構成は、対称型マルチプロセッサ に似ています。(このようなシステムは技術的には非対称型マルチプロセッサ ですが、コアの役割やデバイスアクセスに違いはありません。) コアには通常2種類あります。高性能コアは通常「ビッグ」またはPコアと呼ばれ、電力効率の高いコアは通常「スモール」またはEコアと呼ばれます。PコアとEコアという用語は通常、Intelの異種コンピューティングの実装に関連して使用され、ビッグコアとリトルコアという用語は通常、ARMアーキテクチャに関連して使用されます。一部のプロセッサには、プライム、パフォーマンス、効率の3つのカテゴリのコアがあり、プライムコアはパフォーマンスコアよりも高性能です。プライムコアは「ビッグ」、パフォーマンスコアは「ミディアム」、効率コアは「スモール」と呼ばれます。[ 5 ]
このようなトポロジーの一般的な用途は、特にモバイルSoCにおいて、電力効率を向上させることである。
課題 異種コンピューティングシステムは、典型的な同種システムには見られない新たな課題を提示します。[ 7 ] 複数の処理要素の存在は、同種並列処理システムに関連するすべての問題を引き起こしますが、システムの異質性のレベルは、システム開発、プログラミング手法、およびシステム全体の機能に不均一性をもたらす可能性があります。異質性の領域には、次のものが含まれます。[ 8 ]
ISA(命令セットアーキテクチャ) 演算要素は異なる命令セットアーキテクチャを持つ場合があり、その結果、バイナリ互換性の問題が生じる。 ABI(アプリケーションバイナリインターフェース) 計算要素は、メモリを異なる方法で解釈する場合があります。[ 9 ] これには、エンディアン 、呼び出し規約 、メモリレイアウトの両方が含まれる可能性があり、使用されているアーキテクチャとコンパイラの 両方に依存します。 API (アプリケーションプログラミングインターフェース) ライブラリおよびOSサービスは、すべての計算要素で均一に利用できるとは限りません。[ 10 ] 言語機能の低レベル実装 関数やスレッドといった言語機能は、多くの場合、関数ポインタ を用いて実装されますが、この仕組みは異種環境で使用する場合、追加の変換や抽象化が必要となります。 メモリインターフェースと階層構造 演算要素は、異なるキャッシュ 構造、キャッシュコヒーレンシ プロトコルを持つ場合があり、メモリアクセスは均一メモリアクセスまたは非均一メモリアクセス(NUMA )である場合があります。一部のプロセッサ/ユニットはバイト、ワード、またはバーストアクセスしか実行できないため、任意のデータ長を読み取る能力にも違いが見られます。[ 11 ] 相互接続 演算要素は、基本的なメモリ/バスインターフェース以外にも、さまざまな種類の相互接続を備えている場合があります。これには、専用ネットワークインターフェース、ダイレクトメモリアクセス(DMA )デバイス、メールボックス、FIFO 、スクラッチパッドメモリ などが含まれます。さらに、異種混在システムの一部の領域はキャッシュコヒーレンシを備えている一方、他の領域では一貫性とコヒーレンシを維持するために明示的なソフトウェアの関与が必要となる場合があります。 パフォーマンス 異種混在システムでは、アーキテクチャ上は同一のCPUであっても、マイクロアーキテクチャ上の違いによって性能や消費電力にばらつきが生じる場合があります。こうした機能の非対称性に加え、プログラミングモデルやオペレーティングシステムの抽象化が不透明な場合、特に混合ワークロードにおいては、性能予測に問題が生じる可能性があります。 開発ツール 異なる種類のプロセッサでは、通常、ソフトウェア開発者にとって異なるツール(エディタ、コンパイラなど)が必要となり、アプリケーションをそれらの間で分割する際に複雑さが生じます。[ 12 ] データ分割 同種のプラットフォーム上でのデータ分割は多くの場合自明ですが、一般的な異種の場合、この問題はNP完全であることが示されています。[ 13 ] 分割数が少ない場合、負荷を完全にバランスさせ、通信量を最小化する最適な分割が存在することが示されています。[ 14 ]
ハードウェアの例 異種混在型のコンピューティングハードウェアは、ハイエンドサーバーや高性能コンピューティングマシンから、携帯電話やタブレットなどの低消費電力組み込みデバイスに至るまで、あらゆるコンピューティング分野で見られる。
高性能コンピューティング 組み込みシステム(DSPおよびモバイルプラットフォーム) 再構成可能なコンピューティング ネットワーキング 汎用コンピューティング、ゲーム、エンターテイメント機器
参考文献 ↑ Shan, Amar (2006).異種処理: ムーアの法則を拡張するための戦略 . Linux Journal. ↑ Venkat, Ashish; Tullsen, Dean M. (2014). ISAの多様性を活用する: 異種ISAチップマルチプロセッサの設計 . 第41回コンピュータアーキテクチャに関する国際シンポジウム議事録. ↑ Anand Lal Shimpi (2014-05-05). "AMD、Project SkyBridgeを発表:2015年にピン互換のARMおよびx86 SoC、Androidサポート" . AnandTech. 2014年5月9日の オリジナルからアーカイブ済み。 2017年6月11日 閲覧 。 来年、AMDはGraphics Core Next GPUを統合した低消費電力20nm Cortex A57ベースのSoCをリリースする予定です。 ↑ 「エネルギー効率を考慮したスケジューリング」 。Linux カーネルのドキュメント 。 ↑ アマデオ、ロン (2023-10-24). 「クアルコムのSnapdragon 8 Gen 3はCPUが30%高速化を約束」 . Ars Technica . ↑ Mittal, Sparsh (2015 年 2 月) 「非対称マルチコアプロセッサのアーキテクチャ設計と管理のための技術に関する調査」 ACM Computing Surveys 48 ( 3): 1– 38. doi : 10.1145/2856125 . ↑ Kunzman, DM (2011). 異種システムプログラミング . 並列分散処理に関する国際シンポジウムワークショップ. doi : 10.1109/IPDPS.2011.377 . ↑ Flachs, Brian (2009). Bringing Heterogeneous Processors Into The Mainstream (PDF) . Symposium on Application Accelerators in High-Performance Computing (SAAHPC). ↑ K. Gai; L. Qiu; H. Zhao; M. Qiu (2020 年 10 月~12 月). "クラウド コンピューティングにおける遺伝的アルゴリズムを用いた異種メモリ向けコスト認識型マルチメディア データ割り当て". IEEE Transactions on Cloud Computing . 8 (4): 1212– 1222. doi : 10.1109/TCC.2016.2594172 . ↑ Agron, Jason; Andrews, David (2009). 異種マルチコアシステム向けハードウェアマイクロカーネル . 並列処理ワークショップ、2009年。国際並列処理会議(ICPPW)。doi : 10.1109 /ICPPW.2009.21 。 ↑ ラング、ヨハネス (2020)。 ARM および DSP マルチプロセッサー・アイン・チップ・システム (修士) を含む異質な技術者。フォアアールベルク大学。 土井 : 10.25924/opus-4525 。 ↑ Wong, William G. (2002年9月30日). 「混合プロセッサソフトウェア開発におけるツールの重要性」 . www.electronicdesign.com . 2023年8月9日 取得 。 ↑ Beaumont, Olivier; Boudet, Vincent; Rastello, Fabrice; Robert, Yves (2002 年 8 月). "正方形を長方形に分割する: NP 完全性と近似アルゴリズム" (PDF) . Algorithmica . 34 (3): 217– 239. CiteSeerX 10.1.1.3.4967 . doi : 10.1007/s00453-002-0962-9 . S2CID 9729067 . ↑ Beaumont, Olivier; Becker, Brett; DeFlumere, Ashley; Eyraud-Dubois, Lionel; Lastovetsky, Alexey (2018年7月) 「異種プラットフォームにおける並列コンピューティングのための行列分割の最近の進歩」 (PDF) . IEEE Transactions on Parallel and Distributed Computing . ↑ Gschwind, Michael (2005). Cell ヘテロジニアス チップ マルチプロセッサ向けの新しい SIMD アーキテクチャ (PDF) . Hot Chips: A Symposium on High Performance Chips. 2020-06-18 の オリジナル (PDF)からアーカイブ済み。2014-10-28 に 取得 。