Clase N° 3 Memoria Caché A partir del 486 se incluye dentro del circuito integrado una memoria caché L1, que corre a la velocidad del micro. Básicamente es una memoria muy rápida (SRAM), empleada para contener parte del conjunto de código y datos sobre el cuál trabaja el micro en un momento dado. En los micros actuales, se habla de niveles de caché. El primer nivel (L1) suele ser el más rápido, de muy baja latencia y de menor tamaño. Los chips modernos incluyen un segundo nivel (L2) que es de mayor tamaño, pero un poco más lento. Al aumentar el multiplicador, la caché se hace más importante, dado que el procesador deberá trabajar más tiempo con los datos almacenados en su interior. Respecto de la caché, hay varios parámetros que definen su rendimiento, principalmente el tamaño y la velocidad. Lo ideal es que una caché sea grande y rápida. En los micros Intel de la familia P6 como el Pentium II y los primeros Pentiun III, la caché era grande (512 KB), pero sólo funcionaba a la mitad de la frecuencia del procesador. Con el fin de entender la importancia de esta memoria hay que entender las velocidades de los procesadores y las memorias, el problema es que tienen distintas unidades de medida. La velocidad del procesador se expresa en MHz. y la de la memoria en nanosegundos (mil millonésimas de segundo por ciclo). La forma en que se realiza el pasaje es la siguiente: 1 / nanosegundos x 1000 = MHz. 1 / MHz. x 1000 = nanosegundos Así una memoria de 10 ns. sabemos que corre a 1 / 10 ns x 1000 = 100 MHz. Para explicar el funcionamiento supongamos que tenemos un procesador de 1000 MHz con una memoria de 100 MHz. Cuando el procesador accede a los datos de la memoria, debe rebajar su velocidad a 100 MHz., y si esto lo hace continuamente, tendríamos un procesador trabajando sólo al 10% de su capacidad. La solución para esto es la memoria caché, que le puede seguir el paso a la velocidad del procesador. Entonces, porque no sustituir la memoria principal del sistema (DRAM) por esta memoria más rápida (SRAM), simple, por un tema económico. La SRAM es mucho más cara y necesita mayor espacio. Es por esto que también existe una caché L2, que habitualmente es más grande que la L1. Cada vez que falla la caché L1 el micro busca en la L2, y si no encuentra los datos que necesita, finalmente baja la velocidad a la de la memoria. Intel informa que la frecuencia de aciertos de la caché L1 y L2 es de un 90%. Modos de procesador (real -soft 16 bits-; protegido (32 bits); real virtual (soft de 16 en un ambiente de 32) Todos los procesadores de 32 bits y posteriores pueden funcionar en varios modos. Estos se relacionan con los distintos S.O. y afectan a las instrucciones y el desempeño del chip. Los 3 modos posibles son: Real (soft 16 bits) Protegido (soft 32 bits) Modo real virtual (soft de 16 en un ambiente de 32 bits) Modo real La arquitectura es del 8088, direcciona 1 MB de memoria. Modo protegido Se llama así porque los programas están protegidos de ser sobrescritos por otros programas. Modo real virtual Ejecuta soft de 16 bits en un ambiente de 32 bits. Ejecución superescalar (sólo mención de RISC, CISC, VLIW) RISC Reduced Instruction Set Computer son breves y todas tienen la misma longitud. Se procesan con mayor rapidez que las CISC. El problema es que las instrucciones llegan a la cpu en formato CISC entonces tienen que ser decodificadas. CISC Complex Instruction Set Computer. Son complejas, pero no precisan ser decodificadas. VLIW Very Long Instruction Word. La idea es poner varias instrucciones en una sola. El Itanium usa esta tecnología. Instrucciones adicionales (MMX, SIMD, 3DNOW –sólo mención; desarrollo en los procesadores) MMX Las siglas provienen de eXtensiones MultiMedia, o de eXtensiones Matemáticas de Matriz. La tecnología MMX fue introducida a finales de la quinta generación de procesadores Pentium como un agregado para mejorar la compresión y descompresión de video, manipulación de imágenes, cifrado y procesamiento de E/S, todas ellas funciones usadas en una variedad de soft actual. SSE Streaming SIMD Extensions son 70 nuevas instrucciones que introdujo Intel en los micros Pentium III. Son similares a las MMX, y además permiten cálculos de punto flotante. Entre las tecnologías que se benefician gracias a las SSE figuran la producción avanzada de imágenes, el video 3D, audio y video fluidos (reproducción de películas) y las aplicaciones de reconocimiento de voz. 3DNow y Enhanced 3DNow La tecnología 3DNow es la alternativa de AMD a las instrucciones SSE de los procesadores Intel. AMD licenció las instrucciones MMX y para no solicitar también la licencia de las SSE desarrollo las 3DNow. Estas instrucciones extienden las capacidades multimedia de los procesadores AMD de una manera superior a MMX. Ejecución dinámica (Predicción, análisis de flujo de datos, ejecución especulativa) Usada por primera vez en la sexta generación de procesadores, la ejecución dinámica es una combinación de 3 técnicas de procesamiento diseñadas para ayudar al micro a manipular datos con mayor eficacia. Estas técnicas son: Predicción de múltiples ramas Anticipa el flujo del programa a través de varias ramas. Usa esta técnica para predecir en que lugar de la memoria se encuentran las siguientes instrucciones con una precisión del 90%. Análisis de flujo de datos Consiste en estudiar y organizar las instrucciones para ejecutarlas en una secuencia óptima, independientemente del orden original del programa. Ejecución especulativa Incrementa el rendimiento mediante la consulta adelantada del contador del programa y la ejecución de instrucciones que probablemen te sean necesarias más adelante. Procesadores P1 (086), la primera generación Son los primeros procesadores de Intel incluidos en la primera PC de IBM. Procesadores 8086 y 8088 En 1978 Intel introduce el 8086, un procesador de 16 bits, que por ende podía correr un nuevo conjunto de instrucciones de 16 bits. También tenía un bus de datos de 16 bits y un bus de direcciones de 20 bits (podía utilizar 1 MB de memoria). Como los usuarios de la época usaban soft de 8 bits, la construcción de un sistema íntegramente de 16 bits implicaría el rediseño de todo el soft y la arquitectura de los mothers que había en el mercado. Entonces Intel introdujo una versión disminuida de este chip, el 8088 que conservaba los registros internos de 16 bits, pero reemplazaba el bus de e/s de 16 por uno de 8 bits. Así podía trabajar con programas de 8 y 16 bits. Este procesador (el 8088) fue seleccionado por IBM para construir la primera PC. Coprocesador 8087 Fue introducido en 1976 para llevar a cabo operaciones matemáticas de alto nivel. Procesadores P2 (286), la segunda generación Esta generación permitió un gran adelanto en cuanto a velocidad del sistema, se dio el salto de mover 8 bits de datos a mover 16 a la vez. Procesadores 286 Fue introducido en 1981. Son 5 veces más rápidos que sus antecesores por varias razones; la principal es que son mucho más eficientes en la ejecución de instrucciones (4.5 ciclos por instrucción contra 12 ciclos del 8086). Adicionalmente el 286 puede manejar 16 bits de datos a la vez, a través de un bus externo de datos con esa anchura. El 286 puede ejecutarse en 2 modos: Real y Protegido (ver en página 1). Aunque para cambiar entre uno y otro hay que reiniciar la máquina. El coprocesador 287 corre a la misma velocidad que la del micro. Procesadores P3 (386), la tercera generación Representa el cambio más significativo en procesadores desde la primera PC. Lo más importante fue la migración de procesadores capaces de manejar operaciones de 16 bits a chips de 32 bits reales. Estos procesadores estuvieron tan adelantados a su época que tomó alrededor de 10 años la difusión y el uso pleno de los sistemas operativos y aplicaciones a 32 bits. Procesadores 386 A comparación con el 286 ofrecía un rendimiento muy superior. Intel lo introdujo en 1985 y fue el primer micro completamente de 32 bits. El 386 también puede ejecutar instrucciones de 16 bits, pero en menos ciclos de reloj que sus antecesores. Además para cambiar entre modo real y protegido, basta con reiniciar el soft. El coprocesador 387 era un chip de alto rendimiento diseñado exclusivamente para correr con el 386. Hay principalmente 2 versiones del 386, a continuación esta tabla muestra las características: Procesador Bus de datos Registros internos Bus de direcciones Velocidades 386DX 32 Bits 32 bits 32 bits Entre 16 y 33 MHZ. 386SX 16 Bits 32 bits 24 bits Entre 16 y 33 MHZ. Procesadores P4 (486), la cuarta generación Esta generación representó un mayor grado de refinamiento de las generaciones previas. Procesadores 486 La potencia adicional dispoible en el 486 impulsó un notable crecimiento en la industria del soft. Hay 4 características que hacen a un 486 correr al doble de la velocidad que un 386 con los mismos MHz.: Menor tiempo para la ejecución de instrucciones: una instrucción se completa en 2 ciclos de reloj, contra los más de 4 del 386. Caché L1 interna Ciclos de memoria en modo ráfaga Coprocesador matemático mejorado integrado Los tipos de 486 que hay son: 486DX: Fue lanzado en 1989. Hubo versiones de 25, 33 y 50 MHz. La versión estándar incluye una FPU (Float Point Unit). 486SX: Fue lanzado en 1991 como una versión más barata del chip 486DX. Básicamente es similar al DX, pero no incorpora la Unidad de Punto Flotante (FPU). 486DX2/OverDrive y DX4: En 1992 Intel presentó micros duplicadores de velocidad DX2 y Overdrive (estos últimos para reemplazar a los 486SX). Estos micros estuvieron disponibles en 3 velocidades: 40, 50 y 66 MHz. Luego Intel presentó el DX4 que multiplicaba en 4 la velocidad del mother con bus de 25 MHz. Este procesador tuvo 2 versiones, una que funcionaba con 3.3 v. y otra con 5 v. Procesadores P5 (586), la quinta generación Luego del 486 los fabricantes concibieron nuevas arquitecturas y características para incorporarlas en los chips de quinta generación. Procesadores Pentium En 1993 Intel lanzó el chip sucesor del 486, el Pentium. Este es compatible con los antiguos procesadores pero difiere de ellos en varios sentidos. Una de esas diferencias es revolucionaria: presenta canales gemelos de daros, lo cual permite ejecutar dos instrucciones al mismo tiempo (tecnología superescalar). Además implementa la predicción por rama. Amplia su bus de datos a 64 bits, pero sus registros son de 32 bits. Usa memoria en módulos SIMM o DIMM. Dado que las SIMM son de 32 bits es necesario colocar módulos de a pares. Hay 3 tipos de micros Pentium, el de primera generación, el de segunda y el MMX. Pentium de 1era generación: Disponible en versiones de 60 y 66 MHz. Opera con 5 v. y fue construido con un proceso de 0.8 micras. Pentium de 2da generación: En 1994 Intel introduce versiones del Pentium a 75, 90, 100, 120, 133, 150, 166 y 200 MHz. Fue construido con un proceso de 0.6 micras para reducir el tamaño y el consumo de energía. Procesadores Pentium MMX: en 1997 Intel incorpora a los micros la tecnología MMX anteriormente explicada, con la consecuente mejora de rendimiento. Hay versiones de 166, 200 y 233 MHz. Fue construido con un proceso de 0.35 micras y funciona con un voltaje de 2.8 v. AMD- K5 Es un procesador compatible con Pentium, desarrollado por AMD y disponible como PR75, PR90, PR100, PR120, PR133 y PR166. Estas siglas son las calificaciones P, pero no son la velocidad real, por ejemplo el PR166 corre a 117 MHz.