
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

В моем предыдущем руководстве мы увидели, как разработать простой контроллер кеш-памяти с прямым отображением. На этот раз мы идем на шаг впереди. Мы будем проектировать простой четырехсторонний ассоциативный контроллер кеш-памяти. Преимущество ? Меньше пропусков, но за счет производительности. Как и в моем предыдущем блоге, мы будем проектировать и эмулировать весь процессор, основную память и среду кеширования для тестирования нашего контроллера кеша. Я надеюсь, что вы, ребята, найдете это полезным справочником для понимания концепций и разработки собственных контроллеров кеша в будущем. Поскольку модель процессора (тестовый стенд) и система основной памяти точно такие же, как в моем предыдущем блоге, я не буду их снова объяснять. Пожалуйста, обратитесь к предыдущему руководству для получения подробной информации об этом.
Шаг 1: Технические характеристики

Краткий обзор технических характеристик контроллера кэширования, представленных здесь:
- Четырехсторонний набор ассоциативных контроллеров кэша (перейдите по этой ссылке, если вы ищете контроллер прямого сопоставления кэша).
- Однобанковый, блокирующий кэш.
- Политика сквозной записи для обращений записи.
- Политика обратной записи в отношении промахов при записи.
- Политика замены Tree Pseudo-LRU (pLRU).
- Массив тегов в контроллере.
- Настраиваемые параметры.
Спецификации по умолчанию для кэш-памяти и основной памяти такие же, как и в моей предыдущей инструкции. Пожалуйста, обратитесь к ним.
Шаг 2: RTL-просмотр всей системы

Полное RTL-представление верхнего модуля показано на рисунке (без процессора). Технические характеристики автобусов по умолчанию:
- Все шины данных - это 32-битные шины.
- Адресная шина = 32-битная шина (но здесь память может адресовать только 10 бит).
- Блок данных = 128 бит (широкополосная шина для чтения).
- Все компоненты работают по одним и тем же часам.
Шаг 3: результаты теста
Модуль Top был протестирован с помощью Test Bench, который просто моделирует процессор без конвейера, как мы это делали в последнем руководстве. Тестовый стенд часто генерирует запросы на чтение / запись данных в память. Это имитирует типичные инструкции «Загрузить» и «Сохранить», общие для всех программ, выполняемых процессором.
Результаты тестирования успешно подтвердили работоспособность контроллера кеша. Ниже приведены наблюдаемые статистические данные о тестах:
- Все сигналы промаха чтения / записи и попадания были сгенерированы правильно.
- Все операции чтения / записи данных были успешными по всем четырем причинам.
- Алгоритм pLRU успешно проверен на замену строк кэша.
- Проблем несогласованности / несогласованности данных не обнаружено.
- Дизайн был успешно проверен по времени для Maxm. Тактовая частота работы = 100 МГц для платы Xilinx Virtex-4 ML-403 (вся система), 110 МГц для одного контроллера кэш-памяти.
- Для основной памяти предполагались блочные ОЗУ. Все остальные массивы были реализованы на LUT.
Шаг 4: прикрепленные файлы
К этому блогу прикреплены следующие файлы:
- . VHD-файлы контроллера кеша, массива данных кэша, системы оперативной памяти.
- Испытательный стенд.
- Документация по контроллеру кеша.
Примечания:
- Просмотрите документацию для полного понимания спецификаций контроллера кэширования, представленных здесь.
- Любые изменения в коде зависят от других модулей. Итак, изменения следует вносить разумно.
- Обратите внимание на все комментарии и заголовки, которые я дал.
- Если по какой-либо причине блочные ОЗУ не предполагаются для основной памяти, УМЕНЬШИТЕ размер памяти с последующими изменениями ширины адресной шины в файлах и т. Д. Так что одна и та же память может быть реализована либо в LUT, либо в распределенной RAM. Это сэкономит время и ресурсы на маршрутизацию. Или перейдите к конкретной документации FPGA и найдите совместимый код для блочного ОЗУ, отредактируйте код соответствующим образом и используйте те же спецификации ширины шины адреса. Тот же метод для ПЛИС Altera.
Рекомендуемые:
Разработка программируемого контроллера прерываний на VHDL: 4 шага

Дизайн программируемого контроллера прерываний на VHDL: я поражен тем, какие ответы я получаю в этом блоге. Спасибо, ребята, что посетили мой блог и побудили меня поделиться с вами своими знаниями. На этот раз я собираюсь представить дизайн еще одного интересного модуля, который мы видим во всех SOC - Interrupt C
Разработка простого контроллера кеша на VHDL: 4 шага

Проектирование простого контроллера кеша на VHDL: я пишу это руководство, потому что мне было немного сложно получить некоторый эталонный код VHDL для изучения и начала проектирования контроллера кеша. Поэтому я сам разработал контроллер кеш-памяти с нуля и успешно протестировал его на ПЛИС. У меня п
Как сделать простого робота-паука на Хэллоуин: 4 шага (с картинками)

Как сделать простого робота-паука на Хэллоуин: это простой и забавный бот-робот для Хэллоуина! Bristlebots - отличные стартовые проекты для людей, изучающих основы схем и конструкции роботов. Используя головку зубной щетки для тела, небольшой мотор для движения и батарею
Разработка простого контроллера VGA на VHDL и Verilog: 5 шагов

Проектирование простого контроллера VGA на VHDL и Verilog: в этом руководстве мы собираемся разработать простой контроллер VGA на RTL. Контроллер VGA - это цифровая схема, предназначенная для управления дисплеями VGA. Он считывает из буфера кадра (память VGA), который представляет кадр, который нужно отобразить, и генерирует необходимые
Создайте свою собственную команду запуска с помощью простого шага: 4 шага

Создайте свою собственную команду запуска с помощью простого шага: здесь я покажу, как вы можете создать свою собственную команду запуска в ОС Windows. На самом деле это отличная функция в Windows, которая позволяет мгновенно открыть окно вашего приложения. Итак, теперь вы также можете создать свою команду для открытия любого приложения, введя