freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm體系結(jié)構(gòu)與指令集-文庫(kù)吧

2025-02-27 12:38 本頁(yè)面


【正文】 令是Load或 Store指令,則在 ALU中計(jì)算存儲(chǔ)器的地址。 ( 4)緩沖 /數(shù)據(jù)( buffer/data):如果需要?jiǎng)t訪問(wèn)數(shù)據(jù)存儲(chǔ)器,否則 ALU只是簡(jiǎn)單地緩沖 1個(gè)時(shí)鐘周期。 ( 5)回寫(xiě)( writeback):將指令的結(jié)果回寫(xiě)到寄存器堆,包括任何從寄存器讀出的數(shù)據(jù)。 在 ARM10中,將流水線的級(jí)數(shù)增加到 6級(jí),使系統(tǒng)的平均處理能力達(dá)到了 。 3. 6級(jí)流水線 ARM組織 圖 24 6級(jí)流水線指令的執(zhí)行過(guò)程 影響流水線性能的因素 1.互鎖 2.跳轉(zhuǎn)指令 ARM存儲(chǔ)系統(tǒng) 將某個(gè)分區(qū)或是設(shè)備掛載了以后才能使用,但是當(dāng)計(jì)算機(jī)重新啟動(dòng)以后,又需要重新掛載,這個(gè)時(shí)候可以通過(guò)修改 /etc/fstab文件實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載文件系統(tǒng)。 ARM存儲(chǔ)系統(tǒng)有非常靈活的體系結(jié)構(gòu),可以適應(yīng)不同的嵌入式應(yīng)用系統(tǒng)的需要。 ARM存儲(chǔ)器系統(tǒng)可以使用簡(jiǎn)單的平板式地址映射機(jī)制(就像一些簡(jiǎn)單的單片機(jī)一樣,地址空間的分配方式是固定的,系統(tǒng)中各部分都使用物理地址),也可以使用其他技術(shù)提供功能更為強(qiáng)大的存儲(chǔ)系統(tǒng)。 例如: ( 1)系統(tǒng)可能提供多種類型的存儲(chǔ)器件,如 Flash、 ROM、 SRAM等; ( 2) Cache技術(shù); ( 3)寫(xiě)緩存技術(shù)( write buffers); ( 4)虛擬內(nèi)存和 I/O地址映射技術(shù)。 大多數(shù)的系統(tǒng)通過(guò)下面的方法之一可實(shí)現(xiàn)對(duì)復(fù)雜存儲(chǔ)系統(tǒng)的管理。 ( 1)使用 Cache,縮小處理器和存儲(chǔ)系統(tǒng)速度差別,從而提高系統(tǒng)的整體性能。 ( 2)使用內(nèi)存映射技術(shù)實(shí)現(xiàn)虛擬空間到物理空間的映射。 ( 3)引入存儲(chǔ)保護(hù)機(jī)制,增強(qiáng)系統(tǒng)的安全性。 ( 4)引入一些機(jī)制保證將 I/O操作映射成內(nèi)存操作后,各種 I/O操作能夠得到正確的結(jié)果。 ( 1)內(nèi)核級(jí)的寄存器。 ( 2)芯片級(jí)的緊耦合存儲(chǔ)器 TCM。 ( 3)芯片級(jí)的片上 Cache存儲(chǔ)器的容量在8~ 32KB之間,訪問(wèn)時(shí)間大約為 10ns。 ( 4)板卡級(jí)的 DRAM。 ( 5)外設(shè)級(jí)的后援存儲(chǔ)器,通常是硬盤(pán),可能從幾百 MB到幾個(gè) GB,訪問(wèn)時(shí)間為幾十 ms。 協(xié)處理器( CP15) ARM處理器支持 16個(gè)協(xié)處理器。 CP15,即通常所說(shuō)的系統(tǒng)控制協(xié)處理器( System Control Coprocesssor),它負(fù)責(zé)完成大部分的存儲(chǔ)系統(tǒng)管理。 CP15包含 16個(gè) 32位寄存器,其編號(hào)為 0~15。 CP15中的寄存器可能是只讀的,也可能是只寫(xiě)的,還有一些是可讀可寫(xiě)的。 存儲(chǔ)管理單元( MMU) 在創(chuàng)建多任務(wù)嵌入式系統(tǒng)時(shí),最好有一個(gè)簡(jiǎn)單的方式來(lái)編寫(xiě)、裝載及運(yùn)行各自獨(dú)立的任務(wù)。目前大多數(shù)的嵌入式系統(tǒng)不再使用自己定制的控制系統(tǒng),而使用操作系統(tǒng)來(lái)簡(jiǎn)化這個(gè)過(guò)程。較高級(jí)的操作系統(tǒng)采用基于硬件的存儲(chǔ)管理單元( MMU)來(lái)實(shí)現(xiàn)上述操作。 MMU提供的一個(gè)關(guān)鍵服務(wù)是使各個(gè)任務(wù)作為各自獨(dú)立的程序在其自己的私有存儲(chǔ)空間中運(yùn)行。在帶 MMU的操作系統(tǒng)控制下,運(yùn)行的任務(wù)無(wú)須知道其他與之無(wú)關(guān)的任務(wù)的存儲(chǔ)需求情況,這就簡(jiǎn)化了各個(gè)任務(wù)的設(shè)計(jì)。 MMU提供了一些資源以允許使用虛擬存儲(chǔ)器(將系統(tǒng)物理存儲(chǔ)器重新編址,可將其看成一個(gè)獨(dú)立于系統(tǒng)物理存儲(chǔ)器的存儲(chǔ)空間)。MMU作為轉(zhuǎn)換器,將程序和數(shù)據(jù)的虛擬地址(編譯時(shí)的連接地址)轉(zhuǎn)換成實(shí)際的物理地址,即在物理主存中的地址。這個(gè)轉(zhuǎn)換過(guò)程允許運(yùn)行的多個(gè)程序使用相同的虛擬地址,而各自存儲(chǔ)在物理存儲(chǔ)器的不同位置。 這樣存儲(chǔ)器就有兩種類型的地址:虛擬地址和物理地址。 高速緩沖存儲(chǔ)器( Cache) Cache是一個(gè)容量小但存取速度非常快的存儲(chǔ)器,它保存最近用到的存儲(chǔ)器數(shù)據(jù)副本。 Cache經(jīng)常與寫(xiě)緩存器( write buffer)一起使用。 通過(guò)引入 Cache和寫(xiě)緩存區(qū),存儲(chǔ)系統(tǒng)的性能得到了很大的提高,但同時(shí)也帶來(lái)了一些問(wèn)題。 異 常 ARM體系結(jié)構(gòu)中,存在 7種異常處理。當(dāng)異常發(fā)生時(shí),處理器會(huì)把 PC設(shè)置為一個(gè)特定的存儲(chǔ)器地址。這一地址放在被稱為向量表( vector table)的特定地址范圍內(nèi)。向量表的入口是一些跳轉(zhuǎn)指令,跳轉(zhuǎn)到專門(mén)處理某個(gè)異?;蛑袛嗟淖映绦颉? 異常的種類 表 24 ARM的 7種異常 異 常 類 型 處理器模式 執(zhí)行低地址 執(zhí)行高地址 復(fù)位異常( Reset) 特權(quán)模式 0x00000000 0xFFFF0000 未定義指令異常( Undefined interrupt) 未定義指令中止模式 0x00000004 0xFFFF0004 軟中斷異常( Software Abort) 特權(quán)模式 0x00000008 0xFFFF0008 預(yù)取異常( Prefetch Abort) 數(shù)據(jù)訪問(wèn)中止模式 0x0000000C 0xFFFF000C 數(shù)據(jù)異常( Data Abort) 數(shù)據(jù)訪問(wèn)中止模式 0x00000010 0xFFFF0010 外部中斷請(qǐng)求( IRQ) 外部中斷請(qǐng)求模式 0x00000018 0xFFFF0018 快速中斷請(qǐng)求( FIQ) 快速中斷請(qǐng)求模式 0x0000001C 0xFFFF001C 異常的優(yōu)先級(jí) 表 25 異常優(yōu)先級(jí) 優(yōu) 先 級(jí) 異 常 最高 1 復(fù)位異常 2 數(shù)據(jù)中止 3 快速中斷請(qǐng)求 4 外部中斷請(qǐng)求 5 預(yù)取指令異常 6 軟中斷 最低 7 未定義指令 構(gòu)建異常向量表 當(dāng)處理器的復(fù)位引腳有效時(shí),系統(tǒng)產(chǎn)生復(fù)位異常中斷,程序跳轉(zhuǎn)到復(fù)位異常中斷處理程序處執(zhí)行。復(fù)位異常中斷通常用在下面兩種情況下: ( 1)系統(tǒng)上電; ( 2)系統(tǒng)復(fù)位。 1.復(fù)位異常 圖 26 異常處理向量表 當(dāng) ARM處理器執(zhí)行協(xié)處理器指令時(shí),它必須等待一個(gè)外部協(xié)處理器應(yīng)答后,才能真正執(zhí)行這條指令。若協(xié)處理器沒(méi)有響應(yīng),則發(fā)生未定義指令異常。 2.未定義指令異常 軟中斷( SWI)異常發(fā)生時(shí),處理器進(jìn)入特權(quán)模式,執(zhí)行一些特權(quán)模式下的操作系統(tǒng)功能。 3.軟中斷 預(yù)取指令異常是由系統(tǒng)存儲(chǔ)器報(bào)告的。當(dāng)處理器試圖去取一條被標(biāo)記為預(yù)取無(wú)效的指令時(shí),發(fā)生預(yù)取指令異常。 如果系統(tǒng)中不包含 MMU時(shí),指令預(yù)取異常中斷處理程序只是簡(jiǎn)單地報(bào)告錯(cuò)誤并退出。若包含 MMU,引起異常的指令的物理地址被存儲(chǔ)到內(nèi)存中。 4.預(yù)取指令異常 數(shù)據(jù)訪問(wèn)中止異常是由存儲(chǔ)器發(fā)出數(shù)據(jù)中止信號(hào),它由存儲(chǔ)器訪問(wèn)指令 Load/Store產(chǎn)生。當(dāng)數(shù)據(jù)訪問(wèn)指令的目標(biāo)地址不存在或者該地址不允許當(dāng)前指令訪問(wèn)時(shí),處理器產(chǎn)生數(shù)據(jù)訪問(wèn)中止異常。 5.?dāng)?shù)據(jù)訪問(wèn)中止異常 當(dāng)處理器的外部中斷請(qǐng)求( IRQ)引腳有效,而且 CPSR寄存器的 I控制位被清除時(shí),處理器產(chǎn)生外部中斷 IRQ異常。系統(tǒng)中各外部設(shè)備通常通過(guò)該異常中斷請(qǐng)求處理器服務(wù)。 6.外部中斷請(qǐng)求 當(dāng)處理器的快速中斷請(qǐng)求( FIQ)引腳有效且 CPSR寄存器的 F控制位被清除時(shí),處理器產(chǎn)生快速中斷請(qǐng)求 FIQ異常。 7.快速中斷請(qǐng)求 異常響應(yīng)流程 當(dāng)異常發(fā)生時(shí),處理器自動(dòng)切換到 ARM狀態(tài),所以在異常處理函數(shù)中要判斷在異常發(fā)生前處理器是 ARM狀態(tài)還是 Thumb狀態(tài)。這可以通過(guò)檢測(cè) SPSR的 T位來(lái)判斷。 1.判斷處理器狀態(tài) 通常情況下,只有在 SWI處理函數(shù)中才需要知道異常發(fā)生前處理器的狀態(tài)。所以在Thumb狀態(tài)下,調(diào)用 SWI軟中斷異常必須注意以下兩點(diǎn)。 ( 1)發(fā)生異常的指令地址為 (lr?2),而不是 (lr?4)。 ( 2) Thumb狀態(tài)下的指令是 16位的,在判斷中斷向量信號(hào)時(shí)使用半字加載指令 LDRH。 前面介紹向量表時(shí)提到,每一個(gè)異常發(fā)生時(shí)總是從異常向量表開(kāi)始跳轉(zhuǎn)。最簡(jiǎn)單的一種情況是向量表里面的每一條指令直接跳向?qū)?yīng)的異常處理函數(shù)。其中快速中斷處理函數(shù)FIQ_handler()可以直接從地址 0x1C處開(kāi)始,省下一條跳轉(zhuǎn)指令,如圖 27所示。 ( 1) MOV PC,# imme_value ( 2) LDR PC, [PC+offset] 2.向量表 圖 27 異常處理向量表 從異常處理程序中返回 當(dāng)一個(gè)異常處理返回時(shí),一共有 3件事情需要處理:通用寄存器的恢復(fù)、狀態(tài)寄存器的恢復(fù)及 PC指針的恢復(fù)。通用寄存器的恢復(fù)采用一般的堆棧操作指令即可,下面重點(diǎn)介紹狀態(tài)寄存器的恢復(fù)及 PC指針的恢復(fù)。 PC和 CPSR的恢復(fù)可以通過(guò)一條指令來(lái)實(shí)現(xiàn),下面是 3個(gè)例子。 ( 1) MOVS PC, LR ( 2) SUBS PC, LR,# 4 ( 3) LDMFD SP!, {PC}^ 1.恢復(fù)被中斷程序的處理器狀態(tài) 異常返回時(shí),另一個(gè)非常重要的問(wèn)題就是返回地址的確定。 2.異常的返回地址 圖 28 3級(jí)流水線示例 ( 1)軟中斷異常 ( 2) IRQ或 FIQ異常 ( 3) Data Abort數(shù)據(jù)中止異常 表 26 異常和返回地址 異 常 地 址 用 途 復(fù)位 - 復(fù)位沒(méi)有定義 LR 數(shù)據(jù)中止 LR- 8 指向?qū)е聰?shù)據(jù)中止異常的指令 FIQ LR- 4 指向發(fā)生異常時(shí)正在執(zhí)行的指令 IRQ LR- 4 指向發(fā)生異常時(shí)正在執(zhí)行的指令 預(yù)取指令中止 LR- 4 指向?qū)е骂A(yù)取指令異常的那條指令 SWI LR 執(zhí)行 SWI指令的下一條指令 未定義指令 LR 指向未定義指令的下一條指令 ARM處理器的尋址方式 ARM指令集可以分為跳轉(zhuǎn)指令、數(shù)據(jù)處理指令、程序狀態(tài)寄存器傳輸指令、 Load/Store指令、協(xié)處理器指令和異常中斷產(chǎn)生指令。根據(jù)使用的指令類型不同,指令的尋址方式分為數(shù)據(jù)處理指令尋址方式和內(nèi)存訪問(wèn)指令尋址方式。 數(shù)據(jù)處理指令尋址方式 數(shù)據(jù)處理指令的基本語(yǔ)法格式如下: opcode {cond} {S} Rd,Rn,shifter_operand 其中, shifter_operand有 11種形式,如表 27所示。 表 27 shifter_operand的尋址方式 語(yǔ) 法 尋 址 方 式 1 # immedi
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1