利用TRIM为固态盘加速
如果到现在你还没有听说过TRIM,那么就加入不断壮大的发起者行列吧,其中包括固态盘制造商、操作系统开发商以及数据存储厂商。 越来越多的公司开始转向采用TRIM命令。TRIM命令是最新ATA规格中数据集管理特性的一个子集,可以帮助提高固态盘的速度,最终提升固态盘的整体读写性能。 半导体市场研究公司Objective Analysis的固态盘分析师Jim Handy表示,因为在固态盘上和操作系统中实施TRAM命令十分简单,因此在不远的将来TRIM命令将被人们广泛应用。 他说:“我预计到2010年夏季所有固态盘都将采用TRIM。” 现在主要的固态盘厂商都已经在他们的固态盘中提供了TRIM支持。英特尔通过对现有驱动器进行固件升级做到了这一点。美光最新的6Gb SATA驱动器支持TRIM,STEC和Fusion-io也提供了TRIM支持。另外Linux和Windows操作系统同样也增加了TRIM支持。 回收未使用固态盘数据块 TRIM命令可以让操作系统告诉驱动器哪个数据块是不再使用的;否则固态盘控制器就不知道去回收这些未使用的数据块。 Handy表示:“TRIM对于固态盘来说是个福音。” 他认为TRIM的简化可以大幅度减少写入放大(Write amplification),同时允许固态盘更好地在后台预擦除闲置的数据块,以便让这些数据块更快地用于新的写入操作。 SandForce首席技术官Radoslav Danilak表示,需要谨记一点,那就是操作系统的角色。 Danilak表示:“固态盘知道可以删除和回收哪些过期数据,但是它不知道操作系统已经决定删除哪些数据,直到操作系统为了新的信息而重新使用逻辑块地址。” Danilak表示:“使用TRIM命令的好处是,固态盘可以通过过期数据和操作系统删除的数据来访问LBA,以此来提高性能。TRIM唯一的缺点就是,如果在固态盘固件中实施得很糟糕,那么反而会影响正常的驱动器操作。” STEC固态盘技术营销高级经理Scott Shadley表示,如果TRIM允许固态盘完全忽略一个LBA范围的数据,那么这是一件好事,但是最终结果可能是毫无用处。 对Shadley来说,真正的问题是,如果正在运行损耗均衡的话,那么LBA范围并不一定反映SSD闪存的物理地址序列。 Shadley表示:“这意味着固态盘仍然要面临如何在设备内部迁移数据以真正释放空间的问题。” Shadley表示:“如果这个LBA范围反映了所有介质的页面,那么实际上没有一个块或者最小可擦除单位是空闲的。这导致损耗均衡变得更加复杂,并且进一步增加写入放大。通过计算可以发现,TRIM只适合于哪些损耗均衡过程实际上并没有有些节约或者延长驱动器寿命或者性能的固态盘。”