منطق پویا (الکترونیک دیجیتال)

مدار مجتمع U352D - شیفت رجیستر پویای ۶۴ بیتی با نرخ کلاک بین ۱۰ کیلوهرتز و ۱ مگاهرتز، تولید شده توسط VEB Funkwerk Erfurt در دسامبر ۱۹۸۱

در طراحی مدارهای مجتمع، منطق پویا (به انگلیسی: dynamic logic) یا منطق دینامیک (و گاهی منطق کلاک‌دار (به انگلیسی: clocked logic)) روشی برای طراحی در مدارهای منطقی ترکیبی است. این روش در مقایسه با منطق ایستا ((به انگلیسی: Static logic)) مطرح می‌شود، به‌ویژه در فناوری فلز-اکسید-نیمه‌رسانا (MOS).

با استفاده از ذخیره‌سازی موقت اطلاعات در ظرفیت‌های خازنی پراکنده و گیت، منطق پویا از منطق ایستا متمایز می‌شود.[۱] این منطق در دههٔ ۱۹۷۰ محبوب بود و در سال‌های اخیر بار دیگر در طراحی الکترونیک دیجیتال پرسرعت، به‌ویژه واحدهای پردازش مرکزی (CPU)، مورد توجه قرار گرفته است.[۲]

مدارهای پویا معمولاً سریع‌تر و کم‌حجم‌تر از مدارهای ایستا هستند، اما طراحی آن‌ها دشوارتر است. این منطق به‌طور میانگین نرخ انتقال ولتاژ بالاتری نسبت به منطق ایستا دارد،[۳] در حالی که بار خازنی گذرای آن کوچک‌تر است.[۴] ازاین‌رو مصرف توان منطق پویا بسته به شرایط و ملاحظات طراحی می‌تواند کمتر یا بیشتر از منطق ایستا باشد.

وقتی به یک خانواده منطقی خاص اشاره می‌شود، افزودن صفت «پویا» برای متمایز کردن روش طراحی کافی است؛ مانند سیماس پویا[۵] یا طراحی پویا بر پایهٔ SOI.[۳]

منطق پویا، علاوه‌بر استفاده از ذخیره‌سازی حالت پویا (ولتاژ روی خازن‌ها)، به‌دلیل استفاده از سیگنال ساعت در پیاده‌سازی منطق ترکیبی از منطق ایستا متمایز می‌شود. در حالی‌که در اغلب پیاده‌سازی‌های منطق ترکیبی نیازی به سیگنال ساعت وجود ندارد، در منطق پویا گذارهای منطقی به‌وسیلهٔ ساعت همگام‌سازی می‌شوند.

اصطلاحات «ایستا/پویا» که برای مدارهای ترکیبی به‌کار می‌روند، برگرفته از همان مفاهیمی هستند که برای رم ایستا و رم پویا استفاده می‌شوند. البته کاربرد آن‌ها در اینجا متفاوت است: در رم پویا، اطلاعات به‌صورت ولتاژ روی خازن ذخیره می‌شود که باید به‌طور دوره‌ای تازه‌سازی گردد.

منطق ایستا در برابر منطق پویا

بزرگ‌ترین تفاوت بین منطق ایستا و پویا این است که در منطق پویا سیگنال ساعت برای ارزیابی منطق ترکیبی به‌کار می‌رود. در بیشتر انواع طراحی منطقی که به آن‌ها منطق ایستا گفته می‌شود، همیشه سازوکاری برای کشیدن خروجی به سطح بالا یا پایین وجود دارد. در بسیاری از سبک‌های منطقی رایج، مانند تی‌تی‌ال و سیماس مرسوم، این اصل به این معناست که همواره یک مسیر DC با امپدانس کم بین خروجی و ولتاژ تغذیه یا زمین وجود دارد. استثناهایی مانند بافر سه‌حالته نیز وجود دارند، اما آن‌ها همچنان جزو منطق ایستا دسته‌بندی می‌شوند.

در مقابل، در منطق پویا همیشه سازوکاری برای کشیدن خروجی به سطح بالا یا پایین وجود ندارد. در نسخهٔ رایج این روش، خروجی تنها در بخش‌هایی از چرخهٔ ساعت به سطح بالا یا پایین رانده می‌شود. در بازه‌هایی که خروجی فعالانه راه‌اندازی نمی‌شود، ظرفیت‌های خازنی پراکنده باعث حفظ سطح ولتاژ در محدودهٔ قابل قبول می‌شوند.

منطق ایستا کمینهٔ نرخ ساعت ندارد؛ ساعت (کلاک) می‌تواند به‌طور نامحدود متوقف شود. این ویژگی سه مزیت دارد:

  • امکان توقف موقت سامانه در هر زمان، که اشکال‌زدایی و آزمایش را آسان‌تر می‌کند (مانند تک‌گام‌زنی).
  • امکان راه‌اندازی با نرخ ساعت بسیار پایین، که برای الکترونیک کم‌مصرف مفید است.
  • توانایی ازسرگیری فوری سامانه از همان نقطهٔ توقف، بدون نیاز به بوت مجدد.[۶]

در حالی‌که بسیاری از پردازنده‌های محبوب از منطق پویا استفاده می‌کنند، تنها هسته‌های ایستا به دلیل سخت‌کاری تابشی بیشتر در سامانه‌های فضایی (مانند ماهواره‌ها) قابل استفاده‌اند.[۷]

زمانی‌که منطق پویا به‌درستی طراحی شود، می‌تواند دو برابر سریع‌تر از منطق ایستا عمل کند. این منطق معمولاً تنها از ترانزیستورهای NMOS سریع استفاده می‌کند که باعث بهینه‌سازی اندازهٔ ترانزیستور می‌شود. در مقابل، منطق ایستا کندتر است؛ زیرا بار خازنی بیشتری دارد، ولتاژ آستانه بالاتری نیاز دارد و از ترانزیستورهای کندتر PMOS استفاده می‌کند.

هرچند کار با منطق پویا دشوارتر است، اما در بسیاری از سامانه‌های پرسرعت (بیش از ۲ گیگاهرتز) تنها گزینهٔ عملی به‌شمار می‌رود. برخی تولیدکنندگان، مانند اینتل، تراشه‌هایی را بر پایهٔ منطق کاملاً ایستا طراحی کرده‌اند تا مصرف توان را کاهش دهند.[۸]

مثال منطق ایستا

یک پیاده‌سازی ساده از یک گیت NAND ایستا با سیماس در شکل زیر نشان داده شده است:

اگر A و B هر دو ۱ باشند، خروجی ۰ می‌شود. اگر A یا B برابر ۰ باشد، خروجی ۱ خواهد بود. در هر حالت، خروجی همیشه به‌طور فعال به سطحی مشخص کشیده می‌شود.

مثال منطق پویا

اکنون پیاده‌سازی پویا همان تابع NAND:

این مدار به دو فاز نیاز دارد:

  • در فاز نخست (کلاک = ۰)، مرحلهٔ «پیش‌شارژ»، خروجی بدون قید و شرط به سطح بالا کشیده می‌شود.
  • در فاز دوم (کلاک = ۱)، مرحلهٔ «ارزیابی»، اگر A و B هر دو ۱ باشند، خروجی به سطح پایین رانده می‌شود؛ در غیر این صورت خروجی در سطح بالا باقی می‌ماند.

ویژگی منطق پویا این است که خروجی تنها در بخشی از چرخهٔ ساعت معتبر است و در صورت کاهش بیش‌ازحد سرعت ساعت، افت ولتاژ روی خازن‌ها باعث از دست رفتن اطلاعات می‌شود.

یکی از سبک‌های محبوب در این دسته، منطق دومینویی است.

مقایسه منطق پویا و منطق استاتیک (Static Logic) تفاوت اصلی بین منطق پویا و منطق استاتیک (مانند CMOS استاتیک) در نحوه تعیین سطح ولتاژ خروجی و ساختار ترانزیستوری آن‌ها نهفته است. درک این تفاوت‌ها برای انتخاب روش طراحی مناسب در کاربردهای مختلف ضروری است.

ویژگی منطق استاتیک (Static CMOS) منطق پویا (Dynamic Logic) ساختار شامل یک شبکه Pull-Up (معمولاً PMOS) و یک شبکه Pull-Down (معمولاً NMOS) است که همیشه یکی از آن‌ها فعال است. معمولاً فقط از یک شبکه منطقی (Pull-Down با NMOS) به همراه ترانزیستورهای پیش‌شارژ و ارزیابی استفاده می‌کند. تعداد ترانزیستورها برای یک گیت N ورودی، به 2N ترانزیستور نیاز دارد. برای یک گیت N ورودی، به N+2 ترانزیستور نیاز دارد. این تعداد معمولاً کمتر از منطق استاتیک است. مصرف توان فقط در هنگام تغییر حالت ورودی‌ها (توان دینامیکی) مصرف می‌کند. توان نشتی (استاتیک) بسیار پایینی دارد. به دلیل فعالیت مداوم ساعت و شارژ/دشارژ خازن‌ها، توان دینامیکی بالاتری دارد. همچنین مستعد مصرف توان استاتیک به دلیل نشت بار است. سرعت کندتر است، زیرا خروجی باید از طریق شبکه PMOS که تحرک‌پذیری کمتری دارد، شارژ شود. سریع‌تر است، زیرا ظرفیت خازنی ورودی کمتر است (به دلیل تعداد کمتر ترانزیستورها) و تنها از شبکه NMOS سریع برای ارزیابی استفاده می‌شود. نویز مارجین (Noise Margin) دارای نویز مارجین بالا و پایداری عالی است. به نویز حساس‌تر است و نویز مارجین پایین‌تری دارد، به ویژه در فاز ارزیابی. سیگنال ساعت نیازی به سیگنال ساعت برای عملکرد منطقی خود ندارد (مگر در فلیپ-فلاپ‌ها). عملکرد آن کاملاً به سیگنال ساعت برای فازهای پیش‌شارژ و ارزیابی وابسته است. در نتیجه، طراحی با منطق پویا معمولاً منجر به مدارهای سریع‌تر و فشرده‌تر می‌شود، اما پیچیدگی طراحی و حساسیت به نویز را افزایش می‌دهد.

منطق ایستا درمقابل منطق پویا

بزرگ‌ترین تفاوت بین منطق ایستا و پویا این است که در منطق پویا، از سیگنال ساعت برای ارزیابی منطق ترکیبی استفاده می‌شود. در اکثر انواع طراحی منطقی که به آن منطق ایستا می‌گویند، همیشه سازوکاری برای راه‌اندازی خروجی بالا یا پایین وجود دارد. در بسیاری از سبک‌های منطقی رایج، مانند تی‌تی‌ال و سیماس مرسوم، این اصل را می‌توان به‌صورت بیانیه‌ای بازنویسی کرد که همیشه یک مسیر DC با امپدانس کم بین خروجی و ولتاژ تغذیه یا زمین وجود دارد. به عنوان نکتهٔ جانبی، البته در این تعریف، در مورد خروجی‌های امپدانس بالا، مانند بافر سه‌حالته، استثناء وجود دارد. با این حال، حتی در این موارد، مدار برای استفاده در یک سامانه بزرگتر در نظر گرفته شده است که در آن سازوکاری خروجی را راه‌اندازی می‌کند، و آن‌ها به‌عنوان متمایز از منطق ایستا واجد شرایط نیستند.

در مقابل، در منطق پویا، همیشه سازوکاری وجود ندارد که خروجی را بالا یا پایین کند. در رایج‌ترین نسخهٔ این مفهوم، خروجی در بخش‌های مشخصی از چرخهٔ ساعت بالا یا پایین می‌رود. در طول بازه‌های زمانی که خروجی به‌طور فعال راه‌اندازی نمی‌شود، ظرفیت‌خازنی پراکنده باعث می‌شود تا سطحی را در محدوده تحمل سطح راه‌اندازی حفظ کند.

منطق ایستا، کمینهٔ نرخ ساعت ندارد_ ساعت (کِلاک) می‌تواند به‌طور نامحدود متوقف شود. اگرچه ممکن است به نظر برسد که انجام هیچ کاری برای مدت طولانی مفید نیست، اما به سه مزیت منجر می‌شود:

  • امکان توقف موقت یک سیستم در هر زمان، اشکال‌زدایی و آزمایش را بسیار آسان‌تر می‌کند و فنون‌هایی مانند تک گام‌زنی را فعال می‌کند.
  • توانایی راه‌اندازی یک سیستم با نرخ ساعت بسیار پایین به وسایل الکترونیکی کم‌مصرف اجازه می‌دهد تا مدت زمان بیشتری را روی یک باتری معین کار کنند.
  • یک سیستم کاملاً ایستا می‌تواند فوراً، دقیقاً از همان جایی که متوقف شده است، از سر گرفته شود. شخص مجبور نیست منتظر راه‌اندازی یا از سرگیری سیستم باشد.[۹]

به‌طور خاص، اگرچه بسیاری از سی‌پی‌یوهای محبوب از منطق پویا استفاده می‌کنند، فقط هسته‌های ایستا_ سی‌پی‌یوهایی که با فناوری کاملاً ثابت طراحی شده‌اند_ به‌دلیل سخت‌کاری تابشی بالاتر در ماهواره‌های فضایی قابل استفاده هستند.[۱۰]

زمانی که منطق پویا به درستی طراحی شود، می‌تواند سرعتی دو برابر سریع‌تر از سرعت منطق ایستا را دارا باشد. فقط از ترانزیستورهای سریع‌تر اِنماس استفاده می‌کند که بهینه‌سازی اندازهٔ ترانزیستور را بهبود می‌بخشد. منطق ایستا کندتر است؛ زیرا دو برابر بار خازنی دارد، آستانه‌های بالاتری دارد و از ترانزیستورهای کند PMOS برای این منطق استفاده می‌کند. کار با منطق پویا ممکن است سخت‌تر باشد، اما ممکن است تنها انتخاب زمانی باشد که سرعت پردازش افزایش یافته باشد. این روزها اکثر وسایل الکترونیکی که با بیش از ۲ گیگاهرتز کار می‌کنند نیاز به منطق پویا دارند، اگرچه برخی از تولیدکنندگان مانند اینتل تراشه‌هایی را با استفاده از منطق کاملاً ایستا برای کاهش مصرف انرژی طراحی کرده‌اند.[۸] "توجه داشته باشید که کاهش مصرف برق نه تنها زمان کار با منابع انرژی محدود مانند باتری‌ها یا آرایه‌های خورشیدی (مانند فضاپیماها) را افزایش می‌دهد، بلکه الزامات طراحی حرارتی را نیز کاهش می‌دهد. این امر اندازه گرماگیرهای مورد نیاز، فن‌ها و غیره را به حداقل می‌رساند و در نتیجه، وزن و هزینه سیستم را کاهش می‌دهد.

مثال منطق ایستا

به عنوان مثال، اجرای منطق ایستا یک گیت NAND با سیماس را در نظر بگیرید:

این مدار تابع منطقی را پیاده‌سازی می‌کند

اگر A و B هر دو بالا باشند، خروجی پایین کشیده می‌شود. اگر A یا B پایین باشد، خروجی بالا کشیده می‌شود. در همه حال، خروجی یا پایین یا بالا کشیده می‌شود.

مثال منطق پویا

اکنون یک پیاده‌سازی منطق پویا از همان تابع منطقی را در نظر بگیرید:

مدار منطق پویا به دو فاز نیاز دارد. فاز اول، زمانی که کلاک پایین ("۰") است، مرحله آغاز یا مرحله پیش‌شارژ و فاز دوم، زمانی که کلاک بالا ("۱") است، مرحله ارزیابی نامیده می‌شود. در مرحله آغاز، خروجی بدون قید و شرط بالا می‌رود (بدون توجه به مقادیر ورودی‌های A و B). خازنی که نشان دهنده ظرفیت بار این دروازه است، شارژ می‌شود. از آنجایی که ترانزیستور پایین خاموش است، خروجی برای راه‌اندازی به پایین در این فاز غیرممکن است.

در مرحله ارزیابی، ساعت بالا است. اگر A و B نیز بالا باشند، خروجی پایین کشیده می‌شود. در غیر این صورت، خروجی بالا می‌ماند (به دلیل ظرفیت بار).

منطق پویا چند مشکل بالقوه دارد که منطق ایستا ندارد. برای مثال، اگر سرعت ساعت خیلی پایین باشد، خروجی خیلی سریع اُفت می‌کند که قابل استفاده نیست. همچنین، خروجی فقط برای بخشی از هر چرخه ساعت معتبر است، بنابراین افزاره متصل به آن باید زمانی که معتبر است، آن را به صورت همزمان نمونه‌برداری کند.

همچنین، زمانی که A و B هر دو بالا باشند، به طوری که خروجی پایین باشد، مدار برای هر سیکل کلاک یک بار خازن از Vdd به زمین پمپ می‌کند، ابتدا خازن را در هر سیکل ساعت شارژ و سپس تخلیه می‌کند. این باعث می‌شود مدار (با خروجی آن به یک امپدانس زیاد متصل شود) کارایی کمتری نسبت به نسخه ایستا (که از نظر تئوری نباید هیچ جریانی را به جز از خروجی عبور دهد) کمتر می‌کند و هنگامی که ورودی‌های A و B ثابت و هر دو بالا هستند، گیت پویا NAND تا زمانی که به درستی کار کند، از توان متناسب با نرخ ساعت استفاده می‌کند. با پایین نگه‌داشتن ظرفیت‌خازنی بار می‌توان اتلاف توان را به حداقل رساند. این به نوبه خود، حداکثر زمان چرخه را کاهش می‌دهد و به حداقل فرکانس پالس ساعت بالاتر نیاز دارد. فرکانس بالاتر پس از آن مصرف برق را با رابطه ذکر شده افزایش می‌دهد؛ بنابراین، کاهش مصرف برق بیکاری (زمانی که هر دو ورودی بالا هستند) به زیر یک حد معین ناشی از تعادل بین سرعت پالس ساعت و ظرفیت‌خازنی بار غیرممکن است.

یک پیاده‌سازی محبوب، منطق دومینو است.

امروزه اقبال به استفاده از منطق ایستا بیشتر است.

جستارهای وابسته

منابع

  1. Lars Wanhammar (1999). DSP integrated circuits. Academic Press. p. 37. ISBN 978-0-12-734530-7.
  2. Rabaey, Jan M. (2002). Digital Integrated Circuits: A Design Perspective (به انگلیسی) (2nd ed.). Prentice Hall.
  3. 1 2 Andrew Marshall; Sreedhar Natarajan (2002). SOI design: analog, memory and digital techniques. Springer. p. 125. ISBN 978-0-7923-7640-8.
  4. A. Albert Raj, T. Latha (21 October 2008). VLSI Design. PHI Learning Pvt. Ltd. p. 167. ISBN 978-81-203-3431-1.
  5. Bruce Jacob; Spencer Ng; David Wang (2007). Memory systems: cache, DRAM, disk. Morgan Kaufmann. p. 270. ISBN 978-0-12-379751-3.
  6. Richard Murray. "PocketBook II hardware".
  7. Gülzow, Peter. "No RISC, No Fun!". AMSAT-DL. Archived from the original on 13 April 2013. Retrieved 15 September 2021.
  8. 1 2 "The Dark Knight: Intel's Core i7".
  9. Richard Murray. "PocketBook II hardware".
  10. Gülzow, Peter. "No RISC, No Fun!". AMSAT-DL. Archived from the original on 13 April 2013. Retrieved 15 September 2021.

مراجع عمومی

پیوند به بیرون