CPU從内存或高速緩存中獲取指令,将其放入指令寄存器,并對指令進行解碼。它将指令分解為一系列微操作,然後發出各種控制命令來執行微操作序列,從而完成指令的執行。指令是計算機指定要執行的操作的類型和操作數的基本命令。指令由一個或多個字節組成,包括操作碼字段、與操作數地址相關的一個或多個字段,以及一些表示機器狀态的狀态字和特征碼。有些指令還直接包含操作數本身
摘錄
第一個階段是提取,從内存或緩存中檢索指令(作為值或一系列值)。存儲器的位置由程序計數器指定,該計數器存儲用于識别當前程序位置的值。換句話說,程序計數器記錄當前程序中CPU的軌迹。提取指令後,程序計數器根據指令長度增加存儲單元。指令的提取通常必須從相對較慢的内存中找到,導緻CPU等待指令的輸入。這個問題主要在現代處理器的緩存和流水線結構中讨論。
解碼
CPU根據從内存中提取的指令确定其執行行為。在解碼階段,指令被分解成有意義的片段。數字值根據CPU的指令集體系結構(ISA)定義解釋為指令。一些指令值是操作碼,指示要執行的操作。其他值通常為指令提供必要的信息,例如加法操作的操作目标。這樣的操作目标可以提供恒定值(即立即值)或空間地址值:由地址模式确定的寄存器或存儲器地址。在舊的設計中,CPU中的指令解碼部分是一個無法更改的硬件設備。
然而,在許多抽象而複雜的CPU和指令集體系結構中,微程序通常用于幫助将指令轉換為各種形式的信号。這些微程序通常可以在完成的CPU中重寫,以便于更改解碼指令。使生效在提取和解碼階段之後,它進入執行階段。在此階段,它連接到各種CPU組件,這些組件可以執行所需的操作。
例如,如果需要加法運算,算術邏輯單元(ALU)将連接到一組輸入和一組輸出。輸入提供要添加的值,輸出将包含求和的結果。Alu包含一個電路系統,便于輸出完成簡單的一般運算和邏輯運算(如加法和位運算)。
如果加法運算産生的結果對于CPU處理來說太大,則可以在标志寄存器中設置算術溢出标志。回信在最後一個階段,寫回,簡單地以某種格式寫回執行階段的結果。操作結果通常寫入CPU内部的寄存器,以便後續指令快速訪問。
在其他情況下,結果可能會寫入速度較慢、但更大、成本更低的主内存。某些類型的指令在程序計數器上運行,而不直接産生結果。這些通常被稱為“跳轉”,并将循環行為、條件執行(通過條件跳轉)和函數引入程序。
許多指令還更改标志寄存器的狀态位。這些标志可用于影響程序行為,因為它們通常顯示各種操作結果。例如,使用“比較”指令判斷兩個值的大小,并根據比較結果在标志寄存器上設置一個值。該标志可通過後續跳轉指令确定程序趨勢。執行指令并寫回結果後,程序計數器的值将增加,并重複整個過程。
下一個指令周期通常會提取下一條順序指令。如果跳轉指令完成,程序計數器将更改為跳轉到的指令地址,程序将繼續正常執行。許多複雜的CPU可以一次提取多條指令,對它們進行解碼,并同時執行它們。這一部分通常涉及“經典RISC流水線”,它實際上在許多使用簡單CPU(通常稱為微控制器)的電子設備中迅速普及。
基本結構
CPU包括算術邏輯單元、寄存器單元、控制單元等。
算術邏輯單元
算術邏輯單元可以執行定點或浮點算術運算、移位運算和邏輯運算,以及地址運算和轉換。
寄存器單元
寄存器組件,包括通用寄存器、專用寄存器和控制寄存器。通用寄存器可分為定點和浮點數。它們用于在指令中存儲寄存器操作數和運算結果。通用寄存器是CPU的重要組成部分。大多數指令必須訪問通用寄存器。通用寄存器的寬度決定了計算機内部數據路徑的寬度,端口的數量通常會影響内部操作的并行性。特殊寄存器是執行某些特殊操作所需的寄存器。控制寄存器通常用于指示機器的執行狀态或維護一些指針,包括處理狀态寄存器、地址轉換目錄的基址寄存器、特權狀态寄存器、條件代碼寄存器、異常處理寄存器和錯誤檢測寄存器。有時,CPU中有一些緩存來臨時存儲一些數據指令。緩存越大,CPU的運行速度就越快。目前市場上中高端CPU的二級緩存約為2m,高端CPU的二級緩存約為4m。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!