Cache - Arquitetura de Computadores

A memória cache é um tipo de extensão da memória RAM, atribuindo a ela dados recentemente acessados na RAM, afim de diminuir o tempo de busca de dados/registros durante alguma execução, ou seja, sempre que um dado é lido na memória, ele é inserido no cahce em seguida, pois assim, se necessária a leitura do mesmo dado novamente, não será necessário ir até a memória (mais longe), pois estará na cache (mais perto).

É então, calculado quantos acessos a execução teve na memória RAM e cache, onde o primeiro acesso é realizado, por ser na memória RAM, é chamado de miss cache (acesso fora da cache). Quando é um acesso na cache, esse é chamado de hit cahce (acesso dentro da cache). Imagine por exemplo que um looping for fará com que incremente +1 no valor de X, logo, no primeiro acesso a X, será realizado um miss cache, pois ainda não se encontra em cache (ou seja, até que X = 1, será miss cache). Porém a partir do segundo acesso, será realizado um hit cache, pois agora o endereço de X já está alocado no cahce.

Ou seja, se for um looping de 5 repetições, ocorrerá 1 miss cache (X = 1) e 4 hit cahce (X = [2,3,4,5]).

OBS: É viável saber que o tempo de acesso na memória cache é menor do que o tempo de acesso a RAM, gerando um conceito de localidade espacial e temporal.

Quando o precessador faz um acesso a um registro na memória é primeiro verificado se tal dado reside em seus dados, afirmando o conceito de que todo e qualquer acesso por instrução passa primeiramente pelo cache e depois pela RAM.

Descrição

Por exemplo: Um programa realiza 1000 acessos à memória durante a seua exwecução, e desses acessos, 20 são miss cahce. O tempo de acesso à cache é igual a 5 nanosegundos enquanto a memória principal é de 70 nanosegundos. Qual o tempo total de acessos e o tempo médio de acesso:

            1 - TTA.M = 20 x 70 = 1400 nanosegundos
            
        Como são 1000 acessos com 20 miss, então 980 são hit
            
            2 - TTA.C = (980 x 5) + (20 x 70) = 4900 + 1400 = 6300 nanosegunos
            
            3 - TMA = (ph x th) + (ph x tm)
            
                TMA = Tempo médio de acesso
            
                ph = 20/1000 = 0,02

                th = 5

                pm = 70

                tm = 1 - PM = 1 - 0,02 = 0,98
                
                TMA = (0,02 x 5) + (0,98 x 70) = 0,01 + 68,6 = 68,61