Я пытаюсь понять аппаратные кэши.У меня есть небольшая идея, но я хотел бы спросить здесь, является ли мое понимание правильным или нет.
Итак, я понимаю, что существует 3 типа отображения кэша: прямой, полный ассоциативный и набор ассоциативный.
Я хотел бы знать, является ли тип отображения, реализованный с помощью аппаратных логических элементов, специфичным, скажем, для некоторой компьютерной системы, и для изменения отображения потребуется изменить электрические соединения?
В настоящее время я понимаю, что в оперативной памяти существует адрес памяти для ссылки на каждый блок памяти.Внутри блока содержатся слова, каждое слово содержит количество байтов.Мы можем представить количество вариантов с количеством битов.Так, например, 4096 ячеек памяти, каждая ячейка памяти содержит 16 байтов.Если бы мы ссылались на каждый байт, то 2 ^ 12 * 2 ^ 4 = 2 ^ 16 16-битный адрес памяти потребовался бы для ссылки на каждый байт.
Кэш также имеет адрес памяти, действительный бит,тег и некоторые данные, способные хранить блок основной памяти из n слов и, следовательно, m байтов.Где m = n * i (байт на слово)
Например, прямое отображение 1 блока основной памяти может быть только в одной конкретной ячейке памяти в кэше.Когда центральный процессор запрашивает некоторые данные, используя 16-разрядную ячейку памяти, он сначала проверяет наличие кэша.Откуда он знает, что этот конкретный 16-битный адрес памяти может быть только в нескольких местах?
По-моему, между каждым адресом ОЗУ и адресом кэша может быть какое-то электрическое соединение.Затем 16-битный адрес можно разделить на части, например, сравнить только левые 8 бит с каждым адресом кэш-памяти, затем, если сопоставить, сравнить битовые биты, то биты тегов и действительный бит
Верно ли мое понимание?Спасибо!Очень ценю, если кто-то прочитает этот длинный пост