50
Software Básico Memória Capítulo 2 Mitsuo Takaki http://www.cin.ufpe.br/~mt2/ [email protected]

Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ [email protected]

Embed Size (px)

Citation preview

Page 1: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Software Básico

MemóriaCapítulo 2

Mitsuo Takakihttp://www.cin.ufpe.br/~mt2/

[email protected]

Page 2: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memória Principal

Introdução

Page 3: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução

• É a parte do computador onde estão armazenados os programas e os dados.

• Composta de células endereçáveis.– Armazenam informações.– Possui um número chamado de endereço.• Usado pelos programas para referenciá-la.

– Todas as células possuem o mesmo número de bits.

Page 4: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução

• A memória pode ser vista como um grande repositório (vetor) de células.

• O endereço é equivalente ao índice da posição da célula no vetor.

Page 5: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução

• O número de bits usado no endereçamento determina a quantidade de células endereçáveis.– 32 bits pode endereçar 4 bilhões de células.

• A célula é a menor unidade endereçável.

Page 6: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Ordenação de Bytes

• Os bytes em uma palavra podem ser ordenados da esquerda para direita ou da direita para esquerda.

Page 7: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Ordenação de Bytes

Page 8: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Ordenação de Bytes

• Computadores como SPARC e mainframes da IBM utilizam a estratégia big endian.

• Computadores da família Intel utilizam little endian.

Page 9: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Problemas na Ordenação de Bytes

• Não existe uma forma certa ou errada, ambas são válidas e consistentes.

• Problemas podem ocorrer no transmissão de dados de uma máquina little endian para uma big endian, ou vice-versa.

Page 10: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Problemas na Ordenação de Bytes

Page 11: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Problemas na Ordenação de Bytes

• A solução proposta é utilizar cabeçalhos na frente de cada item de dados.– Informa o tipo do dado e o seu comprimento.– Não é eficiente, produz overhead.

Page 12: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memória Principal

Memória Cache

Page 13: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução• As CPUs sempre se mantiveram mais rápidas que

as memórias.

• Quanto mais lenta for a memória, mais ciclos de CPU serão desperdiçados.

• Sempre que a CPU precisa de um dado que não está nos registradores, este é buscado na memória.– O que a CPU faz enquanto a informação não chega?

Page 14: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Formas de Esperar por um Dado

• Existem duas formas de resolver este problema:– A CPU é bloqueada quando esta tenta ler uma

palavra de memória antes de ela chegar. (HW)– O compilador não gera código que usa palavras

antes de estarem prontas. (SW)

Page 15: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Bloqueio por Software

• O compilador introduz instruções NOP.– Instruções que não realizam nada.

• Estas pausas são também conhecidas como bolhas.

Page 16: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Bloqueio por Software

Page 17: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Bloqueio por Software

• NOPs também são utilizados em cracks.

• Instruções são substituídas por NOPs.– Verificação de serial.– Autenticação.

Page 18: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Exemplo de Crack em Javapublic String getContent(User user) {

if (user.equals(this.owner)) {return content;

} else {throw new AuthenticationException("Wrong user!!");

}}

...public boolean equals(Object o) {

User other = (User) o;boolean result = true;

result = result & (other.password.equals(this.password));result = result & (other.username.equals(this.username));

return result;}

Page 19: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Exemplo de Crack em Javapublic java.lang.String getContent(authentication.User); Code: 0: aload_1 1: aload_0 2: getfield #17; //Field owner:Lauthentication/User; 5: invokevirtual #26; //Method authentication/User.equals:

(Ljava/lang/Object;)Z 8: ifeq 16 11: aload_0 12: getfield #15; //Field content:Ljava/lang/String; 15: areturn 16: new #32; //class authentication/AuthenticationException 19: dup 20: ldc #34; //String Wrong user!! 22: invokespecial #36; //Method

authentication/AuthenticationException."<init>":(Ljava/lang/String;)V 25: athrow

Page 20: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Exemplo de Crack em Javapublic java.lang.String getContent(authentication.User); Code: 0: aload_1 1: aload_0 2: getfield #17; //Field owner:Lauthentication/User; 5: invokevirtual #26; //Method authentication/User.equals:

(Ljava/lang/Object;)Z 8: nop 9: aload_0 10: getfield #15; //Field content:Ljava/lang/String; 13: areturn 14: new #32; //class authentication/AuthenticationException 17: dup 18: ldc #34; //String Wrong user!! 20: invokespecial #36; //Method

authentication/AuthenticationException."<init>":(Ljava/lang/String;)V 23: athrow

Page 21: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Exemplo de Crack em Java

• A instrução de verificação da autenticidade do usuário é substituída por uma instrução NOP.

• A autenticação é omitida.– By-pass

Page 22: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memórias Cache

• Para reduzir o impacto dos problemas de sincronização, uma memória de alta velocidade é introduzida na CPU.

• Chamada de memória cache.

• É utilizada para armazenar palavras de memória utilizadas com mais freqüência.

Page 23: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memória Cache

• Quando a CPU precisa de uma palavra, ela verifica a cache.

• Se a palavra buscada não está na cache, então é buscada na memória principal.

Page 24: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memória Cache

• Sabe-se que quando uma palavra é referenciada no endereço A, a próxima referência está na vizinhança de A.

• Um exemplo disto é o próprio programa.– Exceto em casos de desvios e chamadas a

procedimentos.

Page 25: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memória Cache

• Reduz o tempo gasto com acesso à memória armazenando os dados freqüentes.– Grande parte do tempo de execução é gasto em

laços.– Um programa de manipulação de matrizes fará

muitas referências à mesma matriz.

Page 26: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Princípio da Localidade

• O princípio da localidade é a observação de que referências à memória, feita em qualquer intervalo de tempo curto, tendem a usar apenas uma pequena fração da memória total.

• Quando uma palavra é referenciada, ela e seus vizinhos são copiados para a cache.

Page 27: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Linhas de Cache

• Memórias principais e caches são divididos em blocos de tamanho fixo.– Chamados de linhas de cache.

• Quando uma busca na cache falha, toda a linha é carregada.

Page 28: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Linhas de Cache

Page 29: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Projeto de Cache

• Algumas questões são importantes no projeto de cache.

1.Tamanho da cache.– Quanto maior o tamanho da cache, melhor seu

funcionamento, porém maior é o custo.2.Tamanho da linha de cache.– Uma cache de 16kb pode ser dividida em até

1024 linhas de 16 bytes, 2048 linhas de 8 bytes...

Page 30: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Projeto de Cache

3. Organização da cache.– Como são controladas as palavras de memória

que estão sendo mantidas no momento.

4. O número de caches.– É comum um ter uma cache primária dentro do

chip, uma cache secundária fora do chip e uma terceira mais adiante.

Page 31: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Projeto de Cache

5. Localização das instruções e dos dados.– Instruções e dados podem ser mantidos em

locais diferentes.– Pode ser classificada como:• Cache unificada• Cache dividida

Page 32: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Projeto de CacheCache Unificada

• Projeto mais simples.

• Mantém um equilíbrio entre as buscas de instruções e buscas de dados.

• Mantém as instruções e os dados na mesma cache.

Page 33: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Projeto de CacheCache Dividida

• Tendência nos projetos atuais.– Também conhecido como arquitetura Harvard.

• Utiliza uma cache dividida, separando instruções dos dados.– Permite acesso paralelo às instruções e dados.– Instruções não são modificadas durante a execução,

portanto, o conteúdo da cache de instruções nunca é escrito de volta na memória.

Page 34: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Memória Secundária

Page 35: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução

• A memória principal sempre será muito pequena.

• O usuário sempre quer usar mais memória do que tem disponível.

Page 36: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Hierarquia de Memória

Page 37: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Hierarquia de Memória

• A medida que desce na hierarquia, três parâmetros aumentam:– O tempo de acesso.– Capacidade de armazenagem.• Com exceção das fitas e discos óticos.

– O preço por bit.

Page 38: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Discos Magnéticos

Page 39: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução

• Composto de um ou mais pratos de alumínio com um revestimento magnetizável.

• Possui um cabeçote de disco com uma bobina de indução.– Flutua logo acima da superfície, apoiado sobre um

colchão de ar.– Em discos flexíveis o cabeçote toca a superfície.

Page 40: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Introdução

• O cabeçote alinha as partículas magnéticas definindo um valor no setor.– Alinha para esquerda ou para direita.

• A seqüência circular de bits escritos quando o disco faz uma rotação completa é denominada trilha.

Page 41: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Estruturas

• Cada trilha é dividida em setores.– Possui um número fixo de setores.

• Cada setor possui um preâmbulo que permite a sincronização do cabeçote antes de uma leitura ou escrita.

Page 42: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Estruturas

• Após os dados, está um código de correção de erros.

• Há uma lacuna entre os setores chamada de lacuna de intersecção.

Page 43: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Estruturas

• Os discos possuem braços móveis que deslocam-se para dentro e para fora.– Permite acessar diferentes distâncias radiais.

• A cada distância radial pode ser escrita uma trilha diferente.

Page 44: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Estruturas

Page 45: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Estruturas

• A maioria dos discos é composta de vários pratos empilhados na vertical.

Page 46: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Busca de Dados

• Para ler ou escrever um setor, o braço deve se posicionar até a posição radial correta.– Esta ação é chamada de busca (seek).

• Assim que o cabeçote é posicionado, o disco deve ser rotacionado até o setor ser posicionado sob o cabeçote.– Este tempo é chamado de latência rotacional.

Page 47: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Latência Rotacional

Page 48: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Controlador de Disco

• Todo drive possui um controlador de disco.– Um chip que controla o drive.

• Pode conter uma CPU completa.

• Deve aceitar comandos de software.– Read, write e format.

Page 49: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Controlador de Disco

• Controla o movimento do braço, detecta e corrige erros.

• Deve converter bytes de 8 bits lidos da memória em uma corrente serial de bits e vice-versa.

Page 50: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br

Discos IDEs

• Possui o controlador integrado ao drive.– Discos anteriores possuíam uma placa separado para

o controlador.

• Realiza leitura e escrita da seguinte forma:– O SO coloca os parâmetros nos registradores da CPU

e chama o BIOS (Basic Input Output System);– O BIOS emite as instruções para carregar os

registradores do controlador.– O controlador inicia as transferências.