بخشی از مقاله
سلول حافظه ایستاي (SRAM) زیرآستانه هشت ترانزیستوري
چکیده: سلول حافظه SRAM شش ترانزیستوري معمولی در ولتاژهاي کم قابلیت نوشتن مناسبی ندارد و نیز دچار خطاهاي خواندن می شود. در این مقاله با ارائه یک طرح هشت ترانزیستوري براي سلول حافظه، علاوه بر بهبود قابلیت نوشتن، میزان خطاي خواندن نیز به شدت کاهش یافته است. بدین ترتیب سلول ارائهشده توانایی کارکردن در ولتاژهاي زیرآستانه در حد 275 میلیولت را دارد، در حالی که سلول حافظه شش ترانزیستوري معمولی فاقد این قابلیت است.
با طراحی سلول ارائهشده و سلول شش ترانزیستوري معمولی و نیز سه سلول دیگر از بین مقالات اخیر براي مقایسه در تکنولوژي 90 نانومتر صنعتی و انجام شبیهسازي با HSPICE ملاحظه شد که طرح مذکور در ولتاژ تغذیه 800 میلیولت، تأخیر خواندن و نوشتن را به ترتیب به میزان %50 و %47/5، نسبت به بهترین طرح از بین چهار طرح فوق کاهش داده است. همچنین میزان بهبود توان مصرفی یک عمل نوشتن در این ولتاژ، نسبت به بهترین طرح، %40 بوده است. از بین پنج طرح مقایسهشده، تنها طرح ارائهشده ما قابلیت کارکرد صحیح در ولتاژهاي زیرآستانه را دارد. در انتها با تهیه چینش طرح ارائهشده در تکنولوژي 180 نانومتر صنعتی و انجام شبیهسازي بعد از چینش، اثر اضافهشدن پارامترهاي پارازیتی در مدار چینش را مورد بررسی قرار دادهایم.
کلید واژه: چینش، حافظه، حافظه ایستاي تصادفی، کمتوان،
-1 مقدمه
1-1 طراحی در ناحیه زیرآستانه
در طراحی مدارها و سیستمهاي مجتمع تا مدتهاي زیادي فقط افزایش فرکانس کاري و سرعت مدار مهم بود و توان و انرژي مصرفی داراي اهمیت کمتري بودند [1] اما اخیًرا کاربردهایی مطرح شده است که در آنها انرژي و توان اولویت بیشتري پیدا کردهاند و حتی اهمیت آنها از سرعت مدار نیز بیشتر شده است. کاربردهایی مانند افزارههاي قابل کاشت در بدن انسان، کاربردهاي فضایی، استفاده از شبکههاي حسگر بیسیم با تعداد زیاد در ابعاد وسیع براي کاربردهاي کشاورزي و نظامی و ... راه را براي طراحی مدارها با انرژي و توان کم هموار کرده است .[2] در این کاربردها سرعت در اولویت اول قرار ندارد بلکه توان و انرژي داراي بیشترین اهمیت هستند. مثلاً براي افزارههایی که در درون قلب براي کنترل کارکرد صحیح قرار داده میشوند، کم انرژي بودن داراي اهمیت زیادي است [3] زیرا این افزارهها که با جراحی فیزیکی در داخل بدن قرار میگیرند قابلیت شارژشدن با فاصله زمانی کوتاه را ندارند. اگر قرار باشد این افزارهها مانند تلفنهاي همراه هر چند روز نیاز به شارژ باطري داشته باشند، باید هر چند روز بدن بیمار مورد جراحی قرار گیرد که عوارض ناگواري براي بیمار دارد و لذا قابل اجرا نیست. پس باید مدارهایی طراحی شوند که داراي توان و انرژي مصرفی کمی باشند تا بتوانند در مدت زمان طولانیتري بدون شارژ دوباره کار کنند. بدین ترتیب راه براي حوزه مدارها با انرژي و توان کم باز میشود.
حافظهها جزء جداییناپذیر تراشهها هستند و درصد بالایی از مساحت و توان مصرفی تراشهها را به خود اختصاص میدهند، بنابراین براي کاهش توان مصرفی کل، کاهش توان مصرفی حافظهها اهمیت زیادي دارد. با توجه به بستگی درجه دوم توان به ولتاژ تغذیه، یک روش کاهش توان مصرفی، کاهش ولتاژ تغذیه است .[4] با کاهش بیشتر ولتاژ تغذیه، به جایی میرسیم که ولتاژ تغذیه از ولتاژ آستانه ترانزیستور نیز کمتر میشود، اصطلاحاً در این حالت میگویند که در ناحیه زیرآستانه1 قرار گرفتهایم. متأسفانه طرحهاي مرسوم در ولتاژهاي کم و در ناحیه زیرآستانه به خوبی کار نمیکنند و مشکلات متعددي دارند. لذا نیاز فراوانی به مطالعه و تحقیق در زمینه حافظههاي کمتوان و ارائه طرحهایی که قابلیت کارکردن صحیح در این ناحیه را داشته باشند، وجود دارد.
2-1 حافظه هاي SRAM زیرآستانه
در تکنولوژيهاي عمیًقا زیرمیکرون2 حافظه هاي بزرگ مقدار زیادي توان را در حالت بیکاري به صورت توان نشتی تلف میکنند که ممکن است از توان کل هم بیشتر شود. کارکردن در ناحیه زیرآستانه براي کاهش نشت در حالت بیکاري براي سیستمهایی که با محدودیت مصرف انرژي مشخص میشوند، کاملاً ایده آل است .[1]
طراحی SRAMهاي با قابلیت اطمینان بالا در ناحیه زیرآستانه بسیار چالش برانگیز است و علت آن را میتوان در کاهش میزان حاشیه نویز و افزایش تغییرپذیري3 در این ناحیه دانست. طرح حافظه شش ترانزیستوري معمولی در ناحیه زیرآستانه عملکرد مناسبی ندارد زیرا علاوه بر آن که میزان حاشیه نویز ایستاي (SNM)4 کمی در این ناحیه دارد، قابلیت نوشتن آن ضعیف و میزان حاشیه احساس کردن ولتاژ از خطوط بیت آن ناچیز است .[5] علاوه بر آن به علت کاهش نسبت جریان روشن به خاموش، تعداد سلولهایی را که میتوان در یک ستون قرار داد، کم است و این مسأله باعث کاهش چگالی حافظه میشود. طرح هاي مختلف 7، 8، 9 و 10 ترانزیستوري براي حل مشکل کمبودن حاشیه نویز ارائه شدهاند که با جداکردن گرههاي داخلی سلول از خطوط بیت و یا به عبارتی دیگر با بافرکردن، میزان حاشیه نویز خواندن را تا حدود حاشیه نویز نگهداري1 افزایش دادهاند [6] تا .[9] مشکل قابلیت نوشتن کم در [6] با اختصاص ولتاژ تغذیه بزرگتر براي ترانزیستور دسترسی نوشتن، تا حدي حل شده ولی در عوض کارکردن و توزیع چند ولتاژ تغذیه روي تراشه مشکل تازهاي است که ایجاد گردیده است. بیشترین تعداد سلولی که در یک ستون آرایه حافظه قرار داده شده، 256 عدد براي SRAM در ولتاژ تغذیه 300 میلیولت و 1024 عدد در ولتاژ تغذیه زیر 200 میلیولت به ترتیب در [6] و [10] بوده است.
در این مقاله ساختاري براي سلول حافظه SRAM ارائه شده که داراي قدرت نوشتهشدن بالاتري نسبت به طرحهاي ارائهشده اخیر و نیز طرح شش ترانزیستوري معمولی است، به طوري که امکان نوشتن در سلول در ولتاژهاي تغذیه کوچکتر وجود دارد و همچنین زمان نوشتن و خواندن در این سلول نسبت به سایر طرحها بهبود پیدا کرده است. در این طرح با جداکردن مسیر نوشتن از مسیر خواندن در سلول حافظه، علاوه بر این که امکان کارکرد صحیح در ولتاژهاي پایین و زیرآستانه فراهم شده است، با وجود امکان اندازهگذاري مستقل ترانزیستورهاي دسترسی نوشتن و خواندن، خطاهاي نوشتن و خواندن نیز کاهش یافته است. همچنین براي نوشتن موفقتر، اندازه ترانزیستور دسترسی نوشتن بزرگتر انتخاب شده تا احتمال نوشتن موفق افزایش یابد و از طرف دیگر اندازه ترانزیستور دسترسی خواندن کاهش یافته تا خطاي خواندن کمتر شود.
ادامه مقاله به این صورت ارائه میشود. نحوه طراحی حافظه SRAM شش ترانزیستوري معمولی در بخش 2 آمده است. بخش 3 به معرفی و طرز کار سلول حافظه ارائهشده میپردازد و علت برتريهاي آن را نسبت به سایر طرحها بیان میکند. در بخش 4 به بیان نتایج شبیهسازي با HSPICE پیش از چینش پرداخته شده و طراحی سلول حافظه SRAM ارائهشده با استفاده از ترانزیستورهاي FinFET و مزایاي آن در بخش 5 آمده است. در بخش 6 چینش سلول حافظه ارائهشده در تکنولوژي 180 نانومتر صنعتی سیموس آورده شده و علاوه بر مقایسه مساحت آن با سلولهاي دیگر، شبیهسازيهاي بعد از چینش نیز آمده و با قبل از چینش مورد مقایسه قرار گرفته است. در انتها نیز نتیجهگیري ذکر شده است.
-2 طراحی حافظه SRAM شش ترانزیستوري معمولی
شکل 1 سلول حافظه SRAM شش ترانزیستوري معمولی را نشان میدهد. در این سلول ترانزیستورهاي M1/3 و M2/4 معکوسکنندههاي سلول را تشکیل میدهند که به صورت پشت به پشت براي برقراري فیدبک مثبت بسته شدهاند و از این فیدبک مثبت براي نگهداري داده استفاده میشود. به ترانزیستورهاي M1/2 ترانزیستورهاي درایور و به M3/4 ترانزیستورهاي بار میگویند. ترانزیستورهاي M5/6 که به ترانزیستورهاي دسترسی معروف هستند، براي عمل خواندن و نوشتن استفاده میشوند.
1-2 عمل خواندن
در عمل خواندن، خطوط بیت BLT/BLC به -1 منطقی پیش شارژ شده و با وصلکردن ترانزیستورهاي دسترسی، گرهی که در آن -0 منطقی ذخیره شده باشد، خط بیت طرف خودش را تخلیه میکند و در نهایت با تفاضلگرفتن از خطوط بیت، مقدار داده ذخیرهشده خوانده میشود. در حین عمل خواندن بین ترانزیستورهاي دسترسی و ترانزیستورهاي درایور، یک رقابت ایجاد میشود به طوري که ترانزیستور درایور سعی دارد تا خط بیت را دشارژ کرده و به 0 ببرد و ترانزیستور دسترسی سعی در بالابردن مقدار ولتاژ گره داخلی سلول دارد. اگر در این رقابت ترانزیستور دسترسی پیروز شود، خطا پیش میآید زیرا در حین عمل خواندن مقدار داده ذخیرهشده در سلول تغییر کرده ولی اگر ترانزیستور درایور پیروز شود، به درستی مقدار خط بیت مربوط دشارژ شده و مقدار ذخیرهشده در سلول نیز تغییر نمیکند. در شکل -2 الف خواندن موفق آورده شده به طوري که در پایان عمل خواندن، مقدار داده ذخیرهشده در سلول تغییر نکرده اما در شکل -2 ب مقدار داده ذخیرهشده در سلول به اشتباه عوض شده است.
براي این که احتمال پیروزشدن ترانزیستور درایور در حین عمل خواندن افزایش یابد، باید این ترانزیستور از ترانزیستور دسترسی قويتر باشد. بدین منظور اندازه ترانزیستور درایور را بزرگتر از ترانزیستور دسترسی میگیرند.
در [4] آمده که براي جلوگیري از خطاي خواندن، اندازه ترانزیستور درایور باید حداقل 1/2 برابر ترانزیستور دسترسی باشد.
2-2 عمل نوشتن
در عمل نوشتن، ابتدا مقدار داده ورودي را روي یک خط بیت و قرینهاش را روي خط بیت دیگر قرار میدهند، سپس با وصلکردن ترانزیستورهاي دسترسی، مقدار موجود روي خطوط بیت را در درون سلول مینویسند.عمل نوشتن در واقع نوشتن 0 در سلول است، به عبارت دیگر این 0 است که در سلول نوشته میشود نه .1 مقدار طرف دیگر پس از نوشتهشدن 0 و فلیپکردن سلول، به 1 میرود. پسندي و فخرائی: سلول حافظه ایستاي (SRAM) زیرآستانه هشت ترانزیستوري با قابلیتهاي بهبودیافته خواندن و نوشتن براي واضحتر شدن مطلب، سلول حافظه شکل 1 را در نظر بگیرید و فرض کنید که در گره qb مقدار 0 و در گره q مقدار 1 ذخیره شده باشد. براي نوشتن 1 در سلول (گره (qb باید مقدار BLC را 1 و BLT را 0 قرار دهیم. اکنون با اتصال ترانزیستورهاي دسترسی، ولتاژ گره qb کمکم بالا رفته و ولتاژ گره q به آرامی پایین میآید و با ادامه این روند ولتاژ روي دو سر ترانزیستور M5 کاهش مییابد، لذا این ترانزیستور رفتهرفته ضعیفتر میشود. در طرف دیگر، ولتاژ دو سر ترانزیستور M6 در این روند، رو به افزایش میگذارد و رفته رفته این ترانزیستور قويتر میشود. بدین ترتیب عمل تغییردادن مقدار داده سلول، بیشتر توسط ترانزیستور M6 انجام میشود که ترانزیستوري است که میخواهد 0 را در سلول بنویسد. پس در نهایت میتوان گفت که عمل نوشتن، در واقع نوشتن 0 (یا به عبارتی از بین بردن 1 ذخیرهشده) در یکی از سرهاست. با توجه به این که ترانزیستور PMOS مسئول نگهداري ولتاژ گره داخلی سلول در مقدار 1 میباشد، پس در نهایت میتوان گفت که عمل نوشتن در واقع یک رقابت بین یکی از ترانزیستورهاي دسترسی و یکی از ترانزیستورهاي بار از نوع PMOS است. بدین ترتیب براي این که عمل نوشتن موفقتري داشته باشیم، باید ترانزیستورهاي دسترسی از ترانزیستور بار قويتر باشند تا بتوانند در رقابت ایجادشده در حین عمل نوشتن پیروز شوند. مرجع [4] همچنین یک محدودیت براي نسبت اندازه ترانزیستورهاي بار به درایور به منظور عمل نوشتن موفق گذاشته است که باید این نسبت از 1/8 کمتر باشد. در نهایت براي اندازهگذاري ترانزیستورهاي سلول حافظه شش ترانزیستوري میتوان گفت باید اندازه ترانزیستورهاي درایور بزرگ، دسترسی متوسط و بار کوچک باشد. این مطلب مورد تأیید [12] نیز است.
-3 طرح هشت ترانزیستوري ارائهشده براي سلول حافظه
در ولتاژهاي کم در سلول حافظه شش ترانزیستوري معمولی، مشکل نوشتن موفق و خواندن بدون خطا وجود دارد. این مطلب ناشی از متناقضبودن اندازهگذاري ترانزیستورهاي دسترسی براي مطلوبشدن در عمل خواندن و نوشتن است. به عبارت دقیقتر براي این که عمل نوشتن با موفقیت انجام شود باید ترانزیستورهاي دسترسی قوي باشند. پس براي این که امکان نوشتن موفق در ولتاژهاي کم را براي این سلول فراهم کنیم باید اندازه ترانزیستورهاي دسترسی را بزرگ انتخاب کنیم. در طرف دیگر براي جلوگیري از خطاهاي خواندن باید اندازه ترانزیستورهاي دسترسی از اندازه ترانزیستورهاي درایور کوچکتر باشند و بدین ترتیب تناقض پیش میآید. در واقع در سلول شش ترانزیستوري معمولی، بهبود امکان نوشتهشدن به قیمت افزایش خطاي خواندن فراهم میشود و بالعکس. در اینجا طرحی ارائه شده که در آن نه تنها تناقض فوق از بین رفته و امکان نوشتهشدن موفق فراهم شده، بلکه احتمال خطاي خواندن نیز کاهش پیدا کرده است.
1-3 امکان نوشتن خوب در سلول ارائهشده
همان طور که بیان شد، سلول شش ترانزیستوري معمولی در ولتاژهاي پایین داراي قدرت نوشتهشدن مناسبی نیست، در واقع در ولتاژهاي کوچک، ترانزیستورهاي دسترسی در این سلول نمیتوانند حلقه فیدبک بین دو معکوسکننده سلول را شکسته و مقدار داده ورودي را در سلول بنویسند. لذا در این سلول در ولتاژهاي پایین، نوشتن با موفقیت انجام نمیشود و براي حل این مسأله در مقالات، راه حلهاي مختلفی ارائه شده است. یکی از این راه حلها استفاده از ولتاژ تغذیه بزرگتر براي کنترل گیت ترانزیستورهاي دسترسی در حین عمل نوشتن است .[6] این راه حل اگرچه مشکل عدم نوشتن را حل کرده است، اما عملاً فلسفه کاهش ولتاژ تغذیه را از بین برده و لذا از مزایاي آن مانند کاهش توان با کاهش ولتاژ تغذیه کاسته است. علاوه بر آن، چنین طرحهایی براي حالتهاي مختلف کاري خود از سطوح ولتاژ مختلفی استفاده میکنند که تولید و توزیع آنها باعث سربارهاي شدید توان و مساحت میشود. براي مثال در [13] که از چند سطح ولتاژ مختلف استفاده گردیده و با طرحهاي ارائهشده ادعا شده که به شدت توان حافظه SRAM کاهش یافته است، علاوه بر سربار مساحت، توان مصرفی تغییردهنده هاي سطوح1 ولتاژ مورد نیاز، سربار توانی بیش از توان کل حافظه اضافه کرده است .[13] در اینجا طرحی ارائه شده که به سطوح مختلف ولتاژ تغذیه نیازي ندارد و لذا سربار مساحتی و توانی ناشی از اضافهکردن تغییردهنده هاي سطح و نیز مشکلات توزیع آنها را ندارد. تنها دو ترانزیستور به سلول اضافه شده کل مدار با یک ولتاژ تغذیه کار میکند. شکل 3 سلول حافظه هشت ترانزیستوري ارائهشده را نشان میدهد. ایده استفادهشده در این طرح این است که در حین فرایند نوشتن، با تضعیف یکی از معکوسکنندهها، حلقه فیدبک را ضعیف کرده و لذا احتمال نوشتن ورودي در سلول افزایش مییابد. به منظور تضعیف حلقه فیدبک، دو ترانزیستور اضافهشده در سلول ارائهشده M7 و M8 در حین عمل نوشتن خاموش شده و لذا باعث کاهش سطح ولتاژ تغذیه و افزایش سطح ریل زمین معکوسکننده سمت چپ میشوند. این کار باعث تضعیف این معکوسکننده و در نتیجه تضعیف کل حلقه فیدبک در حین عمل نوشتن میشود و پس از پایان عمل نوشتن، وضعیت حلقه فیدبک به حالت عادي بازگردانده میشود. همچنین در این طرح ترانزیستورهاي دسترسی نوشتن خواندن جدا شدهاند. بدین صورت امکان اندازهگذاري مستقل این ترانزیستورها براي دستیابی به عمل نوشتن موفق از یک طرف و جلوگیري از خطاي خواندن در طرف دیگر فراهم شده است. بدین منظور اندازه ترانزیستور دسترسی خواندن M6 را کمترین اندازه گرفتهایم. براي انتخاب اندازه ترانزیستور دسترسی نوشتن M5، از مینیمم سایز شروع به افزایش میکنیم تا این که عمل نوشتن در حضور پدیده تغییرات فرایند ساخت با موفقیت صورت پذیرد. پس در انتخاب اندازه این ترانزیستور دو مطلب مهم بوده است، یکی این که به اندازهاي بزرگ باشد که عمل نوشتن با موفقیت صورت پذیرد و دیگري مساحت کل زیاد تحت تأثیر قرار نگیرد. در نهایت اندازه W/L این ترانزیستور 3 انتخاب شده است.