在SSD开发中利用仿真

文章作者:Lauro Rizzatti

硬件仿真解决了在SSD开发中使用基于fpga的原型设计时遇到的困难。

«前文:剖析固态硬盘的优势和挑战

随着固件的不断增长和实现越来越多的功能,SSD技术也在不断发展。NAND数组的大小和实例数量也在增加。

NAND阵列与控制器SoC之间的接口速度快于主机接口,且速度还在继续增大,两者之间的性能差距越来越大。

控制器SoC的整体复杂性和大小也在不断扩展,以应对日益复杂的NAND管理。

与所有现代SoC设计一样,降低功耗是一个关键要万博投注网址求,而且这一趋势将继续下去。

SSD控制器的设计与验证

SSD控制器设计的唯一性通过其验证/验证过程放大。与可以在商业知识产权(IP)上建立的移动设计中的大多数芯万博投注网址片不同,或者在标准Linux内核上运行,SSD控制器必须从头开始设计。硬件和嵌入式固件必须高度自定义和紧密耦合。硬件可以使用诸如CPU,系统总线等诸如CPU,系统总线和外设之类的少数标准IP块,但固件确定SSD控制器的主要功能。为了实现最佳性能和最低功耗,固件必须在优化的硬件上进行微调。

为实现这一目标,该行业正在采用软件驱动的芯片设计流,而不是传统的硬件/软件设计流程。

在传统的硬件/软件设计流程(图3)中,硬件和固件设计序列化或流水线。万博投注网址固件工程师可以参与系统定义规范,但在硬件完成后,将延迟固件实现详细信息将延迟到删除。该流程导致固件功能差和性能有限。此外,由于固件开发迟到,设计周期会随着错失的时间表截止日期而导致的。

20170613_SSD_03
图3:硬件和固件设计是传统的硬件/软件设计流程中的序列化或流水线。来源:Lauro Rizzatti

相比之下,在软件驱动的设计流程中(图4),固件开发与硬件设计同时开始。固件工程师参与硬件的规格定义,并在硬件设计阶段了解硬件细节。由于硬件和软件的开发是并行进行的,它们可以相互影响。在开发中的硬件上测试早期的固件会发现一些错误,否则这些错误会在磁带取出后被发现。同样,性能优化也可以在早期进行。

20170613_SSD_04
图4:在软件驱动的设计流程中,固件开发和硬件设计是并行进行的。来源:Lauro Rizzatti

到设计完成时,硬件和固件已经被优化,实际上已经准备好进行大规模生产。当工程样品从铸造厂返回时,硬件和固件的实验室可能只需要一到两周,因此与传统的设计流程相比,大大加快了上市时间。

软件驱动设计流程中的设计验证/验证需要高性能系统,尽可能靠近真实芯片环境,并具有强大的调试功能,并轻松提升。

如图5所示,传统的基于现场可编程门阵列(FPGA)的原型板满足了一些要求,比如执行速度,但也带来了一些缺点。

20170613_SSD_05
图5:基于FPGA的原型制作板提供了执行速度。来源:Lauro Rizzatti

这种设置涉及到物理外设的部署:一组NAND闪存设备连接到FPGA内映射的NAND控制器,一组DDR内存连接到FPGA中的DDR控制器。外围接口(如UART和SPI)以及到主机的物理PCIe或NVMe接口完成了设置。虽然FPGA板接近于实际硬件,并支持验证固件所需的高速执行,但一些缺点影响了它的部署。

例如,编译器只支持寄存器传输层(RTL)语言的一个可合成子集,模型经常需要重写以适应fpga的结构。真正的外围设备的提出施加了大量的努力,以应对电气、机械、功率损耗、频率调制(FM)干扰和噪声问题。在FPGA中进行设计调试既困难又耗时,这是由于编译产生的内部设计可视性很差。添加可见性迫使重新编译整个设计,从而减缓整个验证过程。

幸运的是,硬件仿真解决了所有这些困难。与基于fpga的原型相比,现代仿真器有几个优点。将设计RTL代码映射到模拟器上需要有限的代码修改。该模拟器提供了与硬件描述语言(HDL)模拟器类似的全设计可见性,但速度要快4倍或5倍,接近FPGA原型板,这是固件开发的必备条件。这样的模拟器成为共享资源,如果以虚拟模式部署,就可以远程访问,而这在基于fpga的原型中是不可能的。

仿真器可以部署在电路仿真(ICE)或虚拟模式中。ICE模式遵循与基于fpga的原型设计方法相同的路径,并且受到物理外设引入的相同问题的困扰。虚拟模式解决了所有的问题,保留了模拟器的优点。

在一个虚拟设置中,所有的外设都在软件中建模,这给了工程师对仿真环境的完全控制和可见性,不仅是在测试中的设计(DUT),而且还有外设和接口(图6)。

20170613_SSD_06
图6:在虚拟设置中,工程师控制仿真环境。来源:Lauro Rizzatti

软模型实现了在仿真器或主机上运行的NAND闪存和DDR内存。可以在仿真器上合成并执行串行外设接口(SPI)和闪光模型。PC服务器通过虚拟PCIe基于DPI接口连接到模拟器内的DUT,托管一个快速仿真器(Qumu)虚拟机。UART模型连接到主机服务器上运行的Xterm窗口。所有虚拟模型都可以在连接到仿真器的单个主机服务器上可控且可见。

虚拟解决方案提供了几个优点。首先,它允许DUT的全信号可见性和外部虚拟设备及其接口。可以监控PCI流量。主机操作系统运行qemu虚拟机,提供完全控制BIOS的行为。可以读取和写入DDR存储器,NAND闪存和SPI和闪存的内容。它们的类型和大小可以是许多不同的配置,它是物理设置中不可能的壮举。虚拟域提供方便的调试环境,因为可以看到和修改所有内容。

例如,在PCIe接口的情况下,来自Mentor的VirtualAb PCIe支持通过内置虚拟PCIe分析器对界面的彻底调试和对流量监控。

虚拟设置添加了三种功能,不具有物理设置,如下所示:

  1. 它可以从世界任何地方遥远的全天候搬走。
  2. 它可以被许多并发用户共享。
  3. 它支持与实际设计相同的时钟频率,因为外围时钟频率不必通过速度适配器减慢以匹配仿真器运行缓慢的时钟。这避免了不同速比的差异,并实现了真实的性能评估。

20170613_SSD_07
图7:Mentor VirtualAb PCIe支持通过内置虚拟分析器对PCIe接口进行彻底调试,并监控流量。来源:导师图形

在铸造厂释放芯片后,虚拟仿真环境与实际芯片环境相同。它可以测试固件,检查设计性能,并找到通过HDL模拟器无法找到的错误,并促进架构实验以适应不同的媒体存储类型和接口。

结论

为了利用SSD设备的升级市场增长,工程师必须加速开发周期,避免交付经过测试和低性能芯片的风险。

只有最先进的仿真平台才能完成这项艰巨的任务。通过其与FPGA原型板相当的快速执行速度,以及快速而直接的设置,以虚拟模式部署的模拟器提供了一套调试功能,这些功能成为软件驱动设计流程的核心。

SSD行业已经证明,通过仿真可以减少两到四个月的开发周期。当将部署与共享和远程访问资源结合起来时,仿真系统的投资回报(ROI)肯定是合理的。

留下你的评论