Você está na página 1de 44

Instituto Metrópole Digital Universidade Federal do Rio Grande do Norte

IMD0121 - Arquitetura de Computadores


Departamento de Informática e Matemática Aplicada
*Aula produzida pela aluna de mestrado Lavínia Miranda
durante estagio docência supervisionado pela Profa Monica Pereira
DIM0127 - Arquitetura de Computadores

Hierarquia de Memória
Lavinia Miranda
laviniameds@ufrn.edu.br
Conteúdo
1. Objetivos
2. Introdução
3. Hierarquia de Memória
4. Introdução à Memória Cache
5. Referências

2
Objetivos
➔ Explicar o que é e como funciona o sistema de memória dos computadores;

➔ Mostrar a organização da hierarquia de memórias;

➔ Introduzir conceitos de memória cache;

3
Introdução
➔ A memória é um local para armazenar informações

➔ As operações possíveis da memória são a leitura e a
escrita das informações

➔ As informações são representadas por um conjunto
de bits que possuem um endereço definido

➔ Existem diferentes tipos de memórias que se
interligam formando um sistema de memórias

4
Introdução
➔ A necessidade é de memórias grandes e velozes

➔ O que existe são tecnologias de memórias diferentes, onde quanto maior
(capacidade) e mais veloz, maior o custo ($) da memória

➔ As memórias são distribuídas dentro da arquitetura do computador

➔ A ideia principal é abstrair o sistema de memórias combinadas para que o
programador enxergue apenas uma memória grande e rápida

5
Introdução

Performance do Processador vs. Memória

6
Hierarquia de Memória

7
Hierarquia de Memória

8
Hierarquia de Memória

9
Hierarquia de Memória

10
Hierarquia de Memória
Custo e
Velocidade

Tempo de acesso e
Capacidade

11
Hierarquia de Memória
Velocidade: Muito alta
Custo: Muito alto
Capacidade: Muito baixa
Volátil: Sim

Velocidade: Muito alta


Custo: Muito alto
Capacidade: Baixa
Volátil: Sim

Velocidade: Alta
Custo: Médio
Capacidade: Alta
Volátil: Sim

Velocidade: Baixa
Custo: Muito baixo
Capacidade: Muito alta
Volátil: Não

12
Hierarquia de Memória

13
Exemplo

L1 L1 L1 L1

L2 L2 L2 L2

14
Exemplo

Memória Principal DRAM


Memória Externa SSD

Memória Externa HD

15
Hierarquia de Memória

16
Hierarquia de Memória
Processamento dos dados

CACHE CACHE CACHE MEMÓRIA


CPU L1 L2 L3
ARMAZENAMENTO
PRINCIPAL
REGISTRADORES

17
Hierarquia de Memória
Processamento dos dados
O processador não acessa
diretamente!

CACHE CACHE CACHE MEMÓRIA


CPU L1 L2 L3
ARMAZENAMENTO
PRINCIPAL
REGISTRADORES

18
Hierarquia de Memória
ARMAZENAMENTO (HD/SSD)

MEMÓRIA PRINCIPAL (RAM)

MEMÓRIA CACHE

CACHE CACHE CACHE


L1 L2 L3

Armazenamento dos dados

19
Funcionamento da Hierarquia
1. Acessa a cache buscando a informação
CPU (instrução ou dado).
2. Encontrou? (Cache hit!)
CACHE CACHE CACHE 2.1. Retorna a informação para execução
L1 L2 L3
3. Não encontrou? (Cache miss!)
3.1. Busca na próxima estrutura
MEMÓRIA
PRINCIPAL
3.2. Encontrou? Move o dado para a
estrutura acima e retorna ao passo 1.
E/S 4. Não encontrou na Cache nem na
Memória Principal?
ARMAZENAMENTO
4.1. Obtém pela E/S, Move para a Memória
Principal e retorna ao passo 1.

20
Como e por que isso funciona
na prática?

21
Princípio da Localidade
“Os programas acessam uma parte pequena do seu endereçamento em
qualquer instante de tempo”
➔ Localidade temporal: se um item foi referenciado, ele tenderá a ser
referenciado novamente em breve.

➔ Localidade espacial: se um item é referenciado, os itens cujos endereços
estão próximos (seus vizinhos) tenderão a ser referenciados em breve.

22
Princípio da Localidade
“Os programas acessam uma parte pequena do seu endereçamento em
qualquer instante de tempo”
➔ Localidade temporal: se um item foi referenciado, ele tenderá a ser
referenciado novamente em breve.
◆ Exemplo: laços (loops).

➔ Localidade espacial: se um item é referenciado, os itens cujos endereços
estão próximos (seus vizinhos) tenderão a ser referenciados em breve.

23
Princípio da Localidade
“Os programas acessam uma parte pequena do seu endereçamento em
qualquer instante de tempo”
➔ Localidade temporal: se um item foi referenciado, ele tenderá a ser
referenciado novamente em breve.
◆ Exemplo: laços (loops).

➔ Localidade espacial: se um item é referenciado, os itens cujos endereços
estão próximos (seus vizinhos) tenderão a ser referenciados em breve.
◆ Exemplo: matrizes, vetores e outras estruturas.

24
Exemplo 1
int soma_linha(int a[M][N]) {
int i, j, sum = 0;
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
sum += a[i][j];
return sum;
}

25
Exemplo 1
int soma_linha(int a[M][N]) { 34 4 9 ..
int i, j, sum = 0;
for (i = 0; i < M; i++) 43 96 62 ..
for (j = 0; j < N; j++)
sum += a[i][j]; 461 65 723 ..
return sum;
} .. .. .. ..

26
Exemplo 1
int soma_linha(int a[M][N]) { 34 4 9 ..
int i, j, sum = 0;
for (i = 0; i < M; i++) 43 96 62 ..
for (j = 0; j < N; j++)
sum += a[i][j]; 461 65 723 ..
return sum;
} .. .. .. ..

27
Exemplo 1
int soma_linha(int a[M][N]) { 34 4 9 ..
int i, j, sum = 0;
for (i = 0; i < M; i++) 43 96 62 ..
for (j = 0; j < N; j++)
sum += a[i][j]; 461 65 723 ..
return sum;
} .. .. .. ..

28
Exemplo 1
int soma_linha(int a[M][N]) { 34 4 9 ..
int i, j, sum = 0;
for (i = 0; i < M; i++) 43 96 62 ..
for (j = 0; j < N; j++)
sum += a[i][j]; 461 65 723 ..
return sum;
} .. .. .. ..

29
Exemplo 1
int soma_linha(int a[M][N]) { 34 4 9 ..
int i, j, sum = 0;
for (i = 0; i < M; i++) 43 96 62 ..
for (j = 0; j < N; j++)
sum += a[i][j]; 461 65 723 ..
return sum;
} .. .. .. ..

30
Exemplo 1
..

34
int soma_linha(int a[M][N]) {
4
int i, j, sum = 0;
for (i = 0; i < M; i++) 9
for (j = 0; j < N; j++)
sum += a[i][j]; ..
return sum;
..
}
43

..

31
Exemplo 2
int soma_coluna(int a[M][N]) {
int i, j, sum = 0;
for (j = 0; j < N; j++)
for (i = 0; i < M; i++)
sum += a[i][j];
return sum;
}

32
Exemplo 2
..

34
int soma_coluna(int a[M][N]) {
4
int i, j, sum = 0;
for (j = 0; j < N; j++) 9
for (i = 0; i < M; i++)
sum += a[i][j]; ..
return sum;
..
}
43

..

33
Exemplo 2
..

34
int soma_coluna(int a[M][N]) {
4
int i, j, sum = 0;
for (j = 0; j < N; j++) 9
for (i = 0; i < M; i++)
sum += a[i][j]; ..
return sum;
..
}
43

..

34
Exemplo 2
..

34
int soma_coluna(int a[M][N]) {
4
int i, j, sum = 0;
for (j = 0; j < N; j++) 9
for (i = 0; i < M; i++)
sum += a[i][j]; ..
return sum;
..
}
43

..

35
Memória Cache
➔ É uma memória rápida e de pouca capacidade

➔ Foi criada para reduzir o tempo de acesso à memória principal,
aproximando os dados/instruções do processador

➔ Funciona de acordo com os conceitos de Localidade Temporal e Espacial

➔ Armazena os itens (dados ou instruções) que são referenciados com
frequência em determinado momento

36
Cache HIT e MISS
➔ Quando a informação a ser buscada é encontrada na cache,
ocorre um Cache Hit
◆ A informação é retornada ao processador para ser executada.

➔ Quando a informação a ser buscada não é encontrada cache,
ocorre um Cache Miss
◆ A informação é buscada na próxima estrutura da hierarquia
(Cache, Memória Principal ou Externa)

37
Cache HIT e MISS
➔ Taxa de hit (hit rate):
◆ % de hits ocorridos em relação ao total de acessos à memória.
➔ Taxa de miss (miss rate):
◆ % de miss ocorridos em relação ao total de acessos à memória.
➔ Tempo de hit (hit time):
◆ tempo para determinar se o acesso é um hit + tempo para
acessar e entregar o dado para a CPU.
➔ Penalidade de miss (miss penalty):
◆ tempo para determinar se o acesso é um miss + tempo para
substituir o dado + tempo para entregar o dado para a CPU

38
Terminologia
➔ Palavra: Unidade do sistema. Um dado que é solicitado pelo processador.

➔ Bloco: Um conjunto de palavras dentro da memória.

➔ Linha: Um conjunto de palavras dentro da cache. Todo sistema usa o
mesmo tamanho para blocos e linhas.

➔ Tag: Identificador único de um bloco da memória. Utilizado para rotular a
linha da cache, associando a linha com o bloco que ocupa esse espaço.

39
Memória Cache

40
Memória Cache

41
Memória 0

Cache 2

3 6
4
10
5
3
MEMÓRIA
6
PRINCIPAL 2
7
7
8

9 CACHE

10

..

42
Próxima aula
➔ Detalhes de projeto da Memória Cache

43
Referências
➔ PATTERSON, D.A. & HENNESSY, J. L. Organização e Projeto de Computadores - A
Interface Hardware/Software. 5a ed.
➔ STALLINGS, William. Arquitetura e organização de computadores. 8. ed. São
Paulo: Pearson, 2010. 624 p. ISBN: 9788576055648

44

Você também pode gostar

  • Classe UML
    Classe UML
    Documento1 página
    Classe UML
    Wendy Miller
    Ainda não há avaliações
  • Exemplos de Provas
    Exemplos de Provas
    Documento3 páginas
    Exemplos de Provas
    Wendy Miller
    Ainda não há avaliações
  • Lista Inducao
    Lista Inducao
    Documento2 páginas
    Lista Inducao
    Wendy Miller
    Ainda não há avaliações
  • Chart
    Chart
    Documento1 página
    Chart
    Wendy Miller
    Ainda não há avaliações
  • Marcelo Sum Modif
    Marcelo Sum Modif
    Documento3 páginas
    Marcelo Sum Modif
    Wendy Miller
    Ainda não há avaliações
  • Grupo 6
    Grupo 6
    Documento19 páginas
    Grupo 6
    Wendy Miller
    Ainda não há avaliações