Download Tecnologías, Organización y Microarquitectura

Document related concepts
no text concepts found
Transcript
Tecnologı́as, Organización y Microarquitectura
Ing. Marcelo Doallo
Septiembre 2012
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 y Micro-Arquitectura
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
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.
La arquitectura IA-32 se inicia con el procesador 80386 en
1985y llega hasta el procesador Intel que actualmente se
comercializa.
Esto se traduce en diferentes generaciones de
Micro-Arquitectura para mas de 15 modelos de
procesadores.
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