حافظه ROM يک نوع مدار مجتمع (IC) است که در زمان ساخت داده هائی در آن ذخيره می گردد. اين نوع از حافظه ها علاوه بر استفاده در کامپيوترهای شخصی در ساير دستگاههای الکترونيکی نيز بخدمت گرفته می شوند. حافظه های ROM از لحاظ تکنولوژی استفاده شده، دارای انواع زير می باشند
-
PROM
-
EPROM
-
EEPROM
-
FlashMemory
هر يک از مدل های فوق دارای ويژگی های منحصربفرد خود می باشند . حافظه های فوق در موارد زيردارای ويژگی مشابه می باشند:
داده های ذخيره شده در اين نوع تراشه ها " غير فرار " بوده و پس از خاموش شدن منبع تامين انرژی اطلاعات خود را از دست نمی دهند.
داده های ذخيره شده در اين نوع از حافظه ها غير قابل تغيير بوده و يا اعمال تغييرات در آنها مستلزم انجام عمليات خاصی است.
مبانی حافظه های ROM
حافظه ROM از تراشه هائی شامل شبکه ای از سطر و ستون تشکيل شده است ( نظير حافظه RAM) . هر سطر وستون در يک نقظه يکديگر را قطع می نمايند. تراشه های ROM دارای تفاوت اساسی با تراشه های RAM می باشند. حافظه RAM از " ترانزيستور " بمنظور فعال و يا غيرفعال نمودن دستيابی به يک " خازن " در نقاط برخورد سطر و ستون ، استفاده می نمايند.در صورتيکه تراشه های ROM از يک " ديود" (Diode) استفاده می نمايد. در صورتيکه خطوط مربوطه "يک" باشند برای اتصال از ديود استفاده شده و اگر مقدار "صفر" باشد خطوط به يکديگر متصل نخواهند شد. ديود، صرفا" امکان حرکت " جريان " را در يک جهت ايجاد کرده و دارای يک نقطه آستانه خاص است . اين نقطه اصطلاحا" (Forward breakover) ناميده می شود. نقطه فوق ميزان جريان مورد نياز برای عبور توسط ديود را مشخص می کند. در تراشه ای مبتنی بر سيليکون نظير پردازنده ها و حافظه ، ولتاژ Forwardbreakover تقريبا" معادل شش دهم ولت است .با بهره گيری از ويژگی منحصر بفرد ديود، يک تراشه ROM قادر به ارسال يک شارژ بالاتر از Forward breakover و پايين تر از ستون متناسب با سطر انتخابی ground شده در يک سلول خاص است .در صورتيکه ديود در سلول مورد نظر ارائه گردد، شارژ هدايت شده (از طريق Ground ) و با توجه به سيستم باينری ( صفر و يک )، سلول يک خوانده می شود ( مقدار آن 1 خواهد بود) در صورتيکه مقدار سلول صفر باشد در محل برخورد سطر و ستون ديودی وجود نداشته و شارژ در ستون ، به سطر مورد نظر منتقل نخواهد شد.
همانطور که اشاره گرديد، تراشه ROM ، مستلزم برنامه نويسی وذخيره داده در زمان ساخت است . يک تراشه استاندارد ROM را نمی توان برنامه ريزی مجدد و اطلاعات جديدی را در آن نوشت . در صورتيکه داده ها درست نبوده و يا مستلزم تغيير و يا ويرايش باشند، می بايست تراشه را دور انداخت و مجددا" از ابتدا عمليات برنامه ريزی يک تراشه جديد را انجام داد.فرآيند ايجاد تمپليت اوليه برای تراشه های ROM دشوار است .اما مزيت حافظه ROM بر برخی معايب آن غلبه می نمايد. زمانيکه تمپليت تکميل گرديد تراشه آماده شده، می تواند بصورت انبوه و با قيمت ارزان به فروش رسد.اين نوع از حافظه ها از برق ناچيزی استفاده کرده ، قابل اعتماد بوده و در رابطه با اغلب دستگاههای الکترونيکی کوچک، شامل تمامی دستورالعمل های لازم بمنظور کنترل دستگاه مورد نظر خواهند بود.استفاده از اين نوع تراشه ها در برخی از اسباب بازيها برای نواختن موسيقی، آواز و … متداول است .
حافظه PROM
توليد تراشه های ROM مستلزم صرف وقت و هزينه بالائی است .بدين منظور اغلب توليد کنندگان ، نوع خاصی از اين نوع حافظه ها را که PROM (ProgrammableRead-OnlyMemory) ناميده می شوند ، توليد می کنند.اين نوع از تراشه ها با محتويات خالی با قيمت مناسب عرضه شده و می تواند توسط هر شخص با استفاده از دستگاههای خاصی که Programmer ناميده می شوند ، برنامه ريزی گردند. ساختار اين نوع از تراشه ها مشابه ROM بوده با اين تفاوت که در محل برخورد هر سطر و ستون از يک فيوز( برای اتصال به يکديگر) استفاده می گردد. يک شارژ که از طريق يک ستون ارسال می گردد از طريق فيوز به يک سلول پاس داده شده و بدين ترتيب به يک سطر Grounded که نماينگر مقدار "يک" است ، ارسال خواهد شد. با توجه به اينکه تمام سلول ها دارای يک فيوز می باشند، درحالت اوليه ( خالی )، يک تراشه PROM دارای مقدار اوليه " يک" است . بمنظور تغيير مقدار يک سلول به صفر، از يک Programmer برای ارسال يک جريان خاص به سلول مورد نظر، استفاده می گردد.ولتاژ بالا، باعث قطع اتصال بين سطر و ستون (سوختن فيوز) خواهد کرد. فرآيند فوق را " Burning thePROM " می گويند. حافظه های PROM صرفا" يک بار قابل برنامه ريزی هستند. حافظه های فوق نسبت به RAM شکننده تر بوده و يک جريان حاصل از الکتريسيته ساکن، می تواند باعث سوخته شدن فيور در تراشه شده و مقدار يک را به صفر تغيير نمايد. از طرف ديگر ( مزايا ) حافظه ای PROM دارای قيمت مناسب بوده و برای نمونه سازی داده برای يک ROM ، قبل از برنامه ريزی نهائی کارآئی مطلوبی دارند.
حافظه EPROM
استفاده کاربردی از حافظه های ROM و PROM با توجه به نياز به اعمال تغييرات در آنها قابل تامل است ( ضرورت اعمال تغييرات و اصلاحات در اين نوع حافظه ها می تواند به صرف هزينه بالائی منجر گردد)حافظه هایEPROM)Erasableprogrammableread-onlymemory) پاسخی مناسب به نياز های مطح شده است ( نياز به اعمال تغييرات ) تراشه های EPROM را می توان چندين مرتبه باز نويسی کرد. پاک نمودن محتويات يک تراشه EPROM مشتلزم استفاده از دستگاه خاصی است که باعث ساطع کردن يک فرکانس خاص ماوراء بنفش باشد.. پيکربندی اين نوع از حافظه ها مستلزم استفاده از يک Programmer از نوع EPROM است که يک ولتاژ را در يک سطح خاص ارائه نمايند ( با توجه به نوع EPROM استفاده شده ) اين نوع حافظه ها ، نيز دارای شبکه ای مشتمل از سطر و ستون می باشند. در يک EPROM سلول موجود در نقظه برخورد سطر و ستون دارای دو ترانزيستور است .ترانزيستورهای فوق توسط يک لايه نازک اکسيد از يکديگر جدا شده اند. يکی از ترانزيستورها FloatingGate و ديگری Control Gate ناميده می شود. Floating gate صرفا" از طريق Controlgate به سطر مرتبط است. ماداميکه لينک برقرارباشد سلول دارای مقدار يک خواهد بود. بمنظور تغيير مقدار فوق به صفر به فرآيندی با نام Fowler-Nordheim tunneling نياز خواهد بود .Tunneling بمنظور تغيير محل الکترون های Floating gate استفاده می گردد.يک شارژ الکتريکی بين 10 تا 13 ولت به floating gate داده می شود.شارژ از ستون شروع و پس از ورود به floating gate در ground تخليه خواهد گرديد. شارژ فوق باعث می گردد که ترانزيستور floating gate مشابه يک "پخش کننده الکترون " رفتار نمايد . الکترون های مازاد فشرده شده و در سمت ديگر لايه اکسيد به دام افتاد و يک شارژ منفی را باعث می گردند. الکترون های شارژ شده منفی ، بعنوان يک صفحه عايق بين control gate و floating gate رفتار می نمايند.دستگاه خاصی با نام Cell sensor سطح شارژ پاس داده شده به floatinggate را مونيتور خواهد کرد. در صورتيکه جريان گيت بيشتر از 50 درصد شارژ باشد در اينصورت مقدار "يک" را دارا خواهد بود.زمانيکه شارژ پاس داده شده از 50 درصد آستانه عدول نموده مقدار به "صفر" تغيير پيدا خواهد کرد.يک تراشه EPROM دارای گيت هائی است که تمام آنها باز بوده و هر سلول آن مقدار يک را دارا است.
بمنظور باز نويسی يک EPROM می بايست در ابتدا محتويات آن پاک گردد. برای پاک نمودن می بايست يک سطح از انرژی زياد را بمنظور شکستن الکترون های منفی Floating gate استفاده کرد.در يک EPROM استاندارد ،عمليات فوق از طريق اشعه ماوراء بنفش با فرکانس 253/7 انحام می گردد.فرآيند حذف در EPROM انتخابی نبوده و تمام محتويات آن حذف خواهد شد. برای حذف يک EPROM می بايست آن را از محلی که نصب شده است جدا کرده و به مدت چند دقيقه زير اشعه ماوراء بنفش دستگاه پاک کننده EPROM قرار داد.
حافظه های EEPROM و Flash Memory
با اينکه حافظه ای EPROM يک موفقيت مناسب نسبت به حافظه های PROM از بعد استفاده مجدد می باشند ولی کماکن نيازمند بکارگيری تجهيزات خاص و دنبال نمودن فرآيندهای خسته کننده بمنظور حذف و نصب مجدد آنان در هر زمانی است که به يک شارژ نياز باشد. در ضمن، فرآيند اعمال تغييرات در يک حافظه EPROM نمی تواند همزمان با نياز و بصورت تصاعدی صورت پذيرد و در ابتدا می بايست تمام محتويات را پاک نمود.حافظه های ElectricallyErasableProgrammableReadOnlyMemory)EEPROM) پاسخی مناسب به نيازهای موجود است . در حافظه های EEPROM تسهيلات زير ارائه می گردد:
برای بازنويسی تراشه نياز به جدا نمودن تراشه از محل نصب شده نخواهد بود.
برای تغيير بخشی از تراشه نياز به پاک نمودن تمام محتويات نخواهد بود.
اعمال تغييرات در اين نوع تراشه ها مستلزم بکارگيری يک دستگاه اختصاصی نخواهد بود.
در عوض استفاده از اشعه ماوراء بنفش، می توان الکترون های هر سلول را با استفاده از يک برنامه محلی و بکمک يک ميدان الکتريکی به وضعيت طبيعی برگرداند. عمليات فوق باعث حذف سلول های مورد نظر شده و می توان مجددا" آنها را بازنويسی نمود.تراشه های فوق در هر لحظه يک بايت را تغيير خواهند داد.فرآيند اعمال تغييرات در تراشه های فوق کند بوده و در مواردی که می بايست اطلاعات با سرعت تغيير يابند ، سرعت لازم را نداشته و دارای چالش های خاص خود می باشند.
توليدکنندگان با ارائه Flash Memory که يک نوع خاص از حافظه های EEPROM می باشد به محدوديت اشاره شده پاسخ لازم را داده اند.در حافظه Falsh از مدارات از قبل پيش بينی شده در زمان طراحی ، بمنظور حذف استفاده می گردد ( بکمک ايجاد يک ميدان الکتريکی). در اين حالت می توان تمام و يا بخش های خاصی از تراشه را که " بلاک " ناميده می شوند، را حذف کرد.اين نوع حافظه نسبت به حافظه های EEPROM سريعتر است ، چون داده ها از طريق بلاک هائی که معمولا" 512 بايت می باشند ( به جای يک بايت در هر لحظه ) نوشته می گردند.