Let MindShare Bring "Hands-On NVM Express (NVMe) 1.1a" to Life for You
MindShare's NVMe (Non-Volatile Memory Express) course begins with a review of PCI Express (PCIe) basics as a foundation for the study of NVMe. Next, a high-level view of the architecture provides the big-picture context. Finally, we drill down into some details for each part of the design, providing an introduction to the hardware and software protocols.
MindShare Courses On NVMe:
All of MindShare's classroom and virtual classroom courses can be customized to fit the needs of your group.
Hands-On NVM Express (NVMe) 1.1a Architecture Course Info
You Will Learn:
- An overview of PCIe configuration
- Basics of the NVMe Host Controller Interface model
- The steps for device initialization
- How command queues are set up and managed
- How host software informs the controller that new commands have been queued up
- How host software learns that commands have been completed
- Which command sets are defined, what the commands are, and an overview of how they work
- The error reporting structures defined
- The power management options
- New features associated with the 1.1a specification
Course Length: 1 Day
- PCIe Background
- Introduction to Configuration
- NVMe Overview
- Creation and management of Queues
- Building and submitting commands
- Command types
- Command example
- Managing the queue: Doorbell register operation
- Priority and Arbitration of commands
- Completing commands
- Informing the Host of completions
- Handling Metadata
- Asynchronous Event Notification
- SGLs (Scatter/Gather Lists)
- Namespace Reservations
- Command Sets
- Administrative commands
- NVM commands
- New Write-Zeros command
- Error Detection and Handling
- Error Reporting Structures
- Power Management
Previous exposure to PCIe is needed, as is some general knowledge of PC architectures.
1) Downloadable PDF version of the presentation slides.
2) PCI Express Technology eBook (or hardcopy on request) by Mike Jackson and Ravi Budruk.
3) Optional: MindShare Arbor software tool, used for student labs in the class.