memória - dcc.ufrj.brgabriel/arqcomp/memoria.pdf · introdução • a memória é capaz de...

30
Memória Arquitetura de Arquitetura de Computadores I Computadores I DCC-IM/UFRJ Prof. Gabriel P. Silva

Upload: doantuong

Post on 20-Oct-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

MemóriaArquitetura de Arquitetura de

Computadores IComputadores I

DCC-IM/UFRJ Prof. Gabriel P. Silva

Page 2: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Representação das Informações

• A abreviação utilizada para o “byte” é o B maiúsculo e para o bit é o “b” minúsculo.

• Abaixo estão os multiplicadores normalmente utilizados em computação. Ao contrário do sistema internacional de medidas, que utiliza a base 10, os multiplicadores em informática utilizam como referência a base 2:– K (kilo): representa 1.024 unidades (210) – M (mega): representa 1.048.576 unidades (220) – G (giga): representa 1.073.741.824 unidades (230)– T (tera): representa 240 unidades – P (peta): representa 250 unidades– E (exa): representa 260 unidades

Page 3: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Introdução

• A memória é capaz de armazenar informações binárias que podem representar instruções ou dados.

• Serve também para armazenar resultados intermediários ou finais obtidos pelas operações realizados pelo processador.

• O elemento que armazena a informação na memória é, em essência, um flip-flop.

• Executa somente duas operações: leitura e escrita.• As informações que serão escritas na memória

podem vir do processador ou de dispositivos de entrada de dados. As informações podem ser lidas da memória para o processador ou para algum dispositivo de saída.

Page 4: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Terminologia

• Terminologia:– Célula de Memória: dispositivo ou circuito elétrico

usado para armazenar um bit. – Palavra de Memória: um grupo de células. Nos

computadores atuais, o tamanho das palavras, normalmente está na faixa que varia de 32 a 64 bits.

– Byte: grupo de 8 bits. No sistemas atuais cada byte possui um endereço distinto na memória.

– Capacidade: especifica a quantidade de bits ou bytes que podem ser armazenados em uma memória.

– Endereço: é um número que identifica a posição de um palavra na memória. Cada palavra possui um único endereço. Endereços são sempre expressos como número binários, embora sejam usados os números octais, hexadecimais e decimais por simplificação.

Page 5: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Endereçamento

• A Figura 1 mostra uma memória com 8 palavras. Cada palavra tem um endereço específico composto por 3 bits, variando de

000 a 111. Endereços

000000 Palavra 0

001 Palavra 1

010 Palavra 2

011 Palavra 3

100 Palavra 4

101 Palavra 5

110 Palavra 6

111 Palavra 7

Page 6: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Operações na Memória

• Operação de Leitura (ou Busca): operação em que uma palavra binária armazenada em uma posição de memória é identificada e transferida para outro dispositivo do sistema. Por exemplo, se a Palavra 4 da memória for usada, devemos realizar uma operação de leitura no endereço 100.

• Operação de Escrita: operação na qual uma palavra é colocada em uma determinada posição de memória. Toda vez que uma palavra é escrita em uma posição de memória, esta substitui uma outra palavra que estava anteriormente armazenada nesta posição.

Page 7: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Classificação

• As memórias são componentes utilizados para armazenar dados e instruções em um sistema computacional.

• As memórias podem apresentar propriedades distintas, de acordo com a tecnologia com que são fabricadas.

• São utilizadas em aplicações diferentes, de acordo com a velocidade de leitura e escrita dos dados, capacidade de armazenamento, volatilidade da informação, consumo, etc.

• Isso resulta em diversas formas de classificá-las.

Page 8: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Classificação das Memórias

• A seguir enumeramos as características encontradas nas memórias utilizadas no projeto da memória principal dos computadores modernos:

• Semicondutora (transistores)• Dinâmica (atualização periódica)• Acesso aleatório (endereço)• Volátil (perde informação sem energia)• Síncronas (uso de relógio para acesso)

• Iremos concentrar nosso estudo sobre este tipo de memória

Page 9: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Acesso à Memória

• Embora existam diversos tipos de implementações de memórias, há um conjunto de operações comuns a todos os sistemas de memória. A memória necessita de um conjunto de linhas de entrada e saída para realizar as seguintes funções: 1. Selecionar o endereço para uma operação de

leitura ou escrita.2. Selecionar a operação. 3. Fornecer os dados de entrada, se for uma

escrita.4. Habilitar a memória para responder a um

endereço na entrada.

Page 10: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Memória

Page 11: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Memória

• Entrada/Saída de Dados: contém as palavras que serão lidas ou escritas na memória. Como o tamanho da palavra é 4 bits, são necessárias 4 linhas de dados.

• Entradas de Endereço: como a memória possui capacidade de armazenar 32 palavras, são necessários 32 (25) endereços diferentes, começando de 00000 até 11111 (0 a 31 em decimal). Portanto a memória deve ter 5 bits de entradas de endereço.

• Entrada R/W : Determina qual das operações de memória deverá ser efetuada. Se R/W for igual a 1, indica que uma operação de leitura será executada. Se for 0, será realizada uma operação de escrita.  

• Habilitação da Memória ME: responsável pela habilitação e desabilitação do chip de memória. Cada tipo de memória pode ter outras linhas específicas de controle.

Page 12: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Endereçamento

• Quantos bits de endereço são necessários para endereçar um pente de memória de 512 Megabytes?

512 MB ===> 2512 MB ===> 299 . 2 . 220 20 bytesbytes

2299 . 2 . 220 20 bytes ===> 2bytes ===> 22929 bytesbytes

222929 bytes ===> 29 bits de endereçobytes ===> 29 bits de endereço

Page 13: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Endereçamento

• Quantos bits de endereço são necessários para endereçar um pente de memória de 2 Gigabytes?

2 GB ===> 22 GB ===> 211 . 2 . 230 30 bytesbytes

2211 . 2 . 230 30 bytes ===> 2bytes ===> 23131 bytesbytes

223131 bytes ===> 31 bits de endereçobytes ===> 31 bits de endereço

Page 14: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Matriz de Memória

Entrada - Saída(M bits)

AK

A K+1

AL-1

2 L-K

Decodificadores de Coluna

Linha Bit (BL)

Linha Word (WL)

A0

A K-1

Célula de Memória

Amplificador Sensor / Drivers

M.2 K

Problema: FATOR DE FORMA ou ALTURA >> LARGURA

Amplifica a amplitude do sinal da célula

Seleciona a palavra apropriada

Dec

odif

icad

or d

e L

inh

a

Page 15: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Matriz de Memória

Page 16: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Acesso à Memória

Page 17: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Acesso à Memória

Page 18: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Memórias Síncronas

• As memórias síncronas são um tipo de DRAM, onde a leitura ou escrita dos dados é sincronizada por um relógio de sistema ou de barramento.

• As memórias síncronas são projetadas para permitir a leitura ou escrita, depois da latência inicial, em modo rajada (burst mode) em uma taxa de um ciclo de relógio por acesso.

• Elas se aproveitam do fato de que os modernos processadores possuem memórias caches internas e, a cada cache falha, linhas inteiras de bytes com endereços sequenciais são lidas ou escritas da memória de uma única vez.

• Com isso, o seu desempenho é significativamente superior ao das memórias assíncronas.

Page 19: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Memórias Síncronas

Page 20: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Tipos de Memória Dinâmica Síncrona

• Os módulos de memória síncrona são apresentados em pentes DIMM e possuem largura de dados de 64 bits ou 72 bits (ECC).• SDRAM – Single Data Rate DRAMs, transferem 8 bytes por ciclo de relógio.• DDR – Double-data-rate Synchronous DRAM, transferem 16 bytes, a cada ciclo de relógio.• DDR2 – Similar às DDRs, mas o barramento externo trabalha no dobro da frequência da matriz de células de memória. Atinge maiores frequências, mas a latência para o primeiro acesso é maior.• DDR3 – Similar às DDRs, mas o barramento externo trabalha com frequência 3 vezes maior que a matriz de células de memória. Atinge frequências ainda maiores, mas a latência inicial também é maior.

Page 21: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

SDR x DDR x DDR2

Page 22: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Tipos de Memória Dinâmica Síncrona

● SDRAM

● DDR

Page 23: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

MEMÓRIARELÓGIO

REALTAXA MÁXIMA DE

TRANSFERENCIA TEÓRICAMÓDULO DE

MEMÓRIA

DDR200 100 MHz 1,600 MB/s PC-1600

DDR266 133 MHz 2,133 MB/s PC-2100

DDR333 166 MHz 2,666 MB/s PC-2700

DDR400 200 MHz 3,200 MB/s PC-3200

DDR2-400 200 MHz 3,200 MB/s PC2-3200

DDR2-533 266 MHz 4,266 MB/s PC2-4200

DDR2-667 333 MHz 5,333 MB/s PC2-5300

DDR2-800 400 MHz 6,400 MB/s PC2-6400

DDR2-1066 533 MHz 8,533 MB/s PC2-8500

DDR3-800 400 MHz 6,400 MB/s PC3-6400

DDR3-1066 533 MHz 8,500 MB/s PC3-8500

DDR3-1333 666 MHz 10,666 MB/s PC3-10600

DDR3-1600 800 MHz 12,800 MB/s PC3-12800

DDR x DDR2 x DDR3

Page 24: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

DDR x DDR2 x DDR3

Page 25: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Tecnologia Latência Típica Outras Latências Disponíveis

DDR 3 2, 2.5

DDR2 5 3, 4

DDR3 7 6, 8, 9

TecnologiaTensão Típica

DDR 2.5 V

DDR2 1.8 V

DDR3 1.5 V

DDR x DDR2 x DDR3

Page 26: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Latência Inicial

● Embora possuam a mesma taxa máxima de transferência teórica, memórias de gerações diferentes, mas de mesma frequência possuem desempenho diferentes.

● Por exemplo, a memória DDR-400 e DDR2-400, tem a mesma frequência externa, mas a memória DDR-400 tem latência inicial menor, o que resulta em melhor desempenho.

● Por exemplo, a memória DDR2-800 e DDR3-800 tem a mesma frequência, mas a memória DDR2-800 tem melhor desempenho.

Page 27: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Código de Correção de Erro

● As modernas memórias dinâmicas, por apresentarem uma estrutura muito simples de célula de memória e de dimensões reduzidíssimas, são muito sujeitas a erros, ou seja, mudanças aleatórias no valor armazenado.

● Para contornar este problemas, muitos módulos de memória possuem bits adicionais para detecção e correção de erro.

● Nos esquemas mais simples é adicionado um bit de paridade adicional para cada byte armazenado.

● Assim, se algum dos bits armazenados mudar de valor, isso será facilmente detectado durante a leitura do valor, e um sinal de erro é ativado.

Page 28: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Código de Correção de Erro

● Contudo, se dois ou mais bits armazenados mudarem de valor, o bit de paridade pode não ser suficiente para detetar esta situação.

● Neste sentido, é comum utilizar-se um código de correção de erro baseado no algoritmo de Hamming com 7 bits para cada 64 bits armazenados.

● Este código é capaz de detetar e corrigir erros simples (1 bit) e detetar erros duplos (2 bits) se um bit adicional de paridade for inserido para toda a palavra.

● De uma forma prática, o número m de bits de correção necessários deve ser:

m=⌈ log2(n)⌉+2

Page 29: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Henessy & Patterson

Melhorando o Desempenho

Page 30: Memória - dcc.ufrj.brgabriel/arqcomp/Memoria.pdf · Introdução • A memória é capaz de armazenar informações binárias que podem representar instruções ou dados. • Serve

Melhorando o Desempenho

● Existem várias técnicas que são utilizadas para melhorar o desempenho no acesso à memória principal:

– Aumento da largura de memória, ou seja, o número de bits que são lidos simultaneamente em um único acesso;

– Divisão da memória em bancos independentes com acesso intercalado entre eles;

– Uso de barramento com transações divididas (“split-transactions'), onde o endereço é fornecido em uma primeira fase e em uma outra fase os dados relativos a esse endereço são lidos.