中央處理器(CPU,Central Processing Unit)是一塊超大規(guī)模的集成電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計算機指令以及處理計算機軟件中的數(shù)據(jù)。中央處理器主要包括運算器(算術(shù)邏輯運算單元,ALU,ArithmeTIc Logic Unit)和高速緩沖存儲器(Cache)及實現(xiàn)它們之間聯(lián)系的數(shù)據(jù)(Data)、控制及狀態(tài)的總線(Bus)。它與內(nèi)部存儲器(Memory)和輸入/輸出(I/O)設(shè)備合稱為電子計算機三大核心部件。
cpu的基本結(jié)構(gòu)
從功能上看,一般CPU的內(nèi)部結(jié)構(gòu)可分為:控制單元、邏輯運算單元、存儲單元(包括內(nèi)部總線和緩沖器)三大部分。其中控制單元完成數(shù)據(jù)處理整個過程中的調(diào)配工作,邏輯單元則完成各個指令以便得到程序最終想要的結(jié)果,存儲單元就負責(zé)存儲原始數(shù)據(jù)以及運算結(jié)果。渾然一體的配合使得CPU擁有了強大的功能,可以完成包括浮點、多媒體等指令在內(nèi)的眾多復(fù)雜運算,也為數(shù)字時代加入了更多的活力。
邏輯部件
英文Logic components;運算邏輯部件。可以執(zhí)行定點或浮點算術(shù)運算操作、移位操作以及邏輯操作,也可執(zhí)行地址運算和轉(zhuǎn)換。
寄存器
寄存器部件,包括寄存器、專用寄存器和控制寄存器。 通用寄存器又可分定點數(shù)和浮點數(shù)兩類,它們用來保存指令執(zhí)行過程中臨時存放的寄存器操作數(shù)和中間(或最終)的操作結(jié)果。 通用寄存器是中央處理器的重要部件之一。
控制部件
英文Control unit;控制部件,主要是負責(zé)對指令譯碼,并且發(fā)出為完成每條指令所要執(zhí)行的各個操作的控制信號。
其結(jié)構(gòu)有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結(jié)構(gòu)為主的控制方式。
微存儲中保持微碼,每一個微碼對應(yīng)于一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構(gòu)成微程序。中央處理器在對指令譯碼以后,即發(fā)出一定時序的控制信號,按給定序列的順序以微周期為節(jié)拍執(zhí)行由這些微碼確定的若干個微操作,即可完成某條指令的執(zhí)行。
簡單指令是由(3~5)個微操作組成,復(fù)雜指令則要由幾十個微操作甚至幾百個微操作組成。
CPU的邏輯單元
更細一點,從實現(xiàn)的功能方面看,CPU大致可分為如下八個邏輯單元:
指令高速緩存,俗稱指令寄存器 : 它是芯片上的指令倉庫,有了它CPU就不必停下來查找計算機內(nèi)存中的指令,從而大幅提高了CPU的運算速度。
譯碼單元,俗稱指令譯碼器 : 它負責(zé)將復(fù)雜的機器語言指令解譯成運算邏輯單元(ALU)和寄存器能夠理解的簡單格式,就像一位外交官。
控制單元 : 既然指令可以存入CPU,而且有相應(yīng)指令來完成運算前的準備工作,背后自然有一個扮演推動作用的角色——它便是負責(zé)整個處理過程的操作控制器。根據(jù)來自譯碼單元的指令,它會生成控制信號,告訴運算邏輯單元(ALU)和寄存器如何運算、對什么進行運算以及對結(jié)果進行怎樣的處理。
寄存器 : 它對于CPU來說非常的重要,除了存放程序的部分指令,它還負責(zé)存儲指針跳轉(zhuǎn)信息以及循環(huán)操作命令,是運算邏輯單元(ALU)為完成控制單元請求的任務(wù)所使用的數(shù)據(jù)的小型存儲區(qū)域,其數(shù)據(jù)來源可以是高速緩存、內(nèi)存、控制單元中的任何一個。
邏輯運算單元(ALU) : 它是CPU芯片的智能部件,能夠執(zhí)行加、減、乘、除等各種命令。此外,它還知道如何讀取邏輯命令,如或、與、非。來自控制單元的訊息將告訴運算邏輯單元應(yīng)該做些什么,然后運算單元會從寄存器中間斷或連續(xù)提取數(shù)據(jù),完成最終的任務(wù)。
預(yù)取單元 : CPU效能發(fā)揮對其依賴非常明顯,預(yù)取命中率的高低直接關(guān)系到CPU核心利用率的高低,進而帶來指令執(zhí)行速度上的不同。根據(jù)命令或要執(zhí)行任務(wù)所提出的要求,何時時候,預(yù)取單元都有可能從指令高速緩存或計算機內(nèi)存中獲取數(shù)據(jù)和指令。當指令到達時,預(yù)取單元最重要的任務(wù)就是確保所有指令均排列正確,然后發(fā)送給譯碼單元。
總線單元 : 它就像一條高速公路,快速完成各個單元間的數(shù)據(jù)交換,也是數(shù)據(jù)從內(nèi)存流進和流出CPU的地方。
數(shù)據(jù)高速緩存 : 存儲來自譯碼單元專門標記的數(shù)據(jù),以備邏輯運算單元使用,同時還準備了分配到計算機不同部分的最終結(jié)果。
通過以上介紹可以看出CPU雖小,方寸之地卻能容納大世界,內(nèi)部更像一個發(fā)達的裝配工廠,環(huán)環(huán)相扣,層層相套。正因為有了相互間的協(xié)作配合,才使得指令最終得以執(zhí)行,才構(gòu)成了圖文并茂、影像結(jié)合的神奇數(shù)字世界。
cpu的工作原理:
我們都知道CPU的根本任務(wù)就是執(zhí)行指令,對計算機來說最終都是一串由“0”和“1”組成的序列。CPU從邏輯上可以劃分成3個模塊,分別是控制單元、運算單元和存儲單元,這三部分由CPU內(nèi)部總線連接起來。如下所示:
控制單元:控制單元是整個CPU的指揮控制中心,由指令寄存器IR(InstrucTIon Register)、指令譯碼器ID(InstrucTIon Decoder)和操作控制器OC(OperaTIon Controller)等,對協(xié)調(diào)整個電腦有序工作極為重要。它根據(jù)用戶預(yù)先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應(yīng)該進行什么操作,然后通過操作控制器OC,按確定的時序,向相應(yīng)的部件發(fā)出微操作控制信號。操作控制器OC中主要包括節(jié)拍脈沖發(fā)生器、控制矩陣、時鐘脈沖發(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的工作速度。但因為受到芯片面積和集成度所限,寄存器組的容量不可能很大。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應(yīng)的數(shù)據(jù)。而通用寄存器用途廣泛并可由程序員規(guī)定其用途,通用寄存器的數(shù)目因微處理器而異。這個是我們以后要介紹這個重點,這里先提一下。
我們將上圖細化一下,可以得出CPU的工作原理概括如下:
總結(jié)一下,CPU的運行原理就是:
1、取指令:CPU的控制器從內(nèi)存讀取一條指令并放入指令寄存器。指令的格式一般是這個樣子滴:
操作碼就是匯編語言里的mov,add,jmp等符號碼;操作數(shù)地址說明該指令需要的操作數(shù)所在的地方,是在內(nèi)存里還是在CPU的內(nèi)部寄存器里。
2、指令譯碼:指令寄存器中的指令經(jīng)過譯碼,決定該指令應(yīng)進行何種操作(就是指令里的操作碼)、操作數(shù)在哪里(操作數(shù)的地址)。
3、 執(zhí)行指令,分兩個階段“取操作數(shù)”和“進行運算”。
4、 修改指令計數(shù)器,決定下一條指令的地址。