Memória Cache


  • Pensada para dar uma memória disponível com rápido tempo de acesso
  • A ideia é que ela abstraia o caminho do datapath
  • A transferência entre níveis é sempre blocos portanto trabalha com palavras
  • Memória principal se fala em octetos (bytes)
  • Para relação com a memória é tratada em blocos (x palavras fazem parte do bloco 1 - outras y palavras fazem parte do bloco 2, ...)
  • A memória é quebrada em blocos
  • Interessante que o bloco da memória tem que ser o mesmo tamanho do bloco do cache
  • M tam da quantidade de blocos
  • Tamanho da memória = 2^n
  • Nro de blocos dentro da mem cache - C
  • Se todos os blocos da mem principal irão passar pela mem cache e deste para a CPU. Dado que C << M, como eu aloco um bloco na mem cache?
    • Fig Cache Read Operation
      • Se o cache estiver cheio? Atualizar CPU
    • Tempos: Checar disponibilidade com árbitro de barramento e ver se tá cheio,
  • Cache Design Elementos
    • Mapping: achar o slot que será usado
    • Replacement: Escolher qual será substituído
    • Write Policy: como eu aviso a mem principal
    • Block size: tamanho da linha - quantas palavras cabem na linha
    • Number of caches: Unified - guardam dados e programas