電腦CPU的工作原理知識簡介
發(fā)布時間:2012-09-19 17:00:36 作者:佚名
我要評論

CPU從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,并對指令譯碼
CPU從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,并對指令譯碼。它把指令分解成一系列的微操作,然后發(fā)出各種控制命令,執(zhí)行微操作系列,從而完成一條指令的執(zhí)行。指令是計算機(jī)規(guī)定執(zhí)行操作的類型和操作數(shù)的基本命令。指令是由一個字節(jié)或者多個字節(jié)組成,其中包括操作碼字段、一個或多個有關(guān)操作數(shù)地址的字段以及一些表征機(jī)器狀態(tài)的狀態(tài)字以及特征碼。有的指令中也直接包含操作數(shù)本身。
提取
第一階段,提取,從存儲器或高速緩沖存儲器中檢索指令(為數(shù)值或一系列數(shù)值)。由程序計數(shù)器(Program Counter)指定存儲器的位置,程序計數(shù)器保存供識別目前程序位置的數(shù)值。換言之,程序計數(shù)器記錄了CPU在目前程序里的蹤跡。提取指令之后,程序計數(shù)器根據(jù)指令長度增加存儲器單元。指令的提取必須常常從相對較慢的存儲器尋找,因此導(dǎo)致CPU等候指令的送入。這個問題主要被論及在現(xiàn)代處理器的快取和管線化架構(gòu)。
解碼
CPU根據(jù)存儲器提取到的指令來決定其執(zhí)行行為。在解碼階段,指令被拆解為有意義的片斷。根據(jù)CPU的指令集架構(gòu)(ISA)定義將數(shù)值解譯為指令。一部分的指令數(shù)值為運(yùn)算碼(Opcode),其指示要進(jìn)行哪些運(yùn)算。其它的數(shù)值通常供給指令必要的信息,諸如一個加法(Addition)運(yùn)算的運(yùn)算目標(biāo)。這樣的運(yùn)算目標(biāo)也許提供一個常數(shù)值(即立即值),或是一個空間的定址值:暫存器或存儲器位址,以定址模式?jīng)Q定。在舊的設(shè)計中,CPU里的指令解碼部分是無法改變的硬件設(shè)備。不過在眾多抽象且復(fù)雜的CPU和指令集架構(gòu)中,一個微程序時常用來幫助轉(zhuǎn)換指令為各種形態(tài)的訊號。這些微程序在已成品的CPU中往往可以重寫,方便變更解碼指令。
在提取和解碼階段之后,接著進(jìn)入執(zhí)行階段。該階段中,連接到各種能夠進(jìn)行所需運(yùn)算的CPU部件。例如,要求一個加法運(yùn)算,算數(shù)邏輯單元(ALU,Arithmetic Logic Unit)將會連接到一組輸入和一組輸出。輸入提供了要相加的數(shù)值,而輸出將含有總和的結(jié)果。ALU內(nèi)含電路系統(tǒng),易于輸出端完成簡單的普通運(yùn)算和邏輯運(yùn)算(比如加法和位元運(yùn)算)。如果加法運(yùn)算產(chǎn)生一個對該CPU處理而言過大的結(jié)果,在標(biāo)志暫存器里,運(yùn)算溢出(Arithmetic Overflow)標(biāo)志可能會被設(shè)置。
最終階段,寫回,以一定格式將執(zhí)行階段的結(jié)果簡單的寫回。運(yùn)算結(jié)果經(jīng)常被寫進(jìn)CPU內(nèi)部的暫存器,以供隨后指令快速存取。在其它案例中,運(yùn)算結(jié)果可能寫進(jìn)速度較慢,但容量較大且較便宜的主記憶體中。某些類型的指令會操作程序計數(shù)器,而不直接產(chǎn)生結(jié)果。這些一般稱作“跳轉(zhuǎn)”(Jumps),并在程式中帶來循環(huán)行為、條件性執(zhí)行(透過條件跳轉(zhuǎn))和函式。許多指令也會改變標(biāo)志暫存器的狀態(tài)位元。這些標(biāo)志可用來影響程式行為,緣由于它們時常顯出各種運(yùn)算結(jié)果。例如,以一個“比較”指令判斷兩個值的大小,根據(jù)比較結(jié)果在標(biāo)志暫存器上設(shè)置一個數(shù)值。這個標(biāo)志可藉由隨后的跳轉(zhuǎn)指令來決定程式動向。在執(zhí)行指令并寫回結(jié)果之后,程序計數(shù)器的值會遞增,反覆整個過程,下一個指令周期正常的提取下一個順序指令。如果完成的是跳轉(zhuǎn)指令,程序計數(shù)器將會修改成跳轉(zhuǎn)到的指令位址,且程序繼續(xù)正常執(zhí)行。許多復(fù)雜的CPU可以一次提取多個指令、解碼,并且同時執(zhí)行。這個部分一般涉及“經(jīng)典RISC管線”,那些實(shí)際上是在眾多使用簡單CPU的電子裝置中快速普及(常稱為微控制(Microcontrollers))。
CPU包括運(yùn)算邏輯部件、寄存器部件和控制部件等。 轉(zhuǎn)自電腦入門到精通網(wǎng)
運(yùn)算邏輯部件
運(yùn)算邏輯部件,可以執(zhí)行定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算操作、移位操作以及邏輯操作,也可執(zhí)行地址的運(yùn)算和轉(zhuǎn)換。
寄存器部件
寄存器部件,包括通用寄存器、專用寄存器和控制寄存器。通用寄存器又可分定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩類,它們用來保存指令中的寄存器操作數(shù)和操作結(jié)果。通用寄存器是中央處理器的重要組成部分,大多數(shù)指令都要訪問到通用寄存器。通用寄存器的寬度決定計算機(jī)內(nèi)部的數(shù)據(jù)通路寬度,其端口數(shù)目往往可影響內(nèi)部操作的并行性。專用寄存器是為了執(zhí)行一些特殊操作所需用的寄存器。控制寄存器通常用來指示機(jī)器執(zhí)行的狀態(tài),或者保持某些指針,有處理狀態(tài)寄存器、地址轉(zhuǎn)換目錄的基地址寄存器、特權(quán)狀態(tài)寄存器、條件碼寄存器、處理異常事故寄存器以及檢錯寄存器等。有的時候,中央處理器中還有一些緩存,用來暫時存放一些數(shù)據(jù)指令,緩存越大,說明CPU的運(yùn)算速度越快,目前市場上的中高端中央處理器都有2M左右的二級緩存,高端中央處理器有4M左右的二級緩存。
提取
第一階段,提取,從存儲器或高速緩沖存儲器中檢索指令(為數(shù)值或一系列數(shù)值)。由程序計數(shù)器(Program Counter)指定存儲器的位置,程序計數(shù)器保存供識別目前程序位置的數(shù)值。換言之,程序計數(shù)器記錄了CPU在目前程序里的蹤跡。提取指令之后,程序計數(shù)器根據(jù)指令長度增加存儲器單元。指令的提取必須常常從相對較慢的存儲器尋找,因此導(dǎo)致CPU等候指令的送入。這個問題主要被論及在現(xiàn)代處理器的快取和管線化架構(gòu)。
解碼
CPU根據(jù)存儲器提取到的指令來決定其執(zhí)行行為。在解碼階段,指令被拆解為有意義的片斷。根據(jù)CPU的指令集架構(gòu)(ISA)定義將數(shù)值解譯為指令。一部分的指令數(shù)值為運(yùn)算碼(Opcode),其指示要進(jìn)行哪些運(yùn)算。其它的數(shù)值通常供給指令必要的信息,諸如一個加法(Addition)運(yùn)算的運(yùn)算目標(biāo)。這樣的運(yùn)算目標(biāo)也許提供一個常數(shù)值(即立即值),或是一個空間的定址值:暫存器或存儲器位址,以定址模式?jīng)Q定。在舊的設(shè)計中,CPU里的指令解碼部分是無法改變的硬件設(shè)備。不過在眾多抽象且復(fù)雜的CPU和指令集架構(gòu)中,一個微程序時常用來幫助轉(zhuǎn)換指令為各種形態(tài)的訊號。這些微程序在已成品的CPU中往往可以重寫,方便變更解碼指令。
在提取和解碼階段之后,接著進(jìn)入執(zhí)行階段。該階段中,連接到各種能夠進(jìn)行所需運(yùn)算的CPU部件。例如,要求一個加法運(yùn)算,算數(shù)邏輯單元(ALU,Arithmetic Logic Unit)將會連接到一組輸入和一組輸出。輸入提供了要相加的數(shù)值,而輸出將含有總和的結(jié)果。ALU內(nèi)含電路系統(tǒng),易于輸出端完成簡單的普通運(yùn)算和邏輯運(yùn)算(比如加法和位元運(yùn)算)。如果加法運(yùn)算產(chǎn)生一個對該CPU處理而言過大的結(jié)果,在標(biāo)志暫存器里,運(yùn)算溢出(Arithmetic Overflow)標(biāo)志可能會被設(shè)置。
最終階段,寫回,以一定格式將執(zhí)行階段的結(jié)果簡單的寫回。運(yùn)算結(jié)果經(jīng)常被寫進(jìn)CPU內(nèi)部的暫存器,以供隨后指令快速存取。在其它案例中,運(yùn)算結(jié)果可能寫進(jìn)速度較慢,但容量較大且較便宜的主記憶體中。某些類型的指令會操作程序計數(shù)器,而不直接產(chǎn)生結(jié)果。這些一般稱作“跳轉(zhuǎn)”(Jumps),并在程式中帶來循環(huán)行為、條件性執(zhí)行(透過條件跳轉(zhuǎn))和函式。許多指令也會改變標(biāo)志暫存器的狀態(tài)位元。這些標(biāo)志可用來影響程式行為,緣由于它們時常顯出各種運(yùn)算結(jié)果。例如,以一個“比較”指令判斷兩個值的大小,根據(jù)比較結(jié)果在標(biāo)志暫存器上設(shè)置一個數(shù)值。這個標(biāo)志可藉由隨后的跳轉(zhuǎn)指令來決定程式動向。在執(zhí)行指令并寫回結(jié)果之后,程序計數(shù)器的值會遞增,反覆整個過程,下一個指令周期正常的提取下一個順序指令。如果完成的是跳轉(zhuǎn)指令,程序計數(shù)器將會修改成跳轉(zhuǎn)到的指令位址,且程序繼續(xù)正常執(zhí)行。許多復(fù)雜的CPU可以一次提取多個指令、解碼,并且同時執(zhí)行。這個部分一般涉及“經(jīng)典RISC管線”,那些實(shí)際上是在眾多使用簡單CPU的電子裝置中快速普及(常稱為微控制(Microcontrollers))。
CPU包括運(yùn)算邏輯部件、寄存器部件和控制部件等。 轉(zhuǎn)自電腦入門到精通網(wǎng)
運(yùn)算邏輯部件
運(yùn)算邏輯部件,可以執(zhí)行定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算操作、移位操作以及邏輯操作,也可執(zhí)行地址的運(yùn)算和轉(zhuǎn)換。
寄存器部件
寄存器部件,包括通用寄存器、專用寄存器和控制寄存器。通用寄存器又可分定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩類,它們用來保存指令中的寄存器操作數(shù)和操作結(jié)果。通用寄存器是中央處理器的重要組成部分,大多數(shù)指令都要訪問到通用寄存器。通用寄存器的寬度決定計算機(jī)內(nèi)部的數(shù)據(jù)通路寬度,其端口數(shù)目往往可影響內(nèi)部操作的并行性。專用寄存器是為了執(zhí)行一些特殊操作所需用的寄存器。控制寄存器通常用來指示機(jī)器執(zhí)行的狀態(tài),或者保持某些指針,有處理狀態(tài)寄存器、地址轉(zhuǎn)換目錄的基地址寄存器、特權(quán)狀態(tài)寄存器、條件碼寄存器、處理異常事故寄存器以及檢錯寄存器等。有的時候,中央處理器中還有一些緩存,用來暫時存放一些數(shù)據(jù)指令,緩存越大,說明CPU的運(yùn)算速度越快,目前市場上的中高端中央處理器都有2M左右的二級緩存,高端中央處理器有4M左右的二級緩存。
相關(guān)文章
電腦提示找不到libcef.dll無法繼續(xù)執(zhí)行代碼怎么辦? libcef.dll丟失修復(fù)
在使用電腦的過程中,你可能會突然遇到諸如“找不到libcef.dll”或者“由于缺少libcef.dll,程序無法啟動”之類的惱人提示,下面我們就來看看詳細(xì)解決辦法2025-04-23電腦提示由于找不到d3dx9_43.dll如何解決? d3dx9_43.dll文件丟失修復(fù)技
在使用Windows操作系統(tǒng)運(yùn)行某些應(yīng)用程序(尤其是游戲或圖形密集型軟件)時,用戶可能會遇到“d3dx9_43.dll文件丟失”的錯誤提示,這一錯誤不僅影響程序的正常啟動,還可能2025-04-23電腦死機(jī)無反應(yīng)怎么強(qiáng)制重啟? 一文讀懂方法及注意事項
在日常使用電腦的過程中,我們難免會遇到電腦無法正常啟動的情況,本文將詳細(xì)介紹幾種常見的電腦強(qiáng)制開機(jī)方法,并探討在強(qiáng)制開機(jī)后應(yīng)注意的事項,以及如何從根本上解決電腦2025-04-16電腦如何通過數(shù)據(jù)線連接手機(jī)網(wǎng)絡(luò)? 電腦上網(wǎng)不再受限的技巧
今天我來分享一下如何用USB線把臺式電腦連接到手機(jī)的網(wǎng)絡(luò)上,其實(shí)操作非常簡單,只需要幾步就搞定了,讓我們一起來看看吧2025-04-15分辨率三兄弟LPI、DPI 和 PPI有什么區(qū)別? 搞清分辨率的那些事兒
分辨率這個東西,真的是讓人又愛又恨,為了搞清楚它,我可是翻閱了不少資料,最后發(fā)現(xiàn)“小7的背包”的解釋最讓我茅塞頓開,于是,我決定整理一下,給大家分享一下我的理解2025-04-03- 你是否曾想過,為什么鍵盤上的空格鍵有時并不能滿足我們的需求?其實(shí),空格鍵輸入的空格分為全角和半角兩種2025-03-31
mss32.dll文件丟失怎么辦? 電腦提示mss32.dll丟失的多種修復(fù)方法
最近,很多電腦用戶可能遇到了mss32.dll文件丟失的問題,導(dǎo)致一些應(yīng)用程序無法正常啟動,那么,如何修復(fù)這個問題呢?別擔(dān)心,本文將詳細(xì)介紹mss32.dll文件的作用和丟失原因2025-03-26電腦提示找不到openal32.dll文件怎么辦? openal32.dll丟失完美修復(fù)方法
openal32.dll是一種重要的系統(tǒng)文件,當(dāng)它丟失時,會給我們的電腦帶來很大的困擾,很多人都曾經(jīng)遇到過這個問題,但你知道該如何解決嗎?詳細(xì)請看下文介紹2025-03-26電腦win32spl.dll文件丟失咋辦? win32spl.dll丟失無法連接打印機(jī)修復(fù)技
電腦突然提示win32spl.dll文件丟失,打印機(jī)死活連不上,今天就來給大家詳細(xì)講解一下這個問題的解決方法,手把手教你如何搞定win32spl.dll丟失的問題,讓你輕松恢復(fù)打印機(jī)連2025-03-26電腦提示binkw32.dll缺失怎么辦? 教你輕松解決binkw32.dll丟失問題修復(fù)
電腦上玩游戲時,突然彈出“計算機(jī)丟失binkw32.dll”的錯誤提示,是不是讓你瞬間抓狂?別擔(dān)心,今天就來手把手教你如何解決這個問題2025-03-26