The NVMe Specifications can be found here.

Forum thread about this page here.

TLDR FAQ

Introduction

Examples in several programming languages can be found at GitHub

NVMe is a non-volatile memory(NVM) controller you access over PCI_Express.

NVMe has queues that are used to issue administration commands and storage commands.

Submission Queue

Completion Queue

Admin Commands

Admin commands are used to do non-storage related activities, such as identify the controller features, storage size, create and destroy general purpose queues.

NVM Commands