NAND中MLC与SLC的差别

最近工作涉及到ANROID向6410移植的问题,由于只有一个开发板让别人先调试,我自己就先恶补下FLASH驱动这方面的基础。

       首先是存取次数。MLC架构理论上只能承受约1万次的数据写入,而SLC架构可承受约10万次,是MLC的10倍。这个1万次指的是数据写入次数,而非数据写入加读取的总次数。数据读取次数的多寡对闪存寿命有一定影响,但绝非像写入那样严重。 
      其次是读取和写入速度。这里仍存在认识上的误区,所有闪存芯片读取、写入或擦除数据都是在闪存控制芯片下完成的,闪存控制芯片的速度决定了闪存里数据的读取、擦除或是重新写入的速度。SLC技术被开发的年头远早于MLC技术,与之相匹配的控制芯片技术上已经非常成熟。 
     第三是功耗。SLC架构由于每Cell仅存放1bit数据,故只有高和低2种电平状态,使用1.8V的电压就可以驱动。而MLC架构每Cell需要存放多个bit,即电平至少要被分为4档(存放2bit),所以需要有3.3V及以上的电压才能驱动。 
     第四是出错率。在一次读写中SLC只有0或1两种状态,这种技术能提供快速的程序编程与读取,简单点说每Cell就像我们日常生活中使用的开关一样,只有开和关两种状态,非常稳定,就算其中一个Cell损坏,对整体的性能也不会有影响。在一次读写中MLC有四种状态(以每Cell存取2bit为例),这就意味着MLC存储时要更精确地控制每个存储单元的充电电压,读写时就需要更长的充电时间来保证数据的可靠性。它已经不再是简单的开关电路,而是要控制四种不同的状态,这在产品的出错率方面和稳定性方面有较大要求,而且一旦出现错误,就会导致2倍及以上的数据损坏,所以MLC对制造工艺和控制芯片有着更高的要求。 
      第五是制造成本。MLC技术原来每Cell仅存放1bit数据,而现在每Cell能存放2bit甚至更多数据,这些都是在存储体体积不增大的前提下实现的,所以相同容量大小的MLC NAND Flash制造成本要远低于SLC NAND Flash。

/******************************************************************************************/

      具体一颗FLASH是MLC还是SLC,可以通过FLASH的规格书可以看出来。软件中可以直接从读出的FLASH ID信息中判断出来的,具体在三星的软件中,采用:

      if (((nand->cellinfo >> 2) & 0x3) == 0) {    //恰好IO3 IO2是00
                 nand_type = S3C_NAND_TYPE_SLC;  

                .......

        }

        else

        {

                nand_type = S3C_NAND_TYPE_MLC;

        }

除非一个cell采用2 Level是SLC的,其它全都是MLC的。

你可能感兴趣的:(制造,生活,IO,Flash,存储,三星)