今天小姐姐来问我关于ROM、RAM和Flash的区别,我给她大致的说了一下名称和作用。可人家说她知道这玩意的名字,希望我能够接地气的解释一下什么是ROM、RAM、FLASH……

这就把我难住了 ≧ ﹏ ≦。(当时也没好好学,つ﹏⊂,错失了一个,撩小姐姐的机会),现在赶紧写温习一下,顺手篇博客记录一下。

  

ROM:

  看了看维基百科和百度百科,两个百科对ROM的定义基本一致大概可以概括为这几点:

  1. ROM是Read-Only Memory的缩写,中文名为只读存储器。
  2. 只能读出事先所存数据的固态半导体存储器。
  3. 一旦储存资料就无法再将之改变或删除。
  4. 内容不会因为电源关闭而消失。
  5. 用在不需经常变更资料的电子或电脑系统中。

  ROM有6个种类:

 ROM:

  • 只读存储器
  • 非易失性存储器
  • 制造时处于一种特殊发mask下进行烧入,写入的内容无法修改,电脑与用户只能读取保存在这里的指令,不能进行数据存入。
  • 常用于存储特定功能的程序或系统程序,例如启动盘。

  ROM的用于存储电脑引导指令时,ROM会提供一系列的指令给CPU进行测试,在最初的测试中,检查RAM位置(location)以确认其存储数据的能力。(顺便提一句键盘、计时器回路以及CPU本身都被纳入CPU测试)。说白了ROM就是存储器,带窗户封闭空间。你想塞东西只能在构建的时候装进去,想读呢?就从窗户往里够。

  哎?不对啊,我手机存的存储器明明能写啊?为什么就只读了呢?手机也好电脑也好使用的都是不是简单的ROM,用于电脑引导的BIOS存储在EPROM或者EEPROM上、手机的引导开机的固化模块在ROM上,而用于存储的闪存Flash memory是ROM的一种,至于机械硬盘这种磁盘类的存储器不属于ROM范畴。电脑和手机的存储设备,更应该叫做外部存储,可以用来存储手机系统文件、图片、电影等等。

  那什么是片上ROM呢?片上ROM就是单片机用来存储单片机程序和相关参数的地方。单片机程序在ROM里以文件或者一片二进制格式数据的方式存储

PROM:

    • 可编程程序只读存储器(Programmable ROM,PROM)
    • 烧断熔丝进行编程
    • 仅能写录一次

  PROM的典型产品是“双极性熔丝结构”,如果我们想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间,原 先的熔丝即可熔断,这样就达到了改写某些位的效果。另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,还 是用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。

EPROM:

    • 可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)
    • 高电压将数据编程写入
    • 紫外线照射清除数据
    • 可重复使用

OTPROM:

    • 一次编程只读存储器(One Time Programmable Read Only Memory,OTPROM)
    • 封装上不设置透明窗
    • 单次使用,工艺与EPROM相同

EEPROM:

    • 电可擦除可编程只读存储器 (Electrically-Erasable Programmable ROM)
    • 可以通过电子方式多次复写的半导体存储设备
    • 可以用特定电压进行擦除
    • 工作模式(不做详细介绍):读取模式、写入模式、擦除模式、校验模式

EEPROM性能的优秀,以及在在线操作的便利,它被广泛用于需要经常擦除的BIOS芯片以及闪存芯片,并逐步替代部分有断电保留需要的RAM芯片,甚至取代部分的硬盘功能(见固态硬盘)。它与高速RAM成为当前(21世纪00年代)最常用且发展最快的两种存储技术。

闪存:

    • Flash memory
    • 每一个记忆胞都具有一个“控制闸”与“浮动闸”
    • 利用高电场改变浮动闸的临限电压即可进行编程动作
    • 类型:NAND型与NOR型

NAND常用于固态硬盘、U盘、存储卡等用途,NOR则用于BIOS ROM芯片等用途。

与NAND ROM相比, NOR ROM集成度低,成本高,但NOR ROM可按字节擦写的特性使得其可以直接运行程序。

RAM:

  还是去翻了一下两大百科,总结了一下大概有以下几个特性:

  1. Random Access Memory,缩写:RAM;也叫主存是与CPU直接交换数据的内部存储器
  2. 随机存储:存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关
  3. 易失性:电源关闭时RAM不能保留数据
  4. 访问速度高:现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的
  5. 需要刷新:电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,电荷会渐渐随时间流失而使数据发生错误。刷新是指重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。
  6. 对静电敏感:静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地
  7. RAM 存储器可以进一步分为静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)两大类。SRAM具有快速访问的优点,但生产成本较为昂贵,一个典型的应用是缓存。而DRAM由于具有较低的单位容量价格,所以被大量的采用作为系统的主存。(主存和缓存在这里不说,设置了维基的链接自行转跳)

RAM主要用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。我们的所有运行的东西都会被拷贝到RAM中,共给CPU调度。

重点来了!!!

  ROM和RAM有什么区别呢?简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。

  在应用中,常规上ROM是用来存储固化程序的,RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。

  举

ROM与RAM的更多相关文章

  1. ROM、RAM、DRAM、SRAM和FLASH区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都 ...

  2. ROM、RAM、DRAM、SRAM和FLASH的区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...

  3. ROM与RAM知识

    “ROM”和“RAM”的意思: “ROM”:N年前代表一种只能写入和读取,而不能改写和擦除的设备,可以用光驱CD-ROM来说明这个道理.目前的“ROM”已经不是这个道理了,它的技术已经飞快的发展到现在 ...

  4. 18.11 ROM、RAM、DRAM、SRAM和FLASH区别

    ROM(Read Only Memory)和RAM(Random Access Memory)指的都是半导体存储器.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,但 ...

  5. ROM、RAM、DRAM、SRAM和FLASH、PSRAM

    1.ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常 ...

  6. ROM和RAM区别

    在计算机的组成结构中,有一个很重要的部分,就是存储器.存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作.存储器的种类很多,按其用途分为主存储器和辅助存储器, ...

  7. FPGA中ROM与RAM相关知识总结(五)

    把看到的关于存储的一些东西整理一下,有些话来自于网友,所以还是那句话,看到的人要带着自己的思考去看,记住尽信书不如无书,fighting!!! 一.基本概念 最熟悉的两个词语应该是RAM与ROM,RA ...

  8. ROM和RAM的故事

    在公众号里看到一篇很好的文章讲解rom和ram,之前也是一直不能理解两者的区别,今天就转载记下来吧.也方便大家学习. 因为我刚开始学习的时候总喜欢刨根问底,一个问题要是不搞清楚,后面学习都会很吃力的. ...

  9. 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH

    目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...

  10. ROM、RAM、DRAM、SRAM、FLASH的区别?

    在学习单片机的时候经常会被这些东西搞晕掉,什么ROM RAM FLASH EEPROM 等等......为了不被搞晕,做个笔记,不记得的时候过来看看. 下面是我在网上找的资料: ROM和RAM指的都是 ...

随机推荐

  1. 「Luogu P2468 [SDOI2010]粟粟的书架」

    这道题分为两个部分 Part1 前置芝士 前缀和(后缀和,二维前缀和):可以预处理一下数据. 二分查找:可以在较短的时间内找出答案. 具体做法 可以发现\(R,C\)不大,只有\(200\),于是可以 ...

  2. ES6 && ECMAScript2015 新特性

      ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES201 ...

  3. LTE 网元功能

    E-NodeB : 无线资源管理,无线承载控制.无线接入控制.连接移动性控制.UE的上下行动态资源分配 IP头压缩及用户数据流加密 UE连接期间选择MME 路由用户面数据至S-GW 寻呼消息的组织和发 ...

  4. PHP+Mysql实现网站顶和踩投票功能实例

    PHP+Mysql实现网站顶和踩投票功能实例,通过记录用户IP,判断用户的投票行为是否有效,该实例也可以扩展到投票系统中. 首先我们在页面上放置“顶”和“踩”的按钮,即#dig_up和#dig_dow ...

  5. 设计模式课程 设计模式精讲 13-2 享元模式coding

    1 代码演练 1.1 代码演练1 1 代码演练 1.1 代码演练1 需求: 每周由随机部门经历做报告: 重点关注: a 该案例是单例模式和享元模式共同使用 b 外部传入的department是外部状态 ...

  6. Flask - 请求扩展,钩子函数(Django的中间件) --> 请求前,中,后,

    例子1. 处理请求之前 @app.before_request 在请求之前,这个被装饰的函数会被执行 用户登录验证代码可以在这里写 @app.before_request def process_re ...

  7. java对sql server的增删改查

    package Database; import java.sql.*; public class DBUtil { //这里可以设置数据库名称 private final static String ...

  8. Java程序与其它进程的数据通信

    Java程序中可以启动其他的应用程序,这种在Java中启动的进程称为子进程,启动子进程的Java程序称为父进程,其实这个父进程就是一个Java虚拟机1.在Java程序中可以用Process类的实例对象 ...

  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-info" 类的文本样式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. 在cnblog中试用Markdown

    参考: http://www.cnblogs.com/cmt/p/markdown.html https://www.cnblogs.com/cmt/p/markdown-latex.html htt ...