Ley de Moore Gordon Moore, Intel, 1965, Electronics Magazine Familia de Procesadores Intel x86 Sistemas Computacionales Mario Medina C. mariomedina@udec.cl “El número de transistores en un chip se duplica cada 24 meses y esto no cambiará en los próximos 10 años” Tenía razón Las razones son: Tamaño del chip Dimensión de los transistores Ingenio de los diseñadores Ley de Moore (número de transistores) Ley de Moore (tamaño de transistores) Tamaño del transistor Velocidad de reloj de CPU Dennard Scaling Consumo de potencia de un transistor MOSFET es proporcional al área del transistor International Technology Roadmap for Semiconductors ©2014 Mario Medina C. 1 Tendencias en CPUs Intel Consumo de potencia de CPU Disipación dinámica de potencia de una CPU es función de las capacitancias parásitas C, la frecuencia de reloj f y el voltaje de la fuente V Pd = CfV2 Reducir tamaño del transistor reduce C Reducir voltaje de 5.0[V] a 2.2[V] a 1.2[V] a 0.9[V] Aumenta susceptibilidad al ruido Intel 8086/8088 8086: 1978, 29K transistores 80286: 1982, 134K transistores 8 Registros de 16 bits Bus de datos de 16 bits Bus de dirección de 20 bits Multiplexado con bus de datos Clock de 6 a 12.5 MHz Procesador del IBM PC-AT Bus de direcciones de 24 bits Direcciona 16 MiB Aprox. 2.5 MIPS 8088: CPU de IBM-PC Intel 80286 Bus de datos de 8 bits para reducir costos Clock de 4.77 MHz (IBM-PC) Fabricantes: Intel y AMD Tiene modos real y protegido Mejoras en microarquitectura lo hacían 2 veces más rápido que 8086 de misma velocidad Intel 80386 80386: 1985, 275K transistores Arquitectura de 32 bits Registros extendidos de 32 bits Modos real, protegido y virtual 16 y 20 MHz 386SX: versión barata con bus de datos de 16 bits 386SLC es 386SX con cache interna de 8 KiB Intel niega la licencia del 80386 a AMD Intel 80486 i486: 1989, 1.2M transistores Integra FPU 387 al chip Agrega instrucciones atómicas fetch-and-add Agrega cache L1 interna D+I de 8 KiB i486SX: 486 sin unidad de punto flotante Desempeño es 50% mejor que i386 de la misma velocidad Pipeline de 5 etapas Clonado por Cyrix, AMD y otros i486 ©2014 Mario Medina C. 2 Intel Pentium Pentium: 1993, 3.1 M transistores Intel Pentium MMX Pentium MMX: 1997, 4.5 M transistores Microarquitectura P5 60 y 66 MHz Bus de datos de 64 bits Desempeño es el doble que i486 Procesador superescalar Vectores enteros de 64 bits datos de 1, 2 o 4 bytes 8 registros de punto flotante Cache interna de 32 KiB 64 bits cada uno Ejecuta 2 ops. aritméticas por ciclo Instrucciones MMX Cache interna de datos 8 KiB e instr. 8 KiB Predicción de saltos Intel Pentium Pro Pentium Pro: 1995, 5.5 M transistores Microarquitectura P6 Bus de direcciones de 36 bits Intel Pentium II Pentium II: 1997, 7M transistores Versión Xeon tiene caches 512 KiB a 2 MiB Direcciona 64 GiB Memoria cache L2 de 256 ó 512 KiB conectada via backside bus Clock de 150 y 166 MHz Instr. move condicional Superescalar de 3 vías Memoria cache L2 de 256 KiB a 1 MiB Front-side bus de 100 MHz Agrega instrucciones MMX a Pentium Pro Cache L1 de 32 KiB Clock de 266 MHz Conectada via backside bus Opera en paralelo a RAM Intel Pentium III Pentium III: 1999, 8.2 M transistores Pentium 4: 2001, 42 M transistores Instr. vectoriales de 128 bits (SSE) Aceleran cálculos de punto flotante Versión Coppermine agrega cache L2 de 256KB en el chip 28 M transistores Versión Tualatin aumenta cache L2 a 512 KiB Intel Pentium 4 Microarquitectura NetBurst, 1.5 GHz Incorpora tecnología HyperThreading (3.4 GHz) Agrega instr. vectoriales de 8 bytes (SSE2) Luego agrega nuevas instrucciones x86-64 Limitado por alta disipación a altas velocidades 180 ns a 65 ns Clock hasta 3.8 GHz Pentium III Pentium 4 Extreme Edition Arquitectura Intel 64 bits ©2014 Mario Medina C. 3 Intel Pentium M Pentium M 775: 2003, 140M transistores Pentium III muy modificado Basado en microarquitectura P6 Bus del Pentium 4, SSE2, MMX No hyperthreading, no SSE3 Pentium Extreme Edition (2005), 164M transistores Optimizado para bajo consumo Desempeño Pentium M 1.6 GHz ~ P4 2.4 GHz Intel Pentium EE Cache L1 Datos 32 KiB + Instr. 32 KiB Cache interna L2 de hasta 2 MiB Pentium 4 dual-core Microarquitectura NetBurst MMX, SSE, SSE2, SSE3 Hyperthreading Arquitectura Intel de 64 bits Intel Core Intel Core: 2006, 150M transistores Microarquitectura Core derivada del P6 1 ó 2 Cores de 32 bits en el chip Cache L1 de 64 KiB Cache L2 compartida de 2 MiB No Hyperthreading Instrucciones SSSE3 Intel Core 2 Intel Core 2: 2006, 291M transistores Microarquitectura Core de 64 bits Solo, Duo o Quad Core Tecnología de 65nm y 45nm Cache L2 compartida de 4MB ó 6 MB Instrucciones SSE3 y SSSE3 Modo SpeedStep (Reloj variable) Intel Atom Intel Atom: 2008, 47M transistores Microarquitectura Atom de 64 bits Muy popular en netbooks Optimizada para bajo consumo de potencia 2 pipelines de 16 etapas Hyperthreading MMX, SSE, SSE2, SSE3, SSSE3 Cache L1 Datos 24 KiB + Instr. 32 KiB Cache L2 de 512 KiB Intel i7 (Nehalem) Intel i7: 2008, 770M transistores Elimina Front-Side Bus ©2014 Mario Medina C. Microarquitectura Nehalem de 64 bits Buses Quick Path Interconnect (QPI) Cache L2 de 4 a 12 MiB Hyperthreading Dynamic overclocking (Turbo Boost) Dual-core, Quad-core ó Six-core MMX, SSE, SSE2, SSE3, SSSE3 3 canales de memoria DDR3 4 Intel i7 (Sandy Bridge) Intel i7: 2008, 995M transistores Intel Xeon E5 (Sandy Bridge) Intel Xeon E5: 2012, 2260M transistores Microarquitectura Sandy Bridge de 64 bits Tecnología de 32 nm Quad-core Cache L1 de 32 + 32 KiB por core Cache L2 de 256 KiB por core Cache L3 compartida de 4 a 8 MiB Procesador gráfico incorporado en el chip Advanced Vector Extensions (AVX) Microarquitectura Sandy Bridge-E de 64 bits Fecha de aparición: marzo 2012 Tecnología de 32 nm De 2 a 8 cores Cache L2 por core de 256 KiB Cache L3 compartida de 2 a 20 MiB Advanced Vector Extensions (AVX) Línea Xeon dirigida a servidores y estaciones de trabajo Intel i7 (Ivy Bridge) 4 Cores 6 Unidades GPU Microarquitectura Ivy Bridge Sobre 1400M transistores Velocidad: 3.5/3.9 GHz Cache L1: 64 KB/core Cache L2: 256 KB/core Cache L3: 8 MB Consumo: 77W Tamaño: 133 mm2 Precio inferior a US$300 SIMD SIMD (Single Instruction, Multiple Data) aplica la misma instrucción en paralelo a varios datos También llamadas instrucciones vectoriales cortas Intel I7 (Haswell) 4/6/8 Cores Intel HD 4600 Microarquitectura Haswell Sobre 1400M transistores Velocidad: 3.6/4.0 GHz Cache L1: 64 KB/core Cache L2: 256 KB/core Cache L3: 8 MB Consumo: 84W Tamaño: 177 mm2 Precio: US$300 Instrucciones SIMD Requiere múltiples unidades funcionales Requiere acceso paralelo a datos Beneficia aplicaciones que realizan las mismas operaciones sobre muchos datos en forma regular ©2014 Mario Medina C. 5 Instrucciones MMX de Intel Instrucciones SIMD de Intel MMX opera sobre registros FP de 64 bits Registro FP de 64 bits 57 instrucciones MMX Puede operar sobre 2 enteros de 32 bits, 4 enteros de 16 bits ó 8 enteros de 8 bits Puede ser interpretado como Entero de 32 bits Entero de 32 bits Diseñado para operaciones gráficas Realiza la misma instrucción sobre los datos Aparecen con el Pentium MMX AMD introduce instrucciones 3DNOW! que usan los registros FP como 2 datos de punto flotante de 32 bits Instrucciones SIMD de Intel SSE (Streaming SIMD Extensions) 70 instrucciones Aparece con el Pentium III Operaciones sobre enteros usan MMX AMD agrega 8 registros XMM más Entero 16 bits Entero 16 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits Instrucciones SIMD de Intel Opera sobre registros como 4 números de punto flotante de precisión simple Entero 16 bits SSE2 (Streaming SIMD Extensions v.2) Agrega a la CPU 8 registros especiales XMM0 a XMM7 de 128 bits Entero 16 bits SSE2 amplía instrucciones SSE Opera sobre registros XMM de 128 bits Aparecen con el Pentium IV Operaciones sobre datos como 2 double, 2 enteros de 64 bits, 4 enteros de 32 bits, 4 float, 8 enteros de 16 bits ó 16 enteros de 8 bits XMM8 a XMM15 Instrucciones SSE de Intel SSE Registro XMM de 128 bits Puede ser interpretado como Instrucciones SIMD de Intel SSE3 (Streaming SIMD Extensions v.3) double de 64 bits double de 64 bits SSE2 entero de 64 bits entero de 64 bits SSE2 entero 32 bits entero 32 bits entero 32 bits entero 32 bits SSE2 float 32 bits float 32 bits float 32 bits float 32 bits SSE 16 bits 16 bits 16 bits 16 bits 16 bits 16 bits 16 bits 16 bits SSE2 SSSE3 (Supplemental Streaming SIMD Extensions v.3) ©2014 Mario Medina C. 13 nuevas instrucciones que pueden operar horizontalmente, entre los datos que comparten un mismo registro XMM Aparecen en Pentium 4 (Prescott) Aparecen con la microarquitectura Core 16 nuevas instrucciones 6 Instrucciones SIMD de Intel SSE4 (Supplemental Streaming SIMD Extensions v.4) 54 instrucciones nuevas Aparece en microarquitectura Core (Penryn) SIMD Beneficia aplicaciones que realizan las mismas operaciones sobre muchos datos en forma regular Procesadores digitales de señales Procesadores gráficos (GPU) Consolas de juegos AVX (Advanced Vector Extension) Aparece en microarquitectura Sandy Bridge Extiende registros a 256 bits (YMM) Incluye nuevos formatos de instrucción Requiere soporte a nivel del S. O. Windows 7, 8, Linux 2.6.30 ©2014 Mario Medina C. Texas Instruments DSP NVidia, ATI Procesador Cell 7