天天看點

關于CPU位數和作業系統位數

CPU的位數是指CPU能一次同時寄存和處理二進制數位的位數,這和CPU中寄存器的位數對應。

     CPU為了實作其功能一般設計了指令集,即是CPU的全部指令,這就是機器語言。計算機的所有功能都是基于CPU的指令集。指令集和CPU的位數是有聯系 的。如Intel 8086 CPU 是16位,其指令集也是16位。如Intel 80386DX CPU 是32位,其指令集也是32位,但它也保持原16位指令集,這是為了向上相容。

作業系統的位數是說其所依賴的指令集的位數。

     計算機系統一般都應有向下相容性,是以也可有64位CPU上運作32位作業系統、32位CPU上運作16位作業系統的情況。作業系統位數應該是根據指針類型的位數來定的。整數類型不一定跟位數相等。

CPU位數準确地說應該是CPU一次能夠并行處理的資料寬度,一般就是指資料總線寬度。

計算機字長取決于資料總線的寬度,是指一次能傳輸的資料的位數,通常就是CPU一次能處理的資料的位數,是以字長就是取決于資料總線。像平時我們買電腦說的64位的處理器,指的就是字長為64的CPU。位址總線決定的是存儲器的容量,以為要進行尋址。實際生活中就是主機闆對記憶體的支援容量是有限制的。

尋址空間,是位址總線決定的,而寫程式通路位址,是靠寄存器決定的。作業系統之是以有不同的版本,是為什麼适應CPU的發展,以及CPU提供的功能,就象你以前提的問題,比如386以前,CPU沒有保護模式,是以那時候主流微處理器系統都是DOS,DOS也是為了适應當時的CPU實模式,後386推出了CPU保護模式,随後WIN快速适應了CPU保護模式,提供了強大的功能,是以占據了主流市場......也就說CPU決定作業系統,提供能夠使用的基礎功能,而系統相當于運作在CPU第一層的軟體,隻不過這個軟體,有控制CPU的權利。

,是位址總線決定的,而寫程式通路位址,是靠寄存器決定的。作業系統之是以有不同的版本,是為什麼适應CPU的發展,以及CPU提供的功能,就象你以前提的問題,比如386以前,CPU沒有保護模式,是以那時候主流微處理器系統都是DOS,DOS也是為了适應當時的CPU實模式,後386推出了CPU保護模式,随後WIN快速适應了CPU保護模式,提供了強大的功能,是以占據了主流市場......也就說CPU決定作業系統,提供能夠使用的基礎功能,而系統相當于運作在CPU第一層的軟體,隻不過這個軟體,有控制CPU的權利。

64位處理器,這個位數指的是CPU GPRs(General-Purpose Registers,通用寄存器)的資料寬度為64位,64位指令集就是運作64位資料的指令,也就是說處理器一次可以運作64bit資料。

這個位數指的是CPU GPRs(General-Purpose Registers,通用寄存器)的資料寬度為64位,64位指令集就是運作64位資料的指令,也就是說處理器一次可以運作64bit資料。

跟位址總線沒關系。

64根位址總線尋址能力為2^64(Byte),遠不止4GB了。64根資料總線的話,單次傳輸資料為8Byte,沒錯。弄清楚兩種總線的功能,也就明白計算方法了。位址總線用來尋址的。位址總線上的二進制數組合辨別的是位址号,尋址能力就是位址總線總共可以表示多少個不同的位址号。那麼1根線可以辨別兩種位址号;N根線可以辨別2^N種位址号,即尋址能力為2^N。資料總線用來傳輸資料的,比如你隻有一根資料線,即隻能傳輸1bit資料,有N根,那就能傳輸Nbit的資料。

位址總線尋址能力為2^64(Byte),遠不止4GB了。64根資料總線的話,單次傳輸資料為8Byte,沒錯。弄清楚兩種總線的功能,也就明白計算方法了。位址總線用來尋址的。位址總線上的二進制數組合辨別的是位址号,尋址能力就是位址總線總共可以表示多少個不同的位址号。那麼1根線可以辨別兩種位址号;N根線可以辨別2^N種位址号,即尋址能力為2^N。資料總線用來傳輸資料的,比如你隻有一根資料線,即隻能傳輸1bit資料,有N根,那就能傳輸Nbit的資料。

記憶體的可尋址單元是以位元組為機關,也就是說cpu不能單獨定位某個記憶體位(bit)而隻能一次定位道byte;

機器的字長是指cpu一次可以讀入的位數;32位可以讀入四個位元組;64位可以讀入八個位元組;

為了保證可以單獨尋址單個位元組;記憶體的每個位元組都需要一個位址;

這樣;32為位址線接口的記憶體隻能有2^32*8bit=4GB的容量;

如果記憶體的尋址單元為兩個位元組,那麼容量可以達到8GB,但是最小的機關将變成兩個位元組,哪怕我們隻是存入一個char,也要占用兩個位元組;這是個尋址粒度和容量的問題;

cpu和記憶體之間有記憶體控制器吧,cpu可以一次吐出四個位元組到記憶體控制器;記憶體控制器分别尋址到每個位元組,然後存入記憶體。

繼續閱讀