Use asynchronous I/O

From Green software

Revision as of 10:25, 16 September 2010 by Green (Talk | contribs)
Jump to: navigation, search

Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished. Synchronous I/O blocks an entire system until all I/O processing is done, which can increase the time it takes to process a job. Asynchronous I/O with the use of NCQ is more energy-efficient than synchronous I/O [1].


When asynchronous I/O is used, Native Command Queuing (NCQ) can be utilized. NCQ is a technique that allows SATA hard disks to internally determine the order in which blocks are read.

Researchers of Intel tested the impact of Native Command Queuing on random reads. They observed a 15% time and energy reduction when utilizing NCQ over synchronous I/O for reading random 64KB. This experiment and others are described in [2].


[1]. Steigerwald, B., Chabukswar, R., Krishnan, K., & De Vega, J. (2008). Creating Energy-Efficient Software (PDF available from that website). Intel(r) Software Network.

Personal tools