Upload
doantuong
View
228
Download
0
Embed Size (px)
Citation preview
MemóriaArquitetura de Arquitetura de
Computadores IComputadores I
DCC-IM/UFRJ Prof. Gabriel P. Silva
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
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.
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.
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
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.
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.
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
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.
Memória
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.
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
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
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
Matriz de Memória
Acesso à Memória
Acesso à Memória
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.
Memórias Síncronas
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.
SDR x DDR x DDR2
Tipos de Memória Dinâmica Síncrona
● SDRAM
● DDR
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
DDR x DDR2 x DDR3
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
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.
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.
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
Henessy & Patterson
Melhorando o Desempenho
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.