2011-03-23 59 views
0

我正在开发一个研究项目,为多核(1000+)芯片开发OS。我们正在考虑实现一个虚拟内存类型系统来实现内存权限(读/写/执行),这将允许跨内核安全地共享内存。超出页表的虚拟内存

基本上我们需要一个系统,使我们能够将'页面'标记为可由另一个可写的核心子集读取......等等。我们不打算做地址翻译(至少在这一点上),但我们需要一种有效设置和查询权限的方法。它将成为一个具有简单TLB风格缓存的软件填充数据结构。

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

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

感谢

+0

什么是你想要的最小页面大小? – Zimbabao 2011-03-24 05:56:27

+0

我们很可能会看相当大的页面,但在这一点上我们没有考虑,我们可能会在看1MB-32MB之间的页面可能更小,也许更大的一个确切的数字。我们也有兴趣在允许多个页面大小... – luke 2011-03-24 14:23:20

+0

一下怎么样大小的页头1K-4K设置权限为每个核心/套核(如果他们是修复)。这将简化查找和设置,应该很容易实现。 – Zimbabao 2011-03-24 15:01:10

回答

0

你有没有看到了如何共同多核(2-12核)CPU的解决这个问题?

您是否知道在这些常见的多核CPU中使用的解决方案在哪里/何时/为什么/如何 - 不会扩展到1,000+个内核?

换句话说 - 你可以量化现有的解决方案有什么问题,它正在工作,并且一直在工作,CPU核心数为< = 12?

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

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

理想情况下,用户可选数量的内核构建您的模拟器,然后使用不同数量的内核进行测试,测试和测试 - 按照您的方式工作,注意瓶颈方式。

你的模拟器应该工作完全以及AMD(如果你使用AMD的数据结构)或英特尔(如果您正在使用英特尔的数据结构) - 在相同核心数量为他们的芯片之一...因为它应该证明THEY(AMD/Intel)正在做他们正在做的事情(因为它们是),并且因为这将有助于证明您的仿真程序正在模拟正确模拟 - 在特定数量的内核上。

祝你好运!