虚拟存储器程序的执行过程
CPU使用续存时,由辅存硬件找出虚地址与实地址之间的对应关系,并判断这个虚地址对应的存储单元是否已装入主存。若已在主存中,则通过地址转换,CPU可直接访问主存指示的实际单元;若不在主存中,则把包含这个字的一页或一段调入主存后再由CPU访问。若主存已满,则采用替换算法置换主存的一页或一段。
快表
通常采用全相联或组相联方式,每个TLB项由页表表项内容加上一个TLB标记字段组成,TLB标记用来表示该表项曲子页表中的哪个虚页号对应的页表项,所以TLB标记的内容在全相联方式下表示该页表项对应的虚页号;组相联方式下表示对应虚页号的高位部分,虚页号的低位部分用于选择TLB组的组索引。
虚拟存储器与Cache的比较
共同点:
1)均是为了提高系统性能,二者都有容量、速度、价格的梯度;
2)均把数据划分为小信息块,并作为基本得传递单元,虚存系统的信息块更大;
3)都有地址的映射、替换算法、更新策略等问题;
4)依据程序的局部性原理,将活跃的数据放在相对高速的部件中。
不同点:
1)Cache主要解决系统速度,虚存为了解决主存容量;
2)Cache由硬件实现,是硬件存储器,对所有程序员透明;而虚拟存储器由OS和硬件共同实现,是逻辑上的存储器,对系统程序员不透明,对应用程序员透明;
3)虚拟存储器系统不命中时对系统性能影响更大;
4)CPU与Cache和主存都建立了直接访问的通路,辅存与CPU无直接通路
常见指令寻址方式的特点及适用情况:
1)立即寻址:操作数获取便捷,通常用于给寄存器赋初值。
2)直接寻址:相对于立即寻址,缩短了指令长度。
3)间接寻址:扩大了寻址范围,便于编制程序,易于完成子程序返回。
4)寄存器寻址:指令字较短,指令执行速度较快。
5)寄存器间接寻址:扩大了寻址范围。
6)基址寻址:扩大了操作数寻址范围,适用于多道程序设计,常用于为程序或数据分配存储空间。
7)变址寻址:主要用于处理数组问题,适合编制循环程序。
8)相对寻址:用于控制程序的执行顺序、转移等。
CISC与RISC特点
CISC的主要特点:
1)指令系统复杂庞大,指令数量一般大于200+;
2)指令的长度不固定,指令格式多,寻址方式多;
3)可以放村的指令不受限制;
4)各种指令的使用频度相差很大;
5)各种指令执行时间相差很大,大多数指令需要多个时钟周期才能完成;
6)控制器大多数采用微程序控制,有些指令非常复杂,难以采用硬连线控制;
7)难以用优化编译生成高效的目标代码程序。
RISC的主要特点:
1)选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现;
2)指令长度固定,指令格式种类少,寻址方式种类少;
3)只有Load/Store指令访存,其余指令的操作都在寄存器之间进行;
4)CPU中通用寄存器的数量相当多;
5)RISC采用指令流水线技术,大部分指令在一个时钟周期内完成;
6)以硬布线控制为主,不用或少用微程序控制;
7)重视编译优化工作,减少程序执行时间。