آموزش معماری کامپیوتر – به زبان ساده و جامع
معماری کامپیوتر عبارت است از تعیین استانداردهایی برای تعامل سخت افرار و نرم افزار با یکدیگر به منظور ایجاد یک پلتفرم یا سیستم کامپیوتری. در واقع معماری کامپیوتر به معنای چگونگی طراحی کامیپوتر و این که چه تکنولوژیهایی در آن به کار برود، است. در آموزش معماری کامپیوتر، مجموعه قوانینی برای این که سخت افزار و نرم افزار چگونه در کنار یکدیگر کار کنند، تعیین میشود. از آنجایی که کامپیوترها به بخش مهمی از زندگی ما تبدیل شدهاند، معماری کامپیوتر نیز برای طراحی کامپیوترهای جدید و بهتر از اهمیت زیادی برخوردار است.
در معماری کامپیوتر، باید یک طراحی منطقی و استاندارد بر اساس نیازهای کاربر و ویژگیهایی که از سیستم انتظار میرود انجام دهیم. معماری کامپیوتر، یکی از مهمترین موضوعاتی است که شامل مفاهیم پایهای و دانش مورد نیاز برای طراحی یک سیستم کامپیوتری میشود. همچنین این موضوع یکی از مهمترین بخشهای دورههای آموزشی علوم کامپیوتر در دانشگاه محسوب میشود. تمامی دانشجویان کارشناسی که در رشتههای مهندسی نرم افزار یا آی تی به تحصیل مشغولاند، باید با معماری کامپیوتر آشنا شوند. همچنین معماری کامپیوتر، یکی از گرایشهای اصلی کارشناسی ارشد کامپیوتر نیز محسوب میشود.
در این مطلب قصد داریم به آموزش معماری کامپیوتر برای افراد مبتدی بپردازیم. تمامی مباحث مهم مربوط به معماری کامپیوتر، در این مطلب پوشش داده شده است. از آنجایی که پیش نیاز یادگیری معماری کامپیوتر درس مدار منطقی است، توصیه میکنیم آموزش رایگان مدار منطقی را در فرادرس مشاهده کنید.
برای فهم بیشتر معماری کامپیوتر، اجازه دهید مفهوم معماری را توضیح دهیم.
مفهوم معماری
معماری به معنای هنر و دانش و دانش طراحی یک شی است. واژه معماری معمولاً به ساختن مرتبط میشود. ساختن، یکی از مهمترین مفاهیم در زندگی بشر است. معماری به ما کمک میکند تا استانداردهای عملکردی و فیزیکی هر شی را تعریف کنیم. هر شی در دنیا، بر مبنای یک معماری ساخته شده است. برای مثال یک معمار ساختمان به طراحی و کشیدن مشخصات اصلی یک ساختمان میپردازد.
به طور مشابه، یک معمار سیستم به تعریف واحدهای عملیاتی سیستم کامپیوتری و نحوه تعامل این واحدها با یکدیگر میپردازد. به زبان سادهتر، معماری کامپیوتر عبارت است از طراحی عملکرد واحدهای مختلف کامپیوتر. معماری کامپیوتر به ما کمک میکند تا قابلیتهای عملیاتی و نیازهای یک سیستم کامپیوتری را تعریف کنیم.
شاخههای اصلی معماری کامپیوتر
سه شاخه اصلی در معماری کامپیوتر وجود دارد. تمامی این شاخهها باید در طراحی یک سیستم کامپیوتری در نظر گرفته شود تا بتوان یک کامپیوتر را به خوبی طراحی کرد.
۱. طراحی سیستم
طراحی سیستم شامل تمامی بخشهای سخت افزاری کامیپوتر میشود، از جمله: پردازنده، چند پردازنده، کنترل کننده حافظه و دسترسی مستقیم حافظه.
۲. مجموعه دستورالعمل ها
این قسمت به مشخص کردن قابلیتها و عملکرد سی پی یو یا همان پردازنده مرکزی با استفاده از مجموعهای از دستورات مربوط میشود. این دستورات، همان چیزهایی هستند که باعث میشوند تا کامپیوتر به درستی کار کند. اجرای سیستم عامل و سایر برنامهها با استفاده از این دستورات انجام میشود.
۳. ریزمعماری
این بخش نحوه ذخیره سازی داده، مسیر ذخیره شدن دادهها و نحوه پیاده سازی مجموعه دستورات در یک پردازنده خاص را مشخص میکند.
آشنایی با واحدهای پایه ای در یک سیستم کامپیوتری
در معماری کامپیوتر، میتوان واحدهایی را در نظر گرفت که پایه و اساس یک سیستم کامیپوتری را تشکیل میدهند. یکی از موضوعاتی که باید در آموزش معماری کامپیوتر پوشش داده شود، واحدهای مختلف یک کامپیوتر است.
۱. واحد ورودی
این واحد، دادههایی که قرار است توسط سی پی یو پردازش شود را فراهم میکند. متداولترین ورودیهایی که برای یک کامپیوتر در نظر گرفته میشود، موس و کیبرد هستند. اما میتوان ورودیهایی مانند دوربین، اسکنر و میکروفون را نیز به کامپیوتر متصل کرد.
۲. واحد پردازنده مرکزی یا CPU
واحد پردازنده مرکزی که از آن با عنوان مغز کامپیوتر نیز یاد میشود، وظیفه تأمین قدرت پردازشی کامپیوتر را بر عهده دارد. سی پی یو از سه واحد مهم تشکیل شده است:
- واحد کنترل
- واحد منطق
- واحد محاسبه
این سه واحد در کنار یکدیگر، سی پی یو را تشکیل میدهند. مهمترین وظیفه سی پی یو، اجرای برنامههای کامپیوتری است. سی پی یو برنامهها را با اجرای به ترتیب دستوراتی که از برنامه ذخیره شده در حافظه دریافت میکند، اجرا میکند. اجرای دستورات به صورت چرخهای انجام میشود. این چرخه شامل موارد زیر است:
- دریافت دستورات
- رمزگشایی دستورات
- اجرای دستورات
- ذخیره
این چرخه، برای هر یک از دستورات انجام میشود.
۳. واحد کنترل
واحد کنترل، بخشی از سی پی یو است. واحد کنترل وظیفه کنترل نحوه کار تمام اجزای متصل به کامپیوتر را دارد. به زبان سادهتر، واحد کنترل وظیفه کنترل تمام عملکردهای کامپیوتر را بر عهده دارد. واحپ کنترل، سیگنالهایی را به اجزای مختلف کامپیوتر ارسال میکند و به آنها میفهماند که باید عملکرد خاصی را از خود نشان بدهند. این واحد همچنین وظیفه کدگشایی دستورات ارسال شده از حافظه را بر عهده دارد. پس از آن واحد کنترل با کنترل واحدهای محاسبه و منطق، دستور را اجرا میکند.
۴. واحد محاسبه و منطق (Arithmetic Logic Unit یا ALU)
این واحد در واقع وظیفه انجام محاسبات ریاضی لازم را در سی پی یو بر عهده دارد. این واحد محاسبه و منطق است که تمامی عملیاتها را روی دادهها انجام میدهد.
عملیات واحد محاسبه و منطق شامل سه دسته عملیات میشود:
- عملیات محاسباتی
- عملیات منطقی
- عملیات مربوطه به انجام عمل شیفت (shift)
۵. واحد خروجی
مهمترین کاربرد خروجی، نمایش دادههایی که توسط سی پی یو پردازش شدهاند به کاربر است. متداولترین خروجیهای کامپیوتر عبارت است از مانیتور، اسپیکر، پرینتر و پروژکتور.
۶. واحد حافظه
علاوه بر واحدهایی که تا اینجا گفته شد، حافظه یکی دیگر از قسمتهای مهم کامپیوتر حافظه است. عملکرد اصلی واحد حافظه، ذخیره داده است. انواع مختلفی از حافظه وجود دارد. حافظه به دو دسته اصلی تقسیم میشود:
- حافظه اصلی یا همان رم (RAM) که به آن حافظه موقت نیز میگویند.
- حافظه ثانویه یا همان هارد دیسک (hard disk) که به آن حافظه دائمی نیز میگویند.
علاوه بر اینها، حافظه سریع کش (high speed cache memory) نیز بین سی پی یو و رم قرار گرفته است. سی پی یو، دادههایی که به مکرراً استفاده میشوند را در حافظه کش ذخیره میکند. سی پی یو میتواند با سرعت بسیار بالایی به این دادهها دسترسی داشته باشد، یعنی سرعت دسترسی سی پی یو به دادههای کش بسیار بیشتر از سرعت دسترسی سی پی یو به دادههای ذخیره شده در رم است.
۷. رجیستر (Register)
رجیسترها، حافظههای پرسرعتی هستند که در چیپ سی پی یو قرار دارند. رجیستر، کوچیکترین و در عین حال سریعترین نوع حافظه موقت محسوب میشود. تعداد رجیسترها بستگی به معماری پردازنده دارد. از رجیسترها در طول اجرای دستورات یک برنامه کامپیوتری استفاده میشود.
رجیسترها نقش مهمی در چرخه اجرای دستورات بازی میکنند. سرعت دسترسی به رجیسترها توسط سی پی یو، بسیار بالاتر از سرعت دسترسی سی پی یو به حافظه کش است. به همین علت از رجیستر برای اجرای دستورات توسط سی پی یو استفاده میشود. بلاک دیاگرام واحدهای مختلف کامپیوتر را میتوانید در تصویر زیر مشاهده کنید.
برای تهیه و مشاهده آموزشهای مربوط به واحدهای پایهای کامپیوتر، به صفحات زیر مراجعه کنید.
- آموزش معماری کامپیوتر با رویکرد حل مساله – مقدماتی
- آموزش پروتئوس – طراحی مدار واحد محاسبه و منطق ALU در Proteus
آشنایی با سخت افزار کامپیوتر
در معماری کامپیوتر، سخت افزار به مؤلفههای فیزیکی درون کامپیوتر یا متصل به آن اطلاق میشود. وظیفه اصلی سخت افزار، اجرای دستورات سی پی یو است. سخت افزار کامپیوتر میتواند الکترونیکی، برقی یا مکانیکی باشد. بعضی از سخت افزار الکترونیکی کامپیوتر عبارتاند از:
- مادربرد (motherboard)
- پردازنده (processor)
- مانیتور
- دیسک ذخیره سازی
- رم
بعضی از سخت افزارهای برقی کامپیوتر نیز عبارتاند از:
- منبع تغذیه
- سیمها
کیس کامپیوتر نیز نمونهای از سخت افزار مکانیکی است که سایر قطعات کامپیوتر در آن جای گرفته و به یکدیگر متصل میشوند. سخت افزار توسط نرم افزارهایی به نام درایور (driver) کنترل میشود. سیستم عامل و سخت افزار توسط درایور با یکدیگر در تعامل هستند.
آشنایی با نرم افزار کامپیوتر
همانطور که قبلاً گفتیم هدف از آموزش معماری کامپیوتر، طراحی نحوه تعامل سخت افزار و نرم افزار است. بنابراین نرم افزار در کنار سخت افزار، مؤلفه مهم دیگر یک سیستم کامپیوتری را تشکیل میدهد. هدف از ساخت نرم افزار، طراحی برنامهای است که بتواند دستورات خاصی را انجام دهد.
نرم افزار یک برنامه یا مجموعهای از برنامهها است که برای ارائه یک خدمت خاص طراحی شده است. نرم افزار را میتوان با استفاده از زبانهای برنامه نویسی نظیر سی، جاوا، پایتون یا هر زبان دیگری پیاده سازی کرد. اگر بخواهیم به یک نمونه از نرم افزارها اشاره کنیم، میتوانیم به مایکروسافت آفیس اشاره کنیم که برنامهای کاربردی برای کار با اسناد مختلف است.
در معماری کامپیوتر از دو نوع نرم افزار استفاده میشود:
- نرم افزار کاربردی
- نرم افزار سیستم
آشنایی با نرم افزار کاربردی
نرم افزار کاربردی، این امکان را به کاربر میدهد تا وظایف مختلفی را با استفاده از کامپیوتر انجام دهد. این نرم افزارها دارای یک رابط کاربری برای تعامل با کاربر هستند. کاربر میتواند نرم افزارهای مختلفی را روی کامپیوتر خود نصب و اجرا کند. هر نرم افزار، یک خدمت خاص را به کاربر ارائه میدهد.
آشنایی با نرم افزار سیستم
در معماری کامپیوتر منظور از نرم افزار سیستم، نرم افزاری است که نقش یک رابط را بین سیستم عامل و سخت افزارهای مختلف بازی میکند. درایورها نمونهای از نرم افزارهای سیستم هستند. کامیپوتر برای انجام بعضی عملیاتهای خاص به سایر انواع نرم افزار سیستم نیاز دارد.
نرم افزار سیستم توسط خود کامپیوتر استفاده میشود و کاربر به طور مستقیم از آن استفاده نمیکند. سیستم عامل، نوع دیگری از نرم افزار سیستم است که وجود آن برای استفاده از هر کامپیوتری ضروریست.
آشنایی با ساختار حافظه در معماری کامپیوتر
قبلاً به حافظه و انواع آن اشاره کردیم. در معماری کامپیوتر، حافظه به تعداد زیادی بلوک تقسیم میشود. یک بلوک حافظه از ۸ بیت تشکیل شده است. به هر ۸ بیت یک بایت میگویند. هر بایت حافظه، در یک موقعیت مکانی مشخص از حافظه قرار گرفته است و آدرس منحصربفرد خود را دارد.
آموزش معماری کامپیوتر – آشنایی با دستورالعمل ها
منظور از دستورالعمل در معماری کامپیوتر، مجموعهای از دستورات باینری است که پردازنده توانایی اجرای آنها را دارد. هر پردازنده بر اساس مجموعه دستورات مشخصی طراحی شده است. در واقع مجموعه دستورالعملها، مجموعهای عملگرها هستند که سی پی یو باید از آنها پشتیبانی کند. برای مثال، بعضی از پردازندهها از مجموعه دستورات x86 پیروی میکنند. مجموعه دستورالعملها، ماکزیمم طول برنامه را مشخص میکند. همچنین فرمت دستورات نیز توسط مجموعه دستورالعملها مشخص میشود. فرمت دستورالعملها نحوه کدگذاری دستورات در یک فرمت خاص را مشخص میکنند.
همانطور که تا اینجا گفتیم، سی پی یو وظیفه اجرای برنامهها را بر عهده دارد. اما سی پی یو تنها قادر به اجرای دستورات ماشین در قالب فرمت باینری است. تمامی برنامههای نوشته شده با زبانهای سطح بالا، باید به دستورات ماشین تبدیل شوند. انجام این کار بر عهده کامپایلر است. کامپایلر (compiler) دستورات نوشته شده به زبان سطح بالا را به دستورات سطح پایین ماشین تبدیل میکند. دستورات ماشین، مستقیماً کدگشایی شده و توسط پردازنده پردازش میشوند. به فرمت استاندارد زبان ماشین، فرمت دستورالعمل (instruction format) میگویند.
فرمت دستورالعمل، الگویی از بیتها را تعریف میکند که از سه بخش تشکیل شده است:
- آدرس دهی
- عملیات
- داده
بخش آدرس دهی به کدکشایی موقعیت مکانی ذخیره شده داده کمک میکند. بخش عملیات، نوع عملیاتی که باید انجام شود را مشخص میکند. بخش داده نیز مقدار داده را مشخص میکند.
آشنایی با وقفه ها در معماری کامپیوتر
در آموزش معماری کامپیوتر، وقفه عبارت است از سیگنالهایی که توسط سخت افزار یا نرم افزار به پردازنده ارسال میشود تا پاسخ مناسبی از پردازند دریافت شود. به وقفههای تولید شده توسط سخت افزار، وقفه سخت افزاری میگویند. در حالی که به وقفههای تولید شده توسط نرم افزار، وقفه نرم افزاری گفته میشود.
شاید از خود بپرسید که چرا به این سیگنالها، وقفه گفته میشود. علت آن است که با ارسال این سیگنالها، چرخه طبیعی اجرای دستورات متوقف شده و سی پی یو باید پاسخی را به سیگنال وقفه ارسال کند. پاسخ سی پی یو به سیگنال وقفه، به اولویت و نوع آن سیگنال بستگی دارد.
آشنایی با گذرگاه کامپیوتر (computer bus)
در معماری کامپیوتر، گذرگاه عبارت است از سیمهایی که سی پی یو و سایر مؤلفههای سختافزاری را به یکدیگر متصل میکند. در واقع گذرگاهها سیمهایی هستند که در سیستم کامپیوتری وجود دارند. این گذرگاهها وظیفه انتقال داده، کنترل سیگنالها و کنترل آدرس حافظه را بر عهده دارند. برای اجرای یک برنامه، سی پی یو باید با رم و سایر مؤلفههای سخت افزاری ارتباط برقرار کند. برای برقراری این ارتباط، از گذرگاهها استفاده میشود.
سی پی یو به صورت بی وقفه در حال خواندن حافظه و اجرای عملیات است و دادهها از طریق گذرگاهها بین رم و سی پی یو منتقل میشوند. سیگنالهای کنترلی توسط گذرگاههای کنترلی ارسال میشوند. همچنین خواندن آدرس و آدرس دهی نیز از طریق گذرگاه آدرس انجام میشود.
آشنایی با سیستم اعداد دودویی
در آخرین بحث مربوط به معماری کامپیوتر، قصد پرداختن به سیستم اعداد دودویی را داریم. یکی از چیزهایی که برای درک معماری کامپیوتر باید بر آن مسلط شوید، سیستم اعداد دودویی است. کامپویترها و سایر دستگاههای دیجیتال قادر به درک سیستم اعداد ده دهی نیستند و باید برای تعامل با آنها از سیستم دودویی استفاده کرد. در ریاضیات و سیستمهای دیجیتال، عدد دودویی عددی است که تنها دو رقم صفر و یک در آن به کار میرود. در واقع برای نمایش هر عددی، تنها باید از ارقام صفر و یک استفاده کنید.
در جدول زیر، سیستمهای اعداد را در مبناهای مختلف مشاهده میکنید:
کامپیوتر یک سیستم دیجیتال است. پردازنده کامپیوتر از میلیونها قطعه ریز به نام ترانزیستور تشکیل شده است. ترانزیستورها را میتوان برای طراحی عملیاتهایی مانند میکروسوییچ استفاده کرد. میکروسوییچ شامل دو حال خاموش و روشن است. چنین سیستمی را میتوان به راحتی با استفاده از اعداد دودویی اجرا کرد. برای مثال میتوان صفر را نماینده خاموش و یک را نماینده روشن در نظر گرفت.
کلام آخر درباره آموزش معماری کامپیوتر
در این مطلب که به آموزش معماری کامپیوتر اختصاص داده شده بود، سعی کردیم مفاهیم پایهای معماری کامپیوتر را به زبان ساده آموزش دهیم. معماری کامپیوتر یکی از دروس مهم دانشگاهی و یکی از موضوعات جذاب دنیای کامپیوتر محسوب میشود.
اگر میخواهید آشنایی بیشتری با معماری کامپیوتر پیدا کنید، به شما پیشنهاد میکنیم به فرادرس مراجعه کنید و آموزش تکمیلی معماری کامپیوتر را مشاهده کنید. فرادرس یک منبع آموزشی آنلاین در ایران است که میتوانید در آن آموزشهای مناسبی در زمینه معماری کامپیوتر با رویکرد حل مسئله پیدا کنید.