حافظه (RAM)Random Access Memory شناخته ترین نوع حافظه در دنیای کامپیوتر است . روش دستیابی به این نوع از حافظه ها تصادفی است . چون می توان به هر سلول حافظه مستقیما" دستیابی پیدا کرد . در مقابل حافظه های RAM ، حافظه های(SAM(Serial Access Memory وجود دارند. حافظه های SAM اطلاعات را در مجموعه ای از سلول های حافظه ذخیره و صرفا" امکان دستیابی به آنها بصورت ترتیبی وجود خواهد داشت. ( نظیر نوار کاست ) در صورتیکه داده مورد نظر در محل جاری نباشد هر یک از سلول های حافظه به ترتیب بررسی شده تا داده مورد نظر پیدا گردد. حافظه های SAM در مواردیکه پردازش داده ها الزاما" بصورت ترتیبی خواهد بود مفید می باشند ( نظیر حافظه موجود بر روی کارت های گرافیک ). داده های ذخیره شده در حافظه RAM با هر اولویت دلخواه قابل دستیابی خواهند بود.
● مبانی حافظه های RAM
حافظه RAM ، یک تراشه مدار مجتمع (IC) بوده که از میلیون ها ترانزیستور و خازن تشکیل شده است .در اغلب حافظه ها با استفاده و بکارگیری یک خازن و یک ترانزیستور می توان یک سلول را ایجاد کرد. سلول فوق قادر به نگهداری یک بیت داده خواهد بود. خازن اطلاعات مربوط به بیت را که یک و یا صفر است ، در خود نگهداری خواهد کرد.عملکرد ترانزیستور مشابه یک سوییچ بوده که امکان کنترل مدارات موجود بر روی تراشه حافظه را بمنظور خواندن مقدار ذخیره شده در خازن و یا تغییر وضعیت مربوط به آن ، فراهم می نماید.خازن مشابه یک ظرف ( سطل) بوده که قادر به نگهداری الکترون ها است . بمنظور ذخیره سازی مقدار" یک" در حافظه، ظرف فوق می بایست از الکترونها پر گردد. برای ذخیره سازی مقدار صفر، می بایست ظرف فوق خالی گردد.مسئله مهم در رابطه با خازن، نشت اطلاعات است ( وجود سوراخ در ظرف ) بدین ترتیب پس از گذشت چندین میلی ثانیه یک ظرف مملو از الکترون تخلیه می گردد. بنابراین بمنظور اینکه حافظه بصورت پویا اطلاعات خود را نگهداری نماید ، می بایست پردازنده و یا " کنترل کننده حافظه " قبل از تخلیه شدن خازن، مکلف به شارژ مجدد آن بمنظور نگهداری مقدار "یک" باشند.بدین منظور کنترل کننده حافظه اطلاعات حافظه را خوانده و مجددا" اطلاعات را بازنویسی می نماید.عملیات فوق (Refresh)، هزاران مرتبه در یک ثانیه تکرار خواهد شد.علت نامگذاری DRAM بدین دلیل است که این نوع حافظه ها مجبور به بازخوانی اطلاعات بصورت پویا خواهند بود. فرآیند تکراری " بازخوانی / بازنویسی اطلاعات" در این نوع حافظه ها باعث می شود که زمان تلف و سرعت حافظه کند گردد.
سلول های حافظه بر روی یک تراشه سیلیکون و بصورت آرائه ای مشتمل از ستون ها ( خطوط بیت ) و سطرها ( خطوط کلمات) تشکیل می گردند. نقطه تلاقی یک سطر و ستون بیانگر آدرس سلول حافظه است .
حافظه های DRAM با ارسال یک شارژ به ستون مورد نظر باعث فعال شدن ترانزیستور در هر بیت ستون، خواهند شد.در زمان نوشتن خطوط سطر شامل وضعیتی خواهند شد که خازن می بایست به آن وضغیت تبدیل گردد. در زمان خواندن Sense amplifier ، سطح شارژ موجود در خازن را اندازه گیری می نماید. در صورتیکه سطح فوق بیش از پنجاه درصد باشد مقدار "یک" خوانده شده و در غیراینصورت مقدار "صفر" خوانده خواهد شد. مدت زمان انجام عملیات فوق بسیار کوتاه بوده و بر حسب نانوثانیه ( یک میلیاردم ثانیه ) اندازه گیری می گردد. تراشه حافظه ای که دارای سرعت ۷۰ نانوثانیه است ، ۷۰ نانو ثانیه طول خواهد کشید تا عملیات خواندن و بازنویسی هر سلول را انجام دهد.
سلول های حافظه در صورتیکه از روش هائی بمنظور اخذ اطلاعات موجود در سلول ها استفاده ننمایند، بتنهائی فاقد ارزش خواهند بود. بنابراین لازم است سلول های حافظه دارای یک زیرساخت کامل حمایتی از مدارات خاص دیگر باشند.مدارات فوق عملیات زیر را انجام خواهند داد :
ـ مشخص نمودن هر سطر و ستون (انتخاب آدرس سطر و انتخاب آدرس ستون )
ـ نگهداری وضعیت بازخوانی و باز نویسی داده ها ( شمارنده )
ـ خواندن و برگرداندن سیگنال از یک سلول ( Sense amplifier)
ـ اعلام خبر به یک سلول که می بایست شارژ گردد و یا ضرورتی به شارژ وجود ندارد Write enable) )
سایر عملیات مربوط به "کنترل کننده حافظه" شامل مواردی نظیر : مشخص نمودن نوع سرعت ، میزان حافظه و بررسی خطاء است .
حافظه های SRAM دارای یک تکنولوژی کاملا" متفاوت می باشند. در این نوع از حافظه ها از فلیپ فلاپ برای ذخیره سازی هر بیت حافظه استفاده می گردد. یک فلیپ فلاپ برای یک سلول حافظه، از چهار تا شش ترانزیستور استفاده می کند . حافظه های SRAM نیازمند بازخوانی / بازنویسی اطلاعات نخواهند بود، بنابراین سرعت این نوع از حافظه ها بمراتب از حافظه های DRAM بیشتر است .با توجه به اینکه حافظه های SRAM از بخش های متعددی تشکیل می گردد، فضای استفاده شده آنها بر روی یک تراشه بمراتب بیشتر از یک سلول حافظه از نوع DRAM خواهد بود. در چنین مواردی میزان حافظه بر روی یک تراشه کاهش پیدا کرده و همین امر می تواند باعث افزایش قیمت این نوع از حافظه ها گردد. بنابراین حافظه های SRAM سریع و گران و حافظه های DRAM ارزان و کند می باشند . با توجه به موضوع فوق ، از حافظه های SRAM بمنظور افزایش سرعت پردازنده استفاده از Cache) و از حافظه های (DRAM برای فضای حافظه RAM در کامپیوتر استفاده می گردد.
● ما ژول های حافظه
تراشه های حافظه در کامییوترهای شخصی در آغاز از یک پیکربندی مبتنی بر Pin با نام (DIP)Dual line Package استفاده می کردند. این پیکربندی مبتنی بر پین، می توانست لحیم کاری درون حفره هائی برروی برداصلی کامپیوتر و یا اتصال به یک سوکت بوده که خود به برد اصلی لحیم شده است .همزمان با افزایش حافظه ، تعداد تراشه های مورد نیاز، فضای زیادی از برد اصلی را اشغال می کردند.از روش فوق تا زمانیکه میزان حافظه حداکثر دو مگابایت بود ، استقاده می گردید.
راه حل مشکل فوق، استقرار تراشه های حافظه بهمراه تمام عناصر و اجزای حمایتی در یک برد مدار چاپی مجزا (Printed circut Board ) بود. برد فوق در ادامه با استفاده از یک نوع خاص از کانکنور ( بانک حافظه ) به برد اصلی متصل می گردید. این نوع تراشه ها اغلب از یک پیکربندی pin با نام Small Outline J lead ( soj ) استفاده می کردند . برخی از تولیدکنندگان دیگر که تعداد آنها اندک است از پیکربندی دیگری با نام Thin Small Outline Package )tsop) استفاده می نمایند. تفاوت اساسی بین این نوع پین های جدید و پیکربندی DIP اولیه در این است که تراشه های SOJ و TSOR بصورت surface mounted در PCB هستند. به عبارت دیگر پین ها مستقیما" به سطح برد لحیم خواهند شد . ( نه داخل حفره ها و یا سوکت( .
تراشه ها ی حافظه از طریق کارت هائی که " ماژول " نامیده می شوند قابل دستیابی و استفاده می باشند.. شاید تاکنون با مشخصات یک سیستم که میزان حافظه خود را بصورت ۳۲ * ۸ , یا ۱۶ * ۴ اعلام می نماید ، برخورده کرده باشید.اعداد فوق تعداد تراشه ها ضربدر ظرفیت هر یک از تراشه ها را که بر حسب مگابیت اندازه گیری می گردند، نشان می دهد. بمنظور محاسبه ظرفیت ، می توان با تقسیم نمودن آن بر هشت میزان مگابایت را بر روی هر ماژول مشخص کرد.مثلا" یک ماژول ۳۲ * ۴ ، بدین معنی است که ماژول دارای چهار تراشه ۳۲ مگابیتی است .با ضرب ۴ در ۳۲ عدد ۱۲۸ ( مگابیت) بدست می آید . اگر عدد فوق را بر هشت تقسیم نمائیم به ظرفیت ۱۶ مگابایت خواهیم رسید.
نوع برد و کانکتور استفاده شده در حافظه های RAM ، طی پنج سال اخیر تفاوت کرده است . نمونه های اولیه اغلب بصورت اختصاصی تولید می گردیدند . تولید کنندگان متفاوت کامپیوتر بردهای حافظه را بگونه ای طراحی می کردند که صرفا" امکان استفاده از آنان در سیستم های خاصی وجود داشت . در ادامه (SIMM (Single in line memory مطرح گردید. این نوع از بردهای حافظه از ۳۰ پین کانکتور استفاده کرده و طول آن حدود ۳/۵ اینچ و عرض آن یک اینچ بود ( یازده سانتیمتر در ۲/۵ سانتیمتر ) .در اغلب کامپیوترها می بایست بردهای SIMM بصورت زوج هائی که دارای ظرفیت و سرعت یکسان باشند، استفاده گردد. علت این است که پهنای گذرگاه داده بیشتر از یک SIMM است . مثلا" از دو SIMM هشت مگابایتی برای داشتن ۱۶ مگابایت حافظه بر روی سیستم استفاده می گردد. هر SIMM قادر به ارسال هشت بیت داده در هر لحظه خواهد بود با توجه به این موضوع که گذرگاه داده شانزده بیتی است از نصف پهنای باند استفاده شده و این امر منطقی بنظر نمی آید.در ادامه بردهای SIMM بزرگتر شده و دارای ابعاد ۲۵ / ۴ * ۱ شدند( ۱۱ سانتیمتر در ۲/۵ سانتیمتر ) و از ۷۲ پین برای افزایش پهنای باند و امکان افزایش حافظه تا میزان ۲۵۶ مگابایت بدست آمد.
بموازات افزایش سرعت و ظرفیت پهنای باند پردازنده ها، تولیدکنندگان از استاندارد جدید دیگری با نام dual in line memory module)DIMM) استفاده کردند.این نوع بردهای حافظه دارای ۱۶۸ پین و ابعاد ۱ * ۵/۴ اینچ ( تقریبا" ۱۴ سانتیمتر در ۲/۵ سانتیمتر ) بودند.ظرفیت بردهای فوق در هر ماژول از هشت تا ۱۲۸ مگابایت را شامل و می توان آنها را بصورت تک ( زوج الزامی نیست ) استفاده کرد. اغلب ماژول های حافظه با ۳/۳ ولت کار می کنند. در سیستم های مکینتاش از ۵ ولت استفاده می نمایند. یک استاندارد جدید دیگر با نام Rambus in line memory module ، RIMM از نظر اندازه و پین با DIMM قابل مقایسه است ولی بردهای فوق ، از یک نوع خاص گذرگاه داده حافظه برای افزایش سرعت استفاده می نمایند.
اغلب بردهای حافظه در کامپیوترهای دستی (notebook) از ماژول های حافظه کاملا" اختصاصی استفاده می نمایند ولی برخی از تولیدکنندگان حافظه از استاندارد small outline dual in line memory module) SODIMM استفاده می نمایند. بردهای حافظه SODIMM دارای ابعاد ۱* ۲ اینچ ( ۵ سانتیمنتر در ۵ /۲ سانتیمنتر ) بوده و از ۱۴۴ پین استفاده می نمایند. ظرفیت این نوع بردها ی حافظه در هر ماژول از ۱۶ مگابایت تا ۲۵۶ مگابایت می تواند باشد.
● بررسی خطاء
اکثر حافظه هائی که امروزه در کامپیوتر استفاده می گردند دارای ضریب اعتماد بالائی می باشند.در اکثر سیستم ها ،" کنترل کننده حافظه " درزمان روشن کردن سیستم عملیات بررسی صحت عملکرد حافظه را انجام می دهد. تراشه های حافظه با استفاده از روشی با نام Parity ، عملیات بررسی خطاء را انحام می دهند. تراشه های Parity دارای یک بیت اضافه برای هشت بیت داده می باشند.روشی که Parity بر اساس آن کار می کند بسیار ساده است. در ابتداParity زوج بررسی می گردد. زمانیکه هشت بیت ( یک بایت) داده ئی را دریافت می دارند، تراشه تعداد یک های موجود در آن را محاسبه می نماید.در صورتیکه تعداد یک های موجود فرد باشد مقدار بیت Parity یک خواهد شد. در صورتیکه تعداد یک های موجود زوج باشد مقدار بیت parity صفر خواهد شد. زمانیکه داده از بیت های مورد نظر خوانده می شود ، مجددا" تعداد یک های موجود محاسبه و با بیت parity مقایسه می گردد.درصورتیکه مجموع فرد و بیت Parity مقدار یک باشد داده مورد نظر درست بوده و برای پردازنده ارسال می گردد. اما در صورتیکه مجموع فرد بوده و بیت parity صفر باشد تراشه متوجه بروز یک خطاء در بیت ها شده و داده مورد نظر کنار گذاشته می شود. parity فرد نیز به همین روش کار می کند در روش فوق زمانی بیت parity یک خواهد شد که تعداد یک های موجود در بایت زوج باشد.
مسئله مهم در رابطه با Parity عدم تصحیح خطاء پس از تشخیص است . در صورتیکه یک بایت از داده ها با بیت Parity خود مطابقت ننماید داده دور انداخته شده سیستم مجددا" سعی خود را انجام خواهد داد. کامپیوترها نیازمند یک سطح بالاتربرای برخورد با خطاء می باشند.برخی از سیستم ها از روشی با نام به error correction code)ECC) استفاده می نمایند. در روش فوق از بیت های اضافه برای کنترل داده در هر یک از بایت ها استفاده می گردد. اختلاف روش فوق با روش Parity در این است که از چندین بیت برای بررسی خطاء استفاده می گردد. ( تعداد بیت های استفاده شده بستگی به پهنای گذرگاه دارد ) حافظه های مبتنی بر روش فوق با استفاده از الگوریتم مورد نظر نه تنها قادر به تشخیص خطا بوده بلکه امکان تصحیح خطاهای بوجود آمده نیز فراهم می گردد. ECCهمچنین قادر به تشخیص خطاها در مواردی است که یک یا چندین بیت در یک بایت با مشکل مواجه گردند .
● انواح حافظه RAM
Static random access memory)SRAM) . این نوع حافظه ها از چندین ترانزیستور ( چهار تا شش ) برای هر سلول حافظه استفاده می نمایند. برای هر سلول از خازن استفاده نمی گردد. این نوع حافظه در ابتدا بمنظور cache استفاده می شدند.
Dynamic random access memory)DRAM) . در این نوع حافظه ها برای سلول های حافظه از یک زوج ترانزیستورو خازن استفاده می گردد .
Fast page mode dynamic random access memory)FPM DRAM) . شکل اولیه ای از حافظه های DRAM می باشند.در تراشه ای فوق تا زمان تکمیل فرآیند استقرار یک بیت داده توسط سطر و ستون مورد نظر، می بایست منتظر و در ادامه بیت خوانده خواهد شد.( قبل از اینکه عملیات مربوط به بیت بعدی آغاز گردد) .حداکثر سرعت ارسال داده به L۲ cache معادل ۱۷۶ مگابایت در هر ثانیه است .
Extended data out dynamic random access memory)EDO DRAM) . این نوع حافظه ها در انتظار تکمیل و اتمام پردازش های لازم برای اولین بیت نشده و عملیات مورد نظر خود را در رابطه با بیت بعد بلافاصله آغاز خواهند کرد. پس از اینکه آدرس اولین بیت مشخص گردید EDO DRAM عملیات مربوط به جستجو برای بیت بعدی را آغاز خواهد کرد. سرعت عملیات فوق پنج برابر سریعتر نسبت به حافظه های FPM است . حداکثر سرعت ارسال داده به L۲ cache معادل ۱۷۶ مگابایت در هر ثانیه است .
Synchronous dynamic random access memory)SDRM) از ویژگی "حالت پیوسته " بمنظور افزایش و بهبود کارائی استفاده می نماید .بدین منظور زمانیکه سطر شامل داده مورد نظر باشد ، بسرعت در بین ستون ها حرکت و بلافاصله پس از تامین داده ،آن را خواهد خواند. SDRAM دارای سرعتی معادل پنج برابر سرعت حافظه های EDO بوده و امروزه در اکثر کامپیوترها استفاده می گردد.حداکثر سرعت ارسال داده به L۲ cache معادل ۵۲۸ مگابایت در ثانیه است .
Rambus dynamic random access memory )RDRAM) یک رویکرد کاملا" جدید نسبت به معماری قبلی DRAM است. این نوع حافظه ها از Rambus in line memory module)RIMM) استفاده کرده که از لحاظ اندازه و پیکربندی مشابه یک DIMM استاندارد است. وجه تمایز این نوع حافظه ها استفاده از یک گذرگاه داده با سرعت بالا با نام "کانال Rambus " است . تراشه های حافظه RDRAM بصورت موازی کار کرده تا بتوانند به سرعت ۸۰۰ مگاهرتز دست پیدا نمایند.
Credit card memory یک نمونه کاملا" اختصاصی از تولیدکنندگان خاص بوده و شامل ماژول های DRAM بوده که دریک نوع خاص اسلات ، در Laptop ها استفاده می گردد .
PCMCIA memory card .نوع دیگر از حافظه شامل ماژول های DRAM بوده که در Laptop استفاده می شود.
FlashRam نوع خاصی از حافظه با ظرفیت کم برای استفاده در دستگاههائی نظیر تلویزیون، VCR بوده و از آن به منظور نگهداری اطلاعات خاص مربوط به هر دستگاه استفاده می گردد. زمانیکه این نوع دستگاهها خاموش باشند همچنان به میزان اندکی برق مصرف خواهند کرد. در کامپیوتر نیز از این نوع حافظه ها برای نگهداری اطلاعاتی در رابطه با تنظیمات هارد دیسک و … استفاده می گردد.
VideoRam)VRAM) یک نوع خاص از حافظه های RAM بوده که برای موارد خاص نظیر : آداپتورهای ویدئو و یا شتا ب دهندگان سه بعدی استفاده می شود. به این نوع از حافظه ها multiport dynamic random access memory) MPDRAM) نیز گفته می شود.علت نامگذاری فوق بدین دلیل است که این نوع از حافظه ها دارای امکان دستیابی به اطلاعات، بصورت تصادفی و سریال می باشند . VRAM بر روی کارت گرافیک قرار داشته و دارای فرمت های متفاوتی است. میزان حافظه فوق به عوامل متفاوتی نظیر : " وضوح تصویر " و " وضعیت رنگ ها " بستگی دارد.
● به چه میزان حافظه نیاز است ؟
حافظه RAM یکی از مهمترین فاکتورهای موجود در زمینه ارتقاء کارآئی یک کامپیوتر است . افزایش حافظه بر روی یک کامپیوتر با توجه به نوع استفاده می تواند در مقاطع زمانی متفاوتی انجام گیرد. در صورتیکه از سیستم های عامل ویندوز ۹۵ و یا ۹۸ استفاده می گردد حداقل به ۳۲ مگابایت حافظه نیاز خواهد بود. ( ۶۴ مگابایت توصیه می گردد) .اگر از سیستم عامل ویندوز ۲۰۰۰ استفاده می گردد حداقل به ۶۴ مگابایت حافظه نیاز خواهد بود.( ۱۲۸ مگابایت توصیه می گردد) در ویندوز ایکس پی میزان نیاز به حافظه رم به ۱۲۸ مگابایت افزایش یافته است ..سیستم عامل لینوکس صرفا" به ۴ مگابایت حافظه نیاز دارد. در صورتیکه از سیستم عامل اپل استفاده می گردد به ۱۶ مگابایت حافظه نیاز خواهد بود.( ۶۴ مگابایت توصیه می گردد). میزان حافظه اشاره شده برای هر یک از سیستم های فوق بر اساس کاربردهای معمولی ارائه شده است . دستیابی به اینترنت ، استفاده از برنامه های کاربردی خاص و سرگرم کننده ، نرم افزارهای خاص طراحی، انیمیشن سه بعدی و… مستلزم استفاده از حافظه بمراتب بیشتری خواهد بود .
حافظه RAM، یک تراشه مدار مجتمع (IC) بوده که از میلیون ها ترانزیستور و خازن تشکیل شده است. در اغلب حافظه ها با استفاده و بکارگیری یک خازن و یک ترانزیستور می توان یک سلول را ایجاد کرد. سلول فوق قادر به نگهداری یک بیت داده خواهد بود. خازن اطلاعات مربوط به بیت را که یک و یا صفر است، در خود نگهداری خواهد کرد.
حافظه (RAM(Random Access Memory شناخته ترین نوع حافظه در دنیای کامپیوتر است . روش دستیابی به این نوع از حافظه ها تصادفی است . چون می توان به هر سلول حافظه مستقیما" دستیابی پیدا کرد . در مقابل حافظه های RAM ، حافظه های(SAM(Serial Access Memory وجود دارند. حافظه های SAM اطلاعات را در مجموعه ای از سلول های حافظه ذخیره و صرفا" امکان دستیابی به آنها بصورت ترتیبی وجود خواهد داشت. (نظیر نوار کاست) در صورتیکه داده مورد نظر در محل جاری نباشد هر یک از سلول های حافظه به ترتیب بررسی شده تا داده مورد نظر پیدا گردد. حافظه های SAM در مواردیکه پردازش داده ها الزاما" بصورت ترتیبی خواهد بود مفید می باشند ( نظیر حافظه موجود بر روی کارت های گرافیک). داده های ذخیره شده در حافظه RAM با هر اولویت دلخواه قابل دستیابی خواهند بود.