Qué es la arquitectura de computadores Anticipación, paralelismo y segmentación Clasificación de Flynn Máquinas MIMD Multiprocesadores Multicomputadores Supercomputadores: Computadores vectoriales Computadores SIMD Entornos de programación: Paralelismo implícito Paralelismo explícito Evolución de las arquitecturas de procesadores 1 RESUMEN
ARQUITECTURA DE COMPUTADORES Versa sobre la organización del hardware y los requisitos de programación / software. Enganche entre el código ensamblador y el hardware. Hardware: CPUs, caches, buses, registros, pipelines, etc. Software: juego de instrucciones (código de operación, registros, modos de direccionamiento, etc.). 2
INSTRUCCIONES 3 x = (a + b) – c; ADR r4,a ; get address for a LDR r0,[r4] ; get value of a ADR r4,b ; get address for b, reusing r4 LDR r1,[r4] ; get value of b ADD r3,r0,r1 ; compute a+b ADR r4,c ; get address for c LDR r2,[r4] ; get value of c SUB r3,r3,r2 ; complete computation of x ADR r4,x ; get address for x STR r3,[r4] ; store value of x C: Assembler:
VON NEUMAN 4 Mismo almacenamiento para instrucciones y para datos La mayoría de las computadoras modernas (Gp:) CPU (Gp:) Memoria Principal (Gp:) Sistemas de Entrada/Salida (Gp:) ALU (Gp:) Unidad de Control (Gp:) Registros (Gp:) Contador de Programa
EJECUCIÓN DE INSTRUCCIONES 5 Instr Fetch Reg ALU Data Access Reg Instr Fetch Reg ALU Data Access Reg Instr Fetch Instr. Fetch Reg ALU Data Access Reg Instr. Fetch Reg ALU Data Access Reg 8ns 9ns Instr. Fetch Reg ALU Data Access Reg Idle Decodification 2ns 2ns 2ns Secuencial Segmentación I1 I2 I3 I1 I2 I3 etc. etc.
ANTICIPACIÓN, PARALELISMO Y SEGMENTACIÓN 6 SEGMENTACIÓN Descomponer la ejecución de cada instrucción en varias etapas para poder empezar a procesar una instrucción diferente en cada una de ellas y trabajar con varias a la vez.
ANTICIPACIÓN Búsqueda “anticipada” de instrucciones para superponer las fases de búsqueda, descodificación y ejecución.
PARALELISMO FUNCIONAL: tareas que se pueden ejecutar al mismo tiempo. Espacial: replicación de hardware. Temporal: solapamiento de operaciones funcionales en el tiempo, segmentación.
PARALELISMO DE DATOS Se ejecuta una instrucción sobre un conjunto de datos.
PARALELISMO A NIVEL DE MÁQUINA VS PROCESADOR El paralelismo en los computadores ha tenido dos aspectos que han evolucionado en paralelo: Paralelismo a nivel de máquina: En este nivel se distinguen diferentes tipos de organización de máquinas que en este curso se mencionan y se ampliarán en cursos posteriores. Paralelismo a nivel de procesador: En este nivel se pueden estudiar una serie de avances organizativos que han conducido a una mejora en la eficiencia. El curso de organización de computadores se centrara en este nivel. 7
8 Evolución de la Arquitectura de Computadores Escalar Secuencial Anticipación Solapamiento E/S Paralelismo Funcional UF Múltiples Segmentación Vectoriales Implícitos Vectoriales Explícitos Mem-mem Reg-reg SIMD MIMD Multicomputadores Multiprocesadores Procesadores Asociativos Arrays de Procesadores
CLASIFICACIÓN DE FLYNN Se considera: Flujo de instrucciones: secuencia de instrucciones ejecutadas por la máquina. Flujo de datos: secuencia de datos, tanto de entrada como resultados finales e intermedios. SISD (single instruction stream over a single data stream). SIMD (single instruction stream over multiple data stream). MIMD (multiple instruction streams over multiple data streams). MISD (multiple instruction streams and a single data streams). 9 (Gp:) MIMD (Gp:) MISD (Gp:) MÚLTIPLE (Gp:) SIMD (Gp:) SISD (Gp:) ÚNICO (Gp:) MÚLTIPLE (Gp:) ÚNICO (Gp:) Flujo de datos Flujo de instrucciones
ARQUITECTURA SISD 10 Corresponde a un uni-procesador. Puede estar segmentado o no.
ARQUITECTURA SIMD Corresponde a procesadores vectoriales / matriciales. Una única memoria de instrucciones y varias memorias de datos (distribuidas). Control centralizado y operaciones distribuidas. 11 Interconnection Network (ICN)
ARQUITECTURA MIMD Memoria compartida. Procesadores con paralelismo intrínseco. Ordenadores multi-procesador. 12
ARQUITECTURA MISD Procesadores sistólicos. Cada unidad de proceso realiza una operación sobre los datos. Los datos pasan por todas o parte de la unidades de proceso hasta que se ha completado el algoritmo. Pipelined SIMD. No muy utilizados. 13
SISD VS SIMD 14
Página siguiente |