Ingeniera en Informtica
Marco de la asignatura:
Qu estudia la asignatura?
Qu estudia la asignatura?
P M P M P M P M
Red de Interconexin Multiprocesadores + Redes de i t R d d interconexin i Comunicacin: Memoria compartida, paso de mensajes, paralelismo de datos
Definicin de arquitectura
Conjunto de instrucciones, recursos y caractersticas del procesador que son visibles al software que se ejecuta en el mismo. Por tanto, la arquitectura determina el software que el procesador puede ejecutar directamente, y esencialmente define las especificaciones a las que debe ajustarse la microarquitectura [Ortega, 2005]
Definicin de microarquitectura q
Conjunto de recursos y mtodos utilizados para satisfacer las especificaciones que establece la arquitectura. El trmino incluye tanto la forma en que se organizan los recursos como las tcnicas utilizadas para alcanzar los objetivos de costes y prestaciones planteados. La microarquitectura define las especificaciones para la implementacin lgica [Ortega 2005] [Ortega,
Niveles de Interpretacin de Levy: C t Contemplan al computador d d un punto d vista f l l t d desde t de i t funcional. i l Constituido por una serie de mquinas virtuales superpuestas. Cada mquina interpreta las instrucciones de su nivel nivel, proporcionando servicios a la mquina de nivel superior y aprovechando los de la mquina de nivel inferior. S distinguen 5 niveles: Se di ti i l Aplicaciones Lenguajes de alto nivel Sistema Operativo Instrucciones mquina Microinstrucciones Estos niveles son similares a los niveles funcionales de Tanenbaum. Tanenbaum
Sistema Operativo
Sistemas de cmputo, Ensamblador,
TECNO OLOGA
Integra la orientacin estructural de los niveles de Bell y Newell y el punto de vista funcional de los niveles de Levy y Tanenbaum.
Sist. C Si t Computador t d
Procesadores, Interfaces E/S, Datapath
Nivel RT
ALUs, registros, memorias, MUX,
Digital
Puertas lgicas, inversores, P ertas lgicas in ersores biestables
Electrnica
Uniones P N, Metal, Polisilicio
Componente
HW
Componentes fsicos
Semiconductores de tipo n y p metales polisilicio, etc p, metales, polisilicio etc A partir de estos se construyen bloques: transistores, resistencias, etc. Las leyes que lo rigen son las de la electrnica fsica.
Circuito electrnico
Puertas lgicas, biestables, etc. Utilizan componentes del nivel anterior. Las leyes que lo rigen son las de la electricidad, de naturaleza continua. El comportamiento del circuito se describe en trminos de corrientes corrientes, tensiones y frecuencias.
Lgica digital
Las leyes que lo rigen son las del lgebra de Boole Boole. Se divide en 2 partes: circuitos combinacionales y secuenciales. Nivel combinacional: se utilizan como componentes las puertas NAND, NOR, NOT, etc, para generar bloques como, multiplexores, decodificadores, conversores de cdigos y circuitos aritmticos. Nivel secuencial: se utilizan como componentes elementos de memoria (biestables) y bloques del nivel anterior para obtener circuitos secuenciales, como registros contadores memorias etc registros, contadores, memorias, etc.
Transferencia entre registros (RT) Estudio del comportamiento de las unidades de un computador en trminos de transferencia de informacin entre registros. registros Utiliza los componentes del nivel anterior, registros, circuitos aritmticos, memorias, etc, aritmticos memorias etc para crear componentes del procesador o de otros elementos del computador (interfaces). ( ) En este nivel se incluye como un posible subnivel la microprogramacin.
Sistema computador
Especificacin de componentes (memorias, procesador, buses, redes de interconexin, perifricos, etc). interconexin entre ellos y operacin del sistema completo. Programacin a bajo nivel (lenguaje mquina y ensamblador). bl d )
Diseo
Alternativas Procedimientos Herramientas -Descripcin -Verificacin -Simulacin
Interfaz para el Programador Interfaz para el Diseador Fsico
Eficiencia
Prestaciones Coste
Sistema operativo
Interfaz entre hardware y software. Encargado de facilitar el uso eficiente de los recursos hardware por parte de los usuarios y de los programas de aplicacin.
Niveles superiores
Niveles software: compiladores, programas escritos en lenguajes de alto nivel, etc. Realizacin de programas y compiladores eficientes requieren el conocimiento d l arquitectura d l computador i l i i t de la it t del t d incremento de prestaciones.
PROBLEMA
APLICACIN
Se podr ejecutar en, por ejemplo, un Pentium IV a 1 Ghz con 512 Mb de SDRAM, en 3 seg.? Si la plataforma est un poco ajustada se puede optimizar el cdigo para utilizar mejor los recursos? Si no es posible cul es la mejor opcin a adquirir para implementarla: memoria, E/S, procesador, ...longevidad? computador d propsito d l id d? t d de it general o arquitectura especfica?
Transformaciones de cdigo justificadas desde la arquitectura del computador: La instruccin malloc slo se entiende desde el punto de vista de la arquitectura (el programa probablemente funcionara correctamente sin ella)
B
if (val==A) a=val; else if (val==B) a=1; ( ) switch(val) { case C : a=0; break; case D : a=val*2; break; }
B
if (val==A) a=val; else if (val==B) a=1; switch(val) { case C : a=0; break; case D : a=val*2; break; }
70
80
90
Servidores
00
Minicomputadores
Aplicaciones cientficas en laboratorios y pequeas organizaciones.
WWW
Redes PCs y Estaciones de Trabajo Computadores Embebidos
Microprocesadores
Rpido crecimiento ( p (tecnologa y herramientas de diseo): g ) electrnica digital de altas prestaciones, videojuegos, telfonos mviles, tarjetas inteligentes, conmutadores,
Interaccin Tecnologa-Mercado-Aplicaciones:
Mejora de prestaciones:
Avances en la tecnologa (I):
Limites: conforme se disminuye el tamao de los transistores aumenta su
velocidad, pero t bi aumenta l resistencia d l l l id d tambin t la i t i de las lneas d conexin de i entre ellos, y por tanto el retardo de las comunicaciones dentro del chip.
Aumento de la velocidad de los dispositivos O(a) Reduccin de tamao de dispositivos (a) Aumento del nmero d A t d l de 2) dispositivos O(a Aumento del nmero de dispositivos O(b2) Aumento de la capacidad de procesamiento O(b2)
Ley de Moore(1979): El nmero de transistores por circuito integrado se dobla El aumento de la densidad de cada 18-24 meses (asumiendo precio dispositivos, su velocidad, y el tamao constante del circuito integrado) de los CI permitirn hasta un 72%88% d mejora anual d l capacidad de j l de la id d Entre un 40% y un 57% de mejora anual de procesamiento de un CI.
FI UC E/S FI UP FD UM
for i=1 to 4 do Begin C[i] = A[i]+B[i]; F[i] = D[i]-E[i]; D[i] E[i] G[i] = K[i]*H[i]; End;
. .
UPn
. .
UMm
FI
FD
FIn
. .
UPn
. .
UMm
UCn
FIn
FD
FIn
Proc3
Taxonoma de Flynn
Paralelismo de Datos
SISD
Proc. Vectoriales SIMD Proc. Matriciales Proc. Sistlicos Memoria Compartida: Acceso Uniforme (SMPs), Acceso no Uniforme o Distribuida (NUMA, COMA). Paso de Mensajes (NORMA): Multicomputadores, Clusters.
MIMD
Tipos de paralelismo:
Paralelismo de datos: La misma funcin, instruccin, etc. se ejecuta en
paralelo pero en cada una de esas ejecuciones se aplica sobre un conjunto de datos distinto.
Inst. Inst 1 Inst. 2 Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 1 Inst. Inst 2 Inst. 3 Inst. 4
IF
ID
EX
5T
MEM
WB IF ID EX MEM
1/(5T)
WB
IF
ID IF
EX ID IF
MEM EX ID IF
WB MEM EX ID WB WB WB WB WB MEM EX WB
Procesador segmentado
1/(T)
MEM
WB
IF IF
ID ID IF IF
EX EX ID ID
MEM MEM EX EX
Procesador supersegmentado
1/(T/2)=2/T /( / ) /
MEM MEM
Unidad Escalar
Reg. Escalares
Datos Escalares
Control Cauces Esc. Flujo Instr.
E/S
IF
ID
Unidad LOAD/STORE
OF
Cauces Vector.
Datos V D Vectoriales i l
Reg. Vectoriales
Unidad Vectorial
a8 b8
a7 b7
a6 b6
a2+b2 a1+b1
Cauce Vectorial
Registros Vectoriales
Tiempo de ejecucin:
Tiempo necesario para completar la ejecucin de un programa (response time, elapsed time). Est formado por:
Tiempo de CPU de usuario: tiempo que la CPU invierte en ejecutar el programa programa. Tiempo de CPU de sistema: tiempo que la CPU invierte en ejecutar las tareas de SO necesarias para el programa. Tiempo asociado a: esperas debidas a E/S o a la ejecucin de otros programas.
Ejemplo: C Ej l Comando ti d time (U i ) 63 0 15 0 2 10 60% (Unix): 63.0u 15.0s 2:10 63.0u = tiempo CPU de usuario 15 0 = tiempo de CPU d sistema 15.0s ti d de i t 63.0 + 15.0 es el 60% del total (2:10 = 130seg)
TCICLO=1/F F=frecuencia
Para procesadores que pueden empezar la ejecucin (emitir) varias i t i instrucciones al mismo ti i l i tiempo: TCPU = NI x (CPE / IPE) x TCICLO
CPI CPE = ciclos entre inicio de emisin de instrucciones instrucciones. IPE = instrucciones que pueden emitirse (empezar la ejecucin) cada vez que se produce sta.
Inst. 1 Inst. 2 Inst. 1 Inst. I t 2 Inst. 3 Inst. 4 Inst. 1 Inst. 2 Inst. 3 Inst. 4
IF
ID
EX
5T
MEM
WB IF ID
EX
MEM
WB
IF
ID IF
EX ID IF
MEM EX ID IF
Segmentado
CPE=1 IPE=1 CPI=1
WB MEM EX
T
IF IF
ID ID IF IF
EX EX ID ID
MEM MEM EX EX
WB WB
Noper = nmero de operaciones que realiza el programa. Op_instr = nmero de operaciones que puede codificar una instruccin.
Evolucin
Clasificacin
Rendimiento
Problemas
NI = N Noper/Op_instr /O i t
Noper=12 Op_instr=4 NI=3
Procesador Matricial UC
C=A+B F=DE G= K*H
EP1
C[1]=A[1]+B[1] F[1]=D[1]-E[1] G[1]=K[1]*H[1]
EP2
C[2]=A[2]+B[2] F[2]=D[2]-E[2] G[2]=K[2]*H[2]
EP3
C[3]=A[3]+B[3] F[3]=D[3]-E[3] G[3]=K[3]*H[3]
EP4
C[4]=A[4]+B[4] F[4]=D[4]-E[4] G[4]=K[4]*H[4]
Flujos de Instrucciones Fl j d I t i
Flujos de Datos
CPI
Tecnologa: Mayor integracin. Estructura y o ga ac ILP (segmentacin de cauce, VLIW, st uctu a organizacin: (seg e tac , superescalares). En superescalares y VLIW CPI=CPE/IPE Repertorio de instrucciones: Instrucciones con implementacin sencilla. sencilla Compilador: Extraccin del mximo ILP.
NI
Repertorio de instrucciones: CISC RISC, repertorio VLIW, repertorio vectorial.
Medidas de prestaciones:
MIPS: millones de instrucciones por segundo.
MIPS =
NI TCPU x 10 6
F (frecuencia) CPI x 10 6
Depende del repertorio de instrucciones (difcil comparar entre mquinas diferentes). Puede variar con el programa (no caracteriza la mquina). Puede variar inversamente con las prestaciones (mayor valor de MIPS corresponde a peores prestaciones).
No es adecuado para todos los programas (slo tiene en cuenta las operaciones en coma flotante). El conjunto de operaciones en coma flotante no es constante en todas las mquinas.
Lo ms adecuado: utilizar benchmarks (conjuntos de programas) seleccionados que representen la carga de trabajo usual de las mquinas a evaluar. Tipos de benchmarks: Aplicaciones reales. Compiladores, Word, MathLab, ... Kernels. Trozos de aplicaciones reales seleccionados para evaluar caractersticas especficas. especficas Simples (Toys). Pequeos programas fciles de programar y cuyo resultado es conocido (Quicksort). Sintticos. Reproducen porcentajes de instrucciones y situaciones de carga reales. Benchmarks suites (SPEC) Cjts de Benchmarks que miden las (SPEC). Cjts. prestaciones de los computadores a travs de un conjunto de aplicaciones distintas. Las limitaciones de un benchmark se suplen con la presencia de otros. Se cambian peridicamente para evitar optimizaciones realizadas con t S bi idi t it ti i i li d el nico objetivo de mejorar los resultados del conjunto de benchmark.
168.wupwise 1600 Quantum chromodynamics 171.swim 3100 Shallow water modeling 172.mgrid 1800 Multi-grid solver in 3D potential field 173.applu 2100 Parabolic/elliptic differential equations 177.mesa 1400 3D Graphics library 178.galgel 2900 Fluid dynamics: oscillatory instability 179.art 2600 Neural network simulation (ART) 183.equake 1300 Finite element simulation: earthquake 187.facerec 1900 Computer vision: recognizes faces 188.ammp 188 ammp 2200 Computational chemistry 189.lucas 2000 Number theory: primality testing 191.fma3d 2100 Finite element crash simulation 200.sixtrack 1100 Particle accelerator model 301.apsi 2600 Solves problems regarding pollutants http://www.specbench.org/osg/cpu2000/docs/readme1st.html
LINPACK:
Conjunto de subrutinas de resolucin y anlisis de ecuaciones lineales, sistemas de mnimos cuadrados, etc. La lista TOP500 que evala los 500 computadores ms potentes utiliza LINPACK como benchmark tili a benchmark.
Rendimiento:
Ganancia de velocidad: incremento de velocidad que se consigue gracias al aumento de recursos de una mquina respecto a la mquina base base.
GP = T1 ; TP GP P
Eficiencia: se obtiene dividiendo la ganancia entre el nmero de recursos (permite evaluar en qu medida las ) prestaciones de un programa se acercan al mximo).
EP = Gp ; P EP 1
103 bytes
Kibibyte (KiB)
106 bytes
Mebibyte (MiB)
109 bytes
Gibibyte (GiB)
230 bytes
Terabyte (TB)
1012 bytes
Tebibyte (TiB)
240 bytes