討論很精彩說....
NEAL大是從programming切入看thread , 我則是從整體OS面來看待thread ....
說老實話,我沒念過thread 相關的programming , 觀念方面更一點都沒有去念過書
thread 這方面的說明,市面上還是比較多從programming 切入 ....
這種事沒有對錯,都是可以切入的角度點!!
至於Intel所謂的thread ,對我來說還不是很清楚 , 說是Pipeline 也不很正確,但我實在拿不出更為接近的說法...
Superscalar 的出現,是為了能夠更充份利用CPU的運算資源,避免因為較複雜的運算或者I/O Waiting
導致整個pipeline被stall (卡住) , 只為了等待運算的結果 !! 所以,當有這種狀況產生時
就可以運用另外一路的pipeline,讓後面的instruction code可以持續的進入運算 !!
它的出現,也才有了 亂序執行的技術 ,等等一系列的CPU執行的改良技術出現!!
我在猜想,或許Hyper-Threading 大概就是整合數種技術的統稱吧?? 我想....
主要的目的想當然爾就是讓CPU運作更順暢 !!
回到樓主的疑惑點
1 clock 是否能夠執行一個instruction code ? 嗯..... 答案是很令人失望的!!
基本上這點在CISC的架構下,做不到!! 雖然我也認為RISC架構下也不一定能做到這一點
正確一點的來說,大部份的instruction code都無法在1 clock內完成執行 , 但偏偏就有一個instruction可以 , 它就是nop !! 有意義嗎?? 它符合樓主的命題 , 但卻不符合一般運用的期待 !!
你說nop 沒意義?但它又是compiler的必備使用的instruction !! 知道我在說什麼的應該都會會心一笑吧!!
