Cap5 Memory

download Cap5 Memory

of 43

Transcript of Cap5 Memory

Capitulo 5: Memoria

Fundamentos de Arquitecturas de Computadores

Arquitecturas de Memoria

1999 M. Murdocca and V. Heuring

5-2

Contenido5.1 Jerarquas 5.2 RAM. Memorias de Acceso Aleatorio 5.3 Organizacin en Circuito Integrado 5.4 Mdulos comerciales 5.5 ROM. Memorias slo-lectura 5.6 Memorias Cache 5.7 Memoria Virtual 5.8 Tpicos avanzados 5.9 Caso de estudio: Intel Pentium Memory System

1999 M. Murdocca and V. Heuring

5-3

JerarquaRpida y cara

Registros Cache

Incremento en rendimiento y en costo

Memoria principal Memoria secundaria (disco) Almacenamiento masivo (cinta) Lenta y barata1999 M. Murdocca and V. Heuring

5-4

Comportamiento de una celda RAM de 1 bitRead

D Q

CLK

Select

Data In/Out 1999 M. Murdocca and V. Heuring

5-5

Seales de conexin en RAMWR

A0-Am-1

Memory Chip

D0-Dw-1

CS

1999 M. Murdocca and V. Heuring

5-6

D3 D1 D2 D0

Memoria de 4 palabras 4 bits x palabra

WR

WR Word 0 CS

2-to-4 decoder 00 A0 A1 01 10 11

WR Word 1 CS

WR Word 2 CS

Chip Select (CS) WR CS

Word 3

Q3 Q1 Q2 Q0 1999 M. Murdocca and V. Heuring

5-7

Representacin simplificada de 4x4 RAM

D3 D2 D1 D0 WR A0 44 RAM CS A1 Q3 Q2 Q1 Q0

1999 M. Murdocca and V. Heuring

5-8

Organizacin de una RAM 64x1 en 2 dimensiones

Read

D Q

A0 A1 A2

Row Decoder

Read/Write Row Control

CLK

Select Data Column In/Out Select

Celda 1-BitA3 A4 A5

Column Decoder (MUX/DEMUX) Data

Two bits wide: One bit for data and one bit for select.

1999 M. Murdocca and V. Heuring

5-9

Organizacin de 4x8 RAM

D7 D6 D5 D4 CS WR A0 A1

D3 D2 D1 D0

44 RAM

44 RAM

Q7 Q6 Q5 Q4 1999 M. Murdocca and V. Heuring

Q3 Q2 Q1 Q0

5-10

Organizacin de 8x4 RAMD3 D2 D1 D0

WR A0 A1 1-to-2 decoder A2 0 1

44 RAM CS

CS

44 RAM CS

1999 M. Murdocca and V. Heuring

Q3 Q2 Q1 Q0

5-11

Mdulo SLIM (Single-In-Line Memory)TI DatabookVcc CAS DQ1 A0 A1 DQ2 A2 1 2 3 4 5 6 7

PIN NOMENCLATURE A0-A9 CAS DQ1-DQ8 NC RAS Vcc Vss W Address Inputs Column-Address Strobe Data In/Data Out No Connection Row-Address Strobe 5-V Supply Ground Write Enable

A3 8 Vss 9 DQ3 10 A4 A5 DQ4 A6 A7 DQ5 A8 A9 NC DQ6 W 11 12 13 14 15 16 17 18 19 20 21

Vss 22 DQ7 23 NC DQ8 NC RAS NC NC Vcc 24 25 26 27 28 29 30

1999 M. Murdocca and V. Heuring

5-12

Como funciona una ROM ?2-to-4 decoder 00 A0 A1 01 10 11 Enable Posicion 00 01 10 11 Palabraalmacenada

0101 1011 1110 0000

Q3

Q2

Q1

Q0

1999 M. Murdocca and V. Heuring

5-13

ALU como Lookup Table (LUT)A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17

Operando A

Operando B Funcin

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

A17 A16 Funcin

Salida

0 0 1 1

0 1 0 1

Suma Resta Multiplic Divisin

1999 M. Murdocca and V. Heuring

5-14

Que es una memoria cache?CPU 400 MHz Cache

CPU 400 MHz

Main Memory 10 MHz

Main Memory 10 MHz

Bus 66 MHz Sin cache

Bus 66 MHz Con cache

- Principio de LOCALIDAD: Una posicin de memoria puede ser usada de nuevo (localidad temporal); una posicin vecina de la posicin de memoria referenciada puede ser usada inmediatamente despus (localidad espacial). 1999 M. Murdocca and V. Heuring

5-15

Esquema de cache con organizacin asociativa

Valid Dirty Tag

27

Slot 0Slot 1 Slot 2 . . . Slot 2141 Cache

Block 0 Block 1 . . . Block 128 Block 129. . .

32 words per block

Block 2271 Main Memory 1999 M. Murdocca and V. Heuring

5-16

Ejemplo de Memoria Asociativa- Un acceso a la posicin (A035F014)16 es mapeado a la cache como una palabra en memoria de 2e32. La memoria es dividida en 2e27 bloques de 2e5 (32 palabras x bloque). La cache contiene 2e14 segmentos. Tag Word

27 bits

5 bits

- Si la palabra direccionada est en la cache, se encontrar (14)16 la palabra de un segmento (tag) (501AF80)16. Este TAG, est formado por los 27 bits ms significativos de la direccin. Si la palabra no est en cache, entonces el bloque corresponde a un campo del tag (501AF80)16 es "ledo" de memoria dentro del segmento correspondiente en la cache, la referencia a memoria es entonces leda de la cache.

Tag

Word

101000000011010111110000000 10100 1999 M. Murdocca and V. Heuring

5-17

Polticas de Reemplazo- Cuando no hay segmentos disponibles en donde colocar un bloque es necesario implantar un mtodo. Este mtodo gobierna como el segmento es liberado para albergar el bloque nuevo. - Los mecanismos de reemplazo son usados para esquemas asociativos de memoria y para memoria virtual. Estos son los siguientes: - ltimo recientemente empleado. "Least recently used" (LRU) - Primero que entra/primero que sale. "First-in/first-out" (FIFO) - El menos frecuente empleado. "Least frequently used" (LFU) - Aleatorio. "Random" - ptimo. (Usado por anlisis en tiempo siguiendo una estrategia para una secuencia particular de referencias a memoria).

1999 M. Murdocca and V. Heuring

5-18

Esquema de Cache de Mapeo DirectoValid Dirty Tag13

Slot 0 Slot 1 Slot 2 . . . Slot 2141 Cache Memory

Block 0 Block 1 . . . Block 214 Block 214+1 . . . Block 227 Main Memory

32 words per block

1999 M. Murdocca and V. Heuring

5-19

Ejemplo de mapeo directo- Para una cache de mapeo directo, cada bloque de memoria puede ser mapeado a un nico segmento, donde cada segmento puede contener ms de 1 bloque. Considerando (A035F014)16, es mapeado a la cache como una palabra de 2e32. La memoria es dividida en 2e27 bloques de 2e5 (32 words x bloque) y la cache contiene 2e14 segmentos.

Tag 13 bits

Slot 14 bits

Word 5 bits

- Si la referencia a memoria est en la cache, se encontrar en (14)16 del segmento (2F80)16 el cual tendr un TAG de (1406)16

Tag

Slot

Word

1010000000110 10111110000000 10100 1999 M. Murdocca and V. Heuring

5-20

Cache tipo Asociativa por conjuntosValid Dirty Tag14 Set 0

Slot 0 Slot 1

Block 0 Block 1 . . . Block 213 Block 213+1 . . . Block 2271 Main Memory

32 words per block

Set 1

Slot 2 . . .

Set 2131

Slot 2141 Cache

1999 M. Murdocca and V. Heuring

5-21

Ejemplo Asociativo por Conjuntos Considere un acceso a la posicin con localidad (A035F014)16 es mapeada a la cache como una palabra de 22. La memoria se divide en 227 bloques de 25 = 32 palabras por bloque, donde hay 2 bloques conjunto, la cache consiste de 214 segmentos:

Tag 14 bits

Set 13 bits

Word 5 bits

Los 14 bits de la izquierda forman el campo tag, seguidos de 13 bits para el campo del conjunto, seguido de 5 bits para el campo de la palabra:

Tag

Set

Word

10100000001101 0111110000000 10100 1999 M. Murdocca and V. Heuring

5-22

Escritura/lectura en CacheCache Read Cache Write

Dato en cache ?

Dato no est en cache

Dato en cache ?

Dato no est en cache

Perfecto ! a CPU.

Load Through: Envo de la palabra a la vez que que a la cache -oEscribe en cache entonces enva a CPU

Write Through: Escribe datos en ambos cache y memoria principal, -oWrite Back: Escribe datos a cache solamente. Espero a la memoria princ. hasta que la cache se haya reemplazado (Flushed))

Write Allocate: Trae la lnea a cache y reemplaza -oWrite No-Allocate Actualiza unicamente memoria principal

1999 M. Murdocca and V. Heuring

5-23

Hit Ratios yTiempo Efectivo de Acceso- Hit ratio y tiempo efectivo de acceso para cache de un nivel y multinivel:

1999 M. Murdocca and V. Heuring

5-24

Ejemplo de Cache de Mapeo Directo- Calcular: hit ratio y tiempo de acceso efectivo de un programa ejectuado de las posiciones de memoria 48 a 95, y hacer un bucle 10 veces desde la 15 a la 31.Slot 0 Slot 1 Slot 2 Slot 3 Block 0 Block 1 Block 2 Block 3 Block 4 Block 5 . . . Main Memory 0 - 15 16 - 31 32 - 47 48 - 63 64 - 79 80 - 95

- La cache de mapeo directo es de 16 palabras Cache x 4 segmentos, un hit time de 80 ns, y un miss (prdida) de 2500 ns. Se emplea load-through como poltica de reemplazo. La cache est inicialmente vaca. 1999 M. Murdocca and V. Heuring

5-25

Tabla de Eventos para un ProgramaEvento Posicin 1 miss 15 hits 1 miss 15 hits 1 miss 15 hits 1 miss 1 miss 15 hits 9 hits 144 hits 48 49-63 64 65-79 80 81-95 15 16 17-31 15 16-31 Tiempo 2500ns 80ns15=1200ns 2500ns 80ns15=1200ns 2500ns 80ns15=1200ns 2500ns 2500ns 80ns15=1200ns 80ns9=720ns 80ns144=12,240ns Total misses = 5 Comentario Memory block 3 to cache slot 3 Memory block 4 to cache slot 0 Memory block 5 to cache slot 1 Memory block 0 to cache slot 0 Memory block 1 to cache slot 1 Last nine iterations of loop Last nine iterations of loop

Total hits = 213 1999 M. Murdocca and V. Heuring

5-26

Calculo del Hit Ratio and Tiempo efectivo de acceso para un Programa ejemplo

1999 M. Murdocca and V. Heuring

5-27

Algoritmo Neat Little LRU Se muestra una secuencia para el algoritmo Neat Little LRU y una cache con 4 segmentos. Los bloques de memoria principal se accedene en la secuencia: 0, 2, 3, 1, 5, 4.Cache slot 0 1 2 3 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0

Cache slot

0 1 2 3 0 0 1 1 1 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0

0 0 0 1 0 2 1

1 1 0 1

2 0 0 0

3 1 0 1

3 0 0 0 0 0, 20 0 0 1 0 1 1 0 1 0 2 0 0 0 0 3 1 1 1 0

Initial0 0 0 1 1 1 1 0 1 1 2 0 0 0 1 3 0 0 0 0

Block accesses: 01 0 0 0 0 2 0 1 0 1 3 0 1 0 0

0 1 2 3

0 1 2 3

0 0 1 1 1

0 1 2 3 0 0 1 1 1 1 0 0 1 1 2 0 0 0 0 3 0 0 1 0

0 1 2 3

0, 2, 3 1999 M. Murdocca and V. Heuring

0, 2, 3, 1

0, 2, 3, 1, 5

0, 2, 3, 1, 5, 4

5-28

Overlays Particin de un grafo para un programa principal y 3 subrutinas:Compiled program Physical Memory

MainMain Routine

A

Partition #0Subroutine A

Smaller than program

C

B

Partition #1Subroutine B

Partition graphSubroutine C 1999 M. Murdocca and V. Heuring

5-29

Memoria Virtual La memoria virtual es almacenada en una imagen del disco duro. La memoria mantiene un pequeo nmero de pginas virtuales en bloque fsicos de memoria. Mapeo de memoria virtual en memoria fsica:Virtual addresses Virtual memory 0 - 1023 1024 - 2047 2048 - 3071 3072 - 4095 4096 - 5119 5120 - 6143 6144 - 7167 7168 - 8191 Page 0 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 1999 M. Murdocca and V. Heuring

Physical Physical memory addresses Page frame 0 0 - 1023

Page frame 1 1024 - 2047 Page frame 2 2048 - 3071 Page frame 3 3072 - 4095

Principles of Computer Architecture by M. Murdocca and V. Heuring

5-30

Tabla de Paginacin La paginacin mapea una tabla entre la memoria virtual y la memoria fsica. Present bit Page frame Page # Disk address0 1 01001011100 00 1 0 11101110010 xx 2 1 10110010111 01 3 0 00001001111 xx 4 1 01011100101 11 5 0 10100111001 xx 6 0 00110101100 xx 7 1 01010001011 10 1999 M. Murdocca and V. Heuring

Bit de presencia: 0: La pgina no est en la memoria fsica. 1: La pgina est en la memoria.

5-31

Usando una Tabla de Pginacin Una direccin virtual se convierte en una direccin fsica de memoria:Page OffsetVirtual address

100 1101000101

0 1 2 3 4

01001011100 11101110010 10110010111 00001001111 01011100101 5 0 10100111001 6 0 00110101100 7 1 01010001011

1 0 1 0 1

00 xx 01 xx 11 xx xx 10

11 1101000101 Physical address

Page table 1999 M. Murdocca and V. Heuring

5-32

Paginacin(continuacin)

0 1 2 3 4

0 01001011100 xx 1 11101110010 00 0 10110010111 xx 0 00001001111 xx After fault on 0 01011100101 xx page #1 0 10100111001 xx 0 00110101100 xx 0 01010001011 xx

0 1 2 3 4 5 6 7

0 01001011100 xx 1 11101110010 00 1 10110010111 01 0 00001001111 xx After fault on 0 01011100101 xx page #2 0 10100111001 xx 0 00110101100 xx 0 01010001011 xx

5 La tabla cambia 6 cuando se ejecuta 7

un programa.0 1 0 01001011100 xx 1 11101110010 00 1 10110010111 01 1 00001001111 10 After fault on 0 01011100101 xx page #3 0 10100111001 xx 0 00110101100 xx 0 01010001011 xx

Inicialmente est la tabla vaca. En el proceso de configuracin, 4 pags. estn en memoria fsica. 1999 M. Murdocca and V. Heuring

2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 0 1 1 1

01001011100 11101110010 10110010111 00001001111 01011100101 1 10100111001 0 00110101100 0 01010001011

xx xx 01 10 Final 11 00 xx xx

5-33

Segmentacin Un segmento de memoria permite a dos usuarios compartir la misma palabra de memoria en el cdigo, con diferente espacio de datos:Address space for code segment of word processor Data space for user #0 Data space for user #1

Segment #0 Execute only Segment #1 Read/write by user #0 Segment #2 Read/write by user #1

Used Used Free Used Free Unused

1999 M. Murdocca and V. Heuring

5-34

Fragmentacin (a) Free area of memory after initialization; (b) after fragmentation; (c) after coalescing.Operating System Operating System Program A Free Area Program B Free Area Free Area Program C Free Area Free Area Dead Zone I/O Space (a) Dead Zone I/O Space (b) Operating System Program A Free Area Program B Free Area Program C Free Area Dead Zone I/O Space (c)

1999 M. Murdocca and V. Heuring

5-35

Translation Lookaside Buffer (TLB)- Ejemplo de TLB con 8 entradas para un sistema de 32 paginas virtuales y 16 paginas fsicas.Virtual page number 01001 10111 --------01110 ----00110 ----Physical page number 1100 1001 ------0000 ---0111 ----

Valid 1 1 0 0 1 0 1 0 1999 M. Murdocca and V. Heuring

5-36

Decodificador 3-Variables- Cuidado !! el tamao no es expandible debido a las cargas "fan-in" x linea. El aumento de una lnea duplica el tamao del decodificador.a0 d0 d1 d2 a2 d3 d4 d5 d6 d7 1999 M. Murdocca and V. Heuring

a1

5-37

Decodificiador - 3 Variables- Un rbol de decodificacin es necesario para gobernar grandes bloques. Se ajusta el "fan-out", de acuerdo a la profundidad de niveles.Fan-out buffers

a0

d0 d1

a0

d0 d1

a1

d2 d3 d4 d5 d6 d7 (a)

a1

d2 d3 d4 d5 d6 d7 (b)

a2

a2

1999 M. Murdocca and V. Heuring

5-38

Arbol de decodificacin. Un nico nivel a la vez- Arbol de decoficacin para una RAM de 16 palabras:1011

0___

1___

Level 000__ 01__ 10__ 11__

Level 1000_ 001_ 010_ 011_ 100_ 101_ 110_ 111_

Level 2

Level 3

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1999 M. Murdocca and V. Heuring

5-39

Content Addressable Memory (CAM)- Relacin entre RAM y CAMField1 000 011 149 091 000 749 000 57512 bits

Address 0000A000 0000A004 0000A008 0000A00C 0000A010 0000A014 0000A018 0000A01C32 bits

Value 0F0F0000 186734F1 0F000000 FE681022 3152467C C3450917 00392B11 1003456132 bits

Field2 A 0 7 4 E C 0 14 bits

Field3 9E F0 01 00 FE 6E 50 848 bits

Random access memory 1999 M. Murdocca and V. Heuring

Content addressable memory

5-40

Arquitectura CAMCentral Control Comparand

Information and Commands

Cell 1

T1

Cell 2

T2

Cell 4095 1999 M. Murdocca and V. Heuring

T4095

Data Gathering Device

Source: (Foster, C. C., Content Addressable Parallel Processors, Van Nostrand Reinhold Company, 1976.)

Mask

Cell 0

T0

5-41

Arboles de direccionamiento para CAMData: four bits per channel 4 4 4 4 4 4 4 Control: one bit per channel 4

4

4

4

4

4

4

4

4

4

1999 M. Murdocca and V. Heuring

5-42

Memoria RAM doble LecturaD0 D7 20 A Address A0 A19 Data In 220 Word 8 bits A RAM WR CS 8 Port A

20 A Address A0 A19 20 20 B Address B0 B19 WR Data In 220 Word 8 bits B RAM WR CS 8 Port B

CS 1999 M. Murdocca and V. Heuring

5-43

Intel Pentium Memory SystemPentium Processor ChipCPU

256

Level 1 Instruction Cache 8 KB TLB Level 1 Data Cache 8 KBTLB

n

Level 2 Cache Up to 512KB

Main Memory Up to 8GB

n

1999 M. Murdocca and V. Heuring