超标量处理器设计——第三章_虚拟存储器

本文详细介绍了虚拟存储器的地址转换机制,包括单级和多级页表的工作原理,以及PageFault的处理。讨论了TLB在提高效率方面的作用,分析了不同类型的TLB设计及其管理。此外,还探讨了Cache的设计,包括VirtualCache的同义和同名问题及其解决方案。内容涵盖了程序保护、TLB和Cache在流水线中的集成,以及访问存储器的各种情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


超标量处理器设计——第三章_虚拟存储器

参考《超标量处理器》姚永斌著

3.2 地址转换

  • 分页机制, 虚拟地址划分以为单位(page),典型大小为4KB
  • 物理地址也有页,与虚拟地址的页大小相同,但是称为frame
  • 虚拟地址: VA ; 物理地址:PA
  • VA由两部分组成:
    1. VPN(Virtual Page Number), 用来索引虚拟页
    2. Page offset, 页内偏移,对于4KB的页来说偏移需要12位
  • PA也由两部分组成:
    1. PFN(Physical Frame Number), 用来索引物理页
    2. Page offset, 物理页内偏移,一般与虚拟地址的offset相同
  • MMU负责VA到PA的转换

3.2.1 单级页表

  • 当处理器只需要的页不在物理内存中,就发生了Page Fault; 处理该异常需要ms级别,需要尽量避免
  • 页表(Page Table,PT)用来存储VA到PA的映射关系。这样VA的一个页就可以放在物理地址的任意一个帧上了
  • 页表放在物理内存中,每个进程都有自己的页表
  • 页表寄存器(Page Table Register,PTR)用来索引页表
  • PTR和VA寻址页的过程如下:
  • 单级页表中,VPN只有20位,也就是说一个页表的表项数就是2^20也就是1M, 每个表项存储的是PFN,也就是18bit,但是物理内存数据位宽是32bit,所以剩下的14bit就可以用来存有效位,页读写属性等
  • 因此单级页表大小为1M*4B=4MB大小,显然是很庞大的,如果每个进程都有一个4MB的页表,那…
  • 单级页表访问内存(两次访问物理内存):
    1. 根据PTR定位物理内存中的页表
    2. 根据VPN访问页表中的PFN
    3. 根据PFN访问物理内存

3.2.2 多级页表

  • 单级的页表一张就要4MB的巨大空间,而且还要是连续的
  • 多级页表将单级页表进行进一步划分, 从而实现更小的子页, 也不需要巨大的连续的地址空间
  • 下面是一个多级页表的案例:
  • 用PTR索引到第一级页表在物理内存中的位置
  • 用VA的p1部分寻址第一级页表中的PFN, 根据一级页表PFN寻址第二级页表
  • 用VA的p2部分寻址第二级页表中的PFN, 根据二级页表PFN寻址最终的页
  • 操作系统动态地创建一二级页表: 当p1发生变化时, 会创建新的二级页表, p2变化时则不会创建新的页表
  • 一个一级和二级页表都有2^10个表项, 因为物理内存是32位, 所以大小均为4KB, 正好可以放进物理内存的一个页内
  • 一级页表4KB大小一般是不可避免的, 而二级页表则是根据需求逐步创建的, 操作系统会尽量让虚拟地址集中, 减少二级页表的开辟
  • 易于扩展, 当处理器增加到64位, 可以通过增加级数来减少页表的占用:
  • 虚拟内存的优点:
    1. 让每个进程都能独占地址空间
    2. 方便管理物理内存, 可以将连续的虚拟地址映射到不连续的物理地址, 从而减小物理内存的碎片
    3. 为所有进程分配的总物理内存之和可以大于实际的物理内存大小, 因为有些页可能存在磁盘的swap区
    4. 可以实现管理每个页的访问权限

3.2.3 Page Fault

  • 一个进程的虚拟地址访问页表时, 发现对应的PTE有效位为0, 表示这个页还没有放到物理
超标量处理器设计》讲述超标量(SuperScalar)处理器设计,现代的高性能处理器都采用了超标量结构,大至服务器和高性能PC的处理器,小至平板电脑和智能手机的处理器,无一例外。《超标量处理器设计》以超标量处理器的流水线为主线展开内容介绍。《超标量处理器设计》主要内容包括超标量处理器的背景知识、流水线、顺序执行和乱序执行两种方式的特点;Cache的一般性原理、提高Cache性能的方法以及超标量处理器中的Cache,尤其是多端口的Cache;虚拟存储器的基础知识、页表、TLB和Cache加入流水线后的工作流程;分支预测的一般性原理、在超标量处理器中使用分支预测时遇到的问题和解决方法以及如何在分支预测失败时对处理器的状态进行恢复;一般的RISC指令集体系的简单介绍;指令解码的过程,尤其是超标量处理器中的指令解码;寄存器重命名的一般性原理、重命名的方式、超标量处理器中使用寄存器重命名时遇到的问题和解决方法以及如何对寄存器重命名的过程实现状态恢复;指令的分发(Dispatch)和发射(Issue)、发射过程中的流水线、选择电路和唤醒电路的实现过程;处理器中使用的基本运算单元、旁路网络、Cluster结构以及如何对Load/Store指令的执行过程进行加速;重排序缓存(ROB)、处理器状态的管理以及超标量处理器中对异常的处理过程;经典的Alpha21264处理器的介绍。在本书中使用了一些现实世界的超标量处理器作为例子,以便于读者加深对超标量处理器的理解和认识。 《超标量处理器设计》可用作高等院校电子及计算机专业研究生和高年级本科生教材,也可供自学者阅读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

love小酒窝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值