回答編集履歴

6

ちょっと読みやすくした

2017/04/05 09:54

投稿

faithandbrave
faithandbrave

スコア132

test CHANGED
@@ -46,17 +46,21 @@
46
46
 
47
47
 
48
48
 
49
- EAX(`__cpuid`の第2引数`function_id`)が1場合、EDX (`data[3]`) の28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
49
+ EAXが1の場合(`__cpuid`の第2引数`function_id`1を渡した場合)、EDX (`data[3]`) の28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
50
50
 
51
51
 
52
52
 
53
- | ビット | Short | 機能 |
53
+ > EAX=1 CPUID feature bits
54
54
 
55
- |------|-------|-----|
55
+ >
56
56
 
57
- | | | |
57
+ > | ビット | Short | 機能 |
58
58
 
59
+ > |------|-------|-----|
60
+
61
+ > | … | … | … |
62
+
59
- | 28 | htt | Hyper-threading |
63
+ > | 28 | htt | Hyper-threading |
60
64
 
61
65
 
62
66
 

5

ハイパースレッディング状態を取得するための条件を記載

2017/04/05 09:54

投稿

faithandbrave
faithandbrave

スコア132

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- EDX (`data[3]`) の28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
49
+ EAX(`__cpuid`の第2引数`function_id`)が1の場合、EDX (`data[3]`) の28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
50
50
 
51
51
 
52
52
 

4

Wikipediaからの引用を追加

2017/04/05 09:50

投稿

faithandbrave
faithandbrave

スコア132

test CHANGED
@@ -47,6 +47,16 @@
47
47
 
48
48
 
49
49
  EDX (`data[3]`) の28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
50
+
51
+
52
+
53
+ | ビット | Short | 機能 |
54
+
55
+ |------|-------|-----|
56
+
57
+ | … | … | … |
58
+
59
+ | 28 | htt | Hyper-threading |
50
60
 
51
61
 
52
62
 

3

ハイパースレッディングの有効・無効は、EAXではなくEDXの28ビット目だった

2017/04/05 09:47

投稿

faithandbrave
faithandbrave

スコア132

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- EAX=1 CPUID feature bitsの28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
49
+ EDX (`data[3]`) の28ビット目が、ハイパースレッディングの有効・無効を表しているようです。
50
50
 
51
51
 
52
52
 

2

説明順を整理

2017/04/05 09:43

投稿

faithandbrave
faithandbrave

スコア132

test CHANGED
@@ -50,11 +50,11 @@
50
50
 
51
51
 
52
52
 
53
- C++で物理コア数取得するほかの方法としては、Boost Thread Libraryの`boost::thread::physical_concurrency()`静的メンバ関数を使用するものがあります。
53
+ - [論理/物理プロセッサコア数取得 - yohhoyの日記](http://d.hatena.ne.jp/yohhoy/20140811/p1)
54
54
 
55
55
 
56
56
 
57
- - [論理/物理プロセッサコア数取得 - yohhoyの日記](http://d.hatena.ne.jp/yohhoy/20140811/p1)
57
+ C++で物理コア数取得するほかの方法としては、Boost Thread Libraryの`boost::thread::physical_concurrency()`静的メンバ関数を使用するものがあります。
58
58
 
59
59
 
60
60
 

1

引用したソースコードのコメントを日本語訳

2017/04/05 09:40

投稿

faithandbrave
faithandbrave

スコア132

test CHANGED
@@ -88,6 +88,8 @@
88
88
 
89
89
  // a bit too strict: Windows XP with SP3 would be sufficient
90
90
 
91
+ // Windows XP SP3より古いと実装は難しい
92
+
91
93
  #if BOOST_PLAT_WINDOWS_RUNTIME \
92
94
 
93
95
  || ( BOOST_USE_WINAPI_VERSION <= BOOST_WINAPI_VERSION_WINXP ) \