Is your latest NVMe design taking advantage of Streams? Adoption of this new NVMe technology is gaining momentum with Synopsys customers. Streams are part of the new, optional, Directives feature introduced in the NVMe 1.3 specification. Directives allow the passing of metadata between hosts and controllers via existing NVMe commands. Streams are unique in that they are the only I/O based Directive available in the 1.3 specification.
So, what are Streams? Streams piggyback onto the write command’s header and allow for multiple logical blocks to be associated as one group of data. Associations may include being part of a single process or being tagged to one of many virtual machines in a system. The controller uses the identification of the Stream to guide the storage or garbage collection of data. Stream can also be used to target specific optimizations for the controller.
A common use is the allocation and deallocation/garbage collection of data blocks. Associating the logical blocks as one Stream allows it to be allocated, written, and deleted at a block level improving performance and reducing NAND block fragmentation.
Click here to read more ...