43
Memblaze ® PBlaze5 NVMe TM SSD MemSpeed3.0® MemSolid3.0® “解码”企业级固态硬盘高性能和高可靠性 v3.1 技术白皮书

Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5 NVMeTM SSD

MemSpeed3.0®

MemSolid3.0®

“解码”企业级固态硬盘高性能和高可靠性

v3.1

技术白皮书

Page 2: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

2

目 录

目 录 2

概述 6

行业发展趋势 6

PCIe SSD – 已成为数据中心的主流选择 6

PCIe SSD 凭借极致性能助力数据中心进入提速时代 6

PCIe SSD 运营成本(OPEX)大幅降低 7

PCIe SSD 市场营收占比逐年增加 7

NVMe — PCIe SSD 的最新标准 7

企业级市场 SSD 标准的演进 7

NVMe 带来哪些好处? 8

PBlaze5 2D NAND 到 3D NAND 的跃迁 9

单卡大容量,NAND 可靠性和成本优化 9

PBlaze5 在介质、容量、性能、功能等方面的主要演进 9

MemSpeed3.0 保证一致卓越性能 11

稳态性能和峰值性能 11

稳态下的一致性能更具实际意义 11

多 Plane 写操作 12

简单认识 NAND 结构 12

多 Plane 同时编程提升写性能 12

Page 3: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

3

多核计算 13

多核并发提高性能 13

Flash 通道多核技术增强对 NAND 高级功能支持的灵活性 14

硬件多队列引擎 14

主机端多核多队列 14

硬件端多队列引擎配合主机端多核多队列 15

动态平滑技术 15

服务质量 QoS 和延时抖动 15

自适应负反馈动态平滑系统 16

Flash 通道 QoS 保证 16

保证 QoS,防止信息流拥塞 16

优先级队列管理机制进一步降低读延时 17

全局 FTL 17

闪存转换层 FTL 17

全局 FTL 如何提升设备性能并使磨损更均衡? 18

TRIM 18

TRIM 保证稳态性能的一致性并提升寿命 18

MemSolid3.0 打造企业级数据可靠性和一致性 19

全路径数据保护 20

什么是全路径数据保护? 20

全路径数据保护保证 UBER<10-17 21

数据路径端到端数据保护 21

不可避免的静默错误(SDE) 21

如何通过数据路径端到端数据保护降低静默错误率 21

超强 ECC 纠错码 - LDPC 22

为什么选择 LDPC? 22

LDPC 强大的软判决解码纠错能力 22

LDPC 的工作原理 23

增强的掉电保护技术 24

为什么 SSD 需要意外掉电保护? 24

电容健康监测增强异常掉电保护 24

通过“取消擦除指令”增强异常掉电时数据刷写的完整性 25

PCIe 链路端到端保护 25

认识 PCIe 链路 25

ECRC 生成和校验 26

Page 4: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

4

元数据保护 26

高耐写高速率 pSLC 存储关键元数据 26

多备份元数据保护 27

RAID 数据保护 27

坏块的管理 27

Die 间动态 RAID5 恢复坏块数据 27

重读保护 28

重读的原因是什么? 28

持续判决电压校准 28

读干扰保护 29

读干扰产生的原因 29

设定动态访问阈值,搬移经常访问的数据降低读干扰 30

写干扰保护 30

什么是写干扰? 30

随机化实现写干扰保护 31

增强数据保持力 31

P/E 次数,温度如何影响 NAND 数据保持力 31

后台监控数据可靠性 32

磨损均衡 32

NAND 寿命有限的原因 32

动态&静态磨损均衡提升 SSD 寿命 32

快速启动 33

“按需”重建 FTL 缩短系统重启业务的恢复时间 33

高温保护 34

动态温度监控和调节 34

S.M.A.R.T 35

自我监控,分析和报告技术 35

关键标准 SMART 属性 35

PBlaze5 丰富的企业级 SSD 功能 36

AES-XTS 256bit 全盘数据自加密 36

可靠性更高的 XTS 加密模式 36

AES-XTS 工作原理 36

安全擦除 37

安全性更强的密钥删除 37

固件签名 37

Page 5: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

5

固件 CRC 校验 + RSA 签名,避免错误固件升级和恶意篡改 37

双端口(仅 U.2 规格支持) 38

链路冗余保证高可用性 38

双端口是 NVMe SSD 在存储系统部署的关键功能之一 39

多命名空间 39

多命名空间的灵活性 39

灵活功耗管理 40

灵活功耗限制满足不同温度控制的系统要求 40

结束语 40

参考资料 41

致谢 41

修订历史 42

关于 Memblaze 43

Page 6: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

6

概述

在企业级用户的业务场景中,对性能的需求越来越高,更高 IOPS、更低且高一致性的延时来满足快速的

数据访问。例如在线事务处理(OLTP),需要对实时的原始数据进行处理,力求通过并行查询和最小化响应

时间来提高单位时间内交易的数量;在线分析处理(OLAP),需要通过复杂的数据查询分析,为商业决策起

辅助作用;还有高性能计算,云计算,VDI 等应用。我们已经进入数字时代, IDC 评估 2015 年数据量为 7.2 ZB,

预计到 2020 年数据会增长近七倍到 44 ZB。正因如此,面对巨量的数据增长和对庞大数据的高效处理,高速存

储介质 SSD 成为当今数据中心不可或缺的基础设备。除了高性能,另有一些业务场景,如电子商务,数据的一

致性和安全性成首要考虑。数据的错误或损坏,可能会导致订单错误,原本下单买的靴子却送来了一件 T 恤,

本应该邮寄到北京的物品确寄去了深圳。更严重的,银行账户减少,甚至造成机密信息泄露。所以,企业级固

态硬盘无论从软件还是硬件层面,都需要不同级别的数据保护技术在提供高速性能的同时,来确保其可靠性。

PBlaze5 是 Memblaze 公司的第五代企业级固态产品系列,支持 NVMe1.2a 标准,采用最新 3D NAND 提供

高达 11TB 超大用户容量。凭借 MemSpeed®3.0 和 MemSolid®3.0 技术,充分释放 PBlaze5 的性能,保证高速稳

定的读写 IOPS 和带宽,极低抖动延时, 并支持灵活功耗设置;全路径数据保护,AES256bit 自加密,经过验证

的数据可靠性,为各种严苛的数据中心和企业级应用提供高速解决方案。本篇技术白皮书将解读目前 SSD 行业

发展趋势,阐述 Memblaze PBlaze5 的设计初衷以及其之所以能够展现出色性能的原因,并分享应用在 PBlaze5

上提高可靠性的关键技术,如何做到有效降低数据损坏风险,增强友好的用户体验。

行业发展趋势

PCIe SSD – 已成为数据中心的主流选择

PCIe SSD 凭借极致性能助力数据中心进入提速时代

在企业级市场,毋庸置疑,SSD 的应用已经占相当大的比重,特别是能够提供更高性能的 PCIe 接口的

SSD,一经问世,就以超越机械硬盘上百倍、甚至上千倍的随机读写速度震撼并征服用户,而相比 SATA 接口

的 SSD,PCIe SSD 也以十几倍的绝对的性能优势完胜。

IOPS (读/写)

SATA SSD的 13/28 倍

15K HDD的 4760/1320 倍

顺序带宽 (读/写)

SATA SSD的 8/7 倍

15KHDD的 16/14 倍

延时

SATA SSD的 1/3

15K HDD的 1/100

* PCIe SSD具有更高IOPS,带

宽,以及更低延迟

75000

11500

Random Read

Random Write

4K随机IOPS1320x

500

450

250

250

Sequential Read

Sequential Write

顺序带宽 (MB/s)

65

2000

延时

延时 (μs)

15K RPM HDD SATA SSD Memblaze PBlaze5 PCIe SSD

1/3

1/100

13x

4760x

7x

8x

14x

16x

随机写

随机读

顺序写

顺序读

Memblaze PBlaze5 PCIe SSD 和 SATA SSD , 15K 转 HHD 性能对比

MemSolid3.0 提高数据可靠性和

一致性,增强安全性的技术集合

MemSpeed3.0 达到一致卓越

性能,保证 QoS 相关技术集合

Page 7: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

7

PCIe SSD 运营成本(OPEX)大幅降低

从 Wikibon 针对 SSD 和 HDD 的成本对比报告中可以看出,对于数据中心而言,如果考虑到诸如功耗、维

护、占用空间等等运营成本(OPEX),从 2016 年开始,采用 SSD 更经济,成本更低。从右图中可以解读出 3

点重要信息:

• Wikibon 预测在 2015 年底,SSD 的每 4 年运营成本

/TB 已经和 HHD 相当,并且从 2016 年开始, SSD 的

运营成本是 151 美元,低于 HDD 的 169 美元

• 采用 SSD 的运营成本下降幅度高于 HHD

• 到 2020 年,SSD 的每 4 年运营成本/TB 下降到 9 美

元,仅仅是 HHD 运营成本的 12%

PCIe SSD 市场营收占比逐年增加

随着 SSD 成本不断降低,同时越来越多针对 SSD 设计、

优化的软件、服务器、存储系统入市,IDC 预测从 2014 开

始,相对于 SATA、SAS,PCIe SSD 在企业级 SSD 中的营收占

比逐年大幅增加,并且在 2019 年将达到 40% 。

NVMe — PCIe SSD 的最新标准

企业级市场 SSD 标准的演进

NVMe 是专为 PCIe 接口固态硬盘设计的行业接口标准。其针对 PCIe SSD 的特殊设计,去除传统 SATA、SAS

接口 SSD 的存储架构,显著提高性能、降低延迟功,并提供更低功耗。NVMe 不仅在这一代非易失性存储介质

—闪存上已经体现了巨大优势,更大的优势会体现在下一代的存储技术上,譬如相变存储 PCM, NVDIMM 等,

相比现有的技术快几十倍、上百倍,时延低几十倍、上百倍。

统一标准没有标准沿用机械硬盘标准

成熟的生态系统 停止演进 私有协议 无生态支持 强大的生态系统 且持续演进

3Gb/s, 6Gb/s 高带宽 低延时 超高带宽 极低延时

ASIC 低功耗 FPGA 高功耗 ASIC 低功耗

单队列 性能瓶颈 不同IO优化技术接口 统一IO优化接口

易于部署 支持Boot和带外管理等 难于部署 不支持Boot和带外管理等 易于部署 支持Boot和带外管理等

第一代

SATA/SAS SSD

AHCI标准

沿用机械硬盘标准 没有标准 统一标准

第二代

PCIe SSD

私有协议

第三代

NVMe SSD

NVMe标准

企业级 SSD 标准的演进

$237

$169$140

$113$91

$74

$470

$151

$62$30 $16 $9-50%

19%

139%

300%

498%

732%

-100%

0%

100%

200%

300%

400%

500%

600%

700%

800%

$0

$50

$100

$150

$200

$250

$300

$350

$400

$450

$500

2015 2016 2017 2018 2019 2020

4-Y

ear/

TB f

or

Cap

acit

y D

isk

& N

AN

D F

lash

Projection 2015-2020 of Capacity Disk & Scale-out Capacity NAND Flash

4-Year Cost/TB Capacity Disk includes Packaging, Power, Cooling, Maintenance, Space & DiskReduction

Pri

ce R

atio

HD

D D

isk:

NA

ND

Fla

sh

Source: Wikbon 2015 4-Year Cost/TB Magnetic Disk & SSD. including Packaging, Power, Maintenance, Space, Data Reduction & Data Sharing

Page 8: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

8

随着 SSD 技术的发展,NVMe 标准在不断演进,而 NVMe 标准迭代的同时,包括 SSD 在内,许多可以利用

基于 NVMe 总线的设备,其技术也在不断升级, 如支持 NVMe 标准的服务器,支持 NVMe 标准的存储驱动器

槽位,支持 NVMe 的控制器和适配器,通过光纤(FC)、以太网或者 Infiniband 网络连接的 NVMe over Fabric™

(NVM-oF) 适配器,部署在 NVMe 系统中的网络适配卡和协处理器适配卡(ARM 或者 GPU)。

NVMe 带来哪些好处?

NVMe 给数据中心部署了 NVMe SSD 带来 4 个显著的好处和优势。

出色的性能和极低延时。NVMe 的第一个好处是优化协议栈带来的出色性

能。从改进的 NVMe 存储协议栈图可以直观的看出从应用层到闪存设备的过

程中,到 NVMe 驱动器的路径要比到 SAS 驱动器的路径短,简化的路径缩短

了数据传输的中间环节。NVMe 相对于 SCSI/SAS 的延迟上的降低十分明显。

多队列。第二个好处是 NVMe 实现多队列机制配合主机端多核的架构,可以

充分发挥多路服务器的计算能力。NVMe 实现的多队列机制可以保证主机端

每一个核或者几个核共享对应的队列组(一个提交队列,一个完成队列),

这样即避免了像 AHCI 单队列存在的争用问题,也避免了中断发向某一单核造

成的性能瓶颈,正如 NVMe 对队列和 AHCI 单队列的示意图所示。从二者的对

比总结表中还可以解读出,相比 AHCI(SATA 遵循的接口标准)唯一的队列支

持 32 个命令,NVMe 支持 64,000 个队列,并且每个队列支持高达 64,000 个

命令,高并发性保证对前端强求的快速响应。

Uncacheable Register Reads 4 per command 0 per command

MIS-X and Interrupt Steering No Yes

Maximum Number of I/O Queues 1 64K

Maximum Queue Depth 32 Commands per queue 64K Commands per queue

Multiple namespace support No Yes

Parallelism & Multiple ThreadsRequires synchronization lock to issue command

No locking, doorbell register per queue

AHCI

Core #0

Main Memory

NVMe SSD AHCI SSD

Core #1 Core #2 Core #3 Core #0

Main Memory

Core #1 Core #2 Core #3

IO RequestIO Completion

IO Interrupt

Submission Queue

Completion Queue Completion Status

Request Entry

NVMe VS AHCI (多队列 VS 单队列, 队列深度)

兼容性。NVMe 带来的第三个优势是良好的兼容性。首先所有的 PCIe SSD 供应商像 Memblaze 可以遵循统一的

接口访问标准,无需私有定义。对于用户而言,不用烦恼对不同厂家、不同固件版本、不同操作系统各种驱动

的维护,只需要关注 NVMe SSD 的产品特性和成本来决哪种型号更适合当前的业务环境。因为像 RHEL/CentOS

6.5 及以上版本, SLES 11 SP3 及以上版本, Ubuntu 13.04 及以上版本已经自带 NVMe 驱动;Windows 8.1 和 Server

2012 R2 也已包含自带 NVMe 驱动; FreeBSD 在 10.2 以上版本自带原生 NVMe 驱动程序。NVMe 的兼容性优势不

仅给用户和供应商带来福音,对于 OEM 厂商来说也是一大利好,在产品选型和通过 OEM 认证时,对各种操作

系统的兼容性验证复杂度将会大大降低。

User Application

VFS/File System

Block Layer

REQ Queue

SCSI XIAT

SAS DriverNVMe Driver

UserKernel

NVMe SCSI

Linux Storage Stack

改进的 NVMe 存储协议栈

Page 9: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

9

灵活的热插拔和做为启动盘。第四个好处是由 NVMe 兼容性所延伸出,不同产

品形态带来的实用功能。NVMe 标准支持 PCIe 插卡和 U.2 接口 2.5 寸盘的规

格 。由于对 NVMe 原生驱动以及主板 BIOS 中 NVMe 模块的支持,2.5 寸盘规格

可以很好的实现热插拔功能,使设备可以前维护,极大提高设备的易部署和易

维护性。同时支持 NVMe SSD 做为系统启动盘使用,灵活满足数据中心部署的

各种需求。

PBlaze5 2D NAND 到 3D NAND 的跃迁

单卡大容量,NAND 可靠性和成本优化

闪存行业最早出现的类型称作单层单元闪存(SLC,Single-Level Cell)。SLC 每一个单元储存一位数据,虽

然其擦写寿命很高,但是由于容量小,并且过高的生产成本并未被大范围采用。为了增加单位存储密度,多层

单元闪存(MLC,Multi-Level Cell)问世 ,该类型每个单元可以存储 2 位数据,存储容量翻倍。三层单元闪存

(TLC,Triple-Level Cell)是另一种每单元可以存储 3 位数据的闪存类型。这三种类型的闪存都是 2D NAND,也

称为平面 NAND。随着数据量的激增以及成本的考虑,为了进一步提高容量、降低成本, NAND 制程工艺从最

初的 50nm,到 2015 年的 19/20nm,转移至目前的主流制程 15/16nm。然而 NAND 闪存制程工艺的进步是把双

刃剑,虽然容量有所提升、成本也有降低,但 NAND 可靠性也有下降。因为工艺越先进,NAND 的删极氧化层

越薄,存储的电子也就越容易泄露,寿命降低,可靠性会越差。厂商通过软件层面可以进行弥补,但是因此增

加的成本又使 SSD 本身的性价比降低。

为了满足企业级用户对于大容量,低成本的需求,3D NAND 应运而生。相对于 2D NAND,

3D NAND 最大的优势就是容量密度的提升,以及更具竞争力的成本。这种闪存技术是通过堆

叠更多的层数的方式保证了 NAND 颗粒的容量、性能。而且 3D NAND 的制程重新跃迁至 30-

40nm ,相 邻存储

单元格距离增大,

所存储的电荷相互干扰减小,从而

提高可靠性。如下 NAND 技术演进

图中看出,堆叠层数越高,单位面

积能构造更多的容量。种种优点,

可以预测基于 3D NAND 的 SSD 产品

也会被越来越多企业级所选择。

大容量,高性能,高寿命,优化成本,这就是为什么 Memblaze 推出基于 3D NAND 的全新一代企业级固态

硬盘 PBlaze5。

PBlaze5 在介质、容量、性能、功能等方面的主要演进

下述表格对比了基于 2D NAND 的 PBlaze4 和基于 3D NAND PBlaze5,从容量、性能、寿命、功能等产品技

术参数体现出 PBlaze 系列产品的再次升级。

Technology Projection

Technology Node

GB

/CM

2

32-tier MLC

32-tier TLC

48-tier TLC

64-tier TLC

96-tier TLC

3D NAND

PLANAR TLC

NAND Flash Density Trends

Source – Micron

64Gb 19nm MLC

128Gb20nmTLC

128Gb20nmTLC

128Gb24-TMLC

128Gb32-TTLC

This works768Gb TLC

128Gb 16nm MLC64Gb 16nm MLC

128Gb 15nm MLC

2011 2012 2013 2014 2015 2016 2017

Gb

/mm

2

Calendar year

2D & 3D NAND 技术发展趋势

2.5 寸盘热插拔

Page 10: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

10

Memblaze 新一代 PBlaze5 系列相比上一代 PBlaze4 的主要演进

产品特性 PBlaze4 PBlaze5

每个 Cell 的 bit 数 2 (MLC/eMLC) 3 (eTLC)

NAND 类型 2D NAND 3D NAND

单设备最大容量 3.2T 11T

应用技术 MemSpeed2.0

MemSolid2.0

MemSpeed3.0

MemSolid3.0

性能 ★★★★ ★★★★★

寿命 (PE 次数) ★★★ ★★★★★

ECC 能力 ★★ ★★★★★

每瓦 IOPS(能效) ★★★ ★★★★

功能

掉电数据保护、热插拔、全路径数据

保护、S.M.A.R.T

基本功能

掉电数据保护、热插拔、全路径数据保护、

S.M.A.R.T、TRIM

高级功能:

多命名空间、AES256 自加密、快速启动、端到

端数据保护、PCIe 链路端到端保护、密钥删除、

固件签名、双端口

Page 11: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

11

MemSpeed3.0 保证一致卓越性能

过去的几年,在企业级市场已经看到多款 Memblaze 推出的企业级固态硬盘身影,它们之所以能提供高一

致卓越性能,都得益于 Memlaze 自主研发用于提升性能的技术集合 — MemSpeed。应用全面升级的

MemSpeed3.0 技术集合,拥有出色性能的最新一代 PBlaze5 企业级固态硬盘系列助力数据中心业务大幅提升。

下表对 MemSpeed3.0 及优化进行总结,包含一些具有代表性和独创性的技术点,实际的技术实现不仅限于此。

MemSpeed * PBlaze4 PBlaze5

MemSpeed 2.0 MemSpeed 3.0

多 plane 写操作 ✓

写回缓存 ✓ ✓

高性能 FTL ✓ ✓

闪存通道 QoS 保证 ✓ 信息调度 + 队列优先级管理

动态平滑技术 ✓ ✓

多核计算 16 个核 16 个 CPU 核 + 16 个 Flash 通道核

硬件多队列 ✓ ✓

TRIM ✓ ✓

稳态性能和峰值性能

稳态下的一致性能更具实际意义

为什么 SSD 的性能随着使用会越来越低?其实 SSD 的性能和它的写入历史有关,一般分为三个状态:

1. 刚拆封的状态(FOB,Fresh Out of Box):出厂状

态,也称之为“空盘”状态。SSD 的所有空间还没

有进行任何数据写入, 安全擦除可以将设备恢复出

厂状态,这时 SSD 的写入可以达到其峰值性能,因

为所有 SSD 的物理空间都可以用来数据写入。

2. 转换阶段(Transition State):随着使用,有效写入

空间变小,就需要触发“垃圾回收”机制释放空闲

空间,其性能逐渐下降。性能下降的幅度取决于之

前的写入负载(预处理的情况),还有当前的写入负载。

3. 稳定阶段(Steady State):当“垃圾回收”回收粒度和前端写入趋于平衡,SSD 的性能会固定下来,并

长期维持在这个状态。也可以说这是 SSD 的“最差性能”,对于使用者而言也是最有实际意义的参考性

能。

在进行 SSD 测试之前,首先要做的是预处理(Preconditioning),保证 SSD 进入稳态后再测试性能。

PBlaze5 参考全球网络存储工业协会(Storage Networking Industry Association,SNIA)定义的 SSD 基准性

能测试指导方法《Solid State Storage Performance Test Specification》,取稳态性能作为用户的参考性能。

Page 12: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

12

多 Plane 写操作

简单认识 NAND 结构

NAND 结构自底向上的组成元素为存储单元(Cell)/页(Page)/块

(Block)/晶粒(Die,也称 LUN)/Target/存储颗粒(也就是图示中在电

路板上的芯片贴片)。数据存储在“页”中,不同型号的 NAND “页”

物理大小不同,只有“页”为空时,数据才可以写入。若干“页”组成

一个“块”, 一般一个“块”里包含 2N 个“页”。如果“页”中有数

据,如何像 HDD 一样覆写?首先必须对整块进行擦除,这个过程也称为

“垃圾回收“,然后才可写入新的数据。再上一层,若干的“块”组成

“Plane”。

晶粒(die)是以半导体材料制作成未经封装的一小块集成电路,通常情況下,

集成电路是以大批方式,经过光刻等多項步驟,制作在大片的半导体晶圆(wafer)

上,然后再分割成方形小片,这一小片就称为 die。如 NAND 的结构图所示,4 个

“Plane”集成为一个 Die,可以对 4 个“Plane”同时并发工作(称为多 Plane 操作)。

在物理上多个 Die 会被封装成一个 Target,共享一套控制信号线 。

不同的 NAND 厂商提供不同的“Die”封装,如单 Die 封装(SDP,Single Die per Package), 两个 die 的封

装(Double Die per Package),4 die 封装(QDP,Quad Die per Package),8 die 封装(ODP,Octal Die per

Package).

多 Plane 同时编程提升写性能

多 plane 操作是 PBlaze5 实现的一种提升写性能的技术,它允许对相同的指令(读、写、擦)同时执行,

这些指令必须满足:

访问的 Die 地址相同

同一个 Die 中访问的 Plane 地址不同

每个 Plane 中访问的 Page 地址必须一致

采用这种技术提升 PBlaze5 的写性能,同时提升每瓦 IOPS 能效利用率。

Package (Chip)

Target 0

Die 0

Plane 0 Plane 1 Plane 2 Plane 3

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Page Register

Cache Register

Page Register

Cache Register

Page Register

Cache Register

Page Register

Cache Register

Page 13: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

13

PackagePackage

Target 0

Die 0

Plane 0 Plane 1 Plane 2 Plane 31

Target 1

Die 0

Plane 0 Plane 1 Plane 2 Plane 32

Target 2

Die 0

Plane 0 Plane 1 Plane 2 Plane 33

Target 3

Die 0

Plane 0 Plane 1 Plane 2 Plane 34

16K 16K 16K 16K

Target 0

Die 0

Plane 0 Plane 1 Plane 2 Plane 3

Target 1

Die 0

Plane 0 Plane 1 Plane 2 Plane 3

Target 2

Die 0

Plane 0 Plane 1 Plane 2 Plane 3

Target 3

Die 0

Plane 0 Plane 1 Plane 2 Plane 3

1 2 3 4

64K User Data:

Page

Single Plane Write Multi-plane Write

Writing order: 4 3 2 1

· · ·

Die 0

Plane 0 Plane 1 Plane 2 Plane 3

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Block 0

Page 0

Page P

…Block B

Page 0

Page P

Page Register

Cache Register

Page Register

Cache Register

Page Register

Cache Register

Page Register

Cache Register

Package

DieTarget

Plane

Block

从 NAND Die 看单 Plane 和多 Plane 编程过程

如上示意图中可以看出多 plane 写和单 plane 写的不同。如果 SSD 接收到 64K 的用户写请求,NAND page

大小为 16K, 单 plane 写操作分别将切分的用户数据块(16K)写入不同 Die 中的 page, 如果 64K 的写入符合

多 plane 写的条件,会同时写入同一个 Die,不同 plane 的 page 中。所以多 plane 写操作的并发写能力,提升

了数据写入速率。从写入指令序列中我们也能看出多 plane 写能够提升性能的原因。对于单 plane 写操作,每

个写操作对应的 tPROG 编程时间是 900us,两个单 plane 写的编程时间就是 1800 us。但是 对于多 plane 写操

作,只需要一个 tPROG 和 1 个 DBSY 时间,一共是 901us。多 plane 写的实现,是 PBlaze5 达到高性能的技术之

一。

Multi-Plane Program(2 writes)

Single-Plane Program(2 writes)

Multi-Plane Enhanced Parameter Symbol Time Unit

Program time per page tPROG 900 us

Dummy Busy Time for Multi-Plane setting tDBSY 1 us

单 Plane 和多 Plane 编程指令

多核计算

多核并发提高性能

主机端,为了提高并发处理能力,计算机早已进入多核时代,对于存储设备端,闪存的出现和技术的不断

演进大幅提升访问速度。PBlaze5 上同样采用多核架构来增加并发处理能力,达到每瓦更高 IOPS 性能,提高存

储系统的能耗利用率。PBlaze5 的多核处理器包含 16 个嵌入式硬核,每个核有 500MHz 的运行频率。不同的实

Page 14: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

14

例由不同的硬核处理,例如有的核负责从主机端获取数据并处理成后端单元需要的数据大小,有的核负责查找

空闲的地址,有的核负责对不同指令优先级的调度,有的核负责垃圾回收。每个核都各司其职,并通过互连信

息网络相互协调,这种多核架构更好的保证了对数据处理的并发能力。

Flash 通道多核技术增强对 NAND 高级功能支持的灵活性

NAND 行业,不同的闪存厂商制定不同的闪存接口标准,主要有“Toggle”和“ONFI”两大阵营。东芝和

三星主打“Toggle”标准,而英特尔、美光、海力士支持“ONFI”标准。增强的 Flash 通道可编程多核处理器,

对两种 NAND 接口的支持更加灵活,也可以实现更高阶的功能,如为了降低读延时,可以对已经排好优先级的

指令进行二次排序,再一次提高读指令的执行顺序,提高前端业务的的读响应。

Core 1 Core 2 Core N···

I/D-RAM I/D-RAM

Interconnection Message Network

Enhanced Flash Interface (Toggle/ONFI support)

I/D-RAM I/D-RAM

· · ·N Flash Channels

NANDNAND

NANDNAND

NANDNAND

搭载增强 Flash 通道处理器的多核处理器

硬件多队列引擎

主机端多核多队列

过去 10 年,主机端单核到多核的发展使得 CPU 处理能力增长 100 倍,与此同时,专门针对 PCIe SSD 标准

化接口 NVMeTM 应运而生,NVMe 支持多队列和更高的队列深度,相比传统 AHCI 标准(SATA、SAS 控制器接

口),NVMe 标准可以带来多方面的性能提升。一是 NVMe 的多队列有效解决核间争用问题,让多核系统的性

能进一步更好释放传统,而 AHCI 只有一个队列。在发出指令时需要同步锁定队列,因此,NVMe SSD 性能能够

实现在多核环境下的可扩展性;二是对 MSI-X 的支持,跟传统通过硬件引脚产生的“硬中断“不一样,MSI-X

是”软中断“,把中断信息和正常的数据信息一样,告知主机端,而且支持每个核都产生对应的中断;三是优

化了 IO 路径,精简了调用方式,执行命令时不需要读取寄存器,极大降低延时;四是增加单队列深度,NVMe

把最大队列深度从 AHCI 的 32 提升到 64K,大幅提升 SSD 的 IOPS 能力;五是提高了指令处理的效率,NVMe 只

需要从队列中读取 64 字节的指令(Command Entry)就可以从内存读取数据,而 AHCI 需要连续读 2 次。

Page 15: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

15

Core #0

Main Memory

NVMe SSD AHCI SSD

Core #1 Core #2 Core #3 Core #0

Main Memory

Core #1 Core #2 Core #3

IO RequestIO Completion

Submission Queue

Completion Queue Completion

Status

Request Entry

Uncacheable Register ReadsEach consumes 2000 CPU cycles

4 per command 8000 cycles, ~ 2.5μs

0 per command

MIS-X and Interrupt SteeringEnsures one core not IOPS bottleneck

No Yes

Parallelism & Multiple ThreadsEnsures one core not IOPS bottleneck

Requires synchronization lock to issue command

No locking, doorbell register per queue

Maximum Queue DepthEnsures one core not IOPS bottleneck

1 Queue32 Commands per queue

64K Queues64K Commands per

queue

Efficiency for 4KB Commands4KB critical in Client and Enterprise

Command parameters require two serialized host DRAM

fetches

Command parameters in one 64B fetch

AHCI

硬件端多队列引擎配合主机端多核多队列

主机端的处理速度已经有了数量级的增长,相应的在 SSD 硬件端,也需要提高自身的处理能力,延续

PBlaze4, PBlaze5 所采用的硬件多队列技术就是为了匹配主机端性能的增长,提高 SSD 性能的技术之一。

硬件多队列在 SSD 内部通过队列引擎实现,同主机端的队列组一样,硬件队列引擎同样有一个提交队列引

擎和完成队列引擎。提交队列引擎可以以极高的速率从主机端提交队列中抓取指令,并分发给相应的处理单元。

处理单元将处理结果返回并提交到完成队列引擎,再分发给主机端的完成队列,极大提高了对指令的并发处理。

Host

Core 0

Device Controller

Submission Queue

CompletionQueue

Core 1Submission

QueueCompletion

Queue

Core NSubmission

QueueCompletion

Queue

···

Submission Queue Engines

Process Unit 1

Completion Queue Engines

Process Unit 2

Process Unit 3

···Process Unit N

1 Host Writes Command to Submission Queue Entry

Host Writes Doorbell

Signaling New Command

2

Fetch Command

3

4Controller Executes

Command

Controller Writes Completion Entry5

Controller Generates Interrupt

6

7 Host Process Completion Entry

8

Host Writes Doorbell To

Release Completion Entry

硬件多队列机制

动态平滑技术

服务质量 QoS 和延时抖动

简单的说,QoS 就是对性能的保证,包括带宽、IOPS 和延时,以及性能一致性的保证。

对于企业客户来讲,业务系统往往 24*7 的持续运行,所以产品短时间内的高性能意义不大,企业客户需

要的是能够提供稳定高性能设备,特别是大压力下的稳定高性能保证业务运行的连续性。业界把瞬时出现比较

大的性能抖动,譬如超长延时等会经系统内部逐级放大,最终造成极差的用户体验。这种延时抖动产生的原因

往往是由于后台“垃圾回收”动作的进行。但是“垃圾回收”是 SSD 为了回收更多可用空间而进行的必要操

作,如何平衡前端 IO,后台“垃圾回收“,IO 延时这三者的关系?Memblaze 已获专利授权的动态平滑技术可

以实现这一目的。

Page 16: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

16

动态平滑技术和 Flash 通道调度技术相互配合来保证 PBlaze5 SSD 的 QoS 能力。所谓 QoS,指在规定的时间

内,以稳定一致的性能完成所有请求的能力。比较常见的 SSD QoS 量化指标是以 99%或 99.99%的可信度给出最

大的响应时间。譬如 QoS(99%)的指标是 0.1ms,表示总请求 99%的 IO 延时在 0.1ms 以内。

自适应负反馈动态平滑系统

自适应动态平滑系统的核心根据 IO 延时动态调整前端 IO 的输入和后台“垃圾回收”的 粒度。和负反馈系

统类似,系统的输出会影响系统的输入,在输出变动时,所造成的影响恰和原来变动的趋势相反。也就是当

IO 延时过大时,减小前端 IO 的输入,并增大后台“垃圾回收”的粒度。

Adjust Input IO

Adjust GC

High IO latency

IO input IO latency

动态平滑技术负反馈系统示意图

就如同高速公路收费站前发生拥堵一样,此刻让更多的车辆进入高速路只会使拥堵更加严重,可行的做法

是开通更多收费窗口(“垃圾回收”),同时对进入高速路的车辆进行限流(前端业务 IO),疏堵兼治,减

少车辆的等待时间(IO 延时)。

动态平滑技术在交通拥堵时的作用效果

Flash 通道 QoS 保证

保证 QoS,防止信息流拥塞

为了保证 Flash 通道 QoS,设计并实现了调度机制,以保证对不同 IO 的及时处理,进而减小延时抖动。

如图所示,调度的作用是在接收到大量不同的 IO 请求后,对于不同类型的请求进行优先级排序,并向 Die 上

的队列按照队列要求分发请求。一般来说,用户对于读的响应最为敏感,所以读的优先级最高;而写时异步写,

用户感知不到,所以优先级次之;擦除是后台动作,也最耗时,其优先级最低。调度同时要考虑的还有掉电时

的数据完整性要求,此时的写优先级最高。Die 队列上读写擦指令的个数和组合也有相应要求,必须考虑最坏

条件下,在电容允许的放电时间内,保证缓存数据的完整写入。

• Open more charging windows

• Limit the number of cars swarms into highway

Toll Gate Toll Gate

Page 17: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

17

调度机制对信息流的控制可以有效的解决拥塞问题,是 NAND 内部提高性能的关键技术之一。

信息流的调度过程

优先级队列管理机制进一步降低读延时

一旦优先级排序好后,前端新发送的读指令必须等待之前已经排序好的指令执行完成后再提高优先级执行,

而 PBlaze5 的升级技术——优先级队列管理机制,对于应用场景用户可以进一步降低读延时。Flash 通道多核前

端实现输入消息优先级队组,其中输入队列组包含一个低优先级队列和高优先级队列,在通道多核后端实现输

出队列。进入输入队列组遵循先入先出(FIFO)顺序,但是高优先级队列中的指令可以最先被抓取并向输出队

列发送,然后向 NAND 介质中的 Die 队列上分发。经过调度过程的优先级排序后,如果有新的读请求下发,会

被插入高优先级队列中获得优先处理权。

SchedulerWrite

Read

Erase

Die queue

Message flow

···

···

···

Mixed Stream

User Read

···

···

···

High Priority Queue

Low Priority Queue

Die

···

System Read User Write System Write

···

···

Die

···

Die

Die

···

Priority Queue Management

Flash Channel

Core

Flash Channel

Core

···

···

引入优先级队列管理机制的调度过程

全局 FTL

闪存转换层 FTL

操 作 系 统 读 写 数 据 是 按 照 HDD 的 扇 区

(Sector, 512Byte)进行访问,但是 SSD 闪存的读

写是以 Page(一般为 4KB)为单位,擦除以 Block

为单位,这就导致现在操作系统使用的文件系统

无法管理 SSD,为了给 SSD 提供与块设备相同的

访问接口( 512 Bytes/sector), SSD 通过 FTL

(Flash Translation Layer,闪存转换层) 将自己虚

拟成一个基于扇区的设备,使得操作系统的逻辑

地址(LBA,Logic Block Address)重新映射成闪

Scheduler

Write

Read

Erase

Die queue

Message flow

···

···

···

Die

Die

Die

Die

Die

Mixed Stream

Page 18: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

18

存的物理地址(PBA,Physical Block Address)。经过 FTL 映射后,闪存设备就能够被操作系统使用。另一方面,

在 SSD 上,由于磨损平衡的关系,同一个 LBA 映射的 PBA 并不是固定不变,因此,这个 FTL 映射表是动态变化

的。显然,FTL 层的映射效率直接影响 SSD 设备的性能表现。

全局 FTL 如何提升设备性能并使磨损更均衡?

全局 FTL 是相对于部分 FTL 映射而言,两者最大的区别是映射范围的不同。部分 FTL 是指特定的 LBA 会指

向特定的 PBA 地址,譬如对应是奇数地址的 LBA 和 PBA 映射,对应是偶数地址的 LBA 和 PBA 映射,或者某一

区间的 LBA 只能映射某个 NAND 中的 PBA 地址。这种映射的优点是逻辑简单,容易实现,但是带来的问题是有

了奇偶地址的限制,映射不够随机化。而对于 NAND 必须要考虑“磨损均衡”。因此 PBlaze5 设计了全局 FTL

的映射算法,任何 LBA 可以和 PBA 一一映射。全局 FTL 大大提高 IO 映射的随机性,进一步优化了对 NAND 磨

损均衡,提高整体 SSD 寿命和可靠性。

SSD

Page

LBA0 LBA1 LBA2 LBA3 LBA4 LBA5 …… LBAn

Partition FTLGlobal FTL

NAND/Package NAND/Package

NAND/Package NAND/Package

...

PBA

Die 0

Blo

ck 0

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 1

Blo

ck 1

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 2

Blo

ck 2

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die m

···

Die 0

Blo

ck 0

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 1

Blo

ck 1

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 2B

lock 2

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die m

···

Blo

ck X

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Blo

ck X

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 0

Blo

ck 0

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 1

Blo

ck 1

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 2

Blo

ck 2

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die m

···

Blo

ck X

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 0

Blo

ck 0

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 1

Blo

ck 1

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die 2

Blo

ck 2

Page Page Page

PagePage Page

Page Page Page

Page Page Page

Die m

···

Blo

ck X

Page Page Page

PagePage Page

Page Page Page

Page Page Page

LBA 到 PBA 的全局映射

TRIM

TRIM 保证稳态性能的一致性并提升寿命

操作系统在删除 SSD 上的数据时,并没有真正将数据从 SSD 的 NAND 介质中删除,(在删除的文件的时

候,操作系统只是将删除文件所对应的数据块在文件系统中标记为“空闲”,并没有实际去清除数据块中存放

的数据),SSD 之前的物理地址中仍然存储着“已经被删除”的用户数据。对于 SSD 而言,只知道哪些地方存

了数据,但不知道这个数据到底还有没有用,数据的有效性只有操作系统才知道。只有当给存储着“已经被删

除”用户数据的地址写入新数据时,SSD 才能知道这些数据已经无效,等着“垃圾回收”的启动。这就存在两

个问题,一是如果在跑业务的时候用户删除大量数据,就会产生很多的无效数据,为了保证足量的“空闲空

间”,相应后续“垃圾回收”的时间也会变长,对业务的稳定运行产生影响;二是如果存储着“已经被删除”

用户数据的地址还没有写入新数据,SSD 依然认为这些数据有效,如果“垃圾回收”启动,这些无效数据可能

被搬移,引入额外写放大,如图中没有 TRIM 实现的第 3’个步骤,会额外对 C1 数据进行搬移。

Page 19: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

19

OS Logical View

1. User writes new files A,B,C,D

2. User deletes file “C”

File A

File C

File B

Free

3. User writes new file “E” to overwrite previous location of File ”C”

SSD Logical View (LBAs)

A1 A2 A3 A4

B1 B2 B3 B4

C1 C2 D1 D2

A1 A2 A3 A4

B1 B2 B3 B4

C1 C2 D1 D2

File A

Free

File B

Free

SSD Physical View (PBAs)

File CX

A1 A2 A3 A4

B1 B2 B3 B4

E1 E2 D1 D2

SSD writes new data to free space, only SSD knows about OP

OS only removes the pointer to the data C1, C2 and only OS knows existed C1, C2 is no longer valid. SSD is aware of invalid C1, C2 once they are overwritten

OS writes new file to old location, SSD marks old location contains invalid data and ready for GC, file E gets written elsewhere

File A File B

Free

File EFile D

A1 A2 A3 A4

B1 B2 B3 B4

C1 C2 D1 D2

Over Provisioning

A1 A2 A3 A4

B1 B2 B3 B4

C1 C2 D1 D2

A1 A2 A3 A4

B1 B2 B3 B4

GC GC D1 D2

E1 E2

File D File D

A1 A2 A3 A4

B1 B2 B3 B4

C1 F1 D1 D2

F2 F3

3’. User writes new file “F” and partial written without overwrite previous location of File ”C”

File A File B

Free

File FFile D

A1 A2 A3 A4

B1 B2 B3 B4

GC GC D1 D2

F1 F2 F3

C1

OS writes new file without overwrite old location, SSD will still treat C1 as valid data and may have extra move to free space once GC is triggered, file F gets written elsewhere

Without TRIM

OS Logical View

1. User writes new files A,B,C,D

2. User deletes file “C” and OS sends TRIM

File A

File C

File B

Free

3. User writes new file “E” to overwrite previous location of File ”C”

SSD Logical View (LBAs)

File A

Free

File B

Free

SSD Physical View (PBAs)

File CX

SSD writes new data to free space, only SSD knows about OP

TRIM from OS tells SSD to ignore the data in the location previously holding file “C” during GC

OS writes new file to old location, SSD writes file E to another free area

File A File B

Free

File EFile D

Over Provisioning

File D File D

3’. User writes new file “F” and partial written without overwrite previous location of File ”C”

File A File B

Free

File FFile D

OS writes new file without overwrite old location, SSD knows C1, C2 is invalid data and will ignore C1, C2 during GC

With TRIM

A1 A2 A3 A4

B1 B2 B3 B4

C1 C2 D1 D2

A1 A2 A3 A4

B1 B2 B3 B4

D1 D2

A1 A2 A3 A4

B1 B2 B3 B4

E1 E2 D1 D2

A1 A2 A3 A4

B1 B2 B3 B4

C1 C2 D1 D2

Over Provisioning

A1 A2 A3 A4

B1 B2 B3 B4

GC GC D1 D2

A1 A2 A3 A4

B1 B2 B3 B4

GC GC D1 D2

E1 E2

A1 A2 A3 A4

B1 B2 B3 B4

F1 D1 D2

F2 F3

A1 A2 A3 A4

B1 B2 B3 B4

GC GC D1 D2

F1 F2 F3

利用 TRIM 提前标记无效数据

正是出于上述原因,PBlaze5 提供了 TRIM 命令(SCSI 里面的同等命令叫做 UNMAP,NVMe 标准中称为

Deallocate),操作系统在删除文件时可以通过向 SSD 发送 TRIM 命令告诉它哪些数据块中的数据已经不再使

用了。如果用户在设备空闲或者业务不太繁忙的时候进行 TRIM 删除数据,SSD 在收到 TRIM 命令后,也同时

知道哪些数据无效,当达到触发“垃圾回收”的条件时即刻回收这些区块。因为 TRIM 让 SSD 提前知道数据已

经无效,相应使部分“垃圾回收”的动作提前,避免在业务运行压力大的时候因为后台过长时间的 GC 而影响

前端用户体验,同时最小化无效数据的搬移,改善 SSD 的写性能和寿命。

MemSolid3.0 打造企业级数据可靠性和一致性

闪存颗粒本身有可靠性的标准,但是存储颗粒只是 SSD 系统的部件组成,对于整个系统的可靠性就需要厂

商从硬件设计到软件实现做充分考虑。纵观全球,每个行业都不可避免的遇到过关键数据损坏和丢失,据国外

IT Policy Compliance Group 报告显示,数据丢失会对企业业务造成巨大影响,公开披露了数据丢失的企业预计

将导致其客户量及相关收入降低 8%。 而导致用户数据损坏或丢失的原因很多样,譬如操作系统的 bug,存储

设备的硬件或软件 bug,还有误操作这种“人为因素”也是不容忽视的重要风险之一。另外,随着技术的高速

演进,诸如多核处理器(Intel 18 核 Haswel 至强处理器已被广泛应用),内存不断增加,网络传输速率双倍提

升(应用于集群存储的 100Gb InfiniBand 网络),更大容量存储设备(PBlaze5 用户容量最大达到 11TB),都

会使数据损坏的风险增加。风险无处不在,不曾注意的是,甚至由天体爆发产生的爆发星(如超新星、新星和

耀星等)所产生的高能宇宙射线也会带来数据丢失的可能性。

因此,为了进一步增强 PBlaze5 的数据一致性,提高可靠性相关的 MemSolid 技术集合由 2.0 全面升级到

3.0。下表对 MemSolid3.0 及其优化进行总结,包含一些具有代表性和独创性的技术点,实际的技术实现不仅限

于此。

MemSolid * PBlaze4 PBlaze5

MemSolid 2.0 MemSolid 3.0

全路径数据保护 ✓ ✓

端到端数据保护 ✓

Page 20: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

20

超强纠错码 100bits/4KB BCH LDPC

全盘加密 XTS AES 256-bit 对用户数据自加密

安全擦除 ✓ 密钥删除

增强掉电保护技术 ✓ 电容健康监控

PCIe ECRC 保护 ✓ PCIe 端到端 ECRC 校验

固件保护 多 slot + pSLC+ 多备份 固件签名 + 在线升级

灵活功耗管理 25W/20W 25W/20W/15W

元数据保护 pSLC + 多备份 ✓

读干扰保护 ✓ ✓

写干扰保护 随机化 优化随机种子生成

重读技术 ✓ 持续判决电压校准

增强数据保持力 ✓ ✓

RAID 保护 动态 RAID5 ✓

磨损均衡 全局磨损均衡 ✓

高温保护 动态温度调节 ✓

S.M.A.R.T ✓ ✓

双端口 ✓

全路径数据保护

什么是全路径数据保护?

全路径数据保护是指,数据在主机端通过 PCIe 链路传输到 SSD 控制器, 然后控制器将数据传输到 SSD

Flash 接口,在通过 Flash 接口将数据写入 NAND 颗粒中,再返回给主机端的整个传输路径中,每一段传输路径

都有纠/检错算法保证数据传输的正确性,降低数据出错的风险。

1. 主机 PCIe 接口 到 SSD 控制器有 LCRC 和 ECRC 保护。

2. 数据进入控制器内部会添加保护信息 PI 实现数据路径端到端保护

3. 控制器内 DDR 有 ECC 编解码纠错保护。

4. Flash 接口有 RAID 保护,CRC ,LDPC 编解码保护和重读保护。

PBlaze5 NVMe SSD

Host SSD Controller SSD Flash Interface

PCIe interfaceLCRC/ECRC Gen

PCIe interfaceLCRC/ECRC Check

PCIe interfaceLCRC/ECRC Gen

PCIe interface LCRC/ECRC Check

DDR interfaceECC encode

DDR interfaceECC Decode

RAID CRC Gen LDPC Encode

LDPC Decode

RAID

CRC Check

Fail

Success

NAND Flash

NAND Flash

NAND Flash

NAND Flash

NAND Flash

DMA EnginePI Insert

DMA EnginePI Strip

全路径数据保护

Page 21: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

21

全路径数据保护保证 UBER<10-17

全路径数据保护的能力通过不可修复错误率(UBER ,Uncorrectable Bit Error Rate)进行量化。不可修复的

错误是指随着 SSD 的使用,错误率会慢慢上升,当超过了 ECC 的纠错能力,且上层重读技术、RAID 均无法修

正错误数据而产生这种不可逆的错误。 全路径数据保护可以使 PBlaze5 的 UBER 达到读取 1017 bits 数据(也就

是处理大约 11.1PB 的数据),仅有 1 bit 的错误。固态技术协会(JEDEC, Joint Electron Device Engineering

Council)定义的 JESD218 标准要求企业级固态硬盘的 UBER 小于 10-16。

Corrected by ECC (LDPC), RAID, Read Retry

Flash Media’s Raw Bit Errors(RBER)

UBER

Left uncorrected error 1 bit error for every 1017 bits read

PBlaze5 全路径数据保护保证 UBER<10-17

数据路径端到端数据保护

不可避免的静默错误(SDE)

对于 SSD 而言,有两类与之相关的错误类型,分为未被检

查到的错误和可以被检测到的错误。未被检测到的错误也称之

为静默错误(Silent Data Error),可以通过静默错误率(SBER ,

Silent Bit Error Rate)对其进行量化。静默错误是当设备给主机

端发送数据时,并没有告诉主机端接收到的是个错误数据。为

什么说“静默错误”可怕?因为返回一个错误数据不如什么数

据都不要返回。这种错误带来的连锁反应就像蝴蝶效应一般,

很可能导致更加严重的数据错误发生。譬如我们的银行账户可能从¥10000 变为¥10,操作系统元数据出现错误

可能导致多个文件系统的的部分损坏,甚至彻底无法访问。怎样的环境影响会导致静默错误的出现? 主要的

风险来自无处不在可能的位(bit)翻转,控制器,DRAM,甚至受到超新星的高能粒子射线照射。这些超新星

爆炸产生的大量的宇宙射线和放射性元素向地球涌来,我们的土壤,控制器,DRAM 都会受到铀和钍这些放射

性元素的辐射,这意味着所有的集成电路都暴露在低程度的电离辐射中,而电离辐射可能导致位翻转。虽然它

发生的概率很低,但却不可避免,所以企业级 SSD 需要用 ECC 保护的 DRAM,算法设计也需要考虑处理这种静

默错误。可以被检测到的错误通过 ECC 进行纠错,如果超过纠错能力,再由重读,RAID 技术恢复正确数据。

用什么技术可以发现静默错误的发生,保证数据一致性?答案是数据路径端到端数据保护。

如何通过数据路径端到端数据保护降低静默错误率

数据路径端到端数据保护是指给用户数据增加额外的保护信息(PI,Protection Information)来检验数据

一致性。 PBlaze5 设备通过 DMA 引擎增加 PI,保证数据在设备内部传输的一致性。其中 8 字节的 PI 中包含

16bit 的 CRC 信息,当用户数据写入时,ingress DMA 引擎根据传入 SSD 的数据计算生成 CRC 校验值增加 PI;当

对数据进行读取时,Egress DMA 引擎根据读出的数据生成新的 CRC 校验值,并和 PI 中的原始 CRC 进行比较。

如果两者不等,意味着可能检测到静默错误出现,DMA 引擎会对数据进行标记,将数据传输给主机端。主机

端可以根据业务的配置情况要求对错误数据重读,或者通过 RAID 保护等方法进行恢复。

Page 22: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

22

PI 信息结构和端到端传输路径数据保护技术示意图

也正是因为有了端到端数据保护和传输路径保护技术,PBlaze5 可以保证静默错误的发生率由通常的 10-17

~ 10-20bit 降低到 10-23bit,即主机端通过对检测到的静默错误纠错后,读取约 1YB 数据(1YB = 1024ZB =

1000000EB = 1000000000PB)只发生 1 bit 静默错误, 形象点说,根据专业机构预测,到 2020 年,地球上的数

据总量将会达到 40ZB,相当于读取 24 次 2020 年全球的数据总量,才会发生 1bit 的静默错误。

超强 ECC 纠错码 - LDPC

为什么选择 LDPC?

NAND 闪存由于物理结构上的问题,总会在各种条件下产生错误,如读写干扰、高温、辐射、寿命减少等

等。NAND 闪存初始可靠性可以用原始比特错误率(RBER)来表征,表示在未采用 ECC 纠错之前 NAND 固有产

生的错误率。如何满足企业级对可靠性的要求?则可以通过不可修复错误率(UBER)来评估所需要使用的 ECC

强度。JESD218 标准对于企业级 SSD 的 UBER 要求小于 10-16。而 TLC 的 RBER 比 MLC 高,一般对于采用 MLC 介

质的 SSD,采用 BCH 就可以保证企业级可靠性标准,如 PBlaze4 系列产品采用 100bits/4KB BCH。但是对于采用

3D NAND(TLC)为存储介质的 PBlaze5,就需要更强纠错能力的 ECC 码,低密度奇偶校验编码(LDPC)成为首

选的纠错方案,能够显著降低 UBER,并达到企业级产品所需标准。

LDPC 强大的软判决解码纠错能力

闪存中的数据,以所存储的电荷的电压是否超过一个特定的阈值 Vth 来表示。如下图所示,为 MLC NAND

存储单元中的电压分布曲线。在 SSD 还处于“青年期”时(刚开始使用),电压分布隔离,是理想状态的分布

状态。但随着使用过程中,相邻存储单元之间会产生读写干扰,电荷“泄露”等 NAND 固有特征带来的影响,

电压分布会发生平移和放大而出现“交织”,相邻两个存储单元中的数据可能被“误判”,从而导致错误。如

图中的 A 点,如果只是用硬判决,也就是不断调整判决电压值,通过“重读技术”来读取正确数据,重读在一

定程度上可以读出正确的数据,但是效率不高,而且很难准确判断 A 是属于“01”的区域还是“00”的区域。

如果能根据读取的结果加入一些“软信息”,这些软信息能反应 A 处于“01”或“00”区域的概率,就能更准

确的判断出 A 点真正的数值,这种纠错方式也称作“软判决译码”。从纠错的角度来看,LDPC 码已经接近了

纠错能力的极限。

Page 23: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

23

11 01 00 10

Vth

Read Reference Voltage

-△B +△B

Idea voltage distribution

Threshold voltage distribution shift right

·A

11 01 00 10

Vth

Read Reference Voltage

LDPC Error Correction

理想电压分布和偏移效果对比

相比只能硬判决的 BCH 纠错码,利用软信息纠错的 LDPC 可以极大提高纠错能力。

BCH 和 LDPC 的纠错能力对比

PBlaze 产品系列 & 纠错码 PBlaze4 (BCH) PBlaze5 (LDPC)

纠错能力 100bit / 4KB 550bit / 4KB

LDPC 的工作原理

这里我们图示一个基本的 LDPC 纠错流程。 在 NAND 中,ECC 对用户数据的最小保护单元包含被保护的用

户数据,CRC 和 LDPC 校验位。LDPC 在解码时会对保护的用户数据中在传输过程中产生的任何错误进行纠错。

当读取数据出错时,SSD 先采用“硬判决”打头阵纠错,如果多次读的硬解码失败,“软判决”替补队员上场。

附加携带的“软信息”也就是读出数据正确判为“1”还是 “0”的概率(对数似然比 LLR ,Log Likelihood

ratio),来辅助提高纠错的准确性。

Input protected message

LDPC encoder

Retrieved word from noisy channel

LDPC decoder

Read retry with LDPC hard decodingMax N times

Select three read RAW data

Fail?

Fail and < N?

LDPC decoding successfully

RAID

Success

LLR mapping

CRC generator

CRC checker

Protected User Data CRC LDPC Parity

Smallest addressable unit of ECC protection data stores on NAND

Soft LDPC decode

Protected Data

<N

LDPC 工作流程

Page 24: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

24

增强的掉电保护技术

为什么 SSD 需要意外掉电保护?

在设备上电时,利用高速随机存储器(RAM)缓存数据,是 SSD 提高性能的方法之一。但是由于固有结构

的限制,RAM 有易失性,必须周期性对数据进行刷新,并且没有供电时,缓存在 RAM 上的用户数据会丢失。

如果是安全关机,系统会提前通知设备电源要中断,让 SSD 有足够的时间处理还没有落盘的数据,SSD 此时会

将缓存的或者正在写入的用户数据完整的刷写进 NAND(也就是完成图示中所有 5 步操作),同时不再接收新

的 IO 请求。但是,异常掉电不会提前给设备通知和刷写时间,缓存的数据极大可能丢失。如果没有意外掉电

保护,异常电力中断(譬如大面积供电中断,人为误操作,甚至电压不稳)将会给企业用户造成巨大损失。

包含易失性元器件的 SSD

电容健康监测增强异常掉电保护

为了最小化异常电力中断造成的数据丢失,Memblaze PBlaze5 系列产品设计了包含高能量密度电容的掉电

检测电路。如图中所示,e-Fuse 模块会持续监控 SSD 的供电电压,一旦业务供电降低到设定的阈值,则预示意

外掉电事件的发生。e-Fuse 就会切断供电电路,同时 SW2 关闭,SW1 开关打开,电容所在电路形成通路并开

始放电。电容电量的选择是基于缓存数据量的大小,同时要考虑这些数据量向 NAND 刷写的最长时间,所选的

电容能够保证最坏情况下刷写数据的电量(Q)要求。所以充足的电力保护窗口,给予数据从缓存刷写到

NAND 充足的时间。当电源接通时,电容会快速充电。

在产品出厂前,通过下发指令,硬件电路板上的 MCU 模块会模拟异常掉电机制对 PBlaze5 电容的生命状况

进行监测,来验证电容的有效性,从而保证电容的可靠性。

包含电容的掉电保护电路

SSD

NAND Flash

NAND Flash

NAND Flash

DRAM1

4

I/O Write Command

ACK

5

FlushHOST

SSD Controller

2

3

ACK

Page 25: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

25

通过“取消擦除指令”增强异常掉电时数据刷写的完整性

“取消擦除”是 PBlaze5 新采用的技术,用来进一步保证异常电力中断是数据的完整性。该技术的应用主要有 3

个主要原因。第一个原因是“擦除”是非常耗时的操作,如果遇到电力异常中断,在电容放电的窗口期,从

DRAM 向 NAND 介质刷写中掺杂有擦除指令,在极端情况下,整个刷写周期有可能超过电容的有效放电时间,

其结果是导致部分数据丢失。因此将“擦除”指令取消等待上电后重新执行,不需要电容电量的增加,就可以

给关键的“编程”指令充足的执行时间保证。

第二个采用“取消擦除”技术的原因是由于 NAND 结构的差异,TLC 相比 MLC 需要更长的编程周期。因为 MLC

是一个 cell 存储 2bits 信息,分别为 Lower Page Data 和 Upper Page Data。而 TLC 是一个 cell 存储 3bits 信息,除

了和 MLC 相同的两个信息位,还包含 Extra Page Data,正如 MLC&TLC 存储状态图显示,因此 TCL 编程时间要

大于 MLC 编程时间( TTLC_prog = TLP_prog + TUP + XP_prog > TMLC_prog = TLP_prog + TUP_prog)。

111

011

001

101

100

000

010

110

Vth

TLCExtra Page Data Upper Page DataLower Page Data

11

01

00

10

Vth

MLCUpper Page DataLower Page Data

TTLC_prog = TLP_prog + TUP+XP_prog

TMLC_prog = TLP_prog + TUP_prog

MLC & TLC 的不同状态位

第三个原因,是考虑到在 SSD 使用过程中,由于大量的充放电过程,电容会慢慢老化同时伴随着电容电量降

低。“取消擦除”技术还可以增强在产品生命末期,遇到异常掉电时的数据完整性。

PCIe 链路端到端保护

认识 PCIe 链路

PCI Express,又称 PCIe,是一种高性能、高带宽串行通讯互联标准,除了显著提高系统吞吐量,还有具有

可扩展性和灵活性的特点,所以被广泛应用于网络适配、网络存储、大数据传输等领域。PBlaze5 也正是 PCIe

接口的企业级存储产品。目前很多处理器都支持 PCIe 设备和处理器直连,从而在有效提高了处理器与外部设

备间通信带宽的同时,极大降低了访问延时。PCIe 链路中有几个基本概念:

端口(Port):同一个芯片上的一组发送接收端口

数据通路(Lane):由两个发送接收信号组成

链路(Link):两个 PCIe 设备间的一个全双工连接,PCIe 链路可以由多个 Lane 组成

PCIe 总线使用端到端的连接方式,在一条 PCIe 链路的两端只能各连接一个设备,这两个设备互为是数据

发送端和数据接收端。随着业务的扩展,一台服务器中需要部署更多的 PCIe 设备, 这就要求服务器使用

Switch 扩展 PCIe 链路。如图示 Intel 的 Xeon E5-2600 v2 处理器支持 16 个 lane,通过 PCIe switch 扩展为 32 个

lane,Memblaze PBlaze PCIe 3.0 x 4 接口产品通过扩展的 PCIe 链路和 CPU 直连。

Page 26: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

26

CPUPCI Express x 16 lane

PCIex 4 PCIe

x 4

PCIex 4 PCIe

x 4

PCIex 4 PCIe

x 4

PCIex 4 PCIe

x 4

PCIe Switch (x 32 lane)

PCIe 3.0 x 4

PCIe3.0 x 4

PCIe3.0 x 4

PCIe3.0 x 4

ECRC effective between Port

Port : A group of transmitters and receivers located on the same chip that define a link

LCRC effective between Link

Link: A dual-simplex communications path between two componentsA xN link is composed of N lanes

Lane: A set of differential signal pairs, one pair for transmission and one pair for reception

利用 PCIe Switch 扩展 PCIe 链路

用户数据在 SSD 内部有诸多技术保证数据的一致性,PCIe 链路中的数据一致性如何保证?

ECRC 生成和校验

PCIe 链路数据传输的层次结构与网络协议栈较为类

似, 有多个层次,发送端发送数据时将通过这些层次,

而接收端接收数据时也使用这些层次。分别为物理链路

层、数据链路层和事物传输层。PCI Express 定义了设备

内部总线通信的数据格式,事物传输层数据包(TLP,

Transaction Layer Packet)。当 TLP 在两个 PCIe 设备间的

链路传输时,会添加 LCRC 和序列号,每经过一段链路,

LCRC 会重新生成,保证链路间的数据可靠性和一致性。

但是服务器中会通过 PCIe switch 来扩展 PCIe 链路,

甚至可能通过级联 switch 进一步扩展,数据会经过多级

switch 的转发,为了保证在所有 PCIe 链路上的数据一致

性,就需要 End-to-end CRC(ECRC)相助。也就是每个

接收到的 TLP 都会进行通过添加的 ECRC 进行校验,和 LCRC 不同的是,ECRC 在整个链路传输中保持不变。ECRC

是硬件行为,要实现完整的 ECRC,需要端口(port)发送接收两端都支持,也就是 CPU 和 device 都实现 ECRC

功能,哪一端发送信息,就会在传输层的 TLP 包中增加 ECRC 校验位,对端再进行校验。

ECRC,配合 LCRC,使 PBlaze5 极大提高数据在整个 PCIe 链路传输的可靠性。如果 ECRC 产生错误,则是不

可修复的错误,硬件链路本身无法纠错,会给主机端报 PCIe error。

元数据保护

高耐写高速率 pSLC 存储关键元数据

元数据是固态硬盘中非常重要的系统数据,FTL 表、磨损均衡相关寿命记录信息、读取\擦除计数、空闲

block、固件等等,我们都定义为元数据,这些数据对系统的可靠性而言至关重要。从元数据的类型可以看出,

Transaction Layer

Data Link Layer

Physical Layer

Tx Rx

Device Core

Transaction Layer

Data Link Layer

Physical Layer

Tx Rx

Device Core

ECRC LCRCFraming

EndDataHeader

Sequence Number

STP Framing

Link

PCIe Device B

• End-to-End ECRC

• Error Forwarding• Credit Base Flow Control

• LCRC Packet Protection

• Packet Sequence Protection• Packet Error Dectect/Correct

PCIe Device A

Transaction Layer Packet (TLP)

PCIe 链路数据传输层次结构

Page 27: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

27

这些数据是需要经常被访问和更新的数据。元数据对闪存寿命的过度消耗会导致固态硬盘整体寿命的下降。为

了增强对元数据的保护,提高固态硬盘整的的使用寿命,将元数据存放在 pSLC 模式。pSLC 具有 SLC 低错误率,

高寿命,高读写速率的特点,一般 pSLC 能够达到 2-3 万次的寿命。

划分 pSLC 和 3D NAND(TLC)模式

多备份元数据保护

为了增加元数据的冗余,PBlaze5 会对元数据进行跨 Die,跨 channel 的多备份。

Die 1(metadata 1)

Die 2

Die 3

Die 4

Die 1(metadata 1)

Die 2

Die 1

Die N+1

Die M

Die N+M

Die N

Die 2N

Controller

NAND flash NAND flash NAND flash

Die 1(metadata 1)

Die 2

Die 2

Die N+2

NAND flash

Ch

an

ne

l 1

Ch

an

ne

l 2

Ch

an

ne

l N

Ch

ann

elM

Metadata

Die 1(metadata 1)

Die 2

Die N

Die 2N

NAND flash

Ch

an

ne

l N-1

多备份

RAID 数据保护

坏块的管理

NAND 中或多或少总是存在着坏块,这些存储单元已经失去存储数据的能力。有些坏块在 NAND 出厂时就

存在,厂商会对其进行标记,有些坏块是在使用过程中产生的,所以 SSD 必须对 block 的健康状况进行严密的

监控和记录。PBlaze5 内部如何评判一个 block 是否出现坏块的迹象?类似驾照扣分制,例如读失败计 3 分,写

失败记 5 分,擦失败记 12 分,累计够 12 分直接吊销驾照,标记为坏块,积分制规则也是根据 NAND 的自身特

性和以往经验给定,防止出现漏标或误标记过多坏块的情况,从而保证 SSD 在整个生命周期中的健康状态。

Die 间动态 RAID5 恢复坏块数据

什么是 Die?做为 NAND 的基本组成元素可以参考《简单认识 NAND 结构》章节。

ECC 可以纠正在其纠错能力范围内的错误,但是对于更大范围的错误,如随机出错比特数超过 ECC 的纠错

范围,闪存物理块失效,整个物理 Die 失效,就需要 RAID(Redundant Array of Independent Disk)这样的数据

冗余保护。PBlaze5 采用跨 Die 的动态 RAID5 保护机制,初始为 N+1 的 RAID 组,PBLaze5(N 代表用户数据,

N+1 是从性能和容量的平衡角度实验得出的选择),一旦 Die 中出现坏块,就可以通过其他 RAID 组中其他有

Host

SSD Controller

Storage

Bu

ffer

NAND Flash

pSLC mode(metadata)

NAND/Package

Die 0

...

Block 0Block 1

Block n

Block a

...

Block 2

...

Block n-2

Block a-1

Block n-1

Die 1...

Block 0Block 1

Block n

Block a

Block 2

...

Block n-2

Block a-1

Block n-1

Die m

...

Block 0Block 1

Block n

Block a

Block 2

...Block n-2

Block a-1

Block n-1

Page 28: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

28

效数据和校验码恢复出坏块中的数据,之前的 N+1 RAID 组自动调整为(N-1)+1,再有坏块出现,RAID 组又会

动态变为(N-2)+1,线性递减到一定的门限值。这种优化大大提升了 RAID 保护的灵活性,增强了数据保护的

可靠性。

A1 A2 Ap· · ·A3

B1 B2 Bn

C1 CnC3

D3D2 DnDp

Die 1 Die 2 Die 3 Die N-1

Bp

Cp

A1 A2 ApA3

B1 B2 Bn

C1 CnC3

D3D2 DnDp

Die 1 Die 2 Die 3 Die N-1

Bp· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

Reconstruct

X

RAID 5 Dynamic RAID 5

· · ·

· · ·

Cp

X

动态 RAID5 保护进行错误恢复

重读保护

重读的原因是什么?

P/E 的消耗,数据保持力的降低,来自相邻 cell 的编程干扰,会造成浮栅门上电子的波动,使电子的电压

分布发生偏移。 如图所示,因为数据保持力会造成电子泄露,电压分布变小并向左偏移;而编程干扰会时电

压分布增加并向右偏移,这种偏移的结果就导致最初的基准判决电压不再准确,数据可能会被误判,也许之前

是“10”被判决读为“00”,也就是 bit 翻转,读错误发生。重读可以左右调整判决电压,直到找新的正确的

判决电压,读出正确数据为止(一般为了保证延迟,重读的次数会有所限制)。

如果在限定的重读次数后还是无法读出正确数据,纠错能力更强的 LDPC 软判决流程会候补上阵,但是纠

错力上升的同时会带来性能的下降和延时的增加。为了提高重读的纠错能力,同时降低对性能的影响,

PBlaze5 设计并实现优化重读保护的持续判决电压校准算法。

持续判决电压校准

持续判决电压校准算法的目的是在后台不断自动调整判决电压并找出基准判决电压值(两个相邻电压分布

的中心位置),而不影响用户的正常使用, 使判决电压两侧判决结果的 BER(bit error rate)接近,SSD 在需要

触发重读机制时用最少的尝试就可以纠错数据。另一个好处是自动调整基准判决电压值,可以极少触发 LDPC

软判决事件,相应减少对 SSD 的性能的影响,保证性能的一致性。

Page 29: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

29

11 01 00 10

Vth

Idea voltage distribution

Base Read Reference Voltage

Data Retention *Threshold voltage distribution shift left 11 01 00 10

Vth

Base Read Reference Voltage

Program DisturbThreshold voltage distribution shift right

11 01 00 10Vth

Self-Calibration due to Data RetentionAuto-calibrate the Base Read Reference Voltage to left

11 01 00 10Vth

-△B +△B

11 01 00 10Vth

Self-Calibration due to Program DisturbAuto-calibrate the Base Read Reference Voltage to right

-△B +△B

* For PBlaze SSD, data retention will never be too long, because of background scans with continuous movement of old data to new blocks.

持续判决电压校准自适应判决电压调整

RBER 是 Raw Bit Error Rate 的简称,也就是未使用 ECC 纠错前原始的 NAND 错误率。经测试,PBlaze5 开启

持续判决电压校准后 RBER 相比未采用持续判决电压校准技术降低近三倍。

采用持续判决电压校准技术相比未采用持续判决电压校准使 RBER 降低 3 倍

读干扰保护

读干扰产生的原因

对 NAND block 中的一个 page 进行读操作时,会给相邻的两个 page 加一个低的旁路电压,该旁路电压会

对存储单元中的数据有微弱影响,可能导致存储单元中的数据发生变化(bit 翻转)。读的次数越多,造成相

邻 cell 发生 Bit 翻转的概率越大。另一方面,block 的 P/E 消耗也会对读干扰造成影响。图示的数据反映了不同

P/E 次数,以及不同数据访问频率产生的错误比率。当 NAND 还没有经过使用(P/E 为 0),对数据的访问频率

达到 800w 次以前,读干扰会发生, 而当 P/E 达到 2000 时(绿色曲线),很少量的读就可以造成读干扰。

0.0

1.0

2.0

3.0

4.0

5.0

6.0

RB

ER N

orm

aliz

atio

n

PE(Program/Erase)

PBlaze5应用持续判决电压校准后RBER(裸bit错误率)的下降

RBER After cRLC RBER

RBER reduced 3X

应用了持续判决电压校准后的 RBER

Page 30: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

30

Selected

PageStressed

Cells0V

I/O I/O I/O I/O

Unselected

Page

Unselected

Page

···

···

···

···

···

···

Apply a high pass-through voltage (Vpass) to multiple pages on a read

Vpass

Vpass

page

读干扰 不同读取次数和 PE 次数的错误率统计

设定动态访问阈值,搬移经常访问的数据降低读干扰

为了降低读干扰,会综合考虑 P/E 的消耗,对 block 设定一个动态的数据访问门限值,如果超过阈值,会

将数据搬移。读干扰保护技术的实现,使 PBlaze5 发生读干扰的概率大大降低。如果出现“干扰顽固分子”,

也会有 Read Retry 、LDPC、RAID 将其消灭之。

写干扰保护

什么是写干扰?

NAND 对 cell 进行写擦写,是通过在控制门

上加或不加电压,将电子“吸入”或释放出浮

栅门。当进行写编程时,对控制门加高电压,

而邻近位的电压也会被拉高,使附近 cell 的电荷

脱离实际的逻辑数值,造成 bit 出错。所以如果

写入属于出现连续的全“0”,或全“1”时,

相邻 cell 就更容易受到干扰,所存储的电子数量

发生变化。结果就会导致在整个产品层面,错

误率(Bit Error Rate)显著增加。但是在实际应

用中,这种连续相同输入是非常常见的数据格

式,所以为了解决写干扰,通过随机化技术来改变这种连续相同数据格式的输入。

Selected

PageStressed

Cells

12V

VCC

I/O I/O I/O I/O

String being programmed are grounded others are at VCC

0V 0V

Unselected

Page

Unselected

Page

Programmed

Cells

···

···

···

···

···

···

VCC

Vpass

Vpass

Page 31: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

31

随机化实现写干扰保护

图示是随机化的过程,PBlaze5 采用随机化机制

来减轻编程操作造成的干扰。为了保证每次得到的伪

随机数(PRN,Pseudo-Random Noise)都足够地“随

机”,PBlaze5 对随机种子的产生方式进行优化,采

用硬件生成加密的随机数种子,再通过线性反馈移位

寄存器(LFSR) 和输入的数据异或生成伪随机数。

因此得到的伪随机数随机化程度更高,保证写入的数

据格式中“0”和“1”的数值接近均等,最大程度降

低写干扰的影响。

增强数据保持力

P/E 次数,温度如何影响 NAND 数据保持力

数据保持力是指存储单元在长时间不对其进行读写操作的情况下,其浮栅门级中存放的电荷会逐步漏电,

导致原本存储的数据发生变化,如图示中数据“0”可能变为“1”。漏电的快慢与隧道氧化层的磨损程度有

关,即与 P/E 次数有关。一般,NAND 寿命未消耗,40℃的情况下,MLC 的数据保持力能达到 1 年,eMLC 的

为 3 个月,磨损程度严重的 block 相比磨损程度小的 block 数据保持时间更短。

P-sub

N-well

P-wellN+ N+

Drain0v

Control Gate12v

SourceOpen

Program to “0” state

P-sub

N-well

P-wellN+ N+

Drain

Control Gate

Source

Data Leakage

P-sub

N-well

P-wellN+ N+

Control Gate0v

Erase to “1” state

Drain0v

SourceOpen

0V

0V

0V

12V

0V

0V

随着时间的增加 NAND 电子泄露现象

除了 P/E,温度对数据保持力同样会产生影响。根据阿伦尼乌斯方程建模出的温度与数据保持力的关系曲

线,很明显可以看到,随着温度的升高,电子活性增强,漏电的速度也会加快,数据保持力线性下降。当温度

达到在 85℃的高温时,MLC 保存数据的时间只有 52 个小时。

100 1K 10K

10 yr

5 yr

1 yr

Retention (Time)

Endurance

(P/E Cycles)

Infrequently cycled blocks have longer retention

Frequently cycled blocks

have shorter retention

1y

0.28y ≈3.3m

757h

247h

52h

0.25y ≈3m

0.069y ≈ 0.9m

187h

61h

21h

10

100

1000

10000

40 50 60 70 80

Flash Data Retention over Temperature

MLC eMLC

Temperature in Celsius (℃)

Nu

mb

er o

f ho

urs

(hs)

Flash 数据保持力随 PE 和温度的变化

LFSR(x32+x22+x2+x+1)

Randomizer Seed

Input Date Output Date (PRN)

Specific data pattern may have neighboring cells disturb each other

Page 0

Page 1

Not Randomize

Randomizing data can lessen the mutual influence of neighboring pages and columns

Page 0

Page 1

Randomize

Page 32: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

32

后台监控数据可靠性

如何提高数据的可靠性?一方面会通过磨损均衡平衡所有 block 的寿命,另一方面 PBlaze5 会对数据的访

问进行监测,后台定时访问存储在 NAND 中的用户数据,当发现数据出错率接近 LDPC 硬解码的能力时,对这

部分数据进行搬移,写入新的地址,释放原来的存储空间,提升原有数据的可靠性。这套机制在 SSD 后台自动

运行,对于用户而言完全透明。

磨损均衡

NAND 寿命有限的原因

NAND 闪存的存储原理是利用了量子力学的隧道效应。在控制门上加较高的编程电压,源极和漏极接地,

使电子穿越隧道氧化层到达浮栅,并聚集在浮栅上,存储信息。擦除时仍利用隧道效应,不过把电压反过来,

从而消除浮栅上的电子,达到清除信息的结果。寿命有限的原因是,电子反复来回穿越隧道氧化层而损坏隧道

氧化层,导致存储单元物理破坏而不能再有效的保持浮栅门中的电荷。

NAND 如何存储电子

动态&静态磨损均衡提升 SSD 寿命

因为固有结构,NAND 的寿命有限,也就是有限的编程/擦写(Program/Erase)次数。数据有冷热之分,

经常用来存储热数据的 NAND 会更快被磨损,当超过限制的 P/E 次数后,存储单元的可靠性就会大幅下降,最

终不可用(变成坏块),需要从预留空间中挑选有效 block 进行补充。

PBlaze5 针对冷热数据的不同访问特点,采用静态和动态两种磨损均衡算法来提高固态硬盘的整体寿命。

文章提到 SSD 用映射表 FTL 进行 LBA 到 PBA 的映射,对于经常被读写的热态数据(热数据),会根据 PE 次数

和 block 中有效数据的个数综合来选择数据要存放的 block,保证全盘 block 的 P/E 接近平均 P/E,同时做尽可

能少的数据搬移,减小写放大。当新数据写入后,LBA 指向新的 PBA 地址, 有效解决了某个 block 因被经常擦

写而导致的过早磨损。

对于长时间没有被访问的静态数据(冷数据),会根据时间和 block 的 PE 次数自动搬移,释放原始存放静

态数据的 block,重新做为新数据的写入。并且 PBlaze5 对 FTL 进行了全局映射的优化(具体可参考全局 FTL),

使磨损更均衡,可以有效提高固态硬盘的整体寿命。

Page 33: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

33

Dynamic Wear LevelingChoose free blocks with less-wear for new writes

Static Wear LevelingStatic block with cold data are moved when erase count differences become greater than the given threshold

Block 0 Block 1 Block 2 Block 3

Block 1 Block 2 Block 3Block 0

Copy cold data to average PE cycle block

Free Block

List

PE Cycle 8 5 3 6

PE Cycle

Cold Data Block

1 11 5 3

Free Block Block

Without wear Leveling With wear Leveling

磨损均衡

快速启动

“按需”重建 FTL 缩短系统重启业务的恢复时间

随着大数据的不断增长,SSD 技术不断演进,SSD 的容量也在不断提升。例如 Memblaze PBlaze5 可以提供

单设备最高达 11TB 的用户容量。FTL 映射表是 SSD 中极为关键的元数据,表征了 LBA 与 PBA 之间的对应关系,

所以和 SSD 的容量成正比。但是大容量同时会带来一个问题就是 FTL 表也会更大,在系统重启时,很关键的环

节就是对 FTL 表的重构。如何使得大容量下同样保证极少恢复时间?PBlaze5 研发了“按需”重构的新型算法

并已经申请专利,旨在缩短掉电后的恢复时间,并保证恢复的 FTL 状态最新有效。

SSD

pSLC

3D TLC

On-demand Recovery Process

DRAM

Co

ntr

olle

r

pSLC

NAND Flash

···

Periodically

Flush

···

HO

ST

Write

SSD

pSLC

3D TLCDRAM

Co

ntr

olle

r

pSLC

NAND Flash

···

HO

ST

···

Journaling for Recent FTL State Modifications

I/O

1

4

52

3

45

2 3

Reconstruct

FTL

7

···

1 6

Flush

···

1

6

日志更新和恢复过程

如上图对 FTL 映射表更新记录日志和恢复过程,一旦 FTL 表有更新时,会产生同步的写操作对 FTL 更新进

行日志记录,然后周期性的将更新的 FTL 表刷新到物理 NAND 介质的 pSLC 区域中。重启设备时,根据记录的

日志信息能够保证重构出最新 FTL 映射关系。而“按需”重构可以明显减少大容量 SSD 的恢复时间,其工作原

Page 34: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

34

理是在系统恢复的初始阶段,只恢复部分 FTL,剩余的 FTL 会根据实际写入的需要再进行重构。这种技术的好

处通过下图可以清晰说明:

Performance

Steady State

Performance transaction from ready to steady state on PBlaze5

Performance transaction from ready to steady state on PBlaze4

Time

PBlaze5 Flexible Ready Period

PBlaze4 Fixed Ready Period

Entire FTL Recovery

灵活的 Ready Period 设置

“按需”恢复,FTL 表需要多少重构时间?相对于 PBlaze4,PBalaze5 的恢复时间可调整,具体根据 SSD 容

量大小调优恢复时间。对于严苛的企业级业务系统,即使配置了多个大容量 PBlaze5 也可以保证系统重启业务

的快速恢复,提升可用性。

高温保护

动态温度监控和调节

如果系统过热,电路可能失效,NAND 中存储的数据也有会不稳定(如数据保持力降低)。PBlaze5 设置多

个高精度温度传感器,并设计了可靠的温度保护逻辑,在温度上升到第一警戒点时(Twarning),SSD 会向主

机端发送 warning 警告并自动降低读写性能,以防止温度进一步升高,当温度下降到低于 Twarning 时,SSD 自

动恢复性能,这个过程无须用户干预,对于用户而言完全透明。

如果温度进一步升高至第二警戒点时(Tcritical),所有读写操作会立刻停止,以防止电路过热损坏 NAND

中的数据,当温度下降,温度低于 Twarning 之后可以继续处理读写,性能回升。

TcriticalTwarning/TrestoreTemperature

Critical WarningP_normal

Performance adjustment when temperature around Twarning threshold

Normal performance

自适应温度调节技术

Page 35: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

35

S.M.A.R.T

自我监控,分析和报告技术

S.M.A.R.T 是 Self-Monitoring, Analysis and Reporting Technology 的缩写,提供 NVMe 标准和厂商自定义的

SMART 信息,用于监控 SSD 的健康状况,并根据设定的门限阈值提供预警。SMART 信息可以通过工具获取和

解析(如 Memblaze 提供的 NVMe SSD 管理工具)。

关键标准 SMART 属性

SMART 分为标准 SMART 和厂商自定义 SMART 两部分。标准 SMART 由 NVMeTM 标准定义,一般用户关心

的参数有严重告警、设备温度、 有效预留空间占比, 使用寿命等。厂商自定义是对标准 SMART 的补充,可以

显示更加详细的 SSD 参数如磨损均衡相关的擦写次数,功耗,温度调节状态等等。

PBlaze5 的 NVMe 标准 SMART 属性

SMART 标准属性 描述

Critical Warning

当 设 备 触 发 以 下 条件 时 ,设 备 向 主 机 端 发 送 critical

warnings严重告警信息:

有效预留空间(OP)小于阈值

温度超过阈值

设备可靠性下降

设备变为只读

电容失效

Device Temperature 设备温度,设备所有温度传感器的最大值

Percentage of Spare Space 有效预留空间(OP)占比,初始100%(既无坏块),随着

坏块的出现,OP空间会减小,从100%开始降低

Threshold of Spare Space 有效预留空间(OP)阈值,低于阈值设备报警

Percentage of Device Life Used 设备已使用寿命占比,100%代表设备寿命使用完(此时

设备也许还能继续使用,但出错概率会加速上升)

Data Read 主机端从控制器读取数据总量,也就是用户读取总量

Data Written 主机端写入控制器的数据总量,也就是用户写入总量

Read Commands Completed by Controller 由控制器完成的读指令数数目

Write Commands Completed by Controller 由控制器完成的写指令数数目

Controller Busy Time(minutes) 控制器上电后处理I/O的时间

Power Cycles 开关机次数

Power On Hours 设备开机时间

Number of Unsafe Shutdown 异常关机次数

Number of Media Errors 遇到不可修复的错误次数,如CRC、ECC纠错失败,或

DIF/DIX的8字节保护信息不一致

Page 36: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

36

SMART 标准属性 描述

Number of Error Log Entries Over Life 记录error log里面有几条记录

Temperature Sensor 1

PBlaze5板载有4个温度sensor对控制器、NAND各区域进

行精确的温度监控

Temperature Sensor 2

Temperature Sensor 3

Temperature Sensor 4

PBlaze5 丰富的企业级 SSD 功能

AES-XTS 256bit 全盘数据自加密

可靠性更高的 XTS 加密模式

高级加密标准(AES,Advanced Encryption Standard)是由美国国家标准技术研究所(NIST)制定的加密标

准,旨在对机密数据和咨询进行安全保护。目前该技术为美国政府与全球其他国家所采用,无论在软件还是硬

件加密中都有广泛的应用。 PBlaze5 会对所有写入的用户数据进行 AES-XTS 256 位硬加密。

最常见的 AES 是 128 位,256 位长度的密钥加密, AES 的加密模式分为加密块链接(CBC,Cipher-Block

chaining),电子密码书(ECB,Electronic Codebook)和 XTS 加密(XEX-based tweaked-codebook mode with

ciphertext stealing)。从安全性程度看,XTS 是三者之间安全性最高的加密模式。下图中最左侧的是未加密的

原始图像,右侧分别是经过 ECB 和 XTS 加密的图像。由于用 ECB 加密,相同的图形像素会产生相同的密文,所

以会出现中间图示的“渗滤”现象。而 XTS 可以保证相同的明文产生不同的密文。显而易见,对于企业级用户

对数据安全性有更高的要求,自然需要采用可靠性更高的 XTS 模式加密。

原始图像 ECB 加密图像 XTS 加密图像

AES-XTS 工作原理

数据加密,简单的说就是数据在写入时进行加密,读出时进行解密。PBlaze5 加密由控制器中的硬件逻辑

单元完成,数据写入时自动加密,对用户透明。XTS 加密模式用两个不同的 AES 密钥(Key1 和 Key2), Key1 用

来执行 AES 区块加密,Key2 用来加密“调整值(Tweak Value)”。Key2 对“调整值”加密后进一步经过伽罗

瓦多项式函数(GF)和 XOR 的修改,然后和明文混合。这保证了相同的明文不会产出相同的密文,达到输入

各区块产出独特加密文字的目标。相反的过程即可对资料进行解密。AES 密钥会存储在可靠性更高的 pSLC 模

式区域中并冗余备份。

Page 37: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

37

SSD

Controller

Host Memory

SSD

Raw data

Raw data

Without Encryption:

With Encryption: Host

Memory

Ingress DMA XTS-AES Encryption

Write: Raw data

Read: Raw data

NAND

Write: Encrypted data

Encrypted data

Plaintext: 128bitAES-enc: Standard AES algorithmKey1: Data encryption keytweak: 128bit tweak valueKey2: tweak encryption key

: GF(X) polynomialCiphertext: 128bit

Write

Read

AES-enc. AES-enc.

128-bit tweak

Key2 Key1

Plaintext

αj

Ciphertext

Egress DMA Decryption

NANDNAND

通过 XTS-AES-256 进行数据加密

注:扇区格式化为 4K 支持数据 AES 加密功能

安全擦除

安全性更强的密钥删除

在 SSD 使用很久之后,安全擦除可以将 SSD 恢复到出厂状态。这样做会永久破坏闪存颗粒中的数据,借

由此功能也可以放心“退役”不用的 SSD 不必担心隐私泄露。

对于用户而言,有两种安全删除数据的方式,一种是用户数据安全擦除,一种

是密钥删除。PBlaze5 支密钥删除这种方式,也就是说用户通过删除密钥,就相当于

彻底清除了所有的用户数据。而且密钥的大小只有 256bit,相比彻底删除全盘数据花

费的时间,不到 1 秒删除密钥即可完成。更重要的是,用户不用担心删除过程中遇到

意外掉电,或者下发删除命令后,数据并没有“真正”被彻底擦除。对于企业级用户而言,简单,快捷,安全

性更强的密钥删除方式对于敏感信息的保护必不可少。

固件签名

固件 CRC 校验 + RSA 签名,避免错误固件升级和恶意篡改

固件升级是 SSD 系统很重要的功能,而对固件进行数字签名则可以保证固件在交付用户传输过程中的有效

性,避免给黑客或蓄意破坏者留下篡改固件的漏洞。当 Memblaze 向用户发布固件时,固件会经过 SHA 哈希函

数生成 32 字节的固件摘要 A,然后通过 Memblaze 的 RSA 私钥对固件摘要进行加密(这个私钥只有固件厂商

Memblaze 产生,别人无法伪造),加密后的摘要报文和固件一起组成经过数字签名的固件。

Page 38: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

38

用户下载经过数字签名的固件后,在升级前首先对固件进行 CRC 完整性校验,存储在 PBlaze5 SSD 中的 RSA

公钥(公钥存储在 SSD 一部分的只读区域中)对签名固件解密获得初始固件摘要 A。同时固件再通过 SHA 算法

生成新的 32 字节固件报文摘要 B。两个固件摘要 A 和 B 如果经比较完全相同,则说明固件确实是由 Memblaze

提供的有效固件,允许进入升级流程。

Firmware Download and Upgrade Process

Firmware Signature Process

Signed firmware

Firmware1 runningFirmware1 running

Download Firmware2 in DRAM

Firmware1 runningFirmware2 in NAND

Firmware2 is running from designated slot

Download signed firmware from host memory

ActivateDecryption firmware

with public key

ResetOnline upgrade

1 2 3 4 5 6 7Firmware Slot

Memblaze RSA Private Key

Firmware

RSA(Firmware message digest A )

RSA Encryption

RSA(Firmware message digest A)

Firmware

Firmware message digest A(32 bytes)

H(Firmware)SHA-256bit

Signed firmwareRSA

(Firmware message digest A)Firmware

Memblaze RSA Public Key RSA Decryption

Firmware message digest A(32 bytes)

If two firmware message digest

match?Firmware Firmware message digest B

(32 bytes)

H(Firmware)SHA-256bit

固件签名和升级过程

NVMe 定义了 slot 的概念存放固件。PBlaze5 可以多 slot 存放固件,并且每个 slot 存放的固件进行双备

份冗余保护。其中 slot 1 设置为只读用来存放特定出厂版本,slot2 和 3 可以存放不同的固件版本。固件升级

主要分下载和激活两个步骤。第一步固件从主机端成功下载后,先存放在 DRAM 中,通过 CRC 和数字签名验

证固件的有效性。第二步激活相应的 slot,固件会被写入 NAND 介质中,并且无需热重启,即可完成升级。

注:固件签名功能默认关闭,可根据定制化需求使能该功能。

双端口(仅 U.2 规格支持)

链路冗余保证高可用性

企业级服务需要不中断的访问存储,满足高可用性。双端口设计提供提了创建两个失效区域的方案。一个

域通过一个链路连接一个端口,即使一个链路访问失败,还可以通过另一个链路访问。PBlaze5 双端口可以自

适应为一个 x4 端口或者两个 x2 端口(在支持双端口的服务器上)。

Page 39: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

39

Storage controller

Storage controller

Dual Port

X2 X2

. . .

PCIe Switch PCIe Switch

Storage Controller Storage Controller

High Availability Storage System

高可用双端口示意图

双端口是 NVMe SSD 在存储系统部署的关键功能之一

在仍以 SAS 为主导的企业级集中式存储系统领域,NVMe SSD 的颠覆才刚刚开始。根据 IDC 的报告,2018

年全闪存阵列厂商们纷纷推出或计划推出支持 NVMe 的全闪存阵列产品。NVMe 已趋于成熟,而要把 NVMe 推

向企业级存储系统,双端口是关键功能之一,以确保系统级别的高可用性。在双端口的情况下,两台服务器连

到一个盘上,即使单个链路出现掉电、断路等问题,也不会影响盘向应用提供服务。从性能的角度看,

PBlaze5 双端口每个端口为 PCle3.0 x 2,可以实现 Active-Active 访问,带宽性能是 SAS 系统的 3~4 倍,延时减

少一半。

多命名空间

多命名空间的灵活性

命名空间是指 NVMe 设备中一段 LBA(逻辑块地址)空间。这段空间通常由设备厂商定义并预先设定。譬

如 Memblaze PBlaze5 系列 SSD 产品。 但是随着单盘性能和容量的增加,譬如 PBlaze5 单设备最大可提供 11TB

容量,随机读性能过百万,单个业务而言性能容量往往有富裕。

PBlaze 系列 NVMe SSD 容量和 IOPS 的升级

3.2TB

11TB

740,000

1,000,000

240,000

320,000

0

200,000

400,000

600,000

800,000

1,000,000

0

3

6

9

12

2015 2017

PBlaze4到PBlaze5容量和IOPS的跃迁

NVMe SSD容量(TB) 读IOPS 写IOPS

容量(TB) IOPS

Page 40: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

40

面对这种情况,PBlaze5 支持在单盘创建多个命名空间。面对多业务混合部署的用户场景,用户只需创建

2 个或多个命名空间,将不同命名空间分配给不同的业务使用,而且可以分别设置不同的逻辑扇区(Logical

Sector)大小。PBlaze5 符合 NVMe1.2a 标准,支持高达 32 个命名空间,每个命名空间可以独立的设置逻辑扇

区 512/4096 字节,并可设置是私有还是可共享命名空间。数据一致性和安全方面, 每个命名空间拥有独立的

AES-256 位密钥对用户数据进行加密。默认命名空间设置指向整个用户使用空间(如"/dev/nvme0n1"),当创

建 多 个 命 名 空 间 后 , 主 机 端 可 以 看 到 多 个 独 立 的 设 备 列 表 , 如 "/dev/nvme0n1", "/dev/nvme0n2",

"/dev/nvme0n3"。

PCI Function 0NVM Express Controller

NSID 1 NSID 2

NS A

NSID 3

···NS B

NS C

Unallocated NVM

PCIe PortNVMe Subsystem

PCI Function 0NVM Express Controller

Unallocated NVM

PCIe PortNVMe Subsystem

多命名空间分配

灵活功耗管理

灵活功耗限制满足不同温度控制的系统要求

降低运营成本 OPEX 的一种有效方法是降低设备功耗和对冷却系统的需求。一些企业用户,对性能的要求

并不需要达到极致,只要满足业务的基本性能需求,但对设备功耗和环境温度有非常严苛的要求。SSD 在满压

力业务负载时,功耗达到最大值,PBlaze5 支持设置不同功耗模式,通过 Memblaze 提供的命令行管理工具进行

设置,进而对设备运行的平均功耗进行限制,相应散热也会减少,满足用户不同侧重点的需求。

结束语

Memblaze 全新一代 PBLaze5 企业级固态硬盘系列,凭借业内领先的技术优势,卓越的性能和可靠性,为

现代数据中心和企业级应用提供高速存储解决方案。

有关 PBlaze5 系列更多的产品信息,以及 Memblaze 全系列企业级固态硬盘产品和解决方案,请移步官网

www.memblaze.com。

PBlaze5 可选功耗模式 25W/20W/15W

Page 41: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

41

参考资料

白皮书中用到的行业术语和定义参考来源于如下在不同行业的权威公司或者学术研究,包括但不仅限于此:

Gartner Research www.gartner.com

Wikibon www.wikibon.com

IDC Research www.idc.com

G2M Incorporated http://g2minc.com/

PMC-SIERRA www.pmcs.com

Intel www.intel.com

JEDEC www.jedec.org

JESD219 http://www.jedec.org/sites/default/files/docs/JESD219.pdf

NVMeTM www.nvmexpress.org

NVM Express 1.2a http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_2a.pdf

SNIA http://www.snia.org/tech_activities/standards/curr_standards/pts

Wikipedia www.wikipedia.com

Oracle www.oracle.com

“Threshold Voltage Distribution in MLC NAND Flash Memory: Characterization, Analysis, and Modeling”

“LDPC-in-SSD: Making Advanced Error Correction Codes Work Effectively in Solid State Drives”

致谢

张泰乐 博士, SSD 业务部副总裁

路向峰,首席技术官

袁戎,软件开发高级总监

孙清涛,产品架构师

薛立成,逻辑架构师

上官光华, 硬件开发经理

张松松,硬件工程师

田冰,知识产权主管

朱磊,应用工程师经理

李月宽,应用工程师

Page 42: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

42

修订历史

修订版本 发布日期 更新内容 修订人

v3.1 2018/3/1 更新快速启动描述 王瑜

v3.0 2017/12/27

补充双端口功能描述

增加快速启动和多命名空间功能描述(高性

能和功能升级版本中新增功能)

因增加 910 子产品线,修改 700 和 900 子

产品线名称统一由 PBlaze5 系列代指

修改 PBlaze4 和 PBlaze5 产品演进对比表

王瑜

v2.1 2017/11/1 补充数据路径端到端保护描述

补充快速启动功能描述 王瑜

v2.0 2017/9/8 补充全路径数据保护描述 王瑜

v1.5 2017/9/1 增加多 plane 写指令图示

增加 MLC&TLC 存储状态图 王瑜

v1.0 2017/7/21 首次发布 王瑜/李月宽

Page 43: Memblaze PBlaze5 NVMeTM · 2018. 4. 8. · TRIM 18 TRIM 保证稳态性能的一致性并提升寿命 18 MemSolid3.0 打岆企业嬍数墠可崍性和一孳性 19 全屁堅数墠保塭

Memblaze® PBlaze5

技术白皮书 | MemSolid3.0 & MemSpeed3.0 北京忆恒创源科技有限公司

43

关于 Memblaze

Memblaze 是一家具有创新基因的公司, 早在 2007 年他的创始人就已认识到 NAND Flash 存储介质需

要摆脱传统存储协议和接口的束缚,并提出了以 PCIe 作为固态存储的高速接口来解决这一问题。经过两

个创始人 3 年多的潜心研究,设计出了业界第一个 Device -Based 架构的 PCIe 闪存卡。这一架构与其他

Host-Based 架构的产品相比有很大进步,显著减少了用户对主机资源的消耗,提高了产品性能及稳定

性,受到了用户的广泛欢迎。

2014 年 Memblaze 成为国内率先通过 VMware Ready 认证的 PCIe 闪存卡厂商。2015 年 Memblaze 新

一代 PBlaze4 PCIe SSD 通过 VMware ESXi6.0 官方认证,双方关系得到进一步加强。2016 年推出全新一代

PBlaze5 企业级 SSD。此外,Memblaze 与东芝、Microsemi 、OpenPOWER 等企业级 IT 公司和组织建立了

广泛而深入的合作关系。未来,Memblaze 将在固态存储领域与众多合作伙伴共同建设完整生态,推动固

态存储产业发展。

Memblaze 客户遍布虚拟化、互联网、大数据及云计算等领域,其中包括百度、奇虎 360、优酷及腾

讯在内的中国最大的 50 家互联网公司及超大数据中心中。在金融、医疗、广电、能源、政府与军工行

业,Memblaze 已有成功案例,并将在数据库、虚拟化、云计算、大数据等应用领域为客户提供应用加速

服务。

请浏览网站获取更多信息:www.memblaze.com

咨询热线: 400-650-7995;

咨询邮箱:[email protected]

版权声明

本文档中的所有内容、格式及相关产品的版权属于北京忆恒创源科技有限公司,在未经北京忆

恒创源科技有限公司许可的情况下,不得任意引用、拷贝、抄袭、仿制或翻译成其他语言。

本文档提到的其他商标或商品名称均是他们公司所属的商标或注册商标,除非特别声明,此类

商标或商品与本公司没有任何联系。

本文档中的内容可能会有更新,如有变更,恕不另行通知。

© 2011-2018 北京忆恒创源科技有限公司