arquitetura de computadores - ufersa · esse código foi projetado por richard hamming na bell labs...

113
Arquitetura de Computadores Arquitetura de Computadores - Sistemas de Memória Interna por Helcio Wagner da Silva 1

Upload: haque

Post on 04-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Arquitetura de ComputadoresArquitetura de Computadores- Sistemas de Memória Interna

por

Helcio Wagner da Silva

1

Page 2: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Organização da Memória

Registradores

Memória Cache

Memória Principal

Disco Magnético

CD-RCD-RW

� custo por bit� capacidade� tempo de acesso � freq. de acessopelo processador

CD-RW

DVD-RDVD-RW

Fita Magnética

2

Page 3: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

− Associativo3

Page 4: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Método de Acesso Sequencial

� Os dados são organizados em registros sequenciaissequenciais

� Exemplo: fitas magnéticasTrilha 01Trilha 02Trilha 03Trilha 04Trilha 05Trilha 06Trilha 07

Registrofísico

Trilha 07Trilha 08Trilha 09

Espaço entre registros

� O tempo de acesso é variável

(bit de paridade)

4

Page 5: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 auma vizinhança genérica do registro, e emseguida por uma busca seqüencial

� O tempo de acesso é variável

Exemplo: HD� Exemplo: HD

Dado buscado(trilha 02, setor 25)

Movimentodo braço

Movimentodo disco

5

Page 6: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 sistemasde memória cache

P1

P2

P3

P4

...P8

000001010011

111

...

endereçosacesso

6

Page 7: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Método de Acesso Associativo

� Tipo de acesso aleatório que comparasimultaneamente certo número de bits de umasimultaneamente certo número de bits de umapalavra com todas as palavras da memória,determinando quais delas contêm o mesmopadrão de bits

� Uma palavra é buscada com base em parte deseu conteúdo, e não de acordo com o seuendereçoseu conteúdo, e não de acordo com o seuendereço

� Exemplo: Memórias cache

7

Page 8: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 erros8

Page 9: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Tempo de Acesso (TA)

� 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 momentoem que os dados são armazenados ou se tornamdisponí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

leitura-escrita na posição desejada

9

Page 10: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Tempo de Ciclo (TC)

� Aplicável principalmente às memórias deacesso aleatórioacesso aleatório

� Compreende o tempo de acesso e o tempoadicional requerido antes que um segundoacesso possa ser iniciado

� O tempo adicional é necessário para odesaparecimento de transientes nas linhas dedesaparecimento de transientes nas linhas desinal

10

Page 11: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Taxa de Transferência (R)

� Taxa na qual os dados podem ser transferidosde ou para a unidade de memóriade 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/(TN – 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− TA é o tempo de acesso médio

11

Page 12: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Tecnologia de SemicondutoresTipo de memória

Memória de acessoaleatório (RAM)

Categoria

Memória de leitura e de

Mecanismo deapagamento

Eletricamente, em

Mecanismo deescrita

Eletricamente

Volatilidade

Volátilaleatório (RAM)

Memória apenas deleitura (ROM)

ROM Programável (PROM)

PROM Apagável (EPROM)

leitura e deescrita

Memória apenas de

leitura

emní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 FlashMemória

principalmentede leitura

Eletricamente, em nível de blocos

Eletricamente, em nível de Bytes

Eletricamente

12

Page 13: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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ógicasde 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

mais caras

13

Page 14: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memória ROM

� Possui um padrão permanente de dados, quenão pode ser alteradonão pode ser alterado

� Os dados são gravados na pastilha durante oprocesso de fabricação

Memória PROM

� O processo de gravação (programação) éefetuado eletricamente, e pode ser feito pelofornecedor ou pelo cliente após a fabricação dapastilha

14

Page 15: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 ascélulas de memória antes da gravação denovos dados

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

15

Page 16: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memória EEPROM

� Tanto a escrita como o apagamento são feitoseletricamenteeletricamente

� Não há necessidade de apagamento integral;apenas o Byte ou os Bytes endereçados sãoatualizados

� A operação de escrita leva um tempoconsideravelmente maior que a de leitura; daconsideravelmente maior que a de leitura; daordem de centenas de microsegundos por Byte

� É mais cara e menos densa que a EPROM

� Combina não-volatilidade e flexibilidade16

Page 17: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memória Flash

� Apresenta características intermediárias entre a EPROM e a EEPROMEPROM 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

17

Page 18: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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élulaSeleção

deEntrada Seleção Estado

(a) Escrita (a) Leitura

18

Page 19: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplos de Arranjos Físicos das Células

� Exemplo #01: arranjo físico é igual ao arranjoló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

P220

- 1

...

19

Page 20: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplos de Arranjos Físicos das Células

� Formato da pastilha do Exemplo #01:

123456789

30292827262524

303132A19

A16A15A12A12

A7A6A5A4A3

VccA18A17A14A13

Vpp

A8A9A11

Pinos deendereço

Pinos deendereço

Pino de alimentação

Pino de

32 pinos1,5 cm2

910111213141516

2423222120191817

A3A2A1A0D0D1D2

Vss

VppA10CED7D6D5D4D3

Pinos deDados

Pinos deDados

Chip Enable

Pino deTerra

Pino de programação

20

Page 21: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplos de Arranjos Físicos das Células

� Exemplo #02: arranjo em matrizes quadradascontendo grupos de célulascontendo grupos de células

...

...

...2048 linhas

2048 colunas

Dec

odifi

cado

rde

linh

a

DRAM de 16 Mbits (ou 2 MB)

...

............

Decodificador de coluna

Dec

odifi

cado

r

MUX11

11

11

4

21

Page 22: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplos de Arranjos Físicos das Células

� Formato da pastilha do Exemplo #02:

16 pinos

123456

242322212019NC

D0D1

VssVcc

CASOEA9

D3D2

Pinos deDados

Pino de Terra

Column AddressStrobe

Pino de Alimentação

WERAS

Pinos deDados

OutputEnable

Row Address Strobe

Write Enable

16 pinos

789101112 13

141516

191817 A7

A6

A3A2A1A0

A10 A8A9

A4A5

Pinos deendereço

Pinos deendereço

Vcc Vss

Enable

Pino de TerraPino de

Alimentação

Number of Chip

22

Page 23: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplos de Arranjos Físicos das Células

� O arranjo em matrizes quadradas de grupos decélulas possibilita pastilhas mais densascélulas possibilita pastilhas mais densas

� A adição de uma linha de endereço faz comque se a quantidade de linhas e colunas damatriz seja duplicada

� A capacidade total de memória da pastilha é,portanto, quadruplicada

23

Page 24: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

21

...

...

...

MARMBR

DRAM de256 KB

...

...

...... .........

Decodificador de Coluna

512 linhas

9

Pastilha #08

8

7...

24

Page 25: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Organização em Módulos

1/5121/

512 A1

1/512

1/51

2 B1

1/512

1/51

2 C1

1/512

1/51

2 D1MAR

1/512

1/512

1/51

2 A2

A

1/512

1/512

1/51

2 B2

B

1/512

1/512

1/51

2 C2

C

1/512

1/512

1/51

2 D2

D

9

9

28

2

1

...

MBR

CE

CECE

CECE

CE

CE

CE

1/512

1/51

2 A8

1/512

1/51

2 B8

1/512

1/51

2 C8

1/512

1/51

2 D82

Habilitaçãode Grupo

Grupo AGrupo BGrupo CGrupo D

CE CECECE

DRAM de 1 MB25

Page 26: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 placana placa

� Upgrade de memória ou substituição de módulos era difícil

26

Page 27: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Formas de Encapsulamento

� Módulos SIMM (Single Inline Memory Module)

− 30 vias8 MB

− 30 vias

− 72 vias

8 MB

8 MB8 MB

27

Page 28: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Formas de Encapsulamento

� Módulos SIMM de 30 vias:

� Observações:

− Os µPs 486 e 386DX acessavam a memória usandopalavras de 32 bits

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

28

Page 29: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Formas de Encapsulamento

� Módulos SIMM de 72 vias:

� Observações:

− Tanto o µP 486 quanto o Pentium trabalham internamentecom palavras de 32 bits

− No entanto, o µP Pentium acessa a memória usandopalavras de 64 bits

29

Page 30: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 palavrasde 64 bits

30

Page 31: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Formas de Encapsulamento

� Comparação entre os tamanhos:

Módulo SIMM

Módulo DIMM

Módulo SIMMde 30 vias

Módulo SIMMde 72 vias

31

Page 32: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Detecção e Correção de Erros

� Todo sistema de memória baseado emsemicondutor está sujeito a errossemicondutor 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 principalmodernos inclui uma lógica de detecção ecorreção de erroscorreção de erros

32

Page 33: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Detecção e Correção de Erros

� Um código de correção é caracterizado pelonúmero de bits incorretos que ele é capaz dedetectar e corrigir em uma única palavranúmero de bits incorretos que ele é capaz dedetectar e corrigir em uma única palavra

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

� Esse código foi projetado por Richard Hammingna Bell Labs

33

Page 34: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Detecção e Correção de Erros

� Visualização do Códigode Hamming

� Palavras de 4 bits

� Diagramas deVenn

34

Page 35: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

KK ComparaçãoMemória

fKK

Resultados possíveis:

� Nenhum erro é detectado (linha azul) � Um erro é detectado e é possível corrigi-lo (linha amarela) � Um erro é detectado, mas é impossível corrigi-lo (linha vermelha) 35

Page 36: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Projeto de um Código de Correção de Erro Único (SEC)

K 'M

ComparaçãoMemória

fK '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 dosbits de teste – nenhuma correção é necessária

� Se a Palavra Síndrome contiver mais de um bit 1, o valor numérico daPalavra Síndrome indica a posição do bit em que ocorreu erro – a palavra écorrigida invertendo-se o valor desse bit de dado

36

Page 37: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Projeto de um Código de Correção de Erro Único (SEC)

� Como pode ocorrer erro em qualquer um dos M bits dedados ou dos K bits de teste, deve-se ter:

Bits de testeBits de dados Aumento (%)

8 4 50,00

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

16

32

64

128

256

5

6

7

8

9

31,25

18,75

10,94

6,25

3,52 37

Page 38: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Projeto de um Código de Correção de Erro Único (SEC)

Posição do bit10

Posição do bit2

Bits deTeste

Bits deDados

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

Page 39: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Projeto de um Código de Correção de Erro Único (SEC)

� Exemplo:

M8 M7 M6 M5 M4 M3 M2 M1

0 0 00 01 1 1 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

C8 = M5 + M6 + M7 + M8 = 1 + 1 + 0 + 0 = 0

39

Page 40: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 01 1 1 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

C8 = M5 + M6 + M7 + M8 = 1 + 1 + 0 + 0 = 0

40

Page 41: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 01 1 1 1

C2

1

C1

1

C4

1

C8

0

123456789101112

41

Page 42: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memória Cache

� Todos os sistemas de memória atuaiscontemplam uma memória cachecontemplam uma memória cache

CPU MemóriaCache

MemóriaPrincipal

Transferência de Palavras

Transferênciade Blocos

� Uma memória principal grande e lenta écombinada com uma memória cache grande erápida

42

Page 43: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memória Cache

� Em qualquer instante, um subconjunto dosblocos da memória principal reside na cacheblocos da memória principal reside na cache

0123

Blocos(K palavras)

Tamanhoda

Palavra

0123

...

BlocoRótulo

K - 1

...

2n - 1

Bloco

C - 1

Tamanho do Bloco(K palavras)

M = 2n /K BlocosC linhasC <<< M

43

Page 44: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memória Cache

Endereço

Área de armazenamentotemporário de endereço

Processador MemóriaCache

Controle Controle

Bar

ram

ento

do

sist

ema

Dados

Área de armazenamentotemporário de dados

Bar

ram

ento

do

sist

ema

44

Page 45: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

O Bloco que contém

Recebe endereçoRA da CPU

INÍCIO

Efetua acesso à memóriaprincipal para obter o

Não

Operação de Leitura em Memória Cache

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

Obtém o conteúdoda palavra no endereço

RA e entrega para a CPU

principal para obter o bloco que contém RA

Aloca linha da cachepara o bloco da

memória principalSim

Não

Carrega o bloco da memória principal na

linha da cache

Entrega a palavraem RA para a CPU

FIM45

Page 46: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

Page 47: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 deacesso da memória cache

− Deve ser pequena para que o custo total por bitseja 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− O espaço limitado na placa de circuitos

47

Page 48: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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− Mapeamento Associativo por Conjuntos

48

Page 49: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Suposições

000000

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

000000000001000002000003

Bloco 0

0000

Bloco (4 Bytes)

000004000005000006000007

Bloco 1

00000800000900000A00000B

Bloco 2

00000C00000D Bloco 3

4M (222) blocos de 4 B� Memória cache de 64 KB, organizadaem 16 K (214) linhas de 4 B

� Os dados são transferidos da memóriaprincipal para a cache em blocos de 4B

P0P1P2P3P4P5P6P7P8P9P10P11P12P13

...

Bloco 222 - 1

0000

...

00000D00000E00000F

Bloco 3

FFFFFFFFFFFEFFFFFDFFFFFC

... ...

00010002

3FFF

Memória cache Memória principal

P14P15

P(224 - 4) P(224 - 3)P(224 - 2) P(224 - 1)

49

Page 50: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Direto

� Cada bloco da memória principal é mapeadoem uma única linha da cacheem 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

50

Page 51: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Direto

� Segundo i = j módulo m, cada bloco damemória principal é assim mapeado em umalinha da memória cache:memória principal é assim mapeado em umalinha 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 principalmapeados na linha

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

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

1

m - 151

Page 52: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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)= Bloco 3FC000 = 000000 + 4 x 3FC000 = FF0000

52

Page 53: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 3FFFFF = 000000 + 4 x 3FFFFF = FFFFFC

53

Page 54: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Direto

� Substituindo os valores, teremos:

000000, 010000, ..., FF0000

000004, 010004, ..., FF0004

0

1

Linha da memória cache Blocos da memória principalmapeados na linha

00FFFC, 01FFFC, ..., FFFFFC214 - 1

54

Page 55: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Direto

� Interpretação do endereço da memória principal:principal:

PalavraLinha da cacheRótulo

ws

s - r r

No nosso caso:

Identificação de um dentre 2S blocos

� No nosso caso:

PalavraLinha da cacheRótulo

222

8 14 55

Page 56: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplo de Mapeamento Direto

0000 135792460004

FFF8FFFC

00

Rótulo

Linha+

palavra Dados

......

FFFC

0000 777777770004 11235813

339C FEDCBA98

FFFC 12345678

00 1357924616 11235813

16 FEDCBA98

FF 1122334416 12345678

16

00000001

3FFE3FFF

0CE7

Rótulo Dados Númerode linha

8 32 bits

...

00000004

FFF8 11223344FFFC 24682468

FF

8bits

32 bits

32 bits 56

Page 57: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Rótulo Linha PalavraP0P1

P2B0wrs - r

3'

Exemplo de Leitura no Mapeamento Direto

P2P3

B0wrs - r

1

2

3

3

4

...

Comparação

Acerto na cache P4jP(4j+1)

P(4j+2) P(4j+3)

Falha na cache

Bj

3

3' 4'

57

Page 58: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 é trazidopara a memória cache

� Desvantagem:− Complexidade do conjunto de circuitos necessários

para a comparação simultânea dos rótulos de todasas linhas da memória cacheas linhas da memória cache

58

Page 59: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 emuma mesma linha, esses blocos serão trocadoscontinuamente na cache – e a taxa de acertos serácontinuamente na cache – e a taxa de acertos serábaixa

59

Page 60: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Associativo

� Permite que cada bloco da memória principalseja carregado em qualquer linha da memóriacacheseja carregado em qualquer linha da memóriacache

� Interpretação do endereço da memóriaprincipal:

PalavraRótulo

ws

Identificação de um dentre 2S blocos

� No nosso caso:

PalavraRótulo

222

60

Page 61: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Associativo

� O rótulo corresponde aos 22 bits maissignificativos do endereçosignificativos do endereço

� Exemplos de cálculo de rótulos− 000000 -> 000000− 16339C -> 058CE7− FFFFF4 -> 3FFFFD− FFFFF8 -> 3FFFFEFFFFF8 -> 3FFFFE− FFFFFC -> 3FFFFF

61

Page 62: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

000000 13579246000004

FFF8FFFC

Endereço Dados

Exemplo de Mapeamento Associativo

......

FFFC

16339C FEDCBA98

3FFFFE 13579246058CE7 FEDCBA98

3FFFFD 33333333000000 112233443FFFFF 12345678

00000001

3FFE3FFF

3FFD

Rótulo Dados Númerode linha

32 bits

163398

1633A0

22 bits

...

FFFFF4 33333333FFFFF8 11223344FFFFFC 24682468

32 bits

32 bits

22 bits

62

Page 63: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Rótulo PalavraP0P1

P2B0ws

2'

Exemplo de Leitura no Mapeamento Associativo

P2P3

B0ws

1

2

2

3

...

Comparação

Acerto na cacheP4j

P(4j+1) P(4j+2)

P(4j+3)

Falha na cache

Bj

2

2'3'

63

Page 64: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Associativo por Conjuntos (de k linhas)

� Combina as vantagens do mapeamento diretoe do mapeamento associativo e diminui suasdesvantagense do mapeamento associativo e diminui suasdesvantagens

� A memória cache é dividida em v conjuntos,cada qual com k linhas

m = v x ki = j módulo v

Em que:� i : número do conjunto da memória cache� j : número do bloco da memória principal� m : número de linhas da memória cache

64

Page 65: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Associativo por Conjuntos (de k linhas)

� Interpretação do endereço da memóriaprincipal:

Identificação de um dentre 2S blocosprincipal:

PalavraConjuntoRótulo

ws

s - d d

Identificação de um dentre 2S blocos

� Considerando em nosso caso conjuntos deduas linhas, temos:duas linhas, temos:

PalavraConjuntoRótulo

222

9 1365

Page 66: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Mapeamento Associativo por Conjuntos (de k linhas)

� Segundo i = j módulo v, cada bloco da memóriaprincipal é assim mapeado em um conjunto damemória cache:principal é assim mapeado em um conjunto damemó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 principalmapeados no conjunto

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

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

1

v - 166

Page 67: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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)= Bloco 3FE000 = 000000 + 4 x 3FE000 = FF8000

67

Page 68: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 3FFFFF = 000000 + 4 x 3FFFFF = FFFFFC

68

Page 69: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 principalmapeados no conjunto

007FFC, 00FFFC, ..., FFFFFC213 - 1

69

Page 70: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Exemplo de Mapeamento Associativo por Conjuntos

0000 135792460004

7FF87FFC

000

Rótulo

Conjunto+

palavra Dados

......

7FFC

0000 777777770004 11235813

339C FEDCBA98

7FFC 12345678

000 13579246001 11235813

02C FEDCBA98

1FF 11223344001 12345678

02C

00000001

1FFE1FFF

0CE7

Rótulo Dados Númerode conj.

9 32 bits

001 77777777

1FF 24682468

9 32 bits

DadosRótulo

...

00000004

FFF8 11223344FFFC 24682468

1FF

9bits

32 bits

32 bits

9bits

32 bits

70

Page 71: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

P0P1P2 B0ws - d

3'

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

Rótulo Conjunto Palavra

d

Comparação

P2P3

B0ws - d

1

2

2

3

...

C0

C1

C2

d

4Comparação

Acerto na cacheP4j

P(4j+1) P(4j+2) P(4j+3)

Falha na cache

Bj

3

3'4'

C(v-1)

71

Page 72: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 pequenoadicional relativamente pequeno− K > 4 : sem melhoras significativas de desempenho

72

Page 73: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Algoritmos de Substituição

� Quando um novo bloco é trazido para a cache,um dos blocos existentes deve ser substituídoum 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 eassociativo por conjuntos, é necessário umalgoritmo de substituiçãoRecomenda-se a implementação em HW, por� Recomenda-se a implementação em HW, pormotivo de desempenho

73

Page 74: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 inferioraos demais

74

Page 75: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Políticas de Substituição

� Antes que um bloco residente na memóriapossa ser substituído, é necessário verificar seele foi alterado na memória cachepossa ser substituído, é necessário verificar seele foi alterado na memória cache

� Se isso não ocorreu, então o novo bloco podeser escrito sobre o bloco antigo

� Caso contrário, então a memória principal deveser atualizadaProblema encontrado:� Problema encontrado:

− A memória principal pode ser utilizada tanto poroutros processadores quanto por dispositivos deE/S

75

Page 76: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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:

� Geração de tráfego de memória considerável

76

Page 77: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

− Acesso à memória por módulos de E/S deve ser feita a partir da cache

77

Page 78: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 atualizadopela 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 nacache (write back)

78

Page 79: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

� Um tamanho de duas a oito palavras está próximo do ótimo 79

Page 80: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

80

Page 81: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

81

Page 82: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias Regulares

� Foram o primeiro tipo de memória usado em microsPC

� Acesso era feito enviando primeiro o endereço RAS eem seguida o endereço CAS, da forma mais simplespossível

� Eram fabricadas inicialmente com tempos de acessode 150 ns; depois foram fabricadas com tempos deacesso 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 dosprimeiros 386

� Eram encontradas apenas sob a forma de módulosDIP

82

Page 83: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias Regulares

83

Page 84: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias FPM (Fast Page Mode)

� Transferem dados em rajadas de 4 palavras em umamesma linha, ou página

� Baseadas na idéia de que os dados são gravadosseqüencialmente na memória

� Encontradas na forma de pentes SIMM de 30/72 viase com tempos de acesso de 80, 70 e 60 ns

� Foram usadas em computadores 386, 486 e nosprimeiros Pentium

� Tempos de acesso podem também ser dados emtermos de ciclos de clock da placa mãe

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

84

Page 85: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias FPM (Fast Page Mode)

85

Page 86: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias FPM (Fast Page Mode)

� Uma nova operação deleitura só pode serleitura só pode seriniciada quando aoperação anterior éencerrada

Pequeno atraso imposto

86

Page 87: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias EDO (Extended Data Output)

� Criadas em 1994Caracterizadas pela existência de um pipeline� Caracterizadas pela existência de um pipelineinterno à memória

− Uma nova leitura pode ser iniciada sem que aleitura 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 72vias

87

Page 88: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias EDO (Extended Data Output)

88

Page 89: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

� As memórias anteriores trabalham em seuspróprios ritmos, independentemente do clockda placa mãepróprios ritmos, independentemente do clockda placa mãe

− Uma FPM projetada para funcionar em placas paraµP 386 e 486 (25/33 MHz) funciona perfeitamenteem placas para µP Pentium (66 MHz)

� Por isso, elas são tidas como memóriasassíncronas

� Todas as ações em uma memória SDRAMestão sincronizadas com a borda de subida dosinal de clock da placa mãe

89

Page 90: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

� Estrutura:SDRAM de 4M x 4 bits = 2 MB

Dec

odifi

cado

rde

Lin

ha

Lógicade

Controle 2048x1024x42048x1024x4

Dec

odifi

cado

rde

Lin

ha

CKE

CLK

CS#

WE#CAS#RAS#

Bufferde Linha

Bufferde

Saída

Bufferde

EntradaDQ0

...DQ3

Registrador de Modo

Decodificadorde Coluna

Decodificadorde Coluna

Lógica deControle de Banco

Bufferde

Coluna

90

Page 91: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

� Habilitado� Desabilitado 91

Page 92: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

A0A1A2A3A4A5A6A7A8A9A10BA

M0M1M2M3M4M5M6M7M8M9M10M11

TamanhoTamanhoda rajadaBTLatência Latência

do CASCódigo Código de Op.WBReservado

M0M1M2M3M4M5M6M7M8M9M10M11

M2 M1 M0Tamanho 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

Page 93: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

A0A1A2A3A4A5A6A7A8A9A10BA

M0M1M2M3M4M5M6M7M8M9M10M11

TamanhoTamanhoda rajadaBTLatência Latência

do CASCódigo Código de Op.WBReservado

M0M1M2M3M4M5M6M7M8M9M10M11

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

93

0 1 1 3

1 0 0 Reservado

1 0 1 Reservado

1 1 0 Reservado

1 1 1 Reservado

M8 M7 M6-M0 Modo de operação

0 0 definido Normal

- - Reservados

Page 94: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

� Configuração do Registrador de Modo se dáatravés do comando LOAD MODE REGISTERatravé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 duranteestados de esperaestados de espera

− ACTIVE� Abre (ativa) uma linha de um banco para acesso

subsequente− BA: endereço do banco− A0-A10: endereço da linha no banco 94

Page 95: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

CLK

CKE

CS#

RAS#

CAS#

• Comando ACTIVE

95

CAS#

WE#

A0-A10

BA

Endereço da Linha

Endereço do Banco

Don’t care

Page 96: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 ouescrita

− 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� Leitura/escrita de dados 96

Page 97: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM

(Synchronous DRAM)

CLK

CKE

CS#

Comando READRAS#

CAS#

WE#

Endereço

• Comando READ

97

A0-A9

BA

Endereço da Coluna

Endereço do Banco

Don’t care

A10Habilitar/desabilitar auto precharge

Page 98: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

CLK

NOPREAD NOP

DADOS DADOS

COMANDOS

DQ

98

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

Don’t care Indefinido

Page 99: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

CLK

READ NOP

DADOSDADOS

NOP NOPCOMANDOS

DQ

99

Don’t care Indefinido

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

Page 100: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias SDRAM(Synchronous DRAM)

CLK

DADOS

NOPREAD NOP

DADOS

NOP NOPCOMANDOS

DQ

100

Don’t care Indefinido

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

Page 101: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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� Conclusão: SDRAM é 47 % mais rápida que a EDO

101

Page 102: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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çãode linha no terminal RAS até a sua ativaçãopropriamente dita

− CMD: define o tempo compreendido entre a seleção deum banco (CS – Chip Select) e a emissão de umcomando ACTIVE

102

Page 103: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Parâmetros de Especificação

CLK

NOP

CLK

ACTIVE NOP NOP READ/WRITE

Don’t care

COMANDOS

tRCD

103

� Visualização do parâmetro tRCD

Page 104: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Parâmetros de Especificação

CLK

BANCO a,COL n

READREAD NOP PRECHARGE NOPCOMANDOS

BANCO a,COL m

ENDEREÇOS

tRP

104

DADOSDADOS

Don’t care Indefinido

DQ

� Visualização do parâmetro tRP

Page 105: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

− Configuração do Registrador de Modo 105

Page 106: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Parâmetros de Especificação

� Memórias SDRAM são especificadas tambémde acordo com a freqüência nominal dobarramento, na forma PCxxxde acordo com a freqüência nominal dobarramento, na forma PCxxx

� Exemplos− PC66 → 66 MHz− PC100 → 100 MHz− PC133 → 133 MHz

106

Page 107: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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 muitosemelhantes, diferenciando-se em:

� SDRAM

� Módulo tem 168 terminais

Chanfro duplo

107

� Chanfro duplo

� DDR

� Módulo tem 184 terminais

� Chanfro único

Page 108: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

Memórias DDR

CLK

DADOSDADOS DADOS

NOPREAD NOP

DADOS

NOP NOPCOMANDOS

DQ

108

Don’t care

� Comando READ com Latência do CAS = 2− Valores usuais para CL: 2, 2.5 e 3

Page 109: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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)

109

Page 110: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

110

Page 111: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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)

111111

Page 112: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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ênciaadicional, denominada AL (Additional Latency)

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

112

de CL− Valor de AL é encontrado na documentação técnica

da memória

Page 113: Arquitetura de Computadores - UFERSA · Esse código foi projetado por Richard Hamming na Bell Labs 33. Detecção e Correção de Erros Visualização do Código de Hamming Palavras

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

� Parâmetros gravados no módulo

113