Cache安全的内存分配--cacheDmaMalloc(转贴)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Cache安全的内存分配--cacheDmaMalloc(转贴)

VxWorks中实现了MMU(前提是CPU要支持MMU),内存管理页灵活了很多,未能针对所有MMU属性代码一一查看,但Cache安全的内存分配是最为常见实用的。VxWorks中用cacheDmaMalloc来分配cache安全的内存,也就是不存在cache一致性问题的内存,这些内存对于DMA设备和驱动常常使用。而malloc分配的内存就是具有cache功能的,也就存在cache一致性的问题了,因此malloc分配的内存在DMA和驱动设备中使用有很大隐患。是否需要使用cache安全的内存,就得看应用场合了。 cacheDmaMalloc的实现机制使用CPU支持的MMU页表转换功能,就是设定物理页属性,将该页的属性设定不可cache,就可以实现分配cache安全的内存了。不使用cache功能,性能上自然有些差距,而且该函数是以页大小为单位分配的,因此分配小量内存是会浪费相当的内存空间的,使用时需要注意

引用地址 http://blog.sina.com.cn/s/blog_3e56da070100r2mi.html

转载于:https://my.oschina.net/u/565524/blog/879843

你可能感兴趣的:(Cache安全的内存分配--cacheDmaMalloc(转贴))