Вы находитесь на странице: 1из 28

Organizao e Arquitetura de Computadores

Hierarquia de Memria: Introduo


Alexandre Amory Edson Moreno

Nas Aulas Anteriores


Computao Organizao interna de CPU
Parte operativa: Lgica combinacional Parte de controle: lgica sequencial e mquinas de estados

Estudo de caso da Arquitetura Clepatra

Comunicao
CPU Dispositivos de I/O Protocolo de comunicao: sncrono e assncrono Modos de operao: polling, interrupo, DMA

Na Aula de Hoje
Armazenamento Introduo a memrias Introduo hierarquia de memria

Introduo
Velocidade de processamento de sistemas
Computao
Comunicao Armazenamento (Memrias ...)

Cenrio real de uma memria


Capacidade finita

Atraso no acesso

Memria
Principais parmetros
Tempo de Acesso Tempo que a memria gasta para colocar a informao requerida no barramento depois que o endereo foi colocado no barramento de endereo. Taxa de transferncia Taxa na qual os dados podem ser trocados entre fonte e destino Deve considerar o tempo de acesso e a quantidade instantnea de bits trocados entre fonte e destino Supondo tempo de acesso de 20ns e 16bits trocados por acesso, defina a taxa...

Memria
Principais parmetros
Capacidade Quantidade de informao que pode ser armazenada na memria, sempre dada em bytes. Kilo (K) 210, Mega (M) 220, Giga (G) 230,Tera (T) 240,Peta (P) 250 Volatilidade Permanncia da informao na memria caso haja corte de energia Voltil: perde informao quando no alimentadas (RAM) No-voltil: no perde informao quando no alimentadas (ROM) Temporariedade Diz respeito ao tempo de permanncia de um dado na memria Transitria Permanente

Memrias RAM
DRAM (Dynamic RAM)
Essa memria precisa ser realimentada vrias vezes por segundo Clulas de memria baseada em microcapacitores Recarga ocorre tipicamente 67000 vezes por segundo Grande capacidade comparada SRAM

SRAM (Static RAM)


No requerer realimentao. Clulas de memria baseada em flip flops do tipo D

Custo elevado comparado DRAM

Acesso a memria RAM


Operao Seleo Dados Clula de memria

Seleo: habilita a clula para operao Operao: determina o tipo de operao que ser realizada
Escrita leitura

Dados: estado em que a clula se encontra pode ser amostrado ou

alterado
Estados possveis de uma clula 0 ou 1.

Amostragem representa uma leitura


Alterao significa uma operao de escrita

Seleo de clula de memria


Seleo A0 Clula 0 Clula 1 endereo 00

A1

Decodificador

Clula 2 Clula 3

01 10 11

O decodificador de endereo converte os sinais A0 e A1 em sinal de

seleo da clula a ser operada. A combinao destes sinais determina um endereamento da clula

Organizao de uma memria RAM


Um chip de 16Mbit pode ser organizado como
Cenrio 1 1M Endereos Requer 20 pinos para endereamento Clulas de 16 bits Requer 16 pinos de dados
220-1 1M palavras 2 1 0

16 bits

Cenrio 2 Usa 4 bancos de 512K palavras de 8 bits Tambm requer 20 pinos de endereamento E 16 pinos de dados 512 K palavras Vantagens e desvantagens???

16 bits

8 bits

Hierarquia de memria
Hierarquia de memria consiste em diferentes nveis de

memria, associados a diferentes velocidades de acesso e tamanhos.


Processador
maior
nvel 1 nvel 2 velocidade de acesso Distncia do processador

menor

...
nvel n tamanho da memria

menor

maior

Hierarquia de memria

Hierarquia de memria
Requisitos ideais de uma memria so contraditrios
Quanto maior a memria mais lenta ser sua velocidade de acesso Quanto menor o tempo de acesso, maior o custo

Soluo
Hierarquia de memria Cria iluso para o processador de que a memria grande e rpida o

suficiente para no ser o gargalo do sistema Acesso aos nveis de memria transparente ao processador

Hierarquia de memria
Os nveis da hierarquia so subconjuntos uns dos outros.

Todos os dados encontrados em um nvel tambm so encontrados no nvel abaixo dele e assim sucessivamente.
barramento de memria cache memria barramento de e/s

CPU registradores

dispositivos de entrada e sada

< 1 KB 0,25-0,5 ns CMOS compilador

< 16 MB 0,5-5 ns CMOS SRAM hardware

< 16 GB 50-70 ns CMOS DRAM sistema operacional

> 100 GB 5-20 ms disco magntico sistema operacional e usurio

Preceitos de Hierarquia de Memria


Hierarquia de memria s funciona se a grande maioria dos

dados/instrues estiverem disponveis nos nveis de memria mais altos (cache, memria principal) e pouqussimos acessos sejam necessrios memria secundria (memria principal, disco) Felizmente a maioria dos programas apresenta caractersticas de localidade
Alguns programas apresentam mais outros programas

apresentam menos localidade Um programador experiente sabe explorar a localidade para aumentar o desempenho dos programas

Princpio de localidade
Caractersticas comuns na execuo de um software
Localidade Temporal Localidade espacial

Princpio de localidade
Localidade Temporal Se um item referenciado, ele tende a ser referenciado novamente dentro de um espao de tempo curto. Exemplo: laos de execuo Objetivo: manter dados/instrues acessados recentement mais prximos do processador

laos de programa Freqncia de acesso

espao de endereamento de um programa


* Weber. Arquitetura de Computadores Pessoais

Princpio de localidade
Localidade Espacial
Se um item referenciado, itens cujos endereos sejam

prximos dele tendem a ser logo referenciados. Exemplo: Execuo sequencial Objetivo: mover blocos de palavras contiguas para nveis mais altos de hierarquia

Princpio de localidade
Razes para a existncia de localidade
Programas so escritos de forma seqencial. As prximas

instrues esto geralmente prximas da instruo atual Programas apresentam laos. Estes so geralmente curtos e so executados muitas vezes Dados so organizados seqencialmente
vetor, lista, tabela

Variveis de controle do programa so em pequeno nmero e

acessadas freqentemente
ndice de um lao: for(i=0;i<100000;i++)

Importante para Prova !!!! Se os programas no tivessem essa

caractersticas todo o princpio de hierarquia de memria seria intil

* Weber. Arquitetura de Computadores Pessoais

Relao entre os diversos nveis de memria


Bloco: unidade mnima que pode estar presente entre dois nveis
Hit (acerto): se o dado acessado aparece em algum bloco do nvel superior Miss (falha): se o dado acessado NO aparece em algum bloco do nvel superior

Hierarquia de memria

Hit ratio (taxa de acerto): razo entre o nmero de


dados encontrados sobre o total de acessos realizados

Miss ratio (taxa de erro): razo entre o nmero de dados


NO encontrados sobre o total de acessos realizados (Miss ratio = 1 Hit ratio)

Hit time (tempo de acerto): Tempo de acesso ao nvel


superior, e que inclui o tempo para saber se ocorrer um hit ou um miss.

Miss penalty (penalidade de falha): Tempo necessrio


para colocar um bloco no nvel acima e envi-lo ao processador quando da ocorrncia de uma falha

Hierarquia de memria
Se o contedo buscado pelo processador encontrado na

memria de nvel mais alto (hit), o processamento mais rpido Se o contedo NO for encontrado no nvel mais alto (miss), busca-se nos nveis inferiores, aumentando o tempo de acesso. Se o hit rate alto, o tempo de acesso prximo ao da memria de mais alto nvel (mais rpida) e com a capacidade de armazenamento da memria de mais baixo nvel (maior tamanho)

Hierarquia de memria
Exerccio
Calcule o tempo mdio efetivo de acesso a uma memria com

Hit-ratio = 80%, Hit-time = 2 s e Miss-penalty = 10 s Sabendo-se que o tempo mdio dado pelo:
Tempo de acerto + Tempo adicional causado pelas penalidade oriundas da ocorrncia de falhas

Hierarquia de memria
Exerccio
Calcule o tempo mdio efetivo de acesso a uma memria com

Hit-ratio = 80%, Hit-time = 2 s e Miss-penalty = 10 s Sabendo-se que o tempo mdio dado pelo:
Tempo de acerto + Tempo adicional causado pelas penalidade oriundas da ocorrncia de falhas

Tempo mdio efetivo

= Hit-time + (1- Hit-rate)* Miss-penalty = 2 + (1 0.8) * 10 = 2 + 0.2 * 10 =2+2 = 4 s

O que Acontece qnd Ocorre um Miss ?


Poltica de movimentao dos blocos de memria
Quando? Geralmente sob demanda Onde coloca o novo bloco ? Qual o tamanho do novo bloco ?

Estas e outras perguntas responderemos nas prximas aulas

#include <stdio.h>

Exemplo

double soma_array(double a[N][N]){ double s=0;

#include <stdlib.h>

#define N 1000
double soma_array(double a[N][N]); int main ( int argc , char * argv [] ) { double a[N][N]; int i, j; // preenche vetores

int i, j;
for (i = 0; i < N; i = i++){ for (j = 0; j < N; j++){ s += a[i][j]; } } return s; }

for (i = 0 ; i < N ; i ++) { for (j = 0 ; j < N ; j ++) {


a[i][j] = 0.01;

}
} printf("soma = %10.3f\n", soma_array(a)); return 0; }

1 verso: ij

#include <stdio.h>

Exemplo

double soma_array(double a[N][N]){ double s=0;

#include <stdlib.h>

#define N 1000
double soma_array(double a[N][N]); int main ( int argc , char * argv [] ) { double a[N][N]; int i, j; // preenche vetores

int i, j;
for (i = 0; i < N; i = i++){ for (j = 0; j < N; j++){ s += a[i][j]; } } return s; }

for (j = 0 ; j < N ; j ++) { for (i = 0 ; i < N ; i ++) {


a[i][j] = 0.01;

A ordem dos idx foram alteradas. Quais sero as conseqncias ???

}
} printf("soma = %10.3f\n", soma_array(a)); return 0; }

2 verso: ji

Resumo
Existem vrios tipos de memrias
+ rpidas porm com pouca capacidade de armazenamento e +

caras. Ex.: memria SRAM Com grande capacidade de armazenamento e mais baratas, porm muuuito lentas: Ex.: disco magntico
Hierarquia de memria busca combinar os benefcios destes

tipos de memria para criar um sistema mais custo-efetivo


Objetivo de dar a impresso de memria infinita e de rpido acesso

Hierarquia de memria explora a caracterstica de localidade

para se aproximar deste objetivo

Exerccio...
(POSCOMP 2007) Um processador tem a seguinte hierarquia de memria: uma cache com latncia de acesso de 1ns e uma memria principal com latncia de acesso de 100ns. O acesso memria principal somente realizado aps o valor no ser encontrado na cache. A MAIOR taxa de cache miss aceitvel para que o tempo mdio de acesso memria seja menor ou igual 2ns

a) 10% b) 5% c) 50% d) 1% e) 2%

Вам также может понравиться