编辑: qksr | 2019-07-17 |
0 May2015 技术白皮书
3 Memblaze? PBlazeIVPCIeSSD 当前,PCIeSSD 已经受到企业级用户的广泛认可.对于企业级用户 7*24 小时的工作场景,数据可靠性和性能一致性是选择 SSD 时最为关 心的两个指标. 7年潜心研究, Memblaze工程师设计了一系列的仿真实验用以优化算法. 4年市场实战和检验, 积累了丰富的企业级SSD设计经验. MemSolid 和MemSpeed 是应用于 Memblaze 固态硬盘中的两个技术集合,包含一些具有代表性和独创性的技术点,实际的技术使用不仅 限于此. MemSolid 是提高数据可靠性相关的技术集合 MemSpeed 是提高性能相关的技术集合. 在Memblaze 新一代 PBlazeIV 系列产品中,MemSolid 和MemSpeed 两大技术集合均从 1.0 升级到 2.0. PBlazeIVMemSolidTM 技术优化―― 提高数据可靠性 MemSolid 2.0 PBlaze4 MemSolid PBlaze3 MemSolid1.0 掉电保护技术 元数据保护 BCH ECC 纠错码 RAIN 磨损均衡 高温保护 固件保护 43bits/1KB pSLC + 多备份 100bits/4KB 动态RAID组 全局磨损均衡 动态温度调节 多slot + pSLC+ 多备份 掉电保护技术 固态硬盘为了提升性能,会用到写缓存的机制.但是缓存存储介质是具有易失性,异常掉电会导致缓存中的数据丢失.为了保证数据的安 全性,掉电保护技术可以保证电源异常切断是用户数据的完整性. 如图
1 所示,掉电保护是利用电容的充放电来提供充足的电力保护窗口.电源接通时,电容会进行充电,当出现异常电源中断,所采用的 高能量密度的电容就会放电,给予数据从缓存刷写到 ?ash 充足的时间. 北京忆恒创源科技有限公司
4 图1掉电保护电路示意图 技术白皮书 MemSolid+MemSpeed 元数据是固态硬盘中非常重要的系统数据,FTL 表、磨损均衡相关寿命记录信息、读取 \ 擦除计数、空闲 block、固件等等,我们都定义为 元数据.这些数据对系统的可靠性而言至关重要. 元数据保护 从元数据的类型可以看出,这些数据是需要经常被访问和更新的数据.但是 MLC 型?ash 只有
3000 次的擦写寿命,元数据对闪存寿命的 过度消耗会导致固态硬盘整体寿命的下降.为了提高元数据的一致性,提高固态硬盘整的的使用寿命,将元数据存放在 pSLC 模式.pSLC 是MLC 的变体,具有 SLC 低错误率和高寿命的特点,一般 pSLC 的擦写次数是 SLC 的一半. 另外,为了增加元数据的冗余,会对元数据进行跨 LUN,跨channel 的多备份,如图
2 所示.如此,只要有一个 LUN 可以工作,元数据 就能被读取更新. NAND?ash LUN1 LUNN+1 LUNN+2 LUNN+M LUN2N LUN2 LUNM Controller Channel
1 Channel
2 Channel M Channel N LUNN NAND?ash NAND?ash NAND?ash 图2元数据的多备份 BCHECC 纠错码 ECC纠错码 BCH:43bits/1KB BCH:100bits/4KB LDPC PBlaze3 PBlaze4 PBlaze4.5 BCH 是PBlaze3 和PBlaze4 共同采用的 ECC 纠错码. 相比 PBlaze3, PBlaze4 采用纠错能力更强的 BCH 纠错码, 纠错能力达到 100bits/4KB. 在未来的 PBlaze4.5 产品中, 还将采用 LDPC 这种超强纠错的纠错码. MCUcan triggerPFP e-Fuse Shutdown DuringPFP OpenSwitch DuringPFP (SW2) CloseSwltch DuringPFP (SW1) Power Ground PFPCapacitors NAND Flash NAND Flash NAND Flash SSD Controller Storage Buffer e-Fuse MCU Boost Converter Buck Converter n Channels
5 Memblaze? PBlazeIVPCIeSSD 北京忆恒创源科技有限公司 RAIN ECC 可以纠在其纠错能力范围内的错误,但是对于更大范围的错误,如page 级,block 级的错误就需要 RAIN(RedundantArrayof IndependentNAND)这样的数据冗余保护. PBLaze4 在LUN 间采用类 RAID5 的保护机制,采用 N+1RAID 组(N 代表用户数据,N+1 是从性能和容量的平衡角度实验得出的选择) , 一旦 LUN 中出现坏块, 就可以通过其他 RAID 组中数据和校验码在 OP 空间恢复坏块中的数据.并且 PBlaze4 采用动态 RAID 组优化 RAID5 算法, 也就是当 RAID 组中出现坏块,原有 RAID 组被破坏时,剩余的 block 会组成新的(N-1)+1RAID 组.再有坏块出现,RAID 组又会动态变为 (N-2)+1,线性递减.这种优化大大提升了 RAID 保护的灵活性,增强了数据保护的可靠性. N+1RAIDgroup Onestripedatafailure (N-1)+1RAIDgroup A1 B1 C1 Dp A2 B2 Cp D1 A3 Bp C2 D2 Ap B3 C3 D3 LUN1 LUN2 LUN3 LUNN-1 LUN1 LUN2 LUN3 LUNN-1 ... ... + A1 B1 C1 Dp A2 B2 Cp D1 A3 Bp C2 D2 Ap B3 C3 D3 + 图3LUN 间RAID5 磨损均衡 PBlaze4 采用动态和静态两种磨损均衡算法来提高固态硬盘的整体寿命.对于经常被读写的动态数据,会根据 PE 次数来选择数据要存放 的block, 有效解决了某个 block 因被经常擦写而导致的过早磨损.对于长时间没有被访问的静态数据, 会根据时间和 block 的PE 次数自动搬移, 释放原始存放静态数据的 block. 并且 PBlaze4 对FTL 进行了全局映射的优化(具体可参考全局 FTL 章节) ,使磨损更均衡. 如图