·MAM结构 Flash中除了存储指令之外,还 可用来存储不修改或者很少修 改的数据,所以在MAM模块中 设计有数据缓冲区。数据缓存 区可以提高顺序读取数据的操 Flash Flash 作速度。但是对随机读取操作 存储器组0 存储器组1 几乎没有加速效果。 ARM局部总线 总线 预取指缓存 预取指缓存 Flash编程由另一个独立的模块 接口 分支跟踪缓存 分支跟踪缓存 完成,Flash在进行编程操作时 2X128位 2×128位 禁止访问。在编程操作结束后, 数据缓存国 缓存区的数据将自动失效,可 选择 以避免读取到无效的数据
分支跟踪缓存 分支跟踪缓存 • MAM结构 总线 接口 Flash 存储器组0 Flash 存储器组1 预取指缓存 预取指缓存 数据缓存区 ARM局部总线 2×128位 2×128位 ▪Flash中除了存储指令之外,还 可用来存储不修改或者很少修 改的数据,所以在MAM模块中 设计有数据缓冲区。数据缓存 区可以提高顺序读取数据的操 作速度。但是对随机读取操作 几乎没有加速效果。 数据缓存区 ▪Flash编程由另一个独立的模块 完成,Flash在进行编程操作时 禁止访问。在编程操作结束后, 缓存区的数据将自动失效,可 以避免读取到无效的数据。 选择
5.5存储器加速模块(MAM) ·存储器加速模块寄存器描述 MAM控制寄存器(MAMCR): 位 7 6 5 4 3 2 [1:0] 功能 模式控制 MAMCR[1:O]:用于MAM的模式控制,具体关系如下表。 MAMCR[1:0] 描述 00 禁止MAM功能 01 部分使能MAM功能 10 完全使能MAM功能 11 保留
5.5 存储器加速模块(MAM) • 存储器加速模块寄存器描述 MAM控制寄存器(MAMCR): MAMCR[1:0]:用于MAM的模式控制,具体关系如下表。 位 7 6 5 4 3 2 [1 : 0] 功能 - - - - - - 模式控制 MAMCR[1:0] 描述 00 禁止MAM功能 01 部分使能MAM功能 10 完全使能MAM功能 11 保留
5.5存储器加速模块(MAM) ·存储器加速模块寄存器描述 MAM定时寺存器(AAMTIM): 位 7 6 5 4 3 [2:0] 功能 取指周期控制 MAMTIM[2:O]:决定使用多少个CCLK周期访问Flash存储器,这样 可以调整MAM时序使其匹配处理器操作频率,具体关系如下表。 MATIM[2:0] 描述 MATIM[2:0] 描述 000 保留 100 取指周期为4个CCLK 001 取指周期为1个CCLK 101 取指周期为5个CCLK 010 取指周期为2个CCLK 110 取指周期为6个CCLK 011 取指周期为3个CCLK 111 取指周期为7个CCLK
5.5 存储器加速模块(MAM) • 存储器加速模块寄存器描述 MAM定时寄存器(MAMTIM): MAMTIM[2:0]:决定使用多少个CCLK周期访问Flash存储器,这样 可以调整MAM时序使其匹配处理器操作频率,具体关系如下表。 位 7 6 5 4 3 [2 : 0] 功能 - - - - - 取指周期控制 MATIM[2:0] 描述 MATIM[2:0] 描述 000 保留 100 取指周期为4个CCLK 001 取指周期为1个CCLK 101 取指周期为5个CCLK 010 取指周期为2个CCLK 110 取指周期为6个CCLK 011 取指周期为3个CCLK 111 取指周期为7个CCLK
5.5存储器加速模块(MAM) ·存储器加速模块寄存器描述 MAM定时寺存器(MAMTIM): 当访问周期设置为1个CCLk时,实际上关闭了MAM,但是仍可以选择 MAM模式对功耗进行优化。 注意:不正确的设定会导致器件的错误操作 MATIM[2:0] 描述 MATIM[2:0] 描述 000 保留 100 取指周期为4个CCLK 001 取指周期为1个CCLK 101 取指周期为5个CCLK 010 取指周期为2个CCLK 110 取指周期为6个CCLK 011 取指周期为3个CCLK 111 取指周期为7个CCLK
5.5 存储器加速模块(MAM) • 存储器加速模块寄存器描述 MAM定时寄存器(MAMTIM): MATIM[2:0] 描述 MATIM[2:0] 描述 000 保留 100 取指周期为4个CCLK 001 取指周期为1个CCLK 101 取指周期为5个CCLK 010 取指周期为2个CCLK 110 取指周期为6个CCLK 011 取指周期为3个CCLK 111 取指周期为7个CCLK 当访问周期设置为1个CCLk时,实际上关闭了MAM,但是仍可以选择 MAM模式对功耗进行优化。 注意:不正确的设定会导致器件的错误操作
5.5存储器加速模块(MAM) ·MAM使用要点 >当改变MAM定时值时,必须先将MAMCR设置 为O关闭MAM,然后将新值写入MAMTIM。最后 将需要的操作模式的对应值(1或2)写入MAMCR, 再次打开MAM; >对于低于20MHz的条统时钟,MAMTIM.设定为 001,将Flash访问时间设定为1CCLK;对于20MHz 到40MHz之间的系统时钟,建议将Flash访问时间 设定为2CCLK;高于40MHz的系统时钟,建议使 用3CCLK
5.5 存储器加速模块(MAM) • MAM使用要点 ➢当改变MAM定时值时,必须先将MAMCR设置 为0关闭MAM,然后将新值写入MAMTIM。最后 将需要的操作模式的对应值(1或2)写入MAMCR, 再次打开MAM; ➢对于低于20MHz的系统时钟,MAMTIM设定为 001,将Flash访问时间设定为1CCLK ;对于20MHz 到40MHz之间的系统时钟,建议将Flash访问时间 设定为2CCLK;高于40MHz的系统时钟,建议使 用3CCLK