DSP MMU可以将DSP外部存储空间(字节地址0x050000--0XFF7FFF或0x050000--0XFFFFFF)的任意块映射到OMAP5910的三个存储区上,块大小(1KB、4KB、64KB、1MB)可软件设置。
DSP MMU的核心结构就是32个CAM和32个RAM以及相关的几个控制、状态寄存器,其中CAM用来存放DSP的外部存储器虚拟地址及有关控制位信息;RAM用于存放OMAP5910的实际物理地址和访问允许控制位。DSP MMU使能后,当DSP访问外部存储器时,相应虚拟地址就会被送到DSP MMU处,如果虚拟地址的有效高位(当页大小为1KB、4KB、64KB、1MB时,对应的地址有效高位数分别为14、12、8、4)命中CAM,并且相应RAM中的访问允许控制位有效,那么相应RAM中的物理地址高位就和虚拟地址偏移一块儿被送到OMAP TC处,从而实现虚拟地址到物理地址的映射,然后就可以进行相关读写操作。如果虚拟地址的有效高位没有命中CAM或者相应RAM中的访问允许控制位无效,系统就会产生页错误或访问权限错误,并向ARM发起中断,在中断程序中ARM可通过查看DSP MMU有关状态寄存器来进一步了解错误原因。
DSP MMU的设置过程如下:
a. 释放 DSP MMU 的复位
b. 写 CAM_REG_H 和 CAM_REG_L 寄存器
c. 写 RAM_REG_H 和 RAM_REG_L 寄存器
d. 写 LOCk Counter 寄存器
e. 将 LD_TLB_REG 寄存器写1,装载DSP MMU参数
f.使能 DSP MMU
3.3 存储模式转换
由于在OMAP5910中对于存储系统的操作,ARM处理器采用小端模式,而DSP则采用大端模式,因此当DSP访问OMAP5910的系统存储空间时,就需要进行大小端模式之间的转换。在ARM程序中对寄存器ENDIANISM进行适当设置就可以灵活地控制DSP访问OMAP5910存储空间时的数据格式。
3.4 DSP DMA
对于通过DSP的MMU和EMIF实现双核通讯来讲,当双核间通讯的数据量比较大而DSP又比较忙的时候,利用DSP DMA来实现数据的传输可以减轻DSP CPU的负担,提高整个DSP子系统运行的效率,而不会打断DSP CPU的工作。
4 实现双核通讯的一种方案
在关于OMAP5910的工程实际中较为典型的应用,通常是由ARM控制外围器件获取一组数据后,先交给DSP进行处理,处理后的数据再返回给ARM进行存储、显示、输出等。为了实现双核之间的数据通讯的可靠性,使用邮箱寄存器来传递双核间的握手协议,当一方需要联系另一方时只需向相应的邮箱命令寄存器写入数据即可中断对方,不同的数据代表不同的信号,使得握手及时可靠。当数据量比较大而DSP或ARM任务又比较多时,相应地使用DMA来进行数据传输可以减轻处理器负担,提高程序运行的效率。实现此方案的程序示意图如下:
5 结束语
由于OMAP5910芯片具有高性能、低功耗、优化的双核结构、丰富的外围设备接口等显著优点,所以在便携式仪器领域中它的应用前景也将十分广阔。而OMAP5910中双核间通讯技术的研究对于进一步开发OMAP5910,实现复杂的操作任务,协调双核工作具有非常重要的作用,为其在便携式仪器中发挥双核优势奠定了坚实的基础。