Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ семинары 2006.doc
Скачиваний:
64
Добавлен:
20.05.2014
Размер:
2 Мб
Скачать
☆

Синхронные и асинхронные процессоры

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

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

Главная беда синхронности заключается в том, что она требует для своей реализации весьма сложный механизм управления, который может занимать от 10 до 50% общего числа транзисторов на микросхеме. Стоит задуматься: почти половина от всего наполнения чипа, оказывается, занято непродуктивной работой, играет роль координатора, не более того. Это имеет целый ряд негативных последствий — и, прежде всего, сложность в двух ее ипостасях. Во-первых, сложность самого изделия как такового, и, во-вторых, что может быть даже важнее, постоянно растущая сложность и трудоемкость проектирования, вызванная необходимостью совместить два потока информации, обрабатываемый и управляющий. Когда количество транзисторов на кристалле исчисляется десятками миллионов, процесс проектирования становится в подлинном смысле запредельно сложным. Немногочисленные крупные производители, способные обеспечить проектирование на требуемом уровне, используют самые совершенные системы автоматизации проектирования, однако сложное вхождение в жизнь некоторых семейств 64-разрядных процессоров, постоянные переносы сроков выпуска свидетельствуют, что этого недостаточно. Дальше непредвиденных осложнений, видимо, будет еще больше. Закону Мура, в его упрошенной трактовке постулирующему удвоение производительности каждые 18 месяцев, угрожают не технологические барьеры, а сложность проектирования, в том числе и проблемы, связанные с тестированием. (О неминуемом повышении энергопотребления, о физическом пределе роста частоты, о роли электромагнитного излучения, особенно в мобильных устройствах, и других подобных вещах за всей их очевидностью, говорить не будем.)

Откуда же происходит сохраняющаяся приверженность синхронности, если она так плоха? Есть простенькое маркетинговое объяснение: чем тяжеловеснее проектирование или производство, тем выше уровень монополизации отрасли; понятно, кто оказывается в выигрыше. Но существует и более серьезное объяснение генезиса проблемы. Синхронность в современных процессорах есть прямое следствие использования исключительно двоичной булевой логики. Изобретенная Джорджем Булем в середине XIX века, эта логика оставалась в безвестности почти век, до тех пор, пока юный в ту пору студент Клод Шеннон не открыл ее возможностей для конструирования электронных схем, по своей физической природе в основном двоичных. Если позволите, «врожденный порок», которым страдает двоичная логика, состоит в том, что она не включает в себя условие завершения выполнения функции; она может существовать только на фоне соответствующей временной диаграммы, развертывающей процесс выполнения во времени. Иными словами, булева логика не представляет собой символически законченную логическую систему (symbolically completed), поскольку ей для завершения недостаточно собственного потока логических переменных. В данном случае «completed» можно перевести и как «завершенная» (еще точнее будет довольно странное словосочетание «способная к завершению», но может быть, лучше было бы назвать ее «самодостаточной»). Нельзя сказать, что в этом направлении ничего не делается. Это и машины на троичной логике Николая Брусенцова «Сетунь», «Сетунь 70», это разработка альтернативной логики NULL Convention Logic (NCL), выполненная специалистами из небольшой компании Theseus Logic.

Избавление от обязательных часов и необходимости в синхронизации в NULL Convention Logic достигается путем интеграции данных и управления в одном логическом выражении, в одном логическом потоке, где NULL, ее называют переменной-разделителем, выполняет синхронизующую функцию. Информативные сигналы, нули и единицы, и NULL передаются по разным проводам, поэтому иногда такой подход образно называют «dual rail», подразумевая под этим, что для передачи сигнала используется «два рельса» (точнее, два провода). Важно заметить разницу в смысловом значении сигнала: проводник сам по себе не несет в себе логического значения, изменение напряжения на нем свидетельствует только о том, что сигнал поступил. Сигнал приобретает логический смысл лишь тогда, когда по параллельному проводнику поступает NULL; такое разделение обеспечивает самосинхронизацию. Логику NCL можно представить как второй логический уровень над булевой логикой, который позволяет воспроизвести троичные элементы с использованием принятых сегодня технологий.

Однако к проблеме синхронности можно подойти с еще одной неожиданной позиции. Вспомним начала кибернетики. Одно из важнейших достижений Норберта Винера заключается в том, что он показал значение обратной связи в системах с саморегулированием в живом мире и в технике. Существует альтернатива: либо управление по обратной связи, либо программное управление, третьего не дано. Обратная связь дает элементу системы возможность оценить сделанное (например, свое положение в некотором пространстве параметров), критически его оценить посредством регулятора с отрицательной обратной связью и внести коррекцию во входные параметры, чтобы приблизиться к требуемому положению. Типичный пример программного управления — стрельба из артиллерийских орудий, пример управления с обратной связью — боеголовка с самонаведением. Первыми программными автоматами были механические игрушки, шарманки и тому подобное; они не меняют своего положения, поэтому программного управления оказывается достаточно. Процессор, работающий по заданной временной диаграмме, — точно такая же синхронная машина с конечным числом состояний, что и механическое пианино. Какими бы сложными не были архитектуры современных процессоров: суперскалярными, конвейерными и прочее, прочее — все они попадают в эту простейшую модель.

Внедрение асинхронного управления в процессор означает частичный или полный отказ от программного управления и переход к управлению по обратной связи. На рисунке представлены два подхода: синхронный и асинхронный. Наполнение блока «Комбинационная Логика» может различаться в зависимости от избранного решения. При всем разнообразии решений с точки зрения управления, все они различаются между собой глубиной проникновения обратной связи — иначе говоря, тем, какой объем логики предполагается вместить в прямоугольник, обозначенный как «Комбинационная Логика». Обратную связь можно поместить на самый нижний уровень, реализуемый непосредственно на кристалле C-MOS, если использовать так называемые элементы С или элементы Мюллера и синтезировать процессор с использованием аппарата сетей Петри. Более высокий, средний уровень предполагает включение дополнительных сигналов в поток данных, что позволяет реализовать обратную связь на уровне элементарных логических функций. К среднему уровню также относят и технологию, которая называется микроконвейерной. Наконец, третий, верхний уровень предполагает охватывание петлей обратной связи более крупных логических компонентов, включающих в себя регистры целиком.

Синхронный и асинхронный процесс

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