Articulo de referencia

Hyper-threading

En esta representación de alto nivel de HTT, las instrucciones se obtienen de la RAM (los recuadros de diferentes colores representan las instrucciones de cuatro procesos difere...

En esta representación de alto nivel de HTT, las instrucciones se obtienen de la RAM (los recuadros de diferentes colores representan las instrucciones de cuatro procesos diferentes ), se decodifican y reordenan por el front-end (los recuadros blancos representan burbujas de tubería ) y se pasan al núcleo de ejecución capaz de ejecutar instrucciones de dos programas diferentes durante el mismo ciclo de reloj . [ 1 ] [ 2 ] [ 3 ]

Hyper-threading (oficialmente llamado Hyper-Threading Technology o HT Technology y abreviado como HTT o HT ) es la implementación de multihilo simultáneo (SMT) propiedad de Intel que se utiliza para mejorar la paralelización de los cálculos (realizar múltiples tareas a la vez) en los microprocesadores x86 . Se introdujo en los procesadores de servidor Xeon en febrero de 2002 y en los procesadores de escritorio Pentium 4 en noviembre de 2002. [ 4 ] Desde entonces, Intel ha incluido esta tecnología en las CPU de las series Itanium , Atom y Core , entre otras. [ 5 ]

Por cada núcleo de procesador físicamente presente, el sistema operativo accede a dos núcleos virtuales (lógicos) y distribuye la carga de trabajo entre ellos cuando es posible. La función principal del hyper-threading es aumentar el número de instrucciones independientes en la tubería; aprovecha la arquitectura superescalar , en la que múltiples instrucciones operan en paralelo sobre datos separados . Con HTT, un núcleo físico aparece como dos procesadores para el sistema operativo, lo que permite la planificación concurrente de dos procesos por núcleo. Además, dos o más procesos pueden usar los mismos recursos: si los recursos para un proceso no están disponibles, otro proceso puede continuar si sus recursos están disponibles.

Además de requerir soporte para multihilo simultáneo en el sistema operativo, el hyper-threading solo puede utilizarse correctamente con un sistema operativo específicamente optimizado para ello. [ 6 ]

Descripción general

Un modelo de 3  GHz del  procesador Intel Pentium 4 que incorpora tecnología Hyper-Threading [ 7 ]

La tecnología Hyper-Threading es una forma de multihilo simultáneo introducida por Intel, mientras que el concepto subyacente ha sido patentado por Sun Microsystems . Arquitectónicamente, un procesador con tecnología Hyper-Threading consta de dos procesadores lógicos por núcleo, cada uno con su propio estado arquitectónico. Cada procesador lógico puede detenerse, interrumpirse o ejecutarse individualmente para un hilo específico, independientemente del otro procesador lógico que comparte el mismo núcleo físico. [ 8 ]

A diferencia de una configuración tradicional de doble procesador que utiliza dos procesadores físicos separados, los procesadores lógicos en un núcleo con tecnología Hyper-Threading comparten los recursos de ejecución. Estos recursos incluyen el motor de ejecución, las cachés y la interfaz del bus del sistema; el uso compartido de recursos permite que dos procesadores lógicos trabajen juntos de manera más eficiente y que un procesador lógico tome prestados recursos de un núcleo lógico bloqueado (siempre que ambos núcleos lógicos estén asociados al mismo núcleo físico). Un procesador se bloquea cuando debe esperar los datos que ha solicitado para terminar de procesar el hilo actual. El grado de beneficio que se observa al usar un procesador con tecnología Hyper-Threading o multinúcleo depende de las necesidades del software y de la eficacia con la que tanto el software como el sistema operativo estén programados para administrar el procesador de manera eficiente. [ 8 ]

Hyper-threading funciona duplicando ciertas secciones del procesador —aquellas que almacenan el estado arquitectónico— pero sin duplicar los recursos de ejecución principales . Esto permite que un procesador con Hyper-threading aparezca como el procesador físico habitual más un procesador lógico adicional para el sistema operativo anfitrión (los sistemas operativos que no admiten HTT ven dos procesadores físicos), lo que permite al sistema operativo programar dos hilos o procesos simultáneamente y de forma adecuada. Cuando los recursos de ejecución de un procesador con Hyper-threading no están siendo utilizados por la tarea actual, y especialmente cuando el procesador está bloqueado, dichos recursos pueden utilizarse para ejecutar otra tarea programada. (El procesador puede bloquearse debido a un fallo de caché , una predicción errónea de bifurcación o una dependencia de datos ). [ 9 ]

Esta tecnología es transparente para los sistemas operativos y los programas. El requisito mínimo para aprovechar la tecnología hyper-threading es la compatibilidad con el procesamiento simétrico multiprocesador (SMP) en el sistema operativo, ya que los procesadores lógicos no se diferencian de los procesadores físicos para el sistema operativo.

Es posible optimizar el comportamiento del sistema operativo en sistemas multiprocesador con capacidad de hyper-threading. Por ejemplo, consideremos un sistema SMP con dos procesadores físicos con hyper-threading (para un total de cuatro procesadores lógicos). Si el planificador de hilos del sistema operativo desconoce hyper-threading, tratará a los cuatro procesadores lógicos por igual. Si solo dos hilos son aptos para ejecutarse, podría optar por programarlos en los dos procesadores lógicos que pertenecen al mismo procesador físico. Dicho procesador estaría extremadamente ocupado y compartiría recursos de ejecución, mientras que el otro permanecería inactivo, lo que resultaría en un rendimiento inferior al que se obtendría si los hilos se programaran en procesadores físicos diferentes. Este problema puede evitarse mejorando el planificador para que trate a los procesadores lógicos de forma diferente a los físicos, lo que, en cierto modo, representa una forma limitada de los cambios en el planificador necesarios para los sistemas NUMA .

Historia

El primer artículo publicado que describía lo que ahora se conoce como hyper-threading en una computadora de propósito general fue escrito por Edward S. Davidson y Leonard E. Shar en 1973. [ 10 ]

Denelcor, Inc. introdujo la multihilo con el Procesador de Elementos Heterogéneos (HEP) en 1982. La tubería del HEP no podía contener múltiples instrucciones del mismo proceso. Solo se permitía una instrucción de un proceso determinado en la tubería en cualquier momento. Si una instrucción de un proceso bloqueaba la tubería, las instrucciones de otros procesos continuarían una vez que esta se vaciara.

La patente estadounidense para la tecnología detrás del hyper-threading fue otorgada a Kenneth Okin en Sun Microsystems en noviembre de 1994. En ese momento, la tecnología de proceso CMOS no estaba lo suficientemente avanzada como para permitir una implementación rentable. [ 11 ]

Intel implementó la tecnología Hyper-Threading en un procesador con arquitectura x86 en 2002 con el Xeon basado en Foster MP . También se incluyó en el  Pentium 4 basado en Northwood de 3,06 GHz  ese mismo año, y desde entonces se ha mantenido como una característica en todos los procesadores Pentium  4  HT, Pentium  4 Extreme Edition y Pentium Extreme Edition. Las líneas de procesadores Intel Core y Core 2 (2006) que sucedieron a la línea de modelos Pentium 4 no utilizaban Hyper-Threading. Los procesadores basados ​​en la microarquitectura Core no contaban con Hyper-Threading porque la microarquitectura Core era descendiente de la antigua microarquitectura P6 . La microarquitectura P6 se ​​utilizó en iteraciones anteriores de procesadores Pentium, concretamente, el Pentium Pro , el Pentium II y el Pentium III (además de sus derivados Celeron y Xeon de la época). Windows 2000 SP3 y Windows XP SP1 han añadido compatibilidad con la tecnología hyper-threading.

Intel lanzó la microarquitectura Nehalem (Core  i7) en noviembre de 2008, en la que regresó el hyper-threading. Los procesadores Nehalem de primera generación contenían cuatro núcleos físicos y escalaban efectivamente a ocho hilos. Desde entonces, se han lanzado modelos de dos y seis núcleos, que escalan cuatro y doce hilos respectivamente. [ 12 ] Los primeros núcleos Intel Atom eran procesadores en orden, a veces con capacidad hyper-threading, para PC móviles de bajo consumo y PC de escritorio de bajo precio. [ 13 ] El Itanium  9300 se lanzó con ocho hilos por procesador (dos hilos por núcleo) a través de la tecnología hyper-threading mejorada. El siguiente modelo, el Itanium 9500 (Poulson), presenta una arquitectura de emisión de 12 anchos, con ocho núcleos de CPU con soporte para ocho núcleos virtuales más a través de hyper-threading. [ 14 ] Los chips de servidor Intel Xeon  5500 también utilizan hyper-threading bidireccional. [ 15 ] [ 16 ]

Afirmaciones de rendimiento

Según Intel, la primera implementación de hyper-threading utilizó solo un 5 % más de área de chip que el procesador comparable sin hyper-threading, pero el rendimiento fue entre un 15 % y un 30 % mejor. [ 17 ] [ 18 ] Intel afirma una mejora de rendimiento de hasta un 30 % en comparación con un Pentium  4 idéntico, sin multihilo simultáneo . Tom's Hardware afirma: "En algunos casos, un P4 que funciona a 3,0  GHz con HT activado puede incluso superar a un P4 que funciona a 3,6  GHz con HT desactivado". [ 19 ] Intel también afirma mejoras de rendimiento significativas con un procesador Pentium 4 habilitado para hyper-threading  en algunos algoritmos de inteligencia artificial.

En general, el historial de rendimiento de hyper-threading fue mixto al principio. Como señala un comentario sobre computación de alto rendimiento de noviembre de 2002: [ 20 ]

Hyper-Threading puede mejorar el rendimiento de algunas aplicaciones MPI , pero no de todas. Dependiendo de la configuración del clúster y, sobre todo, de la naturaleza de la aplicación que se ejecuta en él, las mejoras de rendimiento pueden variar o incluso ser negativas. El siguiente paso consiste en utilizar herramientas de rendimiento para comprender qué áreas contribuyen a las mejoras de rendimiento y cuáles a su degradación.

Como resultado, las mejoras de rendimiento dependen mucho de la aplicación; [ 21 ] sin embargo, al ejecutar dos programas que requieren la atención completa del procesador, puede parecer que uno o ambos programas se ralentizan ligeramente cuando se activa la tecnología Hyper-Threading. [ 22 ] Esto se debe a que el sistema de repetición del Pentium  4 ocupa valiosos recursos de ejecución, igualando los recursos del procesador entre los dos programas, lo que añade una cantidad variable de tiempo de ejecución. Los  procesadores Pentium 4 "Prescott" y Xeon "Nocona" recibieron una cola de repetición que reduce el tiempo de ejecución necesario para el sistema de repetición y supera por completo la penalización de rendimiento. [ 23 ]

Según un análisis de Intel de noviembre de 2009, los impactos en el rendimiento de hyper-threading resultan en un aumento de la latencia general en caso de que la ejecución de hilos no genere ganancias significativas en el rendimiento general, que varían [ 21 ] según la aplicación. En otras palabras, la latencia de procesamiento general aumenta significativamente debido a hyper-threading, y los efectos negativos se reducen a medida que hay más hilos simultáneos que pueden utilizar eficazmente la utilización adicional de recursos de hardware que proporciona hyper-threading. [ 24 ] Un análisis de rendimiento similar está disponible para los efectos de hyper-threading cuando se utiliza para manejar tareas relacionadas con la gestión del tráfico de red, como para procesar las solicitudes de interrupción generadas por los controladores de interfaz de red (NIC). [ 25 ] Otro artículo afirma que no hay mejoras de rendimiento cuando hyper-threading se utiliza para el manejo de interrupciones. [ 26 ]

Desventajas

Cuando se lanzaron los primeros procesadores HT, muchos sistemas operativos no estaban optimizados para la tecnología hyper-threading (por ejemplo, Windows 2000 y Linux anterior a la versión 2.4). [ 27 ]

En 2006, se criticó el hyper-threading por su ineficiencia energética. [ 28 ] Por ejemplo, ARM (una empresa especializada en el diseño de CPU de bajo consumo) afirmó que el multihilo simultáneo puede consumir hasta un 46 % más de energía que los diseños de doble núcleo convencionales. Además, alegaron que SMT aumenta el saturamiento de la caché en un 42 %, mientras que el doble núcleo produce una disminución del 37 %. [ 29 ]

En 2010, ARM dijo que podría incluir multihilo simultáneo en sus futuros chips; [ 30 ] sin embargo, esto fue rechazado en favor de su diseño de 64 bits de 2012. [ 31 ] ARM produjo núcleos SMT en 2018. [ 32 ]

En 2013, Intel abandonó SMT en favor de la ejecución fuera de orden para sus núcleos de procesador Silvermont , ya que descubrieron que esto proporcionaba un mejor rendimiento con una mayor eficiencia energética que un menor número de núcleos con SMT. [ 33 ]

En 2017, se reveló que los procesadores Skylake y Kaby Lake de Intel tenían un error en su implementación de hyper-threading que podía causar pérdida de datos. [ 34 ] Posteriormente se publicaron actualizaciones de microcódigo para solucionar el problema. [ 35 ] [ 36 ] [ 37 ]

En 2019, con Coffee Lake , Intel dejó temporalmente de incluir hyper-threading en los procesadores de escritorio Core i7 convencionales, excepto en los Core i9 de gama alta o las CPU Pentium Gold. [ 38 ] También comenzó a recomendar deshabilitar hyper-threading, ya que se revelaron nuevos ataques de vulnerabilidad de CPU que podían mitigarse deshabilitando HT. [ 39 ]

Seguridad

En mayo de 2005, Colin Percival demostró que un hilo malicioso en un Pentium 4 puede usar un ataque de canal lateral  basado en el tiempo para monitorear los patrones de acceso a la memoria de otro hilo con el que comparte una caché, lo que permite el robo de información criptográfica. En realidad, esto no es un ataque de tiempo , ya que el hilo malicioso mide el tiempo de su propia ejecución. Las posibles soluciones a esto incluyen que el procesador cambie su estrategia de desalojo de caché o que el sistema operativo impida la ejecución simultánea, en el mismo núcleo físico, de hilos con diferentes privilegios. [ 40 ] En 2018, el sistema operativo OpenBSD deshabilitó hyper-threading "para evitar posibles fugas de datos de aplicaciones a otro software" causadas por las vulnerabilidades Foreshadow/L1TF . [ 41 ] [ 42 ] En 2019, un conjunto de vulnerabilidades llevó a los expertos en seguridad a recomendar la deshabilitación de hyper-threading en todos los dispositivos. [ 43 ]

Véase también

Referencias

  1. Stokes, Jon (3 de octubre de 2002). "Introducción a Multithreading, Superthreading e Hyperthreading" . Ars Technica . págs. 2–3 . Recuperado el 30 de septiembre de 2015 . 
  2. Deborah T. Marr; Frank Binns; David L. Hill; Glenn Hinton; David A. Koufaty; J. Alan Miller; Michael Upton (12 de diciembre de 2006). "Arquitectura y microarquitectura de tecnología Hyper-Threading" (PDF) . cs.sfu.ca. Archivado del original (PDF) el 23 de septiembre de 2015. Recuperado el 30 de septiembre de 2015 .
  3. Anand Lal Shimpi (5 de octubre de 2012). "El front-end de Haswell: análisis de la arquitectura Haswell de Intel" . AnandTech . Archivado del original el 7 de octubre de 2012. Consultado el 30 de septiembre de 2015 .
  4. "CPU Intel Pentium 4 de 3,06 GHz con tecnología Hyper-Threading: Dos pájaros de un tiro." X-bit labs. Archivado del original el 31 de mayo de 2014. Consultado el 4 de junio de 2014 . 
  5. "Tecnología Intel® Hyper-Threading (Tecnología Intel® HT)" . Intel . Consultado el 24 de octubre de 2021 .
  6. La lista de intercambiabilidad de componentes necesarios de Intel para el  procesador Intel Pentium 4 con tecnología HT incluye una lista de sistemas operativos que incluyen optimizaciones para la tecnología Hyper-Threading; estos son Windows XP Professional 64, Windows XP MCE, Windows XP Home, Windows XP Professional, algunas versiones de Linux como COSIX Linux 4.0, RedHat Linux 9 (versiones Professional y Personal), RedFlag Linux Desktop 4.0 y SuSE Linux 8.2 (versiones Professional y Personal).
  7. "Buscador de especificaciones del procesador Intel: SL6WK" .
  8. 1 2 Thomadakis, Michael E. (17 de marzo de 2011). "La arquitectura del procesador Nehalem y las plataformas SMP Nehalem-EP" (PDF) . Universidad de Texas A&M. pág. 23. Archivado del original (PDF) el 11 de agosto de 2014. Recuperado el 21 de marzo de 2014 . 
  9. Hennessy, John L.; Patterson, David A. (7 de diciembre de 2017). Arquitectura de computadoras: un enfoque cuantitativo . Asanović, Krste , Bakos, Jason D., Colwell, Robert P., Bhattacharjee, Abhishek, 1984-, Conte, Thomas M., 1964- (Sexta ed.). Cambridge, MA. ISBN  978-0128119051OCLC 983459758 {{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  10. "Un sistema multiminiprocesador implementado mediante segmentación", por Leonard Shar y Edward Davidson, IEEE Computer, febrero de 1974, págs. 42-51, vol. 7 https://www.computer.org/csdl/magazine/co/1974/02/4251/13rRUyoyhIt
  11. Okin, Kenneth (1 de noviembre de 1994), Patente de Estados Unidos: 5361337 - Método y aparato para la conmutación rápida de procesos en un sistema informático , archivado del original el 21 de septiembre de 2015 , recuperado el 24 de mayo de 2016.
  12. "Juegos extremos con el procesador Intel® Core™ i7 Extreme Edition" . www.intel.com . Archivado del original el 1 de diciembre de 2008.
  13. "Microarquitectura del procesador Intel® Atom™" . Intel.com. 18 de marzo de 2011. Consultado el 5 de abril de 2011 .
  14. "Intel revela nuevas características de Itanium Poulson" . Tomshardware.com. 24 de agosto de 2011. Consultado el 2 de julio de 2017 .
  15. "Página de índice de procesadores para servidores" . Intel.com. 18 de marzo de 2011. Consultado el 5 de abril de 2011 .
  16. "Procesador Intel Xeon Serie 5500" . Intel.com . Consultado el 5 de abril de 2011 . 
  17. «Tecnología Hyper-Threading» (PDF) . Intel Technology Journal . 06 (1). 14 de febrero de 2012. ISSN 1535-766X . Archivado del original (PDF) el 19 de octubre de 2012. 
  18. "Cómo determinar la efectividad de la tecnología Hyper-Threading con una aplicación" . software.intel.com . 28 de abril de 2011. Archivado del original el 2 de febrero de 2010.
  19. "Resumen: En algunos casos, el P4 3.0HT puede incluso superar a la versión de 3,6 GHz : CPU única en operación dual: P4 3,06 GHz con tecnología Hyper-Threading" . Tomshardware.com. 14 de noviembre de 2002. Consultado el 5 de abril de 2011 .     
  20. Tau Leng; Rizwan Ali; Jenwei Hsieh; Christopher Stanton (noviembre de 2002). "Un estudio de Hyper-Threading en clústeres de computación de alto rendimiento" (PDF) . Dell. pág. 4. Consultado el 12 de noviembre de 2012 . 
  21. 1 2 Joel Hruska (24 de julio de 2012). "Rendimiento maximizado: Comparación de los efectos de Hyper-Threading y las actualizaciones de software" . extremetech.com . Consultado el 2 de marzo de 2015 .
  22. "Evaluación del rendimiento de la CPU - Benchmark - Pentium 4 2.8 y 3.0" . users.telenet.be . Archivado del original el 24 de febrero de 2021. Consultado el 12 de abril de 2011 .
  23. "Reproducción: Características desconocidas del núcleo NetBurst. Página 15" . Reproducción: Características desconocidas del núcleo NetBurst . Xbitlabs. Archivado del original el 14 de mayo de 2011. Consultado el 24 de abril de 2011 .
  24. Valles, Antonio (20 de noviembre de 2009). "Performance Insights to Intel Hyper-Threading Technology" . Intel . Archivado del original el 17 de febrero de 2015. Recuperado el 26 de febrero de 2015 .
  25. "Ajuste y rendimiento de la red" . calomel.org . 12 de noviembre de 2013. Consultado el 26 de febrero de 2015 .
  26. "Documentación del kernel de Linux: Escalado en la pila de red de Linux" . kernel.org . 1 de diciembre de 2014. Consultado el 2 de marzo de 2015. La carga por CPU se puede observar usando la utilidad mpstat, pero tenga en cuenta que en los procesadores con hyperthreading (HT), cada hyperthread se representa como una CPU independiente. Para el manejo de interrupciones, HT no ha mostrado ningún beneficio en las pruebas iniciales, por lo que se debe limitar el número de colas al número de núcleos de CPU en el sistema.
  27. "Tecnología Hyper-Threading: sistemas operativos que incluyen optimizaciones para la tecnología Hyper-Threading" . Intel.com. 19 de septiembre de 2011. Consultado el 29 de febrero de 2012 .
  28. Prácticas sostenibles: conceptos, metodologías, herramientas y aplicaciones . Information Resources Management Association. Diciembre de 2013. pág. 666. ISBN  9781466648524.
  29. "ARM no es fan de HyperThreading" . theinquirer.net. 2 de agosto de 2006. Archivado del original el 6 de septiembre de 2009. Consultado el 29 de febrero de 2012 .
  30. Jermoluk, Tom (13 de octubre de 2010). "Acerca de MIPS y MIPS | TOP500 Sitios de Supercomputación" . Top500.org . Archivado del original el 13 de junio de 2011. Recuperado el 5 de abril de 2011 .
  31. "ARM lanza su primer núcleo de procesador de 64 bits para servidores y teléfonos inteligentes" . Tech Design Forum . 30 de octubre de 2012.
  32. "Arm lanza el primer núcleo Cortex con capacidad SMT | bit-tech.net" . bit-tech.net . Consultado el 2 de diciembre de 2023 .
  33. Rik ​​Myslewski (8 de mayo de 2013). "En lo más profundo del primer procesador móvil viable de Intel: Silvermont" . The Register . Consultado el 13 de enero de 2014 .
  34. Chirgwin, Richard (25 de junio de 2017). "Los procesadores Skylake y Kaby Lake de Intel tienen un grave error de hyper-threading" . The Register . Consultado el 4 de julio de 2017 .
  35. "Los chips Skylake y Kaby Lake presentan un error que provoca fallos con Hyperthreading activado" . Ars Technica . 26 de junio de 2017. Consultado el 25 de noviembre de 2017 .
  36. Goetting, Chris (26 de junio de 2017). " [ Actualizado ] Se descubre un fallo crítico en el HyperThreading de Intel Skylake y Kaby Lake que requiere una corrección del microcódigo de la BIOS" . HotHardware.com . Consultado el 27 de agosto de 2018 .
  37. " [ ADVERTENCIA ] Procesadores Intel Skylake/Kaby Lake: hyper-threading roto" . lists.debian.org . Consultado el 24 de febrero de 2026 .
  38. Cutress, Ian (23 de abril de 2019). "Procesadores Intel Core de 9.ª generación: se anuncian todas las CPU de escritorio y móviles de 45 W" . AnandTech . Archivado del original el 23 de abril de 2019.
  39. Armasu, Lucian (14 de mayo de 2019). "El nuevo fallo de Intel, similar al de Spectre, afecta a los chips fabricados desde 2008" . Tom's Hardware . Archivado del original el 4 de agosto de 2019.
  40. Percival, Colin (14 de mayo de 2005). "Cache Missing for Fun and Profit" (PDF) . Daemonology.net . Recuperado el 14 de junio de 2016 .
  41. "OpenBSD desactiva la tecnología hyper-threading de Intel por temor a fugas de datos de la CPU" . Consultado el 24 de agosto de 2018 .
  42. ""Deshabilitar SMT/Hyperthreading en todas las BIOS de Intel" - MARC . marc.info . Consultado el 24 de agosto de 2018 .
  43. Greenberg, Andy (14 de mayo de 2019). "Meltdown Redux: una falla de Intel permite a los hackers extraer secretos de millones de PC" . WIRED . Consultado el 14 de mayo de 2019 .
  • Intel presenta un innovador diseño de procesador , comunicado de prensa de agosto de 2001.
  • Intel: descripción general de alto nivel de Hyper-threading
  • Hyper-threading en la revista MSDN
  • Artículo introductorio de Ars Technica
  • Patente estadounidense número 4,847,755
  • Merom, Conroe y Woodcrest pierden HyperThreading
  • ZDnet: Los desarrolladores afirman que Hyperthreading perjudica el rendimiento de los servidores.
  • ARM no es partidario de HyperThreading : describe los problemas de las soluciones SMT.
  • El impacto de Hyper-Threading en la utilización de los recursos del procesador en aplicaciones de producción.