• 4

CPU 線程是什麼?


billion wrote:
那照你這樣說,就不能用英文回了是嗎?
不然又被冠上被美國同化⋯⋯⋯⋯。

在專有名詞上使用原文是對於原作者的尊重,也是避免誤解的一種手段。
rgly wrote:
在專有名詞上使用原文...(恕刪)

英文回文不叫原文好嗎?英文回文在版上常看到,就是有些人剛好在國外沒有注音輸入所以用英文回文,it is關作者尊重什麼關係?
什麼是原文:原始本文,你該不會以為原文只有英文是吧!
執行緒也是翻譯的名詞好嗎?去查一下thread是什麼,就是線程,用線程才是尊重作者好嗎!
二進制來自中國你知道嗎?
太極生兩儀、兩儀生四象、四象生八掛⋯。
什麼是原文,越扯越遠了。
billion wrote:
那照你這樣說,就不能用英文回了是嗎?
不然又被冠上被美國同化⋯⋯⋯⋯。
語言是溝通工具,為何硬要冠上政治因素,大陸人就不是人嗎?


同意+1
只是個名詞的解釋 還硬要分大陸、台灣,若照這種邏輯,那不就不能吃漢堡,不用看電視,
不要用電腦,不要住洋樓,不要開洋車,連網路也不要上,因為這些應該都不是"台灣人"發
明的,鎖國已經讓我們倒退十年了,別連心都跟著鎖起來了,假以時日,說不定人家還會覺
得台灣人都是活在拿著石頭追大象的時代咧。
XD 多學一個用法 又不會吃罰單
何必在那管是台灣中國中文英文呢

每個地方用法不同

我說頭毛你說頭髮 都是一樣的東西

-------------------------------------------------------------------

話說 多線程對軟體真的有幫助嗎?

很少看到有程式 會讓 i7 8個全跑的
但這樣就是讓人聽起來格外不爽...
台灣跟中國的關係就是這樣尷尬

繁體(繁體字) 跟英文的關係
跟 繁體和簡體字 的關係
很多人就是搞不懂
billion wrote:
那照你這樣說,就不能用英文回了是嗎?
不然又被冠上被美國同化⋯⋯⋯⋯。
語言是溝通工具,為何硬要冠上政治因素,大陸人就不是人嗎?


刪除
發現好多人根本沒搞清楚基本的觀念 卻跟著別人在那裡喊專業名詞

線程就是執行緒 只是翻譯名稱不同

是分時作業系統處理工作時用的單位 作業系統能同時處理多個工作因此有多線程

單核心系統不代表只能執行1條線程(1個工作)

因為線代的作業系統是分時多工作業系統能同時處理許多執行緒

就算你用的是P4 也能同時處理幾萬條執行緒

因為作業系統會進行執行緒切換感覺上他們像是在同時處理

例如你用單核心CPU 可以一邊上網開瀏覽器 一邊聽音樂 一邊玩遊戲 一邊看DVD 一邊運行其他背景程式和驅動

但是效能好不好是另一回是 沒人規定單核心不能跑多線程

早期的作業系統是單工的例如MS-DOS作業系統

軟體能被CPU執行的最小單位不是線程 是指令

指令才是CPU能夠執行的最小單位

而指令執行的頻率就是時脈

而指令在一個時脈週期時間裡能夠跑多少才是跟架構有關

CPU架構影響指令在每週期時間能執行的次數 超純量處理器 指令管線化 分支預測 快取機制 都會有影響


如果把CPU比喻為工廠

1.一家工廠能同時生產出不同的產品叫做多執行緒 一邊生產罐頭 一邊生產飲料 一邊生產泡麵

2.產品在生產線輸送帶被分成好幾個處理稱為指令流水線 (或稱指令管線化)

例如 一個罐頭加工的過程分成了4步驟 取材 烹飪 加工 包裝

CPU可能被分成讀取 譯碼 執行 回存到暫存器 等步驟 那這個執行管線被稱為4級流水線

3.一家工廠同時有好幾條生產線輸送帶生產叫做 超純量處理器.........

4.產品在工廠生產線輸送帶前進一次的時間和速度叫時脈頻率

5. 一家工廠假設在台北 記憶體內存假設是它的大倉庫在台中市

當工廠處理速度太快

每次工廠用光原料都要等待料從台中送過來執行效能被卡在運送延遲時間而不是生產時間

那快取記憶體就相當於在工廠隔壁100公尺建一個小倉庫放原料 每次只要等待從小倉庫取原料的延遲就好了

6.指令就相當於產品(假設是罐頭)

7.多核心系統就相當於一家公司有2家以上工廠因為一家工廠生產效率發展到極限(規模報酬遞減)

有2個以上廠房處理速度更快

8.工廠理在一條流水線處理步驟上都有有一些機器產生空檔 因此處理流程用一個投機的方法

不按造順序處理 原本是要先檢查產品編號第123456按造順序送入在出來

現在不按造順序直接塞入生產線內執行 生產完放入一個小空間內暫時堆放

最後在檢查順序 讓排序小的號碼先出來..... 這叫作亂序時執行

因為減少了機器等待送入產品的空檔

----------------------------------

現在我們來看看什麼會影響工廠生產產品的效能

生產線輸送帶跑的速度越快 生產速度越快(時脈頻率)

生產線上的處理步驟如果分的越細 生產流水線(管線)越長一條 理論上可達到較高的效率

但是只要一個環節出錯流水線卡住 後面生產線必須整個停擺清除重做

因此越長的管線能夠容許的分支預測錯誤越低(指令管線化)


有越多條生產線處理的速度越快(超純量處理)

小倉庫越大 越不需要跑到台中去拿料的機率越高(快取命中率)

但是小倉庫規模越大 找東西需要花越久的時間(快取延遲率)

有越多家工廠在生產速度越快(多核心)


例如英特爾的haswell架構CORE I7四核心

有時脈頻率3.5Ghz (每秒35億次工作頻率)

有15級管線或稱流水線 (一條管線被分程15個處理步驟)

共有6條流水線 同時在處理 (6條生產線)

有4個核心 (四家工廠)

有3級倉庫 大倉庫(遠) 小倉庫(中) 迷你倉庫(近)

那一秒鐘理論上能處理3.5*10^9 *15*6*4 =1260億條指令

這就是為什麼AMD預測時脈比較快卻跑出不同的效能原因(因為微架構不同)

CPU微架構會被這些東西所影響 管線深度或稱流水線級數 管線的數量 分支預測命中率

快取機制 快取命中率 快取延遲時間 除時脈以外還有諸多原因影響CPU效能


我們也不是常常用日文漢字來當中文,只要看得懂就不就好了,為什麼對中國用語這麼有意見呢?難道用日文有比較高尚嗎?

鍋物=火鍋
無料=免費
茶碗蒸=蒸蛋
還有很多,舉例不完。
@abc003

原文
---
發現好多人根本沒搞清楚基本的觀念 卻跟著別人在那裡喊專業名詞

線程就是執行緒 只是翻譯名稱不同

是分時作業系統處理工作時用的單位 作業系統能同時處理多個工作因此有多線程

單核心系統不代表只能執行1條線程(1個工作)

因為線代的作業系統是分時多工作業系統能同時處理許多執行緒

就算你用的是P4 也能同時處理幾萬條執行緒

因為作業系統會進行執行緒切換感覺上他們像是在同時處理

例如你用單核心CPU 可以一邊上網開瀏覽器 一邊聽音樂 一邊玩遊戲 一邊看DVD 一邊運行其他背景程式和驅動

但是效能好不好是另一回是 沒人規定單核心不能跑多線程

早期的作業系統是單公的例如MS-DOS作業系統
---
回覆:

專業的前輩你好,請容許非專業的小弟講幾句

單核心單線程 CPU 這東西在理論上就叫做單線程... 作業系統理論上就是同時只能執行一條線程。

你說的分時處理,那只是快速切換線程處理達成的,理論上還是 "單線程" 作業......

只是那個快速切換的時間很短很短而已,

換個說法吧

如果你是一個一次只能裝一碗麵的人。

你裝一碗麵只要 0.1 秒(或者小到趨近於零的時間),可是你同時只能裝一碗麵,就算你 1 秒可以裝 10 碗麵,你"同時"還是只能"裝一碗麵。

不會因為你 1 秒能裝 10 碗 甚至 100000 碗,你就變成一次可以裝兩碗麵的人,你本質上還是一次只能裝"一"碗麵(單核心單線程)。

(P.s. 單純剛剛在廚房煮麵來吃,所以就拿裝麵當例子了...,好餓)
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?