计算机的存储体系与性能,存储黑科技大揭秘

93145d3a6836f069684d73194a419261.jpeg

  计算机体系结构,其中存储分为内存与硬盘。内存,非持久化存储,临时存数,断电即失;硬盘,持久化存储,数据长存,即使断电也无忧。

计算机存储种类繁多,分为内部与外部两类。内部存储指设备主板上的存储,如BIOS存储和内存;外部存储则通过协议与主板相连,如机械硬盘、SSD硬盘和光盘等。图1为存储设备分类概览,展现存储技术的丰富多样。

69f3841d63d1aaac196891b5860a7189.jpeg

图1 计算存储体系

图1详解:ROM即Read Only Memory,是只读存储设备;RAM即Random Access Memory,支持随机读写。两者各有特性,ROM仅读不写,RAM则读写灵活。

RAM种类繁多,其中SRAM和DRAM最为常见。SRAM,即静态随机访问存储器,是静态RAM的简写;而DRAM,即动态随机访问存储器,即我们常说的内存,属于动态RAM。这两大类别各有特点,共同构成了RAM的丰富体系,满足不同存储需求。

SRAM是CPU缓存的关键组件,尤其常见于L1、L2和L3三级缓存中。不同于我们熟知的DRAM(内存),SRAM以其卓越的速度性能在CPU数据处理中占据重要地位。选择SRAM,意味着选择了更快的数据处理速度。

图2揭示了CPU各级缓存与内存的关联。L1、L2、L3缓存依次增大但速度递减。而相较于缓存,内存容量庞大但速度显著滞后,突显了缓存作为速度桥梁的重要性。

22cd2545cf64ee4358a5786b9f616311.jpeg

图2 CPU各级缓存与内存的关系

L1缓存速度高达1150GB/s,但容量仅数百KB;L2缓存速度470GB/s,容量数MB;而L3缓存速度约200GB/s,容量达数十MB。不同层级缓存速度与容量各有侧重,优化数据访问效率。

内存位于CPU外部,速度可达数十GB,容量高达TB级别,远超缓存。但内存带宽较低,访问延时显著。更多内存细节将在后续章节详解,本节暂不赘述。

外部存储涵盖硬盘、光盘、磁带等,速度相对较慢。例如,NVMe协议的SSD带宽上限约10GB/s,而机械硬盘带宽仅略高于100MB/s,效率有待提升。

从带宽到访问延时,我们深入探讨了内外部存储性能。图1-26直观展示了存储访问延时的显著差异。CPU缓存延时在1至10纳秒间,其中一级缓存约为1纳秒,二级缓存约4纳秒。这些数据凸显了存储技术的精细与关键,为您在性能优化中提供有力参考。

内存访问虽远超硬盘等外设,但与缓存相比,其延时约100纳秒。若以缓存为火箭速度作比,内存则似普通客机,难以媲美战斗机之速。

固态硬盘访问延时高达16微妙,堪比绿皮火车的速度。机械硬盘更慢,其访问延迟达毫秒级,几乎与马车相当,仅略快于年轻人散步。在数据存储领域,速度差异显著,选择高性能硬盘至关重要。

8ea0bc556eff90c2c0bf7301a06ab2d7.jpeg 图3 计算机存储性能金字塔

磁带存储速度极慢,因其无法随机访问,数据定位需频繁倒带,延时高达10秒级。因此,现代企业罕见直接使用磁带存储,多作为冷数据备份之选。

对存储研发人员及开发者而言,掌握存储设备性能金字塔至关重要。如CPU缓存,未考虑缓存同步与多核并发访问,高并发应用性能将受影响,因此理解其机制至关重要。

在存储软件领域,我们运用高速介质如内存作为文件系统元数据与数据的缓存,有效减少对硬盘的访问,显著提升文件系统的整体性能,为用户带来流畅的数据访问体验。

企业级存储系统不仅利用内存缓存元数据与数据,更采用SSD与机械硬盘的混合分层架构。这种设计在不大幅增加成本的前提下,显著提升了系统性能,为用户提供卓越的数据存储体验。


-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1420492.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

走进开源,拥抱开源

走进开源,拥抱开源 一、开源文化1.1 什么是开源1.2 为什么要开源1.3 有哪些开源协议 二、选择开源2.1 开源社区的类型与特点2.2 如何选择开源社区2.3 如何选择开源项目 三、参与开源3.1 开源社区的参与方式3.2 开源项目的参与方式 四、Apache Doris 参与示例4.1 Dor…

如何将Git仓库中的文件打包成zip文件?

要将Git仓库中的文件打包成zip文件,您可以使用git archive命令。这个命令允许您将任何git可访问的树或提交导出成一个归档文件。以下是一些基本的步骤: 打开命令行或终端。切换到您的Git仓库的目录。执行git archive命令。 git archive --formatzip --o…

第13节 第二种shellcode编写实战(2)

在第二种shellcode编写实战(1)的基础上,新增加一个CAPI类,将所有用到的函数都在这个类中做动态调用的处理,这样使得整个shellcode功能结构更加清晰。 1. 新建类CAPI(即api.h和api.cpp两个文件): api.h&…

PDF Squeezer for Mac,让PDF压缩更高效

还在为PDF文件过大而烦恼吗?试试PDF Squeezer for Mac吧!它拥有强大的压缩功能,可以快速将PDF文件压缩至更小的体积,让你的文件传输更快捷。同时,它还支持多种压缩方式,满足你的不同需求。赶快下载体验吧&a…

冯喜运:5.12黄金回撤继续上涨,下周原油走势分析

【黄金消息面分析】:本周,黄金市场迎来了自4月中旬以来的最佳单周表现。周五(3月9日),金价攀升至2360.54美元/盎司,涨幅0.62%,而纽约商品交易所6月交割的黄金期货价格上涨1.5%,收报2…

linux 安装 mangodb 并设置服务开机自启

1、下载 wget http://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz 2、解压 tar -zxvf mosquitto-1.6.8.tar.gz 3、编译安装cd mosquitto-1.6.8 make sudo make install4、在当前目录。进入mosquitto服务文件存放的文件夹 cd service/systemd可以看到3个文件 点击read…

如何自定义Linux命令

说明:本文介绍如何将自己常用的命令设置为自定义的命令,以下操作在阿里云服务器CentOS上进行。 修改配置文件 修改配置文件前,先敲下面的命令查看当前系统配置的shell版本 echo $SHELL或者 echo $0区别在于,$SHELL查看的是系统…

WHAT - CSS Animationtion 动画系列(四)- 移动端全屏动画

目录 一、背景1.1 GIF & Video1.2 存在的问题 二、技术方案2.1 使用CSS动画和JavaScript2.2 使用JavaScript库2.3 使用序列帧1. css animation 帧动画2. JavaScript requestAnimationFrame 帧动画 2.4 使用Canvas1. html 和 canvas 中的 video2. 基于Canvas的动画库 今天我…

十个最适合论文写作的GPTs及其应用

文章目录 一、GPTs让一切皆有可能二、最适合论文写作的GPTs及其应用1、[Paper Search Engine](https://chat.openai.com/g/g-9v5gHG9Bo)2、[Academic Paper Specialist(学术论文撰写专家)](https://chat.openai.com/g/g-jryw3pfsH)3、[Paper Connect 论文…

Java入门基础学习笔记18——赋值运算符

赋值运算符: 就是“”,就是给变量赋值的,从右边往左边看。 int a 10; // 把数据赋值给左边的变量a存储。 扩展赋值运算符: 注意:扩展的赋值运算符隐含了强制类型转换。 package cn.ensource.operator;public class…

picoCTF-Web Exploitation-Trickster

Description I found a web app that can help process images: PNG images only! 这应该是个上传漏洞了,十几年没用过了,不知道思路是不是一样的,以前的思路是通过上传漏洞想办法上传一个木马,拿到webshell,今天试试看…

一个优秀 Maven 项目,各 Model 间最佳继承设计方案

1.单一职责原则 (Single Responsibility Principle): 每个模块应该专注于执行一个清晰且明确定义的功能,遵循单一职责原则,以降低模块的复杂性。 2.高内聚性 (High Cohesion): 模块内的组件和类应该紧密相关,共同实现模块的目标。高内聚性…

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的传播速度极慢,信息处理的速…

动态规划算法:⼦数组、⼦串系列(数组中连续的⼀段)

例题一 解法(动态规划): 算法思路: 1. 状态表⽰: 对于线性 dp ,我们可以⽤「经验 题⽬要求」来定义状态表⽰: i. 以某个位置为结尾,巴拉巴拉; ii. 以某个位置…

Qt---信号和槽

一、信号和槽机制 所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号…

十一、Redis持久化-RDB、AOF

Redis提供了两种持久化数据的方式。一种是RDB快照,另一种是AOF日志。RDB快照是一次全量备份,AOF日志是连续的增量备份。RDB快照是以二进制的方式存放Redis中的数据,在存储上比较紧凑;AOF日志记录的是对内存数据修改的指令文本记录…

【Unity 鼠标输入检测】

Unity 鼠标输入检测 Unity提供了多种方法来检测和处理鼠标输入,允许开发者在游戏中实现对鼠标移动、点击和滚轮滚动的响应。以下是一些基本的鼠标输入检测方法: 1. Input.mousePosition 这个属性返回当前鼠标指针的屏幕坐标。坐标是以像素为单位的&…

【算法】动态规划之背包DP与树形DP

前言: 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列 【算法】动态规划之线性DP问题-CSDN博客 【算法】动态规划之背包DP问题(2024.5.11)-CSDN博客 背包…

数据分享—鄱阳湖矢量边界数据

鄱阳湖位于中国江西省北部,是中国最大的淡水湖泊之一,也是长江流域第一大湖。鄱阳湖水域广阔,湖区面积约为3600平方公里。鄱阳湖拥有丰富的水生生物资源,湖中有多种淡水鱼类和水生植物,是重要的渔业资源基地之一。湖泊…

WHAT - CSS Animationtion 动画系列(二)

目录 一、循环波浪二、关键帧呼应三、关键帧顺接四、利用 transform-origin 做拉伸五、大元素可拆分多个小元素联动六、预留视觉缓冲七、随机感:动画周期设置八、抛物线:两个内外div实现x和y向量运动 今天我们主要学习动画实现要素。 一、循环波浪 利用…