Caching 页面大小和块大小

Caching 页面大小和块大小,caching,virtual-memory,Caching,Virtual Memory,我们都知道,在从虚拟地址到物理地址的地址转换中,较低的位用作页偏移量,因此它们不会被转换。相反,它们保持不变。这意味着虚拟内存中的页面大小与物理内存中的页面大小相同 我们还知道,当使用模方法将块从内存移动到缓存中时,两侧块的大小是相同的 我的问题是,这是否意味着虚拟内存中的页面大小应该与缓存中的块大小相同。否,缓存线是一种大小(例如:16、32或64字节),虚拟页面是另一种独立大小(通常为4K) 将整个4K页面读取到缓存中会太慢,并使缓存在大多数使用情况下无效,因此CPU使用较小的缓存线。为什么

我们都知道,在从虚拟地址到物理地址的地址转换中,较低的位用作页偏移量,因此它们不会被转换。相反,它们保持不变。这意味着虚拟内存中的页面大小与物理内存中的页面大小相同

我们还知道,当使用模方法将块从内存移动到缓存中时,两侧块的大小是相同的


我的问题是,这是否意味着虚拟内存中的页面大小应该与缓存中的块大小相同。

否,缓存线是一种大小(例如:16、32或64字节),虚拟页面是另一种独立大小(通常为4K)


将整个4K页面读取到缓存中会太慢,并使缓存在大多数使用情况下无效,因此CPU使用较小的缓存线。

为什么需要时将4K从磁盘移动到内存,而缓存中需要的所有大小都是64字节。我不明白如何处理我没有使用的其余4k。因为你只能将整个页面标记为可访问或不可访问。页面大得多的原因是较小页面所需的页面表的大小。映射4GB的4KB页面需要4MB以上的内存,如果页面为64字节,则在32位CPU上映射整个4GB的ram需要256MB以上的页面表。从HDD读取1个扇区的开销也很高,而读取多个连续扇区的开销在第一个扇区之后要低得多,这使得一次读取(比如说)4KB非常有效。如果我的块大小是128MB,而我想读取64KB的页面,该怎么办?这有意义吗?