В 80-х годах очень активно использовалась динамическая CMOS логика. Например элемент памяти можно было реализовать на 3х транзисторах: Динамический CMOS
![]()
Методика работы такая: когда CLK1 активен устанавливается состояние, затем CLK1 закрывается. Тем не менее у вентиля есть паразитная емкость и пока заряд не стечет а у транзисторов высокий импеданс схема будет работать.
![]()
Время стока заряда зависит от температуры и проектной нормы. Для 1.5mkm это в интервале от 1 (при очень малой температуре) до 10^(-6) секунд. 386, большая часть 486 процессоров были динамическими (как следствие могли работать только в ограниченном диапазоне тактовых частот). С уменьшением проектной нормы заряд стал уходить гораздо быстрее, и от динамических структур стали отказыватся, хотя в свое время они позволяли экономить много места на кристале. Общий вид динамической структуры:
![]()
Динамический NAND:
![]()
Динамический NOR:
![]()
Для увеличения скорости применяются более сложные варианты логики на базе CMOS:
(Cascade Voltage Switch Logic) Идея: выдает две функции прямую и обратную - быстро переключается между состояниями. Можно сказать что разорвали повышающий и понижающий каскад и сделали между ними связь - паразитных емкостей меньше. Плюс к этому для выполнения функций с большим числом входов например NAND4 работает быстрее чем CMOS потому что путь сигнала меньше. Cтатический CVSL: CVSL
![]()
Динамический CVSL: (при С = 0 заряжается, при С = 1 вычисляет).
![]()
DCVSL
![]()
XOR/XNOR:
![]()
AND: Логика на переключателях
![]()
AND/NAND:
![]()
![]()
OR/NOR:
![]()
XOR/XNOR:
![]()
Динамическая логика имеет по крайней мере один pre-charge транзистор. Работает в две фазы - pre-charge и evaluation. Динамическая логика
![]()
Логика Domino. В начале транзистор на питание открыт (CLK#), происходит презарядка. В зоне перед инвертером накапливается заряд. После этого транзистор закрывается и заряд либо остается либо стекает Через NMOS блок (транзистор на землю открыт (CLK)). При этом сигналы на NMOS блок должны быть поданы то сигнала CLK. Получается - места на кристалле занимает меньше чем CMOS, но чуть больше чем NMOS, при этом имеет энергопотребление типа CMOS. Domino
![]()
![]()
Такие структуры следуют одна за другой (домино). Последний каскад содержит инвертор. AND на Domino логике:
![]()
OR на Domino логике:
![]()
NP-CMOS: NP-Домино
![]()
Pseudo-NMOS
![]()
NAND:
![]()
NOR:
![]()
Два каскада - повышающий и понижающий. А выход каскада зависит от сигнала CLOCK. Опять таки снижается энергопотребление - т.к. нет переходных процессов. C2MOS
![]()
TSPC (Time Single Phase Logic) TSPC - дальнейшее развитие NORA (NO RAce logic) [которая развитие N-P домино]. TSPC
![]()
AND на TSPC:
![]()
OR на TSPC:
![]()
Сейчас динамическую CMOS логику перестали использовать в микропроцессорах. Почему? Динамическая логика подразумевает что устройство должно работать в конкретном и довольно-узком диапазоне частот синхронизации обусловленным возможностью накопления и рассасывания динамического заряда. Понятно что в мобильных приложениях это просто неприемлемо, т.к. одна из основных задач это сохранение энергии - а CMOS выделяет энергию в основном при переключениях. То же самое касается и спящих режимов и режимов с пониженым энергопотреблением - в этом случае устройство снижает частоту, а динамический CMOS просто не может это делать. Почему не используется?