آموزش کامل سخت افزار

سخت افزار
کامپيوترهای شخصی
اغلب مردم زمانيکه با واژه ” تکنولوژی ” برخورد می نمايند ، بی اختيار “کامپيوتر” برای آنها تداعی می گردد. امروزه کامپيوتر در موارد متعددی بخدمت گرفته می شود. برخی از تجهيزات موجود در منازل ، دارای نوع خاصی از ” ريزپردازنده” می باشند. حتی اتومبيل های جديد نيز دارای نوعی کامپيوتر خاص می باشند. کامپيوترهای شخصی ، اولين تصوير از انواع کامپيوترهائی است که در ذهن هر شخص نقش پيدا می کند. بدون شک مطرح شدن اين نوع از کامپيوترها در سطح جهان، باعث عموميت کامپيوتر در عرصه های متفاوت بوده است .

کامپيوتر شخصی وسيله ای “همه منظوره ” بوده که توان عملياتی خود را مديون يک ريزپردازنده است. اين نوع از کا مپيوترها دارای بخش های متعددی نظير : حافظه ، هارد ديسک، مودم و… بوده که حضور آنها در کنار يکديگر به منظور انجام عمليات مورد نظر است . علت استفاده از واژه ” همه منظوره ” بدين دليل است که می توان بکمک اين نوع از کامپيوترها عمليات متفاوتی ( تايپ يک نامه ، ارسال يک نامه الکترونيکی، طراحی و نقشه کشی و …) را انجام داد .

بخش های اصلی کامپيوترهای شخصی
◄ پردازشگر مرکزی (CPU)
ريزپردازنده بمنزله ” مغز” کامپيوتربوده و مسئوليت انجام تمامی عمليات ( مستفيم يا غير مستقيم ) را برعهده دارد. هر چيزی را که کامپيوتر انجام می دهد با توجه به وجود ” ريز پردازنده ” است .
◄ حافظه
اين نوع از حافظه ها با سرعت بالا، امکان ذخيره سازی اطلاعات را فراهم می نمايند. سرعت حافظه های فوق می بايست بالا باشد چراکه آنها مستقيما” با ريزپردازنده مرتبط می باشند. در کامپيوتر از چندين نوع حافظه استفاده می گردد:

● ( Random-Access Memory(RAM از اين نوع حافظه ، بمنظور ذخيره سازی موقت اطلاعاتی که کامپيوتر در حال کار با آنان است، استفاده می گردد.
● ( Read Only Memory (ROM يک حافظه دائم که از آن برای ذخيره سازی اطلاعات مهم در کامپيوتر استفاده می گردد.

● (Basic Input/Output System (BIOS يک نوع حافظه ROM ، که از اطلاعات آن در هر بار راه اندازی سيستم استفاده می گردد.
● Caching حافظه ای سريع که از آن برای ذخيره سازی اطلاعاتی که فرکانس بازيابی آنان بالا باشد، استفاده می گردد.
● Virtual Memory فضای موجود بر روی هارد ديسک که از آن برای ذخيره سازی موقت اطلاعات استفاده و در زمان نياز عمليات جايگزينی در حافظه RAM انجام خواهد شد.

◄ برد اصلی (MotherBoard). برد اصلی کامپوتر بوده که تمام عناصر داخلی به آن متصل خواهند شد. پردازشگر و حافظه بر روی برد اصلی نصب خواهند شد.برخی از عناصر سخت افزاری ممکن است مستقيما” و يا بصورت غير مستقيم به برد اصلی متصل گردنند. مثلا” يک کارت صدا می تواند همراه برد اصلی طراحی شده باشد و يا بصورت يک برد مجزا بوده که از طريق يک اسلات به برد اصلی متصل می گردد

◄ منبع تغذيه (Power Supply) يک دستگاه الکتريکی که مسئول تامين و نتظيم جريان الکتريکی مورد نياز در کامپيوتر است .

◄ هارد ديسک (Hard Disk) يک حافظه با ظرفيت بالا و دائم که از آن برای نگهداری اطلاعات و برنامه ها استفاده می گردد.
◄ کنترل کننده (Integrated Drive Electronics(IDE . اينترفيس اوليه برای هارد ، CD-ROM و فلاپی ديسک است .
◄ گذرگاه Peripheral Component Interconnect)PCI) . رايج ترين روش اتصال يک عنصر سخت افزاری اضافه به کامپيوتر است .PCI از مجموعه ای اسلات که بر روی برد اصلی سيستم موجود می باشد، استفاده و کارت های PCI از طريق اسلات های فوق به برد اصلی متصل خواهند شد.
◄ اينترفيس Small Computer System Interface)SCSI) روشی برای اضافه کردن دستگاه های اضافه در سيستم نظير : هارد و اسکنر است .
◄ پورت Accelerated Graphics Port)AGP) يک اتصال با سرعت بسيار بالا بمنظور ارتباط کارت های گرافيک با کامپيوتر است .

◄کارت صدا (Sound Card) مسئول ضبط و پخش صوت از طريق تبديل سيگنال های آنالوگ صوتی به اطلاعات ديجيتال و بر عکس است
◄کارت گرافيک (Graphic Cards) مسئول تبديل اطلاعات موجود در کامپيوتر بگونه ای که قابليت نمايش بر روی مانيتور را داشته باشند.

دستگاه های ورودی و خروجی
◄مانيتور (Monitor) . رايج ترين دستگاه نمايش اطلاعات در کامپيوتر است .
◄صفحه کليد (KeyBoard) رايج ترين دستگاه برای ورود اطلاعات است .
◄موس (Mouse) . رايج ترين دستگاه برای انتخاب موارد ارائه شده توسط يک نرم افزار و ايجاد ارتباط متقابل با کامپيوتر است .
◄رسانه های ذخيره سازی قابل حمل (Removable storage) . با استفاده از اين نوع رسانه ها می توان بسادگی اطلاعاتی را به کامپيوتر خود اضافه و يا اطلاعات مورد نياز خود را بر روی آنها ذخيره و در محل ديگر استفاده کرد.

● فلاپی ديسک (Floppy Disk) . رايج ترين رسانه ذخيره سازی قابل حمل است .
● CD-ROM . ديسک های فشرده رايج ترين رسانه ذخيره سازی برای انتقال وجابجائی نرم افزار ها و … می باشند.

● Flash Memory يک نوع خاص از حافظه Rom است(EEPROM). اين نوع رسانه ها امکان ذخيره سازی سريع و دائم را بوجود می آورند. کارت های PCMCIA نمونه ای از اين رسانه ها می باشند.
● Digital Versatile Disc,Read Only Disk) DVD-ROM ) اين نوع رسانه ذخيره سازی مشابه CD-ROM بوده با اين تفاوت مهم که ميزان ذخيره سازی آنان بسيار بالا است .

پورت ها
◄موازی (Parallel) . از اين نوع پورت ها اغلب برای اتصال چاپگر استفاده می گردد.
◄سريال (Serial) . از اين نوع پورت ها اغلب برای اتصال دستگاههائی نظير يک مودم خارجی، استفاده می گردد.
◄پورت ( Uuniversal Serial Bus(USB . از پورت ها ی فوق بمنظور اتصال دستگاههای جانبی نظير اسکنر و يا دوربين های وب استفاده می گردد.
اتصالات شبکه و اينترنت

◄مودم (Modem) دستگاهی برای برقرای ارتباط با يک شبکه و يا سيستم ديگر است . رايج ترين روش ارتباط با اينترنت استفاده از مودم است .
◄کارت شبکه (Lan Card) . يک نوع برد سخت افزاری که از آن بمنظور بر پاسازی شبکه بين چندين دستگاه کامپيوتر در يک سازمان استفاده می شود.
◄مودم کابلی (Modem Cable) . امروزه در برخی از نقاط دنيا جهت استفاده و ارتباط با اينترنت از سيستم تلويزيون کابلی استفاده می گردد.
◄مودم های DSL)Digital Subscriber Line) . يک خط ارتباطی با سرعت بالا که از طريق خطوط تلفن کار می کند.
◄مودم های VDSL)Very high bit-rate DSL) .يک رويکرد جديد از DSL بوده که لازم است خطوط تلفن از زير ساخت مناسب ، فيبر نوری استفاده نمايند.
از راه اندازی تا خاموش کردن سيستم

در بخش های قبل با عناصر اصلی تشکيل دهنده يک کامپيوتر شخصی آشنا شديد. در اين قسمت به بررسی عمليات انجام شده از زمان راه اندازی سيستم تا زمان خاموش کردن (Shut-down) خواهيم پرداخت .

مرحله يک : مانيتور و سيستم با فشردن کليدهای مربوطه روشن می گردند.
مرحله دو : نرم افزار موجود در BIOS موسوم به POST)Power-on self-test) عمليات خود را آغاز می نمايد. دراغلب سيستم ها، BIOS اطلاعاتی را بر روی صفحه نمايش نشان داده که نشاندهنده عمليات جاری است. (مثلا” ميزان حافظه موجود ، نوع هارد ديسک) در زمان راه اندازی سيستم ، BIOS مجموعه ای از عمليات را بمنظور آماده سازی کامپيوتر انجام می دهد.

● صحت عملکرد کارت گرافيک توسط BIOS بررسی می گردد. اغلب کارت های گرافيک دارای BIOS اختصاصی مربوط به خود بوده که عمليات مقداردهی اوليه حافظه و پردازنده کارت را انجام خواهد داد.در صورتيکه BIOS اختصاصی مربوط به کارت های گرافيک موجود نباشد، BIOS سيستم از حافظه ROM بمنظور اخذ اطلاعات مربوط به درايور استاندارد کارت گرافيک، استفاده می نمايد.
● بررسی نوع ” راه اندازی سيستم ” توسط BIOS انجام خواهد شد. ( راه اندازی مجدد و يا راه اندازی اوليه ) . BIOS برای تشخيص مورد فوق از مقدار موجود در آدرس ۰۰۰۰:۰۴۷۲ استفاده می نمايد. در صورتيکه مقدار فوق معادل ۱۲۳۴h باشد، نشاندهنده “راه اندازی مجدد” است . در اين حالت برنامه BIOS ، عمليات مربوط به POST را صرفنظر و اجراء نخواهد کرد. در صورتيکه در آدرس فوق هر مقدار ديگری وجود داشته باشد ، بمنزله “راه اندازی اوليه ” است .
● در صورتيکه راه اندازی از نوع ” راه اندازی اوليه ” باشد، BIOS عمليات مربوط به بررسی حافظه RAM ( تست نوشتن و خواندن) را انجام خواهد داد. در ادامه صفحه کليد و موس مورد بررسی قرار خواهند گرفت در مرحله بعد گذرگاه های PCI بررسی و در صورت يافتن گذرگاه مربوطه ، کارت های موجود بررسی خواهند شد در صورتيکه BIOS به هر نوع خطائی برخورد نمايد، موارد را از طريق يک پيام و يا بصدا در آمدن صدای بلندگوی داخلی کامپيوتر (Beep) به اطلاع خواهد رساند. خطاهای در اين سطح اغلب به موارد سخت افزاری مربوط خواهد بود.
● BIOS برخی اطلاعات جزئی در رابطه با سيستم را نمايش خواهد داد. اطلاعاتی در رابطه با پردازنده ، هارد ، فلاپی درايو، حافظه، نسخه و تاريخ BIOS و نمايشگر نمونه ای از اطلاعات فوق می باشند.
● هر نوع درايور خاص نظير آداپتورهای SCSI از طريق آداپتور مربوطه فعال و BIOS اطلاعات مربوطه را نمايش خواهد داد.
● در ادامه BIOS درايو مورد نظر برای راه اندازی ( Booting) را مشخص می نمايد. بدين منظور از اطلاعات ذخيره شده در CMOS استفاده می گردد. واژه Boot بمنزله استقرار سيستم عامل در حافظه است .
مرحله سوم : پس از اتمام اوليه عمليات BIOS ، و واگذاری ادامه عمليات راه اندازی به برنامه Bootstarp loader ، عملا” مرحله استقرار سيستم عامل به درون حافظه آغاز می گردد .
مرحله چهارم : پس از استقرار سيستم عامل در حافظه، مديران عملياتی سيستم عامل در شش گروه : مديريت پردازنده ، مديريت حافطه ، مديريت دستگاهها، مديريت حافظه های جانبی ، مديريت ارتباطات و مديريت رابط کاربر به ايفای وظيفه خواهند پرداخت .
مرحله پنجم : پس از استقرار سيستم عامل ، می توان برنامه های مورد نظر خود را اجراء نمود. سيستم عامل محيط لازم برای اجرای برنامه ها را ايجاد خواهد کرد. پس از اتمام عمليات استفاده از برنامه ها می توان هر يک از آنها را غيرفعال (Close) نمود.
مرحله ششم : در صورت تصميم به خاموش نمودن سيستم ، سيستم عامل تنظيمات جاری خود را در يک فايل خاص نوشته تا در زمان راه اندازی مجدد( آينده ) از آنان استفاده نمايد.
مرحله هفتم : پس از خاموش نمودن سيستم (Shut down)، سيستم عامل بطور کامل سيستم را خاموش می نمايد.

پردازنده
کامپيوتری که هم اکنون بکمک آن در حال مشاهده و مطالعه اين صفحه هستيد ، دارای يک ريزپردازنده است . ريزپردازنده بمنزله مغز در کامپيوتر است. تمام کامپيوترها اعم از کامپيوترهای شخصی ، کامپيوترهای دستی و … دارای ريزپردازنده می باشند. نوع ريزپردازنده استفاده شده در يک کامپيوتر می تواند متفاوت باشد ولی تمام آنها عمليات يکسانی را انجام خواهند داد.

تاريخچه ريزپردازنده ها
ريزپردازنده که CPU هم ناميده می گردد، پتانسيل های اساسی برای انجام محاسبات و عمليات مورد نظر در يک کامپيوتر را فراهم می نمايد. ريزپردازنده از لحاظ فيزيکی يک تراشه است . اولين ريزپردازنده در سال ۱۹۷۱ و با نام Intel 4004 معرفی گرديد. ريزپردازنده فوق چندان قدرتمند نبود و صرفا” قادر به انجام عمليات جمع و تفريق چهار بيتی بود. نکته مثبت پردازنده فوق، استفاده از صرفا” يک تراشه بود.قبل از آن مهندسين و طراحان کامپيوتر از چندين تراشه و يا عصر برای توليد کامپيوتر استفاده می کردند.

اولين ريزپردازنده ای که بر روی يک کامپيوتر خانگی نصب گرديد ، ۸۰۸۰ بود. پردازنده فوق هشت بيتی و بر روی يک تراشه قرار داشت . اين ريزپردازنده در سال ۱۹۷۴ به بازار عرضه گرديد.اولين پردازنده ای که باعث تحولات اساسی در دنيای کامپيوتر شد ، ۸۰۸۸ بود. ريزپردازنده فوق در سال ۱۹۷۹ توسط شرکت IBM طراحی و اولين نمونه آن در سال ۱۹۸۲ عرضه گرديد. وضعيت توليد ريزپردازنده توسط شرکت های توليد کننده بسرعت رشد و از مدل ۸۰۸۸ به ۸۰۲۸۶ ، ۸۰۳۸۶ ، ۸۰۴۸۶ ، پنتيوم ، پنتيوم II ، پنتيوم III و پنتيوم ۴ رسيده است . تمام پردازنده های فوق توسط شرکت اينتل و ساير شرکت های ذيربط طراحی و عرضه شده است . پردازنده های پنتيوم ۴ در مقايسه با پردازنده ۸۰۸۸ عمليات مربوطه را با سرعتی به ميزان ۵۰۰۰ بار سريعتر انجام می دهد! جدول زير ويژگی هر يک از پردازنده های فوق بهمراه تفاوت های موجود را نشان می دهد.

Name Date Transistors Microns Clock speed Data width MIPS
8080 1974 6,000 6 2 MHz 8 bits 0.64
8088 1979 29,000 3 5 MHz 16 bits
8-bit bus 0.33
80286 1982 134,000 1.5 6 MHz 16 bits 1

۸۰۳۸۶ ۱۹۸۵ ۲۷۵,۰۰۰ ۱٫۵ ۱۶ MHz 32 bits 5
80486 1989 1,200,000 1 25 MHz 32 bits 20
Pentium 1993 3,100,000 0.8 60 MHz 32 bits

۶۴-bit bus 100
Pentium II 1997 7,500,000 0.35 233 MHz 32 bits
64-bit bus ~300
Pentium III 1999 9,500,000 0.25 450 MHz 32 bits
64-bit bus ~510
Pentium 4 2000 42,000,000 0.18 1.5 GHz 32 bits
64-bit bus ~1,700
توضيحات جدول :
ستون Date نشاندهنده سال عرضه پردازنده است.
ستون Transistors تعدا ترانزيستور موجود بر روی تراشه را مشخص می کند. تعداد ترانزيستور بر روی تراشه در سال های اخير شتاب بيشتری پيدا کرده است .
ستون Micron ضخامت کوچکترين رشته بر روی تراشه را بر حسب ميکرون مشخص می کند. ( ضخامت موی انسان ۱۰۰ ميکرون است ).
ستون Clock Speed حداکثر سرعت Clock تراشه را مشخص می نمايد.

ستون Data Width پهنای باند واحد منطق و محاسبات (ALU) را نشان می دهد. يک واحد منطق و حساب هشت بيتی قادر به انجام عمليات محاسباتی نظير: جمع ، تفريق ، ضرب و … برای اعداد هشت بيتی است. در صورتيکه يک واحد منطق و حساب ۳۲ بيتی قادر به انجام عمليات بر روی اعداد ۳۲ بيتی است . يک واحد منطق و حساب ۸ بيتی بمنظور جمع دو عدد ۳۲ بيتی می بايست چهار دستورالعمل را انجام داده در صورتيکه يک واحد منطق وحساب ۳۲ بيتی عمليات فوق را صرفا” با اجرای يک دستورالعمل انجام خواهد داد.در اغلب موارد گذرگاه خارجی داده ها مشابه ALU است . وضعيت فوق در تمام موارد صادق نخواهد بود مثلا” پردازنده ۸۰۸۸ دارای واحد منطق وحساب ۱۶ بيتی بوده در حاليکه گذرگاه داده ئی آن هشت بيتی است . در اغلب پردازنده های پنتيوم جديد گذرگاه داده ۶۴ بيتی و واحد منطق وحساب ۳۲ بيتی است . ستون MIPS مخفف کلمات Millions of instruction per Second ( ميليون دستورالعمل در هر ثانيه ) بوده و واحدی برای سنجش کارآئی يک پردازنده است.

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

۱ – يک ريزپردازنده با استفاده از واحد منطق و حساب خود (ALU) قادر به انجام عمليات محاسباتی نظير: جمع ، تفريق، ضرب و تقسيم است. پردازنده های جديد دارای پردازنده های اختصاصی برای انجام عمليات مربوط به اعداد اعشاری می باشند.
۲ – يک ريزپردازنده قادر به انتقال داده از يک محل حافظه به محل ديگر است .

۳ – يک ريزپردازنده قادر به اتخاذ تصميم ( تصميم گيری ) و پرش به يک محل ديگر برای اجرای دستورالعمل های مربوطه بر اساس تصميم اتخاذ شده است .
شکل زير يک پردازنده ساده را نشان می دهد.

پردازنده فوق دارای :
● يک گذرگاه آدرس (Address Bus) است که قادر به ارسال يک آدرس به حافظه است ( گذرگاه فوق می تواند ۸ ، ۱۶ و يا ۳۲ بيتی باشد)
● يک گذرگاه داده (Data Bus) است که قادر به ارسال داده به حافظه و يا دريافت داده از حافظه است (گذرگاه فوق می تواند ۸ ، ۱۶ و يا ۳۲ بيتی باشد)
● يک خط برای خواندن (RD) و يک خط برای نوشتن (WR) است که آدرسی دهی حافظه را انجام می دهند. آيا قصد نوشتن در يک آدرس خاص وجود داشته و يا مقصود، خواندن اطلاعات از يک آدرس خاص حافظه است؟
● يک خط Clock که ضربان پردازنده را تنظيم خواهد کرد.

● يک خط Reset که مقدار ” شمارنده برنامه ” را صفر نموده و يا باعث اجرای مجدد يک فرآيند می گردد.
فرض کنيد پردازنده فوق هشت بيتی بوده واز عناصر زير تشکيل شده است:
– ريجسترهای A,B,C نگاهدارنده هائی بوده که از فليپ فلاپ ها ساخته شده اند.

– Address Latch مشابه ريجسترهای A,B,C است .
– شمارنده برنامه (Program Counter) نوع خاصی از يک نگهدارنده اطلاعات است که قابليت افزايش بميزان يک و يا پذيرش مقدار صفر را دارا است
– واحد منطق و حساب (ALU) می تواند يک مدار ساده جمع کننده هشت بيتی بوده و يا مداری است که قابليت انجام عمليات جمع ، تفريق ، ضرب و تقسيم را دارا است .

– ريجستر Test يک نوع خاص نگاهدارنده بوده که قادر به نگهداری نتايج حاصل از انجام مقايسه ها توسط ALU است .ALU قادر به مقايسه دو عدد وتشخيص مساوی و يا نامساوی بودن آنها است . ريجستر Test همچنين قادر به نگهداری يک Carry bit ( ماحصل آخرين مرحله عمليات جمع) است . ريجستر فوق مقادير مورد نظر را در فليپ فلاپ ها ذخيره و در ادامه Instruction Decoder “تشخيص دهنده دستورالعمل ها ” با استفاده از مقادير فوق قادر به اتخاذ تصميمات لازم خواهد بود.

– همانگونه که در شکل فوق ، مشاهده می گردد از شش ” ۳-State” استفاده شده که به آنها “tri-State buffers” می گويند. بافرهای فوق قادر به پاس دادن مقادير صفر و يا يک و يا قطع خروجی مربوطه می باشند.. اين نوع بافرها امکان ارتباط چندين خروجی را از طريق يک Wire فراهم می نمايند. در چنين حالتی فقط يکی از آنها قادر به انتقال ( حرکت ) صفر و يا يک بر روی خط خواهد بود.
– ريجستر Instruction و Instruction Decoder مسئوليت کنترل ساير عناصر را برعهده خواهند داشت . بدين منظور از خطوط کنترلی متفاوتی استفاده می گردد. خطوط فوق در شکل فوق نشان داده نشده اند ولی می بايست قادر به انجام عمليات زير باشند:
– به ريجستر A اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاهدارد.(Latch)

– به ريجستر B اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاهدارد.(Latch)

– به ريجستر C اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاهدارد.(Latch)
– به ” شمارنده برنامه ” اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاهدارد.(Latch)
– به ريجستر Address اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاهدارد.(Latch)
– به ريجستر Instruction اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاهدارد.(Latch)
– به ” شمارنده برنامه ” اعلام نمايد که مقدار خود را افزايش دهد.

– به ” شمارنده برنامه ” اعلام نمايد که مقدار خود را صفر (Reset) نمايد.
– به واحد منطق و حساب نوع عملياتی را که می بايست انجام گيرد، اعلام نمايد.

– به ريجستر Test اعلام نمايد که بيت های ماحصل عمليات ALU را در خود نگاهدارد.
– فعال نمودن خط RD ( خواندن )
– فعال نمودن خط WR ( نوشتن )
حافظه های RAM و ROM
در بخش قبل گذرگاه های آدرس و داده نظيرخطوط RD,WR بررسی گرديدند. گذرگاه های فوق به حافظه های RAM ،ROM و يا هر دو متصل خواهند بود. در ريزپردازنده ساده فرضی فوق، از گذرگاه های آدرس و داده هشت بيتی استفاده می گردد. بدين ترتيب پردازنده قادر به آدرس دهی ۲۵۶ بايت حافظه و خواندن و يا نوشتن هشت بيت از حافظه در هر لحظه خواهد بود. فرض کنيد پردازنده فوق دارای ۱۲۸ بايت حافظه ROM بوده که از آدرس صفر شروع شده و ۱۲۸ بايت

حافظه RAM که از آدرس ۱۲۸ آغاز می گردد ، است . حافظه ROM تراشه ای است که اطلاعاتی را از قبل و بصورت دائم در خود نگهداری می نمايد. گذرگاه های آدرس به تراشه ROM اعلام خواهند کرد که کدام بايت را خواسته و آن را بر روی گذرگاه قرار خواهد داد. زمانيکه وضعيت خط RD تغيير نمايد تراشه ROM بايت مورد نظر و انتخابی را بر روی گذرگاه داده قرار خواهد داد. RAM شامل بايت هائی از اطلاعات است . ريزپردازنده قادر به خواندن و نوشتن در حافظه فوق بر اساس

سيگنال های دريافتی از خطوط RD و RW است . در رابطه با حافظه RAM می بايست به اين نکته نيز اشاره گردد که اين نوع از حافظه ها با از دست منبع انرژی ( برق ) اطلاعات خود را از دست خواهند داد.

تمامی کامپيوترها دارای حافظه ROM به ميزان مشخص می باشند. ( برخی از کامپيوترها ممکن است دارای حافظه RAM نبوده نظير ميکرو کنترل ها ، ولی وجود و ضرورت حافظه ROM را در هيچ کامپيوتری نمی توان انکار نمود).بر روی کامپيوترهای شخصی حافظه ROM را BIOS نيز می نامند. زمانيکه ريزپردازنده فعاليت خود را آغاز می نمايد ، در ابتدا دستورالعمل هائی را اجراء خواهد کرد که در BIOS می باشند. دستورالعمل های موجود در BIOS عمليانی نظير تست سخت افزار و سيستم را انجام و در ادامه فرآيندی آغاز خواهد شد که نتيجه آن استقرار سيستم عامل در حافظه خواهد بود. (Booting) . در آغاز فرآيند فوق ، بوت

سکتور هارد ديسک ( می تواند آغاز عمليات فوق از هارد شروع نشده و از فلاپی ديسک انجام گردد ، اتخاذ تصميم در رابطه با وضعيت فوق بر اساس پارامترهای ذخيره شده در حافظه CMOS خواهند بود ) را بررسی خواهد کرد . بوت سکتور فوق حاوی برنامه ای کوچک است که در ادامه BIOS آن را خوانده و در حافظه RAM مستقر خواهد کرد. ريزپردازنده در ادامه دستورالعمل های مربوط به برنامه بوت سکتور را که در حافظه RAM مستقر شده اند ،اجراء خواهد کرد. برنامه فوق به ريزپردازنده اعلام خواهد کرد که اطلاعات ديگری را از هارد ديسک به درون حافظه RAM انتقال و آنها را اجراء نمايد. با ادامه وتکميل فرآيند فوق سيستم عامل در حافظه مستقر ومديريت خود را آغاز می نمايد.

دستورالعمل های ريزپردازنده
هر ريزپردازنده دارای مجمو عه ای از دستورالعمل ها بوده که دارای کارآئی خاصی می باشند. اين دستورالعمل ها بصورت الگوئی از صفر و يا يک پياده سازی می گردنند. استفاده از دستورات فوق با توجه به ماهيت الگوئی آنها برای انسان مشکل و بخاطر سپردن آنها امری است مشکل تر! ، بدين دليل از مجموعه ای ” کلمات ” برا ی مشخص نمودن الگوهای فوق استفاده می گردد. مجموعه ” کلمات ” فوق ” زبان اسمبلی ” ناميده می شوند. يک ” اسمبلر” قادر به ترجمه کلمات به الگوهای بيتی متناظر است .پس از ترجمه ، ماحصل عمليات که همان استخراج ” الگوهای بيتی ” است، در حافظه مستقر تا زمينه اجرای آنها توسط ريزپردازنده فراهم گردد جدول زير برخی از دستورالعمل های مورد نياز در رابطه با پردازنده فرضی را نشانن می دهد.

Instruction Meaning
LOADA mem لود نمودن ريجستر A از آدرس حافظه
LOADB mem لود نمودن ريجستر B از آدرس حافظه
CONB con لود نمودن يک مقدار ثابت در ريجستر B
SAVEB mem ذخيره نمودن مقدار موجود در ريجستر B در يک آدرس حافظه
SAVEC mem ذخيره نمودن مقدار موجود در ريجستر C در يک آدرس حافظه
ADD جمع A و B و ذخيره کردن حاصل در C
SUB تفريق A و B و ذخيره کردن حاصل در C
MUL ضرب A و B و ذخيره کردن حاصل در C
DIV تقسيم A و B و ذخيره کردن حاصل در C
COM مقا يسه A و B و ذخيره کردن حاصل در Test
JUMP addr پرش به يک آدرس مشخص
JEQ addr پرش شرطی ( اگر مساوی است ) به يک آدرس مشخص
JNEQ addr پرش شرطی ( اگر نا مساوی است ) به يک آدرس مشخص
JG addr پرش شرطی ( اگر بزرگتر است ) به يک آدرس مشخص
JGE addr پرش شرطی ( اگر بزرگتر و يا مساوی است ) به يک آدرس مشخص
JL addr پرش شرطی ( اگر کوچکتر است ) به يک آدرس مشخص
JLE addr پرش شرطی ( اگر کوچکتر و يا مساوی است ) به يک آدرس مشخص
STOP توقف اجراء

مثال : فرض کنيد برنامه محاسبه فاکتوريل عدد پنج (۵!=۵*۴*۳*۲*۱ ) با يکی از زبانهای سطح بالا نظير C نوشته گردد . کمپايلر ( مترجم ) زبان C برنامه مورد نظر را به زبان اسمبلی ترجمه خواهد کرد. ( فرض کنيد که آدرس شروع RAM در پردازنده فرضی ۱۲۸ و آدرس شروع حافظه ROM صفر باشد.) جدول زير برنامه نوشته شده به زبان C را بهمراه کد ترجمه شده اسمبلی معادل آن، نشان می دهد.

C Program Assembly Language
a=1;
f=1;
while (a <= 5)
{
f = f * a;
a = a + 1;
} // Assume a is at address 128
// Assume F is at address 129
0 CONB 1 // a=1;
1 SAVEB 128
2 CONB 1 // f=1;
3 SAVEB 129
4 LOADA 128 // if a > 5 the jump to 17
5 CONB 5
6 COM
7 JG 17
8 LOADA 129 // f=f*a;
9 LOADB 128
10 MUL
11 SAVEC 129
12 LOADA 128 // a=a+1;
13 CONB 1
14 ADD
15 SAVEC 128
16 JUMP 4 // loop back to if
17 STOP

در ادامه می بايست کدهای ترجمه شده به زبان اسمبلی به زبان ماشين ( الگوهای بيتی ) ترجمه گردند. بدين منظور لازم است که هر يک از دستورات اسمبلی دارای کد معادل (OpCode) باشند. فرض کنيد دستورات اسمبلی در پردازنده فرضی دارای Opcode ( کدهای عملياتی) زير باشند.
Assembly Instruction Opcode
LOADA mem 1
LOADB mem 2
CONB con 3
SAVEB mem 4
SAVEC mem 5
ADD 6
SUB 7
MUL 8
DIV 9
COM 10
JUMP addr 11
JEQ addr 12
JNEQ addr 13
JG addr 14
JGE addr 15
JL addr 16
JLE addr 17
STOP 18
در نهايت برنامه ترجمه شده به زبان اسمبلی به زبان ماشين ( الگوهای بيتی ) ترجمه خواهد شد.

Assembly Language Bit Patterns
// Assume a is at address 128
// Assume F is at address 129
0 CONB 1 // a=1;
1 SAVEB 128
2 CONB 1 // f=1;
3 SAVEB 129
4 LOADA 128 // if a > 5 the jump to 17
5 CONB 5
6 COM
7 JG 17
8 LOADA 129 // f=f*a;
9 LOADB 128
10 MUL
11 SAVEC 129
12 LOADA 128 // a=a+1;
13 CONB 1
14 ADD
15 SAVEC 128
16 JUMP 4 // loop back to if
17 STOP // Assume a is at address 128
// Assume F is at address 129
Addr opcode/value
0 3 // CONB 1
1 1
2 4 // SAVEB 128
3 128
4 3 // CONB 1
5 1
6 4 // SAVEB 129
7 129
8 1 // LOADA 128
9 128
10 3 // CONB 5
11 5
12 10 // COM
13 14 // JG 17
14 31
15 1 // LOADA 129
16 129
17 2 // LOADB 128
18 128
19 8 // MUL
20 5 // SAVEC 129
21 129
22 1 // LOADA 128
23 128
24 3 // CONB 1
25 1
26 6 // ADD
27 5 // SAVEC 128
28 128
29 11 // JUMP 4
30 8
31 18 // STOP

همانگونه که مشاهده می نمائيد برنامه نوشته شده به زبان C به ۱۷ دستورالعمل معادل اسمبلی و ۳۱ دستورالعمل زبان ماشين تبديل گرديد.
Instruction Decoder ( تشخيص دهنده نوع دستورالعمل ها ) با انجام عملياتی خاص، نوع دستورالعمل را تشخيص خواهد داد. فرض کنيد دستور العمل ADD را داشته باشيم و بخواهيم نحوه تشخيص دستورالعمل را دنبال نمائيم :
– در زمان اولين Clock ، دستورالعمل Load می گردد. ( فعال کردن بافر tri-state برای ” شمارنده برنامه ” ، فعال شدن خط RD ، فعال کردن Data-in در بافر tri-state )
– در زمان دومين Clock ، دستورالعمل ADD تشخيص داده خواهد شد.( تنظيم عمليات جمع برای ALU ، ذخيره نمودن ماحصل عمليات ALU در ريجستر C )
– در زمان سومين Clock، ” شمارنده برنامه ” افزايش خواهد يافت ( در تئوری اين مرحله می تواند در زمان دومين Clock نيز صورت پذيرد)
همانگونه که ملاحظه گرديد ، هر دستورالعمل اسمبلی دارای چندين Clock Cycle است . برخی از دستورات نظير ADD دارای دو و يا سه Clock و برخی ديگر از دستورات دارای پنج ويا شش Clock خواهند بود.