那么页表条目包含内存中的物理页地址,一些位,例如脏/有效/使用位,也许一些未使用的位是正确的?
给定一个可以是32位、64位、甚至128位的系统(当然是理论上的),如何确定每个页表项的大小?
作为后续问题,如果分页方案使用红黑基数树结构,需要多少级页表?
您可以在特定系统的手册中查找该信息。
系统的位数和您提到的大小之间没有直接关系。硬件设计人员有很大的决定余地。
页表条目必须足够长才能存储所有必要的信息。它取决于 MMU 支持的功能以及物理地址的宽度(可能与 CPU 规定的“位数”不同,与寄存器和虚拟地址的大小不同!)。例如:
关卡数量有更多的余地。我们从虚拟地址位大小(它可以小于规定的位数 - 64 位 CPU 目前少于 64 个虚拟地址位!)开始,减去页面偏移位大小(这取决于最小页面大小),然后我们得到页面索引大小 - 但如何在层之间分割它完全取决于架构设计师!