كيف يعمل المعالج
حتى يؤدي المعالج وظيفته لابد من أن :
يقرأ التعليمات من الذاكرة العشوائية (*)
يقرر ما هي البيانات اللازمة لتنفيذ التعليمات (*)
يجلب البيانات اللازمة لتنفيذ تلك التعليمات (*)
ينفذ التعليمات (*)
يكتب النتيجة في الذاكرة العشوائية (*) : طبعاً الذاكرة العشوائية بطيئة لذا تستعمل " ذاكرة الكتابة المخبئية (*)" لحفظ البيانات لحين تمكن الذاكرة العشوائية من قراءتها .
--------------------------------------------------------------------------------
التعليمات ومعالجات RISC و CISC
يقوم المعالج باستقبال البيانات ( الصور أو الرسوم أو..... إلخ) والتعليمات * ( التي كتبها المبرمج ) ويقوم بمعالجة البيانات تبعاً لما تمليه عليه التعليمات ، أي أنه مثل الجندي الذي ينفذ الأوامر الصادرة له من القيادة ( البرنامج ) ، فمهمة المعالج أن ينفذ مجموعة التعليمات التي تصدر من البرنامج حتى يؤدي الحاسب العمل المراد منه ، والتعليمات ( جمع تعليمة ) يمكن أن تكون بسيطة ( مثلاً القيام بعملية جمع ) أو معقدة ( كالقيام بسلسلة من العمليات المترابطة ) . فالبرنامج هو عبارة عن مجموعة كبيرة من التعليمات المترابطة التي تؤدي في مجملها عمل مفيد وهو القائد والمحرك للمعالج .
دعني أقرب الأمر أكثر لك : إذا أردت جمع الأعداد 8 + 9 + 3 فإن البرنامج يصدر الأوامر التالية للمعالج
اجمع : 8 + 9
اجمع : المجموع السابق + 3
هذا مثال عن أمرين ( تعليمتين ) بسيطتين ، هناك أوامر ( تعليمات ) أعقد بكثير للقيام بعمليات أكثر تعقيداً ، ولكل معالج من المعالجات مجموعة من التعليمات التي يستطيع فهمها ، فمثلاً قد يستطيع معالج ما فهم تعليمة معينة بينما معالج آخر لا يفهمها ، وهذا هو السر في اختلاف أنظمة الحاسب عن بعضها .
ويخرج المعالج من المصنع " متعلماً " هذه التعليمات أي أنه يستطيع تنفيذها ، ويستطيع تنفيذ أي برنامج يحوي أي تركيب من هذه التعليمات مهما كان معقداً ومهما كانت الوظيفة التي يقوم بها وهذا هو السبب في أن الحاسب يستطيع القيام بأي عمل مادمت قد ركبت له برنامج لأداء ذلك العمل . وقد انقسم مصنعو المعالجات في فلسفة بناء المعالج إلى فريقين :
الفريق الأول زودوا معالجاتهم بالكثير من التعليمات المعقدة وتسمى هذه المعالجات معالجات CISC .
زود معالجاته بعدد قليل من التعليمات البسيطة وتسمى هذه المعالجات معالجات RISC .
RISC
CISC
أنظمتها
حاسبات ماكنتوش
حاسبات IBM
عدد التعليمات التي يدعمها المعالج
أقل
أكثر
عدد التعليمات اللازمة لتنفيذ برنامج ما
أكثر
أقل
الزمن اللازم لتنفيذ تعليمة
أقل
أكثر
إن الحكم على من منهما أسرع ليس شيئاً سهلاً وإن ذلك يعتمد على تصميم المعالج نفسه ككل وعلى برامج التجميع المستخدمة في إنتاج البرامج وعلى عوامل أخرى ، واليوم أصبح مصنعي المعالجات يتجهون إلى استعمال كلا الفلسفتين معاً وأصبح الفارق بينهما يندثر شيئاً فشيئاً .
ما زالت المعالجات الحديثة تفهم نفس التعليمات التي تفهمها المعالجات القديمة فهي لا تستبدل ولكن المعالجات الحديثة قد زادت عليها العديد من التعليمات . ففي كل مرة ينتج المصنعون ( مثل شركة إنتل ) جيلاً جديداً من المعالجات يتم إضافة كمية من التعليمات لتحسين الأداء ، أي أن أحدث معالج من إنتل يستطيع فهم نفس التعليمات التي كان أقدم معالج من إنتل يفهمها ، ويرمز للتعليمات التي تدعمها المعالجات المتوافقة مع IBM باسم "x86" وبذلك تسمى معالجات IBM باسم "عائلة x86" وتشمل كل المعالجات التي تعمل على نظام IBM حتى من غير شركة إنتل .
جاء معالج 386 بـ 26 تعليمة جديدة ، وجاء 486 بـ 6 تعليمات جديدة ، وبنتيوم بـ 8 تعليمات جديدة وأضاف MMX أيضاً 57 تعليمة جديدة .وأخرجت شركة AMD تعليمات لتسريع حسابات الفاصلة العائمة سميت 3D-NOW تشبه MMX ولكنها خاصة بأرقام الفاصلة العائمة .
وفي عام 1999 قدمت إنتل تعليمات MMX 2 وهي عبارة عن 70 تعليمة جديدة خاصة بعمليات الفاصلة العائمة وسميت KNI أو SSE و زود بها المعالج بنتيوم الثالث 500 ميجاهيرتز .
يمكن لمصنعي المعالجات أن يجعلوا معالجاتهم تعمل كمعالجات CISC ظاهرياً بينما تعمل في الحقيقة كمعالجات RISC ، و يتم عمل ذلك بإضافة وحدة خاصة في المعالج تقوم بتحويل تعليمات CISC إلى RISC ومن ثم يقوم المعالج بتنفيذها ، لذا فالمعالج الذي يعمل بهذه الطريقة هو في الحقيقة معالج RISC لا أنه يعمل في الظاهر وكأنه معالج CISC . ولكن هذه الطريقة تجعل تركيبة المعالج معقدة .
--------------------------------------------------------------------------------
تبادل البيانات مع أجزاء الحاسب الأخرى
إذا طلبت منك أن تجمع 5 + 6 فستقول أنها 11 فوراً أما إذا قلت لك ما هو مجموع 2252 + 684321321 فستأخذ وقتاً أطول في حسابها ، أي الحالة الثانية أصعب في الحساب ، إذاً فأصعب جزء بالنسبة لك هو جمع الأرقام ولكن بالنسبة للحاسب الأمر يختلف فحجم الأرقام لا يعني له شيئاً فالحاسب يستطيع جمع أي رقمين في لمح البصر ولكن الأهم والأصعب هو إيجاد الأرقام المراد جمعهما وإحضارهما من الذاكرة العشوائية بأسرع وقت ممكن (أي عملية جلب البيانات والتعليمات ) وهنا نصل لبداية هذا الموضوع .
الميجاهيرتز هو وصف لعدد نبضات الكهرباء التي تسري في سلك معين في الثانية الواحدة ، فإذا كان تردد ناقل معين 100 ميجاهيرتز فهذا معناه أنه يرسل 100 مليون نبضة كهربائية في الثانية الواحدة مما يمكنه من إرسال معلومات أكثر من ناقل آخر يعمل بتردد 66 ميجاهيرتز مثلاً (إذا افترضنا أن عرض الناقل متساوي في الحالتين ) .
إن المعالج يقوم بتبادل البيانات مع الأجزاء الأخرى عبر الناقل وفيما يعمل المعالج بسرعة قد تصل إلى 700 ميجاهيرتز أو أكثر لا تعمل باقي أجزاء الحاسب بهذه السرعة الكبيرة لأن ذلك من شأنه أن يجعل الحاسب ككل غالي الثمن .
وحتى يتم تبادل البيانات بين المعالج وناقل النظام الأقل سرعة بدون أي أخطاء لابد من التنسيق بينهما - لأن ناقل النظام يعمل في أغلب الأحيان بسرعة 66 أو 100 ميجاهيرتز فيما تبلغ سرعة المعالجات عدة أضعاف ذلك ( مثلاً 500 ميجاهيرتز ) - من خلال تعيين نسبة لعدد دورات ساعة(تردد) المعالج إلى عدد دورات ساعة (تردد) الناقل وهو ما يسمى بعامل المضاعفة * وهو النسبة بين تردد المعالج وتردد ناقل النظام ويكون عادة عدد صحيح أو عدد يقبل القسمة على 0.5 ومن الأمثلة على معامل المضاعفة : 2 - 2.5 - 3 - 3.5 - 4 - 4.5 - 5 - 5.5 ولا يكون مثلاً 2.3 .
فمثلاً في حالة المعالج بتردد 500 ميجاهيرتز فإن تردد الناقل هو 100 ميجاهيرتز ومعامل المضاعفة في هذه الحالة هو 5 ( 100 × 5 = 500 ) وهكذا.
وفي عالم الحاسب تكون سرعة تبادل المعلومات عبر هذا الناقل مهمة جداً لأن الناقل يعتبر بطيئاً بالنسبة للمعالج ، ففيما يبلغ تردد الناقل 100 ميجاهيرتز مثلاً نجد معالجات بتردد 550 ميجاهيرتز ، فإذا لم يستطع الناقل توصيل البيانات بسرعة كافية فإن ذلك يعني عدم الاستفادة بصورة تامة من قدرات المعالج حيث أن المعالج يكون أسرع من الناقل في تلقي البيانات ويكون المعالج في أحيان كثيرة واقفاً دون حراك ( أي أنه ينتظر من الناقل البيانات وتسمى هذه الحالة بحالة الانتظار * ) وكلما كانت حالة الانتظار أقل في المعالج كلما أمكن استغلال قدرات المعالج بصورة أفضل ، ولكن تذكر أن الذاكرة المخبئية تمنع حدوث حالة الانتظار إلى حد كبير .
--------------------------------------------------------------------------------
تعدد المعالجات
يمكن لأكثر من معالج واحد العمل على نفس الحاسب ، ولكن ليس كل المعالجات تستطيع ذلك ، كما إن الزيادة في الأداء لا تكون الضعف دائماً ، إن سرعة حاسب ذو معالجين يعتمد على عدة عوامل :
يجب أن توفر اللوحة الأم هذه الإمكانية : يجب أن يكون فيها فتحتين أو أكثر للمعالج ، إن الأغلبية القصوى من اللوحات الأم لا تدعم هذه الميزة ، ولن تحصل عليها إلا إذا سألت عنها .
يجب أن يدعم المعالج هذه الميزة - كما قلت .
يجب أن يدعم نظام التشغيل والبرنامج هذه الميزة
إذا شغلت نظام ثنائي المعالجات على نظام تشغيل لا يدعم تعدد المعالجات فإنه سيعمل ولكن الأداء سيكون ضعيفاً في هذه الحالة (ربما يماثل الحاسب بمعالج واحد ) ، ومن أشهر أنظمة التشغيل التي تدعم تعدد المعالجات هو وندوز NT وكذلك وندوز 2000 . إن نظام مثل وندوز 98 لا يدعم تعدد المعالجات ولكن لا تقلق فلو شغلت أكثر من برنامج في نفس الوقت فإن النظام سيستفيد بالتأكيد من تعدد المعالجات في هذه الحالة .
وحتى يستطيع المعالجين ( أو المعالجات في حالة وجود أكثر من معالجين ) التفاهم والتنسيق فيما بينهم فإنه لابد من استخدام بروتوكول موحد ، وتستخدم معالجات شركة إنتل بروتوكول يسمى APIC فيما صمم شركتي سايركس و AMD بروتوكول OpenPIC ولكنه لم يستعمل في لوحة أم واحدة حتى الآن !!!!! لذا فإذا أردت تركيب حاسب متعدد المعالجات فإن معالجات إنتل هي الحل الوحيد حتى الآن .
إن معالجات الجيل السادس من إنتل لهي أفضل الحلول لتعدد المعالجات ، هذا لأن كل معالج منهم يحتضن ذاكرته المخبئية داخله مما يمنع تزاحم المعالجات على الذاكرة المخبئية في مثلما يحدث في حالة معالجات الجيل الخامس .
--------------------------------------------------------------------------------
أخطاء المعالجات
تقوم المعالجات بدور "الدماغ" للحاسب فتقوم بالعمليات الحسابية له ، والمعالج مع أنه آله إلا أن بعض الأخطاء يمكن أن تحدث أثناء أداء عمله ، تظهر في أغلب الأحيان أخطاء بسيطة في تصميم المعالجات ويتم تصحيحها ، هذه الأخطاء تكون نادرة الحدوث ومع ذلك تصحح هذه الأخطاء وهذا هو السبب في وجود عدة إصدارات من نفس المعالج ، فمثلاً المعالج بنتيوم 200 MMX قد يوجد منه عدة إصدارات وكل إصدارة تعالج بعض الأخطاء التي ظهرت للمهندسين بعد إصدار الإصدارة الأولي ولهذا يوجد ما يسمى رقم الخطوة (*) في أي معالج ، وكلما كان رقم الخطوة أعلى كلما كان أفضل من ناحية احتواؤه على أخطاء أقل .
أما خطأ المعالج بنتيوم الشهير فقد كان له شأن آخر ، كان مقدراً أن هذا الخطأ يحدث حوالي كل 24 ساعة مرة ويحصل في حسابات الفاصلة العائمة الضرورية في الحسابات الهندسية ، فقد اضطرت شركة إنتل لاستبدال كافة المعالجات التي تحوي الخطأ وهذا يعد خسارة كبيرة لإنتل ولكنها استفادت من هذا الأمر أيضاً كدعاية لشركتها .
--------------------------------------------------------------------------------
أنماط عمل المعالجات
أنماط العمل هي وصف للبيئة التي يعمل فيها المعالج من حيث قدرته على الوصول للذاكرة العشوائية وعلى قدرته على تشغيل أكثر من برنامج في نفس الوقت ، إن نمط العمل لمعالج ما في وقت من الأوقات يتحدد بنظام التشغيل الذي يستخدمه وكذلك على نوع المعالج الذي تستخدمه ، وهذه مقارنة بين أنماط عمل المعالجات :
النمط الحقيقي (*)
النمط المحمي(*)
النمط الحقيقي التخيلي(*)
المعالجات التي تستطيع العمل في هذا النمط
جميع المعالجات
الجيل الثاني وما أحدث
الجيل الثالث وما بعده
كمية الذاكرة العشوائية التي يستطيع الوصول لها (ميجابايت)
1
يعتمد على عرض ناقل العناوين
1
عدد البرامج التي يمكنه تشغيلها في نفس الوقت
1
غير محدود
1
سرعة القراءة والكتابة للذاكرة العشوائية
بطيئة
سريعة (32 بت)
بطيئة
نظام التشغيل الذي يعمل في هذا النمط
دوس
جميع أنظمة تشغيل وندوز ويمكن لدوس الآن العمل به بمساعدة بعض البرامج
جميع أنظمة وندوز
دعم الذاكرة التخيلية
لا
نعم
لا
في بعض الأحيان يسمى النمط المحمي " نمط 386 المحسّن " لأن معالجات 386 هي أول معالجات تسمح بالانتقال بين النمط المحمي والنمط الحقيقي بحرية بدون إعادة تشغيل الحاسب ، بينما يستطيع المعالج 286 الانتقال دورة واحدة فقط ، أما معالج الجيل الأول فلا يمكنه ذلك على الإطلاق فهو يعمل في النمط الحقيقي فقط .
بالنسبة للنمط الحقيقي التخيلي فما هو إلا ميزة أضيفت على أنظمة التشغيل وندوز لتتيح لها تشغيل نافذة دوس من داخل وندوز - إذا كنت قد استعملت هذه النافذة فستعرف ما أتحدث عنه .
--------------------------------------------------------------------------------
ترقية المعالجات
إن المعالجات قابلة للترقية ، إذا كان عندك معالج بنتيوم 166 يمكنك استبداله ببنتيوم 200 مثلاً ولكن يشترط أن تدعم اللوحة الأم هذا المعالج كما إن المعالج القديم سوف ينتهي بأن يهمل ولا تستفيد منه .
الطريقة الثانية لترقية معالجك هو إضافة ما يسمى الـ over drive وهو معالج يمكن معالجك الأصلي من زيادة سرعته ولكن إنتبه لابد عند شرائك هذا المعالج أن تتأكد من إمكانية تركيبه في لوحتك الأم . مع الأسف أصبحت هذه المعالجات معدومة في السنوات الأخيرة .
كما يمكنك شراء معالج ولوحة أم جديدتين ، وقد يلزمك أيضاً تغيير الذاكرة العشوائية وهذا خيار جيد إذا كنت ستنتقل من بنتيوم إلى بنتيوم الثاني مثلاً .
--------------------------------------------------------------------------------
فولتية المعالج
طبعاً المعالج كجهاز إلكتروني يحتاج للكهرباء ، وكجميع الأجزاء الإلكترونية الأخرى يحتاج لتيار مباشر (*) أي ذلك الذي ينتج من البطاريات ، تعمل المعالجات المختلفة بفولتية مختلفة عن بعضها . يوجد على اللوحة الأم محول فولتية يتيح يوفر للمعالج الفولتية التي يحتاجها لذا فإن أحد الأسباب التي تجعل اللوحة الأم تتحكم بنوع المعالج هي مقدار الفولتية التي يعمل عليها المعالج ، وهذا هو السبب الذي يجعل اللوحات الأم للمعالج بنتيوم لا تستطيع تشغيل بنتيوم MMX حيث يعمل الثاني بفولتية تختلف .
لماذا تهمنا فولتية المعالج ؟
الفولتية الأعلى تعني زيادة درجة الحرارة مما يؤثر على المعالج من حيث عمره الافتراضي واستقرار عمله ويولد مشاكل في التبريد .
في الحاسبات المحمولة : الفولتية الأعلى تعني استهلاك طاقة أعلى مما يعجل بنفاذ البطارية.
الفولتية الأقل تعني معدل استهلاك طاقة أقل .
كانت أغلب المعالجات تعمل بفولتية 5 فولت ثم تم إنقاص هذه الفولتية إلى 3.3 فولت ، ثم ما لبثت الشركات أن قررت خفض الفولتية إلى أقل من ذلك بطريقة فصل الفولتية ، أي أن تعمل الأجزاء المختلفة من الحاسب بفولتيات مختلفة فأصبح المعالج يقسم لقسمين :
1- وحدة الدخل والخرج تعمل ب 3.3 فولت
2- قلب المعالج ويعمل بأقل من ذلك (حسب المعالج )
وهذه هي مجموعة من المعالجات وفولتياتها الداخلية والخارجية :
المعالج
فولتية وحدة الإدخال والإخراج
فولتية قلب المعالج
معالجات شركة إنتل منذ الجيل الأول حتى الرابع ماعدا المذكورة بالأسفل
5
5
AMD 486DX2, Cyrix 486DX2
3.3
3.3
intel 486DX4
3.3
3.3
Cyrix, 5x86 AMD
3.45
3.45
Pentium 60, 66
5
5
Pentium 75-200
3.3
3.3
Pentium MMX
3.3
2.8
AMD K5
3.52
3.52
Pentium Pro 150 MHz
3.1
3.1
Pentium Pro 166-200 MHz
3.3
3.3
Pentium II
3.3
2.8
AMD K-6 166 - 200 MHz
3.3
2.9
AMD K6-233 MHz
3.3
3.2
إن كمية الحرارة الصادرة من معالج مثل بنتيوم الثاني تكفي لمنعك من وضع يدك على المعالج أثناء عمله لذا تحتاج المعالجات لتبريد .
--------------------------------------------------------------------------------
الوظائف المتقدمة
إن تردد المعالج ليس هو الشيء الوحيد الذي يجعل المعالج أسرع بل إن جعل المعالج "أذكى" في التعامل مع البيانات يمكن أن يساهم في جعله أسرع أيضاً وهذه بعض التقنيات التي تساعد على جعل المعالجات أسرع ، إن معالجين بنفس تردد الساعة إذا استعمل أحدهما هذه التقنيات سيكون أسرع كثيراً من الآخر ، لذا لا يعتبر تردد الساعة عاملاً حاسماً في تحديد سرعة المعالج ، هيا بنا نستعرض هذه التقنيات :
أولاً: pipelining : نستطيع تشبيه عملية معالجة البيانات بخط إنتاج السيارات ، لو افترضنا أن سيارة ما تتطلب 50 خطوة لتركيبها وأن كل خطوة تتطلب ساعة كامل لإنهائها ، وأن هناك عامل واحد فقط في المصنع فهذا يعني أن السيارة الواحدة تتطلب 50 ساعة لكي تنتج ، إن ما يحدث في أي خط إنتاج هو وجود 50 عامل على خط الإنتاج ، فيقوم العامل الأول بالخطوة الأولى في عملية التجميع ثم يسلم السيارة للعامل الثاني وهكذا .
إن ما يحدث في داخل المعالج لهو شبيه بذلك ، ففي داخل المعالج خطوط معالجة شبيهة بتلك المذكورة ، وتختلف المعالجات المختلفة في عدد العمال ( تسمى في المعالج مراحل stages ) الموجود في خط المعالجة ، وتسمى تعدد المراحل هذه pipelining
في المعالجات القديمة كان المعالج يقوم بحساب الأرقام بطريقة بدائية حيث كان يحوي على مرحلة واحدة (عامل واحد) ولقد تغير الوضع الآن ، فمثلاً في المعالج بنتيوم MMX هناك 6 مراحل وفي المعالج بنتيوم الثاني هناك 14 مرحلة ، وهذه الطريقة نجد أنه في أي وقت من الأوقات يوجد عدد كبير من التعليمات داخل المعالج ( مثل الطابور) كل منها في مرحلة معينة من التنفيذ .
ولتصميم المعالج بهذه الطريقة فوائد :
فالمعالج ذو المراحل الأكثر يمكنه الوصول لسرعات عالية لتكات الساعة ( ميجاهيرتز) ولكن ذلك ليس صحيح دائماً حيث تدخل عوامل أخرى في تحديد ذلك .
والفائدة الثانية أنه يساعد على زيادة سرعة تنفيذ التعليمات .
ولكن هذه التقنية لها مساوئها أيضاً :
ماذا لو حصل أي تأخير في تنفيذ واحدة من التعليمات ..... إن هذا يؤخر كل التعليمات التي تقع خلفها مما يعطل عملية المعالجة بكاملها .
ماذا أيضاً لو تفرع البرنامج عند نقطة ما .... إن كل التعليمات خلف نقطة التفرع سوف ترمى لسلة المهملات لأن البرنامج تفرع !!!
--------------------------------------------------------------------------------
ثانياً :التدرج الفائق * : التدرج الفائق باختصار هو كون المعالج يملك أكثر من خط معالجة واحد مما يمكنه من معالجة أكثر من عملية واحدة في نفس الوقت .
ربما دار بخلدك أن المعالج ينفذ التعليمات واحدة تلو الأخرى أي إذا أردنا مثلاً حساب 5+6 و 3+4 فإنه سوف يحسب الأولى ثم يحسب الثانية بعدها ، وهذا صحيح بالنسبة للمعالجات القديمة ( 486 وما قبله ) أما المعالجات الحديثة فإنها تملك أكثر من خط معالجة فالمعالج بنتيوم لديه خطي معالجة فيستطيع عمل عمليتي الحساب السابقتين معاً ، أما المعالج بنتيوم برو وبنتيوم الثاني فلديه أربع خطوط معالجة أي يستطيع حساب أربع عمليات حسابية في نفس الوقت .
وبهذا يكون المعالج بنتيوم معالج فائق التدرج من المستوى الثاني بينما المعالج بنتيوم برو وبنتيوم الثاني يعتبران فائقي التدرج من المستوى الرابع بينما لا يسمى المعالج 486 فائق التدرج ( ارجع لموضوع أجيال المعالجات من أجل الفروق بين مختلف المعالجات ).
ليس شرطاً من معالج فائق التدرج من المستوى الثاني أن يكون أدائه ضعف المعالج غير فائق التدرج ، لاحظ الفرق بين الحالتين التاليتين:
جمع 5+6 و 8+9
جمع 3+6+8
في الحالة الأولى يستطيع المعالج فائق التدرج العمل على كل من العمليتين في نفس الوقت وينهيها في وقت أسرع من المعالج غير فائق التدرج ، أما في الحالة الثانية فلا بد أن يجمع 3+6 أولاً ثم يستخرج النتيجة ثم يجمع النتيجة ب 8 وهكذا لا يمكن أن يعمل على العمليتين الحسابيتين في نفس الوقت لأن أحدهما تعتمد على ناتج الأخرى.
ولهذا السبب في كثير من الأحيان لا يتضاعف الأداء من خلال مضاعفة خطوط المعالجة ( على الرغم من أن زيادة خطوط المعالجة تزيد من الأداء ولكن ليس بالضرورة الضعف دائماً لأن خطوط المعالجة ربما لا تكون مشغولة طوال الوقت ) وهنا تبرز أهمية الوظائف المتقدمة الأخرى كي تجعل خطوط المعالجة مشغولة بأقصى قدر ممكن .
بفضل تقنيات الـ pipelining و التدرج الفائق أصبح تنفيذ العملية الواحدة يتطلب أقل من تكة ساعة واحدة ، أي أن تكة الساعة تستطيع تنفيذ أكثر من أمر واحد .
--------------------------------------------------------------------------------
ثالثاً : التنفيذ الديناميكي * : وهي أن يسمح للمعالج بأن ينفذ التعليمات بغير الترتيب الذي ترد فيه في البرنامج وذلك حسب الظروف ، مما يسمح بالتقليل من أوضاع الانتظار للمعالج وتتضمن هذه التقنية ثلاثة تقنيات :
speculative execution : ومعناها قدرة المعالج على البحث عن تعليمات أخرى لتنفيذها غير تلك التي ينفذها الآن ، مثلاً إذا أراد المعالج تنفيذ تعليمة ولتكن التعليمة رقم 1 ثم ظهر بأن هذه التعليمة تحتاج لبيانات في القرص الصلب ( أي أنها ستأخذ وقت طويل حتى يتم جلبها للمعالج ) فإن المعالج يبحث في التعليمات الأخرى في البرنامج حتى يحصل على تعليمة لا تحتاج لوقت طويل لتنفيذها ولتكن التعليمة رقم 2 فينفذها ويخزن النتائج في ذاكرة وسيطة ثم يكمل تنفيذ البرنامج من التعليمة الأولى (بعد أن جاءت البيانات ) حتى إذا وصل للتعليمة الثانية فإنه يحصل على النتائج من الذاكرة الوسيطة ويكمل بعدها ، أي نستطيع أن نقول أن المعالج أستغل الوقت الضائع بسبب جلب البيانات في عمل مفيد ، وتتم هذه العملية بصفة مستمرة حتى لو كانت عملية تنفيذ البرنامج تسير بأقصى سرعة لكي يضمن المعالج أقصى سرعة في تنفيذ البرنامج.
توقع التفرع * : نعرف أن البرنامج عبارة عن سلسلة من الأوامر ، في بعض الأحيان - وحسب ظروف معينة - ينتقل البرنامج من السلسلة الرئيسية للبرنامج إلى سلسلة أوامر فرعية أخرى ( تفرع ) مما يحد من فائدة الـ speculative execution لأن كل التعليمات التي بحث عنها المعالج لن يكون لها فائدة كون البرنامج قد تفرع قبل الوصول لهذه التعليمات ، وتعتبر هذه التقنية هي "زيادة" تطويرية للتقنية السابقة .
التنفيذ بغير الترتيب (*): في المعالجات ذات التدرج الفائق قد تبقى بعض خطوط المعالجة غير مشغولة لبعض الوقت وهذا يقلل من الاستفادة من التدرج الفائق ، تقوم هذه التقنية بجلب بعض البيانات التي قد تظهر لاحقاً في البرنامج لمعالجتها وتحفظ النتيجة في ذاكرة خاصة بذلك ثم يستفاد من هذه النتيجة في البرنامج عندما يصل تنفيذ البرنامج إلى هذه النقطة ، وهذا يزيد من فاعلية استخدام خطوط المعالجة .
--------------------------------------------------------------------------------
رابعاً : MMX: وهي عبارة عن 57 تعليمة جديدة من تعليمات المعالج تستخدم لتسريع وظائف الوسائط المتعددة ، وهذه التكنولوجيا تستخدم مفهوم " التعليمة الواحدة والبيانات العديدة " * ، وتسمح بمعالجة عدة بيانات بتعليمة واحدة في نفس الوقت * مما يسرع من تنفيذ البيانات .
ولا تعمل تقنية MMX إلا من أجل الأرقام الصحيحة وليس أرقام الفاصلة العائمة وهذا معناه أنها لا تقدم أي تسريع للرسومات الثلاثية الأبعاد بل تقدم التسريع لبرامج الوسائط المتعددة . و بما أن هذه التعليمات مخصصة للأرقام الصحيحة فإن عيبها الكبير أنها تعطل الاستفادة من وحدة الفاصلة العائمة في نفس الوقت ، أي أنه إذا أردت الاستفادة من قدرة MMX فعلى المعالج ألا يستخدم وحدة الفاصلة العائمة مؤقتاً حتى تنتهي عملية ال MMX من حساباتها لأن المسجلات لا يمكن استخدامها إلا من قبل واحدة من اثنتين إما وحدة الفاصلة العائمة أو وحدة الأرقام الصحيحة ، وهذا يحد من الاستفادة القصوى من MMX .
بدء تطبيق هذه التقنية في معالجات بنتيوم MMX كما أنها موجودة في معالجات بنتيوم الثاني والثالث .
ملاحظة هامة :
المعالجات الممكنة بـ MMX لا تحتاج لبرامج خاصة ولا لنظام تشغيل جديد حيث أن المعالج يعمل مع البرامج القديمة مثل المعالجات السابقة تماماً والفارق الوحيد هو أنه سوف يتمكن من الاستفادة من قدرات MMX في تسريع البرامج الجديدة التي تدعم هذه الميزة .
تحتاج تقنية MMX لدعم من البرامج كي تعمل ، أي لا بد أن يكتب المبرمج البرنامج واضعاً الاستفادة من MMX نصب عينيه وإلا فإنه لن يكون هناك أي فائدة منها.
بالنسبة للبرامج التي تدعم MMX هل يمكن أن تعمل على معالجات لا تدعم MMX ? الجواب هو أن ذلك يعتمد على المبرمج.
--------------------------------------------------------------------------------
خامساً : 3D now : وهي مشابهة لل"MMX " ولكنها 21 تعليمة جديدة لتسريع عمليات الفاصلة العائمة (بعكس MMX ) ، وقد لاقت الكثير من النجاح بسبب توفر الدعم لها في وندوز ، وطورت هذه التعليمات أصلاً في شركة AMD وتستعمل حالياً في معالجاتها بما فيها المعالج "أثلون" . تستفيد الألعاب الثلاثية الأبعاد كثيراً من هذه التقنية .
--------------------------------------------------------------------------------
سادساً : إعادة تسمية المسجلات (*)
في عملية تنفيذ التعليمات تستخدم المسجلات كذاكرة لتنفيذ التعليمات ( شرحت سابقاً ) ، ولكل مسجل من المسجلات أسم ليتم الإشارة إليه أثناء تنفيذ التعليمات ، في بعض الأحيان يحصل تضارب في أسماء المسجلات مما يعطل بعض العمليات وبذلك يحد من الاستفادة من التدرج الفائق ، والحل يكمن في هذه التقنية التي يعاد فيها تسمية المسجلات حتى لا تتضارب أسمائها مما يسمح بالقيام بكل العمليات الحسابية في نفس الوقت مادامت لا تعتمد على نتائج بعضها البعض .
--------------------------------------------------------------------------------
سابعاً : نوعية برنامج التجميع (*) المستخدم
إن سرعة المعالجة لها علاقة وثيقة بالبرمجة والكيفية التي يكتب بها المبرمج برامجه ، ونوعية البرامج التي يستخدمها في تجميع برامجه ، دعني أعطيك مثال على ذلك : المعالج بنتيوم كما تعرف لديه وحدتين لحساب الأعداد الصحيحة (فائق التدرج من المستوى الثاني ) ولكن ليس كلا الوحدتين متساويتين بل إن إحداهما لا تستطيع تنفيذ بعض التعليمات ، لذا فإن برامج التجميع التي تراعي ذلك سوف تنفذ برامجها بشكل أسرع مقارنة بالتي لا تراعي ذلك وهذا مثال بسيط .
لماذا لا تعمل البرامج ذات ال16 بت بسرعة مثل البرامج 32 بت ؟
--------------------------------------------------------------------------------
ثامناً : سرعة المكونات الأخرى للحاسب
إن المعالج ليس هو المكون الوحيد للحاسب ، إن الأجهزة الأخرى لها دور كبير أيضاً في تحديد سرعة النظام ككل ، إحذر عند شرائك حاسب جديد أن تركز فقط على المعالج ، إن سرعة الذاكرة والقرص الصلب مهمان جداً ، ولا يقل عنهما أهمية سرعة بطاقة الفيديو ، فاحذر...... وقد أعذر من أنذر ؟
--------------------------------------------------------------------------------
معالجة الأبعاد الثلاثية
تتمثل معالجة الأبعاد الثلاثية في الألعاب الحديثة مثل دووم وأمثالها ، ولابد - إذا أردت أن تستمتع باللعب كما يجب - أن تكون سرعة المعالج قادرة على القيام بجميع العمليات التي تتطلبها هذه اللعبة أثناء تشغيلها فوراً بدون تأخير وإلا ضاعت متعة اللعب ، ويتساوى في هذا أيضاً برامج الرسم الهندسي التي تكون بطيئة جداً ومملة في حال كان المعالج بطيئاً .
تحتاج معالجة الرسومات الثلاثية الأبعاد لسرعة كبيرة من المعالج كي تكون سرعة المعالجة مرضية وذلك لأن كل جسم من الأجسام التي تريد إظهارها على الشاشة تتكون من آلاف المثلثات الصغيرة جداً والتي تطلب إعادة حساب موقع كل مثلث من هذه المثلثات في كل مرة تريد تحريك هذا الجسم فيها .
وبما أن عدد هذه المثلثات كبير فيلزم عدد كبير من العمليات الحسابية ، وبما أن حجمها صغير فتتطلب القيام بعمليات حسابية دقيقة ( أي حسابات أرقام الفاصلة العائمة ) مما يجعل أهمية وحدة الفاصلة العائمة كبيرة في هذا المجال . وكلما كان المعالج أسرع كلما كانت الرسوم الثلاثية الأبعاد أسرع .
في أيامنا هذه زاد الاحتياج لقوة المعالجة الثلاثية الأبعاد بكثرة الألعاب الثلاثية الأبعاد ، ولم تعد قوة المعالجة لأي من المعالجات تكفي لهذه الألعاب ، لذا فوجود المسرعات الثلاثية الأبعاد على بطاقات الفيديو قد خفف العبء عن وحدة المعالجة المركزية كثيراً ويمكنك الرجوع لقسم بطاقة الفيديو لمزيد من المعلومات عن هذا المجال .