• Nenhum resultado encontrado

- Sistemas de Memória Interna. por. Helcio Wagner da Silva

N/A
N/A
Protected

Academic year: 2021

Share "- Sistemas de Memória Interna. por. Helcio Wagner da Silva"

Copied!
113
0
0

Texto

(1)

Arquitetura de Computadores

Arquitetura de Computadores

- Sistemas de Memória Interna

por

(2)

Organização da Memória

Registradores Memória Cache Memória Principal Disco Magnético CD-R CD-RW

 custo por bit  capacidade  tempo de acesso  freq. de acesso pelo processador CD-RW DVD-R DVD-RW Fita Magnética

(3)

Características fundamentais

 Localização − Processador  Unidade de Transferência − Processador − Interna (principal) − Externa (secundária)  Capacidade − Tamanho da palavra Transferência − Palavra − Bloco  Método de Acesso − Sequencial − Tamanho da palavra

− Número de palavras − Direto

− Aleatório

(4)

Método de Acesso Sequencial

 Os dados são organizados em registros

sequenciais sequenciais

 Exemplo: fitas magnéticas

Trilha 01 Trilha 02 Trilha 03 Trilha 04 Trilha 05 Trilha 06 Trilha 07 Registro físico Trilha 07 Trilha 08 Trilha 09

Espaço entre registros

 O tempo de acesso é variável

(5)

Método de Acesso Direto

 Cada bloco de dados possui um endereço

único, baseado na localização física único, baseado na localização física

 O acesso é feito através do acesso direto a

uma vizinhança genérica do registro, e em seguida por uma busca seqüencial

 O tempo de acesso é variável

Exemplo: HD  Exemplo: HD Dado buscado (trilha 02, setor 25) Movimento do braço Movimento do disco

(6)

Método de Acesso Aleatório

 Cada posição de memória possui um endereço

único único

 O tempo de acesso a uma posição é constante,

sendo independente dos acessos anteriores

 Exemplos: Memória principal e alguns sistemas

de memória cache P1 P2 P3 P4 ... P8 000 001 010 011 111 ... endereços acesso 6

(7)

Método de Acesso Associativo

 Tipo de acesso aleatório que compara

simultaneamente certo número de bits de uma simultaneamente certo número de bits de uma palavra com todas as palavras da memória, determinando quais delas contêm o mesmo padrão de bits

 Uma palavra é buscada com base em parte de

seu conteúdo, e não de acordo com o seu endereço

seu conteúdo, e não de acordo com o seu endereço

(8)

Características fundamentais

 Desempenho − Tempo de Acesso  Características físicas − Volátil/não-volátil − Tempo de Acesso − Tempo de ciclo − Taxa de transferência  Tecnologia − Semicondutores − Volátil/não-volátil − Apagável/não-apagável  Organização − Arranjo físico de células − Semicondutores − Magnética − Óptica células − Formas de Encapsulamento − Detecção e correção de erros

(9)

Tempo de Acesso (T

A

)

 Em memórias de acesso aleatório:

− Tempo decorrido desde o instante em que um

− Tempo decorrido desde o instante em que um

endereço é apresentado à memória até o momento em que os dados são armazenados ou se tornam disponíveis para utilização

 Em memórias de acesso não-aleatório:

− Tempo gasto para posicionar o mecanismo de

− Tempo gasto para posicionar o mecanismo de

(10)

Tempo de Ciclo (T

C

)

 Aplicável principalmente às memórias de

acesso aleatório acesso aleatório

 Compreende o tempo de acesso e o tempo

adicional requerido antes que um segundo acesso possa ser iniciado

 O tempo adicional é necessário para o

desaparecimento de transientes nas linhas de desaparecimento de transientes nas linhas de sinal

(11)

Taxa de Transferência (R)

 Taxa na qual os dados podem ser transferidos

de ou para a unidade de memória de ou para a unidade de memória

− Para memórias de acesso aleatório:

 R = 1/TC

− Para memórias de acesso não-aleatório:

 R = N/(T

N – TA), em que:

− TN é o tempo médio para ler ou escrever N bits

− TN é o tempo médio para ler ou escrever N bits

(12)

Tecnologia de Semicondutores

Tipo de memória Memória de acesso aleatório (RAM) Categoria Memória de leitura e de Mecanismo de apagamento Eletricamente, em Mecanismo de escrita Eletricamente Volatilidade Volátil aleatório (RAM) Memória apenas de leitura (ROM) ROM Programável (PROM) PROM Apagável (EPROM) leitura e de escrita Memória apenas de leitura em nível de Byte Não é possível

Luz UV, em nível de pastilha Eletricamente Máscaras Volátil Não-volátil PROM Eletricamente Apagável (EEPROM)

Memória Flash principalmenteMemória de leitura Eletricamente, em nível de blocos Eletricamente, em nível de Bytes Eletricamente

(13)

Memórias RAM

 RAM dinâmica (DRAM)

− Células armazenam dados com a carga de

− Células armazenam dados com a carga de

capacitores

É necessário um circuito de regeneração (refresh)

 RAM estática (SRAM)

− Valores são armazenados usando configurações

de flip-flops com portas lógicas de flip-flops com portas lógicas

− Não é necessário o circuito de regeneração

− São mais rápidas do que as DRAM, porém são

(14)

Memória ROM

 Possui um padrão permanente de dados, que

não pode ser alterado não pode ser alterado

 Os dados são gravados na pastilha durante o

processo de fabricação

Memória PROM

 O processo de gravação (programação) é

efetuado eletricamente, e pode ser feito pelo fornecedor ou pelo cliente após a fabricação da pastilha

(15)

Memória EPROM

 Pode ser apagada por um processo óptico

(exposição à radiação UV) (exposição à radiação UV)

 O processo de apagamento pode levar 20 min,

e deve ser feito integralmente em todas as células de memória antes da gravação de novos dados

 A gravação e leitura de dados é feita  A gravação e leitura de dados é feita

(16)

Memória EEPROM

 Tanto a escrita como o apagamento são feitos

eletricamente eletricamente

 Não há necessidade de apagamento integral;

apenas o Byte ou os Bytes endereçados são atualizados

 A operação de escrita leva um tempo

consideravelmente maior que a de leitura; da consideravelmente maior que a de leitura; da ordem de centenas de microsegundos por Byte

 É mais cara e menos densa que a EPROM  Combina não-volatilidade e flexibilidade

(17)

Memória Flash

 Apresenta características intermediárias entre a

EPROM e a EEPROM EPROM e a EEPROM

− Como a EEPROM, o apagamento é elétrico

− Como a EEPROM, é possível apagar apenas alguns blocos de memória

− Como a EPROM, ela não permite apagar o conteúdo de apenas um Byte

(18)

Organização da Memória de semicondutor

 Elemento básico: célula de memória

− Exibe dois estados estáveis

− Exibe dois estados estáveis

− Possui três terminais funcionais:

Controle

Dados de

Controle

Célula Célula

Seleção Entradade Seleção Estado

(19)

Exemplos de Arranjos Físicos das Células

 Exemplo #01: arranjo físico é igual ao arranjo

lógico das palavras na memória – tal como é lógico das palavras na memória – tal como é percebido pela CPU

8 bits P0 P1 EPROM de 8 Mbits (ou 1 MB) 1M Palavras P2 P3 P4 ...

(20)

Exemplos de Arranjos Físicos das Células

 Formato da pastilha do Exemplo #01:

1 2 3 4 5 6 7 8 9 30 29 28 27 26 25 24 30 31 32 A19 A16 A15 A12 A12 A7 A6 A5 A4 A3 Vcc A18 A17 A14 A13 Vpp A8 A9 A11 Pinos de endereço Pinos de endereço Pino de alimentação Pino de 32 pinos 1,5 cm2 9 10 11 12 13 14 15 16 24 23 22 21 20 19 18 17 A3 A2 A1 A0 D0 D1 D2 Vss Vpp A10 CE D7 D6 D5 D4 D3 Pinos de Dados Pinos de Dados Chip Enable Pino de Terra Pino de programação 20

(21)

Exemplos de Arranjos Físicos das Células

 Exemplo #02: arranjo em matrizes quadradas

contendo grupos de células contendo grupos de células

... ... ... linhas2048 2048 colunas D e co d if ica d o r d e l in h a DRAM de 16 Mbits (ou 2 MB) ... ... ... ... ... Decodificador de coluna D e co d if ica d o r MUX 11 11 4

(22)

Exemplos de Arranjos Físicos das Células

 Formato da pastilha do Exemplo #02:

16 pinos 1 2 3 4 5 6 24 23 22 21 20 19 NC D0 D1 Vss Vcc CAS OE A9 D3 D2 Pinos de Dados Pino de Terra Column Address Strobe Pino de Alimentação WE RAS Pinos de Dados Output Enable Row Address Strobe Write Enable 16 pinos 7 8 9 10 11 12 13 14 15 16 19 18 17 A7 A6 A3 A2 A1 A0 A10 A8 A9 A4 A5 Pinos de endereço Pinos de endereço Vcc Vss Enable Pino de Terra Pino de Alimentação Number of Chip

(23)

Exemplos de Arranjos Físicos das Células

 O arranjo em matrizes quadradas de grupos de

células possibilita pastilhas mais densas células possibilita pastilhas mais densas

 A adição de uma linha de endereço faz com

que se a quantidade de linhas e colunas da matriz seja duplicada

 A capacidade total de memória da pastilha é,

(24)

Organização em Módulos

... ... 512 colunas Pastilha #01 256 K x 1 bit DRAM de ... ... ... ... ... ... Decodificador de Coluna 512 linhas ... ... 512 colunas 9 9 ... 7 2 1 ... ... ... MAR MBR DRAM de 256 KB ... ... ... ... ... ... ... Decodificador de Coluna 512 linhas 9 Pastilha #08 8 7 ...

(25)

Organização em Módulos

1/512 1 /5 1 2 A 1 1/512 1 /5 1 2 B 1 1/512 1 /5 1 2 C 1 1/512 1 /5 1 2 D 1 MAR 1/512 1/512 1 /5 1 2 A 2 A 1/512 1/512 1 /5 1 2 B 2 B 1/512 1/512 1 /5 1 2 C 2 C 1/512 1/512 1 /5 1 2 D 2 D 9 9 2 8 2 1 ... MBR CE CE CE CE CE CE CE CE 1/512 1 /5 1 2 A 8 1/512 1 /5 1 2 B 8 1/512 1 /5 1 2 C 8 1/512 1 /5 1 2 D 8 2

Habilitação Grupo AGrupo B

CE CE

CE CE

(26)

Formas de Encapsulamento

 Módulos DIP (Dual Inline Package)

Usados em PCs  Usados em PCs antigos (XTs, 286s e os primeiros 386)  Soldados diretamente na placa mãe ou encaixados individualmente em soquetes disponíveis na placa na placa  Upgrade de memória ou substituição de módulos era difícil

(27)

Formas de Encapsulamento

 Módulos SIMM (Single Inline Memory Module)

− 30 vias 8 MB − 30 vias − 72 vias 8 MB 8 MB 8 MB

(28)

Formas de Encapsulamento

 Módulos SIMM de 30 vias:

 Observações:

− Os µPs 486 e 386DX acessavam a memória usando

palavras de 32 bits

− O µP 386SX acessava a memória usando palavras de 16

(29)

Formas de Encapsulamento

 Módulos SIMM de 72 vias:

 Observações:

− Tanto o µP 486 quanto o Pentium trabalham internamente

com palavras de 32 bits

− No entanto, o µP Pentium acessa a memória usando

(30)

Formas de Encapsulamento

 Módulos DIMM (Dual Inline Memory Module)

 Possuem contatos em ambos

os lados do módulo

 Têm 168 vias

 Trabalham com palavras

(31)

Formas de Encapsulamento

 Comparação entre os tamanhos:

Módulo SIMM Módulo DIMM Módulo SIMM de 30 vias Módulo SIMM de 72 vias

(32)

Detecção e Correção de Erros

 Todo sistema de memória baseado em

semicondutor está sujeito a erros semicondutor está sujeito a erros

 Tipos:

− Falhas graves: células são inutilizadas

− Erros moderados: células não são inutilizadas

 A maioria dos sistemas de memória principal

modernos inclui uma lógica de detecção e correção de erros

(33)

Detecção e Correção de Erros

 Um código de correção é caracterizado pelo

número de bits incorretos que ele é capaz de detectar e corrigir em uma única palavra

número de bits incorretos que ele é capaz de detectar e corrigir em uma única palavra

 O código de correção de erros mais simples é o

Código de Hamming

 Esse código foi projetado por Richard Hamming

(34)

Detecção e Correção de Erros

 Visualização do Código de Hamming  Palavras de 4 bits  Diagramas de Venn

(35)

Detecção e Correção de Erros

Sinal de erro Comparação Correção Memória f Saída de dados Entrada de dados M M K' M K K Memória Comparação f K K Resultados possíveis:

(36)

Projeto de um Código de Correção de

Erro Único (SEC)

K ' M Comparação Memória f K ' M K K + K' = Palavra Síndrome

Se todos os bits da Palavra Síndrome forem 0s, não houve erro

 Se todos os bits da Palavra Síndrome forem 0s, não houve erro

 Se a Palavra Síndrome contiver apenas um bit 1, ocorreu erro em um dos

bits de teste – nenhuma correção é necessária

 Se a Palavra Síndrome contiver mais de um bit 1, o valor numérico da

Palavra Síndrome indica a posição do bit em que ocorreu erro – a palavra é corrigida invertendo-se o valor desse bit de dado

(37)

Projeto de um Código de Correção de

Erro Único (SEC)

 Como pode ocorrer erro em qualquer um dos M bits de

dados ou dos K bits de teste, deve-se ter:

Bits de teste

Bits de dados Aumento (%)

8 4 50,00

 Aumento no tamanho da Palavra com a correção de erros:

16 32 64 128 5 6 7 8 31,25 18,75 10,94 6,25

(38)

Projeto de um Código de Correção de

Erro Único (SEC)

Posição do bit10 Posição do bit2 Bits de Teste Bits de Dados 12 11 10 9 8 7 6 0110 0111 1000 1001 1010 1011 1100 C8 M5 M3 M4 M6 M7 M8 C1 = M1 + M2 + M4 + M5 + M7 C2 = M1 + M3 + M4 + M6 + M7 C4 = M2 + M3 + M4 + M8 C8 = M5 + M6 + M7 + M8 Cálculo dos Bits de Teste:

6 5 4 3 2 1 0001 0010 0011 0100 0101 0110 C1 C4 C2 M1 M2 M3 C8 = M5 + M6 + M7 + M8 38

(39)

Projeto de um Código de Correção de

Erro Único (SEC)

 Exemplo:

M8 M7 M6 M5 M4 M3 M2 M1 0 0 1 1 1 00 0 1

C1 = M1 + M2 + M4 + M5 + M7 = 1 + 0 + 1 + 1 + 0 = 1 C2 = M1 + M3 + M4 + M6 + M7 = 1 + 0 + 1 + 1 + 0 = 1

 Cálculo dos Bits de Teste:

C2 = M1 + M3 + M4 + M6 + M7 = 1 + 0 + 1 + 1 + 0 = 1 C4 = M2 + M3 + M4 + M8 = 0 + 0 + 1 + 0 = 1

(40)

Projeto de um Código de Correção de

Erro Único (SEC)

 Supondo-se um erro em M3,

M8 M7 M6 M5 M4 M3 M2 M1

0 0 1 1 1 1 0 1

C1 = M1 + M2 + M4 + M5 + M7 = 1 + 0 + 1 + 1 + 0 = 1 C2 = M1 + M3 + M4 + M6 + M7 = 1 + 1 + 1 + 1 + 0 = 0

 Cálculo dos Bits de Teste:

C2 = M1 + M3 + M4 + M6 + M7 = 1 + 1 + 1 + 1 + 0 = 0

C4 = M2 + M3 + M4 + M8 = 0 + 1 + 1 + 0 = 0

(41)

Projeto de um Código de Correção de

Erro Único (SEC)

 Cálculo da Palavra Síndrome:

C8 C4 C2 C1 0 1 1 1 0 0 0 1 0 1 1 0 + 610

 Conclusão: há um erro na 6a. posição (bit M3)!

M8 M7 M6 M5 M4 M3 M2 M1 0 0 1 1 1 1 0 1 C2 1 C1 1 C4 1 C8 0 1 2 3 4 5 6 7 8 9 10 11 12

(42)

Memória Cache

 Todos os sistemas de memória atuais

contemplam uma memória cache contemplam uma memória cache

CPU MemóriaCache Memória

Principal Transferência

de Palavras

Transferência de Blocos

 Uma memória principal grande e lenta é

combinada com uma memória cache grande e rápida

(43)

Memória Cache

 Em qualquer instante, um subconjunto dos

blocos da memória principal reside na cache blocos da memória principal reside na cache

0 1 2 3 Blocos (K palavras) Tamanho da Palavra 0 1 2 3 ... Bloco Rótulo K - 1 ... Bloco C - 1 Tamanho do Bloco (K palavras) M = 2n/K Blocos C linhas

(44)

Memória Cache

Endereço Área de armazenamento temporário de endereço Processador Memória Cache Controle Controle B a rr a m e n to d o si st e m a Dados Área de armazenamento temporário de dados B a rr a m e n to d o si st e m a 44

(45)

O Bloco que contém Recebe endereço

RA da CPU INÍCIO

Efetua acesso à memória principal para obter o

Não

Operação de Leitura em Memória Cache

O Bloco que contém o endereço RA está na memória cache?

Obtém o conteúdo da palavra no endereço RA e entrega para a CPU

principal para obter o bloco que contém RA

Aloca linha da cache para o bloco da memória principal Sim Não Carrega o bloco da memória principal na linha da cache Entrega a palavra em RA para a CPU

(46)

Elementos de Projeto de Memórias

Cache

 Tamanho  Função de  Política de escrita − Write-through  Função de mapeamento − Direto − Associativo − Associativo por conjuntos Algoritmo de − Write-through − Write-back − Write-once  Tamanho da linha  Número de Caches − Um ou dois níveis  Algoritmo de substitução − LRU − FIFO − LFU − Aleatório − Um ou dois níveis − Unificada ou separada 46

(47)

Tamanho da Cache

 Impossível determinar tamanho ideal

Deve ser grande para que o tempo médio de

Deve ser grande para que o tempo médio de acesso à memória total seja próximo ao tempo de acesso da memória cache

Deve ser pequena para que o custo total por bit seja próximo do custo por bit da memória principal

 Outros motivos para minimização da cache:

Quanto maior a cache, maior o número de pinos –

Quanto maior a cache, maior o número de pinos – e mais lento o endereçamento

(48)

Função de Mapeamento

 Necessidade

− O número de linhas da cache é menor do que o

− O número de linhas da cache é menor do que o número de blocos da memória principal

 Técnicas utilizadas

− Mapeamento Direto

− Mapeamento Associativo

(49)

Suposições

000000

1 Byte

 Memória principal com 16 MB (224B)  Cada Byte é endereçável diretamente  Memória principal pode ser vista como

000000 000001 000002 000003 Bloco 0 0000 Bloco (4 Bytes) 000004 000005 000006 000007 Bloco 1 000008 000009 00000A 00000B Bloco 2 00000C 00000D Bloco 3 4M (222) blocos de 4 B

 Memória cache de 64 KB, organizada

em 16 K (214) linhas de 4 B

 Os dados são transferidos da memória

principal para a cache em blocos de 4B

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 ... Bloco 222 - 1 0000 ... 00000D 00000E 00000F Bloco 3 FFFFFF FFFFFE FFFFFD FFFFFC ... ... 0001 0002 3FFF P14 P15 P(224- 4) P(224- 3) P(224- 2) P(224- 1)

(50)

Mapeamento Direto

 Cada bloco da memória principal é mapeado

em uma única linha da cache em uma única linha da cache

 O mapeamento é expresso pela equação:

i = j módulo m,

Em que:

 i : número da linha da memória cache  i : número da linha da memória cache  j : número do bloco da memória principal  m : número de linhas da memória cache

(51)

Mapeamento Direto

 Segundo i = j módulo m, cada bloco da

memória principal é assim mapeado em uma linha da memória cache:

memória principal é assim mapeado em uma linha da memória cache:

0, m, 2m, ..., 2S - m

1, m + 1, 2m + 1, ..., 2S - m + 1

0

1

Linha da memória cache Blocos da memória principal mapeados na linha

1, m + 1, 2m + 1, ..., 2S - m + 1

m – 1, 2m – 1, 3m – 1, ..., 2S -1

1

(52)

Mapeamento Direto

 Cálculo dos blocos:

− Bloco 0 = 000000 − Bloco 0 = 000000 − Bloco 1 = 000004 (000000 + 4 X 000001) − Bloco 2 = 000008 (000000 + 4 x 000002) − Bloco 3 = 00000C (000000 + 4 x 000003) − ... − Bloco N = 000000 + 4 x N

 Bloco m = Bloco 214 = Bloco 004000 = 000000 + 4 x

004000 = 010000

 Bloco 2S-m = Bloco (222-214) = Bloco (400000 - 004000)=

(53)

Mapeamento Direto

 Bloco m+1 = Bloco (214+1) = Bloco (004000+1) = Bloco

004001 = 000000 + 4 x 004001 = 010004

Bloco 2S-m+1 = Bloco (222-214+1) = Bloco

(400000- Bloco 2S-m+1 = Bloco (222-214+1) = Bloco

(400000-004000+1) = Bloco 3FC001 = 000000 + 4 x 3FC001 = FF0004

 Bloco m-1 = Bloco (214-1) = Bloco (004000-1) = Bloco

003FFF = 000000 + 4 x 003FFF = 00FFFC

 Bloco (2m-1) = Bloco (2 x 004000 – 1) = Bloco (008000-1)

= Bloco 007FFF = 000000 + 4 x 007FFF = 01FFFC = Bloco 007FFF = 000000 + 4 x 007FFF = 01FFFC

 Bloco (2S-1) = Bloco (222-1) = Bloco (400000-1) = Bloco

(54)

Mapeamento Direto

 Substituindo os valores, teremos:

000000, 010000, ..., FF0000

000004, 010004, ..., FF0004 0

1

Linha da memória cache Blocos da memória principal mapeados na linha

00FFFC, 01FFFC, ..., FFFFFC

(55)

Mapeamento Direto

 Interpretação do endereço da memória

principal: principal: Palavra Linha da cache Rótulo w s s - r r No nosso caso:

Identificação de um dentre 2S blocos

 No nosso caso: Palavra Linha da cache Rótulo 2 22

(56)

Exemplo de Mapeamento Direto 0000 13579246 0004 FFF8 FFFC 00 Rótulo Linha + palavra Dados ... ... FFFC 0000 77777777 0004 11235813 339C FEDCBA98 FFFC 12345678 00 13579246 16 11235813 16 FEDCBA98 FF 11223344 16 12345678 16 0000 0001 3FFE 3FFF 0CE7 Rótulo Dados Númerode linha

8 32 bits ... 0000 0004 FFF8 11223344 FFFC 24682468 FF 8 bits 32 bits 32 bits 56

(57)

Rótulo Linha Palavra P0 P1 P2 B0 w r s - r 3'

Exemplo de Leitura no Mapeamento Direto

P2 P3 B0 w r s - r 1 2 3 3 4 ... Comparação Acerto na cache P4j P(4j+1) P(4j+2) P(4j+3) Falha na cache Bj 3 3' 4'

(58)

Mapeamento Associativo

 Vantagem:

− Oferece maior flexibilidade para escolha do bloco a

− Oferece maior flexibilidade para escolha do bloco a ser substituído quando um novo bloco é trazido para a memória cache

 Desvantagem:

− Complexidade do conjunto de circuitos necessários para a comparação simultânea dos rótulos de todas as linhas da memória cache

(59)

Mapeamento Direto

 Vantagens:

− Simplicidade

− Simplicidade

− Custo baixo de implementação

 Desvantagem:

− Se um programa fizer repetidas referências a

palavras em dois blocos distintos, mapeados em uma mesma linha, esses blocos serão trocados continuamente na cache – e a taxa de acertos será continuamente na cache – e a taxa de acertos será baixa

(60)

Mapeamento Associativo

 Permite que cada bloco da memória principal

seja carregado em qualquer linha da memória cache

seja carregado em qualquer linha da memória cache

 Interpretação do endereço da memória

principal:

Palavra Rótulo

w s

Identificação de um dentre 2S blocos

 No nosso caso:

Palavra Rótulo

2 22

(61)

Mapeamento Associativo

 O rótulo corresponde aos 22 bits mais

significativos do endereço significativos do endereço

 Exemplos de cálculo de rótulos

− 000000 -> 000000

− 16339C -> 058CE7

− FFFFF4 -> 3FFFFD

− FFFFF8 -> 3FFFFEFFFFF8 -> 3FFFFE

(62)

000000 13579246 000004 FFF8 FFFC Endereço Dados Exemplo de Mapeamento Associativo ... ... FFFC 16339C FEDCBA98 3FFFFE 13579246 058CE7 FEDCBA98 3FFFFD 33333333 000000 11223344 3FFFFF 12345678 0000 0001 3FFE 3FFF 3FFD Rótulo Dados Númerode linha

32 bits 163398 1633A0 22 bits ... FFFFF4 33333333 FFFFF8 11223344 FFFFFC 24682468 32 bits 32 bits 22 bits 62

(63)

Rótulo Palavra P0 P1 P2 B0 w s 2'

Exemplo de Leitura no Mapeamento Associativo

P2 P3 B0 w s 1 2 2 3 ... Comparação Acerto na cache P(4j+1)P4j P(4j+2) P(4j+3) Bj 2 2' 3'

(64)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Combina as vantagens do mapeamento direto

e do mapeamento associativo e diminui suas desvantagens

e do mapeamento associativo e diminui suas desvantagens

 A memória cache é dividida em v conjuntos,

cada qual com k linhas

m = v x k i = j módulo v

Em que:

 i : número do conjunto da memória cache  j : número do bloco da memória principal

(65)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Interpretação do endereço da memória

principal: Identificação de um dentre 2S blocos

principal: Palavra Conjunto Rótulo w s s - d d

Identificação de um dentre 2S blocos

 Considerando em nosso caso conjuntos de

duas linhas, temos: duas linhas, temos:

Palavra Conjunto

Rótulo

2 22

(66)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Segundo i = j módulo v, cada bloco da memória

principal é assim mapeado em um conjunto da memória cache:

principal é assim mapeado em um conjunto da memória cache:

0, v, 2v, ..., 2S - v

1, v + 1, 2v + 1, ..., 2S - v + 1

0

1

Conjunto da memória cache Blocos da memória principal mapeados no conjunto

1, v + 1, 2v + 1, ..., 2S - v + 1

v – 1, 2v – 1, 3v – 1, ..., 2S -1

1

(67)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Cálculo dos blocos:

− Bloco 0 = 000000 − Bloco 0 = 000000 − Bloco 1 = 000004 (000000 + 4 X 000001) − Bloco 2 = 000008 (000000 + 4 x 000002) − Bloco 3 = 00000C (000000 + 4 x 000003) − ... − Bloco N = 000000 + 4 x N

 Bloco v = Bloco 213 = Bloco 002000 = 000000 + 4 x 002000

= 008000

 Bloco 2S-v = Bloco (222-213) = Bloco (400000 - 002000)=

(68)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Bloco v+1 = Bloco (213+1) = Bloco (002000+1) = Bloco

002001 = 000000 + 4 x 002001 = 008004

Bloco 2S-v+1 = Bloco (222-213+1) = Bloco

(400000- Bloco 2S-v+1 = Bloco (222-213+1) = Bloco

(400000-002000+1) = Bloco 3FE001 = 000000 + 4 x 3FE001 = FF8004

 Bloco v-1 = Bloco (213-1) = Bloco (002000-1) = Bloco

001FFF = 000000 + 4 x 001FFF = 007FFC

 Bloco (2v-1) = Bloco (2 x 002000 – 1) = Bloco (004000-1)

= Bloco 003FFF = 000000 + 4 x 003FFF = 00FFFC = Bloco 003FFF = 000000 + 4 x 003FFF = 00FFFC

 Bloco (2S-1) = Bloco (222-1) = Bloco (400000-1) = Bloco

(69)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Substituindo os valores, teremos:

000000, 008000, ..., FF8000

000004, 008004, ..., FF8004 0

1

Conjunto da memória cache Blocos da memória principal mapeados no conjunto

007FFC, 00FFFC, ..., FFFFFC

(70)

Exemplo de Mapeamento Associativo por Conjuntos 0000 13579246 0004 7FF8 7FFC 000 Rótulo Conjunto + palavra Dados ... ... 7FFC 0000 77777777 0004 11235813 339C FEDCBA98 7FFC 12345678 000 13579246 001 11235813 02C FEDCBA98 1FF 11223344 001 12345678 02C 0000 0001 1FFE 1FFF 0CE7 Rótulo Dados Númerode conj.

9 32 bits 001 77777777 1FF 24682468 9 32 bits Dados Rótulo ... 0000 0004 FFF8 11223344 FFFC 24682468 1FF 9 bits 32 bits 32 bits 9 bits 32 bits 70

(71)

P0 P1 P2 B0 w s - d 3'

Exemplo de Leitura no Mapeamento Associativo por Conjuntos (de k linhas)

Rótulo Conjunto Palavra

d Comparação P2 P3 B0 w s - d 1 2 2 3 ... C0 C1 C2 d 4 Comparação Acerto na cache P(4j+1)P4j P(4j+2) P(4j+3) Falha na cache Bj 3 3' 4' C(v-1)

(72)

Mapeamento Associativo por

Conjuntos (de k linhas)

 Casos extremos:

v = m e k = 1 : mapeamento direto

v = m e k = 1 : mapeamento direto

v = 1 e k = m : mapeamento associativo

 Configurações comuns:

v = m/2 e k = 2 : taxa de acertos significantemente maior do que no mapeamento direto

v = m/4 e k = 4 : pequena melhoria a um custo adicional relativamente pequeno

adicional relativamente pequeno

(73)

Algoritmos de Substituição

 Quando um novo bloco é trazido para a cache,

um dos blocos existentes deve ser substituído um dos blocos existentes deve ser substituído

 No mapeamento direto, não há alternativa –

cada bloco é mapeado em uma única linha

 Para os mapeamentos associativo e

associativo por conjuntos, é necessário um algoritmo de substituição

Recomenda-se a implementação em HW, por

 Recomenda-se a implementação em HW, por

(74)

Algoritmos de Substituição

 Algoritmos disponíveis:

− LRU (Menos Recentemente Usado)

− LRU (Menos Recentemente Usado)

 Implementação com bits de uso

− FIFO (First In First Out)

 Implementação com áreas de armazenamento circular

− LFU (Menos Frequentemente Usado)

 Implementação com contadores

− Aleatório

− Aleatório

 Apresenta um desempenho apenas levemente inferior

(75)

Políticas de Substituição

 Antes que um bloco residente na memória

possa ser substituído, é necessário verificar se ele foi alterado na memória cache

possa ser substituído, é necessário verificar se ele foi alterado na memória cache

 Se isso não ocorreu, então o novo bloco pode

ser escrito sobre o bloco antigo

 Caso contrário, então a memória principal deve

ser atualizada

Problema encontrado:

 Problema encontrado:

− A memória principal pode ser utilizada tanto por outros processadores quanto por dispositivos de E/S

(76)

Políticas de Substituição

 Escrita Direta (write through)

− Todas as operações de escrita são feitas tanto na

− Todas as operações de escrita são feitas tanto na memória quanto na cache

− Vantagem:

 A memória principal está sempre atualizada

− Desvantagem:

(77)

Políticas de Substituição

 Escrita de Volta (write back)

− Escritas são feitas apenas na cache

− Escritas são feitas apenas na cache

− Quando uma linha da cache é atualizada, um bit de

atualização associado a ela é setado em 1

− Quando um bloco vai ser substituído, ele apenas é

escrito de volta na memória principal se o seu bit de atualização estiver setado em 1

− Vantagem:

 Minimiza o número de operações de escrita na memória

− Desvantagem:

 Partes da memória principal podem ficar inválidas

(78)

Políticas de Substituição

 Escrita Uma Vez (write once)

− Ideal para sistemas multiprocessados com

− Ideal para sistemas multiprocessados com

memória principal compartilhada

− É uma mistura de write through e write back

− Cada µP escreve a memória principal sempre que o bloco correspondente na cache foi atualizado pela primeira vez (write through)

− Os demais µP são alertados da alteração

− Os demais µP são alertados da alteração

− Outras alterações naquele bloco são realizadas apenas na cache local e o bloco da memória só será atualizado quando o bloco for substituído na cache (write back)

(79)

Tamanho da Linha

 Tamanho da linha = tamanho do bloco

 À medida em que esse número aumenta,  À medida em que esse número aumenta,

aumenta inicialmente a taxa de acertos

 Entretanto, se esse número aumentar muito, a

taxa de acertos diminuirá

 Porque não usar blocos muito grandes:

− Para uma dada capacidade, isso diminuirá o

− Para uma dada capacidade, isso diminuirá o número de linhas na cache

− Cada palava adicional estará mais distante da usada – e a chance de uso será menor

(80)

Número de Memórias Cache

 Anteriormente, a cache era externa ao µP  Com o avanço da eletrônica, tem-se:

 Com o avanço da eletrônica, tem-se:

− Cache L1: interna ao µP

− Cache L2: externa ao µP (SRAM)

 Unificadas ou Separadas?

− Unificadas (instruções + dados)

− Separadas (uma para instruções e outra para os

− Separadas (uma para instruções e outra para os dados)

− Projetos atuais baseiam-se em caches separadas, por motivos de desempenho junto ao pipeline

(81)

Evolução das Memórias Baseadas

em Semicondutores

 Memórias Regulares  Memórias FPM  Memórias EDO  Memórias SDRAM  Memórias DDR  Memórias DDR  Memórias DDR2

(82)

Memórias Regulares

 Foram o primeiro tipo de memória usado em micros

PC

 Acesso era feito enviando primeiro o endereço RAS e

em seguida o endereço CAS, da forma mais simples possível

 Eram fabricadas inicialmente com tempos de acesso

de 150 ns; depois foram fabricadas com tempos de acesso de 120, 100 e 80 ns, para operação com o 286 Utilizadas em computadores XT, 286 e em alguns dos

 Utilizadas em computadores XT, 286 e em alguns dos

primeiros 386

 Eram encontradas apenas sob a forma de módulos

(83)
(84)

Memórias FPM (Fast Page Mode)

 Transferem dados em rajadas de 4 palavras em uma

mesma linha, ou página

 Baseadas na idéia de que os dados são gravados

seqüencialmente na memória

 Encontradas na forma de pentes SIMM de 30/72 vias

e com tempos de acesso de 80, 70 e 60 ns

 Foram usadas em computadores 386, 486 e nos

primeiros Pentium

 Tempos de acesso podem também ser dados em

termos de ciclos de clock da placa mãe

− por exemplo, 5-3-3-3 em um barramento operando a 66 MHz

(85)
(86)

Memórias FPM (Fast Page Mode)

 Uma nova operação de

leitura só pode ser leitura só pode ser iniciada quando a operação anterior é encerrada

(87)

Memórias EDO

(Extended Data Output)

 Criadas em 1994

Caracterizadas pela existência de um pipeline

 Caracterizadas pela existência de um pipeline

interno à memória

− Uma nova leitura pode ser iniciada sem que a

leitura atual tenha terminado

 São mais rápidas que as memórias FPM

− por exemplo, 5-2-2-2 em um barramento operando

− por exemplo, 5-2-2-2 em um barramento operando a 66 MHz (ganho de 25 %)

 Fabricadas com tempos de acesso de 70, 60 e

50 ns, encapsuladas em pentes SIMM de 72 vias

(88)

Memórias EDO

(89)

Memórias SDRAM

(Synchronous DRAM)

 As memórias anteriores trabalham em seus

próprios ritmos, independentemente do clock da placa mãe

próprios ritmos, independentemente do clock da placa mãe

− Uma FPM projetada para funcionar em placas para

µP 386 e 486 (25/33 MHz) funciona perfeitamente em placas para µP Pentium (66 MHz)

 Por isso, elas são tidas como memórias

assíncronas

 Todas as ações em uma memória SDRAM

estão sincronizadas com a borda de subida do sinal de clock da placa mãe

(90)

Memórias SDRAM

(Synchronous DRAM)

 Estrutura: SDRAM de 4M x 4 bits = 2 MB D e co d if ica d o r d e L in h a Lógica de Controle 2048x1024x42048x1024x4 D e co d if ica d o r d e L in h a CKE CLK CS# WE# CAS# RAS# Buffer de Linha Buffer de Saída Buffer de Entrada DQ0 ... DQ3 Registrador de Modo Decodificador de Coluna Decodificador de Coluna Lógica de Controle de Banco Buffer de Coluna

(91)

Memórias SDRAM

(Synchronous DRAM)

 Configuração através do Registrador de Modo  Pode-se definir:

 Pode-se definir:

− Tamanho das rajadas

− Tipo das rajadas

 Seqüenciais  Intercaladas

− Latência do CAS

− Modo de operação

 Normal

− Modo de escrita em rajadas

(92)

Memórias SDRAM

(Synchronous DRAM)

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 BA M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 Tamanho Tamanho da rajada BT Latência Latência do CAS Código Código de Op. WB Reservado M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M2 M1 M0 Tamanho da rajada M3 = 0 M3 = 1 0 0 0 1 1 0 0 1 2 2 M3 Tipo da rajada 0 Seqüencial 0 0 1 2 2 0 1 0 4 4 0 1 1 8 8 1 0 0 Reservado Reservado 1 0 1 Reservado Reservado 1 1 0 Reservado Reservado 1 1 1 Pág.completa Reservado 0 Seqüencial 1 Intercalada 92

(93)

Memórias SDRAM

(Synchronous DRAM)

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 BA M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 Tamanho Tamanho da rajada BT Latência Latência do CAS Código Código de Op. WB Reservado M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M6 M5 M4 Latência do CAS 0 0 0 Reservado 0 0 1 1 0 1 0 2

M9 Modo de escrita em rajada 0 Tamanho de rajada programado 1 Escrita em uma só posição

0 1 1 3 1 0 0 Reservado 1 0 1 Reservado 1 1 0 Reservado M8 M7 M6-M0 Modo de operação 0 0 definido Normal

(94)

Memórias SDRAM

(Synchronous DRAM)

 Configuração do Registrador de Modo se dá

através do comando LOAD MODE REGISTER através do comando LOAD MODE REGISTER

 Outros comandos:

− COMAND INHIBIT

 Inibe a execução de comandos na SDRAM

− NOP

 Previne a emissão de comandos indesejáveis durante

estados de espera estados de espera

− ACTIVE

 Abre (ativa) uma linha de um banco para acesso

subsequente

− BA: endereço do banco

(95)

Memórias SDRAM

(Synchronous DRAM)

CLK CKE CS# RAS# CAS# • Comando ACTIVE CAS# WE#

A0-A10 Endereço da Linha

(96)

Memórias SDRAM

(Synchronous DRAM)

 Outros comandos (cont.):

− PRECHARGE

− PRECHARGE

 Desativa uma linha aberta em um banco

− BURST TERMINATE

 Trunca uma rajada em uma operação de leitura ou

escrita

− AUTO REFRESH

 Regenera os dados  Regenera os dados

− SELF REFRESH

 Regenera os dados na ausência do clock

− SDRAM provê seu próprio sinal de clock interno

− READ/WRITE

(97)

Memórias

SDRAM

(Synchronous

DRAM)

CLK CKE CS# Comando READ RAS# CAS# WE# Endereço • Comando READ A0-A9 BA Endereço da Coluna Endereço Don’t care

A10 Habilitar/desabilitar auto precharge

(98)

Memórias SDRAM

(Synchronous DRAM)

CLK NOP READ NOP DADOS DADOS COMANDOS DQ

 Comando READ com Latência do CAS (CL) = 1

(99)

Memórias SDRAM

(Synchronous DRAM)

CLK READ NOP DADOS DADOS NOP NOP COMANDOS DQ

Don’t care Indefinido

(100)

Memórias SDRAM

(Synchronous DRAM)

CLK DADOS NOP READ NOP DADOS NOP NOP COMANDOS DQ

Don’t care Indefinido

(101)

Memórias SDRAM

(Synchronous DRAM)

 Por serem sincronizadas com o clock da placa

mãe, as SDRAM são mais rápidas

 Comparação entre SDRAM de 12 ns e EDO de

60ns:

− Barramento operando em 66 MHz:

 SDRAM: 5+1+1+1 = 8 ciclos em 4 acessos  EDO: 5+2+2+2 = 11 ciclos em 4 acessos

 Conclusão: SDRAM é 30% mais rápida que a EDO  Conclusão: SDRAM é 30% mais rápida que a EDO

− Barramento operando em 82 MHz:

 SDRAM: 5+1+1+1 = 8 ciclos em 4 acessos  EDO: 6+3+3+3 = 15 ciclos em 4 acessos

(102)

Parâmetros de Especificação

 CL/tRCD/tRP/tRAS/CMD

− CL (CAS Latency): intervalo de tempo entre a ativação

− CL (CAS Latency): intervalo de tempo entre a ativação

do CAS e a recepção dos dados

− tRCD: tempo compreendido entre a ativação do RAS e

a ativação do CAS

− tRP: tempo requerido entre o término do acesso de

uma linha e o início do acesso a uma outra

− tRAS: tempo decorrido da recepção do sinal de seleção

de linha no terminal RAS até a sua ativação

de linha no terminal RAS até a sua ativação

propriamente dita

− CMD: define o tempo compreendido entre a seleção de

um banco (CS – Chip Select) e a emissão de um comando ACTIVE

(103)

Parâmetros de Especificação

CLK

NOP CLK

ACTIVE NOP NOP READ/

WRITE

Don’t care COMANDOS

tRCD

(104)

Parâmetros de Especificação

CLK

BANCO a, COL n

READ

READ NOP CHARGEPRE NOP

COMANDOS BANCO a, COL m ENDEREÇOS tRP 104 DADOS DADOS

Don’t care Indefinido DQ

(105)

Parâmetros de Especificação

 Exemplo: 2-2-2-5-T1 − CL = 2 (ciclos) − CL = 2 (ciclos) − tRCD = 2 (ciclos) − tRP = 2 (ciclos) − tRAS = 5 (ciclos) − CMD = 1 (ciclo)  Parâmetros gravados no módulo  Parâmetros gravados no módulo

 Podem ser mudados

via SETUP da BIOS

(106)

Parâmetros de Especificação

 Memórias SDRAM são especificadas também

de acordo com a freqüência nominal do barramento, na forma PCxxx

de acordo com a freqüência nominal do barramento, na forma PCxxx

 Exemplos

− PC66 66 MHz

− PC100 100 MHz

(107)

Memórias DDR

(Double Data Rate)

 Também chamadas de DDR SDRAM

Transferência de dados se dá na borda de subida e na borda de descida

Transferência de dados se dá na borda de subida e na borda de descida do clock

 Os módulos DIMM DDR e SDRAM são muito

semelhantes, diferenciando-se em:

 SDRAM

 Módulo tem 168 terminais

Chanfro duplo

 Chanfro duplo  DDR

 Módulo tem 184 terminais

(108)

Memórias DDR

CLK DADOS DADOS DADOS NOP READ NOP DADOS NOP NOP COMANDOS DQ 108 Don’t care

 Comando READ com Latência do CAS = 2

(109)

Memórias DDR2

 Evolução natural das memórias DDR

 Transferem dados nas bordas de subida e  Transferem dados nas bordas de subida e

descida do sinal de clock (como as DDR)

 Diferenças entre DDR2 e DDR:

− Versões encontradas no mercado:

 DDR: 266 MHz, 333 MHz e 400 MHz  DDR2: 533 MHz, 677 MHz e 800 MHz − Alimentação:  DDR: 2,5 V  DDR2: 1,8 V  (consumos equivalentes)

(110)

Memórias DDR2

 Diferenças entre DDR2 e DDR (cont.):

− Encapsulamento:

− Encapsulamento:

 DDR: Módulos DIMM possuem 184 terminais  DDR2: Módulos DIMM possuem 240 terminais

(111)

Memórias DDR2

 Diferenças entre DDR2 e DDR (cont.):

− Arranjos dos chips nos módulos:

− Arranjos dos chips nos módulos:

 DDR: Arranjos TSOP (Thin Small-Output Package)  DDR2: Arranjos BGA (Ball Grid Array)

(112)

Memórias DDR2

 Diferenças entre DDR2 e DDR (cont.):

− Latência do CAS:

− Latência do CAS:

 Valores usuais:

− DDR: 2, 2.5 e 3

− DDR2: 3, 4 e 5

− Memórias DDR2 apresentam uma latência

adicional, denominada AL (Additional Latency)

− A latência total é obtida somando-se o AL ao valor de CL

de CL

− Valor de AL é encontrado na documentação técnica da memória

(113)

Parâmetros de Especificação

 DDR(2)xxx/PC(2)yyyy

− xxx é o dobro da freqüência nominal de clock

− xxx é o dobro da freqüência nominal de clock

suportada pelo chip de memória, em MHz

− yyyy é a taxa de transferência máxima alcançada pelo módulo de memória, em MB/s

 Exemplos:

− DDR400 200 MHz; PC3200 3200 MB/s

− DDR2-667 333 MHz; PC2-5400 5336 MB/s

− DDR2-667 333 MHz; PC2-5400 5336 MB/s

Referências

Documentos relacionados

desejável que o aluno: tenha formação sólida e qualificada, preferencialmente na área de Sistemas de Informação e áreas afins e ter abertura para

Assim, propusemos que o processo criado pelo PPC é um processo de natureza iterativa e que esta iteração veiculada pelo PPC, contrariamente ao que é proposto em Cunha (2006)

In order to obtain such better approximations, we adapt the origi- nal prepivoting method of Beran to this context of tail estimation.... To illustrate the validity of this

After the eval- uation of the influence of each modification of the surfaces on the internal air temperatures and energy consumption of the compressor a final test was done with

Apresenta a Campanha Obra-Prima, que visa a mudança comportamental por meio da conscientização diante de algumas atitudes recorrentes nas bibliotecas da

No Estado do Pará as seguintes potencialidades são observadas a partir do processo de descentralização da gestão florestal: i desenvolvimento da política florestal estadual; ii

The main goal of this study is to determine the relationship between the functional outcome obtained with Oberlin transfer and the patient’s cognitive level, and the time

Esses relatórios não têm feito a distinção entre os impactos do patrimônio material e do imaterial, mas tenho visto programas com impactos reais e potenciais em que as