Logo Studenta

mas Apuntes de Arquitectura de Computadores nivel universitario

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

apuntesArquitecturaComputadores/ATCtema3CacheMemVirtual.pdf
Arquitectura y Tecnología de Computadores 
Departamento de Ingeniería Informática y Telecomunicaciones 
Escuela Politécnica Superior
4º Curso de Ingeniería de Telecomunicación
Tema 3 : El sistema de Memoria
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 1
Contenidos
6.1.- Sistema de jerarquía de memoria.
6.2.- La memoria cache. 
Principios de operación. Organización. 
Esquemas de funcionamiento. 
Algoritmos de sustitución.
6.3 El Sistema de memoria Virtual
Direccionamiento virtual: Paginación y Segmentación
La unidad de Gestión de memoria (MMU): Funcionamiento del TLB
6.4.- Mecanismos para mejorar el sistema de memoria.
Cache multinivel
Cache virtual vs cache real
Ejemplos: La unidad cache de microprocesadores actuales
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 2
Tecnología de los dispositivos de memoria
¿Por qué se debe mejorar el sistema de memoria?
µProc
60%/año
(2x/1.5año)
DRAM
9%/año
(2x/10 años)1
10
102
103
DRAM
CPU
19
86
19
88
19
90
19
92
19
94
19
96
19
98
20
00
19
82
Gap rendimiento
Procesador-Memoria
(↑50%/año)
“Ley de Moore”
Año
19
80
19
84
R
E
N
D
IM
IE
N
TO
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 3
Tecnología de los dispositivos de memoria
¿Cómo se puede mejorar un sistema de memoria?
Organizando una jerarquía de memoria
Memoria cache ( nivel L1, L2,L3)
Aplicando el concepto de memoria virtual
MMU y TLB 
Diseñando sistemas de conexionado CPU/MEM más 
eficientes, con el objetivo de obtener transferencia de datos a 
la máxima velocidad
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 4
Sistema de jerarquía de memoria
Capacidad
Tiempo de acceso
Coste
G.P.R.
Cache
Memoria
Disco
Cinta
Instr./Datos
Bloques
Páginas
Archivos
Nivel superior
Nivel inferior
Más rápida
Más grande
Gestor
Unidad de transfer.
Prog./Comp.
1-8 Bytes
Control cache
8-128 Bytes
Sist. operativo
512-4kBytes
Usuario
MBytes
G.P.R.
100’s Bytes
~ 1 ns
Cache
KBytes
~ 2-5 ns
10-2-10-3 $/bit
Memoria Principal
MBytes
~10-20 ns
10-5-10-6 $/bit
Disco6
GBytes
~5-10 ms
10-7-10-8 $/bit
Cinta
TBytes
~sec-min
10-10 $/bit
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 5
Sistema de jerarquía de memoria
¿En qué se basa una jerarquía de memoria?
El principio de Localidad:
Los programas acceden a una porción relativamente pequeña del 
espacio de direcciones en cualquier instante de tiempo
Existen dos diferentes tipos de localidad:
Localidad Temporal: Códigos y datos accedidos recientemente, 
tienen una gran probabilidad de volver a ser accedidos en un futuro 
cercano.
Localidad Espacial: Si un código o dato es referenciado, códigos o 
datos cuyas direcciones de memoria estén cerca de la anterior, 
tenderán a ser referenciados pronto.
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 6
Sistema de jerarquía de memoria
¿Qué se debe tener en cuenta al diseñar una jerarquía de 
memoria?
¿Dónde colocar un bloque en el nivel superior? 
¿Cómo encontrar un bloque si este está en el nivel superior? 
¿Qué bloque debe ser sustituido en caso de fallo?
¿Qué estrategia se debe seguir cuando se modifica (escribe) un bloque en 
el nivel superior?
Memoria
Nivel inferiorMemoria
Nivel superiorA la CPU
De la CPU
Blk X
CPU
Blk Z
Blk X Blk Y
Blk Z Blk K
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 7
La memoria cache
Definiciones:
Cache: Memoria invisible, muy rápida y de pequeño tamaño entre el procesador y la memoria 
principal. 
H, frecuencia de aciertos (Hit rate): % de referencias a memoria que se encuentran en la cache. 
F, frecuencia de fallos (Miss rate): % de referencias a memoria que no se encuentran en la cache. 
F = 1-H
tc, Tiempo de acceso a la cache: tiempo necesario para acceder a un dato de la cache.
tB, penalización por fallo: tiempo necesario para reemplazar un bloque desde el nivel inferior, 
incluye el tiempo para llevarlo al procesador.
El tiempo medio de acceso al sistema de memoria es:
Un fallo en la cache AUMENTA el tiempo de ejecución 
de la instrucción implicada T = N I C PI + C D M ) TCPU C ICLO× ×(
C D M = A ccesos M em oria
N I
Freq. fallos Penalización× ×
Bcacc tHtt )1( −+=
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 8
La memoria cache. Principios de operación
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 9
Directorio cache
Realizado en memoria asociativa o memoria CAM (Content
Addressable Memory).
Señala si el dato solicitado por el procesador se encuentra en la 
cache. Si acierto (match) señala la dirección del bloque donde se 
encuentra el dato. 
Bloques cache
Realizado en memoria SRAM
Cada bloque contiene un número determinado de bytes a los que 
se accede en el caso de un acierto cache.
Unidad de control
Genera las señales de control para el funcionamiento de la unidad 
cache.
La memoria cache. Principios de operación
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 10
La memoria cache. Organización
Cache Completamente asociativa
BITS DE ETIQUETA BYTE EN 
BLOQUE
DIRECCION
DIRECTORIO BLOQUES
¿Acierto? ó ¿Fallo?
=?
=?
=?
=?
=?
Si Acierto,
dato a CPU
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 11
La memoria cache. Organización
Ejemplo: Cache complet. asociativa de 512 Bytes, 8By/bloque
0045FF3 0
DIRECTORIO BLOQUES
¿Acierto? ó ¿Fallo?
F
A
DIRECCION (32 b) 
0045FF34100
0045FF3 0
54445F0 0
0045FF3 1
6632FF3 1
F045FF3 0
0F FA 00 FF 33 AA 0F 22 0FFA0.....A0F22
100
FF00FA0F
F
F
F
64 comp.
CPU
3b29b
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 12
La memoria cache. Organización
Cache de correspondencia directa (Asociativa de 1 vía)
BITS DE INDICEBITS DE ETIQUETA BYTE EN 
BLOQUE
DIRECCION
DIRECTORIO BLOQUES
=?
Si Acierto,
dato a CPU
¿Acierto? ó ¿Fallo?
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 13
La memoria cache. Organización
Ejemplo: Cache de correspondencia directa de 4kB y 16 By/Bloq
04FA067
4b
DIRECCION (32 b) 
FA06704C
DIRECTORIO BLOQUES
A
2F3D0...0257F
8b20b
C
00
FF
FA067 2F 3D 00 A0 A0FF 25 7F 
A0003D2F
C
CPU
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 14
La memoria cache. Organización
Cache asociativa por vías (N vías)
BITS DE INDICEBITS DE ETIQUETA BYTE EN 
BLOQUE
DIRECCION
¿Acierto? ó ¿Fallo?
DIRECTORIO BLOQUES
VIA-1 VIA-N
=?=?
Si Acierto, extrae 
dato de BL-1 ó BL-N 
y lo envía a la CPU
BL-1
DIRECTORIO BLOQUES
BL-N
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 15
La memoria cache. Organización
Ejemplo: Cache de 4kB con 64 By/Bloq y asociativa de 4 vías
AFA64 00
6b4b22b
00 8
452DD3FF...48 Bytes...4356FFCD3D3F4F3D00A03420
DIRECCION (32 b) 
AFA643081100
1100
VIA-3VIA-2 VIA-4VIA-1
3FAA....
0
F
46FF....257A....AFA64 00
CDFF5643001000 CPU
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 16
Cache Correspondencia Directa VS Asociativa por N Vías
CD necesita 1 comparador AV necesita N comparadores
CD puede obtener los datos antes de producirse un acierto o fallo. AV 
dispone de los datos sólo tras la comparación, se necesita intercalar un 
multiplexor para seleccionar los datos de la vía en la que se produce el 
acierto.
¿Qué misión tienen los bits de validez (BV)? 
Si hay 1 BV por cada bloque ⇒ En caso de acierto si BV=‘0’, el bloque no 
contiene datos válidos.
Si hay 1BV por cada palabra en el bloque ⇒ En caso de acierto, la palabra 
con BV a ‘0’ no contiene datos válidos.
¿Qué misión tiene el bit de modificación o suciedad (M)? 
Siempre asociado a un bloque.
Si M=‘1’ ⇒ ha habido al menos una 
escritura en la cache que no ha sido escrita en memoria.
La memoria cache. Organización
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 17
Operaciones de captura
Captura a la demanda: Se carga un bloque (entero o parte) sólo cuando se 
referencia un dato en él contenido y se produce un fallo. 
Captura anticipativa: Se carga un bloque (entero) antes de ser 
referenciado. 
Captura selectiva: No siempre se carga un dato cuya referencia ha 
originado un fallo. Ejem: direcciones “no cacheables”.
Operaciones de escritura y actualización de memoria
Escritura Directa (ED) (Write Through): Se escribe al tiempo en la cache y 
en la memoria principal.
Dos estrategias: EDAE y EDSAE. 
Post-Escritura (PE) (Write Back): Se actualiza la memoria principal, sólo
al reemplazar un bloque. Dos modalidades dependiendo del bit M.
La memoria cache. Esquemas de funcionamiento
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 18
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
1.- ED y PE: Operación de ACIERTO en lectura
tacc
AL = (H)(1 w)tC−
Cache⇒CPU
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 19
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
2.- ED: Operación de FALLO en lectura
tacc
FL = (1- H)(1 w)tC− +(1- H)(1 w)tB−
Cache⇒CPU MEM⇒Cache
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 20
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
2.- PE: Operación de FALLO en lectura
tacc
FL = (1- H)(1 w)tC− +(1- H)(1 w)tB−
Cache⇒CPU Cache⇒MEM
+(1- H)(1 w)w tM B−
MEM⇒Cache
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 21
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
3.- ED: Operación de ACIERTO en escritura
(H)(w)tC +(H)(w)(t tm C− )
CPU⇒Cache CPU⇒MEM
tacc
AW = (H)(w)t m =
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 22
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
3.- PE: Operación de ACIERTO en escritura
tacc
AW = (H)(w)tC
CPU⇒Cache
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 23
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
2.- EDAE: Operación de FALLO en escritura
tacc
FW = (1- H)(w)tC +(1- H)(w)t B
CPU⇒Cache CPU⇒MEM
+(1- H)(w)(t - tm C )
MEM⇒Cache
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 24
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
2.- EDSAE: Operación de FALLO en escritura
tacc
FW = (1- H)(w)tC
CPU⇒Cache CPU⇒MEM
+(1- H)(w)(t - tm C )(1- H)(w)t m =
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 25
La memoria cache. Esquemas de funcionamiento
CPU
MEMORIA
PRINCIPAL
CACHE
Directorio
U.Control
Dirección
Datos
Bloques
2.- PE: Operación de FALLO en escritura
tacc
FW = (1- H)(w)tC +(1- H)(w)t B
CPU⇒Cache Cache⇒MEM
+(1- H)(w)w tM B
MEM⇒Cache
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 26
La memoria cache. Esquemas de funcionamiento
Resumen de estrategias
t t w(t t ) (1 H)tacc C m C B= + − + −
Escritura Directa (EDAE):
Escritura Directa (EDSAE):
t t w(t t ) (1 H)(1- w)tacc C m C B= + − + −
Post Escritura (PE):
t t (1 H)(1+ w )tacc C M B= + −
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 27
La memoria cache. Esquemas de funcionamiento
Algoritmos de reemplazamiento
Aleatorio
FIFO (First In First Out)
LRU (Least Recently Used)
Usando bits de control (N bloques ⇒ N! estados)
Usando contadores asociados a cada bloque
Usando una matriz de referencia( para un número N de bloques 
necesita (N x (N-1))/2) bits)
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 28
La memoria virtual
¿Qué se entiende por memoria virtual? 
El espacio de direcciones que ve una determinada tarea. Este espacio 
reside en el nivel inferior de la jerarquía de memoria.
¿Qué se entiende por memoria física o real ?
El espacio de direcciones donde se ejecuta una determinada tarea. 
Este espacio reside en los niveles superiores de la jerarquía de memoria.
DV{An-1..A0}
CPU
Traductor
Automático de
Direcciones MP
Tratamiento de
Faltas (S.O.)
DR{Am-1..A0}
MS
MS1
MS2
MSi
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 29
Esquemas de funcionamiento de la MV
Conceptos: ¿Cuál es el tamaño de los bloques de información que deben 
ser transferidos entre la memoria principal (MP) y la memoria secundaria 
(MS)? 
Organización por páginas: La memoria virtual y física están siempre 
divididas en bloques de igual tamaño denominados páginas. Una 
tarea ocupa un determinado número de páginas. 
Organización por segmentos: La memoria virtual y física se dividen 
en bloques de diferentes tamaños denominados segmentos. El 
tamaño y número de los segmentos dependen de la tarea que se 
desea ejecutar en cada instante. La estructura de la memoria varía 
con cada tarea a ejecutar. 
Organización por segmentos paginados: Los segmentos se dividen 
en páginas, la unidad de transferencia entre MS y MP es la página de 
tamaño único. 
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 30
Paginación vs. Segmentación
¿Porqué es mejor paginación que segmentación?
La partición en páginas es trasparente al programador.
La dirección virtual está formada por una sola palabra, mientras que en 
segmentación está formada por dos, segmento y desplazamiento.
Es fácil reemplazar un bloque ya que todos tienen el mismo tamaño.
Elimina la fragmentación externa de memoria aunque no elimina 
completamente la interna.
¿Porqué es mejor segmentación que paginación?
Facilita las operaciones con la memoria, ya que programas y tablas de 
datos tienen diferente tamaño.
Permite compartir zonas de memoria entre procesos.
Permite proteger zonas de memoria.
Permite la existencia de varios espacios de direcciones, por lo que facilita 
la separación entre código y datos y la modificación independiente de 
programas.
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 31
Paginación: Mapeo de MV y MP
0
0
0
Dirección Virtual Dirección física o real 
Dirección de disco
Traducción
Tabla de páginas:
contiene la información
para traducir una
dirección virtual a una
dirección física o real.
0x8000800 0x3C00Disco ID 803C4
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 32
Paginación: Terminología del sistema de MV
Los bloques se denominan Páginas
Una dirección virtual consite en:
Un número de página virtual
Un campo de offset dentro de la página (LSB de la dirección)
Los fallos se denominan falta de página y se gestionan como 
excepciones.
La tabla de páginas contiene la información para traducir una 
dirección virtual a una dirección física o real.
Núm de pág virtual Offset
01131
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 33
Tabla de páginas
Registro ptr a tabla de páginas
Núm. de página Virtual offset
1 Núm pág. real=MARCO
MARCO offset
valido Número de página real
Conceptos:¿Cuáles son los mecanismos automáticos de traducción de la 
dirección virtual (DV) a la dirección física o real (DR)? => Tabla de páginas
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 34
Ejemplo de traducción de direcciones
0xFF000000
0x00004 0x0F3
1 0x020C0
0x020C0 0x0F3
valido Número de página real
Dirección física =
0x020C00F3
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 35
Ejemplo de traducción de direcciones
Registro de tabla de páginas
0x00002 0x082
0 Direcc de disco
valido Número de página real
Excepción:
fallo de página
1. Se para este proceso
2. Se obtiene de disco la página
3. Se actualizan los contenidos 
que van a ser sustituidos de MP 
4. Se copia la pagina obtenida 
del disco en MP.
5. Actualiza la tabla de páginas
6. Se relanza el proceso.
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 36
Paginación
Componentes y Recursos Necesarios
a) Tabla de páginas de sustitución directa (Direct mapping)
OFFSETD.V. Núm Pág. Virtual
MARCO +…
D.R.
MARCO OFFSET
INDICE
MEMORIA
CPU
Inicio Tabla Pág
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 37
Paginación
Ejemplo: Memoria: Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212)
Sustitución Directa
¡¡Como mínimo se necesita SRAM 220x12 bits!!
00000
12 b
FFFFF
D.R.
312 D00
MEMORIA{312D00}
312 + bit ctrl
D.V.
CPU {FFAACD00} D00FFAAC
20 b
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 38
Paginación
b) Tabla de paginas por sustitución asociativa completa (Fully
associative mapping)
CPU
OFFSET
D.V.
PAGINA
MARCO+ bit ctrl
D.R.
MARCO OFFSET
MEMORIA
PAGINA
?
?
?
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 39
Paginación
Ejemplo: Memoria: Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) 
Sustitución asociativa completa
MEMORIA
D.R.
{312D00}
D00312312+...FFAAC
F
A
F
D.V.
CPU {FFAACD00} D00FFAAC
F00 +...FFAAD
FFF+...EFAAD
12 b20 b
¡¡Necesita un mínimo de CAM 220x20bits y SRAM 220x12 bits!!
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 40
Segmentación
DESPLAZAMIENTOD.V. SEGMENTO
DESCRIPTOR
D.R.
PUNTERO A 
TABLA DE SEG.
MEMORIA
CPU
¿Cómo se traduce la dirección virtual en real?
>?,+
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 41
¿Qué contiene el descriptor de segmento?
La dirección base del segmento: Sumada al desplazamiento indica la 
dirección de memoria real referenciada 
El tamaño del segmento: Debe ser superior al desplazamiento
Los bits de control de la MMU
Bit de presencia en memoria real
Bit de protección contra escritura (segmento código)
Bit de exclusión o para límitar accesos (seg. sistema)
Los bits para los algoritmos de reemplazamiento
LRU o similares
Segmentación
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 42
D.R.
DESPLAZAMIENTO
D.V. SEGMENTO
PUNTERO
MEMORIA
CPU
>?BASE TAB
PAGINA OFFSET
MARCO
OFFSETMARCO
TAMAÑO
¿Cómo se traduce la dirección virtual en real?
Segmentación-Paginada
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 43
Mejorar la gestión de la memoria virtual. 
¿Cómo reducir el coste del sistema de traducción automática de 
direcciones sin perder rendimiento?
Optimizando el tamaño de página
Pag. Pequeñas.- Reducen la fragmentación, pero aumentan el 
trasiego (thrashing) 
Pag. Grandes.- Aumenta el rendimiento en el cambio MP⇔MS
Utilizando traductores de menor tamaño, denominados TLB’s 
(Translation Look-Aside Buffers)
Completamente asociativos
Asociativos por vías (set associative mapping)
Utilizando sistemas de paginación multinivel
Se guardan en memoria rápida SRAM, sólo las páginas que con 
mayor probabilidad van a ser utilizadas
Un sistema mixto con ambas opciones.
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 44
Mejorar la memoria virtual: TLB
Intercalando una unidad de memoria (cache) que realice 
esta función denominada TLB(Translation Look-Aside Buffers)
CPU
MP MS
Tratamiento de
Faltas (S.O.)
DR
TLB
DV
Tablas de
traducción
Fallo
DR
Dato
MMU
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 45
¿Cuál es la información contenida en un elemento del TLB o de la tabla 
de páginas?
El marco de página: con el offset permite obtener la dirección real
Los bits para el control de la MMU
Bit de presencia: activo a ’1’ indica la presencia de la página referenciada en memoria 
principal
Bit de uso: activo a ’1’ indica que algún elemento de esa página ha sido referenciado
Bit de modificación: activo a ’1’ indica que una dirección de la página ha sido modificada 
(escrita)
Bit/s de protección o privilegios: supervisor, sólo lectura, no cacheable, otros...
Bits de reemplazamiento: necesarios para aplicar alguno de los algoritmos de 
reemplazamiento, Reloj, LRU, etc...
Mejorar la gestión de la memoria virtual. 
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 46
PAGINA MARCOVIA-1 VIA-2
AF
PAGINA MARCO
Ejemplo: Memoria: Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) 
TLB asociativo por conjuntos de 2 vías y 16 entradas/vía 
0
F
CPU {FFAACD00} D00FFAA
12b16b 4b
C
FFAAAAFF 2F0 +... 312+...
MEMORIA
D.R.
{312D00}
D00312
La gestión de la memoria virtual: TLB
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 47
Paginación multinivel
Sistema de paginación multinivel
OFFSETD.V. Nivel 1
T.Pag. Nivel-1 o 
Directorio
D.R.
MARCO OFFSET
MEMORIA
CPU Nivel 2 Nivel n
T. Pag. Nivel-2
T. Pag. Nivel-n
Marco+bit
Base N2
Base N3
Reg. Puntero
Mejorar la gestión de la memoria virtual:
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 48
Ejemplo: Memoria Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) 
Sistema multipaginado de 3 niveles: (N1: 16 entradas y N2 y N3 con el mismo número de entradas. 
Tamaño del descriptor 4 bytes en todos los niveles)
CPU {FFAACD00}
D.V.
D00FA
12b8b
AC
8b
F
4b
0
F
Directorio
00
FF
Tabla N2
00
FF
Tabla N3
00
FF
Tabla N3
AC
00
FF Tabla N2
FA
312
MEMD.R.
{312D00}
D00312
Paginación multinivel
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 49
Mejoras del sistema de memoria
Mecanismos para mejorar el rendimiento Cache
Reducir la tasa de fallos
Aumentando el tamaño del bloque
Aumentando el número de vías
Caches independientes vs unificada
Reducir la penalización por fallos
Intercalar buffer de escritura
Sistema cache de dos niveles
Reducir el tiempo de acceso a la cache
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 50
Mejoras sistema de memoria
Reducir la tasa de fallos: Aumentar el tamaño del bloque
Tamaño del bloque (Bytes)
Fr
eq
. F
al
lo
s
0%
5%
10%
15%
20%
25%
16 32 64
12
8
25
6
1 kB
4 kB
16kB
64kB
256kB
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 51
Mejoras sistema de memoria
Reducir la penalización por fallos: Caches de dos niveles
Compromiso entre realizar caches mas rápidas o caches mas grandes
Definiciones
Frecuencia local de fallos (FLi).- Fallos en el nivel i / Accesos al nivel i
Frecuencia global de fallos (FG).- Total Fallos / Accesos solicitados por la 
CPU. FG = FL1 x FL2
t t F (t F t )acc L1 L1 L2 L2 B2= + +
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 52
Mejoras sistema de memoria
Reducir la penalización por fallos: ”Buffer” de escritura
t t (1 H)tacc C B= + −Escritura Directa (EDAE):
t t (1 H)(1- w)tacc C B= + −
Post Escritura (PE): t t (1 H)tacc C B= + −
Escritura Directa (EDSAE):
CPU Cache MEM 
LEER
BUFFER
ESCRIBIR
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 53
Mejoras sistema de memoria
Cache real
DATO
D.V.
CPU
CPU
DV
PAGINA
OFFSET
DR
TLB
=?
=?
=?
=?
=?
B/BINDICE
CACHE
=?
TAG
DIR. BLOQUE
TAG
Caches virtuales y reales
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 54
Ejemplo.- DV: 32b; DR: 20b; Pag: 256 Bytes; TLB CA de 32 Entradas; Cache CD 256 
Bytes, con 16 B/B. 
CD223540
D.V. [0A07B55C]
CPU
CPU
0A07B5
0A07B5
TLB
=?
=?
=?
=?
=?
C5
CACHE
A
32 
Comp. 3DC 3DC 33AA...CD223540
Funcionamiento óptimo en cache real de correspondencia directa se consigue con
“ tamaño de la unidad cache igual que el tamaño de la página”
Caches virtuales y reales
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 55
Caches virtuales y reales
Cache Virtual
DATO
D.V.
CPU
CPU TAG B/BINDICE
CACHE
=?
TAG
DIR. BLOQUE
MPV MPR+b
TLB
=?
=?
=?
=?
=?
NPV OFFSET
D.R A MemMPR OFFSET
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 56
Ejemplos: La unidad cache del Pentium
Pentium (1993)
Sistema cache interno (L1), con dos unidades independientes para
instrucciones y datos de 8 kBytes cada una.
Cache de asociativa de 2 vías con 32 Bytes/Bloque 
Estrategia de post-escritura. Posible configuración a escritura directa.
Bus de enlace entre CPU y cache-instrucciones de 256 bits. Bus de enlace 
entre CPU y cache-datos de 32+32 (2 ALU-INT) o 64 bits (ALU-FP)
Cache externa L2 256-512 kBytes asociativa de 2 vías, con 32,64, ó 128 
Bytes/Bloque. 
Protocolo MESI para el control de coherencia de 2 bits.
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 57
Ejemplos: La unidad cache del Pentium
Pentium P-II (1997)
Sistema cache interno (L1), no unificado16+16 kB. LRU
Cache de asociativa de 4 vías con 32 Bytes/Bloque. 
Cache de datos Non-Blocking. Protocolo MESI. EDAE. 
Cache externa L2 0kB(Celeron)-512kB(PIII)-2MB(Xeon).
4 vías, con 32 Bytes/Bloque. 
Pentium III (1999)
Sistema cache interno (L1) igual que PII
Cache L2 externa 512kB(PIII)-2MB(Xeon) 4 vías, con 32 Bytes/Bloque.
Cache L2 interna 128kB*(Celeron)-256kB(PIII)-2MB(XeonA)
8 vías, con 32 Bytes/Bloque.
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 58
Ejemplos: La unidad cache del Pentium
PowerPC 601 (1995)
Sistema cache con una cache unificada de 32 kBytes asociativa de 8 vías y 
32 Bytes/Bloque
PowerPC 620 (1996)
Sistema cache interno con dos unidades independientes para datos e 
instrucciones de 32 kBytes cada una. Asociativas de 8 vías y 64 
Bytes/Bloque.
Bus de enlace entre CPU y cache-instrucciones de 128 bits y de 64 bits 
entre CPU y cache-datos. 
Protocolo MESI para el control de coherencia de 3 bits
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 59
Ejemplo: La MMU del Pentium
Cuatro formas de gestionar la memoria
Sin segmentos y sin páginas: Memoria lógica (virtual) = Memoria Física
Memoria segmentada pura: 16b segmento y 32b desplazamiento. Espacio virtual de 
64TB (16 kTablas de 4GB, 8 globales y 8 locales). Espacio físico 4GB
Memoria paginada pura: Memoria lineal de 4 Gb, en páginas de 4kB ó 4MB
Segmentos paginados: DV {Seg(16b)+Despl(32b)} D.Lineal (32b) DR (32b)
Dispone de una unidad TLB completamente asociativa de 32 entradas
Cada descriptor de la tabla de segmentos ocupa 64 bits. Si se utiliza paginación, el 
directorio de páginas del proceso en curso, siempre se encuentra en memoria 
principal, cada elemento del directorio o de la tabla de páginas ocupa 32 bits
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 60
Ejemplo la MMU del Pentium
Dirección Lógica
15
T. DESCRIP. SEG.
GDTR/LDTR
213
SEGMENTO DESPLAZAMIENTO
0 031
DESCRIPTOR
+
DIRECTORIO PAGINA OFFSET Dirección Lineal
031
Dirección Física
DIREC. PAGINAS TABLA PAGINAS MEMORIA
PAGINA
MARCO
DATO
CR3
210
22 11
212210
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 61
Ejemplo: la MMU del Pentium
El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 62
Bibliografía
COMPUTER ARCHITECTURE: Design and performance, 2ª Edition"
Barry Wilkinson
Prentice Hall International. 2ª Edition. 1996. 
"COMPUTER ARCHITECTURE: A Quantitative Approach". John L. Hennessy y David A. 
Patterson. 3rd Edition, Ed. Morgan Kaufmann 2001. 
"ESTRUCTURA Y DISEÑO DE COMPUTADORES interficie circuitería/programación". 
David A. Patterson y John L. Hennessy. Ed. Reverte 2000. Volumen. 1. 
"ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES". W. Stallings. 5ª 
Edición. Prentice Hall 2000. 
Referencias WEB
Memoria cache: http://www.slcentral.com/articles/00/10/cache/
apuntesArquitecturaComputadores/tema2ATCSegmentacion2008.pdf
Arquitectura y Tecnología de Computadores 
Profesor: Francisco Javier Gómez Arribas
Departamento de Ingeniería Informática y Telecomunicaciones 
Escuela Politécnica Superior
4º Curso de Ingeniería de Telecomunicación
Tema 2 - DISEÑO DE UN PROCESADOR: Segmentación en 
la ejecución de instrucciones
Segmentación Tema 2 /Universidad Autónoma de Madrid 1
Contenidos
2.1.-Fundamentos de diseño de un procesador. 
El repertorio de instrucciones.
Procesadores con repertorio reducido de instrucciones RISC.
Comparación entre procesadores CISC y RISC.
2.2.- La técnica de la segmentación.
2.3.- Diseño de un procesador con cauce de instrucciones segmentado.
2.4.- Limitaciones del cauce de instrucciones segmentado.
Causas que producen perdidas de rendimiento por detención del pipeline.
Conflictos por limitaciones estructurales.
Conflictos por riesgos de control.
Conflictos por dependencia de datos.
2.5.- Técnicas para evitar detenciones. 
Adelantamiento de datos.
Predicción de saltos. 
Segmentación Tema 2 /Universidad Autónoma de Madrid 2
Arquitectura ISA: Especificación del conjunto de Instrucciones
Recursos visibles al programador
Formato Instrucciones, modos de direccionamiento. => CISC vs RISC
Camino de datos Control
ProcesadorInstruction Set Architecture =>
Reg. File Mux ALU Reg Mem Decod. Secuenciador
Celdas Puertas Básicas
El repertorio de Instrucciones
Segmentación Tema 2 /Universidad Autónoma de Madrid 3
ADD y SUB
addU rd, rs, rt
OR Inmediato:
ori rt, rs, imm16
LOAD y STORE Word
lw rt, rs, imm16
sw rt, rs, imm16
SALTOS:
beq rs, rt, imm16
jmp imm16
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt inmediato
016212631
6 bits 16 bits5 bits5 bits
Todas las instrucciones de igual tamaño 
Los registros y los valores inmediatos en la misma posición
Las operaciones se realizan entre registros 
Ejemplo de repertorio de Instrucciones: MIPS
op inmediato
02631
6 bits 26 bits
Tipo-R
Tipo-I
Tipo-J
Segmentación Tema 2 /Universidad Autónoma de Madrid 4
Filosofía RISC
“Hacer más sencillo y en consecuencia más rápido casi todas las tareas que se pueden 
ejecutar en un sistema CISC ”
Instrucciones complejas Mejor no tenerlas
Sustituirlas por software
VLSI Un sistema sencillo ocupa menos espacio
Un sistema sencillo es más rápido
Facilita ejecución segmentada
No utilizar Microcódigo, basta con controladores secuenciales (FSM)
Minimizar riesgos estructurales de acceso a recursos
Aumentar el paralelismo 
El repertorio de Instrucciones RISC
Segmentación Tema 2 /Universidad Autónoma de Madrid 5
Utilizan arquitecturas Harvard.
No se permiten códigos automodificables.
Utilizan sistemas con cache de uno o mas niveles.
Utilizan caches independientes para intrucciones y datos.
Utilizan registros FIFO para precaptura de instrucciones.
Sólo dos operaciones con memoria: LOAD Y STORE.
Los accesos a memoria quedan minimizados por disponer de un gran número de 
registros internos.
Algunos RISC utilizan registros internos como pila de memoria para guardar 
datos temporales entre subrutinas ( ventana de registros) 
Características de un RISC genérico
Segmentación Tema 2 /Universidad Autónoma de Madrid 6
La ventana de registros en un sistema RISC
SPARC
R(31)
: ENTRADA
R(24)
R(23)
: LOCALES
R(16)
R(15)
: SALIDA
R(8)
CWP+1
R(31)
: ENTRADA
R(24)
R(23)
: LOCALES
R(16)
R(15)
: SALIDA
R(8)
CWP
R(31)
: ENTRADA
R(24)
R(23)
: LOCALES
R(16)
R(15)
: SALIDA
R(8)
CWP-1
R(7)
: GLOBALES
R(1)
R(0) 0
Segmentación Tema
2 /Universidad Autónoma de Madrid 7
Comparación entre procesadores CISC y RISC.
CISC RISC
Nº Instrucciones 100-300 < 128 (27)
Instrucciones complejas Si No
Modos de Direccionamiento 8-20 2-3
Nº Formatos > 10 ≤ 4
Palabras/Instrucción 1-10 1 
Set ortogonal de Instruc. No Si
Instruc. con memoria Varias 2 (Load/Store)
Ciclos/Instrucción 3-10 ~ 1
Nº Registros internos 2-16 > 32
Procesador segmentado A Veces Siempre
Unidad de Control µCódigo Secuencial
Segmentación Tema 2 /Universidad Autónoma de Madrid 8
Argumentos de los partidarios de CISC
Los programas son más cortos
Se reducen las llamadas a memoria y por tanto hay menos latencias de acceso
Un set de instrucciones complejo no es más caro que uno simple 
Las instrucciones son más eficientes 
Mayor dificultad para clonar el sistema
Permite la compatibilidad entre elementos de una misma familia
Facilita el trabajo de los compiladores
Mayor similitud entre los lenguajes de alto nivel y el ensamblador
Comparación entre procesadores CISC y RISC.
Segmentación Tema 2 /Universidad Autónoma de Madrid 9
Argumentos de los partidarios de RISC
El Hardware es más sencillo
Los sistemas ejecutan las tareas más rápido
El diseño de los sistemas es menos costoso
El set de instrucciones es sencillo y con pocos formatos, lo que permite 
homogeneizar el tiempo de ejecución de las instrucciones 
Facilita el uso de procesadores segmentados
Facilita el procesamiento paralelo
Facilita el trabajo de los compiladores
Debido a la menor complejidad del set de instrucciones
Comparación entre procesadores CISC y RISC.
Segmentación Tema 2 /Universidad Autónoma de Madrid 10
1. Analizar el conjunto de instrucciones => requisitos de la unidad de tratamiento o 
camino de datos (datapath)
El significado de cada instrucción viene dado por su funcionamiento a nivel de 
transferencia de registros (RTL).
El datapath debe incluir elementos de almacenamiento para los registros 
accesibles en el modelo de programación del procesador.
El datapath debe soportar todas las transferencias entre registros definidas en el 
conjunto de instrucciones. 
2. Selección de los componentes y de la metodología de reloj.
3. Implementación del datapath cumpliendo los requisitos.
4. Análisis de cada instrucción para determinar el mecanismo de control que efectúe la 
transferencia entre registros.
5. Implementación de la lógica de control.
Diseño de un procesador 
Segmentación Tema 2 /Universidad Autónoma de Madrid 11
Diseño de un procesador
1.- Unidad de tratamiento + Unidad de Control
Unidad de Control: encargada de realizar el control del proceso, es decir de generar las señales necesarias para activar los 
componentes de la unidad de tratamiento que actuarán sobre los datos en el instante de tiempo que corresponda. 
Unidad de Tratamiento o camino de datos: agrupa a todos los componentes capaces de manipular los datos, y un conjunto de 
elementos de almacenamiento en en el interior del procesador. 
Segmentación Tema 2 /Universidad Autónoma de Madrid 12
2.- Fase de Ejecución: En un único ciclo o multiciclo
Instrucción addU rd, rs, rt
Descripción de la ejecución (RTL)
Mem[PC] Carga de la instrucción desde memoria
R[rd] ← R[rs] + R[rt] Realiza la operación (SUMAR)
PC ← PC + 4 Calcula la dirección de la siguiente 
instrucción.
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
Diseño de un procesador.- Descripción RTL 
Segmentación Tema 2 /Universidad Autónoma de Madrid 13
Unidades funcionales necesarias para cada instrucción
Memoria de instrucciones 
Memoria de
Instrucciones
Dirección 
de lectura
Instrucción
Memoria de datos
M e m R ea d
M em W rite
Memoria de
DatosDirección 
Dato 
Entrada
Dato Salida
Contador
de Programa 
Sumador
PC
Su
m
ad
or
ALU 
A LU op.
3
Cero
Resultado
ALU
Oper 1
Oper 2
Extensión de Signo
16 32Exten.
Signo
Banco de Registros 
Dato Entrada
Reg. destino
Reg. fuente 1
Registros
Reg. fuente 2
Dato Salida 1
Dato Salida 2
Número 
De
Registro
Datos
Datos
5
5
5
x 4
Diseño de un procesador.- Elementos básicos
Segmentación Tema 2 /Universidad Autónoma de Madrid 14
Dato Entrada
Reg. destino
Reg. fuente 1
Diseño del camino de datos (Datapath)
Conexión de los elementos:
Uso de multiplexores.
Señales de control
Captura de la siguiente instruc. 
Incremento de PC.
Instrucciones de la ALU entre registros.
16 32
4
A LU op.
3
R e gW rit e
M e m R ea d
M em W rite
PCS rc
A L U Src
Me m 2 R eg
Cero
Memoria de
Instrucciones
Dirección 
de lectura
Instrucción
PC
Registros
Reg. fuente 2
Dato Salida 1
Dato Salida 2
M
u
x
M
u
x
Memoria de
Datos
Dirección 
Dato Entrada
Dato Salida
M
u
x
Exten.
Signo
Despl.
<< 2
Su
m
ad
or
Sumador
Resultado
Resultado
ALU
Segmentación Tema 2 /Universidad Autónoma de Madrid 15
Dato Entrada
Reg. destino
Reg. fuente 1
Conexión de los elementos:
Uso de multiplexores.
Señales de control
Captura de la siguiente instruc. 
Incremento de PC.
Instrucciones LOAD/STORE.
16 32
4
A LU op.
3
R e gW rit e
M e m R ea d
M em W rite
PCS rc
A L U Src
Me m 2 R eg
Cero
Memoria de
Instrucciones
Dirección 
de lectura
Instrucción
PC
Registros
Reg. fuente 2
Dato Salida 1
Dato Salida 2
M
u
x
M
u
x
Memoria de
Datos
Dirección 
Dato Entrada
Dato Salida
M
u
x
Exten.
Signo
Despl.
<< 2
Su
m
ad
or
Sumador
Resultado
Resultado
ALU
Diseño del camino de datos (Datapath)
Segmentación Tema 2 /Universidad Autónoma de Madrid 16
Exten.
Signo
Dato Entrada
Reg. destino
Reg. fuente 1
Diseño del camino de datos (Datapath)
Conexión de los elementos:
Uso de multiplexores.
Señales de control
Captura de la siguiente instrucción o del 
destino de salto =>Incremento de 
PC.
Instrucciones de Salto y.
Salto Condicional
16 32
4
A LU op.
3
R e gW rit e
M e m R ea d
M em W rite
PCS rc
A L U Src
Me m 2 R eg
Cero
Memoria de
Instrucciones
Dirección 
de lectura
Instrucción
PC
Registros
Reg. fuente 2
Dato Salida 1
Dato Salida 2
M
u
x
M
u
x
Memoria de
Datos
Dirección 
Dato Entrada
Dato Salida
M
u
x
Despl.
<< 2
Su
m
ad
or
Sumador
Resultado
Resultado
ALU
Segmentación Tema 2 /Universidad Autónoma de Madrid 17
Control (Ciclo único)
PC
Instruction�
memory
Read�
address
Instruction�
[31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
MemtoReg
ALUOp
MemWrite
RegWrite
MemRead
Branch
RegDst
ALUSrc
Instruction [31– 26]
4
16 32Instruction [15– 0]
0
0M�
u�
x
0
1
Control
Add ALU�result
M�
u�
x
0
1
Registers
Write�
register
Write�
data
Read�
data 1
Read�
data 2
Read�
register 1
Read�
register 2
Sign�
extend
Shift�
left 2
M�
u�
x
1
ALU�
result
Zero
Data�
memory
Write�
data
Read�
data
M�
u�
x
1
Instruction [15– 11]
ALU�
control
ALU
Address
Instrucción RegDst ALUSrc Mem2Reg RegWrite MemRd MemWr Branch ALUOp1 ALUp0
Oper. Reg 1 0 0 1 0 0 0 1 0
LOAD 0 1 1 1 1 0 0 0 0
STORE X 1 X 0 0 1 0 0 0
BEQ X 0 X 0 0 0 1 0 1
Segmentación Tema 2 /Universidad Autónoma de Madrid 18
Desventajas del diseño uniciclo (CPI=1)
Tiempo de ciclo muy largo.
Todas las instrucciones utilizan, sin necesidad, tanto tiempo como la 
instrucción más lenta.
La memoria Real no es ideal, existen detenciones y no siempre se accede 
en un solo ciclo (CDM).
PC Inst Memory mux ALU Data Mem mux
PC Reg FileInst Memory mux ALU mux
PC Inst Memory mux ALU Data Mem
PC Inst Memory cmp mux
Reg File
Reg File
Reg File
Aritmeticas & Logicas
Load
Store
Branch
Camino crítico
setup
setup
Segmentación Tema 2 /Universidad Autónoma de Madrid 19
Las instrucciones pueden tardar diferente número de ciclos.
Un ”datapath” multiciclo con ligeras modificaciones.
Dividir
las instrucciones en pasos, cada paso tarda un ciclo
Balancear la cantidad de trabajo a realizar en un paso
En cada ciclo solo se utiliza una unidad funcional (se reduce el
número de U.F.)
Al final del ciclo
Almacenar los valores para su uso en posteriores pasos (es la 
mas fácil)
Añadir registros internos adicionales
Control Multiciclo
Segmentación Tema 2 /Universidad Autónoma de Madrid 20
Cambios para una aproximación multiciclo
Shift
left 2
PC
Memory
MemData
Write
data
M
u
x
0
1
Registers
Write
register
Write
data
Read
data1
Read
data2
Read
register 1
Read
register 2
M
u
x
0
1
M
u
x
0
1
4
Instruction
[15–0]
Sign
extend
3216
Instruction
[25–21]
Instruction
[20–16]
Instruction
[15–0]
Instruction
register
1 M
u
x
0
3
2
M
u
x
ALU
result
ALU
Zero
Memory
data
register
Instruction
[15–11]
A
B
ALUOut
0
1
Address
M
u
x
0
1
Segmentación Tema 2 /Universidad Autónoma de Madrid 21
1.-Carga de Instrucción (todas)
IR = Memory [PC];
PC = PC + 4;
2.- Decodificación de la instrucción y lectura de registros (todas)
Lee registros rs y rt cuando sean necesarios. 
A = Reg[IR[25-21]];
B = Reg[IR[20-16]];
En saltos calcula la dirección
ALUOut = PC + (sign-extend(IR[15-0]) << 2);
En este ciclo no se da valor a las líneas de control porque se está decodificando la 
instrucción
Ejecución en cinco pasos (5 ciclos)
Segmentación Tema 2 /Universidad Autónoma de Madrid 22
3.-Ejecución, Calcula dirección de memoria, Finalización de salto.
La unidad ALU realiza una de las siguientes funciones dependiendo del tipo de instrucciones:
Referencia a Memoria: ALUOut = A+sign-extend(IR[15-0]);
Operación entre registros: ALUOut = A op B;
Saltos: if (A==B) PC = ALUOut;
4.-Acceso a Memoria o escritura del registro resultado.
Acceso a memoria en Loads y Stores.
Load MDR = Memory[ALUOut];
Store Memory[ALUOut] = B;
Escritura del registro destino en instrucciones entre registros.
Reg[IR[15-11]] = ALUOut;
La escritura tiene lugar en el flanco al final del ciclo.
5.- Escritura del valor leído de memoria en el registro destino (Write-back).
• Reg[IR[20-16]]= MDR;
“UNA INSTRUCCIÓN TARDA DE 3 A 5 CICLOS”
Ejecución en cinco pasos (5 ciclos)
Segmentación Tema 2 /Universidad Autónoma de Madrid 23
Control Multiciclo
Segmentación Tema 2 /Universidad Autónoma de Madrid 24
Control Secuencial
Segmentación Tema 2 /Universidad Autónoma de Madrid 25
Control Microprogramado
Utilización de 
“microinstrucciones”
P C W r ite
P C W r ite C o n d
Io rD
M e m to R e g
P C S o u rc e
A L U O p
A L U S rc B
A L U S rc A
R e g W r i te
A d d rC t l
O u t p u ts
M ic r o c o d e m e m o ry
IR W r ite
M e m R e a d
M e m W r i te
R e g D s t
C o n tro l u n i t
In p u t
M ic ro p ro g ra m c o u n te r
A d d re s s s e le c t lo g ic
O
p[
5–
0]
A d d e r
1
D a ta p a th
In s tru c tio n r e g is te r �
o p c o d e f ie ld
B W r it e
Segmentación Tema 2 /Universidad Autónoma de Madrid 26
Segmentación
- La Técnica de la Segmentación.
- Funcionamiento ideal.
- Conceptos asociados: Latencia y Throughput.
- Segmentación de Instrucciones.
-Conflictos que producen retardo en la ejecución.
Riesgos estructurales.
Riesgos de Control. 
Riesgos por la dependencia de datos
- Técnicas para evitar riesgos
Adelantamiento de datos
Predicción de saltos
Segmentación Tema 2 /Universidad Autónoma de Madrid 27
Segmentación: Funcionamiento Ideal
Técnica utilizada para optimizar el tiempo de ejecución de procesos que se 
realizan mediante la repetición de una secuencia de pasos básicos. 
Permite la ejecución de procesos concurrentemente.
Fundamento: Separar el proceso en etapas y ejecutar cada etapa en un 
recurso independiente.
Objetivo: Mejorar la productividad, aumentando el número de procesos 
ejecutados por unidad de tiempo. 
Funcionamiento: Cuando una etapa del proceso termina, el recurso 
liberado puede empezar a ejecutar la misma etapa del siguiente proceso.
Se consigue la ejecución de varios procesos en paralelo cada uno
en una etapa diferente.
Las etapas son ejecutadas secuencialmente.
Segmentación Tema 2 /Universidad Autónoma de Madrid 28
Segmentación: Funcionamiento Ideal
O
rd
en
 d
e 
Ta
re
a
FUNCIONAMIENTO SECUENCIAL
Realizar 4 tareas 
Lavado 30 MIN
Secado 40 MIN
Planchado 20 MIN
Tiempo empleado: 6 horas
Segmentación Tema 2 /Universidad Autónoma de Madrid 29
Segmentación: Funcionamiento Ideal
O
rd
en
 d
e 
Ta
re
a
FUNCIONAMIENTO SEGMENTADO
Realizar 4 tareas 
Lavado 30 MIN
Secado 40 MIN
Planchado 20 MIN
Tiempo empleado: 3.5 horas
Cada Tarea : 1.5 horas
Segmentación Tema 2 /Universidad Autónoma de Madrid 30
Segmentación: Funcionamiento Ideal
Tp
Ts
Tp
Ts
SECUENCIALMENTE ( 1 unidad de proceso para todas las etapas )
Tp es el tiempo de ejecución de un proceso.
Se puede descomponer en s (s=3) etapas de duración Ts
Tt = NTp = NsTs
Con SEGMENTACION ( unidades independientes para cada etapa )
Si N >>s ⇒ Tt≈ NTs
Tt = Tp + (N-1)Ts
= sT s+ (N-1)Ts
= (N+s-1)Ts
1 2 3 N
1
2
3
N-1
N
s=3
Ejecutar m procesos
Segmentación Tema 2 /Universidad Autónoma de Madrid 31
Segmentación: Funcionamiento Ideal
Proceso segmentado vs Proceso secuencial. 
La segmentación aunque no mejora la latencia de un solo proceso. 
mejora la productividad de una tarea con muchos procesos. 
Varios procesos se ejecutan “en paralelo”.
VENTAJAS
RESTRICCIONES
La razón de segmentación está limitada por la etapa más lenta.
La aceleración máxima posible = Número de etapas de segmentación.
Etapas de segmentación desequilibradas ⇒ Reducción de productividad. 
Segmentación Tema 2 /Universidad Autónoma de Madrid 32
Segmentación de instrucciones.
Un procesador segmentado perfecto consigue ejecutar una instrucción 
por ciclo.
La segmentación mas evidente consta de tres etapas :
Obtener instrucción (Fetch).
Decodificar instrucción (Decode).
Ejecutar instrucción (Execute).
La frecuencia de funcionamiento es mayor si el numero de etapas de 
segmentación se incrementa. Aunque:
La segmentación fina es muy difícil.
Cada nueva etapa añade un retardo de registro.
La independencia entre etapas es mas difícil de conseguir.
Segmentación Tema 2 /Universidad Autónoma de Madrid 33
Segmentación de instrucciones.
EJEMPLO: Segmentación de instrucciones con 5 etapas:
Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB
IMem Reg ALU DMem Reg
Obtener instrucción.
Acceso a la memoria 
de instrucciones
Decodificar instrucción.
Lectura de operandos, 
carga de registros.
Ejecutar instrucción.
o bien
Calcular dirección 
efectiva memoria.
Acceso a Memoria. 
o bien
Escribir en PC la 
dirección de salto.
Escribir en un 
registro el resultado 
de la operación.
Segmentación Tema 2 /Universidad Autónoma de Madrid 34
Comparación: Ciclo único / Multiciclo / Segmentado
Clk
Ciclo 1
Implementación Multiciclo:
Ifetch Reg Exec Mem Wr
Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9Ciclo 10
Load Ifetch Reg Exec Mem Wr
Ifetch Reg Exec Mem
Load Store
Implementación con Segmentación:
Ifetch Reg Exec Mem WrStore
Ifetch
R-type
Ifetch Reg Exec Mem WrR-type
Clk
Implementación con Ciclo único
Load Store Sin uso
Ciclo 1 Ciclo 2
Segmentación Tema 2 /Universidad Autónoma de Madrid 35
Muticiclo: Ciclos necesarios para Load y Op. entre registros
Clock
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7
Ifetch Reg/Dec Exec Mem Wr1erload
Ifetch Reg/Dec Exec Mem Wr2ª load
Ifetch Reg/Dec Exec Mem Wr3er load
Las Cuatro etapas en operaciones entre Registros
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4
Ifetch Reg/Dec Exec WrR-type
Las Cinco etapas de Load
Segmentación Tema 2 /Universidad Autónoma de Madrid 36
Conflictos estructurales
Hay dos instrucciones que intentan acceder a memoria al tiempo.
Hay dos instrucciones que intentan escribir en el banco de registros al mismo 
tiempo y sólo existe un puerto de escritura.
Hay conflictos
Ejecución de instrucciones: load seguido op. entre registros
Ifetch Reg/Dec Exec WrR-type
Ifetch Reg/Dec Exec WrR-type
Ifetch Reg/Dec Exec Mem WrLoad
Ifetch Reg/Dec Exec WrR-type
Ifetch Reg/Dec Exec WrR-type
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7
Clock
Ciclo 8
Segmentación Tema 2 /Universidad Autónoma de Madrid 37
Consideraciones de Diseño de un cauce segmentado
Cada unidad funcional pueda usarse solo una vez por instrucción. 
→ Deben aparecer dos unidades de memoria. 
Cada unidad funcional se utiliza en la misma etapa para todas las 
instrucciones:
Load usa el puerto de escritura en Registros durante su 5ª etapa.
Las operaciones entre Registros usan el puerto de escritura en Registros 
durante su 4ª etapa
Ifetch Reg/Dec Exec Mem WrLoad
1 2 3 4 5
Ifetch Reg/Dec Exec WrR-type
1 2 3 4
Soluciones: Paradas entre etapas, retraso de la escritura en registro, ...
Segmentación Tema 2 /Universidad Autónoma de Madrid 38
Solución1: Parar el cauce de instrucciones (Pipeline Bubble)
Clock
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9
Ifetch Reg/Dec Exec WrR-type
Ifetch Reg/Dec Exec
Ifetch Reg/Dec Exec Mem WrLoad
Ifetch Reg/Dec Exec WrR-type
Ifetch Reg/Dec Exec WrR-type Pipeline
Bubble
Ifetch Reg/Dec Exec Wr
Solución 2: Retrasar la escritura en Registro.
Clock
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9
Ifetch Reg/Dec Mem WrR-type
Ifetch Reg/Dec Exec Mem WrLoad
Ifetch Reg/Dec Mem WrR-type
Ifetch Reg/Dec Mem WrR-type
Exec
Exec
Exec
Ifetch Reg/Dec Mem WrR-type Exec
Consideraciones de Diseño
Segmentación Tema 2 /Universidad Autónoma de Madrid 39
Segmentación: Un diseño con 5 etapas
La base es el camino de datos de un ciclo.
Se añaden registros entre etapas. 
Hay que analizar si todas las Instrucciones 
funcionan. Problema: ADD R3,R2,R1
Instruction
memory
Address
4
32
0
Add Addresult
Shift
left 2
Ins
tru
cti
on
IF/ID EX/MEM MEM/WB
M
u
x
0
1
Add
PC
0Write
data
M
u
x
1
Registers
Read
data1
Read
data2
Read
register1
Read
register2
16 Sign
extend
Write
register
Write
data
Read
data
1
ALU
resultM
u
x
ALU
Zero
ID/EX
Data
memory
Address
Segmentación Tema 2 /Universidad Autónoma de Madrid 40
Segmentación: Modificación del datapath
Para solucionar el problema de la ejecución de las instrucciones que 
escriben su resultado en un registro, como por ejemplo las instrucciones:
ADD R3,R2,R1 y Load R3, R5, #1100
Instruction
memory
Address
4
32
0
Add Addresult
Shift
left 2
Ins
tru
cti
on
IF/ID EX/MEM MEM/WB
M
u
x
0
1
Add
PC
0
Address
Write
data
M
u
x
1
Registers
Read
data1
Read
data2
Read
register 1
Read
register 2
16 Sign
extend
Write
register
Write
data
Read
data
Data
memory
1
ALU
resultM
u
x
ALU
Zero
ID/EX
La información del 
campo que 
identifica el registro 
de escritura avanza 
con la instrucción
Segmentación Tema 2 /Universidad Autónoma de Madrid 41
Segmentación: Añadir el Control
PC
Instruction
memory
Ins
tru
cti
on
Add
Instruction
[20–16]
Me
mt
oR
eg
ALUOp
Branch
RegDst
ALUSrc
4
16 32Instruction[15–0]
0
0
M
u
x
0
1
Add Addresult
Registers
Write
register
Write
data
Read
data1
Read
data2
Read
register 1
Read
register 2
Sign
extend
M
u
x
1
ALU
result
Zero
Write
data
Read
data M
u
x
1
ALU
control
Shift
left 2Re
gW
rite
MemRead
Control
ALU
Instruction
[15–11]
6
EX
M
WB
M
WB
WBIF/ID
PCSrc
ID/EX
EX/MEM
MEM/WB
M
u
x
0
1
Me
mW
rite
Address
Data
memory
Address
También se deben 
“retrasar” las 
señales de control
Para que la info de 
control avance con 
la instrucción.
Segmentación Tema 2 /Universidad Autónoma de Madrid 42
Segmentación: Añadir el Control
Control
EX
M
WB
M
WB
WB
IF/ID ID/EX EX/MEM MEM/WB
Instruction
Todas las instrucciones tardan los mismos ciclos de reloj.
El secuenciamiento de la instrucción está implícito en la estructura del pipeline.
No hay un control especial para la duración de la instrucción
Toda la información de control se calcula durante la decodificación, y se envía 
hacia delante a través de los registros de segmentación
Los valores de las líneas de control son los mismos que los calculados en el 
control uniciclo.
Segmentación Tema 2 /Universidad Autónoma de Madrid 43
Segmentación: Ejemplo I
Segmentación Tema 2 /Universidad Autónoma de Madrid 44
Segmentación: Ejemplo II
Segmentación Tema 2 /Universidad Autónoma de Madrid 45
Segmentación: Ejemplo III
Segmentación Tema 2 /Universidad Autónoma de Madrid 46
Segmentación: Ejemplo IV
Segmentación Tema 2 /Universidad Autónoma de Madrid 47
Segmentación: Ejemplo V
Segmentación Tema 2 /Universidad Autónoma de Madrid 48
Segmentación: Ejemplo VI
Segmentación Tema 2 /Universidad Autónoma de Madrid 49
Segmentación: Ejemplo VII
Segmentación Tema 2 /Universidad Autónoma de Madrid 50
Aparecen problemas al poder empezar la siguiente instrucción antes de 
que la primera haya terminado.
Dependencias 
problemáticas son 
aquellas que necesitan 
datos que hay que 
buscar “ hacia atrás” en 
el esquema de tiempos.
IM Reg
IM Reg
Ciclo1
IM Reg DM Reg
IM DM Reg
IM DM Reg
10 10 10 10 10 /–20 –20 –20 –20 –20
DM Reg
Reg
Reg
Reg
DM
TIEMPO (CICLOS)
Ciclo2 Ciclo3 Ciclo4 Ciclo5 Ciclo6 Ciclo7 Ciclo8 Ciclo9
Valor de r2 
PROGRAMA
sub r2, r1, r3
and r12, r2, r5
or r13, r 6, r2
add r14, r2, r2
Sw r15, 100(r2)
Conflictos en funcionamiento real.
Segmentación Tema 2 /Universidad Autónoma de Madrid 51
Las causas que pueden reducir el rendimiento en un procesador 
segmentado de instrucciones son tres:
1.1. Riesgos estructuralesRiesgos estructurales::
Se intenta usar el mismo recurso de dos maneras diferentes al mismo tiempo.
El hardware impide una cierta combinación de operaciones.
2.2. Riesgos por dependencia de datosRiesgos por dependencia de datos:
Se intenta usar un dato antes de que esté disponible.
El operando de una instrucción depende del resultado de otra instrucción 
precedente que todavía no se ha obtenido. 
3.3. Riesgos de controlRiesgos de control::
Se intenta tomar una decisión antes de evaluarse la condición. 
La ejecución de una instrucción de salto supone un cierto retraso.
Conflictos en funcionamiento real.
Segmentación Tema 2 /Universidad Autónoma de Madrid 52
Dependencias de Salida (WAW)
Ejecución de instrucciones
LIMITACIONES EN LA EJECUCION DE INSTRUCCIONES
Recursos Limitados Dependencias de Código
Dependencias de Control Dependencias de Datos
Dependencias Verdaderas
Anti-Dependencias
Conflictos de Almacenamiento
(Dependencias Estructurales)
(RAW)
(WAR)
Segmentación Tema 2 /Universidad Autónoma de Madrid 53
Cuando se detecta un riesgo, la solución más simple es parar la unidad de 
segmentación (Stall the Pipeline) hasta que desaparezca el riesgo.
Las instrucciones que preceden a la causante del riesgo pueden continuar.
La instrucción que causa el riesgo y siguientes, no continúan hasta que 
desaparece el riesgo.
¿Todos estos riesgos se pueden solucionar?.....Si
¿Cómo?...................................................Esperando
Se necesita que el control de la unidad de segmentación (Pipeline) sea 
capaz de:
Detectar las causas de riesgo.
Decidir acciones que resuelvan el riesgo (por ejemplo, esperar).
Dependencias: Cómo actuar
Segmentación Tema 2 /Universidad Autónoma de Madrid 54
Dependencias : Cómo actuar
•Cuando se produce un riesgo hay que “parar” el sistema
•En un procesador segmentado
hay que:
* Parar la instrucción que produce el riesgo
* Parar las instrucciones que siguen a la que produce el riesgo
* Continuar ejecutando instrucciones anteriores a la que produce el riesgo
* No se buscan más instrucciones mientras permanece el riesgo
parar
detección 
del riego
continuar
ciclos de
parada
Segmentación Tema 2 /Universidad Autónoma de Madrid 55
Casos que se pueden presentar: Accesos simultáneos a:
Memoria (única para datos e instrucciones).
Unidades funcionales 
Registros internos.
Tiempo (ciclos de reloj)
O
rd
en
 d
e 
in
st
ru
cc
ió
n
Riesgos estructurales.
Mem
Load
Instr 1
Instr 2
Instr 3
Instr 4
A
L
UMem Reg Mem Reg
A
L
UMem Reg Mem Reg
A
L
UMem Reg Mem Reg
A
L
UReg Mem Reg
A
L
UMem Reg Mem Reg
La detección es fácil en este caso! (La mitad izquierda coloreada indica escritura y la mitad derecha lectura)
Conflicto de lectura
en Memoria
Segmentación Tema 2 /Universidad Autónoma de Madrid 56
Soluciones: 
SW: El compilador estima el riesgo e introduce instrucciones NOPs
HW : El procesador lo detecta y para la ejecución de la instrucción.
Arquitectura: Duplicar recursos y separar las memorias de datos e instrucciones. 
Tiempo ( ciclos de reloj)
O
rd
en
 d
e 
in
st
ru
cc
ió
n
Riesgos estructurales.
Segmentación Tema 2 /Universidad Autónoma de Madrid 57
Dependencias que se presentan para 2 instrucciones i y j, con i ejecutandose 
antes que j.
RAW (Read After Write) Cuando la instrucción posterior j intenta leer una fuente 
antes que la instrucción anterior i la haya modificado. 
WAR (Write After Read) Cuando la instrucción j intenta modificar un destino, 
antes que la instrucción i lo haya leído como fuente. 
WAW (Write After Write) Cuando la instrucción j intenta modificar un destino, 
antes que la instrucción i lo haya hecho (Se modifica el orden normal de escritura). 
Ejemplos: RAW WAR WAW
ADD r1, r2, r3 ADD r1, r2, r3 DIV r1, r2, r3 
SUB r4, r1, r3 OR r3,r4, r5 AND r1,r4, r5
AND r6, r5, r7
OR r8, r1, r9
XOR r10, r1, r11
Riesgos por dependencia de datos.
Segmentación Tema 2 /Universidad Autónoma de Madrid 58
I1: R3 = R3 op R5
I2: R4 = R3 + 1 
I3: R3 = R5 + 1
I4: R7 = R3 op R4
Riesgos:
1) RAW (dependencia verdadera)
La salida de I1, R3, es uno de los operandos en I2
I2 tiene una dependencia de datos RAW con I1 por R3.
2) WAW (dependencia de salida)
I1 e I3 intentan escribir en R3
I3 tiene una dependencia de datos WAW con I1 por R3
3) WAR (antidependencia)
La instrucción I3 no puede comenzar hasta que la instrucción I2 haya obtenido
uno de sus operandos (R3)
I3 tiene una dependencia de datos WAR con I2 por R3
WAW
Ri ...
... Ri op Rj
RAW
WAR
Ri ...
Dependencia real
Antidependencia
Dependencia
de salida
Ejemplos de dependencias de datos
Segmentación Tema 2 /Universidad Autónoma de Madrid 59
Código modificado compilado 
sin limitaciones en el número de registros
I1: R23 = R13 op R15
I2: R14 = R23 + 1
I3: R33 = R25 + 1
I4: R17:= R33 op R14
Riesgos:
Sólo quedan los riesgos RAW (dependencia verdadera).
La salida de I1, R23, es uno de los operandos en I2
La salida de I3, R33, es uno de los operandos en I4
Código original
I1: R3 = R3 op R5
I2: R4 = R3 + 1 
I3: R3 = R5 + 1
I4: R7 = R3 op R4
Ejemplos de dependencias de datos
Segmentación Tema 2 /Universidad Autónoma de Madrid 60
i:rk←_
j:rk←_ EscrituraRegistro
Escritura
Registro
iOj
i:_←rk
j:rk←_ EscrituraRegistro
Lectura
Registro
iAj
i:rk←_
j:_←rk LecturaRegistro
Escritura
Registro
iDj
Etapa X
Etapa Y
dist(i,j) ≤ dist(X,Y) ⇒ ??
dist(i,j) > dist(X,Y) ⇒ ??
Riesgo WAW Riesgo WAR Riesgo RAW
dist(i,j) ≤ dist(X,Y) ⇒ Dependencia de datos
dist(i,j) > dist(X,Y) ⇒ Independientes
Tiempo
de
Ejecución
Dependencia de datos: condiciones necesarias
Segmentación Tema 2 /Universidad Autónoma de Madrid 61
Ejemplo (RAW):
Tiempo (ciclos de reloj)
O
rd
en
 d
e 
in
st
ru
cc
io
ne
s
Riesgos por dependencia de datos.
Segmentación Tema 2 /Universidad Autónoma de Madrid 62
Soluciones: 
“Adelantar” (Forward) el resultado de una etapa a las siguientes. 
Definir adecuadamente la secuencia Read/Write ( la instrucción OR funciona 
correctamente si en la etapa WB, Write se realiza en la 1ª mitad del ciclo y Read en la 2ª).
Riesgos por dependencia de datos.
Segmentación Tema 2 /Universidad Autónoma de Madrid 63
Necesidades Hardware para adelantar resultados: 
Multiplexores adicionales en las entradas de datos de la ALU. 
Buses extra entre registros internos y multiplexores.
Comparadores entre los operandos de una instrucción y los operandos destino 
de instrucciones previas.
Riesgos por dependencia de datos.
Segmentación Tema 2 /Universidad Autónoma de Madrid 64
Los Riesgos persisten incluso con adelanto de resultados: 
La instrucción LOAD puede evitar con adelanto de resultados los riesgos en AND y en OR 
pero no de SUB (No puede adelantar resultados a etapas que son de tiempos anteriores)
Tiempo (ciclos de reloj)
O
rd
en
 d
e 
in
st
ru
cc
io
ne
s
Riesgos por dependencia de datos.
Segmentación Tema 2 /Universidad Autónoma de Madrid 65
Solución:
Insertar un ciclo de espera (Stall) en el ciclo 3º, para la instrucción SUB y siguientes
Tiempo (ciclos de reloj)
O
rd
en
 d
e 
in
st
ru
cc
io
ne
s
Riesgos por dependencia de datos.
Segmentación Tema 2 /Universidad Autónoma de Madrid 66
PC Instructionmemory
Registers
M
u
x
M
u
x
M
u
x
Control
ALU
EX
M
WB
M
WB
WB
ID/EX
EX/MEM
MEM/WB
Data
memory
M
u
x
Hazard
detection
unit
Forwarding
unit
0
M
u
x
IF/ID
In
str
uc
tio
n
ID/EX.MemRead
IF
/ID
W
rit
e
PC
W
rit
e
ID/EX.RegisterRt
IF/ID.RegisterRd
IF/ID.RegisterRt
IF/ID.RegisterRt
IF/ID.RegisterRs
Rt
Rs
Rd
Rt EX/MEM.RegisterRd
MEM/WB.RegisterRd
Control para adelantamiento de datos y detección de riesgos
Segmentación Tema 2 /Universidad Autónoma de Madrid 67
Control de dependencias para adelantamiento de datos
Unidad de Adelantamiento de Datos (Forwarding)
Se debe detectar el riesgo y luego “anticipar” el valor a la ALU
Se agrega un bloque combinacional para detectar y multiplexores para adelantar 
los datos oportunamente
Registers
M
u
x
M
u
x
M
u
x
ALU Datamemory
M
u
x
Forwarding
unit
EX/MEM.RegisterRd
MEM/WB.RegisterRd
IF/IDRegisterRs
Rt
Rd
Rs
Rt
IF/IDRegisterRt
IF/IDRegisterRt
IF/IDRegisterRd
ID/EX EX/MEM MEM/WB
AnticiparA
AnticiparB
Segmentación Tema 2 /Universidad Autónoma de Madrid 68
Control de dependencias para adelantamiento de datos
Unidad de Adelantamiento de Datos (Forwarding)
Se debe detectar el riesgo y luego “anticipar” el valor a la ALU
Existen 4 Riesgos Potenciales
1a. EX/MEM.Registro.Rd = ID/EX.Registro.Rs
1b. EX/MEM.Registro.Rd = ID/EX.Registro.Rt
2a. MEM/WB.Registro.Rd = ID/EX.Registro.Rs
2b. MEM/WB.Registro.Rd = ID/EX.Registro.Rt
Por ejemplo con:
Add r1, r2, r3
Sub r5, r1, r6
And r6, r5, r1
Add r4, r1, r3
Regis ters
M
u
x
M
u
x
M
u
x
ALU
Data
memory
M
u
x
Forwarding
unit
EX/MEM.RegisterRd
MEM/WB .RegisterRd
IF/IDRegisterRs
Rt
Rd
Rs
Rt
IF/IDRegisterRt
IF/IDRegisterRt
IF/IDRegisterRd
ID/EX EX/MEM MEM/WB
AnticiparA
AnticiparB
Segmentación Tema 2 /Universidad Autónoma de Madrid 69
Control de dependencias para adelantamiento de datos
Unidad de Adelantamiento de Datos (Forwarding)
Pseudo-código del funcionamiento:
(Análisis de Riesgos en EX)
if (EX/MEM.EscrReg and
EX/MEM.RegistroRd ≠ 0 and
EX/MEM.Registro.Rd = ID/EX.Registro.Rs) 
then AnticiparA = 10
else AnticiparA = 00
if (EX/MEM.EscrReg and
EX/MEM.RegistroRd ≠ 0 and
EX/MEM.Registro.Rd = ID/EX.Registro.Rt) 
Then AnticiparB = 10
else AnticiparB = 00
M
u
x
M
u
x
M
u
x
ALU Datamemory
M
u
x
Forwarding
unit
EX/MEM.RegisterRd
MEM/WB.RegisterRd
Rt
Rd
Rs
Rt
ID/EX EX/MEM MEM/WB
AnticiparA
AnticiparB
Segmentación Tema 2 /Universidad Autónoma de Madrid 70
Control de dependencias para adelantamiento de datos
Unidad de Adelantamiento de Datos (Forwarding)
Pseudo-código del funcionamiento:
M
u
x
M
u
x
M
u
x
ALU Datamemory
M
u
x
Forwarding
unit
EX/MEM.RegisterRd
MEM/WB.RegisterRd
Rt
Rd
Rs
Rt
ID/EX EX/MEM MEM/WB
AnticiparA
AnticiparB
(Análisis de Riesgos en MEM)
if (MEM/WB.EscrReg and
MEM/WB.RegistroRd ≠ 0 and
EX/MEM.Registro.Rd ≠ ID/EX.RegistroRs and
MEM/WB.Registro.Rd = ID/EX.RegistroRs) 
then AnticiparA = 01
else AnticiparA = 00
if (MEM/WB.EscrReg and
MEM/WB.RegistroRd ≠ 0 and
EX/MEM.Registro.Rd ≠ ID/EX.RegistroRt and
MEM/WB.Registro.Rd = ID/EX.Registro.Rt) 
then AnticiparB = 01
else AnticiparB = 00
Segmentación Tema 2 /Universidad Autónoma de Madrid 71
Detección de riesgos
Unidad de Detección de Riesgos (Hazard detection unit)
Necesario cuando el adelantamiento no resuelve los riesgos (caso de load y uso del 
registro destino en la siguiente instrucción)
Pseudocódigo del funcionamiento:
If (ID/EX.LeerMem and
((ID/EX.Registro.Rt = IF/ID.Registro.Rs) or
(ID/EX.Registro.Rt = IF/ID.Registro.Rt))) 
then Bloquear el pipeline
Bloquear el pipeline: 
PCWrite = 0
IF/IDWrite = 0
MuxNOP = 1
Segmentación Tema 2 /Universidad Autónoma de Madrid 72
Dependencia de control
Flujo de ejecución de instrucciones: representa las posibles trayectorias.
BB 1
BB 2
BB 3 BB 4
BB 5
 main:
 addi r2, r0, A 
 addi r3, r0, B 
 addi r4, r0, C BB 1
 addi r5, r0, N 
 add r10,r0, r0 
 bge r10,r5, end 
 loop:
 lw r20, 0(r2) 
 lw r21, 0(r3) BB 2
 bge r20,r21,T1 
 sw r21, 0(r4) BB 3
 b T2 
 T1: 
 sw r20, 0(r4) BB 4
 T2:
 addi r10,r10,1 
 addi r2, r2, 4 
 addi r3, r3, 4 BB 5
 addi r4, r4, 4 
 blt r10,r5, loop
 end: 
Dependencia de Control: El nodo X es dependiente del nodo Y si la 
ejecución de X depende de los cálculos en el nodo Y.
Segmentación Tema 2 /Universidad Autónoma de Madrid 73
Las instrucciones de salto pueden suponer una alteración del orden 
secuencial de ejecución.
No se sabe si el salto es efectivo hasta la etapa de ejecución y no se 
dispone de la dirección destino caso de que sea efectivo hasta el final de la 
cuarta etapa => Perdida de 3 ciclos
Mejora: Adelantar el cálculo de PC+ Inmediato a la 2ª etapa. 
Riesgos de Control (Instrucciones de salto)
Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB
Obtener instrucción.
Acceso a la memoria 
de instrucciones
Decodificar instrucción.
Lectura de operandos, 
carga de registros.
Ejecutar instrucción.
Calcular la condición
Calcular la dirección 
efectiva salto (PC+Inm.)
Acceso a Memoria. 
o bien
Escribir en PC la 
dirección de salto.
Escribir en un 
registro el resultado 
de la operación.
Segmentación Tema 2 /Universidad Autónoma de Madrid 74
Cuando se decide saltar a una instrucción distinta de la siguiente, ya se están ejecutando 
otras instrucciones en el cauce segmentado. => Se necesita incluir hardware para 
vaciar (Flushing) el pipeline
Riesgos de Control ( Instrucciones de Salto)
Para descartar una 
instrucción cambia a 0 
el valor de control mux
⇒ NOP
Para descartar una 
instrucción cambia a 0
el campo de instrucción 
del registro de 
segmentación IF/ID
⇒ NOP
PC Instructionmemory
4
Registers
M
u
x
M
u
x
M
u
x
ALU
EX
M
WB
M
WB
WB
ID/EX
0
EX/MEM
MEM/WB
Data
memory
M
u
x
Hazard
detection
unit
Forwarding
unit
IF.Flush
IF/ID
Sign
extend
Control
M
u
x
=
Shift
left2
M
u
x
Segmentación Tema 2 /Universidad Autónoma de Madrid 75
Se necesita tomar una decisión sobre la siguiente instrucción a ejecutar antes 
que las condiciones de la instrucción de salto sean evaluadas.
¿Cómo realizar la ejecución de los SALTOS CONDICIONALES?
1. Esperar hasta que la dirección y condición del salto estén definidas. 
Conviene conocer la dirección de salto y la condición tan pronto como se a posible.
2. Retardar la ejecución hasta conocer los parámetros del salto. 
El compilador rellena con instrucciones los huecos de retardo.
3. Predecir el sentido del salto. 
Se ejecuta especulativamente una rama, en caso de error se debe “vaciar” el procesador. 
4. Especular anticipando la predicción de salto antes de su decodificación.
Riesgos de Control (Instrucciones de salto)
Segmentación Tema 2 /Universidad Autónoma de Madrid 76
Riesgos de Control: Retardar la ejecución
add r1, r2, r3 
bnz r2, L1
hueco
sub r6,r7,r6
mul r2, r3, r8
.................
L1: and r2, r3, r2
andi r5,r6,inm
2.- Técnicas de compilación: tres estrategias para buscar instrucciones de relleno
...........
bnz r2, L1
add r1, r2, r3 
sub r6,r7,r6
mul r2, r3, r8
.................
L1: and r2, r3, r2
andi r5,r6,inm
add r1, r2, r3 
bnz r2, L1
and r2, r3, r2
sub r6,r7,r6
mul r2, r3, r8
.................
L1: andi r5,r6,inm
............
add r1, r2, r3 
bnz r2, L1
sub r6,r7,r6
.................
mul r2, r3, r8
.................
L1: and r2, r3, r2
andi r5,r6,inm
DEL BLOQUE BASICO. SI SALTO PROBABLE
DEL BLOQUE DESTINO 
SI SALTO NO PROBABLE 
DEL BLOQUE SECUENCIAL
Operación siempre válida. 
Siempre se realiza trabajo 
útil.
Operación siempre correcta 
mientras que r2 no sea fuente 
en el otro bloque antes de ser 
usado como registro destino.
El ejemplo es CORRECTO
Operación válida siempre que 
r6 no se utilice como fuente en 
el bloque destino, antes de ser 
usado como registro destino.
El ejemplo es INCORRECTO
Segmentación Tema 2 /Universidad Autónoma de Madrid 77
Riesgos de Control: Predecir el salto
3- Ejecución especulativa de instrucciones:
Hasta conocer si el salto se realiza (la condición se evalúa en la 3ª ó 4ª etapa)
En caso de error se deben eliminar los resultados especulativos
Predicción estática: siempre predice el mismo sentido del salto.
Predicción efectiva (E), el salto se realiza.
Predicción no efectiva (NE), el salto no se realiza.
Predicción NE si el salto es adelante y E si es hacia atrás. 
Predicción dinámica: cambia la predicción en función de la historia del salto.
Utiliza una pequeña memoria asociada a cada dirección de salto (BHT)
F
PC Dirección Instr. Salto LSB
BHT
E NE
A
A
F
F
PREDICCIÓN DE 1 BIT PREDICCIÓN DE 2 BITS
Ef EdA
F
A
NEd NEf AA
FF
( Branch History Table)
Segmentación Tema 2 /Universidad Autónoma de Madrid 78
4.- Especular anticipando la predicción (antes de decodificar el salto) 
Utiliza una tabla asociativa que incorpora, para cada instrucción de salto, la 
dirección de la instrucción de la predicción anterior.
A la tabla se la conoce como Buffer de destino de saltos o BTB.
Dirección. 
Instrucción
Dirección. 
Destino
Bits de
historia Tabla de Look-up 
Completamente Asociativa
Contador de Programa
FetchFetch DecodDecod..
Cargar Direc. Destino
Dirección
Instrucción
SEGMENTACION de INSTRUCCIONES
Direc. Destino Encontrada
Riesgos de Control. Anticipar la dirección más probable
Segmentación Tema 2 /Universidad Autónoma de Madrid 79
Ejemplos de segmentación en procesadores
Segmentación Tema 2 /Universidad Autónoma de Madrid 80
“CISC” Pipeline de 5-etapas en Intel i486
Escritura en el banco de registros5. Escritura de registros. 
(Register Write-back)
Ejecución de operaciones en ALU y op. de acceso a memoria4. Ejecución (Execute)
Acceso a la memoria de microcódigo
Envía las microinstrucciones a la unidad de ejecución
3. Decodificación de 
Instrucciones- 2
(Instruction Decode-2)
Traduce instrucciones en señales de control o microcódigo.
Inicia la generación de direcciones y el acceso a
memoria. 
2. Decodificación de 
Instrucciones- 1 
(Instruction Decode-1)
Captura de instrucciones desde la cola de precaptura de 32 
bytes. (Una unidad de precaptura se encarga de llenar y vaciar 
esta cola)
1. Captura de Instrucciones 
(Instruction Fetch)
Funciones realizadasEtapas
Segmentación Tema 2 /Universidad Autónoma de Madrid 81
---φ2
Escritura en el banco de registrosφ15. WB
Devuelve el dato de D-cache, comprueba tags & paridadφ2
Acceso a D-cacheφ14. MEM
Termina op en ALU; en load/store, traduce la dir. virtualφ2
Inicio op en ALU; en saltos comprueba la condiciónφ13. ALU
Lectura del banco de reg.; en saltos genera direcc. destinoφ2
Retorno de instr. de I-cache, comprueba tags & paridadφ12. RD
Acceso a I-cache usando la dirección realφ2
Traducción de dirección virtual a real en el TLBφ11. IF
Función realizadaFaseEtapas
Ejemplos de procesadores : MIPS R2000

Continuar navegando