電腦CPU指令的32位、64位是如何區分呢?瀏覽次數:812次
2011-1-3 11:51
提問者:wu123st
非常專業的一個問題。因為看到文章介紹了CPU有32和64位,就想知道這個位元是由什麼決定的。我知道肯定和硬體有相關,只是希望能得到一個通俗易懂的解釋即可。 還有,近年提出的32位作業系統、64位作業系統和這裡的32位、64位是一樣的嗎?
問題補充:
CPU中的微指令是公開的嗎?比如Intel和amd的CPU中的指令是公開的嗎?有沒有開源的微指令CPU?
最佳答案CPU有32和64位是由電腦中各個儲存空間所使用的位元決定的。32位也就是一個寄存器使用的是一個32位0,1串,64位也就是一個寄存器使用的是一個64位0,1串。其中64位在32位的基礎上還多增加了一些寄存器。寄存器儲存的是微指令,微指令由指令和運算元構成。寄存器的長度決定了Cpu 的指令長度和定址能力。指令長度越長,所能支援的指令越多,地址空間越長,所能訪問的物理地址越多。一個簡單的例子就是32位的Cpu 地址線是20位,所以在實模式下只能使用1Mb的記憶體。而64位的Cpu 地址線是48位,所以在實模式下可以使用256TB的記憶體。現在的32位作業系統之所以能使用超過1Mb的記憶體,是使用了位移的方式,在面向Cpu 的程式運行是,使用立即數定址是最快的,所以在理論上64位的Cpu 應該是比32位的Cpu 要快。現的64位Cpu 只是簡單的多使用了64位Cpu 所提供的額外的寄存器,而沒有在核心上做改變。在32位Os中,由於1Mb的記憶體遠遠不夠用,因而產生了位移方式定址,從而能使用到64G記憶體。64位Cpu 則不然,使用立即數方式就可以達到256Tb,完全可以只使用立即數方式。立即數方式相較其它方式,速度至少快一倍。可以認為現在的64位作業系統和32位作業系統是一樣的。
其他回答 共3條2011-1-3 13:09huangxin121121 | 六級
其實就是說以前CPU可以一次處理的二進位二進位位元。比方說:1100110011001100,1100110011001100110011001100110011(二進位),最早CPU一次可以處理16位即:1100110011001100,現在可以處理1100110011001100110011001100110011001100110011001100110011001100。就是說16位可以一次處理16個數值,32可以32個,64位就是64個了。如果說CPU一次可以處理64位的資料,而作業系統只給它32位的資料,那CPu就有一半效能沒有發揮,但是你換成64位的作業系統,那就使CPU的效能發揮出來了。沒有,AMDCPU中含有的SEE1.SEE2和SEE3是和intel購買的使用權
02011-1-3 16:53天涯之獨孤求教 | 五級就像公路,一般的有一左一右兩條,高速有2左2右4條,它車流速度就不同了嘛
02011-1-5 10:45wrcr2010 | 四級其實現在的x86系統就是32位的系統x64的系統,就是64位的系統。樓主也可以看到網上的光碟片映像或cpu裡邊的參數,就很容易明白了。