alguien puede explicar qué es el búfer de carga y cómo es diferente de las colas de invalidación. y también la diferencia entre los buffers de la tienda y los buffers de combinación de escritura? El artículo de Paul E McKenny http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.07.23a.pdf explica muy bien acerca de los tampones de colas para almacenar y invalidación pero lamentablemente no hablar de la combinación de escritura tampones¿qué es un buffer de tienda?
Respuesta
Una cola invalidate es más como una memoria intermedia de almacenamiento, pero es parte del sistema de memoria, no la CPU Básicamente es una cola que realiza un seguimiento de las invalidaciones y garantiza que se completen correctamente para que una memoria caché pueda tomar posesión de una línea de caché para que luego pueda escribir esa línea. Una cola de carga es una estructura especulativa que realiza un seguimiento de las cargas en vuelo en el procesador fuera de servicio. Por ejemplo, puede ocurrir lo siguiente
- CPU emitir especulativamente una carga desde X
- que la carga estaba en el orden del programa después de una tienda a Y, pero la dirección de Y no se resuelve, sin embargo, por lo que la tienda no procede.
- Y se resuelve y resulta ser igual a X. En el momento en que se resuelve la tienda en Y, esa tienda busca en la cola de carga las cargas especulativas que se han emitido, pero están presentes después de la tienda en Y en el programa orden. Notará la carga en X (que es igual a Y) y tendrá que aplastar esas instrucciones comenzando con la carga X y siguientes.
Un búfer de tienda es una estructura especulativa que existe en la CPU, al igual que la cola de carga y es para permitir que la CPU especule en las tiendas. Un búfer de combinación de escritura es parte del sistema de memoria y, básicamente, requiere un montón de pequeñas escrituras (piense en escrituras de 8 bytes) y las empaqueta en una sola transacción más grande (una línea de caché de 64 bytes) antes de enviarlas al sistema de memoria. Estas escrituras no son especulativas y son parte del protocolo de coherencia. El objetivo es salvar el ancho de banda del bus. Normalmente, se utiliza un búfer de combinación de escritura para las grabaciones sin caché en dispositivos de E/S (a menudo para tarjetas gráficas). En los dispositivos de E/S es típico realizar una gran cantidad de programación de registros de dispositivos haciendo escrituras de 8 bytes y el búfer de combinación de escritura permite que esas escrituras se combinen en transacciones más grandes cuando se envían fuera de la memoria caché.
- 1. ¿Qué es un "buffer" en VIM?
- 2. ¿Qué es el buffer de salida?
- 3. ¿Qué es la insuficiencia de buffer?
- 4. ¿Es seguro sprintf (buffer, "% s [...]", buffer, [...])?
- 5. Buffer vs String speed: ¿Por qué String es más rápido?
- 6. ¿El triple buffer es realmente un impulso de rendimiento gratuito?
- 7. ¿Es posible simular un mensaje de buffer de protocolo Java?
- 8. ¿Quién es el buffer setvbuf de free?
- 9. ¿Gl_FragData [0] siempre es un buffer de color?
- 10. Cuál es el tamaño máximo de un Node.js Buffer
- 11. ¿Qué se llama sesión de tienda?
- 12. ¿Por qué debería hacer doble buffer manual?
- 13. ¿Qué es una función vimrc para determinar si un buffer ha sido modificado?
- 14. iOS OpenGL ES Logical Buffer Loads
- 15. strcpy cuando el buffer de dest es más pequeño que el buffer de src
- 16. ¿Múltiples mallas en un buffer de vértice?
- 17. ¿Cuál es la diferencia entre un sitio web de Magento, una tienda y una vista de tienda?
- 18. ¿Por qué jpegStillImageNSDataRepresentation lanza una excepción cuando el buffer de muestra NO es nulo?
- 19. Buffer de transmisión de audio
- 20. Buffer circular en Flash
- 21. gson vs protocol buffer
- 22. ¿Por qué PyPi se llama la tienda de queso?
- 23. Depth Buffer en OpenGL
- 24. Emacs: buffer de desplazamiento no es el punto
- 25. Android Optimal Buffer Size
- 26. ¿Qué es "mt = 8" en los enlaces de iTunes para la tienda de aplicaciones?
- 27. mongoengine- qué hace la tienda del campo de referencia
- 28. ¿Es posible que emacs cargue un buffer desde un cubo de Amazon S3?
- 29. ¿Qué es una buena tienda de sesión para una aplicación de producción Node.js de un solo host?
- 30. En Oracle, ¿a qué se refiere realmente 'Buffer Gets'?
Me acabo de dar cuenta de la pregunta, y la iba a responder, diablos, inventé la combinación de escritura y carga de Intel, o al menos mi nombre está en muchas de las patentes, pero la respuesta anterior está perfectamente bien. –
Almacenar almacenamientos intermedios = no siempre especulativo, no siempre dentro de la CPU. Puede haber almacenamientos intermedios de tienda fuera de la CPU, p. entre escribir a través de L1 y L2. –
Los búfers de carga (1) mantienen cargas después de que se hayan calculado las direcciones de carga, pero hasta que la carga esté realmente lista para ejecutarse; o, después de que intentó ejecutar una carga, pero determinó que había un problema, como una falta de caché o una tienda anterior en la misma dirección que aún no está lista para datos. (2) se puede usar para verificar que las cargas fuera de orden se especifiquen correctamente, como describe Martin. –