RAM ROM Flash

2024-04-20 12:48
文章标签 flash ram rom

本文主要是介绍RAM ROM Flash,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,计算机的基本组成主要包括五大部分:控制器、运算器、存储器、输入设备、输出设备。而不管是RAM、ROM还是Flash,它们的共同点是都是存储器部分。

既然是存储器,那其功能也就是主要是存储程序、数据等信息。比较熟悉的不那么专业的存储器有主存、硬盘、光驱、U盘等等,其实这些存储设备,就是上面提到的RAM、ROM、Flash等等。下面一一介绍:


RAM:

RAM是random access memory的缩写,中文名字是随机存储器。顾名思义,既然是随机存储器,就是说它的存取是随机的,存取的速度与存储单元的位置是无关的。其存储单元里的内容可按照需要进行对已的取出或存入。另外,在断电时,它里面存储的内容会丢失,所以它一般用作存储短时间使用的程序。这就让我们联想到了计算机里的内存。按照存储信息的不同,RAM随机存储器可分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。


SRAM不需要刷新电路即可保存它内部存储的数据。而DRAM每隔一段时间,需要刷新充电一次,否则内部的数据会消失,因此SRAM具有较高的性能,但SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但SRAM却需要很大的体积,且功耗较大。SRAM一般用作CPU与主存之间的高速缓存、CPU内部的一级/二级高速缓存等。DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但价格上来说DRAM相比SRAM要便宜多,DRAM一般用于计算机的内存。DRAM种类比较多,比如SDRAM、DDR RAM、RDRAM等都属于DRAM。既然内存一般用的是DRAM,那就介绍小内存的工作原理(引用):

内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。
由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展 ,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料 ,不过单价也比普通的ROM要高。

ROM

ROM是Read-Only Memory的缩写,中文就是只读存储器,顾名思义,它是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦存储资料就无法再将之改变或删除。通常用在不需要经常变更资料的电子或电脑系统中,资料不会因为电源关闭而消失。ROM有很多种,比如PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是:PROM是一次性的,也就是软件灌入后,就无法修改了。这种事早期的产品,现在已被淘汰;而EPROM是通过紫外光的照射可擦除原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦除,价格更高,写入时间很长,写入很慢。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM就不会。由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展 ,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料 ,不过单价也比普通的ROM要高。


FLASH

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。

这篇关于RAM ROM Flash的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

新型 RAMBO 侧信道攻击通过 RAM 无线电波泄露数据

内盖夫本·古里安大学的研究人员发现了一种从隔离系统中泄露敏感数据的方法。 引入了一种称为 RAMBO(基于 RAM 的电磁隐蔽通道)的新型攻击技术。 该攻击利用计算机 RAM 产生的电磁辐射,使攻击者能够窃取加密密钥、密码、生物特征数据和文件等信息。 即使在系统与外部网络物理隔离的环境中,这种攻击也能实现。 信息泄露速度达 7.5 kB/分钟 该研究由 Morde

Xilinx系FPGA学习笔记(五)ROM的IP核学习

系列文章目录 文章目录 系列文章目录前言ROM IP分布式ROM生成ROM配置创建COE文件 块ROM生成如何快速生成Example Design 两种ROM对比 前言 最近在学习小梅哥的xilinx型FPGA开发板,一边学习一边记录,简化整理一下笔记 ROM IP 在 Memories &Storage Elements 下可以看到有两个与 ROM 相关的

AOSP:在rom中打入一个脚本

环境 aosp: android-14.0.0_r1 真机:Pixel5 目标 测试:将一个shell脚本,打入到rom中,最终刷机,并能在手机中使用。 步骤 添加 PRODUCT_PACKAGES # 路径:device/google/redfin/device-redfin.mkPRODUCT_PACKAGES += mysh 创建mysh文件(无后缀) 路径:device/

集成电路学习:什么是ROM只读存储器

ROM:只读存储器         ROM(Read-Only Memory,只读存储器)是一种重要的计算机存储设备,具有独特的特点和应用场景。以下是对ROM的详细解析: 一、ROM的定义与特点         ROM是一种只能读出事先所存数据的固态半导体存储器。它的主要特点是数据一旦写入,就无法被用户修改或删除,只能进行读取操作。这种特性使得ROM非常适合用于存储固定不变的信息,如

通过 Flash 让所有浏览器支持 WebP 格式图像解码

http://www.guao.hk/tag/webp#userconsent# http://www.etherdream.com/WebP/

提高Flash builder编译速度 (转)

提高Flash builder编译速度   2013-04-08 03:14:42|  分类: flash |  标签: |举报 |字号大中小 订阅 我们在开发过程中随着项目的不断壮大,经常会碰到编译速度过慢,IDE崩溃等令人头痛的问题,这里我总结了一下网上别人的经验,对FB进行了3点优化,效果明显  1、把 Build Auto 改成 手动 Build  2

DM8168 关于nand flash的折腾之路

主机平台:ubuntu 12.04  目标平台:TI DM8168 开发套件:*****北京某公司开发板 拿到板子,看了看资源,看了看平台的组成,上网看了看这写博客的评价,之后就开始了折腾之路,还是老方法;首先用厂商给的东西,原封不动的启动,摸索认识一番,TI给的是带开发套件的SD卡,按照 【快速开始QSG】;拨马开关-连线上电,启动。一切ok. 接着安装交叉编译工具,配置host主