چرا باید حافظه ی سیموس قابل تغییر باشد ؟
در کامپیوترهایXT باتوجه به تعداد محدود پارامترها، پیکربندی سیستم بااستفاده از میکروسوئیچ امکان پذیر می باشد اما در سیستم های AT به دلیل بالا بودن تعداد پارامترهای قابل برنامه ریزی توسط استفاده کننده ، حضور یک منبع که هم به راحتی در دسترس باشد و هم جای کمی اشغال نماید ، ضروری به نظر می رسد. این منبع در کامپیوترهای AT حافظه CMOS نامیده می شود .
حافظه CMOS دارای 64 بایت و یا بیشتر ظرفیت می باشد که توسط دو پورت H70 و H71 قابل دسترسی می باشد. و از آن برای نگهداری ساعت ، تاریخ و پیکربندی سیستم استفاده می شود. همچنین تعدادی از بیت های این حافظه برای چک کردن پیکربندی سیستم تحت عنوان CHECKSUM استفاده می شود.
محتویات این حافظه در زمان خاموش بودن سیستم توسط یک باطری پشتیبان 6/3 ولتی نگهداری می شود. این باطری ممکن است در داخل و یا در خارج از مادربورد قرار داشته باشد . البته در بعضی از سیستمها مجموعه باطری و حافظه به صورت یکپارچه ارائه شده که نمونه آن مارک DALLAS می باشد.
از نظر عملکرد و نحوه دستیابی هیچ تفاوتی بین انواع متفاوت CMOS وجود ندارد و همگی با استفاده از دو پورت یادشده قابل دسترسی و برنامه ریزی می باشند.
تغییر در محتویات CMOS بطور معمول از طریق برنامه SETUP امکان پذیر است اما در صورتی که در ست آپ سیستم رمز تعریف شده باشد و رمز مربوطه را هم در اختیار نداشته باشید در اینصورت امکان ورود به برنامه ست آپ و تغییر در پیکر بندی سیستم ( اطلاعات CMOS ) امکان پذیر نخواهد بود . در این موارد راهی جز پاک کردن محتویات CMOS نداریم . دراین مواقع در احتمال وجود دارد .
1) برای وارد شدن به سیستم رمز تعریف شده باشد.
2) برای وارد شدن به ست آپ رمز تعریف شده باشد.
در حالت اول با توجه به بوت نشدن کامپیوتر کاری از نرم افزارها ساخته نیست و باید اقدام به پاک کردن محتویات CMOS به صورت سخت افزاری نمود .
این کار معمولا با برداشتن باطری پشتیبان ست آپ برای چند دقیقه ، یااتصال کوتاه بر روی جامپر مربوطه ( J8 ) و یا تعویض تراشه CMOSامکان پذیر می باشد . البته این روشها در صورتی کارآمد خواهد بود که شما مجاز به بازکردن کیس کامپیوتر باشید که البته در اکثر مواقع این امکان وجود ندارد .
شایان ذکر است در صورتی که اعمال فوق درست صورت نگیرد احتمال سوختن و خراب شدن CMOS وجود دارد بنابراین تا حد امکان باید از کاربرد این روش اجتناب شود مگر در مواقعی که ضرورت ایجاب نماید.
در حالت دوم با توجه به بوت شدن کامپیوتر نیازی به اقدامات فوق نبوده و می توان با استفاده از نرم افزارهای مناسب اقدام به پاک کردن و یا ذخیره اطلاعات CMOS نماییم . از آنجایی که همیشه نرم افزار مناسب وجود ندارد و یا در دسترس نیست بعنوان یک مهندس نرم افزار باید قادر باشیم تا با استفاده از امکانات موجود بر روی کامپیوتر این کار را انجام دهیم . با استفاده از برنامه DEBUG.EXE که همراه فایلهای سیستم عامل DOS و ویندوز وجود دارد می توان با خواندن و یا نوشتن در پورت های H70 و H71 تغییرات لازم را در محتویاتCMOS اعمال نمود
از دو پورت فوق پورت H70 بعنوان گذرگاه آدرس( ADDRESS BUS ) و پورت H71 بعنوان گذرگاه داده بکار می رود. الگوریتم کلی کار به این صورت است که CMOS را بعنوان یک آرایه یک بعدی در نظر می گیریم که دارای 256 خانه می باشد . برای دسترسی به هر خانه باید ابتدا اندیس ( آدرس ) خانه را در پورت H70 بنویسیم و بعد از دسترسی به خانه مورد نظر می توان دادة دلخواه را درآن نوشت و یا از آن خواند . دسترسی به داده ها نیز فقط از طریق پورت H71 امکان پذیر می باشد . آخرین نکته اینکه عمل نوشتن و یا خواندن از پورت ها به کمک ثبات AL و توسط دستورهای IN و OUT مربوط به زبان اسمبلی امکان پذیر است
تفاوت BIOS و CMOS چیست؟
افراد زیادی که با کامپیوتر سر وکار دارند دو اصطلاح BIOS (که مخفف basic input/output system است) و CMOS (که مخفف complementary metal oxide semiconductor است) را با هم اشتباه می گیرند و به یک معنا به کار می برند. البته این دو به هم مرتبطند ولی دو جزء مشخص و مجزا از هم هستند که وجودشان برای کامپیوتر ضروری است. BIOS برنامه ای است که یک کامپیوتر را استارت می کند، در حالیکه CMOS جایی است که برنامه BIOS اطلاعات و جزئیات مورد نیازش از قبیل تاریخ، زمان و تنظیمات سیستم را ذخیره می کند.
BIOS یک برنامه کوچک است که کنترل سیستم را از زمانیکه کامپیوتر روشن می شود تا زمانیکه سیستم عامل کنترل را بدست می گیرد در اختیار دارد. BIOS یک Firm ware (برنامه ای که در حافظه فقط خواندنی ROM قرار دارد) است.
CMOS یک نوع تکنولوژی از حافظه است که می تواند تنظیمات مورد نیازش را برای راه اندازی کامپیوتر در خود ذخیره کند. و در صورت نیاز کاربر می تواند اطلاعات یا تنظیماتی را اصلاح کند. BIOS کامپیوتر قطعاتی مانند فلاپی دیسک درایو و هارد دیسک و سرعت کلاک سخت افزاری را کنترل و راه اندازی می کند.اما پارامترهای خاصی برای راه اندازی کامپیوتر مورد نیاز است که باید در جایی ذخیره و نگهداری شود. اینجا همان حافظه CMOS است و برنامه BIOS هر بار برای انجام وظایف خود از این اطلاعات استفاده می کند. بنابراین مشاهده می کنید که این دو به هم مرتبطند ولی دو واحد جداگانه هستند.
چند وقت پیش یکی از دوستان پرسیده بودند که " اگر حافظه بایوس از نوع Rom ( فقط خواندنی ) می باشد و امکان تغییر آن وجود ندارد چگونه می توان با فشار دادن دکمه Del در هنگام بالا آمدن سیستم وارد پنجره setup بایوس شد و برخی از تنظیمات آن را تغییر داد ؟ " . برای پاسخ به این سوال ابتدا کمی در مورد بایوس توضیح می دهم :
بایوس ( BIOS ) مخفف کلمه basic input output system می باشد و یک نرم افزار بسیار حیاتی برای کامپیوتر که این نرم افزار در ارتباط مستقیم با سخت افزار کامپیوتر می باشد . برنامه بایوس بروی یک حافظه از نوع Rom ریخته می شود ( Rom bios ) که شما به راحتی می توانید این حافظه را که عموما عبارت Bios نیز بروی آن درج شده است را بروی مادربورد مشاهده کنید . با توجه به اینکه نرم افزار بایوس بروی حافظه Rom قرار می گیرد امکان تغییر کلی در این نرم افزار توسط کاربر وجود ندارد و شما فقط قادر هستید برخی از قسمت های این نرم افزار که توسط شرکت سازنده تعیین شده است توسط پنجره setup تغییر دهید . حال سوالی که پیش می آید این است که این تغییرات که ما در پنجره Setup ایجاد می کنیم در کجا ثبت می شود با توجه به اینکه می دانیم نرم افزار Bios بروی حافظه Rom قرار دارد و امکان تغغیر آن وجود ندارد !؟
در واقع این تغییرات بروی یک حافظه مجزای دیگر از نوع Ram به نام CMOS قرار می گیرد . CMOS در واقع یک نوع نیمه هادی می باشد که دوستان رشته برق شاخه الکترونیک با این المان کاملا آشنا می باشند . CMOS ارتباط کاملا مستقیم با بایوس دارد و هر نوع تغییری که کاربر بروی برنامه بایوس انجام می دهد در CMOS ذخیره می شود . البته مشکلی که وجود دارد این است که CMOS از نوع RAM می باشد و بعد از خاموش شدن کامپیوتر اطلاعات آن از بین می رود . برای جلوگیری از بروز چنین مشکلی از یک باطری استفاده می شود که قطعا دوستان این باطری را بروی مادربورد دیده اند . این باطری وظیفه تامین برق مورد نیاز CMOS را در شرایطی که کامپیوتر خاموش می باشد بر عهده دارد تا اطلاعات ذخیره شده بروی CMOS به واسطه تغییر در برنامه بایوس از بین نرود . پس در واقع باطری که شما بروی مادربورد مشاهده می کنید برای حفظ اطلاعات CMOS می باشد و معروف به باطری CMOS می باشد که خیلی ها به اشتباه به آن باطری بایوس می گویند .
حال فرض کنیم به اشتباه تغییرات نادرستی را در بایوس ایجاد کردیم مثل تغییر در کلاک ( CLOCK ) و یا فرکانس عملکرد سی پی یو ( CPU ) و RAM که باعث شد کامپیوتر در هنگام بوت هنگ کند و سیستم کامپیوتر به هیچ عنوان اجرا نشود و یا پسوردی بروی بایوس خود قرار داده اید که آنرا فراموش کرده اید و چون می دانیم این اطلاعات بروی CMOS قرار می گیرد . برای پاک کردن این اطلاعات و بازگشت به تنظیمات اولیه بایوس باید CMOS را ریست کرد که برای این کار سه راه وجود دارد :
1- در آوردن باطری CMOS
2- تغییر جامپر CMOS که عموما این جامپر در نزدیکی باطری CMOS قرار دارد و با نام CLRCMOS می باشد .
3- فشار دادن دکمه ریست CMOS که این دکمه بروی برخی از مادربورد ها وجود دارد .
در تهیه این مقاله از مطالب سایت tomshardware.com نیز استفاده کردم . فقط در مورد تصویری که در ابتدای آموزش قرار داده ام باید بگم در این تصویر شما CMOS را مشاهده می کنید که برچسب سفید رنگی بروی آن قرار دارد . در سمت راست باطری CMOS و در سمت چپ خازن های الکترولیتی .
پاک کردن اطلاعات حافظه CMOS
در کامپیوترهایXT باتوجه به تعداد محدود پارامترها، پیکربندی سیستم بااستفاده از میکروسوئیچ امکان پذیر می باشد اما در سیستم های AT به دلیل بالا بودن تعداد پارامترهای قابل برنامه ریزی توسط استفاده کننده ، حضور یک منبع که هم به راحتی در دسترس باشد و هم جای کمی اشغال نماید ، ضروری به نظر می رسد. این منبع در کامپیوترهای AT حافظه CMOS نامیده می شود .
حافظه CMOS دارای 64 بایت و یا بیشتر ظرفیت می باشد که توسط دو پورت H70 و H71 قابل دسترسی می باشد. و از آن برای نگهداری ساعت ، تاریخ و پیکربندی سیستم استفاده می شود. همچنین تعدادی از بیت های این حافظه برای چک کردن پیکربندی سیستم تحت عنوان CHECKSUM استفاده می شود.
محتویات این حافظه در زمان خاموش بودن سیستم توسط یک باطری پشتیبان 6/3 ولتی نگهداری می شود. این باطری ممکن است در داخل و یا در خارج از مادربورد قرار داشته باشد . البته در بعضی از سیستمها مجموعه باطری و حافظه به صورت یکپارچه ارائه شده که نمونه آن مارک DALLAS می باشد.
از نظر عملکرد و نحوه دستیابی هیچ تفاوتی بین انواع متفاوت CMOS وجود ندارد و همگی با استفاده از دو پورت یادشده قابل دسترسی و برنامه ریزی می باشند.
تغییر در محتویات CMOS بطور معمول از طریق برنامه SETUP امکان پذیر است اما در صورتی که در ست آپ سیستم رمز تعریف شده باشد و رمز مربوطه را هم در اختیار نداشته باشید در اینصورت امکان ورود به برنامه ست آپ و تغییر در پیکر بندی سیستم ( اطلاعات CMOS ) امکان پذیر نخواهد بود . در این موارد راهی جز پاک کردن محتویات CMOS نداریم . دراین مواقع در احتمال وجود دارد .
1) برای وارد شدن به سیستم رمز تعریف شده باشد.
2) برای وارد شدن به ست آپ رمز تعریف شده باشد.
در حالت اول با توجه به بوت نشدن کامپیوتر کاری از نرم افزارها ساخته نیست و باید اقدام به پاک کردن محتویات CMOS به صورت سخت افزاری نمود .
این کار معمولا با برداشتن باطری پشتیبان ست آپ برای چند دقیقه ، یااتصال کوتاه بر روی جامپر مربوطه ( J8 ) و یا تعویض تراشه CMOSامکان پذیر می باشد . البته این روشها در صورتی کارآمد خواهد بود که شما مجاز به بازکردن کیس کامپیوتر باشید که البته در اکثر مواقع این امکان وجود ندارد .
شایان ذکر است در صورتی که اعمال فوق درست صورت نگیرد احتمال سوختن و خراب شدن CMOS وجود دارد بنابراین تا حد امکان باید از کاربرد این روش اجتناب شود مگر در مواقعی که ضرورت ایجاب نماید.
در حالت دوم با توجه به بوت شدن کامپیوتر نیازی به اقدامات فوق نبوده و می توان با استفاده از نرم افزارهای مناسب اقدام به پاک کردن و یا ذخیره اطلاعات CMOS نماییم . از آنجایی که همیشه نرم افزار مناسب وجود ندارد و یا در دسترس نیست بعنوان یک مهندس نرم افزار باید قادر باشیم تا با استفاده از امکانات موجود بر روی کامپیوتر این کار را انجام دهیم . با استفاده از برنامه DEBUG.EXE که همراه فایلهای سیستم عامل DOS و ویندوز وجود دارد می توان با خواندن و یا نوشتن در پورت های H70 و H71 تغییرات لازم را در محتویاتCMOS اعمال نمود
از دو پورت فوق پورت H70 بعنوان گذرگاه آدرس( ADDRESS BUS ) و پورت H71 بعنوان گذرگاه داده بکار می رود. الگوریتم کلی کار به این صورت است که CMOS را بعنوان یک آرایه یک بعدی در نظر می گیریم که دارای 256 خانه می باشد . برای دسترسی به هر خانه باید ابتدا اندیس ( آدرس ) خانه را در پورت H70 بنویسیم و بعد از دسترسی به خانه مورد نظر می توان دادة دلخواه را درآن نوشت و یا از آن خواند . دسترسی به داده ها نیز فقط از طریق پورت H71 امکان پذیر می باشد . آخرین نکته اینکه عمل نوشتن و یا خواندن از پورت ها به کمک ثبات AL و توسط دستورهای IN و OUT مربوط به زبان اسمبلی امکان پذیر است .
الگوریتم کلی حذف اطلاعات حافظه CMOS
void CLR_CMOS(void){
for(int i=0;i<256;i ++ ){
move value of i to register Al ;
Out Register Al to Port 70h ;
Set register Al to zero ;// Al=0
Out Register Al to Port 71h
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 10 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دانلود مقاله چرا باید حافظه ی سیموس قابل تغییر باشد ؟