Computerworld, США
Создана технология, с помощью которой можно загружать аппаратные заплаты для микросхем с той же легкостью, что и программные
В 1994 году корпорация Intel выпустила свой первый процессор Pentium с небольшим дефектом в той части микросхемы, которая была связана с делением чисел с плавающей запятой. В корпорации сначала не признали серьезности проблемы, назвав ее «крайне незначительной», однако пользователи с этим не согласились, и Intel в конечном итоге была вынуждена отозвать процессоры, что обошлось ей в 475 млн. долл.
Возможно, пройдет совсем немного времени, и таких финансовых потерь и ущерба для репутации можно будет избегать, реализовав в микросхемах технологию Tortola, созданную молодой сотрудницей университета штата Вирджиния Ким Хезелвуд. Она создает технологию, с помощью которой пользователи могли бы загружать аппаратные заплаты с той же легкостью, что и программные. С Хезелвуд уже сотрудничают и Intel, и IBM.
Хезелвуд заметила, что разработчики традиционно стремятся оптимизировать производительность компьютерных систем, сосредоточивая свои усилия только на каком-то одном уровне — оборудования, операционной системы, приложений и т. д. Но она считает, что решить проблемы, касающиеся микропроцессоров, можно, создав более эффективную связь между программным и аппаратным обеспечением. Хезелвуд назвала подобный симбиоз «средой виртуального исполнения» (Virtual Execution Environment, VEE).
Технология Tortola работает так. Аппаратные датчики посылают VEE информацию о таких вещах, как скачки температуры и напряжения. VEE запрограммирована так, чтобы реагировать на эти сигналы и менять исполняемый код во время его работы. Скажем, если фиксируется температурный скачок, VEE может заменить указанную в коде последовательность команд на другую, которая требует меньших ресурсов процессора. Она также может реагировать на проблемы, вызванные недостатком производительности например в том случае, если наблюдается определенный уровень промахов при доступе к кэшу или конфликт ресурсов, и перераспределять нагрузку между процессорными ресурсами.
Хезелвуд проиллюстрировала свою концепцию на примере хорошо известной проблемы, состоящей в том, что определенные шаблоны команд заставляют процессорные микросхемы периодически быстро включаться и выключаться. Это может произойти, например, когда определенная последовательность команд многократно выполняется в цикле программы. Такое быстрое переключение может снизить надежность процессора и привести к некорректным результатам.
Хезелвуд показала, что VEE может определять, когда такое происходит, ведя мониторинг перепадов напряжения на процессоре и вставляя инструкции no-op («пустые» команды, которые выполняют бесполезные вычисления), чтобы прервать эту серию включений и выключений. VEE может также «растянуть» имеющийся цикл, увеличив время между скачками напряжения до приемлемой частоты. Измененный код приложения сохраняется в VEE и используется вместо оригинального кода, когда программа выполняется.
Больше никаких узких мест
Хезелвуд также предлагает использовать Tortola для решения проблемы планирования, которая приобретает особую остроту для многоядерных процессоров. Эта проблема обусловлена неидентичностью ядер, поскольку они были созданы с различными функциями, либо незначительные различия объясняются допустимыми отклонениями при производстве.
VEE может вести мониторинг работы каждого процессорного ядра и динамически перепланировать работу таким образом, чтобы избегать узких мест. Несмотря на то что в принципе операционная система может делать то же самое, чтобы использовать эту возможность, ее необходимо серьезно адаптировать с учетом специфики оборудования.
Какое-то время назад в процессоры стали добавлять схемы, реализующие такие функции, как управление питанием и планирование выполнения команд в многопоточном коде. Однако, как заметил Иен Лао, аналитик компании In-Stat, выполнять такие задачи в процессорах с несколькими ядрами становиться намного сложнее. Виртуальный уровень между аппаратным обеспечением и операционной системой — именно то место, где могут быть реализованы данные функции.
«Наличия управления питанием для оптимизации недостаточно, — отметил Лао. — Обычно аппаратный уровень не поддерживает функции прогнозирования, позволяющие узнать, что происходит».
Хезелвуд подчеркнула, что традиционные средства для решения этих проблем, как правило, работают со слишком крупными фрагментами кода, поэтому они снижают производительность приложения в целом. Но Tortola может реагировать именно на те фрагменты кода, которые вызывают проблемы, оставляя большую часть кода нетронутой.
Серьезные проблемы впереди
В разделе «Величайшие задачи» 101-страничного документа International Technology Roadmap for Semiconductors, озаглавленного «Прогноз развития полупроводниковой отрасли в мировом масштабе», в создании которого участвовали инженеры всего мира и в котором делается попытка отраслевого прогноза на ближайшие полтора десятилетия, можно найти утверждения, подобные следующим.
-
«Новые требования к тестированию постоянно усложняющихся устройств… в будущем могут породить серьезные проблемы».
-
«Утечка тока в перспективе породит серьезный кризис в отрасли, угрожая существованию самой технологии КМОП».
-
«Технологичность… провоцирует серьезный кризис по мере увеличения разнообразия создаваемых микросхем… и серьезно затронет все аспекты архитектуры».
Многие годы отрасль слепо следовала закону Мура — устанавливать больше транзисторов на микросхему и добиваться большей ее производительности. Но великие проблемы, упомянутые в прогнозе, сейчас главным образом касаются таких вопросов, как утечка энергии, многообразие микросхем, стоимость и трудности тестирования, и даже таких в своем роде эзотерических аспектов, которые влияют на производительность транзисторов, как космические излучения и квантовые эффекты.
Все эти факторы, проявляющиеся, главным образом, как результат попыток сделать микросхемы, работающие в невообразимо малых масштабах, предполагают, что количество дефектов в микросхемах будет расти, при том что тщательно протестировать их перед выпуском будет запредельно дорого или просто невозможно.
И все эти дефекты приведут к росту непредвиденных проблем, которые, как считает Ким Хезелвуд, лучше всего решать прямо по ходу работы оборудования. «Вопросы питания и надежности будут свои для каждой микросхемы, в силу чего более интересными в данном случае становятся реактивные, программные решения, — сказала она. — В скором времени мы станем свидетелями появления возможности маскировать аппаратные проблемы с помощью программных средств виртуализации».
«Ограничения энергопотребления уже несколько лет вызывают повышенную обеспокоенность, а вопрос надежности приобретет еще более серьезный характер, — заметил инженер Intel Роберт Кон. — Очень сложно найти исключительно аппаратное решение этих проблем. Уровень виртуализации, подобный Tortola, позволит объединить аппаратное и программное обеспечение и поможет предложить более эффективное решение».