Механизм ассоциативной памяти в современных системах кэширования работает следующим образом: 1
- ЦП генерирует полный адрес необходимых данных и посылает его кэш-контроллеру. 1
- Кэш-контроллер сравнивает старшие биты адреса со адресными тэгами всех строк кэша одновременно (для этого имеется отдельный компаратор адреса для каждой строки). 1
- Если значения с каким-либо из тэгов совпадают, то происходит попадание, и кэш-контроллер определяет номер строки кэша, данные из которой должны быть считаны для ЦП. 1
- Используя этот номер строки и поле смещения для выбора нужного байта, данные считываются из сегмента данных и передаются в ЦП. 1
- Если значение тэгов во всех строках кэша и старших битов адреса от ЦП не совпадают, то происходит промах, и данные должны быть загружены из основной памяти в одну из строк кэш-памяти. 1 ЦП должен остановиться и ждать, пока требуемые данные будут загружены в кэш из основной памяти. 1
- Затем ЦП должен считать данные, на доступе к которым произошёл промах, и, завершив исполнение этой команды, продолжить нормальную последовательность работы. 1
Ассоциативный механизм обеспечивает возможность связать каждую строку кэш-памяти с любым блоком оперативной памяти. 4 Это наиболее гибкий механизм, но его аппаратная реализация является дорогостоящей и потребляет много энергии. 4