NAND闪存特点及决定因素

描述

  内存和NOR型闪存的基本存储单元是bit,用户可以随机访问任何一个bit的信息。而NAND型闪存的基本存储单元是页(Page)(可以看到,NAND型闪存的页就类似硬盘的扇区,硬盘的一个扇区也为512字节)。每一页的有效容量是512字节的倍数。所谓的有效容量是指用于数据存储的部分,实际上还要加上16字节的校验信息,因此我们可以在闪存厂商的技术资料当中看到“(512+16)Byte”的表示方式。目前2Gb以下容量的 NAND型闪存绝大多数是(512+16)字节的页面容量,2Gb以上容量的NAND型闪存则将页容量扩大到(2048+64)字节。

  NAND型闪存以块为单位进行擦除操作。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存的基本操作。一般每个块包含32个512字节的页,容量16KB;而大容量闪存采用2KB页时,则每个块包含64个页,容量128KB。

  每颗NAND型闪存的I/O接口一般是8条,每条数据线每次传输(512+16)bit信息,8条就是(512+16)×8bit,也就是前面说的512 字节。但较大容量的NAND型闪存也越来越多地采用16条I/O线的设计,如三星编号K9K1G16U0A的芯片就是64M×16bit的NAND型闪存,容量1Gb,基本数据单位是(256+8)×16bit,还是512字节。

  寻址时,NAND型闪存通过8条I/O接口数据线传输地址信息包,每包传送8位地址信息。由于闪存芯片容量比较大,一组8位地址只够寻址256个页,显然是不够的,因此通常一次地址传送需要分若干组,占用若干个时钟周期。NAND的地址信息包括列地址(页面中的起始操作地址)、块地址和相应的页面地址,传送时分别分组,至少需要三次,占用三个周期。随着容量的增大,地址信息会更多,需要占用更多的时钟周期传输,因此NAND型闪存的一个重要特点就是容量越大,寻址时间越长。而且,由于传送地址周期比其他存储介质长,因此NAND型闪存比其他存储介质更不适合大量的小容量读写请求。

  决定NAND型闪存的因素有哪些?

  1.页数量

  前面已经提到,越大容量闪存的页越多、页越大,寻址时间越长。但这个时间的延长不是线性关系,而是一个一个的台阶变化的。譬如128、256Mb的芯片需要3个周期传送地址信号,512Mb、1Gb的需要4个周期,而2、4Gb的需要5个周期。

  2.页容量

  每一页的容量决定了一次可以传输的数据量,因此大容量的页有更好的性能。前面提到大容量闪存(4Gb)提高了页的容量,从512字节提高到2KB。页容量的提高不但易于提高容量,更可以提高传输性能。我们可以举例子说明。以三星K9K1G08U0M和K9K4G08U0M为例,前者为1Gb,512字节页容量,随机读(稳定)时间12μs,写时间为200μs;后者为4Gb,2KB页容量,随机读(稳定)时间25μs,写时间为300μs。假设它们工作在 20MHz。

  读取性能:NAND型闪存的读取步骤分为:发送命令和寻址信息→将数据传向页面寄存器(随机读稳定时间)→数据传出(每周期8bit,需要传送512+16或2K+64次)。

  K9K1G08U0M读一个页需要:5个命令、寻址周期×50ns+12μs+(512+16)×50ns=38.7μs;K9K1G08U0M实际读传输率:512字节÷38.7μs=13.2MB/s;K9K4G08U0M读一个页需要:6个命令、寻址周期×50ns+25μs+(2K+64)× 50ns=131.1μs;K9K4G08U0M实际读传输率:2KB字节÷131.1μs=15.6MB/s。因此,采用2KB页容量比512字节也容量约提高读性能20%。

  写入性能:NAND型闪存的写步骤分为:发送寻址信息→将数据传向页面寄存器→发送命令信息→数据从寄存器写入页面。其中命令周期也是一个,我们下面将其和寻址周期合并,但这两个部分并非连续的。

  K9K1G08U0M写一个页需要:5个命令、寻址周期×50ns+(512+16)×50ns+200μs=226.7μs。K9K1G08U0M实际写传输率:512字节÷226.7μs=2.2MB/s。K9K4G08U0M写一个页需要:6个命令、寻址周期×50ns+(2K+64)×50ns+ 300μs=405.9μs。K9K4G08U0M实际写传输率:2112字节/405.9μs=5MB/s。因此,采用2KB页容量比512字节页容量提高写性能两倍以上。

  3.块容量

  块是擦除操作的基本单位,由于每个块的擦除时间几乎相同(擦除操作一般需要2ms,而之前若干周期的命令和地址信息占用的时间可以忽略不计),块的容量将直接决定擦除性能。大容量NAND型闪存的页容量提高,而每个块的页数量也有所提高,一般4Gb芯片的块容量为2KB×64个页=128KB,1Gb芯片的为512字节×32个页=16KB。可以看出,在相同时间之内,前者的擦速度为后者8倍!

  4.I/O位宽

  以往NAND型闪存的数据线一般为8条,不过从256Mb产品开始,就有16条数据线的产品出现了。但由于控制器等方面的原因,x16芯片实际应用的相对比较少,但将来数量上还是会呈上升趋势的。虽然x16的芯片在传送数据和地址信息时仍采用8位一组,占用的周期也不变,但传送数据时就以16位为一组,带宽增加一倍。K9K4G16U0M就是典型的64M×16芯片,它每页仍为2KB,但结构为(1K+32)×16bit。

  模仿上面的计算,我们得到如下。K9K4G16U0M读一个页需要:6个命令、寻址周期×50ns+25μs+(1K+32)×50ns=78.1μs。

  K9K4G16U0M实际读传输率:2KB字节÷78.1μs=26.2MB/s。K9K4G16U0M写一个页需要:6个命令、寻址周期×50ns+ (1K+32)×50ns+300μs=353.1μs。K9K4G16U0M实际写传输率:2KB字节÷353.1μs=5.8MB/s 可以看到,相同容量的芯片,将数据线增加到16条后,读性能提高近70%,写性能也提高16%。

  5.频率工作频率的影响

  NAND型闪存的工作频率在20~33MHz,频率越高性能越好。前面以K9K4G08U0M为例时,我们假设频率为20MHz,如果我们将频率提高一倍,达到40MHz,则K9K4G08U0M读一个页需要:6个命令、寻址周期×25ns+25μs+(2K+64)×25ns=78μs。K9K4G08U0M实际读传输率: 2KB字节÷78μs=26.3MB/s。可以看到,如果K9K4G08U0M的工作频率从20MHz提高到40MHz,读性能可以提高近70%!当然,上面的例子只是为了方便计算而已。在三星实际的产品线中,可工作在较高频率下的应是K9XXG08UXM,而不是K9XXG08U0M,前者的频率目前可达33MHz。

  6.制造工艺

  制造工艺可以影响晶体管的密度,也对一些操作的时间有影响。譬如前面提到的写稳定和读稳定时间,它们在我们的计算当中占去了时间的重要部分,尤其是写入时。如果能够降低这些时间,就可以进一步提高性能。90nm的制造工艺能够改进性能吗?答案恐怕是否!目前的实际情况是,随着存储密度的提高,需要的读、写稳定时间是呈现上升趋势的。前面的计算所举的例子中就体现了这种趋势,否则4Gb芯片的性能提升更加明显。

  综合来看,大容量的NAND型闪存芯片虽然寻址、操作时间会略长,但随着页容量的提高,有效传输率还是会大一些,大容量的芯片符合市场对容量、成本和性能的需求趋势。而增加数据线和提高频率,则是提高性能的最有效途径,但由于命令、地址信息占用操作周期,以及一些固定操作时间(如信号稳定时间等)等工艺、物理因素的影响,它们不会带来同比的性能提升。

  1Page=(2K+64)Bytes;1Block=(2K+64)B×64Pages=(128K+4K)Bytes;1Device=(2K+64)B×64Pages×4096Blocks=4224Mbits

  其中:A0~11对页内进行寻址,可以被理解为“列地址”。

  A12~29对页进行寻址,可以被理解为“行地址”。为了方便,“列地址”和“行地址”分为两组传输,而不是将它们直接组合起来一个大组。因此每组在最后一个周期会有若干数据线无信息传输。没有利用的数据线保持低电平。NAND型闪存所谓的“行地址”和“列地址”不是我们在DRAM、SRAM中所熟悉的定义,只是一种相对方便的表达方式而已。为了便于理解,我们可以将上面三维的NAND型闪存芯片架构图在垂直方向做一个剖面,在这个剖面中套用二维的 “行”、“列”概念就比较直观了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • N

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分