随机读取,擦除(使存储内容从0变1),和写入(使存储内容从1变0)是对闪存的三种基本操作。任何闪存器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。随着工艺和电路设计上的提高,NOR型闪存的随机读取速度基本在百ns以内(如Numonyx的主要产品系列均在110ns以内),而同步读取速度最高可达333MHz(如Numonyx某具有LPDDR接口的NOR型闪存);对NOR型闪存进行擦除一般是以64K"128KB的块为整体进行的,通常执行一个擦除操作的时间约为0.2"4s;对NOR型闪存的写入可以按照缓冲区大小,双字节甚至比特操作,其中按比特写入可使任一比特由1变成0,NOR的写入速度除了与产品工艺和设计有关外,还与写入缓冲区容量有着密切关系。目前,市场上的闪存产品主要都采用不高于64字节的写入缓冲区容量,例如常见的S29GL和SSF29产品系列等。64字节的写入缓冲区容量意味着一次写入操作最大能写入的地址空间范围为64字节。在实际应用中,工程师总是希望存储器具有较快的写入速度,但往往容易忽略缓冲区大小和写入速度的关系。 最近,Numonyx公司开发推出了基于65nm技术,最高可达1024字节写入缓冲区容量的NOR型M29EW闪存。本文对此产品的写入缓冲区大小与写速度的关系进行了详细分析。推荐工程师在实际应用中,可以通过选择合适的尽可能大的写入缓冲区大小,最大可能的优化擦写速度。
提高百倍的平均每字节写入速度
Numonyx公司的M29EW闪存,有两种写入方式。一种是字写入方式(Word program),每次可对单个或者两个字节进行写入。另一种是缓存写入方式(Buffer program),根据选择的写入缓冲区大小,每次可对1"1024个字节进行写入。字写入方式具有较高的灵活性,可以对任意单个地址空间进行写入操作,但写入时间较长,在需要对连续地址空间进行写入时,写入效率较低。缓存写入方式,不但同样具备单字节或双字节写入能力,最多还可以一次性写入连续的1024字节的地址空间。本文选取了M29EW系列中的128MB产品,重点对缓存写入方式进行分析。使用不同的写入缓冲区大小对连续地址空间进行写入,发现,采用大的写入缓冲区单次写入时间较长。在-40C的环境温度下,用2字节写入缓冲区大小写入2字节的连续地址空间大概需要200us,在相同测试条件,用1024字节的写入缓冲区对1024字节连续地址空间进行写入大概需要近700us。但是采用大的写入缓冲区一次写入操作可以对更多的地址空间进行操作。这样平均到每字节所需的平均写入时间,反而是采用大的写入缓冲区时间短,如图1所示。图1中的两条线分别表示-40C和85C的使用环境温度,横坐标表示采用的写入缓冲区大小,纵坐标是平均每字节的写入时间,为方便结果比较,纵坐标采用了对数坐标。由图可得,同样在-40C的环境温度下,用2字节的写入缓冲区大小每字节的平均写入时间大约是100us,而采用64字节的写入缓冲区大小,平均每字节的写入时间就减少到10us以下,如果采用1024字节的写入缓冲区大小,平均每字节所需的写入时间已经低于1us!需要说明的是,所要写入的数据不同也会对写入时间造成较大的影响,为方便比较,本文对各种写入操作采用相同的写入内容,这里测试的结果重点也放在采用不同缓冲区大小的速度相对值的比较上,而不是绝对值。
图1. 采用不同写入缓冲区大小写入与平均每字节写入时间的关系
由于采用大的写入缓冲区可以提高单字节的写入速度,因此当工程师进行大块字节的擦写操作时,采用尽可能大的写入缓冲区可以最大的提高擦写效率。例如,当需要对一块连续128KB的地址空间进行擦写操作时,可选择采用不同的写入缓冲区大小进行写入,图2给出了写入缓冲区大小与完成操作的写入时间的关系。不难看出,与图1相同,采用1024字节写入缓冲区大小所需时间最短,相比2字节的写入缓冲区大小,速度提高百倍以上。[page]
图2. 采用不同的写入缓冲区大小写入128KB连续地址空间所需时间
除写入缓冲区大小外,由上面的数据还可以发现,适当的降低写入时闪存所处的环境温度,也可以对写入速度有所提高。除此之外,适当的提高写入电压,也会提升写入速度。但是对于一个复杂的电子系统,内部操作电压和环境温度往往受其他器件影响难以控制,因此改变温度和写入电压对于擦写速度的提高效果在实际应用中往往存在较大的局限性。相比,选择较大的写入缓冲区大小仅对闪存本身进行操作,在相同环境条件下是提高写入效率最简便易行的方法。
对小范围地址空间的高效写入
还有一个在实际应用中值得工程师关注的问题是,当需要写入的地址空间仅仅是小范围内的,如只有512字节或者更低到64字节,该如何选取写入缓冲区大小才会具有较高的写入速度?对此,采用不同的写入缓冲区大小(64-1024字节)分别对64-512字节的连续地址空间进行写入操作,记录各自所用的写入时间,如图3所示。这里,之所以最低考虑到64字节地址空间,是因为写入到NOR型闪存的数据量通常要高于64字节。如果实际应用中只需要写入更少的地址空间,如只有两字节地址范围,本文的结果依然适用。在使用1024字节的写入缓冲区大小去写入512字节的地址空间时,缓冲区中的前512个字节填入所需要写入的数据,其余用冗余数据(FFh)来填充。结果如图3所示,每条线代表不同的地址空间大小,横坐标表示采用的写入缓冲区大小,纵坐标表示完成所有地址空间写入所用的时间。结果表明,当对64字节连续地址空间进行写入时,采用大于64字节的写入缓冲区大小的写入时间基本相当;同样,当对连续空间大小为512字节时,512字节与1024字节的写入缓冲区大小所用写入时间基本一致,而较低的写入缓冲区大小,如64/128/256字节,则所需时间明显增加。但考虑到用1024字节的写入缓冲区相比使用512字节缓冲区需要多发送512个字节的冗余数据,会耗费512个命令周期时间,因此选择512字节缓冲区大小具有最高的写入效率。因此,当只需写入较小范围的地址空间时,可以选择跟写入地址空间大小相同的缓冲区大小,写入效率最高。当然在实际应用中,如果为了简化操作需要采用固定的写入缓冲区大小,使用大容量的写入缓冲区由于具有较高的平均每字节写入速度,依然具有较高的写入效率。[page]
图3. 对小地址空间(64"512字节)进行写入操作时,采用不同缓冲区大小与写入时间关系
大容量写入缓冲区的产品优势
再来对比Numonyx公司的M29EW与市场上的同类产品S29GL256P。M29EW具有1024字节的写入缓冲区大小而S29GL256P最大的写入缓冲区为64字节。为了说明问题,这里同时对两种闪存芯片相同大小的地址空间进行擦写操作,如图4所示。测试结果表明,M29EW整体的写入时间是S29GL256P的30%,写入效率远远高于S29GL256P。究其原因很简单,M29EW采用1024字节的写入缓冲区大小,使得其在写入时间相比最高采用64字节写入缓冲区的S29GL256P,优势非常明显。
图4. M29EW与S29GL256P写入速度比较
(均采用产品最大写入缓冲区大小,M29EW是1024字节而S29Gl256P是64字节)
结论
综上所述,我们对Numonyx公司的NOR型闪存M29EW进行了测试分析,并与市场上同类的S29GL系列产品进行了比较。分析结果表明,对于需要经常进行读写操作的电子产品,如移动电子设备,汽车电子设备来说,在设计过程中采用尽可能大的缓冲区大小,提高平均每字节写入速度,是优化提高读写速度的关键,同时也是最简单易行的方法。在执行相同的写入操作时,选用1024字节的写入缓冲区大小,可使写入速度相比使用64字节缓冲区至少提高2.5倍以上。
上一篇:面向纳电子时代的非易失性存储器
下一篇:浅析嵌入式存储系统设计方法
推荐阅读最新更新时间:2024-03-16 13:59