🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。 🏆《近期荣誉》:2023年华为云十佳博主,2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
计算机系统中的存储系统指的是用于存储和访问数据的硬件和软件组件。存储系统的主要目的是提供计算机系统运行所需的数据和程序的长期存储和快速访问。
存储系统主要包括以下几种类型:
存储系统的设计和优化对计算机系统的性能和效率具有重要影响。不同类型的存储器组件在容量、访问速度、成本和可靠性等方面具有不同的特点,需要根据应用需求进行选择和配置。
多级存储结构是计算机系统中常见的一种存储器层次结构,由多层不同速度和容量的存储设备组成,每一层都有其特定的功能和访问速度。多级存储结构一般包括以下几层:
多级存储结构通过将数据从辅助存储器逐级加载到CPU寄存器,利用不同层次存储器之间的访问速度差异,提高了计算机系统的整体性能。
计算机系统中的缓存(Cache)是一种高速存储器,用于暂时存储来自主存(RAM)的数据,以提高CPU访问数据的速度。缓存采用了快速的SRAM(静态随机访问存储器)技术,与主存相比,它具有更低的访问延迟和更高的带宽。
缓存的设计遵循了局部性原理,即计算机在某个时间点访问的数据和指令很可能在将来的某个时间点再次访问。缓存通过将最经常访问的数据和指令存储在靠近CPU的高速存储器中,可以减少对主存的读取次数,从而提高系统性能。
计算机系统中通常存在多级缓存,其中L1缓存是最接近CPU的一级缓存,通常包括数据缓存和指令缓存。L2缓存位于L1缓存之外,其容量较大,但速度稍慢。还可以有更多级的缓存,如L3缓存和L4缓存。缓存的层次结构主要是为了平衡容量和速度两个因素。
缓存采用了缓存行的概念,即一次从主存中读取的数据块大小。常见的缓存行大小为64字节或128字节。当CPU请求某个地址的数据时,缓存会先查看是否在缓存行中,如果是,则称为命中(Cache Hit),直接返回缓存中的数据;如果不在缓存行中,则称为不命中(Cache Miss),缓存需要从主存中加载相应的数据块,并将其存储到相应的缓存行中,然后再返回数据给CPU。
缓存还使用了缓存替换算法来决定在缓存满时应该替换哪些数据。常见的替换算法包括最近最少使用(LRU)、最不经常使用(LFU)和随机替换等。
使用cache改善系统性能的依据是程序的局部性原理
地址映射方法 | 描述 | 优点 | 缺点 |
---|---|---|---|
直接映射 | 主存的块与 Cache块的对应关系是固定的 | 硬件电路设计、地址变换比较简单 | 冲突率较高灵活性差 |
全相联映射 | 主存与 Cache均分成大小相同的块,允许主存的任一块可以调入 Cache存储器的任何一个块的空间中 | 冲突率较低、主存的块调入Cache的位置不受限制,十分灵活 | 电路难于设计和实现,只适用于小容量的cache;无法从主存块号中直接获得 Cache的块号,变换比较复杂,速度比较慢 |
组相联映射 | 将 Cache中的块再分成组,组采用直接映像方式而块采用全相联映像方式。即主存任何区的0组只能存到 Cache的o组中1组只能存到 Cache的1组中,依此类推组内的块则采用全相联映像方式,即一组内的块可以任意存放。即主存一组中的任一块可以存入cache相应组的任一块中 | 直接相联与全相联的折中 | 直接相联与全相联的折中 |
算法 | 描述 | 优点 | 缺点 |
---|---|---|---|
FIFO | 淘汰最早被缓存的页面 | 实现简单 | 对长时间驻留在缓存中的数据不友好,可能导致高缓存命中率的数据被淘汰 |
LRU | 淘汰最久未使用的页面 | 适用于热点数据,能够保留经常访问的数据 | 实现较复杂,需要维护访问时间的记录 |
LFU | 淘汰访问频次最低的页面 | 适用于长时间内不变的数据,能够保留经常被访问的数据 | 对频繁变化的数据不友好,可能导致访问频次高的数据被淘汰 |
LRU-K | 基于最近一段时间内的访问情况进行淘汰 | 能够平衡最近访问和长期访问的数据 | 实现较复杂,需要维护最近访问的记录 |
LRU-2 | 维护两个队列,淘汰最久未使用的页面 | 简化了LRU的实现,提高了淘汰效率 | 不适用于有循环访问模式的数据 |
随机算法 | 随机选择一个页面进行淘汰 | 实现简单,对所有数据公平,不会有特定数据被频繁淘汰的问题 | 缺乏策略性,可能导致缓存命中率低 |
机械磁盘存在两组运动,即旋转运动和线性运动。
这两组运动的配合使得机械磁盘能够实现精确定位和高速数据读写。旋转运动提供了高速读写数据的能力,而线性运动则提供了准确定位到指定磁道的能力。
机械磁盘存取时间指的是计算机读取或写入数据到机械硬盘所需的时间。机械磁盘由盘片和机械臂组成,当计算机需要读取或写入数据时,机械臂会移动到盘片上特定的位置,并且盘片需要旋转到特定的扇区。因此,机械磁盘存取时间主要由以下几个因素决定:
机械磁盘存取时间可以表示为:
存取时间 = 寻道时间 + 延迟时间 + 数据传输时间
机械磁盘相对于固态硬盘来说,存取时间较长。固态硬盘不需要机械臂移动和盘片旋转,因此存取时间更短,速度更快。