¿Qué es una barrera de memoria?

Históricamente, las CPU han sido máquinas perfectamente secuenciales. Esto es muy lógico y fácil de entender, pero puede ser un problema de rendimiento. A lo largo de los años, se han realizado muchos ajustes ingeniosos en los diseños de CPU para extraer el mayor rendimiento posible de las obleas de silicio. Sin embargo, uno de los más interesantes es la ejecución desordenada. En las CPU de ejecución fuera de orden, las instrucciones no necesariamente deben ejecutarse en el orden en que se emiten.

Estancamiento en orden

El principal problema de rendimiento con el que se encuentra una CPU en orden se denomina bloqueo de canalización. Esto sucede cuando una instrucción depende de alguna memoria, pero esa memoria no está directamente disponible en un registro. En este caso, la CPU debe encontrar ese valor en la memoria. La memoria caché de la CPU se comprueba primero, ya que estos son el nivel de memoria más rápido. Si el valor no está allí, se comprueba la RAM del sistema. Durante este tiempo, la CPU debe permanecer inactiva, ya que la instrucción dependiente de la memoria debe completarse en orden antes de las siguientes instrucciones.

El impacto en el rendimiento de una parada en la tubería puede no ser tan malo, pero también puede ser relativamente grave. Por ejemplo, la memoria caché L1 normalmente puede devolver un resultado del orden de magnitud de 5 ciclos de CPU. La caché L2 puede tomar 20 ciclos, L3 alrededor de 200 ciclos y la RAM del sistema alrededor de 400 ciclos. Dado que una CPU puede funcionar a alrededor de 5 GHz, es decir, 5 mil millones de ciclos de reloj por segundo, incluso 400 ciclos no son tan malos (0,000008 %). Pero si tiene muchas instrucciones que necesitan hacer referencia a datos más abajo en los niveles de caché, el efecto acumulativo puede causar una ralentización notable.

Ejecución fuera de orden y cambio de nombre de registro

La ejecución fuera de orden es una técnica que permite al programador reordenar las instrucciones en su cola. A través de este reordenamiento, puede optar por priorizar hilos específicos sobre otros. También puede empujar las instrucciones de regreso a la cola cuando tienen una dependencia de datos que aún no se ha cumplido. Esto evita al máximo los atascos de tuberías y minimiza los ciclos de inactividad.

La ejecución fuera de orden requiere una característica llamada cambio de nombre de registro. La CPU puede acceder a los datos contenidos en los registros dentro de un solo ciclo. Los registros se utilizan para almacenar datos que se leen y escriben. Sin embargo, es esencial asegurarse de que la computadora en general vea todo lo que sucede en el orden lógico, no en el orden optimizado del ciclo de CPU fuera de orden. Para permitir esto, las CPU tienen muchos más registros lógicos de los que exige la arquitectura de la CPU.

Los datos que deben escribirse, pero tienen una instrucción "anterior" que aún no se ha completado, se colocan en un registro de espera. Estos datos no se transfieren a otro registro cuando el pedido se ha resuelto por sí solo. En su lugar, el nombre del registro de espera se cambia por el del registro en el que debería estar. Esto es algo similar a preparar un postre antes del plato principal, pero luego guardarlo en el refrigerador hasta el momento de servirlo.

Estos registros lógicos están completamente sin abordar. La CPU solo puede direccionar realmente los registros lógicos que actualmente comparten el nombre de los registros arquitectónicos. Dicho esto, la CPU también los conoce lo suficiente como para que si otras instrucciones reordenadas se basan en los datos del registro de retención lógico, pueden usarlos en lugar de los datos "obsoletos" en el registro arquitectónico en ese momento empírico particular.

Barreras de memoria

Una barrera de memoria, también conocida como membar, cerca de memoria o instrucción de cerca, es una instrucción en código de computadora. Permite a un programador imponer una restricción de orden en las operaciones de memoria emitidas antes y después de la barrera de la memoria. La barrera de memoria le indica al programador de la CPU que se asegure de que todas las instrucciones se procesen antes que cualquier instrucción después de la barrera. Esto se hace para garantizar que las operaciones importantes se completen en el orden correcto.

Generalmente, en las computadoras modernas, esto no debería ser necesario. La ejecución desordenada y el cambio de nombre del registro son campos consolidados y maduros. Sin embargo, una barrera de memoria puede ser útil para procesadores fuera de servicio más antiguos, menos sofisticados o utilizados en operaciones críticas de memoria.

Las barreras de la memoria pueden venir con cierto detrimento del rendimiento. Esto se debe a que evitan activamente que el programador de la CPU optimice partes específicas del flujo de instrucciones. Esto aumenta la posibilidad de que se detenga la tubería.

Conclusión

Una barrera de memoria es una instrucción que asegura una restricción de orden en las operaciones de memoria. Esto es importante porque los procesadores de ejecución desordenados pueden reordenar instrucciones específicas. Si bien el cambio de nombre del registro está bien establecido como un método para garantizar la integridad de la memoria en este entorno, puede ser útil garantizarlo manualmente.

La barrera de la memoria obliga al programador de la CPU a garantizar que las instrucciones se completen antes que cualquier instrucción posterior a la barrera. Esto evita que se reordenen las operaciones de memoria. También evita que la CPU optimice el flujo de instrucciones, lo que puede afectar el rendimiento.



Leave a Comment

Cómo clonar un disco duro

Cómo clonar un disco duro

En la era digital moderna, donde los datos son un activo valioso, clonar un disco duro en Windows puede ser un proceso crucial para muchos. Esta guía completa

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Se enfrenta al mensaje de error al iniciar su computadora que dice que el controlador WUDFRd no se pudo cargar en su computadora?

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

¿Tiene el código de error 0x0003 de la experiencia NVIDIA GeForce en su escritorio? En caso afirmativo, lea el blog para descubrir cómo solucionar este error de forma rápida y sencilla.

Cómo quitar una GPU de una PC con Windows en 2023

Cómo quitar una GPU de una PC con Windows en 2023

¿Necesitas quitar la GPU de tu PC? Únase a mí mientras explico cómo quitar una GPU de su PC en esta guía paso a paso.

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

¿Compró un nuevo SSD NVMe M.2 pero no sabe cómo instalarlo? Siga leyendo para aprender cómo instalar un SSD NVMe en una computadora portátil o de escritorio.

¿Qué es una bomba lógica?

¿Qué es una bomba lógica?

Una bomba lógica es un incidente de seguridad en el que un atacante establece una acción retrasada. Sigue leyendo para saber más.

¿Qué es Stuxnet?

¿Qué es Stuxnet?

Stuxnet era un gusano que se propagaba a sí mismo. Fue el primer uso de un arma cibernética y la primera instancia de malware.

¿Qué es un hacker ético?

¿Qué es un hacker ético?

Un hacker ético es un hacker que actúa dentro de los límites de la ley. Sigue leyendo para saber más sobre el tema.

¿Qué es el cifrado simétrico?

¿Qué es el cifrado simétrico?

Hay muchas partes diferentes de la criptografía. Sin embargo, si desea cifrar algunos datos, hay dos tipos de algoritmos que puede usar: simétrico

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

¿Quiere hacer una prueba de estrés de la GPU en su PC con Windows para garantizar un rendimiento confiable para los juegos de alta definición? ¡Lea esta guía de GPU de prueba de estrés ahora!