02 附錄--CPU詳解


一 五大組成單元=>三大核心組件

組成計算機五大單元可以合並成三大核心組件:CPU、IO設備、主存儲器

1、控制單元+算數邏輯單元=>CPU

2、主存儲器,即主記憶體

3、輸入單元Input+輸出單元Outpu=>IO設備

![](https://img2018.cnblogs.com/blog/1825659/201910/1825659-20191009211407467-1033806415.png)

二 cpu工作流程

CPU的核心工作在於進行運算和判斷,那么要被運算與判斷的數據是從哪里來的?
CPU讀取的數據都是從主存儲器(內存)來的!主存儲器內的數據則是從輸入單元所傳輸進來!而CPU處理完畢的數據也必須先寫回主存儲器中,最后數據才從主存儲器傳輸到輸出單元。

所以計算機五大組成部分的基本工作流程就是:輸入單元=>主存儲器=>CPU=>主存儲器=>輸出單元

而CPU會從內存中取指令->解碼->執行,然后再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。

所以總結CPU的大致工作流程就是:取指—>解碼—>執行,詳細見下圖
![cpu工作流程詳解](https://img2018.cnblogs.com/blog/1825659/201910/1825659-20191009211046168-1043600064.jpg)

三 cpu指令集

cpu是計算機的大腦,大腦里集成了一系列具體控制身體其他器官做事的指令集,所以站在純硬件角度去看,計算機所有其他組件都由cpu發出的指令控制。

我們程序員編程的目的是為了控制計算機硬件工作,程序員的代碼都會轉換成cpu的指令集才能去控制其他硬件,所以程序員是通過直接控制cpu來達到間接控制其他硬件的目的,具體流程如下

![cpu與其他組件的關系](https://img2018.cnblogs.com/blog/1825659/201910/1825659-20191009211106869-1639510437.jpg)

內存中存放的是程序員的代碼/指令,cpu從內存中取出這些指令后需要翻譯成自己的指令去執行,即cpu在出場時內部就集成了一系列的指令集(指令集是cpu的靈魂)。

​ 在超大規模集成電路構成的微型計算機中,往往將CPU制成一塊具有特定功能的芯片,稱為微處理器,芯片里邊有編寫好的微指令集,我們在主機上的所有操作或者說任何軟件的執行最終都要轉化成cpu的指令去執行,如輸入輸出,閱讀,視頻,上網等這些都要參考CPU是否內置有相關微指令集才行,如果沒有,那么CPU無法處理這些操作。
​ 不同的CPU指令集不同對應的功能也不同,這就好比不同的人腦,對於大多數人類來說,人腦的結構一樣,但是大家的智商都有差別。

那么目前世界上的主流CPU由那些呢?我們筆記本上貼的Intel、AMD是怎么回事呢?下面我們來認識一下

![](https://img2018.cnblogs.com/blog/1825659/201910/1825659-20191009211154893-1794688933.jpg)
1、CPU的分類(了解)
  我們已經知道CPU內部是含有微指令集的,我們所使用的的軟件都要經過CPU內部的微指令集來完成才行。這些指令集的設計主要又被分為兩種設計理念,這就是目前世界上常見到的兩種主要的CPU種類:分別是精簡指令集(RISC)與復雜指令集(CISC)系統。下面我們就來談談這兩種不同CPU種類的差異!

# 1.1、精簡指令集(了解)
  精簡指令集(Reduced Instruction Set Computing,RISC):這種CPU的設計中,微指令集較為精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要做復雜的事情,就要由多個指令來完成。常見的RISC指令集CPU主要例如Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、與ARM系列等。【注:Sun已經被Oracle收購;】

  SPARC架構的計算機常用於學術領域的大型工作站中,包括銀行金融體系的主服務器也都有這類的計算機架構;

  PowerPC架構的應用,如Sony出產的Play Station 3(PS3)使用的就是該架構的Cell處理器。

  ARM是世界上使用范圍最廣的CPU了,常用的各廠商的手機、PDA、導航系統、網絡設備等,幾乎都用該架構的CPU。

# 1.2、復雜指令集
  復雜指令集(Complex Instruction Set Computer,CISC)與RISC不同,在CISC的微指令集中,每個小指令可以執行一些較低階的硬件操作,指令數目多而且復雜,每條指令的長度並不相同。因此指令執行較為復雜所以每條指令花費的時間較長,但每條個別指令可以處理的工作較為豐富。常見的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架構的CPU。
    
# 總結:
    CPU按照指令集可以分為精簡指令集CPU和復雜指令集CPU兩種,區別在於前者的指令集精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要做復雜的事情,就要由多個指令來完成。后者的指令集每個小指令可以執行一些較低階的硬件操作,指令數目多而且復雜,每條指令的長度並不相同。因為指令執行較為復雜所以每條指令花費的時間較長,但每條個別指令可以處理的工作較為豐富。
2、x86架構64位
#1、x86架構
    x86是針對cpu的型號或者說架構的一種統稱,詳細地講,最早的那顆Intel發明出來的CPU代號稱為8086,后來在8086的基礎上又開發出了80285、80386....,因此這種架構的CPU就被統稱為x86架構了。
        
    由於AMD、Intel、VIA所開發出來的x86架構CPU被大量使用於個人計算機上面,因此,個人計算機常被稱為x86架構的計算機!
    程序員開發出的軟件最終都要翻譯成cpu的指令集才能運行,因此軟件的版本必須與cpu的架構契合,舉個例子,我們在MySQL官網下載軟件MySQL時名字為:
      Windows(x86,32-bit),ZIP Archive
      (mysql-5.7.20-win32.zip)   
    我們發現名字中有x86,這其實就是告訴我們:該軟件應該運行在x86架構的計算機上。
#2、64位  
	cpu的位數指的是cpu一次性能從內存中取出多少位二進制指令,64bit指的是一次性能從內存中取出64位二進制指令。
    在2003年以前由Intel所開發的x86架構CPU由8位升級到16、32位,后來AMD依此架構修改新一代的CPU為64位,到現在,個人計算機CPU通常都是x86_64的架構。
    cpu具有向下兼容性,指的是64位的cpu既可以運行64位的軟件,也可以運行32位的軟件,而32位的cpu只能運行32位的軟件。這其實很好理解,如果把cpu的位數當成是車道的寬,而內存中軟件的指令當做是待通行的車輛,寬64的車道每次肯定既可以通行64輛車,也可以通信32輛車,而寬32的車道每次卻只能通行32輛車
3、CPU歷史(了解)
  微處理器由一片或少數幾片大規模集成電路組成的中央處理器。這些電路執行控制部件和算術邏輯部件的功能。微處理器能完成取指令、執行指令,以及與外界存儲器和邏輯部件交換信息等操作,是微型計算機的運算控制部分。它可與存儲器和外圍電路芯片組成微型計算機。
    計算機的發展主要表現在其核心部件——微處理器的發展上,每當一款新型的微處理器出現時,就會帶動計算機系統的其他部件的相應發展,如計算機體系結構的進一步優化,存儲器存取容量的不斷增大、存取速度的不斷提高,外圍設備的不斷改進以及新設備的不斷出現等。根據微處理器的字長和功能,可將其發展划分為以下幾個階段。

第1階段(1971——1973年)是4位和8位低檔微處理器時代,通常稱為第1代。
第2階段(1974——1977年)是8位中高檔微處理器時代,通常稱為第2代。
第3階段(1978——1984年)是16位微處理器時代,通常稱為第3代。
第4階段(1985——1992年)是32位微處理器時代,又稱為第4代。
第5階段(1993-2005年)是奔騰(pentium)系列微處理器時代,通常稱為第5代。
第6階段(2005年至今)是酷睿(core)系列微處理器時代,通常稱為第6代。“酷睿”是一款領先節能的新型微架構,設計的出發點是提供卓然出眾的性能和能效,提高每瓦特性能,也就是所謂的能效比。
若想具體了解CPU歷史參見百度百科:
https://baike.baidu.com/item/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8/284033?fr=aladdin&fromid=368184&fromtitle=%EF%BC%A3%EF%BC%B0%EF%BC%B5#10
![](https://img2018.cnblogs.com/blog/1825659/201910/1825659-20191009211210605-1031939694.jpg)

四 運算器與控制器(了解)

常將運算器和控制器合稱為中央處理器(Central Processing Unit,CPU)。

其中運算器用來主要負責程序運算與邏輯判斷,控制器則主要協調各組件和各單元的工作,所以CPU的工作主要在於管理和運算。可以說計算機的大腦就是CPU

#1、運算器

  運算器是對信息進行處理和運算的部件。經常進行的運算是算術運算和邏輯運算,所以運算器又可稱為算術邏輯運算部件(Arithmetic and Logical,ALU)。

  運算器的核心是加法器。運算器中還有若干個通用寄存器或累加寄存器,用來暫存操作數並存放運算結果。寄存器的存取速度比存儲器的存放速度快很多。

#2 控制器
  控制器是整個計算機的指揮中心,它的主要功能是按照人們預先確定的操作步驟,控制整個計算機的各部件有條不紊的自動工作。

  控制器從主存中逐條地讀取出指令進行分析,根據指令的不同來安排操作順序,向各部件發出相應的操作信號,控制它們執行指令所規定的任務。控制器中包括一些專用的寄存器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM