簡體   English   中英

在ARM Linux中的MMU頁表中緩存屬性

[英]cache attributes in MMU page table in arm linux

我想知道操作系統如何決定在Arm v7和armv8的MMU頁表中的頁的回寫和直寫屬性之間。 謝謝

首先,您可能想了解每個是什么。 REF1 至Ref2

  • 直寫 -數據立即寫入RAM。
  • 寫回有關驅逐的數據。

通過高速緩存(在硬件中)進行寫操作 要容易。 因此,某些較舊的ARM CPU可能通過 cache進行硬編碼寫入 ARMv4 / 5可以將此作為選項 到ARMv7 / 8出現時, 回寫邏輯已經比其他邏輯小,因此CPU / MMU都支持。

mmu.c中還有一些內核命令行選項,例如cachepolicynocachenowb 這些僅適用於早期啟動 ,並且主要適用於較舊的ARM CPU,但仍可以將其用於ARMv7 / 8。

通常, WRITEBACK具有很高的價值,因為大多數系統都具有SDRAM,這為一次寫入多個條目提供了好處。 代碼通常執行讀-修改-寫周期; 可能在同一內存或結構上多次。 典型的高速緩存行很好地對應於SDRAM突發長度(無巧合)。

在某些情況下(例如帶DMA的LCD),您可能希望使用WRITETHROUGH ,因此通常這些選項是由內核分配器選擇的。 它將為非體系結構API選擇正確的屬性。

用戶空間將始終需要並獲得WRITEBACK內存。 某些mmap LCD幀緩沖區可能是WRITETHROUGH ,但更有可能是未緩存的。

我想知道os [linux]如何在Arm v7和armv8的MMU頁面表中為頁面的回寫和直寫屬性之間做出選擇。

該決定取決於存儲器的使用。 WRITEBACK模式通常在用戶空間中使用,除非少數情況下可能會暴露驅動程序內存。 即,對於僅由系統中的CPU使用的內存, WRITEBACK總是最好的。 只有在有其他東西在看內存(例如LCD DMA)時, WRITETHROUGH才會更好。 對於LCD DMA,您希望將寫入內存的內容立即顯示在屏幕上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM