По этой теме выкладывал кэширующий контроллер SDRAM. Несомненно, его можно улучшить, чем и пытаюсь заниматься.
Ого, я столько не видел. Если не секрет, чем, например мой не нравится?
- - - Добавлено - - -
Если нужен полный проект с sdram и кэшем, то как вариант можно глянуть ts conf для какой-нибудь sdramной девборды.
Отмечу один из самых серьезных тормозов SDRAM_Controller144_w_cache2.v - не стоит параллельно начинать читать sdram и кэш, последовательный (сначала проверяем кэш и только если там нет, читаем sdram) вариант лучше.
Попробовал разогнать версию "all in internal sram" для DE1-SoC. Получилось 120 МГц, выше программирование палитры портится. 135 МГц на DE2-115 остается локальным рекордом. Уверенность, что палитру можно доработать и для более высоких частот только окрепла, там иногда получается.
После оптимизации арбитража доступа проца/видео к памяти шринклер на DE1 преодолел рубеж ускорения в 19 раз, что (для меня) довольно приятно.
Менее приятными оказались последствия задействования полного объема квазидиска в варианте "все внутре" для DE2-115. Рекорд 135 МГц был получен при использовании 64 КБ озу и 64 КБ кваза, все работало стабильно. Но когда началось переключение страниц квазидиска, DE2-115 перестал успевать. Все работает, кроме нормального доступа ко всем страницам кваза. Попытки оптимизировать этот момент не окончились успехом и если нужно >64 Кб кваза приходится замедлять DE2-115 до 75 МГц. К счастью DE1-SoC нормально работает с квазом >64 на 120 МГц.
Все же нашелся и положительный момент связанный с быстрыми версиями. Если в Emu поднять соответственно в конфиге частоту и отключить торможение (adjust=4), то результаты бенчей полностью совпадают с девбордами, т.е. их можно вполне адекватно эмулировать в таком режиме. Возможно не всякий старый процессор потянет рилтаймовую эмуляцию 120 или 135 МГц, я на слабосильном компе еще не пробовал.
Оценил вклад чтения видео в торможение. На примере распаковки теста устройств шринклером.
Все чтение видео включено - ускорение (по сравнению со стандартным вектором) в 19.0765 раз
Отключаем чтение видео по бокам - ускорение в 19.5361 раз
Отключаем чтение видео по бокам и сверху/снизу - ускорение в 19.7744 раз
Отключить вобще все чтение видео затруднительно, не только потому, что ничего не будет видно, но и потому, что не будет регенерации и sdram рассосется. Но по приведенным данным можно прикинуть, что без чтения видео ускорение составило бы примерно 20.3-20.4 раз.
- - - Добавлено - - -
Т.е. когда все видео-чтение включено, оно тормозит проц примерно на 6%.
Лучше поздно, чем никогда - сообразил, как сократить чтение/запись кэша на такт. Это дало резкий скачек быстродействия:
Распаковка теста устройств шринклером: 23.3309
Мандельброт: 23.1079
Вращение 3D объектов: 20.0755
Комментарий по поводу третьего теста. Основной тормоз там в том, что этот тест очень много пишет в видеопамять, а для видеопамяти у меня wb кэш работает в режиме wt. Но тут вариантов нет, запись в видеопамять нельзя откладывать.
В итоге получилось преодолеть даже в тяжелом случае планку ускорения в 20 раз. "Эквивалентная частота" вектора 60-69 МГц, думаю на этом можно успокоиться.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)