zoukankan      html  css  js  c++  java
  • 【计算机基础】二.组成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把最近使用的缓存 放到双向链表头结点,尾节点为最近最少使用的,容量已满时删除尾节点

  • 相关阅读:
    第十二章 圆周率的计算问题分析
    第十一章:random库概述
    【模板】分治 FFT
    [PKUWC2018]Slay the Spire
    [PKUWC2018]随机算法
    [PKUWC2018]Minimax
    线段树合并初探
    平衡树初探
    Luogu P1613 跑路 题解报告
    CH138 兔子和兔子 题解报告
  • 原文地址:https://www.cnblogs.com/shinyrou/p/13467139.html
Copyright © 2011-2022 走看看