PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 電腦硬體討論群組 > 系統組件
帳戶
密碼
 

  回應
 
主題工具
samsung
Master Member
 

加入日期: Dec 2000
您的住址: Cambridge Law School
文章: 1,780
請看別人寫的文章

很多大大认为100% cpu占用就是cpu所有单元都在忙了,发挥最大效率了,实际上,100% 的cpu占用,只说明进程把这个cpu给霸满了,但CPU到底忙不忙,那是另外一回事。其实在99.999%的情况下,100%占用的cpu,都是将近一半的时间在等待,剩下一半的工作时间最多也只能用到2/3的运算单元,也就是说,即使是100% 的cpu占用,cpu其实最多也只有发挥了30%-40%的能力

那为什么会这样呢?

第一大CPU不能发挥的原因,就是缓冲区不命中导致的取指,数据的等待

众所周知,CPU的速度远远大于内存等外设,如果没有特别的措施,每执行一条指令,CPU都要等十几倍的时间从内存中取指令和数据,所以我们才设计了比内存快的多得一级,二级,甚至三级缓存来加速,但相对于256M 512M 1G 2G的内存16K的一级缓存和512K 或1M的2级缓存实在是太小了,最好情况是CPU直接在1级缓存中找到数据,这样会没有延迟,但只有16K的一级缓存往往是找不到的,这时就要到2级缓冲中寻找并填入1级缓冲中,这就会有3-5个甚至更多个周期的延迟,如果2级缓冲还找不到,这也是常有的事,CPU就会启动内存总线,开始缓冲区填充,把数据从内存中取回缓冲区。由于DDR,DDR2的潜伏期和相对的低频率,这个过程要十几二十几个周期

CPU运行时就是这样的受制与慢速内存,不断的等待

第二个CPU不能发挥的原因,是IO端口的存取

CPU操作硬盘等外设时,需要通过IO端口,DMA等存取比内存还慢的多得系统总线,虽然有中断和IO芯片的帮助,但这是比内存存取还糟10倍的情况,更糟的是在共享的总线上还常遇到冲突和总线等待的情况,对此大家用电脑时应该都有切身体会

第三个CPU不能发挥的原因,是不能充分并行和充分使用CPU执行单元

P4有5个整数单元,其中四个是双倍的,
所以P4有9个整数单元,2个浮点单元

Athlon 有6个整数单元,3个浮点单元

(其实看这个大家就应该知道,为什么I在媒体和商业程序超过A,A在spuer pi和一些game中超过I,CPU设计不同,没什么好吵的)

但A, I的CPU每时钟周期同时执行指令数的最大理论数是3,4条,远远小于执行单元数,这是因为一些复杂指令和sse, 3D now指令需要不止一个执行单元,但实际上CPU执行时95%的指令都是简单指令,于是我们就看到,绝大部分情况下,即使CPU以最大并行度运算,也只有 4,5个执行单元在执行,其他的都在闲置

况且,更重要的是,CPU并不能以他的最大理论数同时执行指令。

我们的X86指令集和X86程序本质上都是单线设计的,一周期一操作,执行完上一条在执行下一条,其实本不能在一个周期里执行超过一条的指令,所以在现代CPU设计里,使用了很多技巧--乱序执行(在前后指令没有依存关系时同时执行他们),分值预测(在还没做条件判断是超前执行后面的指令)--等等来实现并行效果,但这些技术都是有局限的,所以虽然A, I的CPU每时钟周期同时执行指令数的最大理论数是3,4条,但实际上平均同时只有2条左右,cpu的执行单元大部分都是空闲的。

(这个情况直接根源于x86指令架构的落后,无论是IBM PPC的SIMD结构 还是Intel IA64的甚长指令架构都是真正的并行架构,实际上,除了X86,你在现在其他CPU里是找不到如此落后和古老的指令架构了,这是X86的辉煌还是悲哀呢)
除了以上三大原因,其他很多原因,包括操作系统进程切换,流水线清空,寄存器换名和重置等等很多原因都会造成CPU的浪费,他们虽比不上上面的三大原因,但加起来也是很大的数目

看到这里,大家就知道HT的原理了

HT使每周期同时执行指令数的最大理论数提高了一倍,在一个进程因为取指,数据的等待,IO操作...等等等待时,另一个进程可以乘机运行,同时,在一个进程不能充分并行和充分利用所有的执行单元时,另一个进程可以可以利用剩下的单元
     
      
舊 2005-09-04, 01:00 AM #81
回應時引用此文章
samsung離線中  
hagger
Junior Member
 
hagger的大頭照
 

加入日期: Feb 2004
您的住址: 南投
文章: 983
引用:
作者Youfown
沒有人說一定要非黑即白,但是不能顛倒黑白
不要跟AMD的K7/K8比,光是prescott同時脈下輸給northwood,就知道netburst是個什麼"好架構"了,你在這邊替他消毒也改變不了這個事實

平心而論prescott還是有它比northwood"好"的地方吧,就是時脈可以繼續拉高(雖然似乎拉不了多高),但至少能讓I社繼續賺大錢。

大家心平氣和討論嘛,帶著非要講贏對方的情緒反而會離事實越來越遠。
 
舊 2005-09-04, 01:05 AM #82
回應時引用此文章
hagger離線中  
ianme
*停權中*
 
ianme的大頭照
 

加入日期: Oct 2004
您的住址: 台北
文章: 3,188
我替他們消毒??我買電腦也是考慮AMD居多,Intel跟我非親非故,我也沒有靠他吃飯,位啥要替他消毒?不理性的傢伙。在我感覺你只是帶著情緒與不甚專業論點甚或是有個人因素來討論的,或著更甚是來筆戰??還是我擋到你的財路 您不覺得您的語氣非常的沒有禮貌?就算我要替他們消毒那也是我家的事,礙到您了?再說要批評別人也要有點深入了解再來吧?沒有看到比較有理性的發言?

做人要理性一點,都你講的都對那也沒啥大不了,態度要如此之差嗎?還有阿,黑白怎樣論定還有待商議咧,有一定說怎樣就是怎樣嗎?在我看來啦,A64 3200+怎麼有些數據測出來還小輸XP 3200+ 新的改進有他的優點,只是優在哪裡,看的出來的話,那就是在哪邊屬鈔票了

此文章於 2005-09-04 01:37 AM 被 ianme 編輯.
舊 2005-09-04, 01:24 AM #83
回應時引用此文章
ianme離線中  
chaotommy
Elite Member
 

加入日期: Mar 2003
您的住址: Vancouver, Canada
文章: 15,006
引用:
作者samsung
請看別人寫的文章

很多大大認為100% cpu佔用就是cpu所有單元都在忙了,發揮最大效率了,實際上,100% 的cpu佔用,只說明進程把這個cpu給霸滿了,但CPU到底忙不忙,那是另外一回事。其實在99.999%的情況下,100%佔用的cpu,都是將近一半的時間在等待,剩下一半的工作時間最多也只能用到2/3的運算單元,也就是說,即使是100% 的cpu佔用,cpu其實最多也只有發揮了30%-40%的能力

那為什麼會這樣呢?

第一大CPU不能發揮的原因,就是緩衝區不命中導致的取指,數據的等待

眾所周知,CPU的速度遠遠大於內存等外設,如果沒有特別的措施,每執行一條指令,CPU都要等十幾倍的時間從內存中取指令和數據,所以我們才設計了比內存快的多得一級,二級,甚至三級緩存來加速,但相對於256M 512M 1G 2G的內存16K的一級緩存和512K 或1M的2級緩存實在是太小了,最好情況是CPU直接在1級緩存中找到數據,這樣會沒有延遲,但只有16K的一級緩存往往是找不到的,這時就要到2級緩衝中尋找並填入1級緩衝中,這就會有3-5個甚至更多個週期的延遲,如果2級緩衝還找不到,這也是常有的事,CPU就會啟動內存總線,開始緩衝區填充,把數據從內存中取回緩衝區。由於DDR,DDR2的潛伏期和相對的低頻率,這個過程要十幾二十幾個週期

CPU運行時就是這樣的受制與慢速內存,不斷的等待

第二個CPU不能發揮的原因,是IO端口的存取

CPU操作硬盤等外設時,需要通過IO端口,DMA等存取比內存還慢的多得系統總線,雖然有中斷和IO芯片的幫助,但這是比內存存取還糟10倍的情況,更糟的是在共享的總線上還常遇到衝突和總線等待的情況,對此大家用電腦時應該都有切身體會

第三個CPU不能發揮的原因,是不能充分並行和充分使用CPU執行單元

P4有5個整數單元,其中四個是雙倍的,
所以P4有9個整數單元,2個浮點單元

Athlon 有6個整數單元,3個浮點單元

(其實看這個大家就應該知道,為什麼I在媒體和商業程序超過A,A在spuer pi和一些game中超過I,CPU設計不同,沒什麼好吵的)

但A, I的CPU每時鐘週期同時執行指令數的最大理論數是3,4條,遠遠小於執行單元數,這是因為一些複雜指令和sse, 3D now指令需要不止一個執行單元,但實際上CPU執行時95%的指令都是簡單指令,於是我們就看到,絕大部分情況下,即使CPU以最大並行度運算,也只有 4,5個執行單元在執行,其他的都在閒置

況且,更重要的是,CPU並不能以他的最大理論數同時執行指令。

我們的X86指令集和X86程序本質上都是單線設計的,一週期一操作,執行完上一條在執行下一條,其實本不能在一個週期裡執行超過一條的指令,所以在現代CPU設計裡,使用了很多技巧--亂序執行(在前後指令沒有依存關係時同時執行他們),分值預測(在還沒做條件判斷是超前執行後面的指令)--等等來實現並行效果,但這些技術都是有局限的,所以雖然A, I的CPU每時鐘週期同時執行指令數的最大理論數是3,4條,但實際上平均同時只有2條左右,cpu的執行單元大部分都是空閒的。

(這個情況直接根源於x86指令架構的落後,無論是IBM PPC的SIMD結構 還是Intel IA64的甚長指令架構都是真正的並行架構,實際上,除了X86,你在現在其他CPU裡是找不到如此落後和古老的指令架構了,這是X86的輝煌還是悲哀呢)
除了以上三大原因,其他很多原因,包括操作系統進程切換,流水線清空,寄存器換名和重置等等很多原因都會造成CPU的浪費,他們雖比不上上面的三大原因,但加起來也是很大的數目

看到這裡,大家就知道HT的原理了

HT使每週期同時執行指令數的最大理論數提高了一倍,在一個進程因為取指,數據的等待,IO操作...等等等待時,另一個進程可以乘機運行,同時,在一個進程不能充分並行和充分利用所有的執行單元時,另一個進程可以可以利用剩下的單元


雞婆了一下......
舊 2005-09-04, 01:32 AM #84
回應時引用此文章
chaotommy離線中  
joyce1688
Advance Member
 

加入日期: Jul 2005
文章: 388
能耍手段也是實力的一種展現 Money 代表一切
AMD告INTEL如果贏了也是一個免費的****
東西合用 好用就好
管他怎麼做的 怎麼行銷~_~
我們能做的也只是使用而已
舊 2005-09-04, 01:34 AM #85
回應時引用此文章
joyce1688離線中  
roc911
Master Member
 
roc911的大頭照
 

加入日期: Jan 2004
文章: 1,518
既然X86架構的指令落後...
為何不捨棄之?
而Apple還向X86靠攏?
舊 2005-09-04, 02:16 AM #86
回應時引用此文章
roc911離線中  
Arbicool
Junior Member
 
Arbicool的大頭照
 

加入日期: Sep 2002
您的住址: Taipei
文章: 984
引用:
作者roc911
既然X86架構的指令落後...
為何不捨棄之?
而Apple還向X86靠攏?


APPLE是用INTEL CPU來作為POWER PC的心臟,不代表使用X86指令集

AMD真有作為就成為他自家晶片組的表率,而不是到處找人合作~~

看來AMD倒是蠻幸運的有很多很瘋狂的支持者
__________________
無限期沒有簽名檔
舊 2005-09-04, 02:25 AM #87
回應時引用此文章
Arbicool離線中  
ianme
*停權中*
 
ianme的大頭照
 

加入日期: Oct 2004
您的住址: 台北
文章: 3,188
引用:
作者roc911
既然X86架構的指令落後...
為何不捨棄之?
而Apple還向X86靠攏?


捨棄??這個問題我簡單講一句,沒有人有如此大的能力跟影響力,重點要有種啦。沒人有種敢這樣做。畢竟市場用X86很久了,要你換會很抗拒,很難阿。所以目前64位元軟體要重新編寫的狀況下,我才說根本64位元沒用,不如推新架構換新指令,反正都要重寫,一次到底比較快,AMD推64位元是對於IT產業的一大傷害,因為這並不實際,治標不治本,根本還是要從架構上著手。
舊 2005-09-04, 02:47 AM #88
回應時引用此文章
ianme離線中  
600806949
Master Member
 
600806949的大頭照
 

加入日期: Aug 2004
文章: 2,195
多po 刪除

此文章於 2005-09-04 02:59 AM 被 600806949 編輯. 原因: 多po 刪除
舊 2005-09-04, 02:57 AM #89
回應時引用此文章
600806949離線中  
600806949
Master Member
 
600806949的大頭照
 

加入日期: Aug 2004
文章: 2,195
路過.....路過....
嗯嗯...不必給予太多的評論 .......後續發展就順其自然吧 ......

要換電腦阿......六年後再說吧
舊 2005-09-04, 02:58 AM #90
回應時引用此文章
600806949離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是05:20 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。