扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共6页)
SandForce实时压缩、固态盘IOPS性能游戏
从上往下继续看前面一页表格中的内容,读者可能注意到了使用SandForce控制器的源科麒麟 I Plus没有外置的DRAM缓存芯片,这一点和Intel等厂商的SSD方案不同。当然,不需要单独的DRAM缓存并不意味着就没有缓存,而SandForce技术的独特性不只体现在此处。我们先来看看下面的结构图:
SandForce SF-1200 SSD控制器模块示意图
源科麒麟 I Plus使用的并不是SandForce最新的SF-2000系列SATA 6Gb/s SSD控制器,而是上一代SATA 3Gb/s接口的SF-1200。尽管SATA 6Gb/s有助于充分发挥固态盘的顺序读写带宽,不过在之前的评测中,我们已经证明了SSD相对于传统机械硬盘最大的优势在于随机访问IOPS方面。因此,现阶段SATA 3Gb/s的产品在用户体验上并不会有明显的差距。
上图中间浅蓝色的“Buffer”模块就是SandForce控制器方案中缓存,具体容量没有公布。SandForce在芯片内直接集成了较大容量的缓存,无需外部内存可以节约成本、功耗和空间。其实Intel SSD控制器芯片中也包含有缓存(和寄存器),那为什么还需要外置的DRAM颗粒呢?这里要谈到固态盘与HDD之间的一个不同点——页面映射。
Page mapping(页面映射)是SSD控制器的一项功能。简单地说,这一操作就是将文件系统里的簇映射到闪存中的一个Page(页),实际上就是一个分类整理优化的过程。为实现这一映射,据了解Intel需要在控制器外使用DRAM缓存来保存映射表;而SandForce则完全不需要外置缓存,因为在他们的方案中,你实际写入闪存的数据,要比操作系统传输给控制器的少。
也就是说,传统机械硬盘带有的DRAM芯片中缓存的是临时用户数据,而SSD除此之外还要包括另外一部分:闪存映射表即元数据(索引),这样做是为了执行闪存单元的损耗均衡算法。比如Intel SSD 320的300GB型号就将DRAM缓存颗粒的容量从X25-M G2的32MB增加到64MB,就是因为元数据的容量也会随着固态盘/闪存容量一同上升。
那么,SandForce方案使用了何种方法来将两部分缓存数据整合到一起?这就是DuraClass系列技术中的DuraWrite——一种类似于压缩的数据精简写入技术。SandForce控制器会对从主机发送过来的数据进行实时压缩再写入到闪存中,不仅能够降低单位闪存的写入次数延长寿命,还可以有效提高写入速度。另一方面,从SSD上读取数据反过来也要包含解压缩的过程,同理控制器传输给主机的数据也会超过实际从闪存中读取的,这样读取性能也可能因此而受益。
DuraWrite工作原理的关键在于其最终性能取决于数据,更确切的说,是数据的可压缩性。这样的技术也有弱点,当需要写入的数据已经进行过压缩时(如图片、视频或压缩文件),其算法就无法再发挥理想效果。另外控制器执行压缩运算的速度决定了它不可能使用压缩比太高的复杂算法,同时压缩处理有可能会增大读写操作的延迟。不过从实际情况来看负面影响远没有正面效果来得明显。
这里就要谈到前面列出几款SSD的性能了。根据源科公司给出的麒麟 I Plus性能指标,除了随机读IOPS低于Intel产品(也达到了30,000的水平)之外,余下3项全部领先。最大顺序读/写带宽已经接近SATA 3Gb/s接口的上限,而随机写入IOPS更是高达50,000。根据我们的经验,这些应该都是在数据“可压缩比”较大的情况下才能实现的峰值,因为不只一家使用SandForce控制器的固态盘厂商如此宣传。
而本文评测主要的目的,就是衡量源科麒麟 I Plus处理不同压缩比数据的实际表现,以及使用随机数据(不可压缩)测试的性能与标称水平之间的差距,同时和Intel相关产品进行对比。
上表截自SandForce SF-1200控制器官方资料(部分)
在SandForce SF-1200 SSD控制器的官方资料中,持续随机写IOPS只有10,000的水平(突发达到30,000),与源科麒麟 I Plus SSD似乎存在着矛盾。其实这里面还有些“隐情”:我们曾了解到SandForce SF-1200的固件(Firmware)可以分为2个版本,还有一种说法就是使用为其企业级版本SF-1500芯片设计的固件能够达到更高的性能(硬件上可能相同?)。就像上表中“Ordering Information”中列出的那样:专门针对512GB大容量的SF-1232TA3-SBH(几乎没听说过实际应用在哪款产品上)控制器芯片的持续随机写IOPS为30,000,而最为常见的SF-1222TA3-SBH则被“限制”在10,000。
有的读者可能还注意到了Intel SSD 320的性能随着容量的提高而上升的情况。其中顺序写带宽主要是因为闪存单元密度增加和写入算法的改进,而随机写IOPS则源于不同的测试方法。如上表:Intel在SSD 320的Product Brief和Product Specification文档中列出的最大4KB随机写IOPS就是最下面一行——在8GB的LBA范围内测试并打开写缓存,就像之前的X25-M G2那样。而我们也曾发现,X25-M G2的缓存写IOPS(全部空间测试)一开始能够达到15,000的水平,那么SSD 320 300GB和600GB的23,000也不过是进一步在缓存优化上做文章吧?
资料来自:Intel在北京举办的IDF2011中的“企业应用中的固态硬盘(SSD):误区与事实”技术课程
在较小的LBA范围内进行测试,在原理上类似于过量分配(Over Provisioning,或称超量配置),通过减少用户的使用容量来增加SSD的冗余空间,能够有效提高随机写操作的耐用性和性能。我们在这里不做详细的技术讨论,限制到只在8GB的区域内进行写测试,其目的可以说就是获得接近极限的性能数值。
而作为企业级SSD的X25-E,Intel公布的性能采用了和消费类产品不同的测试方法——随机IOPS覆盖整个LBA范围,即在整个驱动器上执行测量。当然8GB的范围对于我们测试的X25-E 32GB和动辄上百GB的消费级固态盘来说,所占比例显然不同,但更重要的是企业存储环境中可能要面对RAID等各种应用场景,而不像Windows 7启动那样每次在相对固定的区域进行重复操作。
根据经验,使用SLC闪存的企业级SSD写入寿命和性能应该明显超过MLC产品,耐久性方面我们在第一页的对比表格中已经看到了。那么,Intel X25-E看似不甚理想的随机写IOPS规格,在实际测试中究竟表现如何呢?这也是本文关注的另一个重点。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者