Итак, у меня есть реализация кеша на меньшем уровне с использованием очередей, и у меня есть файл трассировки, который генерирует потоки чтения и записи способом, генерируемым ЦП, например. место чтения 0x20000064 (32-битный адрес). В моем main. c я реализовал глобальную память, используя массив определенных размеров c, чтобы имитировать поведение оперативной памяти. Однако проблема в том, что я декодирую 32-битный адрес, который обращается к памяти, чтобы получить теги и биты смещения для кеша, но индексы адресов массива начинаются с 0 до 1023, например, для int array [1024]. Как мне сопоставить здесь 32-битный адрес по адресу, например, я хочу, чтобы индексирование начиналось с 20000000 и до, скажем, 30000000, а не от 0 до 10000000. Что-то похоже на таблицу ha sh.