NAND FLASH读写速度计算方法详解 | 您所在的位置:网站首页 › flash读写速度与哪些东西有关 › NAND FLASH读写速度计算方法详解 |
Nand Flash读写速度的计算方法 在下面的部分,我们以Micron的Nand Flash芯片为例,看一下Nand Flash的访问速度(Write / Read)是如何计算的?我们可以利用Datasheet提供的Read / Program / Erase操作时序图进行逐项累加,并通过一定的公式推导来完成。
以下图为例,这是一个相当复杂的图示。它包含两部分(target)。每个target有两个LUNs (Logic Unit)。每个都是完全独立的。但LUNs can do interleaved operations. 如下图所示:LUN1 和LUN2 在同一个target中。这样的好处是:最大化带宽和降低干扰。
上述设备的参数具体情况如下:
下面以Synchronous Interface为例进行Nand Flash访问速度的计算: 1. Read operation Read a single page 消耗时间计算如下: 7 * tCAD (Send address and command) + (tWB + tR) (Read data from the NAND Flash Array into the data register) + tdqs * 4320(Transfer a page of data out)
tCAD = 25ns tWB = 100ns tR = 25us tdqs = 0.5 tCK (minimum) tCK = 12ns (minimum) Total Time: 7 * 25ns + 100ns + 25000ns + 0.5 * 12ns * 4320 = 51195ns Data Transferred: 4320 bytes Bandwidth: 4320 bytes / 51.195us = 84.4MB/s 主要特性: 1) 页大小为: 4K + 224 Bytes。 2) 采用DQS的上升沿和下降沿同时采集数据来进行传输。
2 LUN Four-plane page read The time needed: [ (7 * tCAD + tWB + tDBSY) * 3 + (7 * tCAD + tWB + tDBSY) * 3 + (7 * tCAD + tWB) + (7 * tCAD + tWB + tR) + [(7 * tCAD + tCCS + tDQSCK + tdqs * 4320)] * 8 Note: tCAD = 25ns tWB = 100ns tDBSY = 0.5us = 500ns tR = 30us = 30000ns (for multi-plane read) tdqs = 0.5tCK tCK = 12ns tCCS = 200ns tDQSCK = 20ns
tTime = [ (175ns + 100ns + 500ns) * 3 + (175ns + 100ns + 500ns) * 3 + (175ns + 100ns) + (175ns + 100ns + 30000ns) + [(175ns + 200ns + 20ns + 0.5 * 12ns * 4320)] * 8 = 2325ns + 2325ns + 30550ns + 210520ns = 245720ns Data transferred: 4320 * 4 * 2 = 34560bytes Bandwidth: 34560 bytes / 245.720us = 140.6MB/s
Device that has 2 independent targets 每个target是完全独立的,因此相应的速度在理论上为倍数关系。 此种情况下的访问速度为倍数关系: 2 * 140.6MB/s = 281.2MB/s. 2. Program operation Single program operation 写操作的时间消耗为: 6 * tCAD (Send address and command) + tADL + tDQSS + tdqs * 4320(Transfer the data into the Flash) + tCAD (Program confirm command) + tWB + tPROG (Program the Flash Array time) =
tCAD = 25ns tADL = 70ns (Minimum) tDQSS = 0.75tCK(minimum) tdqs = 0.2tCK (minimum) tWB = 100ns tPROG = 160us tCK = 12ns tTime = 150ns + 70ns + 0.75tCK + 0.2tCK * 4320 + 25ns + 100ns + 160us = = 150ns + 70ns + 9ns + 10368 ns + 25ns + 100ns + 160000ns = 170728ns = 170.722us Data transferred: 4320bytes Bandwidth = 4320bytes / 170.722us = 25.3MB/s
2 LUN Four-plane program operation 先送命令和数据到4 planes,然后执行写操作。 整个写的时间消耗为: [tCAD + 4 * tCAD + tADL + tDQSS + tdqs * 4320 + tCAD + tWB + tDBSY] * 3 + [tCAD + 4 * tCAD + tADL + tDQSS + tdqs * 4320 + tCAD + tWB] + [tCAD + 4 * tCAD + tADL + tDQSS + tdqs * 4320 + tCAD + tWB + tDBSY] * 3 + [tCAD + 4 * tCAD + tADL + tDQSS + tdqs * 4320 + tCAD + tWB + tPROG] = = [tCAD + 4 * tCAD + tADL + tDQSS + tdqs * 4320 + tCAD + tWB + tDBSY] * 6 + [tCAD + 4 * tCAD + tADL + tDQSS + tdqs * 4320 + tCAD + tWB] * 2 + tPROG
tCAD = 25ns tADL = 70ns(Minimum) tDQSS = 0.75tCK tdq = 0.2tCK tCK = 12ns tPROG = 160000ns tDBSY = 500ns tWB = 100ns Total time needed: [125ns + 70ns + 0.75 * 12ns + 0.2 * 12ns * 4320 + 25ns + 100ns + 500ns] * 6 + [125ns + 70ns + 0.75 * 12ns + 0.2 * 12ns * 4320 + 25ns + 100ns] * 2 + 160000ns = 67182ns + 21376 + 160000ns = 248558ns
Data transferred: 4320 bytes * 4 * 2 = 34560 bytes Bandwidth: 34560 bytes / 248.558 us = 139.0MB/s
Device that has 2 targets 每个target是完全独立的,因此相应的速度在理论上为倍数关系。 即:139.0 MB/s * 2 = 278.2MB/s 3. Erase operation Erase a single block (See Figure 78 at page 99) Erase的时间消耗为: 5 * tCAD (Send command and block address) + tWB + tBERS (Block erase time)
tCAD = 25ns tWB = 100ns tBERS = 3ms tTime = 5 * 25ns + 100ns + 3000000ns = 3000225ns = 3000.225us Data erased: 128 pages * 4320 bytes/page = 552960bytes Bandwidth = 552960 bytes / 3000.225us = 184.3MB/s
2 LUN Erase 4-plane block operation 整个Erase操作的时间消耗为: (5 * tCAD + tWB + tDBSY) * 3 + (5 * tCAD + tWB) + (5 * tCAD + tWB + tDBSY) * 3 + (5 * tCAD + tWB + tBERS) =
tCAD = 25ns tWB = 100ns tDBSY = 0.5us = 500ns tBERS = 3ms = 3000000ns
tTime = 6 * (125ns + 100ns + 500ns) + (125ns + 100ns) * 2 + 3000000ns = 4350ns + 450ns +3000000ns = 3004800ns = 3004.800us Data Erased: 2 * 128 pages * 4320 bytes/page * 4 planes = 4423680 bytes Bandwidth = 4423680 bytes / 3004.8 us = 1472.2MB/s
Two target 4-plane erase operation 每个target是完全独立的,因此相应的速度在理论上为倍数关系。 即:2 * 1472.2MB/s = 2944.4 MB/s
写状态: 首先将坏块管理中的地址与当前块地址对照,排除无效块。 无效块读时钟置0,定义输出地址信号从输出地址端口输出 无效块读时钟置1,输出地址加1,将当前地址下的数据输出(此处的数据就是存储的无效块地址),判断如果坏块管理中心输出的坏块地址大于当前访问的块地址,则证明该地址为有效块(坏块肯定是少数,如果不是第一块则就是后面的,地址肯定大于当前有效块地址) 命令80H或者81H 之后写五个循环地址, 之后等待一个ADL时间, 然后将一页4K的数据从fifo中输入到flash中 读fifo时钟置1,保证fifo写地址大于读地址(此处fifo读地址就是我们当前flash的写地址),flash写有效,flash数据口输出当前fifo数据写完一个字节,读fifo时钟置0,也就是说在读fifo时钟为1的时候才能进行fifo数据的往flash中的写操作。Fifo读地址加1,且4k字节计数加1,Flash写锁存关闭,读fifo时钟置1,判断4k字节是否写完,如果没写完则继续写,如果写完4K字节,则 命令11H或者10H 写无效命令无效,如果是0面则等待tDBSY,面加1,如果是1面则直接面加1,加1后没有到第111层,则继续写该层该页的地址读该页的数据。如果到了第111层,则加页再执行0到7层的页写。如果64页写满了,块地址加1,块地址加之后需要判断是否为无效块,再进行页写。 |
CopyRight 2018-2019 实验室设备网 版权所有 |