Компания Microsoft представила на рассмотрение разработчиков NetBSD несколько проектов, созданных специально для данной ОС. В частности, открыт код для поддержки в NetBSD аппаратной платформы eMIPS ("Extensible MIPS"), безопасный формат исполняемых файлов (secure executable format), фреймворк для аппаратного ускорения выполнения приложений и набор сопутствующих правил планирования. Код с поддержкой платформы eMIPS вчера был интегрирован в дерево исходных текстов NetBSD, а два других проекта скоро будут рассмотрены разработчиками NetBSD.

Платформа eMIPS была разработана в недрах подразделения Microsoft Research в рамках проекта по созданию реконфигурируемого компьютера. В качестве операционной системы для проведения экспериментов представители Microsoft Research остановили свой выбор на NetBSD, так как данная операционная система наиболее легко портируется на различные аппаратные архитектуры. После шутливого намека на то, что неплохо бы увидеть связанные с проектом eMIPS патчи, подразделение Microsoft Research откликнулось открытием созданного кода. Все имущественные права на код компания Microsoft передала организации The NetBSD Foundation. Другие компоненты проекта eMIPS, включая схемы CPU и периферийных устройств, также открыты для публичного доступа.

Новый порт NetBSD/emips опробован на FPGA-устройстах Xilinx ML401/2 (Virtex V4), XUP (V5) и Beecube BEE3(4xV5), а также на симуляторе Giano. eMIPS позволяет динамически загружать в CPU расширения и планировать работу логических схем, ориентируясь на определенные типы задач, перераспределяя таким образом аппаратные ресурсы для ускорения вычислений в зависимости от характера текущей нагрузки. Под возможностью реконфигурации понимается, способность в процессе работы загружать и выгружать оптимизированные для определенных задач расширения с реализацией дополнительных процессорных инструкций.

Подобные расширенные инструкции позволяют значительно повысить производительность приложений. Процесс оптимизации состоит из нескольких этапов: путем мониторинга за работой приложения производится выявление узких мест и связанных с ними блоков MIPS-инструкций. Для выявленных блоков создаются расширенные комплексные инструкции, для использования которых бинарный код приложения модифицируется - блоки заменяются на расширенные инструкции (накладывается своеобразный "патч").

Источник: http://www.opennet.ru/opennews/art.shtml?num=29400