瀏覽單個文章
jasonyang
Major Member
 

加入日期: Sep 2004
您的住址: 木柵動物園
文章: 293
引用:
作者kkcity59
為什麼要有WOW的存在?就是因為64bit的Long Mode啊
我不要相容性了,軟體全都用64bit重寫,不就可以把WOW丟了
這就是小弟舉例說,會產生類似IA64的狀況
WOW就像是一個告訴你處理器,要用哪種面貌的Register
去面對等一下要進來的東西的軟體層

更精確的描述AMD64允許64bit OS執行32bit 程式
是我們使用一個64bit的OS,OS本身可以在64bit跟相容模式下動作
但是進來的東西會是什麼樣子,處理器無法判斷
這就是OS要幫他做的事情,這動作是為了舊有軟體的相容性
他也就造成了效能的減損

IA64向下相容...其實IA64原本就很難提供X86相容
他的IA32/Pa Risc相容方式是靠硬體上做出來的Translater
我比較傾向他是一種硬體方式,或者說是硬體模擬
而Code Morphing其實也是類似的
IA-32 EL現在好像並沒有真正釋放出來(我不是十分確定)
但是他就會是確確實實的軟體模擬,因為我可以把他放進磁片裡
...


AMD 的 AMD64(m$ 稱 x64) 贏 IA64 就在 long mode 下提供 "向下相容" 的能力,使得 windows 64bit 版本能在 64bit 下執行舊的 32bit 軟體,又不損失太大性能,而 WOW 的存在是提供的 kernel system call 32bit->64bit 的轉換,也就是放 system call parameters 的 stack,這裡有些是跟 register (像是 PC 與 SP) 有關,其他主要還是 system call parameters 的 data alignment 與 pointer 轉換等,性能損失極微小。
為什麼 M$ 會傾向 x64 而非 IA64,主因就是在他提供 "向下相容",不會有沒軟體可跑的窘況,作為 32bit 轉換 64bit 的緩衝期,重寫才能發揮出 64bit 的效能,但是用 32bit 並不會損失太大效能。

http://en.wikipedia.org/wiki/IA64
至於 IA64 的 IA32 模擬,IA64 有提供一個硬體 jump escape 指令,但是硬體模擬的性能不好,另外有一些軟體 emulator/simulator 提供比硬體好 50% 的性能。
CMS 更不用說,就是軟體,因為 CMS 是 Code Morphing "Software" 縮寫,不過我想 cpu 一樣有特別的硬體支援,兩者是密不可分的。

至於把 cpu hot swap 歸咎於 amd 沒想到 opteron 會賣這麼好實在是很可笑,在我看來哪家公司不希望自己的產品賣的好? 主因還是 design 取捨的問題,AMD 偏重於提高 "效能" 與 "穩定性",像是支援雙核(這點 intel 的 smithfield 才是真的沒想到吧!),L1&L2 增加 ECC,內建記憶體控制器與點對點傳輸,x86-64 等,很可惜在 "容錯" 的設計上還不夠好,當然 intel 在容錯也一樣比不上 IBM, HP/Compaq, Sun,但不可否認 itanium2 是有長足的進步。至於 NUMA 上要提供 cpu hot swap 應該也不難,但是問題應該出在"內建記憶體控制器"的 k8 卻不是件容易的是,不過我想可以學學 ibm power5 與 ultrasparc, hp/compaq/dec alpha 21066,因為這些也是內建記憶體控制器,intel 與 amd 不一直在跟隨其腳步。

在我看來 opteron 切入高階伺服器不順利的原因還是在 "容錯" (fault tolerance) 的能力不夠好,像是 cpu hot swap,這也是 xeon/opteron 被 IBM/HP/sun 定義成低階伺服器的主因。但是一般而言,低階便宜的東西反而賣的好,所以 xeon 市佔率才那麼高,opteron 更是急起直追,所以我說問題並不是出在 amd 沒想到 opteron 賣的好,而是其 design 取捨的問題,考慮到成本、功能、性能、開發時間等,必須要有 trade-off。

至於 opteron 的 chipkill ECC 做得如何,我還不曉得,等多看一些資料與討論再說。
舊 2005-09-04, 08:53 PM #214
回應時引用此文章
jasonyang離線中