Organización Estructurada de Computadoras Arquitectura de Microcomputadoras 9º Sem - ITEK
Máquina multinivel
Programas en Ln interpretados y ejecutados en máquina inferior ó traducidos a lenguaje de máquina de nivel inferior
Nivel n
MV n
Nivel 3
MV 3
Nivel 2
Máquina Virtual 2
Nivel 1
Máquina Virtual 1
Nivel 0
Máquina Real 0
Nivel 5
Nivel de lenguaje orientado a problemas Traducción (compilador)
Nivel 4
Nivel de lenguaje ensamblador Traducción (ensamblador)
Nivel 3
Nivel de sistema operativo Interpretación (SO)
Nivel 2 Nivel 1 Nivel 0
Nivel de arquitectura de conjunto de instrucciones Nivel de microarquitectura
Interpretación (microprograma) o ejecución directa Hardware
Nivel de lógica digital
Organización de sistemas de computadora CPU UC Dispositivos E/S ALU
Memoria principal
Disco
Impresora
Registros
BUS
Ejecución de instrucciones Tareas de la CPU CICLO
BÚSQUEDA-DECODIFICACIÓN-EJECUCIÓN
Ejecución de instrucciones PASOS
Buscar sgte. instrucción de la memoria y colocarla en el registro de instrucciones Modificar el contador de programa para que apunte a la sgte. instrucción Determinar el tipo de instrucción Determinar la posición de memoria de la palabra contenida en la instrucción (si corresponde) Buscar la palabra desde la memoria (si corresponde) y colocarla en un registro de la CPU Ejecutar la instrucción Volver al primer paso para comenzar la sgte. instrucción
Filosofías de diseño
CISC Complex Instruction Set Computer Utiliza un intérprete que busca, examina y ejecuta las instrucciones de otro programa El intérprete requiere un hardware más simple que la máquina objetivo Ahorro en costo por sustitución de hardware por software Ventajosa para operaciones complejas
RISC Reduced Instruction Set Computer Ejecuta directamente las instrucciones en hardware Maximiza la emisión de las instrucciones Instrucciones fáciles de decodificar Referencias a memoria sólo para operaciones de carga y almacenamiento (LOAD y STORE) Abundancia de registros
Paralelismo FILA DE PROCESAMIENTO (PIPELINE) • • • • •
Instrucción dividida en partes Cada parte se ejecuta en paralelo Cada parte requiere hardware dedicado Se aumenta la velocidad de procesamiento de instrucciones Se optimiza la latencia (tiempo que tarda en ejecutarse una instrucción) y el ancho de banda del procesador
Paralelismo Filas de procesamiento (pipeline) Concepto de prebúsqueda por etapas S1
S2 Unidad de decodificación de instrucciones
Unidad de búsqueda de instrucciones
S1 S2 S3 S4 S5
1
S3
S4
Unidad de búsqueda de operandos
Unidad de ejecución de instrucciones
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
1
2
3
4
5
6
1
2
3
4
5 Ciclos de reloj
S5 Unidad de escritura de resultados
Paralelismo Arquitecturas superescalares S4 ALU
S1 Unidad de búsqueda de instrucciones
S2 Unidad de decodificación de instrucciones
S3
ALU
Unidad de búsqueda de operandos
LOAD
S5 Unidad de escritura de resultados
STORE
PF
Arquitecturas superescalares Cuenta con una sola fila de procesamiento y varias unidades funcionales Puede tener varias ALU Ahorro de tiempo en operaciones de acceso a memoria y aritmética de punto flotante
Paralelismo a nivel de procesador Rapidez aumentada en orden de 50, 100 o más Computadora con varias CPU Alternativas de organización:
Computadoras de matriz Multiprocesadores Multicomputadoras
Paralelismo a nivel de procesador COMPUTADORAS DE MATRIZ Arreglo de procesadores Consiste en un gran número de procesadores que ejecutan las mismas instrucciones con diferentes conjuntos de datos Cada procesador ejecuta instrucciones individuales Los procesadores comparten una única unidad de control Ejemplo de suma: Se alimenta los pares de dos registros vectoriales a tantos sumadores como elementos tengan los vectores
Es un concepto que se va desechando
Paralelismo a nivel del procesador COMPUTADORAS DE MATRIZ Procesador vectorial Concepto de registro vectorial: registros convencionales cargados desde memoria con una sola instrucción Ejemplo de suma vectorial: suma por pares Se alimenta los pares de dos registros vectoriales a un sumador con filas de procesamiento
El resultado es otro vector, que puede almacenarse en otro registro vectorial ó ser operando de otra operación vectorial
Paralelismo a nivel del procesador MULTIPROCESADORES Es un sistema con varias CPU Las CPU comparten una memoria común Requiere coordinación de software para evitar colisiones en el uso de la memoria Alternativas de implementación:
Multiprocesador con un solo bus Multiprocesador con memorias locales
Multiprocesador con un solo bus
CPU
CPU
CPU
CPU
Memoria
Bus
Multiprocesador con memorias locales Memorias locales
CPU
CPU
CPU
CPU
Memoria compartida
Bus
Multicomputadoras Concepto Computadoras interconectadas, cada una con su propia memoria Topologías diversas:
Retículas Árboles Anillos
Tendencia a diseñar híbridos (multiprocesadores y multicomputadoras)
Memoria
Memoria primaria Memoria caché Memoria secundaria
Memoria Memoria primaria
8 bits
Memoria
Memoria caché Almacena las palabras de memoria de mayor uso Está integrada en el chip del CPU Aplica el principio de localidad: Las referencias a memoria en un tiempo corto utilizan una pequeña fracción de la memoria total
Reduce el tiempo de acceso promedio a la memoria Es una solución a la lentitud de las memorias principales
Memoria Memoria caché
CPU
Memoria principal
BUS
Memoria Memoria caché Características importantes de la caché: Tamaño Tamaño de la línea de caché Organización Localización de instrucciones y datos Número de caché (diversos niveles)
Jerarquías de memoria Mayor capacidad de almacenamiento Mayores tiempos de acceso Registros Caché Memoria principal Disco magnético Cinta
Disco óptico
Menor costo