瀏覽單個文章
文仔
New Member
 

加入日期: Jan 2006
您的住址: 台北
文章: 9
通篇看完, 整理一下我這通俗的理解.

先說主題結論, Intel的1C2T, 此Thread跟程式的Thread, 是不一樣的東西.

從OS的角度來看.

譬如說我同時執行著"Google瀏覽器"、"影片播放器", 這兩個稱為"處理程序(process)".

瀏覽器正在同時"下載檔案"跟"玩Flash遊戲"

影片播放器正在播放迷片.

我可以簡單理解為一共4個Thread, 分別為"下載檔案"、"Flash動畫"、"解碼迷片的影像"、"解碼迷片的聲音"
當然應該是不止這4個, 光下載檔案就可以再細分到"網路傳輸"、"硬碟存取"等等...

而由OS不斷將CPU資源快速的切換於這4個Thread中, 好讓我們覺得是"同時"進行.

在CPU資源輪到某的Thread的期間, 應該是拆成很多很多條"指令"(組語)請CPU逐一運算.

OS的工作至此.

CPU的部分, 硬體上擁有多個不同功能的"暫存器"、多個不同功能的"運算單元".

而執行流程, 譬如運算8+7=15.

暫存器A寫入8

暫存器B寫入+

暫存器C寫入7

根據暫存器B的值, 來選用"加法運算單元".

並結果值15寫入暫存器D.

而據N大的描述, Intel實作Hyper-Threading的方式. 即是備有兩套暫存器.

以致同時, 我另有暫存器EFGH, 可以使用"乘法運算單元".

一次做了兩個運算, 所以寫作兩個Thread. 這樣稱為1C2T.

以上是我的理解, 應該對吧?
舊 2018-12-10, 06:53 PM #70
回應時引用此文章
文仔離線中