Operating systems (Computers) -- Experiments, Microprocessors -- Programming
High-performance byte copying is important for many operating systems because it is the principle method used for transferring data between kernel and user protection domains. For example, byte copying is commonly used for transferring data from kernel buffers to user buffers during file system read and IPC recv calls and to kernel buffers from user buffers during 'Write and-send calls. Because of its impact on overall system performance, commercial operating systems tend to employ many specialized byte copy routines, each one optimized for a different circumstance.
This paper revisits the opportunities for optimizing byte copy performance by discussing a series of experiments run under HP-UX 9.03 on a range of Hewlett-Packard PA-RISC processors. First, we compare the performance improvements that result from several existing byte copy optimizations. Then we show that byte copy performance is dominated by cache effects that arise when source and target addresses overlap. Finally, we discuss the opportunities and difficulties associated with choosing appropriate source and target addresses to optimize byte copy performance.
"Fast Byte Copying: A Re-Evaluation of the Opportunities for Optimization", Jon Inouye, Jonathan Walpole, and Ke Zhang, Technical Report CSE-95-010, Department of Computer Science and Engineering, Oregon Graduate Institute of Science & Technology, June 1995.