NVMe
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
Submission queues are used to submit commands to the controller.
Completion Queue
Completion queues are used by the controller to inform the driver of the completion of a previously submitted command.
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.