Zero-copy

Zero-copy

"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another.

Zero-copy versions of operating system elements such as device drivers, file systems, and network protocol stacks greatly increase the performance of certain application programs and more efficiently utilize system resources. Performance is enhanced by allowing the CPU to move on to other tasks while data copies proceed in parallel in another part of the machine. Also, zero-copy operations reduce the number of time-consuming context switches between user space and kernel space. System resources are utilized more efficiently since using a sophisticated CPU to perform extensive copy operations, which is a relatively simple task, is wasteful if other simpler system components can do the copying.

Techniques for creating zero-copy software include the use of DMA-based copying and memory-mapping through an MMU. These features require specific hardware support and usually involve particular memory alignment requirements.

Zero-copy protocols are especially important for high-speed networks in which the capacity of a network link approaches or exceeds the CPU's processing capacity. In such a case the CPU spends nearly all of its time copying transferred data, gets little else done, and becomes a bottleneck which limits the communication rate to below the link's capacity. A rule of thumb used in the industry is that roughly one CPU clock cycle is needed to process one bit of incoming data. For example, a 1 GHz processor can handle a 1 Gbit/s network link with conventional data copying, but that same processor will be overwhelmed by a 10 Gbit/s link, and zero-copy software becomes necessary. Network links over 1 Gbit/s, and therefore zero-copy networking software, currently have limited applications in supercomputing clusters, large commercial data centers, and so on. However, as information technology improves, and as 1 Gbit/s, 10 Gbit/s, and even 100 Gbit/s networks become more common, zero-copy solutions are likely to also become more common, since network capacity is increasing faster than CPU capacity.

Zero-copy protocols have some initial overhead, so avoiding programmed IO (PIO) makes sense only for large messages.

RDMA (Remote Direct Memory Access) protocols deeply rely on zero-copy techniques.

Several operating systems, including Linux, support zero copying of files through specific API's such as sendfile and sendfile64.

ee also

*Embedded system
*Direct Memory Access
*Auto-sequencing memory (ASM)
*Device drivers
*Socket Direct Protocol
*Infiniband

External links

* [http://www.ibm.com/developerworks/library/j-zerocopy/index.html Efficient data transfer through zero copy] by Sathish K. Palaniappan and Pramod B. Nagaraja


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Zero-copy — describe operaciones de computadora en las cuales la CPU no realiza la tarea de copiar los datos desde un área hacia otra de la memoria. Las versiones Zero Copy de los elementos de sistemas operativos, tales como controladores de dispositivos,… …   Wikipedia Español

  • Copy protection — Copy protection, also known as content protection, copy obstruction, copy prevention and copy restriction, refer to techniques used for preventing the reproduction of software, films, music, and other media, usually for copyright reasons.[1]… …   Wikipedia

  • Copy number analysis — usually refers to the process of analyzing data produced by a test for DNA copy number variation in patient s sample. Such analysis helps detect chromosomal copy number variation that may cause or may increase risks of various critical… …   Wikipedia

  • Zero (Mega Man) — General CVG character name=Zero caption=Zero as he appears in the Mega Man X and Mega Man Zero series. firstgame= Mega Man X series= Mega Man X series and Mega Man Zero series creator=Keiji Inafune voiceactor=Wayne Doster (1997 2002) Jack… …   Wikipedia

  • Copy constructor — A copy constructor is a special constructor in the C++ programming language creating a new object as a copy of an existing object. The first argument of such a constructor is a reference to an object of the same type as is being constructed… …   Wikipedia

  • Zero Mostel — Infobox actor name = Zero Mostel imagesize = caption = photographed by Carl Van Vechten, 1958 birthname = Samuel Joel Mostel birthdate = birth date|1915|2|28 birthplace = Brooklyn, New York deathdate = death date and age|1977|9|8|1915|2|28… …   Wikipedia

  • Zero.EXE — General CVG character name=Zero.EXE caption= firstgame= Mega Man Network Transmission series= Mega Man Battle Network series creator=Keiji Inafune voiceactor= japanactor= inuniverse=Mega Man character type=Advanced virus (previous) NetNavi… …   Wikipedia

  • Zero (Tenchi Muyo!) — Infobox animanga character name = Zero series = Tenchi Muyo! caption = first = last = creator = voiced by = Ai Orikasa (Japanese) Petrea Burchard (English) nickname = alias = Ryoko, possibly others age = gender = species = Robot born = death =… …   Wikipedia

  • Mega Man Zero — Existen desacuerdos sobre la neutralidad en el punto de vista de la versión actual de este artículo o sección. En la página de discusión puedes consultar el debate al respecto …   Wikipedia Español

  • Mega Man Zero 3 — Developer(s) Inti Creates Publisher(s) Capcom …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”