کل این صفرو خوندم هیچی نفهمیدم!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!
کاربر شهرسختافزار
کل این صفرو خوندم هیچی نفهمیدم!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!
|
|
با چی هیچی نفهمیدی Core ها تعداد هسته های حقیقی توی پردازنده هست.برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط amir.45 برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
Thread هم تعداد پردازش هایی هست که هر پردازنده در یک لحظه انجام میده.
تعداد Thread با تعدا core برابر هستش مگر آنکه اون پردازنده از تکنولوژی HyperThtrad
استفاده کنه که در این صورت تعداد thread ها دو برابر تعداد Core ها هستش
یعنی در حالت معمول هر هسته فقط یک پردازش در لحظه انجام میده ولی اگر این
تکنولوژی را داشته باشه میتونه دو پردزش را همزمان انجام بده
تمام شد و رفت
آخرین ویرایش توسط JEskandari در تاریخ 30-03-10 انجام شده است
bill geits (30-03-10), Hamid2547 (30-03-10), mohsen88888 (27-09-15), reza76622201 (31-03-10)
سلام ..
فکر می کنم بهتر باشه به Thread بصورت یک مفهوم نگاه کنید. Thread اصلا ربطی به Core ( یا همون هسته ) نداره و یک مفهومه .
Thread یا به قول دوستان همون رشته " اصلی ترین واحد پردازش در پردازنده هست " بعنوان مثال شما قراره یک پروسه مثل : 2*3+2-(2+1) رو در پردازنده انجام بدین. اسم این رو گذاشتیم Process .
بنابراین شما نمی تونید این پروسس رو بسته بندی کنید و تحت لوای یک دستور یا یک واحد پردازش بدید به پردازنده تا پردازش بشه.
این پروسس خودش شما مجموعه ای از Instruction هاس. برای آنکه پردازنده بتونه این Process رو پردازش کنه باید این پروسس تبدیل بشه به یک یا چند Thread ( حالا شاید بهتر متوجه بشید که Thread به نوعی کوچکترین واحد پردازشی در پردازنده هست )
اونوقه این پروسس تبدلیل میشه به چند Thread و برای پردازش به هسته پردازشگر می ره.
مفهوم Multi Threading هم بر همین اساس است. این چیزی که بهش هسته مجازی می گن شاید کمی ذهن رو از واقعیت قضیه دور کنه. ما فقط یک هسته فیزیکی داریم با قابلیت Multi Threading .
در این صورت وقتی رشته اول وارد Core و پس از طی مقداری از پردازش , رشته دوم هم وارد میشه. یعنی هسته صبر نمی کنه تا پردازش رشته اول کامل تموم بشه و رشته دوم رو بگیره.
نهایتا از این پردازنده چند رشته ای باید به مفهوم پردازش موازی برسیم. یعنی منابع " تا زمان تمام شدن پردازش یک واحد قابل پردازش یا همون رشته " نباید بیکار باشن و پردازش رشته دوم رو شروع می کنن.
امیدوارم درست توضیح داده باشم !
ممنون
کاش به زمانی برگردم
که تنها غم زندگی ام
شکستن نوک مدادم بود...
PCN Exclusive User
.D3VIL. (31-03-10), azzaa (21-06-20), Erfan. (16-12-11), Fusion (31-03-10), Khornaf (30-03-10), Labyrinth (30-03-10), M A H R A D (31-03-10), mohsen88888 (27-09-15), reza76622201 (31-03-10), serpens13 (30-03-10), Stream (30-03-10), vandelin (30-03-10), ViViD (31-03-10)
سلام رئیس بزرگ،برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط Xtreme برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
برادر این توضیحاتی که دادید تا جایی که ما می دونستیم به مفهوم Instruction Pipeline برمی گشت. یعنی با بالا بردن Stage های Pipeline باعث میشن در کل Throughput پردازنده (تعداد Instruction ها در هر Cycle) بالا بره... مثل عکس زیر:
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
در Cycle اول Instruction اول وارد میشه، ولی پردازش Instruction اول 5 Clock Cycle طول می کشه، به جای اینکه صبر کنند تا Instruction اول کل پردازشش تموم بشه، بعد از یک Cycle ؛ Instruction بعدی رو وارد می کنند. اگه دقت کنید پردازش هر Instruction پنج مرحله داره (در این مثال) ، و این مراحل همگی توسط قسمت متفاوتی از پردازنده انجام میشن. برای همین هم در یک Clock Cycle خاص هیچ گاه دو نوع پردازش همنوع دیده نمیشه (خطوط عمودی) ... این کار باعث میشه موقع پردازش موقعی که Instruction هایی برای پردازش وجود دارند قسمتی از پردازنده بیکار باقی نمونه و اصطلاح علمی Instruction Starvation در قسمتی از پردازنده بوجود نیاد. عکس بالا یک Five Stage Pipeline رو نشون میده.
مثلا مایکروکنترلر های AVR/PIC اکثرا 2 مرحله Pipeline دارند، و بعضی پردازنده های Intel Pentium 4 حتی 20 مرحله Pipeline هم داشتند. Intel Core i7 ها هم که کلا مراحل Pipeline اشون کاملا Dynamic شده ... این به این معنی نیست به تعداد مرحله ها Thread داریم.
زمانی می تونیم بگیم این پردازنده دو Thread داره، که بتونه در یک Clock Cycle ، دو پردازش مثل هم رو پردازش کنه. مثلا اگه می تونست در Cycle اول ، Instruction 1 و Instruction 2 رو همزمان وارد کنه، و مثلا دو پردازش مختلف IF یا EX یا ... رو در یک Cycle انجام بده، اون جا می تونستیم بگیم این به معنی Multithreading است.
امیدوارم کمک کرده باشه.
مخلصیم
AMD Ryzen 5800X
MSI X570 Tomahawk
Geforce RTX 3080 FE
32GB Crucial DDR4-3600 CL16
WD SN750 Black 1TB SSD
Corsair HX1200i
LG 27GP850B
.D3VIL. (31-03-10), Computex (31-03-10), Erfan. (16-12-11), Fusion (31-03-10), Jagvar (30-03-10), M A H R A D (31-03-10), reza76622201 (31-03-10), vandelin (31-03-10), ViViD (31-03-10), yakuzaturk (16-04-14)
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks