snifer

[原创]Blackfin ADSP BF535 Cache 使用

0
阅读(13911)

上一篇我写了Blackfin ADSP BF535 Cache 的一些基础知识,小小部件,作用无穷哦,下面我写一些Blackfin ADSP BF535 Cache 的使用注意事项和方法,欢迎大家围观。

一、Blackfin ADSP BF535 cache使用注意事项: 

当引入cache机制后,同一地址的数据可能存在多个副本,分别保存在cache中、写缓冲区中以及主存中。
 
1.地址映射关系改变造成的不一致;
2.指令cache的数据一致性问题;
3.DMA造成的不一致问题;
二、 Blackfin ADSP BF535 Cache的编程接口

 与cache和写缓冲区相关的寄存器包括CP15中的寄存器C7、寄存器C9以及寄存器C1中的某些位。

 
MCR  P15, 0, <Rd>, <C1>, <CRm>, <Op2>
MCR  P15, 0, <Rd>, <C7>, <CRm>, <Op2>
MCR  P15, 0, <Rd>, <C9>, c0, <Op2>
 
MRC  P15, 0, <Rd>, <C1>, <CRm>, <Op2>
MRC  P15, 0, <Rd>, <C7>, <CRm>, <Op2>
MRC  P15, 0, <Rd>, <C9>, c0, <Op2>
三、 Blackfin ADSP BF535快速上下文切换技术
 
 Blackfin ADSP BF535快速上下文切换技术通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。
 
如果两个进程占用的虚拟地址空间有重叠,系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射,包括重建TLB ,清除cache,整个工作需要带来巨大的系统开销。而快速上下文切换技术的引入避免了这种开销。
FCSE位于 BF535CPU和MMU之间,他的责任就是将不同进程使用的相同的虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。
如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间,FCSE机构对各个进程的虚拟地址进行变换,这样系统中除了 BF535 CPU之外的部分看到的是经过上下文切换机构变换后的虚拟地址。
 差不多了,最近不忙,多写一些,谢谢大家关注。