معماری کامپیوتر یکی از درسهای کلیدی و پایهای رشتههای علوم و مهندسی کامپیوتره که خیلی هم مهمه. توی این درس میبینیم اجزای مختلف یک سیستم کامپیوتری چطور با هم تعامل میکنن و هر کدوم چه وظیفهای دارن. دورهای که پیش رو دارید با هدف آموزش کامل سرفصلهای این درس تدوین شده و ...
آشنایی با دوره معماری کامپیوتر
معماری کامپیوتر یکی از درسهای کلیدی و پایهای رشتههای علوم و مهندسی کامپیوتره که خیلی هم مهمه. توی این درس میبینیم اجزای مختلف یک سیستم کامپیوتری چطور با هم تعامل میکنن و هر کدوم چه وظیفهای دارن. دورهای که پیش رو دارید با هدف آموزش کامل سرفصلهای این درس تدوین شده و بهصورت رایگان در دسترسه.
هدف اصلی این دوره، ساختن یک پایه محکم برای درک معماری سیستمهای کامپیوتری مدرنه. یعنی هم مفاهیم پایه رو یاد میگیرید، هم تکنیکها و مبادلات طراحی رو، هم ساختار ماشین و عوامل فناوری رو. بعدش هم میرسیم به مباحثی مثل چند هستهایها، سیستمهای تعبیهشده و سیستمهای موازی. جالبه بدونید که این دانش پایه، برای طراحی معماریهای کامپیوتری آینده هم به کارتون میاد.
این دوره برای دانشجوهای علوم کامپیوتر، مهندسی کامپیوتر و مهندسی فناوری اطلاعات یکی از ضروریترین درسهاست. هم برای کنکور کارشناسی ارشد اهمیت داره، هم جزء درسهای پایه این رشتهها محسوب میشه.
توی این دوره دقیقاً چی یاد میگیریم؟ 🤔
درس معماری کامپیوتر به چگونگی کارکرد، طراحی و ساخت پایهایترین اجزای کامپیوتر میپردازه. از یک پردازنده ساده و ابتدایی شروع میکنیم و اصول کارکردش رو میفهمیم. بعد کمکم میرسیم به معماریهای مختلف پردازنده. بعد از مفاهیم پایه، نوبت به مباحث پیشرفتهتر مثل cache، pipelining و... میرسه. در انتهای درس انتظار میره که بتونید یک کامپیوتر ساده بسازید! آشنایی با زبان اسمبلی و درس مدار منطقی هم به فهم بهتر این درس کمک زیادی میکنه.
سرفصلهای دوره
این دوره شامل ۲۸ جلسهست و سرفصلها به این شکله:
جلسه اول – معرفی درس و مطالب آن
جلسه دوم – مقدمه درس، روند حرکت تکنولوژی
جلسه سوم – اجزای پایه سختافزار، کارایی و توان
جلسه چهارم – مرور مبانی موردنیاز از درس مدارهای منطقی
جلسه پنجم – ISA و زبان اسمبلی کامپیوتر پایه
جلسه ششم – ادامه زبان اسمبلی
جلسه هفتم – دستورات حلقه، زیربرنامهها و وقفه، ممیز شناور، جمع و تفریق، ضرب بوث و...
جلسه هشتم – رجیسترها (ثبات و انتقال ثبات)، آشنایی با واحد کنترل
جلسه نهم – سازمان داخلی کامپیوتر پایه
جلسه دهم – پیادهسازی تعدادی از دستورات
جلسه یازدهم – پیادهسازی دستورات دسترسی به حافظه و وقفه
جلسه دوازدهم – پیادهسازی واحد کنترل سیمبندیشده
جلسه سیزدهم – ادامه پیادهسازی واحد کنترل سیمبندیشده
جلسه چهاردهم – مثالهایی از پیادهسازی واحد کنترل
جلسه پانزدهم – طراحی واحد کنترل ریزبرنامهای
جلسه شانزدهم – ادامه طراحی واحد کنترل ریزبرنامهای
جلسه هفدهم – ادامه طراحی واحد کنترل ریزبرنامهای
جلسه هجدهم – سلسلهمراتب حافظه
جلسه نوزدهم (بخش ۱ و ۲) – حافظه نهان
جلسه بیستم – ادامه حافظه نهان، حافظه مجازی
جلسه بیست و یکم – ادامه حافظه مجازی، دستگاههای ورودی/خروجی
جلسه بیست و دوم – ادامه دستگاههای ورودی/خروجی، قابلیت اطمینان و روشهای محاسبه
جلسه بیست و سوم (بخش ۱ و ۲) – ادامه ورودی/خروجی، روشهای دسترسی، حافظه DMA و...
جلسه بیست و چهارم – روش انتقال اطلاعات به دستگاههای صفر و یک
جلسه بیست و پنجم – آشنایی با پیادهسازی pipeline
جلسه بیست و ششم – پیادهسازی پردازنده MIPS بهصورت pipeline
جلسه بیست و هفتم – مخاطرات پیادهسازی pipeline
جلسه بیست و هشتم – جلسه پایانی
معماری کامپیوتر به زبان ساده
معماری کامپیوتر (Computer Architecture) به ساختار و سازماندهی سیستم کامپیوتری اشاره داره. در واقع مشخص میکنه که اجزای تشکیلدهنده یک سیستم کامپیوتری چی هستن، چطور با هم ارتباط دارن، چطور با هم تعامل میکنن و چطور مدیریت میشن. توی این دوره قراره با این معماری، اجزاش و نحوه کارش آشنا بشیم.
واژه «معمار» به کسی گفته میشه که برنامهریزی یا تدبیر میکنه. معمار کامپیوتر از دانش دقیق سختافزار و نرمافزار برای طراحی سیستمهای کامپیوتری استفاده میکنه. این کار شامل طراحی دقیق اجزای داخل ریزپردازنده و همچنین اجزای مختلفی میشه که با پردازنده اصلی تعامل دارن. معماران طراح نهتنها یک CPU، بلکه کل سیستمهای چندپردازندهای رو با سختافزارهای مختلف متصل به هم میسازن.
معماری کامپیوتر دقیقاً چیه؟
معماری کامپیوتر به استانداردهای نرمافزار، دستورالعملهای مهندسی سختافزاری و زیرساختهای فناوری اشاره داره که نحوه عملکرد سیستمهای کامپیوتری، پلتفرمها و برنامهها رو مشخص میکنه. به عبارت دیگه، معماری کامپیوتر طراحی، عملکرد و سازگاری سیستم رو تعیین میکنه. ایجاد معماری کامپیوتر نیازمند متخصصان فناوری اطلاعاته تا اول نیازهای کاربران، محدودیتهای فناوری و الزامات فرآیند رو مشخص کنن.
معماری کامپیوتر توصیفی کاربردی از الزامات و اجرای طراحی برای بخشهای مختلف کامپیوتره و به رفتار عملکردی سیستمهای کامپیوتری میپردازه. این درس یکی از درسهای پایه در رشته مهندسی کامپیوتر و فناوری اطلاعاته و اهمیت بالایی داره. توی این دوره با معماری کامپیوتر و نحوه تعامل اجزاش بهصورت تخصصی آشنا میشیم.
ویژگیهای معماری کامپیوتر
معماری کامپیوتر ویژگیهای متعددی داره که مهمترینشون اینهاست:
معماری، کاری که کامپیوتر انجام میده رو توصیف میکنه.
به رفتار عملکردی سیستمهای کامپیوتری میپردازه.
نشوندهنده سختافزار سیستمه.
از دید یک برنامهنویس، معماری مجموعهای از دستورالعملها، حالتهای آدرسدهی و ثباتهاست.
برای طراحی کامپیوتر، اول معماری اون ثابت میشه.
به معماری کامپیوتر، معماری مجموعه دستورالعمل (ISA) هم میگن.
شامل توابع منطقی مثل مجموعه دستورالعملها، ثباتها، انواع دادهها و حالتهای آدرسدهیه.
دستهبندیهای مختلف معماری در سیستمهای کامپیوتری عبارتند از:
معماری فون نویمان
معماری هاروارد
مجموعه دستورالعمل معماری
میکرو معماری
طراحی سیستم
معماری، سختافزار و نرمافزار سیستم رو هماهنگ میکنه.
معماری و سیستمهای کامپیوتری برای اجرای کارآمد مدلهای یادگیری ماشین (ML) بهینه شدهان.
توی دوره با ویژگیهای بیشتر معماری کامپیوترها بهصورت عملی آشنا میشیم.
اجزای کلی معماری کامپیوتر
هر سیستم کامپیوتری از سه بخش کلی تشکیل شده. توی دوره به این موضوع بهصورت تخصصی اشاره میشه، ولی اینجا هم خلاصهاش رو میگیم:
طراحی سیستم: شامل تمام بخشهای سختافزاری مثل CPU، پردازندههای داده، چندپردازندهها، کنترلکنندههای حافظه و دسترسی مستقیم به حافظه.