2012-05-03 26 views
9

私は、システム情報を収集しようとしているとのIntel Xeon E5420上で、次のことに気づいている:ハイパースレッディングは、それがないプロセッサでサポートされていると報告されるのはなぜですか?

CPUID(EAX=1)を実行した後、EDX [28]はプロセッサが上場されているという事実にもかかわらず、ハイパースレッディング・サポートを示す、設定されていますハイパースレッディングをサポートしていないIntelのWebサイト(ark.intel.com

誰でも説明がありますか?

+0

ただ1つのスレッドだけの「ハイパースレッディング」です。 – Flexo

+0

関連:http://msdn.microsoft.com/en-us/library/hskdteyh.aspx "AMDのチップセットでは、すべてのマルチコアAMD CPUは、チップが持っていることを示すために、機能情報ビットのビット28を設定しますAMDがハイパースレッディングをサポートしていないにもかかわらず、このケースに該当します。しかし、それはAMDチップ向けです。 – Mysticial

+0

MSDNのチャートでも、ビット28は「マルチスレッド」とラベル付けされています... – Mysticial

答えて

3

はここでインテル・デベロッパーズ・マニュアルによると、そのビットの定義です:

マックスAPIC IDの予約フィールドが有効です。 HTTの値が0の場合、 パッケージ内に1つの論理プロセッサしか存在せず、ソフトウェアでは が1つのAPIC IDのみが予約されていると仮定する必要があります。 HTTの値が1の場合、 CPUID.1.EBX [23:16](このパッケージの論理 プロセッサのアドレス指定可能なIDの最大数)が有効です。

マニュアルのボリューム3Aの第8章では、ハードウェアのマルチスレッドを適切に検出する方法について説明します。インテルでの準公式な説明インテルはペンティアム4の最終バージョンでSMT /ハイパースレッディングを導入した後、彼らは、基本的にhttps://software.intel.com/en-us/articles/hyper-threading-technology-and-multi-core-processor-detection

話があり

http://download.intel.com/products/processor/manual/325462.pdf

+0

はい、これは、HTTまたは複数の物理コアのために、HTTビットが時間とともにパッケージごとに複数の論理スレッドを示すようになったことを示しているようです。 – andrewmu

4

:ここ

のリンクですマルチコアはハイパースレッディングモデルの進化と見なされていたPentium Dを作成しました。これは、コアがSMTユニットと比べて別のコアから独立しているため、マルチコアは同じスレッド数でSMTよりも優れています。だから彼らはSMT /ハイパースレッディングまたはマルチコアを示すために同じビットを使用しました。つまり、マルチコアはハイパースレッディングの改良された形として見られました。ご質問のあるIntel Xeon E5420はマルチコアプロセッサなので、ビットがセットされている理由です。

もちろん、ハイパースレッディングとマルチコアの両方を同じパッケージにまとめることができれば、アンロードされたコアではなくむしろ新しいスレッドをスケジューリングするなど、すでにロードされているコアのハイパースレッディングされた半分。そのため、最終的に、新しいSMUおよびマルチコアトポロジを記述するために、新しいcpuidビット(またはむしろ葉)が導入されました。プロセッサートポロジーを照会するこれらの新しいcpuid機能の最新のものは、EAX = 0xBリーフです。

これとは別に、2010年以降に作成されたプロセッサのインテルの古いトークで使用されているトポロジ列挙アルゴリズムを使用しないでください。不正確な/膨大なコア数が与えられます。代わりにhttps://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/に記載された更新された方法を使用してください。悲しいかな、この新しいページははるかに乾燥していて、たとえば、あなたが聞いた質問には答えられません。

関連する問題