editor's blog
Subscribe Now

PCIe for SSDs

Earlier this month, the first rev of the NVM Express (or NVMe) standard was published. The idea is to establish a uniform register and command set for solid-state memories that use PCIe. It’s an abstracted interface, and doesn’t get into such details as wear-leveling; it works at the read/write/erase level, and the memory subsystem itself takes care of implementing low-level algorithms in the appropriate manner.

The architecture defines pairs of transactions – submissions and completions – that are managed on queues configured as circular buffers. There can be multiple submission and completion queues; submission queues can be matched with completion queues, or multiple submission queues can share a completion queue. This allows, for example, each core in a multicore system to own a queue without needing locks to protect transactions from interference by other cores.

Quoting from the standard itself, key features are:

  • “Does not require uncacheable / MMIO register reads in the command issue or completion path.
  • A maximum of one MMIO register write is necessary in the command issue path.
  • Support for up to 64K I/O queues, with each I/O queue supporting up to 64K commands.
  • Priority associated with each I/O queue with well-defined arbitration mechanism.
  • All information to complete a 4KB read request is included in the 64B command itself, ensuring
  • efficient small I/O operation.
  • Efficient and streamlined command set.
  • Support for MSI/MSI-X and interrupt aggregation.
  • Support for multiple namespaces.
  • Efficient support for I/O virtualization architectures like SR-IOV.
  • Robust error reporting and management capabilities.”

Key characteristics of the register set are:

  • “Indication of controller capabilities
  • Status for device failures (command status is processed via CQ directly)
  • Admin Queue configuration (I/O Queue configuration processed via Admin commands)
  • Doorbell registers for scalable number of Submission and Completion Queues• Efficient support for I/O virtualization architectures like SR-IOV.
  • Robust error reporting and management capabilities.”

Both Synopsys and Cadence wasted little time in announcing their verification IP support (Cadence also announced 12-Mbps SAS VIP). You can find out more about their announcements in the Synopsys release and the Cadence release, respectively.

Leave a Reply

featured blogs
Apr 4, 2020
That metaphorical '€œboing'€ sound you hear, figuratively speaking, is a symbolical ball allegorically landing on Chewy'€™s side of the illusory net....
Apr 3, 2020
Mentor’s Xpedition® IC Packaging design tools bridge the gap between engineering teams for IC layout, package substrate design, and PCB layout with solutions for Chip/Package/PCB prototyping and co-design. They also deliver a complete solution for High Density Advan...
Apr 3, 2020
[From the last episode: We saw some of the mistakes that can cause programs to fail and to breach security and/or privacy.] We'€™ve seen how having more than one program or user resident as a '€œtenant'€ in a server in the cloud can create some challenges '€“ at leas...
Apr 2, 2020
There are many historical innovations that are the product of adversity, and the current situation is an extreme example.  While it is not the first time that humanity has faced a truly global challenge like the COVID-19 pandemic, this time the world is connected by tech...

Featured Video

LE Audio Over Bluetooth with DesignWare Bluetooth IP

Sponsored by Synopsys

The video shows the new LE Audio using Synopsys® DesignWare® Bluetooth 5.2 PHY IP and Link Layer IP with isochronous channels, and ARC® Data Fusion IP Subsystem with ARC EM9D Processor, running the LC3 codec supporting LE Audio.

Click here for more information about Bluetooth, Thread, Zigbee IP Solutions