Динамическая логика (или тактированная логика) — методология разработки комбинационных схем, при которой проектируемая схема работает по тактам. Реализуется, в частности, по технологии КМОП. Применяется при проектировании интегральных схем.
Терминология
правитьТермины «статический»/«динамический», применяемые к комбинационным схемам, не следует путать с этими же терминами, употребляемыми для обозначения запоминающих устройств, например динамического (DRAM) или статического (SRAM) ОЗУ (RAM).
При указании типа логики, прилагательное «динамический» обычно употребляется для указания методологии разработки, например «динамическая КМОП»[1] или «динамическая КНИ»[2].
Употребление термина «динамическая логика» является предпочтительным по сравнению с термином «тактированная логика» («тактированная» от «такт»), так как позволяет чётко определить границу между данной методологией и методологией «статической логики». Кроме того, термин «тактированная логика» является синонимом термина «последовательностная логика», поэтому его использование для обозначения «динамической логики» нежелательно.
История
правитьДинамическая логика была популярна в 1970-х годах, но в последнее время интерес к ней возвращается в связи с разработкой высокоскоростной цифровой электроники, в частности микропроцессоров.
Принцип работы схем
правитьСхема со статической или динамической логикой реализует какую‑либо булеву функцию (например, «И‑НЕ»). Сигнал, получаемый с выходов схемы, является результатом применения булевой функции к сигналу, поступающему на входы схемы.
Статическая логика
правитьВ схеме со «статической логикой» в любой момент времени каждый выход элемента схемы через тракт (проводник), имеющий малое сопротивление, соединён:
- либо с шиной источника питания;
- либо с общей шиной.
Статическая логика не имеет минимальной тактовой частоты — тактирование может быть остановлено на неопределенное время. Это даёт два преимущества:
- возможность остановить систему в любой момент времени (упрощение отладки и тестирования, возможность пошагового выполнения);
- возможность работы системы при очень низких тактовых частотах (увеличение времени работы при той же ёмкости батарей).
В частности, хотя многие популярные процессоры используют динамическую логику[3], только процессоры со статическим ядром, спроектированным по статической технологии КМОП, пригодны к использованию в космических спутниках, благодаря их большей радиационной стойкости[4].
В большинстве типов логик, которые можно определить как «статические», всегда существует механизм для получения на выходе логического элемента высокого или низкого уровня напряжения. Во многих широко используемых типах логики, таких как ТТЛ или КМОП, этот принцип можно перефразировать как утверждение, что всегда существует тракт с малым сопротивлением между выходом элемента и одной из шин источника питания. Исключением является случай высокоимпедансных выходов, где такой тракт образуется не всегда. Однако даже в этом случае предполагается, что логическая схема используется в составе более сложной системы, в которой какой-то внешний механизм будет формировать напряжение на выходе, поэтому такая схема не отличается от статической логики.
Динамическая логика
правитьВ схеме с «динамической логикой» элементы работают по тактам и можно выделить два промежутка времени:
- фаза предварительной зарядки — промежуток времени, при котором тактовый сигнал имеет низкий уровень напряжения;
- фаза оценки — промежуток времени, про котором тактовый сигнал имеет высокий уровень напряжения.
В течение фазы предварительной зарядки ёмкостные элементы схемы, обладающие высоким импедансом, заряжаются[5].
В течение фазы оценки ёмкостные элементы разряжаются (запасённый заряд расходуется).
Обычно тактовый сигнал используется для синхронизации смены состояний в последовательностной логике. В других методологиях реализации комбинационных схем тактовый сигнал не требуется.
В динамической логике не всегда существует механизм для получения на выходе высокого или низкого уровня напряжения. В самом распространенном варианте этой концепции, высокий и низкий уровни напряжения на выходе элемента формируются во время разных фаз тактового сигнала. Динамическая логика требует использования достаточно высокой тактовой частоты, чтобы ёмкость, используемая для формирования выходного состояния логического элемента, не успевала разрядиться за время фазы оценки.
Большая часть электроники, работающей при тактовых частотах выше 2 ГГц, требует применения динамической логики, хотя некоторые производители, такие как «Intel», полностью переключились на статическую логику для снижения энергопотребления[6].
Преимущества и недостатки
правитьПреимущества схем с динамической логикой (по сравнению со схемами на статической логике)[2]:
- меньшее число транзисторов. Реализация статической логики КМОП с разветвлением по входу N требует 2N транзисторов. В динамической логике число транзисторов существенно меньше: N + 2;
- более высокое быстродействие. Логические элементы имеют более высокую скорость переключения, что объясняется меньшей ёмкостью нагрузки, порожденной меньшим числом транзисторов. Кроме того динамический элемент не имеет тока короткого замыкания;
- элементы занимают меньше места на кристалле.
Динамическая логика сложнее в проектировании, но она может быть единственным выбором, если требуется высокая скорость работы.
Недостатки схем с динамической логикой (по сравнению со схемами на статической логике)[2]:
- сложность проектирования;
- большое рассеивание мощности. В общем случае, динамическая логика значительно увеличивает число одновременно переключающихся транзисторов, что увеличивает потребление энергии по сравнению со статической[6];
- если частота тактового сигнала слишком низкая, выходной сигнал будет быстро падать и схема станет неработоспособна.
Пример
правитьВ качестве примера рассмотрим реализацию элемента «И‑НЕ» в статической и динамической логиках.
Реализация элемента «И‑НЕ» в статической логике КМОП.
Приведённая схема реализует логическую функцию «И-НЕ»:
- или
Если на обоих входах A и B будет высокий уровень напряжения, выход Out соединится с общей шиной Vss и на нём будет низкий уровень напряжения.
Если на одном из входов A и B будет низкий уровень напряжения, выход Out будет соединён с шиной источника питания Vdd и будет иметь высокий уровень напряжения.
Важно, что в любой момент времени выход соединён либо с источником питания Vdd и имеет высокий уровень напряжения, либо с общей шиной Vss и имеет низкий уровень напряжения.
Рассмотрим реализацию элемента «И‑НЕ» в динамической логике.
Во время фазы предварительной зарядки:
- на выход подаётся высокий уровень напряжения, независимо от состояния входов A и B;
- конденсатор, представляющий собой ёмкость нагрузки данного логического элемента, заряжается;
- на выходе X не может возникнуть низкий уровень напряжения, поскольку транзистор, соединённый с общей шиной, закрыт.
Во время фазы оценки:
- сигнал Clock имеет высокий уровень напряжения;
- если на обоих входах A и B высокий уровень напряжения, выход X соединится с общей шиной и на нём будет низкий уровень напряжения;
- в противном случае, на выходе X будет высокий уровень напряжения за счёт энергии, запасённой в ёмкости нагрузки;
- как только конденсатор разрядится, его нельзя будет зарядить снова до следующей фазы предварительной зарядки. Таким образом, входы логического элемента могут в фазе оценки измениться не более одного раза.
См. также
правитьПримечания
править- ↑ Bruce Jacob, Spencer Ng, David Wang. Memory systems: cache, DRAM, disk. — Morgan Kaufmann, 2007. — ISBN 978-0-12-379751-3.
- ↑ 1 2 3 Andrew Marshall, Sreedhar Natarajan. SOI design: analog, memory and digital techniques. — Springer, 2002. — ISBN 978-0-7923-7640-8.
- ↑ AnandTech — Understanding the Cell Microprocessor . Дата обращения: 24 сентября 2012. Архивировано 19 сентября 2012 года.
- ↑ AMSAT-DL: «No RISC, No Fun!» Архивная копия от 13 апреля 2013 на Wayback Machine by Peter Gülzow
- ↑ Жан М. Рабаи, Ананта Чандракасан, Боривож Николич. Цифровые интегральные схемы. Методология проектирования = Digital Integrated Circuits. — 2-е изд. — М.: Вильямс, 2007. — 912 с. — ISBN 0-13-090996-3.
- ↑ 1 2 AnandTech — The Dark Knight: Intel’s Core i7 . Дата обращения: 24 сентября 2012. Архивировано 4 июня 2009 года.