Любой, кто интересуется компьютерной техникой и микропроцессорами, скорее всего знает, что внутри микропроцессора есть "часы", которые синхронизируют работу миллионов транзисторов, из которых он состоит
(кстати говоря, проблема Y2K заключалась как раз в том, что эти "часы" должны были выйти из строя). Очевидно, что "часовые" процессоры если и не подошли к пределу своего развития, то скоро до него достанут, частоту таймера и сложность микропроцессора увеличить качественно в пределах нынешних технологий уже не удается.
Тут то на помощь создателям процессоров приходит другое, менее известное направление - работа без таймера, так называемая, асинхронная логика (clockless logic). О принципах работы таких устройств и пойдет речь в этой статье. 

Немного теории

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

Минусы синхронности

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

Немного истории

На самом деле асинхронность придумали давным-давно. Еще в начале 50-х годов в Иллинойском университете 
спроектировали реальный пример компьютера без таймера
- ORDVAC (Ordnance Variable Automated Computer), который использовали для управления артиллерийским огнем. Отличился и Джона фон Нейман своим асинхронным проектом IAS. Асинхронной логикой занимались и в Манчестерском университете, где сделали MU5. Одним словом, примеров полно. Но идеи с использованием асинхронных процессоров были вне интересов крупных производителей, поэтому на время про асинхронность забыли.

Но и закон Мура, и потолок синхронности приводят к актуализации асинхронной логики. Уже сейчас многие аналитики считают, что в ближайшие годы будет востребована асинхронность и архитектуры с параллелизмом. Еще в середине 90-х годов были подобные предпосылки, когда предвидели грядущий кризис полупроводниковой индустрии, объясняемый достижением теоретического предела ширины проводника и тактовой частоты. Позже появились новые технологии, которые отбросили кризис, но не отменили его.

(Продолжение следует)

Оставить мнение