Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Простенький кэш, просветите новичка
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
SolderMan
Привет всем,

с некоторых пор я запустил на плате Altera DE1 корку упрощённого MIPS-проца. Всё тикает как надо. В качестве памяти использую SDRAM на частоте 90МГц, cas=2, burst=2. Для чтения/записи 32 бит данных из памяти/в память требуется ровно 7 тактов. Тоесть процессор работает на 12.86МГц. На такой частоте я "выжал" из него около 20DMIPS. Вроде не плохо, но хотелось бы побыстрее! Появилась идея прикрутить к корке простенький кэш инструкций (prefetch), чтобы хоть немного разогнать его. Начал искать в инете информацию о работе кэш-контроллеров, но кроме поверхностного описания принципа ничего не нашел.
Поэтому решил обратиться к форумчанам: посоветуйте, как можно реализовать хоть самый простой кэш? Может есть что нибудь почитать на эту тему? Или пример на VHDL/Verilog. Хочу вникнуть, как кэш работает...

С уважением
Дима
des00
первая строка гугла, поиск по слову "архитектура кэш контроллера"
SolderMan
Цитата(des00 @ Oct 12 2012, 06:42) *
первая строка гугла, поиск по слову "архитектура кэш контроллера"


Спасибо за наводку!
Достаточно подробно описано, всё по-полочкам разложено.
Появилось представление о том, как реализовать простую предвыборку команд. Кэширования записи пока не будет.
Кэш сделаю для начала размером 1кбайт (8 строк по 128 байт). Буду читать/писать SDRAM c burst=8.
Посмотрю что получится! Насколько быстрее будет работать корка.
yes
ну у МИПСа с кэшами есть архитектурные заморочки kuseg, kseg0 и т.п. слова наверно известны.

как пример реализации (на VHDL) полноценного кэша могу посоветовать grlib от Gaisler-а http://www.gaisler.com/cms/index.php?optio...&Itemid=125

также, для описаного случая может сильно помочь правильный SDRAM контроллер. предыдущий ответивший может по этому поводу проконсультировать гораздо лучше sm.gif

UPD: ну а на verilog на opencores.org можно посмотреть openrisc - я там в деталях не разбирался и попроще чем у Гейслера, но хорошо протестировано...
DevL
/проходя мимо....

если новый софт - может и сгодится, а вот если есть софт, завязанный (даже неявно) на текущие тайминги инструкций......
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.