Arquitectura de Computadores
Notas de estudo
Alberto José Proença
1999/00
Na análise do desempenho dum computador foi possível identificar os factores da arquitectura que influenciam esse desempenho e onde actuar para que se consiga obter melhores tempos de execução de aplicações. Um dos factores identificados - o tempo médio de execução de cada instrução, expresso em ciclos de clock, CPI - permite mostrar claramente como uma inadequada concepção de um sistema de memória pode impôr fortes penalizações nos tempos de execução de aplicações devido aos acessos à memória. Neste capítulo faz-se uma abordagem introdutória à estrutura de uma hierarquia de memória e modo de a rentabilizar eficientemente na execução de aplicações, com exemplos de organizações e modo de funcionamento de caches; este tema será de novo aflorado, e com maior detalhe, no capítulo 13 destes textos de apoio.. Este assunto é tratado essencialmente no cap. 7 (da bibliografia), e em particular nas secções 7.1, 7.2 e 7.4. As figuras referenciadas ao longo deste capítulo são as usadas na íntegra no livro recomendado, e estão disponíveis aqui em formato WMF compactado (62K para todas as figuras do cap. 7).
As notas que seguem são apenas ligeiras extensões aos acetatos apresentados nas aulas.
A utilização de uma boa metáfora poderá ser a abordagem para melhor se perceber a relevância e o modo de funcionamento de uma organização hierárquica eficiente na pesquisa e acesso à informação, e partir daí para melhor se compreenderem os 2 princípios da localidade.
Consideremos então o seguinte caso, relacionado com a necessidade de um dado estudante (metaforicamente desempenhando o papel do processador, neste exemplo) elaborar um trabalho temático, com pesquisa bibliográfica numa biblioteca (o disco, nesta metáfora). A informação a consultar/processar é constituída por palavras, contidas em linhas, em páginas de livros, colocados nas estantes da biblioteca. É possível estabelecer uma relação entre os diversos intervenientes neste processo de consulta de informação do estudante, com o processo de consulta de informação efectuado pelo processador, sempre que precisa de instruções ou operandos armazenados algures na hierarquia de memória:
biblioteca -> disco
estante -> directoria
livro -> ficheiro
tampo de secretária -> memória principal
fotocópias de páginas de livros -> páginas na memória principal
folha de apontamentos -> memória cache
linhas na folha de papel -> linhas na cache
palavras são sequências de caracteres -> palavras são 4 bytes
A utilização desta hierarquia no acesso à informação é bastante eficiente por satisfazer normalmente os seguintes princípos da localidade:
A utilização de uma hierarquia de memória num sistema de computação tem a ver com as diversas alternativas de implementação de componentes/diapositivos para armazenamento de informação, com valores diferenciados de rapidez versus custo/bit. Assim, podemos encontrar os seguintes tipos de memória, ordenados por custo decrescente (Fig 7.1 a 7.3):
bloco: denominado de linha numa cache
denominado de página na memória virtual
hit
hit rate: taxa (%) de tentativas com sucesso
miss (page fault no caso de memória virtual)
miss rate: taxa (%) de tentativas sem sucesso; = (1.0 - hit rate)
miss penalty -> tempo necessário para substituir o bloco em falta (em períodos de clock)
CPUtime = Nº instr * CPI * período do clock
CPI = CPI (execução no CPU) + CPI (acesso à memória)
CPI(acesso à mem) = Nº acessos / instr * miss rate * miss penalty
- por mapeamento directo (fig 7.5 e fig. 7.10)
- por modo associativo
- por conjuntos em modo associativo (fig. 7.19)
- o menos recentemente usado (LRU, Least Recently Used)
- método aleatório
- write through
- write back (também designado por copy back )