Jump to content

    
Sign in to follow this  
Lisitsin

ZX Spectrum: аппаратная реализация на микроконтроллерах AVR

Recommended Posts

Lisitsin, прошу прощения за то что не по теме, но очень хочется узнать, что повергло вас использовать в своем проекте AVR-архитектуру, тогда как Spectrum ZX гораздо ближе к 51-ой архитектуре. Даже в том случае, когда полного сходства с командами Z80 нет, для нынешних 51-х вполне можно было бы перетранслировать старые коды байт в байт. Т.е. написать примитивный ретранслятор из кода в код, таким образом, чтобы были только замены, но сам код не сжимался и не расширялся. И это всё затем, чтобы адреса переходов не требовали модификации. Или я слишком оптимистична?

 

Такой подход нельзя назвать эмуляцией, поскольку процесс интерпретации команд во время работы программы не происходит (run-time), а в новый код преобразуется без его деассемблирования. Да и нынешние 51-е МК работают во много раз быстрее, чем старый Z80, хотя и эту архитектуру ныне считают устаревшей. Два года назад я уже задавала в этой теме вопрос (http://electronix.ru/forum/index.php?s=&am...st&p=819032) относительно перспективности использования eZ80 от Zilog (в частности eZ80F91), но вы тогда мне не ответили. Может быть сейчас ответите?

Share this post


Link to post
Share on other sites
Или я слишком оптимистична?

Даже очень слишком. Что со стеком будем делать, например? Разные они настолько, что концепции перевода не может быть даже.

Share this post


Link to post
Share on other sites
Даже очень слишком. Что со стеком будем делать, например? Разные они настолько, что концепции перевода не может быть даже.

 

Что делать со стеком? - Да ничего! Я, когда программирую, вообще о нем не думаю. :)

 

Share this post


Link to post
Share on other sites
Что делать со стеком? - Да ничего! Я, когда программирую, вообще о нем не думаю. :)

Там эмуляция/перевод невозможны, потому что 51-стек растет вверх, а у Z80 - по нормальному :), к тому же в 51 - стек не отображается во внешнюю память... кому я это рассказываю? Вы и так всё прекрасно знаете.

Share this post


Link to post
Share on other sites
Может быть сейчас ответите?

51? Это интересно. Вот только правильнее было бы тогда сразу взять сам Z80 и на нём всё делать.

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

Насколько я осведомлён, 51-ые контроллеры не слишком шагнули вперёд по производительности из-за всё тех же гранц, накладываемых архитектурой - 4 такта в машинном цикле, 21 МГц. При этом главная задача эмуляции - замена инструкций, выполняющихся с отличиями от Z80-ых последовательностью своих родных. При этом мы не располагаем дополнительными свободными регистрами для выполнения этой задачи, а значит, пользуемся ОЗУ. Это удлинняет время выполнения инструкции в неопределённое число раз. При всём при том, пока речь ещё не шла о недокументированных особенностях выполнения команд Z80, без которых будет работать только бейсик и всё.

Преобразование же кода из родного Z80 формата в некий 51х формат выглядит безобидно только с первого взгляда. На самом деле если глубокомысленно и медетативно посмотреть на эту задачу, можно увидеть, что это есть ни что иное как та же самая эмуляция, но выполняемая заранее. Она ни сколько не проще Real-time эмуляции.

Огромное спасибо за вопрос!

Edited by Lisitsin

Share this post


Link to post
Share on other sites
Насколько я осведомлён, 51-ые контроллеры не слишком шагнули вперёд по производительности из-за всё тех же гранц, накладываемых архитектурой - 4 такта в машинном цикле, 21 МГц.

 

Еще как шагнули вперед, 1-2 такта и 100Мгц.

 

http://www.silabs.com/products/mcu/Pages/8...ontrollers.aspx

http://we.easyelectronics.ru/MCS51/start-s-silabom.html

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this