跳轉到內容

單元 1.1.1 處理器的結構和功能

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


ALU、CU 和暫存器 - 3 個不同的 CPU 元素

[編輯 | 編輯原始碼]

算術邏輯單元 (ALU) - 這是一個由大量邏輯閘組成的元件,它處理邏輯運算,例如比較值和基本算術運算,如二進位制加法或減法。它能夠執行許多複雜的數學函式,例如正弦、餘弦和浮點除法。

控制單元 (CU) - 該元件透過使用“控制訊號”來協調處理器內部的各個單元,這些訊號決定資料流入處理器和在處理器周圍流動的方式。在 FDE 週期中,指令在控制單元中被解碼。


下面是一個典型的馮·諾依曼體系結構計算機的簡化圖

識別並解釋上面元件 A 和 B 的功能。[4]

回答


元件 A

• 名稱:控制單元

• 解釋:按順序獲取每個指令,對其進行解碼和同步,然後透過向計算機的其他部分發送控制訊號來執行它。

元件 B

• 名稱:算術邏輯單元 (接受 ALU)

• 解釋:對通常包括算術運算或邏輯比較的資料進行處理和操作,使程式能夠做出決策。

暫存器

[編輯 | 編輯原始碼]
  • 可以儲存單個數據項的位置。
  • 它們是位於 CPU 內部的專用高速儲存區域。
  • 在對任何資料進行處理之前,必須先在暫存器中表示它。
    • 例如,在對任何兩個數字進行相乘之前,它們必須分別儲存在單獨的暫存器中。

位於處理器中的暫存器

  • 程式計數器 (PC) - 包含要執行的下一條指令的地址。
  • 記憶體地址暫存器 (MAR) - 包含當前正在使用的記憶體位置的地址。
  • 記憶體資料暫存器 (MDR) - 臨時儲存要執行的指令/資料。
  • 當前指令暫存器 (CIR) - 在解碼指令時儲存指令。
  • 累加器 (ACC) - 儲存 CPU (ALU) 處理的計算結果。

CIR 和 MDR 的原因:可能看起來 CIR 和 MDR 總是儲存相同的值。但是,考慮一條輸入指令。如果沒有 CIR,MDR 將儲存輸入指令。但是,當資料輸入時,輸入值將覆蓋 MDR 中的輸入指令,因此需要 CIR 和 MDR。

匯流排

[編輯 | 編輯原始碼]

匯流排是資料從計算機的一部分傳輸到另一部分所經過的一組導線。這些通常包括

  • 資料匯流排 - 資料傳輸的路徑,通常在 CPU 和記憶體之間。這是一條半雙工路徑;資料可以在兩個方向上傳輸,但一次只能在一個方向上傳輸。雙向匯流排。
  • 地址匯流排 - 當資料被儲存到/從記憶體載入時,必須將其儲存到/從其載入的記憶體位置的地址也必須被髮送。地址總是沿著地址匯流排傳輸。這是一條單向路徑;CPU 只發送記憶體地址,它永遠不會從記憶體接收地址。單向匯流排。
  • 控制匯流排 - 控制單元向計算機的所有部分發送和接收訊號,確保所有程序在正確的時間以正確的順序發生。這些訊號沿著控制匯流排傳輸,控制匯流排由多條控制線組成,包括中斷請求線、記憶體讀取線和記憶體寫入線,以及用於同步操作的時鐘。雙向匯流排。

FDE 週期

[編輯 | 編輯原始碼]

該迴圈描述了處理發生所需的基本步驟。

  1. 程式計數器中的地址被複制到記憶體地址暫存器。
  2. 程式計數器被遞增。
  3. 控制單元透過控制匯流排向記憶體傳送取指訊號,同時將記憶體地址暫存器中儲存的地址沿著地址匯流排傳送到記憶體。儲存在記憶體中的值沿著資料匯流排返回到 CPU,並儲存在記憶體資料暫存器中。
  4. 記憶體資料暫存器中的這個值被複制到當前指令暫存器。
  1. 當前指令暫存器的內容被髮送到控制單元進行解碼。
  2. 必須識別指令使用的定址型別
    • 如果地址是直接地址,則將此地址載入到記憶體地址暫存器並檢索該地址的內容。
    • 如果地址是索引地址,則將索引暫存器的內容加到該地址,然後將此值複製到記憶體地址暫存器。檢索此記憶體位置的內容。
  1. 如果指令是跳轉指令
    1. 將地址運算元載入到程式計數器,並將當前指令暫存器中的地址元件複製到程式計數器。
    2. 此時執行已完成。
  2. 否則,執行指令。

https://pastpapers.co/aqa/A-Level/Computing-2510/AQA-COMP2-QP-JUN15.PDF

下圖 1 顯示了簡單處理器取指執行迴圈中使用的一些暫存器,以及透過系統匯流排連線到它的主記憶體的一小部分內容。

1 (a) 在圖 1 中,指令的前 4 位表示操作碼,表示要執行的指令型別。

指令的第二組 4 位叫什麼名字?[1 分]

1 (b) (i) 當前程式計數器 (PC) 中的值為 0001。

完成下面的表格,在完成取指執行迴圈的取指部分後,用二進位制表示以下暫存器中的值。

暫存器
PC
MAR
MBR

[3 分]

1 (b) (ii) 描述在迴圈的譯碼和執行部分會發生什麼。[3 分]

1 (c) 執行指令 01000011 的結果是什麼?[1 分]

回答

1a) 運算元

b)i)

  • PC 0010;
  • MAR 0001;
  • MBR 00100100;

ii)

  • 指令儲存在 CIR 中 // CIR 中的指令被解碼;
  • 控制單元/指令解碼器對指令進行解碼;
  • 指令將被拆分為操作碼和運算元;
  • 處理器/CPU 的相關部分執行指令 // 使用 ALU 進行計算;
  • 如果需要,執行進一步的記憶體取值/儲存操作;
  • 計算結果儲存在累加器/暫存器中,寫入主記憶體;
  • 更新狀態暫存器,如果執行的是跳轉/分支指令,則更新 PC;

c) 累加器中的當前值將被儲存在 (記憶體) 地址“locauon 0011/3”中;數字 011/3 被儲存在 (記憶體) 地址/位置 0011/3 中;


影響 CPU 效能的因素

[編輯 | 編輯原始碼]

CPU 的效能會受到 4 個不同因素的影響

時鐘速度

[編輯 | 編輯原始碼]

處理器的時鐘速度是它每秒可以執行的 FDE 迴圈次數,例如 3.4 GHz 是每秒 3,400,000,000 個迴圈。時鐘速度越高,每秒發生的 FDE 迴圈次數就越多,因此更高的時鐘速度可以提高效能。

快取記憶體

[編輯 | 編輯原始碼]

快取記憶體是直接內置於 CPU 的記憶體。它比 RAM 快得多,因為它離需要資料的暫存器更近,並且它的執行速度也與 CPU 相似,因此與從 RAM 中檢索資料相比,它的延遲非常小。它包含多個級別的快取,它們的大小和距離 CPU 的距離不同,分別是 L1、L2 和 L3 快取。L1 距離 CPU 最近,並且是最小的,而 L3 距離 CPU 最遠,並且是最大的。所有快取不都簡單地設定為 L1 的原因是成本 - 更快的記憶體更貴。

經常使用的資料(如作業系統的一部分)儲存在快取中,這使處理器能夠更快地執行,因為它不需要經常依賴從 RAM 中進行較慢的獲取。

核心數量

[編輯 | 編輯原始碼]

多核處理器是在單個 CPU 中包含多個獨立處理單元的處理器。每個核心可以獨立於其他核心執行,並且每個核心都有自己的低階快取,以及共享高階快取。不同的核心可以在多工處理期間同時執行不同的應用程式,從而使每秒執行更多操作。

但是,多個核心並不總是能提高處理器效能;如果一個核心正在處理一條依賴另一個核心處理的另一條指令結果的指令,它將不得不等待該核心返回結果,然後才能完成該指令的處理。這會導致掛起,即一個核心在等待另一條指令執行的結果時被浪費。

流水線

[編輯 | 編輯原始碼]

流水線是用於提高 CPU 效能的一種過程。它的工作原理是,在處理器對一條指令進行解碼時,可以從記憶體中獲取下一條指令。這在下一條指令不依賴於前一條指令的程式碼中效果最佳 - 當代碼分支時,CPU 將解碼錯誤的下一條指令,因此將不得不透過消除當前的獲取和解碼步驟來“清除流水線”。

CPU 指令流水線的示例
步驟 取指 譯碼 執行
步驟 1 指令 1
步驟 2 指令 2 指令 1
步驟 3 指令 3 指令 2 指令 1
步驟 4 指令 4 指令 3 指令 2

影響效能的其他因素

[編輯 | 編輯原始碼]
  • 溫度
  • 多執行緒能力
  • 匯流排寬度
  • 暫存器大小

James 正在考慮升級他的電腦,以便他能夠玩最新的電腦遊戲。

他目前的規格如下

  • 2.1 GHz 單核
  • 2 GB RAM
  • 500 GB HDD

確定 James 可以升級電腦的兩種方式,並解釋這些方式如何提高 CPU 的效能。(4 分)

回答


4 分,其中 2 分用於確定功能,2 分用於解釋。每個功能最多 2 分。僅標記前兩個功能。

  • 新增多核處理器。
  • 每個核心可以同時執行兩個取指-解碼-執行 (FDE) 週期。
  • 任務可以在核心之間分配執行。
  • 新增具有更快時鐘速度的處理器。
  • 處理器每秒可以完成更多 FDE 週期。
  • 新增更多 RAM。
  • 處理器可以同時開啟更多軟體和檔案。


處理器架構

[編輯 | 編輯原始碼]

我們的教學大綱涉及兩種主要的架構 - 馮·諾依曼和哈佛。

馮·諾依曼

[編輯 | 編輯原始碼]

這種架構有一個控制單元和一個地址、資料和控制匯流排。它按順序執行指令,並將指令和資料一起儲存在同一個記憶體單元中。它無法同時獲取指令和執行資料操作,因為資料和指令共享一個公共匯流排 - 這被稱為馮·諾依曼瓶頸。指令在兩個時鐘週期內完成(解碼和執行)。

這種架構與馮·諾依曼幾乎相同,但是它將資料和指令儲存在單獨的記憶體單元中。CPU 也能夠同時讀取指令和執行記憶體訪問,即使沒有快取。這是因為資料和指令有單獨的匯流排。在哈佛架構中可以使用流水線,因為它為指令和資料提供了獨立的記憶體,以及獨立的匯流排 - 如果使用流水線,指令在一個時鐘週期內完成。

當代架構

[編輯 | 編輯原始碼]

這是哈佛架構的一種修改形式。它放寬了資料和指令的嚴格分離,並且仍然允許 CPU 訪問超過 2 個記憶體匯流排。

一臺計算機使用馮·諾依曼處理器架構。

描述這種架構。

回答

該架構使用儲存程式概念 (1)。答案還應包括對取指-解碼-執行週期的解釋 (2)。

華夏公益教科書