حافظه ROM يک نوع مدار مجتمع (IC) است که در زمان ساخت داده هائی در آن ذخيره می گردد. اين نوع از حافظه ها علاوه بر استفاده در کامپيوترهای شخصی در ساير دستگاههای الکترونيکی نيز بخدمت گرفته می شوند. حافظه های ROM از لحاظ تکنولوژی استفاده شده، دارای انواع زير می باشند:
ROM
PROM
EPROM
EEPROM
Flash Memory
هر يک از مدل های فوق دارای ويژگی های منحصربفرد خود می باشند . حافظه های فوق در موارد زيردارای ويژگی مشابه می باشند:
داده های ذخيره شده در اين نوع تراشه ها " غير فرار " بوده و پس از خاموش شدن منبع تامين انرژی اطلاعات خود را از دست نمی دهند.
داده های ذخيره شده در اين نوع از حافظه ها غير قابل تغيير بوده و يا اعمال تغييرات در آنها مستلزم انجام عمليات خاصی است.
مبانی حافظه های ROM
حافظه ROM از تراشه هائی شامل شبکه ای از سطر و ستون تشکيل شده است ( نظير حافظه RAM) . هر سطر وستون در يک نقظه يکديگر را قطع می نمايند. تراشه های ROM دارای تفاوت اساسی با تراشه های RAM می باشند. حافظه RAM از " ترانزيستور " بمنظور فعال و يا غيرفعال نمودن دستيابی به يک " خازن " در نقاط برخورد سطر و ستون ، استفاده می نمايند.در صورتيکه تراشه های ROM از يک " ديود" (Diode) استفاده می نمايد. در صورتيکه خطوط مربوطه "يک" باشند برای اتصال از ديود استفاده شده و اگر مقدار "صفر" باشد خطوط به يکديگر متصل نخواهند شد. ديود، صرفا" امکان حرکت " جريان " را در يک جهت ايجاد کرده و دارای يک نفطه آستانه خاص است . اين نقطه اصطلاحا" (Forward breakover) ناميده می شود. نقطه فوق ميزان جريان مورد نياز برای عبور توسط ديود را مشخص می کند. در تراشه ای مبتنی بر سيليکون نظير پردازنده ها و حافظه ، ولتاژ Forward breakover تقريبا" معادل شش دهم ولت است .با بهره گيری از ويژگی منحصر بفرد ديود، يک تراشه ROM قادر به ارسال يک شارژ بالاتر از Forward breakover و پايين تر از ستون متناسب با سطر انتخابی ground شده در يک سلول خاص است .در صورتيکه ديود در سلول مورد نظر ارائه گردد، شارژ هدايت شده (از طريق Ground ) و با توجه به سيستم باينری ( صفر و يک )، سلول يک خوانده می شود ( مقدار آن 1 خواهد بود) در صورتيکه مقدار سلول صفر باشد در محل برخورد سطر و ستون ديودی وجود نداشته و شارژ در ستون ، به سطر مورد نظر منتقل نخواهد شد.
همانطور که اشاره گرديد، تراشه ROM ، مستلزم برنامه نويسی وذخيره داده در زمان ساخت است . يک تراشه استاندارد ROM را نمی توان برنامه ريزی مجدد و اطلاعات جديدی را در آن نوشت . در صورتيکه داده ها درست نبوده و يا مستلزم تغيير و يا ويرايش باشند، می بايست تراشه را دور انداخت و مجددا" از ابتدا عمليات برنامه ريزی يک تراشه جديد را انجام داد.فرآيند ايجاد تمپليت اوليه برای تراشه های ROM دشوار است .اما مزيت حافظه ROM بر برخی معايب آن غلبه می نمايد. زمانيکه تمپليت تکميل گرديد تراشه آماده شده، می تواند بصورت انبوه و با قيمت ارزان به فروش رسد.اين نوع از حافظه ها از برق ناچيزی استفاده کرده ، قابل اعتماد بوده و در رابطه با اغلب دستگاههای الکترونيکی کوچک، شامل تمامی دستورالعمل های لازم بمنظور کنترل دستگاه مورد نظر خواهند بود.استفاده از اين نوع تراشه ها در برخی از اسباب بازيها برای نواختن موسيقی، آواز و ... متداول است .
حافظه PROM
توليد تراشه های ROM مستلزم صرف وقت و هزينه بالائی است .بدين منظور اغلب توليد کنندگان ، نوع خاصی از اين نوع حافظه ها را که PROM )Programmable Read-Only Memory) ناميده می شوند ، توليد می کنند.اين نوع از تراشه ها با محتويات خالی با قيمت مناسب عرضه شده و می تواند توسط هر شخص با استفاده از دستگاههای خاصی که Programmer ناميده می شوند ، برنامه ريزی گردند. ساختار اين نوع از تراشه ها مشابه ROM بوده با اين تفاوت که در محل برخورد هر سطر و ستون از يک فيوز( برای اتصال به يکديگر) استفاده می گردد. يک شارژ که از طريق يک ستون ارسال می گردد از طريق فيوز به يک سلول پاس داده شده و بدين ترتيب به يک سطر Grounded که نماينگر مقدار "يک" است ، ارسال خواهد شد. با توجه به اينکه تمام سلول ها دارای يک فيوز می باشند، درحالت اوليه ( خالی )، يک تراشه PROM دارای مقدار اوليه " يک" است . بمنظور تغيير مقدار يک سلول به صفر، از يک Programmer برای ارسال يک جريان خاص به سلول مورد نظر، استفاده می گردد.ولتاژ بالا، باعث قطع اتصال بين سطر و ستون (سوختن فيوز) خواهد کرد. فرآيند فوق را " Burning the PROM " می گويند. حافظه های PROM صرفا" يک بار قابل برنامه ريزی هستند. حافظه های فوق نسبت به RAM شکننده تر بوده و يک جريان حاصل از الکتريسيته ساکن، می تواند باعث سوخته شدن فيور در تراشه شده و مقدار يک را به صفر تغيير نمايد. از طرف ديگر ( مزايا ) حافظه ای PROM دارای قيمت مناسب بوده و برای نمونه سازی داده برای يک ROM ، قبل از برنامه ريزی نهائی کارآئی مطلوبی دارند.
حافظه EPROM
استفاده کاربردی از حافظه های ROM و PROM با توجه به نياز به اعمال تغييرات در آنها قابل تامل است ( ضرورت اعمال تغييرات و اصلاحات در اين نوع حافظه ها می تواند به صرف هزينه بالائی منجر گردد)حافظه هایEPROM)Erasable programmable read-only memory) پاسخی مناسب به نياز های مطح شده است ( نياز به اعمال تغييرات ) تراشه های EPROM را می توان چندين مرتبه باز نويسی کرد. پاک نمودن محتويات يک تراشه EPROM مشتلزم استفاده از دستگاه خاصی است که باعث ساطع کردن يک فرکانس خاص ماوراء بنفش باشد.. پيکربندی اين نوع از حافظه ها مستلزم استفاده از يک Programmer از نوع EPROM است که يک ولتاژ را در يک سطح خاص ارائه نمايند ( با توجه به نوع EPROM استفاده شده ) اين نوع حافظه ها ، نيز دارای شبکه ای مشتمل از سطر و ستون می باشند. در يک EPROM سلول موجود در نقظه برخورد سطر و ستون دارای دو ترانزيستور است .ترانزيستورهای فوق توسط يک لايه نازک اکسيد از يکديگر جدا شده اند. يکی از ترانزيستورها Floating Gate و ديگری Control Gate ناميده می شود. Floating gate صرفا" از طريق Control gate به سطر مرتبط است. ماداميکه لينک برقرارباشد سلول دارای مقدار يک خواهد بود. بمنظور تغيير مقدار فوق به صفر به فرآيندی با نام Fowler-Nordheim tunneling نياز خواهد بود .Tunneling بمنظور تغيير محل الکترون های Floating gate استفاده می گردد.يک شارژ الکتريکی بين 10 تا 13 ولت به floating gate داده می شود.شارژ از ستون شروع و پس از ورود به floating gate در ground تخليه خواهد گرديد. شارژ فوق باعث می گردد که ترانزيستور floating gate مشابه يک "پخش کننده الکترون " رفتار نمايد . الکترون های مازاد فشرده شده و در سمت ديگر لايه اکسيد به دام افتاد و يک شارژ منفی را باعث می گردند. الکترون های شارژ شده منفی ، بعنوان يک صفحه عايق بين control gate و floating gate رفتار می نمايند.دستگاه خاصی با نام Cell sensor سطح شارژ پاس داده شده به floating gate را مونيتور خواهد کرد. در صورتيکه جريان گيت بيشتر از 50 درصد شارژ باشد در اينصورت مقدار "يک" را دارا خواهد بود.زمانيکه شارژ پاس داده شده از 50 درصد آستانه عدول نموده مقدار به "صفر" تغيير پيدا خواهد کرد.يک تراشه EPROM دارای گيت هائی است که تمام آنها باز بوده و هر سلول آن مقدار يک را دارا است.
بمنظور باز نويسی يک EPROM می بايست در ابتدا محتويات آن پاک گردد. برای پاک نمودن می بايست يک سطح از انرژی زياد را بمنظور شکستن الکترون های منفی Floating gate استفاده کرد.در يک EPROM استاندارد ،عمليات فوق از طريق اشعه ماوراء بنفش با فرکانس 253/7 انحام می گردد.فرآيند حذف در EPROM انتخابی نبوده و تمام محتويات آن حذف خواهد شد. برای حذف يک EPROM می بايست آن را از محلی که نصب شده است جدا کرده و به مدت چند دقيقه زير اشعه ماوراء بنفش دستگاه پاک کننده EPROM قرار داد.
حافظه های EEPROM و Flash Memory
با اينکه حافظه ای EPROM يک موفقيت مناسب نسبت به حافظه های PROM از بعد استفاده مجدد می باشند ولی کماکن نيازمند بکارگيری تجهيزات خاص و دنبال نمودن فرآيندهای خسته کننده بمنظور حذف و نصب مجدد آنان در هر زمانی است که به يک شارژ نياز باشد. در ضمن، فرآيند اعمال تغييرات در يک حافظه EPROM نمی تواند همزمان با نياز و بصورت تصاعدی صورت پذيرد و در ابتدا می بايست تمام محتويات را پاک نمود.حافظه های Electrically Erasable Programmable Read Only Memory)EEPROM) پاسخی مناسب به نيازهای موجود است . در حافظه های EEPROM تسهيلات زير ارائه می گردد:
برای بازنويسی تراشه نياز به جدا نمودن تراشه از محل نصب شده نخواهد بود.
برای تغيير بخشی از تراشه نياز به پاک نمودن تمام محتويات نخواهد بود.
اعمال تغييرات در اين نوع تراشه ها مستلزم بکارگيری يک دستگاه اختصاصی نخواهد بود.
در عوض استفاده از اشعه ماوراء بنفش، می توان الکترون های هر سلول را با استفاده از يک برنامه محلی و بکمک يک ميدان الکتريکی به وضعيت طبيعی برگرداند. عمليات فوق باعث حذف سلول های مورد نظر شده و می توان مجددا" آنها را بازنويسی نمود.تراشه های فوق در هر لحظه يک بايت را تغيير خواهند داد.فرآيند اعمال تغييرات در تراشه های فوق کند بوده و در مواردی که می بايست اطلاعات با سرعت تغيير يابند ، سرعت لازم را نداشته و دارای چالش های خاص خود می باشند.
توليدکنندگان با ارائه Flash Memory که يک نوع خاص از حافظه های EEPROM می باشد به محدوديت اشاره شده پاسخ لازم را داده اند.در حافظه Falsh از مدارات از قبل پيش بينی شده در زمان طراحی ، بمنظور حذف استفاده می گردد ( بکمک ايجاد يک ميدان الکتريکی). در اين حالت می توان تمام و يا بخش های خاصی از تراشه را که " بلاک " ناميده می شوند، را حذف کرد.اين نوع حافظه نسبت به حافظه های EEPROM سريعتر است ، چون داده ها از طريق بلاک هائی که معمولا" 512 بايت می باشند ( به جای يک بايت در هر لحظه ) نوشته می گردند. شکل زير حافظه BIOS را که نوع خاصی از حافظه ROM مدل Flash memory است ، نشان می دهد.
حافظه و انواع آن در كامپيوتر حافظه با هدف ذخيره سازي اطلاعات ( دائم ، موقت ) در كامپيوتر استفاده مي گردد. انواع متفاوتي از حافظه دركامپيوتر استفاده مي شود: · RAM · ROM · Cache · Dynamic RAM · Static RAM · Flash Memory · Virtual Memory · Video Memory · BIOS استفاده از حافظه صرفا" محدود به كامپيوترهاي شخصي نبوده و در دستگاههاي متفاوتي نظير : تلفن هاي سلولي، PDA ، راديوهاي اتومبيل ، VCR ، تلويزيون و ... نيز در ابعاد وسيعي از آنها استفاده مي شود.
هر يك از دستگاه هاي فوق مدل هاي متفاوتي از حافظه را استفاده مي كنند. مباني اوليه حافظه با اينكه مي توان واژه " حافظه " را بر هر نوع وسيله ذخيره سازي الكترونيكي اطلاق كرد، ولي اغلب ازاين واژه براي مشخص نمودن حافظه هاي سريع با قابليت ذخيره سازي موقت استفاده مي شود. در صورتيكه پردازنده مجبور باشد براي بازيابي اطلاعات مورد نياز خود بصورت دائم از هارد ديسك استفاده كند، قطعا" سرعت عمليات پردازنده ( با آن سرعت بالا) كند خواهد گرديد. زمانيكه اطلاعات مورد نياز پردازنده در حافظه ذخيره گردند، سرعت عمليات پردازنده از بعد دستيابي به داده هاي مورد نياز بيشتر خواهد گرديد. از حافظه هاي متعددي به منظور نگهداري موقت اطلاعات استفاده مي گردد. همانگونه كه در شكل فوق مشاهده مي گردد ، مجموعه متنوعي ازانواع حافظه ها وجود دارد . پردازنده با توجه به ساختار سلسله مراتبي فوق به آنها دستيابي پيدا خواهد كرد. زمانيكه در سطح حافظه هاي دائمي نظير هارد يا حافظه دستگاه هائي نظير صفحه كليد، اطلاعاتي موجود باشد كه پردازنده قصد استفاده از آنها را داشته باشد ، اطلاعات فوق از طريق حافظه RAM در اختيار پردازنده قرار مي گيرند. در ادامه پردازنده، اطلاعات و داده هاي مورد نياز خود را در حافظه Cache و دستورالعمل هاي خاص عملياتي خود را در رجيسترها ذخيره مي نمايد. تمام عناصر سخت افزاري ( پردازنده، هارد ديسك ، حافظه و ...) و عناصر نرم افزاري ( سيستم عامل و...) بصورت يك گروه عملياتي به كمك يكديگر وظايف محوله را انجام مي دهند . بدون شك در اين گروه " حافظه " داراي جايگاهي خاص است . از زمانيكه كامپيوتر روشن تا زمانيكه خاموش مي گردد ، پردازنده بصورت پيوسته و دائم از حافظه استفاده مي نمايد. بلافاصله پس از روشن نمودن كامپيوتر اطلاعات اوليه ( برنامه POST) از حافظه ROM فعال شده و در ادامه وضعيت حافظه از نظر سالم بودن بررسي مي گردد ( عمليات سريع خواندن ، نوشتن ) .در مرحله بعد كامپيوتر BIOS را از طريق ROM فعال خواهد كرد. BIOS اطلاعات اوليه و ضروري در رابطه با دستگاه هاي ذخيره سازي، وضعيت درايوي كه مي بايست فرآيند بوت از آنجا آغاز گردد، امنيت و ... را مشخص مي كند. در مرحله بعد سيستم عامل از هارد به درون حافظه RAM استقرار خواهد يافت . بخش هاي مهم و حياتي سيستم عامل تا زمانيكه سيستم روشن است در حافظه ماندگار خواهند بود. در ادامه و زمانيكه يك برنامه توسط كاربر فعال مي گردد، برنامه فوق در حافظه RAM مستقر خواهد شد. پس از استقرار يك برنامه در حافظه و آغاز سرويس دهي توسط برنامه مورد نظر در صورت ضرورت فايل هاي مورد نياز برنامه فوق، در حافظه مستقر خواهند شد و در نهايت زماني كه به حيات يك برنامه خاتمه داده مي شود (Close) يا يك فايل ذخيره مي گردد ، اطلاعات بر روي يك رسانه ذخيره سازي دائم ذخيره و در نهايت حافظه از وجود برنامه و فايل هاي مرتبط ، پاكسازي ! مي گردد. همانگونه كه اشاره گرديد در هر زمان كه اطلاعاتي ، مورد نياز پردازنده باشد، اطلاعات درخواستي در حافظه RAM مستقر شده تا زمينه استفاده از آنان توسط پردازنده فراهم گردد. چرخه درخواست اطلاعات موجود درRAM توسط پردازنده ، پردازش اطلاعات توسط پردازنده و نوشتن اطلاعات جديد در حافظه يك سيكل كاملا" پيوسته بوده و در اكثر كامپيوترها سيكل فوق ممكن است در هر ثانيه ميليون ها مرتبه تكرار گردد. نياز به سرعت دليلي بر وجود حافظه هاي متنوع چرا حافظه در كامپيوتر تا بدين ميزان متنوع و متفاوت است ؟ در پاسخ مي توان به موارد ذيل اشاره نمود: پردازنده هاي با سرعت بالا نيازمند دستيابي سريع و آسان به حجم بالائي از داده ها به منظور افزايش بهره وري و كارآئي خود مي باشند. در صورتيكه پردازنده قادر به تامين و دستيابي به داده هاي مورد نياز در زمان مورد نظر نباشد، مي بايست عمليات خود را متوقف و در انتظار تامين داده هاي مورد نياز باشد. پردازنده هاي جديد و با سرعت يك گيگا هرتز به حجم بالائي از داده ها ( ميليارد بايت در هر ثانيه ) نياز خواهند داشت . پردازنده هائي با سرعت اشاره شده گران قيمت بوده و قطعا" اتلاف زمان مفيد آنان مطلوب و قابل قبول نخواهد بود. طراحان كامپيوتر به منظور حل مشكل فوق ايده " لايه بندي حافظه" را مطرح نموده اند. در اين راستا از حافظه هاي گران قيمت با ميزان اندك استفاده و از حافظه هاي ارزان تر در حجم بيشتري استفاده به عمل مي آيد. ارزانترين حافظه متداول ، هارد ديسك است . هارد ديسك يك رسانه ذخيره سازي ارزان قيمت با توان ذخيره سازي حجم بالائي از اطلاعات است . با توجه به ارزان بودن فضاي ذخيره سازي اطلاعات بر روي هارد، اطلاعات مورد نظر بر روي آنها ذخيره و با استفاده از روش هاي متفاوتي نظير : حافظه مجازي مي توان به سادگي و به سرعت و بدون نگراني از فضاي فيزيكي حافظه RAM ، از آنها استفاده نمود. حافظه RAM سطح دستيابي بعدي در ساختار سلسله مراتبي حافظه است . اندازه بيت يك پردازنده نشان دهنده تعداد بايت هائي از حافظه است كه در يك لحظه مي توان به آنها دستيابي داشت. مثلا" يك پردازنده شانزده بيتي ، قادر به پردازش دو بايت در هر لحظه است . مگاهرتز واحد سنجش سرعت پردازش در پردازنده ها است و معادل "ميليون در هر ثانيه" است . مثلا" يك كامپيوتر 32 بيتي پنتيوم iii با سرعت 800-MHz ، قادر به پردازش چهار بايت بصورت همزمان و 800 ميليون بار در ثانيه است . حافظه RAM به تنهائي داراي سرعت مناسب براي همسنگ شدن با سرعت پردازنده نيست . به همين دليل است كه از حافظه هاي Cache استفاده مي گردد. بديهي است هر اندازه كه سرعت حافظه RAM بالا باشد مطلوب تر خواهد بود.اغلب تراشه هاي مربوطه امروزه داراي سرعتي بين 50 تا 70 Nanoseconds مي باشند. سرعت خواندن يا نوشتن در حافظه ارتباط مستقيم با نوع حافظه استفاده شده دارد .در اين راستا ممكن است از حافظه هاي DRAM,SDRAM,RAMBUS استفاده گردد. سرعت RAM توسط پهنا و سرعت Bus كنترل مي گردد. پهناي Bus ، تعداد بايتي كه مي تواند بطور همزمان براي پردازنده ارسال گردد را مشخص و سرعت BUS به تعداد دفعاتي كه مي توان يك گروه از بيت ها را در هر ثانيه ارسال كرد اطلاق مي گردد. سيكل منظم حركت داده ها از حافظه به سمت پردازنده را Bus Cycle مي گويند. مثلا" يك Bus با وضعيت : 100MHz و 32 بيت، بصورت تئوري قادر به ارسال چهار بايت به پردازنده و يكصد ميليون مرتبه در هر ثانيه است . در حاليكه يك BUS شانرده بيتي 66MHZ بصورت تئوري قادر به ارسال دو بايت و 66 ميليون مرتبه در هر ثانيه است . با توجه به مثال فوق مشاهده مي گردد كه با تغيير پهناي BUS از شانزده به سي و دو و سرعت از 66MHz به 100MHz سرعت ارسال داده براي پردازنده سه برابر گرديد. رجيستر و Cache با توجه به سرعت بسيار بالاي پردازنده حتي در صورت استفاده از Bus عريض وسريع همچنان مدت زماني طول خواهد كشيد تا داده ها از حافظه RAM براي پردازنده ارسال گردند. Cache با اين هدف طراحي شده است كه داده هاي مورد نياز پردازنده را كه احتمال استفاده از آنان بيشتر است ، در دسترس بيشتري قرار دهد . عمليات فوق از طريق بكارگيري مقدار اندكي از حافظه Cache كه Primary يا Level 1 ناميده مي شود صورت مي پذيرد. ظرفيت حافظه هاي فوق بسيار اندك بوده و از دو كيلو بايت تا شصت و چهار كيلو بايت را شامل مي گردد. نوع دوم Cache كه Secodray يا level 2 ناميده مي شود بر روي يك كارت حافظه و در مجاورت پردازنده قرار مي گيرد. اين نوع Cache داراي يك ارتباط مستقيم با پردازنده است. يك مدار كنترل كننده اختصاصي بر روي برد اصلي كه " كنترل كننده L2 " ناميده مي شود مسئوليت عمليات مربوطه را برعهده خواهد گرفت . با توجه به نوع پردازنده ، اندازه حافظه فوق متغير بوده و داراي دامنه اي بين 256Kb تا 2MB است. برخي از پردازنده هاي با كارائي بالا اخيرا" اين نوع Cache را به عنوان جزئي جداناپذير در كنار خود دارند. ( بخشي از تراشه پردازنده ) در اين نوع پردازنده ها با توجه به اينكه Cache بخشي از پردازنده محسوب مي گردد، اندازه آن متغير بوده و به عنوان يكي از مهمترين شاخص ها در كارائي پردازنده مطرح است. نوع ديگري از RAM با نام SRAM ( حافظ هاي با دستيابي تصادفي ايستا ) نيز وجود داشته كه در آغاز براي Cache استفاده مي گرديد. اين نوع حافظه ها از چندين ترانزيستور ( معمولا" چهار تا شش ) براي هر يك از سلول هاي حافظه خود استفاده مي نمايند. حافظه هاي فوق داراي مجموعه اي از فليپ فلاپ ها با دو وضعيت خواهند بود. بنابراين حافظه هاي فوق قادر به بازخواني اطلاعات بصورت پيوسته نظير حافظه هاي DRAM نخواهند بود. هر يك از سلول هاي حافظه ماداميكه منبع تامين انرژي آنها فعال (On) باشد داده هاي خود را ذخيره نگاه خواهند داشت . در اين حالت ضرورتي به بازخواني اطلاعات بصورت پريوديك نخواهد بود . سرعت حافظه هاي فوق بسيار بالا است ، ولي به دليل قيمت بالا ، در حال حاضر بعنوان جايگزيني استاندارد براي حافظه هاي RAM مطرح نمي باشند. انواع حافظه حافظه ها را مي توان بر اساس شاخص هاي متفاوتي تقسيم بندي كرد . Volatile و Nonvolatile نمونه اي از اين تقسيم بندي ها است . حافظه هاي volatile بلافاصله پس از خاموش شدن سيستم اطلاعات خود را از دست مي دهند. و همواره براي نگهداري اطلاعات خود به منبع تامين انرژي نياز خواهند داشت . اغلب حافظه هاي RAM در اين گروه قرار مي گيرند. حافظه هاي Nonvolatile داده هاي خود را همچنان پس از خاموش شدن سيستم حفظ خواهند كرد. حافظه ROM نمونه اي از اين نوع حافظه ها است .
سايت درج آگهي و تبليغ رايگان اينترنتي پيام سرا