Обзор мартовского, 2004 г. номера журнала Computer (IEEE Computer Society, Vol. 37, No. 3, March 2004)
Тема номера — «Проектирование в расчете не на наихудший вариант» («Better than Worst-Case Design»). Смысл названия поясняется во вводной заметке «Нам может потребоваться новый блок принятия решений» (We May Need a New Box) главного архитектора микропроцессоров Pentium II, Pentium III и Pentium IV, а теперь независимого консультанта Боба Колвелла (Bob Colwell). В последние 35 лет, при проектировании микропроцессоров, успешно использовался подход, основанный на учете наихудших случаев поведения микросхем. Основной числовой характеристикой поведения микросхемы является задержка на распространение сигнала. Производители гарантировали этот показатель только в среднем. Для конкретных микросхем значения показателя могли несколько различаться, но на уровне микропроцессора результаты проектирования в расчете на наихудший вариант поведения микросхем, в целом, приводили к успешным результатам. Однако сейчас проектировщики микропроцессоров вынуждены либо использовать новую технологию, ограничения которой не полностью известны, либо применять старую технологию при решении новых проблем. В обоих случаях при принятии проектных решений приходится отходить от расчета на наихудший вариант.
Первая статья тематической подборки называется «Надежное и эффективное проектирование систем на кристалле» (Reliable and Efficient System-on-Chip Design). Ее автор — Нареш Шэнбхэг (Naresh Shanbhag). Шумы электропитания (броски и падение напряжения), утечка тока, шум разводки влияют на фазу и амплитуду сигналов, а изменения характеристик процессов приводят к неопределенности и порождают несоответствие между путями сигналов. И шумы, и изменения характеристик процессов влияют на надежность системы, порождая логические ошибки, которые могут привести к сбою. С целью повышения производительности, микроэлектронная промышленность ориентируется на использование миллимикронной технологии. К сожалению, проектные методы повышения эффективности энергопотребления и увеличения производительности лишь усугубляют проблему надежности. Исследователи разрабатывают сложные системы управления питанием и дорогостоящие конструктивные схемы, однако шумовые эффекты и возрастающий уровень изменения характеристик процессов порождают серьезные вопросы о возможности применения миллимикронной технологии для создания надежных и эффективных компьютерных систем. Для решения этой проблемы в США созданы два межуниверситетских центра — Gigascale Silicon Research Center и Center for Circuit and System Solutions. Выделяются два направления исследований: информационно-теоретические методы определения нижних границ энергопотребления при наличии шума; схемотехнические и алгоритмические методы шумоподавления для достижения этих границ.
Августус Ухт (Augustus Uht) является автором статьи «Выход за пределы спецификаций наихудших вариантов с использованием TEAtime» (Going Beyond Worst-Case Specs with TEAtime). При проектировании, в расчете на худший вариант обеспечивается создание компьютерной системы, которая может устойчиво работать в широком диапазоне условий. Ориентация на худший случай (например, на предельно допустимую температуру внешней среды) приводит к занижению тактовой частоты системы. Вместе с тем, некоторые из допустимых условий в реальности возникают крайне редко, и в оставшееся время система могла бы вполне устойчиво работать на большей частоте. Предлагаемое решение TEAtime (здесь TEA означает timing-error-avoidance) заключается в том, что в систему встраивается дополнительный компонент, который определяет наличие в системе ошибки, связанной со слишком высокой тактовой частотой, и снижает в этом случае тактовую частоту. Имеется и способ установления ситуаций, в которых тактовую частоту можно повысить. Реализован аппаратный прототип системы, основанный на идее TEAtime.
Статью «Развитие типовой технологии полупроводников с использованием Razor» (Making Typical Silicon Matter with Razor) написали Тодд Остин (Todd Austin), Дэвид Блау (David Blaauw), Тревор Медж (Trevor Mudge) и Кристиан Флаутнер (Krisztian Flautner). Авторы начинают статью со старой поговорки: «Если вы никогда не терпите неудач, значит, вы недостаточно хорошо стараетесь». В данном случае имеется в виду проектирование микропроцессоров в расчете на наихудший вариант. По мнению авторов, система должна быть оптимизирована в расчете не на наихудший, а на типичный случай. Наихудшие случаи возникают редко и могут обрабатываться специальным образом, возможно, с дополнительными накладными расходами. Описываемая технология Razor позволяет создавать конвейерные микропроцессоры с низким уровнем энергопотребления, достаточным для обеспечения устойчивой работы в типичных случаях. В аппаратуру включаются дополнительные компоненты, распознающие ошибки и производящие (в этом случае за счет дополнительного потребления энергии) восстановление корректного состояния конвейера. При прогоне на созданном прототипе тестовых наборов SPEC2000 было продемонстрировано сокращение расходов на электропитание на 64%, в то время как падение производительности по причине восстановления после ошибок составило менее 3%.
Наконец, последняя статья тематической подборки озаглавлена «Повышение скорости обработки за счет использования аппроксимирующих схем» (Speeding Up Processing with Approximation Circuits). Ее написал Ши-Лиен Лу (Shih-Lien Lu) из корпорации Intel. Современные суперскалярные процессоры синхронны. Для каждого устройства, включаемого в конвейер, известна верхняя оценка его времени задержки, и только после истечения этого времени результаты отправляются на следующее устройство конвейера. Обычно устройство завершает вычисления раньше истечения максимального времени задержки, но для гарантирования корректности результата система должна ждать все это время. Идея автора состоит в том, чтобы сделать устройства с наибольшим временем задержки аппроксимирующими. На большинстве входных данных такие устройства будут выдавать корректные результаты за существенно меньшее время. Кроме того, устройство будет само распознавать случаи, когда приближенные результаты не являются корректными, и информировать систему о необходимости восстановления корректного состояния конвейера. Описываются возможные подходы к построению аппроксимирующих сумматоров, умножителей и других критических логических устройств. Автор полагает, что в будущем следует ожидать перехода к асинхронным конвейерам, когда каждое устройство сообщает о завершении своей работы немедленно после получения корректных результатов. Но для этого необходимо решить проблему синхронизации асинхронно выполняемых частей конвейера.
Вне тематической подборки опубликованы еще две статьи. Дуг Бюргер (Doug Burger) и Джеймс Гудман (James Goodman) представили статью «Архитектуры с миллиардами транзисторов: снова о том, что есть, и о том, что было» (Billion-Transistor Architectures: There and Back Again). В 1997 году Бюргер и Гудман выступили приглашенными редакторами специального выпуска журнала Computer, посвященного многопроцессорным архитектурам с миллиардами транзисторов. Теперь они сочли полезным вернуться к статьям того номера и посмотреть, насколько оправдались ожидания. По их мнению, ни одна из предлагавшихся в статьях идей не стала доминирующей. Одновременно авторы отмечают две тенденции, которые были недооценены в 1997 году. Первая касается исключительно быстрого роста тактовой частоты процессоров, вторая — вопросов статического и динамического потребления энергии. Также авторы обсуждают некоторые новые направления исследований в области архитектур с миллиардами транзисторов.
Наконец, последняя статья номера, написанная Питером Маурером (Peter Maurer), называется «Метаморфное программирование: нетрадиционная высокая производительность» (Metamorphic Programming: Unconventional High Performance). Понятно, что «метаморфное» программирование по Мауреру является развитием подхода полиморфного программирования, где полиморфизм понимается в духе Си++. Возможность связывать с виртуальным методом класса разные реализации и разрешение ссылок на тела функций во время выполнения программы обобщается на возможности динамического переопределения тела функции, динамического изменения типа элемента данных и т.д. В примерах, представленных на Си++, желаемая автором функциональность достигается активным использованием указателей на функции. Можно согласиться с автором, что ему действительно удалось нарушить правила хорошего программирования, но трудно поверить, что таким образом ему удалось добиться повышения быстродействия алгоритмов в несколько раз. Каких-либо разъяснений этого эффекта автор не приводит. Думаю, редакция Computer опубликовала эту статью, главным образом, для того, чтобы увеличить поток читательских откликов.
На этом разрешите проститься с вами до следующего месяца, Сергей Кузнецов.