詳解Linux系統(tǒng)CPU的內(nèi)部架構(gòu)和工作原理
概述
今天主要以Intel為例對CPU的工作原理做簡單介紹,通過這簡單介紹,達到對AMD,ARM,MIPS甚至PowerPC觸類旁通。
CPU發(fā)展歷程
1968年7月18日,鮑勃-諾斯和戈登-摩爾的新公司在美國加利福尼亞州,美麗的圣弗朗西斯科灣畔芒延維尤城的梅多費大街365號開張了。并在成立不久斥資15000美元從一家叫INTELCO的公司手中買下了Intel名稱的使用權(quán)。由此Intel這位半導體巨人開始了他在IT行業(yè)傳奇般的歷史。
1971年11月15日,這一天被當作全球IT界具有里程碑意義的日子而被寫入許多計算機專業(yè)教科書。Intel公司的工程師特德·霍夫發(fā)明了世界上第一個微處理器—4004,這款4位微處理器雖然只有45條指令,而且每秒只能執(zhí)行5萬條指令。甚至比不上1946年由美國陸軍賓夕法尼亞大學研制的世界第一臺計算機ENIAC。但它的集成度卻要高很多,一塊4004的重量還不到一盅司。 他因發(fā)明了微處理器,被英國《經(jīng)濟學家》雜志稱為“第二次世界大戰(zhàn)以來最有影響的科學家之一”。Intel公司的CPU發(fā)展歷程如下表所示:

以及后面的Pentium 1,2,3和4,再到酷睿、酷睿2,這里就不再一一列舉。
Intel從8086開始,就進入了我們所謂的x86時代。而80386的誕生則標志著Intel正是進入了32位微處理器的時代。從80386到Pentium 4這個年代的CPU,就是傳說中的IA-32時代。
cpu工作原理
我們都知道CPU的根本任務就是執(zhí)行指令,對計算機來說最終都是一串由“0”和“1”組成的序列。CPU從邏輯上可以劃分成3個模塊,分別是控制單元、運算單元和存儲單元,這三部分由CPU內(nèi)部總線連接起來。
如下所示:

控制單元:控制單元是整個CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,對協(xié)調(diào)整個電腦有序工作極為重要。它根據(jù)用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應該進行什么操作,然后通過操作控制器OC,按確定的時序,向相應的部件發(fā)出微操作控制信號。操作控制器OC中主要包括節(jié)拍脈沖發(fā)生器、控制矩陣、時鐘脈沖發(fā)生器、復位電路和啟停電路等控制邏輯。
運算單元:是運算器的核心。可以執(zhí)行算術(shù)運算(包括加減乘數(shù)等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。相對控制單元而言,運算器接受控制單元的命令而進行動作,即運算單元所進行的全部操作都是由控制單元發(fā)出的控制信號來指揮的,所以它是執(zhí)行部件。
存儲單元:包括CPU片內(nèi)緩存和寄存器組,是CPU中暫時存放數(shù)據(jù)的地方,里面保存著那些等待處理的數(shù)據(jù),或已經(jīng)處理過的數(shù)據(jù),CPU訪問寄存器所用的時間要比訪問內(nèi)存的時間短。采用寄存器,可以減少CPU訪問內(nèi)存的次數(shù),從而提高了CPU的工作速度。但因為受到芯片面積和集成度所限,寄存器組的容量不可能很大。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應的數(shù)據(jù)。而通用寄存器用途廣泛并可由程序員規(guī)定其用途,通用寄存器的數(shù)目因微處理器而異。
將上圖細化一下,可以得出CPU的工作原理概括如下:

總的來說,CPU從內(nèi)存中一條一條地取出指令和相應的數(shù)據(jù),按指令操作碼的規(guī)定,對數(shù)據(jù)進行運算處理,直到程序執(zhí)行完畢為止。
總結(jié)
CPU的運行原理:控制單元在時序脈沖的作用下,將指令計數(shù)器里所指向的指令地址(這個地址是在內(nèi)存里的)送到地址總線上去,然后CPU將這個地址里的指令讀到指令寄存器進行譯碼。對于執(zhí)行指令過程中所需要用到的數(shù)據(jù),會將數(shù)據(jù)地址也送到地址總線,然后CPU把數(shù)據(jù)讀到CPU的內(nèi)部存儲單元(就是內(nèi)部寄存器)暫存起來,最后命令運算單元對數(shù)據(jù)進行處理加工。周而復始,一直這樣執(zhí)行下去,直到停電。