Disciplina Arquitetura (Cap 4 - Memória)
79 pág.

Disciplina Arquitetura (Cap 4 - Memória)


DisciplinaArquitetura de Computadores3.609 materiais28.371 seguidores
Pré-visualização4 páginas
\uf06e As palavras de memória mais usadas pelo processador 
devem permanecer armazenadas na cache. Somente 
no caso de ela não estar armazenada na cache é que 
a busca se dará na memória principal. 
Memória Cache 
 
 
\uf06e Fabricada com tecnologia semelhante à da CPU (possui 
tempos de acesso compatíveis, resultando numa 
considerável redução da espera da CPU para receber 
dados e instruções da cache, ao contrário do que 
acontece em sistemas sem cache). 
\uf06e Atualmente há diversos tipos de memória cache, 
utilizados em sistemas de computação modernos: Cache 
para a Memória Principal (RAM cache), Cache para 
Disco. 
\uf06e Podem existir cache só para instruções e só para dados. 
\uf06e Podem existir caches primárias (dentro do processador) 
e outra secundária (fora do chip do processador) e até 
uma terceira cache mais externa. 
 
Memória Cache - Parâmetros 
 
\uf06e Tempo de acesso/ciclo de memória (Ex.: 5 a 7 ns). 
\uf06e Capacidade - deve-se conciliar o compromisso de 
uma apreciável capacidade com a não-elevação 
demasiada de seu preço. Ex.: 16K a 2 MB. 
\uf06e Volatilidade - dispositivos voláteis. 
\uf06e Tecnologia - circuitos eletrônicos de alta velocidade. 
Em geral, são memórias RAM estáticas (SRAM). 
\uf06e Temporariedade - armazenamento temporário. 
\uf06e Custo - o custo de fabricação das memórias cache é 
alto. Memórias cache internas à CPU ainda são mais 
caras do que as externas. 
Princípio da Localidade 
\uf06e Localidade Temporal 
\uf0a8 Num futuro próximo, o programa irá referenciar os 
programas e dados referenciados recentemente 
\uf06e Localidade Espacial 
\uf0a8 Num futuro próximo, o programa irá referenciar os 
programas e objetos de dados que tenham 
endereços próximos das últimas referências. 
Acertos X Faltas 
\uf06e Dentro da hierarquia de memória, o acerto ocorre 
quando o dado é encontrado no nível mais superior, 
caso contrário, ocorre uma falta. 
\uf06e Tempo de Acerto 
\uf0a8 Tempo necessário para acessar o nível superior da hierarquia. 
Inclui o tempo para se determinar se vai gerar um acerto ou uma 
falta. 
\uf06e Penalidade por Falta 
\uf0a8 Tempo necessário para substituir o bloco do nível superior pelo 
bloco do nível inferior, contendo a informação desejada. 
\uf0a8 BLOCO \u2013 Unidade de transferência entre níveis de hierarquia. 
Avanços em implementação de 
caches 
\uf06e Obter vantagens dos princípios da localidade 
\uf0a8 Colocando a parte repetitiva do programa em uma 
memória mais rápida 
\uf06e Tamanho 
\uf0a8 Suficientemente grande para armazenar trechos dos 
programas para aproveitar os princípios da 
localidade. 
\uf0a8 Suficientemente pequena para não elevar o custo do 
sistema. 
Aproveitando os princípios da 
localidade 
Funcionamento da cache 
1. Sempre que a CPU vai buscar um dado ou instrução na memória, 
ela acessa inicialmente a cache. 
2. Se a instrução ou dado estiver na cache (acerto), ela é transferida 
em alta velocidade para CPU. 
3. Se a instrução (dado) não estiver na cache (falta), o sistema 
interrompe a execução do programa vai transferir a instrução da MP 
para a cache. 
4. A transferência não é somente da instrução desejada, mas dela e 
de um grupo subseqüente, na pressuposição de que as instruções 
do grupo serão requeridas logo em seguida (localidade espacial), 
aumentando a taxa de acertos. 
5. Para a cache cumprir seu papel, é necessário que haja mais 
acertos que faltas, sendo que essa razão tem que ser cada vez 
maior, pois as perdas com faltas representam uma queda 
considerável da performance. 
Funcionamento da cache 
Memória Cache 
 
\uf06e Podem ser inseridas em dois (ou três) níveis: Cache L1 
(Level 1) - nível 1), Cache L2 e Cache L3. 
\uf0a8 Cache L1 (primária) - interna ao processador. 
\uf0a8 Cache L2 (externa ou secundária) - instalada, em geral, na 
placa-mãe do computador. Atualmente: localizada no interior 
da pastilha do processador, separada deste (cache backside). 
\uf0a8 Cache L3 \u2013 Existente em alguns processadores, localizada 
externamente ao processador; nesse caso, é localizada na 
placa-mãe; 
\uf06e Quanto mais próxima do processador, melhor será o 
desempenho do mesmo. 
 
Memória Cache: Tipos de 
Mapeamento 
\uf06e Mapeamento \u2013 Como a informação vinda 
da Memória Principal é colocada na 
cache. 
\uf0a8 Mapeamento Direto 
\uf0a8 Mapeamento Associativo 
\uf0a8 Mapeamento Associativo por Conjunto 
Mapeamento Direto 
\uf06e Por esta técnica, cada bloco da MP tem 
uma linha da cache previamente definida 
para ser armazenada. 
\uf06e Como há mais blocos que linhas de 
cache, há blocos destinados a uma 
mesma linha 
Mapeamaneto Direto 
\uf06e Vantagens 
\uf0a8Simples, baixo custo de implementação, não 
acarreta atrasos de processamento de 
endereços; 
\uf06e Desvantagens 
\uf0a8Fixação da localização para os blocos 
Mapeamento Associativo 
\uf06e Vantagem: 
\uf0a8 Máxima flexibilidade no posicionamento de qualquer 
palavra (ou linha) da memória principal em qualquer 
palavra (ou linha) da cache 
\uf06e Desvantagens: 
\uf0a8 Custo em hardware da comparação simultânea de 
todos os endereços armazenados na cache 
\uf0a8 Utilizado apenas em memórias associativas de 
pequeno tamanho 
Mapeamento Associativo por 
Conjunto 
\uf06e Uma linha na memória principal pode 
ocupar qualquer posição dentro de um 
conjunto definido de linhas da cache; 
\uf06e Combinação das anteriores. 
Memória Principal 
 
\uf06e A memória básica de um sistema de computação 
desde seus primórdios. 
\uf06e É o dispositivo no qual o programa (e seus dados) 
que vai ser executado é armazenado para que a 
CPU "busque" instrução por instrução. 
 Uma das principais características definidas no projeto de arquitetura do sistema 
de Von Neumann, o qual se constitui na primeira geração dos computadores, 
consistia no fato de ser uma máquina "de programa armazenado". O fato de as 
instruções, uma após a outra, poderem ser imediatamente acessadas pela CPU 
é que garante o automatismo do sistema e aumenta a velocidade de execução 
dos programas. 
Memória Principal - Parâmetros 
 
\uf06e Tempo de acesso/ciclo de memória (Ex.: 7 a l5 ns). 
\uf06e Capacidade - na ordem de até 4 Gbytes 
\uf06e Volatilidade - volátil. Há normalmente uma pequena 
quantidade de memória não volátil fazendo parte da 
memória principal (contém o BIOS). 
\uf06e Tecnologia - em sistemas atuais esta tecnologia 
produz memória com elementos dinâmicos (DRAM). 
Memória Principal - Parâmetros 
 
\uf06e Temporariedade - variável, depende de várias 
circunstâncias (p. ex.: tamanho do programa e sua 
duração, a quantidade de programas que estão sendo 
processados juntos, etc.). A transitoriedade com que as 
informações permanecem armazenadas na MP é, em 
geral, mais duradoura que na memória cache ou nos 
registradores. 
 
\uf06e Custo - DRAM têm um custo mais baixo que o das 
memórias cache - são vendidos computadores com 
quantidade apreciável de MP (32 MB, 64 MB, 128 MB, 
256 MB, 512 MB) sem que o preço seja inaceitável. 
 Memória Principal 
 
\uf0b0 Quanto maior a capacidade de armazenamento (em 
Bytes), maior a capacidade de processamento 
 
\uf0b0 Uso de memória virtual \uf0f0 Uso do HD como 
extensão da Memória Principal 
Memória Principal - Ordenação dos Bytes 
 
\uf06e Existem, basicamente, 2 formas de organização dos 
bytes em uma palavra de memória 
\uf0a8 Ordenação Big endian 
\uf0a8Ordenação Little endian 
Os termos big endian (maior valor-big-em primeiro lugar-menor endereço) e 
little endian (menor valor-little-em primeiro lugar) foram inseridos no jargão da 
computação por um artigo publicado em 1981, citando o problema e 
relacionando-o a um episódio mencionado no livro As Viagens de Gulliver \u2013 
povo que foi à guerra para decidir qual a melhor maneira de quebrar ovos, se 
pelo maior (big) lado ou se pelo menor (little) lado.