آموزش معماری کامپیوتر از صفر تا صد (و نکات و ترفندها)
من معتقدم که موفقیت تا حد زیادی به دو چیز وابستگی دارد، اینکه جهان را چگونه می بینید و چقدر آن را واقعا درک می کنید. در مورد مهندسی نرم افزار نیز همین است. جایی که معماری کامپیوتر اساس مهندسی نرم افزار است و اگر آن را به اندازه کافی خوب درک کنید، مهندسی نرم افزار نیز آسان و راحت خواهد شد.
معماری کامپیوتر چیست؟
براساس تعریف ویکی پدیا:
معماری کامپیوتر مجموعه ای از قوانین و روش ها است که عملکرد، سازماندهی و پیاده سازی سیستم های کامپیوتری را توصیف می کند. برخی معماری کامپیوتر را به عنوان توصیف قابلیت ها و مدل برنامه نویسی کامپیوتر بدون پیاده سازی خاصی تعریف می کنند. به طور خلاصه معماری کامپیوتر در واقع مجموعه قوانینی است که نحوه تعامل سخت افزار و نرم افزار با یکدیگر را کنترل می کند.
چرا معماری کامپیوتر بخوانیم؟
معماری کامپیوتر می تواند بیش از حد تصورتان به شما کمک می کند.
به عنوان مثال بیشتر رانندگان فرمول 1 اطلاعات زیادی در مورد موتور ماشین خود دارند تا جاییکه می توانند هرگونه مشکل در موتور را تشخیص دهند حتی قبل از اینکه مهندسان بتوانند آن را انجام دهند!
همچنین با فیزیک و آیرودینامیک آشنایی دارند که به آنها کمک می کند تا نکات دقیقی به مکانیک های خود در Pitstop بدهند، مانند تنظیم دماغه یا چرخ ها که روی موفقیت آنها را در مسابقات تاثیر زیادی دارد.
خب همه اینها چه ربطی به معماری کامپیوتر دارد؟ این همان مفهوم است! هنگامی که پایه و اساس مهندسی نرم افزار را بشناسید و درباره آن بیشتر بدانید، می توانید مشکلات را مدیریت کرده و به اهداف و موارد مورد نیاز خود برسید.
چرا باید معماری کامپیوتر را یاد بگیرید:
- همیشه از آن استفاده خواهید کرد.
- معماری کامپیوتر یکی از اساسی ترین موضوعات در علوم کامپیوتر است. همانطور که بدون کامپیوتر رشته علوم کامپیوتر وجود نخواهد داشت.
- باید بدانید که دستورالعمل ها و عملکردها چگونه کار می کنند و چگونه با هم تعامل دارند که نرم افزارتان بهتر شود. زیرا هر کاری که انجام دهید بعد از معماری کامپیوتر قرار می گیرد.
- معماری کامپیوتر کمک می کند تا برنامه ها را طوری طراحی کرده، توسعه داده و پیاده سازی کنید که بهتر، سریعتر، ارزان تر، کارآمدتر و آسان تر استفاده شوند زیرا به جای حدس زدن و فرضیات تصمیمات آگاهانه خواهید گرفت.
یک مثال در مورد اینکه چگونه معماری کامپیوتر می تواند روی روش کدنویسی تاثیر بگذارد:
فرض کنید در قطار و در محل اتصال راه آهن هستید و وظیفه تان مشاهده راه است:
باید یک طرف را انتخاب کنید اما نمی دانید کدام طرف. بنابراین ممکنه راه درست را انتخاب کنید یا البته راه اشتباه را. اگر راه درست را انتخاب کنید پس به مسیر خود ادامه می دهید اما در صورت انتخاب راه اشتباه باید به عقب برمی گردید و راه دیگری را انتخاب کنید. بنابراین با انتخاب راه درست مجبور نیستید دوباره به عقب برگردید و با انتخاب راه اشتباه باید عقب و جلو بروید.
منطقی است؟
دستور if را در نظر بگیرید: در سطح پردازنده یک دستورالعمل شاخه است:
کد:
فرض کنید پردازنده هستید و یک شاخه با مسیرهای متفاوت را مشاهده می کنید، هیچ ایده ای هم ندارید که به کدام مسیر بروید، بنابراین:
- اگر درست حدس بزنید اجرا هرگز متوقف نخواهد شد.
- اگر اشتباه حدس بزنید، زمان بیشتری را به دلیل بازگشت و شروع مجدد اجرا می کنید.
بنابراین چگونه می توانیم هر بار انتخاب بهتری داشته باشیم؟
با مشاهده کردن. اگر این روند معمولا به مسیر سمت چپ منجر می شود، چپ را حدس می زنیم و بالعکس. اگر هم متناوب و متفاوت است، انتخاب خود را نیز متناوب می کنیم. این فرآیند، کم و بیش، نحوه پیش بینی شاخه است.
معماری کامپیوتر را بیاموزید تا مهندس نرم افزار بهتری شوید.
اصول و مفاهیم اولیه که خودش نصف راه یادگیریه!
بله درست شنیدین! نصف راه اینه که بدونید معماری کامپیوتر یکی از مباحث پایهای و مهم در علوم کامپیوتر و مهندسی کامپیوتر است که به بررسی ساختار و عملکرد اجزای اصلی یک کامپیوتر میپردازد. در این قسمت مطلب هم به مفاهیم پایهای معماری کامپیوتر و اجزای اصلی آن میپردازیم:
۱. مفاهیم پایهای
-
معماری کامپیوتر: طراحی و ساختار سختافزاری یک سیستم کامپیوتری و نحوه تعامل اجزای آن.
-
سختافزار (Hardware): اجزای فیزیکی کامپیوتر مانند پردازنده، حافظه، و دستگاههای ورودی/خروجی.
-
نرمافزار (Software): برنامههایی که روی سختافزار اجرا میشوند.
۲. اجزای اصلی کامپیوتر
الف. واحد پردازش مرکزی (CPU - Central Processing Unit)
-
مغز کامپیوتر که دستورالعملها را اجرا میکند.
-
واحد کنترل (Control Unit): دستورالعملها را تفسیر و اجرا میکند.
-
واحد محاسبه و منطق (ALU - Arithmetic Logic Unit): عملیات محاسباتی و منطقی را انجام میدهد.
-
ثباتها (Registers): حافظههای کوچک و سریع برای ذخیره موقت دادهها.
ب. حافظه (Memory)
-
معماری رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی با طراحی داخلی، نما، انیمیشن ... دانلود:
پک تریدی مکس پک اسکچاپ پک اتوکد پک لومیون (انیمیشن معماری) پک نورپردازی و متریال Vray پک پست پروداکشن و شیت بندیحافظه اصلی (RAM - Random Access Memory): دادهها و دستورالعملها را به صورت موقت ذخیره میکند.
-
حافظه کش (Cache Memory): حافظهای بسیار سریع برای ذخیره دادههای پرکاربرد.
-
حافظه ثانویه (Secondary Storage): مانند هارد دیسک یا SSD، برای ذخیره دائمی دادهها.
ج. دستگاههای ورودی/خروجی (I/O Devices)
-
ورودی (Input): مانند صفحه کلید، ماوس، اسکنر.
-
خروجی (Output): مانند مانیتور، پرینتر، بلندگو.
د. گذرگاهها (Buses)
-
گذرگاه آدرس (Address Bus): آدرس حافظه یا دستگاه I/O را منتقل میکند.
-
گذرگاه داده (Data Bus): دادهها را بین اجزای کامپیوتر منتقل میکند.
-
گذرگاه کنترل (Control Bus): سیگنالهای کنترل را منتقل میکند.
۳. چرخه اجرای دستورالعمل
۱. واکشی (Fetch): دستورالعمل از حافظه به CPU منتقل میشود.
۲. رمزگشایی (Decode): دستورالعمل تفسیر میشود.
۳. اجرا (Execute): عملیات مربوطه انجام میشود.
۴. نوشتن (Writeback): نتیجه عملیات در حافظه یا ثبات ذخیره میشود.
۴. سلسله مراتب حافظه
-
ثباتها (Registers): سریعترین و کوچکترین حافظه.
-
حافظه کش (Cache): سریع و کوچک، بین CPU و RAM.
-
حافظه اصلی (RAM): سریع و بزرگتر از کش.
-
حافظه ثانویه (Secondary Storage): کندتر اما با ظرفیت بسیار بیشتر.
۵. انواع معماری کامپیوتر
الف. معماری فون نویمان (Von Neumann Architecture)
-
دادهها و دستورالعملها در یک حافظه مشترک ذخیره میشوند.
-
مزیت: سادگی و انعطافپذیری.
-
معایب: محدودیت در سرعت به دلیل گلوگاه حافظه.
ب. معماری هاروارد (Harvard Architecture)
-
دادهها و دستورالعملها در حافظههای جداگانه ذخیره میشوند.
-
مزیت: افزایش سرعت دسترسی.
-
معایب: پیچیدگی بیشتر.
ج. معماری CISC (Complex Instruction Set Computer)
-
دستورالعملهای پیچیده و متنوع.
-
مزیت: کاهش تعداد دستورالعملها.
-
معایب: افزایش زمان اجرای دستورالعملها.
د. معماری RISC (Reduced Instruction Set Computer)
-
دستورالعملهای ساده و کمتعداد.
-
مزیت: افزایش سرعت اجرای دستورالعملها.
-
معایب: افزایش تعداد دستورالعملها برای انجام یک کار.
۶. مفاهیم پیشرفته
-
پردازش موازی (Parallel Processing): استفاده از چندین پردازنده برای افزایش سرعت.
-
چند هستهای (Multi-core): چندین هسته پردازشی در یک CPU.
-
پردازش ابری (Cloud Computing): استفاده از منابع محاسباتی در شبکه.
نمودار معماری کامپیوتر
دروس آموزشی معماری کامپیوتر
- برای مشاهده بهتر ویدیوها در موبایل، گوشی را افقی نگه دارید. اگر اروری مشاهده کردید بخاطر روشن بودن وی پی ان است. بعد از پخش هر ویدیو، علامت دانلود روی آن نمایان می شود.
- اگر روی دانلود کلیک کردید و ویدیو باز هم پخش شد، بعد از پخش ردن روی علامت سه نقطه پایینش کلیک و گزینه دانلود یا ذخیره را انتخاب کنید. هر درسی مشکل داشت در نظرات اعلام کنید تا سریعا رفع شود. ضمنا هر چند وقت یک بار احتمالا دروس به روز می شوند.
از پیج کنکور ارشد کامپیوتر:
درس 1 بخش اول
|
درس 1 بخش دوم
|
درس 2 بخش اول
|
درس 2 بخش دوم
|
درس 3 بخش اول
|
درس 3 بخش دوم
|
درس 4 بخش اول
|
درس 4 بخش دوم
|
درس 4 بخش سوم
|
درس 4 بخش چهارم
|
حتما در کنار این مطلب دانلود کنید: آموزش مهندسی کامپیوتر از صفر با 8 درس رایگان
سلام وقت بحیر از آموزش دوم قسمت اول لینکش خرابه
پاسخ