基本介紹
- 中文名:中央處理器
- 外文名:Central Processing Unit(CPU)
- 所屬學科:計算機科學
發展歷史,工作原理,簡介,性能結構,性能衡量指標,CPU結構,CPU匯流排,核心部分,運算器,控制器,品牌介紹,“龍芯”系列晶片,Intel,AMD,上海兆芯,上海申威,分類,指令集的方式,嵌入式系統CPU,大型機CPU,控制技術形式,與GPU比較,GPU,設計結構,使用場景,安全問題,未來發展,
發展歷史
CPU出現於大規模積體電路時代,處理器架構設計的疊代更新以及積體電路工藝的不斷提升促使其不斷發展完善。從最初專用於數學計算到廣泛套用於通用計算,從4位到8位、16位、32位處理器,最後到64位處理器,從各廠商互不兼容到不同指令集架構規範的出現,CPU自誕生以來一直在飛速發展。
CPU發展已經有50多年的歷史了。我們通常將其分成六個階段。
1971年,Intel生產的4004微處理器將運算器和控制器集成在一個晶片上,標誌著CPU的誕生; 1978年,8086處理器的出現奠定了X86指令集架構, 隨後8086系列處理器被廣泛套用於個人計算機終端、高性能伺服器以及雲伺服器中。
(2)第二階段(1974年-1977年)。這是8位中高檔微處理器時代,代表產品是Intel 8080。此時指令系統已經比較完善了。
(3)第三階段(1978年-1984年)。這是16位微處理器的時代,代表產品是Intel 8086。相對而言已經比較成熟了。
(4)第四階段(1985年-1992年)。這是32位微處理器時代,代表產品是Intel 80386。已經可以勝任多任務、多用戶的作業。
(5)第五階段(1993年-2005年)。這是奔騰系列微處理器的時代。
1995 年11 月,Intel發布了Pentium處理器,該處理器首次採用超標量指令流水結構,引入了指令的亂序執行和分支預測技術,大大提高了處理器的性能, 因此,超標量指令流水線結構一直被後續出現的現代處理器,如AMD(Advanced Micro devices)的銳龍、Intel的酷睿系列等所採用。
工作原理
馮諾依曼體系結構是現代計算機的基礎。在該體系結構下,程式和數據統一存儲,指令和數據需要從同一存儲空間存取,經由同一匯流排傳輸,無法重疊執行。根據馮諾依曼體系,CPU的工作分為以下 5 個階段:取指令階段、指令解碼階段、執行指令階段、訪存取數和結果寫回。
執行指令階段(EX,execute),具體實現指令的功能。CPU的不同部分被連線起來,以執行所需的操作。
訪存取數階段(MEM,memory),根據指令需要訪問主存、讀取運算元,CPU得到運算元在主存中的地址,並從主存中讀取該運算元用於運算。部分指令不需要訪問主存,則可以跳過該階段。
結果寫回階段(WB,write back),作為最後一個階段,結果寫回階段把執行指令階段的運行結果數據“寫回”到某種存儲形式。結果數據一般會被寫到CPU的內部暫存器中,以便被後續的指令快速地存取;許多指令還會改變程式狀態字暫存器中標誌位的狀態,這些標誌位標識著不同的操作結果,可被用來影響程式的動作。
在指令執行完畢、結果數據寫回之後,若無意外事件(如結果溢出等)發生,計算機就從程式計數器中取得下一條指令地址,開始新一輪的循環,下一個指令周期將順序取出下一條指令。許多複雜的CPU可以一次提取多個指令、解碼,並且同時執行。
簡介
中央處理器(CPU),是電子計算機的主要設備之一,電腦中的核心配件。其功能主要是解釋計算機指令以及處理計算機軟體中的數據。CPU是計算機中負責讀取指令,對指令解碼並執行指令的核心部件。中央處理器主要包括兩個部分,即控制器、運算器,其中還包括高速緩衝存儲器及實現它們之間聯繫的數據、控制的匯流排。電子計算機三大核心部件就是CPU、內部存儲器、輸入/輸出設備。中央處理器的功效主要為處理指令、執行操作、控制時間、處理數據。
在計算機體系結構中,CPU是對計算機的所有硬體資源(如存儲器、輸入輸出單元) 進行控制調配、執行通用運算的核心硬體單元。CPU是計算機的運算和控制核心。計算機系統中所有軟體層的操作,最終都將通過指令集映射為CPU的操作。
性能結構
性能衡量指標
對於CPU而言,影響其性能的指標主要有主頻、 CPU的位數、CPU的快取指令集、CPU核心數和IPC(每周期指令數)。所謂CPU的主頻,指的就是時鐘頻率,它直接的決定了CPU的性能,可以通過超頻來提高CPU主頻來獲得更高性能。而CPU的位數指的就是處理器能夠一次性計算的浮點數的位數,通常情況下,CPU的位數越高,CPU進行運算時候的速度就會變得越快。21世紀20年代後個人電腦使用的CPU一般均為64位,這是因為64位處理器可以處理範圍更大的數據並原生支持更高的記憶體定址容量,提高了人們的工作效率。而CPU的快取指令集是存儲在CPU內部的,主要指的是能夠對CPU的運算進行指導以及最佳化的硬程式。一般來講,CPU 的快取可以分為一級快取、二級快取和三級快取,快取性能直接影響CPU處理性能。部分特殊職能的CPU可能會配備四級快取。
CPU結構
積體電路在計算機內起到了調控信號的作用,根據用戶操作指令執行不同的指令任務。中央處理器是一塊超大規模的積體電路。它由運算器、控制器、暫存器等組成,如下圖,關鍵操作在於對各類數據的加工和處理。
傳統計算機存儲容量較小,面對大規模數據集的操作效率偏低。新一代計算機採用高配置處理器作為控制中心,CPU在結構功能方面有了很大的提升空間。中央處理器以運算器、控制器為主要裝置,逐漸擴散為邏輯運算、暫存控制、程式編碼、信號收發等多項功能。這些都加快了CPU調控性能的最佳化升級。
CPU匯流排
CPU匯流排是在計算機系統中最快的匯流排,同時也是晶片組與主機板的核心。人們通常把和CPU直接相連的局部匯流排叫做CPU匯流排或者稱之為內部匯流排,將那些和各種通用的擴展槽相接的局部匯流排叫做系統匯流排或者是外部匯流排。在內部結構比較單一的CPU中,往往只設定一組數據傳送的匯流排即CPU內部匯流排,用來將CPU內部的暫存器和算數邏輯運算部件等連線起來,因此也可以將這一類的匯流排稱之為ALU匯流排。而部件內的匯流排,通過使用一組匯流排將各個晶片連線到一起,因此可以將其稱為部件內匯流排,一般會包含地址線以及數據線這兩組線路。系統匯流排指的是將系統內部的各個組成部分連線在一起的線路,是將系統的整體連線到一起的基礎;而系統外的匯流排,是將計算機和其他的設備連線到一起的基礎線路。
核心部分
運算器
(1)算術邏輯單元(ALU)。算術邏輯單元是指能實現多組 算術運算與邏輯運算的組合邏輯電路,其是中央處理中的重要組成部分。算術邏輯單元的運算主要是進行二位元算術運算,如加法、減法、乘法。在運算過程中,算術邏輯單元主要是以計算機指令集中執行算術與邏輯操作,通常來說,ALU能夠發揮直接讀入讀出的作用,具體體現在處理器控制器、記憶體及輸入輸出設備等方面,輸入輸出是建立在匯流排的基礎上實施。輸入指令包含一 個指令字,其中包括操作碼、格式碼等。
(2)中間暫存器(IR)。其長度為 128 位,其通過運算元來決定實際長度。IR 在“進棧並取數”指令中發揮重要作用,在執行該指令過程中,將ACC的內容傳送於IR,之後將運算元取到ACC,後將IR內容進棧。
(3)運算累加器(ACC)。當前的暫存器一般都是單累加器,其長度為128位。對於ACC來說,可以將它看成可變長的累加器。在敘述指令過程中,ACC長度的表示一般都是將ACS的值作為依據,而ACS長度與 ACC 長度有著直接聯繫,ACS長度的加倍或減半也可以看作ACC長度加倍或減半。
(4)描述字暫存器(DR)。其主要套用於存放與修改描述字中。DR的長度為64位,為了簡化數據結構處理,使用描述字發揮重要作用。
控制器
控制器是指按照預定順序改變主電路或控制電路的接線和 改變電路中電阻值來控制電動機的啟動、調速、制動與反向的主令裝置。控制器由程式狀態暫存器PSR,系統狀態暫存器SSR, 程式計數器PC,指令暫存器等組成,其作為“決策機構”,主要任務就是發布命令,發揮著整個計算機系統操作的協調與指揮作用。 控制的分類主要包括兩種,分別為組合邏輯控制器、微程式控制器,兩個部分都有各自的優點與不足。其中組合邏輯控制器結構相對較複雜,但優點是速度較快;微程式控制器設計的結構簡單,但在修改一條機器指令功能中,需對微程式的全部重編。
品牌介紹
“龍芯”系列晶片
“龍芯”系列晶片是由中國科學院中科技術有限公司設計研製的,採用MIPS體系結構,具有自主智慧財產權,產品現包括龍芯1號小CPU、龍芯2號中CPU和龍芯3號大CPU三個系列,此外還包括龍芯7A1000橋片。 龍芯1號系列32/64位處理器專為嵌入式領域設計,主要套用於雲終端、工業控制、數據採集、手持終端、網路安全、消費電子等領域,具有低功耗、高集成度及高性價比等特點。其中龍芯lA 32位處理器和龍芯1C 64位處理器穩定工作在266~300 MHz,龍芯1B處理器是一款輕量級32位晶片。龍芯1D處理器是超音波熱表、水錶和氣表的專用晶片。2015年,新一代北斗導航衛星搭載著我國自主研製的龍芯1E和1F晶片,這兩顆晶片主要用於完成星間鏈路的數據處理任務一。
龍芯2號系列是面向桌面和高端嵌入式套用的64位高性能低功耗處理器。龍芯2號產品包括龍芯2E、2F、2H和2K1000等晶片。龍芯2E首次實現對外生產和銷售授權。龍芯2F平均性能比龍芯 2E高20%以上,可用於個人計算機、行業終端、工業控制、數據採集、網路安全等領域。龍芯2H於2012年推出正式產品,適用計算機、雲終端、網路設備、消費類電子等領域需求,同時可作為HT或者 PCI-e接口的全功能套片使用。2018年,龍芯推出龍芯2K1000處理器,它主要是面向網路安全領域及移動智慧型領域的雙核處理晶片,主頻可達1 GHz,可滿足工業物聯網快速發展、自主可控工業安全體系的需求。
龍芯3號系列是面向高性能計算機、伺服器和高端桌面套用的多核處理器,具有高頻寬,高性能,低功耗的特徵。龍芯3A3000/3B3000處理器採用自主微結構設計,主頻可達到1.5 GHz以上;計畫2019年面向市場的龍芯3A4000為龍芯第三代產品的首款四核晶片,該晶片基於28nm工藝,採用新研發的GS464V 64位高性能處理器核架構,並實現 256位向量指令,同時最佳化片內互連和訪存通路, 集成64位DDR3/4記憶體控制器,集成片內安全機 制,主頻和性能將再次得到大幅提升。
龍芯7A1000橋片是龍芯的第一款專用橋片組產品,目標是替代AMD RS780+SB710橋片組,為龍芯處理器提供南北橋功能。它於2018年2月份發布,目前搭配龍芯3A3000以及紫光4G DDR3記憶體套用在一款高性能網路平台上。該方案整體性能相較於3A3000+780e平台有較大提升,具有高國產率、高性能、高可靠性等特點。
Intel
AMD
根據AMD產品線規劃,截至2021年AMD銳龍5000系列處理器有Ryzen 9/Ryzen 7/Ryzen 5/Ryzen 3四個消費級產品線。此外還有面向伺服器市場的第三代霄龍EPYC處理器和面向HEDT平台的執行緒撕裂者系列。
上海兆芯
上海兆芯積體電路有限公司是成立於2013年的國資控股公司,其生產的處理器採用x86架構,產品主要有開先ZX-A、ZX-c/ZX-C+、 ZX-D、開先KX一 5000和KX一6000;開勝ZX—C+、ZX—D、KH一20000 等。其中開先KX一5000系列處理器採用28 nm工藝,提供4核或8核兩種版本,整體性能較上一代產品提升高達140%,達到國際主流通用處理器性能水準,能夠全面滿足黨政桌面辦公套用,以及包括4K超高清視頻觀影等多種娛樂套用需求。開勝KH-20000系列處理器是兆芯面向伺服器等設備推出的CPU產品。開先KX-6000系列處理器主頻高達3.0 GHz,兼容全系列Windows作業系統及中科方德、中標麒麟、普華等國產自主可控作業系統,性能與Intel第七代的酷睿i5相當。
上海申威
申威處理器簡稱“Sw處理器”,出自於DEC的Alpha 21164,採用Alpha架構,具有完全自主智慧財產權,其產品有單核Sw-1、雙核Sw-2、四核Sw-410、十六核SW-1600/SW-1610等。神威藍光超級計算機使用了8704片SW一1600,搭載神威睿思作業系統,實現了軟體和硬體全部國產化。而基於Sw-26010構建的“神威·太湖之光”超級計算機自2016 年6月發布以來,已連續四次占據世界超級計算機TOP 500榜單第一,“神威·太湖之光”上的兩項千萬 核心整機套用包攬了2016、2017年度世界高性能計算套用領域最高獎“戈登·貝爾”獎。
分類
指令集的方式
CPU的分類還可以按照指令集的方式將其分為精簡指令集計算機(RISC)和複雜指令集計算機(CISC)。RISC指令長度和執行時間恆定,CISC指令長度和執行時間不一定。 RISC 指令的並行的執行程度更好,並且編譯器的效率也較高。CISC指令則對不同的任務有著更好的最佳化,代價是電路複雜且較難提高並行度。典型的CISC指令集有x86微架構,典型的RISC指令集有ARM微架構。但在現代處理器架構中RISC和CISC指令均會在解碼環節進行轉換,拆分成CPU內部的類RISC指令
嵌入式系統CPU
傳統的嵌入式領域所指範疇非常廣泛,是處理器除了伺服器和PC領域之外的主要套用領域。所謂“嵌入式”是指在很多晶片中,其所包含的處理器就像嵌入在裡面不為人知一樣。
近年來隨著各種新技術新領域的進一步發展,嵌入式領域本身也被發展成了幾個不同的子領域而產生了分化。
其次是實時(Real Time)嵌入式領域。該領域相對而言沒有那么嚴重的軟體依賴性,因此沒有形成絕對的壟斷,但是由於ARM處理器IP商業推廣的成功,目前仍然以ARM的處理器架構占大多數市場份額,其他處理器架構譬如Synopsys ARC等也有不錯的市場成績。
最後是深嵌入式領域。該領域更像前面所指的傳統嵌入式領域。該領域的需求量非常之大,但往往注重低功耗、低成本和高能效比,無須載入像Linux這樣的大型套用作業系統,軟體大多是需要定製的裸機程式或者簡單的實時作業系統,因此對軟體生態的依賴性相對比較低。
大型機CPU
大型機體系結構主要包括以下兩點:高度虛擬化,系統資源全部共享。大型機可以整合大量的負載於一體,並實現資源利用率的最大化;異步I/O操作。即當執行I/O操作時CPU將I/O指令交給I/O子系統來完成,CPU自己被釋放執行其它指令。因此主機在執行繁重的I/O任務的同時,還可以同時執行其它工作。
控制技術形式
中央處理器強大的數據處理功有效提升了計算機的工作效率,在數據加工操作時,並不僅僅只是一項簡單的操作,中央處理器的操作是建立在計算機使用人員下達的指令任務基礎上,在執行指令任務過程中,實現用戶輸入的控制指令與CPU的相對應。隨著我國信息技術的快速發展,計算機在人們生活、工作 以及企業辦公自動化中得到廣泛套用,其作為一種主控設備,為促進電子商務網路的發展起著促進作用,使 CPU 控制性能的升級進程得到很大提高。指令控制、實際控制、操作控制等就是計算機CPU技術套用作用表現。
(1)選擇控制。集中處理模式的操作,是建立在具體程式指令的基礎上實施,以此滿足計算機使用者的需求,CPU 在操作過程中可以根據實際情況進行選擇,滿足用戶的數據流程需求。 指令控制技術發揮的重要作用。根據用戶的需求來擬定運算方式,使數據指令動作的有序制定得到良好維持。CPU在執行當中,程式各指令的實施是按照順利完成,只有使其遵循一定順序,才能保證計算機使用效果。CPU主要是展開數據集自動化處理,其 是實現集中控制的關鍵,其核心就是指令控制操作。
(2)插入控制。CPU 對於操作控制信號的產生,主要是通過指令的功能來實現的,通過將指令發給相應部件,達到控制這些部件的目的。實現一條指令功能,主要是通過計算機中的部件執行一序列的操作來完成。較多的小控制元件是構建集中處理模式的關鍵,目的是為了更好的完成CPU數據處理操作。
(3)時間控制。將時間定時套用於各種操作中,就是所謂的時間控制。在執行某一指令時,應當在規定的時間內完成,CPU的指令是從高速緩衝存儲器或存儲器中取出,之後再進行指令解碼操作,主要是在指令暫存器中實施,在這個過程中,需要注意嚴格控制程式時間。
與GPU比較
GPU
設計結構
CPU有強大的算術運算單元,可以在很少的時鐘周期內完成算術計算。同時,有很大的快取可以保存很多數據在裡面。此外,還有複雜的邏輯控制單元,當程式有多個分支的時候, 通過提供分支預測的能力來降低延時。GPU是基於大的吞吐量設計,有很多的算術運算單元和很少的快取。同時GPU支持大量的執行緒同時運行,如果他們需要訪問同一個數據,快取會合併這些訪問,自然會帶來延時的問題。儘管有延時,但是因為其算術運算單元的數量龐大,因此能夠達到一個非常大的吞吐量的效果。
使用場景
顯然,因為CPU有大量的快取和複雜的邏輯控制單元,因此它非常擅長邏輯控制、串列的運算。相比較而言,GPU因為有大量的算術運算單元,因此可以同時執行大量的計算工作,它所擅長的是大規模的並發計算, 計算量大但是沒有什麼技術含量,而且要重複很多次。這樣一說,我們利用GPU來提高程式運算速度的方法就顯而易見了。使用CPU來做複雜的邏輯控制,用GPU來做簡單但是量大的算術運算,就能夠大大地提高程式的運行速度。
安全問題
CPU 蓬勃發展的同時也帶來了許多的安全問題。1994 年出現在Pentium處理器上的 FDIV bug(奔騰浮點除錯誤)會導致浮點數除法出現錯誤;1997年Pentium處理器上的F00F異常指令可導致CPU當機;2011年Intel處理器可信執行技術(TXT,trusted execution technology)存在緩衝區溢出問題,可被攻擊者用於許可權提升;2017年 Intel管理引擎(ME,management engine)組件中的漏洞可導致遠程非授權的任意代碼執行;2018年,Meltdown 和Spectre兩個CPU漏洞幾乎影響到過去20年製造的每一種計算設備,使得存儲在數十億設備上的隱私信息存在被泄露的風險。這些安全問題嚴重危害國家網路安全、關鍵基礎設施安全及重要行業的信息安全,已經或者將要造成巨大損失。