科技类网站,安徽新网讯科技发展有限公司,织梦本地网站建设教程,浙江最近爆发的传染病摘要
什么是物理地址#xff0c;什么是虚拟地址#xff1f;
如果处理器没有MMU或未启用#xff0c;CPU执行单元发出的内存地址直接传到芯片引脚上#xff0c;被内存芯片接受#xff0c;这称为物理地址#xff08;Physical Addraress#xff09; 如果处理器启用了MMU什么是虚拟地址
如果处理器没有MMU或未启用CPU执行单元发出的内存地址直接传到芯片引脚上被内存芯片接受这称为物理地址Physical Addraress 如果处理器启用了MMUCPU执行单元发出的内存地址将被MMU截获从CPU到MMU地址称为虚拟地址而MMU将这地址翻译成另一个地址发到CPU芯片的外部地址引脚上也就是将虚拟地址映射到物理地址。
通俗的理解CPU拿到的地址都是MMU给的虚拟地址通过MMU的翻译找到了内存的物理地址进而找到数据。为什么这样设计呢这得从早期cpu读取内存数据的历史开始道来。 早期CPU读取内存数据的历史
85年前计算机cpu读数据是直接从内存读数据。为什么这样设计呢
在许多年以前还是使用DOS或一些古老的操作系统时内存很小同时应用程序也很小将程序存储在内存中基本满足需要。例如早期的魂斗罗800k~1MB一般16MB的内存足够用了。 缺点随着科技发展后很多复杂的程序大小都远超内存大小了内存本身也不是想增大就增大,为了解决这个问题人民提出了虚拟存储器的方法-MMU
上述相当于处理器没有MMUCPU执行单元发出的内存地址直接传到物理地址中。 为什么有物理地址和虚拟地址-因为内存很宝贵
随着科技的发展图形界面以及一些其他更复杂的应用出现内存已经无法存储这些应用程序了。人们在想能否设计出一个程序数据堆栈的总大小可以超过内存空间的大小并正常运行的机制。例如如何让16MB的代码可以运行在4MB的机器呢
人们想出了一个虚拟存储器的方法MMUMemory Manager Unit主要是用来管理虚拟存储器物理存储器的控制线路同时也负责虚拟地址映射为物理地址以及提供硬件机制的内存访问授权、多任务多进程操作完成。比如一个16MB的程序和一个内存只有4MB的机器操作系统通过选择哪部分4MB的程序内容保存在内存与磁盘交互程序代码这样16MB的代码就可以运行在4MB的机器中了。
MMU原理利用程序具有局部性原则
MMU的设计利用了程序的一个特性。例如5000行的代码程序是全部运行吗不是的往往只有百分之一或千分之一的代码运行.该特性程序的局部代码在物理内存中运行。即程序具有局部性原则。所以某一段很小的时间段内只有很少一部分代码会被CPU执行。例如VMware虚拟机就是程序具有局部性原则让我们电脑可以跑双window苹果或Linux系统。 本学习笔记来源于哔哩哔哩4.什么是虚拟地址和物理地址_哔哩哔哩_bilibili