User Tag List

Показано с 1 по 10 из 1838

Тема: Эмулятор ДВК

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я имею ввиду, не слишком ли медленное построение эмулятора, когда захват шины - это межпоточная блокировка.
    Поэтому блокировка ставится не на шину, а на устройство. Память допускает полностью параллельную работу, а изменить состояние любого конкретного устройства может только тот поток, который первым туда "залез".

    Но строго говоря, даже если ставить блокировку на любое обращение к "общей" шине - многопоточная эмуляция будет медленнее однопоточной только на одноядерном процессоре.

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

  3. #2

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,218
    Поблагодарили
    872 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Но строго говоря, даже если ставить блокировку на любое обращение к "общей" шине - многопоточная эмуляция будет медленнее однопоточной только на одноядерном процессоре.
    Чего-то мне кажется, что это вообще достаточно медленная концепция.

  4. #3

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Чего-то мне кажется, что это вообще достаточно медленная концепция.
    Это с непривычки.

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

    Чтобы при многопоточной эмуляции быстродействие с блокировками было ниже, чем при однопоточной без блокировок - код блокировки должен суммарно выполняться дольше, чем код эмуляции - тогда удвоенное быстродействие двух физических ядер будет "убито" непрерывно выполняющимся кодом блокировок. Если код блокировок будет "отъедать" ровно столько же процессорного времени хост-машины, сколько и код эмуляции - быстродействие многопоточной эмуляции будет РАВНО быстродействию однопоточной. Во всех остальных случаях многопоточная эмуляция будет быстрее.

  5. #4

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,218
    Поблагодарили
    872 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Это с непривычки.

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

  6. #5

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Для точной потактовой эмуляции это неподходящий вариант вообще
    Точнее - для максимальной синхронности виртуального времени. Ведь у каждого процессора может быть своя тактовая частота, поэтому привязка должна идти не к тактам, а к виртуальному времени.

  7. #6

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,218
    Поблагодарили
    872 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Точнее - для максимальной синхронности виртуального времени. Ведь у каждого процессора может быть своя тактовая частота, поэтому привязка должна идти не к тактам, а к виртуальному времени.
    Нет, привязка должна быть к единому тактовому источнику эмулируемой системы. Если кварцев несколько, то этоможно аппроксимировать тоже одним источником, но со специально введенными дополнительными дробными погрешностями, для точной эмитации биения частот кварца. Как, например, у меня в EmuStudio. Один процессор 8.0001МГц (можно любые дробные тайминги поставить), второй 6.25МГц.

  8. #7

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    привязка должна быть к единому тактовому источнику эмулируемой системы
    Это и есть "виртуальное время". В модульном API события привязываются к виртуальному времени с точностью 1 нс ( т.е. единый тактовый источник эмулируемой системы имеет частоту 1 ГГц ).

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

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

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

Похожие темы

  1. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 20
    Последнее: 03.09.2024, 13:24
  2. Эмулятор ПЗУ.
    от ALKO в разделе Память
    Ответов: 8
    Последнее: 17.05.2011, 13:41
  3. Эмулятор AY на AVR
    от serkiri в разделе Звук
    Ответов: 52
    Последнее: 10.06.2010, 09:01
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 18:53

Ваши права

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