1.2 伟大的变革

虚拟地址的引入始于 Atlas 计算系统,以解决早期计算机内存限制问题。随着技术发展,虚拟存储技术普及,带来了多进程、虚拟内存管理和硬件层面的改进,如TLB(Translation Lookaside Buffer)的出现。然而,随着内存容量的爆炸性增长,TLB Miss Rate 成为新的挑战。为降低这一率,引入了更大页面大小的Superpage和Virtual Cache技术,但同时也带来了新的管理难题和权衡。
摘要由CSDN通过智能技术生成

虚拟地址的出现可以追朔到上世纪六十年代的Atlas计算系统[2]。在当时Atlas计算系统是一个庞然大物,但也只有96K字节的内部存储器和576K字节的磁鼓作为外部存储器。我们很难深刻体会在计算机发展的初级阶段,计算机使用者的无奈。

当时的使用者可能身兼数职,首先是一个有钱人,不然根本没有机会去购买和使用计算机;然后是一个精巧的工匠,不过打孔技术恐怕已经失传;还必须是一个科学家,需要使用计算机;最后才可能是程序员。

Atlas计算系统所提供的96KB物理地址空间很难满足程序员的需要。在当时程序员被迫显式地管理物理内存与磁鼓之间的数据交换,尽可能地利用外部存储器换入换出一些数据,以扩展物理内存地址空间。这些数据交换挫伤了程序员的编程热情。在这个大背景之下,Atlas计算系统引入了Virtual Memory,同时引入的还有分页机制。

技术的发展趋势惊人相似。在最具智慧的人解决了只有他能够解决的问题后,此后如潮水般涌入的人群爆发式地将其推至巅峰,等待下一位救世主的降临。虚拟地址出现之后迎来了这些变化。

在不到40年的时间里,虚拟存储技术遍及计算机系统的各个领域。从软件层面,多进程的引入顺理成章。与多进程相关的虚拟内存管理机制更加层出不穷,如On-Demand分配策略,COW(Copy On Write)策略等。从硬件层面,多线程处理器已被广泛接收,虚拟化技术更是软硬件层面的集大成者。这些变化已超出虚拟地址引入者的想象。这一切只是变化,或者是变化中的细节,终非变革。

虚拟地址的引入分离了程序员看到的地址和处理器使用的物理地址,设立了一个映射关系表存放虚拟地址与物理地址的映射关系,这个映射关系表也被称之为页表(Page Table)。最容易的想到的是使用主存储器存放这个映射关系表,但是没有程序能够忍受在使用虚拟地址访问一段物理空间时,首先需要从主存储器的页表中获得物理地址。

使用TLB(TranslationLookaside Buffer)作为页表的缓冲是一个不错的想法,很快实现在各类处理器中。TLB一般由多个Entry组成,不同处理器使用的Entry组成结构并不相同。下文以FreescaleE500内核为例简单介绍TLB Entry基本组成结构,如12所示。

1.2 <wbr>伟大的变革

E500

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值