SSC0112
Organização de
Computadores Digitais I
23ª Aula – Hierarquia de memória
Profa. Sarita Mazzini Bruschi
Memória
• Memória
– Todo componente capaz de armazenar bits de informação
• Características conflitantes
– Grande capacidade – Rápida acesso – Custo baixo• Solução:
– Hierarquia de Memória 2Hierarquia de Memória
Organização de uma DRAM
• Memória é empacotada em pastilhas, cada uma com um grupo
de posições de memória
• Cada pastilha oferece um conjunto de células
• Cada célula armazena um bit de informação
Organização de uma DRAM
• Número de bits de endereçamento na pastilha
– Determina quantas posições podem ser acessadas
• Número de bits de dados na pastilha
– número de bits que podem ser lidos/escritos simultaneamente
• Pode-se ter um arranjo físico igual ao arranjo lógico (como o processador vê) – P palavras de B bits
• No outro extremo, pode-se ter n palavras com 1 bit por pastilha • Exemplo: DRAM de 16 Mbits
– 1M palavras de 16 bits
• 20 bits de endereço
• 16 bits de dados – serão lidos ou gravados 16 bits por pastilha em cada operação
– 16M palavras de 1 bit
• 24 bits de endereço
Organização de uma DRAM
• Outra organização para memória de 16Mbit:
– Matriz de 2048 x 2048 x 4 bits
– reduz o número de pinos de endereço
• multiplexa endereço de linhas e colunas • 11 pinos para o endereço (211=2048)
• cada pino adicionado dobra linhas e também colunas
– capacidade é multiplicada por 4
• Exemplo:
– 4 bits para dados – 4 bits podem ser lidos/escritos simultaneamente
– 22 bits para endereços (divididos em 11 bits para endereçar linha e 11 bits para endereçar coluna) – 4M posições
– 4M posições de memória com 4 bits em cada posição
– Memória de 16Mbits
Organização de uma DRAM de 16Mbits
(4M x 4)
• Observação
– Somente 11 linhas são utilizadas enquanto seriam necessárias 22 linhas para endereçar toda a matriz
• Economia do número de pinos
• Com uma lógica externa da pastilha as 22 linhas são multiplexadas nas 11 linhas, passando primeiramente a linha e depois a coluna
• Sinais RAS (row address select) e CAS (column adress select)
• Circuito de regeneração (refresh)
– DRAM – memória dinâmica – utilização de capacitores – necessidade de regeneração
– Desabilita a pastilha de memória DRAM enquanto as células de dados são regeneradas
– Contador percorre todas as linhas da memória
– Cada bit da linha é amplificado e reescrito na célula de memória
Organização de uma DRAM
Organização de Memória
Cas – Column Address Select
Ras – Row Address Select OE – Output Enable WE – Write Enable Vcc, Vss - alimentação Di – bits de dados Ai – bits de endereço 14
Organização de Memória
Vcc, Vss, Vpp - alimentação Di – bits de dados
Ai – bits de endereço CE – Chip Enable
• 256 K palavras:
• palavras de 8 bits • 8 módulos com:
• 512 x 512 x 1
Associação de Pastilhas de Memória (RAMs)
• Pastilhas de memória comerciais possuem capacidades
pré-definidas
– Endereçamento
– Número de bits de dados
• Às vezes é necessário uma adaptação para suprir as
necessidades de projeto
Exemplo 1
Exemplo 1: Construir uma memória de 16 palavras com 8 bits cada com pastilhas RAM de 16 palavras com 4 bits cada.
Projeto: 16 palavras de 8 bits cada
Disponível: 16 palavras de 4 bits cada
16 = 24 palavras 4 linhas para endereços
8 bits de dados 8 linhas para dados 8 bits de dados 2 x (4 bits de dados)
nº de pastilhas necessárias
Exemplo 1 (cont.)
• Arranjo final:
RAM 0 RAM 1 D7 D6 D4 D5 A3 A0 A1 A2 R/W CS RAM 0 RAM 1 D7 D6 D4 D5 A3 A0 A1 A2 R/W CS D7 D6 D4 D5 D7 D6 D4 D7 D6 D4 D5 A3 A0 A1 A2 R/W CS A3 A0 A1 A2 R/W CS A0 A1 A2 R/W CS Barramento de endereços Barramento deExemplo 1 (cont.)
• 4 bits mais significativos RAM 0
• 4 bits menos significativos RAM 1
• Outra maneira de desenhar:
A0-3 D0-7 A0-3 A0-3 D0-3 D4-7 RAM 1 RAM 0 CS R/W Barramento de endereços Barramento de dados 20
Exemplo 2
Memória com 32 palavras de 4 bits
Chips: 16 palavras de 4 bits
Solução:
32 x 4 2 x (16 x 4)
São necessários 2 chips
Exemplo 2 (cont.)
A4 A3 A2 A1 A0 R/W A0 A1 A2 A3 A 0 A1 A2 A3 RW RAM 0 R/W RAM 1 D2 D3 D1 D0 A4 A3 A2 A1 A0 R/W A4 A3 A2 A1 A0 R/W A0 A1 A2 A3 A0 A1 A2 A3 A 0 A1 A2 A3 A0 A1 A2 A3 RW RAM 0 R/W RAM 1 D2 D3 D1 D0 D2 D3 D1 D0 CS CS Barramento de endereços Barramento de dados 22Exemplo 2 (cont.)
• Observações:
– Faixa de endereços do sistema:
• de 00000 a 11111
– Bit mais significativo do endereço é usado para selecionar a memória (sinal de Chip Select)
de 00000 a 01111 RAM 0 de 10000 a 11111 RAM 1
Organização de Memória
• As ideias mostradas nos exemplos anteriores utilizando-se
RAMs podem facilmente ser estendidas para utilização com
outros tipos de memórias.
• Exemplo 3: combinar PROMs de 256 x 8 para obter uma PROM
de 1024 x 8.
1024 x 8 = 4 x (256 x 8) 4 PROMs de 256 x 8 1024 = 210 10 linhas de endereço
256 = 28 8 linhas de endereço
10 – 8 = 2 utilizadas para Chip Select
Exemplo 3 (cont)
A9
A8
A7....A0
A7....A0 A7....A0 A7....A0 A7....A0
‘1’ Demux
CS CS CS CS
PROM 0 PROM 1 PROM 2 PROM 3
Barramento de endereços
Exemplo 3 (cont)
A8 A9 CS0 CS1 CS2 CS3 PROM 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 2 3 endereços: PROM 0 000...0 – 0011...1 1 010...0 – 0111...1 2 100...0 – 1011...1 3 110...0 – 1111...1 26Encapsulamento de Memória
• Até inicio da década de 90 – Memória em pastilhas
– Soldadas na placa mãe
– Sockets disponíveis para memória adicional
– Memórias empacotadas em DIPs (Dual Inline Packages):
• Pequeno retângulo com colunas de pinos ao longo de duas bordas • Feitos de cerâmica ou plástico
Encapsulamento de Memória
• A partir da década de 90:
– Um grupo de pastilhas é soldado em uma placa de circuito impresso formando módulos de memória
– Unidade de memória: pastilhas de memória + circuito de controle – Novas formas de empacotamento
Encapsulamento de Memória
• Formatos para os módulos:
– SIMM – Single Inline Memory Module – DIMM – Dual Inline Memory Module
• SODIMM – Small Outline DIMM
SIMM (Single Inline Memory Module)
• Single sided (chips em um lado da pastilha) ou double sided
(chips nos dois lados da pastilha)
• Quantidade de pinos:
– 30 (primeira versão – 8 bits de dados por ciclo de clock) – single sided – 72 (32 bits de dados por ciclo de clock) – single ou double sided
SIMM (Single Inline Memory Module)
• Capacidade:
– Single: 1 a 16 MB – Double: 16 a 64 MB – 30 pinos: 1 a 16 MB – 72 pinos: 4 a 64 MBDIMM (Dual Inline Memory Module)
• Diferença SIMM e DIMM
– SIMM: 30 ou 72 pinos de cada lado do circuito mas eles estão ligados – DIMM: 168, 184 ou 240 pinos (84, 92 ou 120 de cada lado) sem
conexão uns com os outros
Encapsulamento de Memória – SIMM e DIMM
64 bits
Encapsulamento de Memória - SODIMM
• Small Outline Dual Inline Memory Module • 72 pinos
– transfere 32 bits por operação – endereça 8, 16 e 32 MBytes
• 144 pinos
– transfere 64 bits ou 72 bits (64 + ECC) – endereça de 16 a 256 MBytes
• 200 pinos
– transfere 64 bits ou 72 bits (64 + ECC) – endereça de 64 MBytes a 512 Mbytes
• 204 pinos e 260 pinos
– Para DDR3 (204 pinos) e DDR4 (260 pinos)
• Tamanho físico reduzido • Utilizado em Notebooks
Encapsulamento de Memória - SODIMM
• 72 pinos
• 144 pinos
RIMM - Rambus Inline Memory Module
• Marca registrada da memória Rambus
• Semelhante ao DIMM, mas com 184 pinos
• Transfere 16 bits, ao invés dos 64 bits do DIMM
• Transfere mais rápido e gera mais calor, por isso precisa de um
dissipador de calor para proteger a memória do
superaquecimento
• Utilizado no Pentium 4
Tipos de DRAM
• FPM DRAM: Fast Page Mode DRAM
– foi o primeiro tipo de DRAM
– espera localizar um bit de dados (linha e coluna)
– faz acesso ao bit e apenas depois realiza próximo acesso – taxa máxima de transferência ~176 MBps
• EDO DRAM: Extended Data-Out DRAM
– não espera acesso do 1o bit para buscar próximo – ~5% mais rápida que FPM
SDRAM – DRAM Síncrona
• Acesso sincronizado com um clock externo • Endereço apresentado à RAM
• SDRAM encontra o dado
– CPU aguarda a SDRAM encontrar o 1º dado
– CPU sabe quando o dado será inserido no barramento
• Transação é síncrona
• CPU não espera: pode realizar outra atividade
• Modo “Rajada” permite
– disparar o envio de uma sequência (bloco) de dados
• SDRAM é ~5% mais rápida que EDO RAM • Taxa máxima de transferência ~528 MBps
DDR-SDRAM
• Double Data Rate SDRAM
– é como uma SDRAM mas envia dados 2x por ciclo
• transição de subida e de descida • tem bandwidth maior
– largura 64 bits (8 bytes) e envio de 128 bits / ciclo – Algumas taxas de transferência
• PC-1600: 100 MHz DDR-200, 1.600 GByte/s • PC-2100: 133 MHz DDR-266, 2.133 GByte/s • PC-2700: 166 MHz DDR-333, 2.667 GByte/s
DDR2-SDRAM
• DDR2 (2003) – clock maior • PC2-3200: 200 MHz DDR2-400, 3.200 GByte/s • PC2-4200: 266 MHz DDR2-533, 4.267 GByte/s • PC2-5300: 333 MHz DDR2-667, 5.333 GByte/s • PC2-6400: 400 MHz DDR2-800, 6.400 GByte/s– buffers de pré-busca (cache dentro da DRAM)
• 4 bits na DDR2 (2 bits na DDR)
– menor consumo de energia: 1,8V (a DDR usa 2,5V) • DDR3 (2007)
– 1066MHz a 1333MHz
– buffers de pré-busca com 8 bits
DIMM (Dual Inline Memory Module)
• 168 pinos – 84 pinos de cada lado
– Para memórias SDR (Single Data Rate)
• 184 pinos – 92 pinos de cada lado
– Para memórias DDR (Double Data Rate)
• 240 pinos – 120 pinos de cada lado
– Para memórias DDR2 e DDR3
• 288 pinos – 144 pinos de cada lado
DIMM (Dual Inline Memory Module)
• 168 pinos (2 chanfros)
• 184 pinos (1 chanfro)
Evolução da DRAM
Ano Lançamento Tecnologia Velocidade
1987 FPM 50ns 1995 EDO 50ns 1997 PC66 SDRAM 66MHz 1998 PC100 SDRAM 100MHz 1999 RDRAM 800MHz 1999/2000 PC133 SDRAM 133MHz 2000 DDR SDRAM 266MHz 2001 DDR SDRAM 333MHz 2002 DDR SDRAM 434MHz 2003 DDR SDRAM 500MHz 2004 DDR2 SDRAM 533MHz 2005 DDR2 SDRAM 800MHz