آشنایی با حافظه ROM و شناخت انواع آن
![حافظه rom](https://nirasystem.com/blog/wp-content/uploads/2020/05/rom.jpg)
حافظه ROM نوعی از حافظه است که داده ها را به طور دائم یا غیر دائم نگهداری می کند و به آن “فقط خواندنی” می گویند زیرا یک بار بر روی آن می نویسند و بارها آنرا می خوانند
ROM به حافظه غیرفرار نیز معروف است، زیرا هر داده ای که در آن ذخیره شود با قطع برق سیستم پاک نمی شود. توجه داشته باشید که RAM و ROM تناقضی با یکدیگر ندارند. در حقیقت تکنولوژی ROM زیر مجموعه ای از سیستم RAM می باشد، به طور خلاصه قسمتی از فضای حافظه RAM که به یک یا چند چیپ اشاره می کنند. به طور مثال هنگامی که کامپیوتر را روشن می کنیم پردازنده به طور خودکار به آدرس FFFF0h پرش می کند. در این آدرس دستوراتی است که به پردازنده می گویند چه کاری انجام دهد.
این محل ۱۶ بایتی درست در انتهای اولین مگابایت RAM و همچنین در پایان حافظه ROM قرار گرفته است. معمولا سیستم ROM از آدرس F0000h شروع می شود که ۶۴ کیلو بایت قبل از انتهای اولین مگابایت می باشد، و معمولا چون اندازه ROM 64 کیلو بایت است، ۶۴ کیلو بایت آخر اولین مگابایت را اشغال می کند و در آدرس FFF0h دستورات راه اندازی سیستم قرار دارد. افراد بسیاری تعجب می کنند که یک PC با اجرای دستورات ۱۶ بایت از حافظه ROM می تواند راه اندازی شود، اما این طراحی کاملا حساب شده است.
نحوه طراحی
این طراحی بدین گونه است که در ۱۶ بایت آخر ROM یک دستور JMP به اول ROM است و کنترل برنامه را به ابتدای ROM می برد، پس به این طریق می توانیم اندازه ROM را به هر قدر که بخواهیم افزایش دهیم. کارت های وفق دهنده ای که در طول راه اندازی سیستم مورد نیاز هستند، دارای یک ROM بر روی بردشان می باشند که از این کارت ها می توان کارت کنترلر IDE توسعه یافته، برخی از کارتهای شبکه (برای راه اندازی توسط Server ) را نام برد.
ROM هایی که بر روی کارت های وفق دهنده هستند توسط برنامه POST در طول راه اندازی سیستم اسکن و خوانده می شوند. ROM مادربرد قسمت خاصی از RAM ( از آدرس C00000h DFFFFh ) را رزرو می کند و سپس دو بایت از آدرس ۵۵ AAh را می خواند که در آن آدرس شروع ROM قرار دارد. سومین بایت اندازه ROM را در واحد ۵۱۲ بایت ( که Paragraph نامیده می شود ) نشان می دهد و چهارمین بایت شروع برنامه راه انداز می باشد. یک بایت نیز به منظور تست کردن توسط ROM مادربرد استفاده می شود.
ROM Shadowing
چیپ های RAM طبیعتا در مقابل چیپ های DRAM ها کند می باشند زیرا زمان دستیابی به ROM 150 نانوثانیه است، اما زمان دستیابی DRAM ها ۵۰ نانوثانیه می باشد. به همین دلیل در بسیاری از سیستم ها ROM ها به صورت پنهان ( Shadowing ) هستند، بدین معنی که ROM ها در ابتدای راه اندازی سیستم در چیپ های DRAM کپی می شوند که این باعث دسترسی و اجرای سریعتر عملیات می شود.
زیر برنامه ها و روال هایی که به روال های پنهانی ( Shoadowing Procedure ) معروفند، محتویات ROM را در RAM کپی می کنند و آدرس آن را به عنوان ROM معرفی می کنند و ROM واقعی را غیرفعال می کنند، که این باعث می شود که به نظر برسد که سیستم با سرعت ۶۰ نانوثانیه کار می کند.
استفاده از این روش هنگامی مفید است که از یک سیستم عامل ۱۶ بیتی مانند ِ DOS و یا WIN3.1 لستفاده می کنیم و اگر از سیستم عامل ۳۲ بیتی مانند WIN 98,WIN95,WIN NT استفاده می کنید، این روش تقریبا بی حاصل است، زیرا این سیستم عامل ها هنگامی که بر روی سیستم اجرا می شوند از کد ۱۶ بیتی ROM استفاده نمی کنند.
اما در عوض از گرداننده های ۳۲ بیتی که در طول راه اندازی سیستم عامل در حافظه RAM بارگذاری می کنند، استفاده می نمایند.
PROM
این چیپ ها که از نوع ROM می باشند در ابتدای ساخت خالی هستند و باید با داده هایی که می خواهید، برنامه ریزی کنید. این نوع حافظه ها در اواخر سال ۱۹۷۰ به وسیله شرکت Tenas Instruments ساخته شد و در اندازه های مختلف ۱ کیلو بایت تا ۲ مگابایت و بیشتر هستند که شماره شناسایی آنها ۲۷ nnnn می باشد که عدد ۲۷ شماره شناسایی چیپهای PROM می باشد و nnnn اندازه این چیپ بر حسب بایت می باشد.
اگر چه می گوییم این حافظه ها در ابتدای ساخت خالی هستند اما به طور تکنیکی دارای مقدار ۱ می باشند. بنابراین یک PROM خالی می تواند برنامه ریزی شده باشد و ما می توانیم بر روی آن بنویسیم. برای نوشتن به دستگاه مخصوص که ROM Programer یا سوزاننده ( Burner ) نام دارد، نیاز داریم.
برخی اوقات شنیده اید که به چیپ های ROM نیز Burning ( یعنی سوزان ) می گویند، زیرا هر بیت باینری یک فیوز است که سالم بودن آن نشانگر یک و در غیراین صورت صفر می باشد.
بهتر است که بدانید اکثر چیپ ها با ۵ ولت جریان فعال می شوند و هنگامی که ما برنامه ای را بر روی چیپ های PROM می نویسیم یا اصطلاحا Program می نمائیم، جریانی بیشتر از ۵ ولت که معمولا ۱۲ ولت است اعمال می کنیم که این باعث سوختن فیوزهای آدرس هایی می شود که ما می خواهیم. باید توجه داشته باشید که ما می توانیم یک را صفر تبدیل کنیم ولی برعکس آن ممکن نیست. به این چیپ ها OTP ) One Time Programmable ) نیز می گویند.
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 استفاده می گردد.یک شارژ الکتریکی بین ۱۰ تا ۱۳ ولت به floating gate داده می شود.شارژ از ستون شروع و پس از ورود به floating gate در ground تخلیه خواهد گردید.
+ مقاله پیشنهادی بعدی برای مطالعه : از فناوری بلاک چین چه میدانید؟
ادامه…
شارژ فوق باعث می گردد که ترانزیستور floating gate مشابه یک “پخش کننده الکترون ” رفتار نماید . الکترون های مازاد فشرده شده و در سمت دیگر لایه اکسید به دام افتاد و یک شارژ منفی را باعث می گردند. الکترون های شارژ شده منفی ، بعنوان یک صفحه عایق بین control gate و floating gate رفتار می نمایند.دستگاه خاصی با نام Cell sensor سطح شارژ پاس داده شده به floating gate را مونیتور خواهد کرد. در صورتیکه جریان گیت بیشتر از ۵۰ درصد شارژ باشد در اینصورت مقدار “یک” را دارا خواهد بود.زمانیکه شارژ پاس داده شده از ۵۰ درصد آستانه عدول نموده مقدار به “صفر” تغییر پیدا خواهد کرد.یک تراشه EPROM دارای گیت هائی است که تمام آنها باز بوده و هر سلول آن مقدار یک را دارا است.
به منظور باز نویسی یک EPROM می بایست در ابتدا محتویات آن پاک گردد. برای پاک نمودن می بایست یک سطح از انرژی زیاد را به منظور شکستن الکترون های منفی Floating gate استفاده کرد.در یک EPROM استاندارد ،عملیات فوق از طریق اشعه ماوراء بنفش با فرکانس ۲۵۳/۷ انحام می گردد.فرآیند حذف در EPROM انتخابی نبوده و تمام محتویات آن حذف خواهد شد. برای حذف یک EPROM می بایست آن را از محلی که نصب شده است جدا کرده و به مدت چند دقیقه زیر اشعه ماوراء بنفش دستگاه پاک کننده EPROM قرار داد.
EEPROM و Flash Memory
با اینکه حافظه ای EPROM یک موفقیت مناسب نسبت به حافظه های PROM از بعد استفاده مجدد می باشند ولی کماکن نیازمند بکارگیری تجهیزات خاص و دنبال نمودن فرآیندهای خسته کننده به منظور حذف و نصب مجدد آنان در هر زمانی است که به یک شارژ نیاز باشد. در ضمن، فرآیند اعمال تغییرات در یک حافظه EPROM نمی تواند همزمان با نیاز و بصورت تصاعدی صورت پذیرد و در ابتدا می بایست تمام محتویات را پاک نمود.حافظه های Electrically Erasable Programmable Read Only Memory)) پاسخی مناسب به نیازهای موجود است . در حافظه های EEPROM تسهیلات زیر ارائه می گردد:
- برای بازنویسی تراشه نیاز به جدا نمودن تراشه از محل نصب شده نخواهد بود.
- برای تغییر بخشی از تراشه نیاز به پاک نمودن تمام محتویات نخواهد بود.
- اعمال تغییرات در این نوع تراشه ها مستلزم بکارگیری یک دستگاه اختصاصی نخواهد بود.