當前位置:才華齋>計算機>計算機硬體>

CPU的工作原理

計算機硬體 閱讀(2.16W)

CPU從儲存器或高速緩衝儲存器中取出指令,放入指令暫存器,並對指令譯碼。它把指令分解成一系列的微操作,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行。指令是計算機規定執行操作的型別和運算元的基本命令。指令是由一個位元組或者多個位元組組成,其中包括操作碼欄位、一個或多個有關運算元地址的欄位以及一些表徵機器狀態的狀態字以及特徵碼。有的指令中也直接包含運算元本身。

CPU的工作原理

  提取

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

  解碼

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

  執行

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

  寫回

最終階段,寫回,以一定格式將執行階段的結果簡單的寫回。運算結果經常被寫進CPU內部的暫存器,以供隨後指令快速存取。在其它案例中,運算結果可能寫進速度較慢,但容量較大且較便宜的主記憶體中。某些型別的指令會操作程式計數器,而不直接產生結果。這些一般稱作ldquo;跳轉(Jumps),並在程式中帶來迴圈行為、條件性執行(透過條件跳轉)和函式。許多指令也會改變標誌暫存器的狀態位元。

這些標誌可用來影響程式行為,緣由於它們時常顯出各種運算結果。例如,以一個比較指令判斷兩個值的大小,根據比較結果在標誌暫存器上設定一個數值。這個標誌可藉由隨後的跳轉指令來決定程式動向。在執行指令並寫回結果之後,程式計數器的值會遞增,反覆整個過程,下一個指令週期正常的提取下一個順序指令。如果完成的是跳轉指令,程式計數器將會修改成跳轉到的指令位址,且程式繼續正常執行。許多複雜的CPU可以一次提取多個指令、解碼,並且同時執行。這個部分一般涉及經典RISC管線,那些實際上是在眾多使用簡單CPU的電子裝置中快速普及(常稱為微控制(Microcontrollers))。