آنچه باید از معماری کامپیوتر بدانید

اگر با همین تعریف بخواهیم گریزی به بحث معماری کامپیوتر بزنیم، معماری کامپیوتر یعنی علم طراحی و ترکیب قطعات سخت افزاری برای ساخت یک سیستم کامپیوتری و در نهایت ایجاد تعامل بین سخت افزار و نرم افزار کامپیوتر.

15 خرداد 1401

تاریخچه مختصری از معماری کامپیوتر

درباره‌ی اولین سازندگان کامپیوترها و ورود اصطلاح معماری کامپیوتر به علم کامپیوتر مطالب زیادی نقل می‌شود

اما در این بین می‌توان چارلز بابیج را به عنوان یکی از اولین معماران یک سیستم کامپیوتری معرفی کرد چرا که ایده سیستم محاسباتی وی در ساخت یک ماشین مکانیکی که توانایی دستورپذیری از برنامه را داشت بعدها در ساخت رایانه‌ها مورد استفاده قرار گرفت. 

در خصوص اولین کامپیوتر معماری شده هم کامپیوتر الکترونیکی ENIAC (Electronic Numerical Integrator and Computer) اولین کامپیوتری بود که قدرت انجام محاسبه و پردازش عملیات کامپیوتری را دارا بود و در واقع طبق قواعدی که امروزه به آن معماری کامپیوتر گفته می‌شود ساخته شده بود. این کامپیوتر در ۱۹۴۶ توسط «جان ماکلی» و «پرسپر اکرت» راه اندازی شد و حجمی به اندازه یک اتاق بزرگ را اشغال می‌کرد.

همچنین واژه معماری اولین بار در مقاله‌ای مربوط به ساخت ابررایانه IBM در ۱۹۵۹ مورد استفاده قرار گرفت. در این مقاله اصطلاح «معماری سیستم» در خصوص عناصر و ارتباطات سخت افزاری و اجرای دستورالعمل‌ها به کار گرفته شد. اما اصطلاح معماری کامپیوتر را فرد بروکس دانشمند مطرح کامپیوتر و از کارکنان شرکت IBM برای اولین بار به کار برد و پس از آن این اصطلاح برای طراحی و ساخت کامپیوترها رایج شد.

نهایتا معماری کامپیوتر به عنوان شاخه‌ای از علم کامپیوتر به این رشته در سطح دانشگاهی ورود پیدا کرده است.

 

الگوهای رایج معماری کامپیوتر

فون نویمان

فون نویمان، دانشمند مجارستانی علوم رایانه، علاوه بر اینکه در توسعه کامپیوتر ENIAC نقش داشت، یکی از اولین روش‌های معماری کامپیوتر را در سال ۱۹۴۵ ارائه داد. در الگوی فون نویمان که برای رایانه‌های ارقامی طراحی شده است، اتصال محل ذخیره سازی داده و برنامه منجر به برنامه پذیر شدن کامپیوترها شد و به این ترتیب کامپیوترهای امروزی شکل گرفتند. معماری فون نویمان همچنان الگوی ساخت کامپیوترها می‌باشد.

 

معماری هاروارد

در معماری هاروارد فضای ذخیره سازی داده‌ها از برنامه کاملا مجزا هستند. یعنی کاملا بر خلاف معماری فون نویمان که در آن مسیری مشترکی برای داده و برنامه در نظر گرفته شده است عمل می‌کند.

در هاروارد، نمی‌توان داده‌ها را در حافظه برنامه ذخیره کرد و از طرفی هم پردازنده توانایی اجرای برنامه‌هایی که نیاز به یک عملگر دارند را به تنهایی ندارد.

 

طبقه بندی فلین

طبقه‌بندی فلین، روشی در معماری کامپیوتر است که در آن چهار طبقه بر مبنای تعداد دستورالعمل‌ها و جریان داده‌ها شکل گرفته است. این طبقه بندی را مایکل فلین در سال ۱۹۶۶ ارائه داد. 

 

چهار طبقه معرفی شده در طبقه بندی فلین عبارتند از:

  1. (Single Instruction, Single Data stream) SISD؛

در کامپیوترهایی که اجرای برنامه‌ها و جریان داده‌ها موازی هم کار نمی‌کنند استفاده شده است. مانند کامپیوترهای تک هسته‌ای و کامپیوترهای مرکزی قدیمی

  1. (Single Instruction, Multiple Data streams) SIMD؛

کامپیوترهایی که چند جریان داده دارند اما همه آن‌ها از یک واحد ذخیره سازی برنامه دستور می‌گیرند. مانند کامپیوترهای سریالی امروزی

  1. (Multiple Instruction, Single Data stream) MISD؛

استفاده از این طبقه برای کامپیوترها خیلی رایج نیست. در این گروه چند سیستم دستورالعمل بر روی یک جریان داده کار می‌کنند تا در صورت بروز اختلال در سیستم عملیات‌ها متوقف نشود.

  1. (Multiple Instruction, Multiple Data streams) MIMD؛

در این نوع طبقه که بیشتر برای ابر رایانه‌ها مورد استفاده قرار گرفته است، همزمان چند دستور العمل می‌توانند بر روی چند جریان داده اجرا شوند.

 

زیر مجموعه‌های معماری کامپیوتر

معماری کامپیوتر دارای ۳ زیر مجموعه اصلی با عناوین طراحی سیستم و مجموعه دستورالعمل‌ها و معماری خرد یا ریز معماری می‌باشد.

  1. طراحی سیستم (System Design)

طراحی سیستم به طراحی قسمت‌های فیزیکی یک کامپیوتر که شامل تمامی قطعات سخت افزاری می‌باشد گفته ‌می‌شود. طراحی پردازنده مرکزی (CPU)، پردازنده‌های داده، چند پردازنده‌ها، کنترل‌کننده‌های حافظه و همین‌طور واحد پردازش گرافیکی (GPU) همگی با این بخش مرتبط می‌باشند.

  1. مجموعه دستورالعمل‌ها (Instruction Set Architecture) یا ISA

این زیر مجموعه تمامی عملکردهای مرتبط با CPU را در برمی‌گیرد. CPU که با عنوان مغز کامپیوتر شناخته می‌شود تمامی دستوالعمل‌ها و اطلاعات داده شده را اجرا می‌کند. 

در این بخش از معماری کامپیوتر به مواردی از جمله زبان برنامه نویسی CPU، فرمت‌های داده، انواع ثبت پردازنده و دستورالعمل‌های مورد استفاده توسط برنامه نویسان کامپیوتر پرداخته می‌شود.

  1. ریزمعماری (Microarchitecture)

در ریز معماری ذخیره سازی ، مسیر ذخیره سازی داده‌ها و نحوه پردازش این داده‌ها توسط CPU در معماری مجموعه دستور العمل‌ها انجام می‌شود.

 

هر سه بخش اصلی معماری کامپیوتر باید با هم در تعامل باشند و طبق یک الگوی مشخص توسعه داده شوند تا یک کامپیوتر به درستی عمل کند.

 

اهمیت یادگیری معماری کامپیوتر برای برنامه‌نویسان

- معماری کامپیوتر از جذاب‌ترین مباحث در دنیای علم کامپیوتر است. علاوه بر آن این علم مدام در حال تغییرات گسترده است و آگاهی از اصول و مفاهیم معماری کامپیوتر باعث می‌شود مهندسان کامپیوتر سریع‌تر و بهتر عملکرد خودشان را مطابق با تغییرات سخت افزاری و نرم افزاری بهبود ببخشند.

- با آگاهی از معماری کامپیوتر می‌توان سرعت کدها را افزایش داد و برنامه‌هایی با بازدهی بالاتر نوشت.

- دانشمندان بزرگ و مطرح علوم رایانه‌ای با همه قسمت‌های یک سیستم کامپیوتری آشنا هستند.

- کارفرماها معمولا به دنبال افرادی هستند که به همه بخش‌های کامپیوتر کاملا مسلط باشند و از عهده حل تمامی مشکلاتی که ممکن است در یک سیستم به وجود بیاید، برآیند.

 

 

 

منابع

cs.utah.edu

blog.faradars.org

virgool.io

cseweb.ucsd.edu/classes/wi14/cse141/pdf/01/00_arch_matters.pdf

 

مقاله های مشابه