從16位到32位再到64位?
絕大部分人都沒有意識到128位的處理器早已經存在了,并且已經存在了幾十年。這么多年過去了,不光是128位的處理器出現了,256位、512位的處理器也同樣出現了,比如Nvidia GTX 280這樣的顯卡、AMD Radeon R9 290,以及Tesla產品使用的是512位內存總線的處理器。
既然硬件已經存在了,那么操作系統毫無疑問會支持它們的使用,比如AVX-512就是英特爾與2013年7月份提出用于X86指令集架構的256位高級矢量擴展SIMD指令的512位擴展。AVX-512也并不是英特爾第一個引入的512位SIMD指令集,在第一代志強中就出現類類似的512位SIMD指令。理論上512位的操作系統已經存在,但實際卻不存在處理器的位數通常是指通用寄存器的寬度,比如16位的處理器有16位通用寄存器,32位的處理器有32位通用寄存器,64位的處理器有64位的通用寄存器。那么就會要求與之相對應數的數據線、地址線、控制線,比如16位的處理器一次傳輸16位的二進制數,那么它的數據線、地址線、控制線都是16位的。這也就能解釋為什么32位的系統最多只能使用4GB的內存了,因為32位系統所能尋址的范圍是2的32次方,也就是4GB。所以32位的系統最多只能使用4GB的內存,而64位的處理器幾十GB還不是它的極限,他的尋址范圍在2的64次方,也就是18200000TB。芯片產商樂此不彼的增加處理器的位數,是確實得到了好處,比如8位處理器一次處理8位數據或者8位指令。當8位處理器計算+1時,需要先接收8位加的指令,再接收1這個8位二進制數。如果采用16位CPU則可以一次性16位2個字節的數據,計算+1這個動作就可以同時接收加的指令和1這個8位二進制數了。而32位就可以直接實現一次處理a=a+b的動作。如果處理的位數再往128位邁進,就會發現尋址這個動作變得異常困難起來。處理器和高速緩存的壓力也會變得非常巨大。原本可以放兩條、四條指令的高速緩存僅僅只能放下一條,甚至放一條都不夠。處理器位數的增加也會導致操作碼的變長,比如在32位處理器中跳轉這個動作需要5個字節,而64位處理則需要15個字節。正可謂是牽一發而動全身,處理器的位數在某種程度上確實簡化了軟件設計的復雜度,但硬件反而更為復雜了,結果就是計算速度下降。從實用的角度出發增加到128位的意義并不大。綜上所述128位、512位架構對于圖形、密碼學,以及復雜的系統建模等數學密集型操作非常有用,但并不適用于操作系統。64位對于大多數用戶來說已經足夠用了,操作系統的更高位深度并不直接意味著它會有更高的速度,反而需要處理更長的地址,尋址也會變得異常困難,同理需要更換的不僅僅是操作系統,更換的還有軟件代碼。以上個人淺見,歡迎批評指正。認同我的看法,請點個贊再走,感謝!喜歡我的,請關注我,再次感謝!