معماری کامپیوتر چیست؟ – از مفاهیم تا کاربرد به زبان ساده
![معماری کامپیوتر چیست؟ – از مفاهیم تا کاربرد به زبان ساده](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/07/wgat-is-Computer-Architecture-1.jpg.webp)
همانطور که در مطلب پیشین مجله فرادرس در رابطه با درس معماری به آن اشاره کردیم، یکی از مباحث برجسته در مهندسی کامپیوتر، «معماری کامپیوتر» است که به بیانِ ساختار سیستمهای کامپیوتری و اجزای آن میپردازد. گاهی اوقات، ممکن است که این توصیف، از بیان جزئیات ریزِ پیادهسازی، چشمپوشی کند و بیانی سطح بالا را ارائه دهد. اما هنگامیکه جزئیات بیشتری در این رابطه ارائه شود، با مواردی همچون واحدهای مختلف پردازشی، حافظه، بخشهای ورودی و خروجی و همچنین نحوه عملکرد هر کدام، آشنا میشویم. هدف اصلی معماری کامپیوتر این است که توازنی بین عملکرد، کارایی، هزینه و قابلیت اطمینانِ سیستم، ایجاد کند. در این مطلب از مجله فرادرس یاد میگیریم که معماری کامپیوتر چیست و علاوهبر معرفی انواع آن، خصوصیات هر یک را نیز مورد بررسی قرار میدهیم.
معماری کامپیوتر چیست ؟
«معماری کامپیوتر» (Computer Architecture)، بهعنوان یکی از مفاهیم موجود در دنیایِ علوم کامپیوتر، توصیفی است که در مورد نحوه تشکیل شدن سیستمهای کامپیوتری و همچنین چگونگی کارکرد آنها در پشت صحنه، ارائه میشود.
به بیان دیگر، معماری کامپیوتر به ما میگوید که چگونه مؤلفههای سختافزاری و نرمافزاری در سیستمی کامپیوتری، پیادهسازی و سازماندهی میشوند. در این توصیف، نه تنها نحوه پیادهسازی آنها، بلکه چگونگی ارتباطی که با یکدیگر دارند نیز مد نظر قرار میگیرد.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/07/computer-system-architecture.png.webp)
برای واضحتر شدن موضوع، میتوانیم معماری سازه یا نقشهکشی ساختمان را در نظر بگیریم. در معماری کامپیوتر هم با مفهومی این چنینی روبهرو هستیم که به ما میگوید ساختار «درونی» (Inside) کامپیوترها به چهصورتی است. در حالت کلی، «معماری کامپیوتر» را میتوان به ۳ دسته اصلی تقسیم کرد، که در ادامه، فهرست شدهاند.
- طراحی سیستم
- معماری دستورالعملها
- ریزمعماری
کامپیوترهاییکه این معماریها را مورد استفاده قرار میدهند، بهوسیله «الگوهای طراحی» (Design Patterns) تعریف شده در معماریهای مورد نظر، پیادهسازی میشوند. در طراحی این معماریها، مواردی مانند نیازمندیهای سیستم، کاربر و همچنین فناوری جدید، در نظر گرفته شدهاند.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/architecture-1.jpg.webp)
مزایای استفاده از معماری کامپیوتر چیست ؟
با در نظر گرفتن اینکه از چه نوع معماری کامپیوتری استفاده میکنیم، دهها مزیت میتوان برای آن برشمرد، اما بهطور خلاصه برخی از مهمترین مزیتهای معماریهای کامپیوتری را در ادامه، بیان کردهایم.
در ساخت سیستم کامپیوتری مزیت معماری کامپیوتر چیست ؟
«معماری کامپیوتر»، این امکان را برای ما فراهم میکند تا سیستمهای کامپیوتری را به روش خاصی که در هر معماری تعریف شده است، طراحی و پیادهسازی کنیم. در نتیجه، به ما کمک میکند تا علاوهبر اینکه محصول را با سرعت بیشتری تولید کنیم، مشکلات مربوط به مشتریان را نیز در اسرع وقت عیبیابی و برطرف کنیم.
از دیدگاه توسعهدهنده مزیت معماری کامپیوتر چیست ؟
اگر از دید «توسعهدهنده» (Developer) بخواهیم معماری کامپیوتر را بررسی کنیم، باید بگوییم که معماری کامپیوتر به ما امکان نوشتن برنامههایی را میدهد که به سختافزار «سطح پایین» (Low-Level) نیاز دارند. برای نمونه، میتوانیم از زبان برنامهنویسی «اَسِمبلی» (Assembly) برای نوشتن و توسعه دستگاههای «تعبیهشده» (Embedded Devices) و سخنتافزارهایی نظیر «پردازندهها» (Processors) و، «مادِربُردها» یا «بردهای اصلی» (Motherboards) و غیره استفاده کنیم.
بهره وری به عنوان مزیت معماری کامپیوتر چیست ؟
معماری کامپیوتر به ما کمک میکند تا اَپلیکیشنها و نرمافزارها را با سرعت بیشتر، بینیاز از منابع زیاد و همچنین بهروشی کارآمدتر و مؤثرتر، طراحی و پیادهسازی کنیم.
![معماری کامپیوتر چیه](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-1.jpg)
مستندات به عنوان مزیت معماری کامپیوتر چیست ؟
هر یک از انوع معماریهای کامپیوتر، دارای «مستندات» (Documentations) مخصوص به خود هستند. این مستندات به ما کمک میکنند تا معماری مورد نظر را به روشی مؤثرتر و سریعتر یاد بگیریم و بهکار ببریم.
انواع معماری کامپیوتر چیست ؟
معماری کامپیوتر، تعریف خیلی جذاب و عمیقی ندارد. در حقیقت، «انواع موجود از معماریهای کامپیوتر» هستند که باعث هیجان انگیزی این موضوع میشوند و به آن عمق میبخشند.
در این قسمت از مطلب، میخواهیم انوع مختلف معماریهای کامپیوتر را بررسی کنیم و امیدواریم که به لحاظ تئوری و عملی، برای شما مفید واقع شود. عناوین این معماریها در ادامه، فهرست شدهاند.
- معماری فون نویمان یا «Von-Neumann»
- معماری هاروارد یا «Harvard»
- معماری مجموعه دستوالعملها یا «Instruction Set»
- ریزمعماری یا «Microarchitecture»
معماری فون نویمان چیست ؟
آقای «جان فون نویمان» (John von Neumann)، مهندس، ریاضیدان، فیزیکدان و دانشمند علوم کامپیوترِ مجارستانی-آمریکایی بود که کارهای بزرگی را در رشتههای گوناگون، از جمله ریاضیات، فیزیک، اقتصاد، علوم کامپیوتر و آمار انجام داد. «نویمان» همچنین، از کسانی بود که در طراحی و ساخت کامپیوتر «اِنیاک» (ENIAC) (اولین کامپیوتر دیجیتالیِ قابل برنامهنویسی، الکترونیکی و همهمنظوره)، «نظریه بازی» (Game Theory)، مفهوم «اتوماتای سلولی» (Cellular Automata) نقشی کلیدی داشت.
![معماری کامپیوتر فون نویمان](https://blog.faradars.org/wp-content/uploads/2023/06/neumann-1.jpg)
نوع اول از معماری کامپیوتری که در این مطلب به آن پرداخته شده است، «Von-Neumann» یا «فون نویمان» نام دارد. این معماری بر اساس مدل طراحی کامپیوتر «فون نویمان»، طراحی و ساخته شده است.
![معماری کامپیوتر فون نویمان](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/07/Von-Neumann-Architecture-final.png.webp)
آقای «نویمان»، این معماری را برای کامپیوترهای «برنامهریزی شده-ذخیره شده» (Stored-Programmed) یا همان کامپیوترهای هوشمند، طراحی کرد که به منظور اجرای کارآمد کارهایی (Tasks | تَسکهایی) همراه با پیچیدگی محاسباتی، برنامهریزی شدهاند. به بیان ساده، منظور از کامپیوترهای «Stored-Programmed»، سیستمی است که دستورالعملهای برنامه را در حافظه الکترونیکی یا نوری که قابلِ دسترسیاند، ذخیره میکند.
تاریخچه معماری فون نویمان چیست؟
کامپیوترهای «برنامهریزی شده-ذخیره شده»، کارآمدترین کامپیوترهایی بودند که توانایی انجام وظایف (تسک | کار) سنگین، از جمله خواندن و نوشتن روی دیسکها و حافظه را داشتند. آنها میتوانستند کد خود را برای انجام این تسکها تغییر دهند و هر کاری که توسط کامپیوترهای مدرن امروزی قابل انجام است را انجام دهند. اما با این وجود، سرعت بسیار پایینی داشتند. بنابراین، فون نیومن برای حل این مشکل، مدلی را با هدف افزایش سرعت کامپیوترها ایجاد کرد.
اجزای معماری فون نویمان چیست ؟
در ادامه، توضیحاتی را در مورد مؤلفههای معماری «فون نویمان»، بیان کردهایم.
![معماری کامپیوتر فون نویمان چیه](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-2.jpg)
- «واحد پردازش» (Processing Unit): این واحد با استفاده از پردازندهها قادر است تا محاسبات پیچیده را انجام دهد. واحد پردازش مرکزی یا CPU، سه مؤلفه «واحد محاسبه و منطق»، «واحد کنترل» و «ثباتها» را شامل میشود. «واحد کنترل» (Control Unit)، با «ثبات دستورالعمل» (Instruction Register) و «شمارنده برنامه» (Program Counter) سروکار دارد و همانطور که از نامش مشخص است، به کنترل و بررسی واحدهای منطقی مشغول است. واحد محاسبه و منطق، بهطور خاص مسئول دستورات محاسباتی و منطقی است و نحوه عملکرد این عملیات را کنترل میکند. ثباتها (رجیسترها)، امکان ذخیره دادهها قبل از پردازش را فراهم میکند. ثباتها خود، ۵ نوع مختلف، از جمله «ثبات آدرس حافظه» (Memory Address Register)، «انباشتگر» (Accumulator)، «ثبات داده حافظه» (Memory Data Register)، شمارنده برنامه و «ثبات دستورالعمل جاری» (Current Instruction Register) را در بر میگیرند و میتوانند «انواع دادهای» (Data Types) مختلفی را نیز ذخیره کنند.
- «حافظه» (Memory): در زمان اجرا، دادهها را میتوان بهآسانی روی حافظه، ذخیره یا بازیابی کرد. لازم به ذکر است که CPU میتواند به واحد حافظه دسترسی داشته باشد.
- دستگاههای ورودی: دستگاه ورودی، همانطور که از نام آنها مشخص است، دستگاههایی هستند که برای وارد کردن دستورات، دادهها یا دستورالعملها به کامپیوتر مورد استفاده قرار میگیرند. صفحهکلید، رایجترین نمونه از دستگاههای ورودی است، اما درکل مواردی مانند ماوس، میکروفون، دوربین یا غیره دیگر نیز جز دستگاههای ورودی محسوب میشوند.
- دستگاههای خروجی: منظور از دستگاههای خروجی، وسیلههایی هستند که پس از تکمیل برنامه کامپیوتری، مورد استفاده قرار میگیرند. مانیتورها و چاپگرها رایجترین نمونههای دستگاههای خروجی هستند.
![مولفه های معماری کامپیوتر چیه](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-3.jpg)
کاربرد معماری فون نویمان چیست ؟
کامپیوترهای ساخته شده با این مدل، در مواردی که در ادامه بیان شده است، مورد استفاده قرار میگیرند.
- اَسِمبلرها (Assemblers)، کامپایلرها (Compilers)، پیوند دهندهها (لینکر | Linkers)، بار کننده (لودرها | Loaders) و سایر ابزارهای اتوماسیون، برنامهنویسی شده.
- در زبانهای سطح بالا مانند C++ ،C، جاوا و غیره که میتوانند کد را نیز دستکاری کنند.
معماری «Von Neumann»، با ایجاد مدلی که کامپیوترهای امروزی بر مبنای آن کار میکنند، زمینه را برای اولین کامپیوترهای قابل برنامهریزی فراهم کرد. این معماری اجزای متعددی را شامل میشود که با مشارکت یکدیگر، میتوانند «دادههای دستورالعمل» و «دادههای برنامه» را روی یک حافظه ذخیره کنند. در نتیجه، کامپیوترها میتوانند سریعتر کار کنند و عملکرد بهتری را ارائه دهند.
معماری «فون نیومن»، ویژگیهای بسیار مهم دیگری را نیز ارائه میدهد. یکی از این نمونهها «SISD» (یا Single Instruction, Single Data) است. در SISD، از فرایندهای تکی استفاده میشود. به بیان دقیقتر، یک پردازنده، تنها یک «دستورالعمل کد» را اجرا میکند، و این کار با هدف مدیریت دادههای ذخیره شده در حافظه صورت میگیرد. تکامل «SISD»، باعث شد تا کامپیوترها کارایی بالاتری داشته و قابلیت برنامهریزی باشند. همچنین، باعث میشد که کامپیوترها چندین کار را بهطور همزمان انجام دهند و در نتیجه از بروز «گلوگاههایی» (Bottlenecks) در حافظه و دادهها پرهیز شود.
![معماری کامپیوتر هاروارد چیه](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-4.jpg)
معماری هاروارد چیست ؟
نوع دوم از معماریهای کامپیوتری مورد بررسی در این مطلب، معماری «هاروارد» (Harvard) نام دارد. مفهوم این مدل، برخلاف معماری «فون نویمان» بهراحتی قابل درک است. مدل «هاروارد»، «ذخیرهسازی» (Storage) و «گذرگاههای واحد» برای دستورالعملها و دادهها را از هم جدا میکند. و این برخلاف معماری «فون نویمان» است که در آن، «دستورالعملها» و «دادههای برنامه»، فضای یکسانی را روی حافظه و بهصورت اشتراکی در اختیار دارند.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/Harvard-Architecture-1.png.webp)
تاریخچه معماری هاروارد چیست؟
معماری «هاروارد»، از کامپیوتر مبتنیبر رِله «Mark I هاروارد»، نشأت گرفته است. توسعه این معماری در سال ۱۳۱۶ (۱۹۳۷ میلادی)، آغاز شد و تکمیل آن تا سال ۱۳۲۲ (۱۹۴۴ میلادی) به طول انجامید.
![کامپیوتر هاروارد](https://blog.faradars.org/wp-content/uploads/2023/06/Harvard-Mark-I.jpg)
اجزای معماری هاروارد در معماری کامپیوتر چیست ؟
مؤلفههای موجود در مدل معماری «هاروارد»، در ادامه، فهرست شده است.
- «واحد محاسبه و منطق» (Arithmetic and Logic Unit | ALU)
- «واحد کنترل» (Control Unit)
- حافظه دستورالعمل (مجزا)
- حافظه داده (مجزا)
- دستگاههای ورودی/خروجی
کاربرد معماری هاروارد در معماری کامپیوتر چیست ؟
مدلهای «هاروارد»، بهطور خاص در دستگاهها یا اَپلیکیشنهایی استفاده میشوند که بهعنوان «دستگاههای تعبیهشده» (Embedding Devices) عمل میکنند. این مدلها معمولا با CPU-هایی که دارای «حافظه نهان» (Caches) هستند، مورد استفاده قرار میگیرند.
![معماری کامپیوتر چیه](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-5.jpg)
تفاوت معماری فون نویمان و معماری هاروارد در چیست ؟
معماری «هاروارد»، شبیه به مدل «هاب و پره چرخ» (Hub and Spoke) است. یعنی واحد کنترل، در مرکز آن قرار گرفته است و سایر مؤلفهها از جمله واحد محاسبه و منطق، حافظه دستورالعمل، حافظه داده و دستگاههای ورودی/خروجی، همگی به واحد کنترل یا «CU» مرتبط هستند.
از سویی، هر دوی این معماریها، بیانگر روشهایی برای پردازش داده و اطلاعات بهوسیله کامپیوترها محسوب میشوند. همچنین، هر ۲ معماری، تکیه بر واحد کنترل مرکزی خود دارند و حافظهٰای برای تغذیه واحد کنترل و تعامل با آن را شامل میشوند. مهمترین تفاوت این ۲ معماری، در این است که معماری «فون نویمان»، از «SISD» برای حافظه و برنامهنویسی استفاده میکند در حالیکه معماری «هاروارد»، گذرگاههای جداگانهای را بهکار میبرد. ذخیره دادهها نیز در این ۲ معماری بهصورت متفاوتی انجام میشود.
معماری مجموعه دستورالعمل در معماری کامپیوتر چیست ؟
سومین موردی که در این مطلب به آن پرداختهایم، «معماری مجموعه دستورالعمل» (Instruction Set Architecture | ISA) نام دارد.
این معماری، هر ۲ نوع دستورهای «کامپیوتر با دستورالعملهای کم» (Reduced Instruction Set Computer | RISC) و «کامپیوتر با دستورالعملهای پیچیده» (Complex Instruction Set Computer | CISC) را در بر میگیرد. دستورالعملهای «ISA»، بهوسیله دستگاههای زیادی، از جمله CPU-ها اجرا میشوند. با توجه به تصویری که در ادامه آمده است، چارچوب «ISA»، رابطی بین کامپایلرها (زبان سطح بالا) و سختافزار را تعریف میکند و این امر با زبانی انجام میشود که توسط هر دو طرف قابل درک است.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/ISA-architecture.png.webp)
تاریخچه معماری مجموعه دستورالعمل چیست؟
معماری مجموعه دستورالعمل بهوسیله IBM، در دهه ۹۰ میلادی توسعه داده شده است.
اجزای مجموعه دستورالعمل در معماری کامپیوتر چیست ؟
مؤلفههای «معماری مجموعه دستورالعمل»، شامل مواردی است که در ادامه، فهرست شدهاند.
- دستورات (Instructions)
- حالتهای آدرسدهی
- «انواعدادههای بومی» (Native Data Types)
- معماری حافظه
- «وقفهها» (Interrupts)
- «دستورات ورودی/خروجیِ بیرونی» (External I/O instructions)
کاربرد مجموعه دستورالعمل در معماری کامپیوتر چیست ؟
معماری مجموعه دستورالعمل، حاوی مجموعه دستورالعملهایی است که برای برنامهریزی «دستگاههای تعبیهشده» بهکار برده میشوند.
![معماری مجموعه دستورالعمل چیه](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-6.jpg)
ریزمعماری چیست ؟
چهارمین معماری که در این قسمت به آن میپردازیم، «ریز معماری» (Microarchitecture) نام دارد که تصویری منطقی از نحوه عملکرد «ریزپردازنده» (Microprocessor)، طراحی و همچنین تعامل آن با مؤلفههایش را ارائه میدهد.
Microarchitecture همچنین، در بر گیرنده ارتباط ثباتها، گذرگاهها، بردهای اصلی (مادِربُردها | Motherboards) است که «معماری مجموعه دستورالعمل» را اجرا میکنند. بهعبارت دیگر، میتوانیم بگوییم که معماری کامپیوتر ترکیبی از «معماری مجموعه دستورالعملها» و «معماری میکرو» (ریز معماری) است.
اجزای ریزمعماری در معماری کامپیوتر چیست ؟
معماری «Microarchitecture»، شامل مؤلفههایی نظیر «واحد محاسبه و منطق»، «مالتیپِلِکسرها»، بلوکهای منطق دیجیتال و سایر اجزا است.
کاربرد ریزمعماری در معماری کامپیوتر چیست ؟
Microarchitecture، بهطور معمول در «ریزپردازندهها» (Microprocessors) و «میکروکنترلرها» (Microcontrollers) بهکار گرفته میشود.
![ریز معماری](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-7.jpg)
معماری طراحی سیستم چیست ؟
این معماری، روش یا فرایندی برای تعریف الزامات معماری کامپیوتر همچون ماژولها، «رابطها» (Interfaces)، سیستمهای پیچیده، سختافزار، نرمافزار و غیره را شامل میشود. به بیان دیگر، این معماری، حاوی تمام اجزای سختافزاری سیستم مانند پردازشگرهای داده، دسترسی مستقیم به حافظه و واحد پردازش گرافیکی است. همچنین «مسیرهای داده»، «کنترلرهای حافظه» و موارد دیگری مانند «مجازیسازی» و «پردازش چندگانه» را نیز در بر میگیرد.
اجزای طراحی سیستم در معماری کامپیوتر چیست ؟
معماری «طراحی سیستم»، ۲ دسته یا مؤلفهای که در ادامه آمده است را شامل میشود.
- طراحی منطقی
- طراحی سختافزار
کاربرد طراحی سیستم در معماری کامپیوتر چیست ؟
همانطور که از نام آن مشخص است، «طراحی سیستم» برای طراحی (معماری سیستم) استفاده میشود.
معماری های سیستم کامپیوتری با پشتیبانی از هم زمانی
آقای «میکل فِلِین» در سال ۱۳۵۱ (۱۹۷۲ میلادی)، طبقهبندی جدیدی برای سبکهای متفاوت معماری کامپیوتری ارائه کرد. این طبقهبندی ۴ سبک مختلف را به شرحی که در ادامه آمده است، تعریف میکند.
- یک دستور یک داده (SISD)
- یک دستور چند داده (SIMD)
- چند دستور یک داده (MISD)
- چند دستور چند داده (MIMD)
![طبقه بندی معماری کامپیوتر مایکل فلین](https://blog.faradars.org/wp-content/uploads/2023/06/mjflynn.jpg)
SISD در معماری کامپیوتر چیست ؟
همانطور که از نام این دسته، یعنی «یک دستور، یک داده» (Single instruction stream, single data stream | SISD)، مشخص است، چنین سیستمهایی «یک جریان داده ورودی متوالی» و «یک واحد پردازش واحد» برای اجرای جریان دادهای دارند. درست مانند سیستمهای «تک پردازندهای» (Uniprocessor) که معماری محاسباتی موازی دارند. در ادامه، ساختار معماری «SISD» را مشاهده میکنید.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/SISD-1.png.webp)
مزایای SISD در معماری کامپیوتر چیست ؟
برخی از مزیتهای این دسته از معماری کامپیوتر، در ادامه، فهرست شدهاند.
- به انرژی کمتری نیاز دارد.
- مشکلی در رابطه با پروتکل ارتباطی پیچیده مابین هستههای متعدد وجود ندارد.
معایب SISD در معماری کامپیوتر چیست ؟
معایب مربوط به معماری SISD در ادامه، فهرست شدهاند.
- معماری «SISD»، مانند پردازندههای تکهستهای سرعت محدودی دارد.
- برای کاربردهای وسیعتر (بزرگتر)، مناسب نیست.
SIMD در معماری کامپیوتر چیست ؟
همانطور که از نام این معماری، یعنی «یک دستور، چند داده» (Single instruction stream, multiple data stream | SIMD)، مشخص است، چنین سیستمهایی، دارای «چندین جریان داده ورودی» و «تعدادی واحد پردازشی» هستند که قابلیت اجرای دستوری واحد را بهطور همزمان دارند. میتوان گفت که شبیه به سیستمهای «چند پردازندهای» (Multiprocessor)، معماری محاسباتی موازی دارند. در ادامه، ساختار معماری «SIMD»، نشان داده شده است.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/SIMD.png.webp)
«کارتهای گرافیک» (Graphics Cards)، مثال خوبی برای معماری «SIMD» محسوب میشوند. این کارتها، از صدها «واحد پردازش» (Processing Units) جداگانه تشکیل شدهاند. اگر بخواهیم معماریهای «SISD» و «SIMD» را از نظر محاسباتی مقایسه کنیم، برای عملیات محاسبه مجموع آرایههای[5، 15، 20]و[15، 25، 10]، معماری «SISD» باید ۳ مرتبه عمل «جمع» را انجام دهد. در حالیکه در معماری «SIMD»، انجام یک مرتبه عمل «جمع»، کافی است.
مزایای SIMD در معماری کامپیوتر چیست ؟
در ادامه، برخی از مزایای SIMD را فهرست کردهایم.
- با استفاده از تنها یک دستور، میتوان عملیاتی روی چندین عنصر انجام داد.
- با افزودن هستههای بیشتر به پردازنده، «توان عملیاتی» (Throughput) سیستم را میتوان افزایش داد.
- سرعت پردازش بیشتری نسبت به معماری «SISD» دارد.
![معماری SIMD](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-8.jpg)
معایب SIMD در معماری کامپیوتر چیست ؟
معایب مربوط به معماری SIMD در ادامه، فهرست شدهاند.
- بین هستههای پردازنده، ارتباطات پیچیدهای وجود دارد.
- هزینه آن به معماری «SISD» بالاتر است.
MISD در معماری کامپیوتر چیست ؟
سیستمهای جریان «چند دستور، یک داده» (Multiple Instruction Single Data | MISD)، دارای تعدادی واحد پردازش هستند که با اجرای دستورالعملهای مختلف بر روی یک مجموعه داده، عملیات متفاوتی را انجام میدهند.
در ادامه، ساختار معماری MISD را مشاهده میکنید.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/MISD.png.webp)
MIMD در معماری کامپیوتر چیست ؟
در سیستمی که از معماری «چند دستور، چند داده» (Multiple Instruction Multiple Data | MIMD)، استفاده میکند، هر پردازنده (در سیستمی چند پردازندهای) میتواند مجموعههای متفاوتی از دستورالعملها را بهطور مستقل و روی مجموعه دادههای مختلف، بهطور موازی اجرا کند. درست برخلاف معماری «SIMD»، که در آن عملیاتی واحد بر روی چندین مجموعه داده اجرا میشود. نمایی از معماری MIMD را در ادامه مشاهده میکنید.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/06/MIMD-1.png.webp)
سوالات متداول
در این بخش، برخی از سوالات رایج که در رابطه با مبحث «معماری کامپیوتر» وجود دارند را بههمراه پاسخهای هریک، بیان کردهایم.
انواع معماری کامپیوتری کدام اند؟
از انواع معماریهای کامپیوتر میتوان طراحی سیستم، معماری مجموعه دستورالعملها و ریز معماری را نام برد.
مهم ترین ویژگی معماری فون نویمان چیست؟
ویژگی اصلی معماری «Von Neumann»، این است که کامپیوترها، بهطور معمول با استفاده از «نمودار جریان» (فلوچارت | Flow Chart) کار میکنند. در ابتدای کار، «دستگاهِ ورودی» (Input Device) برای وارد کردن داده یا دستورات خاصی مورد استفاده قرار میگیرد. این ورودی میتواند شامل موارد متنوعی باشد اما معمولاً ورودیهایی هستند که از سمت صفحه کلید ارسال میشوند. سپس، این ورودی، از طریق واحد پردازش مرکزی که شامل واحدهای «کنترل»، «منطق» و تعدادی «ثبات» است، پردازش و اطلاعات آن را در واحد حافظه ذخیره میشود. هنگامیکه کامپیوتر، ورودیهای مناسبی را دریافت کند، برنامه، اجرا و نتایج حاصل از آن را در دستگاه خروجی (Output Device) - که معمولاً نمایشگر یا چاپگر است - نشان میدهد (یا چاپ میکند).
![معماری کامپیوتر فون نویمان](https://blog.faradars.org/wp-content/uploads/2023/07/Computer-Architecture-9-1.jpg)
چرا معماری فون نویمان مهم است؟
همانطور که گفتیم، معماری «Von Neumann»، در واقع، «نمودار جریانی» محسوب میشود که به ایجاد فرایندها و مشخصات کامپیوترهای امروزی کمک زیادی کرده است. دلیل اهمیت معماری «فون نویمان»، این است که الهام بخش توسعه و ایجاد کامپیوترهای پس از خود شده است. پیش از آن، کامپیوترها برای اینکه بتوانند عملکردهایی را به روشهای مختلف انجام دهند، لازم بود که اجزای آن بهطور فیزیکی از یکدیگر جدا و دوباره برنامهریزی میشدند. به لطف فرایندهایی که بهوسیله معماری «فون نویمان» ارائه شد، کامپیوترها میتوانند برای انجام کارهای خاص، برنامهریزی و برنامه آنها در «واحد حافظه» کامپیوتر نگهداری شود. علاوهبر این، کامپیوترها میتوانند پس از مدتی، در صورت نیاز و برای انجام کارهای دیگر، دوباره برنامهریزی شوند.
بخش های اصلی معماری فون نویمان کدام اند؟
معماری «فون نویمان»، بخشهای مختلفی، از قبیل «دستگاههای ورودی»، «واحد پردازش مرکزی»، «واحد حافظه» و «دستگاههای خروجی» را در بر میگیرد.
معماری ISA چیست؟
معماری مجموعه دستورالعمل (Instruction Set Architecture | ISA)، بخشی از واحد پردازش مرکزی است که برای برنامه نویس و نویسنده کامپایلر قابل مشاهده است. این معماری، قابلیتها و عملکردهای CPU را بر اساس برنامه پردازشی و اجرایی خود، تعریف میکند و فرمتهای داده، حالتهای آدرسدهی حافظه، انواع ثبات پردازنده، اندازه «کلمه» و مجموعه دستورالعمل مورد استفاده بهوسیله برنامهنویسان را در بر میگیرد.
مؤلفه های ریز پردازنده در معماری کامپیوتر چیست ؟
ریز پردازنده شامل اجزا یا مؤلفههایی مانند واحد محاسبه و منطق، ثباتها، واحد کنترل و حافظه نهان است. واحد محاسبه و منطق (ALU)، عملیات و محاسبات ریاضی، مانند جمع، تفریق، تقسیم و توابع بولی را انجام میدهد. ثباتها، نگهدارندههای موقتی دادهها در ریزپردازنده هستند. واحدهای کنترل، با دریافت سیگنال از «CPU»، دادهها را از ریزپردازندهای به ریزپردازنده دیگر انتقال میدهند. حافظه نهان (کَش | Cache)، که با وجود آن، محاسبات با سرعت بیشتری صورت میگیرد. بهطوریکه «CPU» برای بازیابی دادهها نیازی به استفاده از RAM (که کندتر است)، ندارد.
طبقه بندی فلین در معماری کامپیوتر چیست ؟
این طبقهبندی، سبکهای متفاوت معماری کامپیوتر از جمله «SISD»، «SIMD»، «MISD» و «MIMD» را در بر میگیرد.
فرایند خط لوله چیست؟
«Pipelining» یا «پردازش خط لوله» (Pipeline Processing)، فرایندی است که به جمعآوری دستورالعملهای پردازنده از طریق «خط لوله» اشاره دارد. این عمل همچنین، دستورالعملها را در فرایندی منظم، ذخیره و اجرا میکند.
حافظه نهان چیست؟
کًش یا «حافظه نهان» (Cache)، حافظه کوچکی است (با حجمی محدود) که بخشی از «CPU» محسوب میشود. این حافظه، نسبت به RAM، فاصله کمتری تا CPU دارد. «کَش»، دادهها و دستورالعملهایی که احتمالاً دوباره توسط CPU مورد استفاده قرار میگیرند را بهطور موقت نگهداری میکند.
انوع وقفه ها در سیستم ریزپردازنده ای کدام اند؟
وقفهها را میتوان به ۲ دسته «داخلی» (Internal) و «خارجی» (External) تقسیم کرد. وقفههای «داخلی» که با نام وقفههای «نرمافزاری» نیز شناخه میشوند، بهوسیله دستورالعملهای برنامه کامپیوتری و وقفههای «خارجی» یا «سختافزاری»، بهوسیله ماژول سختافزاریِ خارجی، ایجاد میشوند. از نمونههای وقفه نرمافزاری، میتوان به خطای «سَرریز» (Overflow) محاسباتی و در مورد وقفه سختافزاری، میتوان به «فشردن کلیدهای صفحهکلید» اشاره کرد.
جمعبندی
در این مطلب از مجله فرادرس، مبحث «معماری کامپیوتر» را مورد بررسی قرار دادیم و ضمن بیان ماهیت و چیستی آن، انوع معماریهای موجود را با ذکر مزایا و معایب هریک، معرفی کردیم.
به بیان ساده، میتوان گفت که «معماری کامپیوتر»، به نحوه کارکرد کامپیوترها و مواردی همچون دستورالعملهای سختافزاری، استانداردهای نرمفزاری و زیرساختهای فناوری میپردازد و همچنین عملکرد، طراحی و سازگاری سیستم را بیان میکند. پیشرفتها و «جهتمندیهای» (Trends) زیادی، از سختافزارهای خاص گرفته تا «رایانش لبه» (Edge Computing) و «ابر-محور» (Cloud-Based)، وجود دارند که بر آینده معماری کامپیوتر تأثیرگذار خواهند بود. نیاز به کارایی بیشتر، مصرف بهینه انرژی و مقیاسپذیری در دستگاههای دیجیتال، از مواردی هستند که این جهتمندیها را هدایت میکنند.