10-05-2019, 10:01 AM
ROM نوعی از حافظه است که داده ها را به طور دائم یا غیر دائم نگهداری می کند .به آن فقط خواندنی می گویند زیرا یک بار بر روی آن می نویسند و بارها آنرا می خوانند و اگر دوباره قابل نوشتن باشد بسیار دشوار است ...
ROM به حافظه غیرفرار نیز معروف است، زیرا هر داده ای که در آن ذخیره شود با قطع برق سیستم پک نمی شود. توجه داشته باشید که RAM و ROM تناقضی با یکدیگر ندارند. در حقیقت تکنولوژی ROM زیر مجموعه ای از سیستم RAM می باشد، به طور خلاصه قسمتی از فضای حافظه RAM که به یک یا چند چیپ اشاره می کنند. به طور مثال هنگامی که کامپیوتر را روشن می کنیم پردازنده به طور خودکار به آدرس FFFF0h پرش می کند. در این آدرس دستوراتی است که به پردازنده می گویند چه کاری انجام دهد.
این محل 16 بایتی درست در انتهای اولین مگابایت RAM و همچنین در پایان حافظه ROM قرار گرفته است. معمولا سیستم ROM از آدرس F0000h شروع می شود که 64 کیلو بایت قبل از انتهای اولین مگابایت می باشد، و معمولا چون اندازه ROM 64 کیلو بایت است، 64 کیلو بایت آخر اولین مگابایت را اشغال می کند و در آدرس FFF0h دستورات راه اندازی سیستم قرار دارد. افراد بسیاری تعجب می کنند که یک PC با اجرای دستورات 16 بایت از حافظه ROM می تواند راه اندازی شود، اما این طراحی کاملا حساب شده است.
این طراحی بدین گونه است که در 16 بایت آخر ROM یک دستور JMP به اول ROM است و کنترل برنامه را به ابتدای ROM می برد، پس به این طریق می توانیم اندازه ROM را به هر قدر که بخواهیم افزایش دهیم. کارت های وفق دهنده ای که در طول راه اندازی سیستم مورد نیاز هستند، دارای یک ROM بر روی بردشان می باشند که از این کارت ها می توان کارت کنترلر IDE توسعه یافته، برخی از کارتهای شبکه (برای راه اندازی توسط Server ) را نام برد.
ROM هایی که بر روی کارت های وفق دهنده هستند توسط برنامه POST در طول راه اندازی سیستم اسکن و خوانده می شوند. ROM مادربرد قسمت خاصی از RAM ( از آدرس C00000h DFFFFh ) را رزرو می کند و سپس دو بایت از آدرس 55 AAh را می خواند که در آن آدرس شروع ROM قرار دارد. سومین بایت اندازه ROM را در واحد 512 بایت ( که Paragraph نامیده می شود ) نشان می دهد و چهارمین بایت شروع برنامه راه انداز می باشد. یک بایت نیز به منظور تست کردن توسط ROM مادربرد استفاده می شود.
● ROM Shadowing :
چیپ های RAM طبیعتا در مقابل چیپ های DRAM ها کند می باشند زیرا زمان دستیابی به ROM 150 نانوثانیه است، اما زمان دستیابی DRAM ها 50 نانوثانیه می باشد. به همین دلیل در بسیاری از سیستم ها ROM ها به صورت پنهان ( Shadowing ) هستند، بدین معنی که ROM ها در ابتدای راه اندازی سیستم در چیپ های DRAM کپی می شوند که این باعث دسترسی و اجرای سریعتر عملیات می شود.
زیر برنامه ها و روال هایی که به روال های پنهانی ( Shoadowing Procedure ) معروفند، محتویات ROM را در RAM کپی می کنند و آدرس آن را به عنوان ROM معرفی می کنند و ROM واقعی را غیرفعال می کنند، که این باعث می شود که به نظر برسد که سیستم با سرعت 60 نانوثانیه کار می کند.
استفاده از این روش هنگامی مفید است که از یک سیستم عامل 16 بیتی مانند ِ DOS و یا WIN3.1 لستفاده می کنیم و اگر از سیستم عامل 32 بیتی مانند WIN 98,WIN95,WIN NT استفاده می کنید، این روش تقریبا بی حاصل است، زیرا این سیستم عامل ها هنگامی که بر روی سیستم اجرا می شوند از کد 16 بیتی ROM استفاده نمی کنند.
اما در عوض از گرداننده های 32 بیتی که در طول راه اندازی سیستم عامل در حافظه RAM بارگذاری می کنند، استفاده می نمایند.
ROM به حافظه غیرفرار نیز معروف است، زیرا هر داده ای که در آن ذخیره شود با قطع برق سیستم پک نمی شود. توجه داشته باشید که RAM و ROM تناقضی با یکدیگر ندارند. در حقیقت تکنولوژی ROM زیر مجموعه ای از سیستم RAM می باشد، به طور خلاصه قسمتی از فضای حافظه RAM که به یک یا چند چیپ اشاره می کنند. به طور مثال هنگامی که کامپیوتر را روشن می کنیم پردازنده به طور خودکار به آدرس FFFF0h پرش می کند. در این آدرس دستوراتی است که به پردازنده می گویند چه کاری انجام دهد.
این محل 16 بایتی درست در انتهای اولین مگابایت RAM و همچنین در پایان حافظه ROM قرار گرفته است. معمولا سیستم ROM از آدرس F0000h شروع می شود که 64 کیلو بایت قبل از انتهای اولین مگابایت می باشد، و معمولا چون اندازه ROM 64 کیلو بایت است، 64 کیلو بایت آخر اولین مگابایت را اشغال می کند و در آدرس FFF0h دستورات راه اندازی سیستم قرار دارد. افراد بسیاری تعجب می کنند که یک PC با اجرای دستورات 16 بایت از حافظه ROM می تواند راه اندازی شود، اما این طراحی کاملا حساب شده است.
این طراحی بدین گونه است که در 16 بایت آخر ROM یک دستور JMP به اول ROM است و کنترل برنامه را به ابتدای ROM می برد، پس به این طریق می توانیم اندازه ROM را به هر قدر که بخواهیم افزایش دهیم. کارت های وفق دهنده ای که در طول راه اندازی سیستم مورد نیاز هستند، دارای یک ROM بر روی بردشان می باشند که از این کارت ها می توان کارت کنترلر IDE توسعه یافته، برخی از کارتهای شبکه (برای راه اندازی توسط Server ) را نام برد.
ROM هایی که بر روی کارت های وفق دهنده هستند توسط برنامه POST در طول راه اندازی سیستم اسکن و خوانده می شوند. ROM مادربرد قسمت خاصی از RAM ( از آدرس C00000h DFFFFh ) را رزرو می کند و سپس دو بایت از آدرس 55 AAh را می خواند که در آن آدرس شروع ROM قرار دارد. سومین بایت اندازه ROM را در واحد 512 بایت ( که Paragraph نامیده می شود ) نشان می دهد و چهارمین بایت شروع برنامه راه انداز می باشد. یک بایت نیز به منظور تست کردن توسط ROM مادربرد استفاده می شود.
● ROM Shadowing :
چیپ های RAM طبیعتا در مقابل چیپ های DRAM ها کند می باشند زیرا زمان دستیابی به ROM 150 نانوثانیه است، اما زمان دستیابی DRAM ها 50 نانوثانیه می باشد. به همین دلیل در بسیاری از سیستم ها ROM ها به صورت پنهان ( Shadowing ) هستند، بدین معنی که ROM ها در ابتدای راه اندازی سیستم در چیپ های DRAM کپی می شوند که این باعث دسترسی و اجرای سریعتر عملیات می شود.
زیر برنامه ها و روال هایی که به روال های پنهانی ( Shoadowing Procedure ) معروفند، محتویات ROM را در RAM کپی می کنند و آدرس آن را به عنوان ROM معرفی می کنند و ROM واقعی را غیرفعال می کنند، که این باعث می شود که به نظر برسد که سیستم با سرعت 60 نانوثانیه کار می کند.
استفاده از این روش هنگامی مفید است که از یک سیستم عامل 16 بیتی مانند ِ DOS و یا WIN3.1 لستفاده می کنیم و اگر از سیستم عامل 32 بیتی مانند WIN 98,WIN95,WIN NT استفاده می کنید، این روش تقریبا بی حاصل است، زیرا این سیستم عامل ها هنگامی که بر روی سیستم اجرا می شوند از کد 16 بیتی ROM استفاده نمی کنند.
اما در عوض از گرداننده های 32 بیتی که در طول راه اندازی سیستم عامل در حافظه RAM بارگذاری می کنند، استفاده می نمایند.