ПРИМЕНЕНИЕ ПРОГРАММНЫХ ЭМУЛЯТОРОВ ПРОЦЕССОРОВ СЕМЕЙСТВА

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.