-
Наверняка для каждой программы можно найти оптимальное разделение бит адреса на индекс и содержимое тега. Но это надо тестировать и тестировать. Из всех возможных я выбрал вариант, про который читал в двух или трех книгах, т.е. если что, вопросы к их авторам :) Для 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
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
Почти ПК-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 тоже заработали