Интуитивно чувствую, что для оценки работы кэша нужна другая тулза. Типа читать-писать разные количества данных из одних и тех же/прилегающих/разных мест.
Интуитивно чувствую, что для оценки работы кэша нужна другая тулза. Типа читать-писать разные количества данных из одних и тех же/прилегающих/разных мест.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Когда у меня сначала кеш совсем слабо работал я подумал - неужели придется эмулятор вымучивать?
Еще хочу уточнить - когда я писал про "нарезаем банк..." вобще-то я имел в виду страницу (т.е. row), предполагаю, что ты тоже.
Можно ещё в качестве хеш-функции попробовать не только набор младших бит адреса, а например комбинацию младших бит, пары средних и пары старших бит адреса. В большинстве программ можно выделить сегмент кода и сегмент данных, младшие биты адреса могут (и скорее всего будут) совпадать, отсюда снижение эффективности. Добавив другие биты адреса мы значительно снизим вероятность совпадения.
Наверняка для каждой программы можно найти оптимальное разделение бит адреса на индекс и содержимое тега. Но это надо тестировать и тестировать. Из всех возможных я выбрал вариант, про который читал в двух или трех книгах, т.е. если что, вопросы к их авторамДля 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 раза.
Последний раз редактировалось ivagor; 03.03.2014 в 23:08. Причина: уточнил выигрыш
Избранные места из ненаписанной монографии "Ненужность кеша для Вектора-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 МГц флоп работать не будет.
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 - интересные цвета получаются.
Последний раз редактировалось ivagor; 18.03.2014 в 12:04. Причина: Поправил режим 512 точек
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)