mooc课程精选,成品人片观看入口众乐乐,久久久久人妻一区精品性色av,苍兰诀大结局是什么,白丝美女被狂躁免费视频网站

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 如何實現(xiàn)Arm處理器ICache的測試

如何實現(xiàn)Arm處理器ICache的測試 時間:2018-09-26      來源:未知

一、什么是Cache

Cache是一種容量比較小,但訪問速度比較快存儲器。由于處理器的速度遠高于主存,處理器直接從內存中存取數(shù)據(jù)要等待一定周期,而Cache位于處理器與主存之間,保存著近一段時間處理器涉及到的主存塊內容。在需要讀取數(shù)據(jù)是,處理器可能就會從Cache中讀取需要的數(shù)據(jù),而不是從主存中獲取數(shù)據(jù),這樣就提高了系統(tǒng)的運行效率。

二、ARM處理器的Cache

ARM處理器支持Cache機制,并將Cache分開為I-Cache(指令緩存)和D-Cache(數(shù)據(jù)緩存)。系統(tǒng)剛上電時,I-Cacche中的內容是無效的,并且I-Cacche的功能也是關閉的,CP15協(xié)處理器的SCTLR寄存器(系統(tǒng)控制寄存器)的bit[12]控制I-Cache的打開和關閉。I-Cache關閉時,CPU每次取指令都要讀主存,所以性能比較低。因此應該盡快打開I-Cache。同樣,系統(tǒng)剛上電時, D-Cache中的內容是無效的,并且D-Cache的功能也是關閉的,SCTLR寄存器的bit[2]控制D-Cache的打開和關閉。因為D-Cache必須在開啟MMU(內存管理單元)后才能使能,而本程序并不打算開啟MMU,所以這里我們不是能D-Cache,只研究I-Cache。

三、Cache測試

我們使用Exynos4412處理器開發(fā)板,該處理器采用32nm制程,擁有四枚主頻可達1.4 GHz的Cortex-A9通用處理核心,擁有32 KB I- Cache和32 KB D- Cache,1 MB L2 Cache。以下是I-Cache的測試代碼,如下:

.section .text

.globl _start

_start:

ldr r0, =WTCON

mov r1, #0

str r1, [r0]

mrc p15, 0, r0, c1, c0, 0

/* orr r0, r0, #0x1000 @Enable ICache */

bic r0, r0, #0x1000 @Disable ICache

mcr p15, 0, r0, c1, c0, 0

ldr r0, =GPF3CON

ldr r1, =0x10000

str r1, [r0]

led_flash:

ldr r0, =GPF3DAT

mov r1, #0x10

str r1, [r0]

bl delay

mov r1, #0x0

str r1, [r0]

bl delay

bled_flash

delay:

cmp r0, #0

subne r0, r0, #1

bne delay

.end

將該程序放到Exynos4412開發(fā)板上測試,先使能I-Cache,再關閉I-Cache,觀察LED燈閃爍的頻率變化。我們能夠發(fā)現(xiàn),使能I-Cache燈的閃爍頻率比較高,關閉I-Cache閃爍頻率低,這說明處理器執(zhí)行過的指令被I-Cache緩存,當處理器再一次執(zhí)行該指令時,處理器只需要從Cache中取出需要的指令,而不再需要訪問主存儲器,不必等待一段時間,從而提高了系統(tǒng)的效率。

 
 

上一篇:淺談android中的適配器模式

下一篇:Android init進程之如何進入java世界

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部