- 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,
- Fig Cache Read Operation
- 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