跳轉到內容

微處理器設計/微處理器

來自華夏公益教科書,開放的書籍,面向開放的世界

微處理器

[編輯 | 編輯原始碼]

微處理器是計算機中使事情發生作用的裝置。微處理器能夠執行基本的算術運算,將資料從一個地方移動到另一個地方,並根據某些值的數量做出基本的決策。

臺式個人電腦的元件。第 3 部分是 CPU。

處理器型別

[編輯 | 編輯原始碼]

絕大多數微處理器可以在嵌入式高微控制器中找到。第二常見的處理器型別是常見的桌上型電腦處理器,例如英特爾的奔騰或 AMD 的速龍。不那麼常見的是用於高階伺服器的極其強大的處理器,例如 Sun 的 SPARC、IBM 的 Power 或英特爾的安騰。

從歷史上看,微處理器和微控制器以“標準尺寸”的 8 位、16 位、32 位和 64 位提供。這些尺寸很常見,但這並不意味著其他尺寸不可用。一些微控制器(通常是專門設計的嵌入式晶片)可以採用其他“非標準”尺寸,例如 4 位、12 位、18 位或 24 位。位數代表 CPU 可以直接定址的物理記憶體量。它也代表每次讀寫操作可以讀取的位數。在某些情況下,這些是不同的;例如,許多 8 位微處理器具有 8 位資料匯流排和 16 位地址匯流排。

  • 8 位處理器可以一次讀寫 1 個位元組,並且可以直接定址 256 個位元組
  • 16 位處理器可以一次讀寫 2 個位元組,並且可以定址 65,536 個位元組(64 千位元組)
  • 32 位處理器可以一次讀寫 4 個位元組,並且可以定址 4,294,967,295 個位元組(4 吉位元組)
  • 64 位處理器可以一次讀寫 8 個位元組,並且可以定址 18,446,744,073,709,551,616 個位元組(16 艾位元組)

通用與專用

[編輯 | 編輯原始碼]

能夠執行廣泛任務的微處理器稱為通用微處理器。通用微處理器通常是臺式計算機系統中發現的 CPU 型別。這些晶片通常能夠執行廣泛的任務(整數和浮點運算、外部記憶體介面、通用 I/O 等)。我們將討論一些其他型別的可用的處理器單元。

通用
通用處理單元,通常稱為“微處理器”,是一種旨在整合到具有外圍裝置和外部 RAM 的更大系統中的晶片。這些晶片通常可以與非常廣泛的軟體一起使用。
DSP
數字訊號處理器,簡稱 DSP,是一種專門設計用於快速算術運算,尤其是加法和乘法的晶片。這些晶片的設計考慮了處理速度,並且通常沒有通用微處理器的靈活性。DSP 還具有特殊的地址生成單元,可以管理迴圈緩衝區、執行位反轉定址,並同時訪問多個記憶體空間,而幾乎沒有開銷。它們還支援零開銷迴圈和單週期乘加指令。它們通常不如通用微處理器強大,但可以使用更少的功率(以瓦特為單位)執行訊號處理任務。
嵌入式控制器
嵌入式控制器或“微控制器”是將附加硬體整合到單個晶片中的微處理器。許多微控制器在晶片本身集成了 RAM、ROM、A/D 和 D/A 轉換器、中斷控制器、定時器,甚至振盪器。這些控制器旨在用於沒有整個計算機系統的情況,並且只需要執行少量簡單處理。
可程式設計狀態機
最簡單的處理器,可程式設計狀態機是一種極簡的微處理器,專為非常小而簡單的操作而設計。PSM 通常具有非常少量的程式 ROM 可用、有限的暫存儲存器 RAM,並且它們在可以執行的指令型別和數量方面也受到限制。PSM 可以單獨使用,或者(更常見的是)直接嵌入到更大晶片的設計中。
圖形處理單元
計算機圖形非常複雜,處理影片和遊戲應用程式視覺效果的功能已解除安裝到一種稱為 GPU 的特殊型別的處理器。GPU 通常需要專門的硬體來實現矩陣乘法和向量運算。GPU 通常也高度並行化,在多個畫素和表面上同時執行著色計算。

應用型別

[編輯 | 編輯原始碼]

微控制器和微處理器用於許多不同型別的應用程式。人們可能最熟悉臺式 PC,但事實是,臺式 PC 僅佔當今使用中的所有微處理器的一小部分。我們將在下面列出微處理器的基本用途。

訊號處理
訊號處理是一個領域,需要微控制器晶片執行復雜的數學任務才能實現高效能。訊號處理系統通常需要具有低延遲,並且非常依賴於截止日期。訊號處理應用程式的示例是數字電視和無線電訊號的解碼。
即時應用
某些任務需要非常快地執行,即使是最小的延遲或效率低下也會造成損害。這些應用程式被稱為“即時系統”,計時至關重要。即時系統的示例是現代汽車中的防抱死制動系統 (ABS) 控制器。
吞吐量和路由
吞吐量和路由是指處理器將資料從一個特定輸入移動到輸出的使用,而無需任何處理。一個例子是網際網路路由器,它讀取資料包並在不同的埠傳送資料包。
感測器監控
許多處理器,尤其是小型嵌入式處理器,用於監控感測器。微處理器將對感測器訊號進行數字化和濾波,或者讀取訊號併產生狀態輸出(感測器正常,感測器故障)。感測器監控處理器的示例是防抱死制動系統中的處理器:該處理器讀取制動感測器以確定何時制動器鎖死,然後輸出控制訊號以啟用系統其餘部分。
通用計算
通用處理器就像通常在臺式 PC 中發現的處理器型別。英特爾和 AMD 等名稱通常與這種型別的處理器相關聯,這也是公眾最熟悉的處理器型別。
圖形
數字圖形的處理是一個領域,專門的處理器單元經常被使用。隨著數字電視的出現,圖形處理器變得越來越普遍。圖形處理器需要能夠執行多個同步操作。例如,在數字影片中,每幀都需要處理一百萬個或更多個畫素,並且特定訊號可能每秒有 60 幀!對圖形處理器有利的是,畫素的顏色值通常不依賴於周圍畫素的值,因此通常可以平行計算多個畫素。
   

抽象層

[編輯 | 編輯原始碼]

計算機系統以稱為抽象層的方式開發。抽象層允許人們開發計算機元件(硬體和軟體),而無需擔心繫統中其他層的內部設計。最高層是人們在計算機上使用的使用者介面程式。最低層是各個計算機元件的電晶體佈局。計算機系統中的一些層是(從最高到最低列出)

  1. 應用程式
  2. 作業系統
  3. 韌體
  4. 指令集架構
  5. 微處理器控制邏輯
  6. 物理電路佈局

本書主要關注指令集架構 (ISA) 和微處理器控制邏輯,但也會簡要介紹作業系統 (OS)。上述主題通常屬於計算機程式設計師的領域。最底層,物理電路佈局則是硬體和 VLSI 工程師的工作。

作業系統

[編輯 | 編輯原始碼]

作業系統是一個程式,它充當系統使用者和計算機硬體之間的介面,並控制應用程式的執行。它是計算機上始終執行的程式,通常稱為核心。

指令集架構是特定機器的組合語言以及該組合語言的相關機器碼的長名稱。我們將在下面討論這一點。

組合語言

[編輯 | 編輯原始碼]

組合語言是一種小型語言,它包含微控制器可以執行的每個單獨命令的簡短詞語或“助記符”。每個命令都獲得一個助記符,每個助記符對應一個機器命令。組合語言被轉換為二進位制機器碼(透過一個名為“彙編器”的程式)。機器碼對每種不同型別的機器都是特定的。

常見的 ISA

[編輯 | 編輯原始碼]
華夏公益教科書包含關於多種不同型別組合語言程式設計的書籍。有關組合語言的更多資訊,或有關特定 ISA 的書籍,請參閱 組合語言

以下是一些最常見的 ISA,按流行程度排序(最流行的排在最前面)

  • ARM
  • IA-32 (英特爾 x86)
  • MIPS
  • 摩托羅拉 68K
  • PowerPC
  • 日立 SH
  • SPARC
  • RISC-V

摩爾定律

[編輯 | 編輯原始碼]

支配微處理器世界的普遍規律是摩爾定律。摩爾定律最初由加州理工學院的卡弗·米德博士提出,並由英特爾創始人戈登·摩爾總結。摩爾定律指出,在相同價格下,單個晶片上的電晶體數量每 18 到 24 個月就會翻一番。自 1965 年首次提出以來,這條定律從未失誤。當前的微處理器晶片包含數百萬個電晶體,並且這個數字正在迅速增長。以下是摩爾在 1965 年的《電子學雜誌》上對該定律的總結

最低元件成本的複雜性以每年大約兩倍的速度增長……當然,短期內預計這種速度會持續下去,甚至會加快。從長遠來看,增長速度有點不確定,儘管沒有理由相信它在至少 10 年內不會保持幾乎不變。這意味著到 1975 年,最小成本積體電路的元件數量將達到 65,000 個。我相信這樣一個大型電路可以構建在一個晶圓上。
——戈登·摩爾

摩爾定律被錯誤地用來計算積體電路的速度,甚至用來計算它的功耗,但這兩種解釋都是錯誤的。此外,摩爾定律談論的是“最小元件成本”晶片上的電晶體數量,這意味著相同價格下,晶片上的電晶體數量將會翻一番。這表明,價格較低的晶片可以具有更少的電晶體,而價格較高的晶片可以具有更多的電晶體。從經濟角度來看,摩爾定律的一個結果是,公司需要繼續創新並在單個晶片上整合更多電晶體,而不能提高價格。

摩爾定律不要求晶片的速度隨著晶片上電晶體數量的增加而增加。然而,這兩種測量通常是相關的。關於電晶體和摩爾定律,需要注意一些要點

  1. 較小的電晶體通常比較大的電晶體切換速度更快。
  2. 為了在單個晶片上獲得更多電晶體,晶片需要做得更大,或者電晶體需要做得更小。通常,電晶體會變小。
  3. 隨著電晶體變小,它們往往會洩漏電流。這意味著更小的電晶體需要更多的能量才能執行,並且它們會產生更多的熱量。
  4. 電晶體往往會隨著頻率的增加而產生熱量。更高的時鐘頻率往往會產生更多的熱量。
Graph of More's Law Transistor Count from 1970 to 2020. The graph is a collection of points that forms a diagonal upward line.
從 1970 年到 2020 年的摩爾定律電晶體數量圖。該圖是形成對角向上線的點的集合。

摩爾定律有時被誤解為意味著處理器速度(以赫茲為單位)每 18 個月翻一番。這不是完全正確的,儘管隨著電晶體變得更小、更緊湊,處理器的速度確實往往會提高。隨著多核處理器的出現,有些人使用摩爾定律來意味著處理器吞吐量隨著時間的推移而增加,但這也不是嚴格意義上的事實(儘管它是摩爾定律的可能副作用)。

時鐘頻率

[編輯 | 編輯原始碼]

微處理器通常以其時鐘速度來討論。時鐘速度以赫茲(或兆赫茲或吉赫茲)為單位測量。赫茲是“每秒一個週期”。每個週期,微處理器都會執行某些任務,儘管不同型別的處理器在單個週期內完成的工作量不同。處理器在一個週期內可以完成的工作量以“每週期指令數”為單位測量。對於某些系統(例如 MIPS),每個週期有 1 條指令。對於其他系統(例如現代 x86 晶片),每個週期通常有許多指令。時鐘頻率等式如下

這意味著一個週期的持續時間與時鐘頻率成反比。時鐘頻率為 1MHz 的計算機的時鐘時間為 1 微秒。時鐘頻率為 3.2GHz 的現代臺式計算機的時鐘時間大約為 3× 10-10 秒,或 300 皮秒。300 皮秒是一個非常短的時間,在每個時鐘週期內,處理器內部需要發生很多事情。

計算機的基本元素

[編輯 | 編輯原始碼]

所有計算機都有一些基本元素。這些元素是

  • CPU
  • 記憶體
  • 輸入裝置
  • 輸出裝置

根據特定的計算機體系結構,這些元素可能具有不同的尺寸,並且它們可能伴隨著其他元素。

華夏公益教科書