حافظه ROM حافظه ROM یک نوع مدار مجتمع (IC) است که در زمان ساخت داده هائی در آن ذخیره می گردد. این نوع از حافظه ها علاوه بر استفاده در کامپیوترهای شخصی در سایر دستگاههای الکترونیکی نیز بخدمت گرفته می شوند. حافظه های ROM از لحاظ تکنولوژی استفاده شده، دارای انواع زیر می باشند:
*
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 بایت می باشند ( به جای یک بایت در هر لحظه ) نوشته می گردند.