![]() |
Наверняка для каждой программы можно найти оптимальное разделение бит адреса на индекс и содержимое тега. Но это надо тестировать и тестировать. Из всех возможных я выбрал вариант, про который читал в двух или трех книгах, т.е. если что, вопросы к их авторам :) Для 8биток можно попробовать и полностью ассоциативный кеш, где такой проблемы вобще нет, но он будет крошечным (сомневаюсь, что больше 256 строк) и его реализация в виде кода мне представляется чересчур громоздкой. Наборно-ассоциативный - хороший компромисс, но при его реализации возникают свои вопросы.
Еще по терминологии. Вместо надмозговой "обратной записи" пожалуй грамотнее будет "отложенная запись", ну запомнился мне неудачный перевод, так уж получилось. |
Сейчас для проверки использую эксисайзер, амбал3д и попробовал упаковщик cpress3 (с турбой слишком быстро сжимает).
Что еще для вектора есть долгое, где можно засечь время прогона? ---------- Post added 04.03.2014 at 00:59 ---------- Previous post was 03.03.2014 at 23:40 ---------- Клеточные автоматы Левина Л.Л. понравились. ---------- Post added at 01:03 ---------- Previous post was at 00:59 ---------- Пока остановился на режиме SDRAM 144/CPU 72 (кадровая 75 Гц) и потестил в нем разные проги и варианты кеша. Что интересно - выигрыш везде примерно одинаковый, примерно в 1,33-1,45 раза. |
Избранные места из ненаписанной монографии "Ненужность кеша для Вектора-06Ц"
Тестовые программы всего 3: 8080exe7, A3Dp8, BORDHOLL Увеличение строки кеша до двух байт - положительная вещь. Производительность (тестировал с 4 Кб кешем) по сравнению с однобайтной строкой не изменилась, а объем тега в 2 раза меньше. Увеличение кеша до 8 Кб (с двухбайтной строкой) - нет смысла, скорость уже не выросла. Чтобы четче увидеть разницу, уменьшил кеш до 1 Кб и сравнил кеш прямого отображения и двухканальный (он же "двухвходовый") наборно-ассоциативный. При 1 Кб наборно-ассоциативный или чуть-чуть лучше (в эксисайзере и клеточном автомате) или такой-же (в амбале). Что интересно, при 4 Кб эксисайзер меняет ориентацию и отдает предпочтение варианту прямого отображения. Но в обоих случаях (1 и 4 Кб) разница во времени между прямым отображением и наборно-ассоциативным не более 1% Наверняка, если еще урезать объем, то наборно-ассоциатиный должен четче победить. ---------- Post added at 20:14 ---------- Previous post was at 18:40 ---------- В завершение саги с кешем. Про урезание объема я ошибался - при 512 байтах разница м/у двумя вариантами минимальна. Но зато узнал, что A3Dp8 512 байт совсем мало, ему хотя бы 1 Кб нужен. Возможно это я перестарался с развертыванием циклов. |
Поздравляю svofski с юбилейной 400ой версией.
Теперь используется только одна базовая частота 50 МГц. AY/YM стал стерео. (SW9 - "омский микс" ABC/"кировский микс" CBA, KEY2 теперь вместо "старого" SW9). Из AYка теперь читает, как и в SRAMовских версиях. SKYNET не пиликает, просто шумит, примерно как эмуляторы для ПК. Устранился ряд артефактов, связанных с AY, но появился по крайней мере один "новый" - в SKYNET когда буквы уходят вдаль слышны лишние попискивания. |
Наконец-то совместил в одном флаконе "медленный" (<120 МГц) сдрам, турбу и работающий дисковод. Теперь меня должно отпустить. Напоминаю, что начиная с ревизии 400 переключение турбы по KEY2, а не по SW9. Очень надеюсь, что 60 МГц сдрам у всех будет работать.
|
Удалось выяснить, что контроллер флопа не любит "короткие" cpu_ce, даже если период их следования соответствует стандартным 3 МГц. Т.е. с процом быстрее 12 МГц флоп работать не будет.
|
1 Attachment(s)
Q&D версия Старта-1200 на базе последней ревизии. По хорошему надо бы оформить условную компиляцию и выложить в репозиторий, но я так не сделал. Кроме замены приложенного файла еще нужно:
1. Увеличить bootrom до 8 Кб и залить в него vec1200.bin из emu или START-1200.RT из VV. 2. Создать palette_rom (512 байт, см. приложенный исходник) и залить в него palette.bin из emu (в режиме 512 точек будут полосатые буквы) или 1200PALL.RT из VV. Тетрис, бейсик, игрушки на бейсике работают. До сих пор не пробовал запускать PUTUP в конфиге 1200 - интересные цвета получаются. |
Некое подобие Кристы-2 можно скачать здесь.
|
1 Attachment(s)
Почти ПК-6128Ц на основе ревизии 403. Нужно заменить vector06cc.v на приложенный файл, увеличить bootrom до 16 Кб и залить в него образ пзу 6128 из любого эмулятора.
Недоделки: 1. ВМ80 вместо ВМ85. Чтобы загрузчик, заточенный под ВМ85, грузил ROMы нужно в утилите Ramirosа выставлять минимальную скорость. 2. Т.к. ПЗУ в 6128 16 Кб, то не хватает памяти в ПЛИСине на контроллер флопа. Можно, например, сделать загрузку ПЗУ с SD или подсушить контроллер дисковода - все пути открыты. |
Напишу здесь и сразу признаю - это будет оффтоп.
Не прошло и полгода - попробовал рекомендации из Demystifying Timing Constraints. Взял оттуда все кроме set_multicycle_path (надо еще другую статью почитать, а то не понял, что это такое). В графиках, которые строит TimeQuest не разобрался, тем не менее - заработало. Пробовал на проекте РК86. Уточню, что именно заработало - до этого у меня не получалось запустить SDRAM на 150 МГц при получении этих 150 из 50. Причем здесь вектор - теперь я знаю, чем можно было твикать сдрам, чтобы он на старых DE1 заработал на 120 МГц полученных из 50 МГц. Надеюсь, что текущие 60 МГц у всех работают, но все равно хотелось и про 120 понять. ---------- Post added at 19:52 ---------- Previous post was at 19:24 ---------- микродополнение - 166,67 МГц полученные из 50 тоже заработали |
| All times are GMT +4. The time now is 23:15. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.