微處理器系統(tǒng)結(jié)構(gòu)與嵌入式系統(tǒng)設(shè)計(jì)(第二版)答案全.docx
《微處理器系統(tǒng)結(jié)構(gòu)與嵌入式系統(tǒng)設(shè)計(jì)(第二版)答案全.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《微處理器系統(tǒng)結(jié)構(gòu)與嵌入式系統(tǒng)設(shè)計(jì)(第二版)答案全.docx(36頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
一 1.2 以集成電路級(jí)別而言,計(jì)算機(jī)系統(tǒng)的三個(gè)主要組成部分是什么? 中央處理器、存儲(chǔ)器芯片、總線接口芯片 1.3 闡述摩爾定律。 每18個(gè)月,芯片的晶體管密度提高一倍,運(yùn)算性能提高一倍,而價(jià)格下降一半。 1.5 什么是SoC?什么是IP核,它有哪幾種實(shí)現(xiàn)形式? SoC:系統(tǒng)級(jí)芯片、片上系統(tǒng)、系統(tǒng)芯片、系統(tǒng)集成芯片或系統(tǒng)芯片集等,從應(yīng)用開發(fā)角度出發(fā),其主要含義是指單芯片上集成微電子應(yīng)用產(chǎn)品所需的所有功能系統(tǒng)。 IP核:滿足特定的規(guī)范和要求,并且能夠在設(shè)計(jì)中反復(fù)進(jìn)行復(fù)用的功能模塊。它有軟核、硬核和固核三種實(shí)現(xiàn)形式。 1.8 什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的主要特點(diǎn)有哪些? 概念:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積和功耗的嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),即“嵌入到應(yīng)用對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng)”。 特點(diǎn):1、嵌入式系統(tǒng)通常是面向特定應(yīng)用的。 2、嵌入式系統(tǒng)式將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物。 3、嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭(zhēng)在同樣的硅片面積上實(shí)現(xiàn)更高的性能。 4、嵌入式處理器的應(yīng)用軟件是實(shí)現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵,對(duì)嵌入式處理器系統(tǒng)軟件和應(yīng)用軟件的要求也和通用計(jì)算機(jī)有以下不同點(diǎn)。 ① 軟件要求固體化,大多數(shù)嵌入式系統(tǒng)的軟件固化在只讀存儲(chǔ)器中; ② 要求高質(zhì)量、高可靠性的軟件代碼; ③ 許多應(yīng)用中要求系統(tǒng)軟件具有實(shí)時(shí)處理能力。 5、嵌入式系統(tǒng)和具體應(yīng)用有機(jī)的結(jié)合在一起,它的升級(jí)換代也是和具體產(chǎn)品同步進(jìn)行的,因此嵌入式系統(tǒng)產(chǎn)品一旦進(jìn)入市場(chǎng),就具有較長(zhǎng)的生命周期。 6、嵌入式系統(tǒng)本身不具備自開發(fā)能力,設(shè)計(jì)完成以后用戶通常也不能對(duì)其中的程序功能進(jìn)行修改,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。 二 2.2 完成下列邏輯運(yùn)算 (1) 101+1.01 = 110.01 (2) 1010.001-10.1 = 111.101 (3) -1011.0110 1-1.1001 = -1100.1111 1 (4) 10.1101-1.1001 = 1.01 (5) 110011/11 = 10001 (6) (-101.01)/(-0.1) = 1010.1 2.3 完成下列邏輯運(yùn)算 (1) 1011 0101∨1111 0000 = 1111 0101 (2) 1101 0001∧1010 1011 = 1000 0001 (3) 1010 1011⊕0001 1100 = 1011 0111 2.4 選擇題 (1) 下列無(wú)符號(hào)數(shù)中最小的數(shù)是( A )。 A. B. C. D. (2) 下列無(wú)符號(hào)數(shù)中最大的數(shù)是( B )。 A. B. C. D. (3) 在機(jī)器數(shù)( A )中,零的表示形式是唯一的。 A.補(bǔ)碼 B.原碼 C.補(bǔ)碼和反碼 D.原碼和反碼 (4) 單純從理論出發(fā),計(jì)算機(jī)的所有功能都可以交給硬件實(shí)現(xiàn)。而事實(shí)上,硬件只實(shí)現(xiàn)比較簡(jiǎn)單的功能,復(fù)雜的功能則交給軟件完成。這樣做的理由是( BCD )。 A.提高解題速度 B.降低成本 C.增強(qiáng)計(jì)算機(jī)的適應(yīng)性,擴(kuò)大應(yīng)用面 D.易于制造 (5) 編譯程序和解釋程序相比,編譯程序的優(yōu)點(diǎn)是( D ),解釋程序的優(yōu)點(diǎn)是( C )。 A.編譯過程(解釋并執(zhí)行過程)花費(fèi)時(shí)間短 B.占用內(nèi)存少 C.比較容易發(fā)現(xiàn)和排除源程序錯(cuò)誤 D.編譯結(jié)果(目標(biāo)程序)執(zhí)行速度快 2.5通常使用邏輯運(yùn)算代替數(shù)值運(yùn)算是非常方便的。例如,邏輯運(yùn)算AND將兩個(gè)位組合的方法同乘法運(yùn)算一樣。哪一種邏輯運(yùn)算和兩個(gè)位的加法幾乎相同?這樣情況下會(huì)導(dǎo)致什么錯(cuò)誤發(fā)生? 邏輯運(yùn)算OR和兩個(gè)位的加法幾乎相同。問題在于多個(gè)bit的乘或加運(yùn)算無(wú)法用AND或OR運(yùn)算替代,因?yàn)檫壿嬤\(yùn)算沒有相應(yīng)的進(jìn)位機(jī)制。 2.6 假設(shè)一臺(tái)數(shù)碼相機(jī)的存儲(chǔ)容量是256MB,如果每個(gè)像素需要3個(gè)字節(jié)的存儲(chǔ)空間,而且一張照片包括每行1024個(gè)像素和每列1024個(gè)像素,那么這臺(tái)數(shù)碼相機(jī)可以存放多少?gòu)堈掌? 每張照片所需空間為:1024*1024*3=3MB 則256M可存照片數(shù)為:256MB/3MB≈85張。 2.14某測(cè)試程序在一個(gè)40 MHz處理器上運(yùn)行,其目標(biāo)代碼有100 000條指令,由如下各類指令及其時(shí)鐘周期計(jì)數(shù)混合組成,試確定這個(gè)程序的有效CPI、MIPS的值和執(zhí)行時(shí)間。 指 令 類 型 指 令 計(jì) 數(shù) 時(shí)鐘周期計(jì)數(shù) 整數(shù)算術(shù) 45 000 1 數(shù)據(jù)傳送 32 000 2 浮點(diǎn)數(shù) 15 000 2 控制傳送 8000 2 CPI=(45000/100000)*1+(32000/100000)*2+(15000/100000)*2+(8000/100000)*2=0.45*1+0.32*2+0.15*2+0.08*2=1.55 MIPS=40/1.55=25.8 執(zhí)行時(shí)間T=(100000*1.55)*(1/(40*10∧6) )=15.5/4*10∧(-3)= 3.875*10∧(-3) s= 3.875ms 2.15 假設(shè)一條指令的執(zhí)行過程分為“取指令”、“分析”和“執(zhí)行”三段,每一段的時(shí)間分別為?t,2?t和3?t。在下列各種情況下,分別寫出連續(xù)執(zhí)行n條指令所需要的時(shí)間表達(dá)式。 (1) 順序執(zhí)行方式 T= (?t+2?t+3?t)*n=6n?t (2) 僅“取指令”和“執(zhí)行”重疊 當(dāng)“取指令”和“執(zhí)行”重疊時(shí),指令的執(zhí)行過程如圖所示: 第1條指令執(zhí)行完的時(shí)間:t1=?t+2?t+3?t=6?t 第2條指令執(zhí)行完的時(shí)間:t2= t1+5?t=6?t+5?t*1 第3條指令執(zhí)行完的時(shí)間:t3= t2+5?t=6?t+5?t*2 … 第n條指令執(zhí)行完的時(shí)間:tn= tn-1+?t=6?t+5?t*(n-1)=(1+5n)?t (3) “取指令”、“分析”和“執(zhí)行”重疊 當(dāng)“取指令”、“分析”和“執(zhí)行”重疊時(shí),指令的執(zhí)行過程如圖所示: 第1條指令執(zhí)行完的時(shí)間:t1=?t+2?t+3?t=6?t 第2條指令執(zhí)行完的時(shí)間:t2= t1+3?t=6?t+3?t*1 第3條指令執(zhí)行完的時(shí)間:t3= t2+3?t=6?t+3?t*2 … 第n條指令執(zhí)行完的時(shí)間:tn= tn-1+3?t=6?t+3?t*(n-1)=(3+3n)?t 三 3.1處理器有哪些功能?說明實(shí)現(xiàn)這些功能各需要哪些部件,并畫出處理器的基本結(jié)構(gòu)圖。 處理器的基本功能包括數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的運(yùn)算和控制等功能。其有5個(gè)主要功能:①指令控制②操作控制③時(shí)間控制④數(shù)據(jù)加工⑤中斷處理。其中,數(shù)據(jù)加工由ALU、移位器和寄存器等數(shù)據(jù)通路部件完成,其他功能由控制器實(shí)現(xiàn)。處理器的基本結(jié)構(gòu)圖如下: 3.2處理器內(nèi)部有哪些基本操作?這些基本操作各包含哪些微操作? 處理器內(nèi)部的基本操作有:取指、間接、執(zhí)行和中斷。其中必須包含取指和執(zhí)行。 取指包含微操作有:經(jīng)過多路器把程序計(jì)數(shù)器的值選送到存儲(chǔ)器,然后存儲(chǔ)器回送所期望的指令并將其寫入指令寄存器,與此同時(shí)程序計(jì)數(shù)器值加1,并將新值回寫入程序計(jì)數(shù)器。 間接有4個(gè)CPU周期,包含微操作有:第1周期把指令寄存器中地址部分的形式地址轉(zhuǎn)到地址寄存器中;第2周期完成從內(nèi)存取出操作數(shù)地址,并放入地址寄存器;第3周期中累加器內(nèi)容傳送到緩沖寄存器,然后再存入所選定的存儲(chǔ)單元。 執(zhí)行包含微操作有:在寄存器中選定一個(gè)地址寄存器,并通過多路器將值送到存儲(chǔ)器;來(lái)自于存儲(chǔ)器的數(shù)據(jù)作為ALU的一個(gè)原操作數(shù),另一個(gè)原操作數(shù)則來(lái)自于寄存器組中的數(shù)據(jù)寄存器,它們將一同被送往ALU的輸入;ALU的結(jié)果被寫入寄存器組。 中斷包含微操作有:保護(hù)斷點(diǎn)及現(xiàn)場(chǎng),查找中斷向量表以確定中斷程序入口地址,修改程序指針,執(zhí)行完畢后恢復(fù)現(xiàn)場(chǎng)及斷點(diǎn)。 3.3什么是馮諾伊曼計(jì)算機(jī)結(jié)構(gòu)的主要技術(shù)瓶頸?如何克服? 馮諾伊曼計(jì)算機(jī)結(jié)構(gòu)的主要技術(shù)瓶頸是數(shù)據(jù)傳輸和指令串行執(zhí)行??梢酝ㄟ^以下方案克服:采用哈佛體系結(jié)構(gòu)、存儲(chǔ)器分層結(jié)構(gòu)、高速緩存和虛擬存儲(chǔ)器、指令流水線、超標(biāo)量等方法。 3.5指令系統(tǒng)的設(shè)計(jì)會(huì)影響計(jì)算機(jī)系統(tǒng)的哪些性能? 指令系統(tǒng)是指一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部指令的集合,其決定了一臺(tái)計(jì)算機(jī)硬件主要性能和基本功能。指令系統(tǒng)一般都包括以下幾大類指令。:1)數(shù)據(jù)傳送類指令。(2)運(yùn)算類指令 包括算術(shù)運(yùn)算指令和邏輯運(yùn)算指令。(3)程序控制類指令 主要用于控制程序的流向。(4)輸入/輸出類指令 簡(jiǎn)稱I/O指令,這類指令用于主機(jī)與外設(shè)之間交換信息。 因而,其設(shè)計(jì)會(huì)影響到計(jì)算機(jī)系統(tǒng)如下性能: 數(shù)據(jù)傳送、算術(shù)運(yùn)算和邏輯運(yùn)算、程序控制、輸入/輸出。另外,其還會(huì)影響到運(yùn)算速度以及兼容等。 3.9某時(shí)鐘速率為2.5GHz的流水式處理器執(zhí)行一個(gè)有150萬(wàn)條指令的程序。流水線有5段,并以每時(shí)鐘周期1條的速率發(fā)射指令。不考慮分支指令和亂序執(zhí)行帶來(lái)的性能損失。 a)同樣執(zhí)行這個(gè)程序,該處理器比非流水式處理器可能加速多少? b)此流水式處理器是吞吐量是多少(以MIPS為單位)? a.速度幾乎是非流水線結(jié)構(gòu)的5倍。 b. 3.10一個(gè)時(shí)鐘頻率為2.5 GHz的非流水式處理器,其平均CPI是4。此處理器的升級(jí)版本引入了5級(jí)流水。然而,由于如鎖存延遲這樣的流水線內(nèi)部延遲,使新版處理器的時(shí)鐘頻率必須降低到2 GHz。 (1) 對(duì)一典型程序,新版所實(shí)現(xiàn)的加速比是多少? (2) 新、舊兩版處理器的MIPS各是多少? (1)對(duì)于一個(gè)有N條指令的程序來(lái)說: 非流水式處理器的總執(zhí)行時(shí)間 5級(jí)流水處理器的總執(zhí)行時(shí)間 加速比=,N很大時(shí)加速比≈3.2 (2)非流水式處理器CPI=4,則其執(zhí)行速度=2500MHz/4=625MIPS。 5級(jí)流水處理器CPI=1,則其執(zhí)行速度=2000 MHz /1=2000 MIPS。 3.11隨機(jī)邏輯體系結(jié)構(gòu)的處理器的特點(diǎn)是什么?詳細(xì)說明各部件的作用。 隨機(jī)邏輯的特點(diǎn)是指令集設(shè)計(jì)與硬件的邏輯設(shè)計(jì)緊密相關(guān),通過針對(duì)特定指令集進(jìn)行硬件的優(yōu)化設(shè)計(jì)來(lái)得到邏輯門最小化的處理器,以此減小電路規(guī)模并降低制造費(fèi)用。 主要部件包括:產(chǎn)生程序地址的程序計(jì)數(shù)器,存儲(chǔ)指令的指令寄存器,解釋指令的控制邏輯,存放數(shù)據(jù)的通用寄存器堆,以及執(zhí)行指令的ALU等幾個(gè)主要部分構(gòu)成。 3.13 什么是微代碼體系結(jié)構(gòu)?微指令的作用是什么? 在微碼結(jié)構(gòu)中,控制單元的輸入和輸出之間被視為一個(gè)內(nèi)存系統(tǒng)??刂菩盘?hào)存放在一個(gè)微程序內(nèi)存中,指令執(zhí)行過程中的每一個(gè)時(shí)鐘周期,處理器從微程序內(nèi)存中讀取一個(gè)控制字作為指令執(zhí)行的控制信號(hào)并輸出。 微指令只實(shí)現(xiàn)必要的基本操作,可以直接被硬件執(zhí)行。通過編寫由微指令構(gòu)成的微代碼,可以實(shí)現(xiàn)復(fù)雜的指令功能。微指令使處理器硬件設(shè)計(jì)與指令集設(shè)計(jì)相分離,有助于指令集的修改與升級(jí),并有助于實(shí)現(xiàn)復(fù)雜的指令。 3.14微碼體系結(jié)構(gòu)與隨機(jī)邏輯體系結(jié)構(gòu)有什么區(qū)別? (1) 指令集的改變導(dǎo)致不同的硬件設(shè)計(jì)開銷。 在設(shè)計(jì)隨機(jī)邏輯結(jié)構(gòu)時(shí),指令集和硬件必須同步設(shè)計(jì)和優(yōu)化,因此設(shè)計(jì)隨機(jī)邏輯的結(jié)構(gòu)比設(shè)計(jì)微碼結(jié)構(gòu)復(fù)雜得多,而且硬件和指令集二者中任意一個(gè)變化,就會(huì)導(dǎo)致另外一個(gè)變化。 在微碼結(jié)構(gòu)中,指令設(shè)計(jì)通過為微碼ROM編寫微碼程序來(lái)實(shí)現(xiàn)的,指令集的設(shè)計(jì)并不直接影響現(xiàn)有的硬件設(shè)計(jì)。因此,一旦修改了指令集,并不需要重新設(shè)計(jì)新的硬件。 (2) 從性能上比較 隨機(jī)邏輯在指令集和硬件設(shè)計(jì)上都進(jìn)行了優(yōu)化,因此在二者采用相同指令集時(shí)隨機(jī)邏輯結(jié)構(gòu)要更快一些。但微碼結(jié)構(gòu)可以實(shí)現(xiàn)更復(fù)雜指令集,因此可以用較少的指令完成復(fù)雜的功能,尤其在存儲(chǔ)器速度受限時(shí),微碼結(jié)構(gòu)性能更優(yōu)。 3.15說明流水線體系結(jié)構(gòu)中的5個(gè)階段的操作。能否把流水線結(jié)構(gòu)分為6階段?如果可能,試給出你的方案。 流水線若分為5個(gè)階段應(yīng)包括:取指,譯碼,取操作數(shù),執(zhí)行,數(shù)據(jù)回寫 流水線若分為6個(gè)階段應(yīng)包括:取指,譯碼,取操作數(shù),執(zhí)行,存儲(chǔ)器操作,數(shù)據(jù)回寫 四 4.3 微機(jī)系統(tǒng)中總線層次化結(jié)構(gòu)是怎樣的? 按總線所處位置可分為:片內(nèi)總線、系統(tǒng)內(nèi)總線、系統(tǒng)外總線。 按總線功能可分為: 地址總線、數(shù)據(jù)總線、控制總線。 按時(shí)序控制方式可分為:同步總線 、異步總線。 按數(shù)據(jù)格式可分為: 并行總線、串行總線。 4.4 評(píng)價(jià)一種總線的性能有那幾個(gè)方面? 總線時(shí)鐘頻率、總線寬度、總線速率、總線帶寬、總線的同步方式和總線的驅(qū)動(dòng)能力等。 4.5 微機(jī)系統(tǒng)什么情況下需要總線仲裁?總線仲裁有哪幾種?各有什么特點(diǎn)? 總線仲裁又稱總線判決,其目的是合理的控制和管理系統(tǒng)中多個(gè)主設(shè)備的總線請(qǐng)求,以避免總線沖突。當(dāng)多個(gè)主設(shè)備同時(shí)提出總線請(qǐng)求時(shí),仲裁機(jī)構(gòu)按照一定的優(yōu)先算法來(lái)確定由誰(shuí)獲得對(duì)總線的使用權(quán)。 集中式(主從式)控制和分布式(對(duì)等式)控制。集中式特點(diǎn):采用專門的總線控制器或仲裁器分配總線時(shí)間,總線協(xié)議簡(jiǎn)單有效,總體系統(tǒng)性能較低。分布式特點(diǎn):總線控制邏輯分散在連接與總線的各個(gè)模塊或設(shè)備中,協(xié)議復(fù)雜成本高,系統(tǒng)性能較高。 4.6總線傳輸方式有哪幾種?同步總線傳輸對(duì)收發(fā)模塊有什么要求?什么情況下應(yīng)該采用異步傳輸方式,為什么? 總線傳輸方式按照不同角度可分為同步和異步傳輸,串行和并行傳輸,單步和突發(fā)方式。同步總線傳輸時(shí),總線上收模塊與發(fā)模塊嚴(yán)格按系統(tǒng)時(shí)鐘來(lái)統(tǒng)一定時(shí)收發(fā)模塊之間的傳輸操作。異步總線常用于各模塊間數(shù)據(jù)傳送時(shí)間差異較大的系統(tǒng),因?yàn)檫@時(shí)很難同步,采用異步方式?jīng)]有固定的時(shí)鐘周期,其時(shí)間可根據(jù)需要可長(zhǎng)可短。 4.14發(fā)送時(shí)鐘和接收時(shí)鐘與波特率有什么關(guān)系? 其關(guān)系如下: 發(fā)/收時(shí)鐘頻率=n*(發(fā)/收波特率) (其中n=1,16,64) 實(shí)際應(yīng)用中可根據(jù)要求傳輸?shù)臅r(shí)鐘頻率和所選擇的倍數(shù)n來(lái)計(jì)算波特率。 五 5.10 用16K1位的DRAM芯片組成64K8位存儲(chǔ)器,要求: (1) 畫出該存儲(chǔ)器的組成邏輯框圖。 (2) 設(shè)存儲(chǔ)器讀/寫周期為0.5μS, CPU在1μS內(nèi)至少要訪問一次。試問采用哪種刷新方式比較合理??jī)纱嗡⑿碌淖畲髸r(shí)間間隔是多少?對(duì)全部存儲(chǔ)單元刷新一遍所需的實(shí)際刷新時(shí)間是多少? (1)組建存儲(chǔ)器共需DRAM芯片數(shù)N=(64K*8)/(16K*1)=4*8(片)。 每8片組成16K8位的存儲(chǔ)區(qū), A13~A0作為片內(nèi)地址,用A15、A14經(jīng)2:4譯碼器產(chǎn)生片選信號(hào) ,邏輯框圖如下(圖有誤:應(yīng)該每組8片,每片數(shù)據(jù)線為1根) (2)設(shè)16K8位存儲(chǔ)芯片的陣列結(jié)構(gòu)為128行128列,刷新周期為2ms。因?yàn)樗⑿旅啃行?.5μS,則兩次(行)刷新的最大時(shí)間間隔應(yīng)小于: 為保證在每個(gè)1μS內(nèi)都留出0.5μS給CPU訪問內(nèi)存,因此該DRAM適合采用分散式或異步式刷新方式,而不能采用集中式刷新方式。 l 若采用分散刷新方式,則每個(gè)存儲(chǔ)器讀/寫周期可視為1μS,前0.5μS用于讀寫,后0.5μS用于刷新。相當(dāng)于每1μS刷新一行,刷完一遍需要1281μS=128μS,滿足刷新周期小于2ms的要求; l 若采用異步刷新方式,則應(yīng)保證兩次刷新的時(shí)間間隔小于15.5μS。如每隔14個(gè)讀寫周期刷新一行,相當(dāng)于每15μS刷新一行,刷完一遍需要12815μS=1920μS,滿足刷新周期小于2ms的要求; 需要補(bǔ)充的知識(shí): 刷新周期:從上一次對(duì)整個(gè)存儲(chǔ)器刷新結(jié)束到下一次對(duì)整個(gè)存儲(chǔ)器全部刷新一遍為止的時(shí)間間隔。刷新周期通??梢允?ms,4ms或8ms。 DRAM一般是按行刷新,常用的刷新方式包括: l 集中式:正常讀/寫操作與刷新操作分開進(jìn)行,刷新集中完成。 特點(diǎn):存在一段停止讀/寫操作的死時(shí)間,適用于高速存儲(chǔ)器。 (DRAM共128行,刷新周期為2ms,讀/寫/刷新時(shí)間均為0.5μS) l 分散式:一個(gè)存儲(chǔ)系統(tǒng)周期分成兩個(gè)時(shí)間片,分時(shí)進(jìn)行正常讀/寫操作和刷新操作。 特點(diǎn):不存在停止讀/寫操作的死時(shí)間,但系統(tǒng)運(yùn)行速度降低。 (DRAM共128行,刷新周期為128μs,tm=0.5μS為讀/寫時(shí)間,tr=0.5μS為刷新時(shí)間,tc=1μS為存儲(chǔ)周期) l 異步式:前兩種方式的結(jié)合,每隔一段時(shí)間刷新一次,只需保證在刷新周期內(nèi)對(duì)整個(gè)存儲(chǔ)器刷新一遍。 5.11若某系統(tǒng)有24條地址線,字長(zhǎng)為8位,其最大尋址空間為多少?現(xiàn)用 SRAM2114(1K*4)存儲(chǔ)芯片組成存儲(chǔ)系統(tǒng),試問采用線選譯碼時(shí)需要多少個(gè)2114存儲(chǔ)芯片? 該存儲(chǔ)器的存儲(chǔ)容量=224 *8bit=16M字節(jié) 需要SRAM2114(1K*4)存儲(chǔ)芯片數(shù)目:片 5.12 在有16根地址總線的機(jī)系統(tǒng)中畫出下列情況下存儲(chǔ)器的地址譯碼和連接圖。 (1)采用8K*1位存儲(chǔ)芯片,形成64KB存儲(chǔ)器。 (2)采用8K*1位存儲(chǔ)芯片,形成32KB存儲(chǔ)器。 (3)采用4K*1位存儲(chǔ)芯片,形成16KB存儲(chǔ)器。 由于地址總線長(zhǎng)度為16,故系統(tǒng)尋址空間為 (1)8K*1位存儲(chǔ)芯片地址長(zhǎng)度為13,64KB存儲(chǔ)器需要8個(gè)8K*1位存儲(chǔ)芯片,故總共需要16根地址總線,地址譯碼為: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 共需8片8K*1位存儲(chǔ)芯片 紅色為片選 第一片 地址范圍 0000H~ 1FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 2000H~ 3FFFH 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 4000H~ 5FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 6000H~ 7FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第五片 地址范圍 8000H~ 9FFFH 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第六片 地址范圍 0A000H~ 0BFFFH 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第七片 地址范圍 0C000H~ 0DFFFH 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第八片 地址范圍 0E000H~ 0FFFFH 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其連線圖如下: (2)8K*1位存儲(chǔ)芯片地址長(zhǎng)度為13,32KB存儲(chǔ)器需要4個(gè)8K*1位存儲(chǔ)芯片故總共需要15根地址總線,地址譯碼為: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 共需4片8K*1位存儲(chǔ)芯片 紅色為片選 第一片 地址范圍 0000H~ 1FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 2000H~ 3FFFH 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 4000H~ 5FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 6000H~ 7FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其連線圖如下: (3)4K*1位存儲(chǔ)芯片地址長(zhǎng)度為12,16KB存儲(chǔ)器需要4個(gè)4K*1位存儲(chǔ)芯片故總共需要14根地址總線,地址譯碼為: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 共需4片4K*1位存儲(chǔ)芯片 紅色為片選 第一片 地址范圍 0000H~ 0FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 1000H~ 1FFFH 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 2000H~ 2FFFH 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 3000H~ 3FFFH 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其連線圖如下: 方案一: 方案二: 5.13試為某8位計(jì)算機(jī)系統(tǒng)設(shè)計(jì)一個(gè)具有8KB ROM和40KB RAM的存儲(chǔ)器。要求ROM用EPROM芯片2732組成,從0000H地址開始;RAM用SRAM芯片6264組成,從4000H地址開始。 查閱資料可知,2732容量為4K8(字選線12根),6264容量為8K8(字選線13根),因此本系統(tǒng)中所需芯片數(shù)目及各芯片地址范圍應(yīng)如下表所示: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 共需2片2732構(gòu)成系統(tǒng)ROM 紅色為片選 第一片 地址范圍 0000H~ 0FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 1000H~ 1FFFH 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 共需5片6264構(gòu)成系統(tǒng)RAM 紅色為片選 第一片 地址范圍 4000H~ 5FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 6000H~ 7FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 8000H~ 9FFFH 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 0A000H~ 0BFFFH 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第五片 地址范圍 0C000H~ 0DFFFFH 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 硬件連線方式之一如下圖所示: A14 CS 6 EN C 2 B 1 A 0 A0-A11 RD WR D0-D7 AB CS 2732 WR D0-7 AB CS 2732 WR D0-7 AB CS 6264 RD WR D0-7 A12 A13 A15 38譯碼器 A0-A12 RD WR AB CS 6264 RD WR D0-7 …… …… 未用 1 2 1 5 …… 說明: ①8位微機(jī)系統(tǒng)地址線一般為16位。采用全譯碼方式時(shí),系統(tǒng)的A0~A12直接與6264的13根地址線相連,系統(tǒng)的A0~A11直接與2732的12根地址線相連。片選信號(hào)由74LS138譯碼器產(chǎn)生,系統(tǒng)的A15~A13作為譯碼器的輸入。 ②各芯片的數(shù)據(jù)總線(D0~D7)直接與系統(tǒng)的數(shù)據(jù)總線相連。 ③各芯片的控制信號(hào)線(RD、WR)直接與系統(tǒng)的控制信號(hào)線相連。 5.14試根據(jù)下圖EPROM的接口特性,設(shè)計(jì)一個(gè)EPROM寫入編程電路,并給出控制軟件的流程。 EPROM寫入編程電路設(shè)計(jì)如下圖所示: 控制軟件流程: (1) 上電復(fù)位; (2) 信號(hào)為電平”1”無(wú)效(寫模式),信號(hào)為電平”0”有效(編程控制模式),軟件進(jìn)入編程狀態(tài),對(duì)EPROM存儲(chǔ)器進(jìn)行寫入編程操作; (3) 高位地址譯碼信號(hào)為電平”1”無(wú)效,對(duì)存儲(chǔ)器對(duì)應(yīng)0000H~3FFFH地址的數(shù)據(jù)依次進(jìn)行寫入操作(其中高位地址為0、低位地址從0000H到3FFFH依次加1)寫入的值為數(shù)據(jù)總線對(duì)應(yīng)的值。 (4) 高位地址譯碼信號(hào)為電平”0”有效,對(duì)存儲(chǔ)器對(duì)應(yīng)4000H~7FFFH地址的數(shù)據(jù)依次進(jìn)行寫入操作(其中高位地址為1,低位地址從0000H到3FFFH依次加1)寫入的值為數(shù)據(jù)總線對(duì)應(yīng)的值。 (5) 存儲(chǔ)器地址為7FFFH時(shí),寫入操作完成,控制軟件停止對(duì)EPROM的編程狀態(tài),釋放對(duì)信號(hào)和信號(hào)的控制。 5.15試完成下面的RAM系統(tǒng)擴(kuò)充圖。假設(shè)系統(tǒng)已占用0000~ 27FFH段內(nèi)存地址空間,并擬將后面的連續(xù)地址空間分配給該擴(kuò)充RAM。 A10 A15 A14 A12 A13 A11 系統(tǒng) 譯碼器輸出 A15~A14 A13 A12 A11 A10~A0 地址空間 /Q0 00 0 0 0 0000000000~11111111111 0000H~07FFH /Q1 0 0 1 0800H~0FFFH /Q2 0 1 0 1000H~17FFH /Q3 0 1 1 1800H~1FFFH /Q4 1 0 0 2000H~27FFH /Q5 1 0 1 0 000000000~1111111111 2800H~2BFFH 1 2C00H~2FFFH /Q6 1 1 0 /Q7 1 1 1 下面方案的問題: 1. 地址不連續(xù),驅(qū)動(dòng)設(shè)計(jì)可能會(huì)比較麻煩; 2. 地址重復(fù),浪費(fèi)系統(tǒng)地址空間; 3. 不容易理解,實(shí)際上使用可能會(huì)有問題; 5.16某計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器地址空間為A8000H~CFFFFH,若采用單片容量為16K*1位的SRAM芯片, (1)系統(tǒng)存儲(chǔ)容量為多少? (2)組成該存儲(chǔ)系統(tǒng)共需該類芯片多少個(gè)? (3)整個(gè)系統(tǒng)應(yīng)分為多少個(gè)芯片組? (1)該計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器地址空間為A8000H~CFFFFH,系統(tǒng)存儲(chǔ)容量為: (2)單片容量為16K*1為的SRAM芯片的存儲(chǔ)容量為16Kbit=2KB 組成該存儲(chǔ)系統(tǒng)共需該類芯片160KB/2KB=80個(gè) (3)題目未給出該系統(tǒng)的數(shù)據(jù)位寬為多少,此處設(shè)為8bit位寬 則每組芯片組需要8個(gè)單片容量為16K*1為的SRAM芯片 所有整個(gè)系統(tǒng)應(yīng)分為80/8=10個(gè)芯片組。 5.17 由一個(gè)具有8個(gè)存儲(chǔ)體的低位多體交叉存儲(chǔ)體中,如果處理器的訪存地址為以下八進(jìn)制值。求該存儲(chǔ)器比單體存儲(chǔ)器的平均訪問速度提高多少(忽略初啟時(shí)的延時(shí))? (1)10018,10028,10038,…,11008 (2)10028,10048,10068,…,12008 (3)10038,10068,10118,…,13008 此處題目有誤,10018應(yīng)為,依次類推 低位多體交叉存儲(chǔ)體包含8個(gè)存儲(chǔ)體,故處理器每次可同時(shí)訪問相鄰8個(gè)地址的數(shù)據(jù) (1)訪存地址為相鄰地址,故存儲(chǔ)器比單體存儲(chǔ)器的平均訪問速度提高8倍; (2)訪存地址為間隔2個(gè)地址,故存儲(chǔ)器比單體存儲(chǔ)器的平均訪問速度提高4倍; (3)訪存地址為間隔3個(gè)地址,但訪存地址轉(zhuǎn)換為十進(jìn)制數(shù)為3、6、9、12、15、18、21、24、27,分別除8的余數(shù)為3、6、1、4、7、2、5、0、3,故存儲(chǔ)器比單體存儲(chǔ)器的平均訪問速度提高8倍(可能有誤,不確定)。 六 6.2什么是I/O端口?一般接口電路中有哪些端口? I/O端口指的是I/O接口電路中的一些寄存器;一般接口電路中有數(shù)據(jù)端口、控制端口和狀態(tài)端口。 6.3 CPU對(duì)I/O端口的編址方式有哪幾種?各有什么特點(diǎn)?80x86對(duì)I/O端口的編址方式屬于哪一種? (1)獨(dú)立編址 其特點(diǎn):系統(tǒng)視端口和存儲(chǔ)單元為不同的對(duì)象。 (2)統(tǒng)一編址(存儲(chǔ)器映像編址總線結(jié)構(gòu)) 其特點(diǎn):將端口看作存儲(chǔ)單元,僅以地址范圍的不同來(lái)區(qū)分兩者。 80x86對(duì)I/O端口的編址方式屬于獨(dú)立編址方式。 6.4某計(jì)算機(jī)系統(tǒng)有8個(gè)I/O接口芯片,每個(gè)接口芯片占用8個(gè)端口地址。若起始地址為9000H,8個(gè)接口芯片的地址連續(xù)分布,用74LS138作為譯碼器,試畫出端口譯碼電路圖,并說明每個(gè)芯片的端口地址范圍。 A5A4A3 接口2 接口8 接口1 …… Y7 . Y1 Y0 A2~A0 C B A EN A15 A14 … … A7 A6 接口編號(hào) A15~A6 A5 A4 A3 A2~A0 地址空間 1 1001000000 0 0 0 000~111 9000H~9007H 2 0 0 1 000~111 9008H~900FH 3 0 1 0 000~111 9010H~9017H 4 0 1 1 000~111 9018H~901FH 5 1 0 0 000~111 9020H~9027H 6 1 0 1 000~111 9028H~902FH 7 1 1 0 000~111 9030H~9037H 8 1 1 1 000~111 9038H~903FH 6.6 CPU與I/O設(shè)備之間的數(shù)據(jù)傳送有哪幾種方式?每種工作方式的特點(diǎn)是什么?各適用于什么場(chǎng)合? ①無(wú)條件控制(同步控制):特點(diǎn):方式簡(jiǎn)單,CPU隨時(shí)可無(wú)條件讀/寫數(shù)據(jù),無(wú)法保證數(shù)據(jù)總是有效,適用面窄。適用于外設(shè)數(shù)據(jù)變化緩慢,操作時(shí)間固定,可以被認(rèn)為始終處于就緒狀態(tài)。 ②條件控制(查詢控制): 特點(diǎn):CPU主動(dòng),外設(shè)被動(dòng),執(zhí)行I/O操作時(shí)CPU總要先查詢外設(shè)狀態(tài);若傳輸條件不滿足時(shí),CPU等待直到條件滿足。解決了CPU與外設(shè)間的同步問題,可靠性高,但CPU利用率低,低優(yōu)先級(jí)外設(shè)可能無(wú)法及時(shí)得到響應(yīng)。適用于CPU不太忙,傳送速度不高的場(chǎng)合。 ③中斷方式: 特點(diǎn):CPU在執(zhí)行現(xiàn)行程序時(shí)為處理一些緊急發(fā)出的情況,暫時(shí)停止當(dāng)前程序,轉(zhuǎn)而對(duì)該緊急事件進(jìn)行處理,并在處理完后返回正常程序。CPU利用率高,外設(shè)具有申請(qǐng)CPU中斷的主動(dòng)權(quán),可以實(shí)現(xiàn)實(shí)時(shí)故障處理,實(shí)時(shí)響應(yīng)外設(shè)的處理,但中斷服務(wù)需要保護(hù)斷點(diǎn)(占用存儲(chǔ)空間,降低速度)。適用于CPU的任務(wù)較忙,傳送速度要求不高的場(chǎng)合,尤其適用實(shí)時(shí)控制中緊急事件的處理。 ④DMA控制: 特點(diǎn):數(shù)據(jù)不通過CPU,而由DMAC直接完成存儲(chǔ)單元或I/O端口之間的數(shù)據(jù)傳送。接口電路復(fù)雜,硬件開銷大,大批量數(shù)據(jù)傳送速度極快。適用于存儲(chǔ)器與存儲(chǔ)器之間,存儲(chǔ)器與外設(shè)之間的大批量數(shù)據(jù)傳送的場(chǎng)合。 ⑤通道方式:特點(diǎn):以程序方式進(jìn)行I/O管理,可直接訪問主存儲(chǔ)器,不需CPU干預(yù),可通過通道程序?qū)崿F(xiàn)除數(shù)據(jù)傳輸外的其他操作。 6.7常用的中斷優(yōu)先級(jí)的管理方式有哪幾種?分別有哪些優(yōu)缺點(diǎn)? ①軟件查詢:方法簡(jiǎn)單,實(shí)現(xiàn)起來(lái)較容易,效率低。 ②硬件排序:占用硬件資源,效率較高。 ③中斷控制芯片:成本較高,效率很高。 6.8在微機(jī)與外設(shè)的幾種輸入/輸出方式中,便于CPU處理隨機(jī)事件和提高工作效率的I/O方式是哪一種?數(shù)據(jù)傳輸速率最快的是哪一種? 便于CPU處理隨機(jī)事件和提高工作效率的是中斷方式,數(shù)據(jù)傳輸速率最快的是DMA控制方式。 七 7.1 ARM處理器有幾種運(yùn)行模式,處理器如何區(qū)別各種不同的運(yùn)行模式? ARM處理器有7中運(yùn)行模式: l 用戶模式(user):ARM處理器正常的程序執(zhí)行狀態(tài) l 快速中斷模式(fiq):處理高速中斷,用于高速數(shù)據(jù)傳輸或通道處理 l 外部中斷模式(irq):用于普通的中斷處理 l 管理模式(supervisor):操作系統(tǒng)使用的保護(hù)模式,系統(tǒng)復(fù)位后的默認(rèn)模式 l 中止模式(abort):數(shù)據(jù)或指令預(yù)取中止時(shí)進(jìn)入該模式 l 未定義模式(undefined):處理未定義指令,用于支持硬件協(xié)處理器的軟件仿真 l 系統(tǒng)模式(system):運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù) 處理器使用CPSR寄存器中的M4~M0位來(lái)指示不同的運(yùn)行模式。 7.2 通用寄存器中PC、CPSR和SPSR的作用各是什么? PC:程序計(jì)數(shù)器,用于保存處理器要取的下一條指令的地址。 CPSR:當(dāng)前程序狀態(tài)寄存器,CPSR保存條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志,以及其他一些相關(guān)的控制和狀態(tài)位。 SPSR:備份程序狀態(tài)寄存器,當(dāng)異常發(fā)生時(shí),SPSR用于保存CPSR的當(dāng)前值,當(dāng)從異常退出時(shí),可用SPSR來(lái)恢復(fù)CPSR。 7.3 從編程的角度講,ARM處理器的工作狀態(tài)有哪兩種?這兩種狀態(tài)之間如何轉(zhuǎn)換? 從編程角度講,ARM處理器的兩種工作狀態(tài)為: l ARM狀態(tài)(復(fù)位狀態(tài)):處理器執(zhí)行32位的字對(duì)齊的ARM指令 l Thumb狀態(tài):處理器執(zhí)行16位的半字對(duì)齊的Thumb指令 ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換: l 進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(最低位)為1時(shí),執(zhí)行BX指令就可以進(jìn)入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)時(shí)發(fā)生異常(異常處理要在ARM狀態(tài)下執(zhí)行),則當(dāng)異常處理返回時(shí)自動(dòng)切換到Thumb狀態(tài) l 進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(最低位)位0時(shí),執(zhí)行BX指令就可以進(jìn)入ARM狀態(tài)。處理器進(jìn)行異常處理時(shí),把PC的值放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行程序,系統(tǒng)自動(dòng)進(jìn)入ARM狀態(tài) 7.5 哪些特征是ARM和其他RISC體系結(jié)構(gòu)所共有的? ARM和其他RISC體系結(jié)構(gòu)共有的三個(gè)相同特征: l Load/Store體系結(jié)構(gòu):也稱為寄存器/寄存器體系結(jié)構(gòu)或RR系統(tǒng)結(jié)構(gòu)。在這類機(jī)器中,操作數(shù)和運(yùn)算結(jié)果不能直接從主寄存器中存取,而是必須借用大量的標(biāo)量或矢量寄存器來(lái)進(jìn)行中轉(zhuǎn)。采用這一結(jié)構(gòu)的處理器必然要使用更多的通用寄存器存儲(chǔ)操作數(shù)和運(yùn)算結(jié)果,由于寄存器與運(yùn)算器之間的數(shù)據(jù)傳輸速度遠(yuǎn)高于主存與運(yùn)算器之間的數(shù)據(jù)傳輸速度,采用這一結(jié)構(gòu)有助于提高計(jì)算機(jī)整體的運(yùn)行速度 l 采用固定長(zhǎng)度精簡(jiǎn)指令集:這樣使得機(jī)器譯碼變得容易,可以通過硬件直接譯碼的方式完成對(duì)指令的解析。雖然由于與復(fù)雜指令集相比,采用精簡(jiǎn)指令集需要更多指令來(lái)完成相同的任務(wù),但采用硬件直接譯碼的速度卻高于采用微碼方式譯碼。通過采用高速緩存等提高寄存器存儲(chǔ)速度的技術(shù),采用固定長(zhǎng)度精簡(jiǎn)指令集的機(jī)器可以獲得更高性能 l 三地址指令格式:除了除法指令外,ARM的大部分?jǐn)?shù)據(jù)處理指令采用三地址指令。即在指令中包含了目的操作數(shù)、源操作數(shù)和第二源操作數(shù) 八 8.1 ARM指令有哪幾種尋址方式?試分別說明。 ARM指令系統(tǒng)支持的常見尋址方式有: 寄存器尋址: 1. 操作數(shù)存放在寄存器中; 2.指令地址碼字段給出寄存器編號(hào)(名); 3.指令執(zhí)行時(shí)直接取出寄存器值來(lái)操作; 立即尋址: 1. 操作數(shù)包含在指令當(dāng)中; 2. 指令地址碼部分就是數(shù)據(jù)本身; 3. 取指時(shí)就取出了可立即使用的操作數(shù); 寄存器間接尋址: 寄存器移位尋址 1. 操作數(shù)存放在寄存器中; 2.指令地址碼字段給出寄存器編號(hào)(名)及移位表達(dá)式; 3.指令執(zhí)行時(shí)取出寄存器值并移位,再將結(jié)果作為源操作數(shù); 寄存器間接尋址: 1. 操作數(shù)存放在內(nèi)存單元中; 2.指令地址碼字段給出 [寄存器編號(hào)(名)]; 3.指令執(zhí)行時(shí)根據(jù)寄存器值(指針)找到相應(yīng)的存儲(chǔ)單元; 基址變址尋址 1. 操作數(shù)存放在內(nèi)存單元中; 2.指令地址碼字段給出 [寄存器編號(hào)(名)]和偏移量; 3.指令執(zhí)行時(shí)將基址寄存器的內(nèi)容與偏移量(<4K)相加/減,形成操作數(shù)的有效地址。 4. 常用于查表、數(shù)組操作、功能部件寄存器訪問等。 多寄存器尋址/塊復(fù)制尋址: 1. 操作數(shù)存放在內(nèi)存單元中; 2.指令地址碼字段給出 {寄存器編號(hào)(名)列表}; 3.編號(hào)高的寄存器總是對(duì)應(yīng)內(nèi)存中的高地址單元; 4. 可完成存儲(chǔ)塊和16個(gè)寄存器或其子集之間的數(shù)據(jù)傳送。 堆棧尋址: 1. 操作數(shù)存放在內(nèi)存棧頂單元中; 2.指令地址碼字段固定使用棧頂指針SP; 3.指令執(zhí)行時(shí)同多寄存器/塊尋址,可完成多個(gè)數(shù)據(jù)的入棧和出棧; 相對(duì)尋址: 1. 操作數(shù)為指令存放地址; 2.指令地址碼字段為地址偏移量; 3.指令執(zhí)行時(shí)同基址尋址,由PC提供基地址根據(jù)偏移量完成跳轉(zhuǎn); 8.2 指出下列指令操作數(shù)的尋址方式。 1) MOV R1,R2 寄存器尋址 2) SUBS R0,R0, #2 立即尋址 3) SWP R1,R1,[R2] 寄存器間接尋址 4) STR R1,[R0,#-4]! 基址變址尋址 5) LDMFD SP! , {R1~R4,LR} 多寄存器直接尋址 6) ANDS R0,R0,R1,LSL R2 寄存器移位尋址 7) STMIA R1!, {R2~R5, R8} 多寄存器直接尋址 8) BL AGAIN 相對(duì)尋址 8.3 ARM指令中的第二操作數(shù)有哪幾種表示形式?舉例說明。 第二源操作數(shù)有三類表示形式,分別是: 1) 立即數(shù)方式(#imm) #imm是一個(gè)無(wú)符號(hào)的32位數(shù)值變量,例如 0x104 2) 寄存器方式(Rm) Rm是存儲(chǔ)第二源操作數(shù)的寄存器,例如R3表示R3寄存器 3) 寄存器移位方式(Shifter_operand) 例如R3,ASR #2表示R3地址右移2后寄存器中的值 8.4 判斷下列指令的正誤,并說明理由。 1) ADD R1,R2,#4! 錯(cuò)誤,#4是立即數(shù)尋址,不是寄存器尋址,所以不能使用“!”來(lái)對(duì)寄存器值更新。 2) LDMFD R13!,{R2,R4} 正確 3) LDR R1,[R3]! 錯(cuò)誤,這是零偏移形式,無(wú)需使用“!” 4) MVN R5,#0x2F100 正確 5) SBC R15,R6,LSR R4 正確 6) MUL R2,R2,R5 正確 7) MSR CPSR,#0x001 錯(cuò)誤,立即數(shù)值不合理(模式) 8) LDRB PC,[R3] 正確 8.5 對(duì)下列各指令組寫出運(yùn)算指令執(zhí)行的條件。 1) CMP R0,R1 ADDHI R1,R1,#1 HI:如果R0中的無(wú)符號(hào)數(shù)>R1中的無(wú)符號(hào)數(shù)則執(zhí)行ADD指令。 2) CMP R1,R2 SUBMI R2,R2,#0x08 MI:表示如果R1寄存器中的值小于R2寄存器中的值,則執(zhí)行SUB指令。 8.7 指出MOV指令與LDR加載指令的區(qū)別及用途。 ARM是RISC結(jié)構(gòu),數(shù)據(jù)從內(nèi)存到CPU之間的移動(dòng)只能通過L/S指令來(lái)完成,也就是LDR/STR指令。比如想把數(shù)據(jù)從內(nèi)存中某處讀取到寄存器中,只能使用ldr比如: LDR R0, 0x12345678 就是把0x12345678這個(gè)地址中的值存放到R0中。而MOV不能這樣用,MOV只能在寄存器之間移動(dòng)數(shù)據(jù),或者把立即數(shù)移動(dòng)到寄存器中,這個(gè)是和x86這種CISC架構(gòu)的芯片區(qū)別最大的地方。x86中沒有LDR這種指令,因?yàn)閤86的MOV指令可以將數(shù)據(jù)從內(nèi)存中移動(dòng)到寄存器中。 8.8 寫一段代碼判斷R1的值是否大于0x30 , 是則將R1減去0x30. CMP R1, 0x30 SUBGT R1 , R1, 0x30 8.9 ARM處理器中支持哪幾種堆棧? 畫出每種堆棧操作的示意圖。 ARM支持的四種堆棧類型: 1. 滿遞增(FA):堆棧向上增長(zhǎng),堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最高地址。 棧底數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 棧頂數(shù)據(jù) 堆棧生長(zhǎng)方向 指針 存儲(chǔ)器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 2. 空遞增(EA) :堆棧向上增長(zhǎng),堆棧指針指向堆棧上的第一個(gè)空位置。 存儲(chǔ)器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 棧底數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 空閑 堆棧生長(zhǎng)方向 指針 3. 滿遞減(FD) :堆棧向下增長(zhǎng),堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最低地址。 存儲(chǔ)器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 棧頂數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 棧底數(shù)據(jù) 4. 空遞減(ED) :堆棧向下增長(zhǎng),堆棧指針向堆棧下的第一個(gè)空位置。 存儲(chǔ)器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 指針 堆棧生長(zhǎng)方向 指針 空閑 堆頂數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆底數(shù)據(jù) 堆棧生長(zhǎng)方向 九 9.3 AREA gcd,CODE,READONLY EXPORT gcd gcd CMP R0,R1 BEQ RE SUBGT R0,R0,R1 SUBLT R1,R1,R0 RE 9.5編寫一個(gè)程序段,當(dāng)寄存器r3中數(shù)據(jù)大于r2中的數(shù)據(jù)時(shí),將r2中的數(shù)據(jù)加10存入寄存器r3;否則將r2中的數(shù)據(jù)加100存入寄存器r3,并把這個(gè)程序段定義成一個(gè)代碼段。 AREA ADDITION,CODE,READONLY ENTRY Loop CMP R3 , R2 BHI GREATER ADD R3 , R2 , #100 B STOP GREATER ADD R3 , R2 , #10 STOP … END 9.8試編寫一個(gè)循環(huán)程序,實(shí)現(xiàn)從0開始10個(gè)偶數(shù)的累加。 AREA Foud,CODE,READONLY ENTRY MOV R0,#0 ;存放累加和 MOV R1,#0 ;存放加數(shù) MOV R2,#9 ;累加次數(shù) Loop ADD R1,R1,#2 ADD R0,R0,R1 SUB R2,R2,#1 ;調(diào)整累加次數(shù) BNE Loop Stop …… END 9.15閱讀程序,說明如下程序完成的功能。 llsearch CMP R0, #0 LDRNEB R2, [R0] CMPNE R1, R2 LDRNE R0, [R0, #4] BNE llsearch MOV PC, LR 若R0≠0,則將R0指向的字節(jié)數(shù)據(jù)讀入R2; 若R0≠0且R1≠R2,則將R0+4指向的雙字?jǐn)?shù)據(jù)存入R0中; 循環(huán),直至R1=R2退出子程序。 9.16閱讀程序,說明如下程序完成的功能。 strcmp LDRB R2, [R0], #1 LDRB R3, [R1], #1 CMP R2, #0 CMPNE R3, #0 BEQ return CMP R2, R3 BEQ strcmp return SUB R0, R2, R3 MOV PC, LR R0指向數(shù)據(jù)串S1(的前一個(gè)字節(jié)單元),R1指向數(shù)據(jù)串S2(的前一個(gè)字節(jié)單元); 依次比較字符串S1、S2中的字符,直至任一字符串結(jié)束; 將S1,S2第一個(gè)不同字符(或最后一個(gè)字符)的差存入R0并返回; 9.17閱讀程序,說明如下程序完成的功能。 CMP R0, #maxindex LDRLS PC, [PC, R0, LSL #2] B IndexOutOfRange DCD Handler0 DCD Handler1 DCD Handler2 DCD Handler3 … 實(shí)現(xiàn)子程序散轉(zhuǎn):若R0在有效范圍內(nèi)(小于#maxindex)則跳轉(zhuǎn)到Hander0~3所指的子程序之一。 9.18閱讀程序,說明如下程序完成的功能。 loop LDMIA R1- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微處理器 系統(tǒng) 結(jié)構(gòu) 嵌入式 設(shè)計(jì) 第二 答案
鏈接地址:http://m.appdesigncorp.com/p-9032572.html