ПРИМЕНЕНИЕ ПРОГРАММНЫХ ЭМУЛЯТОРОВ ПРОЦЕССОРОВ СЕМЕЙСТВА
Intel x86
С. Б. Воинов
Научный руководитель: проф. С. М. Авдошин
«МАТИ» - Российский Государственный Технологический
Университет
им. К. Э. Циолковского, 121552, Москва, Оршанская 3, e-mail: shackmaster@mail.ru
С ростом вычислительной мощности
современных компьютеров возникает задача построения специального рода
программного обеспечения, предназначенного для эмуляции работы каких-либо
аппаратных средств. Эмуляция работы аппаратных средств позволяет выполнять
функции отсутствующего у пользователя устройства, причём эти функции
выполняются программно, а не аппаратно. Не смотря на то, что можно эмулировать
многие функции, поддерживаемые аппаратно, программная эмуляция требует
значительной вычислительной мощности процессора и, как правило, уступает по
скорости выполнения функций эмулируемому устройству. С одной стороны,
программная эмуляция может использоваться для поддержки аппаратно реализуемых
функций устройства, совместимого с той аппаратной платформой, для которой
написан эмулятор. Примером этому может служить программная эмуляция функций 3D-ускорителей в API Direct3D. С другой стороны, иногда возникает необходимость
выполнения на одной аппаратной платформе функций другой аппаратной платформы,
несовместимой с первой. Примером может являться эмулятор процессора PowerPC, написанный для семейства процессоров Intel x86.
Широко распространены программные
эмуляторы различных игровых платформ, например Sega, Nintendo, PlayStation и т. д. Также существуют эмуляторы устаревших
микрокомпьютеров, таких как ZX Spectrum, Commodore 64,
Радио 86 РК и т. д. Последняя группа эмуляторов представляет, в основном,
академический интерес с точки зрения изучения системы команд и аппаратных
особенностей микрокомпьютеров. Однако в настоящее время отсутствуют полностью
функциональные программные эмуляторы процессоров семейства Intel x86,
написанные под эту же аппаратную платформу и позволяющие помимо системы команд
эмулировать функции таких устройств IBM PC как контроллер прерываний,
контроллер прямого доступа к памяти и других системных устройств. Использование
такого рода эмуляторов представляет большой научный интерес.
Подобные эмуляторы могли бы
использоваться для следующих целей:
В соответствии с перечисленными целями, был проведён
анализ системы команд процессора 8086 и начата разработка программного
эмулятора, функционирующего в среде Windows
95/98/Me/2000.