Tema 3 - acomp

Anuncio
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
–
–
–
–
Descargar