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

Теория информации Клода Шеннона, которую, по примеру самого Шеннона, все же следует называть «теорией передачи данных», никоим образом больше не может соответствовать современным представлениям об информации. Напомним, что она возникла как ответ на необходимость решать задачи, связанные с передачей данных, и предлагает соответствующую меру для передаваемых данных. Иначе говоря, шенноновская теория отражает то видение информации, которое было выработано в связи с процессами передачи данных. Поэтому вполне естественно, что ее область действия не может распространяться на множество современных приложений наподобие обработки неструктурированных данных, работы с мультимедийным контентом и т.д. Как это ни странно, но ИТ-специалисты в подавляющем большинстве не знают теории информации, а слова «информация» и «данные» часто используются как синонимы. Показательно, что даже самые старательные студенты компьютерных специальностей, прослушавшие обстоятельный курс по теории информации, не могут соотнести содержание этого курса с профильными специальностями. Из-за существующего разрыва между практической работой с информацией и теорией информации технологии, называемые «информационными», имеют дело вовсе не с информацией, а с обычными данными. Единого признанного представления о том, что же такое информация и что такое технологии для работы ней, не существует*.

Невозможность установить соответствие между данными и информацией рождает, условно говоря, построенные «на коленке» технологии. К их числу относятся такие полезные методы, как минимизация дублирования данных (то есть исключение таких данных, которые соответствуют одной и той же информации) или повышение качества данных (исключение разных наборов данных, соответствующих одной и той же информации). Вполне востребованные, они тем не менее базируются на интуитивных представлениях, без какого-либо строгого определения того, как данные соотносятся с заключенных в них информацией. Совершенно очевидно, что подобная кустарщина в работе с информацией может стать серьезным барьером. Экспоненциальный рост объемов хранимых данных, смещение в сторону неструктурированных данных, появление новых дисциплин работы с данными, необходимость доведения до практической реализации старых идей наподобие распознавания речи невозможны без разработки новой теории информации. Однако ее формированию препятствует так называемая «стена ментальности».

Еще один «постаревший» кит— ставшая по нынешним временам архаичной фон-неймановская архитектура. Именно она является самым серьезным тормозом на пути дальнейшего совершенствования аппаратного и программного обеспечения. Моральное старение фон-неймановской архитектуры приводит к тому, что вся отрасль, связанная с обработкой данных, несмотря на ее видимое процветание, несмотря на бесчисленные разговоры об информационном обществе и пр., с неизбежностью приближается к критическому состоянию. Что же вызывает старение? Дело в количественном и качественном росте. Компьютерный мир все плотнее и плотнее объединяется с миром реальным. Появился специальный термин «всепроникающие компьютерные системы» (pervasive computing). Компьютер перестал быть ЭВМ, электронной вычислительной машиной, и неожиданно выяснилось, что в своем первоначальном виде компьютер не вполне соответствует окружающей среде. Реальный мир во всех его проявлениях параллелен, а современный компьютерный мир по своей природе последователен: данные передаются по последовательным каналам, команды выполняются одна за другой, как следствие любые попытки распараллеливания и адаптации к условиям реального мира рождают чрезвычайно сложные и искусственные решения.

Одну из фундаментальных слабостей современных компьютеров вскрыл в 1977 году Джон Бэкус в речи, с которой он выступил при получении Тьюринговской премии. С тех пор в ход пошло прозвучавшее в ней выражение «бутылочное горло фон Неймана», символизирующее собой органический недостаток архитектурной схемы, ассоциирующейся с именем Джона фон Неймана. Но несмотря ни на что, с 1945 года и поныне архитектурная схема фон Неймана служит основой всех компьютеров, за исключением небольшого количества специализированных микроконтроллеров, построенных с использованием «гарвардской схемы», называемой так по имени машины Говарда Айкена Harvard Mark I, где программы хранились на перфорированных лентах, а обрабатываемые данные— в релейных массивах (рис. 1). В современных микроконтроллерах перфоленты заменила память ROM, реле— память RAM, но суть осталась прежней: в процессоре встречаются два независимых и не сдерживающих друг друга потока команд и данных. Как следствие, такие специализированные устройства обладают производительностью, необходимой для работы в технических системах в режиме реального времени.

Рис. 1 (а). Архитектура фон Неймана

Рис. 1 (а). Архитектура фон Неймана

Рис. 1 (б). Гарвардская архитектура

Рис. 1 (б). Гарвардская архитектура

Двуликий закон Мура

Но если кризис фон-неймановской архитектуры наступает, то почему же о нем задумывается ограниченное число специалистов? Скорее всего, причина успокоенности большинства в том, что картину видимого благополучия искусственным образом поддерживает закон Мура**.

Поначалу закон Мура воспринимался как некий казус. Он в большей степени удивлял, чем служил руководством к действию, но со временем корректность закона перестала вызывать сомнение, и сейчас есть уверенность в его действенности на долгие годы вперед, с ним связывают надежды на будущее. Показательно, что о законе Мура широко заговорили лишь лет пять назад; как ни странно, до этого он был мало кому известен, а уж его точная формулировка и подавно. Долгое время его ошибочно интерпретировали как закон периодического удвоения производительности, и только когда удельная производительность стала падать, вспомнили об изначальной формулировке, говорящей о плотности размещения транзисторов на кристалле. До тех пор пока сложность процессоров не начала сдерживать дальнейшее развитие, закон Мура воспринимался исключительно как гарант прогресса, однако сегодня сложность стала серьезной проблемой. Отношение к закону Мура и его месту в компьютерной истории нуждается в переосмыслении. В общем эволюционном процессе закон Мура играет двойственную роль, являясь и тормозом, и стимулом одновременно.

Тормозом— или, скорее, консервирующим фактором— закон Мура можно считать потому, что он на протяжении добрых десяти лет позволял сохранять динамику развития, обходясь без радикальных инновационных шагов. Работала своеобразная положительная обратная связь; увеличением количества транзисторов разработчики процессоров компенсировали снижение качества архитектуры. Как результат производительность продолжала расти, но медленнее, чем число транзисторов. Однако какой ценой это достигалось? Как показано на рис. 2, за последнее десятилетие удельная производительность процессоров в пересчете на число транзисторов упала на один-два порядка. Дальнейшее развитие полупроводниковых технологий по закону Мура не может компенсировать чудовищную неэффективность современных процессоров. Диспропорцию между числом транзисторов на кристалле и удельной производительностью, выраженной в скорости выполнения, отнесенной к площади, иногда называют «дефицитом Мура» (Moore Gap).

Архитектура фон Неймана, реконфигурируемые компьютерные системы и антимашина

Рис. 2. Падение удельной производительности процессоров. За шесть лет удельная производительность DEC Alpha сократилась в 100 раз, а процессоров IBM- в шесть раз

Но с другой стороны, количественный рост, постулируемый законом Мура, предопределяет неизбежные перемены, и в какой-то момент должен сработать диалектический переход количества в качество. Легендарный Дэйв Паттерсон, профессор из Калифорнийского университета в Беркли, изобретатель RISC-процессоров и RAID-массивов, считает, что грядет новое время, когда перестанут действовать прежние прописные истины и им на смену придут новые. Однако переход этот осложняется наличием трех «стен».

  • Энергетическая стена. Старая истина— энергия не стоит ничего, транзисторы дороги. Новая истина— дорога энергия, транзисторы не стоят ничего.
  • Стена памяти. Старая истина— память работает быстро, а операции с плавающей запятой медленны. Новая истина— системную производительность сдерживает память, операции выполняются быстро.
  • Стена параллелизма на уровне команд. Старая истина— производительность можно повысить за счет качества компиляторов и таких архитектурных усовершенствований, как конвейеры, внеочередное выполнение команд, сверхдлинное командное слово (Very Long Instruction Word, VLIW), явный параллелизм команд (Explicitly Parallel Instruction Computing, EPIC) и др. Новая истина— естественный параллелизм, команды и длинные, и короткие, но выполняются они параллельно, на разных ядрах.

Некоторые авторы считают, что есть еще одна стена, «стена ментальности» (educational wall). За 60 лет существования компьютеров сложилась определенная образовательная традиция. Тем, кто вырос как специалист на не подвергаемых сомнению догматах, непросто признать их уязвимость. Вообще говоря, несовершенство и избыточная затратность современных компьютерных систем становится популярной темой для обсуждения. К примеру, об этом недавно, во время своего пребывания в Москве, говорил Билл Инмон. «Отец» хранилищ данных указывает, что все современные решения для работы с данными объединяет то, что стоимость функциональных компонентов (транзисторы, диски и т.д.) становится все менее значимой, а основная стоимость продуктов приходится на поддерживающую инфраструктуру.

Аргументы сторонников искусственного интеллекта

Помимо очевидных технологических претензий к фон-неймановской архитектуре (излишняя сложность, неспособность к распараллеливанию, низкий коэффициент полезного использования транзисторов и т.п.), есть еще одна группа претензий. Стоит вспомнить то, какие надежды несколько десятилетий назад возлагались на искусственный интеллект, какими умными представлялись будущие машины и то, каким провалом все в конечном итоге кончилось. Адепты искусственного интеллекта видят причину неудач в монопольном положении одной архитектуры, которая способна безукоризненно выполнять ограниченный набор действий, но оказывается не в состоянии адаптироваться к решению задач с элементами интеллектуальности. Нельзя же признать, что монстры от IBM, методом перебора обыгрывающие гроссмейстеров, и в самом деле играют в шахматы. То же самое можно сказать о различных задачах распознавания и многом другом. Фон-неймановские машины (фактически— последовательные цифровые процессоры) способны воспринимать единственный входной поток единиц и нулей и обрабатывать данные, состоящие из тех же единиц и нулей. На то, чтобы приспособить машины для решения интеллектуальных задач, остаются лишь весьма ограниченные языковые возможности. Со временем они оказываются исчерпанными, и ни о каком реальном использовании современных компьютеров для решения интеллектуальных задач говорить не приходится. Но это вовсе не означает, что компьютеры в принципе пригодны лишь для решения рутинных задач. Рано или поздно они должны стать интеллектуальными ассистентами человека, как представляли их Ванневар Буш и Даг Энгельбарт.

Одно ядро— это плохо, а много— это хорошо?

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

Вернемся к двуликости закона Мура. История процессора Itanium прекрасно иллюстрирует то, как можно его использовать для консервирования действующей парадигмы. Через год исполнится 20 лет с того памятного момента, когда в HP, придя к выводу об ограниченной возможности для дальнейшего развития архитектуры RISC, отдали предпочтение казавшейся им более перспективной архитектуре с явным параллелизмом EPIC, позволяющей выполнять за один такт очень длинное командное слово. Но и они, и те, кто стал их союзником, просчитались; вопреки ожиданиям процессор с одним ядром (а про другие тогда не знали) получился невероятно сложным, а компиляторы, способные реализовать его возможности,— и того сложнее. Период собственно разработки затянулся на 12 лет, но и после еще семи лет доработки желаемый результат остается не достигнутым. Продукты, построенные на Itanium, не смогли составить конкуренцию ни RISC-серверам (их, по данным Gartner, в 2007 году было выпущено на порядок больше, чем серверов на Itanium), ни тем более стандартным серверам на процессорах х86, на замену которым планировался Itanium (здесь он уступает более чем два порядка). Даже в сегменте HPC, где, казалось бы, выдающаяся по сравнению с другими процессорами производительность на операциях с плавающей запятой дает Itanium преимущества, он уступает свои позиции; в нынешнем списке Top?500 на его долю приходится всего 3,2% общего числа суперкомпьютеров.

Нетрудно прийти к выводу, что, если нельзя использовать возможности закона Мура на одном ядре из-за исключительной сложности такого ядра, то следует пойти по пути увеличения числа ядер. Именно так поступили в Sun Microsystems, выпустив 8-ядерный процессор Niagara. Идея многоядерности стала очевидной и для тех, кто делал ставку на EPIC, и вот на очередном форуме IDF осенью 2004 года Пол Отеллини, генеральный директор Intel, заявил: «Мы связываем наше будущее с многоядерными продуктами; мы верим, что это ключевая точка перегиба для всей индустрии»***. Тогда эту перспективу рассматривали ограниченно, поэтому слова Отеллини отнесли к вполне ожидаемым двухъядерным или четырехъядерным процессорам и особого внимания на прозрачный намек по поводу прогнозируемого перегиба не обратили. В стороне от общественного внимания осталось и еще одно многозначительное высказывание по поводу грядущего увеличения числа ядер, сделанное им тогда же: «Это не гонка. Это радикальное изменение в компьютинге, мы не имеем права рассматривать происходящее как простую технологическую гонку».

Три года спустя один из самых авторитетных современных специалистов в области многоядерных процессорных архитектур, профессор Массачусетского технологического института Ананд Агарвал, выступая на конференции, посвященной проблемам современных процессоров, имея опыт собственной разработки в основанной им компании Tilera, сказал следующее: «Процессоры становятся все более и более единообразными и обезличенными, критичнее становится система», а далее подарил афоризм: «Процессор— это транзистор современности».

Его мысль развил Энди Бехтольсхайм из Sun Microsystems: «Больше нельзя рассматривать производительность как серьезное ограничение. Теперь главное ограничение— ввод/вывод, а производительность ввода/вывода невозможно поднять за счет простого увеличения плотности транзисторов».

Можно говорить о двух заметно разнящихся между собой тенденциях в процессе увеличения числа ядер. Одну теперь называют мультиядерность (multi-core), в этом случае предполагается, что ядра являются высокопроизводительными и их относительно немного; сейчас их число— два-четыре, и согласно закону Мура оно будет периодически удваиваться. Этот путь имеет два основных прежних недостатка: первый— высокое энергопотребление, второй— высокая сложность чипа и, как следствие, низкий процент выхода готовой продукции. При производстве 8-ядерного процессора IBM Сell только 20% производимых кристаллов являются годными. Другой путь— многоядерность (many-core). В таком случае на кристалле собирается на порядок большее число, но при этом простейших ядер, потребляющих милливатты. Допустим, для начала ядер будет сто, но и это число с той же периодичностью удваивается, а следовательно, в обозримом будущем появятся процессоры с тысячами и десятками тысяч ядер. Данный подход попадает в категорию так называемых «разрушительных инноваций» (disruptive innovation). Такого рода технологии взламывают существующие рынки; к примеру, на наших глазах начинается замена жестких дисков твердотельными дисками, цифровая фотография вытеснила аналоговую.

Впрочем, эти революционные процессы прошли или происходят достаточно безболезненно для потребителей, чего нельзя сказать о многоядерности. Действительно, ни одна из современных школ программирования не в состоянии справиться с грядущими проблемами, не случайно на суперкомпьютерной конференции, прошедшей в Дрездене в 2007 году, один из центральных докладов назывался «Развал системы традиционных знаний в многоядерную эру. Все, что вы знаете,— неверно».

Если многоядерность, то какая?

Очевидно, что увеличение в десятки и сотни раз числа все тех же фон-неймановских ядер на одной подложке не является панацеей. В недавнем интервью не нуждающийся в представлении Дональд Кнут сказал по поводу упрощенного подхода к увеличению числа ядер следующее: «Мне кажется, у проектировщиков процессоров иссякли идеи, и они хотят переложить ответственность за невозможность повышать производительность компьютеров в соответствии с законом Мура на тех, кто создает программы. Они предлагают процессоры, отлично работающие на отдельных тестах, но я не удивлюсь, что вся эта эпопея многоядерности закончится не меньшим провалом, чем Itanium, где все выглядело прекрасным, пока не выяснилось, что компиляторы с соответствующими ему возможностями предвидения невозможно написать.

Сколько вы знаете программистов, относящихся с энтузиазмом к будущим многоядерным процессорам? У всех, кого я знаю, они лишь вызывают огорчение, хотя разработчики процессоров говорят, что я не прав. Я знаю приложения, адаптируемые к параллельному исполнению; это графический рендеринг, сканирование изображений, моделирование биологических и физических процессов, но все они требуют подходов, которые чрезвычайно специализированы. Моих знаний хватило, чтобы написать о них в ‘Искусстве программирования’, но я считаю время, затраченное на них, потерянным, в этой области все быстро меняется, и совсем скоро написанное мной никому не будет нужным. Мультиядерность в том виде, как ее представляют, сейчас не прибавляет мне счастья».

Что же получается? Одноядерные процессоры бесперспективны, в этом убеждает пример Itanium. Но и многоядерные процессоры, если все сводится к размещению большего числа классических простых ядер на одной подложке, нельзя воспринимать как решение всех проблем. Их чрезвычайно сложно программировать, они могут быть эффективны только на приложениях, обладающих естественной многопотоковостью, таковых особенно много среди Web-приложений, но как быть со сложными задачами? Где же выход? Когда-то в моде была бионика, наука о применении в технических системах принципов организации, свойств, функций и структур живой природы. Пик бионических публикаций о промышленных аналогах форм живой природы пришелся на 60-е годы, потом о ней почти забыли. Многоядерность заставляет о ней вспомнить: из общих системных соображений понятно, что, если ядер будет много и количество их будет продолжать увеличиваться, то дальше все будет развиваться по сценарию биологической эволюции, когда вслед за одноклеточными организмами появились их многоклеточные преемники, а затем и еще более сложные создания. Однако остаются аргументы, высказываемые Кнутом. Какими должны стать эти ядра, чтобы не перекладывать ответственность на программистов?

Синдром фон Неймана и антимашина

Переход в новый мир с новыми истинами, в мир, каким его представляет Паттерсон, невозможен без понимания фундаментальных причин кризиса старого мира. Одной из наиболее интересных точек зрения на происхождение «стен» и других недостатков существующего компьютерного миропорядка обладает немецкий профессор Рейнер Хартенштайн. Он имеет огромный опыт преподавательской и научной работы в ведущих университетах Германии и в университете Беркли. С 1977 года возглавляющий лабораторию Xputer Lab, одну из немногих, где занимались тематикой, связанной с реконфигурируемым компьютингом (Reconfigurable Computing), Хартенштайн является создателем KARL, новаторского языка для проектирования аппаратного обеспечения. Профессор Хартенштайн— автор таких терминов, как «антимашина» (anti machine), «конфигурируемое аппаратное обеспечение» (сonfigware), «структурное проектирование аппаратного обеспечения» (structured hardware design) и ряда других. Реконфигурирование— это перепрограммирование аппаратуры; теоретически его можно применять к массивам, собранным из ядер с фон-неймановской архитектурой, но гораздо перспективнее— к ядрам, представляющим собой антимашины.

В последние годы Хартенштайна, как многих ветеранов, приглашают в качестве докладчика на многочисленные конференции и семинары. Основную тему, с которой он выступает, сегодня называют «синдромом фон Неймана». Авторство этого термина приписывают профессору из Беркли Чандуру Рамамути, однажды прослушавшему выступление Хартенштайна, а затем образно выразившему его взгляды. (Сам Рамамути в ряде своих работ показал, что чаще всего компьютеры с массовым параллелизмом, содержащие тысячи и десятки тысяч процессоров, оказываются менее продуктивными, чем ожидается при их проектировании. Основные причины этого эффекта, называемого самим Рамамути «суперкомпьютерным кризисом»,— наличие «стены памяти» и сложность программирования параллельных задач, что тоже является следствием фон-неймановской архитектуры.)

Целесообразно уточнить использование слова «синдром» в данном контексте. В русском языке его употребляют в медицинском смысле, как комплекс симптомов, но в данном случае его следует понимать шире, как цепь взаимосвязанных событий или сочетание явлений. В интерпретации Хартенштайна «синдром фон Неймана»— это цепочка событий, приведшая компьютерные технологии от изобретения архитектуры фон Неймана к нынешнему состоянию, хотя можно его понимать и в медицинском смысле, как застарелую болезнь. В качестве философской предпосылки для своих рассуждений Хартенштайн ссылается на Артура Шопенгауэра, писавшего: «Примерно каждые 30 лет наука, литература, искусство переживают период банкротства, коллапсируя под тяжестью накопленных ошибок». Хартенштайн считает, что в компьютерных технологиях и в компьютерных науках наступление кризиса было отложено лет на 30 благодаря опережающему развитию полупроводниковых технологий, зафиксированному в законе Мура.

Архитектура фон Неймана и ее зеркальное отражение

Главный вывод Хартенштайна состоит в том, что и энергетическая стена, и стена памяти, и стена параллелизма на уровне команд являются прямым следствием фон-неймановской архитектуры. Из-за технологических ограничений Джоном фон Нейманом была избрана схема, в основе которой лежит управляемый поток команд, программа, выбирающая необходимые для команд данные. Этим определяется канонический состав архитектурных компонентов, составляющих любой компьютер,— счетчик команд, код операции и адреса операндов; он остается неизменным по сей день. Все мыслимые и немыслимые усовершенствования архитектуры фон Неймана в конечном счете сводятся к повышению качества управления потоком команд, методам адресации данных и команд, кэшированию памяти и т.п. При этом последовательная архитектура не меняется, но сложность ее возрастает. Очевидно, что представление о компьютере как об устройстве, выполняющем заданную последовательность команд, лучше всего подходит для тех случаев, когда объем обрабатываемых данных невелик, а данные являются статическими. Но в современных условиях приходится сталкиваться с приложениями, где относительно небольшое количество команд обрабатывает потоки данных. В таком случае целесообразно предположить, что компьютером может быть и устройство, которое имеет каким-то образом зашитые в него алгоритмы и способно обрабатывать потоки данных. Такие компьютеры могли бы обладать естественным параллелизмом, а их программирование свелось бы к распределению функций между большим числом ядер.

Итак, можно допустить существование двух альтернативных схем. Одна, фон-неймановская, предполагает, что вычислительным процессом управляет поток команд, а данные, в основном статичные, выбираются из каких-то систем хранения или из памяти. Вторая схема основывается на том, что процессом вычислений управляют входные потоки данных, которые на входе системы попадают в подготовленную вычислительную инфраструктуру, обладающую естественным параллелизмом. С точки зрения реализации первая схема гораздо проще, кроме того, она универсальна, программы компилируются и записываются в память, а вторая требует специальной сборки нужной для определенной задачи аппаратной конфигурации. Скорее всего, эти две схемы должны сосуществовать, отражая две стороны компьютинга, своего рода ян и инь. Как ни странно, но вторая схема старше; пример тому— табуляторы, изобретенные Германом Холлеритом и с успехом использовавшиеся на протяжении нескольких десятилетий. Корпорация IBM достигла своего могущества и стала одной из самых влиятельных компаний в США, производя электромеханические табуляторы для обработки больших массивов информации, не требующей выполнения логических операций. Их программирование осуществлялось посредством коммутации на пульте, а далее устройство управления в соответствии с заданной программой координировало работу остальных устройств.

Антипод машины фон Неймана почти по всем своим свойствам (см. таблицу) антисимметричен ей, поэтому Хартенштайн и назвал его антимашиной. От машины фон Неймана антимашина отличается наличием одного или нескольких счетчиков данных, управляющих потоками данных, она программируется с использованием потокового обеспечения (Flowware), а роль центрального процессора в ней играют один или несколько процессоров данных (Data Path Unit, DPU). Центральной частью антимашины может стать память с автоматической последовательностью (Auto-Sequence Memory).

Таблица.

Архитектура фон Неймана, реконфигурируемые компьютерные системы и антимашина

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

Рис. 3. Общая схема антимашины

Рис. 3. Общая схема антимашины

В антимашине доступ к памяти обеспечивается не по адресу команды или фрагмента данных, записанному в соответствующий регистр, а посредством универсального генератора адресов (Generic Address Generator, GAG). Его преимущество в том, что он позволяет передавать блоки и потоки данных. В то же время компиляция, посредством которой создается специализированная под определенную задачу система, заключается в объединении нужного количества настроенных процессоров данных в общий массив (Data Process Array, DPA), на котором выполняются алгоритмы Flowware и который может быть реконфигурируемым.

Методология GAG непоследовательна, а потому обладает такими достоинствами, как возможность работы с двухмерными адресами, что дает неоспоримые преимущества при работе с видеоданными и при выполнении параллельных вычислений. Счетчик данных (data counter)— альтернатива счетчику команд в машине фон Неймана; его содержимым управляет Flowware. Для новой методологии придумано и новое название— twin.paradigm; оно отражает симбиоз вычислительных ядер двух классов, как обычных центральных процессоров, построенных по фон-неймановской схеме, так и процессоров данных, реализующих антимашины.

Реконфигурируемый компьютинг— хорошо забытое старое

Главные отличия антимашины от машины фон Неймана в том, что антимашина по природе своей параллельна и к тому же нестатична— ее нужно саму программировать, а не просто загружать различные программы в универсальную машину. К счастью, существуют наработки, которые хотя бы могут дать представление о том, как и из чего можно собрать антимашину. Реализовать ее можно средствами реконфигурируемого компьютинга (впрочем, следует заметить, что антимашина и реконфигурируемый компьютинг — это не одно и то же).

О реконфигурируемом компьютинге активно заговорили в последние годы, но сама идея адаптации аппаратного обеспечения под конкретную задачу далеко не нова. Ее выдвинул в 1959 году физик и математик Джон Паста, который был, что удивительно, коллегой Джона фон Неймана и вместе с Энрико Ферми работал над созданием атомной бомбы. Помимо других своих достижений он известен тем, что был первым, кто использовал компьютер в качестве инструмента для моделирования физических процессов. Полученный им опыт позволил прийти к выводу о том, что производители коммерческих компьютеров с самых первых шагов потеряли интерес к разработке альтернативных компьютерных архитектур, целиком сосредоточившись на архитектуре фон Неймана. И тогда Паста решил, что сначала необходимо выполнить определенный объем академических исследований и тем самым создать стимул для продолжения аналогичных работ в частном секторе. Своими соображениями относительно адаптируемых компьютерных архитектур он поделился с сотрудником Калифорнийского университета в Лос-Анджелесе Джеральдом Эстрином, который к тому времени обладал неплохим послужным списком, успев построить первый израильский компьютер WEIZAC (Weizmann Automatic Computer). Через год, в 1960 году, Эстрин выступил на известной в те годы конференции Western Joint Computer Conference с докладом «Организация вычислительной системы, состоящей из постоянной и переменной структур». Цель работы Эстрина состояла в разработке вычислительных систем, отличающихся от традиционных тем, что они представляли собой набор модулей для сборки специализированных компьютеров под определенную задачу. Впоследствии была предпринята попытка создать модульный комплект, из которого можно было бы собирать реконфигурируемые компьютеры, но на технологическом фундаменте начала 60-х она оказалась неудачной, однако тем не менее теоретические основы были сформулированы.

Технологический мэйнстрим отодвинул работу Эстрина на обочину, но периодически о ней вспоминали. Так, в экспериментальном компьютере PDP-16, предназначенном для управления технологическими процессами, который построили в корпорации Digital Equipment в 70-е годы, была реализована модульная схема Register-Transfer Modules. PDP-16 представлял собой своего рода конструктор, из которого можно было собирать компьютер, адаптированный к конкретным алгоритмам управления.

Теоретически возможно существование трех подходов к созданию реконфигурируемых процессоров.

  • Специализированные процессоры (Application-Specific Standard Processor). Процессоры, имеющие набор команд, адаптированный к определенным приложениям.
  • Конфигурируемые процессоры (Configurable Processor). Своего рода «заготовки» для создания специализированных процессоров, содержат в себе необходимый набор компонентов, адаптируемый к требованиям приложений. В таком случае проектирование специализированного процессора оказывается проще, чем с чистого листа.
  • Динамические реконфигурируемые процессоры (Dynamically Reconfigurable Processor). Процессоры, содержащие стандартное ядро и расширяющее его возможности устройство, которое может быть запрограммировано в процессе исполнения, обычно это бывает программируемая логическая матрица (Field Programmable Gate-Array, FPGA).

Первые две категории приобретают свою специфику в процессе изготовления, а третья может программироваться; мы подробнее остановимся именно на ней.

Реконфигурируемые сигнальные процессоры

Лет 15-20 назад было предпринято несколько попыток создания гибридного процессора, состоящего из переменной и постоянной частей. Тогда и вспомнили про Эстрина; ему даже была посвящена специальная публикация в журнале The Economist «Реконфигурируемые системы готовятся к реанимации». Возможность для реконфигурации создали появившиеся к тому времени программируемые логические матрицы компании Xilinx, а непосредственный интерес был вызван появлением архитектуры PRISM (Processor Reconfiguration through Instruction-Set Metamorphosis), где для ускорения отдельных приложений возможности ядра могли быть расширены дополнительными операциями. Одним из наиболее известных процессоров с возможностями реконфигурации был Garp, разработанный в Беркли, который сочетал в себе ядро MIPS и инфраструктуру на основе FPGA.

Из этой волны выросло поколение реконфигурируемых сигнальных процессоров. Самым интересным из современных проектов является разрабатываемый в Италии процессор XiRiх (Extended Instruction Set Risc). Тем, кто серьезно заинтересуется программированием таких процессоров, стоит обратиться к выложенной в Сети диссертации Каудио Муччи (Software tools for embedded reconfigurable processors).

Горячие головы увлеклись идеей реконфигурации. В 1995 году аналитик из Gartner Йордан Селбурн предположил, что за десять последующих лет рынок реконфигурируемых чипов составит 50 млрд долл., но этот прогноз не оправдался?— скорее всего, потому, что и тогда уровень развития полупроводниковых технологий оказался недостаточным. Но уроки извлекать следует и из неудачных прогнозов, в частности из того, чему могут научить встраиваемые процессоры.

Как правило, сигнальные процессоры строятся по гарвардской архитектуре, с разделением памяти команд и данных, поэтому их реконфигурирование проще и естественнее. Эти процессоры всегда составляли отдельное подмножество, в силу своей специфики не пересекающееся с основным множеством вычислительных процессоров. Но стоит задуматься над тем, почему такое разделение сложилось и сохранится ли оно навсегда. Разработчики сигнальных процессоров были поставлены в условия, когда им нужно соответствовать требованиям окружающего мира, и они предложили свое «микрорешение». «Всепроникающие» (pervasive) компьютерные системы распространяют аналогичные требования на более широкий спектр приложений. Складывается впечатление, что какие-то подходы, в том числе и реконфигурация, которые зародились при разработке встраиваемых процессоров, будут распространены на макроуровень.

Реконфигурируемый компьютинг и HPC

За всеобщим увлечением высокопроизводительными кластерами остается не слишком заметной деятельность компаний Cray, SGI и SRC, которые активно используют ускорители вычислений на базе FPGA. Такими устройствами снабжены машины Cray XD1 и сервер SGI Reconfigurable Application-Specific Computing (RASC). По мнению аналитиков, эти решения представляют собой примеры, свидетельствующие о возможности применения FPGA за пределами традиционных встраиваемых приложений.

Компания SRC, созданная Сеймуром Креем незадолго до его гибели, связывает всю свою производственную программу с реконфигурируемыми компьютерными системами. Она разрабатывает архитектуру Implicit+Explicit, состоящую из традиционных компонентов Dense Logic Device и реконфигурируемых устройств Direct Execution Logic. Программная среда SRC Carte Programming Environment поддерживает программирование на Си и Фортране, не требуя от программиста знаний, связанных с программированием аппаратного обеспечения.

Как жить дальше?

Предвидение глобального кризиса вызывает больше вопросов, чем ответов. Эта тема волнует лучшие умы, но и они в затруднении. Тот же Дэйв Паттерсон заявил: «Все, что мы можем сейчас, это включить отдельные понятные сегодня вещи в аспирантские программы. Студентов мы должны информировать о грядущих тенденциях, признаваясь честно, что мы еще не знаем, какой будет следующая модель компьютинга».

В одном можно быть уверенным— кончается великая эпоха. Ее символом являются мэйнфреймы, с которых все началось и которыми все, видимо, и закончится. Мэйнфрейм— высшая точка фон-неймановской архитектуры, самый универсальный из всех универсальных компьютеров.


* На протяжении ряда лет я проделывал эксперимент, предлагая дать определение того, что такое информация, десяткам авторитетных отечественных и зарубежных представителей компьютерного сообщества. Ни один из них не дал прямого и строгого ответа. В подавляющем большинстве случаев сначала следовало «ну, знаете ли» с намеком на то, что вопрос не вполне корректен, а потом, после некоторого смущения, нечто наподобие «это данные плюс метаданные» или что-то еще в этом же роде.— Прим. автора.

** Следует заметить, что эта управляющая отраслью «мировая константа» впервые была замечена не Гордоном Муром, как думают многие, а великим Дагом Энгельбартом. Именно он сделал прогноз о периодическом удвоении плотности в 1960 году, на пять лет раньше появления знаменитой статьи Мура.— Прим. автора.

*** Чтобы подчеркнуть степень радикальности грядущих трансформаций, Отеллини использовал очень сильный и подчеркнуто элитарный эпитет sea change. Это выражение впервые встречается у Шекспира, а в современный оборот его ввел американский поэт Эзра Паунд. Такие выражения не выбирают случайно.— Прим. автора.