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)
-