Re: [情報] Intel 新平台 LGA1156 相關 NDA 資料揭露

看板PC_Shopping作者時間15年前 (2009/05/06 15:36), 編輯推噓21(21010)
留言31則, 20人參與, 最新討論串1/1
※ 引述《fsaa3dfx (屌哦屌哦\゜@゜/)》之銘言: : → kuninaka:軟體裡的Thread跟CPU Thread應該不一樣吧 05/06 01:17 內容不一樣,軟體下的multi-thread是發展已久的概念. cpu的multi-thread可以說是對應這種(多執行緒的多工OS)環境下. 提出的增加效能的硬體機制. 也可以說cpu的multi-thread是在ILP(Instruction-level parallelism,指令 平行度)無法持續發展的情況下,利用cpu閒置執行單元的方法... 只這樣講好像在繞口令一樣.從基本開始好了..... 現代的作業系統(OS)都有process跟thread的概念. 不過,原先process跟thread的分界不明顯.都被認為是 程式的執行實體.一個程式可以同時被執行很多份,就會有不同的執行實體. 在後來由於作業系統也加入了資源的分配,控管,保護(比如不能讓 其他人的程式去窺探你的程式證在幹嘛)等等.所以就後來的觀念來說, process比較接近實際分配系統資源的單位,而thread就接近於分配cpu執行的 實體,且實作thread的資源消耗會小於process. 以Windows下來說.每個process(處理程序)都負責向系統要求配置資源, 也擁有至少一個thread.實際執行則是將它之中的thread放到cpu上執行. Resource Process --------> 檔案,記憶體,GDI,印表機等等.... ---> Thread 1 &(2,3,4.....) 從作業系統端來看,則是系統內存在著N個process,以及M個thread (M>=N),然後分配cpu輪流執行M個thread.以達成服務多人或者是 單人使用下的多工作業系統的目的... 另外由於過去的高速電腦已經使用多cpu,所以需要效率的程式也會 自行實作多個thread.這些thread就可以分配在不同的cpu上執行. 這個是20世紀以前的事情,當時不管cpu性能有多高,系統內有多少cpu, 每個cpu正在執行的thread數量都是1個. 可是後來發生了一些改變..........(後續) : → kuninaka:我覺得INTEL的HT是一種概念 實際上跟OS Thread應該不一樣 05/06 01:20 Intel的HT是買下DEC的副產品.最早是DEC在Alpha上提出的, 當時稱作SMT(Simultaneous multithreading) 從SMT到HT基本上沒有甚麼差別,因為當時的P4很有需要,而且 實作的成本也不高就擺上去了. SMT是甚麼概念?在一個cpu裡面,我可以放入很多執行單元. 可是即使加入了Out-of-Order執行,register-renaming等去解 決各種問題,能利用的比例也不會無限提升 (也就是前面說的ILP提升不起來的問題). 塞8個ALU很簡單,可是讓程式在同一個cycle裡面能利用的ALU 超過2個就開始有難度啦.說不定塞8個ALU裡面,程式使用的比例 從2~6個不等而已. 這時候在cpu內..... PC(Program Counter) +---->Register files ALU/LS (執行單元) 1.還不錯 2.有點忙 3.好涼 4.沒事 5.很久沒叫我了 SMT等cpu實作的multi-thread,就是硬體多一份PC/Register File. 然後...... Thread 1 Thread 2 PC(Program Counter) PC(Program Counter) +---->Register files +---->Register files ALU/LS (執行單元) 1.忙左邊 2.忙左邊 3.忙左邊 4.忙右邊 5.忙右邊 這樣相比上面,執行單元的利用率就變高了....... 如此實作的好處有: 硬體要變更的很少,如上,主要是多放置一組暫存器 軟體要變更的也很少.由於作業系統在分配多工執行的時候, 需要執行的context switch這個動作也是將硬體的PC/Register File 保存在記憶體內以及移出,這時候cpu多一組pc/reg,跟系統多裝一顆cpu 要做的工作是差不多的. 也有人因此稱multi-thread為模擬多cpu,不過這是誤解. 不過,雖然SMT的硬體實作成本很低,不過如上的特性, 也就導致說它能帶來的效能因為應用程式不同而會有巨大的差別. 有些程式若本來就能在單一執行緒下充分使用cpu的執行單元, 則開啟SMT後效能改進就不明顯. 還有一個可能會出現的反面效果就是.兩個thread是獨立的, 所以兩方對記憶體存取的動作也互不相干.但是cpu上的cache 只有一份.所以兩者會互搶.......這是部分程式開啟SMT後效能 下降的可能原因之一. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.243.218

05/06 15:37, , 1F
看不懂還是要推個用心專業!!
05/06 15:37, 1F

05/06 15:37, , 2F
用有提到的關鍵字去搜尋相關的教學投影片
05/06 15:37, 2F

05/06 15:40, , 3F
快推要不然別人會說我看不懂~
05/06 15:40, 3F

05/06 15:44, , 4F
感謝!!!
05/06 15:44, 4F

05/06 15:45, , 5F
這個就看懂了!!
05/06 15:45, 5F

05/06 15:47, , 6F
我這篇文章花了5分鐘去看它....針專業
05/06 15:47, 6F

05/06 15:48, , 7F
大致看懂 專業推~
05/06 15:48, 7F

05/06 15:49, , 8F
P4的閒置資源很多 管線拉到31層 XD
05/06 15:49, 8F

05/06 15:49, , 9F
聽說VIA也有HT類似的相關技術
05/06 15:49, 9F

05/06 15:55, , 10F
找誰沒有用過比較快 ....
05/06 15:55, 10F

05/06 16:13, , 11F
有看沒有懂 囧 我是實際應用派 XDDDD
05/06 16:13, 11F

05/06 16:25, , 12F
我只能說好險我學的東西還沒還給老師X|D
05/06 16:25, 12F

05/06 17:13, , 13F
推 從p4後 pipeline就沒這麼多了
05/06 17:13, 13F

05/06 17:58, , 14F
有看有推 消化中
05/06 17:58, 14F

05/06 18:18, , 15F
好專業
05/06 18:18, 15F

05/06 18:30, , 16F
推~
05/06 18:30, 16F

05/06 18:48, , 17F
P4是典型的高頻低能代表作,但是他裡面用到的東西卻
05/06 18:48, 17F

05/06 18:49, , 18F
是很多教科書或paper提出來的好物
05/06 18:49, 18F

05/06 18:57, , 19F
其實第二段就全講完了. 高手文推
05/06 18:57, 19F

05/06 19:16, , 20F
有寫過多核心的 MPI 跟OpenMP 會比較有感覺 
05/06 19:16, 20F

05/06 19:19, , 21F
雖然AMD沒做,不過我認為multi-thread對K8仍然有幫助
05/06 19:19, 21F

05/06 19:35, , 22F
wave pipeline之類的XD
05/06 19:35, 22F

05/06 21:18, , 23F
窺探你的程式"證"在幹嘛 這是錯字嗎XD
05/06 21:18, 23F

05/06 21:19, , 24F
忘了感謝好文 (〒﹏〒)
05/06 21:19, 24F

05/06 21:40, , 25F
那持續讓CPU負擔100%的程式, 多跑HT有沒有用呢?
05/06 21:40, 25F

05/06 21:51, , 26F
如果程式單跑一個 core 就 100%, HT 通常是沒用的..
05/06 21:51, 26F

05/06 21:52, , 27F
除了 atom 仍舊可以正常運作以外.
05/06 21:52, 27F

05/07 01:45, , 28F
100%就沒用的觀念是錯的....
05/07 01:45, 28F

05/07 08:15, , 29F
專業推,但是仍看不懂="=
05/07 08:15, 29F

05/07 19:00, , 30F
推專業....:)
05/07 19:00, 30F

09/18 08:22, , 31F
謝謝jk21234,很棒的資料與解說!
09/18 08:22, 31F
文章代碼(AID): #1A0JuNm2 (PC_Shopping)