嵌入式系统存储(RAM、ROM、Flash)

目录

 

1.储存器系统层次结构

2.RAM的种类

3.ROM的种类

4.Flash Memory的种类


1.储存器系统层次结构

1.CPU内部寄存器  
2.芯片内部的高速缓存(cache) 
3.芯片外的高速缓存(SRAM、DRAM、DDRAM)
4.主存储器(Flash、PROM、EPROM、EEPROM) 
5.外部存储器(磁盘、光盘、CF、SD卡)
6.远程二级存储(分布式文件系统、Web服务器)

共六个层次结构。这些设备从上到下,依次变得更慢、访问频率更小、容量更大,每字节的造价也更加便宜。

在这种存储器分层结构中,上面一层的存储器做为下一层存储器的高速缓存。CPU寄存器就是cache的高速存储器,寄存器保存来自cache的字;cache又是内存层的高速缓存,从内存层提取数据送给CPU进行处理,并将CPU处理的结果返回内存当中;内存又是主存储器的高速缓存,它将经常使用到的数据从Flash等主存储器的提取出来,放到内存中,从而加快了CPU的运行效率。嵌入式的主存储器的容量是有限的,当遇到大量信息数据时,就需要将其保存到磁盘、光盘或CF、SD卡等外部存储器中,并在需要调用时从外部存储器中提取调用数据。在某些带有分布式文件系统的嵌入式网络系统中,外部存储器就作为其他系统中被存储数据的高速缓存。

2.RAM的种类

RAM可以被读和写,但断电数据会丢失,它适合在程序运行时保存动态的信息数据。RAM可以分为SRAM(静态随机存储器)和DRAM(动态随机存储器)。这两类具有不同的特征:

  • SRAM比DRAM运行速度快
  • SRAM比DRAM耗电多
  • 在一个芯片上可以置放更多的DRAM
  • DRAM需要周期性刷新

常见的RAM分类如下:

  • SRAM(Static RAM,静态随机存储器)

SRAM是静态的,因此只要供电它就会保持一个值。SRAM没有刷新周期,有触发器构成基本单元,集成度低,每个SRAM存储单元由6个晶体管组成,因此成本较高。SRAM具有较高的速率,常常同于高速缓冲存储器。

  • DRAM(Dynamic RAM,动态随机存储器)

这是一种以电荷形式进行存储的半导体存储器。DRAM中的每一个存储单元由一个晶体管和一个电容组成,数据存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必需有规律地定时进行刷新。

  • DDRAM(Double Data Rate SDRAM,双倍速率随机存储器)

随着嵌入式处理器主频的提高,SDRAM的速度逐渐成了限制系统性能的瓶颈。SDRAM通常只能工作咋133MHz主频,而现在很多32位处理器的主频已经达到了200MHz以上。DDRAM就是这种需求下出现的,目前已占据了内存技术的主流,且价格便宜。

DDRAM依靠一种叫做双倍预取(2n-prefetch)的技术,即在内存芯片内部的数据宽度是外部接口数据宽度的2倍,使峰值的读写速度达到输入时钟速率的2倍,并且DDRAM允许在时钟脉冲上升沿或下降沿传输数据,这样不需要提高时钟频率就能加倍提高SDRAM的速度,并具有SDRAM多一倍的传输速率和内存带宽。同时为了保证在高速运行时的信号完整性,DDRAM技术还采用了差分输入的方式。总的来说DDRAM采用更低的电压、差分输入和双倍数据速率输出等技术。

3.ROM的种类

       ROM的特点是在烧入数据后,无需外加电源来保存数据。断电数据不丢失,但速度较慢,因此适合存储需长期保留的不变数据。常见ROM的分类如下:

  • Mask ROM(掩膜ROM)

一次性由厂家写入数据的ROM,用户无法修改。

  • PROM(Programmable ROM 可编程ROM)

只允许用户利用专门的设备(编程器)将自己的程序写入一次,一旦写入后,其内容将无法改变。所以也叫做一次可编程只读存储器(One Time Programming ROM)。

  • EPROM(Erasable Programmable ROM 电可擦写ROM)

不仅可以由用户利用编程器写入程序,而且可以对其内容进行多次改写。出厂时其内容为全“1”,用户根据其程序将某些记忆单元改为“0”;当需要修改时需要将所有内容擦除(恢复为“1”),以便写入新的内容。

EPROM又分为两种,UVEPROM(紫外线擦除)和EEPROM(电擦除)。UVEPROM需要用紫外线灯制作的擦抹器照射存储器芯片上的透明窗口,使芯片原来的内容被擦除。用紫外线进行擦除只能对整个芯片擦除,而不能对芯片中个别需要改的存储单元单独擦除。

EPROM虽然即可读又可“写”,但它不能取代RAM。因为EPROM的编程次数是有限的;而且它写入的时间较长,即使对于EEPROM,擦除一个字节需要约10ms,写入一个字节大约需要10us,比SRAM或DRAM的时间长100~1000倍。

  • EEPROM(E2PROM)电可擦除可编程ROM

EEPROM不但可以利用电压的高低来写入数据,还可以利用电压的高低清除EEROM所存储的数据。EEPROM在数据清除时还可以针对个别的存储单元进行清除操作,比起EPROM需要整个清除数据方便许多。EEPROM的数据存储保持能力可以长达10年,而数据清除再被规划的次数可以达到一万次以上,因此EEPROM的使用比EPROM更为普遍,而且更受欢迎。

  • Flash ROM(闪速存储器)

Flash ROM 具有结构简单、控制灵活、编程可靠、加可电擦写快捷的优点,而且集成度可以都做得很高,它综合了前面的所有优点:不会断电丢失数据,快速读取,可电擦写可编程,因此在手机,PC,PPC等电器中成功地获得了广泛的应用。

4.Flash Memory的种类

Flash memory是嵌入式系统中重要的组成部分,它在嵌入式系统中的功能可以和硬盘在PC中的功能相比。它们都是用来存储程序和数据的,而且可以在掉电的情况下继续保存数据使其不会丢失。

Flash memory(闪速存储器)作为一种安全、快速的存储体,具有体积小,容量大,成本低,掉电数据不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。根据结构的不同可以将其分为NOR FlashNAND Flash两种。Flash Memory具有的特点如下:

  • 区块结构

Flash Memory在物理结构上分成若干个区块,区块之间相互独立。比如NOR Flash把整个存储区分成若干个扇区(Sector),而NAND Flash把整个存储区分成若干个块(Block)。

  • 先擦后写

由于Flash Memory的写操作只能将数据位1写成0,不能从0写成1,所以在对存储器进行写之前必须先执行擦除操作,将预写入的数据位初始化为1,擦操作的最小单位是一个区块,而不是单个字节。

  • 操作指令

除了NOR Flash的读,Flash Memory的其他操作不能像RAM那样,直接对目标地址进行总线操作。比如执行一次写操作,它必须输入一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入到Flash Memory中。

  • 位反转

由于Flash Memory固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误。这就是位反转。位反转无法避免,只能通过其他手段对结果进行事后处理。

  • 坏块

由于Flash Memory在使用过程中,可能导致某些区块的损坏。区块一旦损坏,将无法进行修复。如果对已损坏的区块进行操作,可能带来不可预测的错误。尤其是NAND Flash在出厂时就可能存在这样的坏块(已经被标识出)。

  • NOR Flash

NOR Flash的特点是应用程序可以直接在闪存中运行,不需要再把代码读到系统RAM中运行。NOR Flash的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但很低的擦除和写入速度大大影响了它的性能。

  • NAND Flash

NAND Flash的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快,这也是为何很多U盘采用NAND Flash作为存储介质的原因。应用NAND Flash的困难在于闪存和需要特殊的系统接口。

  • NOR Flash和NAND Flash各自的典型特征和不同点

1.性能差异

NOR Flash的读速度比NAND Flash稍快一些

NAND Flash的写入速度比NOR Flash快很多

NAND Flash的擦除速度远比NOR Flash的快很多。大多数写入操作需要先进行擦除操作。

NAND Flash的随机读取能力差,适合大量数据的连续获取。

2.接口差异

NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND Flash地址、数据和命令共用8位总线,每一次读写都要使用复杂的I/O接口串行地存取数据,8个引脚用来传送控制、地址和资料信息。

NAND Flash读和写操作采用521B的块,有点像硬盘的管理操作。因此,基于NAND的闪存可以取代硬盘或其他块设备。

3.容量和成本

NAND Flash的单元尺寸几乎是NOR Flash的一半,由于生产过程更为简单,NAND Flash结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

NOR Flash容量一般较小,通常在1MB~8MB之间。而NAND Flash只是用在8MB以上的产品中,这也说明NOR Flash主要应用在代码存储介质中,NAND Flash适合用于资料存储。

4.可靠性和耐用性

寿命(耐用性):在NAND Flash中每个块的最大擦写次数是一百万次,而NOR Flash的擦写次数是十万次

位交换:所有Flash Memory器件都受位交换现象的困扰。在某些情况下(很少见,NAND Flash发生的次数要比NOR Flash多),一个比特位会发生反转或被报告反转了。

坏块处理:NAND Flash中的坏块是随机分布的。以前曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND Flash需要对介质进行初始化扫描以发现坏块,并对坏块进行标记不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。

5.易用性

可以非常直接地使用基于NOR Flash,可以像其他内存那样连接,并可以在上面直接运行代码。

由于需要I/O接口,NAND Flash要复杂得多。各种NAND Flash的存取方法因厂家而异。在使用NAND Flash时,必须先写入驱动程序,才能继续执行其他操作。向NAND Flash写入数据需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着NAND Flash上自始至终都必须进行虚拟映像。

6.软件支持

当讨论技术支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和Flash Memory管理算法的软件,包括性能优化。

在NOR Flash上运行代码不需要任何的技术支持。而在NAND Flash上进行同样的操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND Flash和NOR Flash在进行写入和擦除时都需要MTD。

7.市场定位

根据前面多介绍的NAND Flash和NOR Flash的特点,两者各自拥有相应的不同应用。一般来说,NOR Flash用于对数据可靠性要求较高的代码存储、通讯产品、网络处理等领域。而NAND Flash则用于对容量要求较高的MP3、存储卡、U盘等领域。正是如此,NOR Flash也被称为代码闪存(Code Flash),而NAND Flash也被称为数据闪存(Data Flash)。

摘自《嵌入式系统设计师教程》一书。

 

《读书之法,在循序而渐进,熟读而精思。——朱熹》

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章