正在进行安全检测...

发布时间:2023-12-04 14:42:36

SSD固态硬盘的优缺点、选择要点及注意事项http://we.pcinlife.com/thread-1461925-1-1.html2010-7-7SSD固态硬盘,在较长时间的使用后,出现了读写性能下降的问题,我们现在要以我们的方式来看看如何解决这个问题,并告诉你面对市场上琳琅满目的SSD产品,应该如何选择呢。在较早前我们在对INTELX25-M进行的评测中我们发现,当时的主流级SSD或多或少都有些性能方面的问题,而X25-M并没有这样的问题。而且,后来还发现,随着时间的推移,SSD的性能会出现下降的现象,而我们测试过的基于34nmMLCNAND闪存的INTELSSD基本没有这样的现象,它们似乎对时间并不敏感。INTELX25-M系列固态硬盘开启了一个新的时代,随后三星和Indilinx推出了它们SSD控制器,性能更高,而且没有性能上的波动,我们当然要测试这些产品。实际上,不论是普通的机械式硬盘还是基于闪存颗粒的固态硬盘,平滑的性能曲线并不足够,一个良好的固态硬盘还必须保证有较高的读写速率。OCZVertex系列基于Indilinx控制器,是更大众化的选择。性能的下降实际上来自于NAND闪存的工作原理。你可以最少只写入4KB的数据,但是一个数据区块是128KB(或者512KB,所以当你删除数据时它们并没有真正的被删除,除非是这个区块又重新写入新的数据。此时,会遇到一个讨厌的情况:读取-修改-写入。也就是说,当你实际只写入4KB数据的时候,控制器(也叫主控芯片)会先读入整个区块的内容512KB,修改其中4KB的部分,然后再整个区块写入,而不是通常认为的仅仅是简单的写入4KB的数据。很明显的,写入512KB,而不是仅写入4KB的操作,大大拖慢了系统的速度。我们在测试中模拟了这种最坏的情况,性能下降的幅度有些很轻微,有些很严重。这就是我们今天这篇文章将要做的:对市场上基于IndilinxIntel以及三星控制器的SSD产品进行测评,以找出它们中的最强者。不过,事情总是变化很快。请看下面的比较图表,在运行了TRIM指令(或类似的程序等)之后,这样的差别已经大大缩小了。看来,我们需要制订新的测试方法了。闪存基础知识:内存的速度非常快,读写均在纳秒时间内完成。不过内存的最大缺点是易失性,一旦掉电,其中的所有数据都会丢失(这个时间非常快,不超过一秒)另一方面,常用的磁性存储(例如硬盘),速度很慢,基于物理结构,有读写的操作。目前最快的消费级硬盘读取数据的时间是7毫秒,而速度最快的CPU读取同样的数据只需要十万分之一的时间。我们把数据存储在硬盘上的唯一原因就是因为它们便宜,而且是非易失性,即便掉电,所有的数据都还在硬盘上。NAND闪存为我们提供了结合两者优点的选择,它们实际上是非易失性(虽然也有数据遗失的问题,不过是在十年以后)而且速度较快(数据的读写是微妙级,而不是毫秒级)通过对一个N沟道MOSFET插入电子充电极,就可以构造出一个基本的NAND闪存单元。这样的闪存单元无须电力维持也可以很好地保持其中存储的数据信息。一个闪存单元可以保存一比特(bit)的数据,当成千上万个单元同时集成进一片芯片中时,就可以保存成千上万个比特的数据了,再大的规模就是上GB存储量的NAND闪存颗粒了这些闪存单元有规律地按行和列排列,一组闪存单元称之为一个闪存页面。目前一个页面的大小是4KBNAND闪存不能按比特写入,只能按页面的大小写入——也就是4KB大小。尽管对页面进行写入很简单,不过擦除它们就要复杂些了。受限于MOSFET的结构限制,对于NAND闪存中保存的数据,不能按单个闪存单元擦除,只能对整个“区块”进行擦除的操作。通常一个区块包含128个页面,也就是说,如果
要对某个页面中的数据进行重新写入,实际操作是首先擦除掉这个页面和相邻的127个页面中的数据,然后再将新的数据写入到这128个页面中。请允许我重复一遍:改写一个页面4KB的数据实际执行的是擦除和改写512KB数据的操作。更糟糕的是,对页面的写入操作将直接影响到它的寿命。JEDEC规定的multi-levelcell多层单元)式闪存颗粒的极限写入次数是1万次。为了避免闪存单元快速损耗的问题,必须在控制器中采取非常灵活的管理方法。一个设计良好的控制器必须将写入操作分散到尽可能多的区块去完成,必须避免对相同的区块执行一遍又一遍的写入操作。还有个必须要面对的问题是,有些存储的数据会频繁的更新,而另一些几天、几周、几个月甚至几年都不会更新。从你电脑的角度来说,并不需要知道控制器的这些操作细节,它只是向控制器发出写入数据的指令,对写入的数据进行分摊等复杂的操作任务必须由控制器自己独立去完成。是不是非常难以处理?不过还好,还不是完全没有办法。深入了解计算机的硬件技术是非常抽象的,20年前,使用电脑需要你懂得汇编语言,后来的CC++语言在程序员和硬件之间建立了一种抽象层,从而简化了开发过程,你可以以接近书面语言的形式更有效的控制和使用硬件。你可以编写更简单(而且更容易管理)高水平代码,然后使用编译器优化它。同样的原则也适用于固态硬盘。最小的可写闪存单元是页面,实际上控制器能够直接进行写入操作的区域比单独的一个页面大得多。今天,我们在这里介绍一个逻辑页面的概念,是NAND闪存物理页面的抽象化概念。SSD控制器最直接的写入方法就是对页面的直接写入,在这种情况下,逻辑页面的数量等于物理页面的数量。不幸的是,这种方法有个很大的缺憾:跟踪开销。假如你的逻辑页面大小是4KB,而你的SSD容量是80GB,那么逻辑页面的数量将高达20,000,000(实际产品是20,971,520个)。你需要一个速度很快的控制器(甚至是PC级别的处理能力),来对这么多的逻辑页面进行分类处理,这么多的逻辑页面,也需要更多更快的高速缓存/缓冲处理。这种方法的好处却是非常高的4KB写入性能。如果你的写入操作大多数都是4KB,这种方法将产生最佳的性能。如果控制器达不到同时控制/分类这么多逻辑页面的能力,那么就只有增加逻辑页面的大小。一个例子是将逻辑页面增加到一个“区块”128×4KB)大小,这大大减少了控制器需要同时进行控制/分类的逻辑页面的数目。仍然以上面的80GBSSD为例,此时的逻辑页面数目大致为163,840个,如此少的数目可以大大降低控制器的设计和制造难度,普通的嵌入式处理器即可胜任这样的任务。这种方法的好处是非常高的大文件顺序写入性能。如果你有很大的文件,那么较大的逻辑页面将是最佳的处理方式。你会发现,目前使用的数码相机,其对2MB12MB之间大小的图像文件具有最快的写入速度,就是这个原因(它们使用了较大的逻辑页面)遗憾的是,连续写入性能和小文件写入性能不能同时兼顾。请记住,对文明用语CNAND闪存的写入速率只是读取速率的1/3左右,而且在写入小文件时,这个差距会更大。如果你编写了一个8KB的文件需要写入,那么控制器实际会写入512KB的内容(以上面的例子,这是最小的可写入文件尺寸)。写入放大效应大大上升。还记得OCZ基于IndilinxBarefoot(大脚)控制器的Vertex系列SSD?它们的逻辑页面就是512KB大小。OCZ要求Indilinx提供新的更小逻辑页面的固件,Indilinx提供了,结果就是大大改善了4KB的写入性能。清理机制与写入放大

正在进行安全检测...

相关推荐