تمام مباحث مربوط به تعمیرات

همه چیز درباره firmware یا میان افزار

میان افزار یا firmwareچیست؟جواب دادن به این سؤال کمی پیچیده است. تا حدودی می‌توان گفت که با یک مفهوم سر و کار داریم مفهومی به نام میان‌افزار موجودیتی که نه سخت‌افزار است نه کاملاً می‌توان آن را نرم‌افزار دانست. بهتر است کمی بیشتر توضیح دهیم.
برای مدیریت هر سخت‌افزاری یا بهتر بگوییم برای استفاده بهینه از امکانات سخت‌افزاری، نیازمند یک سیستم مدیریتی هستیم که توانایی مدیریت و زمانبندی اجرا و کنترل فرآیندها و پردازش‌ها را داشته باشد. در مدل‌های پیشرفته (مانند انواع کامپیوتر، برخی از مدل‌های گوشی موبایل و انواع Handheld) نام این سیستم مدیریتی سیستم‌عامل و در مدل‌های ساده‌تر (مانند انواع پخش‌کننده MP۳ ، انواع ساده گوشی موبایل همانند نوکیا ۱۱۰۰ و انواع ساده‌تر و دستگاه‌های ساده‌تر مانند انواع رایتر ) نام آن Firmware یا به فارسی میان‌افزار است.

در انواع پیشرفته، کار میان‌افزار ترجمهِ دستورات نرم‌افزاری به زبان قابل فهم برای سخت‌افزار و در انواع ساده‌تر مثلاً در یک پخش‌کننده MP۳ تفسیر فرامین صادر شده از طریق دکمه و درخواست اجرای فرمان مورد نظر از سیستم یا مدارات موجود در دستگاه است.

محل دقیق میان‌افزار کمی بالاتر از سخت‌افزار است. در واقع می‌توان اظهار داشت که اولین نرم‌افزار مرتبط ( یا حتی تنها نرم‌افزار) با سخت‌افزار، میان‌افزار است. برنامه‌نویسان می‌دانند که محل قرارگیری میان‌افزار، دقیقاً پایین‌تر از اسمبلر است.

میان‌افزارها را در کارگاه یا کارخانه به وسیله دستگاه‌هایی به نام Emulator در حافظه‌های قابل برنامه‌ریزی و فقط خواندنی موسوم به Programable Read- Only Memory) PROM) قرار می‌دهند. در واقع این حافظه‌ها را به وسیله Emulator برنامه‌ریزی می‌کنند. یک نمونه از انواع این حافظه‌ها همان بایوس کامپیوتر است که میان‌افزاری را (همان تنظیمات بایوس) نیز اجرا می‌کند. محتویات این حافظه‌ها نیز ایستا است و پس از خاموش شدن دستگاه به اطلاعات موجود در آن‌ها صدمه‌ای وارد نمی‌آید.

گاهی ممکن است در زمان طراحی و تولید این میان نرم‌افزارها (که در مرحله طراحی و تولید گهگاه به اندازه یک برنامه سنگین محاسباتی زمان‌بر هستند) مشکلاتی به وجود آید که تنها در زمان عملکرد مشخص شوند. از این رو تولیدکنندگان سخت‌افزار مرتباً به بررسی میان‌افزارهای نصب شده اقدام می‌کنند و در صورت وجود خطا یا ایراد نرم‌افزاری، اقدام به برطرف نمودن آن ایراد می‌کنند و نسخه بروز شده آن میان‌افزار را منتشر می‌سازند. از این رو بروز‌رسانی میان‌افزار سخت‌افزار‌های نصب شده در کامپیوترمان، گوشی موبایلمان، پخش‌کننده MP۳ و دستگاه‌های سخت‌افزاری که کنترل شبه‌‌نرم‌افزاری دارند، کاری عاقلانه و سنجیده است.

رایتر شما چه CD Writer باشد، چه DVD Writer، فارغ از نوع، مدل و نشان تجاری دستگاه، دارای یک Firmware است. مانند تمام نرم‌افزارها، Firmware نیز مرتباً از سوی سازنده ارتقا پیدا می‌کند. دلیل این کار نیز کاملاً مشخص است؛ برطرف کردن مشکلات و نواقصی که در زمان طراحی یا تولید و اجرای آن به‌وجود می‌آیند.

این مشکلات ممکن است در مراحل اولیه طراحی و تولید خود را نشان ندهند. معمولاً پس از اجرای نرم‌افزار، نمایش انواع باگ‌ها و مشکلات منطقی و غیر‌منطقی شروع می‌شود و شب‌های به‌یاد ماندنی‌ای را برای تیم طراحی به یادگار خواهد گذاشت. از این‌رو هر تولید‌کننده‌ای برای این‌که ضمن حفظ اعتبار خود مشکلاتی را که ممکن است در زمان استفاده توسط کاربر تشخیص داده شوند، برطرف سازد، اقدام به تهیه نسخه‌های بهبود یافته Firmware دستگاه‌های تولیدی خود می‌نماید.

توجه داشته باشید که ممکن است در زمان استفاده از درایو نوری خود، هرگز متوجه مشکلات موجود نشوید، اما مطمئن باشید اگر با روشی که در ادامه معرفی خواهد شد، آگاهی یافتید که Firmware بروز شده‌ای از سوی تولید کننده ارائه شده است، به طور حتم مشکل یا مشکلاتی در Firmware دستگاه وجود دارد. بنابراین می‌توانید اقدام به بروز‌کردن دستگاهتان کنید.

مراحل کار

اول از همه باید نوع و مدل درایو موجود را تشخیص دهید. برای این‌کار بهتر است از خود ویندوز کمک بگیرید. البته نرم‌افزارهایی هم وجود دارند که به بررسی سخت‌افزارهای نصب شده روی کامپیوتر می‌پردازند و نشان تجاری، مدل و اطلاعات مختلفی از جمله نگارش و مدل Firmware هر دستگاه را به شما ارائه می‌دهند.

از قسمت System Properties تب Hardware را انتخاب نمایید و روی دکمه Device Manager کلیک کنید. روی علامت (+) عبارت DVD/CD-ROM Drives کلیک کنید. فهرست درایوهای نوری موجود روی کامپیوترتان را مشاهده خواهید کرد. در این فهرست نام هر دستگاه به همراه مدل آن آورده شده است. به عنوان مثال، به چنین عبارتی برخورد خواهید کرد:

SONY DVD RW DRU-۸۲۰۸A
این عبارت علاوه بر نام تولید‌کننده، نوع و مدل دستگاه را نیز نمایش می‌دهد. اگر از این روش لذت نمی‌برید، می‌توانید از Nero کمک بگیرید. در مجموعه نرم‌افزاری Nero، برنامه‌ای به نام Nero Info Tool وجود دارد که از همان ابزارهایی است که تمام زیر‌و‌بم‌‌های موجود و مرتبط با درایوهای نوری را بررسی می‌کند. مزیت استفاده از این ابزار این‌است که نگارش Firmware درایو را نیز نمایش می‌دهد.

پس از این‌که اطلاعات مورد نظر را استخراج کردید، به اینترنت متصل شوید و در موتور جست‌و‌جوی گوگل، از کلید‌واژه ترکیبی زیر برای یافتن فایل مورد نظر استفاده کنید:

Properties + Firmware + Download&Your Drive name

در عبارت بالا به جای Your Drive name & Properties نام و مدل دستگاهتان را که در مرحله قبل استخراج کردید، بنویسید. به عنوان مثال، من برای DVD Writer خود باید چنین واژه‌ای را جست‌و‌جو کنم:

SONY DVD RW DRU-۸۲۰A + Firmware + Download

توجه کنید که تنها قسمت اول را تغییر دهید. با این‌کار (استفاده از این کلیدواژه) گوگل در سایت‌هایی جست‌و‌جو خواهد کرد که حاوی لینک‌هایی به منابعی هستند که شامل آن سه کلید واژه ذکر شده می‌گردند. مطمئن باشید که اولین یا دومین هیت (نتیجه یک جست‌و‌جو در یک موتور جست‌و‌جو، تعدادی هینت یا تطابق است که به صورت فهرست شده نمایش داده می‌شوند) شما را به هدف خواهد رساند.

معمولاً تمام تلاش‌های ما سرانجام به دانلود یک فایل چندصد کیلوبایتی منتهی خواهد شد. توجه داشته باشید که علاوه بر خود تولید کننده، شرکت‌ها و حتی اشخاص دیگری نیز اقدام به تهیه Firmware برای دستگاه‌ها می‌نمایند. بر اساس تجربه بهتر است از نسخه‌ای استفاده کنید که توسط خود سازنده ارائه شده است.

پس از این‌که فایل یا فایل‌ها را دانلود کردید، زمانی فرا می‌رسد که ‌باید مهم‌ترین و شاید خطرناک‌ترین قسمت کار را انجام دهید. در این مرحله باید یک فایل اجرایی را اجرا کنید تا روند آپدیت‌کردن بایوس به صورت خودکار طی شود. البته قبل از انجام هرکاری، روشی را که سازنده اعلام کرده است، به دقت مطالعه کنید. ممکن است برای این کار لازم باشد تغییراتی را به صورت موقت در آرایش سخت‌افزاری کامپیوترتان اعمال کنید. ممکن است نیاز باشد زمانی که شما دو درایو را به یک کابل متصل کرده‌اید، یکی را از کابل موقتاً جدا نمایید و پس از آپدیت شدن بایوس درایو مورد نظرتان، دوباره درایو دیگر را به کابل متصل کنید.

با این حال قدر مسلم این است که دقت داشته باشید فارغ از نوع و مدل دستگاه، زمانی که برنامه مشغول آپدیت کردن بایوس درایوتان است (که مدت زمان اندکی است) هرگز برنامه‌های دیگری را اجرا نکنید. قبل از اجرا، اتصال به اینترنت خود را قطع نمایید و برنامه آنتی‌ویروس خود را نیز غیر‌فعال کنید. همچنین هر نوع CD و یا DVD را از درایو خارج کنید.

دقت کنید که ممکن است در طی این زمان چراغ‌ یا چراغ‌های روی درایو روشن شوند یا چشمک بزنند. این عمل غیر عادی نیست. تعجب نکنید و هرگز اقدام به باز کردن درِ درایو نکنید. همچنین سعی کنید برق کامپیوتر قطع نشود! چون ممکن است مجبور شوید درایو را برای تعمیر به گارانتی بفرستید یا در بدترین شکل ممکن، مجلس ختمی برای درایو محبوبتان برگزار کنید.

اما از هیچ چیز نترسید. شخصاً بارها این‌کار را انجام داده‌ام و حتی درایوهای دوستان و آشنایان را نیز از این آزمایش‌ها گذرانده‌ام. خیالتان راحت باشد. این کار را اگر بر اساس روشی که از سوی تولید‌کننده ارائه شده است انجام دهید، هیچ مشکلی برای درایو‌تان به وجود نخواهد آمد.

پس از این‌که Firmware درایوتان را آپدیت کردید، مطمئناً درایوتان بی‌عیب و نقص‌تر از گذشته کار خواهد کرد، اما انتظار نداشته باشید که فرآیند رایت کردن اطلاعات با سرعت بیشتری انجام شود یا سخت‌افزار دستگاهتان تغییر کند. اما مطمئنا خطاهای کمتری در زمان خواندن و نوشتن انواع دیسک‌ها بروز خواهد نمود.

بایوس و اطلاعات بیشتر

BOIS تنها کلمه ای است که می تواند تمام درایورهایی را که در یک سیستم به عنوان واسط سخت افزار و سیستم عامل کار می کنند ، را شرح دهد.
BOIS در حقیقت رابط بین نرم افزار و سخت افزار است . قسمتی از بایوس بر روی چیپست ROM مادربرد و قسمتی دیگر بر روی چیپست کارتهای وفق دهنده قرار دارد که FIRE WARE (یعنی میانه افزار یا سفت افزار) نامیده میشود .
یک PC می تواند شامل لایه هایی (بعضی نرم افزاری و بعضی سخت افزاری ) باشد که واسط بین یکدیگرند. در اکثر اوقات شما می توانید یک کامپیوتر را به چهار لا یه تقسیم کنید که هر کدام از لایه ها به زیر مجموعه هایی کوچکتر تقسیم کنیم . هدف از این نوع طراحی این است که سیستم عامل ها و نرم افزار های مختلف بر روی سخت افزار های مختلف اجرا شوند (حالت مستقل از سخت افزار ) . بدین طریق دو ماشین با دو پردازنده مختلف، رسانه های ذخیره سازی متفاوت و دو نوع واحد گرافیکی و غیره می توانند یک نرم افزار را اجرا کنند .
در معماری این لایه ها برنامه های کاربردی با سیستم عامل از طریق API (Application Program Interface)ارتباط برقرار می کنند .
API بر اساس سیستم عاملی که مورد استفاده قرار می گیرد و مجموعه توابع و دستورالعملهایی که برای یک بسته نرم افزاری ارائه می دهد ، متغیر می باشد . به طور مثال یک بسته نرم افزاری می تواند از سیستم عامل برای ذخیره و بازیابی اطلاعات استفاده کند و خود نرم افزار مجبور نیست که این کارها را انجام دهد.
نرم افزارها طوری طراحی شده اند که ما می توانیم آنرا بر روی سیستمهای دیگر نصب و اجرا نمائیم و این به دلیل مجزا شدن سخت افزار از نرم افزار است و نرم افزار از سیستم عامل برای دستیابی به سخت اقزار سیستم استفاده می کند . سپس سیستم عامل از طریق واسط ها به لایه های بایوس دستیابی پیدا می کند .بایوس شامل نرم افزارهای گرداننده ای است که بین سخت افزار و سیستم عامل ارتباط برقرار می کند . به خودی خود سیستم عامل هیچگاه نمی تواند مستقیما به سخت افزار دستیابی پیدا کند ، در عوض مجبور است از طریق برنامه های گرداننده ای که به این کار تخصیص یافته اند عمل کند .
یکی از وظایف تولید کنندگان قطعات سخت افزاری آن است که گرداننده ای برای قطعات تولیدی خود ارائه دهند ، و چون گرداننده ها باید بین سخت افزار و نرم افزار عمل نمایند ، باید گرداننده های هر سیستم عامل مجزا تولید شوند . بنابراین کارخانه سازنده قطعات باید گرداننده های مختلفی ارائه دهد تا قطعه مورد نظر بتواند بر روی سیستم عاملهای مرسوم کار کند .

چون لایه های بایوس همانند یک سیستم عامل به نظر می رسند ، مهم نیست که با چه سخت افزاری کار می کند ، و ما می توانیم سیستم عاملها را بر روی هر کامپیوتری و با هر نوع مشخصات سخت افزاری نصب و استفاده نمائیم .
برای مثال شما می توانید Windows 98 را بر روی دو سیستم متفاوت با پردازنده ، هارد دیسک و کارت گرافیکی و . . . که متفاوت از یکدیگرند نصب و اجرا کنید ، اما بر روی هر دو سیستم همان کارائی خود را داراست، زیرا که گرداننده ها همان عملکرد پایه را انجام می دهند و مهم نیست که بر روی چه سخت افزاری کار می کنند .

معماری سخت افزار و نرم افزار بایوس
البته بایوس ، نرم افزاری است که شامل گرداننده های مختلفی است که که رابط بین سخت افزار و سیستم عامل هستند یعنی بایوس نرم افزاری است که همه آن از روی دیسک بارگذاری نمی شود بلکه قسمتی از آن ، قبلا بر روی چیپهای موجود در سیستم یا برروی کارتهای وفق دهنده نصب شده اند.

بایوس در سیستم به سه صورت وجود دارد :
1-ROM BIOS نصب شده بر روی مادر برد.
2- بایوس نصب شده بر روی کارتهای وفق دهنده (همانند کارت ویدئویی)
3- بارگذاری شده از دیسک(گرداننده ها)

چون بایوس مادربرد مقدمات لازم را برای گردادننده ها و نرم افزارها ی مورد نیاز فراهم میکند ، اکثراً به صورت سخت افزاری که شامل یک چیپ ROM می باشد موجود است.
سالهای پیش هنگامی که سیستم عامل DOS بر روی سیستم اجرا میشد خود به تنهائی کافی بود و گرداننده ای (Driver) مورد نیاز نداشت . بایوس مادربرد به طور عادی شامل گرداننده هایی است که برای یک سیستم پایه همانند صفحه کلید، فلاپی درایو، هارد دیسک ، پورتهای سریال و موازی و غیره … است.
به جای اینکه برای دستگاههای جدید لازم باشد که بایوس مادربرد را ارتقاء دهید، یک نسخه از گرداننده آن را بر روی سیستم عامل خود نصب می نمائید تا سیستم عامل پیکربندی لازم را در هنگام بوت شدن سیستم را برای استفاده ار آن دستگاه انجام دهد ،
برای مثال می توانیم CD ROM،Scanner،Printer و گرداننده های PC CARD را نام برد.چون این دستکاهها لازم نیستند که در هنگام راه اندازی سیستم فعال باشند ، سیستم ابتدا از هارد دیسک راه اندازی می شود وسپس گرداننده های آنرا بار گذاری می نماید.
البته بعضی از دستگاهها لازم است که در طول راه اندازی سیستم عامل فعال باشند ، اما این امر چگونه امکان پذیر است مثلا قبل از آنکه گرداننده کارت ویدئویی از ROM BIOS و یا از روی هارد دیسک فراخوانی شود شما چگونه می توانید اطلاعات را بر روی مانیتور ببینید ..
یک جواب این است که در ROM تمام گرداننده های کارت گرافیکی وحود داشته باشد اما این کار غیر ممکن نیست زیرا کارتهای بسیار متنوعی وجو دارد که هر کدام گرداننده مربوط به خود را داراست که این خود باعث می شود صدها نوع ROM مادربرد به وجود آید که هر کدام مربوط به یک کارت گرافیکی می باشد.
اما هنگامی که IBM , PC های اولیه خود را اختراع نمود راه حل بهتری ارائه داد . او ROM مادربرد را طوری طراحی کرد که شکاف (Slot)کارت گرافیکی را برای پیدا کردن ROM نصب شده روی کارت گرافیکی را جستجو کند .
و اگر ROM روی کارت را می توانست پیدا می کرد ، مرحله اولیه راه اندازی را قبل از اینکه سیستم عامل از روی دیسک فراخوانی (Load) شود ،اجرا می نمود. بدین وسیله از تعویض ROM قرار داده شده بر روی مادربرد برای استفاده و فعال کردن دستگاه مورد نظر،ممانعت می کند.

کارتهای مختلفی که تقریبا بر روی همه آنها ROM وجود دارد ، شامل موارد زیر هستند :
کارتهای ویدئویی که همیشه دارای BIOS می باشند.
وفق دهنده های SCSI که امکان استفاده از دستگاههای با اتصالات SCSI را فراهم می آورد .
کارتهای شبکه که امکان راه اندازی سیستم با استفاده از فایل سرور که معمولا Boot Rom یا IPL(Initial Program Load) ROM نامیده می شوند، را فراهم می آورد ..
استفاده از دستگاههای IDE
بردهای Y2K که برای کامل کردن CMOS RAM هستند .

BIOS و CMOS RAM
اکثر افراد BIOS رابا CMOS RAM اشتباه می گیرند ، این از آنجا سرچشمه می گیرد که برنامه Setup برای پیکربندی BIOS و ذخیره آن در CMOS RAM می شود استفاده می شود.
در حقیقت BIOS و CMOS RAM دو چیز متفاوت از هم می باشند. بایوس مادربرد در یک چیپ ROM به طور ثابت ذخیره شده است.
همچنین بر روی مادربرد یک چیپ است که RTC/NVRAM نامیده می شود ، که زمان سیستم را نگهداری می کند و یک حافظه فرار و ثابت است که اولین بار در چیپ MC146818 ساخت شرکت موتورلا استفاده شده است، و ظرفیت آن 64 بایت است که 10 بایت آن مربوط به توابع ساعت است ..
اگرچه این چیپ غیر فرار نامیده می شود اما با قطع برق ، ساعت و تاریخ تنظیم شده در آن و داده های درون RAM پاک می شود .
در حقیقت غیر فرار نامیده می شود چون با استفاده از تکنولوژی) CMOS(Complementarry Metal-Oxide Semicondector ساخته شده است ، در نتیجه با یک جریان بسیار کم که بوسیله باطری سیستم تامین می گردد ، پایدار باقی می ماند که اکثر مردم به این چیپ ،CMOS RAM می گویند .
هنگامی که وارد BIOS Setup می شوید و پارامترهای خود راتنظیم و ذخیره می نمایید ، این تنظیمات در ناحیه ای از چیپ RTC/NVRAM ذخیره می شوند(که همچنین CMOS RAM نیز نامیده می شود).
و در هر موقع که سیستم خود را راه اندازی می کنید پارامترها از CMOS RAM خوانده می شوند و تعیین می کنند که سیستم چگونه پیگربندی شده است.
BOIS مادربرد :
همه مادربردها شامل یک چیپ مخصوص هستند که بر روی آن نرم افزاری قرار دارد که BIOS یا ROM BIOS نامیده می شود . این چیپ ROM شامل برنامه های راه اندازی و گرداننده هایی است که که در هنگام راه اندازی سیستم مورد نیاز است و یک واسطه به سخت افزار پایه سیستم است .
اغلب به CMOS RAM (حافظه پاک نشدنی NVRAM(Non-Volatile نیز می گویند ، چون با 1 میلینیوم آمپر فعال می شود و تا هنگامی که باطری لیتیوم فعال باشد ، داده ها باقی می مانند.
BIOS مجموعه ای از برنامه هایی است که در یک یا چند چیپ ذخیره شده است ، که در طول راه اندازی سیستم این مجموعه از برنامه ها قبل از هر برنامه ای حتی سیستم عامل بارگذاری می شوند .
BIOS در اکثر سیستمهای PC ها شامل چهار تابع است:
POST(Power Self On) Test: این برنامه پردازنده، حافظه ،چیپستها ،وفق دهنده ویدوئویی ، دیسک کنترلر ،گرداننده های دیسکی ،صفحه کلید ،و مدارات دیگر را تست می کند.
BIOS Setup: برنامه ای است که در طول اجرای برنامه POST بافشار دادن کلید خاصی فعال می شود و به شما اجازه می دهد مادربرد را پیکربندی کنید و تنظیم پارامترهایی همانند ساعت و تاریخ و پسورد و … را انجام دهید. در سیستمهای 286 و 386 برنامه Setup در ROM آنها وجود ندارد و لازم است که شما سیستم را توسط دیسک مخصوص Setup راه اندازی نمائید.
بارگذارکننده یا لودر BootStrap :روالی است که سیستم ار برای پیدا کردن سکتور Boot جستجو می کند .
BIOS: که مجموعه ای از گرداننده هایی است که واسط بین سخت افزار و سیستم عامل است.

سخت افزار ROM:
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 BIOS اصلی که برروی مادربرد است شامل یک چیپ ROM است.چون قسمت اصلی BIOS در ROM است ، ما اغلب آنرا ROM BIOS می نامیم .
کارت های وفق دهنده ای که در طول راه اندازی سیستم مورد نیاز هستند دارای یک ROM بر روی بردشان می باشند . که از این کارتها می توان کارت ویدئو ،اکثر Small Small Cmputer System Interface) SCSI( ها ، کارت کنترلر IDE توسعه یافته، برخی از کارتهای شبکه (برای راه اندازی توسط Server) .

ROMهایی که بر روی کارتهای وفق دهنده هستند توسط برنامه POST در طول راه اندازی سیستم اسکن و خوانده می شوند. ROM مادربرد قسمت خاصی ازRAM (از آدرس C00000h-DFFFFh) را رزرو می کند و سپس دوبایت از آدرس 55AAh را می خواند که در آن آدرس شروع 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 وجود دارد :
* ROM
* PROM
*EPROM
EEPROM * که نیز Flash ROM نیز می نامند.

PROM:
این چیپها که از نوع ROM می باشند در ابتدای ساخت خالی می باشند و باید با داده هایی که می خواهید برنامه ریزی کنید. این نوع حافظه ها در اواخر سال 1970 به وسیله شرکت Tenas Instruments ساخته شد ودر اندازه های مختلف 1 کیلو بایت تا 2 مگابایت و بیشتر هستند که شماره شناسایی آنها 27nnnn می باشد که عدد 27 شماره شناسایی چیپهای PROM می باشد و nnnn اندازه این چیپ بر حسب بایت می باشد.
اگر چه می گوییم این حافظه ها در ابتدای ساخت خالی هستند اما به طور تکنیکی دارای مقدار 1 می باشند . بنابراین یک PROM خالی می تواند برنامه ریزی شده باشد و ما می توانیم بر روی آن بنویسیم . برای نوشتن به دستگاه مخصوص که ROM Programer یا سوزاننده (Burner) نام دارد ، نیاز داریم .
برخی اوقات شنیده اید که به چیپ های ROM نیز Burning (یعنی سوزان) می گویند ، زیرا هر بیت باینری یک فیوز است که سالم بودن آن نشانگر یک و در غیراین صورت صفر می باشد ..
بهتر است که بدانید اکثر چیپ ها با 5 ولت جریان فعال می شوند و هنگامی که ما برنامه ای را بر روی چیپ های PROM می نویسیم یا اصطلاحا Program می نمائیم جریانی بیشتر از 5 ولت که معمولا 12 ولت است اعمال می کنیم که این باعث سوختن فیوزهای آدرسهایی می شود که ما می خواهیم . باید توجه داشته باشید که ما می توانیم یک را صفر تبدیل کنیم ولی برعکس آن ممکن نیست .
به این چیپ ها OTP (One Time Programmable) نیز می گویند در شکل 2-1 تصویر یک Programmer چند سوکته را مشاهده می کنید که به آن (Gang Programmer) یا برنامه ریز گروهی نیز می گویند. و می تواند چندین چیپ را در هر بار برنامه ریزی کند.
EPROM:
نیز یک نوع عمومی از PROM می باشد که قابلیت پاک شدن و دوباره برنامه ریزی را داراست . بر روی این چیپها یک بلور کوارتز قرار دارد که مستقیما بر روی die قرار دارد. این چیپها با شماره 27xxxx شناسایی می شوند و به وسیله برنامه یا به طور فیزیکی می توان آنها را پاک کرد.(شکل 5-3)
هدف از قرار دادن بلور کوارتز این است که اشعه فرا بنفش به die برسد ، زیرا چیپ EPROM با تابش اشعه فرا بنفش پاک می شود. اشعه فرا بنفش باعث ایجاد یک واکنش شیمیایی می شود که که فیوزها را پشت سر هم ذوب می کند ، بنابراین تمام صفرها به یک تبدیل می شوند و چیپ به حالت اولیه خود باز می گردد. برای این کار باید ، اشعه فرا بنفش را در طول موج 2537 انگستروم و با شدت یکنواخت 12000 uv/cm2 و در مدت 5 تا 15 دقیقه باشد.
یک دستگاه پاک کننده EPROM ، یک تولید کننده امواج فرا بنفش است که دارای یک فضای بسته است که دارای یک کشو می باشد و در بالای کشو تولید کننده امواج فرا بنفش می باشد و چیپها درون کشو قرار می گیرند.

EPROM/Flash ROM :
یک نوع دیگر از چیپهای ROM ، چیپهای EPROM که Flash ROM نیز نامیده می شوند و از خصوصیات مهم آنها این است که قابل پاک شدن و برنامه ریزی توسط مدارهایی هستند که بر روی آنها نصب می شوند و وسایل و ابزار خاصی نیاز ندارند.
این چیپ ها به وسیله شماره های 29xxxx و 28xxxx شناخته می شوند . هم اکنون در مادربردهای کامپیوتر از چیپهای EEPROM استفاده میشود. این بدان معنی است که BIOS مادربرد خود را می توانید به وسیله دریافت نسخه به روز درآمده از شرکت سازنده ، به روز رسانی نمائید.

تولید کننده های ROM BIOS:
تعداد بسیاری از تولید کننده های امروزه اکثر مادربردها را پشتیبانی می کنند و چندین کمپانی در زمینه تولید محصولات ROM BIOS ، به طور تخصصی فعالیت دارند.
سه کمپانی بزرگ که در زمینه نرم افزار ROM BIOS فعالیت دارند عبارتند از :
Phonix SoftWare , American Magatrends ..Inc (AMI) , Award SoftWare

به روز رسانی BIOS :
سیستم عاملها تقریبا بر روی هر سیستم کامپیوتری با سخت افزارهای مختلف سازگاری دارند و این به دلیل وجودBIOS است، چون این BIOS است که با سخت افزار سیستم ارتباط برقرار می کند.
اغلب در سیستمهای قدیمی برای بهره گیری از برخی دستگاههای جدید همانند گرداننده های IDE دیسک سختو یا گرداننده های فلاپی های LS-120 و یا در سیستمهایی که استفاده از دیسک بیش از 8GB را پشتیبانی نمی کنند ،باید BIOS را به روز رسانی نمود.

لیست زیر مجموعه ای از دلایلی است که باید BIOS را به روز رسانی نمود:
* استفاده از فلاپی درایوهای LS-120 که به سوپر درایو نیز معروفند.
* استفاده از هارد دیسک های بیش از 8GB
* استفاده از داریور هارددیسک Ultra DMA IDE
* استفاده از بوت کردن سیتم با درایو CD-ROM
* تصحیح خطای سال 2000 و سال کبیسه
* تصحیح خطاهای سازگاری با سخت افزار یا نرم افزار
* استفاده از پردازنده های جدید
اگر شما یک سخت افزار جدید نصب کرده اید و حتی دستورات نصب را به درستی انجام داده اید ، اما نمی توانید با آن کار کنید ، این خطا ممکن است از BIOS باشد و لازم است آن را به روزرسانی کنید. این موضوع به ویژه در سیستم عاملهای جدبد صدق می کند . بسیاری از سیستم های قدیمی نیاز به روزرسانی BIOS دارند تا به طور کامل از ویژگی های Plug-And-Play در ویندوزهای 95 و98 و 2000 استفاده کنند.
این مسائل از یک مادربرد به مادربرد دیگر متغیر است ، اما ارزش آن را دارد که BIOS سیستم را به روزرسانی کنید برای بروزرسانی BIOS یک مادربرد باید چند نکته را بدانید:
سازنده و مدل مادربرد
نسخه فعلی BIOS مادربرد
نوع CPU(مثلاPentium II , Pentium mmx )
نسخه برداری از تنظیمات فعلی CMOS:
بروزرسانی نسخه BIOS ممولا تنظیمات فعلی SETUP را به هم می ریزد ، بنابراین بهتر است آن نسخه برداری کنید ، برخی برنامه ها مانند نورتون یوتیلیتی می توانند تنظیمات CMOS را ذخیره کنند ، اما این نرم افزارها اکثرا در بازگرداندن تنظیمات SETUP ناموفق هستند. بهترین راه این است مه خودتان از تنطیمات SETUP نسخه برداری کنید و همچنین می توانید با اتصال چاپگر از تنظیمات SETUP یک کپی تهیه کنید (با فشار دادن کلیدهای Shift+PRN SCR)
چیپهای کنترلر صفحه کلید:
علاوه بر ROM اصلی سیستم ، در کامپیوترهای 286 و پائینتر همچنین یک کنترلر صفحه کلید یا ROM صفحه کلید وجود دارد ، که میکروپروسسور صفحه کلید در ROM صفحه کلید جاسازی شده است . این ROM را اغلب می توانید در Super I/O یا در چیپ South Bridge در مادر بردهای جدید پیداکنید. کنترلر صفحه کلید در اصل یک میکروکنترلر 8042 است که با آن یک میکروپروسسور ، ROM ، RAM و پورتهای I/O نیز ملحق کرده اند .در مادر بردهای جدید چیپ 8042 در داخل چیپ Super I/O یا South Bridge تعبیه شده است بنابراین شما چیپ 8042 را نخواهید دید.
در بسیاری از سیستم های قدیمی ، یکی از پورتهایی که استفاده نشده است برای انتخاب سرعت ساعت CPU استفاده می شود و این در سیستم های قدیمی هنگامی که سیستم عامل را به 95/98/2000 ارتقاء می دهید با کنترلر صفحه کلید مشکلاتی پیدا می کند که بعدها این مشکل نیز بر طرف شد.
به کار بردن Flash BIOS :
تقریبا تمام کامپیورترهای از سال 1996 به بعد دارای یک Flash ROM برای ذخیره کردن BIOS هستند .. Flash ROM نوعی از EEPROM است که می توانید بر روی آن عملیات پاک کردن و برنامه نویسی را انجام دهید . Flash ROM به کاربران این امکان را می دهد که نسخه به روزرسانی شده BIOS خود را بدون برداشتن و جایگزینی چیپ جدید ، بر روی مادربرد خود نصب کنند. اما در بعضی سیستم ها ممکن است در حالت حفاظت شده قرار گرفته شده باشد و شما باید قبل از بروز رسانی حفاظت آن را غیر فعال کنید ، که معمولا برای این کار یک جامپر یا یک سوئیچ بر روی مادربرد شده است . مقصود ازحفاظت بایوس این است که بضی ویروسها ممکن است کد خودشان را بر روی BIOS کپی کنند. حتی بدون استفاده از قفل فیزیکی ، Flash ROM های مدرن دارای یک الگوریتم حفاظتی برای جلوگیری از تغییرات بدون مجوز هستند.
باید توجه داشته باید هنگامی که در حال بروزرسانی BIOS هستید ، کامپیوتر را خامش نکنید و وقفه ای در کار سیستم رخ ندهد و گرنه BIOS سیستم خود را از دست خواهید داد و این بدین معنی است که شما قادر به راه اندازی مجد دسیستم نخواهید بود و یا حداقل به راحتی قادر به بازیابی BIOS سیستم نخواهید بود . در مادربردهای جدید یک برنامه مخصوص بازیابی BIOS وجود دارد که مربوط به قسمتی از Flash ROM است که نیز قابل پاک شدن می باشد .
سیستم BIOS و پارتیشن IML :
شرکت های IBM و Compaq از یک روش شبیه به Flash ROM استفاده می کنند که “بارگذاری میکرو کد آغازین IML” نام دارد که در برخی سیستم های Pentium و 486 به کار برده شده است.
IML تکنیکی است که کد BIOS بر روی یک پارتیشن سیستمی و مخفی بر روی هارد دیسک نصب می شود و هر گاه که سیستم روشن میشود ، بارگذاری می شود البته در این سیستم ها هنوز BIOS اصلی وجود دارد ، اما تمام عملیات از BIOS ذخیره شده در هارد دیسک انجام میشود.
این تکنیک اجازه می دهد تا یک BIOS توزیع شده بر روی هارد دیسک داشته باشیم . همراه با کد BIOS یک کپی کامل از SETUP و مشخصات و مراجع دیسک در این پارتیشن ذخیره می شود.
یکی از معایب این سیستم این است که بر روی هارد دیسک نصب شده و سیستم بدون تنظیمات ذخیره شده بر روی هارد دیسک کاملا راه اندازی نمی شود و شما نمی توانید سیستم را به وسیله فلاپی دیسک راه اندازی کنید.
آدرسهای CMOS RAM مادربرد :
در سیستم های AT یک چیپ 146818 موتورلا به عنوان یک ( RTC (Real-Time Clock و CMOS RAM( Complementarry Metal-Oxide Semicondector       استفاده شده است . این یک چیپ مخصوص ساده است که دارای یک ساعت دیجیتالی ساده است که 10 بایت از آدرس حافظه برای ساعت و 54 بایت اضافی برای ذخیره هر چیزی که بخواهید . IBM AT 5 بایت اضافی برای ذخیره پیکربندی سیستم استفاده می کنند . اما در سیستمهای جدید از این چیپ موتورلا استفاده نشده است ، در عوض عملیات این چیپ به چیپ Super I/O یا South Bridge ضمیمه شده است یا از یک باتری مخصوص و یک NVRAM استفاده می کنند .
توجه داشته باشید که در سیستمهای جدید بیشتر از 64 بایت CMOS RAM وجود دارد . در حقیقت بسیاری از سیستم ها ممکن است 2 یا 4 کیلو بایت داشته باشند ، که این حافظه اضافی برای ذخیره سازی جزئیات اطلاعات Plug-and-Play کارتهای وفق دهنده و دیگر انتخابات سیستم می باشد.
نرم افزارهای پشتیبانی و یوتیلیتی ها در محدوده اطلاعات عمومی CMOS RAM هستند و از این طریق می توانند در ذخیره سازی و بازگرداندن پیکربندی سیستم موثر واقع شوند ، اما متاسفانه این برنامه ها برای BIOS های خاص نوشته شده اند و فقط بر روی همان BIOS کار می کنند.
Plug-and-Play BIOS :
عموما نصب و پیکر بندی دستگاهها بر روی یک PC کار مشکلی است ، در طول نصب کاربر با مساله جدیدی روبه رو است،این که باید پورت I/O و کانال DMA را انتخاب کند . در گذشته کاربران مجبور بودند که جامپرها و سوئیج های برروی کارت را برای کنترل تنظیمات تغییر دهند ، که لازمه این کار شناخت منابع استفاده شده بر روی سیستم است ، و سپس تنظیم کردن منابعی که با دستگاههای موجود بر روی سیستم تضاد و ناسازگاری نداشته باشند.
تکنولوژی PnP برای جلوگیری از این مشگلات و فراهم ساختن توانائیهایی برای کاربران در توسعه PC های آنان می باشد ..با استفاده از این تکنولوژی کاربران کارت مورد نظر را در سیستم جا می زنند و سیستم به طور اتوماتیک بهترین پیکر بندی را انجام می دهد .
PnP از سه جزء مهم تشکیل شده است :
Plug-and-Play BIOS
سیستم توسعه یافته پیکر بندی داده ها (ESCD)
سیستم عامل Plug-and-Play
بایوس PnP شروع به پیکر بندی کارت PnP در طول پردازش راه اندازی سیستم می کند . اگر کارت قبلا نصب شده باشد بایوس اطلاعات را از ESCD می خواند و کارت را مقدار دهی اولیه می کند و سیستم را راه اندازی می نماید ..در طول نصب یک کارت PnP جدید ، بایوس برای تععین اینکه کدام منابع استفاده نشده اند و برای اضافه کردن کارت لازم هستند به ESCD مراجعه می نماید ..اگر بایوس بتواند منابع لازم را پیدا کند ، کارت را پیکر بندی می کند و در غیر این صورت روالهای Plug-and-Play در سیستم عامل کار پیکربندی را کامل می کنند . در طول روال پیکر بندی رجیسترهای Flash BIOS بر روی کارت و همچنین ESCD توسط داده های جدید پیکر بندی به روز رسانی می شوند .