|
NVM Express 1.4 Technology eLearning Course
What's Included?
|
|
|
NVMe eLearning modules
(unlimited access for 90 days) |
PDF of Course Slides
(yours to keep, does not expire) |
PCI Express eBook
(yours to keep, does not expire) |
Benefits of eLearning:
- Access to the Instructor - Ask questions to the MindShare Instructor that taught the course
- Cost Effective - Get the same information delivered in a live MindShare class at a fraction of the cost
- Available 24/7 - MindShare eLearning courses are available when and where you need them
- Learn at Your Pace - MindShare eLearning courses are self-paced, so you can proceed when you're ready
Who Should View?
This in-depth course is designed with the hardware or software engineer in mind. The course contains a detailed description of the NVM controller interface, the submission queues, completion queues and how software and the controller communicate with each other.
Course Outline:
- Module 1a: Introduction and NVMe Basics
- Intro, why use PCIe, software stack view, example file system request
- Module 1b: Introduction and NVMe Basics
- Example NVM subsystem, NVMe firmware, local memory (CMB and PMR), SSD Block diagram, namespaces intro, shared port, virtual functions, NVM sets, endurance groups, big picture (commands, submission queues, completion queues, etc.), comparison with SATA Express
- Module 2: NVMe Host Controller Interface
- NVMe controller registers, establishing admin queue, control registers and initialization, NVMe labs using Arbor, Queue Doorbell pointers and usage, queueing commands, fetching commands, writing completions, notifying host, tracking completion queue entries, phase tag information
- Module 3a: NVMe Commands: Admin Commands
- Generic command structure, Identify command, Create IO Completion Queue command, Create IO Submission Queue command, NVMe labs using Arbor
- Module 3b: NVMe Commands: Admin Commands
- Create IO Submission Queue command, NVMe labs using Arbor
- Module 4a: NVM IO Commands
- Read/Write commands, command attributes, protection fields, protection action, dataset management, atomic writes
- Module 4b: NVM IO Commands
- Optimizing write commands, basics of flash storage and SSD operation, avoiding write amplification with write streams, setting up write streams, directive receive, directive send, avoiding write amplification through deallocation
- Module 5: Command Arbitration; Addressing Models: PRP and SGL
- Round Robin and Weighted Round Robin (WRR), Commands using Physical Region Pages (PRPs), Commands using Scatter/Gather Lists (SGLs), PRP lists, SGL elements, SGL descriptors
- Module 6: Get / Set Features Commands
- Purpose of Get Features and Set Features commands, feature identifiers, LBA range types, feature numbers to set, temperature threshold, Host Memory Buffer (HMB), Keep alive timer, sanitize command, NVMe labs using Arbor
- Module 7a: Error Reporting and Handling
- Asynchronous Event Requests (AERs), error log page, SMART / Health log page, persistent events, error recovery, read recovery level, host behavior support, command retry delay
- Module 7b: Error Reporting and Handling
- Completion error reporting and handling, status codes, media and data integrity error codes, admin commands for handling errors (abort, delete IO submission queue, delete IO completion queue)
- Module 8: Log Pages
- Get log page command, log page contents covered in detail
- Module 9: Firmware Updates
- Firmware update process including live updates, Firmware image download, Firmware commit, boot partition image, Replay Protected Memory Block (RPMB)
- Module 10: Controller Registers
- Capability, Control, Status register, Doorbell register and more. Memory buffer support
- Module 11: Controller Initialization
- Controller initialization, resets (controller-level reset, queue-level reset), queue management, interrupts, interrupt coalescing
- Module 12: Power Management
- PCIe power options, NVM power states, changing power states, autonomous power state change, Runtime D3
- Module 13: Reservations
- Motivation, drives and form factors, method of reservations, NVM commands for reservations (Report, Register, Acquire, Release), Namespace management and creating Namespaces, unregistering, acquiring and releasing reservation
- Module 14: Other NVMe Commands
- Write uncorrectable command, write zeroes command, compare command, dataset management command
- Module 15: Changes for v1.3
- Emulated controller enhancements, keep alive, NVMe-MI, virtualization enhancements, telemetry, thermal management, timestamp, self test, sanitize, format NVM security send / receive
- Module 16a: Changes for v1.4
- NVM Sets, IO determinism
- Module 16b: Changes for v1.4
- Read recovery levels, persistent memory region, rebuild assist
- Module 16c: Changes for v1.4
- Asymmetric namespace access reporting, namespace write protect, persistent event log, endurance groups, traffic-based keep alive, IO performance and endurance hints, vendor-specific UUIDs
- Module 16d: Changes for v1.4
- Verify command, administrative controller, SQ associations, miscellaneous required changes
- Module 17a: Appendix A: PCIe Architecture Overview
- Links vs Lanes, bandwidth, Root Complex, Switches, Endpoints, PCIe device layers, Transaction Layer Packets (TLPs)
- Module 17b: Appendix A: PCIe Architecture Overview
- Example read/write requests, QoS, Flow Control, Data Link Layer and DLLPs, Ack/Nak Protocol, Physical Layer, ordered sets
- Module 17c: Appendix A: PCIe Architecture Overview
- Configuration space over and access mechanisms
| Course Modules |
Module | Length | Module 1a: Introduction and NVMe Basics | 32 minutes | Module 1b: Introduction and NVMe Basics | 26 minutes | Module 2: Host Controller Interface | 34 minutes | Module 3a: NVMe Commands: Admin Commands | 24 minutes | Module 3b: NVMe Commands: Admin Commands | 21 minutes | Module 4a: NVM IO Commands | 23 minutes | Module 4b: NVM IO Commands | 24 minutes | Module 5: Command Arbitration; Addressing Models PRP and SGL | 24 minutes | Module 6: Get / Set Features Commands | 32 minutes | Module 7a: Error Reporting and Handling | 25 minutes | Module 7b: Error Reporting and Handling | 14 minutes | Module 8: Log Pages | 17 minutes | Module 9: Firmware Updates | 14 minutes | Module 10: Controller Registers | 29 minutes | Module 11: Controller Initialization | 19 minutes | Module 12: Power Management | 18 minutes | Module 13: Reservations | 28 minutes | Module 14: Other NVMe Commands | 6 minutes | Module 15: Changes for v1.3 | 16 minutes | Module 16a: Changes for v1.4 | 31 minutes | Module 16b: Changes for v1.4 | 29 minutes | Module 16c: Changes for v1.4 | 22 minutes | Module 16d: Changes for v1.4 | 11 minutes | Module 17a: Appendix A: PCIe Architecture Overview | 32 minutes | Module 17b: Appendix A: PCIe Architecture Overview | 28 minutes | Module 17c: Appendix A: PCIe Architecture Overview | 9 minutes | |
|