内存之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

相关文章

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 中,变量是用于存储程序中数据

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C