E-mail: {karbo, sokolov}@mcst.ru

advertisement
Разделение процессорного времени при динамической двоичной трансляции в
однопроцессорной системе.
Ермолович А.В., Мысов М.Е., Соколов Р.А.
ЗАО “МЦСТ”
105066 Москва, ул. Нижняя Красносельская, д. 35, стр. 50
E-mail: {karbo, sokolov}@mcst.ru
Технология динамической двоичной трансляции позволяет обеспечивать
совместимость (на уровне системы команд) микропроцессора новой (целевой)
архитектуры с микропроцессором какой-либо традиционной (исходной)
архитектуры “прозрачным”, высокопроизводительным способом.
Естественным требованием к данной технологии является то, что
посредством неё исходные программные пакеты должны исполняться на целевой
платформе не медленнее, чем это делается на платформе, для которой эти
пакеты подготовлены. Максимальная производительность может быть достигнута
за счет оптимизации (транслированного) исполняемого кода и полного
использования аппаратных возможностей процессора. При этом получение
наиболее эффективного кода связано с дополнительными накладными расходами
на оптимизацию.
В процессе работы вычислительного комплекса (ВК) под управлением ДТС
исходный двоичный образ bios, ОС и пользовательских приложений динамически
преобразуется из набора команд исходной архитектуры в набор команд целевой
архитектуры. В зависимости от активности кода он может пройти через несколько
фаз работы ДТС – от интерпретации до оптимизирующей трансляции. Последняя
фаза применяется как раз для получения быстрой версии наиболее часто
исполняемого кода, но требует существенно больших процессорных ресурсов,
чем другие фазы.
С учётом того, что ДТС, помимо собственно трансляции, берет на себя
задачу контроля и управления всеми ресурсами вычислительного комплекса,
наличие фазы оптимизирующей трансляции, как правило, включающей в себя
сложные и трудоемкие оптимизирующие преобразования, способно негативно
сказаться на латентности всей вычислительной системы. Под латентностью
понимается время отклика системы на какие-либо внешние события (а именно,
аппаратные прерывания), вызванные подключенными к системе устройствами
ввода/вывода. Латентность системы как её способность оперативно реагировать
на внешние события является не менее важным её свойством с точки зрения
пользователя, подключенного к компьютеру оборудования или другого
компьютера, подключенного по сети, чем её общая производительность.
Таким образом, встает задача поиска оптимального по соотношению
“производительность / латентность” распределения процессорного времени
между фазой (оптимизирующей) трансляции и собственно исполнением двоичнотранслированного кода.
В настоящей работе представлено решение данной задачи для случая
однопроцессорной системы целевой архитектуры на примере ДТС LIntel,
обеспечивающей совместимость микропроцессора Эльбрус с архитектурой IA32.
Основная идея предлагаемого решения заключается в организации процесса
динамической двоичной трансляции таким образом, чтобы фаза оптимизирующей
трансляции и исполнение транслированного кода (поток трансляции и поток
исполнения соответственно) могли выполняться на одном процессоре независимо и
(псевдо)параллельно.
Download