Fichamento do Capítulo 5 do Livro Organização e Projeto de Computadores

by - maio 24, 2019


Fichamento do Capítulo 5 do Livro Organização e Projeto de Computadores, 4ª Edição, de Patterson e Hennessy. (até a página 410)
  • O princípio da localidade diz que os programas acessam uma parte relativamente pequena do seu espaço de endereçamento em qualquer instante do tempo.(pg.364)
    • Localidade temporal (localidade no tempo): se um item é referenciado, ele tenderá a ser referenciado novamente em breve; (pg.364)
    • Localidade espacial (localidade no espaço): se um item é referenciado, os itens cujos endereços estão próximos tenderão a ser referenciados em breve. (pg.364)
  • A memória principal é implementada por meio de DRAM (Dinamic Ran- dom Access Memory), enquanto os níveis mais próximos do processador (caches) usam SRAM (Static Random Access Memory). 
    • A DRAM é mais barata por bit do que a SRAM, embora seja substancialmente mais lenta. (pg.365)
  • Uma hierarquia de memória pode consistir em múltiplos níveis, mas os dados são copiados apenas entre dois níveis adjacentes ao mesmo tempo, de modo que podemos concentrar nossa atenção em apenas dois níveis.
    • O nível superior – o que está mais perto do processador – é menor e mais rápido (já que usa tecnologia mais cara) do que o nível inferior.
    • A unidade de informação mínima que pode estar presente ou ausente na hierarquia de dois níveis é denominada um bloco ou uma linha.
    • Se os dados requisitados pelo processador aparecerem em algum bloco no nível superior, isso é chamado um acerto (...). Se os dados não forem encontrados no nível superior, a requisição é chamada uma falha. O nível inferior em uma hierarquia é, então, acessado para recuperar o bloco com os dados requisitados.
    • O tempo de acerto é o tempo para acessar o nível superior da hierarquia de memória, que inclui o tempo necessário para determinar se o acesso é um acerto ou uma falha (...). A penalidade de falha é o tempo de substituição de um bloco no nível superior pelo bloco correspondente do nível inferior, mais o tempo para transferir esse bloco ao processador (pg. 366)

  • Agora, sabemos onde olhar na cache para cada endereço possível: os bits menos significativos de um endereço podem ser usados para encontrar a entrada de cache única para a qual o endereço poderia ser mapeado, sendo dividido em:
    • um campo tag, usado para ser comparado com o valor do campo tag da cache;
    • um índice de cache, usado para selecionar o bloco.
      • O índice de um bloco de cache, juntamente com o conteúdo da tag desse bloco, especifica de modo único o endereço de memória da palavra contida no bloco de cache. Como o campo índice é usado como um endereço para acessar a cache e como um campo de n bits possui 2 n valores, o número total de entradas em uma cache diretamente mapeada será uma potência de dois. (pg 370)
  • Um problema mais sério associado a apenas aumentar o tamanho de bloco é que o custo de uma falha aumenta. A penalidade de falha é determinada pelo tempo necessário para buscar o bloco do próximo nível mais baixo na hierarquia e carregá-lo na cache. O tempo para buscar o bloco possui duas partes: a latência até a primeira palavra e o tempo de transferência para o restante do bloco. (pg 376)
  • Quando uma escrita na memória principal é concluída, a entrada no buffer de escrita é liberada. Se o buffer de escrita estiver cheio quando o processador atingir uma escrita, o processador precisará sofrer stall até que haja uma posição vazia no buffer de escrita. Naturalmente, se a velocidade em que a memória pode completar escritas for menor do que a velocidade em que o processador está gerando escritas, nenhuma quantidade de buffer pode ajudar, pois as escritas estão sendo geradas mais rápido do que o sistema de memória pode aceitá-las. (pg 376)

  • A velocidade de clock do barramento geralmente é muito mais lenta do que a do processador. A velocidade desse barramento afeta a penalidade de falha. (pg 379)
  • Devido à onipresença das caches e ao desejo de tamanhos de bloco maiores, os fabricantes de DRAM fornecem um acesso em rajada aos dados de locais sequenciais na DRAM. O desenvolvimento mais recente são as DRAMs Double Data Rate (DDR). O nome significa que os dados são transferidos tanto na transição de subida quanto na transição de descida do clock, gerando, assim, o dobro da largura de banda que se poderia esperar com base na velocidade de clock e na largura de dados. Para oferecer uma largura de banda tão grande, a DRAM interna é organizada em bancos de memória intercalados. (pg 380)

  • Um esquema em que um bloco pode ser posicionado em qualquer local na cache. Esse esquema é chamado de totalmente associativo porque um bloco na memória pode ser associado com qualquer entrada da cache. Para encontrar um determina- do bloco em uma cache totalmente associativa, todas as entradas da cache precisam ser pesquisadas, pois um bloco pode estar posicionado em qualquer uma delas. (pg 386)
  • A faixa intermediária de projetos entre a cache diretamente mapeada e a cache total- mente associativa é chamada de associativa por conjunto. Em uma cache associativa por conjunto, existe um número fixo de locais (pelo menos dois) onde cada bloco pode ser colocado; (pg 386)
  • Da mesma forma, a memória principal pode agir como uma “cache” para o armazenamento secundário, normalmente implementado com discos magnéticos. Essa técnica é chamada de memória virtual. Historicamente, houve duas motivações principais para a memória virtual:
    • permitir o compartilhamento seguro e eficiente da memória entre vários programas e remover os transtornos de programação de uma quantidade pequena e limitada de memória principal (pg 396)
    • A memória virtual implementa a tradução do espaço de endereçamento de um programa para os endereços físicos. Esse processo de tradução impõe a proteção do espaço de endereçamento de um programa contra outros programas. (pg 396)
    • A memória virtual também simplifica o carregamento do programa para execução fornecendo relocação. A relocação mapeia os endereços virtuais usados por um programa para diferentes endereços físicos antes que os endereços sejam usados no acesso à memória. Essa relocação nos permite carregar o programa em qualquer lugar na memória principal. (pg 397)

  • Quando o sistema operacional obtém o controle, ele precisa encontrar a página no próximo nível da hierarquia (geralmente o disco magnético) e decidir onde colocar a página requisitada na memória principal.
    • O sistema operacional normalmente cria o espaço no disco para todas as páginas de um processo no momento em que ele cria o processo. Esse espaço do disco é chamado de área de swap.(pg 401)
    • Quando ocorre uma falta de página, se todas as páginas na memória principal estiverem em uso, o sistema operacional precisa escolher uma página para substituir. (pg 402)
    • Cada processo possui seu próprio espaço de endereçamento virtual. Portanto, se o sistema operacional mantiver as tabelas de páginas organizadas de modo que as páginas virtuais independentes mapeiem as páginas físicas separadas, um processo não será capaz de acessar os dados de outro (pg 410)

You May Also Like

0 comentários