Асинхронные процессоры
Эдуард Пройдаков
Поводом написать эту статью послужило сообщение от 27 октября о выпуске фирмами Handshake Solutions, Royal Philips Electronics и ARM самотактируемого процессора ARM. Их компактный процессор, отличающийся пониженным потреблением энергии и низким уровнем электромагнитных помех (EMI), предназначен для применения в смарт-картах, бытовой и автомобильной электронике.
Используемые ныне процессоры, как известно из школьных и вузовских курсов информатики, представляют собой конечные автоматы, использующие булевскую (двоичную) логику. Проблема в том, что определить состояние такого автомата при реальном физическом его воплощении можно не в любой момент, поскольку его ячейки имеют ненулевое время переключения из одного бинарного состояния в другое (иными словами, в момент переключения состояние ячеек и соответственно автомата в целом оказывается неопределенным). Синхросигналы как раз и нужны для того, чтобы зафиксировать дискретные состояния автомата. В современных компьютерах для этого используется системный тактовый генератор (отдельная специализированная микросхема), сигналы от которого поступают во все микросхемы, установленные на системной (материнской) плате. Все переключения внутри микросхем привязываются к переднему или заднему фронтам тактового сигнала, благодаря чему узлы компьютера работают синхронно.
Изначально все процессоры были синхронными. Так продолжалось более полувека, электронщики и программисты считали, что это естественно и само собой разумеется. Поэтому тактовая частота является одной из основных характеристик современных процессоров, хотя их производительность определяется не только ею, но также архитектурой и набором команд. Главный конструктор бортовых систем (БЦВМ) для ВМФ Ярослав Афанасьевич Хетагуров на одном из заседаний Совета Виртуального компьютерного музея (www.computer-museum.ru) рассказывал, что его однажды вызвали в ЦК КПСС и попросили объяснить, почему быстродействие его БЦВМ в десять раз ниже, чем у использующего схожую элементную базу американского военного компьютера. Выяснилось, что американцы применили в своей машине очень короткие команды и "в попугаях" она оказалась намного производительнее, хотя на реальных боевых задачах обе машины были примерно равны.
Для начала определим, что такое самотактируемый процессор, самотактируемая логика и т. п. Термины "асинхронный процессор" (asynchronous processor) и "самотактируемый процессор" (self-timed processor, clockless processor) – синонимы, т. е. обозначают одно и то же: процессор, имеющий один или несколько внутренних тактовых генераторов и потому не требующий центрального генератора тактовой частоты и схем, поддерживающих распространение общего внешнего тактового сигнала. Такие процессоры излучают гораздо меньше радиоволн и расходуют меньше энергии по сравнению с синхронными процессорами. При проектировании внутренних блоков асинхронных процессоров не рассматриваются вопросы их синхронизации с другими блоками. Для связи между блоками используется единый протокол: запрос – ответ с квитированием. Когда вычисления не производятся, блоки не потребляют почти ничего, находясь спящем режиме, но тем не менее мгновенно реагируют на запросы. Мы видим здесь, что процессом вычислений управляют данные: нет данных – нет вычислительной активности. Понятно, что такие блоки легче интегрировать в так называемые системы на кристалле (SOC), и в итоге их общая производительность выше, чем у синхронных процессоров. Повышение производительности достигается за счет того, что блоку нет необходимости ждать прихода внешнего тактового сигнала, чтобы выполнить свою работу.
Асинхронная система получается более надежной, поскольку её подсистемы работают в более широких диапазонах изменений напряжения питания и температуры. Важно, чтобы самотактируемым был не только процессор, но и остальные микросхемы: чипсет, ОЗУ, контроллеры и т. д. Весь набор таких микросхем и именуется самотактируемой логикой (clockless logic). Американский термин clockless logic (дословно – "нетактируемая логика") может ввести в заблуждение, поэтому подчеркнем, что для работы асинхронных микросхем тактовые сигналы, как правило, нужны, но их источник локален.
Помимо уже указанных преимуществ самотактируемых процессоров перед традиционными синхронными (synchronous processor) есть и ряд других. В архитектуре, построенной на самотактируемых микросхемах, процессор становится достаточно простым и элегантным. Многие компании, в том числе Intel, IBM и Motorola, проводили исследования в области асинхронных вычислений. К этому подталкивали трудности, возникающие с распространением общего тактового сигнала в ультрабольших интегральных схемах. Первый самотактируемый процессор разработал профессор Элэйн Мартин (Alain Martin) в Калифорнийском технологическом институте (Калтех), а сама идея принадлежит одному из создателей компьютерной графики Айвану Сюзерланду (Ivan Sutherland), написавшему первую статью о нетактируемой логике. В 1990 г. в Университете Манчестера в Англии по этому направлению была создана рабочая группа, а в 1994-м она разработала первый чип для сотовых телефонов. В 1997 г. корпорация Intel, создала совместимый с процессором Pentium асинхронный тестовый кристалл, который был в три раза производительнее и потреблял вдвое меньше энергии. В 1998 г. Philips выпустила асинхронный процессор для своих пейджеров. В 2001 г. Intel в Pentium 4 частично реализовала элементы асинхронной логики.
Отмечу, что у каждого органа человеческого тела, у каждой клетки есть так называемые водители ритма, пейсмекеры, задающие тактовые частоты, ритмы, в соответствии с которыми в них происходят те или иные процессы. Здесь мы также наблюдаем асинхронную схему тактирования, к которой пришли сегодня и разработчики элементной базы.
Интересно, что если первоначально многие идеи пришли в ВТ и программирование из машиностроения и конструирования радиоэлектронных устройств, то тут обратное движение: самотактируемые схемы чем-то напоминают ООП.
Упомянутый выше совместный продукт ARM-Handshake считается первым коммерчески доступным асинхронным процессором общего назначения. Прежние конструкции страдали такими недостатками, как невысокая производительность, трудность программирования и проблема взаимодействия с существующими микросхемами памяти и периферийными шинами, рассчитанными на тактированные процессоры. В данном продукте для решения данной проблемы поддерживается совместимость с синхронными микросхемами.
Для широкого внедрения асинхронных процессоров необходимо никак не менее пяти лет, поскольку они пока плохо поддержаны инструментальными средствами, а главное, потребуют радикальных изменений в проектировании как аппаратных средств, так и программного обеспечения.
Статья опубликована в PC Week/RE №45 от 07.12.2004 г., стр. 20.