خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


معنای thread در CPU چیست؟

معنای thread در CPU چیست؟
نویسنده : امیر انصاری
متخصصان فناوری، تحلیلگران و منتقدان معمولا از برنامه های چند نخی (multithreaded) و یا حتی پردازنده های چند نخی (multithreaded processors) صحبت می کنند. در این آموزش می خواهیم بدانیم thread به چه معنا می باشد.

سیستم یکپارچۀ سازمانی راهکار



درک مفهوم thread زیاد سخت نمی باشد. thread را از دو منظر می توان بررسی کرد، از منظر پردازنده و از منظر سیستم عامل. از نظر سیستم عامل thread نیاز به توضیحات بیشتری دارد و اساسا خودش یک موضوع دیگری می باشد که در این آموزش به آن نخواهیم پرداخت. آن چه در اینجا به آن می پردازیم مفهوم thread از دید CPU می باشد.

از دیدگاه پردازنده ها(CPU)، یک thread (که خلاصه شده thread of execution می باشد) صرفاً یک توالی از دستورات می باشد که به کامپیوتر می گویند باید چه کار کند. به شخصه ترجیح می دهم تا به جای واژه thread از واژه "جریانی از دستورات" استفاده کنم، اساسا خود thread یک مفهوم پیچیده تر است که یک مفهوم مبتنی بر سیستم عامل می باشد. تا آنجایی که به پردازنده ها مربوط می شود، آنها صرفاً جریان دستوراتی را که به سمتشان می آید انجام می دهند و برایشان فرقی ندارد که این دستورات از طریق یک پردازش آمده باشد و یا از طریق یک thread آمده باشد. ممکن است برخی از ثبات های (register) خاص و تک منظوره پردازنده ها، بین این دو تفاوت قائل شوند، اما در مجموع عملکرد اصلی پردازنده تغییری نخواهد کرد.

بنابراین وقتی کسی در مورد یک پردازنده چند نخی (multithreaded processor)، صحبت می کند، در واقع در مورد یک پردازنده صحبت می کند که می تواند همزمان چندین جریان از دستورات را انجام بدهد. برای انجام همزمان دستورات توسط پردازنده دو روش وجود دارد : پردازش همزمان توسط نخ ها (simultaneous multithreading) و استفاده از چندین هسته. هیچ یک از این روش ها متقابلاً منحصر به فرد نیستند و معمولا هم هر دوی آنها با هم استفاده می شوند.

پردازش همزمان چند نخی (Simultaneous multithreading : SMT) یک ترفند است که به پردازنده اجازه می دهد در یک زمان بر روی بیش از یک thread کار کند. پردازنده های پیشتاز، با روش به اشتراک گذاری زمان (time-sharing) بین این thread ها تفاوت می گذارند، به این شکل که یک دسته از دستورات را از یکی از thread ها واکشی می کنند و سپس یک دسته دیگر از دستورات thread بعدی را واکشی می کنند، که نتیجه آن از دید کاربر همزمانی در اجرای برنامه ها خواهد بود. هسته اصلی اجرایی بسیاری از پردازنده های چند نخی، معمولا نمی داند یا اهمیتی نمی دهد که کدام دستورات از کدام thread ها آمده اند و صرفا به ترتیبی که دستورات را دریافت می کند، آنها را اجرا خواهد کرد.

برای مشاهده فهرست آموزش های این دوره آموزشی بر روی لینک زیر کلیک کنید :

نمایش دیدگاه ها (2 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز