マルチプロセッシングとマルチスレッディング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/23 17:24 UTC 版)
「マイクロアーキテクチャ」の記事における「マルチプロセッシングとマルチスレッディング」の解説
詳細は「マルチプロセッシング」および「ハードウェアマルチスレッディング」を参照 コンピュータのアーキテクトたちは、CPUの動作周波数とDRAMのアクセス時間との乖離に悩まされてきた。1つのプログラム内の命令レベルの並列化を利用した手法はいずれも、メインメモリからデータをフェッチする場合には長いストールを発生させる可能性がある。さらに、高度な命令レベル並列化のための膨大な数のトランジスタと高い動作周波数により発生する熱は、もはや安価に冷却できるレベルではなくなった。こうした理由により、新しい世代のコンピュータは、1つのプログラムやスレッドの範囲を超えたより高い次元の並列化手法を用い始めた。 このトレンドは「スループットコンピューティング」としても知られる。この考え方は、もともとはメインフレームの市場でオンライントランザクション処理が1トランザクションの速度ではなく、膨大な数のトランザクションを処理できる能力を強調したことに由来する。ネットワークのルーティングやWebサーバなどのこの10年で急速に増加したトランザクション的なアプリケーションに対して、コンピュータ業界は再び容量とスループットの問題を強調してきている。 並列性を実現する方法の一つはマルチプロセッシング、つまり複数のCPUを搭載したシステムを用いることである。かつてはハイエンドのメインフレームやスーパーコンピュータのためのものであったが、小規模の2-8個のマイクロプロセッサを搭載したサーバはスモールビジネスの市場で一般的になっていた。大企業では、大規模(16-256個)のものが一般的である。さらに複数のCPUを搭載したパーソナルコンピュータが1990年代に登場した。 半導体技術の進歩によってもたらされる、さらなるトランジスタサイズの減少はさらに進み、複数のCPUが同じシリコンチップ上に実装されたマルチコアCPUが登場している。はじめは組み込み市場をターゲットとし、シンプルで小さなCPUのみ1つのシリコン上に実装可能であった。2005年までに、半導体技術の進歩によりハイエンドのデスクトップCPUを二つ搭載した CMPチップを大量生産することが可能となった。サンマイクロシステムズの UltraSPARC T1 のように、単純な(スカラー、インオーダーの)設計を踏襲し、1つのシリコンにより多くのプロセッサを詰め込む事を選択したものもある。 また、最近よく用いられるようになった技術としてマルチスレッディングがある。マルチスレッディングでは、プロセッサが低速なシステムのメモリからデータをフェッチする際、データの到着のためにストールする代わりに、プロセッサは実行可能な別のプログラムあるいはスレッドに切り替えを行う。これは特定のプログラムやスレッドの動作を高速化するものではないが、CPUのアイドル時間を減少させることで全体的なシステムのスループットを向上させる。 概念的には、マルチスレッディングはオペレーティングシステムレベルのコンテキストスイッチと等価である。違いは、マルチスレッド化されたCPUが通常のコンテキストスイッチが必要とする数百から数千のCPUサイクルを1サイクルで行ってしまうという点である。これはCPUの状態ハードウェア(レジスタファイルやプログラムカウンタなど)をアクティブなスレッドごとに持つことにより実現される。 さらなる改善方法として、同時マルチスレッディングがある。この技術は、スーパースケーラCPUに異なるプログラム(スレッド)の命令を同じCPUサイクルで複数実行させるものである。 History of general purpose CPUsの記事に、CPUの設計に影響を与えている研究分野のトピックが述べられている。
※この「マルチプロセッシングとマルチスレッディング」の解説は、「マイクロアーキテクチャ」の解説の一部です。
「マルチプロセッシングとマルチスレッディング」を含む「マイクロアーキテクチャ」の記事については、「マイクロアーキテクチャ」の概要を参照ください。
- マルチプロセッシングとマルチスレッディングのページへのリンク