首页 > 解决方案 > 如何从虚拟内存中加载内存?

问题描述

我知道操作系统通常会将Page Tables一块虚拟内存映射到一块物理内存。

我的问题是,CPU 在加载给定字节时会加载整个块吗?

假设我有: ld %r0, 0x4(%r1)

假设我的页面大小是4 KB,CPU 是一次加载所有 4KB 还是设法在给定偏移量的情况下仅加载一个字节?

page size硬件强制还是软件和操作系统可配置?

编辑:

认为这page size是硬件要求的:

可用的页面大小取决于指令集架构、处理器类型和操作(寻址)模式。操作系统从架构支持的大小中选择一种或多种大小

标签: memorymemory-managementpaging

解决方案


您的问题涉及许多级别的 cpu/内存架构......不知道您想到的确切 cpu 架构/内存架构/版本:虽然 cpu-command 仅针对一个字节,但它会触发内存控制器找到整个物理页面并将那个(至少,预取可能启动)完全加载到二级/一级缓存。您的数据在填充缓存后传输。


推荐阅读