虚拟存储器的基本概念
虚拟存储器是一个逻辑模型
功能:用户给出一个地址,叫做虚地址或逻辑地址,虚拟存储器要给出该地址对应的数据。
实现:由辅助硬件将虚地址映射到主存当中的某个单元,主存单元地址称为实地址或物理地址。
页式虚拟存储器
虚拟空间与主存空间都被划分成同样大小的页,主存的页称为实页,虚存的页称为虚页。页表基址寄存器
段式虚拟存储器
段式虚拟存储器中的段是按程序的逻辑结构划分的,各个段的长度因程序而异。
虚拟地址分为两部分:段号和段内地址。
段表:每一行记录了与某个段对应的段号、装入位、段起点和段长等信息。
由于段的长度可变,所以段表中要给出各段的起始地址与段的长度。
段页式虚拟存储器
把程序按逻辑结构分段,每段再划分为固定大小的页, 主存空间也划分为大小相等的页,
程序对主存的调入、调出仍以页为基本传送单位。 每个程序对应一个段表,每段对应一个页表
虚拟地址:段号+段内页号+页内地址
快表(TLB)
页表、段表存放在主存中,收到虚拟地址后要先访问主存,査询页表、段表,进行虚实地址转换。
放在主存中的页表称为慢表(Page)
提高变换速度→用高速绥沖存储器存放常用的页表项 → 快表(TLB)
发生取指令 Cache缺失的处理过程
1)程序计数器恢复当前指令的值。
2)对主存进行读的操作。
3)将读入的指令写入 Cache中,更改有效位和标记位。
4)重新执行当前指令。
多级Cache:现代计算机系统中,一般采用多级的 Cache系统。CPU执行指令时,先到速度最快的一级 Cache( LI Cache)中寻找指令或数据,找不到时,再到速度次快的二级Cache(L2 Cache)中找…最后到主存中找。