无论是SSD还是HDD,在进行文件管理时并不是直接由操作系统管理每一个数据存储位置;而是控制IC将若干个空间看成一个数据簇,对于操作系统来说小的数据单位就是一个簇。以我们常用的HDD为例,在NTFS文件分区模式下,一个数据簇的大小为4KB或者8KB。也就是说,哪怕一个文件只含有1个字节它也要占用4KB的存储空间;且这种数据管理方式具有唯一性,一旦某个数据簇被使用,其它文件就无权再调用该数据簇。对于HDD来说,因为每个磁碟面只有一个读写磁头,即便这种簇管理方式会浪费一些空间,也不会造成太大的影响,况且每个簇也不会有读写次数的限制。
多通道技术实际上是在不同的颗粒之间展开的,我们可以形象地将其理解为一种“RAID 0”技术
对于SSD产品来说,情况就不一样了,因为NAND Flash的管理方式是按照“页(Page)”和“块(Block)”来管理的。每个Page的数据实际上就是一个数据簇,一般4KB或者8KB,这样在存储大量小文件时会造成比较严重的浪费;而且多通道数据技术大大增加了这种浪费的几率。例如对于一个16KB大小的文件来说,正常情况下只需要占用4个4KB的数据块即可:但在引入了8通道数据存储技术之后,控制IC会将文件分成8份进行存储,也就是占用8个Page。这种情况不仅会造成一定的浪费,而且进一步加剧了数据块的写入频率,对于SSD产品的寿命来说是非常不利的。
NAND型Flash颗粒的基本存储单元叫做Cell,如下图所示。通过在栅极的绝缘层中注入或者释放电子来达到存储数据的目的。所以NAND Flash的操作分为三种,注入电子叫做“Erase”、释放电子叫做“Program”、读取电子叫做“Read”。
由于Cell的充电和放电都需要借助高压来完成,所以会对Gate Oxide(栅极)造成损耗,因此
NAND FLASH是有Program/Erase的周期数限制的,对于SLC颗粒这个次数为8~10万次,MLC颗粒为2~3万次。
Program操作只能将电子释放,即写入0;写入0之后就不能再通过Program写入1,写入1只能通过Erase来实现。
让操作系统每次寻址精确到一个Cell将会带来复杂的地址线,让大容量变得遥不可及;所以工程师们使用了一种“串串烧”的方式将若干个Cell串接起来,一个串称为一个“Page(页面)”,然后将多个Page做成一个集合用一个栅极进行充电,则成为“Block(块)”。当前多数NAND Flash结构多为4KB组成一个Page,而64或者128个Page组成一个Block。Page是读取和写入的基本单位,而Block则是Erase操作的小单位。
NAND Flash中的页面组织方式
由于NAND FLASH的结构组织中,Block的size比较大(256KB或者512KB),而Block又是
Erase的基本单位,所以要对Block内的任何数据进行改写,必须先将不需要改写的旧数据读出,对整个Block进行擦除,然后再将新旧组合的数据写入。
二楼的,性能过剩?现在硬盘的速度远远低于内存的速度,已经成为整机性能的瓶颈,当硬盘的速度和内存接近的时候再说硬盘性能过剩还不迟