PCIe接口与NAND闪存盘
外围组件快速互联(peripheral component interconnect express,简称PCIe或PCI-Express),是一种高速串行计算机扩展总线标准,使用PCIe接口与计算机连接的固态硬盘、显卡、网卡等外设因其数据传输速度高、带宽大的特点,从而具有更高的数据传输效率。
通俗来讲,就是在“主机”和“SSD盘”两座城市间建立一条名为“PCIe”的高速公路,相比于普通公路,运输数据的车辆不仅可以跑得更快,能使用的车道也更多,自然每时每刻有更多的数据来往于两座城市之间。近年来,PCIe技术已经成熟,较之传统硬盘的性能迎来新的飞跃,但同时也为携带数据“车辆”的可靠程度——NAND信号的传输质量带来更严峻的考验。
(资料图片)
目前市场上主流SSD均采用四通道PCIe4.0传输,根据PCI标准组织——PCI特别兴趣小组(PCI-Special Interest Group,简称PCI-SIG)给出的定义, PCIe4.0标准的单通道传输速度为每秒二十亿字节(2GB/s),相当于1秒钟完成一部高清电影下载,即理论上四通道最高能够实现每秒八十亿字节(8GB/S)的传输速度。
如今,SSD盘的容量已经突破32TB(1TB=1000GB),更大容量的SSD盘将使用更多的NAND,这就意味着“PCIe高速路”上来自不同“NAND城市”的车辆越来越多,携带不同“牌号”的车辆越来越多地汇入同一条高速路。随着传输数据的信号种类和频率增加,如果不采取必要处理手段,信号质量在多种高频信号相互反射的影响下就会越差,进而降低数据传输速率,最终导致SSD盘无法完全发挥PCIe技术的速度优势。
那么“质量好”的车应具备哪些硬件和软件方面的特点?
其一,车身坚固——即高信号强度,在各种路况(电压)、天气(温度)下正常行驶,支持高速度(频率)行驶,在发生事故(信号反射)时仍能保证将乘客(数据)安全送达;
其二,速控灵敏——即信号波形稳定无扰动,能够在高速车道(高频)和低速车道(低频)灵活切换,同时在同一车道上车距(相位)保持有序,连续的信号波形无抖动和串扰。
如何提高NAND信号质量?
由于NAND闪存颗粒(NAND Flash)接口速率越来越高,由每秒百万比特发展到每秒十亿比特,NAND厂商想出了各种办法来解决高速信号带来的信号完整性问题。例如改变NAND驱动与端接方式,以及在初始化时通过硬件手段对NAND某些电路引脚进行特殊处理,即进行ZQ校准(ZQ Calibration)、DQ读写训练(Read DQ Training、Write DQ Training)和使能信号占空比训练(DCC Training)等。在SSD固件开发中,可以基于不同的需求充分利用这些特性,通过增加相应功能来提高NAND信号质量。
第一,改变NAND端接方式。
端接,即一种消除信号反射的方式。片内端接(On Die Termination,简称ODT) 就是将端接电阻移植到了NAND内部而非PCB。
目前常用的端接主要有Target ODT、Non Target ODT等方式,以下为不同拓扑方式对比:
不同端接拓扑方式对比
简单来说,端接处就像“PCIe”高速路的收费站,Target ODT模式表示这唯一一条高速路通向多少个“NAND”城市,终点就有多少个收费站。要实现这一点,就需要在终点建设对应数量的匝道,每条匝道延伸到不同收费站“target”。但随着SSD盘容量的升级,终点处的城市数越来越多,如果还是按照Target ODT模式,终点处的匝道数也随着“NAND”城市数增加。如果下高速前要从十几个匝道中选择一个正确的匝道驶离,对于司机来说即使是有导航也是一件困难的事,势必会导致车辆下高速过程中发生混乱(信号扰动)。Non Target ODT模式是保持原有匝道数不变,规定一定数量的“NAND”城市为一组,共用一个匝道,即一个匝道的出口是两个以上的“NAND”城市,通过投入一定预算(功耗),安排一批交警(命令)保证从同一匝道下高速的车辆正确前往对应的“NAND”,来维持原有的匝道数,使行程终点的交通不至于因为“NAND”增加而混乱,既保证了高速信号在到达接收处降速时的信号质量,也最大可能的维持了传输信号的高速率。
各种端接方式优缺点:
Target ODT简单易行,是最常用的方式,无额外性能损耗,适用于IO接口速率不是很高的情况,比如800MT/s;
Non Target ODT对信号反射的处理更好,使得Target Die上的信号质量进一步提升,IO可以跑到更高的速率,比如1.2GT/s,由于使用时需要额外的命令设置,对总线效率有一定影响,并且功耗会有所增加;
另外为了应对更高的NAND IO接口频率,比如2.4GT/s,或者更高,近年来增加IO Buffer Chip的方式也成为发展的一个趋势,但此设计增加了SSD电路及Firmware设计的复杂性,NAND成本和功耗也进一步增加,添加Buffer有在外部总线添加和NAND内置两种:
第二,ZQ校准(ZQ Calibration)。
为了在提高信号完整性的同时增强输出信号的强度,NAND中引入了终端电阻和输出驱动器,想要在温度和电压发生变化的场景下仍然能够保持良好的信号质量,就需要借助ZQ Calibration对这些终端电阻和输出驱动器进行校准。通过一系列精密的电路设计,在SSD盘初始上电过程中调整终端电阻阻值到设计的精确值,以保证信号输出所需的电压、电流达到理想值,信号在生成之初就可具有较高质量和抗干扰性。
ZQ Calibration在低速时是可选的,但当NAND传输速度超过533MT/s时则必须开启该功能(以某一款NAND举例)。
第三,增加Training功能。
Training的过程,是为了找出在Controller和NAND间进行数据读写时的最优信号的位置,而进行的探索性调整相位的过程。一般NAND IO速率超过800MT/s就需要开启该功能,通过NAND的Read、Write Training来优化信号Window,使数据读写的建立、保持时间裕量更大,达到提升信号质量的目的。
以浪潮信息企业级SSD在实际测试中通过改变NAND特性带来的信号质量提升为例:
左图是使用Target ODT及未加Training时的仿真波形,可以看出信号质量比较差,并且IO速率得到限制,只能跑到最佳性能所需速率值的三分之二(667MT/s),如果再提高频率就会造成数据出错;右图是将端接改为Non Target ODT和增加Training后的波形,可以看出信号质量明显改善,并且IO频率可以达到理想值1000MT/s,甚至更高,信号质量得到显著提高。
未经处理的信号 优化后的信号
由于IO频率的提升,NAND到Controller DDR RAM之间数据传输的时间减小,就单个Data Frame而言,时间减小2.288us,减小了读时延,提高了QoS指标(Quality of Service 服务质量)。
浪潮信息:持续升级企业级SSD
浪潮信息企业级SSD(型号NS6500G2),采用8 Channel SSD Controller(SHX1000),通过以上措施提升NAND信号质量,使得NAND IO频率稳定运行在1.2GT/s,将PCIe4.0性能发挥到极致。除SSD Controller之外,NS6500G2在NAND颗粒和Firmware上实现全部技术创新,支持加密算法和标准日志接口,能提供高运维效率,降低客户TCO。多项关键技术创新能够更好地满足客户需求。
近年来,浪潮信息持续加大产品投入和创新,通过内在技术打磨和外延销售网络扩展,不断提升自身在各生态领域下的地位,以精益精造的理念,不懈追求更高速、更可靠的数据传输模式,充分发挥闪存高效、可靠、绿色的优势,以创新助推技术产品化,以合作谋求行业数字化转型,全面释放数据价值,推动数字经济融合发展。