Anushi keswani
@annie keswani
Published in
2 min readSep 16, 2018

--

Hey Everyone!

Welcome to my first blog.It’ll be all technical over here but mostly something from a layman’s perspective so however weird it gets,trust me,it’ll make sense in the end.

Bird’s Eye View of NVMe!

Well it stands for “Non-Volatile Memory Express”(includes all the features of the non-volatile memory).So this is something regarded as the game changer in the Storage industry.As hard disks were replaced by solid state drives, there was a need to change the protocols through which the drives would be communicating with the host machine.And so here comes NVme.

So the previous SATA & SCSI interfaces were altered.

The most basic difference between NVMe and its previous competitors was the architecture of it’s queues.It contains 64k queues each containing 64k commands ,each of size 64 bytes.

It definitely means hell lot of commands at a single time.

Adding to the benefits,the SSD’s would have nand-flash memory which has it’s own advantages .Those queues however are stored in the host’s DRAM memory but there is a provision to store them in Controller’s memory too.

For those who have no idea what a controller is……don’t worry keep reading.

Controller is something in the drive which communicates directly with the host and makes it aware about the conditions back there in the drive.So Storage is something being done at the backend ,while controller is something at the frontend of the drive having its own structure for the way it chooses to provide services to the host!

MOVING ON!

Nvme command line tool is available for the host to directly send commands to the drive and get back the responses.So the commands now are categorized into : Admin Commands & I/O Commands.

Commands such as creating queues for submitting commands and get back responses in the completion queues,getting logs,getting/setting various features would be included in the admin command set.On the other hand,commands such as read/write would form the basics of the I/O(also known as Nvme )command set.

On my opinion,this would be sufficient for a beginner in this topic.

I might include some basic Nvme cli commands in ma next blog.

Stay tuned!

--

--