Chinaunix首页 | 论坛 | 博客
  • 博客访问: 227773
  • 博文数量: 49
  • 博客积分: 2101
  • 博客等级: 大尉
  • 技术积分: 525
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-07 10:38
文章分类

全部博文(49)

文章存档

2010年(49)

我的朋友

分类: 嵌入式

2010-09-07 13:46:39

1 虚拟内存空间和物理内存空间

       所谓虚拟内存空间,是指逻辑上存在的内存空间,其大小一般是由地址总线的位数来决定的。例如,MPC8xx的地址线位宽为32bit,那么其虚拟内存空间的大小为2^32=4GBytes。虚拟内存空间的引入是因为计算机运行软件时所需的实际内存空间超过了硬件提供的物理内存空间,这时需要通过虚拟内存空间的技术来解决这个矛盾。用户实际的编程地址都是在虚拟内存空间完成的,不需要考虑实际物理内存的大小。但是,vxworks虽然支持虚拟内存,但是用户的程序大小是不允许超过物理内存的大小的。

     物理内存空间是由PPCMMU来确定的。具体就是OR/BR。我们一般确定物理内存空间从0开始。比如8m的内存sdram,我们会给出物理内存空间0x00000~0x7fffff。当然,可以放置在0x1000000~0x17fffff

       请注意虚拟内存空间、物理内存空间及物理内存大小这三个术语。

虚拟内存空间到物理内存空间有一个映射关系。在vxworks操作系统中,这个映射关系是由sysLib.c文件中的PHYS_MEM_DESC sysPhysMemDesc []数组完成的。该数组指明了系统对虚拟内存空间地址的操作是如何映射到实际物理内存空间的。一般我们使两者相等。而物理内存空间的访问就用CPU的内存管理单元来完成。例如MPC8xx中的OR/BR机制。

虚拟空间

阅读(1174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~