NCQ stands for Native Command Queuing, a series of commands programmed to boost the performance of storage devices by optimizing the read and write executions. The NCQ re-organizes the random read and write command sequence within the storage device into a series of sequential commands, which improves the storage device’s performance up to 30%. NCQ also utilizes all available communication channels within the storage device to perform multiple commands simultaneously.
For instance, if each random command takes two units of the process time, without NCQ, 32 random commands take 64 units of the process time. With NCQ, if each sequential command takes one unit of the process time, 32 random commands can be re-organized into 50% of random commands (32 units of the process time) and 50% of sequential commands (16 units of the process time), which only take 48 units of process time and save up to 25% of the process time.
Data in flash memory or a solid-state drive (SSD), are written in units termed “pages” and data are deleted in larger units termed “blocks”, which are formed by multiple pages. If the system decides to erase some of the pages in one block, all of the other pages in the same block must be read and written onto a new block. The old block is then erased and labeled “available” for new data. This process is termed “garbage collection”. Garbage collection can be triggered when the system writes onto a block containing data that is supposed to be deleted. As a result, the multiple read and write executions of garbage collection gradually hinder the long-term performance of SSDs.
The trim command allows the SSD to perform two functions: a) finding another clean block to write on when the system encounters invalid data in one block, and b) finding the best time for the SSD to engage in garbage collection and recycle additional clean blocks. The random writes can be optimized and re-sequenced into longer fragments of sequential writes. This allows the SSD’s real-time performance to be maintained at an optimum level at all times.
ATP SSDs not only support the trim function, but also perform “background garbage collection” during the write process. Garbage collection in our competitors’ systems is usually done, before write commands, which slows done the writing performance. ATP background garbage collection is executed from time to time in the background and constantly maintains the SSD a clean storage environment. All ATP SSDs support NCQ, trim and background garbage collection commands in order to maintain the optimal performance.