![]() |
||
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操作...等等等待时,另一个进程可以乘机运行,同时,在一个进程不能充分并行和充分利用所有的执行单元时,另一个进程可以可以利用剩下的单元 |
|||||||
![]() |
![]() |
Junior Member
![]() ![]() ![]() 加入日期: Feb 2004 您的住址: 南投
文章: 983
|
引用:
平心而論prescott還是有它比northwood"好"的地方吧,就是時脈可以繼續拉高(雖然似乎拉不了多高),但至少能讓I社繼續賺大錢。 大家心平氣和討論嘛,帶著非要講贏對方的情緒反而會離事實越來越遠。
__________________
★喜歡畫畫的大大請進(繪圖討論串) |
|||
![]() |
![]() |
*停權中*
加入日期: Oct 2004 您的住址: 台北
文章: 3,188
|
我替他們消毒??我買電腦也是考慮AMD居多,Intel跟我非親非故,我也沒有靠他吃飯,位啥要替他消毒?不理性的傢伙。在我感覺你只是帶著情緒與不甚專業論點甚或是有個人因素來討論的,或著更甚是來筆戰??還是我擋到你的財路
![]() 做人要理性一點,都你講的都對那也沒啥大不了,態度要如此之差嗎?還有阿,黑白怎樣論定還有待商議咧,有一定說怎樣就是怎樣嗎?在我看來啦,A64 3200+怎麼有些數據測出來還小輸XP 3200+ ![]() ![]() 此文章於 2005-09-04 01:37 AM 被 ianme 編輯. |
![]() |
![]() |
Elite Member
![]() ![]() ![]() ![]() ![]() 加入日期: Mar 2003 您的住址: Vancouver, Canada
文章: 15,006
|
引用:
雞婆了一下...... ![]() |
|
![]() |
![]() |
Advance Member
![]() ![]() 加入日期: Jul 2005
文章: 388
|
能耍手段也是實力的一種展現 Money 代表一切
AMD告INTEL如果贏了也是一個免費的**** 東西合用 好用就好 管他怎麼做的 怎麼行銷~_~ 我們能做的也只是使用而已 |
![]() |
![]() |
Master Member
![]() ![]() ![]() ![]() 加入日期: Jan 2004
文章: 1,518
|
既然X86架構的指令落後...
為何不捨棄之? 而Apple還向X86靠攏? |
![]() |
![]() |
Junior Member
![]() ![]() ![]() 加入日期: Sep 2002 您的住址: Taipei
文章: 984
|
引用:
APPLE是用INTEL CPU來作為POWER PC的心臟,不代表使用X86指令集 AMD真有作為就成為他自家晶片組的表率,而不是到處找人合作~~ 看來AMD倒是蠻幸運的有很多很瘋狂的支持者 ![]()
__________________
無限期沒有簽名檔 ![]() |
|
![]() |
![]() |
*停權中*
加入日期: Oct 2004 您的住址: 台北
文章: 3,188
|
引用:
捨棄??這個問題我簡單講一句,沒有人有如此大的能力跟影響力,重點要有種啦。沒人有種敢這樣做。畢竟市場用X86很久了,要你換會很抗拒,很難阿。所以目前64位元軟體要重新編寫的狀況下,我才說根本64位元沒用,不如推新架構換新指令,反正都要重寫,一次到底比較快,AMD推64位元是對於IT產業的一大傷害,因為這並不實際,治標不治本,根本還是要從架構上著手。 |
|
![]() |
![]() |
Master Member
![]() ![]() ![]() ![]() 加入日期: Aug 2004
文章: 2,195
|
多po 刪除
![]() 此文章於 2005-09-04 02:59 AM 被 600806949 編輯. 原因: 多po 刪除 |
![]() |
![]() |
Master Member
![]() ![]() ![]() ![]() 加入日期: Aug 2004
文章: 2,195
|
路過.....路過....
![]() 嗯嗯...不必給予太多的評論 ![]() ![]() 要換電腦阿......六年後再說吧 ![]() |
![]() |
![]() |