嵌入式控制系统LPC2000系列ARM硬件结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Flash组1
CPU 执行指令
Flash组2
取指阶段
1234 提供指令 取指阶段
9 10 11 12 提供指令 取指阶段
...
等待
指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
取指阶段
5678
5678 提供指令 取指阶段
13 14 15 16 提供指令 ...
4.5 存储器加速模块(MAM)
MFlaAsMh编定程时问问题题::
在改编变程M和A擦M除定操时作值过时程必中须不先允关许闭访M问AFMla。sh其存设储 置器的。定为时了值防和止系从统Fla时sh钟存有储如器下中关读系取,无目效的的是数为据了,确在 保FlaFslha编sh程的访或问擦周除期操不作会开小始于后5M0AnMs ,将否不则缓会冲导任致何操数作 错据误。。所以在Flash操作结束后,任何对Flash地址的读
• MAM内部结构
LPC2200系列芯片把Flash存储器被分成两组, 它们轮番工作,及时的为CPU提供需要的指令和数 据,以防止CPU取指暂停。每组Flash存储器都有自 己的预取指缓冲区、分支跟踪缓冲区和数据缓冲区。
存储器地址
总 ARM7局部总线 线
接
口
Flash
Flash
存储器组0 存储器组1
Flash组1
CPU 执行指令
Flash组2
取指阶段
1 提供指令 取指阶段
3 提供指令 取指阶段
...
等待 指令
1 等待 2 等待 3 等待 4
取指阶段
2 提供指令 取指阶段
4 提供指令
...
• 开启MAM指令执行情况
231 C两P只组U要执指指行令令F缓la存存sh在区组两中12指指个不令令组存缓缓的在存存指指区区令令中中缓,的的存启指指区动令令中F。l,ash同C存P时U储从的器 指F指l令a令sh执读组行取1中是周读连期取续,指的C令P,U。由停此止大,大等提待高若了干指周令期执。行效率。
➢ ➢
15.A/D转换器 16.看门狗
➢ 7.引脚连接模块 ➢ 8.GPIO
➢ 17.脉宽调制器(PWM) ➢ 18.实时时钟
4.5 存储器加速模块(MAM)
• 概述
LPC2000微控制器扩展了器件内部Flash总线宽 度为128位,用于提高处理器的指令执行速度。这个 接口通过存储器加速模块(MAM)来控制。
分支跟踪缓存区中保存着程序跳转后可执行到的指
令。
CPU取跳转 之后的指令
指令在分 支
跟踪缓存 区
是
读取指令
向后
跳转方 向
向前
否
否
从Flash读取指令
wk.baidu.com
将指令行放入 分支跟踪缓存区 和预取指缓存区
指令在预 取指缓存
区
是
读取指令
4.5 存储器加速模块(MAM)
• 程序获取数据
当CPU在从Flash中获取数据时,如果这些数据 没有出现在MAM的数据缓冲区中,那么MAM会执 行一次Flash读操作,并把一个128位的数据行存入 数据缓冲区,这样就加快了按顺序访问数据的速度。 数据访问使用一个单行的缓冲区,和访问代码时提 供两个缓冲区不同,因为数据访问不需要预取指功 能。
预取指缓存 预取指缓存
分支跟踪缓存 分支跟踪缓存
2×128位
2×128位
数据缓存区 选择
存储器数据/指令
• 关闭MAM指令执行情况
1234 从 CP所FUl有a从sh存12组组组储12指指中器中令令读操读缓缓取作取存存指请指区区令求令中中,都,获获C会CP取P取直UU指指处处接令令于于对并并等等Fl执执a待待s行h行状状操。。态态作。。,由 此产生了CPU停止,等待若干周期的情况。
MA描M述CR[1:0] MAMT描IM述[2:0]
描述
000
保0留0
禁止1M00AM功能 取指周期为4个CCLK
001
取指周期为01个CCLK 部分使1能01MAM功能取指周期为5个CCLK
010
取指周期为120个CCLK 完全使1能10MAM功能取指周期为6个CCLK
011
取指周期为113个CCLK
加速级别 关闭
部分使能 完全使能
顺序执行 不预取代码 预取代码 预取代码
程序分支 不缓冲代码 缓冲代码 缓冲代码
数据 不缓冲数据 缓冲但时序固定 缓冲数据
功耗 低 中 高
可预测性 高 中 低
4.5 存储器加速模块(MAM)
• MAM的配置
在复位后,MAM默认为禁止状态。软件可以随 时将存储器访问加速打开或关闭。通常我们都会把 加速设置为完全使能,这可使程序以最高速度运行。 而运行某些要求更精确定时的代码时,我们可以关 闭或部分使能MAM,以较慢但可预测的速度运行代 码。
LPC2000系列ARM硬件结构
➢ 1.LPC2000系列简介 ➢ 9.向量中断控制器
➢ 2.引脚描述
➢ 10.外部中断输入
➢ 3.存储器寻址
➢ 11.定时器0和定时器1
➢ 4.系统控制模块
➢ 5.存储器加速模块 (MAM)
➢ 12.SPI接口 ➢ 13.I2C接口 ➢ 14.UART(0、1)
➢
6.外部存储器控制器 (EMC)
4.5 存储器加速模块(MAM)
• MAM与Flash编程
Flash编程功能不受存储器加速器模块的控制, 而是作为一个独立的功能进行处理。Flash存储器的 布线使其每个扇区同时存在于两个组当中,这样扇 区擦除操作可同时对两个组执行。
4.5 存储器加速模块(MAM)
• MAM的操作模式
LPC2000系列芯片允许用户设置MAM的加速级 别,使芯片适用于某些对功耗和可预测性有要求的 场合。MAM定义了三种操作模式:
1保11留
取指周期为7个CCLK
当访问周期设置为1个CCLk时,实际上关闭了MAM,但是仍可
以选控MM制AA择M寄MTM存CIRM器AM模式对功耗进行优化。—7—7:—:3—2
21: :00 取指模周式期控控制制
注意:不正确的设定会导致器件的错误操作
4.5 存储器加速模块(MAM)
• MAM使用注意事项
4.5 存储器加速模块(MAM)
• 寄存器描述
MAM控定制时寄存器(MAMTCIRM):):
MM样AA可MM以CT调IRM[整1[:20M:]0:A]:M用时决于序定M使使AM其用的匹多模配少式处个控理CC制器LK,操周具作期体频访关率问系,F如l具as下体h存表关储。系器如,下这表。
MAMTIM[2:0]
• 程序顺序执行
每个128位值包括了4个32位ARM指令或8个16 位Thumb指令。
在连续执行代码时,通常一个Flash组包含当前 正在取指的指令和包含该指令的整个Flash行,而另 一个Flash组则包含或正在预取指下一个连续的代码 行。
4.5 存储器加速模块(MAM)
• 程序出现分支
在预取指缓存区中保存着将要执行的指令,在