CPU 的根本任務就是執行指令,對計算機來講最終都是一串由 0 和 1 組成的序列。CPU 從邏輯上能夠劃分紅 3 個模塊,分別是控制單元、運算單元和存儲單元 。其內部架構以下:html
控制單元是整個CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和 操做控制器OC(Operation Controller) 等組成,對協調整個電腦有序工做極爲重要。它根據用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,經過指令譯碼(分析)肯定應該進行什麼操做,而後經過操做控制器OC,按肯定的時序,向相應的部件發出微操做控制信號。操做控制器OC中主要包括:節拍脈衝發生器、控制矩陣、時鐘脈衝發生器、復位電路和啓停電路等控制邏輯。程序員
運算單元是運算器的核心。能夠執行算術運算(包括加減乘數等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。相對控制單元而言,運算器接受控制單元的命令而進行動做,即運算單元所進行的所有操做都是由控制單元發出的控制信號來指揮的,因此它是執行部件。緩存
存儲單元包括 CPU 片內緩存和寄存器組,是 CPU 中暫時存放數據的地方,裏面保存着那些等待處理的數據,或已經處理過的數據,CPU 訪問寄存器所用的時間要比訪問內存的時間短。採用寄存器,能夠減小 CPU 訪問內存的次數,從而提升了 CPU 的工做速度。寄存器組可分爲專用寄存器和通用寄存器。專用寄存器的做用是固定的,分別寄存相應的數據;而通用寄存器用途普遍並可由程序員規定其用途。架構
總的來講,CPU 從內存中一條一條地取出指令和相應的數據,按指令操做碼的規定,對數據進行運算處理,直到程序執行完畢爲止。具體過程可分爲如下四步:測試
CPU 控制器從內存讀取一條指令並放入指令寄存器。指令的格式以下:ui
操做碼:就是彙編語言裏的 mov,add,jmp 等符號碼;.net
操做數地址:說明該指令須要的操做數所在的地方,是在內存裏仍是在CPU的內部寄存器裏。unix
指令寄存器中的指令通過譯碼,決定該指令應進行何種操做(就是指令裏的操做碼)、操做數在哪裏(操做數的地址) 。code
執行指令分爲兩個階段: 取操做數 和 進行運算 。htm
取操做數:CPU 經過尋址操做,從內存(數據段)中讀取操做數到通用寄存器中,暫存起來。
進行運算:運算單元經過指令中的操做碼,對寄存器中的操做數進行 mov,add,jmp 操做。
修改指令計數器,決定下一條指令的地址 。CPU 重複上述三步操做,處於內存代碼段的指令被逐個的執行,直到程序執行完畢爲止。
CPU在單位時間內(同一時間)能一次處理的二進制數的位數叫字長。因此,能處理字長爲 8 位數據的 CPU 一般就叫 8 位的 CPU。同理,32 位CPU 能在單位時間內處理字長爲 32 位的二進制數據 。
常見的 32位 CPU 和 64位 CPU 主要存在如下兩個差別: