Используются индексные биты и теги, извлеченные из адреса, который он ищет.
Скажем, у вас есть доступ к некоторому 32-битному адресу ADDR
ADDR будет иметь биты: 31 -------------------------- 0, [------ тег | индекс | смещение]
Тогда в зависимости от размера вашего кеша:
Допустим, у вас есть кэш Direct Mapped размером 32 КБ с 32 байтами на блок.
Смещенные биты используются для поиска данных в каждой строке, потому что 8 байтов - это минимальный размер данных, который должен быть занесен в кэш (ну, вы всегда получаете все 32 байта, но в пределах 32 байтов у вас будут ваши данные.)
Это составляет кэш с 1024 строками или наборами, опять же каждая строка с 32 байтами. Чтобы проиндексировать 1024 набора, вам нужно 10 бит. Таким образом, 10 бит с вашего адреса используются в качестве индекса в кеше. Биты смещения используются, чтобы увидеть, где внутри этой строки находятся ваши данные, а биты тега используются для соответствия адресу, который вы ищете, поскольку два или более адресов будут отображаться в одной строке кэша.
Имеет смысл?