Важная информация

User Tag List

Страница 26 из 81 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя
Показано с 251 по 260 из 801

Тема: Вектор-06Ц: Altera DE1

  1. #251
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вычищать мусор из всего проекта не хватает моральных сил, вот контроллер сдрама, его будет достаточно для оценки нововведений
    Странные манипуляции с адресными линиями вызваны тем, что при обращении к контроллеру адреса перепутываются (A[14:13] помещаются в самые младшие разряды) для облегчения/ускорения чтения видео.
    Вложения Вложения
    Последний раз редактировалось ivagor; 02.03.2014 в 19:33. Причина: теперь кеш обновляется не только при записи

  2. #252
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Никто не успел заметить - а я успел доработать. Теперь кеш (теперь 4 Кб) обновляется не только при записи, но и при чтении.
    Сейчас еще более "агрессивный" вариант попробую.

    ---------- Post added at 21:50 ---------- Previous post was at 21:35 ----------

    Время прогона оптимизированного эксисайзера для SDRAM 144/CPU 48:
    без кеша - 9:30
    с кешем (первый вариант) - 9:10
    Тут я подумал - WTF? Что ж такая низкая эффективность?
    После вышеописанной доработки
    с кешем (второй вариант) - 8:20
    Это уже на что-то похоже.
    Если не бояться кеш-промахов, то можно не начинать параллельно чтение из SDRAM (которое в случае кеш-попадания долго завершать), а сначала попробовать найти в кеше и только если там нет тогда читать из SDRAM. При кеш-промахе будем терять 2 такта, но, как известно из литературы, кеш-промахи д.б. не очень частыми (это если не делать как я в первом варианте).
    с кешем ("агрессивный вариант") - 7:10
    Вот это я понимаю! У меня на стареньком атлоне оригинальный эксисайзер только чуть быстрее в emu работал

    ---------- Post added at 22:17 ---------- Previous post was at 21:50 ----------

    Но все равно пока что кеш туповатый, можно и сам контроллер улучшить и снаружи.

  3. #253
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SDRAM 162/CPU 81 с кешем - 5:26

  4. #254
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    397
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можешь в двух словах описать работу кеша?

  5. #255
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сейчас реализован самый простой вариант - кеш прямого отображения со сквозной записью.
    Адрес, по которому обращается процессор делим на две части - младшая будет индекс в кеше, старшая хранится в теге кеша и при обращении сравнивается с тем, что сейчас дает проц. Пишем в кеш при чтении из сдрам (то, что я в первом варианте не сделал) или при записи.
    Причем я вчера попробовал сделать перекос в сторону чтения еще сильнее - обновлять кеш при записи только если данный адрес уже там есть. Это не изменило время прогона эксисайзера и амбала3д, так что пока под вопросом, как оставить.
    Выложенный вариант "консервативный" - читаем из кеша и проверяем тег параллельно с чтением из сдрам. Так мы никогда не будем терять такты в случае кеш-промахов, но и выигрыш маловат. После тестов сам я однозначно за "агрессивный" вариант - сначала читаем из кеша, и только если там нет - начинаем обращение к сдрам. В худшем случае потеряется два такта, но кеш-попадания заметно чаще промахов, т.ч. игра стоит свеч.
    Что стоит доделать для более серьезного применения - увеличить размер строки кеша. У меня сейчас каждой записи тега соответствует один байт из памяти. Это очень неэффективно. Надо как минимум 2, а лучше 4-8-16 и читать пакетом.

    Да, еще надо не забывать инициализировать кеш при ресете. В векторе я загрузчик чуть доработал для этого.
    В векторе, раз нет дма и видео всегда в одном месте (плохо для программера, хорошо для кеширования), то сравнительно несложно доработать до обратной записи. Т.е. по видеоадресам сквозная запись, а по остальным - обратная.
    Эффективнее был бы наборно-ассоциативный кеш (хотя бы двухвходовый), но заморочек там больше, может кто знает готовый вариант, желательно на верилоге?
    Последний раз редактировалось ivagor; 03.03.2014 в 10:24. Причина: добавил пару слов

  6. #256
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    397
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А не будет проблем в случае, когда при серийном доступе к памяти пересекается граница банка? У меня после чтения даташита что-то такое засело в мозгу насчет precharge.

  7. #256
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #257
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Просто не надо ее пересекать. "Нарезаем" банк на части по 2-4-8-16 или сколько надо байт и читаем их. Видео же я читаю по 4 байта, все ОК.

    ---------- Post added at 13:18 ---------- Previous post was at 13:16 ----------

    А если вдруг очень надо пересечь, то с precharge, но я лично необходимости в этом не вижу.

  9. #258
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    397
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Интуитивно чувствую, что для оценки работы кэша нужна другая тулза. Типа читать-писать разные количества данных из одних и тех же/прилегающих/разных мест.

  10. #259
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Когда у меня сначала кеш совсем слабо работал я подумал - неужели придется эмулятор вымучивать?
    Еще хочу уточнить - когда я писал про "нарезаем банк..." вобще-то я имел в виду страницу (т.е. row), предполагаю, что ты тоже.

  11. #260
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,849
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    168 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно ещё в качестве хеш-функции попробовать не только набор младших бит адреса, а например комбинацию младших бит, пары средних и пары старших бит адреса. В большинстве программ можно выделить сегмент кода и сегмент данных, младшие биты адреса могут (и скорее всего будут) совпадать, отсюда снижение эффективности. Добавив другие биты адреса мы значительно снизим вероятность совпадения.

Страница 26 из 81 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вектор-06Ц: Эмуляция
    от ZEman в разделе Вектор
    Ответов: 1450
    Последнее: 16.03.2024, 20:18
  2. Вектор-06Ц: Общие вопросы
    от CityAceE в разделе Вектор
    Ответов: 844
    Последнее: 11.01.2024, 14:31
  3. Ответов: 9
    Последнее: 18.04.2009, 21:21
  4. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23
  5. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •