首页 > 系统相关 >不堪回首的“内存”

不堪回首的“内存”

时间:2025-01-18 20:31:41浏览次数:3  
标签:存储 ROM 内存条 RAM 内存 不堪回首 数据

不堪回首的“内存”


就像小姐一样,内存这个词如今已经被用滥了。比如ROM、RAM、SRAM、DRAM、Cache都叫内存,哪个才是我们真正要找的王子呢?

一、混乱的内存

可以说,内存的私生活非常紊乱,这年头能存点儿东西的差不多都能叫内存。
大体上,内存分为广义上的内存和狭义上的内存。

1.1 广义内存

广义内存包括以下类型:

  • 只读存储器(ROM):用于保存固定不变的数据,数据是预先写入的,在断电后不会丢失。通常用来存储启动程序和系统配置信息,一般位于在主板上的BIOS芯片中。BIOS指基本输入/输出系统,当启动计算机时,它会首先运行,执行硬件初始化和启动过程。
  • 随机访问存储器(RAM):用于临时存储正在运行的程序和数据,断电后数据会丢失。RAM位于计算机的主板上,以内存条的形式存在。RAM的全称为random access memory。
  • 高速缓存(Cache):集成在CPU内部,位于寄存器和主存储器之间,用于缓存CPU频繁访问的数据和指令,访问速度比RAM更快。
    这些之所以都能叫内存,可能是相对于硬盘来说,都有一个优势,就是快。

1.2 狭义内存

单纯名字看,内存嘛,就是内部存储器呗,它是一个与外部存储器相对应的概念。
但到底啥是内,啥是外呢?也没有一个统一的标准。
一般来讲,所谓的内,就是计算机要完成它最核心的计算工作离不开的范围。要计算你总得有处理器(CPU)器吧?处理器只会算。但用什么方法算、算什么呢?这就必须得有数据,就得有存储器存这些信息,这就是内的范围。那么直接和CPU打交道,给它提供计算数据的存储器就是内部存储器,一般就是指内存;不和CPU直接打交道的,需要通过内部存储器作为信息桥梁的,就是外部存储器,一般就是硬盘。
狭义的内存,也就是我们通常所说的“内存”,是指内存条中的内存。本节下面谈到的内存都指内存条中的内存。
跟硬盘那种“慢性子”不同,内存可是个“急性子”,读写速度嗖嗖的。它主要由一系列的存储单元组成,每个单元就像一个小盒子,里面可以放一个数字(通常是0或1,也就是二进制),这些数字组合起来,就成了咱们的程序和数据。
内存为什么这么快?
离大脑近。内存条安装在靠近CPU的插槽上,数据传输距离短,自然就快。
既然内存这么快,那还要硬盘干嘛?
因为内存有个硬伤,只能临时存储,它就像咱家的冰箱,一断电就啥用都没有了。
电脑就像个工厂,CPU是厂长,内存是厂里的“仓库”。工厂要生产(运行程序),就得从仓库里拿材料(读取数据),用完了再放回去(写入数据)。要是仓库太小,放不下多少材料,厂长就得频繁跑到外面进货(从硬盘调取数据),一来回可能就十天半拉月,这不就慢了吗?
京东为啥这么快,就因为人家的仓库离你比较近!

1.2 手机内存

1.2.1 两种手机内存

随便找个电商网站,打开手机的商品介绍页面,都能看到类以下面的图:
在这里插入图片描述
这里面有两个内存:运行内存、机身内存。
也有可能你看到的是这个画面:
在这里插入图片描述
从图中能看出,运行内存=RAM,机身内存=ROM。
运行内存=RAM没什么好说的,和电脑中内存条的内存一个意思,都是临时存储当前正在运行的程序和数据;关键是这个神奇的“机身内存=ROM”,从图中看出这玩艺容量比较大,咱们平时往手机里存的各种东西都应该保存在这里,故而它就相当于电脑的硬盘。ROM咱们前面说了,它是只读存储器,英文为Read-Only Memory。手机里的ROM却可以往里面写东西,神不神奇?
老金猜想,手机中之所以起ROM这个不伦不类的名,多半是因为这块存储器有一块不可改写的区域,这块区域用来存放系统文件,用户不能修改。正是有了这块区域,手机厂家才可以肆无忌惮地往里面预装各种“流氓”软件,你想删也删不掉。我们平时所说的“刷机”,就指重写这块存储区域的数据。
但不管怎么样,管能随便往里存东西的东西叫ROM,老金都觉得太恶心了。
咱们一般人的理解,手机内存越大,就越不卡,现在有了ROM内存,你可以说:我们的手机内存比电脑高多了,128G只能算小儿科,我们已经整到了一个T!

1.2.2 RAM与ROM的区别

鉴于前面所述,关于 RAM与ROM的区别,咱们可以直接给ROM来上一刀。
所谓的只读,所谓的固定不变,所谓的Read-Only,就像太监的宝贝一样,只能用来展览。
所以RAM和ROM就只剩下一个区别:RAM断电后数据会丢失,ROM在断电后数据不会消失(妥妥的硬盘特征)。
在这里插入图片描述

1.3 内分泌混乱的RAM

RAM分为静态RAM指SRAM(Static RAM)、动态RAM即DRAM(Dynamic RAM),这两种类型的RAM区别如下:

  • 静态随机存取存储器(SRAM):不需要定期刷新就能维持数据。它的优点是速度快、功耗低,但缺点是成本较高,所以通常用作高速缓存,也就是前面说的位于CPU内部的Cache。
  • 动态随机存取存储器(DRAM):需要周期性地刷新才能保证数据不会丢失。计算机上的内存条基本上都是DRAM,因为它性价比高。
    现在问题来了,我们说内存条中的内存是RAM,而RAM分为SRAM和DRAM。其中,SRAM不是内存条中的内存,而是用作Cache;DRAM才是用于内存条。
    这种关系就好像说一个人是男人,但它的一半是女人。
    现在问你,内存条中的内存,到底应该是RAM?还是DRAM?

二、各种内存的原理

2.1 DRAM与SRAM

RAM之所以在断电后数据会丢失,是因为RAM是通过电荷来保存数据的。
DRAM(动态RAM)是靠电容存储的电荷来保存数据的,这些电容就是充电电池一样,充满电就代表1,没充电的就代表0。电容就像电池一样,电量会随着时间流失(放电),因此需要定期充电才能保持数据状态。
在这里插入图片描述
SRAM(静态RAM)的好处是速度更快、功耗更低,而且不用像动态RAM那样,得不断给电容充电来维持数据。
静态RAM使用触发器来保持其状态,只要在通电的情况下,数据就不会消失,因此不需要定期充电。
不过,静态RAM一般需要6个或者更多的晶体管来存储一个0或1,成本较高,所以通常用作高速缓存(Cache)。而动态RAM只需要一个晶体管和一个电容就可以存储一个0或1,这使得它可以更密集地集成更多位数,所以用于内存条。
在这里插入图片描述

2.1 ROM

根据制造工艺、存储方式和可编程性的不同,ROM可以分为以下几种类型:
(1)掩模ROM(Mask ROM)
这是最基本的ROM类型。数据在制造过程中通过掩模技术写入,写入后无法更改。由于其成本较低,适用于大批量生产,常用于存储固定不变的程序或数据。在掩模ROM中,存储单元通过固定连接(如熔丝或二极管)来实现数据的存储。在制造过程中,根据所需存储的数据,通过特定的工艺将熔丝熔断或二极管连接成特定的电路,从而固定存储位的状态。
(2)可编程ROM(PROM,Programmable ROM)
PROM允许在制造后通过特殊设备编程一次。一旦编程完成,数据就不能再被修改。PROM在出厂前可以被编程,适用于需要定制数据但不需要修改的场景。
(3)可擦除可编程ROM(EPROM,Erasable Programmable ROM)
数据可以通过紫外线照射擦除,然后重新写入。EPROM解决了PROM只能写入一次的弊端,但擦除和重写过程相对繁琐。
(4)电可擦除可编程ROM(EEPROM,Electrically Erasable Programmable ROM)
数据可以通过电信号擦除和重新写入,不需要紫外线照射,因此更加便捷,适用于频繁更新数据的场合。
(5)闪存ROM(Flash Memory)
一种非易失性存储器,可以在不消耗电力的情况下保存数据。它可以在通电状态下进行编程和擦除操作,允许在操作中被多次擦除或写入。Flash ROM广泛应用于存储设备、数码相机、智能手机等领域。
EEPROM和Flash ROM的存储单元通过电荷积累来存储数据。当数据被写入时,电荷被注入到存储单元的浮栅中;当数据被读取时,通过检测浮栅中的电荷量来确定存储位的状态。

标签:存储,ROM,内存条,RAM,内存,不堪回首,数据
From: https://blog.csdn.net/jjmhx/article/details/145216088

相关文章

  • 内存 、磁盘、 移动盘他们的地址是如何进行编号的,并且后续是如何映射到进程虚拟地址空
    在计算机系统中,内存(RAM)、磁盘(硬盘或固态硬盘)和移动存储设备(如USB驱动器)都有各自的地址空间和管理方式。以下是关于它们的内存地址编号、映射到虚拟地址空间的过程以及相关概念的详细说明。1.内存地址的编号1.1物理内存地址物理内存:物理内存是计算机中实际存在的RAM......
  • 内存管理优化技术:写时复制(Copy-On-Write, COW)
    文章目录说明写时复制(Copy-On-Write,COW)概念一写时复制的工作原理二为什么需要写时复制三COW在fork()中的应用四COW的优势五COW的应用场景六COW的局限性和挑战七总结说明本文是针对个人专业知识查缺补漏,结合大模型对话内容整理而来,请辩证看待文章!写时......
  • Ubuntu 设置虚拟内存
    虚拟内存(交换空间)可以帮助在物理内存不足时,系统仍然能够正常运行。1.检查现有交换空间首先,检查系统是否已经配置了交换空间:sudoswapon--show如果没有任何输出,说明当前没有启用交换空间。2.创建交换文件你可以通过创建一个交换文件来增加虚拟内存。以下是创建6GB交换......
  • 内存和缓存有什么区别?
    内存和缓存之间的区别主要体现在以下几个方面:主体不同:内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。缓存则是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,它可以进行高速数据交换,先于内......
  • SQL Server 内存占用高分析及解决办法(超详细)
    SQLServer内存占用高分析及解决办法(超详细)一、问题1.1、SQLServer内存占用高,内存不释放1.2、SQLServer内存使用策略SQLServer对服务器内存的使用策略是有多少占多少(大约到剩余内存为4M左右)只用在服务器内存不足时,才会释放一点占用的内存,所以很多时候,我们会发现运行SQ......
  • 【ABKing】记一次Python SSTI的内存马技术研究
    通过对PythonSSTI的技术研究,发现网上的一些Payload具有局限性,并非能直接使用,踩了一些坑,写出了自己的独创Payload0x00起因有个用户单位反馈,HW期间被攻击队打了个RCE,并且提供了攻击队的报告和防火墙的流量。正好临近年关,闲来无事,想到已经很久没有认真钻研技术了,遂开始进行研究。......
  • Qt以共享内存方式限制应用多开
    1.创建共享内存,如果键所标识的共享内存段已经存在,则不执行附加操作,并返回false。#include<QApplication>#include<QSharedMemory>#include<QMessageBox>intmain(intargc,char*argv[]){QApplicationa(argc,argv);//"AK"键staticQSharedMemory......
  • Linux内存泄露案例分析和内存管理分享
    作者:京东科技李遵举一、问题近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长。接到内存报警的消息,让整个团队都比较紧张,我们团队负责的LB服务是零售、物流、科技等业务服务的流......
  • JavaScript有几种类型值?能否画出它们的内存图?
    JavaScript中主要有八种类型的值,包括七种原始类型(PrimitiveTypes)和一种对象类型(ObjectTypes)。这八种类型分别是:Number:表示数字,包括整数和浮点数。如:42,3.14159。BigInt:表示任意大的整数。这是一种在ES2020中引入的新类型,用于表示比Number.MAX_SAFE_INTEGER更大的整数。如......
  • 【c++】【Linux】内存碎片
    【c++】【Linux】内存碎片内碎片分配给进程未被使用的部分当内存被分配给某个进程时,分配的内存块可能比实际需求稍大,未被使用的部分称为内碎片。例如,如果需要3.6k内存此时根据buddy伙伴系统内存分配方式最少分配4k为一页那其中0.4k未被使用的内存就是内碎片如果使......