【转】ARM 时钟的三种模式

来源:互联网 发布:手机淘宝卖家推荐 编辑:程序博客网 时间:2024/06/03 18:21

来源 http://www.52rd.com/Blog/Detail_RD.Blog_syw501_21625.html

一.时钟模式
  翻译了官网上的<ARM920T(Rev1)TechnicalReferenceManual>,将其中概念部分解释下:

  首先,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间切换运行。

  二.协处理器
  ARM920T处理器可以通过外部协处理器接口支持片上协处理器的连接.并支持所有的协处理器指令.
  ARM920T有两个内部协处理器,
  1.CP14用作debug控制
  2.CP15用作存储器系统控制和测试控制.
  功能很多,主要包括控制虚拟内存,上下文切换,数据终止查询,指令终止查询,向量地址切换,读取ID,测试等功能。

  CP15处理指令
  MCR{cond}p15,opcode1,Rd,CRn,CRm{,opcode2}
  MRC{cond}p15,opcode1,Rd,CRn,CRm{,opcode2}
  协处理器CP15有15个寄存器,但是不是每个都能进行读写,并且使用不同的操作码读写出来的数据可能不同,需要对照相应的Spec来使用。

  外部协处理器(略)
  不能使用CP14,CP15两个协处理器
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_syw501_21625.html

 

原创粉丝点击