![](/img/trans.png)
[英]Virtual Address to Physical address translation in the light of the cache memory
[英]Memory Coalescing with Physical address or Virtual address?
我研究了一些有关内存合并的论文和书籍,但是,对于是否将虚拟地址的内存请求合并或将物理地址的内存请求合并仍然感到困惑。
由于存储器合并旨在减少对存储器设备的存储器访问,因此减少了等待时间。 并且该过程通常由MMU(内存管理单元)实现。 但是我没有找到明确的断言来表明它将内存请求与虚拟或物理地址合并在一起。 但是考虑到其目的,虚拟地址在转换为物理地址后可能不会相邻。 因此,我猜它是指物理地址。
有人熟悉这个领域吗? 提前致谢!!!
为了合并,这些地址必须在主内存中 本地关闭 (彼此相邻读: 1 ),因此它们必须是物理地址。
但是,在大多数体系结构中,只要不跨越页面边界2,连续的虚拟地址也是连续的物理地址。
当跨越页面边界时,不能保证物理地址是连续的,甚至不能保证硬件支持合并。
尽管每种体系结构都是唯一的,并且从某种意义上讲,对于您的问题没有通用的答案,但是内存合并是负责与内存进行通信的单元的功能。 因此,它发生的级别比MMU操作的级别低,并且对它们而言是透明的。
1不同的存储器体系结构具有“后续”或“关闭”地址的不同概念。
2在页面大小为4KiB且访问0ffeh的线程的系统中 , 0fffh , 1000h和1001h跨越了0fffh和1000h之间的页面边界,因为这两个地址属于不同的页面。 但是,无论映射如何 , 00feh , 00ffh , 0100h , 0101h始终是连续的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.