【计算机基础】二.组成2(存储设备)
1.存储器概览
1.1存储器的分类
1.1.1按存储介质分类
- 半导体存储器 U盘、固态硬盘、内存
- 磁存储器 磁带、磁盘
1.1.2按存取方式分类
- 随机存储器(RAM) 随机读取,与位置无关
- 串行存储器 与位置有关 按顺序查找
- 只读存储器 只读不写 BIOS、手机固件
手机的8G RAM,256 GROM分别是指什么?
此处的8G RAM 即为手机的运行内存
256G ROM 即为存储容量的大小
硬盘属于RAM还是ROM?
ROM和RAM是按半导体存储器的功能分类的,也就是说是半导体存储器按照其功能可分为ROM和RAM两种类型(ROM最大特点是断电信息不丢失,RAM最大特点是断电信息丢失)
机械硬盘属于磁介质存储器,也就无从谈起是ROM和RAM了。
不过固态硬盘却是半导体存储器,并且固态硬盘一般是采用闪存(FLASH芯片)作为存储介质,所以固态硬盘主流是属于ROM类型存储器。
固态硬盘可以读取,写入为什么还是只读存储器ROM?
ROM的全称是Read Only Memory即只读存储器,但是后来随着技术的技术延伸出了很多种类的ROM,后来出现的一些ROM是可擦除的如EPROM。
电脑的硬盘如果是机械硬盘HDD的话不是ROM,它属于外部存储器。
现在的固态硬盘SSD使用的闪存技术其实是从EEPROM的基础上改进而来的,广义上来说属于ROM。
1.2存储器的层次
存储器的相关因素:
- 读写速度 5400转 7200转
- 存储容量 2T 512GB
- 价格
一般读写速度越快,容量越小,价格越高
缓存-主存层次
在CPU与主存之间层架一层速度快,容量小的高速缓存,解决主存速度不足(相对于CPU)的问题
在CPU运行过程中将需要经常访问的数据从主存存储到CPU缓存中
主存-辅存层次
主存之外增加辅助存储器 (磁盘、SD卡、U盘等),解决主存容量不足问题
2主存与辅存
计算机断电内存内数据丢失、计算机丢失磁盘数据不丢失
2.1 主存储器-内存
- RAM 通过电容存储数据,必须隔一段时间刷新一次,如果断电,数据就会丢失
主存与CPU交互
32位系统 地址总线32位 寻址范围为0-2^32 = 4GB内存 2^30 = 1GB
64位系统 地址总线64为 寻址范围0-2^64 = 2^34 GB
2.2 辅助存储器-磁盘
2.2.1 磁盘的立体结构
表面是可磁化的磁特性材料,不像电容那样依赖于通电
2.2.2 盘片的平面结构
2.2.3 磁盘的调度算法:
-
先来先服务算法 按照进程读取磁道读写需求
读取顺序: 1 4 2 3 1 5 -
最短寻道时间优先 优先去访问离磁头最近的位置
读取顺序: 4 5 3 2 1 1 -
扫描算法(电梯算法) 每次直往一个方向移动,到达尽头后才会反方向
读取顺序: 4 3 2 1 1 5 -
循环扫描算法 相对扫描算法读取只能往一个方向
读取顺序: 4 5 1 1 2 3
3.CPU高速缓存
高速缓存位于CPU与主存之间,解决CPU与主存的速度不一致问题
3.1 高速缓存的工作原理
理解高速缓存需要先熟悉主存中的相关概念
字: 存储在一个存储单元中的二进制代码组合
字块:连续的一组字
假设一个字32位
寻址: 字块——>字
字的地址包含两部分 前m为表示字块,后b为表示字在字块总的位置
假设主存有M个字块,每个字块有B个字
2^m = M
2^b = B
缓存中的结构与主存类似,也分为字块、字,容量小很多,存储的时主存中内容的复制,读取速度更快
CPU需要尽可能从缓存中取
命中率(CPU从缓存中取数据的次数的占比)、平均访问时间、
访问效率 = 缓存访问时间/平均访问时间
3.2 高速缓存的替换策略
高速缓存替换的时机:CPU需要的数据不在缓存中,先从主存取到缓存再使用
替换策略: 缓存存入新数据,替换原有的数据
随机算法
先进先出算法(FIFO): 队列的思想
最不经常使用算法(LFU):额外空间计算每个数据使用的时间,优先替换最不经常使用的字块
最近最少使用算法(LRU):优先淘汰一段时间内没有使用的字块 多种实现放方法,一般使用双向链表,将最近使用的放在链表的头节点
实现思路:
FIFO、LRU借助双向链表来实现
双向链表:head、tail、data等属性,实现弹出头结点、尾节点、删除任意节点、添加到头结点、添加到尾节点等方法
FIFO 按照缓存放入的顺序,容量已满时删除头节点,其他节点前移
LRU把最近使用的缓存 放到双向链表头结点,尾节点为最近最少使用的,容量已满时删除尾节点