上海热门外卖食品联盟

SATA固态硬盘性能遇瓶颈怎么办?NVMe协议来帮忙

只看楼主 收藏 回复
  • - -
楼主
  
  在传统的系统使用架构中,如机械硬盘和光驱设备,SATA(Serial ATA)接口在高级主机控制器接口AHCI(Serial ATA Advanced Host Controller Interface)模式的帮助下,已完全达到预期的性能要求。但到了固态硬盘的时代,与机械硬盘的磁头等机械结构不一样,固态硬盘的储存介质是NAND闪存,这时,SATA接口和高级控制器接口AHCI模式的组合已经称为了固态硬盘性能释放的瓶颈。



  理工科最大的优势就是,出现问题,就会立即寻找搞定问题的办法。俗话说,问医抓药,就要先了解病症。所以在要去找搞定这一瓶颈的答案之前,我们需要深入了解一下固态硬盘的结构和储存方式。



  从上图的固态硬盘的结构图可以看到,固态硬盘主要有主控Controller,内存RAM和NAND闪存组成。此外,固态硬盘与Host主机之间的交互依靠特定的接口Host Interface,主控与NAND闪存之间的数据交互由Flash Controller控制。在主控与NAND闪存之间存在多个通道,每个NAND闪存芯片执行正常的速度,结合多通道结构达到容量的提升,也能够保证固态硬盘可以更快的进行数据传输,最终达到高性能。

  根据早期的闪存报告,每个NAND闪存芯片的50MB/s, 典型的固态硬盘结构中采用4或者8个NAND芯片,那么综合性能可以达到400MB/s(8*50MB/s). 我们知道,SATA接口中的第三代SATA 3.0最大的速度为600MB/s, 所以这个速度对于早期的NAND闪存芯片来说已经绰绰有余了。



  但是,现在消费级固态硬盘中的NAND闪存芯片的速度大约是200MB/s. 随着NAND闪存标准的不断完善,包括AT&T Toggle 2.x和ONFI 3.x,PCIe固态硬盘配备的NAND芯片速度达到400MB/s,如果配备8颗NAND芯片,PCIe固态硬盘NAND闪存速度可以达到3.2GB/s。从这个速度来看,SATA接口固态硬盘完全不能发挥NAND本身的优势,完成称为了固态硬盘最大吞吐量的瓶颈。

  SATA接口和高级控制器接口AHCI接口发展遇到瓶颈,这时,NVMe主机控制器接口协议使用而生,NVMe的目的就是满足基于PCIe固态硬盘的企业数据中心和终端用户的系统性能需要。虽然在NVMe之前,为了实现PCIe固态硬盘性能的最大化,各大厂商为PCIe固态硬盘规划了很多接口和专属的驱动规划,由于每家厂商规划的接口完全不一致,从而导致了大规模的使用。为了更好实现PCIe固态硬盘的扩展,NVMe标准也随之出炉。NVMe充分发挥了PCIe固态硬盘的低延迟以及并行性,这也侧面反馈了,现在系统使用平台的并行性。下图展示的是NVMe主机控制接口搭配PCIe固态硬盘的链接示意图,以及AHCI主机控制器接口搭配SATA固态硬盘的链接示意图。



  从上面的互连示意图,我们可以了解到,SATA固态硬盘是先链接到SATA控制器,再链接到PCIe RC;但是,基于PCIe的固态硬盘可以直接链接到PCIe RC端或者处理器,这中间消除了转换协议的开销,实现更快的数据处理。


举报 | 1楼 回复