嵌入式平台 RAM与ROM区分
ROM(Read Only Memory)和RAM(Random Access Memory)指的都是半导体存储器,ROM在系统停止供电的时候仍然可以保持数据,而RAM通常是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
ROM有很多种,PROM是可编程的ROM,它和EPROM(可擦除可编程ROM)的区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这是早期的产品,现在已经不再使用,而EPROM是通过紫外光的照射擦出原先的程序的一种通用存储器。另外一种EEPROM是通过电子擦除,价格很高,写入时间很长,写入慢。
举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时存在SRAM中,不是马上写入通话记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待用户无法忍受。
RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。
另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。
DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。
这是目前电脑中用得最多的内存,而且它有着成本优势,击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
内存工作原理简析
内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;
刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电; 若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。
NAND Flash和NOR Flash的比较
常用的Flash类型有:NOR Flash和NAND Flash两种。NOR Flash由Intel公司在1988年发明,以替代当时在市场上占据主要地位的EPROM和EEPROM。NANDFlash由Toshiba公司在1989年发明。两者的主要差别如下表所示。
|
NOR |
NAND |
||
|
容量 |
1~32MB |
16~512MB |
|
|
XIP |
Yes |
No |
|
|
性能 |
擦除 |
非常慢(5s) |
快(3ms) |
|
写 |
慢 |
快 |
|
|
读 |
快 |
快 |
|
|
可靠性 |
比较高,位反转的比例小于NAND Flash 的10% |
比较低:,位反转比较常见,必需有校验措施,比如“1-4 bit EDC/ECC”;必须有坏块管理措施 |
|
|
可擦除次数 |
10000~100000 |
100000~1000000 |
|
|
生命周期 |
低于NAND Flash的10% |
是NOR Flash的10倍以上 |
|
|
接口 |
与RAM接口相同 |
I/O接口 |
|
|
访问方法 |
随机访问 |
顺序访问 |
|
|
易用性 |
容易 |
复杂 |
|
|
主要用途 |
常用于保存代码和关键数据 |
用于保存数据 |
|
|
价格 |
高 |
低 |
|
NOR/NAND Flash的差别
NOR Flash支持XIP,即代码可以直接在NOR Flash上执行,无需拷贝到内存中。这是由于NOR Flash的接口与RAM完全相同,可以随机访问任意地址的数据。在NOR Flash上进行读操作的效率非常高,但是擦除和写操作的效率很低;另外,NOR Flash的容量一般比较小。
NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般而言,NOR Flash用于存储程序,NAND Flash用于存储数据。基于NAND Flash的设备通常也要搭配NOR Flash以存储程序。
Flash存储器件由擦除单元(也称为块)组成,当要写某个块时,需要确保这个块已经被擦除。NOR Flash的块大小范围为64KB~128KB;NAND Flash的块大小范围为8KB~64KB,擦/写一个NOR Flash块需4S,而擦/写一个NAND Flash块仅需2ms。
NOR Flash的块太大,不仅增加了擦写时间,对于给定的写操作,NOR Flash也需要更多的擦除操作——特别是小文件,比如一个文件只有1KB,但是为了保存它却需要擦除大小为64KB~128KB的NOR Flash块。
NOR Flash的接口与RAM完全相同,可以随意访问任意地址的数据。而NAND Flash的接口仅仅包含几个I/O引脚,需要串行地访问。NAND Flash一般以512字节为单位进行读写。这使得NOR Flash适合于运行程序,而NAND Flash更适合于存储数据。
容量相同的情况下,NAND Flash的体积更小,对于空间有严格要求的系统,NAND Flash可以节省更多空间。市场上NOR Flash的容量通常为1~4MB(也有32MB的NOR Flash),NANDFlash的容量为8~512MB。容量的差别也使得NOR Flash多用于存储程序,NAND Flash多用于存储数据。
对于Flash存储器件的可靠性需要考虑3点:位反转、坏块和可擦除次数。所有Flash器件都遭遇位反转的问题:由于FLASH固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误——这种概率很低,而NAND Flash出现的概率远大于NOR Flash。当位反转发生在关键的代码、数据上时,有可能导致系统崩溃。
当仅仅是报告位反转,重新读取即可;如果确实发生了位反转,则必须有相应的错误检测/恢复措施。在NAND Flash上发生位反转的概率更高,推荐使用EDC/ECC进行错误检测和恢复。
NAND Flash上面会有坏块随机分布,在使用前需要将坏块扫描出来,确保不再使用它们,否则会使产品含有严重的故障。NAND Flash每块的可擦除次数通常在100000次左右,是NOR Flash的10倍。另外,因为NAND Flash的块大小通常是NOR Flash的1/8,所以NAND Flash的寿命远远超过NOR Flash。
linux对NOR、NAND Flash的软件支持都很成熟。在NOR Flash上常用jffs2文件系统,而在NAND Flash上常用yaffs文件系统。在更底层,有MTD驱动程序实现对它们的读、写、擦除操作,它也实现了EDC/ECC校验。
转自百问网

嵌入式平台 RAM与ROM区分的更多相关文章
- RAM和ROM总结
RAM和ROM总结 一.在解释之前先备注一些缩写的全称便于记忆: 1.EPROM:(Electrically Programmable Read-Only-Memory)电可编程序只读存储器 2.EE ...
- (转) 寄存器、RAM、ROM、Flash相关概念区别整理
转自 http://m.blog.chinaunix.net/uid-30077524-id-5570244.html 文章对这几个东西讲得很清楚,值得收藏. 寄存器 寄存器是中央处理器内的组成部份. ...
- NOR flash和NAND flash区别,RAM 和ROM区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- NOR flash和NAND flash区别,RAM 和ROM区别d
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- NOR和NAND flash区别,RAM 和ROM区别
ROM是Read Only Memory的缩写.RAM是Random Access Memory的缩写.典型的RAM就是计算机的内存. RAM有两大类,一种称为静态RAM(Static RAM/SRA ...
- 引用 RAM和ROM和Flash ROM的区别
用 饿狼 的 RAM和ROM和Flash ROM的区别 RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的.它在任何时候都可以读 ...
- 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质
一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ...
- 内存(RAM或ROM)和FLASH存储的真正区别总结
转载自:http://blog.csdn.net/liangkaiyang/article/details/59556531.什么是内存 什么是内存呢?在计算机的组成结构中,有一个很重要的部分 ...
- RAM和ROM和Flash ROM的区别
转;http://openedv.com/thread-81182-1-1.html http://www.sohu.com/a/112676146 ...
随机推荐
- LeetCode Linked List Easy 83. Remove Duplicates from Sorted List
Description Given a sorted linked list, delete all duplicates such that each element appear only onc ...
- LeetCode Array Easy 414. Third Maximum Number
Description Given a non-empty array of integers, return the third maximum number in this array. If i ...
- 一、Nuget管理
一.注册账号 http://www.nuget.org 可用微软账户登录注册 手机端授权 二.打包Nuget 1.新建一个.NET Standard 的类库项目(取名类库) 更改方法 2.选择项目属性 ...
- yum 仓库搭建与源码包安装实战
目录 一.yum 仓库自建示例: 二.源码包安装实践 基础环境 服务端配置 下载及安装fpm软件 客户端: 一.yum 仓库自建示例: 1.安装ftp服务 yum -y install vsftpd ...
- 59th python下graphviz安装 砖
原文 摘录 感谢分享: https://www.cnblogs.com/liusx0303/p/9155305.html 参考链接:https://blog.csdn.net/u01325041 ...
- windows系统下MySQL中遇到1045问题
报错内容为"1045 Access denied for user 'root'@'localhost' (using password:YES)",对应的原因是密码错误,如 ...
- C#语言是专门为.NET提供的开发语言(visual studio 2008序列号)
.net是微软的一个平台在这个平台上的语言有C#.C++.VB等,其中C#是专门为.NET平台开发的语言,语法简洁美观.建议安装visual studio 2008,你可以去微软官方下载90天试用版, ...
- POJ 2443 Set Operation (按位压缩)
Description You are given N sets, the i-th set (represent by S(i)) have C(i) element (Here "set ...
- 查看电脑是否安装jdk以及安装了的路径
1.输入cmd进入dos界面2.输入java -version,回车 C:\Users\Lenovo>java -versionjava version "1.7.0_71" ...
- 探索Redis设计与实现1:Redis 的基础数据结构概览
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...