Tema 3: Concepto de Arquitectura Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA Tema 3: Concepto de Arquitectura 1 Definición de arquitectura. 2 Taxonomía de Flynn 3 Tipos de paralelismo 4 Factores a considerar en el diseño 5 Análisis de prestaciones 1 Definición de arquitectura: Concepto clásico • Myers “ En los sistemas de computación, la arquitectura puede definirse como la distribución de funciones a un nivel o frontera dentro del sistema, y la definición precisa de esa frontera” DISCA–3 • Arquitectura de computadores = Arquitectura del juego de instrucciones • Visión del programador en ensamblador 1 Definición de arquitectura: Concepto moderno • La arquitectura de un computador debe tener en cuenta además la organización y la implementación DISCA–4 – Arquitectura del juego de instrucciones. ¿Qué puede hacer el computador? – Organización. ¿Con qué elementos y cómo están interconectados? – Implementación. ¿Con qué tecnología? 2 Taxonomía de Flynn Flujo de instrucciones o de control. ¿Qué hacer? Flujo de datos. Elementos sobre los que operar. Cuantos flujos simultáneos existen. Categorías: • • • • SISD (Single Instruction Single Data) SIMD (Single Instruction Multiple Data) MISD (Multiple Instruction Single Data) MIMD (Multiple Instruction Multiple Data) DISCA–5 • • • • • Paralelismo espacial: replicar entidades, normalmente iguales, de forma que trabajen de forma simultánea (Flynn). • Paralelismo temporal: dividir una tarea compleja en subtareas, cada una realizada en elementos diferentes. En un mismo instante se realizan varias subtareas procesando datos distintos. • El paralelismo temporal también se denomina: segmentación, superposición, pipeline. DISCA–6 3 Tipos de paralelismo 4 Factores a considerar en el diseño • Requisitos funcionales: qué características de funcionamiento se desean. • Tendencias en tecnología y software • Equilibrio entre hardware y software. – Software: coste bajo de rectificación de errores, sencillez de diseño y actualización. – Hardware: mayor rapidez – Contribución de cada componente al coste final – Coste y precio muy diferentes. DISCA–7 • Tendencias en el coste 4.1 Requisitos funcionales • Aplicaciones – – – – Propósito general Propósito especifico Científica Comercial Potencia equilibrada Características particulares Soporte coma flotante Soporte base de datos, transacciones... • Compatibilidad – A nivel lenguaje – Binaria Diseño flexible (compilador) Menos flexible – Coma flotante – E/S IEEE, IBM SCSI, VME, IDE... DISCA–8 • Estandares 4.1 Requisitos funcionales(2) • Estándares (cont.) – Redes – Lenguajes de alto nivel Soporte para Ethernet, Token Ring... C/ C++, COBOL, Java, FORTRAN • Sistemas operativos Direccionamiento Gestión de memoria Protección Gestión de procesos Interrupciones Niveles de ejecución Limita tamaño aplicaciones y datos Paginación, segmentación Soporte a multitarea DISCA–9 – – – – – – 4.2 Tendencias en tecnología y software • El diseño de una arquitectura debería sobrevivir a los cambios en la tecnología y el software • Tendencias Hardware Circuitos integrados: cada tres años x2 el nº de transistores y su velocidad (un poco menos) Memorias: Cada tres años x4 el tamaño y cada 10 años se reduce en un 1/3 el tiempo de acceso. Discos: Cada año x2 la capacidad y cada 10 años 1/3 el tiempo de acceso – Necesidades de memoria se duplican cada año – Utilización de lenguajes de alto nivel DISCA–10 • Tendencias SW 4.3 Ley de Amdhal • ¿Cómo afecta una mejora parcial en un computador a su funcionamiento global? • • • • T = tiempo antes de mejora F = parte del total debido a la parte a mejorar S = en cuanto se mejora esa parte T’= Tiempo tras mejora T' = T( 1 − F) + T F S – Hay que mejorar el caso más común – La parte que no se mejora impone un límite superior a la mejora obtenida DISCA–11 • Conclusiones: 5 Análisis de prestaciones • Definición de prestaciones según punto de vista: – Usuario: acabar pronto. – Administrador: terminar muchos trabajos. • Necesario medir prestaciones para: – elegir alternativas de diseño (DISEÑADORES) – ayudar en la compra (USUARIOS) – Medidas microscópicas: Miden las prestaciones atendiendo a conceptos de bajo nivel – Medidas macroscópicas: basadas en el tiempo de ejecución de programas y la definición de los mismos DISCA–12 • Necesarias unidades de medida 5.1 Medidas microscópicas • MIPS: Millones de Instrucciones Por Segundo. – "Mide la velocidad" de ejecución de instrucciones. – Las instrucciones pueden ser diferentes entre máquinas • MFLOPS: Millones de operaciones en coma flotante por segundo. a[i] = b[i] + c[i] * d [i] DISCA–13 – "Mide la velocidad" de cálculo en coma flotante – Útil en aplicaciones científicas – Un FLOP se define en alto nivel: 5.1 Medidas microscópicas(2): parámetros S y M • Se define un programa que se utilizará para hacer la comparación, el tiempo de ejecución no es importante • Parámetros S y M: – S: Tamaño del programa en bits – M: Cantidad de información en bits transferida con memoria (código y datos) – Anterior al concepto de cache, no se tiene en cuenta la presencia de este tipo de memoria DISCA–14 • El objetivo es minimizar estas cantidades 5.2 Medidas macroscópicas – Propios – Programa reales: Compresor JPEG. – Núcleos (kernels). Fragmentos de código de programas reales: Linpack. – Benchmarks. Programas de coste conocido o diseñados para medir prestaciones (sintéticos): Drhystone. • Benchmark: cualquier programa que se utiliza para medir prestaciones. DISCA–15 • Utilizar como medida el tiempo tardado en ejecutar un programa, especificando dicho programa. • Tipos de programas: 5.2 Medidas macroscópicas (2): Problemas – SPEC: Standard Performance Evaluation Corporation DISCA–16 • Programas Reales: Sólo cuando existe la máquina y el programa se puede encontrar para ella. • Programas basados en bucles: Los compiladores pueden detectarlos y generar optimizaciones especiales para esos bucles/instrucciones. • Benchmarks sintéticos: pueden estar diseñados o implementados para obtener mejores resultados en una máquina concreta. 5.2 Medidas macroscópicas (3): Problemas • Comparación de máquinas: Se suele realizar sobre una máquina conocida (Athlon XP 2800+) • Para “creer” unos resultados se debe conocer: El benchmark concreto que se ha utilizado La configuración HW exacta de la máquina de prueba La configuración SW exacta de la máquina de prueba El COMPILADOR y las opciones de compilación que se utilizaron para generar los ejecutables. Los benchmarks no son válidos para siempre o para cualquier tipo de máquina DISCA–17 – – – –