页表之外的虚拟内存

时间:2011-03-23 22:18:19

标签: permissions operating-system virtual-memory

我正在开展一项研究项目,为多核(1000+)芯片开发操作系统。我们正在研究为内存权限(读/写/执行)实现虚拟内存类型系统,以允许内核在内核之间安全共享。

基本上我们想要一个允许我们将“页面”标记为可被另一个可写的核心子集读取的系统......等等。我们不打算进行地址转换(至少在这一点上),但我们需要一种有效设置和查询权限的方法。它将是一个软件填充的数据结构,具有简单的TLB样式缓存。

我们的直觉是,简单地为每个核心复制页面表将太昂贵(就内存使用而言)。

哪种数据结构对这类问题有效?

感谢

1 个答案:

答案 0 :(得分:0)

您是否了解了多核(2-12核)CPU如何解决此问题?

您知道在这些常见的多核CPU中使用的解决方案的位置/时间/原因/方式 - 不会扩展到1,000多个核心吗?

换句话说 - 您能否量化现有解决方案的错误,该解决方案正在运行,并且一直在工作,其核心数量<= 12?

如果您知道 - 那么答案比您想象的更接近,因为它只需要了解AMD /英特尔如何在较小规模上解决问题 - 以及使他们的解决方案在更大的问题上工作所需的条件(也许更多内存用于表格,算法调整等。)

了解AMD /英特尔的数据结构 - 然后使用这些数据结构为1,000多个核心构建一个软件模拟器,并查看模拟失败的地点/时间/原因和方式 - 如果失败......

理想情况下,使用用户可选择的核心数构建您的模拟器,然后使用不同数量的核心进行测试,测试,测试 - 一路向上,注意沿途的瓶颈。

您的模拟器应该与AMD(如果您使用的是AMD数据结构)或英特尔(如果您使用的是英特尔数据结构)一样正常工作 - 与其中一个芯片的核心数量相同...因为它应该证明他们(AMD /英特尔)正在做他们正在做的事情(因为他们是),因为这将有助于证明你的模拟程序正确地模拟了它 - 在特定数量的核心。

祝你好运!