درس معماری کامپیوتر با مباحث ریاضی و الگوریتمی شامل روشهای مختلف جمع و ضرب و محدودیتها و ویژگیهای هرکدام از سیستمهای اعداد متداول موجود در پردازندهها آغاز میگردد، سپس با طراحی دقیق و جزئی یک پردازندهی ساده ادامه یافته و در طول درس ویژگیهایی که پردازندهای پیشرفته فعلی دارند مانند Pipeline و Cache و … مورد بررسی قرار می گیرد
معماری کامپیوتر چیست؟
معماری کامپیوتر نشاندهنده چگونگی اتصال متقابل قطعات سخت افزاری کامپیوتر و نیز نحوه انتقال و پردازش داده بین این قطعات است.
معماری کامپیوتر یا Computer Architecture شامل قوانین، روش ها و فرایندهایی است که پیاده سازی و عملکرد سیستم های کامپیوتری را توصیف می کند.
۴ نوع معماری ابتدایی برای سیستم های کامپیوتری
در معماری اولیه، سی پی یو در مرکز قرار دارد در حالی که حافظه اصلی و ورودی/خروجی سیستم در دو طرف CPU قرار گرفته اند.
در دومین پیکربندی کامپیوتر کنترل کننده ورودی/خروجی در مرکز قرار دارد.
سومین معماری کامپیوتر از حافظه اصلی بعنوان مکانی در سیستم کامپیوتر استفاده می کند که تمامی جریان (flow)داده ها و دستورالعمل هااز آن خارج شده یا به داخل آن میروند.
و در نهایت چهارمین معماری کامپیوتر از یک باس (گذرگاه) مشترک کنترل و داده برای اتصال تمام دستگاه هایی که یک سیستم کامپیوتری را تشکیل می دهند، استفاده می کند.
معماری کامپیوتر به ساختار زیربنایی یک سیستم کامپیوتری اطلاق میشود. با توجه به این که نرمافزار وابستگی مستقیمی با سختافزار دارد، شناخت کافی و دقیق معماری سیستمهای کامپیوتری برای توسعهدهندگان نرمافزار و برنامهنویسان، به اندازه فعالان و متخصصین سختافزار دارای اهمیت است.
اهمیت درس معماری کامپیوتر
دانش معماری و سازمان کامپیوتر به شناخت نحوه اجرای دستورالعملهای کامپیوتر در سطح خُرد کمک میکند. به واسطه معماری کامپیوتر میتوان شناخت لازم را نسبت به جریان داده (Data Flow)، سلسله مراتب حافظه (Memory Hierarchy)، مبادلات (Tradeoffs) و تحلیل زمانبندی به دست آورد. همچنین میتوان شناختی در خصوص مفاهیم سیستمهای توکار (سیستمهای تعبیه شده | سامانههای نهفته | Embedded Systems) و طراحی پردازنده (Processor Design) پیدا کرد.
اجزای تشکیل دهنده معماری کامپیوتر
معماری کامپیوتر یا computer architecture به صورت کلی شامل سه بخش طراحی سیستم ( System Design )، مجموعه دستورالعمل ها (Instruction set architecture) و ریز معماری (HAS) میشود
طراحی سیستم
این بخش به بررسی اجزای یک کامپیوتر واقعی پرداخته و بخش های فیزیکی را مورد بحث قرار میدهد. در واقع طراحی سیستم، بخش های سخت افزاری مختلف یک کامپیوتر را بیان میکند. بخش هایی نظیر پردازشگرهای داده، کنترل کننده های حافظه، چند پردازنده ها و دسترسی مستقیم به حافظه که همگی جزء بخش های فیزیکی یک سیستم کامپیوتری محسوب میشوند.
معماری مجموعه دستورالعمل ها
این بخش شامل بررسی دقیق ویژگی های پردازنده و زبان برنامه نویسی CPU میباشد. در این بخش مواردی همچون دستورالعمل های برنامه نویسان، انواع ثبت پردازنده، فرمت های داده و نیز قابلیت های CPU مورد بحث قرار خواهد گرفت. در اینجا مفهوم و کاربرد ثبات ها نیز مورد بررسی قرار میگیرد.
ریز معماری
مجموعه دستورالعمل هایی برای پردازنده مورد آزمایش و بررسی قرار میگیرد. برای مشخص کردن این دستورات و معین کردن شیوه ذخیره سازی، مسیر های داده و نحوه پیاده سازی آنها در معماری مجموعه دستورالعمل ها، نیازمند ابزاری خواهیم بود. این ابزار ریز معماری نام داشته که شیوه عملکرد دستورات را مشخص میکند.
معیارهای اندازهگیری کارایی پردازنده
در کاربرد های عمومی و روزمره معمولا از معیار اندازه گیری MIPS برای سنجش عملکرد CPU استفاده میکنیم. این معیار به معنای تعداد دستوری که یک پردازنده میتواند در مدت زمان یک ثانیه اجرا کند خواهد بود. اما در سیستم هایی که برای محاسبات علمی و مهندسی پیاده سازی شده اند، این معیار عملکرد مناسبی نخواهد داشت. به همین دلیل است که برای کامپیوتر های مهندسی از معیار MegaFlops به منظور تعداد میلیون عملیات ممیز شناور در ثانیه یا از GigaFlops (تعداد میلیارد عملیات ممیز شناور در ثانیه) استفاده میشود.
معیارهای سنجش کیفیت معماری کامپیوتر
معیار های سنجش یک معماری کامپیوتری شامل دو مورد تحت عناوین عمومیت و بازدهی میباشند. عمومیت یعنی معماری فوق برای چه گستره ای از کاربردها، مناسب و قابل استفاده است بازدهی نیز به منظور میزان متسوط تعداد قطعاتی است که در هنگام کار کردن با کامپیوتر مشغول خواهند بود.
سرفصل های درس معماری کامپیوتر
از سرفصلهای مهم درس معماری کامپیوتر میتوان به انتقال ثباتها، واحد کنترل و سازمان ورودی-خروجی اشاره کرد. موضوعات اصلی که در مطلب درس معماری کامپیوتر به آنها پرداخته میشود، شامل موارد زیر است:
- مدارهای منطقی دیجیتال (Digital Logic Circuits)
- قطعات دیجیتال (اجزای دیجیتال | مؤلفههای دیجیتال | Digital Components)
- نمایش دادهها (Data Representation)
- انتقال ثباتها و ریزعملیات (Register Transfer and Microoperations)
- ساختار و طراحی کامپیوتر پایه (Basic Computer Organization and Design)
- برنامهریزی کامپیوتر پایه (Programming the Basic Computer)
- واحد کنترل (Control Unit)
- واحد پردازنده مرکزی (Central processing Unit)
- پردازش خط لوله، برداری و موازی (Pipeline, Vector and Parallel Processing)
- محاسبات کامپیوتر (Computer Arithmetic)
- سازمان ورودی-خروجی (Input/Output Organization)
- سازمان و سلسه مراتب حافظه (Memory Organization and Hierarchy)
- چندپردازندهها (Multiprocessors)