Это зависит от структуры данных, которую вы используете для LUT (справочная таблица?)
Кэши лучше всего работают с вещами, которые расположены непрерывно в памяти (например, в виде массивов или std :: vectors), а не разбросаны по всему.
Проще говоря, когда вы обращаетесь к области памяти, в нее загружается блок оперативной памяти («строка кэша» - 64 байта на x86), возможно, некоторые ранее-кэшированные данные.
Как правило, существует несколько уровней кэша, образующих иерархию.С каждым уровнем время доступа увеличивается, но при этом увеличивается и емкость.
Да, есть перспектива, ограниченная довольно упрощенными алгоритмами и невозможностью пересекать границы страницы (размер страницы памяти на x86 обычно составляет 4 КБ.)
Я предлагаю вам прочитать Что каждый программист должен знать о памяти .В нем много полезной информации по этому вопросу.