内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR*(一篇文章就懂)

2024-08-24 16:20

本文主要是介绍内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR*(一篇文章就懂),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR*

内存

  内存(Memory)指的是内存存储器,又称为主存,是CPU用来直接寻址和存储的空间,它相当于一座桥梁,用以负责诸如硬盘、主板、显卡等硬件上的数据与处理器之间数据交换处理,我们可以把内存看作数据缓存区,一个高速的缓存区。内存之所以称为内存,是相对于硬盘这些外存而言,我们要用的软件数据都安装存放在外存上,但是当我们运行他们时,就需要把这些软件的数据调入内存,才能运行顺畅,因为CPU和内存间的数据交换速度远高于和外存交换速度。 内存条是由内存芯片、电路板、金手指等部分组成的。

  内存分ROM(只读存储器)和RAM(随机存储器)两部分,RAM可以理解为主存,ROM只是很小一部分,比如记录BIOS信息的ROM。而硬盘、U盘等存储设备属于外存,和ROM没有关系。

手机内存256G?

  所谓的“256G内存”是一个外存储器。不能将“内部的外存储器”简称为”内存,因为内存是一个特定的概念,为内存储器的简称。从手机角度来看,ROM不仅存储手机相关信息,还会存储很多开启启动的软件之类的,一次写入终身读取,手机刷机,并不能改变手机存储的手机型号等固定的信息。手机部分信息在ROM上,ROM又属于内存,因此我们看到卖家展示的手机参数说内存256G等也有一定道理,但严格意义上不对,因为256G中有90%充当的是外存功能。那么说手机ROM256G合适吗?也不合适,ROM 只读存储器,可以长期保存信息,都说了只读,256G中有90%都是外存性质,只不过没有合适的名称命名手机中存储器罢了。

RAM

  随机存取存储器(Random Access Memory,RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。

  所谓“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。  

  RAM特点为:访问速度快,数据易失(断电会丢失数据,电容器或多或少有漏电的情形,不断电数据也会随时间流失,因此需要指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,这一过程称为“刷新”),静电敏感性(静电会干扰存储器内电容器的电荷,引致数据流失)。

SRAM与DRMA

  静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(Dynamic Random Access Memory,DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。

  SRAM有它的缺点,即它的集成度较低,功耗较DRAM大 ,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。同样面积的硅片可以做出更大容量的DRAM,因此SRAM显得更贵。

ROM

  ROM 是 read only memory的简称,表示只读存储器。只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。

  ROM主要分为掩膜ROM(专用掩膜板)、PROM(可一次性编程 ROM)、EPROM(紫外线擦除可改写 ROM)、EEROM(电擦除可改写 ROM)、flash ROM(快闪 ROM)等几类。

FLASH闪存

  FLASH闪存是属于内存器件的一种,"Flash"。闪存则是一种非易失性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

  Flash是非挥发性随机存取存储器(NVRAM),它可以作为缓存或作为直接存储的底层设备。虽然比动态随机存储器(DRAM)慢10倍,但尽管这样,它还比硬盘快得多。它的速度和耐用性,让写操作变得比直接写硬盘快很多。将FLASH作为一个持续的高速缓存,再让它慢慢的写回磁盘作永久数据保存。

  NAND Flash的读写以page为单位,在写入前(在这里称之为编程),需要先擦除,擦除以block为单位,这些操作都会减少器件的寿命。由于NAND Flash的这种特性,使得它在编程时带来了写放大的副作用,并且管理算法更复杂,例如需要垃圾回收算法。所以一般我们对NAND Flash编程的步骤是,先把其中的有效数据page搬移到内存或者其他block中,然后擦除这个block,再把有效数据和新数据写回去。这个过程造成了多余的写入和擦除,这就是所谓的写放大。

  NAND Flash一般不单独使用,需要和专用控制器搭配组成一个系统。目前常见的使用NAND Flash的产品主要有固态硬盘(SSD),eMMC,SD记忆卡,U盘等。其中SSD和eMMC稳定性和性能要求比较高,一般需要使用品质优良的NAND Flash。

内存条

  在计算机诞生初期并不存在内存条的概念,最早的内存是以磁芯的形式排列在线路上。

  后来才出线现了焊接在主板上集成内存芯片,以内存芯片的形式为计算机的运算提供直接支持。

  内存芯片的状态一直沿用到286初期,鉴于它存在着无法拆卸更换的弊病,这对于计算机的发展造成了现实的阻碍。有鉴于此,内存条便应运而生了。将内存芯片焊接到事先设计好的印刷线路板上,而电脑主板上也改用内存插槽。这样就把内存难以安装和更换的问题彻底解决了。

这篇关于内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR*(一篇文章就懂)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102985

相关文章

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

java变量内存中存储的使用方式

《java变量内存中存储的使用方式》:本文主要介绍java变量内存中存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、变量的定义3、 变量的类型4、 变量的作用域5、 内存中的存储方式总结1、介绍在 Java 中,变量是用于存储程序中数据