Динамическая логика (цифровая электроника)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Динамическая логика (или тактированная логика) — методология разработки комбинационных схем, в частности реализуемых по технологии КМОП, применяемая при проектировании интегральных схем. В отличие от статической логики, в которой в каждый момент времени каждый выход элемента соединяется либо с шиной источника питания, либо с общей шиной через тракт с малым сопротивлением, и выходы элементов в любой момент времени описываются булевой функцией, реализованной схемой, динамическая логика использует запоминание значений сигнала в ёмкости узлов схемы с высоким импедансом.[1] Динамическая логика была популярна в 1970-х годах, но в последнее время интерес к ней возвращается в связи с разработкой высокоскоростной цифровой электроники, в частности микропроцессоров. Схемы на основе динамической логики содержат меньшее число транзисторов, обладают более высоким быстродействием, занимают меньше места на кристалле, однако их труднее проектировать и они обладают большим рассеиванием мощности.[2] При указании типа логики, прилагательное динамический обычно употребляется для указания методологии разработки, например динамическая КМОП[3] или динамическая КНИ[2].

Динамическая логика отличается от статической использованием тактового сигнала при реализации комбинационных схем. Обычно тактовый сигнал используется для синхронизации смены состояний в последовательностной логике. В других методологиях реализации комбинационных схем тактовый сигнал не нужен.

Термины статический/динамический, применяемые к комбинационным схемам, не следует путать с этими же терминами, употребляемыми для обозначения запоминающих устройств, например динамического или статического ОЗУ.

Терминология[править | править исходный текст]

Употребление термина динамическая логика является предпочтительным по сравнению с термином тактированная логика, так как позволяет четко определить границу между данной методологией и методологией статической логики. Кроме того, термин тактированная логика явялется синонимом термина последовательностная логика, поэтому его использование для обозначения динамической логики нежелательно.

Сравнение статической и динамической логики[править | править исходный текст]

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

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

Напротив, в динамической логике, не всегда существует механизм для получения на выходе высокого или низкого уровня. В самом распространенном варианте этой концепции, высокий и низкий уровни на выходе элемента формируются во время разных фаз тактового сигнала. Динамическая логика требует использования достаточно высокой тактовой частоты, чтобы емкость, используемая для формирования выходного состояния логического элемента, не успевала разрядиться за тот период тактового сигнала, когда формирование высокого уровня на выходе не производится.

Статическая логика не имеет минимальной тактовой частоты — тактирование может быть остановлено на неопределенное время. Это дает два преимущества:

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

В частности, хотя многие популярные процессоры используют динамическую логику[4], только процессоры со статическим ядром, спроектированным по статической КМОП технологии пригодны к использованию в космических спутниках, благодаря их большей радиационной стойкости[5].

Реализация статической КМОП логики с разветвлением по входу N требует 2N транзисторов. В динамической логике число транзисторов существенно меньше: N + 2. Динамические логические элементы имеют более высокую скорость переключения. Это объясняется меньшей ёмкостью нагрузки, порожденной меньшим числом транзисторов. Кроме того динамический элемент не имеет тока короткого замыкания. Динамическая логика сложнее в проектировании, но она может быть единственным выбором когда нужна высокая скорость работы. Большая часть электроники, работающей при тактовых частотах выше 2 ГГц, требует применения динамической логики, хотя некоторые производители, такие как Intel полностью переключились на статическую логику для снижения энергопотребления[6].

В общем случае, динамическая логика значительно увеличивает число одновременно переключающихся транзисторов, что увеличивает потребление энергии по сравнению со статической[6].

Пример динамической логики[править | править исходный текст]

В качестве примера рассмотрим сначала реализацию элемента И-НЕ в статической КМОП логике:

CMOS NAND.svg

Эта схема реализует логическую функцию:

Out = \overline{AB}

Если на обоих входах A и B будет высокий уровень, выход соединится с общей шиной и на нём будет низкий уровень. Если на одном из входов A и B низкий уровень, выход будет соединен с шиной источника питания и будет иметь высокий уровень. Важно, что в любой момент времени выход соединен либо с источником питания и имеет высокий уровень, либо с общей шиной и имеет низкий уровень.

Рассмотрим теперь реализацию в динамической логике:

Dlnand.svg

Схема с динамической логикой использует последовательность двух фаз. Первая фаза, в которой тактовый сигнал Clock имеет низкий уровень, называется фазой предварительной зарядки. Вторая фаза, в которой тактовый сигнал Clock имеет высокий уровень, называется фазой оценки. В фазе предварительной зарядки на выход подается высокий уровень, независимо от состояния входов A и B. Конденсатор, представляющий собой ёмкость нагрузки данного логического элемента, заряжается. Во время предварительной зарядки на выходе не может возникнуть низкий уровень, поскольку транзистор, соединенный с общей шиной, закрыт.

Во время фазы оценки сигнал Clock имеет высокий уровень. Если на обоих входах A и B высокий уровень, выход соединится с общей шиной и на нём будет низкий уровень. В противном случае, на выходе будет высокий уровень за счет энергии, запасенной в ёмкости нагрузки. Как только выход X разрядится, его нельзя будет зарядить снова до следующей фазы предварительной зарядки. Таким образом, входы логического элемента могут в фазе оценки измениться не более одного раза.

Динамическая логика имеет ряд недостатков, которых статическая логика не имеет. Например, если частота тактового сигнала слишком низкая, выходной сигнал будет быстро падать и схема станет неработоспособна.

Ссылки[править | править исходный текст]

  1. Жан М. Рабаи, Ананта Чандракасан, Боривож Николич. Цифровые интегральные схемы. Методология проектирования = Digital Integrated Circuits. — 2-е изд. — М.: Вильямс, 2007. — 912 с. — ISBN 0-13-090996-3
  2. 1 2 Andrew Marshall, Sreedhar Natarajan SOI design: analog, memory and digital techniques. — Springer, 2002. — ISBN 978-0-7923-7640-8
  3. Bruce Jacob, Spencer Ng, David Wang Memory systems: cache, DRAM, disk. — Morgan Kaufmann, 2007. — ISBN 978-0-12-379751-3
  4. AnandTech — Understanding the Cell Microprocessor
  5. AMSAT-DL: «No RISC, No Fun!»by Peter Gülzow
  6. 1 2 AnandTech — The Dark Knight: Intel’s Core i7