CPU架構與技術發展詳解
CPU是中央處理單元(Central Processing Unit)的縮寫,它可以被簡稱做微處理器(Microprocessor),不過經常被人們直接稱為處理器(processor)。CPU是計算機的核心,其重要性好比大腦對于人一樣,因為它負責處理、運算計算機內部的所有數據。下面我們從CPU的發展歷程來看看CPU架構和技術的發展。
整合浮點運算協處理器
首先我們來重拾一個幾乎快要被遺忘的名詞——協處理器,它是一種芯片,用于減輕系統微處理器的特定處理任務,早些年協處理器主要是用以輔助進行浮點運算。
★ 最初的CPU只能進行整點運算,浮點運算效率極低
CPU最基本的運算就是“加減乘除”,但實際上計算機只能用加法器來完成整數以及固定小數點位置(整點)的算術運算,而不能處理小數點可以浮動的數值(浮點)。對于小數多采用的是二進制的科學計數法、也就是浮點數表示法:尾數、階數符號位各占一位,然后再對其余數位尾數、階數的有效數位合理分配。
在CPU運算時,浮點數的運算量遠比整數復雜,因為不僅尾數要參與運算,階數也要參與,并且需要對尾數和階數的符號位都進行處理,所以,最早的CPU并沒有能力進行浮點運算(8088/8086,80286,80386SX),需要浮點運算時,由CPU通過軟件模擬來實現,所以,進行浮點運算時就會慢很多。
★ 協處理器誕生,專門處理浮點運算
8086處理器和它的協處理器8087
8086是當今CPU的鼻祖,所謂X86架構也就是指8086處理器所開創的指令集體系。為了彌補8086在進行浮點運算時的不足,Intel與1980年設計了8087數學協處理器,并且為X86體系推出了第一個浮點格式IEE754。8087提供兩個基本的32/64bit浮點資料形態和額外的擴展80bit內部支援來改進復雜運算之精度。除此之外,8087還提供一個80/17bit封裝BCD (二進制編碼之十進制)格式以及16/32/64bit整數資料形態。
386處理器和它的協處理器387
X87協處理器新增約60個指令給程序員,所有的指令都是以“F”開頭跟其他的標準8086整數運算指令有所區別,舉例來說,相對于ADD/MUL,8087提供FADD/FMUL。
8087是于1980年發布,然后被80287、80387DX/SX和487SX所取代。
★ 協處理器被整合進入CPU內部
以往,協處理器都是可選配件,在主板上X86處理器旁邊一般都會為X87設計一個空的插槽,只有當用戶確實有需要時才會專門購買相應的X87協處理器插進去,來加速浮點運算。
486DX是第一顆整合了浮點運算協處理器的產品,相當于486SX+487SX
隨著時代的發展,越來越多的程序要求使用更高精度的浮點運算,X87協處理器幾乎成為必備品。于是在制造工藝日趨成熟之后,Intel在486一代將X86和X87整合在了一起,浮點運算成為了CPU的一項基本功能,而且重要性越來越大。
Intel 486DX、Pentium之后的CPU都內含了協處理器,AMD K5、K6之后的CPU都內建了協處理器,所以此后就很少有人會提及協處理器的概念了。