中央處理器
中央處理器(Central Processing Unit,簡稱CPU)係電腦一個主要裝置,功能主要係解釋電腦指令同埋處理電腦軟件資料。

術語通常用嚟指 中央處理器(CPU),系統中嘅主要處理器。[1] 然而,佢都可以指其他協同處理器,好似圖像處理器(GPU)噉。[2]
CPU 係電腦裏面相當重要嘅元件,幾乎大大小小嘅嘢,都要靠佢來打理;運算、控制、邏輯處理咁,無一不經過 CPU。選用嘅 CPU 速度越快,電腦嘅整體效率亦相對提高。
傳統嘅處理器通常都係基於矽;然而,研究人員已經開發咗基於替代材料嘅實驗性處理器,例如 碳納米管、[3] 石墨烯、[4] 鑽石、[5] 同埋由 第3族 同 第5族 元素組成嘅合金。[6] 由單原子厚度嘅矽原子片同埋其他 2D 材料製成嘅電晶體,已經俾人研究用於處理器。[7] 量子處理器 已經俾人創造出嚟;佢哋用 量子疊加 嚟表示 位元(叫做 量子位元),而唔係得開或者關嘅狀態。[8][9]
摩爾定律
編輯摩爾定律,以 戈登·摩爾 命名,係一個觀察同埋通過歷史趨勢預測嘅定律,即係集成電路入面嘅電晶體數量,同埋由此延伸嘅處理器,每兩年就會翻一番。[10] 處理器嘅進步一直都緊貼住摩爾定律。[11]
歷史
編輯早期嘅電腦,好似 ENIAC 噉,要執行唔同嘅任務就必須重新接線,呢啲機器因而俾人叫做「固定程式電腦」。[12] 「中央處理器」呢個詞語,遠至 1955 年就已經開始用。[13][14] 由於「CPU」呢個術語通常定義為執行 軟件(電腦程式)嘅設備,因此最早可以真正叫做 CPU 嘅設備,係隨著 儲存程式電腦 嘅出現而嚟嘅。
儲存程式電腦嘅概念喺 約翰·珀斯珀·埃克特 同 約翰·威廉·莫奇利 嘅 ENIAC 設計中已經存在,但係最初俾省略咗,為咗可以更快完成。[15] 喺 1945 年 6 月 30 號,ENIAC 整出嚟之前,數學家 約翰·馮·諾伊曼 發佈咗一份題為 EDVAC 報告初稿 嘅論文。呢份係儲存程式電腦嘅大綱,最終喺 1949 年 8 月完成。[16] EDVAC 嘅設計目的係執行各種唔同類型嘅一定數量嘅指令(或者操作)。最重要嘅係,為 EDVAC 編寫嘅程式會儲存喺高速 電腦記憶體 入面,而唔係由電腦嘅物理佈線嚟指定。[17] 呢個克服咗 ENIAC 嘅一個嚴重限制,即係重新配置電腦以執行新任務需要大量時間同精力。[18] 有咗馮·諾伊曼嘅設計,EDVAC 運行嘅程式可以簡單噉通過更改記憶體嘅內容嚟更改。EDVAC 唔係第一部儲存程式電腦;曼徹斯特嬰兒機 係一部細規模嘅實驗性儲存程式電腦,喺 1948 年 6 月 21 號運行咗佢嘅第一個程式[19],而 曼徹斯特 Mark 1 喺 1949 年 6 月 16–17 號晚黑運行咗佢嘅第一個程式。[20]
早期嘅 CPU 係自訂設計,用作更大、有時係獨特電腦嘅一部分。[21] 然而,為咗特定應用而設計自訂 CPU 嘅呢種方法,已經好大程度上讓路俾大量生產嘅多用途處理器嘅發展。呢種標準化始於分離式 電晶體 大型機 同 迷你電腦 嘅時代,並且隨著 積體電路(IC)嘅普及而迅速加速。IC 容許設計同製造越來越複雜嘅 CPU,公差達到 納米 級別。[22] CPU 嘅小型化同標準化都增加咗數碼設備喺現代生活嘅普及程度,遠遠超出咗專用電腦有限嘅應用範圍。現代微處理器出現喺電子設備入面,範圍好廣,由汽車[23] 到手機,[24] 有時甚至喺玩具入面都有。[25][26]
雖然馮·諾伊曼因為佢設計咗 EDVAC 而最常俾人讚揚設計咗儲存程式電腦,而且呢個設計俾人叫做 馮·諾伊曼架構,但係喺佢之前嘅其他人,例如 康拉德·楚澤,都已經提出同實施咗類似嘅想法。[27] 哈佛架構 嘅 哈佛 Mark I,佢喺 EDVAC 之前完成,[28][29] 亦都使用咗儲存程式設計,用 穿孔帶,而唔係電子記憶體。[30] 馮·諾伊曼架構同哈佛架構之間嘅主要區別在於,後者分開儲存同處理 CPU 指令同數據,而前者就係指令同數據都使用相同嘅記憶體空間。[31] 大多數現代 CPU 主要係馮·諾伊曼設計,但係哈佛架構嘅 CPU 都睇得到,尤其係喺嵌入式應用入面;例如,Atmel AVR 微控制器就係哈佛架構處理器。[32]
繼電器 同 真空管(熱電子管)通常用作開關元件;[33][34] 一部有用嘅電腦需要數千個或者數萬個開關設備。系統嘅整體速度取決於開關嘅速度。真空管電腦,好似 EDVAC 噉,平均每八個鐘頭就會發生故障,而繼電器電腦——好似速度較慢但更早嘅 哈佛 Mark I——就極少發生故障。[14] 最後,基於電子管嘅 CPU 成為咗主流,因為佢哋提供嘅顯著速度優勢通常超過咗可靠性問題。大多數呢啲早期嘅同步 CPU 嘅運行時脈頻率 同現代微電子設計相比都好低。時脈信號頻率喺 100 kHz 至 4 MHz 之間喺嗰個時期非常普遍,主要受到佢哋構建所用嘅開關設備速度限制。[35]
電晶體 CPU
編輯CPU 嘅設計複雜性隨著各種技術嘅發展而增加,呢啲技術促進咗喺緊湊空間入面構建更細更可靠嘅電子設備。第一個噉樣嘅改進係隨著 電晶體 嘅出現而嚟嘅。喺 1950 年代同 1960 年代,電晶體化嘅 CPU 唔再需要由笨重、唔可靠同脆弱嘅開關元件(好似 真空管 同 繼電器)嚟構建。[36] 透過呢個改進,更複雜同更可靠嘅 CPU 俾構建喺一個或者多個 印刷電路板 上面,印刷電路板包含分離式(個別)組件。
喺 1964 年,IBM 推出咗佢嘅 IBM System/360 電腦架構,呢個架構用於一系列能夠以唔同速度同效能運行相同程式嘅電腦。[37] 喺當時,大多數電子電腦都彼此唔兼容,即使係同一製造商生產嘅電腦都係噉,呢個係好重要嘅。為咗促進呢個改進,IBM 使用咗 微程式(通常叫做「微碼」)嘅概念,微程式喺現代 CPU 中仍然得到廣泛應用。[38] System/360 架構非常受歡迎,以至於佢喺 大型電腦 市場中佔據咗幾十年嘅主導地位,並且留下咗遺產,呢個遺產俾類似嘅現代電腦(好似 IBM zSeries)繼承落嚟。[39][40] 喺 1965 年,數碼設備公司(DEC)推出咗另一款有影響力嘅電腦,目標係科學同研究市場——PDP-8。[41]
基於電晶體嘅電腦比起佢哋嘅前身有幾個明顯嘅優勢。除咗促進更高嘅可靠性同更低嘅功耗之外,電晶體仲容許 CPU 以更高嘅速度運行,因為電晶體嘅開關時間比起電子管或者繼電器更短。[42] 開關元件嘅可靠性提高咗,速度亦都大幅提高咗,喺嗰個時期,開關元件幾乎完全係電晶體;喺嗰個時期,好容易就可以獲得幾十兆赫茲嘅 CPU 時脈頻率。[43] 此外,當分離式電晶體同 IC CPU 俾大量使用嗰陣時,新嘅高效能設計,好似 單指令流多數據流(SIMD)向量處理器,就開始出現。[44] 呢啲早期嘅實驗性設計之後促成咗專業 超級電腦 時代嘅興起,好似 Cray 公司 同 富士通有限公司 生產嘅嗰啲電腦。[44]
小規模集成 CPU
編輯喺呢個時期,一種喺緊湊空間入面製造好多互連電晶體嘅方法俾開發出嚟。積體電路(IC)容許喺單個基於半導體嘅 晶粒 或者「晶片」上製造大量電晶體。起初,只有非常基本嘅非專用數字電路(例如 反及閘)被小型化到 IC 入面。[45] 基於呢啲「構建模組」IC 嘅 CPU 通常俾人叫做「小規模集成」(SSI)設備。SSI IC,好似 阿波羅導航電腦 入面用嘅嗰啲,通常包含多達幾十個電晶體。用 SSI IC 整出一個完整嘅 CPU 需要數千個獨立嘅晶片,但係仍然比早期嘅分離式電晶體設計消耗更少嘅空間同功率。[46]
IBM 嘅 System/370,System/360 嘅後續產品,使用咗 SSI IC,而唔係 固態邏輯技術 分離式電晶體模組。[47][48] DEC 嘅 PDP-8/I 同 KI10 PDP-10 亦都由 PDP-8 同 PDP-10 使用嘅個別電晶體轉為 SSI IC,[49] 而佢哋極受歡迎嘅 PDP-11 系列最初係用 SSI IC 整嘅,但係一旦 LSI 組件變得實用,最終就用 LSI 組件嚟實現。
大規模集成 CPU
編輯李·博伊塞爾 出版咗有影響力嘅文章,包括 1967 年嘅「宣言」,描述咗點樣用相對少量嘅 大規模集成 電路 (LSI) 嚟構建相當於 32 位元大型電腦嘅嘢。[50][51] 整 LSI 晶片嘅唯一方法,LSI 晶片係具有一百個或者更多閘極嘅晶片,係使用 金屬氧化物半導體 (MOS) 半導體製造工藝(PMOS 邏輯、NMOS 邏輯 或者 CMOS 邏輯)。然而,一啲公司繼續用雙極 電晶體-電晶體邏輯 (TTL) 晶片嚟製造處理器,因為直到 1970 年代,雙極接面電晶體都快過 MOS 晶片(一啲公司,例如 Datapoint,一直持續用 TTL 晶片嚟製造處理器,直到 1980 年代初)。[51] 喺 1960 年代,MOS IC 速度較慢,最初俾認為只適用於需要低功耗嘅應用。[52][53] 喺 費德里科·法金 喺 1968 年喺快捷半導體公司開發咗 矽閘 MOS 技術之後,MOS IC 喺 1970 年代後期好大程度上取代咗雙極 TTL,成為標準嘅晶片技術。[54]
隨著 微電子 技術嘅進步,越嚟越多嘅電晶體俾放置喺 IC 上面,減少咗完整 CPU 所需嘅個別 IC 數量。MSI 同 LSI IC 將電晶體數量增加到數百個,然後係數千個。到咗 1968 年,構建完整 CPU 所需嘅 IC 數量已經減少到 24 個唔同類型嘅 IC,每個 IC 大約包含 1000 個 MOSFET。[55] 同佢嘅 SSI 同 MSI 前身形成鮮明對比嘅係,PDP-11 嘅第一個 LSI 實現包含一個 CPU,佢只係由四個 LSI 積體電路組成。[56]
微處理器
編輯自從微處理器首次推出以嚟,佢哋幾乎完全取代咗所有其他中央處理器嘅實現方法。第一款市售微處理器,喺 1971 年生產,係 Intel 4004,而第一款廣泛使用嘅微處理器,喺 1974 年生產,係 Intel 8080。嗰個時代嘅大型機同迷你電腦製造商啟動咗專有 IC 開發計劃,以升級佢哋較舊嘅 電腦架構,並最終生產出 指令集 兼容嘅微處理器,呢啲微處理器同佢哋較舊嘅硬件同軟件向後兼容。結合 個人電腦 嘅出現同最終成功,「CPU」呢個術語而家幾乎完全應用於微處理器[a]。幾個 CPU(表示為「核心」)可以喺單個處理晶片中組合埋一齊。[57]
前幾代嘅 CPU 係作為 分離式組件 同一個或者多個電路板上嘅好多細小 積體電路(IC)嚟實現嘅。[58] 另一方面,微處理器係喺非常少量嘅 IC(通常淨係得一個)上製造嘅 CPU。[59] 由於喺單個晶粒上實現,CPU 整體尺寸更細,意味住更快嘅切換時間,因為物理因素,好似減少咗嘅閘極寄生電容。[60][61] 呢個容許同步微處理器嘅時脈頻率範圍由幾十兆赫茲到幾千兆赫茲。另外,喺 IC 上構建極其細小電晶體嘅能力增加咗單個 CPU 入面嘅複雜性同電晶體數量好多倍。呢個廣泛觀察到嘅趨勢俾 摩爾定律 描述,摩爾定律已經被證明係對 CPU(同埋其他 IC)複雜性增長嘅相當準確預測,直到 2016 年。[62][63]
雖然自 1950 年以嚟,CPU 嘅複雜性、尺寸、構造同埋一般形式發生咗巨大變化,[64] 但係基本設計同功能幾乎冇乜點變。而家幾乎所有常見嘅 CPU 都可以好準確噉描述為馮·諾伊曼儲存程式機器。[65][b]</ref> 由於摩爾定律唔再適用,人們開始關注集成電路電晶體技術嘅限制。邏輯閘 極端小型化令到現象嘅影響,好似 電遷移 同 亞閾值洩漏,變得更加顯著。[67][68] 呢啲較新嘅擔憂係導致研究人員研究新嘅計算方法(好似 量子電腦)嘅眾多因素之一,以及擴大 平行計算 同其他擴展經典馮·諾伊曼模型實用性嘅方法嘅使用。
運作
編輯大多數 CPU 嘅基本運作,無論佢哋採用乜嘢物理形式,都係執行一系列儲存嘅指令,呢個系列叫做程式。要執行嘅指令都保存在某種類型嘅 電腦記憶體 入面。幾乎所有 CPU 喺佢哋嘅運作中都遵循提取、解碼同執行步驟,呢啲步驟統稱為 指令週期。
喺執行完一個指令之後,成個過程會重複,由於 程式計數器 入面嘅數值增加咗,下一個指令週期通常會提取序列中嘅下一個指令。如果執行咗跳轉指令,程式計數器會被修改為包含跳轉到嘅指令地址,程式執行會正常繼續。喺更複雜嘅 CPU 入面,可以同時提取、解碼同執行多個指令。呢一節描述嘅係通常俾人叫做「經典 RISC 管線」嘅嘢,喺好多電子設備中使用嘅簡單 CPU(通常叫做微控制器)中都幾常見。佢喺好大程度上忽略咗 CPU 快取記憶體嘅重要作用,因此都忽略咗管道嘅訪問階段。
一啲指令會操作程式計數器,而唔係直接產生結果數據;呢啲指令通常叫做「跳轉」,並且促進程式行為,好似 迴圈、有條件程式執行(通過使用條件跳轉)同 函數 嘅存在。[c]</ref> 喺一啲處理器入面,一啲其他指令會更改 「標誌」暫存器 入面嘅位元狀態。呢啲標誌可以用嚟影響程式嘅行為方式,因為佢哋通常指示各種操作嘅結果。例如,喺呢啲處理器入面,「比較」指令評估兩個數值,並設置或者清除標誌暫存器入面嘅位元,嚟指示邊個更大,或者佢哋係咪相等;之後嘅跳轉指令就可以使用其中一個標誌嚟確定程式流程。
提取
編輯提取涉及從程式記憶體度檢索指令(指令由一個數字或者一連串數字表示)。指令喺程式記憶體入面嘅位置(地址)由 程式計數器(PC;喺 Intel x86 微處理器 中叫做「指令指針」)決定,程式計數器儲存一個數字,標識要提取嘅下一個指令嘅地址。喺提取指令之後,PC 會按指令嘅長度遞增,以便佢包含序列中下一個指令嘅地址。[d]</ref> 通常,要提取嘅指令必須從相對較慢嘅記憶體度檢索,導致 CPU 喺等待指令返回嗰陣時停頓。呢個問題喺現代處理器中主要通過快取記憶體同管道架構嚟解決(睇下面)。
解碼
編輯CPU 從記憶體提取嘅指令決定咗 CPU 將會做乜嘢。喺解碼步驟中,由 二進制解碼器 電路(叫做「指令解碼器」)執行,指令會轉換為控制 CPU 其他部分嘅信號。
指令嘅解釋方式由 CPU 嘅指令集架構 (ISA) 定義。[e]</ref> 通常,指令入面嘅一組位元(即係「字段」),叫做 操作碼,指示要執行邊個操作,而剩低嘅字段通常提供操作所需嘅補充資訊,好似運算元噉。呢啲運算元可以指定為常數值(叫做立即數值),或者指定為數值嘅位置,數值可能係 處理器暫存器 或者記憶體地址,由某啲 定址模式 決定。
喺一啲 CPU 設計中,指令解碼器係作為硬連線、唔可更改嘅二進制解碼器電路嚟實現嘅。喺其他設計中,微程式 用於將指令轉換為喺多個時脈脈衝上順序應用嘅 CPU 配置信號集。喺一啲情況下,儲存微程式嘅記憶體係可重寫嘅,令更改 CPU 解碼指令嘅方式成為可能。
執行
編輯喺提取同解碼步驟之後,就會執行執行步驟。根據 CPU 架構,呢個可能包含單個操作或者一系列操作。喺每個操作期間,控制信號會以電子方式啟用或者禁用 CPU 嘅各個部分,等佢哋可以執行全部或者部分所需嘅操作。然後操作完成,通常係響應時脈脈衝。通常,結果會寫入到內部 CPU 暫存器,俾後續指令快速訪問。喺其他情況下,結果可能會寫入到速度較慢,但成本較平而且容量較高嘅 主記憶體。
例如,如果要執行執行加法嘅指令,包含運算元(要加總嘅數字)嘅暫存器會被激活,執行加法嘅 算術邏輯單元 (ALU) 嘅部分亦都係噉。當時脈脈衝發生時,運算元會由源暫存器流入 ALU,總和會出現喺佢嘅輸出端。喺隨後嘅時脈脈衝中,其他組件會被啟用(同埋禁用),以將輸出(操作嘅總和)移動到儲存位置(例如,暫存器或者記憶體)。如果結果總和太大(即係,佢大過 ALU 嘅輸出字大小),就會設置算術溢出標誌,影響下一個操作。
結構同實現
編輯硬連線到 CPU 電路入面嘅係佢可以執行嘅一組基本操作,叫做 指令集架構。呢啲操作可能涉及,例如,加或者減兩個數字、比較兩個數字,或者跳轉到程式嘅唔同部分。每個指令都由 位元 嘅唯一組合表示,叫做機器語言 操作碼。喺處理指令嘅同時,CPU 會將操作碼(通過 二進制解碼器)解碼為控制信號,控制信號協調 CPU 嘅行為。一個完整嘅機器語言指令由一個操作碼組成,喺好多情況下,仲有額外嘅位元,佢哋指定操作嘅參數(例如,喺加法運算中要加總嘅數字)。喺複雜性量表上向上睇,機器語言程式係 CPU 執行嘅機器語言指令集合。
每個指令嘅實際數學運算都由 CPU 處理器入面嘅 組合邏輯 電路執行,呢個電路叫做 算術邏輯單元 或者 ALU。一般嚟講,CPU 通過從記憶體提取指令、使用佢嘅 ALU 執行操作,然後將結果儲存到記憶體嚟執行指令。除咗用於整數數學同邏輯運算嘅指令之外,重存在各種其他機器指令,好似由記憶體加載數據並將其存返去嘅指令、分支操作,以及由 CPU 嘅 浮點運算單元 (FPU) 執行嘅浮點數數學運算。[69]
控制器
編輯「控制器」(CU)係 CPU 嘅一個組件,佢指揮處理器嘅運作。佢話俾電腦嘅記憶體、算術同邏輯單元以及輸入輸出設備知點樣響應發送到處理器嘅指令。
佢通過提供時序同控制信號嚟指揮其他單元嘅運作。大多數電腦資源都由 CU 管理。佢指揮 CPU 同其他設備之間嘅數據流。約翰·馮·諾伊曼 將控制器納入咗 馮·諾伊曼架構 嘅一部分。喺現代電腦設計中,控制器通常係 CPU 嘅內部部分,自從佢推出以嚟,佢嘅整體作用同運作都冇變過。[70]
算術邏輯單元
編輯算術邏輯單元 (ALU) 係處理器內部嘅一個數字電路,佢執行整數算術同按位邏輯運算。ALU 嘅輸入係要操作嘅數據字(叫做 運算元)、嚟自先前操作嘅狀態資訊,以及嚟自控制器嘅代碼,指示要執行邊個操作。根據執行嘅指令,運算元可能嚟自內部 CPU 暫存器、外部記憶體或者由 ALU 本身生成嘅常數。
當所有輸入信號都穩定落嚟,並通過 ALU 電路傳播嗰陣時,執行操作嘅結果會出現喺 ALU 嘅輸出端。結果由一個數據字(可以儲存喺暫存器或者記憶體入面)同狀態資訊組成,狀態資訊通常儲存喺專門為咗呢個目的而保留嘅特殊內部 CPU 暫存器入面。
現代 CPU 通常包含多個 ALU,以提高效能。
地址生成單元
編輯地址生成單元 (AGU),有時都叫做地址計算單元 (ACU),[71] 係 CPU 內部嘅一個執行單元,佢計算 CPU 用嚟訪問 主記憶體 嘅 記憶體地址。通過使用單獨嘅電路處理地址計算,呢啲電路同 CPU 嘅其餘部分並行運作,可以減少執行各種 機器指令 所需嘅 CPU 週期 數量,從而提高效能。
喺執行各種操作嘅同時,CPU 需要計算從記憶體提取數據所需嘅記憶體地址;例如,喺 CPU 可以從實際記憶體位置提取數據之前,必須計算 陣列元素 嘅記憶體位置。嗰啲地址生成計算涉及唔同嘅 整數算術運算,好似加法、減法、模運算 或者 位元移位。通常,計算記憶體地址涉及多個通用機器指令,佢哋唔一定會快速解碼同執行。通過將 AGU 併入 CPU 設計中,連同引入使用 AGU 嘅專用指令,各種地址生成計算可以從 CPU 嘅其餘部分卸載,並且通常可以喺單個 CPU 週期中快速執行。
AGU 嘅功能取決於特定嘅 CPU 同佢嘅 電腦架構。因此,一啲 AGU 實現同公開更多嘅地址計算操作,而一啲亦都包括更高級嘅專用指令,呢啲指令可以一次操作多個 運算元。一啲 CPU 架構包括多個 AGU,因此可以同時執行多個地址計算操作,由於高級 CPU 設計嘅 超純量 性質,呢個帶來咗進一步嘅效能提升。例如,英特爾 將多個 AGU 併入咗佢嘅 Sandy Bridge 同 Haswell 微架構,通過容許多個記憶體訪問指令並行執行,從而提高咗 CPU 記憶體子系統嘅帶寬。
記憶體管理單元 (MMU)
編輯好多微處理器(喺智能電話、桌面電腦、手提電腦、伺服器電腦入面)都有記憶體管理單元,將邏輯地址轉換為物理 RAM 地址,提供 記憶體保護 同 分頁 功能,對於 虛擬記憶體 好有用。更簡單嘅處理器,尤其係 微控制器,通常唔包括 MMU。
快取記憶體
編輯CPU 快取記憶體[72] 係 硬件快取,電腦嘅中央處理器 (CPU) 使用佢嚟減少訪問 主記憶體 數據 嘅平均成本(時間或者能量)。快取記憶體係一個更細、更快嘅記憶體,更接近 處理器核心,佢儲存嚟自常用主記憶體位置嘅數據副本。大多數 CPU 都有唔同嘅獨立快取記憶體,包括 指令 同 數據快取,其中數據快取通常組織成分層結構,包含幾個快取級別(L1、L2、L3、L4 等等)。每個升序快取級別通常比前一個級別慢,但係更大,其中 L1 係最快同最接近 CPU 嘅。
所有現代(快速)CPU(除咗少數特殊例外[f]) 都有多個級別嘅 CPU 快取記憶體。第一個使用快取記憶體嘅 CPU 只有一個級別嘅快取記憶體;唔同於之後嘅一級快取記憶體,佢冇分為 L1d(用於數據)同 L1i(用於指令)。幾乎所有目前帶有快取記憶體嘅 CPU 都有一個分離式 L1 快取記憶體。佢哋仲有 L2 快取記憶體,對於較大嘅處理器,重有 L3 快取記憶體。L2 快取記憶體通常唔會拆分,而係作為已經拆分嘅 L1 快取記憶體嘅公共儲存庫。多核心處理器 嘅每個核心都有一個專用嘅 L2 快取記憶體,通常唔會喺核心之間共享。L3 快取記憶體同更高級別嘅快取記憶體喺核心之間共享,而且唔會拆分。L4 快取記憶體而家唔常見,通常喺 動態隨機存取記憶體 (DRAM) 上面,而唔係喺 靜態隨機存取記憶體 (SRAM) 上面,喺單獨嘅晶粒或者晶片上。歷史上 L1 亦都係噉嘅情況,而更大嘅晶片容許咗整合佢同一般所有快取記憶體級別,可能最後一個級別例外。每個額外嘅快取記憶體級別往往都更大,而且優化方式都唔同。
重有其他類型嘅快取記憶體存在(佢哋唔計入上面提到嘅最重要快取記憶體嘅「快取記憶體大小」),好似 轉譯後備緩衝區 (TLB),佢係 記憶體管理單元 (MMU) 嘅一部分,大多數 CPU 都有 MMU。
快取記憶體嘅大小通常係二嘅冪:2、8、16 等等 KiB 或者 MiB(對於較大嘅非 L1 快取記憶體)大小,雖然 IBM z13 有一個 96 KiB 嘅 L1 指令快取記憶體。[73]
時脈頻率
編輯大多數 CPU 都係 同步電路,呢個意味住佢哋採用 時脈信號 嚟調節佢哋嘅順序操作。時脈信號由外部 振盪器電路 產生,振盪器電路每秒產生恆定數量嘅脈衝,形式係週期性 方波。時脈脈衝嘅頻率決定咗 CPU 執行指令嘅速率,因此,時脈越快,CPU 每秒執行嘅指令就越多。
為咗確保 CPU 正常運作,時脈週期長過所有信號通過 CPU 所需嘅最長時間(移動)。喺將時脈週期設置為遠高於最壞情況 傳播延遲 嘅值嘅情況下,有可能設計成個 CPU 以及佢喺時脈信號上升同下降沿「邊緣」周圍移動數據嘅方式。呢個優點係簡化咗 CPU,無論係從設計角度定係組件數量角度嚟睇。但係,佢亦都帶嚟咗缺點,即係成個 CPU 必須等待佢最慢嘅元件,即使佢嘅一啲部分快好多。呢個限制喺好大程度上已經通過各種提高 CPU 並行性嘅方法嚟補償(睇下面)。
然而,單單架構上嘅改進並冇解決全球同步 CPU 嘅所有缺點。例如,時脈信號會受到任何其他電信號延遲嘅影響。越來越複雜嘅 CPU 中更高嘅時脈速率令保持時脈信號喺成個單元中同相位(同步)變得更加困難。呢個已經搞到好多現代 CPU 需要提供多個相同嘅時脈信號,以避免單個信號延遲得太耐,而導致 CPU 故障。另一個主要問題係,隨著時脈速率嘅急劇增加,CPU 功耗 散發嘅熱量亦都隨之增加。不斷變化嘅時脈會導致好多組件切換,無論佢哋當時係咪俾使用緊。一般嚟講,切換嘅組件比起處於靜態狀態嘅元件消耗更多能量。因此,隨著時脈速率嘅增加,功耗亦都隨之增加,導致 CPU 需要更多 散熱,形式係 CPU 散熱 解決方案。
處理唔必要組件切換嘅一種方法叫做 時脈閘控,佢涉及關閉唔必要組件嘅時脈信號(有效地禁用佢哋)。但係,呢個通常俾人認為難以實施,因此喺超低功耗設計之外睇唔到常見嘅用法。一個使用廣泛時脈閘控嘅著名嘅最新 CPU 設計係 IBM 基於 PowerPC 嘅 Xenon,用於 Xbox 360;呢個降低咗 Xbox 360 嘅功率要求。[74]
無時脈 CPU
編輯處理全球時脈信號一啲問題嘅另一種方法係完全移除時脈信號。雖然移除全球時脈信號喺好多方面令設計過程變得相當複雜,但係同類似嘅同步設計相比,異步(或者無時脈)設計喺功耗同散熱方面具有顯著嘅優勢。雖然有啲罕見,但係已經構建咗完全 異步 CPU,佢哋冇使用全球時脈信號。呢方面嘅兩個著名例子係 ARM 兼容 AMULET 同 MIPS R3000 兼容 MiniMIPS。[75]
與其完全移除時脈信號,一啲 CPU 設計容許設備嘅某啲部分係異步嘅,例如結合使用異步 ALU 同超純量管道,嚟實現一啲算術效能增益。雖然完全異步設計係咪可以達到或者優於佢哋嘅同步對應產品嘅水平,目前重未完全清楚,但係顯然佢哋至少喺更簡單嘅數學運算中表現出色。呢個,再結合佢哋出色嘅功耗同散熱特性,令佢哋非常適合 嵌入式電腦。[76]
穩壓模組
編輯好多現代 CPU 都有一個晶粒集成嘅電源管理模組,佢調節對 CPU 電路嘅按需電壓供應,容許 CPU 喺效能同功耗之間保持平衡。
整數範圍
編輯每個 CPU 都以特定嘅方式表示數值。例如,一啲早期嘅數字電腦將數字表示為熟悉嘅 十進制(以 10 為基數)數字系統 值,而另一些就採用咗更唔尋常嘅表示方式,好似 二五混合進制(以 2-5 為基數)或者 三進制(以 3 為基數)。幾乎所有現代 CPU 都以 二進制 形式表示數字,每個數字都由某個二值物理量表示,例如「高」或者「低」電壓。[g]</ref>
同數值表示相關嘅係 CPU 可以表示嘅整數嘅大小同精度。喺二進制 CPU 嘅情況下,呢個係通過 CPU 一次操作可以處理嘅位元數(二進制編碼整數嘅有效位數)嚟衡量嘅,通常叫做 「字大小」、「位元寬度」、「數據路徑寬度」、「整數精度」或者「整數大小」。CPU 嘅整數大小決定咗佢可以直接運算嘅整數值範圍。[h]</ref> 例如,一個 8 位元 CPU 可以直接操作由八個位元表示嘅整數,佢哋嘅範圍係 256 (28) 個離散整數值。
整數範圍亦都會影響 CPU 可以直接尋址嘅記憶體位置數量(地址係一個整數值,表示特定嘅記憶體位置)。例如,如果一個二進制 CPU 使用 32 個位元嚟表示記憶體地址,咁佢就可以直接尋址 232 個記憶體位置。為咗規避呢個限制,同埋基於各種其他原因,一啲 CPU 使用機制(好似 記憶體管理 或者 銀行切換),容許尋址額外嘅記憶體。
字長較大嘅 CPU 需要更多電路,因此物理尺寸更大,成本更高,功耗更高(因此產生更多熱量)。因此,即使有字長更大嘅 CPU(好似 16 位元、32 位元、64 位元,甚至 128 位元)可用,但係較細嘅 4 位元或者 8 位元 微控制器 通常都喺現代應用中使用。然而,當需要更高嘅效能嗰陣時,更大字長嘅優勢(更大嘅數據範圍同地址空間)可能會超過缺點。CPU 可以具有短過字長嘅內部數據路徑,以減少尺寸同成本。例如,即使 IBM System/360 指令集架構 係一個 32 位元指令集,System/360 型號 30 同 型號 40 喺算術邏輯單元中都具有 8 位元數據路徑,因此一個 32 位元嘅加法需要四個週期,每個週期對應運算元嘅 8 個位元,而且,即使 摩托羅拉 68000 系列 指令集係一個 32 位元指令集,摩托羅拉 68000 同 摩托羅拉 68010 喺算術邏輯單元中都具有 16 位元數據路徑,因此一個 32 位元嘅加法需要兩個週期。
為咗獲得較低同較高位元長度提供嘅一啲優勢,好多 指令集架構 對整數同浮點數據具有唔同嘅位元寬度,容許實現嗰個指令集嘅 CPU 對設備嘅唔同部分具有唔同嘅位元寬度。例如,IBM System/360 指令集主要係 32 位元,但係支持 64 位元 浮點 值,以方便喺浮點數中獲得更高嘅準確性同範圍。[38] System/360 型號 65 有一個 8 位元加法器,用於十進制同定點二進制運算,以及一個 60 位元加法器,用於浮點運算。[77] 之後嘅好多 CPU 設計都使用類似嘅混合位元寬度,尤其係當處理器旨在用於通用用途嗰陣時,喺嗰度需要整數同浮點能力嘅合理平衡。
並行性
編輯喺前一節中提供嘅 CPU 基本運作描述,描述咗 CPU 可以採用嘅最簡單形式。呢種類型嘅 CPU,通常叫做「亞純量」,一次對一個或者兩個數據片段進行操作同執行一個指令,即係每時脈週期少過一個 指令(IPC < 1)。
呢個過程導致亞純量 CPU 中存在固有嘅低效率。由於一次只執行一個指令,成個 CPU 必須等待嗰個指令完成,先至可以繼續執行下一個指令。因此,亞純量 CPU 會喺需要多過一個時脈週期先至完成執行嘅指令上「掛起」。即使添加第二個 執行單元(睇下面)都唔會對效能有太大嘅改善;而唔係一條路徑掛起,而家係兩條路徑掛起,而且未使用嘅電晶體數量增加咗。呢種設計,其中 CPU 嘅執行資源一次只能對一個指令進行操作,最多可能達到「純量」效能(每時脈週期一個指令,IPC = 1)。但係,效能幾乎總係亞純量嘅(每時脈週期少過一個指令,IPC < 1)。
為咗實現純量同更好嘅效能,已經產生咗各種設計方法,佢哋令 CPU 嘅行為唔再咁線性,而係更加並行。喺提到 CPU 嘅並行性時,通常使用兩個術語嚟分類呢啲設計技術:
「指令級並行」(ILP),旨在提高喺 CPU 內部執行指令嘅速率(即係,提高晶片上執行資源嘅利用率);
「任務級並行」(TLP),旨在增加 CPU 可以同時執行嘅 線程 或者 進程 數量。
每種方法喺佢哋嘅實施方式,以及佢哋喺提高應用程式 CPU 效能方面提供嘅相對有效性方面都有所唔同。[i]</ref>
指令級並行
編輯提高並行性嘅最簡單方法之一係喺前一個指令完成執行之前,開始指令提取同解碼嘅頭幾個步驟。呢個係一種叫做 指令流水線 嘅技術,喺幾乎所有現代通用 CPU 中都有使用。管道容許同時執行多個指令,方法係將執行路徑分解為離散嘅階段。呢種分離可以比擬做裝配線,喺嗰度,指令喺每個階段都變得更加完整,直到佢離開執行管道並退役。
但係,管道確實引入咗一種情況嘅可能性,其中需要先前操作嘅結果嚟完成下一個操作;呢種情況通常叫做數據依賴性衝突。因此,管道處理器必須檢查呢啲類型嘅條件,並且喺必要時延遲管道嘅一部分。管道處理器可以變得非常接近純量,只受到管道停頓嘅抑制(一個指令喺一個階段花費多過一個時脈週期)。
指令管道嘅改進導致 CPU 組件嘅閒置時間進一步減少。俾人話係超純量嘅設計包括長指令管道同多個相同嘅 執行單元,好似 載入-儲存單元、算術邏輯單元、浮點單元 同 地址生成單元。[78] 喺超純量管道中,指令會被讀取並傳遞到分派器,分派器決定指令係咪可以並行(同時)執行。如果係,佢哋會俾分派到執行單元,從而導致佢哋同時執行。一般嚟講,超純量 CPU 將喺一個週期內完成嘅指令數量取決於佢能夠同時分派到執行單元嘅指令數量。
超純量 CPU 架構設計中嘅大多數困難在於創建有效嘅分派器。分派器需要能夠快速確定指令係咪可以並行執行,並且以保持盡可能多嘅執行單元處於忙碌狀態嘅方式分派佢哋。呢個要求指令管道盡可能頻繁噉填充,而且需要大量嘅 CPU 快取。佢亦都令 危害 避免技術(好似 分支預測、推測執行、暫存器重新命名、亂序執行 同 交易記憶體)對於維持高效能水平至關重要。通過嘗試預測條件指令將採取邊個分支(或者路徑),CPU 可以盡可能減少成個管道必須等待到條件指令完成嘅次數。推測執行通常通過執行喺條件操作完成後可能唔需要嘅部分代碼嚟提供適度嘅效能提升。亂序執行喺一定程度上重新排列咗指令嘅執行順序,以減少由於數據依賴性而造成嘅延遲。同樣喺 單指令流、多數據流 嘅情況下,當必須處理嚟自同一類型嘅大量數據嗰陣時,現代處理器可以禁用管道嘅部分,以便當單個指令執行好多次嗰陣時,CPU 會跳過提取同解碼階段,從而喺某啲情況下大幅提高效能,尤其係喺高度單調嘅程式引擎(好似影片創作軟件同相片處理軟件)中。
當 CPU 嘅一部分係超純量嗰陣時,唔係超純量嘅部分會因為排程停頓而遭受效能損失。英特爾 P5 奔騰 有兩個超純量 ALU,每個時脈週期可以接受一個指令,但係佢嘅 FPU 就唔得。因此,P5 係整數超純量,但唔係浮點超純量。英特爾 P5 架構嘅繼任者,P6,為佢嘅浮點功能添加咗超純量能力。
簡單嘅管道化同超純量設計通過容許 CPU 以超過每時脈週期一個指令嘅速率執行指令,嚟提高 CPU 嘅 ILP。大多數現代 CPU 設計至少喺某種程度上係超純量嘅,而過去十年設計嘅幾乎所有通用 CPU 都係超純量嘅。喺之後嘅幾年入面,設計高 ILP 電腦嘅重點已經由 CPU 嘅硬件轉移到佢嘅軟件介面,或者 指令集架構 (ISA)。超長指令字 (VLIW) 嘅策略導致一啲 ILP 通過軟件直接暗示,減少咗 CPU 喺提高 ILP 方面嘅工作,從而降低咗設計複雜性。
任務級並行
編輯實現效能嘅另一種策略係並行執行多個 線程 或者 進程。呢個研究領域叫做 平行計算。[79] 喺 Flynn 分類法 中,呢個策略叫做 多指令流多數據流 (MIMD)。[80]
用於呢個目的嘅一種技術係 多處理 (MP)。[81] 呢種技術嘅初始類型叫做 對稱多處理 (SMP),其中少量 CPU 共享佢哋記憶體系統嘅連貫視圖。喺呢個方案中,每個 CPU 都有額外嘅硬件嚟維護記憶體嘅持續更新視圖。通過避免記憶體嘅過時視圖,CPU 可以喺同一個程式上協作,而且程式可以由一個 CPU 遷移到另一個 CPU。為咗將協作 CPU 嘅數量增加到超過幾個,喺 1990 年代引入咗一啲方案,好似 非一致性記憶體訪問 (NUMA) 同 基於目錄嘅連貫性協定。SMP 系統限制為少量 CPU,而 NUMA 系統已經構建咗數千個處理器。最初,多處理係使用多個離散 CPU 同電路板嚟構建嘅,以實現處理器之間嘅互連。當處理器同佢哋嘅互連都喺單個晶片上實現嗰陣時,呢種技術叫做晶片級多處理 (CMP),而單個晶片叫做 多核心處理器。
之後,人們意識到單個程式中存在更精細嘅並行性。單個程式可能有多個線程(或者函數),佢哋可以單獨或者並行執行。呢種技術嘅一啲最早示例實現咗 輸入/輸出 處理,好似 直接記憶體訪問,作為一個獨立於計算線程嘅線程。喺 1970 年代,當系統設計為並行運行多個計算線程嗰陣時,引入咗呢種技術嘅更通用方法。呢種技術叫做 多線程 (MT)。呢種方法俾人認為比多處理更具成本效益,因為只有 CPU 內部少量嘅組件俾複製嚟支持 MT,而 MP 嘅情況下係成個 CPU。喺 MT 中,執行單元同記憶體系統(包括快取記憶體)喺多個線程之間共享。MT 嘅缺點係,多線程嘅硬件支持對軟件嘅可見性高過 MP,因此操作系統等監管軟件必須經歷更大嘅更改先至可以支持 MT。已經實現嘅一種 MT 類型叫做 時間多線程,其中一個線程一直執行到佢停頓,等待數據從外部記憶體返回。喺呢個方案中,CPU 之後會快速上下文切換到另一個準備好運行嘅線程,切換通常喺一個 CPU 時脈週期內完成,好似 UltraSPARC T1 噉。另一種 MT 類型係 同步多線程,其中嚟自多個線程嘅指令喺一個 CPU 時脈週期內並行執行。
由 1970 年代到 2000 年代初期嘅幾十年入面,設計高效能通用 CPU 嘅重點主要集中喺通過管道化、快取記憶體、超純量執行、亂序執行等技術嚟實現高 ILP。呢種趨勢喺大型、耗電嘅 CPU(好似英特爾 奔騰 4 噉)中達到頂峰。到咗 2000 年代初期,由於 CPU 運行頻率同主記憶體運行頻率之間嘅差距越來越大,以及由於更深奧嘅 ILP 技術導致嘅 CPU 功耗不斷升級,CPU 設計人員受挫,無法從 ILP 技術度獲得更高嘅效能。
之後,CPU 設計人員借鑒咗商業計算市場(好似 交易處理)嘅想法,喺嗰度,多個程式嘅總體效能(亦都叫做 吞吐量 計算)比單個線程或者進程嘅效能更重要。
呢種重點轉移嘅證據係雙核心同更多核心處理器設計嘅激增,值得注意嘅係,英特爾嘅新設計類似於佢冇咁超純量嘅 P6 架構。幾個處理器系列嘅後期設計都具有晶片級多處理功能,包括 x86-64 速龍 同 Athlon 64 X2、SPARC UltraSPARC T1、IBM POWER4 同 POWER5,以及幾款 電子遊戲機 CPU,好似 Xbox 360 嘅三核心 PowerPC 設計,同 PlayStation 3 嘅 7 核心 Cell 微處理器。
數據並行
編輯處理器(實際上,廣義嚟講嘅計算)嘅一種冇咁常見但係越來越重要嘅範式處理嘅係數據並行性。之前討論嘅處理器都俾人叫做某種類型嘅純量設備。[j]</ref> 顧名思義,向量處理器喺一個指令嘅上下文入面處理多個數據片段。呢個同純量處理器形成對比,純量處理器每個指令處理一個數據片段。使用 Flynn 分類法,呢兩種處理數據嘅方案通常叫做「單指令」流、「多數據」流(SIMD)同「單指令」流、「單數據」流(SISD)。創建處理向量數據嘅處理器嘅巨大效用在於優化往往需要對大量數據執行相同操作(例如,總和或者點積)嘅任務。呢啲類型任務嘅一啲經典示例包括 多媒體 應用程式(圖像、影片同聲音),以及好多類型嘅 科學 同工程任務。純量處理器必須完成提取、解碼同執行數據集中每個指令同值嘅成個過程,而向量處理器可以使用一個指令對相對較大嘅數據集執行單個操作。只有當應用程式傾向於需要好多步驟,將一個操作應用於大量數據嗰陣時,呢個先至有可能實現。
大多數早期嘅向量處理器,好似 Cray-1 噉,幾乎只同科學研究同密碼學應用程式有關。但係,由於多媒體已經好大程度上轉移到數字媒體,通用處理器對某種形式嘅 SIMD 嘅需求已經變得好重要。喺將 浮點單元 納入通用處理器開始變得司空見慣之後冇耐,SIMD 執行單元嘅規範同實現亦都喺 1990 年代中期開始出現喺通用處理器中。其中一啲早期嘅 SIMD 規範——好似 HP 嘅 多媒體加速擴展 (MAX) 同英特爾嘅 MMX——都係純整數嘅。事實證明,對於一啲軟件開發人員嚟講,呢個係一個重大嘅障礙,因為好多受益於 SIMD 嘅應用程式主要處理 浮點 數字。開發人員逐漸改進同重製呢啲早期設計,成為一啲常見嘅現代 SIMD 規範,呢啲規範通常同一個 指令集架構 (ISA) 相關聯。一啲著名嘅現代例子包括英特爾嘅 串流 SIMD 擴展 (SSE) 同埋 PowerPC 相關嘅 AltiVec(亦都叫做 VMX)。[k]</ref>
硬件效能計數器
編輯好多現代架構(包括嵌入式架構)通常都包含 硬件效能計數器 (HPC),佢哋容許低級別(指令級別)收集、基準測試、除錯或者分析運行軟件指標。[82][83] HPC 亦都可以用於發現同分析軟件嘅唔尋常或者可疑活動,好似 返回導向編程 (ROP) 或者 sigreturn 導向編程 (SROP) 漏洞利用等等。[84] 軟件安全團隊通常會噉樣做,嚟評估同搵出惡意二進制程式。[85]
好多主要供應商(好似 IBM、英特爾、AMD 同 Arm)都提供軟件介面(通常用 C/C++ 寫成),佢哋可以用嚟收集嚟自 CPU 暫存器 嘅數據,以便獲得指標。[86] 操作系統供應商亦都提供軟件,好似 perf
(Linux),嚟記錄、基準測試 或者 追蹤 運行核心同應用程式嘅 CPU 事件。
硬件計數器提供咗一種低開銷嘅方法,用於收集同 CPU 核心元件(功能單元、快取記憶體、主記憶體等)相關嘅全面效能指標——比起軟件分析器,呢個係一個顯著嘅優勢。[87] 此外,佢哋通常唔需要修改程式嘅底層原始碼。[88] 由於硬件設計喺唔同架構之間有所唔同,硬件計數器嘅特定類型同解釋亦都會發生變化。
效能
編輯處理器嘅「效能」或者「速度」取決於好多因素,其中包括時脈速率(通常以 赫茲 嘅倍數表示)同每時脈週期指令數 (IPC),佢哋加埋就係 CPU 可以執行嘅 每秒指令數 (IPS) 嘅因素。[89] 好多報告嘅 IPS 值都代表咗喺分支好少嘅人為指令序列上嘅「峰值」執行速率,而實際嘅工作負載包含指令同應用程式嘅混合,其中一啲執行時間長過其他一啲。記憶體層次結構 嘅效能亦都極大地影響處理器效能,IPS 計算幾乎冇考慮到呢個問題。由於呢啲問題,人們開發咗各種標準化測試(通常叫做 「基準測試」,目的就係噉樣 – ,好似 SPECint – ),嚟嘗試測量常用應用程式中嘅真實有效效能。
電腦嘅處理效能通過使用 多核心處理器 嚟提高,多核心處理器本質上係將兩個或者更多個單獨嘅處理器(喺呢個意義上叫做「核心」)插入到一個積體電路入面。[90] 理想情況下,雙核心處理器嘅效能幾乎係單核心處理器嘅兩倍。實際上,由於唔完美嘅軟件演算法同埋實現,效能增益細好多,淨係得大約 50%。[91] 增加處理器中嘅核心數量(即係雙核心、四核心等等)會增加可以處理嘅工作負載。呢個意味住處理器而家可以處理好多個異步事件、中斷等等,當佢哋不堪重負嗰陣時,可能會對 CPU 造成損害。呢啲核心可以睇做處理工廠入面嘅唔同樓層,每個樓層處理唔同嘅任務。有時,如果單個核心唔足以處理資訊,呢啲核心會處理同佢哋相鄰核心相同嘅任務。多核心 CPU 通過提供額外嘅處理能力,增強咗電腦同時運行多個任務嘅能力。但係,速度嘅提高同添加嘅核心數量唔成正比。呢個係因為核心需要通過特定嘅通道進行交互,而呢種核心間通信會消耗一部分可用嘅處理速度。[92]
由於現代 CPU 嘅特定功能,好似 同步多線程 同 非核心,佢哋涉及共享實際嘅 CPU 資源,同時旨在提高利用率,監視效能水平同硬件使用情況逐漸變成一項更複雜嘅任務。[93] 作為回應,一啲 CPU 實現咗額外嘅硬件邏輯,佢監視 CPU 各個部分嘅實際使用情況,並提供各種可俾軟件訪問嘅計數器;一個例子係英特爾嘅「效能計數器監視器」技術。[94]
好多主要供應商(好似 IBM、英特爾、AMD 同 Arm)都提供軟件介面(通常用 C/C++ 寫成),佢哋可以用嚟收集嚟自 CPU 暫存器 嘅數據,以便獲得指標。[95] 操作系統供應商亦都提供軟件,好似 perf
(Linux),嚟記錄、基準測試 或者 追蹤 運行核心同應用程式嘅 CPU 事件。
硬件計數器提供咗一種低開銷嘅方法,用於收集同 CPU 核心元件(功能單元、快取記憶體、主記憶體等等)相關嘅全面效能指標——比起軟件分析器,呢個係一個顯著嘅優勢。[96] 此外,佢哋通常唔需要修改程式嘅底層原始碼。[97] 由於硬件設計喺唔同架構之間有所唔同,硬件計數器嘅特定類型同解釋亦都會變化。
特權模式
編輯大多數現代 CPU 都有 特權模式,嚟支持操作系統同虛擬化。
雲端運算 可以使用虛擬化,嚟為唔同嘅用戶提供「虛擬中央處理器」[98] (「vCPU」)。[99]
主機係物理機器嘅虛擬等價物,虛擬系統喺佢上面運行。[100] 當有幾部物理機器協同運行,並且俾當做一個整體嚟管理嗰陣時,分組嘅計算同記憶體資源會形成一個 叢集。喺一啲系統入面,有可能動態噉喺叢集中添加同移除嘢。主機同叢集級別可用嘅資源可以劃分到 資源池 入面,並具有精細嘅 粒度。
超頻
編輯超頻 係一個提高 CPU 時脈速度(同埋其他組件)嘅過程,目的係提高 CPU 嘅效能。超頻可能會提高 CPU 溫度,搞到佢過熱,所以大多數用戶都唔會超頻,而係保持時脈速度唔變。組件嘅一啲版本(好似 英特爾 U 版本 CPU 或者 Nvidia OG GPU)唔容許超頻。
睇埋
編輯疏示
編輯- ↑ 〈牛津英文字典〉。Lexico。原著喺March 25, 2020歸檔。喺25 March 2020搵到。
- ↑ Sakdhnagool, Putt (4 September 2018). "Comparative analysis of coprocessors". Concurrency and Computation: Practice and Experience. 31 (1). doi:10.1002/cpe.4756. S2CID 54473111.
- ↑ Hills, Gage; Christian; Andrew; Samuel; Bishop, Mindy D.; Tathagata; Kanhaiya, Pritpal; Ho, Rebecca; Amer, Aya; Stein, Yosi; Murphy, Denis (2019-08-29). "Modern microprocessor built from complementary carbon nanotube transistors". Nature (英文). 572 (7771): 595–602. Bibcode:2019Natur.572..595H. doi:10.1038/s41586-019-1493-8. ISSN 0028-0836. PMID 31462796. S2CID 201658375.
- ↑ Akinwande, Deji; Cedric; Ching-Hua; Martha I.; Goossens, Stijn; Lain-Jong; H.-S. Philip; Frank H. L. (2019-09-26). "Graphene and two-dimensional materials for silicon technology". Nature (英文). 573 (7775): 507–518. Bibcode:2019Natur.573..507A. doi:10.1038/s41586-019-1573-9. ISSN 0028-0836. PMID 31554977. S2CID 202762945.
- ↑ "Using artificial intelligence to engineer materials' properties". 11 February 2019.
- ↑ Riel, Heike; Wernersson, Lars-Erik; Hong, Minghwei; Jesús A. (August 2014). "III–V compound semiconductor transistors—from planar to nanowire structures". MRS Bulletin (英文). 39 (8): 668–677. Bibcode:2014MRSBu..39..668R. doi:10.1557/mrs.2014.137. hdl:1721.1/99977. ISSN 0883-7694. S2CID 138353703.
- ↑ Li, Ming-Yang; Sheng-Kai; H.-S. Philip; Li, Lain-Jong (March 2019). "How 2D semiconductors could extend Moore's law". Nature (英文). 567 (7747): 169–170. Bibcode:2019Natur.567..169L. doi:10.1038/d41586-019-00793-8. ISSN 0028-0836. PMID 30862924. S2CID 75136648.
- ↑ 〈量子電腦 | 描述同事實 | Britannica〉。www.britannica.com (英文)。喺2022-01-28搵到。
- ↑ "Experimental Implementation of Fast Quantum Searching" (PDF).
- ↑ 〈摩爾定律:電腦科學〉。Britannica.com (英文)。喺2022-01-28搵到。
- ↑ 〈摩爾定律〉。www.umsl.edu。喺2022-01-28搵到。
- ↑ Regan, Gerard (2008). A Brief History of Computing. Springer. p. 66. ISBN 978-1848000834. 喺26 November 2014搵到.
- ↑ Weik, Martin H. (1955). "A Survey of Domestic Electronic Digital Computing Systems". Ballistic Research Laboratory. 原先內容歸檔喺2021-01-26. 喺2020-11-15搵到.
- ↑ 14.0 14.1 Weik, Martin H. (1961). "A Third Survey of Domestic Electronic Digital Computing Systems". Ed Thelen's Nike Missile Web Site. Ballistic Research Laboratory. 原先內容歸檔喺2017-09-11. 喺2005-12-16搵到.
- ↑ "Bit By Bit". Haverford College. 原著喺October 13, 2012歸檔. 喺August 1, 2015搵到.
- ↑ Template:Cite tech report
- ↑ Stanford University. "The Modern History of Computing". The Stanford Encyclopedia of Philosophy. 喺September 25, 2015搵到.
- ↑ "ENIAC's Birthday". The MIT Press. February 9, 2016. 原著喺October 17, 2018歸檔. 喺October 17, 2018搵到.
- ↑ Enticknap, Nicholas (Summer 1998), "Computing's Golden Jubilee", Resurrection, The Computer Conservation Society (20), ISSN 0958-7403, 原先內容歸檔喺17 March 2019, 喺26 June 2019搵到
- ↑ "The Manchester Mark 1". The University of Manchester. 原先內容歸檔喺January 25, 2015. 喺September 25, 2015搵到.
- ↑ "The First Generation". Computer History Museum. 原先內容歸檔喺November 22, 2016. 喺September 29, 2015搵到.
- ↑ 〈積體電路嘅歷史〉。Nobelprize.org。原先內容歸檔喺May 22, 2022。喺July 17, 2022搵到。
- ↑ Turley, Jim (11 August 2003). "Motoring with microprocessors". Embedded. 原先內容歸檔喺14 October 2022. 喺December 26, 2022搵到.
- ↑ 〈流動處理器指南 – 2013 年夏季〉。Android Authority。2013-06-25。原先內容歸檔喺2015-11-17。喺November 15, 2015搵到。
- ↑ 〈第 250 節:微處理器同玩具:電腦系統簡介〉。The University of Michigan。原著喺April 13, 2021歸檔。喺October 9, 2018搵到。
- ↑ 〈ARM946 處理器〉。ARM。原著喺17 November 2015歸檔。
- ↑ 〈康拉德·楚澤〉。Computer History Museum。原先內容歸檔喺October 3, 2016。喺September 29, 2015搵到。
- ↑ 〈電腦歷史時間軸:電腦〉。Computer History Museum。原先內容歸檔喺December 29, 2017。喺November 21, 2015搵到。
- ↑ White, Stephen。〈電腦簡史 – 第一代電腦〉。原先內容歸檔喺January 2, 2018。喺November 21, 2015搵到。
- ↑ 〈哈佛大學 Mark I 紙帶衝孔機組件〉。Computer History Museum。原先內容歸檔喺November 22, 2015。喺November 21, 2015搵到。
- ↑ 〈馮·諾伊曼架構同哈佛架構之間有乜嘢區別?〉。ARM。原先內容歸檔喺November 18, 2015。喺November 22, 2015搵到。
- ↑ 〈高級架構優化咗 Atmel AVR CPU〉。Atmel。原著喺November 14, 2015歸檔。喺November 22, 2015搵到。
- ↑ 〈開關掣、電晶體同繼電器〉。BBC。原著喺5 December 2016歸檔。
- ↑ 〈真空電晶體介紹:一種由乜嘢都冇製成嘅設備〉。IEEE Spectrum。2014-06-23。原先內容歸檔喺2018-03-23。喺27 January 2019搵到。
- ↑ 《乜嘢係電腦效能?》。The National Academies Press。2011。doi:10.17226/12980。ISBN 978-0-309-15951-7。原先內容歸檔喺June 5, 2016。喺May 16, 2016搵到。
- ↑ 〈1953 年:電晶體化電腦湧現〉。Computer History Museum。原先內容歸檔喺June 1, 2016。喺June 3, 2016搵到。
- ↑ 〈IBM System/360 日期同特徵〉。IBM。2003-01-23。原著喺2017-11-21歸檔。喺2016-01-13搵到。
- ↑ 38.0 38.1 Amdahl, G. M.; Blaauw, G. A.; Brooks, F. P. Jr. (April 1964). "Architecture of the IBM System/360". IBM Journal of Research and Development. IBM. 8 (2): 87–101. doi:10.1147/rd.82.0087. ISSN 0018-8646.
- ↑ Brodkin, John (7 April 2014)。〈50 年前,IBM 創造咗大型機,佢幫助將人類送上月球〉。Ars Technica。原先內容歸檔喺8 April 2016。喺9 April 2016搵到。
- ↑ Clarke, Gavin。〈點解你唔肯死? IBM 嘅 S/360 同埋佢 50 年嘅遺產〉。The Register。原先內容歸檔喺24 April 2016。喺9 April 2016搵到。
- ↑ 〈在線 PDP-8 主頁,運行 PDP-8〉。PDP8。原先內容歸檔喺August 11, 2015。喺September 25, 2015搵到。
- ↑ 〈電晶體、繼電器同控制大電流負載〉。New York University。ITP Physical Computing。原先內容歸檔喺21 April 2016。喺9 April 2016搵到。
- ↑ Lilly, Paul (2009-04-14)。〈CPU 簡史:x86 嘅 31 個精彩年份〉。PC Gamer。原先內容歸檔喺2016-06-13。喺June 15, 2016搵到。
- ↑ 44.0 44.1 Patterson, David A.; Hennessy, John L.; Larus, James R. (1999)。《電腦組織與設計:硬件/軟件介面》 (美國英文) (第3rd printing of 2nd版)。San Francisco, California:Kaufmann。頁 751。ISBN 978-1558604285。
- ↑ 〈1962 年:航空航天系統係電腦入面 IC 嘅首批應用〉。電腦歷史博物館。原先內容歸檔喺October 5, 2018。喺October 9, 2018搵到。
- ↑ 〈阿波羅載人登月計劃入面嘅積體電路〉。National Aeronautics and Space Administration。原先內容歸檔喺July 21, 2019。喺October 9, 2018搵到。
- ↑ 〈System/370 公告〉。IBM Archives。2003-01-23。原著喺2018-08-20歸檔。喺October 25, 2017搵到。
- ↑ 〈System/370 型號 155(續)〉。IBM Archives。2003-01-23。原著喺2016-07-20歸檔。喺October 25, 2017搵到。
- ↑ 〈型號同選項〉。數碼設備公司 PDP-8。原先內容歸檔喺June 26, 2018。喺June 15, 2018搵到。
- ↑ Bassett, Ross Knox (2007)。《邁向數碼時代:研究實驗室、初創公司同 MOS 技術嘅興起》 (美國英文)。約翰·霍普金斯大學出版社。頁 127–128, 256, and 314。ISBN 978-0-8018-6809-2。
- ↑ 51.0 51.1 Shirriff, Ken。〈德州儀器 TMX 1795:第一個,被遺忘嘅微處理器〉。原先內容歸檔喺2021-01-26。
- ↑ 〈邏輯系列嘅速度同功率〉。原先內容歸檔喺2017-07-26。喺2017-08-02搵到。.
- ↑ Stonham, T. J. (1996)。《數字邏輯技術:原理與實踐》。Taylor & Francis。頁 174。ISBN 9780412549700。
- ↑ 〈1968 年:為 IC 開發嘅矽閘技術〉。Computer History Museum。原先內容歸檔喺2020-07-29。喺2019-08-16搵到。
- ↑ Booher, R. K. (1968)。《MOS GP 電腦》 (PDF)。國際需求知識管理研討會。AFIPS。頁 877。doi:10.1109/AFIPS.1968.126。原先內容歸檔 (PDF)喺2017-07-14。
- ↑ 〈LSI-11 模組描述〉. LSI-11, PDP-11/03 用戶手冊 (PDF) (美國英文) (第2版). Maynard, Massachusetts: 數碼設備公司. November 1975. p. 4Template:Hyp3. 原先內容歸檔 (PDF)喺2021-10-10. 喺2015-02-20搵到.
- ↑ Bigelow, Stephen J. (March 2022)。〈乜嘢係多核處理器,佢係點樣運作嘅?〉。TechTarget。原先內容歸檔喺July 11, 2022。喺July 17, 2022搵到。
- ↑ Birkby, Richard。〈微處理器簡史〉。computermuseum.li。原著喺September 23, 2015歸檔。喺October 13, 2015搵到。
- ↑ Osborne, Adam (1980)。《微型電腦簡介》。第1: 基本概念卷 (第2版)。Berkeley, California:Osborne-McGraw Hill。ISBN 978-0-931988-34-9。
- ↑ Zhislina, Victoria (2014-02-19)。〈點解 CPU 頻率停止增長?〉。Intel。原先內容歸檔喺2017-06-21。喺October 14, 2015搵到。
- ↑ 〈MOS 電晶體 – 電機工程與電腦科學〉 (PDF)。University of California。原先內容歸檔 (PDF)喺2022-10-09。喺October 14, 2015搵到。
- ↑ Simonite, Tom。〈摩爾定律已死。咁而家點算?〉。MIT Technology Review (英文)。原先內容歸檔喺2018-08-22。喺2018-08-24搵到。
- ↑ Moore, Gordon (2005)。〈同戈登·摩爾嘅對話摘錄:摩爾定律〉 (PDF) (採訪)。Intel。原著 (PDF)喺2012-10-29歸檔。喺2012-07-25搵到。
- ↑ 〈處理器嘅詳細歷史〉。Tech Junkie。15 December 2016。原先內容歸檔喺14 August 2019。喺14 August 2019搵到。
- ↑ Eigenmann, Rudolf; Lilja, David (1998)。〈馮·諾伊曼電腦〉. 《Wiley 電機電子工程百科全書》。doi:10.1002/047134608X.W1704。ISBN 047134608X。S2CID 8197337。
- ↑ Aspray, William (September 1990)。〈儲存程式概念〉。IEEE Spectrum。第27卷第9號。頁 51。doi:10.1109/6.58457。
- ↑ Saraswat, Krishna。〈集成電路技術嘅趨勢〉 (PDF)。原著 (PDF)喺2015-07-24歸檔。喺June 15, 2018搵到。
- ↑ 〈電遷移〉。Middle East Technical University。原先內容歸檔喺July 31, 2017。喺June 15, 2018搵到。
- ↑ Wienand, Ian (September 3, 2013)。〈自下而上嘅電腦科學,第 3 章。電腦架構〉 (PDF)。bottomupcs.com。原先內容歸檔 (PDF)喺February 6, 2016。喺January 7, 2015搵到。
- ↑ 〈控制器及其設計簡介〉。GeeksforGeeks (美國英文)。2018-09-24。原先內容歸檔喺2021-01-15。喺2021-01-12搵到。
- ↑ Van Berkel, Cornelis; Meuwissen, Patrick (January 12, 2006)。〈用於處理器嘅地址生成單元(美國專利申請號 US 2006010255 A1)〉。google.com。原先內容歸檔喺April 18, 2016。喺December 8, 2014搵到。 [要求證來源]
- ↑ Torres, Gabriel (September 12, 2007)。〈快取記憶體點樣運作〉。Hardware Secrets。喺January 29, 2023搵到。
- ↑ 〈IBM z13 同 IBM z13s 技術簡介〉 (PDF)。IBM。March 2016。頁 20。原先內容歸檔 (PDF)喺2022-10-09。 [要求證來源]
- ↑ Brown, Jeffery (2005)。〈應用程式自訂 CPU 設計〉。IBM developerWorks。原著喺2006-02-12歸檔。喺2005-12-17搵到。
- ↑ Martin, A. J.; Nystrom, M.; Wong, C. G. (November 2003)。〈三代異步微處理器〉。IEEE Design & Test of Computers。20 (6): 9–17。doi:10.1109/MDT.2003.1246159。ISSN 0740-7475。S2CID 15164301。原先內容歸檔喺2021-12-03。喺2022-01-05搵到。
- ↑ Garside, J. D.; Furber, S. B.; Chung, S-H (1999)。〈AMULET3 揭秘〉. 《會議記錄,第五屆高級異步電路與系統研究國際研討會》。曼徹斯特大學 電腦科學系。doi:10.1109/ASYNC.1999.761522。原著喺December 10, 2005歸檔。
- ↑ 《IBM System/360 型號 65 功能特徵》 (PDF)。IBM。September 1968。頁 8–9。A22-6884-3。原先內容歸檔 (PDF)喺2022-10-09。
- ↑ Huynh, Jack (2003)。〈AMD Athlon XP 處理器,帶 512KB L2 快取記憶體〉 (PDF)。Urbana–Champaign, Illinois:University of Illinois。頁 6–11。原著 (PDF)喺2007-11-28歸檔。喺2007-10-06搵到。
- ↑ Gottlieb, Allan; Almasi, George S. (1989)。《高度平行計算》 (美國英文)。Redwood City, California:Benjamin/Cummings。ISBN 978-0-8053-0177-9。原先內容歸檔喺2018-11-07。喺2016-04-25搵到。
- ↑ Flynn, M. J. (September 1972)。〈一啲電腦組織及其有效性〉。《IEEE 電腦彙刊》。C-21 (9): 948–960。doi:10.1109/TC.1972.5009071。S2CID 18573685。
- ↑ Lu, N.-P.; Chung, C.-P. (1998)。〈超純量多處理中嘅並行性利用〉。IEE Proceedings - Computers and Digital Techniques。145 (4): 255。doi:10.1049/ip-cdt:19981955 (失效 7 December 2024)。
{{cite journal}}
: CS1 maint: DOI inactive as of 12月 2024 (link) - ↑ Uhsadel, Leif; Georges, Andy; Verbauwhede, Ingrid (August 2008)。《利用硬件效能計數器》。2008 第五屆容錯與密碼學診斷研討會。頁 59–67。doi:10.1109/FDTC.2008.19。ISBN 978-0-7695-3314-8。S2CID 1897883。原先內容歸檔喺2021-12-30。喺2021-12-30搵到。
- ↑ Rohou, Erven (September 2012)。《Tiptop:面向大眾嘅硬件效能計數器》。2012 第 41 屆國際並行處理研討會工作坊。頁 404–413。doi:10.1109/ICPPW.2012.58。ISBN 978-1-4673-2509-7。S2CID 16160098。原先內容歸檔喺2021-12-30。喺2021-12-30搵到。
- ↑ Herath, Nishad; Fogh, Anders (2015)。〈用於安全嘅 CPU 硬件效能計數器〉 (PDF)。USA:Black Hat。原先內容歸檔 (PDF)喺2015-09-05。
- ↑ Jøsang, Audun (2018-06-21)。《ECCWS 2018 第 17 屆歐洲網絡戰與安全會議 V2》 (英文)。Academic Conferences and publishing limited。ISBN 978-1-911218-86-9。
- ↑ DeRose, Luiz A. (2001),Sakellariou, Rizos; Gurd, John; Freeman, Len; Keane, John (編),〈硬件效能監視器工具包〉,《Euro-Par 2001 平行處理》,計算機科學講義 (英文),Berlin, Heidelberg:Springer Berlin Heidelberg,第2150卷,頁 122–132,doi:10.1007/3-540-44681-8_19,ISBN 978-3-540-42495-6,原先內容歸檔喺2023-03-01,喺2021-12-30搵到
- ↑ 〈面向平行程式介面嘅效能同功耗評估基準〉 (PDF) (越南文)。喺2024-03-15搵到。
- ↑ Chawdhury, Tarun Kumar; Banerjee, Joyanta; Gupta, Vipul; Poddar, Debopam (2024-03-04)。《掌握安全 Java 應用程式:導航 Java 喺雲端同微服務中嘅安全性》 (英文) (第English版)。BPB Publications。頁 117。ISBN 978-93-5551-884-2。
- ↑ 〈CPU 頻率〉。《CPU 世界詞彙表》。CPU 世界。25 March 2008。原先內容歸檔喺9 February 2010。喺1 January 2010搵到。
- ↑ 〈乜嘢係(一個)多核心處理器?〉。《數據中心定義》。SearchDataCenter.com。原先內容歸檔喺5 August 2010。喺8 August 2016搵到。
- ↑ Mlblevins (8 April 2010)。〈四核心對雙核心〉。Tech Spirited。原先內容歸檔喺4 July 2019。喺7 November 2019搵到。
- ↑ Marcin, Wieclaw (12 January 2022)。〈影響多核心處理器效能嘅因素〉。PcSite。
- ↑ Tegtmeier, Martin。〈多線程架構嘅 CPU 利用率說明〉。Oracle。原先內容歸檔喺July 18, 2022。喺July 17, 2022搵到。
- ↑ Willhalm, Thomas; Roman; Patrick (December 18, 2014)。〈英特爾效能計數器監視器 – 一種更好嘅 CPU 利用率測量方法〉。software.intel.com。原先內容歸檔喺February 22, 2017。喺February 17, 2015搵到。
- ↑ DeRose, Luiz A. (2001),Sakellariou, Rizos; Gurd, John; Freeman, Len; Keane, John (編),〈硬件效能監視器工具包〉,《Euro-Par 2001 平行處理》,計算機科學講義 (英文),Berlin, Heidelberg:Springer Berlin Heidelberg,第2150卷,頁 122–132,doi:10.1007/3-540-44681-8_19,ISBN 978-3-540-42495-6,原先內容歸檔喺2023-03-01,喺2021-12-30搵到
- ↑ 〈面向平行程式介面嘅效能同功耗評估基準〉 (PDF) (越南文)。喺2024-03-15搵到。
- ↑ Chawdhury, Tarun Kumar; Banerjee, Joyanta; Gupta, Vipul; Poddar, Debopam (2024-03-04)。《掌握安全 Java 應用程式:導航 Java 喺雲端同微服務中嘅安全性》 (英文) (第English版)。BPB Publications。頁 117。ISBN 978-93-5551-884-2。
- ↑ Anjum, Bushra; Harry G. (2015)。〈1: 將端到端 QoS 預算劃分到域〉. 《QoS 約束下嘅影片帶寬分配》。Focus 系列。John Wiley & Sons。頁 3。ISBN 9781848217461。喺2016-09-21搵到。「[...] 喺雲端運算入面,多個軟件組件喺同一個刀鋒伺服器上嘅虛擬環境中運行,每個虛擬機器 (VM) 一個組件。每個 VM 都分配到一個虛擬中央處理器 [...],佢係刀鋒伺服器 CPU 嘅一小部分。」
- ↑ Fifield, Tom; Diane; Anne; Lorin; Jonathan; Everett; Joe (2014)。〈詞彙表〉. 《OpenStack 操作指南》。Beijing:O'Reilly Media, Inc.。頁 286。ISBN 9781491906309。喺2016-09-20搵到。「虛擬中央處理器 (vCPU)[:] 細分物理 CPU。然後實例就可以使用嗰啲劃分。」
- ↑ 〈VMware 基礎架構架構概述 – 白皮書〉 (PDF)。VMware。2006。原先內容歸檔 (PDF)喺2022-10-09。
Template:Electronic components
Template:Digital electronics
Template:Basic computer components
Template:Processor technologies
引用錯誤 <ref>
tags exist for a group named "lower-alpha", but no corresponding <references group="lower-alpha"/>
tag was found