技术分析 闪存接口标准对速度的影响
我相信大家其实更关心闪存接口标准不同,会对速度造成何种影响吧,下面我就来稍微说明下。
从图中可以看到,假设我们写入一个page(页)的数据:
1. 数据是首先存到寄存器里,而传输的速度是25ns一个时钟周期,每个时钟周期为1个字节,图中的话就是需要 2112 X 25ns
2. 数据在寄存器里再写入到闪存上,整个操作耗时大约220us(页)。
如果要把数据从闪存里某个页读取出来:
1. 数据从闪存读取到寄存器,耗时大约25us(页)
2. 数据从寄存器输出到主机,耗时25ns每个字节,和上面一样也就是2112 X 25ns。
如果我们需要擦除数据,则必须按照块的大小来做擦除操作:
如图一个块就等于64个页的容量,做擦除操作需要大约500us时间。
从前面的图中,我们可以算算这颗低容量的古老SLC闪存传输速度。
假设8KB的持续写入,那么大概消耗的时间就是:[(25ns X 2112)+ 220us ] X 4 = 大约1.09ms 相当于传输率:7.3MB/s
假设8KB的持续读取,那么大概消耗时间就是:[ 25us +(25ns X 2112 ) ] X 4 = 大约0.311ms 相当于传输率:25.7MB/s
擦除需要的时间是每个块500us(0.5ms),那么相当于传输率:256MB/s
接口标准影响的就是前面那张图中红色的地方(每个时钟周期的时间和处理数据的速度。)那么我们把上一章节的数据拿来套上:
上图中的接口标准是Legacy,也就是40MT/s,所以时钟周期是25ns。
ONFI 1.0接口标准速度为50MT/s,就是前面图中红色的地方时钟周期从25ns缩短到20ns。
ONFI 2.0接口标准速度为166~200MT/s,加入了DQS信号(DDR)和源同步时钟,那么就是前面图中红色的地方时钟周期为12ns ~ 10ns(DQS可以让一个时钟周期处理2次数据,那么就是变相的等于6ns ~ 5ns 一次数据交换。)
而三星和东芝的DDR Toggle NAND 1.0接口标准速度为133MT/s,加入了DQS信号(DDR),就是前面图中红色的地方时钟周期为15ns。(DQS可以让一个时钟周期处理2次数据,那么就是变相的等于7.5ns 一次数据交换。)
下面黑色的数据,取决于使用颗粒参数,一般来说MLC的写入(编程)时间是SLC的3倍以上,擦除消耗的时间也大很多。(造成了写入性能低很多,垃圾回收时需要更多的时间)。
新工艺的颗粒(例如上图为L74A,25nm的Intel颗粒),厂商在颗粒内部,通过增加了新的寄存器来提高并行处理传输率。2个Plane甚至4个Plane的概念来变相翻倍传输率。由于内部Page(页)尺寸的增大(这里为8KB),也提高了持续数据传输率。(当然寄存器和颗粒间传送时间也由于Page尺寸增大而增加了,因而会造成随机传输率的降低。)
结合本文的SSD和上面的闪存技术分析,我们接下去看看浦科特和美光的SSD在固件上做法的小区别。
|