User Tag List

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

Тема: Документация на ПК 11/16

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

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

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ага, и поэтапное уточнение эмулятора это как раз путь

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    Ага, и поэтапное уточнение эмулятора это как раз путь
    Если в начальную концепцию заложены ресурсы для данного уточнения.
    Поясню на примере.
    Если эмулятор, скажем, предполагает, что выполнение команд процессора реализовано с покомандной дискретностью, т.е. команда выполняется за заданное число тактов, в процессе выполнения которой активность других устройств системы не эмулируется, то сменить подобную парадигму на потактовую эмуляцию команд, тем более на дробно-тактовую можно только переписав добрую (а то и злую) половину эмулятора.

    У меня, например, в EmuStudio изначально закладывалась потактовая эмуляция ВМ2, однако я не знал в точности, как работают внутренние узлы процессора, и делал эту потактовую разбивку методом отсебятины. Кроме того, я не знал таймингов других чипов УКНЦ, коих великое множество (несколько штук). Словом, сперва реверс чипов, ВМ2, а уж потом можно задумываться мне или Никите Зимину, или еще кому о действительно точном эмуляторе УКНЦ.

  4. #3

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

    По умолчанию

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

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

    Такой подход в подавляющем большинстве случаев ( когда в одном такте больше 100 наносекунд ) на два порядка точнее потактового и практически не добавляет накладных расходов.

  5. #4

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Например, движок наносекундной синхронизации в эмуляторе ДВК просто не позволяет произойти событию, которое назначено на более позднюю наносекунду, чем текущая эмулируемая наносекунда.
    В вашей эмуляции выполнение команды процессором делится ли на составные части, такие как, например: чтение кода (со всеми составляющими - запрос к шине, ожидание), чтение данных, выполнение, запись результатов? Причем, во время каждой стадии другое устройство тоже может запросить доступ к разделяемому ресурсу (например, шине), и не одно устройство (другой процессор, контроллер ПДП и т.д.).

  6. #5

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

    По умолчанию

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

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

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

  7. #6

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    При покомандной абстрактной эмуляции такое невозможно, но в принципе, если не стоит задача эмулировать состояние отдельных линий шины - абстрактный подход позволяет решать любые проблемы не хуже потактового, но с гораздо большей точностью и скоростью.
    Возможно, в однопроцессорном ДВК покомандной абстрактной эмуляцией решаются все задачи 100% совместимости (возможно), но в УКНЦ такое не пройдет ввиду двухпроцессорности, ПДП видеоконтроллера и т.д.

    Если потактовый эмулятор 100% совместим с оригиналом, то не может быть точность 'гораздо большая', чем у него) Есть или 100% точность, или эмулятор не точный. Это как со свежестью осетрины, или она первой свежести, или уже тухлая)

  8. #7

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Возможно, в однопроцессорном ДВК покомандной абстрактной эмуляцией решаются все задачи 100% совместимости (возможно), но в УКНЦ такое не пройдет ввиду двухпроцессорности, ПДП видеоконтроллера и т.д.
    Теоретически при "поцикловой" эмуляции шины - никаких проблем быть не может, значит все указанные задачи могут быть решены чисто абстрактно.


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

    Абстрактная наносекундная эмуляция даёт на два порядка большую точность.

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

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

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

Похожие темы

  1. Документация по Z280
    от spensor в разделе Несортированное железо
    Ответов: 39
    Последнее: 08.04.2014, 00:52
  2. Тех. документация на старые ЭВМ и книги
    от AL.EX в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 15.08.2010, 17:33
  3. Ленинград-2: документация
    от dicebox в разделе Ленинград
    Ответов: 13
    Последнее: 14.04.2009, 23:33
  4. Документация к Dendy
    от UberAlice в разделе Nintendo
    Ответов: 9
    Последнее: 19.03.2008, 14:02
  5. Программная документация.
    от fk0 в разделе Программирование
    Ответов: 7
    Последнее: 19.01.2006, 16:53

Ваши права

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