PDF de programación - Sesión 13. Memoria (multiprocesadores) - Ingeniería de los Computadores

Imágen de pdf Sesión 13. Memoria (multiprocesadores) - Ingeniería de los Computadores

Sesión 13. Memoria (multiprocesadores) - Ingeniería de los Computadoresgráfica de visualizaciones

Publicado el 14 de Diciembre del 2018
570 visualizaciones desde el 14 de Diciembre del 2018
838,0 KB
14 paginas
Creado hace 8a (22/07/2015)
Sesión 13. Memoria
(multiprocesadores)

Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Clasificación de multiprocesadores atendiendo a la distribución de

memoria


 UMA (Uniform Memory Access)



 NUMA (Non-Uniform Memory Access)



 COMA (Cache-Only Memory Architecture)





Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Tipo UMA

 Memoria centralizada, uniformemente compartida entre procesadores (todos
los procesadores tienen el mismo tiempo de acceso a todas las palabras de la
memoria)

 Sistema fuertemente acoplado: alto grado de compartición de recursos
dependencia funcional entre ellos

(memoria) entre los procesadores

 Cada procesador puede disponer de caché
 Periféricos compartidos entre procesadores
 Aplicaciones de propósito general y de tiempo compartido por múltiples

usuarios

 Sincronización y comunicación entre procesadores utilizando variables

compartidas

 Acceso a memoria, periféricos y distribución de procesos S.O.:
 Equitativo Symmetric (shared-memory) Multi Processors (SMPs)
 No equitativo  Asymmetric (shared-memory) Multi Processors (AMPs)
 CC-UMA (Caché-Coherent Uniform Memory Access)



Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Tipo NUMA



 Memoria compartida con tiempo de acceso dependiente de la

ubicación de procesadores

 Sistema débilmente acoplado: cada procesador dispone de una

memoria local a la que puede acceder más rápidamente

 Sistema de acceso global a memoria: local, global, local de otros

módulos

 CC-NUMA (Caché-Coherent Non-Uniform Memory Access) 

Memoria compartida distribuida y directorios de caché


 Ventajas

 Escalado de memoria con + coste/rendimiento
 Reducción de latencia de acceso a memorias locales



Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Tipo COMA

 Sólo se usa una caché como memoria
 Caso particular de NUMA donde las memorias distribuidas se

convierten en cachés

 Las cachés forman un mismo espacio global de direcciones
 Acceso a las cachés por directorio distribuido






Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Consistencia de memoria
Problema: Transmisión de información entre procesadores en memoria compartida
Ejemplo:








/* El valor inicial de A y flag es 0 */

P1
A=1

flag=1

P2
while (flag == 0); /*bucle vacío*/
print A





P2 ha de realizar una espera activa hasta que flag cambie a ‘1’.
Después imprimirá A = ‘1’ (suponiendo que en P1 “A=1” es una instrucción anterior a “flag=1”) 
¿COHERENCIA DEL SISTEMA DE MEMORIA? Escrituras en orden de programa.
Pero … y si “flag=1” se ejecuta antes de “A=1” ¿?



Es necesario un modelo de consistencia de la memoria en un espacio de direcciones compartido. Su
objetivo es especificar restricciones en el orden de las operaciones en la memoria y proporcionar una visión
uniforme de las mismas a los demás procesadores, logrando una abstracción de las operaciones de memoria
independiente de la localización de las operaciones de memoria (módulos) y de los procesos involucrados.



Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Consistencia de memoria

 “Un modelo de consistencia de memoria especifica el orden en el
cual las operaciones de acceso a memoria deben parecer haberse
realizado (operaciones de lectura, escritura)”


 En un procesador (o sistema uniprocesador), el orden en el que

deben parecer haberse ejecutado los accesos a memoria es el
orden secuencial especificado por el programador (o la
herramienta de programación en el código que añade),
denominado orden de programa.


 Tanto el hardware como la herramienta de programación si que
pueden alterar dicho orden, para mejorar las prestaciones, pero
debe parecer en la ejecución del programa que no se ha alterado.


Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

• Consistencia de memoria. Se debe garantizar que:



 Cada lectura de una dirección, proporcione el último valor escrito

en dicha dirección (dependencia de datos lectura después de
escritura)

 Si se escribe varias veces en una dirección se debe retornar el

último valor escrito (dependencia escritura después de escritura)

 Si se escribe en una dirección a la que previamente se ha

accedido para leer, no se debe obtener en la lectura previa el
valor escrito posteriormente en la secuencia del programa
especificada por el programador (dependencia escritura después
de lectura)

 No se puede escribir en una dirección si la escritura depende de

una condición que no se cumple (dependencias de control)


Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

Consistencia de caché

• Ejemplo 1: 2P, caché write-through (cada vez que se escribe una línea

Acción

Caché A

1

2

3

Secuencia

CPU A lee X

de caché, se actualiza la memoria principal)









CPU A escribe 0 en X

CPU B lee X

1

1

0





Caché B

X en MP

-

1

1

1

1

0

Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

Consistencia de caché



• Ejemplo 2: 3P, caché write-through / write-back (se actualiza la

memoria principal escribiendo todo el bloque cuando se desaloja de
la caché == aún más problemática)










Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

Consistencia de caché



• Un sistema de memoria es coherente si cualquier lectura de un dato

devuelve el valor más reciente escrito de ese dato

• Aspectos críticos del sistema de memoria compartida: los datos

devueltos por una lectura (coherencia) y cuándo un valor escrito será
devuelto por una lectura (consistencia)

• Un sistema de memoria es coherente si cumple:

 Preservación del orden del programa: una lectura por un procesador P de una posición
X, que sigue a una escritura de P a X, sin que ningún otro procesador haya escrito nada
en X entre la escritura y la lectura de P, siempre devuelve el valor escrito por P.

 Visión coherente de la memoria: una lectura por un procesador de la posición X, que
sigue a una escritura por otro procesador a X, devuelve el valor escrito si la lectura y
escritura están suficientemente separados y no hay otras escrituras sobre X entre los
dos accesos.

 Serialización de operaciones concurrentes de escritura: Las escrituras a la misma
posición por cualquiera dos procesadores se ven en el mismo orden por todos los
procesadores.


Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

Consistencia de caché



• Un sistema de memoria multiprocesador es coherente si el resultado

de cualquier ejecución de un programa es tal que, para cada
localización es posible construir una hipotética ordenación secuencial
de todas las operaciones realizadas sobre dicha localización que sea
consistente con los resultados de la ejecución y en el cuál:


1. Las operaciones emitidas por un procesador particular ocurren

en la secuencia indicada y en el orden en el que dicho
procesador las emite al sistema de memoria


2. El valor devuelto por cada operación de lectura es el valor escrito

por la última escritura en esa localización en la secuencia
indicada




Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

Consistencia de caché



• Dos estrategias para abordar la coherencia de las cachés:

 Resolución software: el compilador y el programador evitan la

incoherencia entre cachés de datos compartidos.

 Hardware: transparente al programador mediante la provisión de

mecanismos hardware, esta es la solución más utilizada para
mantener la coherencia.

• Políticas para mantener la coherencia:

 Invalidación de escritura o coherencia dinámica (write invalidate):

siempre que un procesador modifica un dato de un bloque en la
caché, invalida todas las demás copias de ese bloque guardadas
en las otras cachés de los procesadores.

 Actualización en escritura (write-update ó write-broadcast): esta
política lo que hace es actualizar la copia en las demás cachés en
vez de invalidarla.


Ingeniería de los Computadores
Sesión 13. Memoria (multiprocesadores)

Conceptos

Consistencia de caché



• Dos estrategias para abordar la coherencia de las cachés:

 Resolución software: el compilador y el programador evitan la

incoherencia entre cachés de datos compartidos.

 Hardware: transparente al programador mediante la provisión de

mecanismos hardware, esta es la solución más utilizada para
mantener la coherencia.

• Políticas para mantener la coherencia:

 Invalidación de escritura o coherencia dinámica (write invalidate):

siempre que un procesador modifica un dato de un bloque en la
caché, invalida todas las demás copias de ese bloque guardadas
en las otras cachés de los procesadores.

 Actualización en escritura (write-update ó write-broadcast): esta
política lo que hace es actualizar la copia en las demás cachés en
vez de invalidarla.
  • Links de descarga
http://lwp-l.com/pdf14542

Comentarios de: Sesión 13. Memoria (multiprocesadores) - Ingeniería de los Computadores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad