Введение
Методология проектирования интегральных схем с комбинаторной логикой – область теоретической информатики.
the subject in theoretical computer science
В проектировании интегральных схем динамическая логика (или иногда синхронная логика) представляет собой методологию проектирования комбинационных логических схем, особенно тех, которые реализованы в технологии металл-оксид-полупроводник (MOS). Она отличается от так называемой статической логики использованием временного хранения информации в паразитных и входных емкостях. Динамическая логика была популярна в 1970-х годах и в последнее время переживает возрождение в разработке высокоскоростной цифровой электроники, в частности центральных процессоров (CPU). Динамические логические схемы обычно быстрее, чем их статические аналоги, и требуют меньшей площади, но их сложнее проектировать. Динамическая логика характеризуется более высокой средней частотой переключений напряжения по сравнению со статической логикой, однако переключаемые емкостные нагрузки меньше, поэтому общее энергопотребление динамической логики может быть как выше, так и ниже, в зависимости от различных компромиссов. Применительно к конкретному семейству логики обычно достаточно использовать определение "динамическая", чтобы указать на используемую методологию проектирования, например, динамический CMOS или динамический дизайн на основе SOI.
Статическая логика против динамической
Наибольшее различие между статической и динамической логикой заключается в том, что в динамической логике для вычисления комбинационной логики используется тактовый сигнал. В большинстве типов логического проектирования, называемого статикой, всегда существует механизм, обеспечивающий установку выходного сигнала в высокое или низкое состояние. Во многих популярных стилях логики, таких как TTL и традиционная КМОП, этот принцип можно сформулировать как наличие постоянного пути с низким импедансом между выходом и напряжением питания или землей. Стоит отметить, что в этом определении есть исключение для выходов с высоким импедансом, например, трехсостояния буфера; однако даже в этих случаях схема предназначена для использования в более крупной системе, где какой-либо механизм будет управлять выходом, и они не рассматриваются как отличные от статической логики. В отличие от этого, в динамической логике не всегда существует механизм, обеспечивающий установку выходного сигнала в высокое или низкое состояние. В наиболее распространенной реализации выходной сигнал устанавливается в высокое или низкое состояние в различные моменты тактового цикла. В промежутки времени, когда выход не управляется активно, паразитная емкость удерживает его на уровне, близком к установленному, в пределах определенной допустимой погрешности. Динамическая логика требует минимальной тактовой частоты, достаточной для того, чтобы состояние выхода каждого динамического элемента использовалось или обновлялось до того, как заряд в выходной емкости утечет настолько, что изменится цифровое состояние выхода в течение части тактового цикла, когда выход не управляется активно. Статическая логика не имеет минимальной тактовой частоты – тактовый сигнал можно остановить на неопределенный срок. Хотя может показаться, что бездействие в течение длительного времени не очень полезно, это дает три преимущества: возможность приостановить систему в любой момент значительно упрощает отладку и тестирование, позволяя использовать такие методы, как пошаговое выполнение. Возможность работы системы на очень низких тактовых частотах позволяет электронике с низким энергопотреблением дольше работать от одного источника питания. Полностью статическая система может мгновенно возобновить работу с того места, где она была остановлена; пользователю не нужно ждать загрузки или перезапуска системы. Возможность приостановить систему в любой момент на любой период времени также может быть использована для синхронизации процессора с асинхронным событием. Существуют и другие механизмы для этого, такие как прерывания, циклы опроса, неактивные входные контакты процессора (например, RDY на 6502) или механизмы расширения цикла шины процессора, такие как входы WAIT, но использование аппаратной логики для управления тактовым сигналом статического ядра процессора проще, точнее по времени, не требует памяти программного кода и потребляет очень мало энергии в процессоре во время ожидания. В базовой конструкции, чтобы начать ожидание, процессор запишет в регистр, чтобы установить бит двоичного триггера, который будет объединен логическим И или ИЛИ с тактовым сигналом процессора, останавливая процессор. Сигнал от периферийного устройства сбросит этот триггер, возобновляя работу процессора. Аппаратная логика должна управлять входными сигналами управления триггером таким образом, чтобы переход выходного сигнала триггера не вызывал мгновенного изменения уровня тактового сигнала и не создавал тактовый импульс, слишком короткий по длительности (высокий или низкий). В частности, хотя многие популярные процессоры используют динамическую логику, только статические ядра – процессоры, разработанные с использованием полностью статической технологии – могут использоваться в космических спутниках из-за их более высокой устойчивости к радиации. При правильном проектировании динамическая логика может быть более чем в два раза быстрее статической. Она использует только более быстрые транзисторы NMOS, что улучшает оптимизацию размеров транзисторов. Статическая логика медленнее, поскольку имеет в два раза большую емкостную нагрузку, более высокие пороговые значения и использует медленные PMOS-транзисторы для логики. Динамическая логика может быть сложнее в работе, но она может быть единственным выбором, когда требуется повышение производительности. Большинство современных электронных устройств, работающих на частоте более 2 ГГц, требуют динамической логики, хотя некоторые производители, такие как Intel, разрабатывают чипы с использованием полностью статической логики для снижения энергопотребления. Следует отметить, что снижение энергопотребления не только увеличивает время работы от ограниченных источников питания, таких как батареи или солнечные панели (как в космических аппаратах), но и снижает требования к тепловому дизайну, уменьшая размер необходимых радиаторов, вентиляторов и т. д., что, в свою очередь, снижает вес и стоимость системы. В целом, динамическая логика значительно увеличивает количество переключающихся транзисторов в любой момент времени, что увеличивает энергопотребление по сравнению со статической КМОП. Существует несколько методов энергосбережения, которые можно реализовать в системе на основе динамической логики. Кроме того, каждая шина может передавать произвольное количество бит, и отсутствуют паразитные переключения. Управление тактовой частотой для экономии энергии и асинхронные методы более естественны в динамической логике.
being able to pause a system at any time makes debugging and testing much easier, enabling techniques such as single stepping. being able to run a system at extremely low clock rates allows low power electronics to run longer on a given battery. a fully static system can instantly resume exactly where it left off; a person doesn't have to wait for the system to boot up or resume. Being able to pause a system at any time for any duration can also be used to synchronize the CPU to an asynchronous event. While there are other mechanisms to do this, such as interrupts, polling loops, processor idling input pins (for example, RDY on the 6502), or processor bus cycle extension mechanisms such as WAIT inputs, using hardware to gate the clock to a static core CPU is simpler, is more temporally precise, uses no program code memory, and uses almost no power in the CPU while it is waiting. In a basic design, to start waiting, the CPU would write to a register to set a binary latch bit which would be ANDed or ORed with the processor clock, stopping the processor. A signal from a peripheral device would reset this latch, resuming CPU operation. The hardware logic must gate the latch control inputs as necessary to ensure that a latch output transition does not cause the clock signal level to instantaneously change and cause a clock pulse, either high or low, that is shorter than normal. In particular, although many popular CPUs use dynamic logic, only static cores—CPUs designed with fully static technology—are usable in space satellites owing to their higher radiation hardness. When properly designed, dynamic logic can be over twice as fast as static logic. It uses only the faster NMOS transistors, which improves transistor sizing optimizations. Static logic is slower because it has twice the capacitive loading, higher thresholds, and uses slow PMOS transistors for logic. Dynamic logic can be harder to work with, but it may be the only choice when increased processing speed is needed. Most electronics running at over 2 GHz these days require dynamic logic, although some manufacturers such as Intel have designed chips using completely static logic to reduce power consumption. Note that reducing power use not only extends the running time with limited power sources such as batteries or solar arrays (as in spacecraft), but it also reduces the thermal design requirements, reducing the size of needed heatsinks, fans, etc., which in turn reduces system weight and cost. In general, dynamic logic greatly increases the number of transistors that are switching at any given time, which increases power consumption over static CMOS. There are several powersaving techniques that can be implemented in a dynamic logic based system. In addition, each rail can convey an arbitrary number of bits, and there are no power wasting glitches. Power saving clock gating and asynchronous techniques are much more natural in dynamic logic.