微處理器工作原理

2021-03-03 23:55:35 字數 4272 閱讀 5422

1. 引言 2. 微處理器的結構 3. 微處理器指令 4. 微處理器的效能和發展趨勢

引言您在瀏覽本頁面時使用的計算機便通過微處理器來完成其工作。微處理器是所有標準計算機的心臟,無論該計算機是桌面計算機、伺服器還是膝上型電腦。您正在使用的微處理器可能是奔騰、k6、powerpc、sparc或者其他任何品牌和型別的微處理器,但是它們的作用大體相同,工作方式也基本類似。

如果您曾經疑惑計算機中的微處理器是幹什麼用的,或者對各種型別的微處理器之間的差異感到迷惑,請繼續閱讀下面的內容。在本文中,您將了解到簡簡單單的數字邏輯電路技術如何讓計算機完成諸如玩遊戲或是對文件進行拼寫檢查的工作。

微處理器(又稱為cpu或**處理單元)是裝配在單顆晶元上的乙個完整的計算引擎。第一顆微處理器是2023年問世的intel 4004。4004的能力不算強大_它只能執行加減運算,而且每次只能對4位的資料進行運算。

但是它是乙個很奇妙的產品,因為所有東西都整合在一顆晶元中。在4004出現之前,工程師們要麼使用一堆晶元來製造計算機,要麼使用零散部件來搭建出計算機(一次連線乙個電晶體)。4004曾被用來生產第一款可攜式電子計算器。

使計算機進入尋常百姓家的第一款微處理器是intel 8080,它是乙個完整的8位計算機晶元,於2023年問世。而迅速在市場中走紅的第一款微處理器則是2023年推出的intel 8088,大概在2023年左右面世的ibm pc便使用了此微處理器。如果您熟悉pc市場及其歷史,便會知道pc市場經歷了從8088到80286、80386、80486,再到奔騰、奔騰ii、奔騰iii乃至奔騰4的發展過程。

所有這些微處理器都是由英特爾製造的,而且都是對8088基本設計的改進。奔騰4可以執行最初的8088所能執行的所有**,但是它的速度是8088的5000倍。

微處理器的發展過程:intel

下表可幫助您了解 intel 在不同時間推出的不同處理器之間的差異。

資料來自intel微處理器快速參考指南和tscp基準測試成績

與此表有關的資訊:

日期是該款處理器首次推出的年份。許多處理器會在首次發布之後在多年中不斷推出具有更高時鐘頻率的型號。

電晶體數量是指晶元上電晶體的數量。可以看到,晶元上包含的電晶體數量在逐年穩步上公升。

微公尺是指晶元上最細的電路的寬度(單位為微公尺)。可以用人的頭髮做個比較,頭髮的寬度為100微公尺。隨著晶元外形尺寸不斷縮小,電晶體數量卻在不斷增加。

時鐘頻率是指晶元的最大時鐘速度。我們將在下一節中詳細介紹時鐘頻率。

資料寬度是指 alu的寬度。8位的alu可以對兩個8位(8位元)數字進行加減乘除運算,而32位的alu可以計算32位的數字。8位alu如果要對兩個 32位數字進行加法操作,必須執行四條相加指令,而32位alu則只需要執行一條指令。

很多情況下,外部資料匯流排的寬度與alu相同,但也有不同的情況。8088的alu為16位,而匯流排為8位,而現代的奔騰處理器的資料匯流排寬度為64位,alu為32位。

mips代表「每秒百萬條指令」,是衡量cpu效能的粗略標準。對於現代 cpu的許多任務作,mips指標在很大程度上已經失去了意義,但是您可以將它作為乙個大致的量度,根據本欄中的資料來了解cpu的效能強弱。

從本表中可以看到,總體來說,時鐘頻率和mips之間存在一定關係。最大時鐘頻率與製造工藝和晶元內的延遲密切相關。此外,在電晶體數量和mips之間也存在一定聯絡。

例如,8088的時鐘頻率為5mhz,但是只能以0.33mips的速度執行指令(大約每15個週期執行1條指令)。現代的處理器經常可以在每個時鐘週期內執行兩條指令。

這種能力改進與電晶體的數量有直接關係,我們將在下一節中對此加以討論。

微處理器的結構

為了理解微處理器的工作原理,首先看看它的內部結構和了解其工作邏輯會很有幫助。在這個過程中,您還可以了解到組合語言——微處理器的固有語言——以及工程師們為了提高處理器速度所做的大量工作。

微處理器執行一組機器指令,這組指令可向處理器告知應執行哪些操作。微處理器就會根據指令執行三種基本工作:

通過使用alu(算術/邏輯單元),微處理器可以執行數學計算。例如:加法、減法、乘法和除法。現代的微處理器包含完整的浮點處理器,它可以對很大的浮點數執行非常複雜的浮點運算。

微處理器可以將資料從乙個記憶體位置移動到另乙個位置。

微處理器可以做出決定,並根據這些決定跳轉到一組新指令。

微處理器能夠執行許多非常複雜的工作,但是所有工作都屬於這三種基本操作的範疇。下圖顯示了乙個能夠執行上述三種操作的非常簡單的微處理器:

這是乙個進行了最大程度簡化的微處理器。此微處理器具有:

一條位址匯流排(匯流排寬度可以8位、16位或32位),用於向記憶體傳送乙個位址

一條資料匯流排(匯流排寬度可以是8位、16位或32位),能夠將資料傳送到記憶體或從記憶體取得資料

一條rd(讀)和wr(寫)線路,告訴記憶體它是希望寫入某個位址位置還是獲得某個位址位置的內容

一條時鐘線路,將時鐘脈衝序列傳送到處理器

復位線路,用於將程式計數器重置為零(或者其他內容)並重新開始執行

在本例中,我們假定位址和資料匯流排的寬度都是8位的。

以下是這個簡單的微處理器的各個組成部分:

暫存器a、b和c就是一些用觸發器製造的鎖存器。(有關詳細資訊,請參見布林邏輯的應用一文的「邊緣觸發鎖存器」部分。)

位址鎖存器與暫存器a、b和c極其類似。

程式計數器也是乙個鎖存器,但是它有一種額外的能力,也就是能夠在執行每條語句後將計數器加一,並在被告知應進行重置時將計數器重置為零。

alu可以像乙個8位加法器一樣簡單(有關詳細資訊,請參見布林邏輯的應用一文中有關加法器的部分),也可以較為複雜,能夠對8位的值進行加法、減法、乘法和除法運算。我們假定是後面一種加法器。

測試暫存器是一種特殊的鎖存器,可以存放在alu中執行的比較運算的結果。alu通常可以比較兩個數字,並確定它們是否相等以及其中乙個數字是否大於另乙個數字等。測試暫存器通常還可以儲存加法器上一次計算產生的進製。

它將這些值存放在觸發器中,隨後指令解碼器可以使用這些值做出決定。

圖中有六個標記有「3-state」(三態)的方框。它們是三態緩衝區。三態緩衝區可以輸出1、0或者徹底斷開其輸出(可以將其想像為乙個將輸出線從電路中徹底斷開的開關)。

三態緩衝區能夠將多種輸出連線到電路中,但是線路上的某乙個輸出實際上代表的是1或0。

指令暫存器和指令解碼器負責控制所有其他元件。

雖然沒有顯示在此圖中,但實際上存在一些來自指令解碼器的控制線,它們的作用是:

通知a暫存器鎖存當前在資料匯流排上傳遞的值

通知b暫存器鎖存當前在資料匯流排上傳遞的值

通知c暫存器鎖存當前由alu輸出的值

通知程式計數器暫存器鎖存當前在資料匯流排上傳遞的值

通知位址暫存器鎖存當前在資料匯流排上傳遞的值

通知指令暫存器鎖存當前在資料匯流排上傳遞的值

通知程式計數器進行遞增

通知程式計數器重置為零

啟用所有六個三態緩衝區(六條單獨的線路)

通知alu要執行的操作

通知測試暫存器鎖存alu的測試位

啟用rd線路

啟用wr線路

來自測試暫存器和時鐘線路(以及指令暫存器)的資料位會進入到指令解碼器中。

ram和rom

上一節中我們討論了位址和資料匯流排,以及rd和wr線路。這些匯流排和線路連線到ram或rom——通常是同時連線到二者。在我們作為例子的微處理器中,有乙個寬度為8位的位址匯流排和乙個寬度為8位的資料匯流排。

也就是說,該微處理器可以定址(28) 256個位元組的記憶體空間,並且可以向記憶體讀取或寫入8位的資料。我們假定這個簡單的微處理器有節的rom,其位址從0開始,此外還有節的ram,其位址從128開始。

rom代表唯讀記憶體。rom晶元使用永久性的預設位元組進行了程式設計。位址匯流排通知rom晶元應取出哪些位元組並將它們放在資料匯流排上。

當rd線的狀態更改後,rom晶元會將選擇的位元組放在資料匯流排上。

ram代表隨機訪問記憶體。它包含多個位元組的資訊,微處理器可以讀取或寫入這些位元組,而具體操作取決於訊號是由rd線路給出的還是 wr 線路給出的。ram 晶元的乙個缺點是,在電源中斷後,儲存的所有資訊都會消失。

這也就是為何計算機需要使用 rom 的原因。

順便說一下,幾乎所有計算機都包含一定數量的 rom(可以製造出不包括任何ram的簡單計算機——許多微控制器便做到了這一點,方法是將少量的ram位元組放在處理器晶元自身中——但是,通常不可能製造出不包含任何rom的計算機)。在pc中,rom稱作bios(基本輸入輸出系統)。在微處理器啟動時,它開始執行在bios中找到的指令。

bios指令會執行對計算機中的硬體進行測試這樣的工作,然後訪問硬碟以讀取啟動扇區(有關詳細資訊,請參見硬碟工作原理)。該啟動扇區是另乙個小型程式,在將其從磁碟中讀出後,bios將它儲存在ram中。然後,微處理器開始從 ram中執行啟動扇區的指令。

啟動扇區程式會通知微處理器將其餘指令從硬碟讀入ram,微處理器隨後又會執行這些指令,以此類推。這就是微處理器載入和執行整個作業系統的過程。

微處理器與嵌入式複習題

1 8086和80486cpu內部有的是 指令流對列 2 下列儲存器中速度最快的是 cache 3 目標檔案經link後可生成 exe與.map 4 mov ax si 的是在哪個儲存器段中操作 資料段 5 8086cpu的段暫存器作用是 計算實體地址 6 不一致的 一種與c語言類似的程式語言 7 ...

軟化水處理器工作原理

一 空調軟化水裝置工作原理 水的硬度主要是由其中的陽離子 鈣 ca2 鎂 mg2 離子構成的。當含有硬度離子的原水通過交換器樹脂層時,水中的鈣 鎂離子與樹脂內的鈉離子發生置換,樹脂吸附了鈣 鎂離子而鈉離子進入水中,這樣從交換器內流出的水就是去掉了硬度離子的軟化水。隨著交換過程的不斷進行,樹脂中na ...

X86處理器與ARM處理器

摘要arm架構在嵌入式系統 超級計算機領域有著龐大的市場占有量。本文從x86架構出發,通過對比體現arm架構處理器的結構和特性。x86架構與arm架構的最根本區別是採用了不同的指令集。arm處理器採用32位元精簡指令集 risc 處理器架構,x86架構處理器採用可變指令長度的複雜指令集計算機 cis...