close
Blogtrottr
批踢踢實業坊 PC_Shopping 板
 
Re: [閒聊]關於intel hyper threading的解說?
Mar 31st 2015, 23:14, by jonothan

作者jonothan ()

看板PC_Shopping

標題Re: [閒聊]關於intel hyper threading的解說?

時間Tue Mar 31 23:14:55 2015

有錯請指證 流水線作業 http://i.imgur.com/MaWNiqr.png
假設要洗衣服要經過: 淨泡機、攪拌機、脫水機、烘乾機,一台半小時。 假設要洗四桶衣服,經過四台機器需要(0.5+0.5+0.5+0.5)*4=8個小時。 BUT! 第0.5個小時 將第一桶衣服拿去浸泡 第1.0個小時 第一桶衣服 從浸泡機拿出來 丟進去攪拌機後 第二桶衣服 就丟去浸泡了 第1.5個小時 第一桶衣服 從攪拌機拿出來 丟進去脫水機 第二桶衣服 從浸泡機拿出來 丟進去攪拌機 第三桶衣服 丟去浸泡 . . . 最後總時間只需要3.5個小時! 這就是流水線作業 與電腦相關的,就是各級資源可以盡量避免資源空閒。 http://i.imgur.com/wl4FNJg.png
以這張圖為例分別是: 指令抓取、提取暫存器、運算單元、資料存取、存回暫存器。 而上面是很單純的流水線處理。 而現今的CPU呢? http://i.imgur.com/9ClQylc.png
看一下架構示意圖。 可以看到運算單元有非常多個,有整數運算,浮點數運算... 等。 但是一個指令進來,可能只使用了一個整數運算單元,而其他單元都是處於閒置狀態。 那如何有效利用 全部的運算單元呢? 就是將指令全部丟進去處理,最後會卡在運算單元這級 如果可以進行運算就進行,如果不 行就先等待,等資源一空閒就進行運算。 處理完的回傳值,會再全部丟到緩衝單元,按順序全部排好,再輸出,這樣就與一個一個 慢慢執行後的輸出一樣了。 那與INTEL的Hyper-Threading有什麼關係? http://i.imgur.com/V6xEdv2.png
一顆雙核心的處理器,處理兩個程式的時候發現,其中一顆在運作的時候,另一顆剛好空 閒。那我是不是就可以在一顆核心空閒的時候,給他另一個程式進行運算? 所以就有了最右邊的圖。 http://i.imgur.com/Sdc8ORb.png
當然一般來說不會這麼剛好,不過還是可以盡量進行填空,達到增加資源利用效率的效果 ,減少時間。 以這張圖來說,原本需要20個*2的cycle,現在只要25個cycle。 http://i.imgur.com/TIlceLU.png
不過如果原本就全部都填滿了的話,HT就一點作用也沒有了。 根據統計,HT實際使用上約可提供1.3倍的效能,而現在支援多執行緒的程式也越來越多。 從魔獸的4核心,到最近刺客教條等單機大作的8核心。 個人淺見E3、I7的4C8T是可以投資的,因為支援8T的東西只會越來越多。 文章前面的圖面是陳中和教授的上課講義,老師如果不希望使用該圖,我會馬上拿下來。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.84.109 ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1427814899.A.E78.html

mayjan : 1.3倍是什麼情境下 03/31 23:39

jonothan : 長期使用平均 03/31 23:43

mayjan : 假設兩顆CPU 1C2T 18C36T 是不是前者比例高一些呢? 03/31 23:45

mayjan : 我這樣問也不太對 03/31 23:46

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.

You are receiving this email because you subscribed to this feed at blogtrottr.com.

If you no longer wish to receive these emails, you can unsubscribe from this feed, or manage all your subscriptions
arrow
arrow
    全站熱搜

    wv52434 發表在 痞客邦 留言(0) 人氣()