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

存储系统概述

        

目录

层次结构

存储器的分类

存储器的编址和端模式

存储器端模式

存储器的技术指标

1. 存储容量

示例:

2. 访问速度

访问速度的表现形式:

示例:

3. 功耗

示例:

4. 可靠性

可靠性指标:

示例:

5. 成本

成本组成:

示例:

综合考虑

数据中心:

高性能计算(HPC):

消费电子设备(如智能手机、平板):


        在计算机系统中,存储器发挥的关键作用,它负责存储数据和指令,供处理器执行和使用。存储系统是一个复杂的层次结构,由各自的存储器组成,共同确保数据和程序的正确运行。我们将讨论存储系统的层次结构、存储器分类、编址和端模式,并了解一些重要的技术指标。

层次结构

        为了平衡性能、容量和成本,现代计算机系统通常采用多级存储层次结构,从速度最快、成本最高、但容量最小的存储器,到速度最慢、成本最低、但容量最大的存储器依次排列。这种层次结构旨在在保证数据访问速度的同时,尽可能降低存储成本。

1. 寄存器 (Registers)

  • 位置: 位于处理器核心内部。
  • 速度: 速度最快,能够在单个 CPU 时钟周期内完成数据访问。
  • 容量: 容量最小,通常只有几百字节到几千字节。
  • 作用: 用于临时存储 CPU 正在处理的数据和指令,例如指令地址、操作数、运算结果等。

2. 高速缓存 (Cache)

  • 位置: 位于处理器和主内存之间,比主内存更接近处理器。
  • 速度: 速度比主内存快,但比寄存器慢。
  • 容量: 容量比寄存器大,但比主内存小,通常为几兆字节到几百兆字节。
  • 作用: 用于存储处理器近期频繁访问的数据和指令,利用程序的局部性原理,减少处理器访问主内存的次数,从而提高程序运行速度。
  • 分类: 根据距离 CPU 的远近,高速缓存通常分为 L1、L2、L3 等多个级别,级别越低速度越快,容量越小。

3. 主内存 (Main Memory)

  • 别称: 随机存取存储器 (RAM)
  • 位置: 位于主板上,直接与处理器连接。
  • 速度: 速度比高速缓存慢,但比辅助存储器快得多。
  • 容量: 容量比高速缓存大,通常为几吉字节到几百吉字节。
  • 作用:
    • 存储当前正在运行的操作系统、应用程序和数据。
    • 为处理器提供高速数据交换的通道。

4. 辅助存储器 (Secondary Storage)

  • 别称: 外存储器
  • 位置: 通常位于计算机内部或外部,通过数据线或网络与主内存连接。
  • 速度: 速度最慢,比主内存慢 several 个数量级。
  • 容量: 容量最大,可以达到几兆兆字节甚至更大。
  • 作用: 用于长期存储大量数据和程序,即使断电后数据也不会丢失。
  • 常见类型:
    • 硬盘驱动器 (HDD): 利用磁性存储数据,价格较低,容量较大,但速度较慢。
    • 固态驱动器 (SSD): 利用闪存芯片存储数据,速度快,抗震性能好,但价格相对较高。
    • 其他可移动存储介质: 例如 U 盘、光盘等,用于数据备份、传输等。

存储器的分类

存储器可以根据不同的标准进行分类,以下列举几种常见的分类方式:

1. 按存储介质分类

  • 半导体存储器: 利用半导体材料存储数据,具有速度快、体积小、功耗低等优点,是现代计算机系统中最主要的存储器类型。
    • 例如:RAM、ROM、闪存(Flash Memory)等。
  • 磁存储器: 利用磁性材料存储数据,具有容量大、价格低廉等优点,常用于大容量数据存储。
    • 例如:硬盘 (HDD)、磁带等。
  • 光存储器: 利用光学技术存储数据,具有可移动性强、存储寿命长等优点,常用于数据备份和多媒体存储。
    • 例如:CD-ROM、DVD-ROM、蓝光光盘 (BD) 等。

2. 按存储方式分类

  • 位存储器: 每个存储单元只存储一位二进制信息(0 或 1)。
  • 字存储器: 每个存储单元存储一个计算机字,字长可以是 8 位、16 位、32 位等。

3. 按读写方式分类

  • 只读存储器 (ROM): 数据预先写入存储器中,只能读取,不能修改,即使断电后数据也不会丢失。
    • 例如:BIOS ROM、嵌入式系统中的程序存储器等。
  • 随机存取存储器 (RAM): 可以随机读写数据,断电后数据会丢失。
    • 例如:DRAM、SRAM 等。
  • 一次性可编程存储器 (OTP ROM): 数据只能写入一次,写入后不能修改,断电后数据也不会丢失。
    • 例如:某些芯片的配置信息存储器。
  • 可编程只读存储器 (PROM): 数据可以写入多次,但需要特殊的编程设备,写入后不能修改,断电后数据也不会丢失。
  • 可擦除可编程只读存储器 (EPROM): 数据可以写入多次,需要特殊的编程设备,可以通过紫外线照射擦除数据。
  • 电可擦除可编程只读存储器 (EEPROM) 和 闪存 (Flash Memory): 数据可以写入多次,不需要特殊的编程设备,可以通过电信号擦除数据。闪存是 EEPROM 的一种,具有速度快、容量大、成本低等优点,被广泛应用于 U 盘、固态硬盘等存储设备中。

补充说明

  • 实际应用中,存储器往往根据多种分类标准进行区分,例如,我们可以说闪存是一种半导体存储器,同时也是一种可擦除可编程只读存储器。
  • 随着技术的不断发展,新的存储技术和存储器类型层出不穷,例如相变存储器 (PCM)、磁阻式随机存取存储器 (MRAM) 等,这些新型存储器有望在未来得到更广泛的应用。

存储器的编址和端模式

        存储器的编址是指为每个存储单元分配一个唯一的地址,以便处理器能够访问和修改数据。编址的过程涉及以下几个方面:

  1. 地址空间:地址空间是指所有可能的存储单元地址的集合。地址空间的大小通常由处理器的地址总线宽度决定。例如,一个32位地址总线可以支持4GB的地址空间。
  2. 地址分配:每个存储单元都有一个唯一的地址,这个地址用于标识该存储单元在存储器中的位置。地址可以是物理地址,也可以是逻辑地址(虚拟地址)。
  3. 地址映射:逻辑地址和物理地址之间的映射。现代计算机系统通常使用虚拟内存技术,通过页表将逻辑地址映射到物理地址。
  4. 编址模式:根据存储器的访问粒度不同,编址模式可以分为字节编址、字编址和块编址等。

存储器端模式

        存储器端模式是指存储器与处理器之间的连接方式,决定了数据在存储器和处理器之间的传输粒度和方式。常见的存储器端模式包括:

  1. 字节端模式(Byte Addressable Mode)

    • 定义:存储器以字节为单位进行编址和访问。每个地址表示一个字节的数据单元。
    • 特点:这种模式下,处理器可以按字节访问存储器中的数据,灵活性较高,适用于需要经常操作单个字节数据的应用。
    • 应用:大多数现代计算机系统都使用字节端模式,因为它支持对数据的精细控制和操作。
  2. 字端模式(Word Addressable Mode)

    • 定义:存储器以字(通常为2字节或4字节)为单位进行编址和访问。每个地址表示一个字的数据单元。
    • 特点:这种模式下,处理器每次读取或写入的数据量较大,但不如字节端模式灵活,需要处理对齐问题。
    • 应用:适合需要高效读取或写入较大数据块的应用,如数值计算和数据处理。
  3. 块端模式(Block Addressable Mode)

    • 定义:存储器以块(通常为固定大小的多个字节)为单位进行编址和访问。每个地址表示一个数据块。
    • 特点:这种模式下,数据传输效率较高,但灵活性较低,适用于顺序访问或大数据量传输的场景。
    • 应用:常用于磁盘存储和其它大容量存储设备,如硬盘和固态硬盘。

存储器的技术指标

        在选择和评估存储器时,有几个关键的技术指标需要考虑。这些指标不仅影响存储器的性能,还影响其应用场景和成本效益。以下是存储器的主要技术指标:

1. 存储容量

存储容量表示存储器可以存储的数据量,通常以字节(Byte)、千字节(KB)、兆字节(MB)、千兆字节(GB)或太字节(TB)为单位。容量是决定存储器能否满足应用需求的基本指标。

示例:
  • 一条现代的 DDR4 内存条的容量可能为 8GB 或 16GB。
  • 一块固态硬盘(SSD)的容量可能为 256GB、512GB 或 1TB。

2. 访问速度

        访问速度表示从存储器中读取或写入数据的速度,通常以纳秒(ns)或毫秒(ms)为单位。访问速度是影响系统性能的重要因素,尤其在需要频繁数据访问的应用中更为关键。

访问速度的表现形式:
  • 随机访问时间:表示在存储器的任意位置进行数据存取所需的时间,常用于描述 RAM 的性能。
  • 顺序读写速度:表示数据按顺序读写的速度,常用于描述存储设备(如 SSD)的性能。
示例:
  • DDR4 RAM 的典型访问延迟为 10-15ns。
  • 高性能 SSD 的顺序读取速度可能超过 500MB/s,而写入速度可能超过 450MB/s。

3. 功耗

        功耗表示存储器在运行过程中消耗的电能,通常以瓦特(W)为单位。功耗影响系统的能源效率和散热设计,尤其在数据中心和移动设备中至关重要。

示例:
  • 一条 DDR4 内存条的典型功耗约为 1-1.5W。
  • SSD 的功耗通常低于机械硬盘(HDD),典型的 SSD 闲置功耗为0.5W,活动功耗约为 2-5W。

4. 可靠性

        可靠性表示存储器正确存储和读取数据的能力。常用的可靠性指标包括平均无故障时间(MTBF)和位故障率(BER)。

可靠性指标:
  • 平均无故障时间(MTBF):表示存储器在一段时间内平均无故障运行的时间,通常以小时为单位。
  • 位故障率(BER):表示每读取或写入多少位数据会产生一个错误,通常以每比特的故障概率表示。
示例:
  • 企业级 SSD 的 MTBF 通常超过 1,000,000 小时。
  • 高可靠性的存储器(如 ECC 内存)的 BER 通常低于 10^-9。

5. 成本

        成本包括存储器的初始购买成本和后续维护成本。成本是选择存储器时必须考虑的实际因素,尤其在大规模部署和长期使用中更为重要。

成本组成:
  • 初始购买成本:存储器的购置价格。
  • 维护成本:包括能耗成本、冷却成本、故障维修成本等。
示例:
  • DDR4 内存条的价格通常在每 GB 几美元到几十美元之间。
  • SSD 的价格通常高于 HDD,但后续功耗和维护成本可能较低。

综合考虑

        在选择存储器时,需综合考虑上述技术指标,以满足应用需求并优化成本效益。以下是一些具体应用场景中的考虑因素:

数据中心:
  • 需要高容量、高可靠性和较低的功耗。
  • 访问速度和整体成本也非常重要。
高性能计算(HPC):
  • 需要极高的访问速度和可靠性。
  • 成本和功耗也需在考虑范围内。
消费电子设备(如智能手机、平板):
  • 需要较低的功耗和高访问速度,以延长电池寿命和提高用户体验。
  • 可靠性和成本也是重要考虑因素。

        最重要的是,存储系统是计算机系统的关键,其层次结构和各种存储器的组合确保了数据和程序的快速、高效、安全地存储和访问。在选择和设计存储系统时,需要综合考虑存储器的分类、编址和端模式,以及各种技术指标,满足特定应用的需求。

相关文章:

存储系统概述

目录 层次结构 存储器的分类 存储器的编址和端模式 存储器端模式 存储器的技术指标 1. 存储容量 示例: 2. 访问速度 访问速度的表现形式: 示例: 3. 功耗 示例: 4. 可靠性 可靠性指标: 示例:…...

Trilium windows上修改笔记目录,创建多个笔记空间方法

一开始使用trilium会非常的不舒服,不像是obsidian可以创建多个笔记空间,指定多个笔记目录。这里摸索到了解决方案 修改目录的方法一 ——修改系统环境变量 打开控制面板-系统-高级系统设置 新增如上条目 修改目录的方法二——直接写bat脚本运行 新建位…...

<Rust><iced>在iced中显示gif动态图片的一种方法

前言 本文是在rust的GUI库iced中在窗口显示动态图片GIF格式图片的一种方法。 环境配置 系统:window 平台:visual studio code 语言:rust 库:iced、image 概述 在iced中,提供了image部件,从理论上说&…...

【Unity设计模式】状态编程模式

前言 最近在学习Unity游戏设计模式,看到两本比较适合入门的书,一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式,因此很值得学习 本…...

圆的面积并三角形面积并

三角形面积并 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> using namespace std; const int maxn 110; #define x first #define y second typedef pair<double, double> PDD; const d…...

Spring Data JPA介绍与CRUD实战演练

文章目录 一、Spring Data JPA 简介二、Spring Data JPA 与 MyBatis Plus 比较设计哲学和抽象层次SQL 控制学习曲线和技术要求性能与优化综合考虑 三、SpringDataJpa实战演练1. 创建user表2. 搭建Spring Boot开发环境3. pom.xml文件内容4. application.yml文件内容5. Applicati…...

Python网络爬虫实战6—下一页,模拟用户点击,切换窗口

【前期提要】感兴趣的可以看看往期文章哈~ Python网络爬虫5-实战网页爬取 Python网络爬虫4-实战爬取pdf Pyhon网络爬虫3-模拟用户点击 Python网络爬虫实战2-下载url下的pdf Python网络爬虫基础1 1.需求背景 针对长虹美菱电器说明书网页形式&#xff0c;编写爬虫代码&#xff…...

Notepad++插件 Hex-Edit

Nptepad有个Hex文件查看器&#xff0c;苦于每次打开文件需要手动开插件显示Hex&#xff0c;配置一下插件便可实现打开即调用 关联多个二进制文件&#xff0c;一打开就使用插件的方法&#xff0c;原来是使用空格分割&#xff01;&#xff01;&#xff01;...

Matlab要这样批量读取txt数据!科研效率UpUp第10期

假如我们有多组txt格式的数据&#xff1a; 其数据格式是这样的&#xff1a; 想要批量读取这些数据&#xff0c;并把他们画在一张图上&#xff0c;该怎么操作呢&#xff1f; ​之前有分享load函数的版本&#xff0c;本期进一步分享适用性更强的readtable函数的实现方法​。 首…...

buuctf----firmware

- -一定不能再ubutu22进行,我是在18(血泪教训) binwalk安装 buuctf firmware(binwalk和firmware-mod-kit的使用)_buu firmware-CSDN博客 参考博客 指令 sudo apt-get update sudo apt-get install python3-dev python3-setuptools python3-pip zlib1g-dev libmagic-dev pi…...

ssl证书90天过期?保姆级教程——使用acme.sh实现证书的自动续期

腾讯云相关文档相关参考-有的点不准确 前言 最近https到期了&#xff0c;想着手动更新一下https证书&#xff0c;结果发现证书现在的有效期只有90天&#xff0c;于是想找到一个自动更新证书的工具&#xff0c;发现了acme.sh&#xff0c;但是网上的文章质量参差不齐&#xff0…...

由于bug造成truncate table卡住问题

客户反应truncate table卡主&#xff0c;检查awr发现多个truncate在awr报告期内一直没执行完&#xff0c;如下&#xff1a; 检查ash&#xff0c;truncate table表的等待事件都是“enq: RO - fast object reuse”和“local write wait” 查找“enq: RO - fast object reuse”&am…...

Charles抓包工具系列文章(二)-- Repeat 回放http请求

一、什么是http请求回放 当我们对客户端进行抓包&#xff0c;经常会想要重试http请求&#xff0c;或者改写原有部分进行重新请求&#xff0c;都需要用到回放http请求。 还有一种场景是压力测试&#xff0c;对一个请求进行重复请求多少次&#xff0c;并加上适当的并发度。 这里…...

jemeter基本使用

后端关验签&#xff0c;设置请求头编码和token 配置编码和token...

【Golang】Steam 创意工坊 Mod 文件夹批量重命名

本文将介绍一个使用Go语言编写的脚本&#xff0c;其主要功能是解析XML文件并基于解析结果重命名文件夹。这个脚本适用于需要对文件夹进行批量重命名&#xff0c;并且重命名规则依赖于XML文件内容的情况。 脚本功能概述 Steam创意工坊下载的Mod文件夹批量重命名为id名称 运行前…...

求职刷题力扣DAY33--贪心算法part04

DAY 33 贪心算法part04 1. 452. 用最少数量的箭引爆气球 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可…...

aws的eks(k8s)ingress+elb部署实践

eks&#xff08;k8s&#xff09;版本1.29 ingress 版本1.10.0 负载均衡elb 1. 创建Ingress-Nginx服务 部署项目地址【点我跳转】推荐自定义部署 可绑定acm证书什么的自己属性 这里就是aws上面Certificate Manager产品上面创建证书 导入 创建都行 对应集群版本推荐阵列GitH…...

大数据面试题之YARN

目录 1、介绍下YARN 2、YARN有几个模块 3、YARN工作机制 4、YARN有什么优势&#xff0c;能解决什么问题? 5、YARN容错机制 6、YARN高可用 7、YARN调度器 8、YARN中Container是如何启动的? 9、YARN的改进之处&#xff0c;Hadoop3.x相对于Hadoop 2.x? 10、YARN监控 1…...

最小生成树模板(prim,heap-prim,kruskal)

prim 出圈法&#xff0c;时间复杂度 O ( n 2 ) O(n^2) O(n2) #include<iostream> #include<vector> using namespace std; #define MAX_N 5000 #define inf 100000000 struct edge{int v,w; }; vector<edge>e[MAX_N5]; int d[MAX_N5],vis[MAX_N5]; int n,m…...

Centos 7 或 8配置国内yum源及epel源-1

官方教程 Yum工具详解 清理Yum缓存:[rootqfedu.com ~]# yum clean all缓存软件包信息: 提高搜索/安装软件的速度[rootqfedu.com ~]# yum makecache查询yum源信息: [rootqfedu.com ~]# yum repolist 查找软件:[rootqfedu.com ~]# yum search mysql 此命令会搜索到系…...

轻松解决Android复杂数据结构序列化

问题描述 当我编写quickupload库时&#xff0c;因为需要在 Service中进行上传任务&#xff0c;向Service传递时我发现需要传递的数据很多并且结构复杂&#xff0c;如果处理不好就会导致以下几个问题 耗时: 需要更多时间进行开发和测试以确保正确的数据处理。容易出错: 由于手…...

解析PDF文件中的图片为文本

解析PDF文件中的图片为文本 1 介绍 解析PDF文件中的图片&#xff0c;由两种思路&#xff0c;一种是自己读取PDF文件中的图片&#xff0c;然后用OCR解析&#xff0c;例如&#xff1a;使用PyMuPDF读取pdf文件&#xff0c;再用PaddleOCR或者Tesseract-OCR识别文字。另一种使用第…...

微信小程序表单

在我们的课程中&#xff0c;我们深入探讨了微信小程序表单的开发和应用。以下是我们课程的主要内容和收获&#xff1a; 一、课程目标 本课程旨在帮助学生掌握微信小程序表单的基本概念、开发流程和最佳实践。学生将学习如何创建和配置表单组件&#xff0c;处理表单数据&#xf…...

Javascript高级程序设计(第四版)--学习记录

var关键字&#xff1a;定义变量同时可以进行赋值 var message"hello" message 10 可以改变保存的值&#xff0c;也可以改变值的类型&#xff0c;但是不推荐这样写。 var声明的变量会成为包含它的函数的局部变量。 function test(){ var message "hello";…...

DVWA-CSRF-samesite分析

拿DVWA的CSRF为例子 接DVWA的分析&#xff0c;发现其实Impossible的PHPSESSID是设置的samesite1. 参数的意思参考Set-Cookie SameSite:控制 cookie 是否随跨站请求一起发送&#xff0c;这样可以在一定程度上防范跨站请求伪造攻击&#xff08;CSRF&#xff09;。 下面用DVWA CS…...

代码随想录训练营Day48

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、买卖股票的最佳时机4二、买卖股票的最佳时机含冷冻期三、买卖股票含手续费 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 今天是…...

React进阶(五):导航守卫_renderroutes

在《React进阶&#xff08;四&#xff09;&#xff1a;路由介绍》博文中&#xff0c;介绍了React路由相关知识&#xff0c;在实际项目开发过程中&#xff0c;路由之间的跳转必定涉及权限、用户是否登陆等限定条件的判定&#xff0c;故需要导航守卫来完成这一事项。 在实现reac…...

Python基础系列教程:从零开始学习Python

Python有很多功能强大的机器学习和大数据分析包&#xff0c;适合对大数据和人工智能感兴趣的同学学习。要想了解一门语言&#xff0c;首先需要了解它的语法。本文将介绍Python的一些基础语法&#xff0c;包括数据类型、变量类型、条件控制、循环结构等内容。废话少说&#xff0…...

deepl翻译的PDF文档保护密码解除

1、首先将后缀名(.docx)修改为压缩包格式(.zip)。 2、修改解密word加密.py里zip的位置&#xff0c;和新生成的zip的位置和名称 import zipfile import xml.etree.ElementTree as ET import os import shutil# 定义文件路径 zip_file_path rC:\Users\Administrator\Desktop\新…...

LeetCode 算法:二叉树的直径 c++

原题链接&#x1f517;&#xff1a;二叉树的直径 难度&#xff1a;简单⭐️ 题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由…...