当前位置: 首页 > article >正文

网络工程师 (4)存储系统

一、多级存储结构

(一)组成

  1. 寄存器

    • 寄存器是与CPU直接协调工作的高速存储器,用于加速存储器的访问速度。
    • 它通常用于存放操作数或作为地址寄存器,以加快地址转换速度。
    • 寄存器的数量有限,一般在几个到几百个之间。
  2. 高速缓存(Cache)

    • 高速缓存位于CPU和主存之间,用于存放主存中经常访问的信息。
    • 它基于程序执行的局部性原理,通过减少访问主存的次数来提高程序执行速度。
    • Cache通常由高速SRAM组成,其速度比主存高1到2个数量级。
    • Cache还分为一级Cache和二级Cache,一级Cache通常集成在CPU内部,二级Cache则可能位于CPU外部或主板上。
  3. 主存储器(主存)

    • 主存储器是计算机的主要工作存储器,用于保存进程运行时的程序和数据。
    • 它与CPU和外围设备交换的信息一般依托于主存储器地址空间。
    • 主存储器通常由DRAM(动态随机存取存储器)组成,其存储密度高且成本相对较低。
  4. 辅助存储器(辅存)

    • 辅助存储器包括磁盘(如固定磁盘和可移动磁盘)、磁带等大容量存储设备。
    • 它用于长期保存数据和程序,并在需要时将其加载到主存中。
    • 辅存的容量大且价格低,但访问速度相对较慢。

(二)优势

  1. 速度匹配

    • 通过引入寄存器和高速缓存,多级存储结构能够缩小CPU与主存之间的速度差距。
    • 寄存器直接与CPU协调工作,速度非常快;而高速缓存则基于程序执行的局部性原理,将主存中经常访问的信息存放在其中,从而减少了访问主存的次数。
  2. 容量扩展

    • 辅助存储器提供了大容量的存储空间,解决了主存容量不足的问题。
    • 通过将不常用的数据和程序保存在辅存中,并在需要时将其加载到主存中,多级存储结构能够确保计算机系统的正常运行。
  3. 成本降低

    • 多级存储结构结合了不同价格水平的存储器,从而降低了存储系统的整体成本。
    • 高速缓存和寄存器虽然成本高,但容量小;而主存和辅存则具有较大的容量和较低的成本。
  4. 灵活性

    • 多级存储结构允许计算机系统在运行时根据需要动态地分配和管理存储空间。
    • 这使得计算机系统能够灵活地应对不同的应用需求和工作负载。

(三)工作原理

  1. CPU访问存储器

    • 当CPU需要访问某个存储单元时,它首先会在寄存器中查找该单元的地址或数据。
    • 如果寄存器中没有找到所需的信息,CPU会尝试访问高速缓存。
    • 如果高速缓存中也没有找到所需的信息,CPU最终会访问主存或辅存。
  2. 存储层次间的数据交换

    • 当CPU从主存或辅存中读取数据时,它通常会将数据同时加载到高速缓存和寄存器中,以便后续快速访问。
    • 同样地,当CPU向主存或辅存写入数据时,它也会先更新高速缓存和寄存器中的相应信息。
  3. 存储管理

    • 多级存储结构需要有效的存储管理策略来确保数据的正确性和一致性。
    • 这包括地址映射、替换策略、缓存一致性等方面的管理。

二、主存

(一)概念

       主存,又称为主存储器或内存,是计算机中用于存放当前运行程序和数据的存储设备。它是CPU能够直接访问的内存,对于提高计算机的运行速度至关重要。

(二)分类

  1. 随机存取存储器(RAM)

    • RAM是最常见的主存类型,用于临时存储正在执行的程序和数据。
    • RAM的特点是读写速度快,但断电后数据会丢失。因此,RAM通常用于存放操作系统、正在运行的软件、输入和输出数据等临时信息。
    • RAM还可以进一步分为DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)。DRAM需要不断刷新电路以保持数据,而SRAM则不需要。因此,SRAM的速度更快,但价格也更高。
  2. 只读存储器(ROM)

    • ROM的特点是数据只能读出,不能写入。计算机关闭电源后,ROM内的信息仍然保存。
    • ROM通常用于存储固定的系统软件和字库等,如BIOS(基本输入输出系统)就存储在ROM中。
    • ROM还可以细分为MROM、PROM、EROM和闪存等类型。其中,闪存因其可擦写和可编程的特性,在现代计算机中被广泛应用。

(三)工作原理

  1. 地址译码电路:负责将CPU送来的地址信号翻译成对应的控制信号,以便选择特定的存储单元进行读写操作。
  2. 数据寄存器:用于存放从存储体读出或准备写入存储体的数据。数据寄存器的位数反映了存储字长。
  3. 数据总线:用于在CPU和主存之间传送数据。

(四)重要性

  1. 提高数据访问速度:主存的读写速度快,能够迅速响应CPU的读写请求,从而提高计算机的运行速度。
  2. 支持多任务处理:主存能够同时存储多个程序和数据,支持计算机进行多任务处理。
  3. 作为程序和数据的临时存放场所:主存为程序和数据的运行提供了必要的存储空间。

(五)发展趋势

       随着技术的发展,主存储器的容量不断增大,速度也在不断提升。这主要得益于半导体技术的不断进步和制造工艺的改进。未来,主存还有望采用更先进的存储材料和技术,如相变内存、忆阻器等,以进一步提高密度、速度和功耗性能。

三、Cache

(一)基本概念

       Cache位于CPU和主存之间,起到了桥梁的作用。它的主要目的是减少CPU访问主存的次数,通过存储CPU近期可能会访问的数据和指令,从而加快数据的访问速度,提高系统的整体性能。Cache通常采用静态随机访问存储器(SRAM)实现,因为其访问速度比主存中的动态随机访问存储器(DRAM)更快。

(二)工作原理

       Cache的工作原理基于局部性原理,即程序在执行过程中,往往会在一段时间内频繁访问某些特定的数据和指令。Cache会将这些数据和指令存储在自身内部,以便CPU更快地获取所需信息。当CPU需要访问数据或指令时,首先会去Cache中查找,如果找到则可以直接取出,避免了对主存的访问。如果在Cache中没有找到需要的数据,则需要从主存中获取,并将数据存储到Cache中,以备后续访问。

(三)映射关系

  1. 全相联映射:主存中的任意一块都可以被放到Cache中的任意位置。为了区分Cache中存放的是哪个主存块,需要给每个Cache块增加一个“标记”,记录对应的主存块号,还需要增加“有效位”来标记是否有效。这种映射方式的优点是Cache存储空间利用充分,命中率高;缺点是查找“标记”最慢,有可能需要对比所有行的标记。
  2. 直接映射:每个主存块只能放到Cache中的一个特定位置。这种映射方式的优点是查找速度快,因为对于任意一个地址,只需对比一个“标记”;缺点是Cache存储空间利用不充分,命中率相对较低。
  3. 组相联映射:Cache被分为若干组,每个主存块可以放到特定分组中的任意一个位置。这种映射方式是前两种方式的折中,综合效果最好。

(四)替换算法

  1. 随机算法:随机选择一个Cache块进行替换。这种算法实现简单,但没有完全考虑局部性原理,因此命中率较低,实际效果很不稳定。
  2. 先进先出算法:替换最先被调入Cache的块。这种算法实现简单,但也没有完全考虑局部性原理,最先调入Cache的块也有可能是被频繁访问的。因此,可能会出现频繁的换入换出现象(抖动现象)。
  3. 近期最少使用算法:为每一个Cache块设置一个“计数器”,用于记录每个Cache块最近一次被访问的时间。替换最近最少被使用的Cache块。这种算法考虑了局部性原理,因此命中率较高。

(五)分类

  1. 统一Cache:指令预取时和数据读写时使用同一个Cache。
  2. 独立的数据/程序Cache:指令预取时使用一个Cache(指令Cache),数据读写时使用另一个Cache(数据Cache)。这种分类方式可以进一步提高Cache的命中率和性能。

(六)应用与重要性

       Cache在计算机系统中具有广泛的应用,几乎成为了现代计算机系统中不可或缺的一部分。它不仅可以用于存储频繁访问的指令和数据,减少CPU访问主存的次数,提高系统的整体性能;还可以用于加速文件系统的访问速度、提高数据的读写效率;在数据库系统中,Cache被用于存储热点数据,以减少数据库的访问压力,提高查询速度。此外,Cache还被广泛应用于网络通信、图形处理、视频编码等多个领域。

四、硬盘

(一)定义与分类

       硬盘,也被称为硬盘驱动器,是一种用于存储数据的计算机存储设备。它由一个或多个旋转的磁盘组成,每个磁盘都有一个磁性表面,可以读写数据。硬盘通常安装在计算机的内部,也可以用作外置设备。根据存储介质和技术的不同,硬盘主要分为以下几类:

  1. 固态硬盘(SSD):采用闪存颗粒来储存数据,无需机械运动部件,实现了电子方式的读写操作。这使得SSD在读写速度上表现出色,同时具备良好的抗震性能。然而,与机械硬盘相比,其容量限制和相对较高的价格也是不容忽视的缺点。
  2. 机械硬盘(HDD):采用磁性碟片来储存数据,通过磁头读写至磁盘。尽管机械硬盘的读写速度较慢,但其大容量与亲民的价格仍让它占有一席之地。
  3. 混合硬盘(HHD):把磁性硬盘和闪存集成到一起的一种硬盘,旨在结合SSD和HDD的优点,提供更快的读写速度和更大的存储容量。

(二)工作原理

       硬盘的工作原理基于电、磁的精妙转换。它主要由一个或多个金属或玻璃盘片构成,这些盘片表面覆盖着磁性物质。每个盘片都装有磁头,它们在控制电路的指挥下,能在盘片上径向移动至指定位置,从而实现数据的存储与读取。

  1. 写入数据:磁头中的电流会产生磁场,改变盘片表面磁性物质的状态,即便电流消失,这种改变仍能保留,从而完成了数据的存储。
  2. 读取数据:磁头经过指定区域,盘片表面的磁场会感应出电流或改变线圈阻抗,经电路处理后即可还原成数据。

(三)性能指标

  1. 容量:硬盘的容量以兆字节(MB)或千兆字节(GB)为单位,是硬盘最主要的参数。硬盘的容量越大,能存储的数据就越多。
  2. 转速:转速是硬盘内电机主轴的旋转速度,以每分钟多少转(RPM)来表示。转速越快,硬盘寻找文件的速度就越快,相对的硬盘的传输速度也就得到了提高。
  3. 平均访问时间:平均访问时间是指磁头从起始位置到达目标磁道位置,并且从目标磁道上找到要读写的数据扇区所需的时间。它包括了硬盘的寻道时间和等待时间,体现了硬盘的读写速度。
  4. 传输速率:传输速率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。它包括了内部数据传输率和外部数据传输率,前者反映了硬盘缓冲区未用时的性能,后者标称的是系统总线与硬盘缓冲区之间的数据传输率。
  5. 缓存:缓存是硬盘控制器上的一块内存芯片,具有极快的存取速度。它是硬盘内部存储和外界接口之间的缓冲器,能够大幅度地提高硬盘整体性能。

(四)应用场景

  1. SSD

    • 个人计算机:提升系统启动速度、软件加载速度以及文件传输效率。
    • 游戏设备:加快游戏的加载时间,减少卡顿现象,降低延迟。
    • 服务器和数据中心:提高数据处理和访问速度,增强整体性能和稳定性。
    • 创意工作:如视频编辑、图形设计、3D建模等,需要快速读取和写入大型文件。
    • 工业控制和嵌入式系统:对可靠性和稳定性有极高要求。
    • 移动设备:如智能手机、平板电脑等,提高读写速度和续航时间。
  2. HDD:因其大容量和亲民价格,仍广泛应用于需要存储大量数据的场景,如家庭娱乐、数据存储备份等。

  3. HHD:适用于需要兼顾速度和容量的场景,如企业级应用、高性能计算等。

五、存储系统的存取方式

(一)顺序存取

  1. 定义:顺序存取是指数据以记录的形式进行组织,对数据的访问必须按特定的线性顺序进行。

  2. 特点

    • 访问数据所需要的时间与数据所在的存储位置相关。
    • 读写装置需要按照顺序逐个访问数据块,不能跳跃访问。
  3. 应用:典型的顺序存储器是磁带。磁带存储器常用于备份和归档大量数据,因为它具有容量大、成本低的特点,但访问速度相对较慢。

(二)直接存取

  1. 定义:直接存取是指使用一个共享的读写装置对所有的数据进行访问,但每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块所在位置进行访问。

  2. 特点

    • 介于顺序存取和随机存取之间的一种寻址方式。
    • 存取时间可变,因为数据块间的物理距离不同。
  3. 应用:磁盘存储器采用直接存取方式。磁盘包括硬盘和软盘,广泛应用于计算机系统中,用于存储操作系统、应用程序和数据文件等。

(三)随机存取

  1. 定义:随机存取是指存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。

  2. 特点

    • 访问任何一个存储单元所需的时间是相同的。
    • 提高了数据访问的灵活性和速度。
  3. 应用:主存储器(如DRAM和SRAM)采用随机存取方式。主存储器是CPU直接访问的存储器,用于暂存CPU正在处理的程序和数据。

(四)相联存取

  1. 定义:相联存取也是一种随机存取的形式,但选择某一单元进行读写是取决于其内容而不是其地址。

  2. 特点

    • 每个单元都有自己的读写装置,读写时间是一个常数。
    • 可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。
  3. 应用:为了提高地址映射的速度,Cache(高速缓冲存储器)通常采用相联存取方式。Cache位于CPU和主存之间,用于存储CPU近期可能会访问的数据和指令,以加快数据访问速度。

 结语  

人生不迷于表象

不计较得失

!!!


http://www.kler.cn/a/522071.html

相关文章:

  • ODP(OBProxy)路由初探
  • WebSocket 详解:全双工通信的实现与应用
  • 分布式版本控制系统:Git
  • scratch学习教程
  • 【10.2】队列-设计循环队列
  • 08.OSPF 特殊区域及其他特性
  • 21款炫酷烟花合集
  • python selenium 用法教程
  • Warm-Flow新春版:网关直连和流程图重构, 新增Ruoyi-Vue-Plus优秀开源集成案例
  • Python中容器类型的数据(下)
  • Linux 常用命令 - sort 【对文件内容进行排序】
  • (1)SpringBoot入门+彩蛋
  • JavaSE第十一天——集合框架Collection
  • java —— 面向对象(下)
  • 【数据结构】(2)时间、空间复杂度
  • 学习yosys(一款开源综合器)
  • 一文掌握ADB的安装及使用
  • 【全栈】SprintBoot+vue3迷你商城(9)
  • 线程配置经验
  • 一元函数微积分的几何应用:二维平面光滑曲线的曲率公式
  • 苍穹外卖 项目记录 day09 历史订单
  • arkui-x 前端布局编码模板
  • 详解Redis之事务
  • 深度解析:MyBatis-Plus实现分页查询的封装!
  • Meta 计划 2025 年投资 650 亿美元推动 AI 发展
  • mysql DDL可重入讨论