在 ざい HTT 的 てき 高 だか 级描述 じゅつ 中 ちゅう ,指令 しれい 从 RAM 中 ちゅう 获取(不同 ふどう 颜色的 てき 框 かまち 代表 だいひょう 四个不同进程的指令),由 ゆかり 前 ぜん 端 はし 解 かい 码和重 おも 新 しん 排 はい 序 じょ (白色 はくしょく 框 かまち 代表 だいひょう 流水 りゅうすい 线),然 しか 后 きさき 传递给能够执行 ぎょう 在 ざい 同 どう 一时钟周期内执行来自两个不同程序的指令。
超 ちょう 執行 しっこう 緒 いとぐち (英語 えいご :Hyper-Threading ,縮寫 しゅくしゃ HT )[1] 是 これ 英 えい 特 とく 爾 なんじ 專有 せんゆう 的 てき 同時 どうじ 多 た 執行 しっこう 緒 いとぐち 技術 ぎじゅつ ,於2002年 ねん 發布 はっぷ ,用 もちい 來 らい 改 あらため 進 すすむ x86 微 ほろ 處理 しょり 器 き 執行 しっこう 平行 へいこう 計算 けいさん (一 いち 次 じ 執行 しっこう 多 た 個 こ 任務 にんむ )的 てき 能力 のうりょく 。超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ 原 ばら 先 さき 只 ただ 應用 おうよう 於英特 とく 尔 Xeon 處理 しょり 器 き 中 なか ,當時 とうじ 稱 しょう 為 ため “Super-Threading”。之 これ 後 ご 陸續 りくぞく 應用 おうよう 在 ざい Pentium 4 HT 中 なか ,早期 そうき 代 だい 號 ごう 為 ため Jackson。
通過 つうか 此技術 ぎじゅつ ,英 えい 特 とく 爾 なんじ 實現 じつげん 在 ざい 一 いち 個 こ 實體 じったい CPU 中 なか ,提供 ていきょう 兩個 りゃんこ 逻辑 線 せん 程 ほど 。之 これ 後 ご 的 てき Pentium D 虽不支援 しえん 超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ ,但 ただし 集成 しゅうせい 了 りょう 兩個 りゃんこ 實體 じったい 核心 かくしん ,所 しょ 以仍會見 かいけん 到 いた 兩個 りゃんこ 線 せん 程 ほど 。超 ちょう 執行 しっこう 緒 いとぐち 的 てき 未來 みらい 發展 はってん ,是 ぜ 提 ひさげ 升 ます 處理 しょり 器 き 的 てき 逻辑線 せん 程 ほど 。英 えい 特 とく 爾 なんじ 于2016年 ねん 发布的 てき Core i7-6950X便 びん 是 ぜ 將 しょう 10核心 かくしん 的 てき 處理 しょり 器 き ,加 か 上 じょう 超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ ,使 つかい 之 の 成 なり 為 ため 20個 こ 逻辑線 せん 程 ほど 的 てき 產品 さんぴん 。
英 えい 特 とく 爾 なんじ 表示 ひょうじ ,超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ 讓 ゆずる Pentium 4 HT處理 しょり 器 き 增加 ぞうか 5%的 てき 裸 はだか 晶 あきら 面積 めんせき ,就可以換來 らい 15%~30%的 てき 效能 こうのう 提 ひさげ 升 ます 。但 ただし 實際 じっさい 上 じょう ,在 ざい 某 ぼう 些程式 しき 或 ある 未 み 對 たい 多 た 執行 しっこう 緒 いとぐち 編 へん 譯 やく 的 てき 程 ほど 式 しき 而言,超 ちょう 執行 しっこう 緒 いとぐち 反 はん 而會降 くだ 低 ひく 效能 こうのう 。除 じょ 此之外 がい ,超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ 亦 また 要 よう 作業 さぎょう 系統 けいとう 的 てき 配合 はいごう ,普通 ふつう 支援 しえん 多 た 處理 しょり 器 き 技術 ぎじゅつ 的 てき 系統 けいとう 亦 また 未 み 必能充分 じゅうぶん 發 はつ 揮該技術 ぎじゅつ 。例 れい 如Windows 2000 ,英 えい 特 とく 爾 なんじ 並 なみ 不 ふ 鼓 こ 勵使用 しよう 者 しゃ 在 ざい 此系統 けいとう 中 ちゅう 利用 りよう 超 ちょう 執行 しっこう 緒 いとぐち 。原 はら 先 さき 不 ふ 支援 しえん 多核 たかく 心 しん 的 てき Windows XP Home Edition 卻支援 しえん 超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ 。
每 まい 個 こ 單位 たんい 時間 じかん 內,一 いち 個 こ 單 たん 執行 しっこう 管 かん 線 せん 的 てき CPU 只 ただ 能 のう 處理 しょり 一 いち 個 こ 執行 しっこう 緒 いとぐち (作業 さぎょう 系統 けいとう :thread),以這樣 さま 的 てき 單位 たんい 進行 しんこう ,如果想 おもえ 要 よう 在 ざい 一單位時間內處理超過一個執行緒是不可能的,除 じょ 非 ひ 是 ぜ 有 ゆう 兩個 りゃんこ CPU的 てき 實體 じったい 單元 たんげん 。雙 そう 核心 かくしん 技術 ぎじゅつ 是 ぜ 將 はた 兩個 りゃんこ 一 いち 樣 よう 的 てき CPU放置 ほうち 於一個封裝內(或 ある 直接 ちょくせつ 將 はた 兩個 りゃんこ CPU做成一 いち 個 こ 晶 あきら 片 へん ),而英特 とく 爾 なんじ 的 てき HT技術 ぎじゅつ 是 ぜ 在 ざい CPU內部僅複製 せい 必要 ひつよう 的 てき 資源 しげん 、讓 ゆずる 兩個 りゃんこ 執行 しっこう 緒 いとぐち 可 か 同時 どうじ 執行 しっこう ;在 ざい 一單位時間內處理兩個執行緒的工作,模擬 もぎ 實體 じったい 雙 そう 核心 かくしん 、雙 そう 執行 しっこう 緒 いとぐち 運 うん 作 さく 。
Intel自 じ Pentium 開始 かいし 引入超 ちょう 純量 じゅんりょう 、亂 らん 序 じょ 執行 しっこう 、大量 たいりょう 的 てき 暫存器 き 及寄 よせ 存 そん 器 き 重 じゅう 命名 めいめい 、多 た 指令 しれい 解 かい 碼器 、預 あずか 測 はか 執行 しっこう 等 とう 特性 とくせい ;這些特性 とくせい 的 てき 原理 げんり 是 ぜ 讓 ゆずる CPU擁 よう 有 ゆう 大量 たいりょう 資源 しげん ,並 なみ 可 か 以預先 さき 執行 しっこう 及平行 へいこう 執行 しっこう 指令 しれい ,以增加 ぞうか 指令 しれい 執行 しっこう 效率 こうりつ ,可 か 是 ぜ 在 ざい 現實 げんじつ 中 ちゅう 這些資源 しげん 經常 けいじょう 閒 あいだ 置 おけ ;為 ため 了 りょう 有效 ゆうこう 利用 りよう 這些資源 しげん ,就乾脆 もろ 再 さい 增加 ぞうか 一些資源來執行第二個執行緒,讓 ゆずる 這些閒 あいだ 置 おけ 資源 しげん 可 か 執行 しっこう 另一 いち 個 こ 執行 しっこう 緒 いとぐち ,而且CPU只 ただ 要 よう 增加 ぞうか 少數 しょうすう 資源 しげん 就可以模擬 もぎ 成 なり 兩個 りゃんこ 執行 しっこう 緒 いとぐち 運 うん 作 さく 。
P4處理 しょり 器 き 需多加 か 一 いち 个Logical CPU Pointer(邏輯處理 しょり 單元 たんげん )。因 よし 此P4 HT的 てき die的 てき 面積 めんせき 比 ひ 以往 いおう 的 てき P4增大 ぞうだい 了 りょう 5%。而其餘 あまり 部分 ぶぶん 如ALU(整數 せいすう 運算 うんざん 單元 たんげん )、FPU(浮點運算 うんざん 單元 たんげん )、L2 Cache(二 に 級 きゅう 快 かい 取 と )並 なみ 未 み 增加 ぞうか ,且是共 ども 享 とおる 的 てき 。
編 へん 號 ごう SL6WK支援 しえん HT的 てき P4 3.0G
虛 きょ 擬 なずらえ 的 てき 2個 こ CPU在 ざい 工作 こうさく 管理 かんり 員 いん 中 ちゅう 顯示 けんじ 出 で 都 と 在 ざい 運轉 うんてん
Pentium 4 CPU中 ちゅう ,Northwood及其之 の 後 こう 推出的 てき 版本 はんぽん 內建超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ ;而雙核心 かくしん 的 てき Pentium D中 ちゅう 也只有 ゆう EE版 ばん 提供 ていきょう HT技術 ぎじゅつ 。英 えい 特 とく 爾 なんじ 的 てき Core 2 處理 しょり 器 き 則 のり 沒 ぼつ 有 ゆう HT技術 ぎじゅつ 。[2]
而在2008年 ねん 推出的 てき Intel Core i7 處理 しょり 器 き 又 また 支援 しえん HT技術 ぎじゅつ ,在 ざい Nehalem微 ほろ 架 か 構 中 なか ,Hyper-Threading大 だい 舉捲土重來 けんどじゅうらい 。Intel的 てき Hyper-Threading(又 また 稱 たたえ 同 どう 步 ふ 多 た 線 せん 程 ほど )是 ぜ 善用 ぜんよう 執行 しっこう 緒 いとぐち 平行 へいこう 性 せい 的 てき 方法 ほうほう ,讓 ゆずる 單 たん 一核心在應用軟體層能執行兩個邏輯線 せん 程 ほど 。超 ちょう 線 せん 程 ほど 技術 ぎじゅつ 在 ざい 部分 ぶぶん 型 がた 號 ごう Intel Core i3/i5/i7/i9處理 しょり 器 き 中 ちゅう 可用 かよう 。從 したがえ Kaby Lake Pentium開始 かいし ,定位 ていい 低 てい 階 かい 的 てき Pentium(部分 ぶぶん 型 がた 號 ごう )也支援 しえん 超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ 。
把 わ 執行 しっこう 管 かん 線 せん 的 てき 狀態 じょうたい ,想像 そうぞう 成 なり 流水 りゅうすい 線 せん ,資源 しげん A→資源 しげん B→資源 しげん C,來 らい 了 りょう 兩 りょう 條 じょう 資料 しりょう 要 よう 計算 けいさん ,一條 いちじょう 需要 じゅよう 消耗 しょうもう A的 てき 100%→B的 てき 50%→C的 てき 50%,另一 いち 條 じょう 一 いち 樣 よう 需要 じゅよう 消耗 しょうもう A的 てき 100%→B的 てき 50%→C的 てき 50%,一條 いちじょう 單純 たんじゅん 的 てき (無 む HT)的 てき 執行 しっこう 管 かん 線 せん 的 てき 資源 しげん A需要 じゅよう 先 さき 運用 うんよう 100%效能 こうのう 把 わ 第 だい 一條運算完才能再運算下一條,但 ただし 後 こう 面 めん 的 てき 資源 しげん B跟C卻都有 ゆう 50%效能 こうのう 的 てき 浪費 ろうひ ;如果把 わ 執行 しっこう 管 かん 線 せん 的 てき 資源 しげん A,變成 へんせい 兩個 りゃんこ ,資源 しげん B跟C依然 いぜん 只 ただ 有 ゆう 一 いち 個 こ ,那 な 這條管 かん 線 せん 就可以變成 へんせい 「兩個 りゃんこ 資源 しげん A同時 どうじ 消耗 しょうもう 100%效能 こうのう 運算 うんざん 兩 りょう 條 じょう 資料 しりょう ,到 いた 了 りょう 資源 しげん B跟C階段 かいだん 時 じ ,兩 りょう 條 じょう 資料 しりょう 再 さい 各自 かくじ 消耗 しょうもう 50%的 てき 效能 こうのう 」,即 そく 達成 たっせい 「不 ふ 必增加 ぞうか 一條完整的執行管線,卻能在 ざい 一樣時間運算兩條執行緒」。
但 ただし 實際 じっさい 應用 おうよう 時 じ ,執行 しっこう 管 かん 線 せん 不 ふ 會 かい 都 と 是 ぜ 收 おさむ 到 いた 這麼完 かん 美的 びてき 需運算 うんざん 資料 しりょう ,可能 かのう 會 かい 是 ぜ 需消耗 しょうもう 「A的 てき 10%→B的 てき 70%→C的 てき 70%」+「A的 てき 30%→B的 てき 50%→C的 てき 70%」+......等 ひとし 多種 たしゅ 不同 ふどう 效能 こうのう 需求的 てき 需運算 うんざん 資料 しりょう ,依 よ 照文 てるぶみ 件 けん 的 てき 統計 とうけい 數字 すうじ ,整體 せいたい 能 のう 夠提升 ます 的 てき 效能 こうのう 約 やく 為 ため 5~15%左右 さゆう ,且萬 まん 一發生資源互搶的情形時,整體 せいたい 效能 こうのう 反 はん 而會下降 かこう 。
要 よう 令 れい 電腦 でんのう 支持 しじ 超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ ,通常 つうじょう 需作業 さぎょう 系統 けいとう 和 わ 硬 かた 體 からだ 的 てき 配合 はいごう 。晶 あきら 片 へん 組 ぐみ 需要 じゅよう 支援 しえん 具有 ぐゆう HT技術 ぎじゅつ 之 の 處理 しょり 器 き 。為 ため 此,當時 とうじ 的 てき Intel推出了 りょう 新 しん 的 てき 晶 あきら 片 へん 組 ぐみ ,i865PE和 わ i875P。要 よう 充分 じゅうぶん 發揮 はっき 超 ちょう 執行 しっこう 緒 いとぐち 的 てき 效能 こうのう ,使用 しよう 者 しゃ 要 よう 使用 しよう Windows 2000之 これ 後 ご 的 てき 作業 さぎょう 系統 けいとう ,而Windows XP家 か 用 よう 版 ばん 亦 また 支援 しえん 超 ちょう 執行 しっこう 緒 いとぐち 技術 ぎじゅつ 。除 じょ 了 りょう 微 ほろ 軟的Windows外 がい ,Linux kernel 2.4.x 亦 また 開始 かいし 支援 しえん 該技術 ぎじゅつ 。軟體方面 ほうめん ,通常 つうじょう 優 ゆう 化 か 多 た 執行 しっこう 緒 いとぐち 的 てき 程 ほど 式 しき 都 と 可 か 以支援到。早期 そうき ,遊戲 ゆうぎ 軟體的 てき 支援 しえん 是 ぜ 比 ひ 較少。但 ただし 隨 ずい 著 ちょ 多核 たかく 心 こころ 技術 ぎじゅつ 的 てき 普及 ふきゅう ,愈 いよいよ 來 き 愈 いよいよ 多 た 遊戲 ゆうぎ 軟體支援 しえん 多 た 執行 しっこう 緒 いとぐち 的 てき 處理 しょり 器 き 。[3]
2005 年 ねん 5 月 がつ ,Colin Percival 演 えんじ 示 しめせ 了 りょう Pentium 4 上 うえ 的 てき 超 ちょう 线程可 か 以使用 しよう 基 もと 于时间的侧信道 どう 攻 おさむ 击来监控与 あずか 其共享 とおる 缓存的 てき 另一个线程的内存访问模式,从而窃取 せっしゅ 密 みつ 码信息 いき 。 这实际上不 ふ 是 ぜ 计时攻 おさむ 击,因 いん 为恶意 い 线程只 ただ 测量自己 じこ 执行的 てき 时间。 对此的 てき 潜在 せんざい 解 かい 决方案 あん 包括 ほうかつ 处理器 き 更改 こうかい 其缓存 そん 逐出策略 さくりゃく 或 ある 操作 そうさ 系 けい 统阻止 そし 在 ざい 同 どう 一物理内核上同时执行具有不同权限的线程。2018 年 ねん ,OpenBSD 操作 そうさ 系 けい 统禁用 よう 了 りょう 超 ちょう 线程,以避免 めん 数 すう 据 すえ 可能 かのう 从应用 よう 程 ほど 序 じょ 泄漏到 いた 其他软件,原因 げんいん 是 ぜ Foreshadow/L1TF 漏 も 洞 ほら 。2019 年 ねん ,一系列漏洞导致安全专家建议在所有设备上禁用超线程。
示 しめせ 例 れい :获取物理 ぶつり 核心 かくしん 数 すう 与 あずか 逻辑核心 かくしん 数 すう [ 编辑 ]
Windows API的 てき GetLogicalProcessorInformation可 か 获取当 とう 前 ぜん 计算机 つくえ 的 てき 物理 ぶつり 核心 かくしん 数 すう 逻辑核心 かくしん 数 すう :
DWORD GetProcessorCoreCount ( DWORD & PhysicalProcessorCoreCount , DWORD & LogicalProcessorCoreCount )
{
typedef BOOL ( WINAPI * LPFN_GLPI )(
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION ,
PDWORD );
LPFN_GLPI glpi = ( LPFN_GLPI ) GetProcAddress ( GetModuleHandle ( TEXT ( "kernel32" )), "GetLogicalProcessorInformation" );
if ( NULL == glpi )
return 0 ;
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION buffer = NULL ;
DWORD returnLength = 0 ;
PhysicalProcessorCoreCount = 0 ;
LogicalProcessorCoreCount = 0 ;
while ( true )
{
DWORD rc = glpi ( buffer , & returnLength );
if ( FALSE == rc )
{
if ( GetLastError () == ERROR_INSUFFICIENT_BUFFER )
{
if ( buffer )
free ( buffer );
buffer = ( PSYSTEM_LOGICAL_PROCESSOR_INFORMATION ) malloc (
returnLength );
if ( NULL == buffer )
return 0 ;
}
else
{
return 0 ;
}
}
else
{
break ;
}
}
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION ptr = buffer ;
DWORD byteOffset = 0 ;
while ( byteOffset + sizeof ( SYSTEM_LOGICAL_PROCESSOR_INFORMATION ) <= returnLength )
{
switch ( ptr -> Relationship )
{
case RelationProcessorCore :
{
++ PhysicalProcessorCoreCount ;
// count the logical processor, which is equal the count of digital 1's of ptr->ProcessorMask
ULONG_PTR ProcessorMask = ptr -> ProcessorMask ;
while ( ProcessorMask != 0 )
{
ProcessorMask &= ProcessorMask - 1 ;
LogicalProcessorCoreCount ++ ;
}
break ;
}
default :
break ;
}
byteOffset += sizeof ( SYSTEM_LOGICAL_PROCESSOR_INFORMATION );
++ ptr ;
}
free ( buffer );
return -1 ;
}
上述 じょうじゅつ 程 ほど 式 しき 碼在32位 い 編 へん 譯 やく 时最多能 たのう 枚 まい 举32个逻辑核心 しん ,在 ざい 64位 い 編 へん 譯 やく 时最多 おお 枚 まい 举64个邏輯核心 しん 。如果超 ちょう 过64,应该使用 しよう processor group.
人物 じんぶつ 处理器 き 平台 ひらだい 技 わざ 术子 こ 公司 こうし 其他产品 官 かん 司 し 诉讼相關 そうかん