Entendendo o cache da CPU e a linha de cache

Estou tentando entender como o cache da CPU está operando. Digamos que temos essa configuração (como exemplo).

Tamanho do cache 1024 bytesLinha de cache 32 bytes1024/32 = 32 linhas de cache juntas.A linha de cache Singel pode armazenar 32/4 = 8 ints.

1) De acordo com essas configurações, o comprimento da tag deve ser 32-5 = 27 bits e o tamanho do índice 5 bits (2 ^ 5 = 32 endereços para cada byte na linha de cache).

Se o tamanho total do cache for 1024 e houver 32 linhas de cache, onde as tags + os índices são armazenados? (Há outros 4 * 32 = 128 bytes.) Isso significa que o tamanho real do cache é 1024 + 128 = 1152?

2) Se a linha de cache tiver 32 bytes neste exemplo, isso significa que 32 bytes serão copiados no cache sempre que a CPU precisar obter um novo byte da RAM. Tenho razão em assumir que a posição da linha de cache do byte solicitado será determinada pelo seu endereço?

É isso que eu quero dizer: se a CPU solicitou byte em[FF FF 00 08], a linha de cache disponível será preenchida com bytes de[FF FF 00 00] para[FF FF 00 1F]. E nosso byte único requseted estará na posição[08].

3) Se a instrução anterior estiver correta, isso significa que 5 bits usados para o índice não são tecnicamente necessários, pois todos os 32 bytes estão na linha de cache?

Entre em contato se tiver algo errado. obrigado

questionAnswers(3)

yourAnswerToTheQuestion