首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 科技 > cpu可向cache发出请求(Cache简述及协处理器指令)
cpu可向cache发出请求(Cache简述及协处理器指令)
更新时间:2024-07-15 07:51:19

cpu可向cache发出请求(Cache简述及协处理器指令)1

来源:百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)

作者:韦东山

本文字数:1719,阅读时长:2分钟

如果对MMU ICache有所了解或者知道其概念作用,那么这节课可以跳过,我们很少会使用MMU或ICache

cpu可向cache发出请求(Cache简述及协处理器指令)2

在2440芯片里面除了CPU之外, Instruction MMU 指令MMU;

Data MMU 数据MMU;

InstructionC ACHE(16KB) 指令cache;

Data CACHE (16KB) 数据cache

全都通过CP15协处理器来进行操作这些

协处理器的含义作用 coprocessor协助主处理器做某些事情, 比如在ARM系统中有cp0 – cp15一共16个协处理器,其中cp15负责管理mmu icache

写一个程序,0到100求和

int sum() { int I; int sum =0; for(i=0; I <= 100; i ) sum = I; return sum; }

查看反汇编代码

cpu可向cache发出请求(Cache简述及协处理器指令)3

局部变量保存在栈中,也就是内存

70: e50b3014 str r3, [fp,#-20] //这个应该就是sum 假设地址是A 78: e50b3010 str r3, [fp, #-16] //这个应该就是I 假设地址是B ldr r3, [fp, #-16] //也就是地址B中取出值 cmp r3, #100 //跟100比较 //如果大于100程序跳到 a8 如果小于100则执行下面的for循环 从7c: 到 a4 指令保存在内存中,CPU根据这些执行进行操作

1 不断的读写地址A和B

2 不断的执行for循环里面代码

2.1 取指令

2.2 执行指令

问SDRAM非常慢,那么怎么提高程序执行效率? 先引入一个概念,程序局部性原理

  • 时间局部性:在同一段时间里,有极大的概率访问同一地址的指令或数据

(在这个for循环中同一个地址指令经常被访问到)

  • 空间局部性: 有极大概率访问到相邻空间的指令/数据

我们在一个比较慢的SDRAM上能不能在CPU上开一个高速缓存,把这些指令放进高速缓存icache

cpu可向cache发出请求(Cache简述及协处理器指令)4

指令cache只有16KB 数据cache也只有16KB 而我们的SDRAM有64MB空间,显然擦车不可能存储SDRAM中所有的内容,它只能存储一部分

cpu可向cache发出请求(Cache简述及协处理器指令)5

cache的示意图

以数据开始为例

  • 1 程序要读地址A的数据

ldr r0, [A的数据]

a. cpu以地址A查找cache,一开始cache无数据,导致cache miss

返回一系列的数据,叫做cache line: 8word 32byte

b. cpu把地址A发到SDRAM,读入cache line,成为cache file 把地址A上的数据返回给CPU 2 程序再次读取地址A的数据 a cpu以地址A查找cache,cache hit有数据直接从cache返回数据给CPU

3 程序要读地址B的数据,CPU也是以地址B查找数据,cache hint直接返回

4 cache满了,CPU访问C a cache替换,置换老的数据 b 填充新数据

数据写

write buffer

查看2410芯片手册 附录 appendix4-caches, write buffer 585页

cpu可向cache发出请求(Cache简述及协处理器指令)6

设置为NCNB (no cache no buffer)数据直接到达硬件不经过缓冲器

比如GPFDAT寄存器CPU读寄存器的时候想读到引脚状态,不应该从cache读取老的数据,而是不断直接访问硬件返回最新的数据 对于这些寄存器应该设置为NCNB

cpu可向cache发出请求(Cache简述及协处理器指令)7

不使用cache但数据写到buffer中,CPU就不管了 由write buffer直接进行写操作 CPU直接操作下一条指令

cpu可向cache发出请求(Cache简述及协处理器指令)8

  • 第一种不使用cache buffer 适用于直接硬件操作 gpio 得到最新数据
  • 第二种 不使用cache使用write buffer, cpu把写发给buffer,cpu就可以直接下一条指令
  • 第三种 WT 写通方式 使用cache不使用buffer,马上写硬件

CPU直接写给write buffer 由write执行缓慢写操作

  • 第四种 写回方式

miss: cpu数据直接到达write buffer hit: cpu数据写入cache标记为dirty,让后会在合适的时机由write buffer写给硬件

  • 合适的时机

cache替换时dirty会写给write buffer写给硬件

或者强制Flash cache 写给write buffer 写给硬件

下节讲协处理指令

「新品首发」STM32MP157开发板火爆预售!首批仅300套

,
相关推荐RECOMMEND
如何防止钓鱼网站中毒(如何识别钓鱼网站)
互联网的发展带来了我们购物,银行和与周围世界互动方式的便利。与此同时,也给了犯罪分子机会,互联网上到处都是虚假,欺诈或骗局的网站,让人防不胜防。那么我们应该如何去识别钓鱼网站?保护账户的安全呢?什么是...
十年科技改变什么(人生在于学习来看看科技界)
互联网正在创造一个全新的话语体系。人类需要不断学习才能跟上步伐,如果一个月不上网,许多词都会不认识。科技圈向来是一个盛产『黑话』的行业,B2B、B2C、P2P、O2O、C2C……各种『2』就是例子。那...
oppovivo和一加realme哪个好(四大手机厂商OppoVivo一加)
oppo和Vivo两大手机厂商现在已成为国际手机市场的一方大佬,他们的手机不仅在中国销量很好,在一些西方国家也同样受到欢迎!而手机行业的新宠一加、Realme近两年也在国际市场玩的风生水起,那么这四家...
灯具安装要点(各种灯具安装要领及注意事项)
客厅的灯具、厨房灯具、卧室灯具等最少也有4盏以上,家庭装修中灯具安装都是要详细讲究的,因为要长期使用并且不能轻易损坏,不然会影响到家庭生活。照明灯具的安装要求1、安装前,灯具及其配件应齐全,并无机械损...
adobe indesign cs4基础培训教材(IC软件官方版AdobeInCopy)
介绍:AdobeInCopyCC是adobe公司开发的一款文字编辑软件,其主要功能就是协同合作,能够与InDesign软件紧密集成,帮助文案人员和编辑可以设计文本样式、跟踪更改和对文档进行简单的版面修...
如何防止钓鱼网站中毒(如何识别和预防钓鱼网站)
近年来,假冒网站和木马病毒盗取持卡人银行卡的密码和资金事件频繁发生。识破这些假网站其实并不难。犯罪分子往往是冒充知名公司,特别是银行寄来的电子邮件,诱骗不知情的使用者连上假造的网站,要他们输入使用者名...