الفرق ما بين معالج بنواة وحيدة وعدة أنوية ؟

بواسطة أحمد علاء 9/2/2012 8:17:00 PM

ظهر الجيل الاول من المعالجات كمعالج واحد كبير يعالج مهمة واحدة one process في زمن معين , بحيث وُجد ما يسمى بال job pool اي بركة المهام فكان المعالج يختار المهمة تلو الاخرى من بركة المهام لتنفيذها .
وترافق الجيل الاول من المعالجات مع ظهور حواسب معالجة وحواسب صماء خفيفة Terminals تقوم بإرسال ما تريد معالجته الى حواسب المعالجة المركزية .
احد اكبر الامثلة البرمجية على معالجة مهمة واحدة في زمن قياسي واحد هي انظمة Ms-Dos والبرامج الدفعية Batch , بحيث لا يتوفر امكانية فتح برنامجين مستقلين بنفس الزمن , بعد ذلك ظهرت فكرة التفرع بالعمل فأمسى المعالج يقوم بتنفيذ عدة مهام بنفس الوقت رغم ان آلية عمل المعالج تسمح له بمعالجة تعليمة واحدة بلحظة محددة .
فظهر بالتالي تساؤلات عديدة ومهمة :
كيف يمكن لمعالج بنواة واحدة ولا يستطيع الا ان يعالج تعليمة برمجية واحدة في لحظة معينة ان يعالج عدة مهام process بنفس الوقت ؟
وما الآلية المتبعة لحل تلك المشكلة ؟
"يجدر الذكر بان التطبيق البرمجي application عندما يكون بشكل رماز مصدري اي ملف نصي على القرص الصلب فانه يدعى برنامج program وعندما يتم تنفيذ هذا البرنامج في بيئة نظام التشغيل فانه يدعى مهمة او process "
حقيقة ان الآلية المتبعة هي اقرب ما تميل الى الايهام فقد تم الاستفادة من قدرة المعالج الكبيرة على معالجة عدد كبير من التعليمات في واحدة الزمن بكل دورة معالجة cycle فمثلا يمكن لمعالج جيد ان يعالج 1000 تعليمة برمجية خلال ثانية واحدة ومن هذا المنطلق انبثقت فكرة ان يقوم المعالج بمعالجة جزء من المهمة 1 في جزء من لحظة وفي جزء آخر بمعالجة جزء من المهمة 2 والانتقال ما بين المهام .
فالمعالجة والبرمجة التفرعية لم تظهر حقيقة الا بعد ظهور معالجات متعددة تتيح امكانية معالجة عدة مهام بلحظة زمنية واحدة.
ولكن ذلك الامر ترافق مع العديد من التضاربات والمشاكل , فمثلا في نموذج حاسب Shared Memory تكون الذاكرة مشتركة بين جميع المعالجات بالتالي نحن بحاجة الى وقت للاتصال ما بين الحواسب للتنسيق لمنع التضاربات , زمن الاتصال ما بين الحواسب هو غالبا عنق الزجاجة في زمن النقل الاجمالي .
كما اننا نجد انه يمكن لمعالج يحوي n نواة ان يملك ذاكرة كاش مشتركة كما في معالج i7 على سبيل المثال , وبالتالي ظهر ما يدعى بالتوافق بين الخابيات cache coherence لحل مشاكل التضارب .

intel core i7
كما انه ليس من الضروري ان وجد 3 مهمات بزمن x لكل مهمة , تتم معالجتها وفق n معالج ان يكون الزمن الأمثل هو 3x/n فوفقاً لقانون امبدال الشهير هذا الزمن هو الزمن الأمثل الذي نسعى اليه , والأداء المفروض هو الاداء الاصلي *n لكن في معظم الحالات العامة لا يمكن الوصول الى ذلك الرقم .
كان الهدف الاول والاسمى للعديد من المعالجات فيما مضى زيادة عدد الترنستورات الموجودة ضمن المعالج بهدف زيادة الاداء وفقاً لقانون مور القائل بان عدد الترانستورات في معالج يزداد كل 18 شهر .
ولكن بيوم من الايام ستصل شركات تصنيع المعالجات الى العدد الاعظمي من الترانستورات المحشورة ضمن معالج والتي من بعدها لا يمكن ان يزداد .
من هنا جاءت صناعة المعالجات ذات الانوية المتعددة من مبدأ الحاجة ام الاختراع .
كما يجدر الذكر بان اي تطور حاصل على المعالجات لا يرافقها اي فائدة مالم يتم برمجة برامج تستغل الطاقات المثلى للمعالجات العديدة .