fbpx
Wikipedia

Buffer múltiple

En informática, un buffer múltiple es el uso de más de un buffer para el almacenamiento de un bloque de datos. Si estos datos están siendo leídos y escritos al mismo tiempo, un buffer múltiple permite al "lector" obtener una visión completa de los datos (aunque no esté actualizada), en vez de tener una versión parcialmente actualizada de los datos que están siendo creados por el "escritor". También se usa para evitar la necesidad de usar RAM de doble puerto cuando los lectores y escritores son diferentes dispositivos.

Descripción

La forma más fácil de explicar cómo funciona un buffer múltiple es utilizando un ejemplo del mundo real:

Es un día soleado y decides sacar la piscina para el jardín, pero no encuentras la manguera, así que tienes que llenarla con cubos de agua. Así que llenas un cubo de agua (o buffer) del grifo (o fuente), cierras el grifo, llevas el cubo hasta la piscina, echas el agua dentro y vuelves al grifo para repetir el proceso. Esto es análogo al uso de un solo buffer. El grifo tiene que estar apagado mientras tú "procesas" el cubo de agua.

Ahora, piensa como lo harías si tuvieras dos cubos. Podrías llenar el primer cubo y cambiar al segundo mientras el grifo está abierto, de manera que tienes el periodo de tiempo que tarde en llenarse, para vaciar el primer cubo en la piscina. Cuando vuelvas, puedes cambiar los cubos de nuevo, de manera que vuelva a llenarse el primero mientras vacías el segundo en la piscina. Esto puede repetirse hasta que la piscina esté llena.

Es fácil ver que esta técnica llenará la piscina mucho más rápidamente que cuando se está esperando mientras que se llenan los cubos.

Esto es análogo al buffer doble. La fuente puede estar funcionando todo el tiempo pero no es necesario esperar mientras que se ejecuta el proceso.

Si se emplea a otra persona para llevar cubos a la piscina mientras uno está llenándose y otro vaciándose, esto sería análogo al buffer triple. Si este paso dura lo suficiente, podrían emplearse más cubos, con lo que el grifo estaría continuamente llenando cubos.

En informática la situación de tener una fuente que no puede, o no debe, ser cerrada es común (como en un Streaming de audio). Además, los ordenadores prefieren trabajar con porciones de datos antes que con corrientes (streams). En dichas situaciones suelen emplearse los buffers dobles.

Variabilidad

Doble buffer

Red de Petri

 
Red de Petri del buffer doble

La red de Petri de la ilustración muestra cómo trabaja un doble buffer; a saber:

Las transiciones W1 y W2 representan la escrituras de los buffers 1 y 2 respectivamente, mientras R1 y R2 representan la lectura de los buffers 1 y 2 respectivamente.

Al principio solo la transición W1 está activada. Cuando W1 acaba, tanto R1 como W2 están activas por lo que pueden proceder en paralelo. Cuando acaban, R2 y W1 proceden también en paralelo y así sucesivamente.

Después de la transición inicial (en la que solo W1 se inicia ) el sistema es periódico y las transiciones se activan siempre por pares (R1 con W2 y R2 con W1 respectivamente).

Esta red de Petri es viva y segura.

En gráficos por ordenador

En gráficos de computadora, el doble buffer es una técnica para la presentación de gráficos en tiempo real que elimina o reduce considerablemente el número de parpadeos, ruido u otros artefactos.

Es difícil que un programa refresque la imagen en una pantalla sin que los píxeles cambien más de una vez. Por ejemplo, para actualizar una página de texto es mucho más fácil borrar toda la página y, a continuación, dibujar las letras de nuevo, que borrar todos los píxeles que están presentes en la nueva imagen. Sin embargo, esta imagen intermedia (cuando se borran todos los píxeles) es percibida por el usuario como un parpadeo. Los monitores de ordenador constantemente redibujan su imagen visible (en torno a 60 veces por segundo), por lo que incluso una actualización perfecta puede ser visible momentáneamente como un divisor horizontal entre la "nueva" imagen y la "vieja" (efecto conocido como lagrimeo).

Una aplicación de software de almacenamiento en buffer doble tiene todas las operaciones de dibujo almacena sus resultados en alguna región de la memoria RAM del sistema, cualquier región, a menudo se denomina "buffer de reserva". Cuando todas las operaciones de dibujo se consideran completadas, toda la región (o solo la parte modificada) se copia en la memoria RAM de vídeo (el "buffer frontal"), lo que suele ser la copia sincronizada con la viga de la trama del monitor con el fin de evitar que se rompa. El doble buffering necesariamente requiere más memoria de vídeo y el tiempo de CPU que el buffer, solo por la memoria de vídeo asignada para el buffer de reserva, el tiempo para la operación de copia, y el tiempo de espera para la sincronización.

Los gestores de ventanas de composición a menudo combinan la "copia" de la operación de "composición", utilizada para la posición de las ventanas, transformándolos con efectos de escala o deformaciones, y hacen partes transparentes. Así, el "buffer frente" solo puede contener la imagen compuesta vista en pantalla, mientras que hay otro "buffer de reserva" para cada ventana que contiene la imagen no compuesta del contenido de la ventana entera.

Triple buffer

En gráficos de computadora, el triple buffering es similar a la doble buffer, pero proporciona una mejora de la velocidad. En el doble buffer, el programa debe esperar hasta que el dibujo terminado se copia o se cambió antes de comenzar el próximo cambio. Este período de espera podría ser de varios milisegundos durante el cual no se puede tocar el buffer.

En triple buffering el programa cuenta con dos amortiguadores nuevos e inmediatamente puede empezar a dibujar el que no participa en dicha copia. El buffer en tercer lugar, el buffer frontal, es leído por la tarjeta gráfica para mostrar la imagen en el monitor. Una vez que el monitor ha sido actualizado, el buffer frontal se voltea con (o copiado de) el buffer de reserva. Dado que uno de los topes de vuelta siempre esta completo, la tarjeta gráfica no tiene que esperar para que el software esté completo. En consecuencia, el software y la tarjeta gráfica son completamente independientes, y se puede ejecutar a su propio ritmo. Por último, la imagen mostrada se inició sin esperar a la sincronización y por lo tanto con un desfase mínimo. [1]

Debido a que el algoritmo de software no tener que sondear el hardware de gráficos para controlar los eventos de actualización, el algoritmo es libre de correr tan rápido como sea posible. Esto puede significar que varios dibujos que nunca se muestran son por escrito a los topes de vuelta. Este no es el único método de triple buffer disponible, pero es el más frecuente en la arquitectura de la PC donde la velocidad de la máquina de destino es muy variable.

Otro método de triple buffering implica la sincronización con la velocidad de fotogramas del monitor. El dibujo no se hace si los dos amortiguadores posteriores contienen imágenes terminadas que no se han mostrado todavía. Esto evita la pérdida de la CPU dibujando imágenes Undisplayed y también da lugar a una velocidad más constante (suave movimiento de objetos en movimiento), pero con aumento de la latencia. [2] Este es el caso cuando se utiliza triple buffer en DirectX, donde una cadena de 3 buffer son prestados y que aparecen siempre.

El buffer triple implica tres topes, pero el método puede extenderse a muchos como amortiguadores que resulte práctico para la aplicación. Por lo general, no hay ninguna ventaja de usar más de tres topes.

Cuádruple buffer

El término "buffering cuádruple" se utiliza en las implementaciones de estereoscópico, y significa el uso de doble buffer para cada una de las imágenes del ojo izquierdo y derecho, por lo tanto hay cuatro topes totales. El comando para intercambiar o copiar el buffer normalmente se aplica a los dos pares a la vez. Si triple buffering se utilizó entonces sería de seis topes.

Voltear la página

En este método (a veces llamado el buffer de ping-pong), en lugar de copiar los datos, los amortiguadores son capaces de ser mostrados (ambos están en VRAM). En un momento dado, un buffer se puede mostrar en el monitor, mientras que el otro buffer se está elaborando. Cuando el dibujo está completo, las funciones de los dos se conectan. La página-flip se consigue normalmente mediante la modificación del valor de un puntero al comienzo de la visualización de datos en la memoria de vídeo.

La página-flip es mucho más rápida que copiar los datos y puede garantizar que la ruptura no se verá, siempre y cuando las páginas se cambian durante el período verticales en blanco del monitor cuando no hay datos de video o se está elaborando. El buffer activo y visible se llama el buffer frontal, mientras que la página de fondo se llama el "buffer de reserva.

Otros usos

El término buffer doble se utiliza para copiar datos entre dos buffers para el acceso directo a memoria (Direct Memory Access, DMA) de las transferencias; no para mejorar el rendimiento, sino para satisfacer los requisitos específicos de direccionamiento de un dispositivo (especialmente los dispositivos de 32 bits en sistemas con direccionamiento más amplio, siempre a través de Extensión de Dirección Física). [3] Los controladores de dispositivos de Microsoft Windows son particularmente notables como un lugar donde el doble buffer sería viable de utilizar. En un sistema Linux o BSD éstos son llamados bounce buffers porque los datos deben "brincar" a través de estos buffers para entrada (input) o salida (output). El doble buffering también se utiliza como una técnica para facilitar el entrelazado o desentrelazado de señales de vídeo.

Referencias

  • www.anandtech.com
  • msdn.microsoft.com

Enlaces externos

  •   Datos: Q869598

buffer, múltiple, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, octubre, 2011, informática, buffer, múltiple, más, buffer, para, almacenamiento, bloque, datos, estos, datos, están, siendo, leídos, escr. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 27 de octubre de 2011 En informatica un buffer multiple es el uso de mas de un buffer para el almacenamiento de un bloque de datos Si estos datos estan siendo leidos y escritos al mismo tiempo un buffer multiple permite al lector obtener una vision completa de los datos aunque no este actualizada en vez de tener una version parcialmente actualizada de los datos que estan siendo creados por el escritor Tambien se usa para evitar la necesidad de usar RAM de doble puerto cuando los lectores y escritores son diferentes dispositivos Indice 1 Descripcion 2 Variabilidad 2 1 Doble buffer 2 1 1 Red de Petri 2 1 2 En graficos por ordenador 2 2 Triple buffer 2 3 Cuadruple buffer 3 Voltear la pagina 4 Otros usos 5 Referencias 6 Enlaces externosDescripcion EditarLa forma mas facil de explicar como funciona un buffer multiple es utilizando un ejemplo del mundo real Es un dia soleado y decides sacar la piscina para el jardin pero no encuentras la manguera asi que tienes que llenarla con cubos de agua Asi que llenas un cubo de agua o buffer del grifo o fuente cierras el grifo llevas el cubo hasta la piscina echas el agua dentro y vuelves al grifo para repetir el proceso Esto es analogo al uso de un solo buffer El grifo tiene que estar apagado mientras tu procesas el cubo de agua Ahora piensa como lo harias si tuvieras dos cubos Podrias llenar el primer cubo y cambiar al segundo mientras el grifo esta abierto de manera que tienes el periodo de tiempo que tarde en llenarse para vaciar el primer cubo en la piscina Cuando vuelvas puedes cambiar los cubos de nuevo de manera que vuelva a llenarse el primero mientras vacias el segundo en la piscina Esto puede repetirse hasta que la piscina este llena Es facil ver que esta tecnica llenara la piscina mucho mas rapidamente que cuando se esta esperando mientras que se llenan los cubos Esto es analogo al buffer doble La fuente puede estar funcionando todo el tiempo pero no es necesario esperar mientras que se ejecuta el proceso Si se emplea a otra persona para llevar cubos a la piscina mientras uno esta llenandose y otro vaciandose esto seria analogo al buffer triple Si este paso dura lo suficiente podrian emplearse mas cubos con lo que el grifo estaria continuamente llenando cubos En informatica la situacion de tener una fuente que no puede o no debe ser cerrada es comun como en un Streaming de audio Ademas los ordenadores prefieren trabajar con porciones de datos antes que con corrientes streams En dichas situaciones suelen emplearse los buffers dobles Variabilidad EditarDoble buffer Editar Red de Petri Editar Red de Petri del buffer doble La red de Petri de la ilustracion muestra como trabaja un doble buffer a saber Las transiciones W1 y W2 representan la escrituras de los buffers 1 y 2 respectivamente mientras R1 y R2 representan la lectura de los buffers 1 y 2 respectivamente Al principio solo la transicion W1 esta activada Cuando W1 acaba tanto R1 como W2 estan activas por lo que pueden proceder en paralelo Cuando acaban R2 y W1 proceden tambien en paralelo y asi sucesivamente Despues de la transicion inicial en la que solo W1 se inicia el sistema es periodico y las transiciones se activan siempre por pares R1 con W2 y R2 con W1 respectivamente Esta red de Petri es viva y segura En graficos por ordenador Editar En graficos de computadora el doble buffer es una tecnica para la presentacion de graficos en tiempo real que elimina o reduce considerablemente el numero de parpadeos ruido u otros artefactos Es dificil que un programa refresque la imagen en una pantalla sin que los pixeles cambien mas de una vez Por ejemplo para actualizar una pagina de texto es mucho mas facil borrar toda la pagina y a continuacion dibujar las letras de nuevo que borrar todos los pixeles que estan presentes en la nueva imagen Sin embargo esta imagen intermedia cuando se borran todos los pixeles es percibida por el usuario como un parpadeo Los monitores de ordenador constantemente redibujan su imagen visible en torno a 60 veces por segundo por lo que incluso una actualizacion perfecta puede ser visible momentaneamente como un divisor horizontal entre la nueva imagen y la vieja efecto conocido como lagrimeo Una aplicacion de software de almacenamiento en buffer doble tiene todas las operaciones de dibujo almacena sus resultados en alguna region de la memoria RAM del sistema cualquier region a menudo se denomina buffer de reserva Cuando todas las operaciones de dibujo se consideran completadas toda la region o solo la parte modificada se copia en la memoria RAM de video el buffer frontal lo que suele ser la copia sincronizada con la viga de la trama del monitor con el fin de evitar que se rompa El doble buffering necesariamente requiere mas memoria de video y el tiempo de CPU que el buffer solo por la memoria de video asignada para el buffer de reserva el tiempo para la operacion de copia y el tiempo de espera para la sincronizacion Los gestores de ventanas de composicion a menudo combinan la copia de la operacion de composicion utilizada para la posicion de las ventanas transformandolos con efectos de escala o deformaciones y hacen partes transparentes Asi el buffer frente solo puede contener la imagen compuesta vista en pantalla mientras que hay otro buffer de reserva para cada ventana que contiene la imagen no compuesta del contenido de la ventana entera Triple buffer Editar En graficos de computadora el triple buffering es similar a la doble buffer pero proporciona una mejora de la velocidad En el doble buffer el programa debe esperar hasta que el dibujo terminado se copia o se cambio antes de comenzar el proximo cambio Este periodo de espera podria ser de varios milisegundos durante el cual no se puede tocar el buffer En triple buffering el programa cuenta con dos amortiguadores nuevos e inmediatamente puede empezar a dibujar el que no participa en dicha copia El buffer en tercer lugar el buffer frontal es leido por la tarjeta grafica para mostrar la imagen en el monitor Una vez que el monitor ha sido actualizado el buffer frontal se voltea con o copiado de el buffer de reserva Dado que uno de los topes de vuelta siempre esta completo la tarjeta grafica no tiene que esperar para que el software este completo En consecuencia el software y la tarjeta grafica son completamente independientes y se puede ejecutar a su propio ritmo Por ultimo la imagen mostrada se inicio sin esperar a la sincronizacion y por lo tanto con un desfase minimo 1 Debido a que el algoritmo de software no tener que sondear el hardware de graficos para controlar los eventos de actualizacion el algoritmo es libre de correr tan rapido como sea posible Esto puede significar que varios dibujos que nunca se muestran son por escrito a los topes de vuelta Este no es el unico metodo de triple buffer disponible pero es el mas frecuente en la arquitectura de la PC donde la velocidad de la maquina de destino es muy variable Otro metodo de triple buffering implica la sincronizacion con la velocidad de fotogramas del monitor El dibujo no se hace si los dos amortiguadores posteriores contienen imagenes terminadas que no se han mostrado todavia Esto evita la perdida de la CPU dibujando imagenes Undisplayed y tambien da lugar a una velocidad mas constante suave movimiento de objetos en movimiento pero con aumento de la latencia 2 Este es el caso cuando se utiliza triple buffer en DirectX donde una cadena de 3 buffer son prestados y que aparecen siempre El buffer triple implica tres topes pero el metodo puede extenderse a muchos como amortiguadores que resulte practico para la aplicacion Por lo general no hay ninguna ventaja de usar mas de tres topes Cuadruple buffer Editar El termino buffering cuadruple se utiliza en las implementaciones de estereoscopico y significa el uso de doble buffer para cada una de las imagenes del ojo izquierdo y derecho por lo tanto hay cuatro topes totales El comando para intercambiar o copiar el buffer normalmente se aplica a los dos pares a la vez Si triple buffering se utilizo entonces seria de seis topes Voltear la pagina EditarEn este metodo a veces llamado el buffer de ping pong en lugar de copiar los datos los amortiguadores son capaces de ser mostrados ambos estan en VRAM En un momento dado un buffer se puede mostrar en el monitor mientras que el otro buffer se esta elaborando Cuando el dibujo esta completo las funciones de los dos se conectan La pagina flip se consigue normalmente mediante la modificacion del valor de un puntero al comienzo de la visualizacion de datos en la memoria de video La pagina flip es mucho mas rapida que copiar los datos y puede garantizar que la ruptura no se vera siempre y cuando las paginas se cambian durante el periodo verticales en blanco del monitor cuando no hay datos de video o se esta elaborando El buffer activo y visible se llama el buffer frontal mientras que la pagina de fondo se llama el buffer de reserva Otros usos EditarEl termino buffer doble se utiliza para copiar datos entre dos buffers para el acceso directo a memoria Direct Memory Access DMA de las transferencias no para mejorar el rendimiento sino para satisfacer los requisitos especificos de direccionamiento de un dispositivo especialmente los dispositivos de 32 bits en sistemas con direccionamiento mas amplio siempre a traves de Extension de Direccion Fisica 3 Los controladores de dispositivos de Microsoft Windows son particularmente notables como un lugar donde el doble buffer seria viable de utilizar En un sistema Linux o BSD estos son llamados bounce buffers porque los datos deben brincar a traves de estos buffers para entrada input o salida output El doble buffering tambien se utiliza como una tecnica para facilitar el entrelazado o desentrelazado de senales de video Referencias Editarwww anandtech com msdn microsoft comEnlaces externos EditarEsta obra contiene una traduccion derivada de Multiple buffering de la Wikipedia en ingles concretamente de esta version publicada por sus editores bajo la Licencia de documentacion libre de GNU y la Licencia Creative Commons Atribucion CompartirIgual 3 0 Unported Datos Q869598Obtenido de https es wikipedia org w index php title Buffer multiple amp oldid 128651572, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos