software básico memória capítulo 2 mitsuo takaki mt2/ [email protected]
TRANSCRIPT
![Page 1: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/1.jpg)
Software Básico
MemóriaCapítulo 2
Mitsuo Takakihttp://www.cin.ufpe.br/~mt2/
![Page 2: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/2.jpg)
Memória Principal
Introdução
![Page 3: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/7.jpg)
Ordenação de Bytes
![Page 8: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/10.jpg)
Problemas na Ordenação de Bytes
![Page 11: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/12.jpg)
Memória Principal
Memória Cache
![Page 13: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/16.jpg)
Bloqueio por Software
![Page 17: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/28.jpg)
Linhas de Cache
![Page 29: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/34.jpg)
Memória Secundária
![Page 35: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/36.jpg)
Hierarquia de Memória
![Page 37: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/38.jpg)
Discos Magnéticos
![Page 39: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/44.jpg)
Estruturas
![Page 45: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/47.jpg)
Latência Rotacional
![Page 48: Software Básico Memória Capítulo 2 Mitsuo Takaki mt2/ mt2@cin.ufpe.br](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/5706383f1a28abb8238f0b61/html5/thumbnails/50.jpg)
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.