MOSCOW CENTER
OF IEEE COMPUTER SOCIETY

Обзоры периодических изданий Computer Society


Обзор апрельского (2000 г.) журнала Computer (Volume 33, Number 4), IEEE Computer Society

 

Сергей Кузнецов

 

Темой номера являются "Конфигурируемые вычисления". Соответствующая часть журнала включает введение приглашенных редакторов (Ranga R. Vemuri, Randolf E. Harr) и пять статей. Как отмечают редакторы, идея создания конфигурируемых, настраиваемых на потребности заказчиков вычислительных устройств возникла в конце 1960-х. Однако первые реально работающие подобные устройства появились только в конце 1980-х. Такие устройства стали называть "программируемыми логическими матрицами" (Field-Programmable Gate Arrays - FPGA). FPGA состоит из набора логических элементов и связей, структуру и функции которых может программировать конечный пользователь в соответствии с требованиями приложения. (Заметим, что в этом контексте следует очень аккуратно относиться к словосочетанию "конечный пользователь". На самом деле такой "пользователь" должен быть хорошим специалистом в области схемотехники, поскольку фактически "программирование" или "конфигурирование" FPGA по своей сути мало отличается от проектирования новой логической матрицы.)

 

На коммерческий рынок FPGA поставляют главным образом две компании: Xilinx и Altera. Их программируемые матрицы выпускаются достаточно большими тиражами и поэтому обладают умеренной стоимостью. Одной из основных областей использования FPGA является область проектирования новых (непрограммируемых) интегральных схем, поскольку вместо дорогостоящего заказа на производство опытной партии схем, выполнение которого занимает много времени, достаточно купить требуемое число FPGA и произвести необходимое программирование в своей компании (для поддержки такого программирования имеется ряд программных средств).

 

Однако статьи из тематической подборки данного номера журнала посвящены другому направлению применения FPGA и более новых технологий программируемых вычислений. Авторы статей демонстрируют, как с помощью этих технологий можно добиться существенного повышения эффективности как специализированных компьютеров, так и компьютеров общего назначения. Интересно, что из числа описываемых проектов практически реализованы только те, которые опираются на использование FPGA, доступных на рынке. Остальные проекты доведены до стадии создания документации новых устройств и их детального моделирования. Заметим, что многие исследования в этой области проводятся группой в университете Беркли.

 

Первой статьей в тематической подборке является статья Andre DeHon "Преимущества степени интеграции конфигурируемых вычислений" ("The Density Advantage of Configurable Computing"). Автор из университета Беркли, по всей видимости, является апологетом подхода к применению FPGA для повышения эффективности вычислений (в частности, этой теме посвящена его диссертация. Во введении автор перечисляет прикладные области, в которых использование FPGA обеспечивает резкое ускорение (иногда до двух порядков): шифрование, обработка сигналов, эмуляция новых микропроцессоров и т.д. Далее автор пытается объяснить причины этого, показывая, что FPGA обеспечивают более высокий уровень интеграции по сравнению с непрограммируемыми матрицами, и поэтому основанные на FPGA достигают большей эффективности в расчете на единицу площади схемы. Интересно, что только в этой статье (и очень кратко, на врезке) поясняется принципиальная схема организации современных FPGA.

 

У второй статьи "Обработка видео-образов с применением архитектуры Sonic" ("Video Image Processing with Sonic Architecture") четыре автора: Simon D. Hayens, John Stone (Sony Europe), Peter Y.K. Cheung, Wayne Luk (University of London). Современные индустриальные системы обработки видео-изображений представляют собой смесь из высокопроизводительных рабочих станций и интегральных схем, ориентированных на конкретное приложение (Application-Specific Integrated Circuits - ASIC). По мнению авторов, обработка видео-изображений в профессиональной среде широковещания требует большей вычислительной мощности и пропускной способности, чем то, что могут обеспечить современные компьютеры общего назначения. Применение ASIC не обеспечивает нужной гибкости и вызывает большие расходы. Разработанная архитектура Sonic представляет собой конфигурируемое устройство, подключаемое к шине основного компьютера и реализованное на основе FPGA (в первом варианте используются FPGA компании Altera). Некоторые FPGA динамически реконфигурируются при изменении характера обработки, а другие конфигурируются статически и играют роль ASIC. Авторы отмечают недостаточные для их целей объемы памяти, обеспечиваемые имеющимися сейчас на рынке FPGA.

 

Название третьей статьи - "Реконфигурируемые аксельраторы для решения комбинаторныхпроблем" (Reconfigurable Accelerators for Combinatorial Problems). Автор статьи Marco Platzner (Swiss Federal Institute of Technology). На самом деле, в статье говорится о возможности ускорения только одной комбинаторной проблемы - проблемы булевской удовлетворяемости (Boolean Satisfiability - SAT). Проблема состоит в том, чтобы найти найти булевские значения (0,1) для присваивания набору булевских переменных x1,...,xn, чтобы при этом заданная булевская формула вычислялась в 1. Эта проблема NP-полна, т.е. в худшем случае время ее решения возрастает экспоненциально в зависимости от числа переменных. Предложена аппаратная схема решения проблемы SAT. Показано преимущество использования реконфигурации в зависимости от конкретного представителя решаемой проблемы SAT. Реализован прототип системы с использованием FPGA компании Xilinx.

 

Четвертая статья "Архитектура Garp и Си-компилятор" ("The Garp Architecture and C Compiler") может представить особый интерес для специалистов в области распараллеливания последовательных программ. Все авторы статьи из университета Беркли: Timothy J. Callahan, John R. Hauser, John Wawrzynek. Это единственная статья в подборке, в которой одновременно обсуждаются и вопросы организации аппаратуры, и сопутствующие потребности в развитии программного обеспечения. Похоже, что при разработке архитектуры Garp авторы руководствовались следующими соображениями: (1) современные FPGA обладают недостатками, в частности, отсутствие прямого доступа к памяти основного компьютера увеличивает время реконфигурации; (2) исторически FPGA использовались для ускорения решения специальных задач, но почему бы не попробовать использовать идею конфигурируемого оборудования для ускорения выполнения программ общего назначения. В архитектуре GARP конфигурируемое оборудование подсоединяется к основному процессору MIPS как сопроцессор. (Заметим, что это оборудование почти полностью спроектировано, но не реализовано в кремнии.) Может быть, наиболее интересно то, что конфигурационная информация для разных частей Си-программы генерируется автоматически специально разработанным компилятором. При этом производится анализ графа потока данных программы и выделяются так называемые гиперблоки, операторы, содержащиеся в которых, являются кандидатами на выполнение на сопроцессоре.

 

Завершающая тематическую подборку пятая статья "PipeRench: реконфигурируемаяархитектура и компилятор" ("PipeRench: A Reconfigurable Architecture and Compiler"). Авторы: Seth Copen Goldstein, Herman Schmit, Mihai Budio, Srihari Cadambi, Matt Moe, R. Reed Taylor (университет Карнеги-Меллон). Как и в предыдущей статье, предлагается архитектура, пригодная для ускорения выполнения программ общего назначения и основанная на идее реконфигурируемого оборудования. В данном случае это оборудование подключается к шине основного компьютера и представляет собой конфигурируемый конвейер процессорных элементов. При реконфигурировании можно связывать вместе несколько процессорных элементов, получая возможность выполнения более сложных функций. Существенно, что в PipeRench само конфигурирование происходит в конвейерном режиме, так что оборудование может начать работать, не дожидаясь конца конфигурирования. Разработан специальный язык DIL (Dataflow Intermediate Langauge) и компилятор для него, обеспечивающий оптимальное выполнение программы на конкретном образце PipeRench. Статья не дает отчетливой информации о текущем состоянии проекта, но, похоже, что аппаратный прототип существует.

 

В журнале опубликованы еще две большие статьи с разной тематической направленностью. Статья "Использование несогласованности при разработке программного обеспечения" ("Leveraging Inconsistency in Software Development"), авторы Bashhar Neseibeh, Alessandra Russo (Imperial College, London), Steve Easterbrook (университет Торонто), посвящается проблемам согласованности описаний, возникающих в процессе проектирования и разработки программного обеспечения. Хотя большинство разработчиков считают несогласованность нежелательной, они понимают, что их описания часто бывают несогласованными и приспосабливаются жить в таких условиях. Авторы предлагают систематический подход к управлению несогласованностью. Прежде всего отмечается, что несогласованность не всегда вредна. Далее предлагается использовать для проверки согласованности набор правил согласованности, которые различаются для разных видов несогласованности. В планах авторов создание среды разработки программного обеспечения, в которой управление несогласованностью будет играть центральную роль.

 

В статье "Как справиться со стрессом при программировании на языке Java" ("Coping with Java Programming Stress") авторов Roger T. Alexander (George Mason University), James M. Bieman (Colorado State University), John Viega (Reliable Software Technologies) обсуждаются некоторые слабые места языка Java. Этот язык хорош, но не идеален. Его слабые места могут привести к неприятным ошибкам. Знание этих слабых мест может помочь использовать соответствующие конструкции более разумным образом. Описываются семи серьезных недостатков (защищенный доступ, недоразумения с конструкторами и т.д.) и несколько мелких. По поводу каждого недостатка даются рекомендации программистам.

 

Кроме того, журнал содержит разделы технологических новостей и кратких новостей, а также несколько коротких заметок, среди которых следует выделить интервью с одним из основных разработчиков языка XML XML Питером Флинном (Peter Flynn).

 

Полная версия журнала Computer рассылается всем членам IEEE Computer Society, а подписчики на электронную библиотеку получают доступ в Internet ко всем изданиям Computer Society, а также к трудам многочисленных конференций. Это неоценимый источник информации.