Arquitectura de Computadores

Notas de estudo

Alberto José Proença

1999/00

 

Índice geral

 

  1. Organização e arquitectura dum computador
  2. Análise do funcionamento do CPU dum computador
  3. Mecanismos para execução de programas
  4. Modelo de programação dum processador
  5. Metodologia de construção de programas em assembly
  6. Alternativas às arquitecturas RISC genéricas
  7. Computação aritmética
  8. Arquitectura interna dum processador simples - o datapath
  9. Interface do CPU com periféricos
  10. Medição do desempenho de computadores
  11. Hierarquia de memória
    1. Princípio da Localidade
    2. Alternativas de implementação: cache, memória virtual, disco
    3. Conceitos associados a cada nível da hierarquia
    4. Objectivos da hierarquia de memória
    5. Análise da estrutura de uma cache

 

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.

 

  1. Princípio da Localidade

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:

  1. Alternativas de implementação: cache, memória virtual, disco

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

  1. Conceitos associados a cada nível da hierarquia

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

 

  1. Objectivos da hierarquia de memória
  1. Análise da estrutura de uma cache

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