Baixe o app para aproveitar ainda mais
Prévia do material em texto
ORGANIZAÇÃO DAS MEMÓRIAS O objetivo de toda memória ou subsistema de memória e armazenar informação, que em algum momento, seja utilizada pelo processador. Antes de uma posição de memória ser utilizada, o processador necessita buscá-la (memória cache ou principal) e armazená- la nos seus próprio interior. Para isso existem os registradores. Princípio da Máquina de Von Neumann. ORGANIZAÇÃO DAS MEMÓRIAS O problema não é tecnológico O problema e econômico. PEQUENA quantidade de memória RÁPIDA GRANDE quantidade de memória LENTA MELHORANDO A PERFORMANCE Outro Problema : Diferença de velocidade entre o Ciclo de tempo da CPU e o ciclo de tempo da Memória Principal Objetivo : Melhorar a performance dos Sistema de memória de modo a suprir o processador com INSTRUÇÕES E DADOS na velocidade à qual ele consegue processar. Solução -> MEMÓRIA CACHE MEMÓRIA CACHE CPU CACHE MEMÓRIA PRINCIPAL barramento Princípio da LOCALIDADE : Localidade Temporal : Ao acessar uma palavra, a uma grande probabilidade de acessar a mesma palavra . Localidade Espacial : Ao acessar uma palavra, a uma grande probabilidade de acessar uma palavra subsequënte ou adjacente . ORGANIZAÇÃO DAS MEMÓRIAS MEMÓRIA SECUNDÁRIA HD -Magnéticos Óticos - CD e DVD BAIXO CUSTO VELOCIDADE BAIXA CAPACIDADE ELEVADA REGISTRADORES CACHE MEMÓRIA PRINCIPAL CUSTO ALTO VELOCIDADE ALTA BAIXA CAPACIDADE REGISTRADORES MEMÓRIA CACHE Funcionamento da Memória Cache 1 - SEMPRE que a UCP vai buscar uma nova INSTRUÇÂO ou DADO na memória principal MP, inicia uma busca na memória CACHE. 2 - Se a instrução ou dado estiver na Cache , ela é transferida em ALTA VELOCIDADE para a UCP . São então chamados de HIT ou acertos . 3 - Se a instrução ou dado NÃO ESTIVER na Cache , chama-se de falha ou MISS, então o sistema está programado para interromper a execução do programa e esperar que a MP transfira instrução/dado para a cache . Porém, usando o princípio da localidade um bloco de dados subseqüente é transferido para a memória Cache . Níveis de Memória Cache LI - Level 1 ou L1 sempre localiza no interior do processador. L2 - Level 2 ou L2 sempre localizada o mais próximo da CPU. L3 - Level 3 ou L3 localizada externamente ao processador. Exemplos de alguns processadores e suas memórias cache L1 Processador Fabricante Cache L1 Cache L2 Cache L3 FSB 486 Intel 8 KB 66MHz Pentium P5 Intel 16 KB 66MHz Pentium Pro P6 Intel 32 KB 256K 66MHz Pentium II Intel 32 KB 512K 66MHz Pentium III Intel 32 KB 512K 100-133MHz Pentium IV Intel 32 KB 512K/2M 400/800MHz Pentium D Intel 64 KB 2M/4M 533/1066MHz Pentium (2010) Intel 64 KB 2M/4M 3M/5M 533/1066MHz C6 Cyrix 64 KB K5 AMD 24 KB K6 AMD 64 KB K7 AMD 64K D +64KB I 512K 100/133MHz Barton /horton AMD 64K D +64KB I 512K 133/200Mz Opteron 4-core AMD ? 2 +28M 8+8 M HT PC3-15000 FSB - Front side bus Sistema de Memória Memória cache (Organização e funcionamento) Transferência cache/MP: Bloco por blocos de palavras Transferência cache/processador: Palavra por palavra Processador Memória Principal Memória Cache BD – Barramento de dados BE – Barramento de endereço BC BC • A conexão entre os dispositivos é comum ao processador a as duas memorias. • Redundancia • Facilitando a comunicação entre os três componentes. BC BD - BE Ec = -------------------- * 100 Acertos (Hit) Total acessos Eficiência da cache Sistema de Memória Memória cache (Organização e funcionamento) Byte 3 Byte 2 Byte 1 Byte 0 . . . . Byte 1 Byte 0 : : : : : Byte 1 Linha 0 Linha 1 Linha L-1 B – Blocos Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8 Byte N-1 Tag Dados Bloco 0 Bloco 1 Bloco B-1 Memória principal N – número de palavras ou células X – número de células de uma linha B = ----------- * 100 N X Modelo de mapeamento da Memória Cache Todas as CACHE usam o seguinte modelo : A MP é dividida em blocos de tamanho FIXO conhecido como LINHAS de CACHE . Uma linha de cachê pode contém em geral de 4 a 64 bytes consecultivos. Modelos de mapeamento: Mapeamento Direto Mapeamento Associativo Mapeamento Associativo por conjunto Mapeamento Direto Exemplo de memória: Memória Principal 16Mbytes End. Principal: log216M = 24bits Memória Cache 16K palavras End. Cache: log216K = 14bits Bits de Palavra de 4 bytes: 2 bits Rótulo = End. Princ. – (End. Cache + Bits Pal.) Rótulo = 24 – (14 + 2) = 8bits Mapeamento Direto Obtenção do endereço mapeado: Como a palavra é de 4bytes, retiramos o rótulo e dividimos por 4 0000 / 4 = 0000 Hexa 0004 / 4 = 0001 Hexa 339C / 4 = 0CE7 Hexa FFFC / 4 = 3FFF Hexa FFF8 / 4 = 3FFE Hexa Mapeamento Direto Mapeamento Associativo Exemplo de memória: • Memória Principal: 16Mbytes End. Principal: log216M = 24bits • Bits de Palavra de 4 bytes: 2 bits • Rótulo = End. Princ. – Bits Pal. Rótulo = 24 – 2 = 22bits Mapeamento Associativo Obtenção do endereço mapeado: Como a palavra é de 4bytes, dividimos o endereço por 4 000000 / 4 = 000000 Hexa 16339C / 4 = 058CE7 Hexa FFFFF4 / 4 = 3FFFFD Hexa FFFFF8 / 4 = 3FFFFE Hexa FFFFFC / 4 = 3FFFFF Hexa Mapeamento Associativo Mapeamento Associativo por conjunto Exemplo de memória: • Memória Principal 16Mbytes • End. Principal: log2 16M = 24bits • Memória Cache: 16K palavras • Número de Conjunto: 2 : 1 bit • End. Cache : log2 16K – nº bits conj. End. Cache = 14 – 1 = 13bits • Bits de Palavra de 4 bytes: 2 bits • Rótulo = End. Princ. – (End. Cache + Bits Pal.) Rótulo = 24 – (13 + 2) = 9bits Mapeamento Associativo por conjunto Obtenção do endereço mapeado: Como a palavra é de 4bytes, retiramos o rótulo e dividimos o endereço por 4 0000 / 4 = 0000 Hexa 0004 / 4 = 0001 Hexa 339C / 4 = 0CE7 Hexa 7FFC / 4 = 1FFF Hexa 7FF8 / 4 = 1FFE Hexa Mapeamento Associativo por conjunto O modelo de memória da arquitetura VM Pode ser visualizado de duas formas : O modelo de memória da arquitetura VM A VM NÃO permite que o endereços seja visível diretamente no nível das instruções (ISA), fazendo com que o acesso seja efetivado por intermédio de PONTEIROS de PILHA. As instruções VM só podem ter acesso à memória indexado por intermédio de um ponteiro de pilha. A arquitetura VM divide a memória nos seguintes espaços : Omodelo de memória da arquitetura VM Exemplo de uma pilha de operando para a execução de cálculos ( Notação Polonesa Reversa - RPN ) Fazer a operação : A = B + C Exemplos de Notação polonesa reversa A + B x C A B C x + A x B + C A B x C + A x B + C x D A B + C D - / A x B / C A B X C / ( A + B ) x C + D ) / ( E + F + G ) A B + C x D + E F + G + /
Compartilhar