微處理器系統(tǒng)_第1頁
微處理器系統(tǒng)_第2頁
微處理器系統(tǒng)_第3頁
微處理器系統(tǒng)_第4頁
微處理器系統(tǒng)_第5頁
已閱讀5頁,還剩122頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、微處理器系統(tǒng)概述“好奇號(hào)好奇號(hào)”火星探測器的硬件火星探測器的硬件和和軟件軟件 北京時(shí)間北京時(shí)間2012年年8月月6日日13:31分,美國宇分,美國宇航局好奇號(hào)火星車在火星著陸,它將展開航局好奇號(hào)火星車在火星著陸,它將展開為期兩年的任務(wù),主要任務(wù)是探索火星過為期兩年的任務(wù),主要任務(wù)是探索火星過去或者現(xiàn)在的環(huán)境是否適宜生命存在去或者現(xiàn)在的環(huán)境是否適宜生命存在好奇號(hào)“好奇號(hào)”微處理器系統(tǒng)硬件 兩套完全相同的微處理器系統(tǒng) CPU為為BAE RAD750(1040萬晶體管,核心頻率110到200 MHz),基于IBM的PowerPC 750設(shè)計(jì)而來,速度達(dá)到400 MIPS(勇氣號(hào)和機(jī)遇號(hào)為35 MIP

2、S),可以承受-55和70度氣溫變化以及1000gray的輻射水平 256K EEPROM、256MB內(nèi)存、內(nèi)存、2GB閃存閃存軟件 VxWoks 6.9實(shí)時(shí)操作系統(tǒng) Wind River Systems(已被Intel收購)開發(fā) 好奇號(hào)代碼共250萬行,程序語言是C,多是用Python腳本自動(dòng)生成 超過一百萬行代碼是手寫 程序包含150個(gè)獨(dú)立模塊,每個(gè)模塊執(zhí)行不同的功能,高度耦合的模塊組合成組件手機(jī)基本結(jié)構(gòu)1.1 系統(tǒng)基本結(jié)構(gòu) 微處理器 內(nèi)部存儲(chǔ)器 外部設(shè)備完整的微處理系統(tǒng)的基本構(gòu)架16位PC-8086微處理器結(jié)構(gòu)微處理器 用來實(shí)現(xiàn)運(yùn)算和控制功能的部件,由運(yùn)算器、控制器和寄存器三個(gè)基本單元組

3、成 運(yùn)算器用于完成數(shù)據(jù)的算術(shù)和邏輯運(yùn)算 CPU內(nèi)部的寄存器用來暫存參加運(yùn)算的操作數(shù)和運(yùn)算結(jié)果 控制器通常由指令寄存器、指令譯碼器和控制電路組成 指令是一組二進(jìn)制編碼信息,主要包括兩個(gè)內(nèi)容: 告訴計(jì)算機(jī)進(jìn)行什么操作; 指出操作數(shù)或操作數(shù)地址。 控制電路根據(jù)指令的要求向微型機(jī)各部件發(fā)出一系列相應(yīng)的控制信息,使它們協(xié)調(diào)有序地工作。系統(tǒng)總線 微處理器通過系統(tǒng)總線與內(nèi)部存儲(chǔ)器(簡稱內(nèi)存)和外部設(shè)備(簡稱外設(shè))相連 系統(tǒng)總線由三個(gè)部分組成:地址總線,提供存儲(chǔ)單元的地址;數(shù)據(jù)總線,提供存儲(chǔ)單元讀寫操作時(shí)的數(shù)據(jù);控制總線,提供讀寫使能信號(hào)和其它輔助信號(hào) 微處理器通過總線對它們進(jìn)行數(shù)據(jù)的讀取和寫入,即讀操作和寫

4、操作微處理器系統(tǒng) 是完成信息處理,主要處理操作為數(shù)據(jù)傳送、數(shù)學(xué)計(jì)算和流程控制 處理過程采用格式化的二進(jìn)制代碼描述構(gòu)成程序,并保存在存儲(chǔ)設(shè)備中 程序可以存放在內(nèi)存中,也可以存放在外部存儲(chǔ)器中 當(dāng)需要執(zhí)行這些程序時(shí),必須先將這些程序讀入內(nèi)存 微處理器可以自動(dòng)通過系統(tǒng)總線從內(nèi)存中讀取這些代碼,并能夠自動(dòng)通過系統(tǒng)總線來獲取和保存操作中所需要和產(chǎn)生的數(shù)值微處理器系統(tǒng) 硬件和軟件兩個(gè)部分組成 硬件實(shí)現(xiàn)具體操作過程 軟件實(shí)現(xiàn)處理過程,即操作流程微處理器 在功能上主要體現(xiàn)為數(shù)據(jù)傳送、數(shù)學(xué)運(yùn)算和流程控制 在形式上體現(xiàn)為數(shù)據(jù)和指令 在結(jié)構(gòu)上由數(shù)學(xué)運(yùn)算單元、寄存器、指令控制單元和存儲(chǔ)控制單元組成處理的格式化描述 每

5、個(gè)處理包括三個(gè)部分:執(zhí)行條件、處理動(dòng)作、處理內(nèi)容。 執(zhí)行條件是可選的,沒有給出條件就意味著無條件或者認(rèn)為條件恒成立 處理動(dòng)作主要是數(shù)據(jù)傳送、數(shù)學(xué)運(yùn)算和流程控制這三大類 處理內(nèi)容則是數(shù)據(jù)傳送的源和目的、運(yùn)算的輸入輸出和流程控制的參數(shù)等功能實(shí)現(xiàn)結(jié)構(gòu) 信息處理:操作及操作對象 從電路設(shè)計(jì)角度來看,邏輯功能單元和存儲(chǔ)功能單元 存儲(chǔ)功能單元:寄存器單元和存儲(chǔ)器單元 邏輯功能單元:運(yùn)算器和控制器控制器。完成對整個(gè)計(jì)算機(jī)系統(tǒng)操作的協(xié)調(diào)與指揮運(yùn)算器。數(shù)據(jù)加工處理部件,所進(jìn)行的全部操作由控制器發(fā)出的控制信號(hào)指揮寄存器 通用寄存器和專用寄存器 通用寄存器。用來存放原始數(shù)據(jù)和運(yùn)算結(jié)果,有時(shí)還可以作為計(jì)數(shù)器和地址指針

6、等 專用寄存器。專門用來完成某一種特殊功能的寄存器,通常不允許編程直接操作,必須通過專用指令來修改,有的只是內(nèi)部使用,無法編程更改專用寄存器 至少要有5個(gè)專用的寄存器:指令寄存器(IR)程序計(jì)數(shù)器(PC)地址寄存器(AR)數(shù)據(jù)緩沖寄存器(DR)狀態(tài)條件寄存器(PSW)存儲(chǔ)總線 存儲(chǔ)器。由大量可以存儲(chǔ)一個(gè)二進(jìn)制代碼的存儲(chǔ)元構(gòu)成存儲(chǔ)器 通常為單獨(dú)器件,指令和數(shù)據(jù)都存放在存儲(chǔ)器中運(yùn)算器 ALU、操作數(shù)通道單元、判別邏輯和控制單元等構(gòu)成了運(yùn)算器 運(yùn)算器不僅可以完成算術(shù)邏輯運(yùn)算,還可以作為數(shù)據(jù)信息的傳送通道 向ALU提供操作數(shù)的實(shí)現(xiàn)方法有兩種:ALU輸入端加多路選擇器ALU輸入端加一級暫存器(鎖存器)帶

7、多路選擇器的運(yùn)算器 由寄存器的同步輸入脈沖CPi將內(nèi)部總線上的數(shù)據(jù)送入Ri帶輸入鎖存器的運(yùn)算器運(yùn)算器內(nèi)部總線 主要有3種結(jié)構(gòu)形式 單總線結(jié)構(gòu)運(yùn)算器 雙總線結(jié)構(gòu)運(yùn)算器 三總線結(jié)構(gòu)運(yùn)算器單總線結(jié)構(gòu)運(yùn)算器雙總線結(jié)構(gòu)運(yùn)算器三總線結(jié)構(gòu)運(yùn)算器控制器 讀取指令 翻譯、分析指令 執(zhí)行指令指令部件 程序計(jì)數(shù)器(PC):用來保存當(dāng)前正在執(zhí)行的一條指令或接著要執(zhí)行的下一條指令的地址; 指令寄存器(IR):用來存放從存儲(chǔ)器中取出的指令; 指令譯碼器(ID):用來解釋指令、產(chǎn)生相應(yīng)的控制信號(hào)提供給微操作信號(hào)發(fā)生器; 地址形成部件:根據(jù)指令不同尋址方式,形成操作數(shù)的有效地址。時(shí)序部件 產(chǎn)生一定的時(shí)序信號(hào),以保證系統(tǒng)的各功

8、能部件有節(jié)奏地進(jìn)行信息傳送、加工和信息存儲(chǔ)微操作信號(hào)發(fā)生器 微操作。一條指令的取出和執(zhí)行可以分解成很多最基本的操作,這種最基本的不可再分割的操作稱為微操作信號(hào)發(fā)生器 控制單元(CU)。它是控制器的核心。不同的機(jī)器指令具有不同的微操作序列 微操作控制信號(hào)。由指令部件提供的譯碼信號(hào)、時(shí)序部件提供的時(shí)序信號(hào)和備控制功能部件所反饋的狀態(tài)及條件綜合形成的中斷控制邏輯 用來控制中斷處理的硬件邏輯存儲(chǔ)結(jié)構(gòu) 微處理器所執(zhí)行的指令和操作數(shù)據(jù)都是放在存儲(chǔ)器中 主要有兩種結(jié)構(gòu): 哈佛結(jié)構(gòu):微處理器連接一個(gè)指令存儲(chǔ)器和一個(gè)數(shù)據(jù)存儲(chǔ)器,指令和數(shù)據(jù)是獨(dú)立存儲(chǔ)的; 馮諾伊曼結(jié)構(gòu):微處理器只接一個(gè)存儲(chǔ)器,該存儲(chǔ)器中既有指令又

9、有數(shù)據(jù)哈佛結(jié)構(gòu)馮諾伊曼結(jié)構(gòu)微處理結(jié)構(gòu) 利用二者各自優(yōu)點(diǎn)進(jìn)行折衷構(gòu)建現(xiàn)在流行的帶高速緩存的 從外部上看是馮諾伊曼結(jié)構(gòu),即程序和數(shù)據(jù)都存在一個(gè)存儲(chǔ)器中,接口總線只有一套,接口簡單且存儲(chǔ)成本低 從內(nèi)部上看是哈佛結(jié)構(gòu),即有獨(dú)立的指令和數(shù)據(jù)緩存,指令與數(shù)據(jù)是分開存儲(chǔ)的,指令執(zhí)行速度快新微處理器結(jié)構(gòu)高速緩存(Cache) 最大特點(diǎn):存取速度快,但容量較小 將當(dāng)前使用頻率較高的程序和數(shù)據(jù)通過一定的替換機(jī)制從存儲(chǔ)器放入Cache指令集體系 指令的強(qiáng)弱是CPU的重要指標(biāo) 指令集是提高微處理器效率的最有效工具之一 主流體系結(jié)構(gòu):指令集可分為復(fù)雜指令集(CISC)和精簡指令集(RISC)兩部分CISC 是一種為了便

10、于編程和提高記憶體訪問效率的晶片設(shè)計(jì)體系 體系的指令特征使用微代碼 新設(shè)計(jì)的處理器,只需增加較少的電晶體就可以執(zhí)行同樣的指令集,也可以很快地編寫新的指令集程式 其優(yōu)點(diǎn):能夠有效縮短新指令的微代碼設(shè)計(jì)時(shí)間,允許設(shè)計(jì)師實(shí)現(xiàn)CISC體系機(jī)器的向上相容 缺點(diǎn):指令集以及晶片的設(shè)計(jì)比上一代產(chǎn)品更復(fù)雜,不同的指令,需要不同的時(shí)鐘周期來完成,執(zhí)行較慢的指令,將影響整臺(tái)機(jī)器的執(zhí)行效率RISC 是為了提高處理器運(yùn)行的速度而設(shè)計(jì)的晶片體系 關(guān)鍵技術(shù)在于流水線操作。即在一個(gè)時(shí)鐘周期里完成多條指令 同樣長度的指令;單機(jī)器周期指令 優(yōu)點(diǎn):在使用相同的晶片技術(shù)和相同運(yùn)行時(shí)鐘下,RISC系統(tǒng)的運(yùn)行速度將是CISC的24倍。

11、RISC處理器比相對應(yīng)的CISC處理器設(shè)計(jì)更簡單 缺點(diǎn):多指令的操作使得程式開發(fā)者必須小心地選用合適的編譯器,而且編寫的代碼量會(huì)變得非常大。另外就是RISC體系的處理器需要更快記憶體CISC與RISC差異 CISC指令復(fù)雜,故采微指令碼控制單元的設(shè)計(jì),而RISC的指令90%是由硬體直接完成,只有10%的指令是由軟體以組合的方式完成,指令執(zhí)行時(shí)間上RISC較短,所須ROM空間相對的比較大 CISC的需要較多的定址模式,而RISC只有少數(shù)的定址模式,CISC占用的匯流排周期較多 CISC指令的格式長短不一,執(zhí)行時(shí)的周期次數(shù)也不統(tǒng)一,而RISC結(jié)構(gòu)剛好相反,達(dá)到平均一周期完成一指令 在設(shè)計(jì)上RISC

12、較CISC簡單;RISC因指令精簡化后造成應(yīng)用程式碼變大,需要較大的程式記憶體空間 大量使用寄存器指令執(zhí)行過程 一條指令運(yùn)行的過程可分為3個(gè)階段:取指令階段分析取數(shù)階段執(zhí)行階段微處理器指令運(yùn)行控制流程取指令階段 完成的任務(wù)是將現(xiàn)行指令從主存儲(chǔ)器中取出來并送至指令寄存器(IR)中去,具體操作如下: 將程序計(jì)數(shù)器(PC)中的內(nèi)容送至存儲(chǔ)器地址寄存器(AR),并送地址總線(AB); 由控制單元(CU)經(jīng)控制總線(CB)向存儲(chǔ)器發(fā)讀命令; 從主存儲(chǔ)器中取出指令通過數(shù)據(jù)總線(DB)送到數(shù)據(jù)寄存器(DR); 將DR的內(nèi)容送至指令寄存器(IR)中; 將PC的內(nèi)容遞增,為取下一條指令做好準(zhǔn)備。取指令階段中微處

13、理器個(gè)部分工作流程分析取數(shù)階段 取出指令后,指令譯碼器(ID)可識(shí)別和區(qū)分出不同的指令類型執(zhí)行階段 完成指令規(guī)定的各種操作,形成穩(wěn)定的運(yùn)算結(jié)果,并將其存儲(chǔ)起來流水線構(gòu)架 一條指令從存儲(chǔ)器讀出來到執(zhí)行完,其主要工作流程為:取指(F)譯指(D)讀數(shù)(R)運(yùn)算(A)寫數(shù)(W) 微處理器需要經(jīng)過5步才完成一條指令的操作 寄存器保存數(shù)據(jù)需要時(shí)鐘信號(hào),時(shí)鐘是操作的節(jié)拍,所有操作都是以時(shí)鐘為最基本時(shí)間進(jìn)行的 處理速度取決于每個(gè)節(jié)拍的時(shí)鐘周期馮諾依曼結(jié)構(gòu)的處理器時(shí)序圖平均每5個(gè)時(shí)鐘周期可以完成1條指令兩級流水線 微處理器分成兩個(gè)部分,取指和總線單元為一個(gè)功能體,譯指和運(yùn)算單元為一個(gè)功能體 兩個(gè)功能體相對獨(dú)立,

14、兩個(gè)功能體可以同時(shí)工作 平均每3個(gè)時(shí)鐘完成1條指令工作時(shí)序圖三級流水線 取指、讀寫數(shù)據(jù)都會(huì)對存儲(chǔ)器進(jìn)行操作,采用哈佛結(jié)構(gòu)將指令讀取和數(shù)據(jù)讀取分離可以進(jìn)一步加快執(zhí)行速度 處理器含有三個(gè)功能體指令總線及讀取功能體;數(shù)據(jù)總線讀寫功能體;譯指和運(yùn)算功能體 三個(gè)功能體相對獨(dú)立,三個(gè)功能體可以同時(shí)工作 平均每4個(gè)時(shí)鐘周期完成2條指令,即每個(gè)2時(shí)鐘周期完成1條指令工作時(shí)序圖5級流水線 最佳的途徑為:譯指和運(yùn)算分離,數(shù)據(jù)讀和寫分離 譯指和運(yùn)算本身就是相互獨(dú)立的,所以非常容易分離 傳統(tǒng)的數(shù)據(jù)總線上的讀寫是不可同時(shí)進(jìn)行,只能采用新型的存儲(chǔ)結(jié)構(gòu)和讀寫策略來完成了數(shù)據(jù)同時(shí)讀寫 平均每1個(gè)時(shí)鐘周期完成1條指令工作時(shí)序圖

15、加快處理速度 減小時(shí)鐘周期是唯一的途徑 減小時(shí)鐘周期就意味著這些運(yùn)算不能正確實(shí)現(xiàn) 將這些耗時(shí)較長的操作將分成若干個(gè)耗時(shí)較短的子操作級聯(lián)起來完成,通過增加獨(dú)立單元的數(shù)目來實(shí)現(xiàn)高速處理,即增加流水線級數(shù)來實(shí)現(xiàn)并行操作量,相當(dāng)于以空間換時(shí)間。 整個(gè)程序的執(zhí)行速度不僅取決于指令的執(zhí)行速度,還受到流程跳轉(zhuǎn)的限制存儲(chǔ)控制 地址總線寬度決定存儲(chǔ)器的容量 微處理器通過外部總線與存儲(chǔ)器相連,N個(gè)地址線決定了存儲(chǔ)器容量最大為2N個(gè)基本存儲(chǔ)單元 微處理器通常是以字節(jié)為基本存儲(chǔ)單元的,每個(gè)基本存儲(chǔ)單元都有唯一的地址與之對應(yīng) 基本存儲(chǔ)單元地址的計(jì)算稱為尋址分段結(jié)構(gòu) 字長W決定的存儲(chǔ)范圍為一個(gè)存儲(chǔ)組織,稱之為段,那么可以

16、將若干個(gè)段組合起來構(gòu)成整個(gè)存儲(chǔ)空間 地址分為段地址(SA)和有效地址(EA)。有效地址是指相對于段首的偏移量,也稱為偏移地址,它是由前面所述的尋址方式計(jì)算得到的。 段地址和有效地址按公式(SA)2M+(EA)進(jìn)行計(jì)算給出實(shí)際地址值,其中M為段移位量,2M為相鄰兩個(gè)段首之間的存儲(chǔ)空間大小,也就是當(dāng)前的段與后面的段不重疊的存儲(chǔ)空間大小非交疊方式和交疊方式 虛擬存儲(chǔ) 主要功能有兩個(gè):使程序中的地址與存儲(chǔ)器的地址相互獨(dú)立,保證用戶的程序設(shè)計(jì)中不需要考慮存儲(chǔ)器空間大小的限制;存儲(chǔ)器由主存和輔存兩類存儲(chǔ)設(shè)備組成 主存速度快但容量小,負(fù)責(zé)程序執(zhí)行,而輔存速度慢但容量大,負(fù)責(zé)程序保存地址映射 虛擬地址(VA)

17、,物理地址(PA) 相同的VA在不同時(shí)刻對應(yīng)的PA可能不同,不同的VA可能在不同時(shí)刻對應(yīng)的PA相同。 內(nèi)存管理單元(MMU):主要功能是負(fù)責(zé)VA到PA的映射關(guān)系 物理地址空間既可以大于也可以小于虛擬地址空間 MMU通常以頁為單位進(jìn)行VA到PA的映射,32位處理器的頁尺寸通常是4KB 映射關(guān)系是通過保有存在物理內(nèi)存中的頁表來描述的,MMU會(huì)查找頁表來確定一個(gè)VA應(yīng)該映射到PA主輔存儲(chǔ) 虛擬存儲(chǔ)器的基本思想是程序大小可以超過主存的大小,系統(tǒng)把當(dāng)前使用的部分保留在主存中,而把其它未被使用的部分保存在輔存中。 如果主存空間不足,那么可以將主存中暫時(shí)不用的存儲(chǔ)空間的內(nèi)容保存在輔存中,再將這些空間用來調(diào)入

18、所需要的程序工作流程 首先進(jìn)行內(nèi)部地址轉(zhuǎn)換(過程),如果要訪問的數(shù)據(jù)在主存中(也就是內(nèi)部地址轉(zhuǎn)換成功),則根據(jù)轉(zhuǎn)換所得到的物理地址訪問主存儲(chǔ)器(過程); 如內(nèi)部地址轉(zhuǎn)換失敗,則要根據(jù)邏輯地址進(jìn)行外部地址轉(zhuǎn)換(過程),得到輔存地址 需檢查主存中是否有空閑區(qū)(過程),如果沒有,就要根據(jù)替換算法,把主存中暫時(shí)不用的某塊數(shù)據(jù)通過I/O機(jī)構(gòu)調(diào)出,送往輔存(過程),再把由過程得到的輔存地址中的塊通過I/O機(jī)構(gòu)送往主存(過程); 如主存中有空閑區(qū)域,則直接把輔存中有關(guān)的塊通過I/O機(jī)構(gòu)送往主存(過程)虛擬存儲(chǔ)工作流程虛擬存儲(chǔ)器實(shí)現(xiàn) 需要操作系統(tǒng)和MMU配合自動(dòng)實(shí)現(xiàn)對存儲(chǔ)信息的調(diào)度和管理 操作系統(tǒng)在初始化或分

19、配、釋放內(nèi)存時(shí)會(huì)執(zhí)行一些指令在物理內(nèi)存中填寫頁表,然后用指令設(shè)置MMU,告訴MMU頁表在物理內(nèi)存中的什么位置 設(shè)置好之后,CPU每次執(zhí)行訪問內(nèi)存的指令都會(huì)自動(dòng)引發(fā)MMU做查表和地址轉(zhuǎn)換操作 地址轉(zhuǎn)換操作由硬件自動(dòng)完成,不需要用指令控制MMU去做總線操作 存儲(chǔ)器對于微處理器來說,是信息及處理算法的存放地 外設(shè)接口中的存儲(chǔ)單元是真正的信息源和信息宿 微處理器不僅要與存儲(chǔ)器相連,還要與外設(shè)接口相連存儲(chǔ)器的訪問操作 行為存儲(chǔ)單元,列為存儲(chǔ)單元所含的位,存儲(chǔ)器只允許外部一次訪問一個(gè)單元存儲(chǔ)器容量 存儲(chǔ)器的存儲(chǔ)單元是通過地址線來定位的,每個(gè)存儲(chǔ)單元都有一個(gè)唯一片內(nèi)地址與之對應(yīng) 每個(gè)存儲(chǔ)單元的大小就是存儲(chǔ)器

20、的數(shù)據(jù)線寬度 地址線寬度決定了存儲(chǔ)器的字?jǐn)?shù),n條地址線的存儲(chǔ)器的字?jǐn)?shù)為2n 數(shù)據(jù)線寬度決定了存儲(chǔ)器的字長存儲(chǔ)器時(shí)序 存儲(chǔ)器的數(shù)據(jù)線是三態(tài)雙向線存儲(chǔ)器擴(kuò)展舉例:字?jǐn)U展示意圖 系統(tǒng)需要2m個(gè)字長為w的存儲(chǔ)單元,現(xiàn)有的字長為w的存儲(chǔ)器只有n個(gè)地址線,且nm分析 統(tǒng)所需要的存儲(chǔ)單元字長為w,而現(xiàn)有的存儲(chǔ)器本身字長為w,將存儲(chǔ)器的數(shù)據(jù)線與系統(tǒng)的數(shù)據(jù)線一一相連 系統(tǒng)所需要地址線比現(xiàn)有的存儲(chǔ)器的地址線多,需要多個(gè)存儲(chǔ)器來擴(kuò)展 假定m=10,n=8,可知k=4,即有4片RAM擴(kuò)展字?jǐn)U展結(jié)構(gòu)圖 RAM0:000H0FFH,RAM1:100H1FFH,RAM2:200H2FFH,RAM3:300H3FFH舉例:位

21、擴(kuò)展 系統(tǒng)需要個(gè)地址線數(shù)為n和字長為m的存儲(chǔ)單元,現(xiàn)有的字長為w的存儲(chǔ)器只有n個(gè)地址線,且wm,給出位擴(kuò)展示意圖分析 系統(tǒng)所需要的地址線與現(xiàn)有的存儲(chǔ)器的地址線相同,將存儲(chǔ)器的地址線與系統(tǒng)的地址線一一相連 系統(tǒng)所需要數(shù)據(jù)線比現(xiàn)有的存儲(chǔ)器的數(shù)據(jù)線多。所需要的存儲(chǔ)器數(shù)量為k=m/w 所有存儲(chǔ)器的同一個(gè)片內(nèi)地址的存儲(chǔ)空間的系統(tǒng)地址相同且唯一 假定n=8,w=4,m=16,可知k=4,即有4片RAM擴(kuò)展位擴(kuò)展結(jié)構(gòu)圖 4個(gè)RAM對應(yīng)的系統(tǒng)地址均為000H0FFH存儲(chǔ)器讀寫操作 8位的存儲(chǔ)器是以字節(jié)作為基本存儲(chǔ)單元的,所以存儲(chǔ)器的控制只需要地址線、片選和讀寫使能等信號(hào) 16位的存儲(chǔ)器字長是2個(gè)字節(jié),分別稱低

22、8位為低字節(jié),高8位為高字節(jié) 通常16位存儲(chǔ)器會(huì)提供一個(gè)專用的高字節(jié)使能(UB)和低字節(jié)使能(LB)信號(hào)讀寫操作信號(hào)32位存儲(chǔ)器 字長是4個(gè)字節(jié),分別稱為最高字節(jié),次高字節(jié)、次低字節(jié)和最低字節(jié) 支持字節(jié)和雙字節(jié)操作,通常會(huì)提供4個(gè)相應(yīng)的字節(jié)使能信號(hào)UUB、ULB、LUB和LLB舉例:存儲(chǔ)器讀寫 有一個(gè)字長為16的存儲(chǔ)器,如下圖所示。如果將數(shù)據(jù)12H和34H讀出,那么該存儲(chǔ)器的地址線、數(shù)據(jù)線和字節(jié)使能信號(hào)的值。如果將數(shù)據(jù)12H和78H讀出,又為何值方案 讀取12H和34H有兩種方案,一種是先讀12H,再讀34H;另一種方案把12H和34H一次讀出 讀取12H和78H只有一種方案,即先讀12H再讀

23、78H系統(tǒng)總線讀寫操作 微處理器是以字節(jié)為基本單位來對存儲(chǔ)空間進(jìn)行編址的 地址總線有n條,數(shù)據(jù)總線有w條,將數(shù)據(jù)總線以8位為一組,從低到高分成m組,每組就是一個(gè)字節(jié) 對應(yīng)的存儲(chǔ)器需要n條地址且字長為mB,其容量為2nmB 總線的地址線和數(shù)據(jù)線決定系統(tǒng)最大容量 存儲(chǔ)器需要字節(jié)使能信號(hào),這個(gè)信號(hào)應(yīng)由總線提供存儲(chǔ)器示意圖8位總線D0-D7 總線大小就是字節(jié),直接采用給定的地址進(jìn)行訪問即可,不需要對地址進(jìn)行特殊處理16位總線D0-D15 總線為2個(gè)字節(jié),地址總線由A1-An-1組合而成 數(shù)據(jù)總線的低8位D0-D7對應(yīng)著偶地址,高8位D8-D15對應(yīng)著奇地址,通過字節(jié)使能線 和 選擇規(guī)定的空間 值剛好與

24、物理地址的A0值相等,所以有的16位微處理器只給出A0,而 改記為0BE1BE0BE1BEBHE16位存儲(chǔ)器結(jié)構(gòu) 32位總線D0-D31 共有4個(gè)字節(jié),所以地址總線由A2-An-1組合而成 數(shù)據(jù)總線的最低字節(jié)D0-D7、次低字節(jié)D8-D15、次高字節(jié)D16-D23和最高字節(jié)D24-D31 根據(jù)指令要求通過字節(jié)使能線 、 、 和 選擇規(guī)定的空間0BE1BE2BE3BE32位存儲(chǔ)器結(jié)構(gòu) 舉例 某16位處理器的算法中有以下三條指令分別為:以字節(jié)方式將0ABH和0CDH分別保存在地址1234H和1235H的存儲(chǔ)空間中,再以字方式將這兩個(gè)存儲(chǔ)空間內(nèi)容讀出。給出這三步操作執(zhí)行時(shí)地址總線、控制總線和數(shù)據(jù)總線

25、上的信號(hào)總線信號(hào)總線與存儲(chǔ)器的連接總線信號(hào)關(guān)系舉例 有一16位微處理器,可尋址空間為64KB。外部有兩片容量為16K8位的RAM,還有一片16K16位的RAM。試給出總線與存儲(chǔ)器連接的示意圖結(jié)構(gòu)圖總線與外設(shè)接口的連接 外設(shè)接口的寄存器可以8位、16位或32位,它們通常都是直接訪問整個(gè)寄存器 外設(shè)接口的內(nèi)部寄存器是有一個(gè)唯一的片內(nèi)地址 當(dāng)多個(gè)外設(shè)同時(shí)連接在總線上時(shí),采用部分高端地址進(jìn)行區(qū)分,通過譯碼器產(chǎn)生外設(shè)的片選信號(hào) 如果總線字長與外設(shè)接口數(shù)據(jù)字長相同,那么數(shù)據(jù)線直接對應(yīng)相連即可,其訪問地址是連續(xù)的8位接口數(shù)據(jù)連接16位總線 兩類接法:直接接數(shù)據(jù)總線的低8位或高8位,接低8位時(shí)要讓BE0參與片

26、選產(chǎn)生,接高8位時(shí)要讓BE1參與片選產(chǎn)生;采用三態(tài)傳輸門電路,即BE0有效而BE1無效時(shí),等效接數(shù)據(jù)總線的低8位,BE0無效而BE1有效時(shí),等效接數(shù)據(jù)總線的高8位連接示意圖 (a)8位總線連接方式 (b)16位總線低8位連接方式 (c)16位總線高8位連接方式 (d)16位總線連接連接信號(hào)表面向軟件系統(tǒng)的支撐結(jié)構(gòu) 微處理器主要工作是執(zhí)行算法程序的代碼,按照代碼進(jìn)行信息處理 一個(gè)微處理器系統(tǒng)必須擁有ROM 算法程序代碼可以放在ROM中,也可以放在外部海量存儲(chǔ)器中 存放在外部海量存儲(chǔ)器中的算法程序代碼必須加載到RAM中才可以執(zhí)行 外接外部海量存儲(chǔ)器的微處理器系統(tǒng)中,ROM必須有這樣的功能程序代碼,

27、它能夠驅(qū)動(dòng)外部海量存儲(chǔ)器、加載其中的程序代碼到RAM中和執(zhí)行RAM中的程序代碼等功能程序執(zhí)行 實(shí)際微處理器系統(tǒng)中,加電后微處理器會(huì)自動(dòng)初始化內(nèi)部的寄存器,其中的指令地址寄存器會(huì)變成規(guī)定的初始值,微處理器就從這個(gè)地址開始執(zhí)行程序 啟動(dòng)加載過程。系統(tǒng)的第一條程序代碼應(yīng)放在這個(gè)規(guī)定地址,可以通過跳轉(zhuǎn)指令將指令地址轉(zhuǎn)到任何程序代碼的存放地址上。 RAM的首要功能是保存程序代碼執(zhí)行過程中產(chǎn)生的數(shù)據(jù) 在程序的設(shè)計(jì)時(shí),程序代碼空間視為只讀空間,在ROM或RAM中執(zhí)行都可以棧存儲(chǔ)結(jié)構(gòu) 在實(shí)際的程序設(shè)計(jì)中,由于寄存器數(shù)據(jù)數(shù)目有限,而計(jì)算會(huì)需要大量的中間數(shù),采用寄存器保存所有中間數(shù)是不可能 為中間數(shù)都開辟存儲(chǔ)器空

28、間可以緩解了寄存器與計(jì)算中間數(shù)保存之間的矛盾 最佳的方法是動(dòng)態(tài)分配存儲(chǔ)單元,即先定義一定大小的存儲(chǔ)器空間作為數(shù)據(jù)暫存空間 兩種方式:先進(jìn)先出(FIFO)方式和后進(jìn)先出(LIFO)方式先進(jìn)先出方式 是數(shù)據(jù)結(jié)構(gòu)中稱為隊(duì)列的方式,它需要兩個(gè)指針,即隊(duì)首指針和隊(duì)尾指針 寫入數(shù)據(jù)時(shí)隊(duì)尾指針后移,讀取數(shù)據(jù)時(shí)隊(duì)首指針后移 隊(duì)列的長度是有限的,需要將該隊(duì)列構(gòu)成循環(huán)隊(duì)列方式進(jìn)行操作 要通過隊(duì)首指針和隊(duì)尾指針的比較運(yùn)算來判定隊(duì)列是否為空或滿 隊(duì)尾指針和隊(duì)首指針相同就表明堆棧為空,隊(duì)列初始化時(shí)必須為空先進(jìn)先出方式結(jié)構(gòu)后進(jìn)先出方式 是數(shù)據(jù)結(jié)構(gòu)中稱為堆棧的方式,只需要一個(gè)堆棧指針 當(dāng)寫入數(shù)據(jù)時(shí)指針后移,也稱為入?;驂簵?/p>

29、,當(dāng)讀取數(shù)據(jù)時(shí)指針前移,也稱為出?;驈棗?堆棧本身有兩個(gè)指針,一個(gè)是用來保存數(shù)據(jù)的,始終指向最后一個(gè)保存的數(shù)據(jù),稱為棧頂指針,也就是常說的堆棧指針;另一個(gè)指針始終指向第一個(gè)數(shù)據(jù)存放單元的前一個(gè)單元,稱為棧底指針 棧頂指針和棧底指針相同就表明堆棧為空,堆棧初始化時(shí)必須為空后進(jìn)先出方式結(jié)構(gòu)堆棧結(jié)構(gòu)特點(diǎn) 堆棧是微處理器支撐軟件功能的必備結(jié)構(gòu) 堆??梢苑奖隳承┝康呐R時(shí)保存,也可以開辟一些臨時(shí)量為處理所用堆棧應(yīng)用舉例子過程 在程序設(shè)計(jì)中,有許多操作可能被多處使用。為了節(jié)約空間,程序設(shè)計(jì)中采用過程(或稱為函數(shù))實(shí)現(xiàn)功能的同時(shí)又減少空間浪費(fèi) 這種結(jié)構(gòu)特點(diǎn)有利于減少程序空間,同時(shí)也減少了編程工作量,并且程序更

30、易讀 調(diào)用指令在轉(zhuǎn)移前要保存該指令后面的指令地址,調(diào)用結(jié)束返回調(diào)用指令的下一條指令地址子過程調(diào)用和返回結(jié)構(gòu)中斷 CPU正在執(zhí)行常規(guī)處理程序指令時(shí),發(fā)生了一件需要盡快處理的事件并通知CPU,CPU將暫停當(dāng)前工作,轉(zhuǎn)向執(zhí)行該事件所對應(yīng)的處理程序指令。當(dāng)執(zhí)行完該事件的所有處理程序指令后,再繼續(xù)當(dāng)前的工作 中斷通常是用來處理需要及時(shí)處理的事件(也稱為異常事件)產(chǎn)生中斷的方法 通知CPU事件發(fā)生稱為中斷請求 中斷兩類:外部設(shè)備通過電信號(hào)的變化來產(chǎn)生中斷稱為硬中斷或外部中斷;由軟件本身產(chǎn)生,稱為軟中斷或內(nèi)部中斷,通常簡稱為軟中斷中斷 CPU暫停當(dāng)前工作而轉(zhuǎn)向執(zhí)行相應(yīng)的事件處理程序稱為中斷響應(yīng) 其相應(yīng)的事件

31、處理程序稱為中斷處理程序或中斷服務(wù)程序 當(dāng)前工作的暫停之處稱為斷點(diǎn) 當(dāng)CPU處理完中斷處理程序后將返回?cái)帱c(diǎn),繼續(xù)當(dāng)前的工作,這稱為中斷返回中斷返回 中斷處理程序執(zhí)行完后要返回 在處理中斷處理程序之前要將當(dāng)前工作將要執(zhí)行的指令的地址保存起來 當(dāng)中斷處理程序結(jié)束時(shí)將該地址取出 CPU從該地址繼續(xù)執(zhí)行當(dāng)前工作中斷嵌套 中斷為了解決事件的優(yōu)先級問題,對中斷也采用優(yōu)先級處理策略 高優(yōu)先級的中斷可以暫停正在進(jìn)行的低優(yōu)先級中斷的中斷處理程序 只有高優(yōu)先級的中斷完成后,低優(yōu)先級中斷的處理程序才能繼續(xù)進(jìn)行中斷處理流程 完成當(dāng)前的指令 將當(dāng)前微處理器狀態(tài)和即將執(zhí)行的指令地址保存(有的用堆棧,有的用寄存器) 關(guān)中斷 根據(jù)中斷類型取出相應(yīng)的中斷處理程序地址 執(zhí)行中斷處理程序:先進(jìn)行現(xiàn)場保護(hù),再執(zhí)行中斷處理操作,最后恢復(fù)現(xiàn)場。 中斷處理程序結(jié)束時(shí),執(zhí)行返回指令,將微處理器狀態(tài)恢復(fù)到進(jìn)入中斷前的值,并將程序執(zhí)行的地址變更為進(jìn)入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論