cpu 为什么要使用虚拟地址空间与物理地址空间映射?解决了什么样的问题?

cpu 为什么要使用虚拟地址空间与物理地址空间映射?解决了什么样的问题?
  1. 方便编译器和操作系统安排程序的地址分布。
    • 程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。
  2. 方便进程之间隔离:不同进程使用的虚拟地址彼此隔离,一个进程中的代码无法更改正在由另一进程使用的物理内存。
  3. 方便OS使用你那可怜的内存。:程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB)保存到磁盘文件。数据或代码页会根据需要在物理内存与磁盘之间移动。
Cache之所以是物理地址映射,是因为它的目标是提高数据访问的速度和效率。在计算机系统中,主存储器(RAM)用于存储程序和数据,而CPU需要频繁地从主存中读取数据。然而,主存的访问速度相对较慢,与CPU的处理速度不匹配,这就导致了性能瓶颈。 为了解决这个问题,Cache作为一个介于CPU和主存之间的高速缓存层,用于存储最常用的数据和指令。当CPU需要访问数据时,它首先检查Cache中是否存在所需的数据。如果存在,就可以直接从Cache中读取,而不需要访问主存。这样可以大大加快数据访问的速度。 Cache通过物理地址映射来实现数据的存储和查找。每个Cache块都有一个唯一的物理地址与之对应,当CPU访问数据时,它会将物理地址发送给Cache进行查询。如果所需的数据在Cache中存在,就可以直接返回给CPU;如果不存在,则需要从主存中读取,并将其存储到Cache中供以后的访问使用。 与TLB(Translation Lookaside Buffer)的关系是,TLB是一种硬件缓存,用于加速虚拟地址到物理地址的转换过程。TLB中存储了虚拟地址到物理地址的映射关系。当CPU访问一个虚拟地址时,它首先查询TLB,如果找到了对应的物理地址映射,就可以直接访问物理地址;如果TLB中没有找到对应的映射关系,就需要通过页表等机制进行转换,并将结果存储到TLB中,以供以后的访问使用。 Cache和TLB都是为了加速数据访问而存在的,它们之间的关系是相互配合的。TLB加速了虚拟地址到物理地址的转换过程,而Cache则加速了对物理地址数据的实际读取过程。通过将常用的数据和指令存储在Cache中,并且通过TLB快速进行地址映射,可以大大提高计算机系统的性能和响应速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值