历史上的今天
今天是:2025年01月16日(星期四)
2021年01月16日 | 快速学Arm(35)--存储器加速模块(1)
2021-01-16 来源:eefocus
LPC2300系列ARM内部有128bit宽度的Flash存储器,为了对该存储器进行管理,在芯片内部集成了存储器加上模块(MAM).MAM为用户调整Flash操作的参数提供了接口.
LPC2300系列ARM只是有一组Flash存储器,它包含3个128位的缓冲区:
.预取指缓冲区
.分支跟踪缓冲区
.数据缓冲区.

CPU对内部Flash取指和读取数据的操作时受到MAM制约的.例如,若MAM打开了,那么在CPU取指之前,MAM会判断要取出的这条指令是否在缓冲区内,若不存在,MAM会从Flash存储器读取一个指令行到缓冲区中.
介绍一下术语:
"取 值":指Arm发出的直接读取Flash的请求.
"预取指":指对当前处理器取指地址之后的地址执行Flash读操作.我理解就是读取了当前地址,那么同时将下一地址提前读出应该就是所所的预取指,"预先取指",呵呵.
下图描述了MAM关闭时取指令的情况:

当关闭了MAM,所有的读Flash存储器请求都导致Flash的读操作.
下面描述了MAM打开时指令操作情况:

当MAM开启时,CPU需要从Flash读取一批指令来执行.那么对前三条指令的读取,CPU不用再从Flash读取而是从MAM的缓冲区里读取.注意第四条指令,CPU仍然会访问Flash.
不过,有时程序可能出现跳转,这时就无法再连续从Flash中读取指令了,见下面的流程:

上面讲的是对指令的读取,MAM同时拥有专门的数据缓冲区,其工作原理与分支跟踪缓冲区类似.当CPU从Flash读取数据时,会先查看这些数据是否在数据缓冲区,如果不在,那么MAN会执行一次Flash读操作,然后把128bit的数据读入数据缓冲区中.如果存在,则直接从缓冲区读取.这样就加快了数据访问的速度.
史海拾趣
|
目录 第一篇 PWM开关变换器的基本原理………………………………………………1 第一章 开关变换器概论………………………………………………………………1 第一节 什么是开关变换器和开关电源………………………………………………1 第二节 DC-D ...… 查看全部问答> |
|
有没有谁做嵌入式开发的,大虾给俺指导一下?谁有WIN CE的模拟器? 我现在准备开发WIN CE5.0应用程序,现在按照网上指导的方法VS2005不能与目标机相联(目标机是WIN CE5.0系统),从开发机上拷的那5个文件不能在目标机器上运行,执行后报如下错误提示: \'ConmanClient2\'is not a valid Windows CE application ...… 查看全部问答> |
|
PB5.0升级2008全年升级包后 定制内核 生成的NK.nb0无法运行 第一步:把PB5.0升级2008全年升级包,在优龙2410开发板资料提供的ARMSYS2410.pbxml基础上把.net compact framework 2.0 add to OS,编译通过,生成的NK.nb0(大小为29M),在DNW下可以通过USB下载到开发板,下载地址为0X30200000,下载后选择Y运行, ...… 查看全部问答> |
|
现有一个软件需求如题所述,现在的做法是在TOUCH PANEL驱动层加上一些代码,也就是说把传给GWES的值复制一份保留下来.这样的做法缺陷很大,如果一旦在动作序列里有一个动作没有被有效的执行,那本次模拟的所有操作就会被认为无效.大家有没有其它的办法 ...… 查看全部问答> |
|
用vc生成一个dll文件(Phone.dll),并把它拷贝到pda的根目录下(该目录下有一个用EVC生成的导入dll的EXE文件),希望在pda中导入dll,相关代码如下: HINSTANCE ghPhoneDLL=NULL; ...… 查看全部问答> |
|
之前用 iar习惯了。。发现stm32的iar设置很麻烦。。看了一会还是不大懂。想买款使用IAR库函数的stm32开发板。求推荐。谢谢… 查看全部问答> |
|
欢迎来到电源设计小贴士!随着现在对更高效、更低成本电源解决方案需求的强调,我们创建了该专栏,就各种电源管理课题提出一些对您有帮助的小技巧。该专栏面向各级设计工程师。无论您是从事电源业务多年还是刚刚步入电源领域,您都可以在这里找到 ...… 查看全部问答> |




