Tecnologı́as, Organización y Microarquitectura Ing. Marcelo Doallo Noviembre 2013 Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Tecnologı́a de Integración Nanotecnologı́a Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Tecnologı́a de Integración Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la influenza, y de un transistor construido con la tecnologı́a de 65 nm reemplazada en el 2007 por la de 45 nm, con la que se construyen los procesadores Core2Duo y Xeon Quad Core de Intel. Los 30 nm representan el ancho del Gate del transistor NMOS Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Proceso y componentes de la técnica de Litografı́a Proceso por el cual se crean patrones especı́ficos en un chip. Los chips actuales consisten en un sustrato de silicio encima del cual se crean mas de 20 capas de materiales de diferentes tipos. Estos forman los transistores y las pistas que los interconectan en una configuración particular, formando un microprocesador, chipset, memoria, o cualquier otro circuito integrado. Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Organización de un computador Conceptos generales: Arquitectura vs. Micro-Arquitectura Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Arquitectura Recursos accesibles para el programador: Registros Set de instrucciones Estructuras de memoria (descriptores de segmento, de página, etc.) Estos recursos se mantienen y evolucionan a lo largo de los diferentes modelos de procesadores de esa arquitectura Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Micro-Arquitectura Implementación en el silicio de la arquitectura. Es lo que hay detrás del set de registros y del modelo de programación. Puede ser muy simple o sumamente compleja. Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Arquitectura y Micro-Arquitectura La arquitectura IA-32 se inicia con el procesador 80386 en 1985 y llega hasta el procesador Intel que actualmente se comercializa. Esto se traduce en implementa con diferentes generaciones de Micro-Arquitecturas para mas de 15 modelos de procesadores diferentes. Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Enfoques CISC (Complex Instruction Set Computer) Instrucciones que realizan tareas complejas RISC (Reduced Instruction Set Computer) Instrucciones que realizan operaciones sencillas MISC (Minimal Instruction Set Computer) Mı́nimo de operaciones necesarias Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Ejemplo CISC (Intel) Instrucción: REP MOVS Copia CX bytes de DS:SI, a ES:DI. MOVS: Copia el dato en DS:SI, a ES:DI. Dependiendo de un flag, SI y DI son incrementados (+1) o decrementados (-1) REP: Prefijo. Decrementa CX y hace que se repita la operación hasta que CX llegue a 0 Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Ejemplo RISC La misma instrucción implementada en una arquitectura RISC: Asumamos que en $s3 esta el fuente, $s4 el destino y $s5 es el contador bucle: lb $t0,0,($s3) ; t0 = mem[s3] sb $t0,0, $s4 ; mem[s4] = t0 add $s3,$s3,1 add $s4,$s4,1 sub $s5,$s5,1 be $s5,0,fin j bucle fin: Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Ciclo de instrucciones: Etapas Requiere una cantidad de hardware considerable. En los procesadores sencillos solo una parte del hardware se activa en un determinado momento: la que se necesita para resolver la micro operación. Este método es poco eficiente. En nuestro ejemplo el procesador podrá ejecutar una instrucción cada 5 ciclos de clock Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Pipeline de instrucciones Técnica que permite superponer en el tiempo la ejecución de varias instrucciones a la vez No requiere hardware adicional. Solo se necesita lograr que todas las partes del procesador trabajen a la vez Trabaja con el concepto de una lı́nea de montaje: Cada operación se descompone en partes Se ejecutan en un mismo momento diferentes partes de diferentes operaciones Resultado: Una vez en régimen ejecuta a razón de una instrucción por ciclo de clock Cada parte se denomina etapa (stage) Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Etapas de un pipeline Podemos desagregar mas las micro operaciones y generar pipelines de mas etapas. Ej: Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Etapas de un pipeline con interrupción Incluir el chequeo de interrupciones Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Ejemplo de Super pipeline: Pentium IV Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Pipeline de seis etapas Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Efecto de un branch en un Pipeline de seis etapas Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Tratamiento de los saltos en un pipeline Se implementan unidades de predicción de saltos Asumir que nunca se salta Asumir que siempre se salta Predecir por OpCOde ... Salta / NO salta alternativamente Utilizar una memoria ultrarrápida con una tabla de historia de saltos. Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Predicción de saltos Se incluye un buffer de saltos Memoria pequeña muy veloz Se guardan bloques de código. Cada vez que se tiene un salto se estudia si el destino está en el buffer Si lo esta se lo toma de allı́ en caso de que la condición de salto ası́ lo determine Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Arquitectura Superescalar Arquitectura de procesamiento en la que se puede iniciar varias instrucciones en forma simultánea y ejecutarse en forma independiente El pipeline permite que varias instrucciones estén ejecutándose en un mismo momento, pero siempre que se encuentren cada una en diferentes etapas del pipeline Un procesador superescalar extiende este paralelismo permitiendo que en una etapa del pipeline se puedan ejecutar varias instrucciones en forma independiente en un mismo ciclo de clock Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Arquitectura superescalar de dos vı́as Dos Pipelines de instrucciones Al tener dos unidades de ejecución paralelas, se duplica la actividad interna del procesador alcanzando la velocidad teórica de dos instrucciones por ciclo de clock Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Limitaciones al modelo superescalar Dos o mas instrucciones compiten por acceso en el mismo momento al mismo recurso: Registro. Dirección de Memoria Unidad funcional del procesador Las instrucciones de transferencia de flujo (denominadas branch, y que son generalmente saltos, o call), hacen que todas las que vienen a continuación sean descartadas de las etapas del pipeline en el que se ejecuta la instrucción de transferencia de flujo. Instrucciones con interdependencia de resultados. Una instrucción en la que uno de los operandos es el resultado de otra que se está ejecutando al mismo tiempo, debe ser detenida hasta que se obtenga el resultado mencionado. Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Efecto de las Dependencias Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura Casos de Pipelining en el IA-32 Ing. Marcelo Doallo Tecnologı́as, Organización y Microarquitectura