第三章 磁盘大挪移——磁盘原理与技术 详解
第一十零节 固态存储介质和固态硬盘
将多个这样的晶体管排列在一起形成阵列,就可以同时操作多个比特了。NAND就是利用大量这种晶体管有序排列起来而成的一种Flash芯片。如图3-35所示为一片16GB容量的Flash芯片的逻辑方框图。每4314×8=34512个Cell逻辑上形成一个Page,每个Page中可以存放4KB的内容和218B的ECC校验数据,Page也是Flash芯片IO的最小单位。每128个Page组成一个Block,每2048个Block组成一个区域(Plane),一整片Flash芯片由两个区域组成,一个区域存储奇数序号的Block,另一个则存储偶数序号的Block,两个Plane可以并行操作。Flash芯片的Page大小可以为2122B(含ECC)或者4313B(含ECC),一般单片容量较大的Flash其Page Size也大。相应地,Block Size也会根据单片容量的不同而不同,一般有32KB、64KB、128KB、512KB(不含ECC)等规格,视不同设计而定。

图3-35 Flash芯片逻辑图
如图3-36所示为Intel X-25M固态硬盘的拆机图,可以看到它使用了10片NAND Flash芯片,左上方为SSD控制器,左下方为RAM Buffer。最左侧为SATA物理接口。
图3-36 Cell阵列有序排布图
如图3-37所示为某SSD控制器芯片的方框图。其中包含多个逻辑模块,外围接口部分和底层供电部分我们就不去关心了。这里将目光集中在右半边,其中8051CPU通过将ROM中的Firmware载入IRAM中执行来实现SSD的数据IO和管理功能。Flash Controller负责向所有连接的NAND Flash芯片执行读写任务,每个NAND芯片用8b并行总线与Flash Controller上的每个通道连接,每时钟周期并行传递8b数据。Flash Controller与Flash芯片之间也是通过指令的方式来运作的,地址信息与数据信息都在这8位总线上传送,由于总线位宽太窄,所以一个简单的寻址操作就需要多个时钟周期才能传送完毕。芯片容量越大,那么地址也就越长,寻址时间也就越长,所以,对于小块随机IO,Flash会随着容量的增加而变得越来越低效。新的Flash芯片已经