一:存储器概述
现代计算机中多采用EPROM: enable program read only memory 可编程只读存储器
固态硬盘: solid state drives 基于闪存的固态硬盘时用固态电子存储芯片阵列支撑的硬盘,由控制单元和存储单元flash芯片组成。保留了flash长期保存信息,快速擦除与重写的特性。对传统的硬盘也具有读写速度快、低功耗的特性,缺点是家隔较高。
======================================================
二:主存储器与cpu的连接
连接原理:
(1)主存储器通过数据总线、地址总线和控制总线与cpu相连
(2)数据总线的位数与工作频率的乘机正比与数据传输速率
(3)地址总线的位数决定了可寻址的最大内存空间
(4)控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻
存储器是如何保存数据的?
存储器由存储单元构成,存储单元由存储元件构成,存储元件都连接地线,有一个电容、MOS管,以及连接控制线(红色)和数据线(绿色)
电容中保存电荷表示为1, 存储单元可存储一串二进制代码,称这段代码为存储字,一般为1B(8bit)或是字节的偶数倍。
-----------------------------------
控制总线给控制电路、地址总线、译码器输入数据
译码器根据地址总线的数据在内存中查找数据,而绿色的线连接数据总线,这样就能把数据通过数据总线传给cpu
-----------------------------------
question:32位操作系统的最大内存容量是多少?
32位OS是为针对32位的cpu设计,cpu内部的地址总线位32位
现代计算机将地址总线和数据总线集成在cpu中,故寻址能力(内存)是2的32次方,寻址是内存单元 即4GB,故内存的最大容量为4GB
现在64位的cpu已经普及,故内存容量2的64次方
控制总线传输数据给地址总线和译码器,译码器根据地址总线的数据找到对应的存储单元,通电,数据总线就会得到数据,进而传给cpu
==================================
三、 高速缓冲器
有三个问题:
回答第一个问题:
有三种映射方式
回答第二个问题
回答第三个问题:
cache如何保持和母本的一致性?
读取操作不需要考虑,只考虑写操作:
全写法:当CPU对cache写命中时,必须把数据同时写入cache和主存,
会创建一个写缓冲,cpu同时写数据到cache和缓冲中,写缓冲再将数据写入主存
写回法:修改时不立即写回主存,只有当此块被换出时才写入cache中
=================================
四、 虚拟存储器
引入原因:
一个程序(进程)包含有代码指令+数据,
所需的内存的容量是1G,在主存中很难有连续的1GB的空间,将这1GB全部放入主存中不现实
所以需要将这1GB分成很多“页面”,页面在存入到主存中,页表负责记录位置信息
可以使一个非常大的程序,拆分成页面放入主存,提高主存利用率,解决内存不足的问题
会将程序中一些常用的功能 所在的页面放入主存中
---------------
虚拟存储器和cache的比较:
相同之处:
最终目标都是为了提高系统性能,两者都有容量、速度、价格的梯度
都把数据划分为小信息块,并作为基本的传递单位,虚拟系统的信息块更大。
都有地址的映射、替换算法、更新策略等
依据程序的局部性原理应用“快速缓存的思想”,将活跃的数据放在相对高速的部件中
不同之处:
cache主要解决系统问题,而虚拟存储器确实为了解决主存容量问题
===================================
over