Введение

Методология проектирования интегральных схем с комбинаторной логикой – область теоретической информатики.

В проектировании интегральных схем динамическая логика (или иногда синхронная логика) представляет собой методологию проектирования комбинационных логических схем, особенно тех, которые реализованы в технологии металл-оксид-полупроводник (MOS). Она отличается от так называемой статической логики использованием временного хранения информации в паразитных и входных емкостях. Динамическая логика была популярна в 1970-х годах и в последнее время переживает возрождение в разработке высокоскоростной цифровой электроники, в частности центральных процессоров (CPU). Динамические логические схемы обычно быстрее, чем их статические аналоги, и требуют меньшей площади, но их сложнее проектировать. Динамическая логика характеризуется более высокой средней частотой переключений напряжения по сравнению со статической логикой, однако переключаемые емкостные нагрузки меньше, поэтому общее энергопотребление динамической логики может быть как выше, так и ниже, в зависимости от различных компромиссов. Применительно к конкретному семейству логики обычно достаточно использовать определение "динамическая", чтобы указать на используемую методологию проектирования, например, динамический CMOS или динамический дизайн на основе SOI.

Статическая логика против динамической

Наибольшее различие между статической и динамической логикой заключается в том, что в динамической логике для вычисления комбинационной логики используется тактовый сигнал. В большинстве типов логического проектирования, называемого статикой, всегда существует механизм, обеспечивающий установку выходного сигнала в высокое или низкое состояние. Во многих популярных стилях логики, таких как TTL и традиционная КМОП, этот принцип можно сформулировать как наличие постоянного пути с низким импедансом между выходом и напряжением питания или землей. Стоит отметить, что в этом определении есть исключение для выходов с высоким импедансом, например, трехсостояния буфера; однако даже в этих случаях схема предназначена для использования в более крупной системе, где какой-либо механизм будет управлять выходом, и они не рассматриваются как отличные от статической логики. В отличие от этого, в динамической логике не всегда существует механизм, обеспечивающий установку выходного сигнала в высокое или низкое состояние. В наиболее распространенной реализации выходной сигнал устанавливается в высокое или низкое состояние в различные моменты тактового цикла. В промежутки времени, когда выход не управляется активно, паразитная емкость удерживает его на уровне, близком к установленному, в пределах определенной допустимой погрешности. Динамическая логика требует минимальной тактовой частоты, достаточной для того, чтобы состояние выхода каждого динамического элемента использовалось или обновлялось до того, как заряд в выходной емкости утечет настолько, что изменится цифровое состояние выхода в течение части тактового цикла, когда выход не управляется активно. Статическая логика не имеет минимальной тактовой частоты – тактовый сигнал можно остановить на неопределенный срок. Хотя может показаться, что бездействие в течение длительного времени не очень полезно, это дает три преимущества: возможность приостановить систему в любой момент значительно упрощает отладку и тестирование, позволяя использовать такие методы, как пошаговое выполнение. Возможность работы системы на очень низких тактовых частотах позволяет электронике с низким энергопотреблением дольше работать от одного источника питания. Полностью статическая система может мгновенно возобновить работу с того места, где она была остановлена; пользователю не нужно ждать загрузки или перезапуска системы. Возможность приостановить систему в любой момент на любой период времени также может быть использована для синхронизации процессора с асинхронным событием. Существуют и другие механизмы для этого, такие как прерывания, циклы опроса, неактивные входные контакты процессора (например, RDY на 6502) или механизмы расширения цикла шины процессора, такие как входы WAIT, но использование аппаратной логики для управления тактовым сигналом статического ядра процессора проще, точнее по времени, не требует памяти программного кода и потребляет очень мало энергии в процессоре во время ожидания. В базовой конструкции, чтобы начать ожидание, процессор запишет в регистр, чтобы установить бит двоичного триггера, который будет объединен логическим И или ИЛИ с тактовым сигналом процессора, останавливая процессор. Сигнал от периферийного устройства сбросит этот триггер, возобновляя работу процессора. Аппаратная логика должна управлять входными сигналами управления триггером таким образом, чтобы переход выходного сигнала триггера не вызывал мгновенного изменения уровня тактового сигнала и не создавал тактовый импульс, слишком короткий по длительности (высокий или низкий). В частности, хотя многие популярные процессоры используют динамическую логику, только статические ядра – процессоры, разработанные с использованием полностью статической технологии – могут использоваться в космических спутниках из-за их более высокой устойчивости к радиации. При правильном проектировании динамическая логика может быть более чем в два раза быстрее статической. Она использует только более быстрые транзисторы NMOS, что улучшает оптимизацию размеров транзисторов. Статическая логика медленнее, поскольку имеет в два раза большую емкостную нагрузку, более высокие пороговые значения и использует медленные PMOS-транзисторы для логики. Динамическая логика может быть сложнее в работе, но она может быть единственным выбором, когда требуется повышение производительности. Большинство современных электронных устройств, работающих на частоте более 2 ГГц, требуют динамической логики, хотя некоторые производители, такие как Intel, разрабатывают чипы с использованием полностью статической логики для снижения энергопотребления. Следует отметить, что снижение энергопотребления не только увеличивает время работы от ограниченных источников питания, таких как батареи или солнечные панели (как в космических аппаратах), но и снижает требования к тепловому дизайну, уменьшая размер необходимых радиаторов, вентиляторов и т. д., что, в свою очередь, снижает вес и стоимость системы. В целом, динамическая логика значительно увеличивает количество переключающихся транзисторов в любой момент времени, что увеличивает энергопотребление по сравнению со статической КМОП. Существует несколько методов энергосбережения, которые можно реализовать в системе на основе динамической логики. Кроме того, каждая шина может передавать произвольное количество бит, и отсутствуют паразитные переключения. Управление тактовой частотой для экономии энергии и асинхронные методы более естественны в динамической логике.