use*_*566 5 x86 memory-management linux-kernel
我想知道是否有关于如何确定两个给定物理内存地址是否在同一存储库中的信息。我正在研究x86多核体系结构,需要在任务级别上破解内存访问性能。
在此先感谢/彭
编辑:事实证明它比我意识到的更复杂。正如 Mark Seaborn 和 plafratt 在评论中指出的那样,下图只是如何实现物理地址映射的示例。进一步阅读证实内存控制器可以通过多种不同的方式完成此映射。请阅读 Mark 的答案中链接的优秀文章以获取更多详细信息,并且为了进一步阅读,本文从程序员的角度提供了一些额外的见解。我将原来的答案留在这里,因为它提供了一个实际的例子(编辑说这只是一个例子)。
——原答案——
以下是如何映射 32 位物理地址的示例*:
位 12-0 标识 8KB 页内的字节。
位 16-13 标识系统应将 16 个内存通道中的哪一个用于该地址。
位 20-17 标识将在 16 个存储体中的哪一个中找到地址。
位 32-21 标识存储体中的哪一行被访问。

因此,如果您有两个物理地址,您应该能够比较位 17-20 以确定它们是否位于同一存储体中。
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |