2

そのため、コアごとに複数のスレッドを実装するいくつかのテクノロジ (インテルのハイパースレッディングなど) を調べていて、これらの種類のテクノロジの並列処理の程度を知りたいと思っています。それは真の並列処理ですか、それともより効果的な同時実行処理ですか? それらはまだ同じ実行ユニットとコアリソースを共有しているようで、基本的には使用法を仮想化しているだけのようです。したがって、真の並列処理がどのように発生するかはわかりません。そして、これが事実である場合、利点は何ですか?効果的なスレッド コンテキストの切り替えにより、同時実行を実現できます。

4

2 に答える 2

0

そのため、ハイパースレッディングのメリットを決定する要因は多数あります。まず、リソースを共有しているため、真の並列処理は明らかにありませんが、プロセッサのタイプに応じて同時実行性がいくらか向上します。

ハードウェア スレッドには 3 つのタイプがあります。個々のスレッドのレイテンシが増加するという代償を払って、スループットを向上させることを目的として、ラウンド ロビン方式でスレッドを切り替えるファイングレイン。切り替えはクロック単位で行われます。ストールまたは何らかのメモリフェッチが発生したときにプロセッサがスレッドを切り替える、コンテキストスイッチに似たコースグレインがあります。次に、スレッドの切り替えが同じクロックで発生する同時性があります。つまり、リオーダ バッファとパイプラインに複数のスレッド データが同時に存在します。それらは次のように描かれています。

陰影は実行スレッドに対応

ハイパースレッディングは、この図の SMT に対応します。ご覧のとおり、設計の有効性は主に 1 つのことに依存します。それは、パイプラインがどれだけビジーかということです。動的にスケジュールされたプロセッサでは、パイプラインと実行ユニットを可能な限りビジー状態に保つことが目標であり、その利点は、私が見たものから約 0 ~ 5% の利益の減少を示しています。パイプラインに多くのストールがある静的にスケジュールされたプロセッサの場合、利点ははるかに一般的であり、命令を並べ替えるコンパイラの機能に応じて、約 20 ~ 40% の利益が見られます。

于 2014-03-04T16:49:01.290 に答える