Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Cache As CPUs sempre foram mais rápidas do que as memórias. Conforme as memórias melhoraram as CPUs também seguiram o ritmo mantendo o desequilíbrio. O que isso significa na prática é que depois que a CPU faz uma requisição à memória, ela deve permanecer inativa por um tempo enquanto estiver esperando que a memória responda. É comum que a CPU estabeleça uma leitura à memória durante um ciclo de barramento e não obtenha o dado até x + 1 ciclos mais tarde, mesmo que não haja estados de espera. A solução utilizada para esse atraso é a cache. A cache é uma memória com pequena capacidade e muito rápida. A ideia básica de uma cache é simples: as palavras de memória usadas com mais frequência são mantidas na cache. Quando a CPU precisa de uma palavra, ela examina em primeiro lugar a cache. Se a palavra procurada estiver na cache (cache hit), ela é transferida em alta velocidade para a CPU. Se a palavra não estiver na cache (cache miss), então o sistema está programado para interromper a execução do programa e transferir a instrução desejada da memória principal para a cache. Essa transferência não é apenas da palavra desejada, mas também de um conjunto de palavras próximas, na pressuposição de que esse grupo será utilizado pela CPU em seguida. Com isso o desempenho do computador é otimizado e o tempo médio de acesso pode ser muito reduzido. Hierarquia de Memória Conceitos LOCALIZAÇÃO: A memória cache tende a ficar o mais próximo da CPU. Quanto mais próxima estiver, mais rápido a palavra será transferida. Atualmente a cache é colocada dentro da própria CPU. Já havia limitações em relação ao tamanho e capacidade da cache pelo seu custo, e agora mais ainda por estar dentro da CPU, onde não é possível ter um tamanho maior por falta de espaço. CAPACIDADE: Como foi dito antes, a não é viável ter uma cache com alta capacidade, pois o custo seria muito elevado. Logo, as memórias cache possuem uma pequena capacidade, em torno de MB (megabytes). UNIDADE DE TRANSFERÊNCIA: Palavra ou grupo de palavras por segundo. MÉTODOS DE ACESSO: 1. Método de Acesso Sequencial: Os dados são organizados em registros sequenciais. O tempo de acesso é variável. 2. Método de Acesso Direto: Cada bloco de dados possui um endereço único, baseado na sua localização física. O acesso é feito através do acesso direto a uma vizinhança genérica do registro, e em seguida por uma busca sequencial. É um método simples e de baixo custo de implementação. Sua principal desvantagem é que, devido ao fato de cada bloco ser mapeado em uma posição fixa na memória cache, se um programa fizer repetidas referências a palavras de dois blocos distintos, mapeados em uma mesma linha, esses blocos serão trocados continuamente na memória cache e a taxa de acertos à memória cache será baixa. O tempo de acesso é variável. 3. Método de Acesso Aleatório: Cada posição de memória possui um endereço único. O tempo de acesso é constante, sendo independente dos acessos anteriores. 4. Método de Acesso Associativo: Tipo de acesso Aleatório que evita a desvantagem do acesso Direto permitindo que cada bloco da memória principal seja carregado em qualquer linha da memória cache. Assim ele compara simultaneamente certo número de bits de uma palavra com todas as palavras da memória, determinando quais delas contêm o mesmo padrão de bit. Esse método oferece maior flexibilidade para a escolha do bloco a ser substituído quando um novo bloco é trazido para a cache. São utilizados algoritmos de substituição para maximizar a taxa de acertos na cache. A principal desvantagem desse método é a complexidade do conjunto de circuitos, necessários para a comparação dos rótulos (conjunto de bits) de todas as linhas da memória cache em paralelo. 5. Método de Acesso Associativo por Conjuntos: Junção do Direto e Associativo com redução nas desvantagens. A cache é dividida em x conjuntos com y linhas cada. O rótulo de um endereço de memória é menor e é comparado apenas com y rótulos de um mesmo conjunto. A mais comum é a que usa duas linhas por conjunto. Sua taxa de acerto é significativamente maior do que no caso do acesso Direto. Um maior número de linhas por conjunto não apresenta melhoras significativas de desempenho. LATÊNCIA: Da ordem de nanosegundos (5~10ns). LOCALIDADE DE REFERÊNCIA: Os conceitos de Localidade justificam a existência da cache. Pesquisas e amostragens realizadas por diversos cientistas concluíram que a execução dos programas se realiza, na média, em pequenos grupos de instruções num breve espaço de tempo. Isso é divide o princípio da localidade em: 1. Localidade Temporal: Se um programa acessa um dado (endereço), existe uma boa probabilidade que ele venha a acessá-la novamente, em breve. 2. Localidade Espacial: Se um programa acessa um dado (endereço), existe uma boa probabilidade que ele venha a acessar os dados armazenados em sua proximidade, em breve. Referências TANEMBAUM; Andrew. Organização Estruturada de Computadores. DA SILVA; Wagner Helcio. Sistemas de Memória Interna (Apostila). MONTEIRO; Mario A.. Introdução à Organização de Computadores. LEAL; Parreira Murilo. Subsistema de Memória (Apostila). BORATTO; Murilo. Memória Cache (Apostila).
Compartilhar