固态硬盘——Trim,IGC技术

随着固态硬盘SSD的大量上市,很多人都准备放弃机械硬盘。固态硬盘不像传统机械硬盘那么简单 ,就算买到了高性能的固态硬盘,不会用的话,同样无法发挥其性能。


对于机械硬盘来说,通常关注的是转速缓存容量(少数时候需要关注固件版本),在规格参数相同的情况下,各品牌的机械硬盘性能差别不会太大。不过对于固态硬盘来说就完全不是一回事了,对了固态硬盘本身没有一个行业内的明文规定,再加上它使用的是闪存颗粒,数据结构和存储方式与机械硬盘完全不同,因此不同品牌的固态硬盘产品的规格有很大的不同,单凭容量、颗粒数量和缓存是无法准确判断固态硬盘性能的。固态硬盘的性能表现不仅与容量、颗粒数量和缓存有关,而且与是否支持Trim技术、是否支持Garbage collection技术操作系统以及驱动程序的支持程度有关。


Trim技术

当一个文件被删除后,操作系统其实并没有删除数据,事实上,它只是在硬盘前得索引区里标记这块文件占用的区域为可覆盖的,所以下次数据将要再次写入的时候,可以覆盖写入这块被标记的区域。普通的机械硬盘可以直接覆写旧的区域,而固态硬盘进行的读写动作却与机械硬盘完全不同,而这就是固态硬盘在使用一段时间后性能直线下降的原因:在全部闪存被写满一遍后,没有从未被写过的快可以使用的情况下,闪存不会直接覆写区域,而是必须进行擦除之后,才能再次被用于写入。在固态硬盘闪存内,数据存储一般以(Page)为最小单位存储的(典型的为4KB),而128个页组成了一个(block),数据可以以4KB大小的页来读取和写入,但却只能以512KB(128页)的块大小来删除。当读取数据或者写入到一个没有被使用过得页山时,固态硬盘的速度是很快的,但是覆写数据的话,只能覆写数据到之前被操作系统标记为删除的区域:首先要把整个521KB块复制进缓存里,然后在缓存里删除整个4KB页,替换成新的数据,接着清空整个闪存内的整个512KB区域,并从缓存里把新的数据写回去。如果需要同时覆写很多的块,写入速度就会直线下降。为了解决这个问题,Trim技术就被开发了出来,通过Trim指令,操作系统在进行删除动作后,会通知固态硬盘的控制芯片该资料区块已可删除,固态硬盘便会在系统空闲时进行数据擦除动作,不让无用资料一直占用NAND Flash,这样在下一次写入数据时就不用再等待数据块擦除,而是能够直接进行写操作了,磁盘写入性能能够大幅提高。而目前只有Windows7和Windows2008 R2操作系统才支持Trim技术,所以在选择固态硬盘时不仅要选择支持Trim技术的固态硬盘产品,而且还要保证安装的是主流的Windows7Windows2008 R2操作系统。


Garbage collection技术

Garbage collection(垃圾回收技术),是固态硬盘专用的磁盘碎片整理技术,由于传统的磁盘碎片整理对固态硬盘来说完全没有用处,如果对固态硬盘进行了磁盘碎片整理反而会降低固态硬盘的性能,只有微软的下一代操作系统Windows8才支持对固态硬盘的磁盘碎片进行整理。因为读写机制与机械硬盘不同,对于目前的操作系统来说固态硬盘必须使用自己的磁盘碎片整理技术。Garbage collection技术的原理是在SSD空闲时,全盘扫描有效的页并合并整理起来变为一个包含全部有效页的块,而那些无效的页和块都将被完全清除。Garbage collection技术本身并不能大幅度改善固态硬盘性能,但与Trim相结合之后,就能事半功倍,让固态硬盘能够长时间保持良好的性能状态。Garbage collection技术经常被厂商用来“忽悠”用户,因为所有的固态硬盘都支持被动GC技术,而真正值得关注的是闲置Garbage collection技术(IGC),就是在固态硬盘闲置的时候进行碎片整理,和Trim结合就能让固态硬盘尽量保持最佳性能状态。


驱动要给力

很可惜的是Trim技术只有在AHCI模式下才能发挥作用。如果利用固态硬盘组建RAID,那么现有的操作系统(包括驱动程序)将不再把固态硬盘视为可Trim的,因此组建固态硬盘RAID将使Trim技术失去作用。我们只能等待一个给力的驱动在RAID中开启Trim。


分区要对齐

传统硬盘的基本存储但是是扇区,大小是512bytes,而固态硬盘的基本读写单位是页,常见大小为2KB/4KB。操作系统读写数据的基本单位是簇,在对硬盘进行分区操作时,系统通常是以512bytes/扇区为单位的,为了保持BIOS和操作系统相容性,固态硬盘也必须将每个页通过控制芯片模拟成若干个512bytes扇区。由于分区的时候分割的位置可由任何扇区开始,如果在分区的一开始就没有对齐固态硬盘页的边界,则该分区里的簇也会变成未对齐的状态。比如WindowsXP的分区程序是从第63个扇区开始的,也就是第31.5KB处,由于这个值不能被2KB/4KB整除,对应到固态硬盘在页之上模拟出得扇区时,正好会从某个页的后段开始,一旦操作系统对某一个未对齐的簇进行写操作,在固态硬盘上就会变成需要写入到两个实体页中。无形当中也就促使固态硬盘不得不增加一倍的操作量,性能下降也就是理所当然的了。因此只要固态硬盘上的分区处于未对齐状态,增加了无谓的SSD额外写入动作,固态硬盘的性能就不能完全发挥,而且未对齐的分区还会造成固态硬盘在连续写入小文件时,系统一顿一顿的。因此,固态硬盘的分区操作必须是在Windows7进行,或者通过专用的固态硬盘分区工具来进行分区,以达到分区对齐的目的,有效提高固态硬盘的读写性能。

posted on 2012-02-26 10:30 影天 阅读(...) 评论(...) 编辑 收藏

导航

公告