حافظه RAM
حافظه (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 می باشند.در تراشه ای فوق تا زمان تکميل فرآيند استقرار يک بيت داده توسط سطر و ستون مورد نظر، می بايست منتظر و در ادامه بيت خوانده خواهد شد.( قبل از اينکه عمليات مربوط به بيت بعدی آغاز گردد) .حداکثر سرعت ارسال داده به L2 cache معادل ۱۷۶ مگابايت در هر ثانيه است .

Extended data-out dynamic random access memory)EDO DRAM) . اين نوع حافظه ها در انتظار تکميل و اتمام پردازش های لازم برای اولين بيت نشده و عمليات مورد نظر خود را در رابطه با بيت بعد بلافاصله آغاز خواهند کرد. پس از اينکه آدرس اولين بيت مشخص گرديد EDO DRAM عمليات مربوط به جستجو برای بيت بعدی را آغاز خواهد کرد. سرعت عمليات فوق پنج برابر سريعتر نسبت به حافظه های FPM است . حداکثر سرعت ارسال داده به L2 cache معادل ۱۷۶ مگابايت در هر ثانيه است .
Synchronous dynamic random access memory)SDRM) از ويژگی “حالت پيوسته ” بمنظور افزايش و بهبود کارائی استفاده می نمايد .بدين منظور زمانيکه سطر شامل داده مورد نظر باشد ، بسرعت در بين ستون ها حرکت و بلافاصله پس از تامين داده ،آن را خواهد خواند. SDRAM دارای سرعتی معادل پنج برابر سرعت حافظه های EDO بوده و امروزه در اکثر کامپيوترها استفاده می گردد.حداکثر سرعت ارسال داده به L2 cache معادل ۵۲۸ مگابايت در ثانيه است .

Rambus dynamic random access memory )RDRAM) يک رويکرد کاملا” جديد نسبت به معماری قبلی DRAM است. اين نوع حافظه ها از Rambus in-line memory module)RIMM) استفاده کرده که از لحاظ اندازه و پيکربندی مشابه يک DIMM استاندارد است. وجه تمايز اين نوع حافظه ها استفاده از يک گذرگاه داده با سرعت بالا با نام “کانال Rambus ” است . تراشه های حافظه RDRAM بصورت موازی کار کرده تا بتوانند به سرعت ۸۰۰ مگاهرتز دست پيدا نمايند.

Credit card memory يک نمونه کاملا” اختصاصی از توليدکنندگان خاص بوده و شامل ماژول های DRAM بوده که دريک نوع خاص اسلات ، در کامپيوترهای noteBook استفاده می گردد .
PCMCIA memory card .نوع ديگر از حافظه شامل ماژول های DRAM بوده که در notebook استفاده می شود.
FlashRam نوع خاصی از حافظه با ظرفيت کم برای استفاده در دستگاههائی نظير تلويزيون، VCR بوده و از آن به منظور نگهداری اطلاعات خاص مربوط به هر دستگاه استفاده می گردد. زمانيکه اين نوع دستگاهها خاموش باشند همچنان به ميزان اندکی برق مصرف خواهند کرد. در کامپيوتر نيز از اين نوع حافظه ها برای نگهداری اطلاعاتی در رابطه با تنظيمات هارد ديسک و … استفاده می گردد.

VideoRam)VRAM) يک نوع خاص از حافظه های RAM بوده که برای موارد خاص نظير : آداپتورهای ويدئو و يا شتا ب دهندگان سه بعدی استفاده می شود. به اين نوع از حافظه ها multiport dynamic random access memory) MPDRAM) نيز گفته می شود.علت نامگذاری فوق بدين دليل است که اين نوع از حافظه ها دارای امکان دستيابی به اطلاعات، بصورت تصادفی و سريال می باشند . VRAM بر روی کارت گرافيک قرار داشته و دارای فرمت های متفاوتی است. ميزان حافظه فوق به عوامل متفاوتی نظير : ” وضوح تصوير ” و ” وضعيت رنگ ها ” بستگی دارد.
به چه ميزان حافظه نياز است ؟

حافظه RAM يکی از مهمترين فاکتورهای موجود در زمينه ارتقاء کارآئی يک کامپيوتر است . افزايش حافظه بر روی يک کامپيوتر با توجه به نوع استفاده می تواند در مقاطع زمانی متفاوتی انجام گيرد. در صورتيکه از سيستم های عامل ويندوز ۹۵ و يا ۹۸ استفاده می گردد حداقل به ۳۲ مگابايت حافظه نياز خواهد بود. ( ۶۴ مگابايت توصيه می گردد) .اگر از سيستم عامل ويندوز ۲۰۰۰ استفاده می گردد حداقل به ۶۴ مگابايت حافظه نياز خواهد بود.( ۱۲۸ مگابايت توصيه می گردد) .سيستم عامل لينوکس صرفا” به ۴ مگابايت حافظه نياز دارد. در صورتيکه از سيستم عامل اپل استفاده می گردد به ۱۶ مگابايت حافظه نياز خواهد بود.( ۶۴ مگابايت توصيه می گردد). ميزان حافظه اشاره شده برای هر يک از سيستم های فوق بر اساس کاربردهای معمولی ارائه شده است . دستيابی به اينترنت ، استفاده از برنامه های کاربردی خاص و سرگرم کننده ، نرم افزارهای خاص طراحی، انيميشن سه بعدی و… مستلزم استفاده از حافظه بمراتب بيشتری خواهد بود .