ARM芯片开发学习(S5PV210)——icache、dcache介绍和如何开关icache

发布者:EtherealGaze最新更新时间:2022-08-02 来源: csdn关键字:ARM  芯片开发  S5PV210 手机看文章 扫描二维码
随时随地手机看文章

什么是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芯片开发学习(S5PV210)——icache、dcache介绍和如何开关icache

上一篇:ARM芯片学习(S5PV210开发)——代码重定位
下一篇:ARM中FIQ(快速中断)比IRQ(普通中断)响应快的原因

推荐阅读最新更新时间:2024-11-11 17:26

安装配置arm-linux-gcc
下载arm-linux-gcc并解压,把里面的arm文件夹整个cp到/usr/local/ 然后是注册环境 一般是修改profile 1:对于ubuntu中profile是调用/etc/bash.bashrc来运行的 在/etc/bash.bashrc后加上 if ; then PATH=/usr/local/arm/2.95.3/bin: ${PATH} fi 2:在Federal下可以vi /etc/profile;在出现pathmunge 的语句段后添加pathmunge /usr/local/arm/2.1.3(版本号)/bin; 然后source /etc/profile更新一下就可以用arm-li
[单片机]
基于ARM的多路同步的A/D和D/A设计
  ARM处理器是一种32位精简指令集RISC微处理器,片内集成了丰富的硬件资源,广泛的应用于许多嵌入式系统中。S3C2440是一款基于ARM920T内核的32位RISC嵌入式处理器,运行主频可达400MHz.本文阐述选用S3C2440处理器设计的一种同步、高速、高精度、多通道的数据采集与信号输出系统的设计方法。   1 多路同步A/D设计   1.1 ADS8556的功能   系统选用TI公司生产的16位6路同步逐次逼近型模数转换芯片ADS8556.输入模拟信号电压范围为-12V~+12V.常规应用下功耗为251.7mW,最大功耗为298.5mW,信噪比可达91.5dB.ADS8556芯片内部包含6个独立的采样保持模块和对
[单片机]
基于<font color='red'>ARM</font>的多路同步的A/D和D/A设计
S5PV210(TQ210)学习笔记——内存配置(DDR2)
S5PV210有两个独立的DRAM控制器,分别是DMC0和DMC1,其中,DMC0最大支持512MByte,DMC1最大支持1GByte,而DMC0和DMC1又同时支持两个片选CS0和CS1。S5PV210的内存模块相比2440和6410来讲要更加复杂一些,要想正确的配置S5PV210的内存,应该仔细阅读芯片手册相关部分,在配置参数时也应该适当的阅读下内存芯片的手册。这部分的寄存器和配置过程比较复杂(但是不难),我只简单的讲一下我配置时遇到的问题。 一 接线原理 我的开发板是TQ210,开发板上有8片128M*8bits的内存芯片,从原理图上可以看到,其中4片并联接在DMC0上,另外四片并联在DMC1上,这里我只贴出一个链接方式,
[单片机]
<font color='red'>S5PV210</font>(TQ210)学习笔记——内存配置(DDR2)
400亿美元的交易要黄 英国倾向于拒绝NVIDIA收购ARM
NVIDA收购ARM公司一事还没有拿到主要国家和地区的审批,ARM总部所在地的英国也不乐见ARM被NVIDIA收购,最新消息称英国方面倾向于拒绝NVIDIA收购ARM,不过最终决定还要等等。 这不是ARM第一次被收购,但可能是最艰难的一次。2016年ARM被日本软银以320亿美元的价格收购,全球也没遇到什么阻力,但是2020年NVIDIA宣布400亿美元(约合2700亿)收购ARM公司后,引发的震动大多了。 可以说,除了美国监管部门乐见NVIDIA收购成功之外,其他国家和地区以及美国的科技公司并不希望看到ARM被NVIDIA拿下,谷歌、苹果、亚马逊等公司此前也表示反对,因为担心NVIDIA会改变ARM的独立运行政策,毕竟N
[半导体设计/制造]
ARM协处理器接口
  ARM7TDMI处理器指令集使您可以通过协处理器来实现特殊的附加指令。这些协处理器是与ARM7TDMI内核相结合的单独的处理单元。一个典型的协处理器包括:指令流水线;指令译码逻辑;寄存器分组;带独立数据通路的特殊处理逻辑。      关于“可用的协处理器”:一个系统最多可连接16个协处理器,每个协处理器都通过唯一的ID号识别。ARM7TDMI处理器包含两个协处理器,它们不能再用在外部协处理器:   (1)CP14 通信通道协处理器;   (2)CP15 为cache和MMU功能提供的系统控制协处理器。
[单片机]
<font color='red'>ARM</font>协处理器接口
摆脱高通/ARM束缚!三星紧随苹果自研GPU
  今年苹果发布会上,除了发布具有重大突破的iPhone X外,还有一大亮点是它们自研的A11芯片,这颗芯片首次集成了苹果自研GPU。下面就随网络通信小编一起来了解一下相关内容吧。   继苹果之后,三星也要加入自研GPU行列了。      摆脱高通/ARM束缚!三星紧随苹果自研GPU   三星招聘信息显示,它们正在寻找杰出的软件和硬件人才。同时三星透露它们位于奥斯汀和圣何塞的GPU团队正在开发定制GPU,将部署在三星移动产品中。   从上面不难看出,三星未来芯片有望集成自研GPU并应用在自家手机上,这对于供应商来说,又少了一个铁饭碗。   我们知道目前三星主要采购的是 ARM  Mali,三星目前的旗舰芯片Exynos 88
[网络通信]
移植Lua到ARM平台
Lua是一门很小巧的语言,为保证良好的可移植性,Lua使用ANSI C编写。因此Lua的移植灰常简单,只需要使用正确的交叉编译器就好了。 本文介绍如何将Lua移植到ARM平台,分x个步骤,并使用如下环境: 1. 操作系统:Ubunt10.04 2. 交叉编译器:arm-linux-gcc 4.3.2版本(如果你不知道怎么搭建交叉编译环境,可以参考我的另一篇文章: http://hi.baidu.com/hqwfreefly/blog/item/8364fed7b3f58dc950da4b5f.html ) 3.Lua5.1版本源码 移植步骤: 1下载Lua源代码: http://www.lua.org/versions.h
[单片机]
基于ARM9 的UDP 协议栈的设计与实现
摘 要:为了满足以太网通信过程中大数据量的快速传输的需求,往往可以牺牲一些可靠性换来高速的数据传输.根据方案,文中设计了一套基于YLP2440 的UDP 通信系统,实现了简单实用的UDP 通信协议.首先介绍了系统整体硬件结构,然后完成了以太网通信系统软件设计,以DM9000A以太网卡驱动程序为基础,通过裁剪移植TCP/ IP 协议栈,实现了系统数据的接收和发送.对系统UDP 和ARP 通信进行了测试,结果表明UDP 通信系统整体稳定可靠,并且系统开销小.数据传输速度快,能够满足实际应用需求. 0 引 言 随着嵌入式技术和网络技术的迅速发展,以太网接口在嵌入式系统中的应用越来越广泛.以太网通信速度快.通用,可直接与Inter
[单片机]
基于<font color='red'>ARM</font>9 的UDP 协议栈的设计与实现
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved