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

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: Эмулятор железа

  1. #11
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    793
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    OP не озвучил уровень детализации, на котором он хотел бы остановиться, поэтому все поняли по своему. Я разумеется не имею ввиду эмуляцию устройств на уровне транзисторов. ivagor и Conan уже озвучили приблизительные оценки производительности и трудности связанные с таким низкоуровневым моделированием. И всегда можно взять уровнем ниже.

    Цитата Сообщение от Spectramine Посмотреть сообщение
    Такой эмулятор бы дико тормозил, так что вряд ли.
    Я это понял с более прагматичной позиции эмуляции законченных логических блоков.
    Вот пример 8253 из MAME pit8253.h
    И вот как выглядит например Вектор-06ц, он просто собран из типовых деталей: vector06.h vector06.cpp
    Разумеется это не то же самое, что принципиальная схема, но это очень близко. Настолько близко, что при большом желании можно провернуть фарш назад, получить из этого Верилог и синтезировать его для ПЛИС.

    Бихевиоральное описание на Верилоге можно скомпилировать Verilator-ом, оно не будет таким тормозным, как описание на уровне транзисторов. Но в нем будут все те же оговорки, что и для описания чипов "как в MAME" -- могут быть ошибки, или вольности в интерпретации неполной документации.
    Больше игр нет

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    которые эмулируют не поведение компьютера в целом, а отдельно каждый его элемент и далее взаимодействие этих элементов между собой?
    Вопрос в том, насколько мелкий этот элемент. Я поначалу так и планировал, но потом пришлось отойти в сторону крупно-блоковой эмуляции. Эмулировать микросхемы на уровне сигналов слишком медленно, и требуется достаточная точность эмуляции этих сигналов. Даже если учесть, что с момента создания первой версии моего эмулятора, скорость наших PC возрасла в 10 раз, то на мой взгляд это пока невозможно. Протеус хотя и может кое-что, но это всё-же пока не realtime, особенно для более сложных поделок, а не просто процессор+ПЗУ+ОЗУ.

  3. #13
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,574
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    399
    Спасибо Благодарностей получено 
    1,207
    Поблагодарили
    394 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо всем за ответы! Я примерно так себе ситуацию и представлял, но на всякий случай всё-таки решил уточнить.

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

  4. #14
    Veteran Аватар для Raydac
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,128
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    179 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Тогда следующий вопрос. А существуют ли в природе эмуляторы, которые эмулируют процессор не симулируя поведение каждой отдельно взятой команды, а эмитируя обработку битов, выставленных на адресной шине и шине данных и других сигналов.
    я делал что то вроде такого, но х.з. насколько правильно https://github.com/raydac/zxpoly/blo...a/z80/Z80.java

  5. #15
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,774
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,179
    Поблагодарили
    775 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    хочется чтобы эмулятор процессора пусть и не потранзисторно, но как-то на более низком уровне обрабатывал поступающую информацию
    подобное например сделали после реверса AY
    https://github.com/lvd2/ay-3-8910_reverse_engineered

    Код:
    // This verilog model of the AY chip was made from the transistor-level schematics
    // recreated by deathsoft. He used high-resolution photos of the AY's decapped die.
    //
    // The purpose of this model is to be as close to the schematics as possible,
    // wihout ever trying to be synthesizable. Suitable only for simulations!

  6. #16
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,686
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть еще смешанный подход. CPU реальный, а все остальное на PC( или другом компе). Я кучу таких плат в Америке напокупал под z80, 8085, 6809 (эти мне спаяли), а 1802 и прочее осталось в виде деталей. То есть видеоконтроллер и прочие причиндалы компа от PC, а процессор какой есть реальный. Правда чтобы прогон обеспечить на 100% скорости приходится дополнительное железо городить. На низкой достаточно AVR.
    И никакой Proteus это автоматом не поддерживает. Чтобы начертил схему, вставил CPU в колодку и вперед, экспериментируй сколько влезет.

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

  8. #17
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Я это понял с более прагматичной позиции эмуляции законченных логических блоков.
    Вот пример 8253 из MAME pit8253.h
    И вот как выглядит например Вектор-06ц, он просто собран из типовых деталей: vector06.h vector06.cpp
    Разумеется это не то же самое, что принципиальная схема, но это очень близко. Настолько близко, что при большом желании можно провернуть фарш назад, получить из этого Верилог и синтезировать его для ПЛИС.
    Все же уровень абстракции/эмуляции "счетчики, значения, логические сигналы" повыше, чем "логические элементы/транзисторы/конденсаторы", который, как я предполагал, имелся ввиду. А так без разделения на логические блоки, соответствующие функциональным блокам устройства, вообще сложно написать эмулятор, а уж многоплатформенный эмулятор и подавно.

    - - - Добавлено - - -

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

    Немного поясню. У меня за плечами несколько эмуляторов разных процессоров, написанных с нуля. Везде я использовал один и тот же подход: берём байт из памяти и переходим на подпрограмму, соответствующую команде, зашифрованной этим байтом или их последовательностью, а эта подпрограмма уже меняет значение регистров и флагов в соответствии с документацией. Таким образом, при таком подходе нет места каким-то недокументированным командам, если только не написать соответствующие подпрограммы. А хочется чтобы эмулятор процессора пусть и не потранзисторно, но как-то на более низком уровне обрабатывал поступающую информацию, чтобы, например, недокументированные команды и другое недокументированное поведение работаю автоматически. В общем, чтобы написать эмуляцию процессора, а все возможные команды заработали автоматически и максимально правильно (идеально).
    Чтобы эмулятор процессора автоматически правильно исполнял недокументированные команды, он должен имитировать работу процессора на схемном уровне (отдельных транзисторов/логических элементов). А такой эмулятор будет очень медленным.
    Последний раз редактировалось Spectramine; 24.12.2022 в 04:58.

  9. #18
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    828
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    108 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    взять тотже z80 его по транзисторная модель выполняет несколько команд в секунду. интел на 4ггц. зато все недокументированности в наличии

  10. #19
    Veteran Аватар для Raydac
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,128
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    179 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    взять тотже z80 его по транзисторная модель выполняет несколько команд в секунду. интел на 4ггц. зато все недокументированности в наличии
    зачем брать транзисторную модель если есть расписанная вся модель состояний проца и расшифровки команд

  11. #20
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,686
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    есть расписанная вся модель
    ну тогда должно быть ПО, которое автоматически получает такую модель из транзисторной модели, а та в свою очередь получается из снимков слоев распотрошенной микросхемы. Внешние проявления "жизнедеятельности микросхемы" видны, если записывается состояние всех ее выводов с частотой превышающей ее тактовую частоту.
    Есть такие инструменты?

    - - - Добавлено - - -

    Цитата Сообщение от Spectramine Посмотреть сообщение
    многоплатформенный эмулятор и подавно.
    в идеале нужен всего один
    zif-сокет в случае ASIC DIP, устройство сопряжения и система с ИИ. Ставишь чип, программа прогоняет его по полной, сравнивая с имеющейся моделью, при несоответствии предлагает разработчику модель скорректировать (пока недообученная система). Затем повышает уровень модели снизу-вверх и вуаля все эмулирует. Как соединить отдельные модели чипов в работоспособную схему это задачка посложнее. Если она и это станет делать без участия человека, то отсюда уже недалеко и до "восстания машин"

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Опознание железа к БК.
    от Mad Killer/PG в разделе БК-0010/0011
    Ответов: 8
    Последнее: 12.02.2012, 09:42
  2. Выбор железа
    от emp в разделе Несортированное железо
    Ответов: 18
    Последнее: 02.11.2010, 09:46
  3. Производство железа
    от CHRV в разделе Несортированное железо
    Ответов: 160
    Последнее: 02.10.2007, 12:11
  4. Тесты железа
    от Almaz в разделе Софт
    Ответов: 3
    Последнее: 18.03.2006, 02:33

Ваши права

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