بنام خداوند بخشنده و مهربان
با سلام
ادامه مبحث حافظه
RAM -قسمت پایانی
RANDOM ACCESS MEMORY حافظه تصادفی یا حافظه خواندن و نوشتن با لغب شناخته شده رم !
همانجور که در قسمت قبل گفتیم رم ها به دو دسته
STATIC (
استاتیک به معنی ایستا یا همون پایدار و ثابت خودمان!) و
DYNAMIC (
داینامیک،به معنی پویا، متحرک )
ابتدا به سراغ رم های STATIC میروم
رم های ایستا یا
STATIC با دیگر رم ها تفاوت دارد! و تفاوت اصلی انها،در نحویه ساختن رم می باشد . این نوع رم ها از مدار
فلیپ فلاپ ساخته شده اند و برای ساخت یک بیت ان از
6 ترانزیستور استفاده شده (
که البته تازگی ها با تکنیک های جدید به 4 ترانزیستور کاهش پیدا کرده است)
تصویری از 1 بیت حافظه ایستا.
همانجور که در تصویر بالا می ببینید،از 6 عدد ترانزیستور برای ساخت 1 بیت حافظه ایستا رم،استفاده شده(که در واقع همان مدار فلیپ فلاپ می باشد)
که البته این تعداد ترانزیستور برای ساخت رم زیاد می باشد! (از نظر کارشناسان)
رم ایستا قابلیت جالبی دارد،از جمله اینکه،نیازی به بازسازی ندارد. به عنوان مثال فرض کنید،ما یک دیتا 8 بیتی را به رم داده ایم، رم این دیتا را پیش خود نگه میدارد،تا زمانی که ما دیتا جدید رو از دوباره به او بدهیم .
برای همین است که به اینجور رم ها،رم ها ایستای یا پایدار یا نگه دار گفته میشود(البته تا زمانی که برق در سیستم وجود داشته باشد) کلی
Sram ها به خاطره استفاده از معماری ترانزیستوری (
فلیپ فلاپ) هزینه ان گران تر می باشد.اما سرعت ها ان نسبت به دیگر مدل ها بالاتر می باشد!
لازم به ذکر است AVR و میکرکنترولر ها مورد استفاده ما،نیز از این نوع حافظه برخوردار می باشند(
که در پایین مقاله به این مسئله می پردازیم) *نکته پایانی و مهم دیگر این است که ، کش سی پی یو ،کامپیوتر ما! همین معماری
Sram می باشد !(
حال می توانید بهتر سرعت Sram را درک کنید )
اما حافظه Dynamic ram دینامیک رم ، از لحاظ معماری و عملکردی و هزینه تمام شده با حافظه ایستا تفاوت دارد . پویا یا دینامیک رم، برای نگه داری اطلاعات
،از یک ترانزیستور و یک خازن استفاده می کند! (
در حالی که در ایستا نیاز به 6 عدد ترانزیستور بود) ، اما این هم
خوب است و
هم بد! خوب است،چون هزینه تمام شده و مصرف برق را پایین تر می اورد.بدست !
چون ما باید دائم اطلاعات داینامیک را ریفرش یا همان باسازی کنیم!
تصویری از یک بیت حافظه dynamic رم
همانجور که می ببینید،فقط یک خازن و یک ترانزیستور برای نگه داری 1 بیت اطلاعات استفاد شده
خازن رم زود تخلیه میشود!برای همین ما باید دائم و پیوسته،اطلاعات را باسازی کنیم ،این در حالی است که در حافظه ایستا،نیازی به باسازی ندارد! کافیست فقط یک بار اطلاعات را برای ان بفرستیم و ان حافظه اطلاعات خود را تا زمانی که اطلاعات جدید فرستاده شود نگه می دارد(
*البته به شرط انکه برق مدار قطع نشود) به ذکر است،
زمانی که خازن های رم پویا یا همان dynamic در حال شارژ شدن می باشد،نمی توان به اطلاعات ان دسترسی داشت .
و همین امر باعث میشود که سرعت کار کردن با این حافظه، نسبت به رغیب خود (یعنی حافظه ایستا) پایین تر باشد! *نکته دیگر این است که حافظه پویا، به دلیل استفاده از یک ترانزیستور و خازن ، حجم بسیاری کمی می گیرد،برای همین می توان با هزینه کمتر و حجم ذخیره سازی (یعنی بیت ها بیشتر در یک مساحت کوچیک تر) تولید کرد .
تصویری 16 بیت حافظه Dram ،که به صورت ماتریکسی بهم دیگر وصل شده اند
لازم به ذکر است،نسل رم های کامپیوتر،تا به امروز از همین مدل Dynamic Random Access memory می باشد!(که البته با کمی تغییرات برای کارکرد بهتر با کامپیوتر)
لازم به ذکر است،که میکروکنترولرها یا جاهایی که از رم دینامیک استفاده میشود، معمولا از مقداری حافظه Sram (برای واسطه گری) استفاده میشود،به عنوان مثال،خود کامپیوتر ما! از کش سی پی یو برای واسطه گری استفاده میشود .(همانجور که در بالا اشاره کردیم،کش از معماری Sram استفاده می کند)
دلیل اصلی استفاده از Sram در کنار Dramسرعت دسترسی پایین Dram می باشد. که پروسس پردازش سی پی یو را پایین می اورد. که به کمک ملحق کردن این دو در کنار هم،می توان سرعت بهتر در کنار هزینه به صرفه تری داشت .
*در یکی از کتاب کامپیوتری این جناب ، یک مقایسه جالب ذکر شده است . گفته شده سرعت دسترسی Sram (کش سطح 1 یا همان L1 ) کامپیوتر به سی پی یو ، بین 2 تا 8 نانو ثانیه می باشد،این در حالیست که سرعت دسترسی Dram به سی پی یو حدود 10 تا 60 نانو ثانیه می باشد!
خوب حالا که با حافظه Sram و Dram اشنا شدیم بهتر است باهم دیگر مقدار حافظه Sram میکروکنترولر Atmega32 را بررسی کنیم:
میکروکنترولر Atmega32 حدود
2 کیلوبایت (یا
2048 بایت) حافظه
Static Ram دارد .که خوب برای کارهای ما،معمولا خوب و ایده ال است.
محل قرار گیری SRAM در میکروکنترولر
----
اما حافظه Sram به چندین قسمت تقسیم میشود. مقداری از حافظه Sram برای همه جور کارها استفاده میشود (که معمولا برای انتقال و دریافت متغییرها استفاده میشود) که معمولا از R0 تا R31 نامگذاری میشوند . از حافظه برای ارتباطت خود میکروکنترولر استفاده میشود. و باقی حافظه نیز در اختیار ما می باشد تا به کمک ان کارهای خودمان را انجام دهیم (آن 2 کیلو بایت قید شده،در واقع میزان حافظه Sram مورد استفاده ما می باشد ) در اینده با Sram در حین انجام کارها،بیشتر اشنا خواهید شد.
پایان مبحث رم و حافظه ها. باتشکر.