یادگیری امروزم از معماری کامپیوتر موریس مانو (۳)

توی این پست راجع به تعاریف اولیه پردازش موازی (Parallel Processing) نوشتم.

مقدمه

توی این پست راجع به تعاریف اولیه پردازش موازی (Parallel Processing) می‌نویسم.

پردازش موازی یعنی انجام چند کار همزمان به منظور افزایش سرعت اجرای برنامه. در حالت عادی، دستورات به صورت مرتب پشت سر هم اجرا می‌شدند اما در پردازش موازی، چند task به شکل همزمان انجام می‌شوند.

پردازش موازی سطوح مختلفی از پیچیدگی داره که ساده ترینش همون parallel load در رجیستر هاست. بخش های پیچیده تر شامل تعداد زیادی از واحد های عملیاتی (functional unit) میشه که هرکدومشون ممکنه یه کار خاصی رو انجام بدن. اطلاعاتی که قراره پردازش بشه بین این واحد ها پخش میشه و هرکدومشون به صورت همزمان روی اطلاعات پردازش انجام میدن.

پردازنده به همراه چند واحد عملیاتی

پردازش موازی به چندین طریق طبقه بندی میشه. یکی از طبقه بندی ها، طبقه بندی Flynn هست که بر اساس تعداد دستورات و دیتا هایی که به صورت همزمان پردازش میشن هست. به مجموعه‌ی دستور ها که از حافظه خونده میشن instruction stream گفته میشه و به پردازشی که بر روی دیتا ها انجام میشه data stream گفته میشه. پردازش موازی ممکنه روی یکی و یا هر دوی این موارد انجام بشه. بنابراین بر اساس این گفته ها، ۴ گروه اصلی بوجود میاد:

  • Single Instruction stream, Single Data stream (SISD)
  • Single Instruction stream, Multiple Data stream (SIMD)
  • Multiple Instruction stream, Single Data stream (MISD)
  • Multiple Instruction stream, Multiple Data stream (MIMD)

SISD

توی این کامپیوتر ها یک واحد پردازش،‌ یک حافظه و یک واحد کنترل وجود داره. ممکنه این کامپیوتر ها اصلا به طور درونی قابلیت پردازش موازی رو نداشته باشن. اما بهرحال پردازش موازی از طریق multiple functional unit ها و یا پردازش لوله ای (pipeline processing) خواهد بود.

SIMD

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

MISD

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

MIMD

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

توی پست بعدی درباره‌ی pipleline processing صحبت می‌کنم و نکته‌ش اینه که این روش توی مدل فلین جا نمیگیره