瀏覽單個文章
沒問題
Major Member
 

加入日期: Dec 2015
文章: 209
1C就是一間工廠。
2T就是有樓中樓的工廠共兩層。

1C可以放4條生產線叫superscalar
2T理論上可以放8條生產線。

那為什麼還要1C2T?那是因為2C的稅金比1C2T貴。[畢竟兩間工廠貴,儘管樓中樓不合法]

回到1C2T,實際上,不可能2T都全線開工,所以,要交替的開工。這個叫content-switch。

如果說賺夠了錢,再來建一座新的樓中樓工廠,就可以2C4T。
如果事業做的夠大,就變成一個大工業園區,就有可能8C16T。

有人會說為什麼不來個1C1000T,不是辦不到,不過也沒這麼多樓中樓。
在SPARC上就實現了8C32T。1C就有4T。

古早的C語言中,會把某些壓縮演算法,分別拆分成可多核運算。
這時候就可以使用多C的好處。
這種拆分是以行程為單位,而不是執行緒。「回想一下當年只有DOS,當年也沒有多T,甚至多C還是由多個單顆單核的CPU組合成多路」

由此往下發展,出現了大型主機及終端系統。
一個行程雖然可以透過演算法拆分給多個單顆單核CPU組成的多路執行,但是這「一個」行程卻要同時提供給「多個」client使用,於是產生出一種在行程內的子行程,也就是現在稱為Thread的東西。

在往下發展,到了PC時代及windows 3.1。
大型系統也發展出了thread這樣的技術,而多個單顆單核CPU組成的多路也進步到了多核。
PC系統在windows 3.1下,也將大型系統的thread移進了作業系統中,就是後來的windows 95。

最早先的windows 95把這樣的thread技術稱為協同式多工。是直接bundle在作業系統中。
但同時期的大型系統早已經把多工行程及執行緒分開設計。
大多數的大型系統的作業系統是允許多個行程[也就是先佔式多工],且每一個行程還可以有多個執行緒。[UNIX,IBM OS/2,BeOS都屬於這類]

以上的問題直到windows 2000及windows xp,才被微軟克服。

如有錯誤,請指正。
舊 2018-12-10, 07:02 AM #67
回應時引用此文章
沒問題離線中