Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad
A ALU A+B B
de Control
La CPU
Ciclo de Instruccin
Alimenta instr. de memoria CP Sig. instruccin Decodifica la instruccin Calcula direccin de operandos Extrae instruccin
de registros Internos
Extrae los operandos Opera con los datos Calcula dir. del destino
de memoria principal
en registros internos
Almacena resultado
en memoria principal
La CPU
Datos Dir.
m n
Interfaz Hardware
peticin concesin
Procesador Genrico
Interrup. Reset
peticin aceptacin
+5 V
- DATOS - DIRECCIONES
Seales de - CONTROL
ciclo reloj ciclo memoria (lectura) ciclo instruccin ciclo memoria ciclo memoria (lectura) (lectura) ciclo de instruccin ciclo memoria (escritura)
(MOVEQ.L)
(MOVE.W)
Todos los ciclos de ocupan ciclos completos En la misma lectura son Las instrucciones los ciclos de iguales iguales de Todos reloj(lecturas ymemoria sondistintos Los ciclos de memoriade instruccin son Los ciclos son distintos escrituras) memoria Todos los ciclos de escritura son iguales ms algn ciclo de reloj
La CPU
Segmentacin Construir circuitos ms Cmo aumentar la (Pipelining) rpidos, pero velocidad del
procesador
Concurrencia
La CPU
...Pipelining
10 s
10 s
10 s
10 s
10 s
La CPU
...Pipelining
10 s
10 s
10 s
10 s
10 s
La CPU
Ejecucin Secuencial
...Pipelining
I1 F1 E1 F2 I2 E2 I3 F3 E3 ...
tiempo Nueva organizacin del hardware buffer unidad F Instrucciones I1 I2 I3 In t1 F1 t2 unidad E t3 t4 E1 F2 E2 F3 E3 tiempo
D1 O1
E1 W1 E2 W2 E3 W3
tiempo
F2 D2 O2
F3 D3 O3
t2 tiempo
t3
. . . . . . . . . . . I3 F3 D3 O3 E3 W3
F3 D3 O3
Pipelining
Ms etapas Ms rendimiento
Ralentizacin
Por qu no muchas etapas!
Lgica de control > Lgica de ejecucin
Pipelining
Ralentizacin
Un procesador sin segmentar tiene un tiempo de ciclo de 25 ns. Cul es el tiempo de ciclo de una versin segmentada del procesador con 5 etapas divididas uniformemente, si cada registro intermedio aade un retardo de 1ns? y si el procesador se divide en 50 etapas?
Pipelining
Ralentizacin
Motivos Estructurales
El Pipeline SE DETIENE
Tiempo ideal de ejecucin: Un ciclo Si una etapa no es capaz de realizar su cometido en un ciclo de reloj
Acceso simultneo a memoria desde varias etapas No todas las etapas tienen que ser de la misma duracin Hay instrucciones ms complejas que otras - Ejecucin ms compleja - Acceso a operandos
F2 D2 O2 O2 O2
F3 D3 D3 D3 O3
F4 F4 F4 D4 O4
F5 D5 O5
Ralentizacin del Pipeline Dependencias de Datos Si dos o ms instrucciones comparten un dato add R1,R2,R3 mul R3,R4,R5 ... - RAW - WAR - WAW
Dependencia de Datos
Dependencia WAR I 1
t6
t7
I2 I1 I4 I3 I5
...Y si no se pueden reordenar las instrucciones sin alterar la lgica del programa Ejemplo 2 ... I1 load I2 add I3 mul I4 add ...
!
I1 I2
Insertar NOP
... load NOP NOP add NOP NOP mul add ... R1,200
R1,R2,R3
I3 I4
R3,R4,R5 #1,R3,R3
Deteccin y Resolucin
t1
t2
D F
t4
E r1,r2 D F
t5
r7
t6
r3
t7
t8
t9
load R7,200 add R1,R2,R3 mul R3,R4,R5 load R1,R2 load R3,R4
D F
D F
r3,r4 D F O D
r5 E O
Deteccin y Resolucin
Regs.
op1
op2
ALU
Result.
Dir.
8 10 12 14 16 18 20 22 24 26 28 30
Contenido
... LOAD ADD MUL LOAD LOAD JMP SHR OR JNZ ADD ... R7,200 R1,R2,R3 R3,R4,R5 R1,R2 R3,R4 24 R2,#1 R2,R3,R2 50 #4,R6,R6 El flujo normal de un programa es secuencial Instrucciones en direcciones consecutivas de memoria
! ?
Dir. Contenido
18 LOAD R3,R4 20 JMP 24 24 OR R2,R3,R2 26 JNZ 50 50 LOAD ? ? ? R2,R4
D O F
E W E W E W
50
D O F
??
D O
F Huecos de retardo
D O
E W
Ralentizacin del Pipeline ...Bifurcaciones Estara bien aprovechar los huecos de retardo con instrucciones tiles Deben ser instrucciones que se ejecuten SIEMPRE
Bifurcacin Retardada
Si una bifurcacin produce h huecos de retardo
El compilador debe insertar h instrucciones despus de la bifurcacin. El efecto de la bifurcacin se debe retardar h ciclos.
... y si no se pueden reordenar las instrucciones sin alterar la lgica del programa
Insertar Instrucciones
NOP
I1I2I3NOPNOPNOPI11I12...
PREDICCIN DINMICA
Inconvenientes:
Aumenta la complejidad hardware
Cuando estas tcnicas se aplican a predecir si un salto ser efectivo y a determinar el destino lo antes posible se denominan: Prediccin hardware de saltos o prediccin dinmica de saltos
Existen una dependencia loop-carried: S1 utiliza un valor calculado en la iteracin anterior por S2. Pero a pesar de ello puede hacerse paralelo: la dependencia entre S1 y S2 no es circular (S1 depende de S2 pero no al contrario) En la primera iteracin, S1 (b[0]) no depende de S2 (b[1]). Por ello, para lograr la paralelizacin puede reescribirse el bucle de la siguiente manera:
Procesadores superescalares
En los procesadores superescalares la estrategia consiste en replicar unidades funcionales de modo que se puedan ejecutar ms de una instruccin en cada etapa de la segmentacin. El grado de superescalaridad indica el nmero de instrucciones que se pueden emitir a la vez. Habitualmente la emisin de mltiples instrucciones supone ciertas restricciones en las instrucciones que se ejecutan al mismo tiempo (independencia entre ellas y restricciones arquitecturales). La mayora de los procesadores actuales (i80x86) estn superescalados.
Procesadores supersegmentados
La supersegmentacin (superpipeline) significa simplemente hacer ms larga la segmentacin, es decir, dividir en ms etapas. El incremento de velocidad ideal en la segmentacin est relacionado con el nmero de etapas. Estas mquinas son ms sensibles a los problemas del reloj, ya que el coste de la segmentacin (registros entre las etapas) representa un mayor porcentaje de tiempo en la ejecucin de las etapas. Un ejemplo: El R4000
Mquina muy similar al DLX pero con 8 etapas en vez de 5. Como los accesos a la cache son crticos, las etapas que acceden a memoria se ha subdividido. Etapas: IF, IS, RF, EX, DF, DS, TC y WB
Ejemplo
I1 necesita dos ciclos para ejecutarse. I3 e I4 compiten por la misma unidad funcional. I5 depende de un valor producido por I4. I5 e I6 compiten por una unidad funcional.
Sistemas multiprocesadores
Clasificacin de los computadores segn su nivel de paralelismo (Flynn, 1966):
Flujo nico de instrucciones, nico flujo de datos (SISD) Son los vistos hasta ahora Flujo nico de instrucciones, mltiples flujos de datos (SIMD) Procesadores vectoriales Mltiples flujos de instrucciones, nico flujo de datos (MISD) No existen Mltiples flujos de instrucciones, mltiples flujos de datos (MIMD) Multiprocesadores y clusters
No es una clasificacin rgida. Uno o mltiples comparado con qu? Una mquina que suma nmeros de 32 bits en un ciclo parece tener mltiples flujos de datos comparado con un computador de 1 bit.
Las dos ltimas ventajas significan que no necesitan confiar en tasas altas de acierto en la cache de datos para lograr un alto rendimiento.
Procesadores MIMD
Un sistema MIMD se caracteriza por tener varios procesadores trabajando cada uno con sus propios datos.Un sistema de este tipo puede ser desde un multiprocesador con memoria compartida hasta un cluster (conjunto de computadores completos conectados a travs de red local que trabajan conjuntamente como un nico recurso de cmputo). A la hora de disear un sistema multiprocesador hay que tener encuenta los siguientes factores:
Nmero de procesadores El modelo de comunicacin
Memoria compartida Paso de mensajes
La conexin fsica
Bus Red
El modelo alternativo a la memoria compartida es la memoria privada dnde la comunicacin se hace mediante paso de mensajes. En un ejemplo extremo, los procesadores en diferentes ordenadores se comunican con paso de mensajes sobre la red local.
Se han diseado subsistemas paralelos con una interface secuencial: bases de datos, servidores de ficheros, CAD, SO.
El trfico por procesador y el ancho de banda del bus determinan el nmero de procesadores tiles en estos multiprocesadores. Las caches replican los datos en sus memorias tanto para reducirla latencia de acceso a los datos como para reducir el trfico de datos con la memoria en el bus. Se requieren protocolos de coherencia de cache y mtodos de sincronizacin entre procesadores.
Estrategia divide y vencers (la mitad de los procesadores suman pares de sumas parciales, luego un cuarto de los procesadores suman parejas de sumas parciales hasta que se obtiene la suma final) Problema de los consumidores y productores (requiere sincronizacin)
En un fallo de lectura, todas las caches comprueban si tienen una copia del bloque solicitado y si es as se la suministran a la que ha fallado. En una escritura, todas las caches comprueban si tienen una copia del bloque y despus invalidano actualizansu copia.
Ventajas e inconvenientes:
La escritura con invalidacin reduce el ancho de banda necesario del bus. La primera escritura invalida las copias, por lo que ms escrituras en el mismo bloque no provocan actividad en el bus. Es la usada habitualmente en los procesadores comerciales. La escritura con actualizacin tiene la ventaja de que los valores nuevos estn ms prontos en las caches, lo que puede reducir la latencia.
Se aplica la tcnica de divide y vencersPnrepresenta el nmero de unidades de ejecucin enviar(x,y) es una rutina que enva el valor ya la unidad de ejecucin x recibir() es una funcin que acepta un valor de la red para su unidad de ejecucin Ambas funciones se usan como mecanismo de sincronizacin
Comparacin coste-rendimiento entre MP con bus comn UMA y con red NUMA
Topologas de red
Desde un bus (bajo coste/rendimiento) a todos conectados (alto coste/rendimiento): unietapa (anillo, malla 2-D, rbol n-cubo, ...) y redes multietapa (crossbar, red omega, ...),etc.
Clusters Ventajas
Escalabilidad: Son fcilmente expandibles Alta disponibilidad: el fallo de un nodo (computador autnomo) no significa prdida de servicio. Como el software de los clusters es una capa que se ejecuta encima del sistema operativo en cada computador, es fcil desconectar el equipo daado de la red y reemplazarlo por otro. Coste inferior a los grandes multiprocesadores, que tienen un volumen de ventas pequeo. Los computadores que forman un cluster se producen en gran escala (menor coste) y utilizan software (SO) estndar.
Clusters: Inconvenientes
El coste de administrar un cluster de N mquinas es similar al coste de administrar N mquinas independientes, mientras que el coste de administrar un multiprocesador con un espacio de direcciones compartido con N procesadores es similar al de administrar una sola mquina. Los clusters se conectan normalmente por el bus de E/S del computador mientras que los multiprocesadores estn normalmente conectados al bus de memoria. Este tiene ms ancho de banda y permite que los multiprocesadores usen el enlace de red a una velocidad ms alta y tengan menos conflictos con el trfico de E/S (aplicaciones que usan mucho E/S) La divisin de la memoria. Un cluster de N mquinas tienen N memorias independientes y N copias del SO, mientras que un multiprocesador con espacio de direcciones compartido permite que un programa use casi toda la memoria del computador.