本文主要介紹cpu的流水線技術(shù)(cpu的流水線是什么),下面一起看看cpu的流水線技術(shù)(cpu的流水線是什么)相關(guān)資訊。
cpu從內(nèi)存或緩存中獲取指令,將它們放入指令寄存器,并對指令進(jìn)行解碼。它將指令分解成一系列微操作,然后發(fā)出各種控制命令執(zhí)行微操作序列,從而完成指令的執(zhí)行。
指令是計(jì)算機(jī)指定要執(zhí)行的操作的類型和操作數(shù)的基本命令。一條指令由一個(gè)或多個(gè)字節(jié)組成,包括一個(gè)操作碼字段,一個(gè)或多個(gè)與操作數(shù)地址有關(guān)的字段,以及一些狀態(tài)字和表示機(jī)器狀態(tài)的特征碼。有些指令還直接包含操作數(shù)本身。
提取
第一個(gè)階段是fetch,它從內(nèi)存或緩存中檢索指令(作為值或一系列值)。存儲(chǔ)器的位置由程序計(jì)數(shù)器指定,該計(jì)數(shù)器存儲(chǔ)用于識別當(dāng)前程序位置的值。換句話說,程序計(jì)數(shù)器記錄了cpu在當(dāng)前程序中的運(yùn)行軌跡。在提取指令之后,
程序計(jì)數(shù)器根據(jù)指令長度增加存儲(chǔ)單元。指令提取通常必須從相對較慢的內(nèi)存中找到,這導(dǎo)致cpu等待指令輸入。這個(gè)問題主要在現(xiàn)代處理器的緩存和流水線結(jié)構(gòu)中討論。
譯
cpu根據(jù)從存儲(chǔ)器中提取的指令確定其執(zhí)行行為。在解碼階段,指令被分解成有意義的片段。根據(jù)cpu的isa定義,數(shù)字值被解釋為指令。一些指令值是操作碼,指示要執(zhí)行的操作。
其他值通常為指令提供必要的信息,例如加法運(yùn)算的運(yùn)算目標(biāo)。這種操作目標(biāo)可以提供常數(shù)值(即立即值)或空間地址值:由地址模式確定的寄存器或存儲(chǔ)器地址。在舊的設(shè)計(jì)中,
cpu中的指令解碼部分是一個(gè)不可改變的硬件設(shè)備。
然而,在許多抽象和復(fù)雜的cpu和指令集體系結(jié)構(gòu)中,微程序通常用于幫助將指令轉(zhuǎn)換為各種形式的信號。這些微程序通??梢栽谕暾腸pu中重寫,以改變解碼指令。在提取和解碼階段之后,驗(yàn)證進(jìn)入執(zhí)行階段。
在這個(gè)階段,它連接到各種cpu組件,這些組件可以執(zhí)行所需的操作。
例如,如果需要加法運(yùn)算,算術(shù)邏輯單元(alu)將連接到一組輸入和一組輸出。輸入提供要相加的值,輸出將包含求和結(jié)果。alu包含電路系統(tǒng),便于輸出完成簡單的一般運(yùn)算和邏輯運(yùn)算(如加法和位運(yùn)算)。
如果加法運(yùn)算的結(jié)果對于cpu處理來說太大,可以在標(biāo)志寄存器中設(shè)置算術(shù)溢出標(biāo)志。回復(fù)在最后一個(gè)階段,寫回,簡單的用某種格式寫回執(zhí)行階段的結(jié)果。運(yùn)算結(jié)果通常被寫入cpu內(nèi)部的寄存器中,
以便后續(xù)指令快速訪問。
在其他情況下,結(jié)果可能會(huì)寫入速度較慢、但更大、成本更低的主內(nèi)存。某些類型的指令在程序計(jì)數(shù)器上運(yùn)行,而不直接產(chǎn)生結(jié)果。這些通常被稱為“跳轉(zhuǎn)”,并將循環(huán)行為、條件執(zhí)行(通過條件跳轉(zhuǎn))和函數(shù)引入程序。
許多指令還更改標(biāo)志寄存器的狀態(tài)位。這些標(biāo)志可用于影響程序行為,因?yàn)樗鼈兺ǔo@示各種操作結(jié)果。例如,使用“比較”指令判斷兩個(gè)值的大小,并根據(jù)比較結(jié)果在標(biāo)志寄存器上設(shè)置一個(gè)值。
該標(biāo)志可通過后續(xù)跳轉(zhuǎn)指令確定程序趨勢。執(zhí)行指令并寫回結(jié)果后,程序計(jì)數(shù)器的值將增加,并重復(fù)整個(gè)過程。
下一個(gè)指令周期通常會(huì)提取下一條順序指令。如果跳轉(zhuǎn)指令完成,程序計(jì)數(shù)器將更改為跳轉(zhuǎn)到的指令地址,程序?qū)⒗^續(xù)正常執(zhí)行。許多復(fù)雜的cpu可以一次提取多條指令,對它們進(jìn)行解碼,并同時(shí)執(zhí)行它們。
這一部分通常涉及“經(jīng)典risc流水線”,它實(shí)際上在許多使用簡單cpu(通常稱為微控制器)的電子設(shè)備中迅速普及。
基本結(jié)構(gòu)
cpu包括算術(shù)邏輯單元、寄存器單元、控制單元等。
算術(shù)邏輯單元
算術(shù)邏輯單元可以執(zhí)行定點(diǎn)或浮點(diǎn)算術(shù)運(yùn)算、移位運(yùn)算和邏輯運(yùn)算,以及地址運(yùn)算和轉(zhuǎn)換。
寄存器單元
寄存器組件,包括通用寄存器、專用寄存器和控制寄存器。通用寄存器可分為定點(diǎn)和浮點(diǎn)數(shù)。它們用于在指令中存儲(chǔ)寄存器操作數(shù)和運(yùn)算結(jié)果。通用寄存器是cpu的重要組成部分。大多數(shù)指令必須訪問通用寄存器。
通用寄存器的寬度決定了計(jì)算機(jī)內(nèi)部數(shù)據(jù)路徑的寬度,端口的數(shù)量通常會(huì)影響內(nèi)部操作的并行性。特殊寄存器是執(zhí)行某些特殊操作所需的寄存器??刂萍拇嫫魍ǔS糜谥甘緳C(jī)器的執(zhí)行狀態(tài)或維護(hù)一些指針,
包括處理狀態(tài)寄存器、地址轉(zhuǎn)換目錄的基址寄存器、特權(quán)狀態(tài)寄存器、條件代碼寄存器、異常處理寄存器和錯(cuò)誤檢測寄存器。有時(shí),cpu中有一些緩存來臨時(shí)存儲(chǔ)一些數(shù)據(jù)指令。緩存越大,cpu的運(yùn)行速度就越快。
目前市場上中高端cpu的二級緩存約為2m,高端cpu的二級緩存約為4m。