Cache 1ra Parte

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Introducción

CPU

Arquitectura de Computadoras Cache


Primer cuatrimestre de 2014
Memoria Cache Memoria Principal

Memoria Secundaria

Introducción Introducción

CPU CPU

Palabras Palabras

Cache Cache

Bloques Bloques

Memoria Principal Memoria Principal

Páginas Páginas

Memoria Secundaria Memoria Secundaria

3 4

Introducción Introducción

CPU Chip

Processor Cache Cache


CPU Cache Memoria Principal Memoria Principal
core L1 L2

5 6
Introducción Introducción

CPU Chip CPU Chip


I Cache
Cache L1 Cache
Processor Cache Cache Memoria Principal Processor Cache Memoria Principal
core L1 L2 L3 core D Cache L2 L3
L1

7 8

Introducción

CPU Chip
I Cache
L1 Cache
Processor
core L2
D Cache
L1 Memoria Cache
Cache
L3
Memoria Principal
Conceptos básicos
I Cache
L1 Cache
Processor
core L2
D Cache
L1

9 10

Conceptos básicos Conceptos básicos

Procesador Procesador
Localidad
Localidadtemporal
temporal ● Hit
Localidad
Localidadespacial
espacial ● Miss
● Bloque
Tiempo
Tiempodedemiss:
miss:
Cache --Latencia
Latencia Cache ● Hit Rate
--Ancho
Anchodedebanda
banda
● Miss Rate
● Hit Time
Memoria Misses Memoria
Misses→→HW
HW
Principal Principal ● Miss Penalty

11 12
Conceptos básicos Conceptos básicos

Procesador Procesador
● Hit rate: fracción de accesos
● Hit: cuando se encuentra a memoria que se encuentran
la información en el nivel en el nivel superior
más alto N ° hits
Hit Rate = N ° acc a Mem
● Miss: cuando la
Cache información no se Cache
● Miss rate: fracción de
encuentra en el nivel más
accesos a memoria no
alto
encontrados en el nivel
Memoria
● Bloque: unidad de Memoria superior
Principal información transferida Principal
N ° misses
entre niveles Miss Rate = N ° acc a Mem
13 14
Miss Rate = (1-Hit rate)

Conceptos básicos

Procesador
● Hit time: tiempo para
acceder al nivel superior,
incluyendo el tiempo para Memoria Cache
determinar si es un miss o
un hit Organización de Cache
Cache
● Miss penalty: tiempo de
acceso al nivel inferior +
tiempo de transferencia
Memoria del bloque
Principal

15 16

Contexto del problema Cuatro cuestiones a resolver

1)Contexto del problema Mppal-Cache 1) Ubicación del bloque:


Memoria
address Principal • ¿Dónde colocar el bloque en el nivel superior?
(n bits)
Cache Bloque 00......00 2) Identificación del bloque:
00......01
(2m) .
2p líneas .
• ¿Cómo encontrar un bloque en el nivel superior si es que
xx...xo..o éste está en dicho nivel?
.
.
.
3) Reemplazo de bloques:
. 2n
.
• ¿Qué bloque debo reemplazar ante un miss?
.
Address (n bits) . 4) Estrategia de escritura:
offset .
n-m m .
.
• ¿Qué sucede ante una escritura?
11......11 17 18
N° de bloque
Cuatro cuestiones a resolver Cuatro cuestiones a resolver

1) Ubicación del bloque 2) Identificación del bloque


Memoria Cache
address Principal Address (n bits)
(n bits) offset
Cache 00......00 ?
00......01 n-m m ?
p . Bloque
2 líneas . (2m) N° de bloque ?
.
¿? . ¿? ? 2p líneas
. ?
.
. 2n ?
. ?
Bloque
.
Address (n bits) . (2m)
offset .
n-m m .
.
11......11 19 20
N° de bloque

Cuatro cuestiones a resolver Cuatro cuestiones a resolver

3) Reemplazo de bloques 4) Estrategia de escritura


Cache Memoria
Principal Procesador

Bloque
2p líneas (2m)

2n Cache

Address (n bits)
offset
n-m m Memoria
Principal
21 22
N° de bloque

Cuatro cuestiones a resolver Cuatro cuestiones a resolver

1) Ubicación del bloque 1) Ubicación del bloque:


1.1) Mapeo Directo 1.1) Mapeo Directo address Memoria
(n bits) Principal
Cache N° bloq | offset
0 00...00|0...0
Bloque 0
1.2) Full asociativa 1
.
Bloque
00...01|0...0 Bloque 1
2 . (2m pal)
.
1.3) Set asociativa 2p líneas 3 00.1100|0...0
Bloque 12
o bloques 4 . 2n
00.1101|0...0 Bloque 13
5 . pal
.
6 .
7 .
.
11...10|0...0 Bloque 2n-m-2
23 Mapeo: . 24
(Block addr) mod (N°de blocks en cache) 11...11|0...0 Bloque 2n-m-1
n-m m
Cuatro cuestiones a resolver Cuatro cuestiones a resolver

1) Ubicación del bloque: 1) Ubicación del bloque:


1.2) Full asociativa address Memoria 1.3) Set asociativa address Memoria
(n bits) Principal (n bits) Principal
Cache N° bloq | offset Cache N° bloq | offset
0 00...00|0...0
Bloque 0 0 Set 0
00...00|0...0
Bloque 0
. .
1 00...01|0...0 Bloque 1 Bloque 1 00...01|0...0 Bloque 1 Bloque
2 . (2m pal) 2 . (2m pal)
. Set 1 .
2p líneas 3 00.1100|0...0
Bloque 12
2p líneas 3 00.1100|0...0
Bloque 12
o bloques 4 . 2n o bloques 4 . 2n
00.1101|0...0 Bloque 13 Set 2 00.1101|0...0 Bloque 13
5 . pal 5 . pal
. .
6 . 6 Set 3 .
7 . 7 .
. .
11...10|0...0 Bloque 2n-m-2 11...10|0...0 Bloque 2n-m-2
. 25 Set destino: . 26
11...11|0...0 Bloque 2n-m-1 (Block addr) mod (N°de sets en cache) 11...11|0...0 Bloque 2n-m-1
n-m m n-m m

Cuatro cuestiones a resolver Cuatro cuestiones a resolver

2) Identificación del bloque: ejemplo 3) Reemplazo de bloques


Cache Memoria
MEMORIA Principal
PRINCIPAL
Bloque
Block nº 2p líneas (2m)
21

26

31
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

22
23
24
25

27
28
29
30

Line nº 01234567 01234567 01234567


2n
DATOS

CACHE
Address (n bits)
offset
TAG

12
1

n-m m
Set Set Set Set 27 28
0 1 2 3 N° de bloque
Mapeo Directo 2-way Full asociativo

Cuatro cuestiones a resolver Cuatro cuestiones a resolver

3) ¿Qué bloque será reemplazado ante un miss? 4) Estrategia de escritura


➢ Si el esquema es mapeo directo → única opción ➢ Primero veamos que pasa con las lecturas:
➢ ¿Cómo hacemos si el esquema es set-asociativo? ➢ Lecturas dominan los accesos
➢ Tres alternativas: ➢ El caso más común debe ser optimizado
➢ Random ➢ En este caso, el caso más común es el caso más fácil
➢ LRU ➢ Lectura del dato // lectura y comparación de Tag (y
➢ FIFO válido)
➢ Escrituras:
➢ No se pueden leer en // dato y tag
➢ Tardan más que las lecturas
29 30
Cuatro cuestiones a resolver Cuatro cuestiones a resolver

4) Estrategia de escritura 4) Estrategia de escritura


➢ Ante una escritura ¿Qué hacemos con la actualización ➢ ¿Qué pasa ante un miss en una escritura?
de esa información en Memoria Principal? ➢ Dos políticas:
➢ Dos políticas: ➢ Write allocate: traer el bloque al nivel superior y luego
➢ Write through: la actualización se hace en cache y en proceder a la escritura
MP en cada escritura ➢ No write allocate: realizar la escritura en el nivel inferior

➢ Consistencia, menor miss penalty, más simple sin traer el bloque al nivel superior
➢ Write Back: la actualización se hace en cache en cada ➢ WA ↔ WB
escritura y en MP sólo en el reemplazo del bloque ➢ NWA ↔ WT
➢ Dirty bit

➢ Escrituras al ritmo de cache, menor ancho de banda

31 32

Ejemplo: Cache VAX11/780 Ejemplo: Cache VAX11/780


Block
Block Address (29) offset Address
● Organización de caché: ● Offset: tag index offset
n CPU
– 8KB para datos – Si tamaño de bloque = 2 (20) (9) (3)
– Bloques de 8 bytes Data Data
Offset = n bits In Out
– 32 bits de address 1
(log2(tam bloque) = log2(8) = 3)
– 2-way set asociativa 2 2
– Algoritmo de remplazo ● Index: 5
Random index
– Política de escritura:
– ¿Cuántos sets? → 2 3
=?
write-through (con buffer de index Tam de cache(datos) MUX
– 2 = 3
1 palabra) + write NO Tam de bloque∗Asociat =?
allocate index 8192 213 9
4
2 = = =2
8∗2 23∗2 1 2 2
¿Cómo están conformados los ● Tag: 8B
campos Tag, Index y Offset? – Tag = Add – Offset – index 33 34
¿Qué pasa si hay un miss?
– Tag = 32 – 3 – 9 = 20 A memoria

Ejemplo: Cache VAX11/780 Referencias


Block
Block Address (29) offset Address
tag index offset Hennessy, J., and Patterson, D. Computer Architecture,
CPU
(20) (9) (3) second ed. Morgan Kaufmann, 1996. (Capítulo 5)
Data Data
1
In Out Hennessy, J., and Patterson, D. Computer Architecture,
fourth ed. Morgan Kaufmann, 2006. (Apéndice C)
2 2
5
3
=?
MUX
3
=?
4 1 word
2 2 Buffer
1

¿Qué pasa si la operación 35 36


es una escritura? A memoria

También podría gustarte