![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 系統組件
(https://www.pcdvd.com.tw/forumdisplay.php?f=19)
- - 請問線程是什麼?
(https://www.pcdvd.com.tw/showthread.php?t=1152451)
|
---|
處理器的執行續概念和作業系統執行緒很類似
但處理器的執行緒主要是為了增加指令執行效率 但軟體的執行緒大部分不是為了增加效率, 反而是多工 在軟體層次, 執行緒增加效率的, 最常見的是影片轉檔和遊戲 為了多工, 例如天天用的瀏覽器, 例如Chrome, 隨便就是開50個Thread以上 專業在用的, 例如網頁伺服器會利用 Thread Pool 預先開好很多Thread以處理網頁請求 執行緒到底是? 就想成有好幾個人可以同時做事情即可! 就類似天津飯的四身拳, 開再多分身, 單一分身的力量還是無法超越本身 |
好久沒讀計組計結還有OS
我也記得NEAL大16樓的才是正解 Hyper-Threading 是硬體的架構 thread針對process做分配 OS在執行process的過程中要等待的時候可以藉由切換thread 來達到看似多工的目的 所以就一般單核心來講 同時間只能執行一定數量的thread 就我了解Hyper-Threading是在硬體上做改進 execution resource同樣還是只有一份 但在其餘的架構上複製一份 上面是查到intel自己的Hyper-Threading paper上開頭這樣定義(http://www.cs.virginia.edu/~mc2zk/c...6iss1_art01.pdf 後面我懶得看, 錯了再說) 當一個thread只用到某些execution resource時 還有其他的execution resource沒被用到 這時候因為有另一份架構存在 所以可以在同一時間內 可能可以額外執行更多thread 來讓閒置的execution resource更能充分的被使用 所以可以知道在大量同性質運算時 Hyper-Threading不見得有用 當然硬體出來後OS才要做thread 分配上的改變 才能適應這套硬體 所以這兩個東西是相輔相成的 我覺得除了名字上雷同外 根本是不同的東西 以上以我破爛的計組計結還有OS知識拼湊出來的 錯了多多包涵 |
.........................
到目前為止,瞭解的程度都還僅止於 1. 以程式設計觀點看thread 運作 2. 以OS的觀點看thread 運作 就是還沒有人可以指出 , 到底純軟體的thread 與CPU的1C2T 的T 到底有何關連 !! 為什麼M$/Linux 等OS要去把這個T去模擬出一個Logical CPU 出來呢?? 到底為什麼呢 ?????? |
引用:
我休假中,有空再畫個圖上來解釋。 |
正解就是 NEAL 之前回答,
程式為循序執行(thread) 對應到 CPU 端是以 register set 來實作(Data register, Program Counter ....). HyperThreading 是在一個實體 CPU 有兩套以上 register set 來對應不同的循序執行. 目前 CPU 設計分為幾個 stage, 在 decode, dispatch 後 依照不同指令性質 會被分配到不同的執行單元(integer, floating, memory access), 譬如說 一個整數指令在進行時 浮點運算 或記憶體純取的單元可能是空閒的, SMT的目的 就是盡量讓所有的執行單元能同時運作. 至於軟體端的Thread 實作, 基本上也是一個軟體 Thread 保持一組 register set, 在 context switch 的時候 會置換 CPU register set 內容 |
引用:
我一直覺得不對勁..... 如果這說法成立,那也無法解釋 Intel所說的1C2T的2T 為何是2T !! 照這說法如果成立的話,那應該是 1C NT 才對 (N = 為任意整數 , 1 2 3 4 5 6 7 ..... ) 事實上呢? N到目前為止就只有2 , 沒別的數字!! :confused: |
引用:
Xeon phi有一核4執行緒的 |
引用:
IBM POWER8 最多1C8T. |
1C4T or 1C8T 隨便啦...
然後呢?? 來一個1C 10000T 如何 ?? 沒說明1C8T的T 與 OS裡的thread 的T 到底是什麼關係 !! 是相同的東西嗎?? 那為何Intel說明T的時候,總是組合語言的方式來說明 T 而不是用OS的角度的thread 來當做範例 ?? 如果樓上各位說的T是Programming or OS的thread , 那照理說 thread數量根本不受限制 愛有多少個thread 就能夠有多少個thread , 可是到目前為止 ,沒有一家半導體廠商敢宣稱 他們家的T愛有多少個就有多少個 !! 8T就算多了嗎?? 愛找語病我沒意見 , 至少也說個東西出來討論嘛!! :think: 到目前為止,沒有答案!! 我也傾向 Intel 所說的Thread , 並不是各位所說的thread !! 兩者的相異之處差太大了!! |
引用:
你先去了解一下單核心的CPU怎麼處理多thread的程式再說吧, 然後多核心CPU怎麼處理多thread的程式,別管1C到底幾T |
所有的時間均為GMT +8。 現在的時間是07:04 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。