計算機硬件基礎知識(二)CPU


一、 認識計算機的大腦

1.1、計算機所有的組成都是模仿人的某一功能或器官而產生的,計算機俗稱“電腦”,計算機通上電后能夠真的像人腦一樣去工作。

1.2、為何要有計算機?為了執行人類的程序,從而把人類解放出來。優點:工作效率高。缺點:離開電活不了。

二、計算機硬件可分為五大部分:CPU(Central Processing Unit)、內存(RAM)、硬盤(hard disk)、輸入設備(input)、輸出設備(output)。

2.1、CPU:控制器+運算器+寄存器==>CPU又稱中央處理器, 相當於人的大腦總的運算中心,控制中心。

  控制器:計算機的指揮系統。控制器通過地址訪問存儲器,從存儲器中取出指令,經譯碼器分析后,根據指令分析結果產生相應的操作控制信號作用於其他部件,使得各部件在控制器控制下有條不紊地協調工作。

2.1.2、運算器:實現算術運算和邏輯運算的部件。

2.2、內存(內存儲器): 臨時存儲數據. 優點:讀取速度快。 缺點:容量小,造價高,斷電即消失。

2.3、硬盤(外存儲器): 長期存儲數據. 優點:容量大,造價相對低,斷電不消失。 缺點:讀取速度慢。

  存儲器:是計算機用來存放所有數據和程序的記憶部件。它的基本功能是按指定的地址存(寫)入或者取(讀)出信息。

  計算機中的存儲器可分成兩大類:

    內存儲器,簡稱內存或主存;

    外存儲器(輔助存儲器),簡稱外存或輔存。 存儲器由若干個存儲單元組成,每個存儲單元都有一個地址,計算機通過地址對存儲單元進行讀寫。一個存儲器所包含的字節數稱為存儲容量,換算單位如下

    b = bit 位(比特)

    B = Byte 字節1Byte = 8 bit    #一個字節等於8位 可以簡寫成 1B = 8b

    1KB = 1024B 1MB = 1024KB   1GB = 1024MB 1TB = 1024GB 1PB = 1024TB 1EB = 1024PB

2.4、輸入設備(Input)+輸出設備(Output)==>IO設備 。

  輸入設備:是向計算機中輸入信息(程序、數據、聲音、文字、圖形、圖像等)的設備。常見的輸入設備有:鍵盤、鼠標、圖形掃描儀、觸摸屏、條形碼輸入器、光筆等。 外存儲器也是一種輸入設備。

  輸出設備:主要有顯示器、打印機和繪圖儀等。外存儲器也當作一種輸出設備。

2.5、計算機五大部分的工作流程是:輸入單元-->內存-->CPU -->內存-->輸出單元。如下圖所示:

      

三、CPU工作流程

3.1、CPU工作流程:從內存中取出指令--->解碼--->執行。

3.1.1、CPU:運算器和控制的合稱:中央處理器(Central Processing Unit),運算器主要負責運算和邏輯判斷,控制器主要協調各組件和各單元的的工作。CPU的主要工作就是管理和運算。

3.1.2、運算器:是對信息進行處理和運算的部件,主要負責算術運算和邏輯判斷運算又稱為算術邏輯運算部件(arithmetic logic unit,ALU)。運算器的核心是加法器。運算器中還有若干個通用寄存器累加寄存器,用來暫存操作數並存放運算結果。寄存器的存取速度比存儲器的存放速度快。

3.1.3、控制器:是整台計算機的指揮中心,它主要的功能是按照人們事先定義好的操作步驟,控制整個計算機的各個部件有條不紊的自動工作。

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

      

3.2、CPU指令集

  引子:在超大規模集成電路構成的微型計算機中,往往將CPU制成一塊具有特定功能的芯片,稱作微處理器,芯片里面有提前編寫好指令集。我們使用程序對計算機的所有操作最終會轉換成CPU認識的指令去完成,如:對文件的增刪改查,閱讀網頁,觀看影音,這些都要參考CPU是否內置有關的指令集,如果沒有就不會操作。

  CPU是計算機的大腦,CPU在出廠時候集成了一系列具體控制其他身體器官做事的指令集(即指令集是CPU的靈魂),所以可以認為計算機的所有組件都是CPU發出的指令控制操作的。

  程序員編程的目的是為了操作計算機的硬件進行工作,編寫的代碼會轉換成CPU的指令集從而控制其他硬件工作。如下圖所示:

      

  1、內存中存放的是程序員的代碼(代碼即指令)。

  2、CPU從內存中取出這些指令后,翻譯成自己能讀懂的指令,再去執行該指令

3.3、指令集的深入學習:  

  一條指令一般包括兩個部分:操作碼和地址碼。
    a) 操作碼其實就是指令序列號,用來告訴CPU需要執行的是那一條指令。
    b) 地址碼則復雜一些,主要包括源操作數地址、目的地址和下一條指令的地址。在某些指令中,地址碼可以部分或全部省略,比如一條空指令就只有操作碼而沒有地址碼。
    c) 舉個例子吧,某個指令系統的指令長度為32位,操作碼長度為8位,地址長度也為8位,且第一條指令是加,第二條指令是減。當它收到一個 “00000010000001000000000100000110”的指令時,先取出它的前8位操作碼,即00000010,分析得出這是一個減法操作,有3個地址,分別是兩個源操作數地址和一個目的地址。於是,CPU就到內存地址00000100處取出被減數,到00000001處取出減數,送到 ALU中進行減法運算,然后把結果送到00000110處。
  這只是一個相當簡單化的例子,實際情況要復雜的多。

3.4、CPU分類(了解)不同的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兩種,區別在於前者的指令集精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要做復雜的

事情,就要由多個指令來完成。后者的指令集每個小指令可以執行一些較低階的硬件操作,指令數目多而且復雜,每條指令的長度並不相同。因為指令執行較為復雜所以每條指令花費的時間
較長,但每條個別指令可以處理的工作較為豐富。

3.5、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輛車

X86架構的64位 cpu具有向下兼容性:64的cpu既能運行32位的程序也能運行64位的程序

 

3.6、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

 

四、內核態與用戶態

代表cpu的兩種工作狀態
  1、內核態:運行的程序是操作系統,可以操作計算機硬件
  2、用戶態:運行的程序是應用程序,不能操作計算機硬件

內核態與用戶態的轉換
  應用程序的運行必然涉及到計算機硬件的操作,那就必須有用戶態切換到
  內核態下才能實現,所以計算機工作時在頻繁發生內核態與用戶態的轉換

五、多線程和多核芯片

多線程與多核芯片
  2核4線程:
    2核代表有兩個cpu,4線程指的是每個cpu都有兩個線程=》假4核

  4核8線程
    4核代表有4個cpu,8線程指的是每個cpu都有兩個線程=》假8核 

 

 

 


免責聲明!

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



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