构建基于软件的MMU和TLB

我试图破解旧的unix内核。我只想用软件实现MMU和TLB。有人可以告诉我在构建一个时使用的最佳数据结构和算法是什么。我看到很多人使用splay树,因为它很容易实现LRU。有没有更好的数据结构?在软件中将虚拟转换为物理地址的最有效方法是什么。假设其x86架构和翻译为任何基本页面表转换。     
已邀请:
你提到效率。这是你正在努力的目标吗?如果您不受任何特定目标的限制,请尝试使其正常运行。如果可以,我会做一个单级页面表,直接或完全关联。听起来你已经过了这个。 效率最高的将取决于规模 - 速度权衡以及您期望的地点类型。你有任何关键的应用程序配置文件,或者这只是搞乱尝试一些实现?在一些较新的体系结构上使用反向页表。我认为这表明有人花费大量时间研究这个问题,认为这是一个很好的方法。     

要回复问题请先登录注册