《计算机存储与外设》 1Cache存储器与虚拟存储器
初读这本书,是2020年3,4月吧,以前学的大多数处理器,balabala的,虽然也有介绍储存器的,但总是不是很详细,主要还是关注cpu等计算部件或者总线等事物,就如同这本书中所写,人们往往可以很清楚的描述Intel处理器与AMD处理器的区别,但是对各种存储器却总是不甚熟悉。
寄存器是以与CPU相同的方法制备的,与CPU的时钟频率相同,且与CPU其他部分之间的数据通路都较短,此外,片上寄存器可以直接被CPU访问,而访问其他外部存储器都需要通过一个过程,包括存储器管理,地址翻译以及复杂的数据缓冲和控制机制。
Cache相当于位于内存和寄存器之间的缓冲区,这是实际存在的,硬件,计算机管理;而虚拟存储相当于内存和硬件之间的缓存机制,这并不实际存在,由操作系统管理。

Cache大家都比较熟悉,主要利用了访问的局部性原理(时间局部性与空间局部性)。

几种降低Cache失效率的方法
1.代码层面,编写具有良好局部性的代码
2.取指策略:如按需获取,预取,选择性获取。
按需获取在失效后调入所需块,这是一种最简单的选择。
预取策略预测未来的Cache需求(例如,如果没有缓冲块i+1,但访问块i时也调入第i+1块)。实现预取算法有许多可能的方法,如选择性获取策略在主存储器的部分内容不能被缓存的情况下使用。例如,在多处理器系统之中,由多个处理器共享的部分不应该被缓存,如果这些数据被缓存而处理器修改了存储器中的拷贝,Cache和存储器中的数据将不再保持一致。
3.多级Cache
虚拟存储器和存储器管理
这些概念在《深入理解计算机系统》和《操作系统》之中已有较为完备的介绍,在此只列下大概。
存储器管理是操作系统和硬件的切合点,它关注的是管理主存储器和磁盘,可以认为它是一种拓展的Cache技术。
虚拟存储空间是逻辑地址空间的同义词,编写程序中,我们不用考虑实际的物理地址,而是认为地址都是从0开始的即可,且可以编写超过主存的软件,给用户一个无穷大空间的错觉,这些是由操作系统帮助完成的。

处理器逻辑地址空间的大小与指定操作数的寻址方式无关。他也与程序是使用高级语言,汇编语言还是机器代码无关。在32位系统中,处理器不能指定4GB以外的逻辑地址。操作系统32位主要是指其寄存器的位数。
物理地址空间由处理器使用存储器系统中所有的实际地址位置构成。该存储器不是抽象的,是真正实现的。换句话说,系统的主存储器构成的物理地址空间。计算机逻辑地址空间的大小由指定地址所需得到位数决定,而物理地址空间的大小通常只受其成本限制。
存储器管理系统的基本目的如下:

虚拟存储器主要满足(1)(2)需求
其主要有4个作用:支持比物理空间更大的逻辑存储空间,实现逻辑地址到物理地址的映射,为逻辑地址空间中运行的任务分配物理存储器,更加方便的建立多任务的系统。
1.存储器管理与多任务

存储器管理单元将程序员选择的逻辑地址映射到物理存储空间,而操作系统负责建立逻辑空间到物理地址的映射表。存储器映射的一个强大功能是,每个逻辑存储快可被赋予各种权限。例如,存储器可以是只读、只写、只能通过操作系统或给定的任务访问或在一组任务之间共享。通过确保物理存储器只能被预先定义的任务访问,可以确保一个任务的执行不会导致另一个任务崩溃。有两种实现存储器管理的基本方式。使用固定大小的存储块,称为页,另一种使用可变大小的存储快,称为段
2.地址翻译
存储器管理提供了两种不同的服务。第一种是将逻辑地址映射到可用的物理存储器之中,第二种功能发生在物理地址耗尽之时,由于数据不在内存之中,逻辑地址到物理地址的映射不能完成。

3.二级表
由于现在的内存很大,如果只使用1级页表,将会导致巨大的页表,所以引入了2级页表,使用多级页表实现地址转换可以避免使用大容量的页表。
下面是一个二级页表示意图

《计算机存储与外设》 1Cache存储器与虚拟存储器的更多相关文章
- 计算机存储负数以及int转byte时-128的出现
我们看下面这段代码 输出的结果的是128,这个没什么疑问 但是当我们不改变数值仅仅加了一个强制转换后 这时我们会发现结果会变成负的128.这时候我们就要怀疑了,为什么会出现这样的结果呢? 对于这个问题 ...
- 计算机存储单位KB,MB,GB,TB,PB,EB,ZB,YB后面是什么?
关于计算机存储单位KB,MB,GB,TB,PB,EB,ZB,YB后面是什么? 我们知道Kb是1000的1次方,所以 MB就是1000的2次方(106) GB就是1000的3次方(109) TB就是10 ...
- 【转】ESXi主机出现“主机上的系统日志存储在非持久存储器中”解决办法
原址:https://blog.csdn.net/mooncarp/article/details/50923483 当ESXi主机的底层操作系统安装在SD卡上时,在vCenter中配置该主机时,如果 ...
- Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余 ...
- 小老板,我学的计算机组成原理告诉我半导体存储器都是断电后丢失的,为什么U盘SSD(固态硬盘)没事呢?
什么是闪存: 快闪存储器(英语:flash memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器 存储原理 要讲解闪存的存储原理,还是要从EPROM和EEPROM ...
- 基础知识:语言、编程、计算机组成、cpu、存储器
2019年3月18日一. 语言:一种事物与另外一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 编程:把要让计算机做的事用一种编程语言表达出来. ...
- STM32—DMA存储器到外设
DMA目录 DMA简介 DMA框图 DMA传输数据分析 1.传输的方向 2.传输的数量 3.传输的模式 代码部分 DMA初始化结构体 USART配置函数 DMA配置函数 主函数 DMA简介 DMA(D ...
- Linux学习-计算机基础
Linux 学习-计算机基础 一.描述计算机的组成及其功能. 计算机系统是由硬件(Hardware)和软件(Software )两部分组成. 硬件: 从硬件基本结构上来讲,计算机是由运算器.控制器.存 ...
- 『Linux基础 - 1』计算机基础概念
这篇笔记的知识点结构目录: 认识计算机: (1)什么是计算机; (2)计算机的发展过程 计算机的构成: (1) 计算机硬件系统; (2) 计算机软件系统 二进制: (1) 为什么用二进制 (2) 二进 ...
随机推荐
- Linux系统中到底应该怎么理解系统的平均负载
02 | 基础篇:到底应该怎么理解“平均负载”? 每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况.比如像下面这样,我在命令行里输入了 upt ...
- java 面向对象(一):类与对象
1.面向对象学习的三条主线: * 1.Java类及类的成员:属性.方法.构造器:代码块.内部类 * * 2.面向对象的大特征:封装性.继承性.多态性.(抽象性) * * 3.其它关键字:this.su ...
- nginx配置使用, 入门到实践
1. 本文做自己学习配置使用, 转自: https://mp.weixin.qq.com/s?__biz=Mzg2MjEwMjI1Mg%3D%3D&chksm=ce0dae4df97a275b ...
- Python之堡垒机
本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...
- 数据载入、存储及文件格式知识图谱-《利用Python进行数据分析》
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片.
- Quartz.Net系列(十二):六大Calendar(Annual、Cron、Daily、Holiday、Monthly、Weekly)
Quartz.Net中为了动态排除一些时间,而使用Calendar可以做到 1.DailyCalendar 可以动态的排除一天中的某些时间段 示例:在一天当中的13:00到14:00不要执行 publ ...
- bzoj3891[Usaco2014 Dec]Piggy Back*
bzoj3891[Usaco2014 Dec]Piggy Back 题意: 给定一个N个点M条边的无向图,其中Bessie在1号点,Elsie在2号点,它们的目的地为N号点.Bessie每经过一条边需 ...
- 【学习记录】C#保存数据至CSV文档 & DateTime格式模式控制解释
数据类的定义: public class Result_Display { private string id; public string ID { get { return id; } set { ...
- CentOS 无法加载 ntfs文件系统类型解决办法
问题: CentOS无法加载ntfs 文件系统类型的移动硬盘. 解决办法: 1.下载rpmforge,下载对应的版本.(对应的CentOS版本,并区分32位和64位). 例如: wget http:/ ...
- Python Ethical Hacking - NETWORK_SCANNER(1)
NETWORK_SCANNER Discover all devices on the network. Display their IP address. Display their MAC add ...