Ученые из Лаборатории вычислительной техники и искусственного интеллекта при Массачусетском технологическом институте представили универсальное решение, позволяющее создавать предельно эффективные компьютерные системы. Для этого они предлагают оптимизировать программный код под возможности аппаратных платформ и, напротив, оптимизировать аппаратные платформы под программную часть.
Современные персональные компьютеры на аппаратном уровне обладают очень высокой производительностью — они способны быстро и эффективно решать подавляющее число задач, возникающих перед пользователем. Однако в последние годы появляется все больше технологий, которые предусматривают использование особых аппаратных ресурсов для обработки данных. Так, для конвертации видеофайлов сегодня используются не только центральные, но и графические процессоры, то есть видеокарты.
Особо остро эта проблема стоит в сфере мобильной электроники. Здесь процессоры и графические чипы не настолько мощны, как в настольных компьютерах. Кроме того, их производительность зачастую искусственно ограничивается, поскольку приходится заботиться о ресурсе аккумуляторов, который расходуется активнее с повышением производительности процессора. Программисты оптимизируют мобильные приложения под конкретные платформы, а ученые Майрон Кинг (Myron King) и Найрав Дейв (Nirav Dave) считают, что необходима и обратная оптимизация аппаратных платформ под программный код.
Для этого они предлагают еще на стадии проектирования устройства принимать решения, какие задачи на нем будут решаться программно, а какие — аппаратно. В этом разработчикам поможет новый алгоритм, выдающий максимально эффективную схему баланса аппаратной и программной частей. Алгоритм работает на примере системы проектирования электроники Verilog и языка программирования C++. Данный проект расширяет возможности технологии BlueSpec, которая впервые предложила идеи встречной оптимизации. Теоретические основы этой технологии были заложены учеными Массачусетского технологического института еще в девяностые годы прошлого века.