轉貼http://www.52rd.com/Blog/Detail_RD.Blog_syw501_21625.html
ARM920T处理器有两个功能时钟输入,分别是BCLK和FCLK,ARM920T内部由GCLK驱动,通过设置CP15寄存器1的nF位和iA位可以选择两种功能时钟输入和GCLK连接的方式。由于ARM920T是一种静态设计,可以随时停止所有时钟而不会破坏运行状态。
ARM920T处理器有三种时钟模式是:快总线模式;同步模式;异步模式
快总线模式:
GCLK选择BCLK时钟作为驱动,忽略FCLK时钟输入,即由BCLK时钟用来控制AMBAASB接口和内部arm920t处理器内核速度。
每次重启后,ARM920T都会在快总线模式下运行,这时由BCLK时钟驱动,一般快总线模式在启动代码时执行,然后由软件配置PLL产生高频的FCLK.并等PLL稳定后切换到同步或异步模式使用FCLK作为正常操作
同步模式
GCLK由BCLK时钟或者FCLK时钟驱动,但是BCLK和FCLK需要满足三个条件,一,FCLK比BCLK频率高,二,FCLK频率是BCLK的整数倍,三,无论BCLK怎么转变,FCLK频率都要高于BCLK。
BCLK用来控制AMBAASB接口,FCLK用来控制内部ARM920T处理器内核.当需要处理外部存储器时,内核或者持续用FCLK时钟驱动或者切换到BCLK时钟驱动。这和异步模式相同.
如,写缓存时GCLK连接到FCLK,非缓冲写时使用GCLK链接到BCLK上
另外,从FCLK切换到BCLK和从BCLK切换到FCLK的时间损耗是均衡的,损耗在0到内核重新同步的时钟间的一个相位之间,也就是说,从FCLK到BCLK切换时,会有从0到BCLK的的一个相位的损耗,从BCLK到FCLK有0到FCLK间的一个损耗。
异步模式
GCLK由BCLK或者FCLK驱动.FCLK和BCLK可以完全异步执行,只有一个约束:FCLK必须有比BCLK更高的频率
BCLK用来控制AMBAASB接口,FCLK用来控制内部ARM920T处理器内核.当需要处理外部存储器时,内核或者持续用FCLK驱动或者切换到BCLK驱动。
从FCLK切换到BCLK和从BCLK切换到FCLK的时间损耗是均衡的,损耗在0到重新同步时钟的一个周期之间
总结
处理器上电或重新启动时使用快总线驱动,由BCLK提供时钟
然后设置PLL使FCLK到达目标频率并稳定后通过设置CP15寄存器1来改变时钟驱动为同步驱动或者异步驱动或者同步驱动,
如果FCLK是BCLK的整数倍,采用同步模式
如果FCLK不时BCLK的整数倍,采用异步模式
无论时哪种驱动,处理器在和低速器件连接时都会降低速度,速度在FCLK和BCLK间切换运行。
沒有留言:
張貼留言