Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
13.02.2008, 02:14
|
|
Частый гость
Регистрация: 04.12.2006
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Замена процессора 8086 микроконтроллером AVR
Интересно, можно ли с помощью микроконтроллера AVR (например, ATmega32) сделать микропроцессор 8086? Понятное дело, нужен перехлдник под ножки для 8086.
Только не спрашивайте, зачем это нужно и т. д., это просто тема для размышления наших уважаемых гуру.
Понятное дело, что 8086 - 16 разрядный, а AVR - 8 разрядов, причем у 8086 шина мультиплексированная на память и на данные...
Но что мешает проэмулировать систему команд и шину 8086 двумя восьмиразрядными шинами МК AVR?
Только не подумайте, я не псих. Но мне кажется, это вполне реально! (или я не прав?)
Может кто знает, есть ли такие, кто пытался это "нечто" сотворить?
|
|
|
|
13.02.2008, 02:48
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2005
Сообщений: 685
Сказал спасибо: 14
Сказали Спасибо 84 раз(а) в 44 сообщении(ях)
|
Почемубы и нет. Ели времени не жаль то пожалуйсто. Вот только надо учитывать что эмулировать прийдется не только набор команд но и время их выполнения. следовательно тактовая частота эмулированого 8086 будет ниже АВР, геморой с прерываниями и таймерами и еще туча проблем.
И вобще Мк тогда уж лучше взять 16 разрядный.
|
|
|
|
13.02.2008, 08:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,496
Сказал спасибо: 694
Сказали Спасибо 4,285 раз(а) в 1,962 сообщении(ях)
|
Интересно на сколько пива он спорил?
|
|
|
|
13.02.2008, 15:13
|
|
Временная регистрация
Регистрация: 06.05.2005
Сообщений: 93
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
и даже 16-разрядный контроллер вряд ли сможет, 86 процессор - довольно мощный процессор для выполнения любых задач, контроллеры его возможностями не обладают за ненадобностью, у контроллеров своя специфика и свои ресурсы, зачастую избыточные для реализации 86
|
|
|
|
13.02.2008, 15:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Гораздо проще взять FPGA и нарисовать в ней процессор.
Или, если нужно для работы а не для учёбы - в инете продаются ещё 8086 и его клоны, также его можно вытащить из какого-нить древнего компьютера.
http://cgi.ebay.co.uk/VINTAGE-SOVIET...sid=p1638.m122
|
|
|
|
13.02.2008, 18:26
|
|
Частый гость
Регистрация: 04.12.2006
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от demaven
|
и даже 16-разрядный контроллер вряд ли сможет, 86 процессор - довольно мощный процессор для выполнения любых задач, контроллеры его возможностями не обладают за ненадобностью, у контроллеров своя специфика и свои ресурсы, зачастую избыточные для реализации 86
|
"довольно мощный процессор для выполнения любых задач"
Соглашусь. Но только мощный вместе с обвязкой, т. е. различными контроллерами памяти, шин и пр.
Иожно сделать (для начала) небольшой анализ:
Смотрим в ДШ 8086. Стандартная тактовая - 4.77 МГц, средняя скорость - 0.33 MIPS ( http://www.socd.univ.kiev.ua/EDUCAT/...DOS1/index.htm). Есть и помощнее камни, например 8086-1 или 8086-2. Там частота тактовки только увеличена до 8 МГц, производительность увеличилась в 2 раза (0.66 MIPS). Всего у 8086 вроде 97 команд (стандартных). Выполнение команд происходит зачастую за 5 и более машинных тактов.
Смотрим AVR Mega32. 16 MIPS при 16 МГц. RISC ядро с более чем 110 команд.
Недостающие команды можно спокойно эмулировать, разве проблема декодировать и програмно проэмулировать?
Понятное дело, при эмуляции 8086 скорость обработки AVR в режиме 8086 может упасть в среднем в 5-7 раза. Это ни много ни мало - 2 MIPS, что УЖЕ в прилично раз больше, чем 0.33 MIPS...
Конечно, нужно еще решать проблемы синхронизации, обработку внешних прерываний и пр....
Особого приемущества 8086 не сильно вижу...
|
|
|
|
13.02.2008, 18:45
|
|
Временная регистрация
Регистрация: 06.05.2005
Сообщений: 93
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Правда, недостающих команд 97 (все) и все их необходимо эмулировать, читать из оперативной памяти команд якобы 86 проца и силами меги делать то, что делает 86. У меги32 разве есть возможность читать внешнюю память? Хотя прочитать внешнюю память можно и на меге8, но где тогда 4 такта на команду? Не все так просто под луной, брат Горацио
|
|
|
|
13.02.2008, 18:55
|
|
Частый гость
Регистрация: 04.12.2006
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от demaven
|
Правда, недостающих команд 97 (все) и все их необходимо эмулировать, читать из оперативной памяти команд якобы 86 проца и силами меги делать то, что делает 86. У меги32 разве есть возможность читать внешнюю память? Хотя прочитать внешнюю память можно и на меге8, но где тогда 4 такта на команду? Не все так просто под луной, брат Горацио
|
Соглашусь. 4 такта однозначно не будет. Но это только в том случае, если кварцовать Мегу от стандартных 4.77 МГц.
А если взять 16 МГц (свой кварц для Меги32) ?
С синхронизацией можно решить проблему (сделать необходимые задержки, если вообще это нужно будет).
Интересно вот что. Некоторые команды, как мне кажется, удастся даже сократить по времени выполнения (арифметика), но на некоторые закономерно будет уходить больше вромени (доступ к памяти)...
|
|
|
|
13.02.2008, 19:11
|
|
Частый гость
Регистрация: 04.12.2006
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вот, кстати, даташит 8086 во вложении. Может кому интересно
Прикрепленный файл: 9131903.pdf
|
|
|
|
13.02.2008, 19:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Пожалуйста, раскройте великую тайну. Нафига делать то, что никому не нужно?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:19.
|
|