闪存性能参数
百度百科 发表于:12年05月08日 11:44 [转载] DOIT.com.cn
页数量
前面已经提到,越大容量闪存的页越多、页越大,寻址时间越长。但这个时间的延长不是线性关系,而是一个一个的台阶变化的。譬如128、256Mb的芯片需要3个周期传送地址信号,512Mb、1Gb的需要4个周期,而2、4Gb的需要5个周期。
页容量
每一页的容量决定了一次可以传输的数据量,因此大容量的页有更好的性能。前面提到大容量闪存(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字节页容量提高写性能两倍以上。
块容量
块是擦除操作的基本单位,由于每个块的擦除时间几乎相同(擦除操作一般需要2ms,而之前若干周期的命令和地址信息占用的时间可以忽略不计),块的容量将直接决定擦除性能。大容量 NAND型闪存的页容量提高,而每个块的页数量也有所提高,一般4Gb芯片的块容量为2KB×64个页=128KB,1Gb芯片的为512字节×32个页=16KB。可以看出,在相同时间之内,前者的擦速度为后者8倍!
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%。
频率
工作频率的影响很容易理解。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。
