什么是icache、dcache
cache是高速缓冲存储器,icache(instructions cache)是指令高速缓冲存储器,dcache(data cache)是数据高速缓冲存储器。存储介质的基本规律是读写速度越快单位存储容量的价格就越高,为了平衡存储速度和价格,计算机的采用分级的存储系统,按照读写速度由快到慢:CPU->寄存器->cache->内存->外存。其中寄存器是在集成到Soc内部的,直接和CPU交互数据,数量有限;在性能高一些的计算机中,cache是可以采用多级的;内存一般是RAM,外存可以是磁盘、flash等。其中icache和dcache就是属于cache,icache用于缓存指令,dcache用于缓存数据。icache和dcache的作用是提高系统性能。比如:CPU一次只能处理一条指令,如果执行完一条指令去内存取一条指令,那CPU会频繁读取内存,但是内存的速度远远小于CPU的执行速度,这样会限制CPU的运行速度。有了icache后,可以一次性将要执行的指令和该指令邻近的指令都读取到icache缓存起来,要执行指令时先去icache中查找,没有找到再去内存中读取,只要保证命中率比较高,就可以有效减少CPU读取内存的次数;dcache也是同样的原理,把最近用到的数据缓存起来。这其中涉及到程序的空间局部性原理和时间局部性原理。
什么是协处理器
ARM有多达16个协处理器,主要的作用:ARM处理器初始化,ARM与协处理器的数据处理操作,ARM的寄存器与协处理器的寄存器之间传送数据,以及ARM协处理器的寄存器和存储器之间传送数据。其中CP15 —系统控制协处理器 (the system control coprocessor)通过协处理器指令MCR和MRC提供具体的寄存器来配置和控制caches、MMU、保护系统、配置时钟模式(在bootloader时钟初始化用到)。对于协处理器数量多,功能复杂,我们用到什么功能就去查询相关协处理即可。
怎么开关icache
示例代码:
mrc p15,0,r0,c1,c0,0; // 读出cp15的c1到r0中
bic r0, r0, #(1<<12) // bit12 置0 关icache
orr r0, r0, #(1<<12) // bit12 置1 开icache
mcr p15,0,r0,c1,c0,0;
代码解析:
ARM处理器的icache是由cp15协处理的c1寄存器的bit 12控制,想要开关icache就是去操作cp15协处理的c1寄存器,采用经典的“读改写”三部曲。
1.用mrc命令将cp15的c1寄存的值读取到ARM处理的r0寄存器(这里的r0是代表ARM处理器的可用寄存器,用其他的寄存器也可以);
2.修改r0寄存器的bit 12的值,0是关,1是开;
3.用mcr将r0的值写回c1。这样就完成了对c1寄存器bit 12的改写,从而实现开关icache。
上一篇:ARM芯片学习(S5PV210开发)——代码重定位
下一篇:ARM中FIQ(快速中断)比IRQ(普通中断)响应快的原因
推荐阅读最新更新时间:2024-11-11 17:26
设计资源 培训 开发板 精华推荐
- AD9255-125EBZ 14 位 80 Msps 评估板
- REF193 精密微功耗、低压差电压基准的典型应用
- 多通道步进电机驱动IC —— TB67S158FTG
- 安装孔20的BLHeli_S固件的4合1穿越机电调
- LF18CPT-TR 1.8V 延迟开启低压降稳压器的典型应用
- LT8616HFE 3.3V、0.79V、1MHz 2 级降压转换器的典型应用电路
- ADC120 8通道,50ksps至1Msps,12位模数转换器的评估板
- 使用 Infineon Technologies AG 的 OM7631NM 的参考设计
- race-ctrl-dbg
- ADA4000-2ARZ运算放大器缓冲网络配置的典型应用电路
- TI SensorTag创意设计大赛重磅开启!
- 月度原创精选评选2018年7月(总第6期)
- 直播|基于英特尔® Agilex™ FPGA F-Tile的以太网硬核IP详解及如何使用oneAPI对FPGA编程
- 下载有礼!是德科技5G精选解决方案,帮您勘破 5G 迷宫!
- 【6本精选 ADI 电子书】免费下载 ing
- 是德科技有奖直播:元宇宙测试系列研讨会之VR/AR 数字接口测试的挑战
- 下载喽:PCIe要了解的10件事和识别协议的BSX系列BERTScope误码率测试仪技术资料
- 2024安路科技FPGA技术研讨会-杭州站 火热报名中
- 下载有礼|ADI 用于多路抽头输出隔离电源的简易解决方案
- 开学季!EEworld下载中心 Cortex主题资源上传