Ensuring that the latency, power, and performance of computational storage devices can be deterministically analyzed before silicon.
To tackle power consumption and slow execution, modern computational storage devices (CSD) seek to reduce data movement by including a small processing element next to the CSD (figure 1). The data request from the host is executed locally by the processing element, data is locally manipulated, and the result sent back to the host. Much less data is exchanged between storage and host, thus saving power, increasing performance, and accelerating the execution.
Fig. 1: Computational storage model.
But, computational storage faces serious verification challenges:
These challenges lead to a troubling situation where teams believe that they have 100% verified that the system is functionally accurate, yet it fails in the lab because the performance of silicon is far from predicted.
Designers need a methodology to ensure that latency, power, and performance can be deterministically analyzed before silicon. The presence of a processing element in CSDs, embedded software, and the addition of an entire Linux stack with running applications makes this verification task challenging.
That is why Mentor, a Siemens business, created a computational storage verification methodology centered on hardware emulation. The primary reason to use emulation for verification is to run at speeds even software engineers can appreciate, with full visibility. Using a virtual environment enables them to measure design performance and latencies within a few percent of actual silicon. The ability to measure the pre-silicon performance of the hardware and software running as they would in the real product is critical to success. Virtual interfaces connected to the DUT in the emulator provide real-world stimulus and give the verification and software teams the confidence that the design is functionally correct and meets the IOPS, bandwidth, and latency targets required for the product to be successful.
Figure 2 illustrates a CSD in an entirely virtual emulation environment with modular components representing the overall system. The system is an SSD controller DUT running on the Veloce emulator driven by a virtual NVMe/PCIe co-model host that generates real-world traffic. Wrapped around the DUT are all the interfaces and models necessary to provide host stimulus and store the data in a NAND model. The entire environment provides seamless hardware and software debug environment, with 100% visibility of all signals and software.
Fig. 2: A scalable, modular storage controller verification system.
Unique elements of the CSD verification methodology include:
Emulation-based virtual verification provides complete system verification, including full firmware validation. Emulation reduces find-fix-test debug cycles to hours instead of weeks, accelerating time-to-market. From host traffic generation, virtual debugging, Protocol Analyzer on the interfaces, and the ability to view any waveform signal, this new methodology provides the ability to do complete system verification much earlier in the development cycle. This methodology allows for pre-silicon performance and latency testing within 5% of actual silicon, based on customer feedback. It is a verification methodology that mirrors the tools that teams use in the lab for bring-up and system tests.
To learn more, download our whitepaper, “Virtual Verification of Computational Storage Devices.”
Leave a Reply