Register Now

 

 Non-Volatile Memory Express (NVMe) Essentials

 
 

This course uncovers the essential elements of NVMe storage. You will learn about SNIA defined NVM storage models and the current status all PCIe-based storage technologies. You will be introduced to all software aspects of NVMe including all Administrative and I/O commands, error reporting and recovery procedures, memory structures (PRPs & SGLs), metadata and see how Operating Systems implement NVMe. Features including PCIe registers, arbitration, namespaces, end-to-end data protection, firmware updating, device reservations, power management, and SR-IOV are covered. NVMe Fabric will cover Fabric commands, transport protocols, RDMA, and a Linux implementation. The remaining topics include the Management Interface, MCTP messages and protocols, Directives, Streams, Virtualization, and Security This seminar provides the essential details of every hardware, software and protocol element and connects the puzzle pieces together that complete the entire NVMe picture.

Course Outline  

Introduction to NVM
• PCIe-based Storage (SATAe, SCSIe, and NVMe)
• Software Architecture
• NVM Programming Models

PCI Express Registers
• PCI Power Management Capabilities
• Message Signaled Interrupt Capability
• MSI-X Capability
• PCI Express Capability
• Advanced Error Reporting Capability

Controller Registers
• Controller Capabilities
• Configuration, Status and Interrupt Mask Sets
• NVM Subsystem Reset
• Admin Queue Attributes
• Admin Submission Queue (ASQ)
• Admin Completion Queue (ACQ)
• SQyTDBL - SQ Tail Doorbell
• CQyHDBL - CQ Head Doorbell

Controller Architecture
• Command Submission and Completion Mechanism (Informative)
• Command Processing
• Building a Command
• Processing Completed Commands
• NVM Subsystem and Controller Resets
• Controller and Queue Levels
• Queue Management
• Interrupts
• Controller Initialization & Shutdown Processing
• Feature Values
• Unique Identifier

Memory Structures
• Submission Queue & Completion Queue
• Completion Queue Entry
• Status Field Definition
• Physical Region Page Entry and List (PRP)
• Scatter Gather List (SGL)
• Metadata Region (MR)
• Fused Operations (Compare/Write)
• Command Arbitration

Admin Commands
• Abort
• Asynchronous Event Request
• Create & Delete I/O Submission Queue
• Firmware Activate
• Firmware Image Download
• Get Features & Log Page
• Identify
• Set Features
• Format NVM
• Security Send & Receive

NVMe Commands
• Compare
• Dataset Management
• Flush
• Read/Write commands
• Reservation Acquire, Register, Release and Report commands
• Write Uncorrectable
• Write Zeroes

Features
• Namespaces
• End-to-end Protection Information
• Firmware Update Process
• Metadata Handling
• End-to-end Data Protection
• Power Management
• Single Root I/O Virtualization & Sharing (SR-IOV)
• Reservations
• Notifications & Types
• Acquiring, Releasing, Unregistering, Clearing, Preempting, or Reporting Reservations

Error Reporting and Recovery
• Command and Queue Error Handling
• Media and Data Error Handling
• System Memory Error Handling
• Internal Device Error Handling
• Controller Fatal Status Condition

NVMe Fabrics
• NVMe Fabrics and RDMA protocols
• NVMe Transport Protocols and Fabric Layers
• Messages, Memory, and Capsules
• Multi-Fabric Model (InfiniBand, RoCE, and Fibre Channel)
• Fabric Queuing Model
• RDMA Transport Operations

Fabric Commands
• Property Set/Get
• Authentication Send/Receive
• Connect

Discovery
• Naming and Identifiers
• Discovery Records, Name Service Proxy, & Peer Clustering

Linux Architecture
• Host and Target Drivers
• Software Architecture
• Controller Architecture
• Operation Protocols

NVMe Host Driver Components
• NVMe over Fabrics Target Driver Components
• Command and Response Capsule Flow

NVMe Management Interface
• Centralized Management
• NVMe Device Management Architecture
• In-band and Out-of-band Management
• Detecting Errors
• NVMe-MI OSI Model
• Management Component Transport Protocol (MCTP)
• NVMe-MI Management Architecture Model

MCTP Messages
• Configuration Get/Set
• Controller Health Status Poll
• NVM Subsystem Health Status Poll
• Read NVMe-MI Data Structure
• Reset
• VPD Read/Write

Directives
• Host Directives
• Identify, Streams, and Advanced Background Control
• Directive Send/Receive Commands
• Directives in Existing NVMe Structures

Stream Operations
• Parameters (Max. Stream Limit, Stream Granularity Size, Optimal Write Stream Size, etc.)

Advanced Background Operations
• Host Controlled Device Operations (Garbage Collection)
• Theory of Operation and Setting Thresholds

Virtualization
• Hypervisor and Usage Models
• Virtual Functions (VF)
• Virtual Queue Sets (VQ)
• Virtual Interrupts (VI)
• Virtual to Physical Functions (PF) Mapping
• Cross Controller Performance
• Performance Unit Grant (PUG)

Security
• Security Breaches
• Fabric Secure Channel - Discovery Log Page - TREQ
• In-band Authentication Connect Response - AUTHREQ
• Fabric Secure Channels (FC-Sec, IPSec)
• Threat Prevention

Who Should Attend: This seminar is designed to provide knowledge for even the expert engineer. Engineering disciplines include: chip, system, or board level designers, validation, test, quality, hardware, software, device driver, and application engineers.
 
Course Length:

Instructor Led Online - Five 4 hours sessions spread over 5 consecutive days (typically 9 am to 1 pm PST)  

 

 Updated 09.08.2016 21:30 PDT