ハイパースレッディングは、デュアルコアを使用するよりも安価で低速な代替手段です
インテル・マニュアル第3巻プログラミングガイドシステム- 325384-056US 2015年9月 8.7「インテルハイパースレッディング・テクノロジーアーキテクチャは、」HTを簡単に説明します。次の図が含まれています。
TODOそれは実際のアプリケーションで平均してどのくらいの割合で遅くなりますか?
ハイパースレッディングは、最新のシングルCPUコアが命令パイプラインhttps://en.wikipedia.org/wiki/Instruction_pipeliningで複数の命令を一度に実行するため、可能です。
命令パイプラインは、メモリの読み取り、命令のデコード、命令の実行など、回路の各部分がいつでも使用されることを保証するために、単一コア内の機能を分離したものです。
ハイパースレッディングは、次を使用して機能をさらに分離します。
パイプラインで実際に命令を実行する単一のバックエンド。
デュアルコアには2つのバックエンドがあり、これによりコストとパフォーマンスが向上します。
2つのフロントエンド。2つの命令ストリームを受け取り、ハザードを回避して単一のバックエンドのパイプライン使用を最大化する方法でそれらを順序付けます。
デュアルコアには、各バックエンドに1つずつ、合計2つのフロントエンドがあります。
命令の並べ替えによって利益が得られず、ハイパースレッディングが役に立たない場合があります。しかし、それは平均で大幅な改善をもたらします。
1つのコア内の2つのハイパースレッドは、L3のみを共有する2つの異なるコアよりも多くのキャッシュレベルを共有します(TODOはいくつですか?L1?)。
各ハイパースレッドがオペレーティングシステムに公開するインターフェイスは、実際のコアのインターフェイスに似ており、両方を個別に制御できます。したがってcat /proc/cpuinfo
、それぞれ2つのハイパースレッドを持つ2つのコアしか持っていなくても、4つのプロセッサが表示されます。
ただし、オペレーティングシステムは、同じコア上にあるハイパースレッドを知ることを利用して、特定のプログラムの複数のスレッドを単一のコア上で実行できます。これにより、キャッシュの使用率が向上します。
このLinusTechTipsのビデオには、技術的な説明はありません:https : //www.youtube.com/watch?v =wnS50lJicXc