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

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 35

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

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

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

    По умолчанию Эмулятор железа

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

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

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

    По умолчанию

    Главный ограничивающий фактор - быстродействие процессоров.

  4. #3
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Главный ограничивающий фактор - быстродействие процессоров.
    даже i7 не хватит?
    Куплю корпус и материнку от Spectrum +2/+3

  5. #4
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Любой hdl симулятор, только 1 секунду компьютера он будет просчитывать может 15 минут а может пару часов, зависит от сложности что и на чем моделируют

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

    По умолчанию

    Я могу заблуждаться, давно не заглядывал внутрь, но по-моему MAME модульный и примерно так как раз и устроен.

    Если применить совсем железячный подход, можно скомпилировать Verilog в С++ Verilator-ом и получить нативный бинарник для своей любимой архитектуры. Быстродействие может получиться терпимым, сейчас компы быстрые. Это само по себе не гарантия правильности, конечно же.
    Больше игр нет

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

    По умолчанию

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

  8. #7
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    799
    Спасибо Благодарностей получено 
    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" -- могут быть ошибки, или вольности в интерпретации неполной документации.
    Больше игр нет

  9. #8
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,645
    Спасибо Благодарностей отдано 
    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.

  10. #9
    Master Аватар для [bETA]mEN
    Регистрация
    16.01.2005
    Адрес
    Moscow
    Сообщений
    792
    Спасибо Благодарностей отдано 
    359
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    21 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Наверное, я сейчас спрошу какую-то глупость, но меня давно мучает вопрос. А почему нет (или всё-таки есть?) эмуляторов, которые эмулируют не поведение компьютера в целом, а отдельно каждый его элемент и далее взаимодействие этих элементов между собой? Что-то типа ПЛИС, но полностью в софтовом виде.
    типа такого?

    https://github.com/iaddis/metalnes
    IT FOUND A VOICE... NOW IT NEEDS A BODY

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

    По умолчанию

    Тут можно почитать про оценку быстродействия

Страница 1 из 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

Ваши права

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