چندپردازی متقارن: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
corrected spelling
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB
خط ۱:
{{تمیزکاری|تاریخ=ژانویه ۲۰۱۷}}
[[پرونده:SMP - Symmetric Multiprocessor System.svg|بندانگشتی|نمودار یک سیستم چندپردازی متقارن]]
'''چندپردازی متقارن''' شامل سیستم سخت‌افزاری و نرم‌افزاری چندپردازنده‌ متقارنی می‌شود که در آن دو پردازنده ایده‌آل یا بیشتر در تماس با یک حافظه اصلی اشتراکی دسترسی کاملی به ادوات ورودی/خروجی دارند و بوسیله یک سیستم عملیاتی مجزا در نظر گرفته می‌شوند که همه پردازنده‌ها در آن به صورت برابر برخورد کرده با ذخیره مواردی با اهداف خاص همراه‌ هستند. اکثر سیستم‌های چندپردازی امروزه یک معماری SMP را به کار می‌بندند. در مورد پردازنده‌های چندهسته‌ای، معماری SMP به هسته‌ها اعمال شده و آنهاآن‌ها را به صورت پردازنده‌های جداگانه مطرح می‌سازد.
 
== Design ==
سیستمهایسیستم‌های SMP با سیستم‌های چندپردازنده به هم وابسته با محفظه‌ای از پردازنده‌های همسان به صورت مستقل از یکدیگر عمل کنند. هر پردازنده، با اجرای برنامه‌های مختلف و کار در مورد مجموعه‌های مختلف داده‌ها قابلیت به اشتراک گذاریاشتراک‌گذاری منابع متداول را دارد که به کمک یک پایانه سیستمی یا یک خط عرضی به هم متصل شده‌اند و تقریباً مقیاس‌پذیری خطی را برای شمار زیادی از پردازنده‌ها در پرتوی برنامه‌پذیری فراهم می‌کند:
<blockquote class="">چالش‌های جدی برنامه‌نویسی با توجه به نوع معماری مطرح شده زیرا نیازمند دو حالت متمایز برنامه‌نویسی است؛ یکی برای خود CPUها و یکی هم برای ارتباط درونی میان CPUها. یک زبان برنامه‌نویسی متداول ممکن است توانایی قسمت‌بندی جریان کاری را نیز داشته باشد، اما همچنین با درک موقعیت حافظه نیز همراه است که در معماری مبتنی بر گره شدیدتر مطرح شده استشده‌است.{{سخ}}<ref name="AutoMQ-1">Lina J. Karam, Ismail AlKamal, Alan Gatherer, Gene A. Frantz, David V. Anderson, Brian L. Evans (2009).</ref></blockquote>سیستمهایسیستم‌های SMP به هر پردازنده یا کاری برای وظیفه صرف نظر از اینکه داده کجای حافظه باشد اجازه فعالیت می‌دهد. این موضوع نیز در نظر گرفته شده که هر وظیفه در سیستم در زمان اجرا با دو پردازنده یا بیشتر به صورت همزمانهم‌زمان همراه است. با حمایت سیستم عملیاتی مناسب، سیستمهایسیستم‌های SMP می‌توانند به سادگی وظایف را در میان پردازنده‌ها جابه‌جا کنند تا کارآمدی جریان کاری را متعادل سازند.
 
== تاریخچه ==
خط ۱۱:
پردازنده محدود به کاربرد برنامه‌ها در حین اینکه دیگر پردازنده‌ها سیستم عملیاتی و تداخلهای سختافزاری را در نظر می‌گیرند می‌شد.
 
IBM سیستمهایسیستم‌های رایانهای با پردازنده دوگانه را براساس مدل سیستم/۳۶۰ و مدل ۶۷ مرتبط در نظر می‌گرفت؛ و سیستمهایسیستم‌های عملیاتی ۶۷–۲ که بر این دستگاه‌ها سوار می‌شد OS/360 از نوع M65MP و TSS/360 بود. دیگر نرمافزار توسعه یافته در دانشگاه‌ها که قابل اشاره است سیستم پایانهی میشیگان است که هر دو CPU را به کار می‌بست. هر دو پردازنده ممکن است به کانالهایکانال‌های داده‌ها دسترسی داشته و I/O را آغاز کنند. در بخش OS/360 m65mp لوازم جانبی اصولاً به پردازنده‌های دیگر می‌رسد زیرا سیستم عملیاتی روی هر دو پردازنده عمل می‌کند. مراقب MTS قابلیت اجرا روی هر دو CPU را در سیستم IBM مربوط به مدل ۶۷–۲ را داراست. قفلهای ناظر کوچک بوده و برای محافظت از ساختارهای داده متداول مطرح می‌شوند که ممکن است دسترسی همزمانهم‌زمان از هر CPU داشته باشند.<ref>[http://archive.michigan-terminal-system.org/documents/timeSharingSupervisorPrograms-1971.pdf?attredirects=0&d=1 ''Time Sharing Supervisor Programs''] by Mike Alexander (May 1971) has information on MTS, TSS, CP/67, and Multics</ref>
 
سیستم VAX چندپردازنده نخست شرکت تجهیزات دیجیتال، VAX-11/782 نامتقارن بود، اما سیستمهایسیستم‌های بعدی چندپردازی VAX به صورت SMP است. نخستین استقرار یونیکس SMP تجاری مبتنی بر سیستمهایسیستم‌های اطلاعاتی هانیول ایتالیایی XPS-100 است که بوسیله دن جیلن در شرکت VAST در سال ۱۹۸۵ طراحی شد. طرح او ۱۴ پردازنده را پشتیبانی می‌کرد، اما متناظر با محدودیتهای الکتریکی، بزرگترین نسخهی بازاریابیشدهی آن یک سیستم پردازشگر دوگانه بود. سیستم عملیاتی به شکل خاصی به دست آمده و بوسیله شرکت VAST در کد SysVr3 درون AT&T مورد توجه قرار می‌گیرد.
 
== کاربردها ==
سیستمهایسیستم‌های به اشتراک گذاریاشتراک‌گذاری زمان و سروری می‌توانند اغلب اوقات SMP را بدون تغییرات در مورد کاربردها به کار برند، چرا که آنهاآن‌ها ممکن است فرایندهای چندگانه را به صورت موازی اجرا کرده و سیستمی با بیش از این پردازش در نظر گیرد که روی پردازنده‌های مختلف عملیاتهایعملیات‌های گوناگون را در نظر گیرد.
 
در مورد رایانه‌های شخصی، SMP فایدهی کمتری برای کاربردهایی دارد که اصلاح نشده است. اگر سیستم به ندرت بیش از یک پردازش در هر دفعه داشته باشد، SMP تنها برای کاربردهایی مورد نظر است که پردازش چندرشتهای در پی دارد. نرمافزار برنامهریزیشده سفارشی می‌تواند جهت کاربرد در رشته‌های چندگانه نوشته یا اصلاح شود تا بتواند کاربرد پردازنده‌های چندگانه را کنترل کند.
 
برنامه‌های چندرشتهای می‌تواند در سیستمهایسیستم‌های سرور و به اشتراک گذاریاشتراک‌گذاری زمانی به کار رود که از چندرشتهای بود پشتیبانی می‌کند و آنهاآن‌ها را در کاربردی سازیکاربردی‌سازی پردازنده‌های چندگانه یاری دهد.
 
در SMP، همهی پردازنده‌ها در جعبهای یکسان با یک پایانه یا کلید پیوند خورنده است. برخی از مؤلفه‌هایی که به اشتراک گذارده شده حافظهای جهانی، دیسکها و ادوات ورودی/خروجی است. تنها یک رونوشت از OS در همهی پردازنده‌ها اعمال شده و OS باید برای برگرفتن مزیتهای این پیکربندی مورد توجه قرار گیرد. برخی از این مزایا شامل روشهایروش‌های مقرون به صرفه جهت افزایش خروجی است. برای حل مسائل مختلف و
وظایف مورد نیاز، SMP پردازنده‌های چندرشتهای را به شکلی اعمال می‌کند تا یک مسئله به نام برنامهنویسی موازی مورد نظر قرار گیرد. همچین نه تنها سیستم تکپردازنده در یک SMP به کار می‌رود، بلکه می‌تواند برای بهاشتراکگذاری داده نیز مورد توجه قرار گیرد؛ با این مورد گفته شده همهی داده‌ها به صورت پیوسته بوسیله منطق جاسوسی مورد توجه قرار می‌گیرند که به عنوان برگرفتن پایانهای نامیده می‌شود.
 
خط ۲۸:
 
== برنامه‌نویسی ==
سیستمهایسیستم‌های تکپردازنده و SMP نیازمند روشهایروش‌های متفاوت برنامهنویسی برای بدستآوردن بیشینه عملکرد هستند. اجرای برنامه‌ها در سیستمهایسیستم‌های SMP ممکن است افزایشی در عملکرد را حتی هنگامی که برای سیستمهایسیستم‌های تکپردازنده مدنظرند به همراه داشته باشد. این بدین خاطر است که وقفه‌های سختافزاری معمولاً اجرای برنامه را معلق می‌کنند در حالیکه هستهای که آن را سامان می‌دهد می‌تواند به جای آن روی پردازندهی منفردی انجام شود. این اثر در اکثر برنامه‌ها به حدی نیست که افزایش عملکرد به صورت اجرای هموارتر برنامه مدنظر باشد. برخی برنامه‌های کاربردی، به خصوص کامپایلرها و برخی پروژه‌های رایانهای توزیعشده با توجه به عامل تعداد پردازنده‌های اضافی سریعتر انجام می‌شوند.{{مدرک|date=January 2014}}.
 
برنامه نویسان سیستمی باید پشتیبانی برای SMP در سیستم عملیاتی بیایند؛ در غیر اینصورت پردازنده‌های اضافی مجرد مانده و عملکردهای سیستم به عنوان سیستم تکپردازنده حفظ می‌شود.
 
سیستمهایسیستم‌های SMP نیز می‌توانند منجر به پیچیدگی بیشتر دستورالعملهای متناظر شوند. یک سیستم پردازنده همجنس به صورت معمول نیازمند ثبت افزون دستورالعملهای خاص از جمله SIMD است، در حالیکه یک سیستم ناهمگون می‌تواند انواع مختلفی از سختافزارها را برای کاربردهای مختلف در نظر گیرد.
 
== عملکرد ==
هنگامی که بیش از یک برنامه در هر موقعیت اجرا می‌شود، یک سیستم SMP به صورت خاص عملکرد بهتری نسبت به یک تکپردازنده دارد، زیرا برنامه‌های مختلف می‌توانند به صورت همزمانهم‌زمان بر سیپییوهای مختلف اثر بگذارد. به صورت مشابه، چندپردازی نامتقارن معمولاً تنها یک پردازنده را مجاز می‌کند تا برنامه یا وظیفهی خاص مرتبط با آن را به یکباره مورد توجه قرار دهد. برای مثال، AMP می‌تواند در تخصیص وظایف خاص به سیپییو مبتنی بر اهمیت و اولویت تکمیل وظیفه مورد توجه قرار بگیرد. AMP به خوبی پیش از اینکه SMP در مورد سیپییوهای چندگانه مطرح شود ایجاد شده که توضیحدهندهی فقدان عملکرد براساس مثال فراهم شده استشده‌است.
 
در مواردی که در آن یک محیط SMP در مورد بسیاری از وظیفه‌ها صورت گرفت، اجراکننده‌ها اغلب فقدان کارایی سختافزاری را تجربه می‌کنند. برنامه‌های نرمافزاری برای
خط ۴۳:
 
== سیستم‌ها ==
=== سیستمهایسیستم‌های سطح ورودی ===
تا پیش از سال ۲۰۰۶، سرورها و پایگاه‌های کاری در سطح ورودی با دو پردازنده در بازار SMP غالب شدهاند. با معرفی پردازنده‌های چندهستهای، SMP در اکثر رایانه‌های لپتاپی و میزی جدید دیده می‌شود. از سال ۲۰۱۶، اکثر سیستمهایسیستم‌های SMP در سطح ورودی پیکربندی مجموعه دستورالعمل x86 را استفاده کرده و براساس پردازنده‌های AMD APU و اینتلکور کار می‌کنند. سرورها پردازنده‌های مشابهی هستند و دیگر گزینه‌های در دسترس شامل سیستمهایسیستم‌های خرد سان اولتراSPARC، فوجیتسو SPARC64 و پس از آن، PS SGI MI، ایتانیوم اینتل، هیولت پاکارد با Compaq می‌شود که آلفای DEC تجهیزات دیجیتال، IBM پاور و PowerPC به دست دادهاند. در همهی موارد، این سیستمهاسیستم‌ها در نسخه‌های تکپردازنده نیز در دسترس هستند.
 
== مزیتها/معایب ==
سیستمهایسیستم‌های SMP اولیه مادربوردهایی همراه با دو سوکت سیپییو در نظر می‌گیرد؛ یکی از مادربوردهای ابتکاری اولیه با سوکتهای چندگانه ABIT BP6 بود. اخیراً، تولیدکنندگان میکروپردازنده ادوات سیپییویی با دو پردازنده یا بیشتر را در یک وسیله در نظر گرفتند که برای مثال ایتانیوم، پاور، اولتراSPARC، اوپترون، آتلون، هسته۲ و زئون همگی دارای هسته‌های مختلف بودند. آتلون و هسته۲ چندپردازنده‌هایی هستند که سازگار با سوکت خاص همراه با تنوع تکپردازنده‌اند، بنابراین یک مادربورد سوکتی دوگانه بیش از این برای استقرار یک ماشین SMP در سطح ورودی مورد نیاز نیست. این مورد باید اشاره شود که طراحی SMP در سطح ورودی از لحاظ فنی با طرحهای ccNUMA همراه است، اگرچه آنهاآن‌ها می‌توانند به عنوان SMP برای تلفات خاصی در عملکرد طراحی شود. سیستمهایسیستم‌های مبتنی بر SMP با اتصال دادن سیستمهایسیستم‌های کوچکتر با یکدیگر ایجاد می‌شود. مثالی از این موضوع نرمافزار توسعهداده شده بوسیله ScaleMP است.
 
با معرفی ARMهای SoC کورتکس-A9 چندهستهای، چندپردازنده‌های ارزانقیمتی به صورت متقارن در سیستم جاسازی شدند تا در شکل گوشیهای هوشمند و تبلتها با پردازندهی چندهستهای فعالیت کنند.
 
=== سیستمهایسیستم‌های در سطح میانی ===
SMP در ابتدا مستقرشده D825 در سال ۱۹۶۲ مطرح شده استشده‌است. این مورد بعداً در دیگر چارچوبها نیز مطرح شده استشده‌است. سرورهای در سطح میانی، به کمک چهار تا هشت پردازنده، می‌توانند با زئون اینتل MP، اوپترون AMD 800 و ۸۰۰۰ سری و اولتراSPARC ذکرشده در نظر گرفته شوند. سیستمهایسیستم‌های با انتهای بالا نیز با شصت پردازنده یا بیشتر در نظر گرفته می‌شود که در تمام پردازنده‌های فوق در دسترس هستند.
 
سیستمهایسیستم‌های رایانهای متوالی ماشینهای SMP را به کمک اینتل ۸۰۳۸۶ در نظر می‌گیرند. برخی سیستمهایسیستم‌های کوچکتر موجودند، امابازار اصلی SMP به صورت x86 با فناوری پنتیوم اینتل در سال ۱۹۹۵ در پشتیبانی تا ۲ پردازنده ایجاد شد. موارد اینتل پشتبانی SMP تا چهار پردازنده را نیز صورت می‌دهند. پس از آن، پنتیوم ۲ اینتل و پنتیوم ۳ اینتل سیستمهایسیستم‌های با سی پی یوی دوگانه را در نظر گرفتند که برای سلرونهای متناظر مطرح بود. این مورد بوسیله زئون پنتیوم اینتل و پردازنده‌های زئون ۳ نیز با بیش از ۴ پردازنده در یک سیستم قابلیت استفاده دارند. در سال ۲۰۰۱، AMD توانست آتلون MP یا سی پی یوی چندپردازنده را همراه با چیپستهای مادربورد 760MP به عنوان پیشنهاد اولیه در بازار پردازنده دوگانه به کار بندد. اگرچه برخی سیستمهایسیستم‌های بزرگتر نیز ساخته شدند، آنهاآن‌ها همگی بوسیله محدودیت آدرس دهی ۶۴ گیگابایتی تحت تأثیر بودند. با معرفی حافظهی ۶۴ بیتی اوپترون AMD-64 در سال ۲۰۰۳ و اینتل ۶۴ در سال ۲۰۰۵، سیستمهاسیستم‌ها توانایی جهتدهی میزان بیشتری از حافظه را دارند؛ محدودهی آدرسپذیری 16 EiB نیز در آینده نه چندان دور دور از انتظار نیست.
 
== جایگزینها ==
خط ۶۰:
SMP یک سیستم اشتراکی منفرد را به کار می‌بندد که نشاندهندهی یکی از سبکهای اولیهی پیکربندی دستگاه چندپردازنده است و معمولاً برای ساخت رایانه‌های کوچکتر همراه با بیش از ۸ پردازنده در نظر گرفته می‌شود.
 
سیستمهایسیستم‌های رایانهای بزرگتر ممکن است پیکربندیهای جدیدتر را به صورت NUMA در نظر گیرد که بانک حافظهی جداگانهای برای پردازنده‌های متفاوت به دست می‌دهد. در یک پیکربندی NUMA، پردازنده‌ها ممکن است با حافظه محلی دسترسی سریعتری داشته و حافظه از راه دور کندتر به آنهاآن‌ها پاسخ دهد. این مورد تا حد چشمگیری خروجی حافظه را بهبود داده تا داده‌ها برای فرایندهای خاص محلیسازی شوند. در سطحی پایینتر، NUMA هزینه جابهجایی داده از یک پردازنده به دیگری را می‌دهد، چرا که در تعادل بار کاری، این مورد گرانتر خواهد شد. مزایای نوما محدود به بارهای کاری خاصی است و در سرورهایی که داده‌ها اغلب با وظایف یا کاربران خاصی در ارتباطند به کار می‌آید.
 
در نهایت، چندپردازنده‌های خوشهای رایانهای وجود دارند که در آن همهٔ حافظه‌ها در دسترس همهی پردازنده‌ها نیست. تکنیکهایتکنیک‌های خوشهبندی نیز نسبتاً برای ساخت ابررایانه‌های بزرگ به کار می‌آیند.
 
== SMP متغیر ==
خط ۷۰:
 
برخلاف پیکربندیهای SMP، هسته همراه با ظاهر OS بدین معناست که سیستم عملیاتی و اجرای برنامه‌ها در مجموع از این هستهی اضافی ناآگاهند اما هنوز توانایی برگرفتن مزایای آن وجود دارد. برخی از مزایای پیکربندی vSMP شامل انسجام حافظه پنهان، کارایی OS، و بهینهسازی توان است. مزایای این پیکربندی در زیر توضیح داده شده است:
* انسجام حافظهی پنهان: هیچ پیامدی برای همزمانسازی حافظه‌های پنهان میان هسته‌های در حال فعالیت در فرکانسهایفرکانس‌های مختلف دیده نمی‌شود چون vSMP هسته همراه ندارد و هسته‌های اصلی به صورت همزمانهم‌زمان فعالیت می‌کنند.
* کارایی OS: این مورد هنگامی که هسته‌های سی پی یو در فرکانسهایفرکانس‌های غیرهمزمان مختلف عمل کنند غیرکارآمد است زیرا منجر به معضلات زمانبندی محتملی خواهد شد. با vSMP، سی پی یوی فعال در فرکانس مشابهی عمل کرد و زمانبندی OS بهینه می‌شود.
* بهینه‌سازی توان: در پیکربندی مبتنی بر ساعت غیرهمزمانسازی شده، هر هسته در صفحه توانی مختلف جهت ساماندهی تنظیمات ولتاژ برای فرکانسهایفرکانس‌های مختلف عمل می‌کند. نتیجهی این موضوع بر عملکرد اثر دارد. فناوری vSMP توانایی این را دارد هسته‌ها را برای کاربرد اصلی و استندبای فعال و غیرفعال کند و مصرف کلی توان را کاهش دهد.
 
== جستارهای وابسته ==