Central_processing_unit

**中央處理器** （英語：**C**entral **P**rocessing **U**nit，縮寫：**CPU**）是電腦的主要裝置之一，功能主要是解釋電腦指令以及處理電腦軟體中的資料。1970 年代以前，中央處理器由多個獨立單元構成，後來發展出由積體電路製造的中央處理器，這些高度收縮的元件就是所謂的微處理器，其中分出的中央處理器最為複雜的電路可以做成單一微小功能強大的單元，也就是所謂的核心。

中央處理器廣義上指一系列可以執行複雜的電腦程式的邏輯機器。這個空泛的定義很容易地將在「CPU」這個名稱被普遍使用之前的早期電腦也包括在內。無論如何，至少從 1960 年代早期開始，這個名稱及其縮寫已開始在電腦產業中得到廣泛應用。儘管與早期相比，「中央處理器」在物理形態、設計製造和具體任務的執行上有了極大的發展，但是其基本的操作原理一直沒有改變。

早期的中央處理器通常是為大型及特定應用的電腦而客製化。但是，這種昂貴的為特定應用客製化 CPU 的方法很大程度上已經讓位於開發便宜、標準化、適用於一個或多個目的的處理器類。這個標準化趨勢始於由單個電晶體組成的大型電腦和微機年代，隨著積體電路的出現而加速。IC 使得更為複雜的中央處理器可以在很小的空間中設計和製造（在微米的數量級）。中央處理器的標準化和小型化都使這一類電子零件在現代生活中的普及程度越來越高。現代處理器出現在包括從汽車、手機到兒童玩具在內的各種物品中。
有一些 cpu 用於軍事，例如：cpu1145kun

## 歷史

在現今的 CPU 出現之前，如同 ENIAC 之類的電腦在執行不同程式時，必須經過一番線路調整才能啟動。由於它們的線路必須被重設才能執行不同的程式，這些機器通常稱為「固定程式電腦」（fixed-program computer）。而由於 CPU 這個詞指稱為執行軟體（電腦程式）的裝置，那些最早與儲存程式型電腦一同登場的裝置也可以被稱為 CPU。

儲存程式型電腦的主意早已體現在 ENIAC 的設計上，但最終還是被省略以期早日完成。在 1945 年 6 月 30 日，ENIAC 完成之前，著名數學家馮・紐曼發表名為《關於 EDVAC 的報告草案》的論文。它揭述儲存程式型電腦的計劃最終將在 1949 年 8 月完成。EDVAC 的目標是執行一定數量與種類的指令（或操作），這些指令結合產生出可以讓 EDVAC 執行的有用程式。特別的是，為 EDVAC 而寫的程式是儲存在高速電腦記憶體中，而非由實體線路組合而成。這項設計克服了 ENIAC 的某些局限 —— 即花費大量時間與精力重設線路以執行新程式。在馮・紐曼的設計下，EDVAC 可以藉由改變記憶體儲存的內容，簡單更換它執行的程式（軟體）。

值得注意的是，儘管馮・紐曼由於設計了 EDVAC，使得他在發展儲存程式型電腦上的貢獻最為顯著，但其他早於他的研究員如康拉德・楚澤（Konard Zuse）也提出過類似的想法。另外早於 EDVAC 完成，利用哈佛架構製造的馬克一號，也利用打孔紙帶而非電子記憶體用作儲存程式的概念。馮・紐曼架構與哈佛架構最主要的不同在於後者將 CPU 指令與資料分開存放與處置，而前者使用相同的記憶體位置。大多近代的 CPU 依照馮・紐曼架構設計，但哈佛架構一樣常見。

身為數位裝置，所有 CPU 處理不連續狀態，因此需要一些轉換與區分這些狀態的基礎元件。在市場接受電晶體前，繼電器與真空管常用在這些用途上。雖然這些材料速度上遠優於純粹的機械構造，但是它們有許多不可靠的地方。例如以繼電器建造直流序向邏輯迴路需要額外的硬體以應付接觸點跳動問題。而真空管不會有接觸點跳動問題，但它們必須在啟用前預熱，也必須同時停止運作。通常當一根真空管壞了，CPU 必須找出損壞元件以置換新管。因此早期的電子真空管式電腦快於電子繼電器式電腦，但維修不便。類似 EDVAC 的真空管電腦每隔八小時便會損壞一次，而較慢較早期的馬克一號卻不太發生故障。但在最後，由於速度優勢，真空管電腦主宰了當時的電腦世界，儘管它們需要較多的維護照顧。大多早期的同步 CPU，其時脈頻率低於近代的微電子設計（見下列對於時脈頻率的討論）。那時常見的時脈頻率為 10 萬赫茲到 4 百萬赫茲，大大受限於內建切換裝置的速度。

### 分立電晶體與積體電路中央處理器

由於許多科技廠家投入更小更可靠的電子裝置，使得設計 CPU 變得越來越複雜。電晶體的面世即是 CPU 第一個質的飛躍。1950 到 60 年代的電晶體 CPU 不再以體積龐大、不可靠與易碎的開關元件（例如繼電器與真空管）建造。藉由這項改良，更加複雜與可靠的 CPU 便被建造在一個或多個包含分立（離散）元件的印刷電路板上，從而向體積小、可靠與不易損壞方向發展。

在此時期，將許多電晶體放置在擁擠空間中的方法大為普及。積體電路（IC）將大量的電晶體集中在一小塊半導體片，或晶片（chip）上。剛開始只有非常基本、非特定用途的數位電路小型化到 IC 上（例如 NOR 邏輯閘）。以這些預裝式 IC 為基礎的 CPU 稱為小規模積體電路（SSI）裝置。SSI IC，例如裝置在阿波羅導航電腦上的那些電腦，通常包含數十個電晶體。以 SSI IC 建構整個 CPU 需要數千個獨立的晶片，但與之前的分立電晶體設計相比，依然省下很多空間與電力。肇因於微電子科技的進步，在 IC 上的電晶體數量越來越大，因此減少了建構一個完整 CPU 需要的獨立 IC 數量。「中規模積體電路」（MSI）與「大規模積體電路」（LSI）將內含的電晶體數量增加到成百上千。

1964 年 IBM 推出了 System/360 電腦架構，此架構讓一系列速度與效能不同的 IBM 電腦可以執行相同的程式。此確實為一項創舉，因為當時的電腦大多互不相容，甚至同一家廠商製造的也是如此。為了實踐此項創舉，IBM 提出了微程式概念，此概念依然廣泛使用在現代 CPU 上。System/360 架構由於太過成功，因此主宰了大型電腦數十年之久，並留下一系列使用相似架構，名為 IBM zSeries 的現代主機產品。同一年（1964），迪吉多（DEC）推出另一個深具影響力且瞄準科學與研究市場的電腦，名為 PDP-8。DEC 稍後推出非常有名的 PDP-11，此產品原先計劃以 SSI IC 構組，但在 LSI 技術成熟後改為 LSI IC。與之前 SSI 和 MSI 的祖先相比，PDP-11 的第一個 LSI 產品包含了一個只用了 4 個 LSI IC 的 CPU。

電晶體電腦有許多前一代產品沒有的優點。除了可靠度與低耗電量之外，由於電晶體的狀態轉換時間比繼電器和真空管短得多，CPU 也就擁有更快的速度。得益於可靠度的提升和電晶體轉換器切換時間的縮短，CPU 的時脈頻率在此時期達到十幾百萬赫茲。另外，由於分立電晶體與 IC CPU 的使用量大增，新的高效能設計，例如 SIMD（單指令多資料）、向量處理機開始出現。這些早期的實驗性設計，刺激了之後超級電腦（例如克雷公司）的崛起。

## 中央處理器操作原理

CPU 的主要運作原理，不論其外觀，都是執行儲存於被稱為程式裡的一系列指令。在此討論的是遵循普遍的馮・諾伊曼結構（von Neumann architecture）設計的裝置。程式以一系列數位儲存在電腦記憶體中。差不多所有的馮・紐曼 CPU 的運作原理可分為四個階段：**提取**、**解碼**、**執行**和**寫回**。

第一階段，**提取**，從程式記憶體中檢索指令（為數值或一系列數值）。由程式計數器指定程式記憶體的位置，程式計數器儲存供識別目前程式位置的數值。換言之，程式計數器記錄了 CPU 在目前程式裡的蹤跡。提取指令之後，PC 根據指令式長度增加記憶體單元。指令的提取常常必須從相對較慢的記憶體尋找，導致 CPU 等候指令的送入。這個問題主要被論及在現代處理器的快取和管線架構（見下）。

CPU 根據從記憶體提取到的指令來決定其執行行為。在**解碼**階段，指令被拆解為有意義的片段。根據 CPU 的指令集架構（**ISA**）定義將數值解譯為指令。一部分的指令數值為運算碼，其指示要進行哪些運算。其它的數值通常供給指令必要的資訊，諸如一個加法運算的運算目標。這樣的運算目標也許提供一個常數值（即立即值），或是一個空間的定址值：暫存器或記憶體位址，以定址模式決定。在舊的設計中，CPU 裡的指令解碼部分是無法改變的硬體裝置。不過在眾多抽象且複雜的 CPU 和 ISA 中，一個微程式時常用來幫助轉換指令為各種形態的訊號。這些微程式在已成品的 CPU 中往往可以重寫，方便變更解碼指令。

在提取和解碼階段之後，接著進入**執行**階段。該階段中，連接到各種能夠進行所需運算的 CPU 部件。例如，要求一個加法運算，算術邏輯單元將會連接到一組輸入和一組輸出。輸入提供了要相加的數值，而且在輸出將含有總和結果。ALU 內含電路系統，以於輸出端完成簡單的普通運算和邏輯運算（比如加法和位元運算）。如果加法運算產生一個對該 CPU 處理而言過大的結果，在標誌暫存器裡，溢位標誌可能會被設定（參見以下的數值精度探討）。

最終階段，**寫回**，以一定格式將執行階段的結果簡單的寫回。運算結果經常被寫進 CPU 內部的暫存器，以供隨後指令快速存取。在其它案例中，運算結果可能寫進速度較慢，如容量較大且較便宜的主記憶體。某些類型的指令會操作程式計數器，而不直接產生結果資料。這些一般稱作「跳轉」並在程式中帶來循環行為、條件性執行（透過條件跳轉）和函式。許多指令也會改變標誌暫存器的狀態位元。這些標誌可用來影響程式行為，緣由於它們時常顯出各種運算結果。例如，以一個「比較」指令判斷兩個值的大小，根據比較結果在標誌暫存器上設定一個數值。這個標誌可藉由隨後的跳轉指令來決定程式動向。

在執行指令並寫回結果資料之後，程式計數器的值會遞增，反覆整個過程，下一個指令周期正常的提取下一個順序指令。如果完成的是跳轉指令，程式計數器將會修改成跳轉到的指令位址，且程式繼續正常執行。許多複雜的 CPU 可以一次提取多個指令、解碼，並且同時執行。這個部分一般涉及「經典 RISC 管線」，那些實際上是在眾多使用簡單 CPU 的電子裝置中快速普及（常稱為微控制器）。

## 設計與實作

### 整數範圍

CPU 數位表示方法是一個設計上的選擇，這個選擇影響了裝置的工作方式。一些早期的數位電腦內部使用電氣模型來表示通用的十進位（基於 10 進位）記數系統數位。還有一些罕見的電腦使用三進位表示數位。幾乎所有的現代的 CPU 使用二進位系統來表示數位，這樣數位可以用具有兩個值的物理量來表示，例如高低電平等等。

與數表示相關的是一個 CPU 可以表示的數的大小和精度，在二進位 CPU 情形下，一個**位**（bit）指的是 CPU 處理的數中的一個有意義的位，CPU 用來表示數的位數量常常被稱作 "字長", "位寬", "資料通路寬度"，或者當嚴格地涉及到整數（與此相對的是浮點數）時，稱作 "整數精度"，該數量因體系結構而異，且常常在完全相同的 CPU 的不同部件中也有所不同。例如：一個 8 位元的 CPU 可處理在八個二進位數位（每個數位具有兩個可能的取值，0 或 1）表示範圍內的數，也就是說，28 或 256 個離散的數值。 實際上，整數精度在 CPU 可執行的軟體所能利用的整數取值範圍上設定了硬體限制。

整數精度也可影響到 CPU 可**定址**（定址）的記憶體數量。譬如，如果二進位的 CPU 使用 32 **位**來表示記憶體位址，而每一個記憶體位址代表一個八位元組，CPU 可定位的容量便是 232 個位元組或 4GB。以上是簡單描述的 CPU 位址空間，通常實際的 CPU 設計使用更為複雜的定址方法，例如為了以同樣的整數精度定址更多的記憶體而使用分頁技術。

更高的整數精度需要更多線路以支援更多的數位位元，也因此結構更複雜、更巨大、更花費能源，也通常更昂貴。因此儘管市面上有許多更高精準度的 CPU（如 16，32，64 甚至 128 位元），但依然可見應用軟體執行在 4 或 8 位元的微控制器上。越簡單的微控制器通常較便宜，花費較少能源，也因此產生較少熱量。這些都是設計電子裝置的主要考量。然而，在專業級的應用上，額外的精度給予的效益（大多是給予額外的位址空間）通常顯著影響它們的設計。為了同時得到高與低位寬度的優點，許多 CPU 依照不同功用將各部分設計成不一樣的位寬度。例如 IBM System/370 使用一個原為 32 位元的 CPU，但它在其浮點單元使用了 128 位元精度，以得到更佳的精確度與浮點數的表示範圍。許多後來的 CPU 設計使用類似的混合位寬，尤其當處理器設計為通用用途，因而需要合理的整數與浮點數運算能力時。

### 時脈頻率

主頻＝外頻 × 倍頻。

大部分的 CPU，甚至大部分的序向邏輯裝置，本質上都是同步的。也就是說，它們被設計和使用的前題是假設都在同一個同步訊號中工作。這個訊號，就是眾所周知的**時脈訊號**，通常是由一個周期性的方波（構成）。通過計算電訊號在 CPU 眾多不同電路中的分支中迴圈所需要的最大時間，設計者們可為時脈訊號選擇一個適合的周期。

該周期必須比訊號在延遲最大的情況下移動或者傳播所需的時間更長。設計整個 CPU 在時脈訊號的上升沿和下降沿附近行動資料是可能的。無論是在設計還是元件的維度看來，均對簡化 CPU 有顯著的優點。同時，它也存在 CPU 必須等候回應較慢元件的缺點。此限制已透過多種增加 CPU 並列運算的方法下被大幅的補償了。（見下文）

無論如何，結構上的改良無法解決所有同步 CPU 的弊病。比方說，時脈訊號易受其它的電子訊號影響。在逐漸複雜的 CPU 中，越來越高的時脈頻率使其更難與整個單元的時脈訊號同步。是故近代的 CPU 傾向發展多個相同的時脈訊號，以避免單一訊號的延遲使得整個 CPU 失靈。另一個主要的問題是，時脈訊號的增加亦使得 CPU 產生的熱能增加。持續變動的時脈頻率使得許多元件切換（Switch）而不論它們是否處於運作狀態。一般來說，一個處於切換狀態的元件比處於靜止狀態還要耗費更多的能源。因此，時脈頻率的增加使得 CPU 需要更有效率的冷卻方案。

其中一個處理切換不必要元件的方法稱為時脈閘控，即關閉對不必要元件的時脈頻率（有效的禁止元件）。但此法被認為太難實行而不見其低耗能通用性。另一個對全程時脈訊號的方法是同時移除時脈訊號。當移除全程時脈訊號；使得設計的程式更加複雜時，非同步（或無時脈）設計使其在能源消耗與產生熱能的維度上更有優勢。罕見的是，所有的 CPU 建造在沒有利用全程時脈訊號的狀況。兩個值得注意的範例是 ARM（"Advanced RISC Machine"）順從 AMULET 以及 MIPS R3000 相容 MiniMIPS。與其完全移除時脈訊號，部份 CPU 的設計允許一定比例的裝置不同步，比方說使用不同步算術邏輯單元連接超純量管線以達成一部份的算術效能增進。在不將時脈訊號完全移除的情況下，不同步的設計可使其表現出比同步計數器更少的數學運算。因此，結合了不同步設計極佳的能源耗損量及熱能產生率，使它更適合在嵌入式電腦上運作。

### 並列

前面描述的 CPU 結構只能在同一時間點執行一個指令，這種類型的 CPU 被稱為低純量。

這一類型的 CPU 有一很大的缺點：效率低。由於只能執行一個指令，此類的行程給與低純量 CPU 原生的低效能。由於每次僅有一個指令能夠被執行，CPU 必須等到上個指令完成才能繼續執行。如此便造成下純量 CPU 延宕在需要兩個以上的時鐘循環才能完成的指令。即便增加第二個執行單元（見下文）也不會大幅提升效能；除了單一通道的延宕以外，雙通道的延宕及未使用的電晶體數量亦增加了。如此的設計使得不論 CPU 可使用的資源有多少，都僅能一次執行一個指令並可能達到**純量**的效能（一個指令需一個時脈循環）。無論如何，大部份的效能均為下純量（一個指令需超過一個時脈循環）。

為了達成純量目標以及更佳的效能，導致使得 CPU 傾向平行運算的各種設計越來越多。提到 CPU 的平行，有兩個字彙常用來區分這些設計的技術。指令平行處理（**I**nstruction **L**evel **P**arallelism, ILP）以增加 CPU 執行指令的速率（換句話說，增加 on-die 執行資源的利用），以及執行緒平行處理（**T**hread **L**evel **P**arallelism, TLP）目的在增加執行緒（有效的個別程式）使得 CPU 可以同時執行。每種方法均可由其如何嵌入或相對有效（對 CPU 的效能）來區分。

**指令級並行（Instruction level parallelism，ILP）：指令管線與超純量架構**

其中一種達成增加平行運算的方法，便是在主要指令完成執行之前，便進行指令提取及解碼。這種最簡易的技術，我們稱為**指令管線**，且其被利用在泰半現代的泛用 CPU 中。透過分解執行通道至離散階段，指令管線可以兩個以上的指令同時執行。相較於已被淘汰的組合管線，指令管線不再使用等候指令完全在管線中登出才執行下一指令的技術。

指令管線產生了下一作業需要前一作業才可完成的可能性。此類狀況又常稱為相依衝突。解決的方法是，對此類的情況增加額外的注意，及在相依衝突發生時延遲一部份的指令。自然地，此種解決方法需要額外的循環，是故指令管線的處理器比低純量處理器還要複雜。（雖然不是很顯著）一個指令管線的處理器的效能可能十分接近純量，只需禁止管線推遲即可。（在一個階段需要超過一個以上的循環的指令）

此外，對於指令管線的改進啟發了減少 CPU 元件閒置時間的技術。稱為**超純量**的設計包括了一條長指令管線及多個相同的執行單元。上純量管線的分派器同時讀取及通過數個指令；分派器決定指令是否能夠平行執行（同時執行）並分配到可執行的執行單元。大致上來說，一個上純量的 CPU 能夠同時分派越多的指令給閒置的執行單元，就能夠完成越多的指令。

上純量 CPU 結構的設計中，最困難的部份便是創造一個有效率的分派器。分派器必須能夠快速且正確的決定指令是否能夠平行執行，並且讓閒置的執行單元最小化。其需要指令管線常時的充滿指令流，且提升了在上純量結構中一定數量的 CPU 快取。其亦催生了危害迴避的技術，如分支預測、投機執行與跨序執行以維持高層次的效能。藉由嘗試預測特定的指令選擇何分支（路徑），CPU 能夠最小化整個指令管線等待特定的指令完成的次數。投機執行則是藉著執行部份的指令以得知其是否在整個作業完成後仍被需要而提供適度的效能提升。跨序執行則是重新整理指令執行的命令以降低資料相依。

當不是所有的 CPU 元件均有上純量效能時，未達上純量的元件效能便會因定序推遲而降低。奔騰的原型有兩個每一時脈循環可接收一個指令的上純量算術邏輯單元，但其浮點算術處理器（**F**loating **P**oint **U**nit, FPU）不能在每一時脈循環接收一個指令。因此 P5 的效能只能算是整數上純量而非浮點上純量。英特爾 Pentium 結構的下一代 P6 加入了浮點運算處理器的上純量能力，因此在浮點指令上有顯著的效能提升。

此兩種簡單的管線及上純量設計，均能透過允許單一處理器在一個時鐘迴圈完成一個指令，提升指令管線的效能。多數的近代 CPU 設計至少都在上純量以上，且幾乎所有十年內的泛用 CPU 均達上純量。近年來，一些重視高指令管線的電腦將其從 CPU 的硬體移至軟體。超長指令字元（的策略使得一部份的指令管線成為軟體，減少 CPU 推動指令管線的工作量，並降低了 CPU 的設計複雜度。

**執行緒級並行（Thread-level parallelism，TLP）：同時執行緒執行或執行緒級並列處理**

另一個常用以增加 CPU: 平行運算效能的策略是讓 CPU 有同時執行多個執行緒（程式）的能力。大致上說來，高同時執行緒平行執行（TLP）CPU 比高指令平行執行來的有用。許多由克雷公司（Cray）公司於 1970 年代及 1980 年代晚期所首創的同時執行緒平行執行，專於該方法而啟發了龐大的計算效力。（就時間上而言）事實上，TLP 多執行緒運算自從 1950 年就已經開始被運用了 (Smotherman 2005)。在單處理器設計中，兩種主要實現 TLP 的設計方法是晶片級多處理（CMP）晶片層多執行緒處理和同步多執行緒（simultaneous multithreading，SMT）。同級別層多執行緒處理。在更進階層中，一台電腦中有多個單獨的處理器，常常運用對稱多處理機（SMP）和 non-uniform memory access（NUMA）非獨立記憶體存取的方式來組織。這些非常不同的方法，全部為了實現同一個目標，就是增加 CPU 同時處理多個執行緒的能力。

CMP 和 SMP 這兩種方法其實是非常相似的，而且是最直接的方法。這裡有一些概念上的東西關於如何實兩個或是兩個以上完全單獨的 CPU。在 CMP 中，多個處理器核心會被放入同一個包中，有時會在非常相近的積體電路中。另一方面 SMP 包含多個包在其中，NUMA 和 SMP 很相像，但是 NUMA 使用非單一的記憶體存取方式。這些對於一台有著多個 CPU 的電腦來說是非常重要的，因為每個處理器存取記憶體的時間會很快的被 SMP 分享的模組消耗掉，因些會造成很嚴重的延遲，因為 CPU 要等待可用的記憶體．這時 NUMA 是個不錯的選擇，它可以允許有多個 CPU 同時存在一台電腦中而且 SMP 也可以同時實現．SMT 有一些不同之處，就是 SMT 會儘可能的減少 CPU 處理能力的分布。TLP 的實現實際上和超純量體系結構的實現有些相似，其實上它常常被用在超純量體系結構處理器中，如 IBM 的 POWER5。相比於複製整個 CPU，SMT 會複製需要的部分來提取指令，加密和分配，就像電腦中的一般的暫存器一樣。因此這樣會使 SMT CPU 保持處理單位運作的連續，一些通常會提供給處理單位多個指令而且來自不同的軟體執行緒，這和 ILP 結構很相似。相比於處理多個指令來自同一個執行緒，它會同時處理來自不同執行緒的多個指令。

### 資料並列

上面提及過的處理器都是一些**常數**儀器，而針對向量處理的 CPU 是較不常見的類型，但它的重要性卻越來越高。事實上，在電腦計算上，向量處理是很常見的。顧名思義，向量處理器能在一個命令週期（one instruction）處理多項數據，這有別於只能在一個命令週期內處理單一數據的常數處理器。這兩種不同處理數據的方法，普遍分別稱為『單指令，多資料』（SIMD）及『單指令，單資料』（SISD）。向量處理器最大的優點就是能夠在同一個命令週期中對不同的工作進行最佳化，例如：求一大堆數據的總和及向量的數量積，更典型的例子就是多媒體應用程式（畫像、影像、及聲音）與及眾多不同總類的科學及工程上的工作。當常數處理器只能針對一組數據於單一命令週期內完全執行提取、解碼、執行和寫回四個階段的同時，向量處理器已能對較大型的數據如相同時間內執行相同動作。當然，這假設了這個應用程式於單一命令週期內對處理器進行多次要求。

大多數早期的向量處理器，例如 Cray-1，大多都只會用於和科研及密碼學有關的應用程式。但是，隨著多媒體向數位媒體轉移，對於能做到『單指令，多資料』的普通用途處理器需求大增。於是，在浮點計算器普及化不久，擁有『單指令，多資料』功能的普通用途處理器便面世了。有些早期的『單指令，多資料』規格，如英特爾的 MMX，只能作整數運算。因為大多數要求『單指令，多資料』的應用程式都要處理浮點數位，所以這個規格對軟體開發者無疑是一個主要障礙。幸好，這些早期的設計慢慢地被改進和重新設計為現時普遍的『單指令，多資料』新規格，AMD 公司也推出了第一個真正能執行浮點 SIMD 指令集 3DNow!，在每個時脈週期可得到 4 個單精確度浮點數結果，是當時一般 x87 浮點處理器的 4 倍。新規格通常都於一 ISA 關連著。近年，一些值得注意的例子一定要數英特爾的 SSE 和 PowerPC 相關的 AltiVec（亦稱為 VMX）。

### 多核心

多核心中央處理器是在中央處理器晶片或封裝中包含多個處理器核心，以偶數為核心數目較為常見，一般共享第二級快取。現今使用雙核心和四核心以上處理器的個人電腦已相當普遍。

第一顆雙核心處理器為 IBM POWER4 處理器，2012 年 IBM 發布了最新 8 核心的 POWER 7＋處理器，擁有 80MB L3 快取 / 晶片。

## 效能

CPU 的效能和速度取決於時鐘頻率（一般以赫茲或十億赫茲計算，即 hz 與 Ghz）和每週期可處理的指令（IPC），兩者合併起來就是每秒可處理的指令（IPS）。
IPS 值代表了 CPU 在幾種人工指令序列下「高峰期」的執行率，指示和應用。而現實中 CPU 組成的混合指令和應用，可能需要比 IPS 值顯示的，用更長的時間來完成。而記憶體層次結構的效能也大大影響中央處理器的效能。通常工程師便用各種已標準化的測試去測試 CPU 的效能，已標準化的測試通常被稱為「基準」（Benchmarks）。如 _SPECint_，此軟仵試圖類比現實中的環境。測量各常用的應用程式，試圖得出現實中 CPU 的績效。

提高電腦的處理效能，亦使用多核心處理器。原理基本上是一個積體電路插入兩個以上的個別處理器（意義上稱為核心）。在理想的情況下，雙核心處理器效能將是單核心處理器的兩倍。然而，在現實中，因不完善的軟體演算法，多核心處理器效能增益遠遠低於理論，增益只有 50％左右。但增加核心數量的處理器，依然可增加一台計算機可以處理的工作量。這意味著該處理器可以處理大量的不同步的指令和事件，可分擔第一核心不堪重負的工作。有時，第二核心將和相鄰核心同時處理相同的任務，以防止崩潰。

## 實際應用

中央處理器大規模應用在個人電腦上，現今電腦可進入家庭。全因積體電路的發展，令 PC 在大小、效能以及價位等多個方面均有長足的進步。現今中央處理器價錢平宜，使用者可自行組裝個人電腦。主機板等主要電腦元件，均配合中央處理器設計。不同類型的中央處理器安裝到主機板上不同類型的 CPU 插槽中（如英特爾的 LGA 1700、超微半導體的 Socket AM5），令中央處理器變得更省電，溫度更低。大多數 IBM PC 相容機（Pentium 以後被稱為「標準 PC」（Standard PC））使用 x86 架構的處理器，他們主要由英特爾和超微半導體兩家公司生産，此外威盛電子也有參與中央處理器的生產。但與 IBM PC 相容機不同，在 2006 年之前蘋果電腦所使用的處理器一直是 IBM PowerPC RISC，之後的蘋果電腦轉而採用英特爾的處理器，以及 EFI 韌體。可見中央處理器在現代電腦的重要地位。

## 著名公司

以下公司曾經或正在生產中央處理器；包含已經倒閉、登出市場或被併購的公司。

## 注釋

## 參考文獻

## 外部連結

* CPU 簡史
* CPU 封裝
* CPU 歷史上的十個第一
* CMP 簡要介紹 （頁面存檔備份，存於網際網路檔案館） - 簡要的介紹了片上多核處理器，對常見的片上多核處理器採用的技術進行了綜述
* Processor Design: An Introduction - 詳盡地介紹微處理器的設計，雖然有些資料未完成和落伍，但仍具參考價值。
* 微處理器如何運作（頁面存檔備份，存於網際網路檔案館）
* Pipelining: An Overview （頁面存檔備份，存於網際網路檔案館） - CPU 管線技術的簡介，由 Ars Technica 成員所寫。
* SIMD Architectures （頁面存檔備份，存於網際網路檔案館） - SIMD 的介紹與說明，尤其著重於 SIMD 與桌上型電腦的關係。一樣由 Ars Technica 所寫。

**微處理器生產商**

* Advanced Micro Devices（頁面存檔備份，存於網際網路檔案館） - AMD，其中一個生產相容 x86 電腦的 CPU 生產商
* ARM Ltd（頁面存檔備份，存於網際網路檔案館） - 安謀國際科技，少數隻授權其 CPU 設計而沒有自行製造的公司。嵌入式應用軟體最常被 ARM 架構微處理器執行。
* Freescale Semiconductor（頁面存檔備份，存於網際網路檔案館） -（前身是 Motorola 的）飛思卡爾，設計數款嵌入裝置以及 SoC PowerPC 處理器。
* IBM Microelectronics - IBM 的微電子分公司，設計出許多 IBM POWER 與 PowerPC，包括許多電視遊樂器的 CPU。
* Intel Corp（頁面存檔備份，存於網際網路檔案館） - 英特爾，許多著名 CPU 的生產者，包括 IA-32、IA-64 與 XScale。也是許多用在他們自家 CPU 的週邊產品的製造者。
* MIPS Technologies（頁面存檔備份，存於網際網路檔案館） - MIPS 科技公司，MIPS 架構的製造者，在 RISC 設計領域的先鋒。
* Sun Microsystems（頁面存檔備份，存於網際網路檔案館） - 昇陽，SPARC 架構（RISC）的製造者。
* Texas Instruments - 德州儀器，半導體公司，許多以他們自產半導體組成的低耗電微控制器的設計與生產者。
* Transmeta（頁面存檔備份，存於網際網路檔案館） - 全美達，低電力 X86 相容 CPU 的創造者，例如 Crusoe 與 Efficeon。
* VIA（頁面存檔備份，存於網際網路檔案館） - 威盛，低功率 X86 相容 CPU 的製造商，例如 C3。

## 參見

* 微處理機、微控制器、單晶片
* CPU 鎖頻、倍頻器
* 指令集（CISC、RISC）
* MMX、EMMI、3DNow!、SSE、SSE2、SSE3
* 真實模式、保護模式、虛擬 86 模式
* Pentium OverDrive
* 匯流排（BUS）、前端匯流排（FSB）
* 浮點運算器（FPU）
* 電機工程學