【计算机基础】二.组成2(存储设备)

1.存储器概览

1.1存储器的分类

1.1.1按存储介质分类

  • 半导体存储器 U盘、固态硬盘、内存
  • 磁存储器 磁带、磁盘

1.1.2按存取方式分类

  • 随机存储器(RAM) 随机读取,与位置无关 它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质 (内存) 断电数据丢失
  • 串行存储器 与位置有关 按顺序查找
  • 只读存储器(ROM) 以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器,特点是一次写入,反复读取 例如:BIOS、手机固件

内存外存的概念:
在计算机系统里,RAM一般用作内存,ROM一般作为固件,用来存放一些硬件的驱动程序,都属于是“内存”。
硬盘属于外存,是用来存储数据的,存储量大,但是存取速度慢,价格便宜,存储量远远大于内存,和内存互相作用,为实现虚拟内存技术提供条件,可以进行读写操作,断电后数据不会丢失。

硬盘属于RAM还是ROM?
ROM和RAM是按半导体存储器的功能分类的,也就是说是半导体存储器按照其功能可分为ROM和RAM两种类型(ROM最大特点是断电信息不丢失,RAM最大特点是断电信息丢失)
机械硬盘属于磁介质存储器,也就无从谈起是ROM和RAM了。
不过固态硬盘却是半导体存储器,并且固态硬盘一般是采用闪存(FLASH芯片)作为存储介质,所以固态硬盘主流是属于ROM类型存储器。

固态硬盘可以读取,写入为什么还是只读存储器ROM?
ROM的全称是Read Only Memory即只读存储器,但是后来随着技术的技术延伸出了很多种类的ROM,后来出现的一些ROM是可擦除的如EPROM,闪存(Flash Memory 快速擦除读写存储器 U盘)虽然不符合ROM的命名,但是由于是在ROM的技术上衍变出来的,所以延用了原来的叫法。
电脑的硬盘如果是【机械硬盘HDD】的话不是ROM,它属于外部存储器。的【固态硬盘SSD】使用的闪存技术其实是从EEPROM的基础上改进而来的,广义上来说属于ROM。

手机的8G RAM,256G ROM分别是指什么?
此处的8G RAM 即为手机的运行内存
256G ROM 即为存储容量的大小

总结:RAM和ROM都属于是内存,硬盘属于是外存
半导体存储器按照断电是否信息丢失特点分类的话,固态硬盘算是ROM。机械硬盘不属于半导体存储器
手机存储中的emmc颗粒也是用的ROM的闪存技术,所以有手机厂商就把手机的存储容量约定俗成为ROM,主要是因为继承了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把最近使用的缓存 放到双向链表头结点,尾节点为最近最少使用的,容量已满时删除尾节点。
posted @ 2020-08-09 23:40  ShinyRou  阅读(1012)  评论(0编辑  收藏  举报