PCEVA,PC绝对领域,探寻真正的电脑知识
  • 内容展现
  • 最新评论
SandForce主控分析与OCZ SSD性能测试
2011-7-29 01:49| 发布者: neeyuese| 查看: 148210| 评论: 10
摘要:
技术分析(1)使用中的数据保护

言归正传,这里开始技术讨论。任何存储设备,最关键的是数据的稳定性,所以技术章节开始先来讲SandForce是如何保证数据稳定。

1. 使用中的数据保护

SF-1xxx控制器和SF-2xxx控制器,对内部传输总线上的数据(data),元数据(meta-data),固件代码(firmware code)都有自己的保护措施,防止因颗粒老化(P/E用完)或别的因素造成的数据出错。

数据错误一般分如下几种:

1) Correctable Errors: (可纠正的错误)
在固态硬盘内的颗粒上,比特(bit)错误是经常发生的,而且随着颗粒的老化,发生错误的概率也在逐渐上升。这些类型的错误主要由固态硬盘的主控制器上的硬件ECC引擎来纠正。拿SF-1xxx控制器来说,他可以纠正每个512字节上的24bit错误,采用的是RS算法。而SF-2xxx控制器,更可以纠正每512字节上的55bit错误,采用的是BCH算法。

2) Uncorrectable errors: (无法纠正的错误)
当数据位错误数量超过固态硬盘主控制器的ECC引擎能够纠正的错误能力时或者当NAND闪存的整个页或者块出现大面积损坏时,对一般的固态硬盘来说,此时已经没有办法来保护数据了。但是拥有RAISE技术的SandForce主控固态硬盘却不同,由于RAISE技术采用类似RAID 5的内部冗余算法,所以此时可以纠正这部分错误。

3) Undetected Errors: (未检测到的错误)
极为罕见的一种错误形态,表现出来就是错误的数据被主机认为是正确的数据。SF-1xxx和SF-2xxx控制器拥有32bit的CRC数据总线错误检测能力来保证这种错误不会发生。在数据进入总线前生成验证码,然后当数据出去后再次验证来保证数据完整性。

基本上所有的固态硬盘设计上都包括了完整的ECC引擎,一些还包括CRC纠正,但是只有很少一部分拥有完整的数据冗余保护。在对数据完整性要求很高的企业级或军工级应用上,这些保护都是必须拥有的。

既然数据会出现那么多种错误,如何去保护我们的数据?

1) SATA链路层的CRC
SATA接口相比传统IDE接口提高了错误检查的能力,按照工业标准,除了对数据进行CRC检错之外,还会对命令和状态包进行检错。

2) 32-bit CRC
一旦数据从主机写入到SSD,SSD主控制器生成一个往返的32位CRC冗余数据。沿着高速数据通道继续经过SRAM写入缓冲区(SRAM带1bit冗余校验),继续前进经过几个区域后写入NAND颗粒里,当数据从NAND里读出时通过SRAM缓冲区后并在进入SATA链路层前还要经过32位CRC检查,这样既可保证这一个循环下来,数据的完整性没有问题。

3) ECC检测和纠正
一旦数据通过内部SRAM并写入NAND颗粒前,主控的硬件ECC引擎还会生成数据冗余代码,这样当数据从NAND颗粒取出时,可以校验之前生成的数据冗余代码并纠错。SF-1xxx是RS-24/512B,SF-2xxx是BCH-55/512B。如果出错的数据在这个纠错范围内,就会进行纠错并继续输出到主机。

4) 数据出错时的保护
SandForce主控和别的很多主控不同的地方就在于多了一个RAISE技术,在我们的数据写入到NAND闪存前,RAISE技术会把数据生成一个完整的冗余部分,这种冗余存储技术,拥有着类似RAID一样重建NAND闪存数据的能力。在SSD硬盘的闪存出现整个页或块出错时,即可发挥作用。如图,如果数据从NAND闪存上读取出来,经过ECC检测后还是无法纠错的话,就会用RAISE技术之前生成的完整数据冗余重建数据损坏部分。

通过上面这个流程图,相信大家对SandForce在数据完整性上的保护已经有了个大致了解了,反正厂家吹的蛮凶的,实际如何还是要经过我们玩家的考验了。

在这些错误之上,还有几类错误,我们一般称为软错误(缺陷错误)

所有的固态硬盘都会发生这类软错误,应该说这是硬件上的缺陷导致,无法避免,概括下来主要由以下几点:
1)高速通道内的数据受到阿尔法粒子碰撞干扰产生错误。
2)高速通道内的数据受到中子碰撞产生错误。(主控包装材料是放射源)
3)高速通道内的数据受到外围因素影响产生错误。(噪声,温度等)
4)高速通道内的数据受到硬件或者固件问题产生错误。

相对来说1和2的概率极小,而且没有办法去解决。(或者说代价太大,不值得)第3点的话,如果外围电路和环境都做的好的话也不是问题,第4点就要考验厂家的开发实力了。

小结:在数据保护方面,目前消费级产品里,只有SandForce会做完整的End to End Data Protection(数据的保护,需要开启RAISE),别的厂牌的SSD都只做了LBA TAG 保护(出错时的检测)。举个例子,使用Intel的Toolbox查看SSD可以看到Smart的B8的定义(End to End Error Detection Count ),这个只是做检查,却没有能力去保护数据,真出错超过一定程度了,SSD就要返厂了,虽然这类错误发生的概率极低,但是这却恰恰说明了SandForce的主控原本的目标是企业级市场的。

收藏 邀请
0
本文版权归 PCEVA,PC绝对领域,探寻真正的电脑知识 原作者所有 转载请注明出处
发表评论

最新评论

引用 jghkl 2015-1-14 14:09
真乃神作也!
引用 cyk12000 2013-2-25 19:41
神作
引用 timcq 2013-2-17 19:22
超级好的技术文章,并且照顾了我这样的小白,虽然还很多不明白,但是已经看出非常用心的写了,最大程度通俗易懂
引用 zhao431431 2012-10-31 19:57
拜读,神作。。。
引用 sohueasy 2012-10-15 15:19
一年多的帖子,今天才仔细拜读了一下。
sf的主控的这些特性看来始终不是跑分利器,和文件是否可压缩关系也很大,看上去不是特别强大,不知道今年的新主控如何。
不过现在却很想试试sf主控的东西,好奇心使然啊。
引用 jjxiao 2012-9-12 01:22
这么好的文章 怎么木有人re的呢  

让我更了解ssd  特别是用sd主控的ssd啊
引用 zhao431431 2012-9-7 17:26
拜读,,神作
.
引用 xsh8hf 2012-8-31 15:14
过来顶贴。
引用 a13606344553 2012-8-21 18:32
居然只有一个人评论?
引用 neue 2012-7-7 10:33
神作

查看全部评论(10)

热门评论
    热门评论
      返回顶部