Data buffer


Data buffer

In computer science, a buffer is a region of a physical memory storage used to temporarily hold data while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device (such as a mouse) or just before it is sent to an output device (such as speakers). However, a buffer may be used when moving data between processes within a computer. This is comparable to buffers in telecommunication. Buffers can be implemented in a fixed memory location in hardware - or by using a virtual data buffer in software, pointing at a location in the physical memory. In all cases, the data stored in a data buffer, are stored on a physical storage media. A majority of buffers are implemented in software, which typically use the faster RAM to store temporary data, due to the much faster access time compared with Hard Disk Drives. Buffers are typically used when there is a difference between the rate at which data is received and the rate at which it can be processed, or in the case that these rates are variable, for example in a printer spooler or in online video streaming.

A buffer often adjusts timing by implementing a queue (or FIFO) algorithm in memory, simultaneously writing data into the queue at one rate and reading it at another rate.

Contents

Applications

Buffers are often used in conjunction with I/O to hardware, such as disk drives, sending or receiving data to or from a network, or playing sound on a speaker. A line to a rollercoaster in an amusement park shares many similarities. People who ride the coaster come in at an unknown and often variable pace, but the roller coaster will be able to load people in bursts (as a coaster arrives and is loaded). The queue area acts as a buffer: a temporary space where those wishing to ride wait until the ride is available. Buffers are usually used in a FIFO (first in, first out) method, outputting data in the order it arrived.

Telecommunication buffer

A buffer routine or storage medium used in telecommunications compensates for a difference in rate of flow of data, or time of occurrence of events, when transferring data from one device to another.

Buffers are used for many purposes, such as

  • interconnecting two digital circuits operating at different rates,
  • holding data for use at a later time,
  • allowing timing corrections to be made on a data stream,
  • collecting binary data bits into groups that can then be operated on as a unit,
  • delaying the transit time of a signal in order to allow other operations to occur.

Buffer versus cache

A cache often also acts as a buffer, and vice versa. However, cache operates on the premise that the same data will be read from it multiple times, that written data will soon be read, or that there is a good chance of multiple reads or writes to combine to form a single larger block. Its sole purpose is to reduce accesses to the underlying slower storage. Cache is also usually an abstraction layer that is designed to be invisible.

A 'Disk Cache' or 'File Cache' keeps statistics on the data contained within it and commits data within a time-out period in write-back modes. A buffer does none of this.

A buffer is primarily used for input, output, and sometimes very temporary storage of data that is either enroute between other media or data that may be modified in a non-sequential manner before it is written (or read) in a sequential manner.

Good examples include:

  • The BUFFERS command/statement in CONFIG.SYS of DOS.
  • The buffer between a serial port (UART) and a MODEM. The COM port speed may be 38400 bit/s while the MODEM may only have a 14400 bit/s carrier.
  • The integrated buffer on a Hard Disk Drive, Printer or other piece of hardware.
  • The Framebuffer on a video card.

History

An early mention of a print buffer is the Outscriber devised by image processing pioneer Russel A. Kirsch for the SEAC computer in 1952 [1]:

One of the more serious problems in the design of automatic digital computers is that of getting the calculated results out of the machine rapidly enough to avoid delaying the further progress of the calculations. In many of the problems to which a general-purpose computer is applied the amount of output data is relatively great—so great that serious inefficiency would result from forcing the computer to wait for these data to be typed on existing printing devices. This difficulty has been solved in the SEAC by providing magnetic recording devices as output units. These devices are able to receive information from the machine at rates up to 100 times as fast as an electric typewriter can be operated. Thus, better efficiency is achieved in recording the output data; transcription can be made later from the magnetic recording device to a printing device without tying up the main computer.

See also

References


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Command Data Buffer — (CDB) was a system used by the United States Air Force s Minuteman ICBM force. CDB was a method to transfer targeting information from a Minuteman Launch Control Center to an individual missile by communications lines. Prior to CDB, new missile… …   Wikipedia

  • Buffer — can refer to: * Buffer state, a country lying between two potentially hostile greater powers, thought to prevent conflict between them * Buffer zone, any area that keeps two or more other areas distant from one another, may be demilitarized *… …   Wikipedia

  • Buffer credits — Buffer credits, also called buffer to buffer credits (BBC) are used as a flow control method by Fibre Channel technology and represent the number of frames a port can store. Each time a port transmits a frame that port s BB Credit is decremented… …   Wikipedia

  • Buffer overflow protection — refers to various techniques used during software development to enhance the security of executable programs by detecting buffer overflows on stack allocated variables as they occur and preventing them from becoming serious security… …   Wikipedia

  • Data Execution Prevention — (DEP) is a security feature included in modern operating systems. It is known to be available in Linux, Mac OS X, and Microsoft Windows operating systems and is intended to prevent an application or service from executing code from a non… …   Wikipedia

  • buffer — buff‧er [ˈbʌfə ǁ ər] noun [countable] 1. COMPUTING a place in a computer s memory for storing information temporarily: • Any data still in the file buffer is written to the file before the file is closed. 2. something that protects something from …   Financial and business terms

  • Buffer — Buff er (b[u^]f [ e]r), n. [Prop a striker. See {Buffet} a blow.] 1. (Mech.) (a) An elastic apparatus or fender, for deadening the jar caused by the collision of bodies; as, a buffer at the end of a railroad car. (b) A pad or cushion forming the… …   The Collaborative International Dictionary of English

  • Data Nagar — (Urdu: داتا نگر ) is one of the neighbourhoods of Orangi Town in Karachi, Sindh, Pakistan.[1] This neighbourhood was named after famous Sufi Hazrat Bābā Farīduddīn Mas ūd Data Ganjshakar There are several ethnic groups in Orangi Town including… …   Wikipedia

  • Data structure alignment — is the way data is arranged and accessed in computer memory. It consists of two separate but related issues: data alignment and data structure padding. When a modern computer reads from or writes to a memory address, it will do this in word sized …   Wikipedia

  • buffer — ► NOUN 1) (buffers) Brit. projecting shock absorbing pistons at the end of a railway track or on a railway vehicle. 2) a person or thing that reduces a shock or forms a barrier between adversaries. 3) (also buffer solution) Chemistry a solution… …   English terms dictionary


Share the article and excerpts

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

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.