物理寻址和虚拟寻址概念之间的区别

时间:2010-07-14 05:34:47

标签: memory-management cpu-architecture

这是重新提交,因为我没有收到来自superuser.com的任何回复。对不起有误。

我需要了解嵌入式系统中物理寻址和虚拟寻址概念之间的区别。

为什么在嵌入式系统中实现虚拟寻址概念?

在嵌入式系统中,具有物理寻址概念的系统的虚拟寻址有什么优势?

如何在嵌入式系统中完成虚拟寻址到物理寻址之间的映射?

请在一些简单的架构中用一些简单的例子解释上述概念。

2 个答案:

答案 0 :(得分:46)

物理寻址意味着您的程序实际上知道RAM的真实布局。当您访问地址0x8746b3的变量时,它就是存储在物理RAM芯片中的变量。

使用虚拟寻址,所有应用程序内存访问都转到页表,然后从虚拟映射到物理地址。因此每个应用程序都有自己的“私有”地址空间,没有程序可以读取或写入另一个程序的内存。这称为分割

虚拟寻址有很多好处。它通过糟糕的指针操作等保护程序不会相互崩溃。因为每个程序都有自己独特的虚拟内存集,所以没有程序可以读取另一个数据 - 这既是安全又是安全加。虚拟内存还启用分页,其中程序的物理RAM可以在不使用时存储在磁盘(或者现在是较慢的闪存)上,然后在应用程序尝试访问页面时回调。此外,由于只有一个程序可能驻留在特定的物理页面,在物理寻呼系统中,a)所有程序必须编译为加载到不同的存储器地址或b)每个程序必须使用Position - 独立代码,或c)某些程序集不能同时运行。

物理 - 虚拟映射可以在软件中完成(具有对内存陷阱的硬件支持)或在纯硬件中完成。有时甚至页表本身都在一组特殊的硬件内存上。我不知道哪个嵌入式系统做了什么,但每个桌面都有硬件TLB(Translation Lookaside Buffer,基本上是虚拟物理映射的缓存),有些现在有一些高级内存映射单元可以帮助虚拟机等。

虚拟内存的唯一缺点是增加了硬件实现的复杂性并降低了性能。

答案 1 :(得分:1)

VAX(Digital Equipment Corp的虚拟地址,成为Compaq,后来成为惠普)是虚拟嵌入式硬件系统的一个很好的例子。它是一台32位迷你电脑,有一个名为VMS或虚拟内存系统的操作系统。戴夫卡特勒是系统的主要框架之一,他后来写了很多用于Windows NT的Kernal。对于这个和其他东西,他是一个非常好的阅读。 Vax具有用于控制虚拟空间和控制操作码访问的特殊硬件,以通过硬件实现安全性......非常安全。这个系统是或者是Kernal Level的modfern日PC的祖父。我在WNT 3.51上看到的第一个BSOD我能够读取,因为它来自VMS中用于在系统不稳定时停止系统的故障转储。通过te方式查看名称VMS和WNT,您会发现VMS的alhabet中的下一个字母为WNT。这不是一个意外。也许是为了让他离开而在DEC上刺戳。

相关问题