arm linux中MMU页表中的缓存属性
我想知道操作系统如何决定ARMV7和armv8中MMU页面表中页面的回写和直写属性。arm linux中MMU页表中的缓存属性,linux,arm,mmu,Linux,Arm,Mmu,我想知道操作系统如何决定ARMV7和armv8中MMU页面表中页面的回写和直写属性。 谢谢首先,您可能想了解每一个是什么 直写-数据立即写入RAM 回写-在驱逐上写入的数据 进行直写缓存(在硬件中)比进行回写更容易。由于这个原因,一些较旧的ARM CPU可能会出现问题。ARMv4/5已经完成。到ARMv7/8出现时,写回的逻辑与其他逻辑相比非常小,因此CPU/MMU同时支持这两种逻辑 还有一些内核命令行选项,如中的cachepolicy、nocache和nowb;这些仅适用于旧的ARM CP
谢谢首先,您可能想了解每一个是什么
- 直写-数据立即写入RAM
- 回写-在驱逐上写入的数据
mmap
LCD帧缓冲区可能是写入的,但更有可能是未缓存的
我想知道操作系统[linux]如何决定ARMV7和armv8中MMU页面表中页面的回写和直写属性
决定取决于内存的使用。最常见的情况是在用户空间中使用写回模式,但少数情况下可能会暴露驱动程序内存。也就是说,对于系统中仅由CPU使用的内存,写回总是最好的。只有当内存中有其他东西(如LCD DMA)时,写入路径才会更好。对于LCD DMA,您希望写入内存的内容立即显示在屏幕上。奇怪的是,写入SDRAM通常比读取(对于CPU)快。如果整个缓存都是直写的,那么缓存线永远不会变脏,缓存也会简单得多。所以在某个时候,人们确实制造了只支持一种模式的ARM硬件。无论如何,我都不是ARM64的专家。然而,这个版本似乎遵循普通的手臂版本;您的ARMv8可以在两种模式下使用。