Mostrando entradas con la etiqueta 22 nm. Mostrar todas las entradas
Mostrando entradas con la etiqueta 22 nm. Mostrar todas las entradas

jueves, 2 de febrero de 2017

Intel Atom Silvermont 22 nm. Introducción – ProfessionalSAT

Largo tiempo ha pasado desde que Intel presentó la primera generación Atom. Ha sido demasiados años para sustituir su arcaica arquitectura Bonnell cuyo diseño databa de 2004 (!!). Bonnell fue lanzado en 2008 en el nodo de 45 nm y evolucionado tímidamente a 32 nm en Saltwell.

En LowLevelHardware estoy escribiendo una serie de artículos detallando la micro arquitectura de este diseño de Intel para los que quieran un análisis más profundo:

Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware

Atom Tick TockBonnell 45 nm, Saltwell 32nm y el nuevo Silvermont 22 nm.

Por fin este año con Silvermont 22 nm Intel juega la carta out of order (OoO) en el segmento ultra móvil y prepara a Atom para la feroz competencia con ARM.

En LowLevelHardware estoy escribiendo una serie de artículos detallando la micro arquitectura de este diseño de Intel:

Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware

El arcaico y venerable core Bonnell

Han sido cinco largos años de espera. Debido a la falta de progresos en la micro arquitectura Atom los Netbooks han pasado prácticamente al olvido por su terrible rendimiento y por una plataforma / chipset / GPU que no ayudaba en absoluto al rendimiento y consumo de los anémicos cores Bonnell.

09-intel-atom-470-1108El minimalista core Bonnell de 45 nm de 2008, el primer Atom.

A mi modo de ver es increíble, ms parece mentira hablar de sistemas PC a la venta en pleno 2013 basados en chips con cores con ejecución In Order.

Todas las máquinas actuales basadas en CPUs Atom sean de 45 o 32 nm ejecutan el stream de instrucciones de un programa en estricto orden. Es decir, hasta que la instrucción 1 no ha sido ejecutada no pasa a la instrucción 2 y así sucesivamente.

No hay que pensar mucho para llegar a la conclusión de que no es el modo más rápido de proceder. En el mundo real, las instrucciones no siempre tienen disponibles los datos sobre los que deben operar en tiempo cero sino que deben cargarlos de algún sitio (caché, memoria RAM, disco duro…) que suele estar a varios ciclos de distancia temporal (cachés L1 o L2) o cientos de ciclos en caso de la RAM y muchísimo más de se trata de un acceso a disco duro.

Los procesadores Intel Atom de 45 y 32 nm palían este grave defecto con el Hyper Threading, ejecutan dos threads a la vez, cuando un thread no puede ejecutar una instrucción pasa al otro thread (a ver si hay suerte y tiene los datos disponibles…) En Atom Hyper Threading aporta sobre un 30% de prestaciones adicionales en modo multithread.

Desafortunadamente Hyper Threading no puede hacer nada con el rendimiento single thread, de hecho lo empeora levemente (menos de un 10%).

Intel Atom 22 nm 2013, bienvenido a la Ejecución Fuera de Orden (OoOE)

La forma ideal de operar en cambio, es la Ejecución Fuera de Orden (OoOE Out of Order Execution). Todas las CPUs de alto rendimiento de propósito general actuales funcionan de este modo, incluso ARM desde los Cortex A9 emplea una forma limitada de OoOE y ya en el Cortex A15 de manera completa.

Silvermont DieIntel Silvermont 22 nm die. (A bajísima resolución)

El procesador tiene un buffer (ROB Re Order Buffer) en el que almacena las últimas instrucciones del programa en ejecución (por ejemplo 128) y las analiza para averiguar cual de ellas es la más antigua que está lista para ser ejecutada inmediatamente y a que unidad de ejecución enviarla.

Por si solo, el OoOE supone sobre un 50% de incremento de velocidad de ejecución si se implementa adecuadamente.

Adiós FSB, adiós

Otra mejora fundamental de esta nueva generación Atom en la desaparición del venerable y arcaico Bus FSB. Por fin los cores se comunican con el exterior mediante un bus del siglo XXI. En este caso es un bus punto a punto, IDI, el mismo de Nehalem 45 nm y Westmere 32 nm.

Image1El bus IDI conecta cada módulo dualcore Silvermont con 1 MB L2 al System Agent.

La controladora de memoria DDR3 va integrada en el die del procesador, que a día de hoy es más bien un SoC (System on Chip) y se beneficia de la conexión del bus IDI a los cores X86 y la GPU integrada para aportar baja latencia en los accesos a RAM (que era terrible en los Atom con FSB).

A modo aclaratorio diré que si bien el primer core Atom (Bonnel 45 nm) tenía un chipset (Intel 945GM) al que se comunicaba por FSB y desde ahí accedía ala RAM, en la segunda generación (Saltwell 32 nm) apenas mejoró nada en este sentido ya que aunque la controladora DDR3 se situó en el mismo die, seguía conectada por el arcaico FSB.

En la segunda parte empezaré un análisis de la micro arquitectura del core Silvermont y cómo afecta al rendimiento IPC y a sus frecuencias estimadas así como a su integración en  chips comerciales de 2 a 8 cores.

En LowLevelHardware estoy escribiendo una serie de artículos detallando la micro arquitectura de este diseño de Intel para los que quieran un análisis más profundo:

Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

Memoria Transaccional en Intel Haswell 22 nm – ProfessionalSAT

Intel ha confirmado la inclusión en su nueva micro arquitectura Haswell 22 nm (disponible en 2013) de extensiones de aceleración (Transactional Synchronization o Intel TSX) hardware para acceso a memoria transaccional, un avance significativo y que posibilitará un mejor aprovechamiento del acceso simultáneo a RAM de varios threads o cores.

TSX_Haswell_01Los primeros estudios de Intel en memoria transaccional datan de 2005.

En este artículo de perfil bastante técnico explico en que consiste el concepto de memoria transaccional y las variaciones respecto al manejo actual de la memoria y hago una introducción de la implementación de Intel en sus nuevos cores Haswell 22 nm.

Intel_HaswellIntel Haswell 22 nm.

El modelo actual

Durante años, y en la actualidad, el acceso a memoria concurrente por varios procesos o threads se resolvía mediante locks o bloqueos (Lock-based synchronization of shared data access) de la página de RAM.

Una dirección de memoria a la que un proceso (un thread) accede se bloquea hasta que el thread daba señal de que había acabado su trabajo. Esto se hace para proteger contra colisiones en acceso a memoria: un thread puede intentar escribir (cambiar el valor) en una dirección de memoria mientras otro thread está procesando instrucciones con el valor pasado (el anterior a la escritura) de esa posición.

En este caso podría darse corrupción de datos y un fallo de ejecución en el software. De ahí el lock pues debe siempre respetarse el orden temporal de los accesos a memoria que colisionen. Gracias a Memory disambiguation, sólo el de los que colisiones. Anteriormente todo el proceso de acceso a RAM era en orden (in order).

Digamos que este mecanismo lock-based es altamente pesimista, por algunas veces que pueden haber problemas en el acceso concurrente se prohíbe siempre el acceso simultáneo y se serializa el acceso a memoria. Esto tiene en muchos algoritmos graves consideraciones prestacionales pues limita la ejecución multithread.

La memoria transaccional, de la que hay numerosas implementaciones por software (aquejadas de graves problemas de velocidad), propone un mecanismo para evitar estos locks y con ello conseguir accesos concurrentes a paginas o estructuras en RAM cuando no haya conflictos (colisiones de memoria).

Memoria transaccional en Intel Haswell 22 nm

Intel integra en Haswell una implementación de Intel TSX de dos vías (HLE y RTM) para la memoria transaccional, ambas con soporte de aceleración hardware.

TSX_Haswell_02

En la imagen anterior las cinco operaciones se deben ejecutar de manera secuencial, en orden temporal. Con memoria transaccional pueden ejecutarse simultáneamente por varios threads con la condición de que no se altere el resultado final.

Intel-Tick-Tock

En esencia la memoria transaccional permite un acceso paralelo a RAM por varios threads aunque accedan a la vez a las mismas estructuras o páginas. Y en caso de conflicto proporciona un mecanismo para deshacer los procesos y volver a una ejecución serializada de los accesos a RAM.

HLE (Hardware Lock Elision)

HLE funciona del siguiente modo: mediante prefijos modifican la función normal de las instrucciones de acceso a memoria que bloquean y desbloquean la estructura de datos en RAM.

Para realizar un lock se utiliza el prefijo XACQUIRE, para deshacerlo XRELEASE. Para el thread que utiliza el prefijo XACQUIRE el lock se ejecuta con normalidad (el thread cree que la estructura de datos en RAM está bloqueada para toda la máquina), en realidad no es así y el resto de threads pueden procesar con acceso a dicha estructura.

Cualquier thread puede entonces acceder al lock (con XACQUIRE) y operar, con lo que puede obtenerse un incremento tangible de concurrencia y velocidad.

HLE es un modo en el que el procesador miente a los threads y les concede el lock incondicionalmente y simultáneamente, pero la CPU tiene un mecanismo de resolución de conflictos por si el thread escribe en el lock. De hecho el procesador monitoriza por hardware todas las direcciones RAM que el thread lee o escribe desde el momento en que accede al lock.

En este caso todas las operaciones ejecutadas posteriormente sobre el lock son inválidas y la CPU debe cancelarlas (se aborta la transacción) y precargar los datos anteriores conocidos como correctos antes de realizarse el lock.

En caso (XRELEASE) de ausencia de conflictos todas las operaciones en RAM se ejecutan atómicamente en una sola transacción actualizando así el contenido de la RAM para que el resto de threads puedan acceder a estos datos actualizados.

Lo verdaderamente interesante de HLE es que es compatible con hardware anterior, las CPUs anteriores a Haswell simplemente ignoran los prefijos XACQUIRE y XRELEASE porque para ellas no significan nada y ejecutan el código con el antiguo modelo lock-based.

RTM: Restricted Transactional Memory

RTM es incompatible con procesadores actuales. Los programadores de un software deberán desarrollar dos versiones del código (una con RTM y una lock based). En CPUs Haswell y compatibles se ejecutará la versión optimizada RTM.

A día de hoy RTM tiene un menor interés, sólo comentaré que cuenta con nuevas instrucciones (XBEGIN, XEND, ABORT) que el código utilizará explícitamente. Es decir, es totalmente incompatible con hardware actual y llevará años llegar a ver implementaciones significativas de RTM.

Conclusiones

Intel TSX es otra extensión al juego de instrucciones X86 y ya van… rondamos ya las 1000 instrucciones. La utilidad de TSx se hará evidente en software multi-threaded que compartan datos activamente. Por ejemplo programas que accedan en paralelo a matrices de datos…

Las-CPUs-Intel-Haswell-llegan-en-2013

Habrá que ver aplicación por aplicación los beneficios que aportará, será interesante en bases de datos, en cálculos de simulaciones físicas, incluso en determinadas aplicaciones de Excel.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

Nuevo socket LGA 2011 – ProfessionalSAT

Este año 2011 se caracterizará por ser uno de los en que mayor número de nuevas plataformas y con ello nuevos sockets saldrán al mercado.

Intel nos prepara el nuevo LGA 2011 para Sandy Bridge E y AMD hace lo propio con los nuevos sockets para Bulldozer y los nuevos APU.

Intel en 2011

Definitivamente parece que se abandona el socket LGA 1356 de triple canal DDR3 (sustituto del actual  LGA 1366) y se apuesta definitivamente por el más avanzado y potente LGA 2011 de cuatro canales DDR3.

IMG0031760[1]Intel Roadmap 2011 – 2012.

En este nuevo socket Intel instalará los próximos procesadores Sandy bridge E.

A finales de este año entrarán en el mercado de sobremesa estas nuevas CPUs, sus precios empezarán sobre los 300 € para los modelos quad core y se extenderán de ahí hasta los 1000 € aproximadamente.

intel_mobo_roadmap[1]A finales de este año 2011 llegará LGA 2011.

En Q4 2011 compartirán gama con los Sandy Bridge de la serie 2600K y 2700K para sustituirlos en Q1 2012 en el momento que entrarán los nuevos Ivy Bridge de 22 nm.

Estos procesadores contarán, además de los 4 canales DDR3, con dos conexiones PCIe de 16X para GPUs y normalmente 8 DIMMs por socket. No será raro ver configuraciones con 32 GB de RAM.

Intel_Sandy_Bridge_ECPU de socket 2011.

En este mismo socket llegarán las versiones estrella de Ivy Bridge 22 nm:

 

ivy-features[1]

Ivy Bridge será un escalado a 22 nm de Sandy bridge con algunas mejoras menores, mayor números de cores y más cantidad de caché L3, probablemente hasta los 2.5 MB por core.

Los núcleos cambiarán poco:

  • Algunas mejoras en el procesamiento AVX y sobretodo cambios en la GPU integrada, esta vez DirectX 11, y en el hardware de coding y decoding de video (Intel Quick Sync).
  • Lo que sí será notoria será una masiva reducción en el consumo y disipación térmica desde los valores ya excelentes de Sandy Bridge.
  • También espero mejoras en la gestión y margen de frecuencia de los Turbo Modes.

En el siguiente artículo analizaré los nuevos sockets que AMD lanza este año 2011 y haré un somero análisis de los procesadores que se instalarán en ellos, AMD Bulldozer y Llano.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]