ARQUITECTURA DEL COMPUTADOR

Documentos relacionados
Taxonomía de las arquitecturas

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

MULTIPROCESADORES TIPOS DE PARALELISMO

Paralelismo _Arquitectura de Computadoras IS603

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz

Modelos de computadores paralelos

Clasificación de Flynn de los computadores

Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas

Arquitectura de Computadoras para Ingeniería

Computación de Altas Prestaciones Sistemas computacionales

Paralelismo en el procesador

Procesamiento Paralelo

ARQUITECTURA DE VON NEUMANN Y HARVARD

Modelado de los computadores paralelos

Organización del Computador I. Introducción e Historia

Multiprocesamiento en Lenguaje C Conceptos básicos de la computación paralela

Computación de Alta Performance Curso 2009 ARQUITECTURAS PARALELAS ARQUITECTURAS PARALELAS

Procesamiento Paralelo

GRADO EN INGENIERÍA DE COMPUTADORES

Modelado de los computadores paralelos

Clasificación de las Arquitecturas

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Trabajo de investigación Paralelismo en el procesador

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4

TEMA 2: Organización de computadores

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Prerrequisito (s): DOMINIOS COGNITIVOS (Objetos de aprendizaje, temas y subtemas) UNIDAD I: INTRODUCCIÓN

INFORMÁTICA APLICADA UNIDAD DIDÁCTICA 1. Tema 1 Sistemas informáticos

Definición de prestaciones

Aspectos avanzados de arquitectura de computadoras Superescalares I. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Lusitania. Pensando en Paralelo. César Gómez Martín

FUNCIONAMIENTO DEL ORDENADOR

TEMA 4 PROCESAMIENTO PARALELO

Pipeline de instrucciones

Modelado de los computadores paralelos

Taller de Programación Paralela

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Computación de Altas Prestaciones Sistemas computacionales

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Programación Gráfica de Altas Prestaciones

Arquitectura y Tecnología de Computadores (09/10) Organización. Jerarquía de Memoria

Memoria y caché. Organización del Computador I, verano de 2016

07 y 08 Sistemas distribuidos y paralelos y tarea 02

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

Programación Concurrente y Paralela. Unidad 1 Introducción

Granularidad y latencia

Arquitectura de Computadores II Clase #5

Arquitectura de Computadores II Clase #7

Introducción a los Sistemas Multiprocesadores

Bases de Datos Paralelas. Carlos A. Olarte BDII

Tema: Microprocesadores

Memorias FORMAS DE ESCRITURA

Arquitectura de Computadores II Clase #6

6. PROCESADORES SUPERESCALARES Y VLIW

15 de Octubre Crowne Plaza Ciudad de México. Simposio Técnico de Medición y Automatización. ni.com/mexico

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

Arquitectura del Computador. Programación 1 er semestre 2013

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

Arquitectura de Computadoras

2.- Con qué palabras inglesas se define la parte física del ordenador y cómo se llama la parte de programas, la que no se ve.

Sistemas de Computadoras

Tema 1: PROCESADORES SEGMENTADOS

Pipeline de instrucciones

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

UNIDAD 2. Unidad de Microprocesador (MPU) Microprocesadores Otoño 2011

PROCESAMIENTO DISTRIBUIDO

Jerarquía de memoria - Motivación

1. Partes del ordenador. Nuevas Tecnologías y Sociedad de la Información

Organización del Computador. Máquina de von Neumann Jerarquía de Niveles

Estructura del Computador

Departamento Ingeniería en Sistemas de Información

Reducción de la penalización por fallo Técnica: Dar prioridad a los fallos de lectura sobre la escritura (I)

Estructura general de una Computadora Arquitectura Estructura Von Neumann

Conceptos básicos de procesamiento paralelo (1)

UNIVERSIDAD DE GUADALAJARA

Máquinas de alto rendimiento

Modelos de Programación Paralela Prof. Gilberto Díaz

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

Tema 0. Introducción a los computadores

Unidad 1: Conceptos generales de Sistemas Operativos.

Gestión de memoria Profesores y tutorías

Créditos prácticos: Gil Montoya María Dolores TEMA 1º: Análisis del Rendimiento de un computador.(5 horas)

Rendimiento John Hennessy David Patterson,

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

Organizacion del Computador

Arquitectura de Computadores

Introducción a memorias cache

Memoria. Rendimiento del caché

INSTITUTO TECNOLÓGICO

Transcripción:

1-11 Marzo de 2017 FACET -UNT ARQUITECTURA DEL COMPUTADOR Graciela Molina gmolina@herrera.unt.edu.ar m.graciela.molina@gmail.com 1

MODELO VON NEUMANN RAM J. Von Neumann frente a la computadora IAS, 1952. I/O CU ALU CPU https://www.ias.edu/people/vonneumann/ecp 2

MODELO VON NEUMANN Cómo trabaja? 1. FETCH: lee próxima instrucción RAM F I/O CU ALU CPU 0001 1101 0011 0110 1001? 3

MODELO VON NEUMANN Cómo trabaja? 2. DECODE: decodifica la instrucción RAM I/O D CU ALU CPU add r1, 0xF21E! 4

MODELO VON NEUMANN Cómo trabaja? 3. LOAD: lo que pide la instrucción RAM L I/O CU ALU CPU r2 0xF21E 5

MODELO VON NEUMANN Cómo trabaja? 4. EXECUTE: la operación RAM I/O CU ALU E CPU r1 r1 + r2 6

MODELO VON NEUMANN Cómo trabaja? 5. STORE: guarda el resultado en memoria RAM S I/O CU ALU CPU RAM r1 7

Puede hacerse más eficiente el trabajo? 8

PROCESAMIENTO SECUENCIAL INST 1 INST 2 1 2 3 4 5 F D L E S 6 7 8 9 10 F D L E S 9

PIPELINING INST 1 INST 2 1 2 F D 3 4 5 6 7 8 9 10 F 10

PIPELINING INST 1 INST 2 INST 3 1 2 3 F D L F D 4 5 6 7 8 9 10 F 11

PIPELINING INST 1 INST 2 INST 3 INST 4 1 2 3 4 F D L E F D L F D 5 6 7 8 9 10 F 12

PIPELINING INST 1 INST 2 INST 3 INST 4 INST 5 1 2 3 4 5 F D L E S F D L E F D L F D 6 7 8 9 10 F 13

PIPELINING INST 1 INST 2 INST 3 INST 4 INST 5 1 2 3 4 5 F D L E S F D L E F D L F D 6 7 8 9 10 F 14

PIPELINING INST 1 INST 2 INST 3 INST 4 INST 5 1 2 3 4 5 6 7 8 F D L E S F D L E S F D L E S F D L E S F D L E 9 10 S 15

z=a*b+c*d En realidad: z1=a*b z2=c*d z=z1+z2 PIPELINING C1. cargar a en R0 C2. cargar b en R1 C3. R2=R0*R1 cargar c en R3 C4.cargar d en R4 C5.R5=R3*R4 Inst. prox. operación C6. R6=R2+R5 Inst. prox. operación C7. almacenar R6 en z Inst. prox. operación 16

z=a*b+c*d En realidad: z1=a*b z2=c*d z=z1+z2 Dependencia PIPELINING C1. cargar a en R0 C2. cargar b en R1 C3. R2=R0*R1 cargar c en R3 C4.cargar d en R4 C5.R5=R3*R4 Inst. prox. operación C6. R6=R2+R5 Inst. prox. operación C7. almacenar R6 en z Inst. prox. operación 17

z=a*b+c*d PIPELINING En realidad: z1=a*b z2=c*d z=z1+z2 Cuanto ganamos? 1 paso de 8! + 3 más si la próxima operación es independiente C1. cargar a en R0 C2. cargar b en R1 C3. R2=R0*R1 cargar c en R3 C4.cargar d en R4 C5.R5=R3*R4 Inst. prox. operación C6. R6=R2+R5 Inst. prox. operación C7. almacenar R6 en z Inst. prox. operación 18

Cómo mejorar aún más? 19

SUPERSCALING 1 2 3 4 5 INST 1 F D L E S INST 2 F D L E S + de una instrucción, inst. independientes 20

SUPERSCALING Ojo! Sigue siendo escalar Paralelismo instrucción a nivel de Muchas instrucciones se ejecutan simultáneamente, generalmente combinado con pipelining. 21

PIPELINING + SUPERSCALING 1 2 3 4 5 6 INST 1 F D L E S INST 2 F D L E S INST 3 F D L E S INST 4 F D L E S 7 8 9 10 22

PIPELINING z=a*b+c*d z1=a*b z2=c*d z=z1+z2 + SUPERSCALING C1. cargar a en R0 cargar b en R1 C2.R2=R0*R1 cargar c en R3 cargar d en R4 C3. R5=R3*R4 Próxima operación C4. R6=R2+R5 Próxima operación C5.almacenar R6 en z 23

PIPELINING z=a*b+c*d z1=a*b z2=c*d z=z1+z2 Pipelining + SUPERSCALING C1. cargar a en R0 cargar b en R1 C2.R2=R0*R1 cargar c en R3 cargar d en R4 C3. R5=R3*R4 Próxima operación C4. R6=R2+R5 Próxima operación C5.almacenar R6 en z 24

PIPELINING z=a*b+c*d z1=a*b z2=c*d z=z1+z2 superscaling + SUPERSCALING C1. cargar a en R0 cargar b en R1 C2.R2=R0*R1 cargar c en R3 cargar d en R4 C3. R5=R3*R4 Próxima operación C4. R6=R2+R5 Próxima operación C5.almacenar R6 en z 25

PIPELINING z=a*b+c*d z1=a*b z2=c*d z=z1+z2 Cuanto ganamos? 3 pasos de 8! + 3 si la próxima operación es independiente + SUPERSCALING C1. cargar a en R0 cargar b en R1 C2.R2=R0*R1 cargar c en R3 cargar d en R4 C3. R5=R3*R4 Próxima operación C4. R6=R2+R5 Próxima operación C5.almacenar R6 en z 26

Hasta aquí todas las operaciones son escalares! 27

OPERACIONES ESCALARES A1 + B1 = C1 A2 + B2 = C2 A3 + B3 = C3 A4 + B4 = C4 28

OPERACIONES VECTORIALES A1 B1 C1 A2 B2 C2 + = A3 B3 C3 A4 B4 C4 registros vectoriales! 29

CPU VECTORIAL Capaz de ejecutar operaciones matemáticas sobre múltiples datos de forma simultánea. (registros vectoriales) En general es adicional al pipelining superescalar. Instrucciones vectoriales especiales (SSE,AVX,etc) 30

Escalar vs Vectorial For (i=0;i<length;i++){ z[i]=a[i]+b[i]; } 31

Super escalar + pipeline For (i=0;i<length;i++){ z[i]=a[i]*b[i]+c[i]*d[i]; } 1. a[0] en R0 b[0] en R1 2. R2=R0*R1 c[0] en R3 D[0] en R4 3. R5=R3*R4 a[1] en R0 b[1] en R1 4. R6=R2+R5 c[1] en R3 d[1] en R4 5. R6 en z[0] R2=R0*R1 R5=R3*R4 a[2] en R0 b[2] en R1 Repetir pasos 4 5 según índice 32

Vectorial For (i=0;i<length;i++){ z[i]=a[i]*b[i]+c[i]*d[i]; } Los registros vectoriales pueden almacenar y operar en paralelo For (i=0;i<length;i+=2){ z[i]=a[i]*b[i]+c[i]*d[i]; en simultaneo z[i+1]=a[i+1]*b[i+1]+c[i+1]*d[i+1]; } 33

CLASIFICACIÓN DE ARQUITECTURAS 34

CLASIFICACIÓN DE ARQUITECTURAS Modelo tradicional Von Neumann Paralelismo de datos, Computación vectorial Pipelines Modelo general, (pueden ser procesadores de propósito gral o clusters de computadores) 35

CLASIFICACIÓN DE ARQUITECTURAS SISD SIMD MISD MIMD 36

PERFORMANCE Cómo medir? Unidad de medida FLOP/s Peak Performance (teórico): Estimación del desempeño de la CPU cuando trabaja a máxima velocidad 37

PERFORMANCE Cómo medir? Unidad de medida FLOP/s Benchmark Performance: Se utilizan herramientas específicas para medir el pico de performance real. Un ejemplo es Linpack, que es un paquete que resuelve un sistema de matrices densas (con valores aleatorios) de doble precisión (64 bits) y mide el rendimiento del sistema. http://www.netlib.org/benchmark/hpl/ 38

PERFORMANCE Cómo medir? Linpack 39

PERFORMANCE Cómo medir? Unidad de medida FLOP/s Real Performance: medición realizada con el programa que quiero correr. 40

JERARQUIA DE MEMORIA REGISTROS + Rápida MEMORIA CACHE + Barata MEMORIA PRINCIPAL DISCO DURO 41

JERARQUIA DE MEMORIA REGISTROS Registros: Cableados en el Procesador MEMORIA CACHE MEMORIA PRINCIPAL DISCO DURO 42

JERARQUIA DE MEMORIA REGISTROS Cache: Memoria rápida, cercana al procesador y cara MEMORIA CACHE MEMORIA PRINCIPAL DISCO DURO 43

JERARQUIA DE MEMORIA REGISTROS MEMORIA CACHE MEMORIA PRINCIPAL Memoria ppl: RAM, lenta y barata DISCO DURO 44

JERARQUIA DE MEMORIA REGISTROS MEMORIA CACHE MEMORIA PRINCIPAL Disco duro: lentísimo y baratísimo DISCO DURO 45

MEMORIA CACHE > costo > velocidad < capacidad Los datos se transfieren a cache en bloques de un determinado tamaño cache lines 46

MEMORIA CACHE Diseñada de acuerdo al principio de localidad espacial y temporal Por ejemplo, recorrer un vector con un loop Por ejemplo, un llamado a una función dentro de un loop 47

MEMORIA CACHE Diseñada de acuerdo al principio de localidad espacial y temporal Cada vez que se realiza una operación LOAD/STRORE puede ocurrir: cache miss o cache hit 48

MEMORIA CACHE 49

De manera más legible 0.3 ns 1s Level 1 cache access 0.9 ns 3s Level 2 cache access 2.8 ns 9s Level 3 cache access 12.9 ns 43 s Main memory access 120 ns 6 min 50-150 μs 2-6 days 1-10 ms 1-12 months Internet: SF to NYC 40 ms 4 years Internet: SF to UK 81 ms 8 years Internet: SF to Australia 183 ms 19 years OS virtualization reboot 4s 423 years SCSI command time-out 30 s 3000 years Hardware virtualization reboot 40 s 4000 years Physical system reboot 5m 32 millenia 1 CPU cycle Solid-state disk I/O Rotational disk I/O 50 http://sgros.blogspot.com.ar/2014/08/memory-access-latencies.html

Todo esto para un único procesador! Actualmente más de un procesador 51

MULTIPROCESADORES http://www.spec.org/ Ley de Moore???? 52

COMO ES EN REALIDAD Básicamente von Neumann 53

COMO ES EN REALIDAD Básicamente von Neumann 54

ARQUITECTURA DE UN CLUSTER NonUniform Memory Access Symmetric MultProcessors CPU CPU CPU BUS INTERCONECT MAIN MEMORY CPU CPU CPU CPU CPU MAIN MAIN MAIN MAIN MEMORY MEMORY MEMORY MEMORY BUS INTERCONECT 55

ARQUITECTURA DE UN CLUSTER CPU CPU CPU CPU BUS MEM MEMORIA COMPARTIDA Ventajas + fácil al programador. Compartir datos +rápido y directo. CPU MEM CPU MEM CPU MEM CPU MEM BUS MEMORIA DISTRIBUIDA Ventajas Escalabilidad de memoria con el num de procesadores. Cada procesador puede acceder rápidamente a su propia memoria local sin interferencias y sin overhead. Relación costo beneficio: se puede usar hardware off the shelf con una performance muy razonable. 56

ARQUITECTURA DE UN CLUSTER CPU CPU CPU CPU BUS MEM MEMORIA COMPARTIDA Desventajas Escabalibilidad pobre: + procesadores, > trafico memoria procesador. Programador implementar la sincronización Costo: + difícil y caro diseñar y producir maquinas con memoria compartida a medida que se aumenta la cantidad de procesadores. CPU MEM CPU MEM CPU MEM CPU MEM BUS MEMORIA DISTRIBUIDA Desventajas El programador es responsabile de detalles la comunicación de datos entre procesos. en Complicado adaptar código existente basado en memoria compartida. El tiempo de acceso a los datos no es uniformes (y varia mucho!) 57

ARQUITECTURA DE UN CLUSTER... Symmetric MultProcessors NonUniform Memory Access 58

COMO IMPACTA EN EL DISEÑO DEL SOFTWARE? * Paralelismo Masivo * Complejidad Creciente * Menos eficiencia para software viejo * Poca previsibilidad HAY QUE PENSAR EN EL HW AL MOMENTO DE CODIFICAR! 59

Y ESO NO ES TODO... Aceleradores unidad de procesamiento de gráficos http://www.nvidia.com/object/what-is-gpu-computing.html#axzz41h5hiaun 60

GPU : IDEA GENERAL Esquemáticamente la diferencia es: 61

GPU : IDEA GENERAL <ctrl <cache >ALUs Paralelismo masivo Para alimentar tantas ALUs Paralelismo de datos Suficiente como para ocultar la latencia 62

GPU : IDEA GENERAL 63

POR QUE ACELERA * Diseño muy escalable * Mucho ancho de banda * Muchos procesadores de baja frecuencia * Ideal para el procesado de data masiva 64

NO SIEMPRE ACELERA... * Hay que pasarle la información a la placa * Difícil sincronizar los procesadores * Ejecución en serie MUY lenta * Modelo de memoria demasiado complejo 65

ARQUITECTURAS HIBRIDAS 66

1-11 Marzo de 2017 FACET -UNT ARQUITECTURA DEL COMPUTADOR Graciela Molina gmolina@herrera.unt.edu.ar m.graciela.molina@gmail.com 67