PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : یک سوال؟!!!



th e nd
2012/11/16, 19:49
سلام به دوستان و اساتید! @};-
یه مدتی نبودیم ولی برگشتیم! خوش اومدیم! ;)

یه سوال فنی داشتم:
فرض میگیریم یه پردازنده داریم که چهار تا هسته فیزیکی داره. هر کدوم از هسته ها دارای یک ترانزیستور هست. (فرض کنید که هر هسته یک ترانزیستور داره)
پردازنده داره به صورت معمول کار خودش رو انجام میده، در زیر فشار کاری و یا یک پردازش معمولی که
به تمامی قدرت پردازنده هم نیاز نداره.
اما سوال اصلی اینکه آیا در ساختار و معماری پردازنده ها این ترانزیستورها به مانند حافظه کش ، به اشتراک گذاشته شده اند؟
یعنی اینکه مثلاً اگر یکی از هسته هایی که در حال پردازش هست (در حالتی که نرم افزار ما تنها قابلیت این رو داره که از یک هسته برای کارهاش استفاده کنه)
به زیر فشار کاری بره آیا این امکان برای اون مهیاست که از ترانزیستورهای هسته های دیگه برای
افزایش سرعت و کارایی خودش استفاده کنه؟
و یا اینکه هسته مورد نظر ما تنها این امکان را دارد که از ترانزیستور خودش برای پردازش استفاده کنه تا پردازش تموم بشه؟

darkknight
2012/11/16, 21:08
الان کلا هرچی بلد بودم و نبودم با این سوال قاطی شد:دی
تا اون جایی که من میدونم هر هسته از ترانزیستورهای خودش استفاده میکنه
فقط بعضی پردازنده ها با افزایش فرکانس سعی میکنند که باعث جبران سرعت برای زمانی بشن که فرکانس مهم تر از تعداد رشته پردازشی است(یعنی سرعت پردازش هسته رو میبرن بالا)
کلا اینکی که من خودم برداشت کردم
اخ یاد رفت سلام کنم
سسسسسسسسسسسسسلااااااااااا ااااااااااااااااااااااااا ااااااااممممممممممممممممم مممممممممم

th e nd
2012/11/16, 21:48
اما آیا ترانزیستورها به اشتراک گذاشته میشن یا نه؟
من فعلاً با ماهیت فرکانس کاری ندارم! که برای افزایش سرعت در پردازش بخواد بالا یا پایین بره.

ARMIN
2012/11/16, 22:34
- اما سوال اصلی اینکه آیا در ساختار و معماری پردازنده ها این ترانزیستورها به مانند حافظه کش ، به اشتراک گذاشته شده اند؟

ج: خیر، به صورت کاملا جداگانه عمل میکنند و تنها کش l3 مشترک دارند.



- یعنی اینکه مثلاً اگر یکی از هسته هایی که در حال پردازش هست (در حالتی که نرم افزار ما تنها قابلیت این رو داره که از یک هسته برای کارهاش استفاده کنه)
به زیر فشار کاری بره آیا این امکان برای اون مهیاست که از ترانزیستورهای هسته های دیگه برای افزایش سرعت و کارایی خودش استفاده کنه؟
ج: خیر: مگر اینکه همزمان هم اون نرم افزار + خود سیستم عامل توانایی استفاده از بیش از یک هسته رو داشته باشن تا بتونن از بقیه هسته ها هم استفاده بشه. (اصلاح شد)


- و یا اینکه هسته مورد نظر ما تنها این امکان را دارد که از ترانزیستور خودش برای پردازش استفاده کنه تا پردازش تموم بشه؟

ج: بله فقط از مال خودش استفاده میکنه. ضمن اینکه سیستم عامل این دستورات رو به هسته ها انتقال میده - خود هسته اختیار استفاده از دیگر هسته ها رو نداره.


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

Tech Admin
2012/11/17, 02:56
Hyper Threading (فقط کاربران عضو قادر به مشاهده لینک‌ها هستند.هایپر_تردینگ) اینجا به کار میاد و بر روی یک هسته همزمان به صورت موازی 2 رشته از اطلاعات پردازش میشه تا سرعت بیشتری به پردازش در یک هسته داده بشه.
درواقع ht برای وضعیت معکوس به کار میره. وقتی نرمافزاری داشته باشی که دو فعالیت موازی را تعریف کرده باشه و سیستم عامل هم پشتیبانی کنه. در این صورت ht میتونه یک هسته مجازی بسازه (گه البته کاملا ضعیف تر هست و اکثر مزایای هسته واقعی را نداره) و یکی از پردازش ها را روی اون انجام بده. برای افزایش سرعت اجرای نرمافزار
نه هسته. این عملا هسته را ضعیف تر هم میکنه در ترید اصلیش


با این حال در ht ترید اول میتونه از تمام قدرت cpu استفاده کنه. چون در ht هر دو هسته (که یکی نسبتا مجازی است) در یک هسته فیزیکی قرار دارند. (ساختار سی پی یو اینطور هست که بخش های عملیاتی مثل ترانزیستور ها دو برابر نشده فقط بخش های کنترلی دو برابر شده. به عبارتی از یک توان عملیاتی برای دو کار استفاده میکنن.)


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


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

ARMIN
2012/11/17, 11:08
درواقع ht برای وضعیت معکوس به کار میره. وقتی نرمافزاری داشته باشی که دو فعالیت موازی را تعریف کرده باشه و سیستم عامل هم پشتیبانی کنه. در این صورت ht میتونه یک هسته مجازی بسازه (گه البته کاملا ضعیف تر هست و اکثر مزایای هسته واقعی را نداره) و یکی از پردازش ها را روی اون انجام بده. برای افزایش سرعت اجرای نرمافزار نه هسته. این عملا هسته را ضعیف تر هم میکنه در ترید اصلیش


خيلى ممنون از شما براى راهنمايى - اين قضيه براى من كاملا روشن شد.
@};-@};-

AGREEN
2012/11/17, 13:00
درود دوست گلم کلا عملیات به اشتراک گذاری ترانزیستور انجام نمیشود .
فراموش نکنیم که وقتی که یک دستورالعمل در ثبات پردازشگر قرار میگیرد .
واحد های منطقی که alu در اصطلاح هستند باید کد را پردازش کنند .
حال طبق معماری های جدید اگر یک برنامه فقط از یک هسته پردازشی استفاده کند آنگاه توان مصرفی هسته های دیگر بر توان هسته ای که پردازش میکند افزوده شده و بدین ترتیب یک افزایش فرکانس ایجاد میشود تا عملیات پردازش در آن هسته سریعتر انجام شود . در واقع این حالت را میتوان نوعی turbo boost دانست .