SolderMan 0 11 октября, 2012 Опубликовано 11 октября, 2012 · Жалоба Привет всем, с некоторых пор я запустил на плате Altera DE1 корку упрощённого MIPS-проца. Всё тикает как надо. В качестве памяти использую SDRAM на частоте 90МГц, cas=2, burst=2. Для чтения/записи 32 бит данных из памяти/в память требуется ровно 7 тактов. Тоесть процессор работает на 12.86МГц. На такой частоте я "выжал" из него около 20DMIPS. Вроде не плохо, но хотелось бы побыстрее! Появилась идея прикрутить к корке простенький кэш инструкций (prefetch), чтобы хоть немного разогнать его. Начал искать в инете информацию о работе кэш-контроллеров, но кроме поверхностного описания принципа ничего не нашел. Поэтому решил обратиться к форумчанам: посоветуйте, как можно реализовать хоть самый простой кэш? Может есть что нибудь почитать на эту тему? Или пример на VHDL/Verilog. Хочу вникнуть, как кэш работает... С уважением Дима Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 12 октября, 2012 Опубликовано 12 октября, 2012 · Жалоба первая строка гугла, поиск по слову "архитектура кэш контроллера" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SolderMan 0 12 октября, 2012 Опубликовано 12 октября, 2012 · Жалоба первая строка гугла, поиск по слову "архитектура кэш контроллера" Спасибо за наводку! Достаточно подробно описано, всё по-полочкам разложено. Появилось представление о том, как реализовать простую предвыборку команд. Кэширования записи пока не будет. Кэш сделаю для начала размером 1кбайт (8 строк по 128 байт). Буду читать/писать SDRAM c burst=8. Посмотрю что получится! Насколько быстрее будет работать корка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 12 октября, 2012 Опубликовано 12 октября, 2012 · Жалоба ну у МИПСа с кэшами есть архитектурные заморочки kuseg, kseg0 и т.п. слова наверно известны. как пример реализации (на VHDL) полноценного кэша могу посоветовать grlib от Gaisler-а http://www.gaisler.com/cms/index.php?optio...&Itemid=125 также, для описаного случая может сильно помочь правильный SDRAM контроллер. предыдущий ответивший может по этому поводу проконсультировать гораздо лучше :) UPD: ну а на verilog на opencores.org можно посмотреть openrisc - я там в деталях не разбирался и попроще чем у Гейслера, но хорошо протестировано... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DevL 0 15 октября, 2012 Опубликовано 15 октября, 2012 · Жалоба /проходя мимо.... если новый софт - может и сгодится, а вот если есть софт, завязанный (даже неявно) на текущие тайминги инструкций...... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться