tag:blogger.com,1999:blog-66445799033690658062024-03-13T14:53:46.756+01:00LowLevelHardwareAnálisis de microarquitectura de procesadores.
CPU,GPU,microarquitectura,procesador,prosessor,trucos,pipeline,Intel,AMD,ARMaaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.comBlogger94125tag:blogger.com,1999:blog-6644579903369065806.post-26031900079166337972017-02-02T16:20:00.000+01:002017-02-02T16:20:54.462+01:00Los 60000 ciclos AVX 256 bit perdidos en Intel Skylake – LowLevelHardware<p align="justify">Como todos conocéis, desde Sandy Bridge 32 nm, Intel introdujo las instrucciones AVX FPU de 256 bit en sus procesadores aumentando con ello en un factor 2 la potencia de cálculo FPU de sus CPUs respecto a Nehalem 45 nm y Westmere 32 nm.</p> <p align="center"><a href="https://lh3.googleusercontent.com/-TlNLnqz3EXA/VpwD0AobLiI/AAAAAAAAJ9A/N7QeNQGwco8/s1600-h/Skylake%252520core%25252014nm%25255B6%25255D.png"><img title="Skylake core 14nm" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Skylake core 14nm" src="https://lh3.googleusercontent.com/-bew6U-wHmGE/VpwD2rDheZI/AAAAAAAAJ9I/g78-onQtUs8/Skylake%252520core%25252014nm_thumb%25255B2%25255D.png?imgmax=800" width="446" height="273"></a>Uno de los cores Skylake 14nm.</p> <p align="justify">Con la microarquitectura Haswell 22 nm, Intel añadió el juego de instrucciones AVX2 y FMA FPU, que proporcionan proceso vectorial de enteros de 256 bit y unidades FPU Fused Multiply Accumulate combinadas respectivamente.</p> <p align="justify"><font color="#ffffb0" size="3">Intel Skylake Core i7 6700K</font></p> <p align="justify">Hasta el momento, el Core i7 6700K es la CPU x86 quad core más rápida que he probado y además con un consumo de energía excelente. Y muy adecuada para cálculo matemático gracias al soporte AVX 256 bit y FMA junto a sus 8 threads simultáneos y el brutal ancho de banda de un dual channel DDR4 a frecuencias superiores a los 3 GHz.</p> <p align="justify">En este artículo quiero resaltar una particularidad de los últimos procesadores Skylake 14 nm(Intel Core de sexta generación) que he comprobado en samples de Core i7 6700K configurados a 4.4 GHz. </p> <p align="justify">Esta peculiaridad es <strong>el <font color="#ffffb0">ahorro de energía en el que mantienen las unidades de cálculo vectorial de 256 bit cuando no están en uso</font></strong>, es decir, en las tareas más habituales del sistema operativo que no suelen involucrar cálculos FPU.</p> <p align="justify">Es en el momento de lanzar un cálculo que actiave estas unidades de 256 bit, cuando se produce un fenómeno curioso.</p> <p align="justify"><font color="#ffffb0" size="3">Los 60000 ciclos AVX perdidos en Intel Skylake</font></p> <p align="justify">Al inicio, y de manera sorprendente, la velocidad de proceso es de unas <strong><font color="#ffffb0">4 a 6 veces inferior</font></strong> a la nominal en proceso AVX FPU, debido a que las unidades permanecen en ese estado latente de bajo consumo, probablemente con los 128 bit superiores deshabilitados y los datapath de 256 bit desactivado.</p> <p align="justify">Tras un tiempo, dependiente de múltiples factores (la frecuencia de nuestro procesador, quizás de ajustes en la BIOS de nuestro sistema y también de peculiaridades o ajustes de nuestro sistema operativo) la velocidad de cálculo llega a su valor típico y normal y se mantiene ahí hasta finalizar el cálculo.</p> <p align="center"><a href="https://lh3.googleusercontent.com/-d2VCEKbLBvI/VpwD6fKLAjI/AAAAAAAAJ9Q/R7VhwRFBKyU/s1600-h/Skylake14nm%252520640%25255B7%25255D.png"><img title="Skylake14nm 640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Skylake14nm 640" src="https://lh3.googleusercontent.com/-k6vZTWrFKBY/VpwD-qmQPiI/AAAAAAAAJ9Y/NfJnQWQOjek/Skylake14nm%252520640_thumb%25255B3%25255D.png?imgmax=800" width="644" height="442"></a>Intel Skylake quad core 14 nm</p> <p align="justify">Este tiempo de rendimiento reducido ronda los <strong><font color="#ffffb0">60000 ciclos</font></strong> (unos 13 microsegundos en una CPU a 4.4 GHz).</p> <p align="justify">Puede parecer poco tiempo, pero si nuestro cálculo consiste en pequeñas ráfagas de código AVX intercaladas entre otros fragmentos de código de otro tipo, puede provocar que nuestro cálculo sea globalmente unas 2 a 5 veces más lento de lo esperado (!!).</p> <p align="justify">Como solución podemos hacer que estos cálculos en ráfaga procesen a velocidad nominal (elevada) si los mantenemos próximos en el tiempo, ya que estas unidades FPU AVX de 256 bit mantienen su velocidad de proceso durante unos 3 000 000 de ciclos (equivalentes a unos 600 micro segundos en una CPU a 4.4 GHz), después de los cuales retornan al estado de reposo y bajo rendimiento.</p> <p align="justify">Otra solución consistiría en ir lanzando “de vez en cuando” algunas instrucciones AVX 256 bit para “despertar” las unidades FPU momentos antes (unos 60000 ciclos) de que lleguemos a ejecutar nuestro importante código AVX 256 bit.</p> <p align="justify">Echad un vistazo a la web de mi nueva empresa, un proyecto de gran envergadura que llevo preparando hace más de un año.</p> <p align="justify">Os lo recomiendo para<strong><em> </em></strong><a href="https://www.informaticapremium.com" target="_blank"><strong><em>diseño de sistemas de altas prestaciones</em></strong></a>:</p> <p align="justify"><a href="https://www.informaticapremium.com" target="_blank"><img title="ip16_texto_300px_blanco[4][2][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="ip16_texto_300px_blanco[4][2][2][2]" src="https://lh3.googleusercontent.com/-QUYAWuY-5ZQ/WAY5QtR9yJI/AAAAAAAAKs4/wyQiuHu4nV4/ip16_texto_300px_blanco%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="304" height="304"></a></p> <p align="justify">Allí tenéis a vuestra disposición el formulario de contacto, para consultas sobre este artículo hacedlo más abajo en la sección de comentarios.</p> <p align="justify">Y mi nuevo Blog de contenido muy técnico y actualizado donde encontraréis artículos míos sobre hardware, procesadores y sistemas y también otros posts de expertos programadores e informáticos sobre otros temas de actualidad:</p> <p align="justify"><a href="https://www.informaticapremium.com/blog/" target="_blank"><img title="infromaticapremium-blog[4][2][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="infromaticapremium-blog[4][2][2][2]" src="https://lh3.googleusercontent.com/-cXIG2d3QEz8/WAY5RHUfqRI/AAAAAAAAKs8/k4WZPBnuF14/infromaticapremium-blog%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="381" height="311"></a></p> <p align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: " color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-46920939625743772662017-02-02T16:19:00.001+01:002017-02-02T16:20:32.464+01:00BIOS y ahorro de energía memoria en DDR3 o DDR4 – LowLevelHardware<p align="justify">Si somos usuarios de un sistema con una placa base de gama media o gama alta tendremos a nuestra disposición cientos de ajustes en BIOS para optimizar nuestra máquina.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-Sy5mlLPXUoo/VlweJsA67AI/AAAAAAAAHZM/1jKtKG5CqME/s1600-h/20151130_085658%25255B3%25255D.jpg"><img title="20151130_085658" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="20151130_085658" src="http://lh3.googleusercontent.com/-QymPXJij2RM/VlweKtMyEBI/AAAAAAAAHZU/I2wYPjyuFhc/20151130_085658_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="456"></a>Ajustes manuales DDR3.</p> <p align="justify">Estos ajustes finos ciertamente pueden marcar la diferencia y hacer que nuestro sistema sea muy superior en todos los aspectos a uno configurado con los mismos componentes por defecto:</p> <ul> <li> <div align="justify">Rendimiento y velocidad de proceso muy superior (más del 50%).</div></li> <li> <div align="justify">Temperaturas mucho más controladas en cada componente.</div></li> <li> <div align="justify">Menor nivel de ruido de refrigeración.</div></li> <li> <div align="justify">Consumo total de la máquina muy reducido (en ocasiones en cientos de watt).</div></li></ul> <p align="justify">Sería fácilmente cuestión de cientos de artículos y cientos de miles de palabras detallar estos ajustes y todas sus posibles combinaciones en función del hardware específico, requiere un minucioso estudio de los whitepapers de cada procesador, chipset, placa base e implementación específica de cada BIOS.</p> <p align="justify">En este artículo me referiré a una máquina con un procesador Core i7 3770K hand picked (seleccionado entre decenas de samples) configurada a 4.4 GHz a un voltaje muy reducido de solo 0.020 V superior al nominal mediante offset y con estabilidad absoluta con estos ajustes.</p> <p align="justify"><font color="#fff3a4" size="3">DRAM Power Management and Initialization</font></p> <p align="justify">Aquí dejo enlaces a los Datasheet PDF relativos a:</p> <blockquote> <p align="justify">La tercera generación Intel Core, Ivy Bridge 22 nm. (<a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/3rd-gen-core-desktop-vol-1-datasheet.pdf" target="_blank">parte 1</a>, <a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/3rd-gen-core-desktop-vol-2-datasheet.pdf" target="_blank">parte 2</a>).</p> <p align="justify">La cuarta generación Intel Core, Haswell 22 nm. (<a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/4th-gen-core-family-desktop-vol-1-datasheet.pdf" target="_blank">parte 1</a>, <a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/4th-gen-core-family-desktop-vol-2-datasheet.pdf" target="_blank">parte 2</a>).</p> <p align="justify">La quinta generación Intel Core, Broadwell 14 nm. (<a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/5th-gen-core-family-datasheet-vol-1.pdf" target="_blank">parte 1</a>, <a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/5th-gen-core-family-datasheet-vol-2.pdf" target="_blank">parte 2</a>).</p> <p align="justify">La sexta generación Intel Core, Skylake 14 nm. (<a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/desktop-6th-gen-core-family-datasheet-vol-1.pdf" target="_blank">parte 1</a>, <a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/desktop-6th-gen-core-family-datasheet-vol-2.pdf" target="_blank">parte 2</a>).</p></blockquote> <p align="justify">En la sección 4.3.2 del manual en PDF <a href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/3rd-gen-core-desktop-vol-1-datasheet.pdf" target="_blank"><strong><em>3rd-gen-core-desktop-vol-1-datasheet.pdf</em></strong></a><strong><em> </em></strong>se detallan los ajustes que nos interesan relativos a la gestión de energía de las controladoras de memoria del procesador y de los módulos DDR3.</p> <p align="center"><font size="2"></font><a href="http://lh3.googleusercontent.com/-5rzA7JGrA14/VlweLoJfXlI/AAAAAAAAHZc/z1dlcmClRhc/s1600-h/DRAM_Power_Management_and_Initializa.png"><img title="DRAM_Power_Management_and_Initialization_01" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="DRAM_Power_Management_and_Initialization_01" src="http://lh3.googleusercontent.com/-fz_iq5vfuXQ/VlweM9CUE9I/AAAAAAAAHZk/J_d7psaezto/DRAM_Power_Management_and_Initializa%25255B5%25255D.png?imgmax=800" width="644" height="426"></a><font color="#ffffff" size="2">DRAM Power Management and Initialization</font></p> <p>En síntesis, los ajustes posibles serían:</p> <blockquote> <p align="justify">Deshabilitar totalmente la gestión de energía para obtener las máximas prestaciones (opción 1 de la captura inferior).</p> <p align="justify">Buscar un compromiso óptimo entre prestaciones y consumo (APD – PPD, opción 5).</p> <p align="justify">Ir al máximo ahorro energético, menor consumo y disipación térmica (opción 4).</p></blockquote> <p align="center"><a href="http://lh3.googleusercontent.com/-4UZJ-LvuSBY/VlweNwu7VuI/AAAAAAAAHZs/hR2Mr1XeICs/s1600-h/DRAM_Power_Management_and_Initializa%25255B3%25255D.png"><img title="DRAM_Power_Management_and_Initialization_02" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="DRAM_Power_Management_and_Initialization_02" src="http://lh3.googleusercontent.com/-g-t8kAUTTwc/VlweOwu_pgI/AAAAAAAAHZ0/qGyZmbx4MJI/DRAM_Power_Management_and_Initializa%25255B2%25255D.png?imgmax=800" width="644" height="298"></a>DIMM Power Down modes.</p> <p align="justify">En todas las máquinas que diseño me decanto por el ajuste central, el punto 5, APD – PPD, el óptimo compromiso.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-whe4zOMSqxQ/VlwePuCLgoI/AAAAAAAAHZ8/6LCengYVGPU/s1600-h/DDR3_APD-PPD%25255B3%25255D.jpg"><img title="DDR3_APD-PPD" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="DDR3_APD-PPD" src="http://lh3.googleusercontent.com/-xQEsgpsigks/VlweQQtBzxI/AAAAAAAAHaE/5v9Kqg8FArU/DDR3_APD-PPD_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="484"></a>El modo APD – PPD ofrece el compromiso perfecto.</p> <p align="justify">En el caso que nos ocupa se consiguen ahorrar 6W de consumo en reposo (idle) y en uso normal (internet, compresión de datos, …) se mantiene en valores similares.</p> <p align="justify">Es importante configurar el siguiente ajuste:</p> <p align="center"><a href="http://lh3.googleusercontent.com/-7uuMXUiYt0s/VlweRcakp-I/AAAAAAAAHaM/ZgQiWb8oaUQ/s1600-h/DDR3_Fast_Exit%25255B3%25255D.jpg"><img title="DDR3_Fast_Exit" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="DDR3_Fast_Exit" src="http://lh3.googleusercontent.com/-fKUYzwH1zv4/VlweSKnpgjI/AAAAAAAAHaU/sw0Uh26WvAs/DDR3_Fast_Exit_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="484"></a>DDR DIMM Fast Exit Mode proporciona ahorro de energía con baja latencia de salida.</p> <p align="justify">Con el ajuste de ahorro de energía deshabilitado no se consigue más velocidad de proceso ni mejores tiempos de cálculo en coma flotante o compresión de datos… pese a lo que sea lógico pensar.</p> <p align="justify">Por ejemplo en WinRAR 5.21 x64, las velocidades y consumos son los siguientes:</p> <blockquote> <p align="justify">Ajuste APD – PPD. Consumo de 94 a 109W y velocidad máxima 10459 KB/s.</p> <p align="justify">Ajuste disabled. Consumo de 98 a 112 W y velocidad máxima 10467 KB/s.</p></blockquote> <p align="justify">Como podéis ver, no hay cambios significativos en la velocidad de compresión de datos y en cambio se ahorran 3 – 4 W en este test intensivo de memoria.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-TF3YG941eMQ/VlweS2rMuXI/AAAAAAAAHac/tZDExzZ2QBw/s1600-h/WinRAR%25255B3%25255D.jpg"><img title="WinRAR" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="WinRAR" src="http://lh3.googleusercontent.com/-jLVcQRxut5E/VlweT-wKrsI/AAAAAAAAHak/UnW63iuga8I/WinRAR_thumb%25255B1%25255D.jpg?imgmax=800" width="536" height="485"></a>WinRAR en modo APD – PPD.</p> <p align="justify">Como antes he señalado, en modo de reposo en el escritorio de Windows, se consiguen 6 W de bajada de consumo en el enchufe para un total de 48W (con 16 GB DDR3 2133 y el ajuste @ 4.4 GHz, SSD Samsung Evo 850 250 GB, disco duro 4 TB WD Caviar Black, tarjeta gráfica AMD 260X GCN 2 GB, tarjeta de sonido SB X-Fi y unidad óptica) desde los 54W con el ahorro de energía de la memoria DDR deshabilitado.</p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; widows: 1; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: #dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-65844298062261381822017-02-02T16:18:00.000+01:002017-02-02T16:18:44.260+01:00Memoria G.Skill DDR4 4133 – LowLevelHardware<p align="justify">G.Skill ha lanzado al mercado módulos DDR4 de 8 GB @ 4.133 GHz y 1.40 V para los procesadores Core i7 de sexta generación Skylake de 14 nm, los Core i7 6700K.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-aaJakQsfpQg/VlM6PFlQKKI/AAAAAAAAHWU/-5eum-ngUZg/s1600-h/Core_i7_6700K_4GHz%25255B3%25255D.png"><img title="Core_i7_6700K_4GHz" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Core_i7_6700K_4GHz" src="http://lh3.googleusercontent.com/-uk4aZ9ypTac/VlM6QUzWEJI/AAAAAAAAHWc/g4O7wvhEH1E/Core_i7_6700K_4GHz_thumb%25255B1%25255D.png?imgmax=800" width="412" height="386"></a>Core i7 Skylake 14 nm 6700K funcionando a 4.2 GHz.</p> <p align="justify">Los roadmap oficiales JEDEC para DDR4 ya apuntaban desde los inicios del standard a velocidades máximas nominales de 4.266 GHz, del mismo modo que en su día, al lanzar en sus inicios la DDR3 se habló de 1.6 GHz y posteriormente 2.133 GHz.</p> <p align="justify">A día de hoy, módulos de este tipo son de una utilidad limitada por sus pésimos timings, llevados al límite para lograr estabilidad a frecuencias superiores a los 4 GHz:</p> <p align="center"><a href="http://lh3.googleusercontent.com/-65t5F623PXc/VlM6RI33DJI/AAAAAAAAHWk/HhQMYIciTJk/s1600-h/GSkill_DDR4_4133_8GB_Timnings_640%25255B3%25255D.jpg"><img title="GSkill_DDR4_4133_8GB_Timnings_640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="GSkill_DDR4_4133_8GB_Timnings_640" src="http://lh3.googleusercontent.com/-yyy0gnBsgvo/VlM6Ruo9hVI/AAAAAAAAHWs/GO33jdpjISE/GSkill_DDR4_4133_8GB_Timnings_640_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="257"></a>Memory timings de G.Skill DDR4 4133.</p> <p align="justify">Como vemos a 3.6 GHz todavía conserva buenos timings de 16 16 16 36 2N pero al llegar a 3.866 GHz y 4.0 GHz se degradan mucho hasta los 18 22 22 42 2N y 19 21 21 41 2N respectivamente.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-F9MGhF3T55w/VlM6SfWIt1I/AAAAAAAAHW0/Z5A8b6nMmzw/s1600-h/GSkill_DDR4_4133_8GB_XMP%25255B3%25255D.png"><img title="GSkill_DDR4_4133_8GB_XMP" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="GSkill_DDR4_4133_8GB_XMP" src="http://lh3.googleusercontent.com/-TXOdolVCTe8/VlM6ToAL5pI/AAAAAAAAHW8/EXe39QZuPUk/GSkill_DDR4_4133_8GB_XMP_thumb%25255B1%25255D.png?imgmax=800" width="408" height="326"></a>Perfiles XMP del módulo 8 GB DDR4 G.Skill 4.133 GHz.</p> <p align="justify">Lo notable es el voltaje de solo 1.35 V, que no es elevado pensando en las altísimas frecuencias.</p> <p align="justify">En el ajuste de 4.133 GHz necesitan ya un voltaje de 1.40 V y empeoran las latencias hasta 19 25 25 45 2N… simplemente para “homologar” que llegan a esa frecuencia para un ancho de banda por canal de 33.064 GB/s (66.128 GB/s en dual channel).</p> <p align="center"><a href="http://lh3.googleusercontent.com/-IyC6hutzRuc/VlM6UMAGDUI/AAAAAAAAHXA/FXi_jwLQCds/s1600-h/GSkill_DDR4_4133_8GB_Timings%25255B3%25255D.png"><img title="GSkill_DDR4_4133_8GB_Timings" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="GSkill_DDR4_4133_8GB_Timings" src="http://lh3.googleusercontent.com/--qlYxiEdkeU/VlM6VHwTM0I/AAAAAAAAHXM/BtHYzRVt0H8/GSkill_DDR4_4133_8GB_Timings_thumb%25255B1%25255D.png?imgmax=800" width="410" height="297"></a>A 4.133 GHz se degradan en gran manera los timings.</p> <p align="justify">Seguramente yo me quedaría con el ajuste a 3.6 GHz a 16 16 16 36 2N @ 1.35 V en dual channel por su baja latencia. Este ajuste daría un ancho de banda de<font color="#ff0000"> 28.8 GB/s</font> por canal para un total de <font color="#ff0000">57.6 GB/s</font>, ¡¡simplemente brutal!!</p> <p><a href="https://lh3.googleusercontent.com/-RVDfQBQ0YKc/Vptq1iUq9_I/AAAAAAAAJ8M/CiSh8BxOUK4/s1600-h/GSkill_DDR4_4133_8GB_640%25255B3%25255D%25255B3%25255D.jpg"><img title="GSkill_DDR4_4133_8GB_640[3]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="GSkill_DDR4_4133_8GB_640[3]" src="https://lh3.googleusercontent.com/-0zsVgeiwqKQ/Vptq2YY4WeI/AAAAAAAAJ8U/DeA5tDylrAE/GSkill_DDR4_4133_8GB_640%25255B3%25255D_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="215"></a></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; widows: 1; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: " color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-74889712598557575682017-02-02T16:15:00.002+01:002017-02-02T16:15:52.992+01:00AMD Excavator 28 nm – LowLevelHardware<p align="justify">Ya a finales de 2015, AMD nos trae la cuarta y última iteración de su arquitectura <a href="http://lowlevelhardware.blogspot.com.es/2010/09/la-microarquitectura-de-amd-bulldozer.html" target="_blank">Bulldozer</a> inicialmente lanzada en el nodo 32 nm HKMG de Global Foundries.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-msFHdQyJr58/VhUj5dDZHkI/AAAAAAAAHAg/zf-Hh0VHFmI/s1600-h/Carrizo-cores4.jpg"><img title="Carrizo cores" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Carrizo cores" src="http://lh3.googleusercontent.com/-tuYuz-QwtmA/VhUj6YDDINI/AAAAAAAAHAo/v3uc1qcVxwU/Carrizo-cores_thumb1.jpg?imgmax=800" width="644" height="320"></a>Dos módulos AMD Excavator (cada uno con 2 INT cores) con 2 cachés L2 de 1MB.</p> <p align="justify">Tras eliminar numerosos bugs, activar unidades deshabilitadas en Bulldozer (generación 1) como la IDIV y reducir paulatinamente el consumo con <a href="http://lowlevelhardware.blogspot.com.es/2012/02/amd-piledriver-core-lowlevelhardware.html" target="_blank">Piledriver 32 nm</a> (generación 2) y <a href="http://lowlevelhardware.blogspot.com.es/2014/02/amd-steamroller-core-amd-kaveri-parte-2.html" target="_blank">Steamroller 28 nm</a> (generación 3) además de ir lentamente aumentando el IPC, llega Excavator 28 nm con mejoras incrementales en muchos aspectos y también alguna pequeña revolución.</p> <p align="justify"><font color="#ffff00" size="3">Excavator. los cambios más importantes respecto a las generaciones anteriores:</font></p> <ul> <li> <div align="justify">Reducción de la caché <font color="#ff0000">L2</font> de 2 MB a <font color="#ff0000">1 MB</font> por módulo con una importante reducción de área y mejorando la latencia. 2 MB L2 era demasiado para este tipo de cores fabricados en 28 nm, un mal compromiso área / prestaciones.</div></li></ul> <p align="center"><a href="http://lh3.googleusercontent.com/-Gjc_EqViozo/VhUj69sLdrI/AAAAAAAAHAw/TrC9kLzC5jE/s1600-h/CarrizoL1d_32KB_8v%2525C3%2525ADas%25255B4%25255D.jpg"><img title="CarrizoL1d_32KB_8vías" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="CarrizoL1d_32KB_8vías" src="http://lh3.googleusercontent.com/-yKBZU_N1Dt0/VhUj7mphRmI/AAAAAAAAHA4/Ku-tDr2Okgw/CarrizoL1d_32KB_8v%2525C3%2525ADas_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="339"></a>AMD Excavator L1d: 32 KB 8 vías.</p> <ul> <li> <div align="justify">Por fin se dobla el tamaño de la caché <font color="#ff0000">L1d</font> de 16 KB a <font color="#ff0000">32 KB</font> por INT core y su asociatividad aumenta hasta las <font color="#ff0000">8 vías</font>. Por fin AMD ha visto la luz en cuanto al diseño de la caché L1… 32 KB con 8 vías es un excelente diseño. Era una mejora muy necesaria.</div></li></ul> <p align="center"><img title="Kaveri 2 Clusters 2xL2" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="Kaveri 2 Clusters 2xL2" src="http://lh3.ggpht.com/-K-TZC6yq3VM/UwCoIYAtVHI/AAAAAAAAGXo/GTQ67mzSvxQ/Kaveri%2525202%252520Clusters%2525202xL2_thumb%25255B1%25255D.png?imgmax=800" width="644" height="264">Dos módulos AMD Steamroller (cada uno con 2 INT cores) con 2 cachés L2 de 2 MB.</p> <p align="justify">Desgraciadamente, AMD no puede fabricar actualmente en nodos de 20 / 22 nm ni en los nuevos nodos de 14 nm (como su rival Intel) con el fin de reducir el área de sus productos y con ello su coste de fabricación.</p> <p align="justify">Solución de los ingenieros de AMD: seguir en los 28 nm pero reduciendo el área (superficie) de sus chips implementando librerías de alta densidad procedentes del mundo del diseño de GPUs:</p> <p align="center"><a href="http://lh3.googleusercontent.com/-MoKCe9LF3rI/VhUqmHAgCzI/AAAAAAAAHBY/2yoX7EcF2d4/s1600-h/Librer%2525C3%2525ADaAltaDensidad640%25255B4%25255D.jpg"><img title="LibreríaAltaDensidad640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="LibreríaAltaDensidad640" src="http://lh3.googleusercontent.com/-U_8kZn98jfA/VhUqm1W8ZsI/AAAAAAAAHBg/a_1q-50XqM8/Librer%2525C3%2525ADaAltaDensidad640_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="580"></a>Con el uso de librerías de alta densidad AMD logra reducir el área de Excavator.</p> <p align="justify">Gracias a estas mejoras se cifra en un 30% la reducción de superficie.</p> <p align="justify">A todas estas nuevas técnicas se añaden las mejoras importantes que <a href="http://lowlevelhardware.blogspot.com.es/2014/02/amd-steamroller-core-amd-kaveri-parte-2.html" target="_blank">Steamroller 28 nm</a> ya introdujo respecto a sus antecesores de 32 nm, Piledriver y Bulldozer:</p> <ul> <li> <div align="justify">La <font color="#ff0000">L1i</font> compartida para los 2 INT cores aumentó a los <font color="#ff0000">96 KB</font> y una asociatividad de <font color="#ff0000">3 vías</font> (representó un gran avance sobre los 64 KB / 2 vías, aunque 3 vías sigue siendo poco, muy poco para dos threads). </div> <li> <div align="justify">El decoding doble por módulo, uno para cada INT core, un cambio que esta microarquitectura (Bulldozer) pedía a gritos…</div></li></ul> <p align="justify"><font color="#ffff00" size="3">Excavator y el segmento de 15 watt:</font></p> <p align="justify">Hay que tener claro que AMD busca reducir el consumo y disipación térmica de sus SOCs por todos los medios posibles y por ello ha optimizado críticamente Excavator y su primera implementación comercial, las APU Carrizo con 4 INT cores y 8 clústeres GCN 2 (Radeon R7).</p> <p align="justify">Por ello ha optimizado el conjunto de 4 INT cores + 8 clústeres GCN 2 + controladoras DDR3 y resto de circuitería para un TDP de 15 watt, que se extenderá fácilmente a los 35 watt.</p> <p align="center"><a href="http://lh3.googleusercontent.com/-ksSFOT0Gc0s/VhUj8pIUecI/AAAAAAAAHBA/daXnva-0GJY/s1600-h/Carrizo15_640%25255B4%25255D.jpg"><img title="Carrizo15_640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Carrizo15_640" src="http://lh3.googleusercontent.com/-Tioj_9E_dGU/VhUj9QdrXLI/AAAAAAAAHBI/5Fuwv8YubI4/Carrizo15_640_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="252"></a>AMD Excavator: excepcional rendimiento en 15 watt. Con 35 watt menor ventaja.</p> <p align="justify">Esto significa que cuanto mayor frecuencia le pidamos a Excavator, menor ventaja mostrará respecto a sus antecesores. No esperéis diseños de Carrizo de 100 watt a frecuencias de 4 GHz o más.</p> <p align="justify">Las frecuencias iniciales rondarán a 35 watt los 2.1 GHz con Turbo hasta 3.4 GHz con los cores gráficos a 800 MHz y soporte de DDR3 2133 en el modelo tope de gama, el FX-8800P.</p> <p><a href="http://lh3.googleusercontent.com/-xp2WOPPB7Ps/VhUqn6g1pDI/AAAAAAAAHBo/a14N5w3R6wY/s1600-h/Frecuencias640%25255B4%25255D.jpg"><img title="Frecuencias640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Frecuencias640" src="http://lh3.googleusercontent.com/-fE7CWdAI7YU/VhUqotlcb-I/AAAAAAAAHBw/18-dRUhUYGg/Frecuencias640_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="144"></a></p> <p>No está nada mal para 35 watt, un excelente resultado.</p> <p><font color="#ffff00" size="3">Conclusiones</font></p> <p align="justify">AMD prepara el desembargo de Zen 14 nm, seguro que no sin numerosos problemas. Recordemos que va a utilizar el nodo de 14 nm de Samsung (ya fabrica los <a href="http://zonaarm.blogspot.com.es/2012/02/el-panorama-actual-de-socs-zonaarm.html" target="_blank">SOCs</a> de los Galaxy S6 con esta tecnología) y no estará exento de dificultades el diseñar un chip tan complejo como Zen en un nodo y proceso de fabricación tan sumamente diferente de los actuales.</p> <p align="justify">El puente hacia Zen son los chips con cores Excavator y AMD ha demostrado que ve claras las necesidades del mercado con su enfoque en el segmento de los 15 watt.</p> <p align="justify">Excavator parece que dará mucha guerra en el segmento de los UltraBooks, será un chip muy equilibrado en TDPs de 15 a 35 watt, en este sentido, incluso creo que puede ser un gran rival respecto a los Core i5 de la serie U.<strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6"><br class="Apple-interchange-newline"></font></strong></p> <p align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: " color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com3tag:blogger.com,1999:blog-6644579903369065806.post-57853152073464056752017-02-02T16:15:00.001+01:002017-02-02T16:15:35.571+01:00AMD Steamroller core. AMD Kaveri. Parte 2 – LowLevelHardware<p align="justify">La primera implementación comercial de los cores Steamroller 28 nm es en las nuevas APU Kaveri, formadas por 2 clústers de 2 INT cores y una FPU y dos cachés L2 de 2 MB junto con la GPU integrada basada en la última generación de gráficas Radeon GCN 2.0.</p> <p align="center"><a href="http://lh6.ggpht.com/-5VcaGiFn1_s/UwCn1P8lT5I/AAAAAAAAGWw/y2Uj-CUXgHk/s1600-h/Kaveri28nm%25255B3%25255D.png"><img title="Kaveri28nm" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Kaveri28nm" src="http://lh3.ggpht.com/-qAqGOXN_9O4/UwCn4iQsZoI/AAAAAAAAGW4/j2sF5-jSYHo/Kaveri28nm_thumb%25255B1%25255D.png?imgmax=800" width="597" height="504"></a>Die de AMD Kaveri 28nm. En naranja la GPU Radeon R7.</p> <p align="justify"><font color="#ffff80" size="3">El proceso de fabricación de 28 nm SHP de Global Foundries</font></p> <p align="justify">AMD ha dado un paso decidido que marca una nueva etapa para la compañía: deja los procesos de fabricación orientados solamente a altísimas frecuencias (superiores a los 4 GHz) y opta por el contrario por procesos Bulk dirigidos a menor consumo, menor área con una penalización en frecuencia máxima.</p> <p align="justify">Es decir, un procesador fabricado en el nuevo nodo de 28 nm SHP presenta mayor densidad de transistores por mm2, menor coste de fabricación, menor consumo a una frecuencia dada (por ejemplo en el rango hasta los 4 GHz aprox.) a costa de frecuencias pico inferiores.</p> <p align="justify">A mi modo de ver una sabia y completamente acertada decisión, ya que, anteriormente, AMD no podía desplegar el potencial verdadero de frecuencia de la microarquitectura Bulldozer debido a su excesivo consumo al ir subiendo la frecuencia de funcionamiento con el necesario aumento exponencial de voltaje.</p> <p align="justify">Es de esperar por ello, que desde ahora AMD se dedique a integrar más funcionalidades en cada uno de sus chips (más cores, más potencia de GPU…) ya que tiene un nuevo margen de disipación térmica máxima o TDP.</p> <p align="justify"><font color="#ffff80" size="3">El core Steamroller</font></p> <p align="justify">EN la tercera iteración de la familia de cores 15h, microarquitectura Bulldozer para los amigos, AMD ha hecho cambios realmente importantes respecto a la primera y segunda generación.</p> <p align="center"><a href="http://lh6.ggpht.com/-rEk-CT6zLc0/UwCn57MSXQI/AAAAAAAAGXA/Kh_bGt6KASs/s1600-h/Steamroller%252520Compute%252520Unit%25255B3%25255D.png"><img title="Steamroller Compute Unit" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Steamroller Compute Unit" src="http://lh6.ggpht.com/-CbRlJuLX_e0/UwCn7IddMgI/AAAAAAAAGXI/sFArXslQMWQ/Steamroller%252520Compute%252520Unit_thumb%25255B1%25255D.png?imgmax=800" width="558" height="436"></a>Un cluster de arquitectura Steamroller: 2 INT cores, 1 FPU y 2 MB de L2.</p> <p align="center"><a href="http://lh6.ggpht.com/--BxQk8L5S9s/UwCn-0ja15I/AAAAAAAAGXQ/0BjyZc-WWDg/s1600-h/Steamroller%252520Cluster%252520640%25255B3%25255D.png"><img title="Steamroller Cluster 640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Steamroller Cluster 640" src="http://lh5.ggpht.com/-D-XaM4OQ-fw/UwCoC2uxNtI/AAAAAAAAGXY/FwB9E7ZRmGQ/Steamroller%252520Cluster%252520640_thumb%25255B1%25255D.png?imgmax=800" width="644" height="510"></a>Fotografía de un clúster Steamroller perteneciente a un die AMD Kaveri 28nm.</p> <p align="justify">EN AMD Kaveri se integran dos Clústers completos para un total de 4 INT cores:</p> <p align="center"><a href="http://lh6.ggpht.com/-C-KRwbKf90k/UwCoFvwrkBI/AAAAAAAAGXg/CHMtYhVJYE4/s1600-h/Kaveri%2525202%252520Clusters%2525202xL2%25255B3%25255D.png"><img title="Kaveri 2 Clusters 2xL2" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Kaveri 2 Clusters 2xL2" src="http://lh3.ggpht.com/-K-TZC6yq3VM/UwCoIYAtVHI/AAAAAAAAGXo/GTQ67mzSvxQ/Kaveri%2525202%252520Clusters%2525202xL2_thumb%25255B1%25255D.png?imgmax=800" width="644" height="264"></a>AMD Kaveri: Dos clústers Steamroller 28nm con sus cachés L2 enfrentadas.</p> <p align="justify">En el siguiente artículo me centraré en las mejoras, muy extensas, introducidas por AMD en Steamroller.</p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: " color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com10tag:blogger.com,1999:blog-6644579903369065806.post-73854675777125025682017-02-02T16:15:00.000+01:002017-02-02T16:15:20.341+01:00AMD Steamroller. Introducción. – LowLevelHardware<p align="justify">El 14 de Enero AMD sacó al mercado su tercera iteración de la micro arquitectura Bulldozer en la forma de la APU Kaveri fabricada por Global Foundries es el nodo Bulk SHP (Super High Performance) de 28 nm. En este caso se trata de una implementación de dos módulos con dos INT cores y una FPU compartida junto con una excelente GPU GCN 1.1 de 512 SPs.</p> <p align="justify"><a href="http://lh3.ggpht.com/-KkH_6vwiYP8/Uvfh60sQffI/AAAAAAAAGWI/hSnktF_27Go/s1600-h/excavator%25255B4%25255D.png"><img title="excavator" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="excavator" src="http://lh3.ggpht.com/-1T7jE_V346M/Uvfh73DoZII/AAAAAAAAGWQ/e9CMfUPkCqE/excavator_thumb%25255B2%25255D.png?imgmax=800" width="516" height="352"></a></p> <p align="justify"><font color="#ffff80" size="3">La micro arquitectura AMD Bulldozer</font></p> <p align="justify">Primero fue Bulldozer 32 nm HKMG, después Piledriver 32 nm HKMG y ahora Steamroller 28 nm Bulk SHP. Posteriormente, 2015, está previsto Excavator, la evolución final y que pondrá término a esta micro arquitectura. Después preveo que AMD, por fin, se centrará en diseñar cores de alto IPC y menor consumo para competir con mayor igualdad con los cores contemporáneos de Intel.</p> <p align="justify">Como muchas veces ha sucedido con los diseños de AMD, en su primera versión.</p> <p align="justify">En este caso <strong>Bulldozer</strong> 32 nm HKMG (AMD FX 8150) las prestaciones, consumo y disipación térmica no fueron las esperadas.</p> <p align="justify"><strong>Piledriver</strong> 32 nm HKMG (AMD FX 8350) alivió ligeramente los problemas de consumo y mejoró las prestaciones.</p> <p align="justify">Con <strong>Steamroller </strong>AMD plantea un cambio mucho más profundo:</p> <ul> <li> <div align="justify">Una evolución de la micro arquitectura mayor que en el caso de Bulldozer a Piledriver, con claras mejoras en algunos campos y otros cambios no tan claros en otros aspectos.</div> <li> <div align="justify">Un nuevo nodo de fabricación: del ya antiguo nodo premium HKMG 32 nm de Global Foundries utilizado en Bulldozer y Piledriver se pasa al nodo de 28 nm Bulk SHP, más orientado a menor consumo y mayor densidad (más transistores por mm2), es decir menor coste por chip y menor TDP, es decir, mayor performance per watt.</div></li></ul> <p align="justify"><a href="http://lh5.ggpht.com/-nvPTNgYD2UQ/Uvfh8jjTsnI/AAAAAAAAGWY/JBlOcbDwBIw/s1600-h/module-block%25255B3%25255D.gif"><img title="module-block" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="module-block" src="http://lh6.ggpht.com/-nM4GjrEWfbI/Uvfh9JLaCQI/AAAAAAAAGWg/seW3ZMUIJqA/module-block_thumb%25255B1%25255D.gif?imgmax=800" width="516" height="431"></a></p> <p align="justify">En la segunda parte de esta serie de artículos detallaré las mejoras implementadas en Steamroller por AMD y lo que significan de cara a sus encarnaciones presentes:</p> <p align="justify">La APU Kaveri y los futuros chips FX Steamroller de alto rendimiento del que parece que están preparando una versión con 8 módulos y 16 INT cores con controladoras PCIex 3.0 integradas en el die del chip (lo que permitiría deshacerse del North Bridge del chipset) que probablemente funcionará a frecuencias conservadoras en carga full threaded aunque con agresivos modos Turbo.</p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: #dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com2tag:blogger.com,1999:blog-6644579903369065806.post-6063189435751492082017-02-02T16:14:00.001+01:002017-02-02T16:14:30.851+01:00Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware<p align="justify">En un <a href="http://professionalsat.blogspot.com.es/2013/06/intel-atom-silvermont-22-nm.html" target="_blank">artículo de ProfessionalSAT</a> he hecho una introducción al nuevo procesador Atom Silvermont de 22 nm de Intel. Recomiendo la lectura de ese texto para estar familiarizado con algunos de los conceptos que son utilizados en el presente.</p> <p align="justify">El mayor cambio en Silvermont respecto a los <a href="http://lowlevelhardware.blogspot.com.es/2008/04/intel-atom-el-ultraportable.html" target="_blank">anteriores cores de la familia Atom</a> es el cambio al procesamiento Out of Order (OoO) desde el primitivo concepto de ejecución In Order.</p> <p align="justify">Ahora voy a describir, paso a paso, el pipeline de ejecución de Silvermont y las mejoras que aporta respecto a los antiguos cores (<a href="http://lowlevelhardware.blogspot.com.es/2008/04/intel-atom-el-ultraportable.html" target="_blank">Bonnell 45 nm</a>, Saltwell 32 nm).</p> <p align="justify"><font color="#ffff80" size="3">Mejoras en las etapas de Fetch</font></p> <p align="justify">Las etapas de fetching o carga de instrucciones son las primeras del pipeline de ejecución de cualquier procesador.</p> <p align="justify">En Silvermont se ha llevado a cabo un rediseño profundo encaminado a alimentar adecuadamente de instrucciones a la nueva maquinaria de procesamiento out of Order.</p> <p align="center"><a href="http://lh5.ggpht.com/-Q0L0yutzvOE/UbYYYOTiK1I/AAAAAAAAF1E/oN9eqmdEzI4/s1600-h/Silvertmont_Fetch8.png"><img title="Silvertmont_Fetch" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Silvertmont_Fetch" src="http://lh3.ggpht.com/-tNss5iCpLf8/UbYYZNOMfpI/AAAAAAAAF1M/Lyek_eJBGJA/Silvertmont_Fetch_thumb4.png?imgmax=800" width="547" height="294"></a>Fetch en Atom Silvermont 22 nm.</p> <p align="justify">La predicción de saltos o Branch Prediction ha sido totalmente reconstruida de un modo distinto a los antiguos Atom. Se ha dividido en dos componentes independientes que actúan cada uno por separado y están situados en diferentes etapas del pipeline de procesamiento.</p> <p align="justify">El primer componente es el Predictor de Fetching (<strong><font color="#ffff80">Fetch Predictor</font></strong>). Es un Branch Target Buffer, un predictor de baja latencia y con una precisión elevada pero no extrema.</p> <p align="justify">La unidad de Fetching carga cada ciclo 16 bytes de instrucciones desde la caché L1i con ayuda del <a href="http://lowlevelhardware.blogspot.com.es/2008/05/el-tlb-secreto-de-amd-parte-i.html" target="_blank">L1 iTLB</a> en los 6 Prefecth Buffers. Estos buffers aíslan las etapas de fetch de las posteriores etapas de decodificación X86 y así puede adelantarse a estas en el stream de instrucciones.</p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-68876731925633032592017-02-02T16:14:00.000+01:002017-02-02T16:14:13.759+01:00Electromigración en microprocesadores – LowLevelHardware<p align="justify">Todos los componentes, tanto los mecánicos como los electrónicos, están sometidos a un desgaste por el uso y en este grupo incluyo a los microprocesadores, cachés y chips de memoria DRAM y Flash.</p> <p align="center"><a href="http://lh3.ggpht.com/-F9f7IbhDyPk/T31l3B4J3EI/AAAAAAAAFYk/RsBxBIzYHz8/s1600-h/Bild5%25255B3%25255D.png"><img title="Bild5" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Bild5" src="http://lh3.ggpht.com/-ar8r2LX9APA/T31l4zmW_YI/AAAAAAAAFYs/O6lO-1wJ4rU/Bild5_thumb%25255B1%25255D.png?imgmax=800" width="644" height="361"></a>Microfotografía: creación de un cruce entre dos conductores por electromigración.</p> <p align="justify">En un nuevo artículo en ProfessionalSAT profundizo en la relación temperatura – degradación física de semiconductores:</p> <h5 align="center"><a href="http://professionalsat.blogspot.com.es/2013/11/ritmo-de-degradacion-fisica-en.html" target="_blank"><font size="3">Temperatura y degradación física en semiconductores –ProfessionalSAT</font></a></h5> <p align="justify">Recientemente <a href="http://professionalsat.blogspot.com.es/2012/04/degradacion-fisica-de-la-memoria-ddr3.html" target="_blank">he sufrido personalmente los efectos de la electromigrac</a>ión en varios de mis sistemas junto con otros de mis clientes, todos ellos de una antigüedad similar. En este caso, la degradación y posterior avería se ha producido en la memoria DDR3 de algunos de mis <a href="http://professionalsat.blogspot.com.es/2009/05/sistemas-de-altas-prestaciones_11.html" target="_blank">Sistemas de Altas Prestaciones</a> basados en CPUs Core i7 de la serie 900.</p> <p align="justify">Por ejemplo, un disco duro se degrada día a día durante su utilización normal y conforme pasan los meses podemos seguir la variación de sus parámetros de funcionamiento mediante la tecnología SMART que nos informa crípticamente del estado de salud del dispositivo. (Prometo un artículo sobre SMART <em>cuando tenga tiempo…</em>)</p> <p align="justify"><font color="#ffff80" size="3">Electromigración</font></p> <p align="justify">En dispositivos altamente miniaturizados como una CPU / GPU o un chip DRAM DDR3 o GDDR5 (memoria actual de las GPUs) se da una degradación constante de sus características eléctricas. <strong>La electromigración es el proceso causante de la mayoría de fallos en este tipo de dispositivos</strong>.</p> <p align="justify"><a href="http://lh4.ggpht.com/-gXf15-HFi90/T31l51l7lhI/AAAAAAAAFY0/EUu5KWi4exQ/s1600-h/1153426521%25255B3%25255D.jpg"><img title="1153426521" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="1153426521" src="http://lh5.ggpht.com/-2CAr5GUUcGo/T31l65p855I/AAAAAAAAFY8/CnLLAdUsYg4/1153426521_thumb%25255B1%25255D.jpg?imgmax=800" width="460" height="295"></a></p> <p align="justify">La electromigración consiste en el arrastre y transporte de los átomos metálicos del conductor por el constante flujo de alta intensidad de electrones que lo atraviesa.</p> <p align="justify">Se da una transferencia de momento (cantidad de movimiento) del electrón al núcleo metálico (literalmente lo golpean mayoritariamente en una dirección y sentido) y el núcleo va avanzando paso a paso en el sentido de la corriente creando dos tipos de anomalías:</p> <p align="justify"><font color="#ffff00"><strong>Huecos:</strong></font> hay zonas que literalmente se vacían de metal, incrementando la resistencia del conductor y eventualmente provocando un fallo total del dispositivo por corte de corriente.</p> <blockquote> <p align="center"><a href="http://lh5.ggpht.com/-w-NoYLAg-EQ/T31l76gQy0I/AAAAAAAAFZE/URkrralKCy8/s1600-h/Void_formation%25255B3%25255D.jpg"><img title="Void_formation" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Void_formation" src="http://lh6.ggpht.com/-QcwmQzkRXb4/T31l87z95NI/AAAAAAAAFZM/2T6hEJiAcmo/Void_formation_thumb%25255B1%25255D.jpg?imgmax=800" width="450" height="352"></a>Formación de huecos por electromigración.</p> <p align="center"><a href="http://lh3.ggpht.com/-JixE6pEIo50/T31l-dsEq_I/AAAAAAAAFZQ/i8K2sVglr1I/s1600-h/576804216%25255B3%25255D.jpg"><img title="576804216" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="576804216" src="http://lh4.ggpht.com/-dGx9l30u5pI/T31l_TiVSwI/AAAAAAAAFZc/xkfOiGaf15Q/576804216_thumb%25255B1%25255D.jpg?imgmax=800" width="460" height="320"></a>Este hueco ha causado un fallo total en el dispositivo al interrumpir la corriente.</p></blockquote> <p align="justify"><font color="#ffff00"><strong>Acumulaciones:</strong></font> en otras zonas, el material metálico se agrega y crea áreas de mayor contenido metálico, se incrementa la sección del conductor y puede llegar a crear puentes de conducción con líneas adyacentes llevando también al fallo del dispositivo.</p> <blockquote> <p align="center"><a href="http://lh6.ggpht.com/-fsGnFHvSqM8/T31mBLtIk0I/AAAAAAAAFZk/hbY-HVkKxrY/s1600-h/atwu-2%25255B3%25255D.jpg"><img title="atwu-2" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="atwu-2" src="http://lh3.ggpht.com/-eDTiczzj1gE/T31mCyjmP6I/AAAAAAAAFZs/-ebLWEY09AM/atwu-2_thumb%25255B1%25255D.jpg?imgmax=800" width="377" height="368"></a>Puente metálico entre dos conductores creando un corto circuito.</p></blockquote> <p align="justify">En casos extremos la creación de acumulaciones puede llegar a fracturar el aislante y crear corto circuitos con zonas vecinas.</p> <p align="justify"><font color="#ffff80" size="3">Factores que influyen en el proceso de electromigración</font></p> <p align="justify">Favorecen la electromigración:</p> <blockquote> <p align="justify"><font color="#ffff00"><strong>Las altas temperaturas.</strong></font> Se produce un incremento en la resistencia eléctrica del conductor metálico y aumentan las vibraciones atómicas de los núcleos metálicos.</p> <p align="center">Consultar: <a href="http://professionalsat.blogspot.com.es/2013/11/ritmo-de-degradacion-fisica-en.html" target="_blank"><font size="2">Temperatura y degradación física en semiconductores –ProfessionalSAT</font></a></p> <p align="justify"><strong><font color="#ffff00">Las corrientes elevadas</font></strong> (altas intensidades). A mayor flujo electrónico, mayor transferencia de momento de los electrones a los átomos metálicos de cobre o aluminio.</p> <p align="justify"><font color="#ffff00"><strong>La poca sección de los conductores.</strong></font> A menor sección mayor densidad de corriente y más electromigración. En microprocesadores contemporáneos, de 32 nm (o 28 y 22nm), está claro que este factor es importante.</p></blockquote> <p align="justify"><font color="#ffff80" size="3">Minimizar los efectos de la electromigración</font></p> <p align="justify">Está claro que debemos hacer lo posible para eludir los catastróficos efectos de la electromigración:</p> <p align="justify"><img title="PIC03263" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="PIC03263" src="http://lh6.ggpht.com/__p96Ony2voA/SqVRDX2bziI/AAAAAAAAD-k/w-5tmOnBApQ/PIC03263_thumb%5B1%5D.jpg?imgmax=800" width="634" height="485"></p> <p align="justify">Debemos reducir la temperatura de funcionamiento de nuestros procesadores y memorias DRAM al mínimo posible:</p> <blockquote> <p align="justify">Mediante el uso de los mejores sistemas de refrigeración disponibles.</p> <p align="justify">El uso de una pasta térmica adecuada a la superficie del radiador de CPU (según la rugosidad de la base).</p></blockquote> <p align="justify"><a href="http://professionalsat.blogspot.com.es/2011/06/amd-6990-crossfirex-dinamica-de-fluidos.html" target="_blank"><img title="DSCF2366" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="DSCF2366" src="http://lh4.ggpht.com/-zGIlf6veH0k/TfX6PQ5pRFI/AAAAAAAAFC8/KAqoLLoPSqM/DSCF2366_thumb1.jpg?imgmax=800" width="644" height="484"></a>Un detallado estudio del flujo de aire es necesario en <a href="http://professionalsat.blogspot.com.es/2011/06/amd-6990-crossfirex-dinamica-de-fluidos.html" target="_blank">ciertos sistemas</a>.</p> <blockquote> <p align="justify">Y el exhaustivo estudio de la circulación del aire en la torre y la <a href="http://professionalsat.blogspot.com.es/2011/06/amd-6990-crossfirex-dinamica-de-fluidos.html" target="_blank">optimización de las presiones y flujos de aire.</a></p></blockquote> <p align="center"><img title="PIC03259" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="PIC03259" src="http://lh3.ggpht.com/__p96Ony2voA/SqVRBuU3gBI/AAAAAAAAD-c/5JyGLoYb0Mc/PIC03259_thumb%5B1%5D.jpg?imgmax=800" width="634" height="476">Uno de mis <a href="http://professionalsat.blogspot.com.es/2009/09/core-i7-42-ghz-algoritmos-de_07.html" target="_blank">Sistemas de Altas Prestaciones</a> con 6 DIMM DDR3 refrigerados por dos Noctua.</p> <p align="justify">En el caso de los módulos DIMM de memoria DRAM DDR3 o la memoria GDDR5 presente en las GPUs actuales, lo único que podemos hacer es garantizar sobre ellas el mayor flujo de aire posible y a una temperatura adecuada. (<a href="http://professionalsat.blogspot.com.es/2009/09/core-i7-42-ghz-algoritmos-de_07.html" target="_blank">Fotografía superior</a>).</p> <p align="center"><a href="http://lh4.ggpht.com/-AkA_3bmZuRU/T31mD90_HRI/AAAAAAAAFZw/i3sCvfCSYxY/s1600-h/EM%25255B3%25255D.jpg"><img title="EM" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="EM" src="http://lh5.ggpht.com/-3jUocN0RKOU/T31mE1tsM0I/AAAAAAAAFZ8/4L-H2R4vixY/EM_thumb%25255B1%25255D.jpg?imgmax=800" width="445" height="398"></a>Daños en un conductor por electromigración.</p> <p align="justify">Es importante mantener el voltaje de alimentación del dispositivo en el mínimo posible que garantice la estabilidad del sistema y la exactitud total en nuestros cálculos o procesos.</p> <p align="justify">A ser posible es recomendable escoger manualmente los procesadores y los módulos de memoria (hand picking) seleccionando los que posean las mejores características eléctricas (menor voltaje de funcionamiento a la frecuencia deseada u objetivo).</p> <p align="center"><a href="http://lh4.ggpht.com/-hZ-eC55HHSE/T31mFwLLoRI/AAAAAAAAFaE/5xIoEMrMUDQ/s1600-h/EM1%25255B3%25255D.jpg"><img title="EM1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="EM1" src="http://lh6.ggpht.com/-6ujojVOSae8/T31mJAlUseI/AAAAAAAAFaM/dbyjjhGz6ZQ/EM1_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="324"></a>Proceso de electromigración, creación de un hueco.</p> <p align="justify">En mis Sistemas de Altas Prestaciones sigo todas estas directrices a rajatabla y aún así no me he librado de los efectos de la electromigración como podéis observar en <a href="http://professionalsat.blogspot.com.es/2012/04/degradacion-fisica-de-la-memoria-ddr3.html" target="_blank">mi artículo de ProfessionalSAT</a>.</p> <p align="justify">Echad un vistazo a la web de mi nueva empresa, un proyecto de gran envergadura que llevo preparando hace más de un año.</p> <p align="justify">Os lo recomiendo para<strong><em> </em></strong><a href="https://www.informaticapremium.com" target="_blank"><strong><em>diseño de sistemas de altas prestaciones</em></strong></a> con exquisito cuidado en las temperaturas de los componentes y siempre con los menores voltajes posibles para garantizar la mejor durabilidad y rendimiento:</p> <p align="justify"><a href="https://www.informaticapremium.com" target="_blank"><img title="ip16_texto_300px_blanco[4][2][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="ip16_texto_300px_blanco[4][2][2][2]" src="https://lh3.googleusercontent.com/-XXdVRT7JlF0/WAY4lT7m1yI/AAAAAAAAKsk/B-Zpy8Ac_qg/ip16_texto_300px_blanco%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="304" height="304"></a></p> <p align="justify">Allí tenéis a vuestra disposición el formulario de contacto, para consultas sobre este artículo hacedlo más abajo en la sección de comentarios.</p> <p align="justify">Y mi nuevo Blog de contenido muy técnico y actualizado donde encontraréis artículos míos sobre hardware, procesadores y sistemas y también otros posts de expertos programadores e informáticos sobre otros temas de actualidad:</p> <p align="justify"><a href="https://www.informaticapremium.com/blog/" target="_blank"><img title="infromaticapremium-blog[4][2][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="infromaticapremium-blog[4][2][2][2]" src="https://lh3.googleusercontent.com/-MGJeXXh0j_o/WAY4oBGgP7I/AAAAAAAAKso/R9Z-oaLMRYI/infromaticapremium-blog%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="381" height="311"></a></p> <p align="justify"> <h5 align="center"><a href="http://professionalsat.blogspot.com.es/2013/11/ritmo-de-degradacion-fisica-en.html" target="_blank"><font size="3"></font></a></h5><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="justify"><strong><font color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com33tag:blogger.com,1999:blog-6644579903369065806.post-71050218998768887222017-02-02T16:13:00.001+01:002017-02-02T16:13:51.626+01:00nVidia Kepler 28 nm – LowLevelHardware<p align="justify">Por fin ha llegado la nueva serie 600 de nVidia, su primer integrante es la GTX680 fabricada en el nodo de 28 nm en TSMC. En este conciso artículo esbozaré los importantes cambios arquitecturales respecto a la anterior generación 500 Fermi de 40 nm y la motivación tras ellos.</p> <p align="center"><a href="http://lh3.ggpht.com/--tHsxbENvkk/T3NDRkgZu3I/AAAAAAAAFVs/mLMKXA8OY7k/s1600-h/Kepler_28nm_GTX6803.jpg"><img title="Kepler_28nm_GTX680" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Kepler_28nm_GTX680" src="http://lh6.ggpht.com/-CCk55mAbEM0/T3NDSlucWqI/AAAAAAAAFV0/-eaGEOWwqjk/Kepler_28nm_GTX680_thumb1.jpg?imgmax=800" width="644" height="593"></a>El die del procesador gráfico Kepler.</p> <p align="justify">El nuevo proceso de fabricación de 28 nm ha proporcionado grandes avances para la industria de semiconductores después de los terribles problemas y largos retrasos de TSMC en el nodo de 40 nm.</p> <p align="justify"><font color="#ffff80" size="3">Cambios de micro arquitectura en Kepler</font></p> <p align="justify">nVidia deseaba para Kepler un masivo incremento en prestaciones gráficas, de hecho, en cada punto del diseño se aprecia un decidido énfasis en el aspecto gráfico dejando claramente descuidada la parte GPGPU.</p> <p align="justify"><a href="http://lh4.ggpht.com/-_e9NZKg45hc/T3NDTUE3JaI/AAAAAAAAFV8/NBbvjl7LYbg/s1600-h/Kepler01%25255B3%25255D.png"><img title="Kepler01" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Kepler01" src="http://lh5.ggpht.com/-CBdZe8YwGxg/T3NDT54uEvI/AAAAAAAAFWE/SbLWVfUWz9Q/Kepler01_thumb%25255B1%25255D.png?imgmax=800" width="337" height="124"></a></p> <p align="justify">Se ha conseguido un aumento notable de la densidad de transistores y con ello una apreciable reducción de la superficie del chip: nVidia ha integrado 3500 millones de transistores en tan solo 294 mm2. Recordad que Fermi (GTX 580) era un chip de más de 500 mm2, muy caro de producir.</p> <p align="justify">La GTX680 es un avance significativo para nVidia en el aspecto gráfico, integra 1536 SPs (stream processors), un aumento espectacular (3X) desde los 512 SPs de la GTX580 Fermi.</p> <p align="justify">Todo ha sido posible por el abandono del shader clock, que era el doble de la frecuencia principal y aumentaba mucho el consumo del chip y hacía necesario el uso de transistores especiales para los SPs ya que funcionaban sobre los 1.5 GHz.</p> <p align="justify"><a href="http://lh3.ggpht.com/-lgFNS4POzIE/T3NDUbR6_4I/AAAAAAAAFWM/50JNqoV9ZCs/s1600-h/Kepler02%25255B3%25255D.png"><img title="Kepler02" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Kepler02" src="http://lh3.ggpht.com/-vyvJetCx7ZE/T3NDU7zkIhI/AAAAAAAAFWU/V8-7fLU6dzI/Kepler02_thumb%25255B1%25255D.png?imgmax=800" width="336" height="239"></a></p> <p align="justify">Sin duda en unos meses nVidia sacará a la luz otra revisión de Kepler, probablemente sobre los 500 - 600 mm2, enfocada a proceso general para sus líneas de computación Tesla y Quadro y para la gama más alta de sobremesa.</p> <p align="justify">Será el llamado Big Kepler y conllevará un aumento en el ancho del bus GDDR5 a 384 o incluso 512 bits y sobretodo un incremento notable en la tasa de cálculo FP64 (que en Kepler ha sido reducida al 33% de la de Fermi por SP).</p> <p align="justify">Además Kepler integra un modo “Turbo” llamado Boost Clock. Si la disipación térmica y la temperatura lo permiten, Kepler aumenta su frecuencia desde la nominal hasta alrededor de los 1150 MHz, según las cargas de trabajo.</p> <p align="justify"><font color="#ffff80" size="3">El SMX, sustituto del SM</font></p> <p align="justify">En Kepler nVidia llama SMX a la unidad funcional principal del diseño, en el SMX reside todo el poder de cálculo del chip.</p> <p align="justify">El SMX es el heredero del SM de las GTX 480 y GTX 580. nVidia ha duplicado los recursos de cada SM para producir un SMX.</p> <p align="justify"><a href="http://lh5.ggpht.com/-CbU169sFD0I/T3NDVsjLCbI/AAAAAAAAFWc/XtiSXnj0XmI/s1600-h/Kepler04%25255B3%25255D.jpg"><img title="Kepler04" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Kepler04" src="http://lh3.ggpht.com/-K0HTcxMmEMo/T3NDW73sCpI/AAAAAAAAFWk/Kd8gxxSw-fs/Kepler04_thumb%25255B1%25255D.jpg?imgmax=800" width="592" height="1012"></a></p> <p align="justify">En un SMX reside un gran número de unidades de todo tipo:</p> <blockquote> <p align="justify">Desde la segunda revisión del <font color="#ffff00">PolyMorph engine</font> (con un throughput doble respecto a la generación anterior),</p> <p align="justify">Pasando por la <font color="#ffff00">caché de instrucciones,</font></p> <p align="justify">Los 4 <font color="#ffff00">Warp Schedulers</font>,</p> <p align="justify">8 unidades <font color="#ffff00">Dispatch</font> (Dispatch Units),</p> <p align="justify">El <font color="#ffff00">Register File</font> (RF) duplicado a 64K entradas de 32 bit,</p> <p align="justify">192 <font color="#ffff00">CUDA Cores</font> (SPs),</p> <p align="justify">32 unidades <font color="#ffff00">Load Store</font> (LSUs)</p> <p align="justify">16 <font color="#ffff00">SFUs</font> para interpolación,</p> <p align="justify">16 <font color="#ffff00">SFUs</font> para funciones especiales,</p> <p align="justify">16 <font color="#ffff00">TUs</font> (unidades de textura),</p> <p align="justify">Por último 8<font color="#ffff00"> CUDA FP</font>64 cores.</p></blockquote> <p align="justify"><font color="#ffff80" size="3">Kepler GTX 680</font></p> <p align="justify">En esta implementación nVidia integra lo siguiente:</p> <p align="justify"><a href="http://lh4.ggpht.com/-GpZV8Q0Q4FA/T3NDXw25PjI/AAAAAAAAFWs/NZP9OyBnYYU/s1600-h/Kepler03%25255B3%25255D.jpg"><img title="Kepler03" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Kepler03" src="http://lh4.ggpht.com/-MlCfAgD_rbo/T3NDYp3CVPI/AAAAAAAAFW0/fb9yucM_2hQ/Kepler03_thumb%25255B1%25255D.jpg?imgmax=800" width="579" height="376"></a></p> <p align="justify">4 GPCs que integran cada uno 2 SMX junto con un Raster Engine encargado de la rasterización.</p> <p align="justify"><a href="http://lh5.ggpht.com/-A-Dq-cIzk4Y/T3NDZpOHYPI/AAAAAAAAFW8/sJnvvU100bo/s1600-h/Kepler05%25255B3%25255D.jpg"><img title="Kepler05" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Kepler05" src="http://lh4.ggpht.com/-6w7zxyET1s8/T3NDa7GNlRI/AAAAAAAAFXE/eQ_CTcQCyss/Kepler05_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="740"></a></p> <p align="justify">También integra la caché L2 y las cuatro controladoras GDDR5 de 64 bit a 6 GHz.</p> <p align="justify">En Kepler nVidia ha decidido simplificar absolutamente sus schedulers respecto a los de Fermi. En Fermi se realizaba scheduling por hardware dinámicamente, en cambio en Kepler nVidia ha movido el scheduling al driver gráfico, es decir, se ejecuta por software en tiempo real en el procesador.</p> <p align="justify">Este hecho ha permitido, por un lado reducir mucho la complejidad del diseño y por otro reducir el consumo, disipación térmica y el área del chip.</p> <p align="justify"><font color="#ffff80" size="3">GPU Boost</font></p> <p align="justify">Podemos decir que en esta primera implementación “limitada” de GPU Boost su efecto es limitado, nVidia lo cifra en un 5% de incremento de velocidad en juegos (FPS).</p> <p align="justify">Mientras haya margen de consumo y temperatura disponible, Kepler puede aumentar su frecuencia hasta los 1150 MHz en pico (sobre un 15 %). Siempre dependiendo de la carga de trabajo.</p> <p align="justify">La frecuencia media en modo Boost llega a los 1058 MHz y se incrementa desde los 1006 MHz en escalones de 13 MHz. En la práctica es crítico mantener bajas temperaturas para que GPU Boost sea efectivo, a temperaturas >70ºC la GPU se ve obligada a ir reduciendo paulatinamente la frecuencia y el voltaje para “evitar sustos”.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones</font></p> <p align="justify">Kepler (GTX 680) es más rápido en juegos (en general) que AMD GCN (HD7900). AMD ha diseñado una arquitectura de carácter general, excelente en computación FP (GPGPU, OpenCL) y muy buena en proceso gráfico (juegos).</p> <p align="justify">Por su parte nVidia ha optado por poner énfasis en la parte gráfica y ha diseñado Kepler para el<em><strong> gamer</strong></em> que nunca o raramente usará OpenCL o programas de coproceso GPGPU.</p> <p align="justify">Hoy por hoy Kepler es más eficiente que AMD GCN en juegos y es la elección óptima para este uso. En proceso general – computación GPU, en cambio, AMD GCN es infinitamente superior.</p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="justify"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="justify"><strong><font color="#dfce04">Si tenéis dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima celeridad y claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com11tag:blogger.com,1999:blog-6644579903369065806.post-26544439436639261262017-02-02T16:13:00.000+01:002017-02-02T16:13:32.339+01:00AMD Piledriver core. Actualizado 04/03/2012 – LowLevelHardware<p align="justify"><img hspace="20" alt="Chip" vspace="20" src="http://www.cyclos-semi.com/images/ghost_chip.jpg" width="200" align="left" height="153"></p> <p align="justify">En este artículo voy a describir alguna de las mejoras micro arquitecturales implementadas por AMD en la primera evolución de la arquitectura Bulldozer que próximamente verá la luz en los APU Trinity 32 nm.</p> <p align="justify">Al final del artículo comento la adopción de AMD para Piledriver de la nueva tecnología <strong><font color="#ffff80">RCM (Resonant Clock Mesh)</font></strong> de distribución de señal de reloj de Cylos Semiconductor.</p> <p align="justify">He modificado totalmente la sección de conclusiones con los cambios que considero necesarios a esta micro arquitectura para que algún día despliegue toda su potencia oculta. La arquitectura Bulldozer es capaz de mucho más.</p> <p align="justify">Por cierto, echad un vistazo a los<strong><font color="#ffff00"> comentarios</font></strong> de este artículo, pues hay información muy interesante y respuestas a algunas preguntas comunes.</p> <p align="center"><a href="http://lh3.ggpht.com/-pK2vzq1BqyY/T1MoIpIBb1I/AAAAAAAAFUY/brFqFJjpxSA/s1600-h/Piledriver_core%25255B7%25255D.jpg"><img title="Piledriver_core" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Piledriver_core" src="http://lh6.ggpht.com/-oHuLilfjzdA/T1MoKIR2LHI/AAAAAAAAFUg/vee7uNBnwnQ/Piledriver_core_thumb%25255B3%25255D.jpg?imgmax=800" width="644" height="570"></a>La fotografía de Piledriver muestra algunos cambios frente a Bulldozer.</p> <p align="justify">Estos nuevos cores de procesamientos estarán disponibles en dos variantes no idénticas:</p> <blockquote> <p align="justify">- Primero aparecerán en Trinity 32nm, el sustituto de los actuales Llano 32 (AMD A8, A6 y A4) con GPU Radeon integrada.</p> <p align="justify">- En una segunda etapa, hacia Q3 2012, se actualizarán los cores Bulldozer de los chips AMD FX 32 nm con núcleos Piledriver de segunda generación derivados de los integrados en Trinity. Son los que considero más interesantes.</p></blockquote> <p align="justify"><font color="#ffff80" size="3">La nueva AMD</font></p> <p align="justify">Tras la salida de Dirk Meyer, AMD ha cambiado de manera importante sus objetivos, ahora ya no pretende alcanzar a Intel en prestaciones puras por core (IPC). Dirk luchó por ello con los pocos recursos que le dejó la desastrosa gestión anterior de sus antecesores.</p> <p align="justify">Fueron años de despilfarros que malgastaron los enormes beneficios de la época de gloria de los AMD Athlon, Athlon64 y Opteron.</p> <p align="justify">La lucha en IPC se antojaba imposible y aunque lo pretendiesen es simplemente absurdo dado el altísimo perfeccionamiento alcanzado por Intel y su arrolladora cadencia de producción de nueva micro arquitectura y nuevo proceso de fabricación en años alternos (Intel Tick Tock). Sobretodo sabiendo que actualmente Intel ostenta de un 20 a un 50% de ventaja en IPC por core y a igualdad de reloj.</p> <p align="center"><a href="http://lh3.ggpht.com/-HYDEWRHPm-c/Tzlc-ntjWoI/AAAAAAAAFRU/X6duzhorXH4/s1600-h/AMD_2012_2013_Desktop%25255B3%25255D.jpg"><img title="AMD_2012_2013_Desktop" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="AMD_2012_2013_Desktop" src="http://lh6.ggpht.com/-QIgWbsx9fvs/TzldAAyoT4I/AAAAAAAAFRc/gBknPFWgHGw/AMD_2012_2013_Desktop_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="362"></a>Roadmap de sobremesa 2012 – 2013. A finales de año llega Piledriver.</p> <p align="justify">AMD con su nueva estrategia ve un futuro para sus procesadores con un diseño SOC, muchos de ellos fabricados en procesos Bulk (más dirigidos a bajos consumos y no tan altas frecuencias) y no los caros SOI HKMG actuales, pensando más en el rendimiento por watt que en rendimientos absolutos.</p> <p align="justify"><font color="#ffff80" size="3">AMD Piledriver core</font></p> <p align="justify">Toda la información expuesta a continuación ha sido extraída de la reciente revisión de la <a href="http://support.amd.com/us/Processor_TechDocs/47414_15h_sw_opt_guide.pdf" target="_blank">Guía de Optimización Software para la Familia 15h</a> de AMD:</p> <p align="center"><a href="http://lh5.ggpht.com/-OzSrMzHQImg/TzbDzsPYrHI/AAAAAAAAFN0/Rz21x6rvFTk/s1600-h/AMD_15h%25255B11%25255D.png"><img title="AMD_15h" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="AMD_15h" src="http://lh3.ggpht.com/-yno3cZNYImc/TzbD0m326lI/AAAAAAAAFN8/fX2rbXVLNF0/AMD_15h_thumb%25255B5%25255D.png?imgmax=800" width="644" height="417"></a><a href="http://support.amd.com/us/Processor_TechDocs/47414_15h_sw_opt_guide.pdf" target="_blank">Software Optimization Guide for AMD Family 15h Processors.</a></p> <p align="justify">Los integrantes de la micro arquitectura Bulldozer estan divididos en varias familias y estas a su vez en modelos:</p> <blockquote> <p align="justify">- Los actuales cores Bulldozer (AMD FX 32 nm) son denominados familia 15h y modelos <strong><font color="#ffff00">00h - 0fh (0xh).</font></strong> Incluyen caché L3 de 8 MB:</p> <p align="justify">- Los cores integrados próximamente en Trinity son familia 15h y modelos <strong><font color="#ffff00">10h - 1fh (1xh).</font></strong> No llevarán caché L3 e ira´n acompañados de una GPU integrada de la familia Radeon HD6000.</p> <p align="justify">- Los cores integrados en el sustituto de AMD FX 32 nm serán familia 15h y modelos <strong><font color="#ffff00">20h - 2fh (2xh),</font></strong> contarán con caché L3, muy probablemente igual a la actual (8 MB).</p></blockquote> <p align="justify">Los modelos <font color="#ffff00"><strong>10h - 1fh (1xh) y 20h - 2fh (2xh)</strong></font> incorporan cores Piledriver, de primera y segunda generación respectivamente, estos últimos con algunas mejoras adicionales.</p> <p align="center"><a href="http://lh3.ggpht.com/-qYnEBnaWI_s/TzbDsW3vTII/AAAAAAAAFNU/1egq727EtHA/s1600-h/Trinity_Die_Low_wm%25255B3%25255D.png"><img title="Trinity_Die_Low_wm" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Trinity_Die_Low_wm" src="http://lh3.ggpht.com/-ul23ZSaxw1o/TzbDwDc87EI/AAAAAAAAFNc/1x6grovq65g/Trinity_Die_Low_wm_thumb%25255B1%25255D.png?imgmax=800" width="604" height="447"></a>Primera imagen de Trinity 32 nm, dos módulos Piledriver y GPU AMD serie 6000.</p> <p align="justify">Las diferencias de Piledriver respecto a los actuales cores Bulldozer son las siguientes:</p> <p align="center"><a href="http://lh4.ggpht.com/-X3ODa1mPYRg/TzbD1deIWRI/AAAAAAAAFOE/RC_2KxypjCQ/s1600-h/Piledriver%25255B3%25255D.png"><img title="Piledriver" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Piledriver" src="http://lh6.ggpht.com/-_f9FHNTD7z0/TzbD2f9-3CI/AAAAAAAAFOM/0ZiHcFfH9M0/Piledriver_thumb%25255B1%25255D.png?imgmax=800" width="363" height="265"></a>Mejoras micro arquitecturales en AMD Piledriver 32nm.</p> <p align="justify">Entre las diferencias importantes puedo señalar las siguientes:</p> <blockquote> <p align="justify">- El soporte para nuevos juegos de instrucciones, entre los más destacados el <strong><font color="#ffff00">FMA3 </font></strong>de Intel.</p> <p align="justify">- La ampliación de la cola de precarga de instrucciones (<font color="#ffff00"><strong>load queue</strong></font>) de la FPU de 40 a 44 entradas.</p> <p align="justify">- El soporte para los formatos <strong><font color="#ffff00">FPU de 16 bit</font></strong>.</p> <p align="justify">- La ampliación del buffer <font color="#ffff00"><strong>L1 DTLB</strong></font> (el <a href="http://lowlevelhardware.blogspot.com/2008/05/el-tlb-secreto-de-amd-parte-i.html" target="_blank">translation lookaside buffer</a> de datos de nivel 1) de 32 a 64 entradas. 32 entradas era claramente insuficiente.</p></blockquote> <p align="justify">El resto de cambios serán menores y poco significativos prestacionalmente hablando.</p> <p align="justify">También espero y digo espero porque no sé si AMD lo implementará o no, una sustancial mejora en la velocidad de escritura de las cachés L1d y L2 de Piledriver respecto a los horribles ratios de Bulldozer.</p> <p align="justify">Esto exigiría un rediseño de las WCC (write combining caches) de Bulldozer, unos pequeños buffers de 4 KB por core (2 por módulo) que consolidan las escrituras desde las dos L1d de cada core (dentro del módulo) hacia la L2 compartida de 2 MB.</p> <p align="justify">En la práctica es una caché L1.5d. El flujos de datos pasa desde la L1d de 16 KB a la WCC de 4 KB y de ahí a la L2 de 2048 KB.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones e ideas generales</font></p> <p align="justify">No me gusta Bulldozer. Es simplemente así, en 2012 la evolución de las micro arquitecturas sigue la dirección opuesta: pipelines cortos, cachés L1 de 32 KB con alta asociatividad (8 vías) y mecanismos branch prediction muy muy avanzados.</p> <p align="justify">Bulldozer y Piledriver tienen un grave fallo, el <strong><font color="#ffff00">Front End</font></strong> no es capaz de alimentar tres schedulers con 4 pipes cada uno (los dos INT cores y la unidad SIMD FMAC), nada menos que doce unidades de ejecución se alimentan de él.</p> <p align="justify">Los <font color="#ffff00"><strong>Decoders </strong></font>sólo son capaces de descodificar 4 instrucciones/ciclo a partir de un fetch de 32 bytes/ciclo desde la L1i de 64 KB y dos vías, en el caso de ser instrucciones X86 simples que generen sólo una macro op.</p> <p align="justify">Si hay una instrucción X86 más compleja que genera 2 macro ops, el ratio de decoding se reduce a 2 simples y una doble macro op y no 3 + 1 como sería deseable.</p> <p align="justify">Y si son instrucciones X86 complejas que generen más de 2 macro ops y deban usar el <strong><font color="#ffff00">microcode engine</font> solamente se</strong> descodifica <u>en pico</u> una instrucción/ciclo y lo normal es que tarde bastantes ciclos en secuenciar una instrucción compleja X86 en macro ops. Y en ese tiempo no entran instrucciones en los pipes… Todo el front end se bloquea y los demás threads tienen que esperar.</p> <p align="justify">Además, los decoders procesan instrucciones, hasta 4 en paralelo si son simples, pero NO pueden descodificar instrucciones de dos threads diferentes. El funcionamiento es en ciclos alternos (ciclo 1, thread 1; ciclo 2, thread 2; …) Si los dos INT cores están activos, los decoders sirven a cada INT core cada dos ciclos, dando un pico de 2 instrucciones por ciclo por INT core, insuficiente pues cada INT core posee 4 pipes. </p> <p align="justify">Los <font color="#ffff00"><strong>INT cores</strong></font> poseen 4 pipes, dos de ejecución (EX0 procesa ALU y IDIV, EX1 procesa ALU, IMULT, JUMP) y dos para operaciones de lectura de memoria (AGLU0, AGLU1). En total 4 unidades de ejecución por INT core.</p> <p align="justify">AMD debe trabajar en <font color="#ffff00"><strong>ensanchar los decoders</strong></font>, debería ir hacia un diseño de 6 instrucciones/ciclo y reducir el numero de instrucciones X86 que utilizan micro código. La tasa de Fetch actual (32 bytes/ciclo) es suficiente.</p> <p align="justify">El diseño actual de la <font color="#9bbb59"><strong><font color="#ffff00">caché L1</font></strong>i</font> (L1 de instrucciones) debe desecharse. 64 KB no son necesarios pero sí elevar su asociatividad a 8 vías (tened en cuenta que sobre ella se ejecutan 2 threads). 32 KB y 8 vías sería lo óptimo.</p> <p align="justify">El diseño de las <font color="#ffff00"><strong>L1d </strong></font>me gusta pero debe aumentarse a 32 KB y sería bueno llegar a las 8 vías, aunque 4 es satisfactorio, suficiente.</p> <p align="justify">Hay que trabajar en los <font color="#ffff00"><strong>anchos de banda en escritura</strong></font>, Bulldozer arroja resultados terribles en escritura o copia en L1d y L2. Hay que revisar el funcionamiento de las <font color="#ffff00"><strong>WCC de 4 KB</strong></font> por INT core.</p> <p align="justify">La <font color="#ffff00"><strong>caché L2</strong></font> debería reducirse a 1 MB o incluso 512 KB manteniendo las 16 vías y reduciendo el acceso load to use a 10 – 12 ciclos.</p> <p align="justify">La <font color="#ffff00"><strong>política de acceso a L3 </strong></font>y su manejo de la coherencia deben modificarse. Los bits per core de Nehalem y Sandy Bridge deben de ser incorporados a su diseño. AMD debería ya de una vez desechar las cachés exclusivas.</p> <p align="justify">También debe mejorarse la latencia de activación del<font color="#ffff00"><strong> Turbo Core</strong></font> y debe reducirse el voltaje cuando se activa. Ahora mismo un Phenom II X6 o un Bulldozer FX 8150 con Turbo core activado trabajan a voltajes de 1.35 a 1.50V, es absurdo.</p> <p align="justify">En mis <strong><font color="#ffff00">ensayos personales</font></strong> con multitud de CPUs de ambas familias consigo estabilidad absoluta a 0.10V, 0.15V o incluso 0.20V menos que los nominales a frecuencias iguales a las de Turbo Core reduciendo la temperatura y el consumo radicalmente.</p> <p align="justify">Lo esencial de los modos Turbo es una respuesta instantánea de la subida de frecuencia, si no, muchas veces la frecuencia se incrementa cuando el proceso crítico ya ha concluido y lo peor, a frecuencia reducida y con sensación de lentitud para el usuario.</p> <p align="justify">Se denomina <font color="#ffff00"><strong>Race To Idle</strong></font> y consiste en incrementar la frecuencia al máximo para acabar rápido el proceso y volver lo antes posible al estado mínimo de frecuencia y voltaje para ahorrar energía. AMD debería implementar esta técnica.</p> <p align="justify">El <font color="#ffff00"><strong>Branch Prediction</strong></font> también reside en el Front End y es compartido por los dos INT cores y la SIMD FMAC. Carece de predicción para Loops por lo que los predice generalmente mal. Su precisión general es buena (mucho mejor que la de los antiguos Phenom II) pero le penaliza la longitud del el pipeline de enteros, la penalización tras un fallo de predicción Branch asciende de 19 a 22 ciclos (!!).</p> <p align="justify">Una hipotética <strong><font color="#ffff00">macro op cache</font></strong> implementada en las primeras etapas del pipeline de cada INT core haría milagros en Bulldozer, su efecto sería mayor que el de la micro code caché de Sandy Bridge.</p> <p align="center"><a href="http://lh5.ggpht.com/-Mw6CqwHs4BU/TzbDxbFx8AI/AAAAAAAAFNk/C9Lf-ZU9cJY/s1600-h/AMD_16core_Opteron_62XX%25255B3%25255D.jpg"><img title="AMD_16core_Opteron_62XX" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="AMD_16core_Opteron_62XX" src="http://lh5.ggpht.com/-yOiH2xh_-2U/TzbDyhYwZVI/AAAAAAAAFNs/Yklh8JXM414/AMD_16core_Opteron_62XX_thumb%25255B1%25255D.jpg?imgmax=800" width="604" height="382"></a>Dos chips Orochi 32nm forman el nuevo Opteron Interlagos 16 cores.</p> <p align="justify">De todos modos AMD está realizando progresos que quizás hagan que en un futuro próximo sea un core más equilibrado. La actualidad de Bulldozer es poca potencia de proceso single thread y un nivel de prestaciones aceptable solamente cuando el software carga los ocho threads por chip a fondo… un escenario que se da en pocas cargas de trabajo.</p> <p align="justify">Nos guste o no, y estamos en 2012, el mundo sigue dominado por la velocidad de respuesta de la máquina a cargas de 1 thread. AMD debe mejorar en este sentido y en Bulldozer hay claras áreas mejorables sin mucha inversión.</p> <p align="justify">Sigo siendo de la opinión de que AMD tiene un mejor core que Bulldozer, el venerable K10 de 65 nm, K10.5 de 45 nm y actualmente “K11” de 32 nm (el incluido en Llano). Con las lógicas mejoras, sobretodo en el terreno de Branch Prediction, mejora de la velocidad L2, aumento de ancho de la FPU a 256 bit y con las nuevas (y excelentes) controladoras de memoria de AMD.</p> <p align="justify">Con sus pequeños cores (poco más de 9 mm2) sería factibles integrar 8 con 8 L2 de 512 KB y una L3 de 8 MB en un die con una superficie moderada… sería un muy competente rival para Intel Sandy Bridge.</p> <p align="justify">El problema más grave de AMD continúa siendo el de siempre: Intel. Estoy asombrado de los progresos que llegan en alrededor de un año con Haswell 22nm… entre ellos la implementación de <a href="http://professionalsat.blogspot.com/2012/02/memoria-transaccional-en-intel-haswell.html" target="_blank">memoria transaccional</a>.</p> <p align="justify">Es una verdadera pesadilla para AMD tener a Intel como rival con sus agresivas políticas de desarrollo y su brutal gasto en I+D además de su ingente capacidad de ingeniería. Cada dos años lleva al mercado una nueva micro arquitectura (TOCK) que mejorar sustancialmente la anterior y encima en los años alternos, puntualmente, comercializa un nuevo proceso de fabricación (TICK) ( … 180nm > 130nm > 90nm > 65nm > 45nm > 32nm > 22nm > 14nm …) que deja prácticamente en ridículo al resto de la industria de semiconductores mundial…</p> <p align="justify"><font color="#ffff80" size="3">AMD Piledriver RCM (Resonant Clock Mesh)</font></p> <p align="justify">AMD y <a href="http://www.cyclos-semi.com/technology/" target="_blank">Cylos Semiconductor</a> han informado que Piledriver integra una nueva metodología para la transmisión de la señal de reloj a todos los transistores del die.<img hspace="20" alt="RMC Schematic" vspace="20" src="http://www.cyclos-semi.com/images/schematic.jpg" width="290" align="right" height="326"></p> <p align="justify">Se denomina RCM (Resonant Clock Mesh) y permite una reducción de un 24% en el consumo de la red de distribución de reloj y globalmente un 10% global de reducción de consumo.</p> <p align="justify">Sin duda es una excelente noticia, pues AMD, actualmente está limitada por disipación térmica y consumo en Bulldozer y un recorte sólo por la adopción de RCM junto con otro tanto por ciento debido al refinamiento del proceso de fabricación de 32nm HKMG SOI de Global Foundries puede dar a Piledriver una nueva vida tanto en Trinity como en el futuro AMD FX octal core.</p> <p align="justify">Sin duda permitirá unas frecuencias mayores manteniendo el TDP y quizás pueda, un AMD FX basado en cores Piledriver, coquetear con los 4.6 – 4.8 GHz.</p> <p align="justify">En fin… más en breve.</p> <p align="justify">Echad un vistazo a la web de mi nueva empresa, un proyecto de gran envergadura que llevo preparando hace más de un año.</p> <p align="justify">Os lo recomiendo para<strong><em> </em></strong><a href="https://www.informaticapremium.com" target="_blank"><strong><em>diseño de sistemas de altas prestaciones</em></strong></a>:</p> <p align="justify"><a href="https://www.informaticapremium.com" target="_blank"><img title="ip16_texto_300px_blanco[4][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="ip16_texto_300px_blanco[4][2][2]" src="https://lh3.googleusercontent.com/-3nk1pusgfMY/WAY0YpIM-JI/AAAAAAAAKr0/j-BxoMSyZTQ/ip16_texto_300px_blanco%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="304" height="304"></a></p> <p align="justify">Allí tenéis a vuestra disposición el formulario de contacto, para consultas sobre este artículo hacedlo más abajo en la sección de comentarios.</p> <p align="justify">Y mi nuevo Blog de contenido muy técnico y actualizado donde encontraréis artículos míos sobre hardware, procesadores y sistemas y también otros posts de expertos programadores e informáticos sobre otros temas de actualidad:</p> <p align="justify"><a href="https://www.informaticapremium.com/blog/" target="_blank"><img title="infromaticapremium-blog[4][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="infromaticapremium-blog[4][2][2]" src="https://lh3.googleusercontent.com/-N758QvSpgfY/WAY0ZaeLwoI/AAAAAAAAKr4/USMFeomt-kI/infromaticapremium-blog%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="381" height="311"></a></p> <p align="justify"><strong style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><font style="text-align: left; background-color: #141414" color="#4bacc6">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.</font></strong></p> <p align="justify"><strong><font style="background-color: #141414" color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com61tag:blogger.com,1999:blog-6644579903369065806.post-60614776378600921892017-02-02T16:12:00.001+01:002017-02-02T16:12:45.848+01:00AMD Bulldozer. Frecuencias finales. Actualizado – LowLevelHardware<p align="justify"><font color="#4bacc6"><strong>Actualización 07 Septiembre 2011</strong></font>: Últimas noticias referentes al lanzamiento de Bulldozer y algunos datos técnicos extra al final del artículo.</p> <p align="center"><a href="http://lh6.ggpht.com/-AZQiskf1k2s/TmetRhSY0ZI/AAAAAAAAFHw/MNnPDLonDDk/s1600-h/InterlagosMCM%25255B3%25255D.jpg"><img title="InterlagosMCM" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="InterlagosMCM" src="http://lh6.ggpht.com/-ph0wPx89tMs/TmetSavNwaI/AAAAAAAAFH0/EP4X84PfdEY/InterlagosMCM_thumb%25255B1%25255D.jpg?imgmax=800" width="554" height="330"></a>Uno de los primeros MCM Interlagos compuesto de 2 dies Bulldozer de 8 INT cores.</p> <p align="justify">En la web de Gigabyte hemos encontrado las especificaciones finales de los procesadores basado en núcleos Bulldozer que próximamente saldrán a la venta.</p> <p align="center"><a href="http://lh4.ggpht.com/-to6Odyw4yx8/Tl-0e_KBj_I/AAAAAAAAFHo/jueuzG7afFA/s1600-h/Bulldozer_FX%25255B3%25255D.jpg"><img title="Bulldozer_FX" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bulldozer_FX" src="http://lh6.ggpht.com/-7KyKoPokVL8/Tl-0fb8h57I/AAAAAAAAFHs/XBWVbNxZCGk/Bulldozer_FX_thumb%25255B1%25255D.jpg?imgmax=800" width="630" height="209"></a>AMD Bulldozer. Por fin datos reales sobre los steppings comerciales.</p> <p align="justify">Concretamente, la página en cuestión es <a href="http://www.gigabyte.com/support-downloads/cpu-support-popup.aspx?pid=3880" target="_blank">la siguiente</a>, correspondiente al soporte de CPUs de la placa base de socket AM3+ GA 990 FXA UD7.</p> <p align="justify">En ella obtenemos alguna información extra sobre las nuevas CPUs de 32 nm de la serie FX.</p> <p align="justify">Entre otros datos encontramos un TDP máximo de 125 W y la denominación B2 para el primer stepping comercial.</p> <p align="justify"><font color="#ffff80" size="3">Bus Hyper Transport de 5.2 GHz</font></p> <p align="justify">Todos los modelos ajustan su reloj HT3 a GT/s. Sinceramente no veo razón para ello dado el excesivo ancho de banda ya disponible a las frecuencias de Thuban (Phenom II X6), GHz.</p> <p align="justify">Obviamente la razón de esta alta frecuencia de 5.2 GT/s es comercial, marketing puro.</p> <p align="justify">Este bus, en los procesadores de sobremesa, se utiliza para comunicar con el chipset y con los componentes periféricos. No es necesario un ancho de banda tan alto.</p> <p align="justify">La especificación HT3 hace mención de frecuencias máximas hasta los 6.4 GHz (igual que el QPI de Intel), AMD ha sido prudente y ha dejado un margen para mejoras futuras.</p> <p align="justify"><font color="#ffff80" size="3">Frecuencias base de AMD Bulldozer</font></p> <p align="justify">La versión de 8 cores y 4 módulos (serie FX-8000) llegará hasta los 3.6 GHz nominales, desde ahí desplegará los modos Turbo.</p> <p align="justify">Como comenté en el artículo anterior, AMD ha dotado a Bulldozer de un Turbo de dos fases:</p> <p><a href="http://lh3.ggpht.com/-8EmBkLIxL3U/TlKrHJ24tbI/AAAAAAAAFHg/0julSCJoCTg/s1600-h/640_5%25255B3%25255D.jpg"><img title="640_5" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="640_5" src="http://lh5.ggpht.com/-JJ00GwOnHkQ/TlKrIIE2KuI/AAAAAAAAFHk/1ZcIuGJrNMI/640_5_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="486"></a> <p align="justify"><font color="#809ec2"><strong>Fase 1, All Core Boost</strong>:</font> Todos los módulos (conjuntos de dos cores con su SIMD FPU Unit y los 2 MB de L2) aumentan su frecuencia por encima de la nominal si el TDP y la temperatura lo permite. <p align="justify">Se da en cargas de trabajo que implique a TODOS los cores, sea con carga parcial elevada o máxima 100%. <p align="justify"><font color="#809ec2"><strong>Fase 2, Max Turbo Boost</strong>:</font> Si dos de los módulos (cuatro INT cores, dos SIMD FPUs y dos L2 de 2 MB) se hallan en estado Sleep C6 (power gated) el resto (los otros dos módulos) pueden incrementar su frecuencia hasta en 1 GHz sobre la nominal. <p align="justify">Esta implementación conlleva algunas consideraciones prestacionales extrañas y fastidiosas que detallaré cuando tenga hardware funcional comercial en las manos. <p align="justify">Se rumorean modos Turbo de hasta 1 GHz extra, es decir, hasta 4.6 GHz en carga 100% de 2 módulos, con los otros dos módulos en estado gated CC6.</p> <p align="justify">En este caso tendríamos la siguiente capacidad de proceso:</p> <ul> <li> <div align="justify">4 INT cores a 4.6 GHz en carga de enteros (compresión de datos por ejemplo).</div> <li> <div align="justify">2 FPUs AVX de 256 bit en cargas de coma flotante AVX a 4.6 GHz.</div> <li> <div align="justify">2 FPUs dobles de 128 bit en cargas de coma flotante SSE o AVX de 128 bit a 4.6 GHz.</div></li></ul> <p align="justify">Más información en breve.</p> <p align="justify"><font color="#4bacc6"><strong>Actualización 07 Septiembre 2011:</strong></font></p> <p align="justify">En primer lugar: <font color="#ffff80"><strong>Frecuencia máxima en modo Turbo Core</strong></font>: el modelo tope de gama FX-8150 (se enpecual con un FX-8170 para Q1 2012) será de 4.2 GHz con carga parcial de cores, probablemente con un máximo de 4 cores al 100%. Lo que no está nada mal manteniendo un TDP de 125W.</p> <p align="justify">En segundo lugar: <strong><font color="#ffff80">Nuevo evento de AMD en San Francisco para el día 13 de Septiembre:</font></strong></p> <p style="font-family: ; padding-left: 10px; line-height: 18px; padding-right: 6px" align="justify"><font face="Verdana"><strong><font style="font-size: 9pt">Hanging out in San Francisco the week of September 12th? Not finding anything interesting?</font></strong><font style="font-size: 9pt"><br>AMD to the rescue. We'll be making an historic announcement, and want you to be a part of it.<br><br>AMD invites you to join us for an entertaining evening on the beautiful <strong><em>Yerba Buena Terrace at the St. Regis San Francisco</em></strong>. Spend the evening exploring the latest AMD technology, mingling with AMD executives and technology partners, all while enjoying cocktails and hors d'oeuvres. Be sure to arrive before 7:00pm to hear our big news first hand.</font></font></p> <table style="line-height: 18px" cellspacing="0" cellpadding="0" width="625" align="center" border="0"> <tbody> <tr style="font-family: ; color: ; line-height: 18px"> <td width="20"> </td> <td width="80" align="right"><font face="Verdana"><em><font style="font-size: 9pt">When:</font></em><font style="font-size: 9pt"> </font></font></td> <td width="356"><font face="Verdana"><font style="font-size: 9pt">Tuesday, September 13, 2011</font></font></td> <td valign="top" rowspan="4" width="169" align="right"><a href="http://fusionzone.eventbrite.com"><img border="0" alt="RSVP" src="http://amd-member.com/images/btn-rsvp2.gif"></a><font face="Verdana"><font style="font-size: 9pt"> </font></font></td></tr> <tr style="font-family: ; color: ; line-height: 18px"> <td> </td> <td style="line-height: 18px" align="right"><font face="Verdana"><em><font style="font-size: 9pt">Where:</font></em><font style="font-size: 9pt"> </font></font></td> <td><a style="color: " href="http://www.starwoodhotels.com/stregis/property/area/map.html?propertyID=1511"><font color="#009966" face="Verdana"><u><font style="font-size: 9pt">St. Regis Hotel, Yerba Buena Terrace</font></u></font></a><font face="Verdana"><font style="font-size: 9pt">, San Francisco</font></font></td></tr> <tr style="font-family: ; color: ; line-height: 18px"> <td> </td> <td style="line-height: 18px" valign="top" align="right"><font face="Verdana"><em><font style="font-size: 9pt">Time:</font></em><font style="font-size: 9pt"> </font></font></td> <td valign="top"><font face="Verdana"><font style="font-size: 9pt">6pm - 9 pm PDT</font></font></td></tr> <tr style="font-family: ; color: ; line-height: 18px"> <td> </td> <td style="line-height: 18px" valign="top" align="right"><font face="Verdana"><em><font style="font-size: 9pt">RVSP:</font></em><font style="font-size: 9pt"> </font></font></td> <td valign="top"><font face="Verdana"><font style="font-size: 9pt">by September 9, 2011 at </font></font><font style="font-size: 9pt"><a style="color: " href="http://fusionzone.eventbrite.com"><font color="#ffffff" face="Verdana"><u>fusionzone.eventbrite.com</u></font></a></font><font face="Verdana"><font style="font-size: 9pt"> (password: <strong>AMD</strong>)</font></font></td></tr></tbody></table> <table style="line-height: 18px" cellspacing="0" cellpadding="10" width="625" border="0"> <tbody> <tr style="font-family: ; color: ; line-height: 16px"> <td style="font-family: ; color: " valign="top"><font face="Verdana"><strong><font style="font-size: 9pt">Contact Information:</font></strong><font style="font-size: 9pt"><br>Heather J Lennon<br>Sr. Manager Public Relations, AMD<br></font></font><font style="font-size: 9pt"><a href="mailto:Heather.Lennon@amd.com?subject=Re:%20AMD%20Fusion%20Zone%20Event,%20San%20Fransico%202011"><font color="#009966" face="Verdana"><span><u>Heather.Lennon@amd.com</u></span></font></a></font><font face="Verdana"><font style="font-size: 9pt"> </font></font></td> <td style="font-family: ; color: " valign="top"> </td></tr></tbody></table> <p align="center">13 de Septiembre ¿Será el día de lanzamiento de Bulldozer?</p> <p align="justify">Por último: Hoy <font color="#ffff80"><strong>AMD ha confirmado el comienzo de la venta de CPUs Interlagos</strong></font> de 16 cores para servidores a los integradores de sistemas. El primer chip con micro arquitectura Bulldozer.</p> <blockquote> <p align="justify">"This is a monumental moment for the industry as this first 'Bulldozer' core represents the beginning of unprecedented performance scaling for x86 CPUs," said Rick Bergman, senior vice president and general manager, AMD Products Group. "The flexible new 'Bulldozer' architecture will give Web and datacenter customers the scalability they need to handle emerging cloud and virtualization workloads." </p></blockquote> <p align="justify">Para más información acerca de Bulldozer:</p> <p><font style="background-color: #141414">En múltiples artículos he analizado en detalle el diseño interno de BD 32 nm. Cito los más destacables:</font> <blockquote> <p><a title="AMD Bulldozer- HotChips23 – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2011/08/amd-bulldozer-hotchips23.html"><strong>AMD Bulldozer- HotChips23 – LowLevelHardware</strong></a></p></blockquote> <blockquote> <p><a title="AMD Bulldozer. Perspectivas – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2011/07/amd-bulldozer-perspectivas.html"><strong><font style="background-color: #141414">AMD Bulldozer. Perspectivas – LowLevelHardware</font></strong></a></p></blockquote> <blockquote> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/l3-cache-amd-bulldozer-professionalsat.html"><strong><font style="background-color: #141414">La L3 cache multibanco en AMD Bulldozer. Actualizado – LowLevelHardware</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-int-cores.html"><strong><font style="background-color: #141414">AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware</font></strong></a></p></blockquote> <blockquote> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-primeros-benchmarks.html"><strong><font style="background-color: #141414">AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://professionalsat.blogspot.com/2010/08/amd-bulldozer-professionalsat.html"><strong><font style="background-color: #141414">AMD Bulldozer – ProfessionalSAT</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://lowlevelhardware.blogspot.com/2010/09/la-microarquitectura-de-amd-bulldozer.html"><strong><font style="background-color: #141414">La micro arquitectura de AMD Bulldozer. Actualizado – LowLevelHardware</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://lowlevelhardware.blogspot.com/2010/07/novedades-y-expectativas-2010.html"><strong><font style="background-color: #141414">Novedades y expectativas 2010. Actualizado – LowLevelHardware</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://lowlevelhardware.blogspot.com/2010/02/amd-bulldozer-prestaciones-estimadas.html"><strong><font style="background-color: #141414">AMD Bulldozer. Prestaciones estimadas – LowLevelHardware</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://lowlevelhardware.blogspot.com/2010/02/microarquitectura-amd-bulldozer-2011.html"><strong><font style="background-color: #141414">Micro arquitectura AMD Bulldozer 2011. Actualizado – LowLevelHardware</font></strong></a><font style="background-color: #141414"> </font> <p><a href="http://lowlevelhardware.blogspot.com/2009/12/previo-amd-bulldozer-lowlevelhardware.html"><strong><font style="background-color: #141414">Previo AMD Bulldozer. Actualizado – LowLevelHardware</font></strong></a></p></blockquote> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font style="background-color: #141414" color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com17tag:blogger.com,1999:blog-6644579903369065806.post-32688310445140794272017-02-02T16:12:00.000+01:002017-02-02T16:12:02.791+01:00AMD Bulldozer: HotChips23 – LowLevelHardware<p align="justify">Estos días se está celebrando el <a href="http://www.hotchips.org/" target="_blank">HotChips 23</a>, una de las convenciones anuales donde se discuten los nuevos diseños de procesadores de sobremesa, servidores, memorias, procesadores de bajo consumo para dispositivos móviles… todo lo relacionado con el mundo del silicio en 2011.</p> <p align="justify">Y claro está, también ha habido alguna nueva información sobre Bulldozer y mucha viejas ideas “refritas” sobre este nuevo core. Lamentablemente, ninguna estimación prestacional, puro <strong><em>silicon </em></strong>para entendidos en la materia.</p> <p align="justify">AMD ha entrado en detalle en algunos aspectos del diseño del chip Zambezi (4 módulos y 8 INT cores) fabricado por Global Foundries en 32 nm SOI HKMG.</p> <p align="justify"><font color="#ffff80" size="3">Nuevas fotografías del die de Bulldozer</font></p> <p align="justify">En este slide de la presentación en HotChips vemos una nueva toma del die de Bulldozer.</p> <p><a href="http://lh6.ggpht.com/-Z1CUA7Jbmr0/TlKq4ziYkjI/AAAAAAAAFGo/K5g7K7RilfE/s1600-h/640_1%25255B3%25255D.jpg"><img title="640_1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="640_1" src="http://lh5.ggpht.com/-Pp-UN6K7ZXM/TlKq5v5U8eI/AAAAAAAAFGs/1ok-8Z_8D7A/640_1_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="484"></a></p> <p align="justify">Aparece con mayor altura que en anteriores vistas, si comparáis con anteriores artículos míos veréis claramente la diferencia. No hay modo de saber cual es la correcta, si esta o las antiguas (más alargadas), hasta que haya <em>samples</em> comerciales.</p> <p align="justify">Ampliación del die:</p> <p align="justify"><a href="http://lh6.ggpht.com/-wsGMu-G-VcM/TlKq6ufVisI/AAAAAAAAFGw/bhsHLXsgTRk/s1600-h/640_2%25255B7%25255D.jpg"><img title="640_2" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="640_2" src="http://lh6.ggpht.com/-4tbdxxp8_dw/TlKq7bP-f6I/AAAAAAAAFG0/rNISfuGsaXA/640_2_thumb%25255B3%25255D.jpg?imgmax=800" width="644" height="695"></a></p> <p align="justify">Lo que me llama poderosamente la atención es la grandísima cantidad de espacio desaprovechado: No utilizado ni por cores (lógica) ni cachés ni por las controladoras de memoria y buses Hyper Transport 3.</p> <p align="justify">En varios de mis numerosos artículos sobre <a href="http://lowlevelhardware.blogspot.com/2010/09/microarquitectura-intel-sandy-bridge.htmle, me explico:" target="_blank">Intel Sandy Bridge</a>, mencioné el enrutado de todo el cableado del Ring Bus bajo la caché L3. Todo este esfuerzo de ingeniería se realizó para ahorrar espacio de die y reducir el tamaño de Sandy Bridge. Cito textualmente (<font size="2"><em>Extraído de <strong>Microarquitectura Intel Sandy Bridge</strong>. Parte 1. Actualizado – LowLevelHardware. Martes 14 de septiembre de 2010</em>):</font></p> <blockquote> <p align="justify"><font size="2" face="Arial Narrow"><em><font size="4">“</font> Lo más llamativo del bus en anillo de Sandy Bridge (y Nehalem EX) es su implementación respetuosa con el consumo y el área de die, me explico:</em></font> <p align="justify"><font size="2" face="Arial Narrow"><em>Todos recordamos el famoso procesador Radeon HD 2900 de ATI con un ring bus de 512 bits, que debido a su desmesurada disipación térmica y consumo no pudo competir con sus análogos de nVidia hasta que ATI lo eliminó sustituyéndolo por una arquitectura convencional en su serie Radeon HD 3800.</em></font> <p align="justify"><font size="2" face="Arial Narrow"><em>En Sandy Bridge Intel ha utilizado power gating y clock gating extensivamente, además de aplicar un voltaje bajísimo al ring bus para conseguir una disipación térmica muy baja.</em></font> <p align="justify"><font size="2" face="Arial Narrow"><em>Por otro lado, es un dato muy importante, según los ingenieros de Intel, no ha representado un incremento de área ya que la infinidad de conductores necesarios para el Ring Bus se enrutan por otras capas del diseño bajo la caché L3<font size="4">. “</font></em></font></p></blockquote> <p align="justify">AMD simplemente no dispone de los extensos recursos económicos y humanos de Intel y no puede permitirse el lujo de este tipo de optimizaciones, bastante tiene con llevar a cabo el diseño de un semiconductor de tal complejidad como Bulldozer. <p align="justify">El espacio “muerto” lo he coloreado en <strong><font color="#a5a5a5">GRIS</font></strong>, son muchos, muchos mm2:</p> <p align="justify"><a href="http://lh5.ggpht.com/-j2bFEShtLDg/TlKq8fdNMTI/AAAAAAAAFG4/Q-yDXz7LP_Q/s1600-h/640_2B%25255B7%25255D.jpg"><img title="640_2B" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="640_2B" src="http://lh6.ggpht.com/-vPHV6WrLwjQ/TlKq9-hQkfI/AAAAAAAAFG8/V3tFkhUb14Q/640_2B_thumb%25255B3%25255D.jpg?imgmax=800" width="644" height="695"></a></p> <p align="justify"><font color="#ffff80" size="3">Superficie del die de AMD Bulldozer</font></p> <p align="justify">Por fin conocemos el verdadero tamaño de Bulldozer y debo decir que estoy algo decepcionado: nada menos que 315 mm2… muy caro de producir.</p> <p align="center"><a href="http://lh4.ggpht.com/-rnDQ-2ED948/TlKq-66GeNI/AAAAAAAAFHA/TnudJATWOcU/s1600-h/Bulldozer_Die_size%25255B3%25255D.jpg"><img title="Bulldozer_Die_size" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Bulldozer_Die_size" src="http://lh4.ggpht.com/-_C5vVHGcPGo/TlKrAJIlYlI/AAAAAAAAFHE/DEvmr8fsOmM/Bulldozer_Die_size_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="544"></a></p> <p align="justify">Estoy convencido de que AMD sin duda optimizará este diseño en sucesivas iteraciones (con el paso a 22 nm en un par de años) e incluso antes con el lanzamiento de la versión de 5 módulos y 20 cores producida también en 32 nm.</p> <p align="justify"><font color="#ffff80" size="3">Infraestructura de AMD Zambezi. AM3+</font></p> <p align="justify"><a href="http://lh5.ggpht.com/-W0XcLGra_tI/TlKrBL_myGI/AAAAAAAAFHI/8N0cteXf2PQ/s1600-h/640_3%25255B3%25255D.jpg"><img title="640_3" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="640_3" src="http://lh4.ggpht.com/-8s0IeszPGIY/TlKrB7V-aNI/AAAAAAAAFHM/b52Z_Bev-MU/640_3_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="482"></a></p> <p align="justify">Como vemos la versión de sobremesa de Bulldozer solo activa uno de los 4 enlaces HT3 para comunicación con el chipset (los demás permanecen deshabilitados, en su versión Opteron se utilizan como conexión directa con hasta tres chips más).</p> <p align="justify">La latencia L3 se me antoja como he comentado en numerosas ocasiones muy alta, creo firmemente que rondará los 50+ ciclos.</p> <p align="justify"><a href="http://lh6.ggpht.com/-d5onO9-5yU8/TlKrFecSdhI/AAAAAAAAFHY/dv2zijSiimI/s1600-h/640_4%25255B3%25255D.jpg"><img title="640_4" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="640_4" src="http://lh4.ggpht.com/-H8Ti1sqACJw/TlKrGeAo5ZI/AAAAAAAAFHc/atCTM6yWXH4/640_4_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="486"></a></p> <p align="justify">Ni rastro de las extrañas AGLU, ahora las llaman AGen, es decir una normal y corriente AGU. Además solamente hay dos pipes de enteros (INT pipes) una con circuitería MUL y la otra según AMD con un divisor por hardware (DIV). Viendo las latencias de división entera de Bulldozer me da la impresión de que tal divisor no existe y la división se ejecuta por micro código o tiene un diseño extremadamente simplificado y poco efectivo.</p> <p align="justify"><font color="#ffff80" size="3">AMD Turbo Core en Bulldozer</font></p> <p align="justify">En Bulldozer, AMD presenta un Turbo Core de dos niveles.</p> <p align="justify"><a href="http://lh3.ggpht.com/-8EmBkLIxL3U/TlKrHJ24tbI/AAAAAAAAFHg/0julSCJoCTg/s1600-h/640_5%25255B3%25255D.jpg"><img title="640_5" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="640_5" src="http://lh5.ggpht.com/-JJ00GwOnHkQ/TlKrIIE2KuI/AAAAAAAAFHk/1ZcIuGJrNMI/640_5_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="486"></a></p> <p align="justify"><strong>All Core Boost</strong>: Todos los módulos (conjuntos de dos cores con su SIMD FPU Unit y los 2 MB de L2) aumentan su frecuencia por encima de la nominal si el TDP y la temperatura lo permite.</p> <p align="justify">Se da en cargas de trabajo que implique a TODOS los cores, sea con carga parcial elevada o máxima 100%.</p> <p align="justify"><strong>Max Turbo Boost</strong>: Si dos de los módulos (cuatro INT cores, dos SIMD FPUs y dos L2 de 2 MB) se hallan en estado Sleep C6 (power gated) el resto (los otros dos módulos) pueden incrementar su frecuencia hasta en 1 GHz sobre la nominal.</p> <p align="justify">Esto conlleva algunas consideraciones prestacionales extrañas y fastidiosas que detallaré cuando tenga hardware funcional comercial en las manos. A ver si en un mes y algo…</p> <p>En múltiples artículos he analizado en detalle el diseño interno de BD 32 nm. Cito los más destacables: <blockquote> <p><a title="AMD Bulldozer. Perspectivas – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2011/07/amd-bulldozer-perspectivas.html"><strong>AMD Bulldozer. Perspectivas – LowLevelHardware</strong></a></p></blockquote> <blockquote> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/l3-cache-amd-bulldozer-professionalsat.html"><strong>La L3 cache multibanco en AMD Bulldozer. Actualizado – LowLevelHardware</strong></a> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-int-cores.html"><strong>AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware</strong></a></p></blockquote> <blockquote> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-primeros-benchmarks.html"><strong>AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware</strong></a> <p><a href="http://professionalsat.blogspot.com/2010/08/amd-bulldozer-professionalsat.html"><strong>AMD Bulldozer – ProfessionalSAT</strong></a> <p><a href="http://lowlevelhardware.blogspot.com/2010/09/la-microarquitectura-de-amd-bulldozer.html"><strong>La micro arquitectura de AMD Bulldozer. Actualizado – LowLevelHardware</strong></a> <p><a href="http://lowlevelhardware.blogspot.com/2010/07/novedades-y-expectativas-2010.html"><strong>Novedades y expectativas 2010. Actualizado – LowLevelHardware</strong></a> <p><a href="http://lowlevelhardware.blogspot.com/2010/02/amd-bulldozer-prestaciones-estimadas.html"><strong>AMD Bulldozer. Prestaciones estimadas – LowLevelHardware</strong></a> <p><a href="http://lowlevelhardware.blogspot.com/2010/02/microarquitectura-amd-bulldozer-2011.html"><strong>Micro arquitectura AMD Bulldozer 2011. Actualizado – LowLevelHardware</strong></a> <p><a href="http://lowlevelhardware.blogspot.com/2009/12/previo-amd-bulldozer-lowlevelhardware.html"><strong>Previo AMD Bulldozer. Actualizado – LowLevelHardware</strong></a></p></blockquote> <p align="justify"><font color="#ffff80" size="3">Conclusiones</font></p> <p align="justify">Poco se puede concluir hasta que no haya datos objetivos de steppings finales. Los actuales samples de Bulldozer son realmente lentos debido a numerosos bugs en los primeros steppings A y B1 que han hecho necesario deshabilitar características clave de las controladoras de memoria, cachés, <a href="http://lowlevelhardware.blogspot.com/2008/05/el-tlb-secreto-de-amd-parte-i.html" target="_blank">TLBs</a>, etc.</p> <p align="justify">Queda ver como será Bulldozer con todos sus subsistemas a punto y cuales son las frecuencias finales comerciales. Sin duda estas no serán indicativas del verdadero potencial final en frecuencia de Bulldozer en 32 nm; AMD mejora sus procesos paso a paso a lo largo del tiempo en que este está en el mercado.</p> <p align="justify">La historia fue realmente brillante en 90 nm cuando culminó en unos excelentes 3.2 GHz con el Athlon 64 X2 6400+ partiendo de los iniciales 1.8 GHz.</p> <p align="justify">En el proceso de 65 nm SOI la historia fue diferente y empezó realmente mal. Los primeros Athlon 64 X2 eran claramente más lentos por ciclo (IPC) que los anteriores de 90 nm y les era imposible llegar a los 3 GHz. Con el tiempo llegaron a 3.1 GHz, un mal resultado e inferior al anterior de 90 nm SOI.</p> <p align="justify">En aquel tiempo AMD lanzó <a href="http://lowlevelhardware.blogspot.com/2008/03/el-resurgir-de-phenom-el-stepping-b3-y.html" target="_blank">Barcelona (Phenom) quad core</a> también en 65 nm con unas frecuencias decepcionantes de 2.3 GHz en pico y una ridículamente pequeña caché L3 de 2 MB y elevada latencia. Con los meses llegó a 2.6 GHz y por fin llegaron los 45 nm.</p> <p align="justify">Los 45 nm para AMD han sido un éxito rotundo, los <a href="http://lowlevelhardware.blogspot.com/2008/03/el-resurgir-de-phenom-el-stepping-b3-y.html" target="_blank">Phenom II Shanghai</a> subieron rápidamente de frecuencia y el incremento a 6M de la caché L3 le permitió ganar prestaciones por ciclo (IPC) respecto a Barcelona. A esto se añadió la excelente versión de 6 cores con Turbo Core, el Phenom II X6, también con 6 MB de L3.</p> <p align="justify">Gracias al exitoso proceso de 45 nm AMD ha podido sobrevivir con un anticuado diseño de CPU que data de 2003, (remozado en 2007 con Barcelona, aunque igual en la parte de enteros) y esto lo escribo en Agosto de 2011…</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font style="background-color: #141414" color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com12tag:blogger.com,1999:blog-6644579903369065806.post-43227947899035020812017-02-02T16:11:00.002+01:002017-02-02T16:11:45.000+01:00AMD Bulldozer. Perspectivas – LowLevelHardware<p align="justify">Mucho se está hablando en los círculos informáticos acerca de la nueva micro arquitectura Bulldozer de AMD. Un diseño pensado para cargas de trabajo multithread y con pipelines de ejecución con mayor número de etapas para un alto potencial en frecuencia.</p> <p align="center"><a href="http://lh3.ggpht.com/-S3mNChlTixI/TjLhUGIIbCI/AAAAAAAAFGI/Yq_1VEhlJvY/s1600-h/Orochi32nm_6403.jpg"><img title="Orochi32nm_640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Orochi32nm_640" src="http://lh4.ggpht.com/-01_mngj-BtE/TjLhVMoRy-I/AAAAAAAAFGM/WyNrzvQj8Q4/Orochi32nm_640_thumb1.jpg?imgmax=800" width="644" height="524"></a>AMD Orochi 32 nm 8 MB L2 y 8 MB L3.</p> <p align="justify">En este artículo expondré algunas de mis opiniones sobre la micro arquitectura que va a marcar el futuro inmediato AMD de aquí a 2014.</p> <p align="justify"><font color="#ffff80" size="3">AMD Bulldozer y el proceso de 32 nm HKMG SOI</font></p> <p align="justify">En múltiples artículos he analizado en detalle el diseño interno de BD 32 nm. Cito los más destacables:</p> <blockquote> <p><a title="La L3 cache multibanco en AMD Bulldozer. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2011/04/l3-cache-amd-bulldozer-professionalsat.html"><strong>La L3 cache multibanco en AMD Bulldozer. Actualizado – LowLevelHardware</strong></a></p> <p><a title="AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-int-cores.html"><strong>AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware</strong></a></p></blockquote> <blockquote> <p><a title="AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-primeros-benchmarks.html"><strong>AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware</strong></a></p> <p><a title="AMD Bulldozer – ProfessionalSAT" href="http://professionalsat.blogspot.com/2010/08/amd-bulldozer-professionalsat.html"><strong>AMD Bulldozer – ProfessionalSAT</strong></a></p> <p><a title="La micro arquitectura de AMD Bulldozer. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/09/la-microarquitectura-de-amd-bulldozer.html"><strong>La micro arquitectura de AMD Bulldozer. Actualizado – LowLevelHardware</strong></a></p> <p><a title="Novedades y expectativas 2010. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/07/novedades-y-expectativas-2010.html"><strong>Novedades y expectativas 2010. Actualizado – LowLevelHardware</strong></a></p> <p><a title="AMD Bulldozer. Prestaciones estimadas – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/02/amd-bulldozer-prestaciones-estimadas.html"><strong>AMD Bulldozer. Prestaciones estimadas – LowLevelHardware</strong></a></p> <p><a title="Micro arquitectura AMD Bulldozer 2011. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/02/microarquitectura-amd-bulldozer-2011.html"><strong>Micro arquitectura AMD Bulldozer 2011. Actualizado – LowLevelHardware</strong></a></p> <p><a title="Previo AMD Bulldozer. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2009/12/previo-amd-bulldozer-lowlevelhardware.html"><strong>Previo AMD Bulldozer. Actualizado – LowLevelHardware</strong></a></p></blockquote> <p align="justify">Bulldozer está fabricado por Global Foundries en el nodo de proceso de 32 nm HKMG (High K Metal Gate) SOI (Silicon On Insulator) lo que le dará unas buenas perspectivas de mejora de frecuencia y reducción de consumo con el paso del tiempo.</p> <p align="justify">AMD a lo largo de su historia se ha caracterizado por ofrecer una continua mejora de su proceso de fabricación de semiconductores a los largo de la vida de cada nodo (para AMD unos 2 o 3 años).</p> <p align="justify">Podemos decir que AMD saca al mercado los primeros chips en un nodo concreto (45 nm, 32 nm,…) cuando tiene unos yields (rendimientos de fabricación) mínimos (debido a la brutal presión competitiva de Intel) pero suficientes aún a costa de unas frecuencias de funcionamiento iniciales reducidas.</p> <p align="justify">Con el paso de los meses AMD va mejorando paso a paso el proceso y se va reduciendo la disipación térmica, el voltaje y aumenta la frecuencia máxima de sus diseños.</p> <p align="center"><a href="http://lh4.ggpht.com/-HobWQjMo_zw/TjLhV-Bu4eI/AAAAAAAAFGQ/R02_C3ZZT6M/s1600-h/GloFo32nm_6403.jpg"><img title="GloFo32nm_640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="GloFo32nm_640" src="http://lh6.ggpht.com/-6uYSGnwnkJ0/TjLhWgkpC1I/AAAAAAAAFGU/0rIg8Is-MX8/GloFo32nm_640_thumb1.jpg?imgmax=800" width="644" height="485"></a>No es descabellado pensar en un 50% de mejora vs 45 nm para los 32 nm en AMD.</p> <p align="justify"><font color="#ffff80" size="3">AMD Orochi Bulldozer. 4 módulos, 8 INT cores, 4 dual 128 FMACs y 2 MB L2</font></p> <p align="justify">AMD Orochi va a rondar los casi 300 mm2 y está constituido por:</p> <blockquote> <p align="justify">4 módulos completos.</p> <p align="justify">4 bancos L3 de 2 MB y 16 vías (para un total de 8 MB L3 con 64 vías)</p> <p align="justify">4 buses HT 3.0</p> <p align="justify">2 controladoras DDR3 1866 MHz.</p> <p align="justify">Un North Bridge.</p></blockquote> <p><font color="#ffff80" size="3">El módulo en AMD Bulldozer</font></p> <p><a href="http://lh3.ggpht.com/-z_0mpbwPm0k/TjLhZRpLOKI/AAAAAAAAFGY/_ZA2eeIq5tA/s1600-h/Frontend3.png"><img title="Frontend" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Frontend" src="http://lh4.ggpht.com/-J5ePC5zK9YM/TjLhcVfktJI/AAAAAAAAFGc/wbGUtX1C22U/Frontend_thumb1.png?imgmax=800" width="644" height="338"></a></p> <p align="justify">Un módulo está integrado por:</p> <blockquote> <p align="justify">2 INT cores con 2 ALUs y 2 AGUs, cada uno con su L1d de 16KB y 4 vías.</p> <p align="justify">El Instruction Fetching desde la L1i compartida de 64KB y 2 vías.</p> <p align="justify">La lógica de decoding de 4 vías con la Microcode ROM.</p> <p align="justify">El circuitería de Branch Prediction.</p> <p align="justify">La FPU doble de 128 bit FMAC (Fused Multiply Accumulate).</p> <p align="justify">La unidad de control de caché que comprende las dos WCC (Write Combining Caches de 4 KB, una por INT core) que da acceso a la masiva cache L2 de 2 MB y 16 vías.</p></blockquote> <p align="justify"><font color="#ffff80" size="3">¿Qué podemos esperar de AMD Bulldozer?</font></p> <p align="justify">Bulldozer al igual que Llano (la APU de 32 nm) se fabrican en el nuevo proceso y por ello sufrirán inicialmente de unas frecuencia máximas no muy elevadas.</p> <p align="justify">Llano se ha estrenado a frecuencias máximas de 2.9 GHz, ahora está previsto que llegue al mercado una versión desbloqueada a 3.1 GHz con overclocks “sencillos” a 3.6 GHz.</p> <p align="justify">Los cores de un Phenom II (al menos en los últimos steppings de 45 nm) llegan con relativa facilidad a los 4 GHz. A Llano esta frecuencia le queda lejos y eso que está fabricado en el siguiente nodo que debería proporcionar una mejora teórica de un 20% en frecuencia.</p> <p align="center"><a href="http://lh3.ggpht.com/-DKqF26Rk1x0/TjLhczjBJnI/AAAAAAAAFGg/BSWC_PaYhrQ/s1600-h/AMD-32-nm-vs-45-nm3.png"><img title="AMD 32 nm vs 45 nm" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="AMD 32 nm vs 45 nm" src="http://lh4.ggpht.com/-GuvkT---Akg/TjLhdQU0I2I/AAAAAAAAFGk/R-tDqiXjbmU/AMD-32-nm-vs-45-nm_thumb1.png?imgmax=800" width="461" height="475"></a>Disipación térmica: AMD 45 nm vs 32 nm.</p> <p align="justify">Recordemos que cuando AMD empezó a fabricar CPUs de 65 nm también padeció problemas claros de escalado de frecuencia, en concreto los primeros AMD K8 Brisbane funcionaban a 2.6 GHz cuando los “antiguos” K8 90 nm funcionaban sin problema a 3 GHz.</p> <p align="justify">O pensemos en AMD Phenom Barcelona, fabricado en 65 nm en 2007 y que salió al mercado a unos meros 2.3 GHz cuando los K8 de la época (todavía de 90 nm) funcionaban a 3.2 GHz (Athlon 64 X2 6400+).</p> <p align="justify"><font color="#ffff80" size="4">Conclusiones</font></p> <p align="justify">Con esta coyuntura en mente podemos pensar lo siguiente según los diversos rumores y leaks que circulan:</p> <p align="justify">Bulldozer, inicialmente en su configuración completa (Orochi) para socket AM3+ es deseable que ronde los 3.5 GHz nominales con carga 100% en los 8 cores y que gracias al Turbo logre frecuencias con carga de cores parcial (mitad de cores al 100%) rondando los 4 GHz.</p> <p align="justify">AMD postula precios de unos 300 dólares para el top bin de Orochi, eso le sitúa en la banda de precios del Intel Core i7 2600K Sandy bridge: En mi opinión sería un éxito rotundo de AMD el posicionarse competitivamente en este nivel de precios.</p> <p align="justify">A mí personalmente me cuesta creerlo pero sería una excelente noticia para la sana competencia en el sector.</p> <p align="justify">En cualquier caso estamos a la vuelta de la esquina del lanzamiento previsto para Bulldozer, será en Septiembre si no hay cambio de planes. Para AMD sería una excelente noticia, y de paso dispararía su cotización bursátil, bastante deprimida tras los momentos gloriosos de los K7 y K8.</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font style="background-color: #141414" color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com2tag:blogger.com,1999:blog-6644579903369065806.post-17141127472941422182017-02-02T16:11:00.001+01:002017-02-02T16:11:23.985+01:00La L3 cache multibanco en AMD Bulldozer. Actualizado – LowLevelHardware<p align="justify">Poco a poco se acerca la comercialización de los procesadores basados en la nueva micro arquitectura de AMD prevista para el 7 de junio. <font color="#809ec2">Actualización:</font> finalmente llegará al mercado en Septiembre según los últimos roadmaps.</p> <p align="justify"><a href="http://lh6.ggpht.com/-kq0sFHhmn7A/Tfhc1maP7-I/AAAAAAAAFFw/veAJoMx8LJI/s1600-h/Bulldozer_32nm_640%25255B6%25255D.jpg"><img title="Bulldozer_32nm_640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bulldozer_32nm_640" src="http://lh4.ggpht.com/-gOeM8gIECpw/Tfhc2q_RpSI/AAAAAAAAFF0/EPy8RQQp3hk/Bulldozer_32nm_640_thumb%25255B2%25255D.jpg?imgmax=800" width="644" height="523"></a></p> <p align="justify">Conforme pasan los días se va filtrando nueva información sobre su estructura interna y también algunos datos acerca de su rendimiento, o por lo menos del rendimiento de algunos Engineering Samples.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TbmesdZljHI/AAAAAAAAE8g/7kuuIzeYzgs/s1600-h/Bullzorer_Module6.jpg"><img title="Bullzorer_Module" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bullzorer_Module" src="http://lh5.ggpht.com/__p96Ony2voA/TbmetM8D_aI/AAAAAAAAE8k/B8e5IeFUiIk/Bullzorer_Module_thumb2.jpg?imgmax=800" width="455" height="332"></a>Bajo el módulo con su L2 de 2 MB se observa el banco de L3 de 2 MB y 16 vías.</p> <p align="justify">En este artículo hablaré sobre la estructura de la caché L3 en Bulldozer y sobre su funcionamiento.</p> <p align="justify"><font color="#ffff80" size="3">La caché L3 multibanco: 4 x 2 MB</font></p> <p align="justify">AMD ha diseñado una caché L3 particionada en 4 sub arrays de 2 MB y 16 vías cada uno. la capacidad total en el chip de 4 módulos y 8 INT cores es de 8 MB y 64 vías de asociatividad.</p> <p align="justify">El diseño es <a href="http://en.wikipedia.org/wiki/CPU_cache#Exclusive_versus_inclusive" target="_blank">exclusivo</a>, la L3 no incluye los datos presentes en la L2 de 2 MB de cada módulo y en cambio es una <a href="http://en.wikipedia.org/wiki/CPU_cache#Victim_cache" target="_blank">Victim Cache</a>, donde se alojan las páginas desalojadas desde L2.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/Tbmetzraw-I/AAAAAAAAE8o/Sy-97vDNe1s/s1600-h/L3_13.jpg"><img title="L3_1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="L3_1" src="http://lh5.ggpht.com/__p96Ony2voA/Tbmeuk0J5TI/AAAAAAAAE8s/0xLxul2rgVk/L3_1_thumb1.jpg?imgmax=800" width="644" height="365"></a>La frecuencia estimada para la L3 es de 2.4 GHz.</p> <p align="justify">Con una frecuencia estimada en 2.4 GHz los anchos de banda son los siguientes:</p> <ul> <li> <div align="justify"><strong>307.2 GB/s</strong> en lectura gracias a sus dos accesos por ciclo de 128 bit y por módulo.</div>2 400 000 ciclos/s x 4 módulos x (2 accesos/ciclo x 128 bit) = 2 457 600 000 bit / 8bits/1 byte = 307 200 000 bytes/s = 307.2 GB/s <li> <div align="justify"><strong>153.6 GB/s</strong> en escritura gracias al acceso de 128 bit por ciclo.</div>2 400 000 ciclos/s x 4 módulos x 128 bit = 1 228 800 000 bit / 8bits/1 byte =152 600 000 bytes/s = 153.6 GB/s</li></ul> <p align="justify">Por lo que se desprende de este documento, la caché L3 está conectada con cada módulo Bulldozer mediante dos buses de lectura de 128 bit y un bus de escritura de 128 bit. Se me antoja una mejora absolutamente espectacular respecto a anteriores diseños de AMD (un Phenom II X6, por ejemplo, solamente cuenta con un bus de 64 bit por core hacia y desde la L3 de 6 MB y 24 vías). De ahí sus mediocres resultados en este apartado.</p> <p align="justify"><font color="#4bacc6"><strong>Especulación 1. </strong></font>Espero latencias L3 elevadas en Bulldozer.</p> <p align="justify">Teniendo en cuanta que la latencia efectiva L3 (load to use) es aditiva con la de los demás niveles y que la latencia L2 ya es conocida y va de los 18 a los 20 ciclos no será nada extraño que la latencia L3 efectiva en Bulldozer ronde los 50 ciclos.</p> <p align="justify">Otro dato que apunta en la misma dirección es que se mantiene el diseño asíncrono con buffers de sincronización de Shanghai (Phenom II 45 nm), con una frecuencia de cores variable por los modos Turbo desde los 2.8 hasta los 3.5 GHz, será difícil conseguir bajas latencias L3.</p> <p align="justify">Por último, una asociatividad tan elevada, 64 vías, aunque aumenta la tasa de aciertos L3, tampoco ayuda en cuanto a la latencia ya que hay que examinar 64 localizaciones cada vez en busca del dato o instrucción.</p> <p align="justify"><font color="#ffff80" size="3">8 MB = 4 bancos de 2 MB y 16 vías</font></p> <p align="justify">Una solución elegante que podría haber adoptado AMD consiste en que cada core tenga una latencia reducida de acceso hacia su banco local L3, es decir, que tenga “privilegio” de acceso a este banco y por ello mayor ancho de banda en GB/s y menor latencia en ciclos.</p> <p align="justify"><a href="http://lh5.ggpht.com/-6lxFZhAhK1U/Tfhc3YUPALI/AAAAAAAAFF4/BtQr4PrpOsk/s1600-h/Bulldozer_32nm_L3_640%25255B3%25255D.jpg"><img title="Bulldozer_32nm_L3_640" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bulldozer_32nm_L3_640" src="http://lh5.ggpht.com/-_qsDBg5cv9A/Tfhc4A-0hFI/AAAAAAAAFF8/1SHebxo8Pv0/Bulldozer_32nm_L3_640_thumb%25255B1%25255D.jpg?imgmax=800" width="644" height="199"></a></p> <p align="justify">Esto sólo lo descubriremos en la práctica en cuanto le “echemos el guante” a un stepping final (comercial) de Bulldozer, lo tendremos el día 7 de Junio. <font color="#809ec2">Actualización:</font> Bulldozer estará finalmente disponible en Septiembre si se cumplen las previsiones.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones</font></p> <p align="justify">AMD ha diseñado una caché L3 que marca un punto de partida desde sus actuales diseños de 45 nm y 6MB con 24 vías (Shanghai o Istambul). En Bulldozer son 4 bancos de 2 MB y 16 vías para un total de 64 vías.</p> <p align="justify">Tengo ganas de probar un stepping final para ver si la latencia a cada uno de los bancos es diferente o por el contrario idéntica. Si existe una controladora de L3 para los 4 bancos será una latencia constante y elevada… en cambio, si cuenta (como Sandy Bridge) con una controladora L3 por cada banco de 2 MB pueden haber sorpresas.</p> <p align="justify">En todo caso y con una L2 con 18 – 20 ciclos es difícil lograr latencias l3 muy recortadas. E s lógico esperar 10 ciclos más de latencia que en Sandy Bridge como mínimo (la L2 de SB tiene pipelines de 10 etapas Load to Use).</p> <p align="justify">Destaca su optimización pensando en una baja disipación térmica y sobretodo en un consumo reducido, por ello su frecuencia rondará los 2.4 GHz y su voltaje estará sobre los 1.15 a 1.20 V efectivos. Es un diseño convencional, de bus con conectividad total entre todos los agentes, cada módulo Bulldozer y cada slice L3.</p> <p align="justify">Hay que ser consciente del camino absolutamente divergente que ha adoptado Intel con Sandy Bridge 32 nm. La L3 es síncrona a los cores y funciona a la misma frecuencia que estos. Con ello consigue una bajísima latencia y un ancho de banda astronómico. Los diferentes bancos L3 se comunican entre sí mediante un ring bus bidireccional que aporta un gran ancho de banda y un funcionamiento “sencillo” a estos niveles.</p> <p align="justify">Echad un vistazo a la web de mi nueva empresa, un proyecto de gran envergadura que llevo preparando hace más de un año.</p> <p align="justify">Os lo recomiendo para<strong><em> </em></strong><a href="https://www.informaticapremium.com" target="_blank"><strong><em>diseño de sistemas de altas prestaciones</em></strong></a> optimizados al límite:</p> <p align="justify"><a href="https://www.informaticapremium.com" target="_blank"><img title="ip16_texto_300px_blanco422222" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="ip16_texto_300px_blanco422222" src="https://lh3.googleusercontent.com/-psTySCHedVk/WAjXpPLykoI/AAAAAAAAKuY/3PBIDQSV7TM/ip16_texto_300px_blanco422222%25255B2%25255D.png?imgmax=800" width="304" height="304"></a></p> <p align="justify">Allí tenéis a vuestra disposición el formulario de contacto, para consultas sobre este artículo hacedlo más abajo en la sección de comentarios.</p> <p align="justify">Y mi nuevo Blog de contenido muy técnico y actualizado donde encontraréis artículos míos sobre hardware, procesadores y sistemas y también otros posts de expertos programadores e informáticos sobre otros temas de actualidad:</p> <p align="justify"><a href="https://www.informaticapremium.com/blog/" target="_blank"><img title="infromaticapremium-blog422222" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="infromaticapremium-blog422222" src="https://lh3.googleusercontent.com/-EPlIfkY-cnY/WAjXp1_NyWI/AAAAAAAAKuc/nBy-yXG6SZ4/infromaticapremium-blog422222%25255B2%25255D.png?imgmax=800" width="381" height="311"></a></p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font style="background-color: #141414" color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com6tag:blogger.com,1999:blog-6644579903369065806.post-6604894673028500882017-02-02T16:11:00.000+01:002017-02-02T16:11:04.621+01:00AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware<p align="justify">En este técnico artículo voy a detallar la estructura de los pipelines de ejecución de los INT cores duales de un módulo del nuevo procesador AMD Bulldozer.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TbmXqbRZKDI/AAAAAAAAE8I/KywwRWXqinE/s1600-h/int_cluster%5B3%5D.jpg"><img title="int_cluster" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="int_cluster" src="http://lh5.ggpht.com/__p96Ony2voA/TbmXrCmXMxI/AAAAAAAAE8M/LUWoT34nB0Q/int_cluster_thumb%5B1%5D.jpg?imgmax=800" width="644" height="256"></a>Uno de los núcleos de enteros de Bulldozer.</p> <p align="justify"><font color="#ffff80" size="3">AMD Bulldozer. Filosofía de diseño.</font></p> <p align="justify">Con Bulldozer AMD ha roto con el diseño “convencional” para el núcleo de procesamiento. Hasta ahora, un procesador era un bloque que trabajaba conjunta y síncronamente compuesto de varias subunidades.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/Tas8XSjm-AI/AAAAAAAAE7o/xGrwnbbvrz4/s1600-h/Bulldozer%5B4%5D.png"><img title="Bulldozer" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bulldozer" src="http://lh5.ggpht.com/__p96Ony2voA/Tas8XwiqrKI/AAAAAAAAE7s/yO6ei1hGtks/Bulldozer_thumb%5B1%5D.png?imgmax=800" width="541" height="273"></a>AMD Bulldozer: Cada INT core y la unidad SIMD son funcionalmente independientes.</p> <p align="justify">En cambio en Bulldozer, AMD ha seguido un diseño <a href="http://lowlevelhardware.blogspot.com/2010/02/microarquitectura-amd-bulldozer-2011.html" target="_blank"><strong>CMT (Cluster Multi Processing)</strong></a> de coprocesamiento con subunidades independientes y con pipelines desacoplados mediante buffers y queues.</p> <p align="justify">Las ventaja principal de esta disposición reside en la compartición de algunas estructuras entre los dos cores de enteros. Cada core ejecuta un thread, cada thread debería afinitizarse a un core para dar un óptimo rendimiento.</p> <p align="justify">Aunque alguna de las unidades esté bloqueada procesando datos el Front End sigue ejecutando Fetching y computando los Branches llenando sus queues (colas) y buffers con resultados.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TZn7Zm2FciI/AAAAAAAAE6c/ulV9vNgvXnI/s1600-h/Orochi%5B3%5D.png"><img title="Orochi" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="Orochi" src="http://lh3.ggpht.com/__p96Ony2voA/TZn7csv_d9I/AAAAAAAAE6g/YEFRSX-wKsw/Orochi_thumb%5B1%5D.png?imgmax=800" width="644" height="527"></a>Die de Bulldozer con 4 módulos y 8 INT cores.</p> <p align="justify">Resumiendo, con Bulldozer AMD construye un procesador multicore de 8 núcleos partiendo de una unidad que llaman el módulo que incluye 2 INT cores, la unidad SIMD y la L2 de 2 MB y 16 vías.</p> <p align="justify">A lo largo de los dos últimos años he escrito varios artículos sobre AMD Bulldozer:</p> <blockquote> <p><a href="http://lowlevelhardware.blogspot.com/2011/04/amd-bulldozer-primeros-benchmarks.html" target="_blank"><strong>AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware</strong></a></p> <p><a href="http://professionalsat.blogspot.com/2010/08/amd-bulldozer-professionalsat.html" target="_blank"><strong>AMD Bulldozer – ProfessionalSAT</strong></a></p> <p><a href="http://lowlevelhardware.blogspot.com/2010/09/la-microarquitectura-de-amd-bulldozer.html" target="_blank"><strong>La micro arquitectura de AMD Bulldozer. Actualizado – LowLevelHardware</strong></a></p> <p><a href="http://lowlevelhardware.blogspot.com/2010/07/novedades-y-expectativas-2010.html" target="_blank"><strong>Novedades y expectativas 2010. Actualizado – LowLevelHardware</strong></a></p> <p><a href="http://lowlevelhardware.blogspot.com/2010/02/amd-bulldozer-prestaciones-estimadas.html" target="_blank"><strong>AMD Bulldozer. Prestaciones estimadas – LowLevelHardware</strong></a></p> <p><a href="http://lowlevelhardware.blogspot.com/2010/02/microarquitectura-amd-bulldozer-2011.html" target="_blank"><strong>Micro arquitectura AMD Bulldozer 2011. Actualizado – LowLevelHardware</strong></a></p> <p><a href="http://lowlevelhardware.blogspot.com/2009/12/previo-amd-bulldozer-lowlevelhardware.html" target="_blank"><strong>Previo AMD Bulldozer. Actualizado – LowLevelHardware</strong></a></p></blockquote> <p><font color="#ffff80" size="3">AMD Bulldozer Front End.</font></p> <p align="justify">El frontend de Bulldozer es compartido por todas las subunidades y está dimensionado y lógicamente desacoplado de las unidades de ejecución.</p> <p align="justify">Cada módulo contiene un sólo Front End que da servicio a tres unidades de ejecución:</p> <ul> <li> <div align="justify">Los dos INT cores con 4 pipelines de ejecución cada uno y con su Scheduler y Register File privados.</div> <li> <div align="justify">La unidad SIMD compartida (llamada desacertadamente por AMD y la prensa especializada FPU compartida) con su Schedule y Register File.</div> <div align="justify">Yo la llamo unidad SIMD porque no sólo incluye (como detallaré en otro artículo) dos pipelines SIMD SSE, AVX y X87 sino también 2 unidades de 128 bit SIMD de enteros SSE y MMX (INT SIMD SSE y MMX).</div></li></ul> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/Tas8aTIUJgI/AAAAAAAAE7w/qQxMMMVF0zU/s1600-h/Frontend%5B4%5D.png"><img title="Frontend" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Frontend" src="http://lh4.ggpht.com/__p96Ony2voA/Tas8dHuU4KI/AAAAAAAAE70/3QvR-kF5Gv0/Frontend_thumb%5B1%5D.png?imgmax=800" width="644" height="338"></a>En rojo resaltado el Front End de AMD Bulldozer.</p> <p align="justify">El Front End contiene entre otros:</p> <ul> <li> <div align="justify"><strong>La lógica de <font color="#ffff80">Branch Prediction</font></strong> que ha sido considerablemente rediseñada y ampliada de cara a aumentar su tasa de aciertos. Cuenta con un BTB de 2 niveles con miss penalties (penalización de fallo) de 15 a 20 ciclos en función del tipo de Branch.</div> <li> <div align="justify"><strong>Las etapas de</strong> <strong><font color="#ffff80">fetching y decoding</font></strong> cargan datos (32 bytes/ciclo) desde las cachés L1i (64 KB, 2 vías) y alimentan dos ventanas de 16 bytes (una por thread). Hay un IBB (Instruction Byte Buffers) de 16 niveles en la cola de fetching por thread (2 IBBs, con cada 16 bytes por nivel).</div> <div align="justify">Los Decoders pueden decodificar hasta 4 instrucciones / ciclo desde los IBB, cada ciclo se escanean dos de las ventanas de 16 bytes en busca de hasta cuatro instrucciones. En caso de instrucciones X86 complejas que hagan recurrir al Microcode Engine solamente se decodifica una instrucción por ciclo.</div></li></ul> <p align="justify"><font color="#ffff80" size="3">Bulldozer INT cores. Unidades de enteros.</font></p> <p align="justify">Cada unidad de enteros es como un pequeño core de ejecución de 64 bit con 4 pipelines discretos alimentados por un Scheduler independiente.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/Tas8fX8rQTI/AAAAAAAAE74/0nSBru_JJfo/s1600-h/INTcores%5B4%5D.png"><img title="INTcores" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="INTcores" src="http://lh5.ggpht.com/__p96Ony2voA/Tas8hw4-VtI/AAAAAAAAE78/sV3t4JmM2wk/INTcores_thumb%5B1%5D.png?imgmax=800" width="644" height="338"></a>En verde y azul los dos INT cores de un módulo Bulldozer.</p> <p align="justify">El núcleo de ejecución consta de 4 pipelines de 64 bit con un diseño peculiar y novedoso que incluye las unidades combinadas AGLU:</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/Tas8iU58hCI/AAAAAAAAE8A/XoHbFhov5g4/s1600-h/Bulldozer_INT_PIPES%5B4%5D.png"><img title="Bulldozer_INT_PIPES" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Bulldozer_INT_PIPES" src="http://lh6.ggpht.com/__p96Ony2voA/Tas8i38HKEI/AAAAAAAAE8E/egRNxi2NNFs/Bulldozer_INT_PIPES_thumb%5B1%5D.png?imgmax=800" width="541" height="273"></a>Cuatro unidades de ejecución de enteros con Scheduler común.</p> <p align="justify">La longitud de los pipelines de enteros ha crecido en Bulldozer de un modo espectacular hasta las 18 o 20 etapas. Comparado con las 12 etapas de AMD Phenom destaca como un diseño claramente dirigido a altas frecuencias que en mi modesta opinión sólo tiene sentido si supera con claridad los 4 GHz en modos Turbo para compensar su gran penalización en caso de fallo de predicción Branch.</p> <p align="justify"><a href="http://lh4.ggpht.com/__p96Ony2voA/TbmXrnLgA7I/AAAAAAAAE8Q/pKTpilmICKw/s1600-h/INT_cores%5B7%5D.jpg"><img title="INT_cores" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="INT_cores" src="http://lh5.ggpht.com/__p96Ony2voA/TbmXsIUbMhI/AAAAAAAAE8U/SP5lHubjPss/INT_cores_thumb%5B3%5D.jpg?imgmax=800" width="322" height="140"></a></p> <p align="center">Los dos INT cores que forman parte de un módulo en AMD Bulldozer.</p> <p align="justify">Lo novedoso de los INT cores son sus unidades híbridas <font color="#ffff80">AGLU</font>:</p> <blockquote> <p align="justify">Son unidades AGU (de generación de direcciones de memoria, address generators) pero con funciones básicas ALU, es decir, pueden procesar instrucciones simples ALU (LEA 64, INC) echando una mano para compensar el escaso ancho de proceso del core.</p></blockquote> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TbmXs0UaJbI/AAAAAAAAE8Y/bE2V1NG_qpU/s1600-h/int_cluster_AGLUS%5B3%5D.jpg"><img title="int_cluster_AGLUS" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="int_cluster_AGLUS" src="http://lh5.ggpht.com/__p96Ony2voA/TbmXtuXFPhI/AAAAAAAAE8c/M3rUCopIOrk/int_cluster_AGLUS_thumb%5B1%5D.jpg?imgmax=800" width="644" height="256"></a>Resaltadas las dos AGLUs pertenecientes a uno de los INT cores.</p> <p align="justify">Las unidades de ejecución completas (Full ALU) EX0 y EX1 incluyen hardware específico para IMUL e IDIV:</p> <ul> <li> <div align="justify"><strong>EX0</strong> contiene una unidad de <font color="#ffff80">división de enteros</font> parcialmente pipelinizada y con latencia y capacidad de proceso variable en función de la precisión. Aunque examinando detenidamente la documentación parece que <u><em>más bien se trata de una unidad “virtual”</em></u> ya que la instrucción IDIV se decodifica en el Microcode Engine y se secuencia en instrucciones sencillas ALU que se ejecutan en EX0. Además incluye una unidad para LZCNT y POPCNT.</div> <li> <div align="justify"><strong>EX1</strong> por su parte contiene un rapidísimo <font color="#ffff80">multiplicador de enteros</font> pipelinizado y de bajísima latencia.</div> <li>Ambas unidades procesan Branches e instrucciones de enteros complejas.</li></ul> <p align="justify">Cada INT core cuenta con su Scheduler discreto e independiente y ejecuta un thread, además supervisa el procesamiento en las unidad SIMD compartida de las instrucciones FPU X87, FPU SIMD SSE / AVX o INT SIMD MMX / SSE.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones</font></p> <p align="justify">El diseño de Bulldozer me deja un sabor agridulce, AMD sin duda ha dado un paso adelante y si consigue ponerlo en el mercado a frecuencias adecuadas (4 GHz o más en Turbo Mode) tendrá un procesador globalmente competitivo con Sandy Bridge.</p> <p align="justify">Hay detalles que sinceramente no me acaban de convencer como algunas latencias muy elevadas en algunas instrucciones y sin duda será inferior a Sandy Bridge en proceso FPU AVX 256 bit.</p> <p align="justify">Bulldozer puede ser un excelente procesador en cargas de enteros de 8 threads, queda la incógnita acerca del rendimiento de su caché L3 y el subsistema de memoria.</p> <p align="justify">Las latencias L3 serán altas, creo que superiores a los 50 ciclos load to use, razonable me parecen 60 incluso. Hay que ver como compensa efectivamente el Hardware Prefetch este hecho. La elevada latencia L2 (de 18 a 20 ciclos) la compensa parcialmente su gran tamaño (Sandy Bridge se conforma con 256 KB, 8 veces menos, pero con latencias de 9-10 ciclos).</p> <p align="justify">Tengamos en cuenta que la frecuencia del Uncore que incluye la caché L3 multibanco (4 bancos de 2 MB) de 8 MB será muy inferior a la de los cores, probablemente se mueva sobre los 2.4 – 2.66 GHz lo que afectará a la latencia L3 y de memoria.</p> <p align="justify">El panorama en 2011 será divertido… nos vemos en la próxima entrega con un análisis de la unidad SIMD de 4 vías compartida de proceso FPU SSE / AVX / X87 y INT SIMD SSE / MMX.</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; text-align: justify; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: justify; line-height: 18px"><strong style="text-align: justify"><font style="text-align: justify; background-color: #141414" color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com4tag:blogger.com,1999:blog-6644579903369065806.post-16085081762183800972017-02-02T16:10:00.002+01:002017-02-02T16:10:42.714+01:00AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware<p align="justify">Mucho se ha hablado en los últimos días de los resultados prestacionales aparecidos en internet de dos Engineering Samples del nuevo procesador AMD Bulldozer.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TZn7Zm2FciI/AAAAAAAAE6c/ulV9vNgvXnI/s1600-h/Orochi%5B3%5D.png"><img title="Orochi" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Orochi" src="http://lh3.ggpht.com/__p96Ony2voA/TZn7csv_d9I/AAAAAAAAE6g/YEFRSX-wKsw/Orochi_thumb%5B1%5D.png?imgmax=800" width="644" height="527"></a>Die de Bulldozer con 4 módulos y 8 INT cores.</p> <p align="justify">Los resultados han aparecido en OpenBenchmarking.org. Se trata de la versión para servidores (Opteron) de Bulldozer, en unas máquinas configuradas con 2 chips Magny Cours (MCM de dos dies de 8 INT cores cada una, total por chip: 16 INT cores) para un total de 32 INT cores:</p> <p align="justify"><a title="http://openbenchmarking.org/s/AMD%20Eng%20Sample%20ZS182045TGG43_2" href="http://openbenchmarking.org/s/AMD%20Eng%20Sample%20ZS182045TGG43_2"><strong>http://openbenchmarking.org/s/AMD%20Eng%20Sample%20ZS182045TGG43_2</strong></a></p> <p align="justify"><a title="http://openbenchmarking.org/s/AMD%20Eng%20Sample%20ZS182045TGG43_28" href="http://openbenchmarking.org/s/AMD%20Eng%20Sample%20ZS182045TGG43_28"><strong>http://openbenchmarking.org/s/AMD%20Eng%20Sample%20ZS182045TGG43_28</strong></a></p> <p align="justify"><a href="http://openbenchmarking.org/" target="_blank"><img title="obo-logo-header[1]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="obo-logo-header[1]" src="http://lh4.ggpht.com/__p96Ony2voA/TZn7dTXhbKI/AAAAAAAAE6k/13w3W4sm_pU/obo-logo-header14.png?imgmax=800" width="320" height="79"></a></p> <p align="justify">Debo expresar mis reservas sobre, no tanto la veracidad de los resultados, si no sobre la representatividad de estos datos. Por lo que se deriva del análisis de las puntuaciones en estos benchmarks, está claro que es un stepping muy temprano de Bulldozer, funcionando sobre placas base pre-release y con BIOS sin optimización alguna.</p> <p align="justify">Los hechos que apuntan a estas conclusiones son,principalmente, el ínfimo rendimiento en algunos de los tests que afectan al subsistema de memoria.</p> <p align="justify">Es muy posible que en estos procesadores haya algunas características clave desactivadas o deshabilitadas que degradan terriblemente el rendimiento. Algunos de las unidades previsiblemente desactivadas son los siguientes:</p> <ol> <li> <div align="justify">El Probe Filter, encargado de reducir el tráfico de coherencia entre las cachés de cada die. Recordemos que en los sistemas de pruebas hay dos CPUs MCM (Multi Chip Module) para 4 dies en total (32 INT cores y 16 nódulos).</div> <li> <div align="justify">El último nivel de los TLB.</div></li></ol> <p align="justify">Los resultados de <a href="http://www.cs.virginia.edu/stream/ref.html" target="_blank">Stream</a> son tan bajos que claramente apuntan en esta dirección: unos meros 6 GB/s.</p> <p align="justify">Un sistema equivalente actual de AMD con dos chips Magny Cours (MCM de dos dies de 6 cores. 12 cores en total por chip. 24 cores por sistema) supera los 27 GB/s en el mismo test.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TZn7exIE7FI/AAAAAAAAE6o/1rX3ANL-eok/s1600-h/Bullzorer_Module%5B3%5D.png"><img title="Bullzorer_Module" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bullzorer_Module" src="http://lh4.ggpht.com/__p96Ony2voA/TZn7gVg99DI/AAAAAAAAE6s/rgBkkt6-x04/Bullzorer_Module_thumb%5B1%5D.png?imgmax=800" width="475" height="350"></a>Uno de los módulos de Bulldozer con 2 INT cores y sus cachés L2 2 MB y L3 2 MB.</p> <p align="justify">Otras dudas que me asaltan sobre estos chips ES son las siguientes:</p> <ol> <li> <div align="justify">¿Estará activado o no el Turbo Mode? Yo personalmente abogo por que no. El variar la frecuencia de una CPU en funcionamiento no es precisamente un proceso sencillo. Exige mucha validación y tunning de BIOS así como de la parte eléctrica de la placa base y no suele estar disponible hasta los steppings finales.</div> <li> <div align="justify">La frecuencia del uncore o North Bridge que comprende los cuatro bancos de 2 MB de caché L3 es desconocida y con seguridad muy inferior a la final.</div> <li> <div align="justify">¿Se hace uso de AVX en el código del conjunto de pruebas? Y si es es así, en qué modo.</div></li></ol> <p align="justify">Seguramente la frecuencia de 1.8 / 1.9 GHz apuntada en los resultados sea fija y no aumente los 500 MHz que AMD ha estipulado para el Turbo Mode en Bulldozer con carga full threaded.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TZn7i6v-SlI/AAAAAAAAE6w/X9ivZtvQA8k/s1600-h/Bullzorer_Module_Croquis%5B3%5D.png"><img title="Bullzorer_Module_Croquis" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Bullzorer_Module_Croquis" src="http://lh3.ggpht.com/__p96Ony2voA/TZn7loBX0WI/AAAAAAAAE60/Fj2QZ4cex7s/Bullzorer_Module_Croquis_thumb%5B1%5D.png?imgmax=800" width="644" height="338"></a>Distribución de unidades en un módulo de Bulldozer.</p> <p align="justify"><font color="#ffff80" size="3">Frecuencias probables de las versiones comerciales</font></p> <p align="justify">Las frecuencias finales de los Opteron Interlagos (MCM de 2 dies de 8 INT cores en un chip) de 16 INT cores (8 nódulos) probablemente rondarán inicialmente los 2.4 – 2.8 GHz más los 500 MHz en carga gracias al Turbo.</p> <p align="justify">En los diseños de sobremesa, el octal core (8 INT cores, 4 módulos) es razonable y deseable que al menos esté sobre los 3.0 – 3.4 GHz inicialmente. Me queda la duda sobre la frecuencia del North Bridge y los 4 bancos de L3 de 2 MB, lo lógico sería que no bajase de los 2.4 GHz.</p> <p align="justify"><font color="#ffff80" size="3">Pequeño apunte, prestaciones</font></p> <p align="justify">En proceso de enteros, Bulldozer parece ser un buen diseño multithread pero con graves limitaciones en código single threaded comparado con Sandy Bridge.</p> <p align="justify">En coma flotante X87 o SSE no romperá records de velocidad en cálculo paralelo, aunque tendrá un excelente rendimiento single threaded.</p> <p align="justify">La posición de Bulldozer en el mercado de CPUs dependerá principalmente de la frecuencia final del diseño. Si el octal core de sobremesa se queda en los 3.2 GHz (más los 500 MHz del Turbo) pasará serias dificultades frente a <a href="http://professionalsat.blogspot.com/2011/04/intel-z68-y-el-futuro-x79.html" target="_blank">Sandy Bridge E</a> (la versión para expertos de SB, prevista para Q4 de 2011).</p> <p align="justify">Si se acerca a los 4 GHz podrá plantarle cara en igualdad de condiciones.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones</font></p> <p align="justify">Poco puedo sacar en claro de estos escasos datos inconexos y con un extrema falta de contexto. Es prácticamente desconocida la información sobre la configuración hardware y software y sobre las condiciones de las pruebas.</p> <p align="justify">En mi opinión estos primeros resultados constituyen una guía y más bien un umbral mínimo en las prestaciones de los steppings comerciales de Bulldozer.</p> <p align="justify">Una observación que me impresiona y sorprende al analizar los datos es que en algunos tests Interlagos mejora los resultados de Magny Cours hasta en un 28 % pero en otros obtiene una velocidad de solamente un 60% (normalizando Magny Cours al 100%).</p> <p align="justify">Me recuerda a los benchmarks de los sistemas Pentium 4 comparados con los AMD Athlon o Pentium III… Esperemos que solo sea una desafortunada primera impresión… Aunque mis análisis micro arquitecturales de Bulldozer hasta la fecha apuntan en esta dirección.</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font style="background-color: #141414" color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com1tag:blogger.com,1999:blog-6644579903369065806.post-64822546790365515212017-02-02T16:10:00.001+01:002017-02-02T16:10:23.539+01:00Intel Core i7 2600 K. Análisis cachés L0i 6 KB y L3 unificada 8 MB – LowLevelHardware<p align="justify">Con Sandy Bridge, Intel ha innovado en el diseño de cachés y como primicia nos ofrece una caché L0i (caché de instrucciones) que contiene instrucciones ya decodificadas procedentes de la caché L1 de 32 KB y 8 vías a través de los decoders x86.</p> <p align="justify"><font color="#ffff80" size="3">La micro op cache o L0i de 1500 micro ops</font></p> <p align="center"><font color="#ffff80" size="3"></font><a href="http://lh3.ggpht.com/__p96Ony2voA/TVa3M5jBhzI/AAAAAAAAE1c/hshAM2EqEd4/s1600-h/DCache_RAM_Lat_rmma_20110209_055954_0734%5B1%5D.png"><img title="DCache_RAM_Lat_rmma_20110209_055954_0734" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="DCache_RAM_Lat_rmma_20110209_055954_0734" src="http://lh3.ggpht.com/__p96Ony2voA/TVa3NfnflsI/AAAAAAAAE1g/vq_CBNtDR88/DCache_RAM_Lat_rmma_20110209_055954_0734_thumb%5B1%5D.png?imgmax=800" width="644" height="484"></a>Data caches: observamos las cuatro zonas de caché y la RAM.</p> <p align="justify">La caché de instrucciones de nivel 0 (L0i) de los procesadores Sandy Bridge es una caché de micro operaciones, es decir, de instrucciones ya descodificadas en un formato interno, propietario del procesador.</p> <p align="justify">Para un análisis a fondo de la micro op cache os recomiendo el siguiente enlace:</p> <p align="justify"><a title="Intel Sandy Bridge Core i7 2600 K. Análisis X86 decoders y L0i micro op cache – ProfessionalSAT" href="http://professionalsat.blogspot.com/2011/03/intel-sandy-bridge-core-i7-2600-k.html"><strong>Intel Sandy Bridge Core i7 2600 K. Análisis X86 decoders y L0i micro op cache – ProfessionalSAT</strong></a></p> <p align="justify">La caché L1i e igualmente los niveles superiores contienen las complicadas instrucciones X86 sin descodificar. Intel, que en su día diseño la ISA X86, sabe que es compleja y a veces absurda en su arquitectura y por ello ha tomado esta medida novedosa, la inclusión de un nuevo nivel de caché L0.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TVa3OCwc95I/AAAAAAAAE1k/4hZrKqD75ts/s1600-h/SB_uopcache%5B3%5D.jpg"><img title="SB_uopcache" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="SB_uopcache" src="http://lh3.ggpht.com/__p96Ony2voA/TVa3Ox11WXI/AAAAAAAAE1o/T1vGz9gBe3w/SB_uopcache_thumb%5B1%5D.jpg?imgmax=800" width="604" height="414"></a>L0i en Sandy Bridge.</p> <p align="justify">La tasa de aciertos se cifra en torno al 80% para un tamaño sobre los 6 KB y una transferencia pico de 32 bytes / ciclo.</p> <p align="justify">En las prueba de bajo nivel que he realizado su tamaño efectivo ronda los 2 a 4 KB, con unas latencias prácticamente ridículas de 2 ciclos load to use en lectura secuencial o en acceso pseudo aleatorio.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TVa3PldoRLI/AAAAAAAAE1s/f9PCzx_dqzA/s1600-h/rmma_20110209_064736_0281%5B1%5D.png"><img title="rmma_20110209_064736_0281" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="rmma_20110209_064736_0281" src="http://lh4.ggpht.com/__p96Ony2voA/TVa3QHjhFgI/AAAAAAAAE1w/ugUPbM8s8y8/rmma_20110209_064736_0281_thumb%5B1%5D.png?imgmax=800" width="644" height="484"></a>Instruction cache: la L0i obtiene una increíble latencia de <strong>2 ciclos</strong>.</p> <p align="justify">En acceso aleatorio puro (random access) su tasa de aciertos es cero (lógicamente las instrucciones no pueden estar decodificadas y cacheadas previamente a su petición ya que se trata de un patrón aleatorio) y se dan en su caso aciertos de L1i (L1i hits) con los habituales 4 ciclos de latencia.</p> <p align="justify"><font color="#ffff80" size="3">Caché L3 unificada y multibanco de 8 MB y 16 vías</font></p> <p align="justify">Sandy Bridge cuenta con una L3 con cuatro bancos de 2 MB y 16 vías. El acceso al banco local de cada core se hace directamente y con baja latencia. A los otros tres bancos se llega a través del Ring Bus.</p> <p align="center"><img alt="SB_4C_630p_cores" src="http://lh6.ggpht.com/__p96Ony2voA/TB37lcZbcaI/AAAAAAAAESQ/Vni_TqL8Zkw/SB_4C_630p_cores_thumb%5B1%5D.png?imgmax=800">Sandy Bridge 32 nm. Bajo cada core está su banco local L3 de 2 MB.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TVa3QlTbpmI/AAAAAAAAE10/ygiExXWMoAk/s1600-h/L3_Lat_2048K_M2_rmma_20110211_135757_0687%5B1%5D.png"><img title="L3_Lat_2048K_M2_rmma_20110211_135757_0687" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="L3_Lat_2048K_M2_rmma_20110211_135757_0687" src="http://lh4.ggpht.com/__p96Ony2voA/TVa3RPy5CFI/AAAAAAAAE14/5qgJto-7kM4/L3_Lat_2048K_M2_rmma_20110211_135757_0687_thumb%5B1%5D.png?imgmax=800" width="644" height="484"></a>Acceso L3 con bloque de 2048 KB.</p> <p align="justify">La latencia efectiva se sitúa en los 34 ciclos en acceso pseudo aleatorio y en 40 ciclos en modo random (aleatorio). Son resultados muy brillantes.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TFaVLxpXL1I/AAAAAAAAEVw/1SomRxYfqvg/s1600-h/SandyBridge_die4.png"><img title="SandyBridge_die" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="SandyBridge_die" src="http://lh6.ggpht.com/__p96Ony2voA/TFaVN-_IYzI/AAAAAAAAEV0/UCuHQleQJNg/SandyBridge_die_thumb2.png?imgmax=800" width="644" height="237"></a>El core de Sandy Bridge junto con su banco local L3 de 2 MB.</p> <p align="justify">Para tamaños de acceso mayores de 2 MB, el núcleo de ejecución se ve obligado a acceder a bancos de L2 de 2 MB no locales a través del Ring Bus. Por ello, lógicamente la latencia se incrementa.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TVa3Rl8SyCI/AAAAAAAAE18/NTXPRrkd56Y/s1600-h/L3_Lat_6144K_M2_rmma_20110211_140032_0843%5B1%5D.png"><img title="L3_Lat_6144K_M2_rmma_20110211_140032_0843" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="L3_Lat_6144K_M2_rmma_20110211_140032_0843" src="http://lh4.ggpht.com/__p96Ony2voA/TVa3SF0RHaI/AAAAAAAAE2A/EuPY-oFaIj4/L3_Lat_6144K_M2_rmma_20110211_140032_0843_thumb%5B1%5D.png?imgmax=800" width="644" height="484"></a>Acceso L3 con bloque de 6 MB (6144 KB).</p> <p align="justify">En los Core i7 2600K contamos con la implementación completa de cuatro bancos L3 para un total de 8 MB, en otras versiones inferiores Intel deshabilita uno de los bancos quedando en 6 MB L3.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones</font></p> <p align="justify">Esperad en breve una ampliación de este artículo, tengo bastantes datos técnicos y microarquitecturales que agregar pero voy realmente mal de tiempo… En concreto estoy preparando un análisis más exhaustivo de la L0i o micro op cache incluyendo una investigación del ancho de banda de descodificación con distintos tipos de instrucciones.</p> <p align="justify">Espero que con esta pequeña introducción tengáis material suficiente para pensar como se mejora un diseño ya excelente partiendo de un core Nehalem / Westmere.</p> <p align="justify"><strong><font color="#4bacc6"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><font face="Arial"><font style="font-size: 9.8pt">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></font></span></span></font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-61042383336584843702017-02-02T16:10:00.000+01:002017-02-02T16:10:06.640+01:00Intel Series 6 chipsets stepping B3 – LowLevelHardware<p align="justify">Intel ha anunciado que a partir del 14 de Febrero estarán disponibles los primeros samples del renovado stepping B3 de los chipsets de la serie 6 afectados por el bug en las controladores SATA2.</p> <p align="center"><a href="http://qdms.intel.com/dm/d.aspx/034C09F1-2F86-45A0-8A51-85A33E4B4969/PCN110456-00.pdf"><img title="Intel_P67_H67_B3_01" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Intel_P67_H67_B3_01" src="http://lh6.ggpht.com/__p96Ony2voA/TXN_ExGTClI/AAAAAAAAE3o/RosVMAlY4u8/Intel_P67_H67_B3_014.png?imgmax=800" width="589" height="177"></a><a href="http://qdms.intel.com/dm/d.aspx/034C09F1-2F86-45A0-8A51-85A33E4B4969/PCN110456-00.pdf"><strong><font size="2">Intel Product Change Notification 110456 – 00.</font></strong></a></p> <p align="justify">Verdaderamente es llamativo como en un periodo de tiempo tan reducido han logrado producir chips funcionales con el error de diseño corregido.</p> <p align="justify">Para un análisis profundo del tema os recomiendo otros de mis artículos:</p> <p align="justify"><a title="Intel Sandy Bridge- Análisis de situación – ProfessionalSAT" href="http://professionalsat.blogspot.com/2011/02/intel-sandy-bridge-analisis-de.html"><strong><font size="2">Intel Sandy Bridge- Análisis de situación – ProfessionalSAT</font></strong></a></p> <p align="justify"><a title="Cougar Point Intel 6 Series Chipset SATA2 bug. Actualizado – ProfessionalSAT" href="http://professionalsat.blogspot.com/2011/02/intel-6-series-chipsets-sata-bug.html"><strong><font size="2">Cougar Point Intel 6 Series Chipset SATA2 bug. Actualizado – ProfessionalSAT</font></strong></a></p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TXN_Fl7O6kI/AAAAAAAAE3s/lVHXuMsBRTw/s1600-h/Intel_P67_H67_B3_023.png"><img title="Intel_P67_H67_B3_02" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="Intel_P67_H67_B3_02" src="http://lh4.ggpht.com/__p96Ony2voA/TXN_GQH7eKI/AAAAAAAAE3w/cFYaQed0L48/Intel_P67_H67_B3_02_thumb1.png?imgmax=800" width="614" height="613"></a>El nuevo B3 es pin compatible con los anteriores diseños.</p> <p align="justify">En principio los fabricantes de placas base empezarán a recibir los primeros chips el día 14, es decir, mañana mismo. Desde ese momento comenzará la fabricación de las nuevas placas.</p> <p align="justify">Incluso se especula en que en algunos diseños sería posible desoldar el chip B2 defectuoso sustituyéndolo por el nuevo B3 sin cambiar la placa ni otros cambios.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TXN_GzwxTfI/AAAAAAAAE30/fx8hC9TsBcY/s1600-h/Intel_P67_H67_B3_033.png"><img title="Intel_P67_H67_B3_03" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Intel_P67_H67_B3_03" src="http://lh5.ggpht.com/__p96Ony2voA/TXN_IYoECKI/AAAAAAAAE34/qucogTJ4dJk/Intel_P67_H67_B3_03_thumb1.png?imgmax=800" width="644" height="471"></a>Lista de chipsets afectados.</p> <p align="justify"><font color="#ffff80" size="3">Conclusiones:</font></p> <p align="justify">Quizás haya suerte y en breve tengamos placas funcionales y libres de errores para poder montar los primeros sistemas Sandy Bridge de sobremesa con garantías.</p> <p align="justify">En cualquier caso, en mi opinión, Intel debe hacer <strong><em>algo más</em></strong> para recuperar la confianza, en muchos casos perdida y en otros debilitada, del consumidor final. La gente de Intel lo sabe y espero que obren en consecuencia con medidas claras.</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font color="#4bacc6" face="Arial"><font style="font-size: 9.8pt">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-79103350233146492952017-02-02T16:09:00.002+01:002017-02-02T16:09:49.205+01:00Módulos DDR3 de 4 GB. Actualizado – LowLevelHardware<p align="justify">Estos días estoy realizando algunos experimentos con módulos DDR3 de 4 GB de capacidad en un Core i7 930 a 4.2 GHz (181 MHz X23 Turbo Mode) con un total de 12 GB. En sendos artículos de ProfessionalSAT detallo algunos aspectos de sistemas diseñados con estos componentes:</p> <ul> <li> <div align="justify"><a title="Windows 7 X64 Ultimate y 24 GB de DDR3 – ProfessionalSAT" href="http://professionalsat.blogspot.com/2010/11/windows-7-x64-ultimate-y-24-gb-de-ddr3.html">Windows 7 X64 Ultimate y 24 GB de DDR3 – ProfessionalSAT</a></div> <li> <div align="justify"><a title="24 GB y 18 GB en Core i7 930 – ProfessionalSAT" href="http://professionalsat.blogspot.com/2010/11/24-gb-y-18-gb-en-core-i7-930.html">24 GB y 18 GB en Core i7 930 – ProfessionalSAT</a></div></li></ul> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TNG4Nkv4E_I/AAAAAAAAEjc/VF62mMLfIwQ/s1600-h/3DIMM_4GB_DDR3_1333%5B3%5D.jpg"><img title="3DIMM_4GB_DDR3_1333" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="3DIMM_4GB_DDR3_1333" src="http://lh4.ggpht.com/__p96Ony2voA/TNG4OtlIQ5I/AAAAAAAAEjg/dwrJgVKXv4w/3DIMM_4GB_DDR3_1333_thumb%5B1%5D.jpg?imgmax=800" width="634" height="318"></a>3 DIMM DDR3 1333 de 4 GB cada uno.</p> <p align="justify">Las primeras conclusiones son las siguientes:</p> <ul> <li> <div align="justify">No puedo configurarlos como hago normalmente con sus homólogos de 2 GB a 7-7-7-14 1T en placas base de socket 1366 para Core i7 de la serie 900, en este caso solo he conseguido llegar a 8-8-8-24 2T de manera estable.</div> <li> <div align="justify">También noto una disipación térmica superior dando una temperatura en carga 100% bastante elevada en los chips, siendo recomendable una refrigeración directa.</div> <li> <div align="justify">Su frecuencia máxima con timings nominales 9-9-9-27 2T llega a 1500 MHz a 1.64V.</div></li></ul> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TNG4PWu_c5I/AAAAAAAAEjk/y4Aza9mbi-M/s1600-h/DSCF0522%5B3%5D.jpg"><img title="DSCF0522" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="DSCF0522" src="http://lh5.ggpht.com/__p96Ony2voA/TNG4QQcmYqI/AAAAAAAAEjo/bkvmdHGwj68/DSCF0522_thumb%5B1%5D.jpg?imgmax=800" width="634" height="476"></a>Los chips son bastante mayores en superficie que sus análogos de 2 GB.</p> <p align="justify">Ésta cantidad de memoria (12 GB) ayuda sobremanera a Windows 7 X64, sobretodo en compresión de grandes volúmenes de datos con 7zip en modo LZMA2 8 threads con grandes tamaños de diccionario. Es una tarea que ejecuto rutinariamente y el tiempo de compresión decrece de modo notable.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TNG4RFySg8I/AAAAAAAAEjs/ILo9ky9kAQ8/s1600-h/DSCF0521%5B7%5D.jpg"><img title="DSCF0521" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="DSCF0521" src="http://lh5.ggpht.com/__p96Ony2voA/TNG4R6QsBkI/AAAAAAAAEjw/rTe9dX657t4/DSCF0521_thumb%5B3%5D.jpg?imgmax=800" width="634" height="462"></a>Detalle de uno de los chips.</p> <p align="justify">Otra posible utilización de esta cantidad de memoria para un usuario que no la necesite por su mix software es asignar 4 GB para un <a href="http://professionalsat.blogspot.com/2010/03/ramdisk-en-intel-core-i7-triple-channel.html">disco RAM (RAMDisk)</a> quedándonos con 8 GB de memoria para el sistema operativo.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TNG4Stlre9I/AAAAAAAAEj0/FiUQwK7fPX0/s1600-h/DSCF0523%5B3%5D.jpg"><img title="DSCF0523" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="DSCF0523" src="http://lh5.ggpht.com/__p96Ony2voA/TNG4TjO1NYI/AAAAAAAAEj4/KyEURqSpLxo/DSCF0523_thumb%5B1%5D.jpg?imgmax=800" width="634" height="425"></a>Kingston KVR1333D3N9/4G</p> <p align="justify">Sin duda en poco tiempo veremos nuestros sistemas poblados por módulos de esta capacidad conforme su precio baje en comparación con sus homólogos de 2 GB.</p> <p align="justify">Cuando los fabricantes de memoria pasen al siguiente nodo de fabricación, con la consiguiente reducción de voltaje y superficie del die, estaremos en condiciones de aumentar la frecuencia de módulos de esta capacidad sin problemas.</p> <p style="line-height: 1.4" align="justify"><font face="Arial"><font style="font-size: 9.8pt" color="#4bacc6"><strong>Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</strong></font></font></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0tag:blogger.com,1999:blog-6644579903369065806.post-20091967193525723102017-02-02T16:09:00.001+01:002017-02-02T16:09:31.772+01:00Microarquitectura en imágenes (I) Execution Trace cache. Actualizado – LowLevelHardware<div align="justify">La<strong> <span id="SPELLING_ERROR_0" class="blsp-spelling-error"><span id="SPELLING_ERROR_0" class="blsp-spelling-error"><span id="SPELLING_ERROR_0" class="blsp-spelling-error">Execution</span></span></span> Trace Cache</strong> es uno de los signos <span id="SPELLING_ERROR_0" class="blsp-spelling-error"><span id="SPELLING_ERROR_0" class="blsp-spelling-error"><span id="SPELLING_ERROR_0" class="blsp-spelling-error"><span id="SPELLING_ERROR_1" class="blsp-spelling-error"><span id="SPELLING_ERROR_1" class="blsp-spelling-error"><span id="SPELLING_ERROR_1" class="blsp-spelling-error">identificativos</span></span></span></span></span></span> de la antigua arquitectura <a href="http://www.intel.com/technology/itj/q12001/pdf/art_2.pdf"><span id="SPELLING_ERROR_1" class="blsp-spelling-error"><span id="SPELLING_ERROR_1" class="blsp-spelling-error"><span id="SPELLING_ERROR_1" class="blsp-spelling-error"><span id="SPELLING_ERROR_2" class="blsp-spelling-error"><span id="SPELLING_ERROR_2" class="blsp-spelling-error"><span id="SPELLING_ERROR_2" class="blsp-spelling-error">Intel</span></span></span></span></span></span> <span id="SPELLING_ERROR_2" class="blsp-spelling-error"><span id="SPELLING_ERROR_2" class="blsp-spelling-error"><span id="SPELLING_ERROR_2" class="blsp-spelling-error"><span id="SPELLING_ERROR_3" class="blsp-spelling-error"><span id="SPELLING_ERROR_3" class="blsp-spelling-error"><span id="SPELLING_ERROR_3" class="blsp-spelling-error">Netburst</span></span></span></span></span></span></a>. Almacena instrucciones ya descodificadas en orden de programa (traces). Su tamaño era de 12k micro ops o unos 21 <span id="SPELLING_ERROR_3" class="blsp-spelling-error"><span id="SPELLING_ERROR_3" class="blsp-spelling-error"><span id="SPELLING_ERROR_3" class="blsp-spelling-error"><span id="SPELLING_ERROR_4" class="blsp-spelling-error"><span id="SPELLING_ERROR_4" class="blsp-spelling-error"><span id="SPELLING_ERROR_4" class="blsp-spelling-error">KB (según Intel)</span></span></span></span></span></span>.</div> <div align="justify"> </div> <div align="justify">Efectivamente daba una tasa de aciertos realmente baja cercana a un 80% en código real y en caso de muchos branches llegaba a un solamente 55%, por ello se erigió en un talón de Aquiles de la microarquitectura Netburst.</div> <div align="justify"> </div><img id="BLOGGER_PHOTO_ID_5195897583098047394" style="cursor: hand; text-align: center; margin: 0px auto 10px; display: block" border="0" alt="" src="http://2.bp.blogspot.com/__p96Ony2voA/SBuJUqHeq6I/AAAAAAAAAQc/sS1_o5DMuUQ/s400/TraceCacheWillamette180nm.jpg" width="600" height="301"> <p align="center"><span style="font-size: 85%"><font size="2"><em>Trace cache</em> de <span id="SPELLING_ERROR_4" class="blsp-spelling-error"><span id="SPELLING_ERROR_4" class="blsp-spelling-error"><span id="SPELLING_ERROR_4" class="blsp-spelling-error"><span id="SPELLING_ERROR_5" class="blsp-spelling-error"><span id="SPELLING_ERROR_5" class="blsp-spelling-error"><span id="SPELLING_ERROR_5" class="blsp-spelling-error">Willamette</span></span></span></span></span></span> 180 <span id="SPELLING_ERROR_5" class="blsp-spelling-error"><span id="SPELLING_ERROR_5" class="blsp-spelling-error"><span id="SPELLING_ERROR_5" class="blsp-spelling-error"><span id="SPELLING_ERROR_6" class="blsp-spelling-error"><span id="SPELLING_ERROR_6" class="blsp-spelling-error"><span id="SPELLING_ERROR_6" class="blsp-spelling-error">nm</span></span></span></span></span></span> (L2 256<span id="SPELLING_ERROR_6" class="blsp-spelling-error"><span id="SPELLING_ERROR_6" class="blsp-spelling-error"><span id="SPELLING_ERROR_6" class="blsp-spelling-error"><span id="SPELLING_ERROR_7" class="blsp-spelling-error"><span id="SPELLING_ERROR_7" class="blsp-spelling-error"><span id="SPELLING_ERROR_7" class="blsp-spelling-error">KB</span></span></span></span></span></span>).</font></span></p> <p align="justify">En sus cuatro encarnaciones (cinco si Tejas hubiese llegado al mercado), la <em>Trace Cache</em> (en adelante <span id="SPELLING_ERROR_8" class="blsp-spelling-error"><span id="SPELLING_ERROR_8" class="blsp-spelling-error"><span id="SPELLING_ERROR_8" class="blsp-spelling-error">TC</span></span></span>) de los <span id="SPELLING_ERROR_7" class="blsp-spelling-error"><span id="SPELLING_ERROR_7" class="blsp-spelling-error"><span id="SPELLING_ERROR_7" class="blsp-spelling-error"><span id="SPELLING_ERROR_9" class="blsp-spelling-error"><span id="SPELLING_ERROR_9" class="blsp-spelling-error"><span id="SPELLING_ERROR_9" class="blsp-spelling-error">Intel</span></span></span></span></span></span> <span id="SPELLING_ERROR_8" class="blsp-spelling-error"><span id="SPELLING_ERROR_8" class="blsp-spelling-error"><span id="SPELLING_ERROR_8" class="blsp-spelling-error"><span id="SPELLING_ERROR_10" class="blsp-spelling-error"><span id="SPELLING_ERROR_10" class="blsp-spelling-error"><span id="SPELLING_ERROR_10" class="blsp-spelling-error">Pentium</span></span></span></span></span></span> 4, mantuvo su organización. En <span id="SPELLING_ERROR_9" class="blsp-spelling-error"><span id="SPELLING_ERROR_9" class="blsp-spelling-error"><span id="SPELLING_ERROR_9" class="blsp-spelling-error"><span id="SPELLING_ERROR_11" class="blsp-spelling-error"><a href="http://es.wikipedia.org/wiki/Pentium_4"><span id="SPELLING_ERROR_11" class="blsp-spelling-error"><span id="SPELLING_ERROR_11" class="blsp-spelling-error">Willamette</span></span></a></span></span></span></span> (arriba, primera generación, 180<span id="SPELLING_ERROR_10" class="blsp-spelling-error"><span id="SPELLING_ERROR_10" class="blsp-spelling-error"><span id="SPELLING_ERROR_10" class="blsp-spelling-error"><span id="SPELLING_ERROR_12" class="blsp-spelling-error"><span id="SPELLING_ERROR_12" class="blsp-spelling-error"><span id="SPELLING_ERROR_12" class="blsp-spelling-error">nm</span></span></span></span></span></span>, 256 <span id="SPELLING_ERROR_11" class="blsp-spelling-error"><span id="SPELLING_ERROR_11" class="blsp-spelling-error"><span id="SPELLING_ERROR_11" class="blsp-spelling-error"><span id="SPELLING_ERROR_13" class="blsp-spelling-error"><span id="SPELLING_ERROR_13" class="blsp-spelling-error"><span id="SPELLING_ERROR_13" class="blsp-spelling-error">KB</span></span></span></span></span></span> L2) y <span id="SPELLING_ERROR_12" class="blsp-spelling-error"><span id="SPELLING_ERROR_12" class="blsp-spelling-error"><span id="SPELLING_ERROR_12" class="blsp-spelling-error"><span id="SPELLING_ERROR_14" class="blsp-spelling-error"><a href="http://en.wikipedia.org/wiki/Pentium_4#Northwood"><span id="SPELLING_ERROR_14" class="blsp-spelling-error"><span id="SPELLING_ERROR_14" class="blsp-spelling-error">Northwood</span></span></a></span></span></span></span> (abajo, segunda generación, 130 <span id="SPELLING_ERROR_13" class="blsp-spelling-error"><span id="SPELLING_ERROR_13" class="blsp-spelling-error"><span id="SPELLING_ERROR_13" class="blsp-spelling-error"><span id="SPELLING_ERROR_15" class="blsp-spelling-error"><span id="SPELLING_ERROR_15" class="blsp-spelling-error"><span id="SPELLING_ERROR_15" class="blsp-spelling-error">nm</span></span></span></span></span></span>, 512 <span id="SPELLING_ERROR_14" class="blsp-spelling-error"><span id="SPELLING_ERROR_14" class="blsp-spelling-error"><span id="SPELLING_ERROR_14" class="blsp-spelling-error"><span id="SPELLING_ERROR_16" class="blsp-spelling-error"><span id="SPELLING_ERROR_16" class="blsp-spelling-error"><span id="SPELLING_ERROR_16" class="blsp-spelling-error">KB</span></span></span></span></span></span> L2) podemos ver que son prácticamente idénticas.</p> <p align="justify">La <span id="SPELLING_ERROR_17" class="blsp-spelling-error"><span id="SPELLING_ERROR_17" class="blsp-spelling-error"><span id="SPELLING_ERROR_17" class="blsp-spelling-error">TC</span></span></span> sustituía a la típica cache de instrucciones L1 (L1i) de otros diseños. En lugar de almacenar instrucciones x86, almacena micro-operaciones <em>nativas </em>del <span id="SPELLING_ERROR_15" class="blsp-spelling-error"><span id="SPELLING_ERROR_15" class="blsp-spelling-error"><span id="SPELLING_ERROR_15" class="blsp-spelling-error"><span id="SPELLING_ERROR_18" class="blsp-spelling-error"><span id="SPELLING_ERROR_18" class="blsp-spelling-error"><span id="SPELLING_ERROR_18" class="blsp-spelling-error">core</span></span></span></span></span></span> <span id="SPELLING_ERROR_16" class="blsp-spelling-error"><span id="SPELLING_ERROR_16" class="blsp-spelling-error"><span id="SPELLING_ERROR_16" class="blsp-spelling-error"><span id="SPELLING_ERROR_19" class="blsp-spelling-error"><span id="SPELLING_ERROR_19" class="blsp-spelling-error"><span id="SPELLING_ERROR_19" class="blsp-spelling-error">Pentium</span></span></span></span></span></span> 4 ya decodificadas. Su tamaño efectivo era de 10k a 18k instrucciones (según su naturaleza) con unas tasas de acierto, según <span id="SPELLING_ERROR_17" class="blsp-spelling-error"><span id="SPELLING_ERROR_17" class="blsp-spelling-error"><span id="SPELLING_ERROR_17" class="blsp-spelling-error"><span id="SPELLING_ERROR_20" class="blsp-spelling-error"><span id="SPELLING_ERROR_20" class="blsp-spelling-error"><span id="SPELLING_ERROR_20" class="blsp-spelling-error">Intel</span></span></span></span></span></span>, comparable a una L1i de 8 a 16 <span id="SPELLING_ERROR_18" class="blsp-spelling-error"><span id="SPELLING_ERROR_18" class="blsp-spelling-error"><span id="SPELLING_ERROR_18" class="blsp-spelling-error"><span id="SPELLING_ERROR_21" class="blsp-spelling-error"><span id="SPELLING_ERROR_21" class="blsp-spelling-error"><span id="SPELLING_ERROR_21" class="blsp-spelling-error">KB</span></span></span></span></span></span>.</p> <p align="justify"></p> <p align="justify"></p> <p align="justify"></p> <p align="center"><span style="font-size: 85%"></span></p><img id="BLOGGER_PHOTO_ID_5195897587393014706" style="cursor: hand; text-align: center; margin: 0px auto 10px; display: block" border="0" alt="" src="http://3.bp.blogspot.com/__p96Ony2voA/SBuJU6Heq7I/AAAAAAAAAQk/IWei68m0MSM/s400/TraceCacheNorthwood130nm.jpg" width="600" height="285"> <p align="center"></p> <p align="center"> <span style="font-size: 85%"><font size="2">Trace caché de <span id="SPELLING_ERROR_19" class="blsp-spelling-error"><span id="SPELLING_ERROR_19" class="blsp-spelling-error"><span id="SPELLING_ERROR_19" class="blsp-spelling-error"><span id="SPELLING_ERROR_22" class="blsp-spelling-error"><span id="SPELLING_ERROR_22" class="blsp-spelling-error"><span id="SPELLING_ERROR_22" class="blsp-spelling-error">Northwood</span></span></span></span></span></span> 130 <span id="SPELLING_ERROR_20" class="blsp-spelling-error"><span id="SPELLING_ERROR_20" class="blsp-spelling-error"><span id="SPELLING_ERROR_20" class="blsp-spelling-error"><span id="SPELLING_ERROR_23" class="blsp-spelling-error"><span id="SPELLING_ERROR_23" class="blsp-spelling-error"><span id="SPELLING_ERROR_23" class="blsp-spelling-error">nm</span></span></span></span></span></span> (L2 512<span id="SPELLING_ERROR_21" class="blsp-spelling-error"><span id="SPELLING_ERROR_21" class="blsp-spelling-error"><span id="SPELLING_ERROR_21" class="blsp-spelling-error"><span id="SPELLING_ERROR_24" class="blsp-spelling-error"><span id="SPELLING_ERROR_24" class="blsp-spelling-error"><span id="SPELLING_ERROR_24" class="blsp-spelling-error">KB</span></span></span></span></span></span>).</font></span> </p> <p align="center"><span style="font-size: 85%"></span></p> <p align="justify">Al almacenar secuencias de micro-operaciones, llamadas <em>traces</em>, libera así de trabajo a los <span id="SPELLING_ERROR_22" class="blsp-spelling-error"><span id="SPELLING_ERROR_22" class="blsp-spelling-error"><span id="SPELLING_ERROR_22" class="blsp-spelling-error"><span id="SPELLING_ERROR_25" class="blsp-spelling-error"><span id="SPELLING_ERROR_25" class="blsp-spelling-error"><span id="SPELLING_ERROR_25" class="blsp-spelling-error">decoders</span></span></span></span></span></span> x86 cuando se ejecuta varias veces el mismo código (se encuentra almacenado listo para su uso). Esta estructura era capaz de enviar hasta 3 instrucciones/ciclo hacia el núcleo de ejecución <a href="http://camino.rutgers.edu/cs505/lecture5.html"><span id="SPELLING_ERROR_23" class="blsp-spelling-error"><span id="SPELLING_ERROR_23" class="blsp-spelling-error"><span id="SPELLING_ERROR_23" class="blsp-spelling-error"><span id="SPELLING_ERROR_26" class="blsp-spelling-error"><span id="SPELLING_ERROR_26" class="blsp-spelling-error"><span id="SPELLING_ERROR_26" class="blsp-spelling-error">OoO</span></span></span></span></span></span> </a>(<span id="SPELLING_ERROR_24" class="blsp-spelling-error"><span id="SPELLING_ERROR_24" class="blsp-spelling-error"><span id="SPELLING_ERROR_24" class="blsp-spelling-error"><span id="SPELLING_ERROR_27" class="blsp-spelling-error"><span id="SPELLING_ERROR_27" class="blsp-spelling-error"><span id="SPELLING_ERROR_27" class="blsp-spelling-error">Out</span></span></span></span></span></span> <span id="SPELLING_ERROR_25" class="blsp-spelling-error"><span id="SPELLING_ERROR_25" class="blsp-spelling-error"><span id="SPELLING_ERROR_25" class="blsp-spelling-error"><span id="SPELLING_ERROR_28" class="blsp-spelling-error"><span id="SPELLING_ERROR_28" class="blsp-spelling-error"><span id="SPELLING_ERROR_28" class="blsp-spelling-error">of</span></span></span></span></span></span> <span id="SPELLING_ERROR_26" class="blsp-spelling-error"><span id="SPELLING_ERROR_26" class="blsp-spelling-error"><span id="SPELLING_ERROR_26" class="blsp-spelling-error"><span id="SPELLING_ERROR_29" class="blsp-spelling-error"><span id="SPELLING_ERROR_29" class="blsp-spelling-error"><span id="SPELLING_ERROR_29" class="blsp-spelling-error">order</span></span></span></span></span></span>).</p> <p align="justify"><span style="color: #cccccc">La mayor limitación era la bajísima velocidad sostenida (<span id="SPELLING_ERROR_27" class="blsp-spelling-error"><span id="SPELLING_ERROR_27" class="blsp-spelling-error"><span id="SPELLING_ERROR_27" class="blsp-spelling-error"><span id="SPELLING_ERROR_31" class="blsp-spelling-error"><span id="SPELLING_ERROR_30" class="blsp-spelling-error"><span id="SPELLING_ERROR_30" class="blsp-spelling-error">througput</span></span></span></span></span></span>) de decodificación de instrucciones cuando se daba un trace cache <span id="SPELLING_ERROR_28" class="blsp-spelling-error"><span id="SPELLING_ERROR_28" class="blsp-spelling-error"><span id="SPELLING_ERROR_28" class="blsp-spelling-error"><span id="SPELLING_ERROR_32" class="blsp-spelling-error"><span id="SPELLING_ERROR_31" class="blsp-spelling-error"><span id="SPELLING_ERROR_31" class="blsp-spelling-error">miss</span></span></span></span></span></span> o fallo de la <span id="SPELLING_ERROR_33" class="blsp-spelling-error"><span id="SPELLING_ERROR_32" class="blsp-spelling-error"><span id="SPELLING_ERROR_32" class="blsp-spelling-error">TC</span></span></span>.</span></p> <p align="justify"><span style="color: #cccccc"><font color="#ff8080">El x86 <span id="SPELLING_ERROR_29" class="blsp-spelling-error"><span id="SPELLING_ERROR_29" class="blsp-spelling-error"><span id="SPELLING_ERROR_29" class="blsp-spelling-error"><span id="SPELLING_ERROR_34" class="blsp-spelling-error"><span id="SPELLING_ERROR_33" class="blsp-spelling-error"><span id="SPELLING_ERROR_33" class="blsp-spelling-error">decoder</span></span></span></span></span></span> del <span id="SPELLING_ERROR_30" class="blsp-spelling-error"><span id="SPELLING_ERROR_30" class="blsp-spelling-error"><span id="SPELLING_ERROR_30" class="blsp-spelling-error"><span id="SPELLING_ERROR_35" class="blsp-spelling-error"><span id="SPELLING_ERROR_34" class="blsp-spelling-error"><span id="SPELLING_ERROR_34" class="blsp-spelling-error">Pentium</span></span></span></span></span></span> 4 en todas sus versiones sólo era capaz de traducir una instrucción <span id="SPELLING_ERROR_31" class="blsp-spelling-error"><span id="SPELLING_ERROR_31" class="blsp-spelling-error"><span id="SPELLING_ERROR_31" class="blsp-spelling-error"><span id="SPELLING_ERROR_36" class="blsp-spelling-error"><span id="SPELLING_ERROR_35" class="blsp-spelling-error"><span id="SPELLING_ERROR_35" class="blsp-spelling-error">IA</span></span></span></span></span></span>32 en microinstrucciones por ciclo (!!).</font></span></p> <p align="justify">Este era un grave factor <span id="SPELLING_ERROR_32" class="blsp-spelling-error"><span id="SPELLING_ERROR_32" class="blsp-spelling-error"><span id="SPELLING_ERROR_32" class="blsp-spelling-error"><span id="SPELLING_ERROR_37" class="blsp-spelling-error"><span id="SPELLING_ERROR_36" class="blsp-spelling-error"><span id="SPELLING_ERROR_36" class="blsp-spelling-error">limitante</span></span></span></span></span></span> de la arquitectura <span id="SPELLING_ERROR_33" class="blsp-spelling-error"><span id="SPELLING_ERROR_33" class="blsp-spelling-error"><span id="SPELLING_ERROR_33" class="blsp-spelling-error"><span id="SPELLING_ERROR_38" class="blsp-spelling-error"><span id="SPELLING_ERROR_37" class="blsp-spelling-error"><span id="SPELLING_ERROR_37" class="blsp-spelling-error">Netburst</span></span></span></span></span></span>. En ciertas condiciones un <span id="SPELLING_ERROR_34" class="blsp-spelling-error"><span id="SPELLING_ERROR_34" class="blsp-spelling-error"><span id="SPELLING_ERROR_34" class="blsp-spelling-error"><span id="SPELLING_ERROR_39" class="blsp-spelling-error"><span id="SPELLING_ERROR_38" class="blsp-spelling-error"><span id="SPELLING_ERROR_38" class="blsp-spelling-error">Pentium</span></span></span></span></span></span> 4 se comportaba como un procesador <em>single-<span id="SPELLING_ERROR_35" class="blsp-spelling-error"><span id="SPELLING_ERROR_35" class="blsp-spelling-error"><span id="SPELLING_ERROR_35" class="blsp-spelling-error"><span id="SPELLING_ERROR_40" class="blsp-spelling-error"><span id="SPELLING_ERROR_39" class="blsp-spelling-error"><span id="SPELLING_ERROR_39" class="blsp-spelling-error">issue</span></span></span></span></span></span>.</em> <br></p> <p align="center"></p><br> <p align="left"></p><img id="BLOGGER_PHOTO_ID_5195905103585782722" style="cursor: hand; text-align: center; margin: 0px auto 10px; display: block" border="0" alt="" src="http://1.bp.blogspot.com/__p96Ony2voA/SBuQKaHeq8I/AAAAAAAAAQs/XDT0cxSy7zk/s400/TraceCachePrescott90nm.jpg" width="600" height="324"> <p align="center"><span style="font-size: 85%"><font size="2">Trace caché de <span id="SPELLING_ERROR_36" class="blsp-spelling-error"><span id="SPELLING_ERROR_36" class="blsp-spelling-error"><span id="SPELLING_ERROR_36" class="blsp-spelling-error"><span id="SPELLING_ERROR_41" class="blsp-spelling-error"><span id="SPELLING_ERROR_40" class="blsp-spelling-error"><span id="SPELLING_ERROR_40" class="blsp-spelling-error">Prescott</span></span></span></span></span></span> 90 <span id="SPELLING_ERROR_37" class="blsp-spelling-error"><span id="SPELLING_ERROR_37" class="blsp-spelling-error"><span id="SPELLING_ERROR_37" class="blsp-spelling-error"><span id="SPELLING_ERROR_42" class="blsp-spelling-error"><span id="SPELLING_ERROR_41" class="blsp-spelling-error"><span id="SPELLING_ERROR_41" class="blsp-spelling-error">nm</span></span></span></span></span></span> (L2 2048<span id="SPELLING_ERROR_38" class="blsp-spelling-error"><span id="SPELLING_ERROR_38" class="blsp-spelling-error"><span id="SPELLING_ERROR_38" class="blsp-spelling-error"><span id="SPELLING_ERROR_43" class="blsp-spelling-error"><span id="SPELLING_ERROR_42" class="blsp-spelling-error"><span id="SPELLING_ERROR_42" class="blsp-spelling-error">KB</span></span></span></span></span></span>).</font></span></p> <p align="justify">La <span id="SPELLING_ERROR_44" class="blsp-spelling-error"><span id="SPELLING_ERROR_43" class="blsp-spelling-error"><span id="SPELLING_ERROR_43" class="blsp-spelling-error">TC</span></span></span> contiene <em>traces</em>: secuencias de <em><span id="SPELLING_ERROR_39" class="blsp-spelling-error"><span id="SPELLING_ERROR_39" class="blsp-spelling-error"><span id="SPELLING_ERROR_45" class="blsp-spelling-error"><span id="SPELLING_ERROR_44" class="blsp-spelling-error"><span id="SPELLING_ERROR_44" class="blsp-spelling-error">uops</span></span></span></span></span></em> (<span id="SPELLING_ERROR_40" class="blsp-spelling-error"><span id="SPELLING_ERROR_40" class="blsp-spelling-error"><span id="SPELLING_ERROR_46" class="blsp-spelling-error"><span id="SPELLING_ERROR_45" class="blsp-spelling-error"><span id="SPELLING_ERROR_45" class="blsp-spelling-error">micro operaciones</span></span></span></span></span>) construidas en orden de programa, estas instrucciones están ordenadas en grupos de 6 por línea de <span id="SPELLING_ERROR_47" class="blsp-spelling-error"><span id="SPELLING_ERROR_46" class="blsp-spelling-error"><span id="SPELLING_ERROR_46" class="blsp-spelling-error">TC</span></span></span>. Además, la <span id="SPELLING_ERROR_48" class="blsp-spelling-error"><span id="SPELLING_ERROR_47" class="blsp-spelling-error"><span id="SPELLING_ERROR_47" class="blsp-spelling-error">TC</span></span></span> contiene un pequeño <span id="SPELLING_ERROR_41" class="blsp-spelling-error"><span id="SPELLING_ERROR_41" class="blsp-spelling-error"><span id="SPELLING_ERROR_49" class="blsp-spelling-error"><span id="SPELLING_ERROR_48" class="blsp-spelling-error"><span id="SPELLING_ERROR_48" class="blsp-spelling-error">predictor</span></span></span></span></span> de saltos (trace <span id="SPELLING_ERROR_42" class="blsp-spelling-error"><span id="SPELLING_ERROR_42" class="blsp-spelling-error"><span id="SPELLING_ERROR_50" class="blsp-spelling-error"><span id="SPELLING_ERROR_49" class="blsp-spelling-error"><span id="SPELLING_ERROR_49" class="blsp-spelling-error">BTB, Branch Target Buffer</span></span></span></span></span>) solamente para las instrucciones presentes en ella.</p> <p align="justify">Para los tipos de instrucciones <span id="SPELLING_ERROR_43" class="blsp-spelling-error"><span id="SPELLING_ERROR_43" class="blsp-spelling-error"><span id="SPELLING_ERROR_51" class="blsp-spelling-error"><span id="SPELLING_ERROR_50" class="blsp-spelling-error"><span id="SPELLING_ERROR_50" class="blsp-spelling-error">IA</span></span></span></span></span>32 más complejos no se utilizaba el x86 <span id="SPELLING_ERROR_44" class="blsp-spelling-error"><span id="SPELLING_ERROR_52" class="blsp-spelling-error"><span id="SPELLING_ERROR_51" class="blsp-spelling-error"><span id="SPELLING_ERROR_51" class="blsp-spelling-error">decoder</span></span></span></span> ni la trace cache, sino la <span id="SPELLING_ERROR_45" class="blsp-spelling-error"><span id="SPELLING_ERROR_53" class="blsp-spelling-error"><span id="SPELLING_ERROR_52" class="blsp-spelling-error"><span id="SPELLING_ERROR_52" class="blsp-spelling-error">Microcode</span></span></span></span> ROM. Una memoria especializada que guarda secuencias de <span id="SPELLING_ERROR_46" class="blsp-spelling-error"><span id="SPELLING_ERROR_54" class="blsp-spelling-error"><span id="SPELLING_ERROR_53" class="blsp-spelling-error"><span id="SPELLING_ERROR_53" class="blsp-spelling-error">uops</span></span></span></span> de las instrucciones x86 más complejas.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TM8S4lJlBlI/AAAAAAAAEjU/HvqeXeYotic/s1600-h/CedarMill65nm_TC%5B3%5D.jpg"><img title="CedarMill65nm_TC" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="CedarMill65nm_TC" src="http://lh5.ggpht.com/__p96Ony2voA/TM8S5iivQCI/AAAAAAAAEjY/KZUgz1zQ5c4/CedarMill65nm_TC_thumb%5B1%5D.jpg?imgmax=800" width="604" height="298"></a>Trace caché en Cedar Mill 65 nm (L2 2048 KB)</p> <p align="justify">En un P4, las instrucciones x86 que acabarán siendo decodificada en más de 4 <span id="SPELLING_ERROR_47" class="blsp-spelling-error"><span id="SPELLING_ERROR_55" class="blsp-spelling-error"><span id="SPELLING_ERROR_54" class="blsp-spelling-error"><span id="SPELLING_ERROR_54" class="blsp-spelling-error">uops</span></span></span></span> se envían a la <span id="SPELLING_ERROR_48" class="blsp-spelling-error"><span id="SPELLING_ERROR_56" class="blsp-spelling-error"><span id="SPELLING_ERROR_55" class="blsp-spelling-error"><span id="SPELLING_ERROR_55" class="blsp-spelling-error">Microcode</span></span></span></span> ROM, siendo su proceso de decodificación mucho más lento. <span id="SPELLING_ERROR_57" class="blsp-spelling-error"><a href="http://http//en.wikipedia.org/wiki/Pentium_4#Prescott"><span id="SPELLING_ERROR_56" class="blsp-spelling-error"><span id="SPELLING_ERROR_56" class="blsp-spelling-error">Prescott</span></span></a></span> aportaba en este sentido mejoras, ya que eran menos las instrucciones que requerían su paso por la <span id="SPELLING_ERROR_58" class="blsp-spelling-error"><span id="SPELLING_ERROR_57" class="blsp-spelling-error"><span id="SPELLING_ERROR_57" class="blsp-spelling-error">Microcode</span></span></span> ROM.</p> <p align="justify"><span><font style="background-color: #ffff00"></font><font color="#ffff80" size="3">Conclusiones:</font></span></p> <p align="justify">La trace cache aporta mejoras pero también trae consigo grandes problemas:</p> <ul> <li> <div align="justify">Una mayor complejidad respecto a una L1i convencional.</div> <li> <div align="justify">Su gran (enorme) penalización en latencia en el caso de fallo (trace cache <span id="SPELLING_ERROR_44" class="blsp-spelling-error"><span id="SPELLING_ERROR_49" class="blsp-spelling-error"><span id="SPELLING_ERROR_59" class="blsp-spelling-error"><span id="SPELLING_ERROR_58" class="blsp-spelling-error"><span id="SPELLING_ERROR_58" class="blsp-spelling-error">miss</span></span></span></span></span>).</div> <li> <div align="justify">Su baja tasa de aciertos efectiva, normalmente sobre un 80% y a veces cercana al 55%.</div> <li> <div align="justify">Su limitado tamaño, unas 12k instrucciones, equivalente a unos meros 8 - 16 KB.</div></li></ul> <p><font color="#4bacc6"><strong>Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</strong></font></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com3tag:blogger.com,1999:blog-6644579903369065806.post-39373385666445795552017-02-02T16:09:00.000+01:002017-02-02T16:09:08.279+01:00Microarquitectura Intel Sandy Bridge. Parte 1. Actualizado - LowLevelHardware<p align="justify">Estos días Intel está celebrando en San francisco el IDF 2010 (Intel Developer Forum), entre multitud de temas relacionados con el futuro de la industria de semiconductores ha hablado de Sandy Bridge.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TKmbuMwrOqI/AAAAAAAAEiE/RIGFTvn2-6U/s1600-h/SandyB_Nehalem_Westmere%5B3%5D.jpg"><img title="SandyB_Nehalem_Westmere" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="SandyB_Nehalem_Westmere" src="http://lh3.ggpht.com/__p96Ony2voA/TKmbuobDijI/AAAAAAAAEiI/S_vcHWlusCs/SandyB_Nehalem_Westmere_thumb%5B1%5D.jpg?imgmax=800" width="634" height="215"></a>Sandy Bridge tiene menor superficie de die que Nehalem pese a contar con una GPU con 12 SPs.</p> <p align="justify">En estos artículos me voy a centrar en los cambios microarquitecturales de Sandy Bridge sobre la anterior generación de cores de Intel, Nehalem 45 nm y Westmere 32 nm.</p> <p align="justify">En esta primera parte abordaré varios aspectos:</p> <ul> <li> <div align="justify">Intel Tock 2010. La aplastante cadencia del gigante de los semiconductores.</div> <li> <div align="justify">Sandy Bridge Ring Bus. La nueva organización de la comunicación inter die.</div> <li> <div align="justify">El System Agent de Sandy Bridge. El Uncore o North Bridge.</div> <li> <div align="justify">El Front End de Sandy Bridge. Las primeras etapas del pipeline.</div> <li> <div align="justify">El mecanismo de Branch Prediction, tan críticamente importante en algoritmos de enteros.</div></li></ul> <p><font color="#ffff80" size="3">Intel Tock 2010</font></p> <p>Sandy Bridge es un cambio profundo respecto a la ya excelente y exitosa microarquitectura que Intel puso en juego en 2008 con Nehalem, los cores que mueven los chips Core i7.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TI-1g3Vq0RI/AAAAAAAAEgU/6vPh9L3WrzA/s1600-h/SB_TOCK_6303.png"><img title="SB_TOCK_630" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB_TOCK_630" src="http://lh3.ggpht.com/__p96Ony2voA/TI-1i5GAgOI/AAAAAAAAEgY/qKLfg732tl0/SB_TOCK_630_thumb1.png?imgmax=800" width="634" height="337"></a> Sandy Bridge es el Tock de 32 nm tras Nehalem y Westmere.</p> <p align="justify">Poco había que mejorar en la arquitectura de los cores Nehalem, ya que Intel lidera en prestaciones en todos los campos… pero los grupos de ingeniería en Intel no podían quedarse dormidos en los laureles (como desafortunadamente hizo AMD tras su excelente core K8).</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TKmbxW9PbJI/AAAAAAAAEiM/w6ZL3ng6V8U/s1600-h/PIN_630%5B3%5D.png"><img title="PIN_630" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="PIN_630" src="http://lh3.ggpht.com/__p96Ony2voA/TKmbzHld2PI/AAAAAAAAEiQ/va_ByeBqItQ/PIN_630_thumb.png?imgmax=800" width="634" height="367"></a> La próxima generación: Intel Sandy Bridge.</p> <p align="justify">Por ello han procedido a un exhaustivo y profundo rediseño:</p> <p align="justify">Desde el Front End, hasta las unidades de ejecución, el Branch Prediction e incluso las unidades Load – Store. También se ha modificado la arquitectura de la cache L3 dividiéndola en bancos de 2 MB por core y la interconexión interna de las diferentes partes del procesador.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TI-1mAtiBFI/AAAAAAAAEgc/g76LzQKYuc8/s1600-h/SandyBridge_Die_2_63023.png"><img title="SandyBridge_Die_2_630 (2)" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="SandyBridge_Die_2_630 (2)" src="http://lh5.ggpht.com/__p96Ony2voA/TI-1pOo1EYI/AAAAAAAAEgg/aP_DGE6wLTc/SandyBridge_Die_2_6302_thumb1.png?imgmax=800" width="634" height="307"></a> Die de Sandy Bridge quad core 32 nm.</p> <p align="justify">El Ring Bus que ahora hace de ruta de comunicación entre todas y cada una de las partes del procesador:</p> <ul> <li> <div align="justify">cores</div> <li> <div align="justify">Bancos de L3 de 2 MB</div> <li> <div align="justify">System Agent -Uncore o North Bridge-</div> <li> <div align="justify">GPU integrada</div> <li> <div align="justify">Video decoder – encoder</div></li></ul> <p align="justify">Es, a mi modo de ver, uno de los cambios más significativos respecto a diseños anteriores (Westmere y Nehalem).</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TI-1qEfFL7I/AAAAAAAAEgk/dITEY8P4yv0/s1600-h/SB3.jpg"><img title="SB" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB" src="http://lh3.ggpht.com/__p96Ony2voA/TI-1rd2O2tI/AAAAAAAAEgo/N1c21Jc1Nbs/SB_thumb1.jpg?imgmax=800" width="604" height="423"></a> Intel no ha dejado nada al azar con Sandy Bridge.</p> <p align="justify"><font color="#ffff80" size="3">Sandy Bridge Ring Bus</font></p> <p align="justify">Intel ha dotado a Sandy Bridge de un novedoso y extremadamente rápido sistema heredado de su hermano mayor Nehalem EX, un anchísimo y eficiente Ring Bus de comunicaciones para coordinar todas las transacciones de datos inter die.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TI-1sC1tXgI/AAAAAAAAEgs/5MxD75Aw34w/s1600-h/SB_RING3.jpg"><img title="SB_RING" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB_RING" src="http://lh3.ggpht.com/__p96Ony2voA/TI-1tDlvOPI/AAAAAAAAEgw/sePsj2rs7C0/SB_RING_thumb1.jpg?imgmax=800" width="604" height="428"></a> Implementación del Ring Bus en Sandy Bridge.</p> <p align="justify">El ancho de banda del bus de datos es de 32 bytes, es decir, 256 bits y su topología es en anillo, es decir, escala con el número de cores y bancos de L3. A mayor número de cores o bancos de L3 mayor ancho de banda agregado.</p> <p align="justify">Lo más llamativo del bus en anillo de Sandy Bridge (y Nehalem EX) es su implementación respetuosa con el consumo y el área de die, me explico:</p> <p align="justify">Todos recordamos el famoso procesador Radeon HD 2900 de ATI con un ring bus de 512 bits, que debido a su desmesurada disipación térmica y consumo no pudo competir con sus análogos de nVidia hasta que ATI lo eliminó sustituyéndolo por una arquitectura convencional en su serie Radeon HD 3800.</p> <p align="justify">En Sandy Bridge Intel ha utilizado power gating y clock gating extensivamente, además de aplicar un voltaje bajísimo al ring bus para conseguir una disipación térmica muy baja.</p> <p align="justify">Por otro lado, es un dato muy importante, según los ingenieros de Intel, no ha representado un incremento de área ya que la infinidad de conductores necesarios para el Ring Bus se enrutan por otras capas del diseño bajo la caché L3.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TI-1viiodBI/AAAAAAAAEg0/fHB7dwEZhO0/s1600-h/SB_Die_6303.png"><img title="SB_Die_630" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB_Die_630" src="http://lh6.ggpht.com/__p96Ony2voA/TI-1ypAIidI/AAAAAAAAEg4/5_MXp37SAdQ/SB_Die_630_thumb1.png?imgmax=800" width="634" height="317"></a> Sandy Bridge quad core para socket LGA 1155.</p> <p align="justify">Lo que se consigue con este ring bus es aumentar de manera lineal el ancho de banda agregado (total) con el número de Ring Stops (cores, bancos de L3, …) consiguiendo una escalabilidad perfecta.</p> <p align="justify"><a href="http://lowlevelhardware.blogspot.com/2010/09/la-microarquitectura-de-amd-bulldozer.html" target="_blank">Como he comentado en artículos anteriores</a>, además se consigue una muy notable bajada de latencia de la caché L3, del orden del 30% (!!) que ya de por sí en Nehalem y Westmere era realmente rápida.</p> <p align="justify">Ahora nos encontramos en los veintitantos ciclos de latencia respecto a los 38 - 42 ciclos de Nehalem y algo más en Westmere.</p> <p align="justify"><font color="#ffff80" size="3">El System Agent de Sandy Bridge</font></p> <p align="justify">El anteriormente denominado Uncore, Nocore o North Bridge ahora no incluye ya la caché L3, por lo que la L3 es síncrona a los cores, con lo que aumenta su frecuencia aumentando su ancho de banda y disminuye su latencia.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TI-1zch0RKI/AAAAAAAAEhA/QfeBVIC2LKc/s1600-h/SB_SA3.jpg"><img title="SB_SA" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB_SA" src="http://lh5.ggpht.com/__p96Ony2voA/TI-10XjQxLI/AAAAAAAAEhE/_hPngdoFj_4/SB_SA_thumb1.jpg?imgmax=800" width="604" height="371"></a>Sandy Bridge System Agent.</p> <p align="justify">El System Agent se encarga de controlar todas las transacciones entre los cores, la GPU integrada, los coders y decoders de video integrados con:</p> <ul> <li> <div align="justify">La memoria principal a través de las dos controladoras DDR3.</div> <li> <div align="justify">Las GPUs externas a través de los puertos PCI Ex.</div> <li> <div align="justify">Los dispositivos externos a través del DMI vía chipset.</div></li></ul> <p align="justify">Para mejorar la disipación térmica y reducir el consumo en sistemas portátiles integra la controladora de video y la PCU (Power Control Unit) encargada de gestionar los voltajes y las frecuencias de los cores así como los Turbo Modes y los modos de ahorro de energía y el Power Gating a nivel de cores.</p> <p align="justify"><font color="#ffff80" size="3">El Front End de San</font><font color="#ffff80" size="3">dy Bridge</font></p> <p align="justify">El Front End es la parte del microprocesador encargada de suministrar la secuencia de instrucciones X86 desde la caché L1i (cache L1 de instrucciones) y de descodificarlas a un formato más manejable (micro operaciones, uops).</p> <p align="justify">Intel, en este apartado ha roto con el pasado y ha desarrollado un Front End revolucionario.</p> <p align="justify">Estas instrucciones ya descodificadas se encuentran en un formato interno y propietario, son llamadas uops (micro operaciones) y son características de cada microarquitectura.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TI-101ii32I/AAAAAAAAEhI/X_zrFq9c-Ag/s1600-h/SB_uopcache3.jpg"><img title="SB_uopcache" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB_uopcache" src="http://lh4.ggpht.com/__p96Ony2voA/TI-11o4uhZI/AAAAAAAAEhM/o68lUMwmNx0/SB_uopcache_thumb1.jpg?imgmax=800" width="604" height="414"></a> uop cache en Sandy Bridge, una especie de L0i.</p> <p align="justify">Sandy Bridge mejora el Loop Stream Buffer de Westmere 32 nm que contenía hasta 28 uops con una estructura dedicada llamada <strong><em>Decoded uop Cache</em></strong> que es capaz de almacenar unas 1500 uops (sobre unos 6 KB de capacidad) y que actúa a modo de caché L0 de instrucciones suministrando a las etapas de ejecución fuera de orden instrucciones con menor latencia que la L1i de 32 KB y además manteniendo más fácilmente la cadencia de 4 uops / ciclo.</p> <p align="justify">Además el Fetching desde esta nueva L0i se hace en paquetes de 32 bytes / ciclo, aumentando el llenado efectivo de las unidades de ejecución que le siguen en el pipeline.</p> <p align="justify">Intel cita la tasa de aciertos de esta L0i en un 80% en código de aplicaciones típicas. En el caso de acierto (que como vemos es un 80% de las veces) se desconectan las etapas de Fetch y Decoding con el consiguiente ahorro energético y de temperatura (muy notable ya que el consumo de estas etapas es muy alto en CPUs de arquitectura X86).</p> <p align="justify">Entre los mecanismos que forman parte integral del Front End nos encontramos con la lógica y SRAMs de Branch Prediction encargado de cargar en el orden correcto la secuencia de instrucciones después de una bifurcación en el código (Branch) decidiendo si la condición se cumple o no mediante lógica y algoritmos de especulación y distintas tablas de datos de historia precedentes.</p> <p align="justify"><font color="#ffff80" size="3">El mecanismo de Branch Prediction</font></p> <p align="justify">Sandy Bridge ha mejorado notablemente el manejo de Branches en el código, aumentando la tasa de acierto. Los ingenieros de Intel han optimizado el diseño pero permaneciendo en el misma footprint (la misma superficie).</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TI-12e19GjI/AAAAAAAAEhQ/FbjXmYCrYeI/s1600-h/SB_Branch3.jpg"><img title="SB_Branch" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="SB_Branch" src="http://lh5.ggpht.com/__p96Ony2voA/TI-13O3hTjI/AAAAAAAAEhU/chma25OFMkU/SB_Branch_thumb1.jpg?imgmax=800" width="604" height="338"></a> Optimización del Branch Prediction en Sandy Bridge.</p> <p align="justify">Utilizando técnicas de <strong><em>compresión sin pérdidas</em></strong> en Sandy Bridge se almacenan más datos de historia en la misma capacidad que en Westmere por lo que efectivamente se han ampliado al doble el número de entradas en las tablas de Targets, elevando con ello la tasa de aciertos de los algoritmos respecto a Westmere.</p> <p align="justify">Estoy deseando probar Sandy Bridge en <a href="http://lowlevelhardware.blogspot.com/2009/09/analisis-de-algoritmos-de-inteligencia.html" target="_blank">algoritmos ajedrecísticos</a>.</p> <p>Nos vemos en la segunda entrega.</p> <p style="line-height: 1.4" align="justify"><font face="Arial"><font style="font-size: 9.8pt" color="#4bacc6"><strong>Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</strong></font></font></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com4tag:blogger.com,1999:blog-6644579903369065806.post-63654664974484885672017-02-02T16:08:00.001+01:002017-02-02T16:08:49.137+01:00La microarquitectura de AMD Bulldozer. Actualizado - LowLevelHardware<p align="justify">Con Bulldozer AMD ciertamente ha roto moldes en el rígido diseño de un procesador X86. El concepto de módulo con dos cores de enteros y una FPU sobredimensionada es novedoso y ciertamente tiene algunas ventajas sobre los diseños más convencionales.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TIu8FHeaR7I/AAAAAAAAEeo/x27GfOFiQZA/s1600-h/Bulldozer_manipulado630%5B3%5D.png"><img title="Bulldozer_manipulado630" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="Bulldozer_manipulado630" src="http://lh6.ggpht.com/__p96Ony2voA/TIu8JQvVuEI/AAAAAAAAEes/HKgEtcsyEiU/Bulldozer_manipulado630_thumb%5B1%5D.png?imgmax=800" width="634" height="515"></a> Fotografía manipulada del die de AMD Orochi, el primer chip de arquitectura Bulldozer.</p> <p align="justify">Esta organización de las unidades de proceso conlleva también cambios en el subsistema de caché y de memoria, en ellos me centraré en este artículo.</p> <p align="justify"><font color="#ffff80" size="3">Las unidades de ejecución de Bulldozer</font></p> <p align="justify">Como todos ya conocéis, Bulldozer combina dos INT cores junto con una FPU con capacidad FMAC para formar un módulo. Trabajando sobre el die manipulado por AMD y hecho público, podemos observar varios detalles, entre ellos los dos INT cores simétricos.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TI0f_Kj4yjI/AAAAAAAAEfg/0ghJg4monNg/s1600-h/core_L2_L3_Bulldozer_etiq4%5B1%5D.png"><img title="core_L2_L3_Bulldozer_etiq" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="core_L2_L3_Bulldozer_etiq" src="http://lh6.ggpht.com/__p96Ony2voA/TIu8N8N7H4I/AAAAAAAAEfo/DgXt43Vdd8I/core_L2_L3_Bulldozer_etiq4_thumb.png?imgmax=800" width="634" height="470"></a> Organización de uno de los módulos Bulldozer con sus cachés externas L2 y L3.</p> <p align="justify">Me remito a mi artículo anterior de LowLevelHardware:</p> <blockquote> <p align="justify"><a title="Intel Core i7 SMT vs. AMD Bulldozer CMT - LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/08/intel-core-i7-smt-vs-amd-bulldozer-cmt.html">Intel Core i7 SMT vs. AMD Bulldozer CMT – LowLevelHardware</a></p></blockquote> <blockquote> <p align="justify"><em>En un módulo Bulldozer hay duplicadas algunas de las unidades de ejecución para conseguir con ello un aumento de prestaciones a la vez que se comparten algunas unidades que por su tamaño <u>no</u> es práctico duplicar.</em></p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6KTPkzNI/AAAAAAAAEd4/nvFnyNyAZtc/s1600-h/BulldozerHotChips_August24_8pmET_NDA-3_575px%5B3%5D.jpg"><em><img title="BulldozerHotChips_August24_8pmET_NDA-3_575px" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-3_575px" src="http://lh3.ggpht.com/__p96Ony2voA/THa6K2w9d3I/AAAAAAAAEd8/Vr0mewT964U/BulldozerHotChips_August24_8pmET_NDA-3_575px_thumb%5B1%5D.jpg?imgmax=800" width="500" height="285"></em></a><em></em></p> <p align="center"><em>Diseño general de Bulldozer 32 nm.</em></p> <p align="justify"><em>En el caso de Bulldozer 32 nm, AMD ha diseñado un procesador dotado de dos cores de enteros (INT cores) compartiendo:</em></p> <ul> <li> <p align="justify"><em>El hardware de Branch Prediction.</em></p> <li> <p align="justify"><em>La caché L1i de instrucciones de 64 KB y 2 vías.</em></p> <li> <p align="justify"><em>Las etapas de fetch (32 bytes / ciclo).</em></p> <li> <p align="justify"><em>Los cuatro decoders X86.</em></p></li></ul> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6LavAkCI/AAAAAAAAEeA/vFHMhtxbiuI/s1600-h/BulldozerHotChips_August24_8pmET_NDA-7_575px%5B7%5D.jpg"><em><img title="BulldozerHotChips_August24_8pmET_NDA-7_575px" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-7_575px" src="http://lh6.ggpht.com/__p96Ony2voA/THa6MAxDAqI/AAAAAAAAEeE/iYVk7o_Y1Kk/BulldozerHotChips_August24_8pmET_NDA-7_575px_thumb%5B3%5D.jpg?imgmax=800" width="500" height="285"></em></a><em></em></p> <p align="center"><em>Componentes compartidos en el Front End.</em></p> <ul> <li> <p align="justify"><em>La FPU dual de 128 bit FMAC con </em><em>2 pipelines FMAC 128 bit y </em><em>2 pipelines packed INT de 128 bit MMX.</em></p></li></ul></blockquote> <blockquote> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THa6Mn-w2-I/AAAAAAAAEeI/-xgPMlPH0wU/s1600-h/BulldozerHotChips_August24_8pmET_NDA-9_575px%5B3%5D.jpg"><em><img title="BulldozerHotChips_August24_8pmET_NDA-9_575px" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-9_575px" src="http://lh3.ggpht.com/__p96Ony2voA/THa6NG5MzDI/AAAAAAAAEeM/6p2kiJCXl7M/BulldozerHotChips_August24_8pmET_NDA-9_575px_thumb%5B1%5D.jpg?imgmax=800" width="500" height="285"></em></a><em> </em><em>La FPU compartida en Bulldozer 32 nm.</em></p> <p align="justify"><em>También son compartidos los siguientes componentes del die de Bulldozer:</em></p> <ul> <li> <p align="justify"><em>El Data Prefetcher encargado de precargar datos en las caches.</em></p> <li> <p align="justify"><em>La caché L2 compartida para cada dos INT cores con su </em><a href="http://lowlevelhardware.blogspot.com/2008/05/el-tlb-secreto-de-amd-parte-i.html"><em>L2 TLB</em></a><em>.</em></p></li></ul> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/THa6N109rcI/AAAAAAAAEeQ/J-RmVqdyM7I/s1600-h/BulldozerHotChips_August24_8pmET_NDA-10_575px%5B3%5D.jpg"><em><img title="BulldozerHotChips_August24_8pmET_NDA-10_575px" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-10_575px" src="http://lh3.ggpht.com/__p96Ony2voA/THa6OUgXWtI/AAAAAAAAEeU/Ao8XtSnZOLM/BulldozerHotChips_August24_8pmET_NDA-10_575px_thumb%5B1%5D.jpg?imgmax=800" width="500" height="285"></em></a><em></em></p> <p align="center"><em>La L2 compartida de Bulldozer 32nm, probablemente de 1 o 2 MB y 16 vías.</em></p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/THa6O_sUxjI/AAAAAAAAEeY/xZnIwkS8hHU/s1600-h/BulldozerHotChips_August24_8pmET_NDA-8_575px%5B3%5D.jpg"><em><img title="BulldozerHotChips_August24_8pmET_NDA-8_575px" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-8_575px" src="http://lh4.ggpht.com/__p96Ony2voA/THa6PTwY24I/AAAAAAAAEec/8JE6FSulOo8/BulldozerHotChips_August24_8pmET_NDA-8_575px_thumb%5B1%5D.jpg?imgmax=800" width="500" height="285"></em></a><em> Los dos cores discretos de enteros en Bulldozer 32 nm.</em></p> <p align="justify"><em>En Bulldozer, al haber dos cores de enteros completos, hay muchas estructuras duplicadas:</em></p> <ul> <li> <p align="justify"><em>Un scheduler de enteros (INT scheduler) por core, unificado para ALUs y AGUs.</em></p> <li> <p align="justify"><em>Dos ALUs. Unidades de proceso de enteros.</em></p> <li> <p align="justify"><em>Dos AGUs. Unidades de generación de direcciones de memoria.</em></p> <li> <p align="justify"><em>L1d de 16 KB y 4 vías de asociatividad.</em></p> <li> <p align="justify"><a href="http://lowlevelhardware.blogspot.com/2008/05/el-tlb-secreto-de-amd-parte-i.html"><em>L1 DLTB</em></a><em> de 32 entradas fully associative.</em></p> <li> <p align="justify"><em>Juego de registros y de registros alias con su hardware de renombramiento.</em></p> <li> <p align="justify"><em>Unidad de Load - Store con procesamiento fuera de orden en lecturas y escrituras a memoria con sus colas de comandos.</em></p></li></ul></blockquote> <p>Analizando el die observamos los dos INT cores dentro de cada módulo:</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/TIu8P3BM1xI/AAAAAAAAEfw/T6m8o4hWsEM/s1600-h/INTcores%5B1%5D.png"><img title="INTcores" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="INTcores" src="http://lh3.ggpht.com/__p96Ony2voA/TIu8RwGguxI/AAAAAAAAEf4/Q6vgieiST84/INTcores_thumb.png?imgmax=800" width="634" height="470"></a> Los INT cores de Bulldozer.</p> <p align="justify">Después de este repaso a sus unidades de ejecución, vamos a examinar su arquitectura de caché.</p> <p align="justify"><font color="#ffff80" size="3">Las cachés de Bulldozer</font></p> <p align="justify">En cada módulo de Bulldozer AMD integra dos INT cores, cada uno con su caché privada L1d (datos) de 16 KB y 4 vías de asociatividad, en cambio, la caché L1i (instrucciones) sigue siendo única y mantiene la tradición de AMD: 64 KB y 2 vías de asociatividad.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/TI0gKAMme7I/AAAAAAAAEgA/mCQn_aS2hs4/s1600-h/core_L2_L3_Bulldozer_etiq%5B1%5D.png"><img title="core_L2_L3_Bulldozer_etiq" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="core_L2_L3_Bulldozer_etiq" src="http://lh6.ggpht.com/__p96Ony2voA/TIu8UB8qX4I/AAAAAAAAEgE/0A0m4gByp-M/core_L2_L3_Bulldozer_etiq_thumb.png?imgmax=800" width="634" height="470"></a>Un módulo Bulldozer con su L2 privada de 2 MB y su banco de 2 MB de L3.</p> <p align="justify">El análisis de die (que podéis examinar en el principio del artículo) manipulado por AMD para ocultar su verdadera estructura ya arroja algo de luz sobre las primera implementación de Bulldozer: el octal core Orochi.</p> <p>Ampliando los INT cores, observamos las cachés de nivel 1:</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TIu8XdSxYFI/AAAAAAAAEfI/fXAymmP-gWQ/s1600-h/L1s%5B3%5D.png"><img title="L1s" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="L1s" src="http://lh5.ggpht.com/__p96Ony2voA/TIu8ax_mUYI/AAAAAAAAEfM/9_HxyxdwwDI/L1s_thumb%5B1%5D.png?imgmax=800" width="634" height="470"></a> Las pequeñas L1d de 16 KB y la L1i de 64 KB compartida.</p> <p align="justify">Observamos numerosos bloques de SRAM, su uso es el siguiente:</p> <ul> <li> <div align="justify">Una de ellas es el BHT (Branch History Tables) utilizadas por los mecanismos de Branch Prediction.</div> <li> <div align="justify">Dos son los Write Buffers (Buffers de Escritura Combinada) utilizados para crear un flujo ordenado de datos hacia la L2 compartida de 2 MB desde las dos pequeñas L1d de 16 KB y 4 vías.</div></li></ul> <p align="justify">Las SRAM de los Write Buffers son necesarias ya que las L1d han cambiado su política de exclusiva (como en los cores anteriores de AMD) a inclusiva (como en los microprocesadores Intel), por ello es necesario “copiar” a L2 los datos escritos en cada una de las dos pequeñas L1d.</p> <p align="justify">Con alta probabilidad en la parte inferior del módulo se observa la doble FPU FMAC de 128 bit con 2 pipelines extra para MMX 128 bit y en la parte superior las etapas de Fetch y X86 Decoding que se alimentan de las instrucciones procedentes de la caché L1i de 64 KB y dos vías a razón de 32 bytes / ciclo.</p> <p align="justify">Los bloques funcionales de la izquierda son principalmente circuitería relacionada con el Hardware Prefetching.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TIu8eFU2TqI/AAAAAAAAEfQ/NK6vbfI66Xo/s1600-h/Modulo%5B3%5D.png"><img title="Modulo" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="Modulo" src="http://lh5.ggpht.com/__p96Ony2voA/TIu8hjY7HnI/AAAAAAAAEfU/1QkaZQh1JS8/Modulo_thumb%5B1%5D.png?imgmax=800" width="634" height="470"></a> Esquema del módulo Bulldozer.</p> <p align="justify">Las latencias de caché parece que serán bastante mediocres:</p> <ul> <li> <div align="justify">4 ciclos para las L1d de 16 KB y 4 vías.</div> <li> <div align="justify">18 ciclos para la L2 de 2 MB (seguramente de 16 ó incluso 32 vías)</div></li></ul> <p align="justify">Veremos si gracias al motor OOO avanzado de Bulldozer AMD consigue ocultar estas altas latencias al software encontrando al vuelo instrucciones suficientes para enviar a las unidades de ejecución (sin L2 misses).</p> <p align="justify">Estoy deseando echar un vistazo en Noviembre al verdadero die de Bulldozer en alta resolución.</p> <p align="justify"><font color="#ffff80" size="3">Bulldozer y la memoria</font></p> <p align="justify">Los <a href="http://lowlevelhardware.blogspot.com/2010/08/memcon10-roadmap-de-memoria-2015.html" target="_blank">roadmaps de tecnologías de memoria no anuncian DDR5 hasta 2015</a>, nos debemos conformar con DDR3 hasta entonces.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THK7l-n2fqI/AAAAAAAAEbg/xFe-mXjgtKY/s1600-h/7%5B4%5D.png"><img title="7" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="7" src="http://lh5.ggpht.com/__p96Ony2voA/THK7mqaUI6I/AAAAAAAAEbk/foXrkbX-h0k/7_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> Roadmap RAM hasta 2015. Fuente: <a href="http://www.denali.com/wordpress/index.php/dmr/2010/05/21/memcon-2010-july-28-time-to-register-hun">MEMCON10</a>.</p> <p align="justify">Bulldozer montará un dual channel DDR3 hasta 2.13 GHz para un ancho de banda agregado de 31.2 GB/s por die de 8 INT cores.</p> <p align="justify">Para servidores, Interlagos, la versión MCM de Bulldozer con 2 dies de 8 INT cores en un chip para socket G34, contará con un quad channel DDR3 hasta 1.86 GHz para un ancho de banda total de 59.7 GB/s (!!) por socket.</p> <p align="justify">Contemporáneamente, Sandy Bridge 8 cores (16 threads) contará con 4 canales DDR3 en socket 2011 probablemente con la misma frecuencia y ancho de banda que Interlagos (1.866 GHz y 59.7 GB/s).</p> <p align="justify"><font color="#ffff80" size="3">Algo “raro” en Bulldozer</font></p> <p align="justify">Veo una extraña y alarmante falta de ancho de banda de decodificación en Bulldozer (4 instrucciones / ciclo) para el anchísimo hardware de ejecución que tiene detrás:</p> <ul> <li> <div align="justify">2 INT cores con 2 ALUs y 2 AGUs por core</div> <li> <div align="justify">1 FPU con 2 pipelines FMAC de 128 bit y 2 pipelines packed integer MMX de 128 bit</div></li></ul> <p align="justify">En total, un módulo, es capaz de ejecutar en paralelo:</p> <ul> <li> <div align="justify">4 INT (core 0) + 4 (FPU / MMX) + 4 INT (core 1) </div></li></ul> <p align="justify">Es decir 12 instrucciones por ciclo y solo son decodificadas 4 por ciclo (??).</p> <p align="justify">Quizás AMD se esconda un as en la manga …</p> <p style="line-height: 1.4" align="justify"><font face="Arial"><font style="font-size: 9.8pt" color="#4bacc6"><strong>Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</strong></font></font></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com6tag:blogger.com,1999:blog-6644579903369065806.post-71848069036480266692017-02-02T16:08:00.000+01:002017-02-02T16:08:30.158+01:00Previo Intel Sandy Bridge. Actualizado – LowLevelHardware<p align="justify">Debo reconocer que siento admiración y hasta cierto punto incluso perplejidad sobre cómo han logrado los ingenieros de Intel mejorar tanto una arquitectura ya sobresaliente como Nehalem…</p> <p align="justify">Ya en algunos artículos pasados he hablado de Sandy Bridge:</p> <ul> <li> <div align="justify"><a title="Intel Core i7 SMT vs. AMD Bulldozer CMT - LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/08/intel-core-i7-smt-vs-amd-bulldozer-cmt.html">Intel Core i7 SMT vs. AMD Bulldozer CMT – LowLevelHardware</a> 25 Agosto 2010</div> <li> <div align="justify"><a title="Intel Sandy Bridge versus Westmere die. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/08/intel-sandy-bridge-versus-westmere-die.html">Intel Sandy Bridge versus Westmere die. Actualizado – LowLevelHardware</a> 02 Agosto 2010</div> <li> <div align="justify"><a title="Novedades y expectativas 2010. Actualizado – LowLevelHardware" href="http://lowlevelhardware.blogspot.com/2010/07/novedades-y-expectativas-2010.html">Novedades y expectativas 2010. Actualizado – LowLevelHardware</a> 29 Julio 2010</div> <li> <div align="justify"><a title="Micrografía detallada de Intel Sandy Bridge – ProfessionalSAT" href="http://professionalsat.blogspot.com/2010/06/micrografia-detallada-de-intel-sandy.html">Micrografía detallada de Intel Sandy Bridge – ProfessionalSAT</a> 20 Junio 2010</div> <li> <div align="justify"><a title="Intel Sandy Bridge. Introducción – ProfessionalSAT" href="http://professionalsat.blogspot.com/2010/04/intel-sandy-bridge-introduccion.html">Intel Sandy Bridge. Introducción – ProfessionalSAT</a> 18 Abril 2010</div></li></ul> <p align="justify"><font color="#ffff80" size="3">Intel Tick - Tock</font></p> <p align="justify">Todos conocemos el modelo de trabajo Tick - Tock de Intel, cada dos años nueva microarquitectura y en los años intermedios nuevo proceso de fabricación:</p> <p align="center"><img title="Intel Tick-Tock" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="Intel Tick-Tock" src="http://www.intel.com/technology/pix/ticktock.jpg" width="565" height="362">El exitoso e implacable modelo Tick – Tock de Intel.</p> <ul> <li> <div align="justify">2005 Presler 65 nm (Intel Pentium D, 2 cores, 2 + 2 MB L2) Tick</div> <li> <div align="justify">2006 Conroe 65 nm (Core 2 Duo, 4 cores, 4 + 4 MB L2) Tock</div> <li> <div align="justify">2007 Penryn 45 nm (Core 2 Duo, 4 cores, 6 + 6 MB L2) Tick</div> <li> <div align="justify">2008 Nehalem 45 nm (Core i7, 4 cores SMT, 8 MB L3) Tock</div> <li> <div align="justify">2009 Westmere 32nm (Core i7, 6 cores SMT, 12 MB L3) Tick</div> <li> <div align="justify">2010 Sandy Bridge 32 nm (Core i7 SMT, 6+ cores SMT) Tock</div> <li> <div align="justify">2011 Ivy Bridge 22 nm (Core i7 SMT, 8+ cores SMT) Tick</div></li></ul> <p align="justify">El <font color="#ffff80">Tick</font> significa nuevo proceso de fabricación, más fino, transistores menores y mayor densidad por unidad de superficie. Cachés mayores, menor consumo,menor disipación térmica y mayor frecuencia.</p> <p align="justify">El<font color="#ffff80"> Tock</font> por el contrario consiste en una nueva microarquitectura para aprovechar todas las ventajas aportadas por el nuevo proceso de fabricación del año anterior.</p> <p align="justify">Sandy Bridge esta fabricado en el mismo nodo que los recientes procesadores Westmere de 6 cores y 12 MB de L3 para socket 1366 o los Core i3 e i5 con GPU integrada para socket 1156. Comparte con ellos la tecnología de fabricación de 32 nm HKMG.</p> <p align="justify"><font color="#ffff80" size="3">Intel Sandy Bridge, pequeña introducción</font></p> <p align="justify">Lo que cambia en Sandy Bridge y cambia de verdad es la microarquitectura; reconozco que inicialmente y viendo la poca competencia con que Intel se enfrenta en gama alta pensé que Sandy Bridge sería una mejora más sutil sobre los excelentes cores Nehalem que nos acompañan desde 2008.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TB37hlzK6aI/AAAAAAAAESM/dobmm_4-xrk/s1600-h/SB_4C_630p_cores%5B3%5D.png"><img title="SB_4C_630p_cores" style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="SB_4C_630p_cores" src="http://lh6.ggpht.com/__p96Ony2voA/TB37lcZbcaI/AAAAAAAAESQ/Vni_TqL8Zkw/SB_4C_630p_cores_thumb%5B1%5D.png?imgmax=800" width="634" height="308"></a>Intel Sandy Bridge socket 1155. Quad core con GPU integrada, 8 threads y dual DDR3.</p> <p align="justify">Continuará con la capacidad <a href="http://lowlevelhardware.blogspot.com/2010/08/intel-core-i7-smt-vs-amd-bulldozer-cmt.html" target="_blank">SMT de dos threads por core (HyperThreading)</a> y numerosas mejoras a nivel de cores, caches, interconexiones inter core, disipación térmica y GPU integrada.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TB37obreI5I/AAAAAAAAESU/STl_beD22f4/s1600-h/Core%5B3%5D.png"><img title="Core" border="0" alt="Core" src="http://lh5.ggpht.com/__p96Ony2voA/TB37rZDO9WI/AAAAAAAAESY/IIbxnwI5uxA/Core_thumb%5B1%5D.png?imgmax=800" width="634" height="371"></a> El núcleo de ejecución incluyendo las L1d y L1i y la caché L2 de 256 KB.</p> <p align="justify">A nivel de cores espero un incremento en IPC por core de un <font color="#ffff80">20%</font> (!!) en enteros y un<font color="#ffff80"> 100%</font> en código AVX 256 bit FPU respecto al antiguo código SSE de 128 bit respecto a Westmere. Es algo prácticamente increíble sabiendo con qué lo comparamos pero es así… tiempo al tiempo.</p> <p align="justify">Una mejora crítica en Sandy Bridge es su subsistema de caché L3. Está basado en una arquitectura RING BUS. Esta arquitectura es conocida por el revolucionario procesador octal core Nehalem EX, que con su doble RING BUS bidireccional logra superlativos resultados en ancho de banda y latencia de su masiva L3 de 24 MB en 8 bancos de 3 MB.</p> <p align="justify">En Sandy Bridge conllevará reducciones de latencia L3 del orden de 15 ciclos para la L3 compartida de 8 MB, quedando en unos 25 – 28 ciclos efectivos load to use… simplemente brutal.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/TB38DgiO-3I/AAAAAAAAETE/Fr9YthaToLg/s1600-h/L3%5B3%5D.png"><img title="L3" border="0" alt="L3" src="http://lh6.ggpht.com/__p96Ony2voA/TB38FoTuQII/AAAAAAAAETI/DA07g7EFjV4/L3_thumb%5B1%5D.png?imgmax=800" width="634" height="159"></a> Los cuatro bancos de L3.</p> <p align="justify">En el terreno del consumo eléctrico, Sandy Bridge consigue mejorar a Lynnfield (p.ej. Core i7 880), el mejor procesador en performance per watt con diferencia.</p> <p align="justify">Sobre la GPU integrada, Sandy Bridge llegará en sus versiones básicas al nivel de SVGAs PCIEx de gama baja como las ATI 5450. Las versiones alta de SB se moverán ya en niveles de prestaciones gráficas realmente aceptables, sobre una ATI 4650 con 320 SPs o algo superior.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/TB370akGbCI/AAAAAAAAESk/tiM6a1HDqDc/s1600-h/GPU%5B3%5D.png"><img title="GPU" border="0" alt="GPU" src="http://lh4.ggpht.com/__p96Ony2voA/TB373IIeI1I/AAAAAAAAESs/poupkHI3iDE/GPU_thumb%5B1%5D.png?imgmax=800" width="634" height="347"></a> Detalle de la GPU y la circuitería colateral.</p> <p align="justify"><font color="#ffff80" size="3">Los sockets de Sandy Bridge</font></p> <p align="justify">Intel ha diseñado dos nuevos e incompatibles socket para Sandy Bridge:</p> <ul> <li> <div align="justify">Socket 1155. Sustituto del actual LGA1156, contará con 2 canales DDR3.</div> <li> <div align="justify">Socket 2011. Sustituto del actual LGA1366 contará con cuatro (!!) canales de DDR3 hasta 2133 MHz. Serán excelentes para mis <a href="http://professionalsat.blogspot.com/2009/09/core-i7-42-ghz-algoritmos-de_07.html" target="_blank">Sistemas de Altas Prestaciones</a>.</div></li></ul> <p align="justify">Meditad sobre el 20 % de mejora en IPC clock for clock y core for core respecto a Westmere… a mí me cuesta asumirlo. Estoy deseando echarle el guante a los primeros ejemplares para socket 2011, será en Q2 - Q3 2011.</p> <p align="justify">Más por llegar…</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong><font color="#4bacc6">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com2tag:blogger.com,1999:blog-6644579903369065806.post-76726692989955813082017-02-02T16:07:00.001+01:002017-02-02T16:07:59.464+01:00Intel Core i7 SMT vs. AMD Bulldozer CMT - LowLevelHardware<p align="justify">En este artículo voy a ilustrar dos conceptos:</p> <ul> <li> <div align="justify">El concepto de procesador SMT (Simultaneous Multithreading) utilizado hace años por Intel, primero en su línea Netburst y actualmente con sus brillantes CPUs Nehalem 45 nm ,Westmere 32 nm y próximamente en 2011 Sandy Bridge (32 nm).</div> <li> <div align="justify">El nuevo diseño CMT (Cluster Multithreading) utilizado por AMD en sus futuros procesadores basados en la <a href="http://professionalsat.blogspot.com/2010/08/amd-bulldozer-professionalsat.html" target="_blank"><strong>microarquitectura Bulldozer</strong></a> para 2011.</div></li></ul> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/THa52DJTzpI/AAAAAAAAEc0/rQQLgiczJvg/s1600-h/BulldozerHotChips_August24_8pmET_NDA-8_575px%5B7%5D.jpg"><img title="BulldozerHotChips_August24_8pmET_NDA-8_575px" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-8_575px" src="http://lh5.ggpht.com/__p96Ony2voA/THa525zHPFI/AAAAAAAAEc4/Dwxq3mtm8Us/BulldozerHotChips_August24_8pmET_NDA-8_575px_thumb%5B3%5D.jpg?imgmax=800" width="634" height="358"></a> CMT en AMD Bulldozer 32nm.</p> <p align="justify">Empiezo primero por el concepto de SMT utilizado por Intel en su tecnología HyperThreading, el lector impaciente puede avanzar más abajo para ver la implementación de CMT en AMD Bulldozer.</p> <p align="justify"><font color="#ffff80" size="3">SMT (Simultaneous Multithreading)</font></p> <p align="justify">SMT es un concepto nacido con el fin de ocupar al máximo y durante el mayor porcentaje de tiempo posible los recursos de proceso de un procesador, esto se logra ejecutando simultáneamente dos o más threads en un único core.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/THa530EoZPI/AAAAAAAAEc8/e2zm9UJAH2I/s1600-h/image%5B19%5D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://lh3.ggpht.com/__p96Ony2voA/THa54vLmOhI/AAAAAAAAEdA/Vew7yWlDqfM/image_thumb%5B15%5D.png?imgmax=800" width="480" height="371"></a> Intel Hyper Threading.</p> <p align="justify">De nada sirve un core con 8 ALUs de proceso de enteros si no hay instrucciones suficientes para llenarlas o si estas instrucciones necesitan datos que no están todavía disponibles para la ejecución.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/THa58WkPwAI/AAAAAAAAEdE/Fs3iwiIEmO4/s1600-h/Willamette180nm%5B3%5D.png"><img title="Willamette180nm" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="Willamette180nm" src="http://lh3.ggpht.com/__p96Ony2voA/THa6A3qlJwI/AAAAAAAAEdI/aKjAuDB0U8M/Willamette180nm_thumb%5B1%5D.png?imgmax=800" width="634" height="558"></a> El primer integrante de la saga Netburst, Willamette 180 nm.</p> <p align="justify">Intel, durante el desarrollo de su primer procesador Pentium 4 (microarquitectura Netburst) se dio cuenta de que muchas de sus unidades de ejecución (ALUs, AGUs, FPUs) estaban un porcentaje significativo del tiempo de ejecución de un programa desocupadas, en reposo por falta de instrucciones o datos.</p> <p align="justify">Esto era debido principalmente a tres hechos:</p> <ul> <li> <div align="justify"><font color="#0080c0">L1d Cache mises:</font> Fallos de caché L1d (datos). Si queremos sumar dos números, deberemos conocer esos números antes de ejecutar la instrucción suma sobre los datos. Si los datos no están en la caché L1d, el procesador deberá chequear la caché L2 debiendo esperar en circunstancias reales un mínimo absoluto de 10 ciclos en un P4 Willamette 180 nm o Northwood 130 nm.</div> <li> <div align="justify"><font color="#0080c0">Branch missprediction:</font> Fallo en la predicción de saltos. Los procesadores, desde hace décadas intentan averiguar dónde va a “saltar” la ejecución del programa para tener ya esas instrucciones preprocesadas. Este mecanismo consigue aumentos notables de velocidad de proceso aunque en caso de fallo en la predicción (sobre un 5 % en CPUs modernas) se produce un vaciado de los pipelines de instrucciones y una reejecución de las mismas con la consiguiente penalidad en rendimiento.</div> <li> <div align="justify"><font color="#0080c0">Falta de ancho de banda del decoder que de la <a href="http://lowlevelhardware.blogspot.com/2008/05/microarquitectura-en-imgenes-i.html" target="_blank">trace cache</a> en caso de Trace Cache Miss: </font>La trace cache era capaz de suministrar tres instrucciones / ciclo a las unidades de ejecución pero en caso de no encontrarse la instrucción en la TC se daba un TC Miss. Lamentablemente, y era una increíble limitación del diseño Netburst, el decoder previo a la TC solo introducía instrucciones decodificadas a un ritmo de <strong><u>una por ciclo</u></strong>. Absolutamente insuficiente, cualquier CPU de su época decodificaba 3 instrucciones / ciclo (Pentium III, AMD Athlon).</div></li></ul> <p align="center"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" alt="" src="http://3.bp.blogspot.com/__p96Ony2voA/SBuJU6Heq7I/AAAAAAAAAQk/IWei68m0MSM/s400/TraceCacheNorthwood130nm.jpg">La Trace Cache de Pentium 4 Northwood 130 nm.</p> <p align="justify">Las dos primeros causas de desocupación en las unidades de proceso se resolvian, al menos parcialmente gracias al SMT. Sobre el diseño de la TC, no tenía solución y lo dejo para otro artículo futuro…</p> <p align="justify">SMT consiste en ejecutar a la vez dos threads de una misma aplicación o de dos aplicaciones diferentes en un core. Para ello se deben de rediseñar muchos aspectos del procesador de dos modos:</p> <ul> <li> <div align="justify">Hay partes del core que se deben de duplicar por thread.</div> <li> <div align="justify">Otras estructuras deben particionarse.</div></li></ul> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THa6B8mXDAI/AAAAAAAAEdM/FJEFeLZbHTg/s1600-h/image%5B20%5D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://lh4.ggpht.com/__p96Ony2voA/THa6CzyKO7I/AAAAAAAAEdQ/KKO-FgVtH2Y/image_thumb%5B16%5D.png?imgmax=800" width="484" height="374"></a> SMT añade gran complejidad al diseño del procesador.</p> <p align="justify">Estas partes de la CPU a duplicar o particionar comprenden todas las zonas de almacenamiento de código y datos del procesador:</p> <ul> <li> <div align="justify">Es necesario duplicar el número de registros arquitecturales y de registros renombrados por thread.</div> <li> <div align="justify">Se deben de dimensionar al alza todas las colas (queues) de instrucciones del procesador para asegurar espacio para dos threads distintos y que la lógica de procesamiento fuera de orden (OOO Logic) tenga suficientes instrucciones dentro de la ventana (OOO window) listas para ejecutar y mantener las etapas de ejecución llenas.</div> <li> <div align="justify">Todo esto debe hacerse con un sistema que prevenga y evite la competencia por los recursos entre los dos threads, para evitar problemas de rendimiento.</div></li></ul> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6DZxMisI/AAAAAAAAEdU/i9vJE2RwNAQ/s1600-h/Image3%5B3%5D.png"><img title="Image3" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Image3" src="http://lh3.ggpht.com/__p96Ony2voA/THa6EL2k7cI/AAAAAAAAEdY/ovt0SzTc7f0/Image3_thumb%5B1%5D.png?imgmax=800" width="634" height="330"></a> Pipeline del P4 Willamette 180 nm. En amarillo y verde instrucciones de cada thread.</p> <p align="justify">Todo ello conlleva una cantidad de hardware adicional (transistores) estimada entre un 5 y un 10% del área del procesador.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6EoK7BKI/AAAAAAAAEdc/3LujhDxAzGQ/s1600-h/die%5B5%5D.jpg"><img title="die" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="die" src="http://lh4.ggpht.com/__p96Ony2voA/THa6FdEo64I/AAAAAAAAEdg/ONtuGQodYJk/die_thumb%5B3%5D.jpg?imgmax=800" width="404" height="242"></a> En Pentium 4 Willamette Intel cifró el incremento en un 5%.</p> <p align="justify">La buena noticia es que el SMT aumenta de forma típica el rendimiento de un core de un 10 a un 70% en función del código.</p> <p align="justify">En Pentium 4 yo medí en múltiples ocasiones sobre un 30% de mejora con Hyper Threading habilitado. En Core i7 la mejora es todavía superior.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6GO5x9oI/AAAAAAAAEdk/1j7mBlAjrfo/s1600-h/die%5B9%5D.jpg"><img title="die" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="die" src="http://lh4.ggpht.com/__p96Ony2voA/THa6HdYckCI/AAAAAAAAEds/sibiGaIJwRU/die_thumb%5B5%5D.jpg?imgmax=800" width="634" height="440"></a> 4 cores, 8 threads gracias al SMT: Nehalem 45 nm Intel Core i7.</p> <p align="justify"><font color="#ffff80" size="3">CMT (Cluster Multithreading) en AMD Bulldozer</font></p> <p align="justify">El concepto CMT es la respuesta de AMD al SMT de Intel: Hyper Threading.</p> <p align="justify">AMD llama a cada conjunto de 2 INT cores y 1 FPU compartida (más las cachés L1 y otra circuitería) un <a href="http://lowlevelhardware.blogspot.com/2010/02/amd-bulldozer-prestaciones-estimadas.html" target="_blank">módulo</a>.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THa6IVjJNOI/AAAAAAAAEdw/6DEXGLPgLCc/s1600-h/Cluster_multithreading%5B3%5D.png"><img title="Cluster_multithreading" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Cluster_multithreading" src="http://lh5.ggpht.com/__p96Ony2voA/THa6JrQENOI/AAAAAAAAEd0/WP_ou7IGvqA/Cluster_multithreading_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> El concepto original de CMT.</p> <p align="justify">CMT consiste en duplicar algunas de las unidades de ejecución para conseguir con ello un aumento de prestaciones a la vez que se comparten algunas unidades que por su tamaño no es práctico duplicar.</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6KTPkzNI/AAAAAAAAEd4/nvFnyNyAZtc/s1600-h/BulldozerHotChips_August24_8pmET_NDA-3_575px%5B3%5D.jpg"><img title="BulldozerHotChips_August24_8pmET_NDA-3_575px" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-3_575px" src="http://lh3.ggpht.com/__p96Ony2voA/THa6K2w9d3I/AAAAAAAAEd8/Vr0mewT964U/BulldozerHotChips_August24_8pmET_NDA-3_575px_thumb%5B1%5D.jpg?imgmax=800" width="634" height="358"></a> Diseño general de Bulldozer 32 nm.</p> <p align="justify">En el caso de Bulldozer 32 nm, AMD ha diseñado un procesador dotado de dos cores de enteros (INT cores) compartiendo:</p> <ul> <li> <div align="justify">El hardware de Branch Prediction.</div> <li> <div align="justify">La caché L1i de instrucciones de 64 KB y 2 vías.</div> <li> <div align="justify">Las etapas de fetch (32 bytes / ciclo).</div> <li> <div align="justify">Los cuatro decoders X86.</div></li></ul> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THa6LavAkCI/AAAAAAAAEeA/vFHMhtxbiuI/s1600-h/BulldozerHotChips_August24_8pmET_NDA-7_575px%5B7%5D.jpg"><img title="BulldozerHotChips_August24_8pmET_NDA-7_575px" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-7_575px" src="http://lh6.ggpht.com/__p96Ony2voA/THa6MAxDAqI/AAAAAAAAEeE/iYVk7o_Y1Kk/BulldozerHotChips_August24_8pmET_NDA-7_575px_thumb%5B3%5D.jpg?imgmax=800" width="634" height="358"></a> Componentes compartidos en el Front End.</p> <ul> <li> <div align="justify">La FPU dual de 128 bit FMAC:</div></li></ul> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THa6Mn-w2-I/AAAAAAAAEeI/-xgPMlPH0wU/s1600-h/BulldozerHotChips_August24_8pmET_NDA-9_575px%5B3%5D.jpg"><img title="BulldozerHotChips_August24_8pmET_NDA-9_575px" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-9_575px" src="http://lh3.ggpht.com/__p96Ony2voA/THa6NG5MzDI/AAAAAAAAEeM/6p2kiJCXl7M/BulldozerHotChips_August24_8pmET_NDA-9_575px_thumb%5B1%5D.jpg?imgmax=800" width="634" height="358"></a> La FPU compartida en Bulldozer 32 nm.</p> <p align="justify">También son compartidos los siguientes componentes del die de Bulldozer:</p> <ul> <li> <div align="justify">El Data Prefetcher encargado de precargar datos en las caches.</div> <li> <div align="justify">La caché L2 compartida para cada dos INT cores con su <a href="http://lowlevelhardware.blogspot.com/2008/05/el-tlb-secreto-de-amd-parte-i.html" target="_blank">L2 TLB</a>.</div></li></ul> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/THa6N109rcI/AAAAAAAAEeQ/J-RmVqdyM7I/s1600-h/BulldozerHotChips_August24_8pmET_NDA-10_575px%5B3%5D.jpg"><img title="BulldozerHotChips_August24_8pmET_NDA-10_575px" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-10_575px" src="http://lh3.ggpht.com/__p96Ony2voA/THa6OUgXWtI/AAAAAAAAEeU/Ao8XtSnZOLM/BulldozerHotChips_August24_8pmET_NDA-10_575px_thumb%5B1%5D.jpg?imgmax=800" width="634" height="358"></a>La L2 compartida de Bulldozer 32nm, probablemente de 1 o 2 MB y 16 vías.</p> <p align="justify">En Bulldozer, al haber dos cores de enteros completos, hay muchas estructuras duplicadas:</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/THa6O_sUxjI/AAAAAAAAEeY/xZnIwkS8hHU/s1600-h/BulldozerHotChips_August24_8pmET_NDA-8_575px%5B3%5D.jpg"><img title="BulldozerHotChips_August24_8pmET_NDA-8_575px" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="BulldozerHotChips_August24_8pmET_NDA-8_575px" src="http://lh4.ggpht.com/__p96Ony2voA/THa6PTwY24I/AAAAAAAAEec/8JE6FSulOo8/BulldozerHotChips_August24_8pmET_NDA-8_575px_thumb%5B1%5D.jpg?imgmax=800" width="634" height="358"></a> Los dos cores discretos de enteros en Bulldozer 32 nm.</p> <ul> <li> <div align="justify">Un scheduler de enteros (INT scheduler) por core, unificado para ALUs y AGUs.</div> <li> <div align="justify">Dos ALUs. Unidades de proceso de enteros.</div> <li> <div align="justify">Dos AGUs. Unidades de generación de direcciones de memoria.</div> <li> <div align="justify">L1d de 16 KB y alta asociatividad.</div> <li> <div align="justify"><a href="http://lowlevelhardware.blogspot.com/2008/05/el-tlb-secreto-de-amd-parte-i.html" target="_blank">L1 DLTB</a> de 32 entradas fully associative.</div> <li> <div align="justify">Juego de registros y de registros alias con su hardware de renombramiento.</div> <li> <div align="justify">Unidad de Load - Store con procesamiento fuera de orden en lecturas y escrituras a memoria con sus colas de comandos.</div></li></ul> <p align="justify">La verdad es que es una cantidad de circuitería notable a duplicar, aunque AMD afirma que la superficie del procesador no ha aumentado demasiado por ello.</p> <p align="justify">Según AMD, la mejora de prestaciones en enteros gracias a integrar un segundo core en el módulo ronda el 80%.</p> <p align="justify">En cuanto haya disponibles fotografías del die de Bulldozer veremos cuanto hay de cierto en ello y ya en 2011 cual es la competitividad real de este nuevo diseño.</p> <p align="justify">En cualquier caso me es llamativa la reducción de 3 a 2 ALUs y AGUs por INT core de Phenom II a Bulldozer que puede acarrear reducción de rendimiento single threaded, aunque creo que será compensada con los demás avances a nivel de core.</p> <p align="justify">Echad un vistazo a la web de mi nueva empresa, un proyecto de gran envergadura que llevo preparando hace más de un año.</p> <p align="justify">Os lo recomiendo para<strong><em> </em></strong><a href="https://www.informaticapremium.com" target="_blank"><strong><em>diseño de sistemas de altas prestaciones</em></strong></a>:</p> <p align="justify"><a href="https://www.informaticapremium.com" target="_blank"><img title="ip16_texto_300px_blanco[4][2][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="ip16_texto_300px_blanco[4][2][2][2]" src="https://lh3.googleusercontent.com/-1KZGdT0tnU8/WAY5DEy4FbI/AAAAAAAAKsw/i1gs5-Ld5tY/ip16_texto_300px_blanco%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="304" height="304"></a></p> <p align="justify">Allí tenéis a vuestra disposición el formulario de contacto, para consultas sobre este artículo hacedlo más abajo en la sección de comentarios.</p> <p align="justify">Y mi nuevo Blog de contenido muy técnico y actualizado donde encontraréis artículos míos sobre hardware, procesadores y sistemas y también otros posts de expertos programadores e informáticos sobre otros temas de actualidad:</p> <p align="justify"><a href="https://www.informaticapremium.com/blog/" target="_blank"><img title="infromaticapremium-blog[4][2][2][2]" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="infromaticapremium-blog[4][2][2][2]" src="https://lh3.googleusercontent.com/-h2p7fQO5V3Y/WAY5DlD6L8I/AAAAAAAAKs0/h0bjqm5lsWE/infromaticapremium-blog%25255B4%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D%25255B2%25255D.png?imgmax=800" width="381" height="311"></a></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; widows: 1; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px"><strong style="white-space: normal; word-spacing: 0px; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; text-indent: 0px; -webkit-text-stroke-width: 0px"><font style="text-align: left" color="#4bacc6">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.</font></strong></p> <p style="font-family: ; white-space: normal; word-spacing: 0px; text-transform: none; color: ; orphans: 2; widows: 2; letter-spacing: normal; line-height: 18px; background-color: rgb(20,20,20); text-indent: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><font style="color: " color="#dfce04">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.</font></strong></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com3tag:blogger.com,1999:blog-6644579903369065806.post-87098903178973945452017-02-02T16:07:00.000+01:002017-02-02T16:07:33.408+01:00MEMCON10: DDR4 y roadmap de memoria 2015 - LowLevelHardware<p align="justify">El pasado mes de Julio se celebró la convención <a href="http://www.denali.com/wordpress/index.php/dmr/2010/05/21/memcon-2010-july-28-time-to-register-hun" target="_blank">MEMCON10</a>, donde acuden los principales fabricantes y diseñadores de chips de memoria así como otros expertos en la materia. En este congreso se definieron los roadmaps futuros en el campo de las memorias de acceso aleatorio para sistemas de todos los segmentos y se analizaron las previsiones pasadas y sus desviaciones con la realidad actual.</p> <p align="center"> <a href="http://lh4.ggpht.com/__p96Ony2voA/THK7l-n2fqI/AAAAAAAAEbg/xFe-mXjgtKY/s1600-h/7%5B4%5D.png"><img title="7" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="7" src="http://lh5.ggpht.com/__p96Ony2voA/THK7mqaUI6I/AAAAAAAAEbk/foXrkbX-h0k/7_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> Roadmap RAM hasta 2015. Fuente: <a href="http://www.denali.com/wordpress/index.php/dmr/2010/05/21/memcon-2010-july-28-time-to-register-hun" target="_blank">MEMCON10</a>.</p> <p align="justify">En los sistemas actuales la memoria de uso generalizado es DDR3 en frecuencias desde los 1.066 GHz hasta los 1.6 GHz y en modelos concretos llegamos hasta los 2.5 GHz, se estima que el zenit de la memoria DDR3 se alcanzará en los 2.133 GHz a 1.5 V en módulos estándar (como ahora lo son los DDR3 1.333 GHz) a finales de 2014.</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THK7n1a7kLI/AAAAAAAAEbo/1VmMl2eWOJY/s1600-h/b%5B6%5D.png"><img title="b" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="b" src="http://lh3.ggpht.com/__p96Ony2voA/THK7qHzw9FI/AAAAAAAAEbs/-Jmd_kt-rOQ/b_thumb%5B3%5D.png?imgmax=800" width="634" height="476"></a> El cruce en producción DDR2 vs. DDR3 se produjo a principios de 2010.</p> <p align="justify">El desarrollo de DDR4 se ha dilatado en el tiempo más de lo esperado, y esto ha creado la necesidad de crear bins de mayor velocidad en DDR3, lo que nos llevará hasta los 2.133 GHz. La previsión inicial detallaba la DDR4 en sistemas ya en 2013:</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THK7qsSs_hI/AAAAAAAAEbw/BcRI1sHdyOw/s1600-h/6%5B4%5D.png"><img title="6" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="6" src="http://lh6.ggpht.com/__p96Ony2voA/THK7rTdy-0I/AAAAAAAAEb0/nJVc7CazOnc/6_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> Roadmap inicial, posicionaba DDR4 en 2013.</p> <p align="justify">El tiempo ha demostrado que es más prudente asegurar el desarrollo de DDR4 y mientras tanto seguir con DDR3 poniendo énfasis en la reducción de voltaje para moderar el consumo.</p> <p align="center"><a href="http://lh6.ggpht.com/__p96Ony2voA/THK7sOO3lII/AAAAAAAAEb4/D1ChBRBHOsU/s1600-h/1%5B3%5D.png"><img title="1" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="1" src="http://lh3.ggpht.com/__p96Ony2voA/THK7s71FA2I/AAAAAAAAEb8/SR3Xn7dV6Ms/1_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> El estado presente de las tecnología RAM.</p> <p align="justify">Como todos sabemos, en el segmento de GPUs la memoria estrella es la GDDR5 en frecuencias que rondan ya los 5 GHz en productos finales (ATI de la serie HD5000) y hasta 7 GHz en chips discretos que serán integrados en la siguiente generación (ATI Southern Islands, ATI HD6000).</p> <p align="center"><a href="http://lh4.ggpht.com/__p96Ony2voA/THK7tuw7WsI/AAAAAAAAEcA/NXasrwRZ1pg/s1600-h/m%5B4%5D.png"><img title="m" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="m" src="http://lh4.ggpht.com/__p96Ony2voA/THK7umO_d9I/AAAAAAAAEcE/akfps800QFc/m_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> Proyecciones para DDR4.</p> <p align="justify">En 2015 llega DDR4 con frecuencias iniciales de 2.133 GHz y 1.20 V. Con posibilidad de llegar en futuro sobre los 4.266 GHz. En 2013 se estima estar sobre los 3.2 GHz. Más allá se abre el terreno a la especulación, pero estaremos ya en 2018…</p> <p align="center"><a href="http://lh5.ggpht.com/__p96Ony2voA/THK7vbqJsWI/AAAAAAAAEcM/4MmBZ1DrZdw/s1600-h/8%5B4%5D.png"><img title="8" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="8" src="http://lh5.ggpht.com/__p96Ony2voA/THK7wRepp7I/AAAAAAAAEcQ/FNHCCocC5PM/8_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> Consumos estimados para cada generación de DRAM.</p> <p align="justify">Como vemos, la disipación térmica obliga a ir reduciendo constantemente el voltaje de los chips y con ello su consumo pero con ello se incrementa la sensibilidad al ruido de los canales de transferencia de datos obligando a los diseñadores a agudizar el ingenio con soluciones innovadoras.</p> <p align="justify">Se estima que la DDR3 irá reduciendo su voltaje hasta los 1.25 V en el final de su evolución y la DDR4 empezará en 1.20 V e irá paulatinamente reduciéndolo hasta los 1.05 V.</p> <p align="justify">En las primeras versiones, DDR4 disipará más calor que la DDR3 de voltaje reducido, para, en sucesivas revisiones ir reduciendo su consumo.</p> <p align="center"><a href="http://lh3.ggpht.com/__p96Ony2voA/THK7xKtAOYI/AAAAAAAAEcU/KBuV_4ZC_G4/s1600-h/d%5B4%5D.png"><img title="d" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="d" src="http://lh6.ggpht.com/__p96Ony2voA/THK7x0kQECI/AAAAAAAAEcY/x9gGuzE5Pn4/d_thumb%5B1%5D.png?imgmax=800" width="634" height="476"></a> Conforme avanzan los procesadores multicore aumenta la necesidad de mayor ancho de banda.</p> <p align="justify">La preocupación principal de los expertos estriba en los voraces requerimientos de los procesadores multicore actuales y en su desmedido crecimiento año a año.</p> <p align="justify">La industria de la memoria no es capaz de proporcionar incrementos prestacionales de tal calibre y aumenta cada vez más el vacío de velocidad y latencia entre los cores y la memoria principal.</p> <p align="justify">Para paliar este fenómeno cada vez se integran cachés multinivel de estructura y gestión más compleja y mayores tamaños, así como se amplia en la medida de lo posible el acceso multicanal a los bancos de memoria RAM.</p> <p align="justify"><span class="Apple-style-span" style="font-family: ; white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-family: ; text-align: left; line-height: 18px"><strong style="text-align: left"><font style="text-align: left" color="#4bacc6"><span class="Apple-style-span" style="white-space: normal; word-spacing: 0px; border-collapse: separate; text-transform: none; text-align: left; orphans: 2; widows: 2; letter-spacing: normal; line-height: normal; text-indent: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="text-align: left; line-height: 18px"><font style="text-align: left" face="Arial"><font style="text-align: left"><font style="font-size: 9.8pt">Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.</font></font></font></span></span></font></strong></span></span></p>aaqqhttp://www.blogger.com/profile/17016594305206647569noreply@blogger.com0