闪存存储器是嵌入体系中常常运用的非易失性存储器。在根据FPGA的嵌入体系中,因为FPGA没有包括闪存,所以闪存始终是外置设备。因为闪存存储器能够在断电后坚持数据内容,它常常用于存储微处理器发动代码及其它需求在无电情况下持续坚持的数据。闪存存储器既适用于并行接口又适用于串行接口。并行闪存设备与串行闪存设备的底子存储技能是相同的。
不像SRAM,闪存不能经过简略的写入操作进行更新。对闪存设备的每一次写入操作都需求一个写指令,包括一组固定的读写操作序列。闪存在写入前需求先进行擦除。一切的闪存设备都被划分为必定数量的可擦模块,或扇区,二者的差异是可擦区域的巨细,根据闪存厂商和设备巨细而定。
长处
闪存存储器的首要的长处对错易失性。现代嵌入体系广泛运用闪存来存储发动代码和设置值,以及较大的数据模块如音频或视频流等。许多嵌入体系运用闪存作为硬盘驱动的低能耗、高稳定性的替代品。
相对与其它非易失性存储器,闪存因为下面四种原因愈加常用:
健壮性
可擦性
可重复擦写
成本低
闪存存储器能够与同享其它闪存设备同享总线,乃至与其它品种的外部存储器,如外部SRAM或SDRAM。
缺陷
闪存的首要缺陷是它的写入速度。因为你只能经过专用的指令写入闪存设备,每次闪存写入都需求多个总线转化操作。更进一步说,一旦送出写入指令,实践的写入时刻或许到达几微秒。根据时钟速度,实践写入时刻可达几百个时钟周期。因为扇区擦除遭到束缚,假如你需求改动闪存中的一个字数据,你有必要完结下面过程:
1. 仿制整个扇区的内容到暂时的缓冲区
2. 擦除整个扇区
3. 改动在缓冲区中的单个字数据
4. 缓冲区内容写回到闪存
这个流程导致闪存存储器设备的写入速度较慢。因为其糟糕的写入速度,闪存一般只用于存储有必要断电后坚持的数据。
最佳运用场合
闪存存储器适用于贮存任何你期望在断电后坚持的数据。常见的闪存运用与存储下面项目:
微处理器的发动代码
微处理器在体系开始时仿制到RAM中的运用程序代码
稳定的体系设置,例如:网卡MAC地址、校准数据、用户信息
FPGA参数图画
多媒体(音频、视频)
不适于运用场合
因为闪存存储器是写入速度较慢,不该运用闪存存储不需求断电后坚持的数据。假如能够运用易失性存储器时能够选用SRAM。运用闪存存储器的体系一般也会一起运用SRAM。
一个很不适于闪存的运用场合是在微处理器的运用程序代码的直接履行。假如这些代码的可写部分被布置在闪存中,这些软件底子不会作业,因为闪存不运用专用的写入指令便不能够写入。将运用程序代码贮存在闪存中的体系一般会在履行之前先将这些运用程序仿制到SRAM中。
闪存的品种
闪存设备有多种,最常用的品种如下:
CFI闪存 – 这是最常用的闪存存储器品种。它运用并行接口。CFI代表常见闪存接口,这是一切CFI闪存设备都固有的一种规范。SOPC Builder和Nios II processor都有对CFI闪存的内置支撑。
串行闪存 – 这种闪存运用串行接口以节约Pin脚和板上空间。因为许多串行闪存设备都有自己专用的接口协议,最好是先通读串行闪存设备的数据表然后进行挑选。Altera ECOS装备设备就是一种串行闪存。
NAND闪存 – NAND闪存是最近才鼓起的一种新式的闪存存储器。NAND闪存能够到达很高的数据容量,单个设备可高达数GB。相对于CFI闪存,NAND闪存的接口稍有变杂乱。它需求一个专用的控制器或是智能的初级驱动软件。你能够在Altera FPGA中运用NAND闪存,可是Altera不会供给任何内置的支撑。
修改:博子