为什么ARM有64KB的大页面?

为什么ARM有64KB的大页面?,arm,virtual-memory,mmu,page-tables,arm7,Arm,Virtual Memory,Mmu,Page Tables,Arm7,ARM720T用户手册中提到了大小页面。由于ARM 720T要求将64KB页表条目在页表中复制16次,为什么不放置16个小页(4KB)条目来模拟64KB页条目,而不是首先使用大页?来自ARM720 TRM 大页 由64KB的内存块组成。大页面是 支持以允许映射大区域的 内存中仅使用一个条目时 TLB)。 扩展了额外的访问控制机制 到16KB的子页 主要的好处是64k条目只消耗一个TLB(MMU页面条目缓存)。TLB是64个条目,因此64*4k=256kB与64*64k=4MB;内存量的显著增加,

ARM720T用户手册中提到了大小页面。由于ARM 720T要求将64KB页表条目在页表中复制16次,为什么不放置16个小页(4KB)条目来模拟64KB页条目,而不是首先使用大页?

来自ARM720 TRM

大页 由64KB的内存块组成。大页面是 支持以允许映射大区域的 内存中仅使用一个条目时 TLB)。 扩展了额外的访问控制机制 到16KB的子页

主要的好处是64k条目只消耗一个TLB(MMU页面条目缓存)。TLB是64个条目,因此
64*4k=256kB
64*64k=4MB
;内存量的显著增加,不需要页表查找来寻址

有许多不利因素。例如,便携式操作系统(及其API)可能需要更小的页面。如果所有条目均为64k,则可能导致碎片。区段条目甚至更好,每个条目都表示一个1MB块,在TLB中有64MB的配件。通常,对于虚拟==物理映射,该部分会更好地工作


如果您知道您的系统只有4MB的可用内存,那么64k页条目可以带来更可靠的性能。即使内存较大,中断代码和数据也可以使用64k条目和TLB锁定注释,以避免页表移动。这可以产生更好的IRQ延迟。TLB是一种有限的资源,因此为中断处理程序使用4k条目可能会导致TLB的浪费。使用段条目可能会浪费内存,因为大多数中断代码都是Stackoverflow,因此该主题有许多标记。例如,、和可能也是这个问题的读者感兴趣的。