0

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

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

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

什么样的数据结构对这类问题有效?

谢谢

4

1 回答 1

0

您是否看过常见的多核(2-12 核)CPU 是如何解决这个问题的?

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

换句话说——您能否量化现有解决方案的问题所在,该解决方案正在运行,并且一直在使用核心数 <= 12 的普通 CPU?

如果你知道——那么答案比你想象的更接近,因为它只需要了解 AMD/Intel 如何在较小的范围内解决问题——以及使他们的解决方案在更大的范围内工作需要什么(也许更多的内存用于表,算法调整等)

查看 AMD/Intel 的数据结构——然后使用这些数据结构为 1,000 多个内核构建一个软件模拟器,看看你的模拟在哪里/何时/为什么以及如何失败——如果它失败了……

理想情况下,使用用户可选择的内核数量构建您的模拟器,然后使用不同数量的内核进行 TEST、TEST、TEST 测试——逐步上升,注意沿途的瓶颈。

您的模拟器应该与 AMD(如果您使用 AMD 数据结构)或 Intel(如果您使用 Intel 数据结构)一样工作——与他们的芯片之一具有相同的核心数......因为它应该证明他们(AMD / Intel)正在正确地做他们正在做的事情(因为他们是),并且因为这将有助于证明您的模拟程序正在正确地进行模拟 - 在特定数量的内核上。

祝你好运!

于 2011-08-12T02:24:21.510 回答