ヘテロジニアスマルチコア 概要

ヘテロジニアスマルチコア

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/19 08:50 UTC 版)

概要

初期のヘテロジニアス・マルチコアの製品として、PlayStation 3等に搭載されたCell Broadband Engineがあり、後のAMDによるCPUとGPUの統合製品(後にAPUと呼ばれる)とともに、マルチコア・アーキテクチャの方向性を決定付けたとされている[3]

例として、Cellプロセッサは、オペレーティングシステム (OS) によるシステム全体の制御等の汎用処理に特化した1個のコントロールポイントプロセッサ「Power Processor Element (PPE)」と、グラフィックスや音声のストリーム等のデータ処理に特化した複数のデータポイントプロセッサ「Synergistic Processor Element (SPE)」で構成される[4][5]。これらのシンプルな異種コアを組み合わせることで、シングルスレッド性能とマルチスレッド性能を両立するアプローチをとっている[5]

モバイルデバイス環境ではCPUとGPUを統合したSoCが使われており、ヘテロジニアス・マルチコア環境とも言えるシステムが一般的となっているが、CPUとGPUのメモリ空間が統合されているわけではない。

ヘテロジニアス・マルチコア環境では、プロセッサごとのメモリ空間が異なっていたり、各プロセッサのISAやメモリアクセス特性に応じた固有のプログラミングが必要であったりと、利用上の難しさが問題視されており、そのような問題を解決するための方法も模索されている[6]

ヘテロジニアス・マルチコアの目的

ヘテロジニアス・マルチコアCPUは、それまで主流だった同じアーキテクチャのCPUコアを1チップに複数搭載するホモジニアス・マルチコアCPUとは大きく異なり、1つのチップに異なる種類のアーキテクチャのCPUコアを搭載したCPUをいう。

その目的は、2つの方向性があると考えられている。

  1. ヘテロジニアス・マルチコアならば、シングルスレッド性能を維持しつつ、マルチスレッド性能を大幅に高めることができる。
  2. それぞれのCPUコアを最適化することによって、ホモジニアス・マルチコアCPUでは実現できない高効率処理を実現できる。

1の手法はソフトウェア指向型の設計であり、2の手法はハードウェア指向型の設計でもある。なお、この2つを組み合わせたヘテロジニアス・マルチコアという方法も十分に考えられる。

ヘテロジニアス・マルチコア出現の背景

CPU単体性能の限界

ヘテロジニアス・マルチコアが浮上して来た背景には、CPU単体での性能向上が行き詰まってきたという事情がある。

2000年頃までのCPU設計は、シングルコアで性能を引き上げるために、次の2点にフォーカスしてきた。

  1. 動作周波数の向上
  2. IPCInstructions Per Cycle: 1サイクルで実行できる命令数)の向上

この2つの目標を達成するために、動作周波数の向上にはパイプラインを細分化する事で対応し、IPCの向上には動的に命令レベルの並列性 (Instruction-Level Parallelism, ILP) を高めるアウト・オブ・オーダー実行とそれに付随するさまざまな高速化技術を導入することで対応してきた。

しかし、この2点を追求することによってシングルコアCPUは複雑化と高コスト化を招いた。現在[いつ?]市場に出回っている最先端のCPUでは、ILP向上のためのスケジューリング制御部分が膨大な面積を占めるようになってきている。そのため、ダイサイズ(半導体本体の面積)を2倍の大きさに増やしても、増やした面積の平方根分(約1.4倍)しか性能が向上しなくなり、最新[いつ?]のCPUでは「性能/消費電力」と「性能/ダイサイズ」が悪化した非効率なものとなった。

シングルコアからマルチコアへ

先端CPUの性能向上がこのように非効率になった背景には、シングルスレッドのスカラ演算性能を引き上げなければならないという呪縛が開発者にあったからである。x86アーキテクチャのCPUでは多数のソフトウェア資産を抱えている。そして、市場に流通しているものを初めとして、既存のアプリケーションの性能を引き上げるためには、シングルスレッドで、かつ、スカラー[要曖昧さ回避]演算の性能を向上させる必要に迫られていた。

ここ数年[いつ?]はCPUの周波数向上が鈍化してきている。さらにはCPU設計の複雑化に伴うトランジスタの集積密度増大による消費電力が増大し続けてきた。そして、より効率のいい性能向上が求められるようになってきている。そこで、CPU業界はマルチスレッド性能の向上へと向かい始めた。「CPUチップのマルチコア化によって「スレッドレベル並列性 (Thread-Level Parallelism, TLP)」を向上させれば、これまでより効率よくCPU性能を上げることができるようになるのではないだろうか?」と考えた。

しかし、ここにも問題があった。インテルやAMDはシングルスレッド性能も維持するために、従来のシングルコアCPUのコアを再利用してマルチコアを実現した。そのために、消費電力やダイエリア当たりの性能は依然としてそれほど向上しなかった。対称型デュアルコアCPUが登場した当時の半導体製造プロセスである90nmでは、2way以上のマルチコア化が難しく、対称型クアッドコアCPUが主流になるのは45nmプロセスに移行してからのことになった[7]。その後もプロセスの微細化は進んでいるが、22nm世代でもコンシューマー向けのボリュームゾーンではデュアルコアやクアッドコアが主流のままとなっている。

この問題の解決策は単純な発想で、CPUコアをシンプルにすれば回避できる。複雑な制御機構を省けば、ずっと小さなCPUコアでそこそこの性能を維持することが可能である。つまり、「ポラックの法則」を逆に考えるなら、CPUコアのダイエリアを1/4にしても性能は1/2にしか落ちないことになる。シンプルなCPUコアなら多数搭載できるから、マルチスレッド性能はずっと高くなるだろう。簡単に「ダイエリア消費量ならびに電力効率のいいマルチコアCPUを作ることができるのではないか?」ということだった。

マルチコアからヘテロジニアス・マルチコアへ

しかし、この手法ですらトレードオフがある。

  • シンプルコアにした場合には、シングルスレッドの性能が落ちる。
  • OSなどに多いコントロール系タスクと、マルチメディア系のストリーム処理、それぞれを高速に処理できるシンプルコアを作ることは難しい。

そこで出てきたアイディアが、ヘテロジニアス型のマルチコアである。

例としては、

  • シングルスレッド性能を追求した大型CPUコアと、シンプルな構造にして効率を追求した小型CPUコアを組み合わせれば、シングルスレッド性能を維持しつつ、高並列のマルチスレッド処理が実現可能。
  • CPUコアを、コントロール系CPUコアとデータ系CPUコアに切り分ける。コントロール系のCPUコアはOSを走らせることと制御のみを担当し、データ処理系のCPUコアはストリーム・データなどのリアルタイムデータ処理を担当する。

それぞれのアプローチに違いはあるが、異なるアーキテクチャを組み合わせることで、これまでの限界を乗り越えようとしている。




「ヘテロジニアスマルチコア」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ヘテロジニアスマルチコア」の関連用語

ヘテロジニアスマルチコアのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ヘテロジニアスマルチコアのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのヘテロジニアスマルチコア (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS