·上一文章:基于ARM&Linux的嵌人式设备远程调试模块设计
·下一文章:基于ARM+Linux 2.6内核的控制系统驱动设计
可以看出,每个Layer都有一个译码器来决定Master要访问哪一个Slave,通过多路选择器实Master和Slave之间的Transfer。。每个Slave口都有自己的仲裁器,该仲裁器使用固定优先级,最高优先级的Layer可以优先访问对应的Slave。
随着系统中Master和Slave的增多,Busmatrix模块的复杂度也会明显增加,如果按照系统所有的Mas-ter和Slave的个数来确定输入/输出口的个数,Busma-trix将会非常复杂,因此对系统结构进行优化变得非常必要。根据系统工作情况可以发现,翻译模块的Slave端口仅被ARM7核访问,即向翻译模块存取指令所需的地址,控制其工作,该Slave可以看作是ARM7核私有的,而不被其他Master访问。有些Slave只有在特殊情况下才被访问,因此可以将多个Slave看作一个Slave挂在BusMatrix上。优化后的SoC硬件架构如图4所示。
4 结 语
这里给出了一种具有X86到ARM二进制翻译和执行功能的SoC系统。利用Multi-layer bus SWitch(BusMatrix)模块实现Multi-layer。总线结构,在多个核不访问同一个Slave时,可以同时执行各自功能,有效提高系统的性能,且该总线结构的可扩展性强。同时根据系统工作的特点,对总线结构进行了优化,减小了总线的复杂度。