رعــدعضو ماهر
عدد المساهمات : 392
تاريخ التسجيل : 14/12/2009
| موضوع: معالجات core2Q ,core i5,core i7 الأحد 18 أبريل - 15:35 | |
| تحت المجهر Core2Q و Core i5 و Core i7 معالجاتموضوع رائع قرأته في احد المنتديات فنقلته لكم للاستقاده بسم الله نبداء.. اختلفت معالجات شركة Intel في الفترة الأخيرة ، وتنوعت بثلاثة سلاسل كاملة متاحة للبيع في الوقت الحالي . وعلي الرغم من ذلك ، فمن الناحية التقنية فان المعالجات المذكور اسماؤها في العنوان يشتركون في شئ أساسي واحد ، كونهم جميعا معالجات رباعية النواة ! كيف ذلك ؟ وما الذي يميزهم عن بعض اذا ؟ وكيف يصب ذلك في بوتقة زيادة الأداء المشهورة ؟ https://www.youtube.com/watch?v=tKX8bdHWgu8 أولا : معالجات Core 2 Quad :
وهي ببساطة شديدة عبارة عن معالجين من طراز Core 2 Duo ، ملتحمين في بعض ، وكلنا نعرف أن معالج Core 2 Duo الواحد يحتوي علي نواتين ، وعند دمج اثنين منه ، نحصل علي معالج بأربع أنوية ، وهذا ببساطة يصنع معالجا من فئة Core 2 Quad . والحقيقة أن مسألة دمج المعالجات للحصول علي عدد أكبر من الأنوية ، هي مجرد وسلية للهروب من مأزق زيادة التردد ، فالمعالج يتكون من مجموعة دوائر كهربية تعمل علي نحو متكرر (متردد) عددا من المرات في الثانية ، أي يتكون باختصار من (دوائر+تردد) ، فاذا لم تستطع زيادة التردد ، فقم بزيادة عدد الدوائر ! ولقد قابل المصنعون حائطا ضخما عند محاولاتهم زيادة التردد عن حد معين ، وتنوعت لبنات هذا الحائط ما بين ، استهلاك مرتفع للطاقة ، أو توليد حرارة كبيرة ، أو تسريب في الدوائر ، لذا فلم يكن أمامهم سوي زيادة عدد الدوائر. ومن هنا جائت الفكرة بعمل المعالجات ثنائية النواة ورباعية النواة . ولكن زيادة الدوائر لا تعني بالضرورة الحصول علي أداء أعلي علي نحو مباشر ، حيث تتداخل معها عملية البرمجة . والشئ الذي قد يغيب عن أذهان البعض ، هو أن كتابة البرامج هي مرحلة تالية لصناعة العتاد Hardware ، فتخيلوا معي أول حاسب في الوجود ، هذا الحاسب تم تركيبه وتصميمه قبل تولد اي فكرة لكتابة برنامج ، وقبل حتي وجود مهنة المبرمج ، وبعد صناعة الحاسب ، بدأ المهندسون في كتابة البرامج لاستغلال هذا الحاسب في ما يريدون . ولهذا نستطيع أن نتفهم أنه في زمن وجود معالج وحيد (بنواة وحيدة) كان السائد في صناعة البرمجة هو كتابة البرامج لتعمل من أجل معالج واحد ، وهو الموجود . وكتابة البرامج هي عملية تنقسم الي شقين مهمين : كتابة البرنامج بلغة عالية المستوي High Level ، ثم كتابته بلغة منخفضة المستوي Low Level . كتابة البرنامج بلغة عالية المستوي ، تتضمن قيام المبرمج بتصميم وظائف البرنامج ، وتصميم واجهته الرسومية ، وتنظيم مدخلات البرنامج ومفاتيحه وقوائمه .. الخ ، وهي تسمي عالية المستوي لأن المبرمج يتعامل مع البرنامج الذي يصممه كأنه شئ واحد : برنامج ، لا أكثر ولا أقل . أما تصميم البرنامج بلغة منخفضة المستوي فيتضمن التعامل مع البرنامج كخطوات بسيطة ، كل خطوة يجب أن تتزامن مع تردد وحيد للمعالج ، ويتم تنفيذها أثناء هذا التردد ، أي بعبارة أخري ، كأن المبرمج يقسم وظائف البرنامج الي خطوات ، ثم يقسم الخطوات علي الترددات المتاحة ، وبذلك فهو يتعامل مع الأمر من منظور منخفض ، حيث يضع في اعتباره سرعة المعالج والذاكرة وتركيبهما ..الخ .. وكما هو واضح فهي أمور ليست لها علاقة بالبرمجة كمعني متجرد ، وانما لها علاقة أكثر بطبيعة العتاد . لذا نستطيع أن نتفهم كيف أنه عند ظهور المعالجات الثنائية وحتي الرباعية ، كانت البرامج لا تزال تعمل وتصمم من للعمل علي المعالجات وحيدة النواة . فكما رأينا ، فان عملية البرمجة منخفضة المستوي لا تضع في حسبانها الا شيئا واحد ، وهو التردد (الخطوات) . ومع ظهور المعالجات الثائية ، أصبح للمعالج قسمين أو نواتين متشابهتين تماما ، يعملان بنفس التردد ، لذا وجب علي لغة المستوي المنخفض أن تضع في حسبانها تقسيم الخطوات الي قسمين (قسم لكل معالج) ، ثم مزامنة كل قسم علي التردد الخاص بكل معالج . ويتكرر الأمر كذلك مع المعالجات رباعية النواة .. فالتقسيم سوف يكون الي أربعة اجزاء ، وكل جزء سوف يتجه الي أحد الأنوية . وبالطبع لا داعي أن أقول ان مثل هذه العملية سوف تتطلب جهدا اضافيا من المبرمج ، والذي يقع عليه العبأ كله ، ولكنه في النهاية يظل سعيدا ، لأن برنامجه سوف يعمل بطريقة أسرع ، وسوف يمكنه ذلك من حضر المزيد والمزيد من الوظائف . وهنا تبرز مشكلة خطيرة ، مشكلة سوف تبرر كيف أن زيادة عدد دوائر المعالج (زيادة عدد الأنوية) لا تعني بالضرورة زيادة الأداء الي الضعف أو الي أربعة أضعاف ، هذه المشكلة هي التقسيم نفسه ! قلنا أن خطوات البرنامج يتم تقسيمها ، لكن ماذا عن الخطوات التي لا يمكن تقسيمها ؟ والخطوات التي لا يمكن أو يستحيل تقسيمها ، هي خطوات يجب أن تتم بشكل متسلسل ، فالخطوة 2 تتم بعد الخطوة 1 ، والخطوة 2 تعتمد علي الخطوة 1 ، لذلك لا يمكن فصلها عنها . وهذه هي الخضائص التي تميز الخطوات الغير ممكن فصلها : التسلسل والاعتمادية . ونضرب لذك مثالا تافها : 5+5 = ناتج الناتج + 10 = ؟؟؟؟ لا يمكنني فصل المعادلة الثانية عن الأولي ، فيجب اولا أن أعرف نتيجة المعادلة الأولي (الناتج) ، ثم أضيف الناتج الي المعادلة الثانية ، وبذلك تمت الخطوتين بشكل متسلسل ، ولأنني لا أستطيع حل المعادلة الثانية بدون ناتج الأولي ، قلت بأن المعادلة الثانية تعتمد علي الأولي . هذا المثال التافه يتكرر علي مقياس أكبر في أمثلة أخري كثيرة ، اكثر تعقيدا (أي تسلسلا واعتمادية) ، وباستخدام ارقام ومعادلات أكبر من هاتين المعادلتين بكثير .. الأمر الذي يعني في النهاية أن هناك خطوات لا يمكن تقسيمها علي عدة معالجات ليتم تنفيذها في نفس الوقت ، بل يجب تنفيذها بشكل متسلسل وعلي معالج واحد ، (أيا كان هذا المعالج) ، ولذلك لا نحصل دائما علي ضعف الأداء لبرنامج معين ، عند زيادة الأنوية . لكن يمكنني الاستفادة من الأنوية المتعددة في أمر آخر ، فيبنما تقوم احد الأنوية بتولي الخطوات المتسلسة لهذا البرنامج ، أوكل الي الأنوية الأخري مهمة معالجة خطوات أخري غير متسلسة ، أو خطوات متسلسة أخري ..الخ . لكن ما يهمنا في هذا الأمر ، أن الخطوات المتسلسة الأولي لن تزيد سرعة معالجتها بزيادة الأنوية ، ولكن ستزيد فقط مع زيادة التردد . ومن هذا المنطلق يأتي معالج Q9770 ، بتردد 3.2GHz ، أي أنه قادر علي تنفيذ أكثر من 3 مليار خطوة في الثانية الواحدة ، ويحتوي المعالج علي أربعة أنوية تعمل بنفس التردد ، و يمكننا بكل هدوء القول بأن المعالج يعمل بسرعة 12.8GHz ، علي أساس 3.2X4 ، ولكن هذا لا يصلح بسبب تلك الخطوات المتسلسلة التي تكلمنا عنها ، والتي ستعمل علي نواة واحدة فقط منهم بتردد 3.2GHz فقط . يحتوي المعالج علي وظيفة لتوفير الطاقة ، وتقوم هذه الوظيفة بتخفيض تردد الأنوية كلها ، اذا كان الحمل علي المعالج خفيفا . ان شاء الله سنكمل البقيه في وقت اخر
|
|
رعــدعضو ماهر
عدد المساهمات : 392
تاريخ التسجيل : 14/12/2009
| |
شمسانعضو ماهر
عدد المساهمات : 274
تاريخ التسجيل : 03/01/2010
| موضوع: رد: معالجات core2Q ,core i5,core i7 السبت 24 أبريل - 2:24 | |
| مشكور اخي رعد على الاهتمام قمــــــــــــــــــــــــــه
في الروعه
|
|