虚拟存储器与Cache的比较

简介: 虚拟存储器与Cache的比较

虚拟存储器程序的执行过程
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)重视编译优化工作,减少程序执行时间。

相关文章
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
47579 13
|
Ubuntu 关系型数据库 MySQL
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
255 2
|
8月前
|
人工智能 自然语言处理 测试技术
Goedel-Prover:专为自动化数学问题的形式证明生成而设计的 LLM,快速解决形式化数学问题
Goedel-Prover 是一款由普林斯顿大学和清华大学等机构联合推出的开源模型,专注于自动化数学问题的形式证明生成。它通过将自然语言数学问题翻译成形式语言(如 Lean 4),显著提升了数学问题的证明效率。
393 4
Goedel-Prover:专为自动化数学问题的形式证明生成而设计的 LLM,快速解决形式化数学问题
|
缓存 Java 数据库连接
一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
1392 1
|
数据管理 数据处理 数据库
数据库中的 ACID 属性详解
【8月更文挑战第31天】
840 0
|
存储
【OS Pintos】用户程序是如何工作的 | Pintos 运行原理 | 虚拟内存 | 页函数 | 系统调用
【OS Pintos】用户程序是如何工作的 | Pintos 运行原理 | 虚拟内存 | 页函数 | 系统调用
510 0
|
机器学习/深度学习 人工智能 自然语言处理
英伟达开源大模型对齐框架—NeMo-Aligner
【5月更文挑战第25天】英伟达开源NeMo-Aligner,一个针对大型语言模型对齐的工具包,支持RLHF、DPO等前沿技术,实现高效训练和扩展。基于Megatron-LM,利用3D并行训练和分布式PPO优化处理大规模模型。采用Apache 2.0许可,鼓励社区参与和创新。然而,硬件需求和技术门槛仍是应用挑战。[链接](https://arxiv.org/abs/2405.01481v1)
317 5
|
算法 程序员 C++
程序员必知:单链表排序(快速排序、归并排序)
程序员必知:单链表排序(快速排序、归并排序)
177 0
|
算法 搜索推荐 编译器
一文带你学透快排(快速排序C语言版)
一文带你学透快排(快速排序C语言版)
|
机器学习/深度学习 人工智能 自然语言处理
【JAVA】AI医疗导诊系统源码
智慧导诊 患者可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
291 1