المعالج CPU
ما هو المعالج
عندما تود الإشارة إلى نوع حاسب ما فإنك تلجأ غالباً إلى نوع المعالج الذي يحتويه فتقول "هذا الجهاز هو بنتيوم الثالث 600 ميجاهيرتز" فما هو المعالج ؟
نعرف أن الحاسب - كما يوحي أسمه - هو آله قادرة على القيام بالعمليات الحسابية ، والمعالج (وحدة المعالجة المركزية)هو الجزء الذي يقوم بالعمليات الحسابية في الحاسب ، فالمعالج عبارة عن شريحة من السيلكون مغلفة وموصلة باللوحة الأم بطريقة خاصة لتقوم باستقبال البيانات من أجزاء الحاسب الأخرى ومعالجتها ثم إرسال النتائج إلى الأجزاء الأخرى لإخراجها أو تخزينها وجميع العمليات الحسابية تقوم بها هذه الوحدة ، وكل ما تفعله أثناء عملك على الحاسب يقوم به المعالج جزئياً أو كلياً بشكل أو بآخر .
والمعالج لا يفكر ولا يفهم بل يطبق التعليمات الموجودة في البرنامج وهو " دماغ الحاسب " وكل العمليات التي تقوم بها باستخدام الحاسب يقوم بها المعالج بشكل مباشر أو غير مباشر.
بالمناسبة يمكن لجهاز حاسب أن يحوي أكثر من معالج واحد . كما أن المعالجات تتطور في السرعة بشكل كبير مع مرور الوقت ، ربما يكون أكثر أجزاء الحاسب سرعة في التطور هو المعالج ، حالياً تعتبر معالجات بنتيوم الثالث و الرابع هي الأكثر حضوراً اليوم في أسواق المعالجات .
عندما تشتري حاسباً فإن أول ما تسأل عنه غالباً هو سرعة المعالج ( مثلاً 500 ميجاهيرتز ) ، فتختلف بذلك قدرات المعالجات المختلفة بسرعتها في القيام بالعمليات الحسابية ، إن الميجاهيرتز الواحد يساوي مليون دورة في الثانية الواحدة ومعالج 500 ميجاهيرتز يؤدي 500 مليون دورة في الثانية .
ويبرز الفرق بين معالج و معالج آخر فيما يلي :
المعالج السريع يقوم بنفس العمل و لكن أسرع من المعالج البطيء ، المعالج لا يحدد أداء حاسبك بمفرده ولكنه يحدد أقصى أداء يمكن أن يصل إليه حاسبك وعلى المكونات الأخرى في الحاسب أن تكون سريعة أيضاً لكي يكون الحاسب بكامله سريع .
الإعتمادية : إن المعالج المنخفض الجودة قد يجعل حاسبك غير مستقر .
إن المعالج السريع قد يشغل برنامج معين بينما المعالج الأبطأ لا يتمكن من تشغيله .
بعض المعالجات تستهلك الكثير من الطاقة مما يزيد من مشاكل الحرارة ويؤثر بالتالي على الأداء والاستقرار .
اختيار اللوحة الأم : حيث أن اللوحة الأم التي تختارها لا بد أن تدعم المعالج الذي تود تركيبه والعكس .
----------------------------------------------------------------------
أجزاء المعالج الداخلية
البنية التحتية للمعالجات
تتألف المعالجات من عدد كبير جداً من الترانزسترات ، فما هو عمل هذه الترانزسترات ؟ ومما يتكون ؟
إن المعالج يقوم مبدأ عمله على التعامل مع البيانات على شكل بتات وبايتات ، فالمعالج لا يفهم إلا لغة البايتات على شكل واحدات وأصفار ، بالنسبة لك فإن البايتات قد تعني لك في نهاية المطاف صورة أو رسالة أو ...أو... أما بالنسبة للمعالج فهي واحدات وأصفار .. كل بت يعتبره شحنة ويتعامل معه على أنه شحنة ينقلها ويخزنها هكذا .
وإذا نظرنا نظرة متعمقة في داخل المعالج ونظرنا لما يعمله المعالج نجد أنه إما يقوم بالعمليات الحسابية كالجمع والطرح ..إلخ أو يقوم بالعمليات المنطقية كالمقارنة بين الأعداد ، وفي كل الأحوال على المعالج أن يتخذ - بمساعدة التعليمات - القرارات الصحيحة ويقود دفة العمل على هذا الأساس ، فكيف يتخذ الحاسب القرارات ؟
إن هذا هو عمل الترانزسترات ، ولا تحسب أن ترنزستر واحد يستطيع أن يقوم باتخاذ القرارت بل إن هذه الترانزسترات موزعة في شكل مجموعات داخل المعالج لتقوم كل مجموعة منها بنوعية معينة من الأعمال ، فمثلاً أحد المجموعات مخصصة للمقارنة بين الأرقام و أخرى لاتخاذ القرارات في حالة معينة وهكذا ، وفي كل مجموعة تختلف عدد وطريقة تجمع الترانزسترات مما يؤثر على وظيفتها ، ويستطيع الحاسب باستخدام هذه المجموعات المختلفة بشكل مدروس ومنظم أن يقوم بكل العمل الذي يطلب منه .
إن كل "مجموعة" من هذه المجموعات تسمى "بوابة منطقية" وتختلف البوابات المنطقية بحسب الوظيفة التي تؤديها وعدد الترانزسترات التي تحتويها.
وتصنيع المعالج ماهو إلا وضع هذه المجموعات وربطها ببعضها بالشكل المطلوب ، إن "المجموعات" إذا تجمع عدد كبير منها لأداء وظيفة معينة تصبح ما نسميه IC والمعالج ما هو إلا مجموعة من الـ IC مترابطة مع بعضها البعض بشكل معقد . وبكلمة أخرى فإن :
عدة ترانزسترات = مجموعة وظيفية (بوابة)
عدة مجموعات وظيفية (الآلاف منها )= "IC"
عدة "IC" = معالج
والترانزستور بحد ذاته هو وحدة صغير جداً تسمح بمرور التيار الكهربائي من خلالها بمقدار يختلف باختلاف التيار الداخل لها أي أنها تسمح بالتحكم بشدة تيار كهربائي حسب شدة تيار كهربائي آخر ، فهي كالمفتاح الكهربائي ، وباستخدام هذه الوحدة الصغيرة (الترانزستور) يمكننا تنظيمها لتكوين وحدات ذات وظيفة معينة تختلف باختلاف ترتيب وتنسيق هذه الترانزسترات داخلها ، وبذلك يمكننا تكوين أنواع لا نهائية من الوحدات (المجموعات أو الـ IC ) ، وكلما زاد عدد الترانزسترات التي تتكون منها الـ IC كلما كان بإمكانها تأدية وظائف أكثر تعقيداً .
هناك فرق مهم جداً بين المعالج وبين IC عادي وهو أن المعالج قابل للبرمجة بحيث يمكنه تأدية أية وظيفة تطلب منه بينما الـ IC العادي لا يمكنه ذلك بل هو مخصص لعمل معين في جهاز معين . إن المعالج قادر على فعل ذلك لأنه يقسم أي عمل يقوم به إلى أقسام صغيرة تسمى التعليمات ، ويعتمد المعالج على البرنامج ليقول له متى وكيف ينفذ كل تعليمه حتى ينجز العمل المطلوب بينما الـ IC العادي لا يتطلب برنامج ولكن تركيبته تؤدي العمل المطلوب منها بحكم تركيبها .
معمارية المعالج :
يوجد داخل المعالج ملايين الترانزسترات التي تؤدي بمجملها للقيام بعمل المعالج ، ولا يخفى عليك أن هذه الملايين من الترانزسترات موضوعة كلها في مساحة صغيرة جداً أي أنها محشورة وبين الواحدة والأخرى مساحة قليلة ( الترانزسترات لا ترى بالعين المجردة ) وهذه الوحدات موصلة مع بعضها البعض بأسلاك صغيرة جداً تضمن تدفق البيانات بين الترانزسترات ، ويقاس سماكة هذه الأسلاك بالمايكرون ، وسماكة هذه الأسلاك هو الذي يحدد معمارية المعالج ، وكلما كانت معمارية المعالج أصغر كلما كان استهلاك الطاقة أقل و كانت الحرارة الناتجة من المعالج أقل مما يخفف من مشاكل التبريد وكذلك يمكننا المعمارية الأصغر من استخدام فولتية أقل للتيار المار في هذه الأسلاك .
والمايكرون هو وحدة قياس الطول تساوي واحد من المليون من المتر ، وحتى أعطيك فكرة عن رتب معالجات هذه الأيام أقول إن المعالج بنتيوم من رتبة 0.5 مايكرون ( أي نصف مايكرون ) بينما المعالج MMX بنتيوم معماريته 0.35 مايكرون (تستطيع أن تتصور كم هو دقيق ومتطور هذا الشيء المسمى معالج ) بينما المعالج بنتيوم الثاني يستعمل معمارية 0.25 مايكرون .
السؤال هو هل يوجد أقل من ذلك ؟ والجواب هو نعم : لقد نجحت شركة IBM بفضل نوع من التقنيات الجديدة بتطوير طريقة لصنع معالجات بمعمارية 0.13 مايكرون وهذا قد يفتح الباب لمعماريات أصغر ، فكلما صغرت المعمارية كلما تمكنا من وضع عدد أكبر من الترانزسترات في مساحة أقل مما يمكننا من تصنيع معالجات أقوى بتكلفة منخفضة .
المكونات الرئيسية للمعالج
يتكون المعالج من الأجزاء الرئيسية التالية:
وحدة الإدخال والإخراج
وحدة التحكم .
وحدة الحساب والمنطق : وتتقسم لـ 1- وحدة الفاصلة العائمة و 2- وحدة الأعداد الصحيحة 3- المسجلات
الذاكرة المخبئية .
1- وحدة الإدخال والإخراج :
تتحكم وحدة الإدخال والإخراج بتسيير المعلومات إلى ومن المعالج ، وهي الجزء الذي يقوم بطلب البيانات والتنسيق مع الذاكرة العشوائية في تسيير البيانات ، لا يوجد أي شئ خاص في هذه الوحدة وليس لها تأثير في أداء المعالج لأن كل معالج مزود بوحدة الإدخال والإخراج التي تناسبه وليس بإمكانك ترقية أو تعديل هذه الوحدة بل هي جزء لا يتجزأ من وحدة المعالجة المركزية نفسها .
إن أحد الأسباب التي تجعل وحد الإدخال والإخراج مهمة هي احتوائها على الذاكرة المخبئية من المستوى الأول (L1) .
2- وحدة التحكم :
وحدة التحكم هي الوحدة التي تتحكم بمسيرة البيانات داخل المعالج وتنسق بين مختلف أجزاء المعالج للقيام بالعمل المطلوب وتتولى مسؤولية التأكد من عدم وجود أخطاء في التنسيق ، لذا في العقل المدبر للمعالج . وأيضاً ليس بإمكانك ترقية أو تعديل هذه الوحدة بل هي جزء لا يتجزأ من وحدة المعالجة المركزية . وتقوم هذه الوحدة أيضاً بتنفيذ الوسائل المتطورة لتسريع تنفيذ البرامج مثل توقع التفرع وغيرها .
تتحكم هذه الوحدة بتردد المعالج ، فإذا كان لديك معالج تردده 700 ميجاهيرتز مثلاً فإن هذا معناه أن وحدة التحكم فيه تعمل على تردد 700 ميجاهيرتز .
3-1- وحدة الفاصلة العشرية:
إنه من الصعوبة بمكان على المعالج أن يقوم بحساب أعداد الفاصلة العشرية( وهي الأعداد التي بها فاصلة عشرية ومن أمثلتها 2.336 و 2.5565 و 8856.36532 و 0.220003 ) لأنه في هذه الحالة سوف يستهلك الكثير من قوة المعالجة في حساب عملية واحدة .
ووحدة الفاصلة العشرية هي وحدة موجودة داخل المعالج ومتخصصة في العمليات الحسابية الخاصة بالفاصلة العشرية. وتلعب هذه الوحدة دوراً رئيسياً في سرعة تشغيل البرامج التي تعتمد بشكل كبير على الأعداد العشرية وهي في الغالب الألعاب الثلاثية الأبعاد وبرامج الرسم الهندسي و الاوتو كاد و الارشيكاد.
يساعد قوة وحدة الفاصلة العشرية الكبيرة في تسريع الألعاب الثلاثية الأبعاد ، مع أن دور المعالج قد قل خلال السنوات السابقة بفضل دخول البطاقات الرسومية المسرعة بقوتها الكبيرة مما قلل من الاعتماد على المعالج المركزي في هذا المجال .
توجد وحدة الفاصلة العشرية في المعالجات 486 فما أحدث ( ما عدا المعالج 486SX ) داخل المعالج ، وقد كانت توضع في المعالجات 386 وما قبله خارج المعالج وتسمى math co-processor أي " معالج مساعد " ، إن وضع وحدة الفاصلة العشرية خارج المعالج (على اللوحة الأم ) يجعلها أبطأ ، جميع المعالجات اليوم يوجد فيها وحدة فاصلة عشرية ليس هذا فقط بل وحدة فاصلة عشرية متطورة .
3-2- وحدة الأعداد الصحيحة
و تختص هذه الوحدة بالقيام بحسابات الأعداد الصحيحة ، وتستعمل الأرقام الصحيحة في التطبيقات الثنائية الأبعاد كوورد وإكسل وبرامج الرسم الثنائية الأبعاد كما تستعمل في معالجة النصوص . يعتبر قوة وحدة الأعداد الصحيحة مهمة جداً لأن أغلب المستخدمين يستعملون التطبيقات التقليدية أغلب الوقت .
3- 3- المسجلات :
المسجلات هي عبارة عن نوع من الذاكرة السريعة جداً جداً (بالمناسبة هي أسرع أنواع الذاكرات في الحاسب الشخصي ) تستعمل لكي يخزن فيها المعالج الأرقام التي يريد أن يجري عليها حساباته ، فالمعالج لا يمكنه عمل أي عملية حسابية إلا بعد أن يجلب الأرقام المراد إجراء العمليات عليها إلى المسجلات . توجد المسجلات فيزيائياً داخل وحدة الحساب والمنطق المذكورة سابقاً .
إن حجم المسجلات مهم حيث أنه يحدد حجم البيانات التي يستطيع الحاسب إجراء الحسابات عليها ، ويقاس حجم المسجلات بالبت بدلاً من البايت بسبب صغر حجمها ، خطأ شائع بين الناس أن يقيسوا قدرة المعالج بأنه 32 بت استنادا إلى عرض ناقل النظام بل الصحيح أن يقيسوا المعالج بحجم مسجلاته ، وعلى ذلك فإن جميع معالجات 486 وما بعدها هي من معالجات ال 32 بت وليس 64 بت ، وبالمناسبة فإن معالجات 64 ستظهر خلال سنوات ولكنها لم تكن أبداً متوفرة سابقاً فلا تأخذ بمن يقول لك إن معالج بنتيوم الثاني هو معالج 64 بت بل إنه معالج 32 بت مثله مثل بنتيوم و 486 .
4-الذاكرة المخبئية
الذاكرة المخبئية هي ذاكرة صغيرة تشبه الذاكرة العشوائية إلا أنها أسرع منها وأصغر وتوضع على ناقل النظام بين المعالج والذاكرة العشوائية .
في أثناء عمل المعالج يقوم هذا الأخير بقراءة وكتابة البيانات والتعليمات من وإلى الذاكرة العشوائية بصفة متكرره , المشكلة أن الذاكرة العشوائية تعتبر بطيئة بالنسبة للمعالج و التعامل معها مباشرة يبطئ الأداء .فلتحسين الأداء لجأ مصممو الحاسب إلى وضع هذه الذاكرة الصغيرة ولكن السرعة بين المعالج والذاكرة العشوائية مستغلين أن المعالج يطلب نفس المعلومات أكثر من مرة في أوقات متقاربة فتقوم الذاكرة المخبئية بتخزين المعالومات الأكثر طلباً من المعالج مما يجعلها في متناول المعالج بسرعة حين طلبها.عندما يريد المعالج جلب بيانات أو تعليمات فإنه يبحث عنها أولاً في ذاكرة L1 فإن لم يجدها ( فشل المعالج في إيجاد المعلومات التي يريدها من الذاكرة العشوائية يسمى "cache miss" ، أما نجاحه في الحصول عليها من الذاكرة المخبئية يسمى "cache hit" ) بحث عنها في L2 فإن لم يجدها جلبها من الذاكرة العشوائية. إن حجم هذه الذاكرة وسرعتها شئ مهم جداً ولها تأثير كبير على أداء المعالج ونستعرض هنا كلا العاملين .
سرعة الذاكرة المخبئية :-
والذاكرة المخبئية كأي ذاكرة أخرى لها تردد تعمل عليه وكلما كانت تعمل على تردد أسرع كلما كان أفضل ، وترددها يعتمد على موقعها :
عندما تكون الذاكرة المخبئية على ناقل النظام يكون ترددها هو نفس سرعة الناقل ( غالباً 66 أو 100 ميجاهيرتز )
الذاكرة المخبئية الموضوعة داخل المعالج (معالجات الجيل السادس) تعمل عادة بنصف سرعة المعالج (المعالجات بتردد 333 ميجاهيرتزأوأقل) أو نفس سرعة المعالج (معالجات سيليرون و زيون وبنتيوم برو )
معالجات الجيل الخامس جميعها لها ذاكرة مخبئية من المستوى الثاني على اللوحة الأم وترددها لا يزيد عن 66 ميجاهيرتز عموماً
وبتطبيق ما سبق نستطيع أن نعرف سرعة الذاكرة المخبئية لكل معالج وهذه أمثلة :
معالج بنتيوم بسرعة 200 ميجاهيرتز : سرعة ناقل النظام هي 66 ميجاهيرتز فتكون سرعة الذاكرة المخبئية الموجودة على اللوحة الأم هي 66 ميجاهيرتز.
معالج بنتيوم الثاني 333 ميجاهيرتز سرعة ناقل النظام فيه 66 ميجاهيرتز إلا أن الذاكرة المخبئية فيه موجودة داخل المعالج فتكون سرعة الذاكرة المخبئية تساوي 333 تقسيم 2 = 166.5 ميجاهيرتز .
معالج بنتيوم الثالث زيون 500 ميجاهيرتز له ذاكرة مخبئية بسرعة 500 ميجاهيرتز .
إن وضع الذاكرة المخبئية داخل المعالج له فائدتين : الأولى هي السرعة أما الثانية فتبرز في حالة تركيب أكثر من معالج واحد على اللوحة الأم لأن كل معالج له الذاكرة العشوائية الخاصة به ولا تتزاحم المعالجات على الذاكرة المخبئية .
----------------------------------------------------------------------
كيف يعمل المعالج
حتى يؤدي المعالج وظيفته لابد من أن :
يقرأ التعليمات من الذاكرة العشوائية
يقرر ما هي البيانات اللازمة لتنفيذ التعليمات
يجلب البيانات اللازمة لتنفيذ تلك التعليمات
ينفذ التعليمات
يكتب النتيجة في الذاكرة العشوائية : طبعاً الذاكرة العشوائية بطيئة لذا تستعمل " ذاكرة الكتابة المخبئية " لحفظ البيانات لحين تمكن الذاكرة العشوائية من قراءتها .
التعليمات ومعالجات 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 ساعة مرة ويحصل في حسابات الفاصلة العائمة الضرورية في الحسابات الهندسية ، فقد اضطرت شركة إنتل لاستبدال كافة المعالجات التي تحوي الخطأ وهذا يعد خسارة كبيرة لإنتل ولكنها استفادت من هذا الأمر أيضاً كدعاية لشركتها .
أنماط عمل المعالجات
أنماط العمل هي وصف للبيئة التي يعمل فيها المعالج من حيث قدرته على الوصول للذاكرة العشوائية وعلى قدرته على تشغيل أكثر من برنامج في نفس الوقت ، إن نمط العمل لمعالج ما في وقت من الأوقات يتحدد بنظام التشغيل الذي يستخدمه وكذلك على نوع المعالج الذي تستخدمه,في بعض الأحيان يسمى النمط المحمي " نمط 386 المحسّن " لأن معالجات 386 هي أول معالجات تسمح بالانتقال بين النمط المحمي والنمط الحقيقي بحرية بدون إعادة تشغيل الحاسب ، بينما يستطيع المعالج 286 الانتقال دورة واحدة فقط ، أما معالج الجيل الأول فلا يمكنه ذلك على الإطلاق فهو يعمل في النمط الحقيقي فقط .
بالنسبة للنمط الحقيقي التخيلي فما هو إلا ميزة أضيفت على أنظمة التشغيل وندوز لتتيح لها تشغيل نافذة دوس من داخل وندوز - إذا كنت قد استعملت هذه النافذة فستعرف ما أتحدث عنه .
ترقية المعالجات
إن المعالجات قابلة للترقية ، إذا كان عندك معالج بنتيوم 166 يمكنك استبداله ببنتيوم 200 مثلاً ولكن يشترط أن تدعم اللوحة الأم هذا المعالج كما إن المعالج القديم سوف ينتهي بأن يهمل ولا تستفيد منه .
الطريقة الثانية لترقية معالجك هو إضافة ما يسمى الـ over drive وهو معالج يمكن معالجك الأصلي من زيادة سرعته ولكن إنتبه لابد عند شرائك هذا المعالج أن تتأكد من إمكانية تركيبه في لوحتك الأم . مع الأسف أصبحت هذه المعالجات معدومة في السنوات الأخيرة .
كما يمكنك شراء معالج ولوحة أم جديدتين ، وقد يلزمك أيضاً تغيير الذاكرة العشوائية وهذا خيار جيد إذا كنت ستنتقل من بنتيوم إلى بنتيوم الثاني مثلاً .
فولتية المعالج
طبعاً المعالج كجهاز إلكتروني يحتاج للكهرباء ، وكجميع الأجزاء الإلكترونية الأخرى يحتاج لتيار مباشر أي ذلك الذي ينتج من البطاريات ، تعمل المعالجات المختلفة بفولتية مختلفة عن بعضها . يوجد على اللوحة الأم محول فولتية يوفر للمعالج الفولتية التي يحتاجها لذا فإن أحد الأسباب التي تجعل اللوحة الأم تتحكم بنوع المعالج هي مقدار الفولتية التي يعمل عليها المعالج ، وهذا هو السبب الذي يجعل اللوحات الأم للمعالج بنتيوم لا تستطيع تشغيل بنتيوم MMX حيث يعمل الثاني بفولتية تختلف .
لماذا تهمنا فولتية المعالج ؟
الفولتية الأعلى تعني زيادة درجة الحرارة مما يؤثر على المعالج من حيث عمره الافتراضي واستقرار عمله ويولد مشاكل في التبريد .
في الحاسبات المحمولة : الفولتية الأعلى تعني استهلاك طاقة أعلى مما يعجل بنفاذ البطارية.
الفولتية الأقل تعني معدل استهلاك طاقة أقل .
كانت أغلب المعالجات تعمل بفولتية 5 فولت ثم تم إنقاص هذه الفولتية إلى 3.3 فولت ، ثم ما لبثت الشركات أن قررت خفض الفولتية إلى أقل من ذلك بطريقة فصل الفولتية ، أي أن تعمل الأجزاء المختلفة من الحاسب بفولتيات مختلفة فأصبح المعالج يقسم لقسمين :
1- وحدة الدخل والاخراج تعمل ب 3.3 فولت
2- قلب المعالج ويعمل بأقل من ذلك (حسب المعالج )
إن كمية الحرارة الصادرة من معالج مثل بنتيوم الثاني تكفي لمنعك من وضع يدك على المعالج أثناء عمله لذا تحتاج المعالجات لتبريد ...
معالجة الأبعاد الثلاثية
تتمثل معالجة الأبعاد الثلاثية في الألعاب الحديثة مثل دووم وأمثالها ، ولابد - إذا أردت أن تستمتع باللعب كما يجب - أن تكون سرعة المعالج قادرة على القيام بجميع العمليات التي تتطلبها هذه اللعبة أثناء تشغيلها فوراً بدون تأخير وإلا ضاعت متعة اللعب ، ويتساوى في هذا أيضاً برامج الرسم الهندسي التي تكون بطيئة جداً ومملة في حال كان المعالج بطيئاً .
تحتاج معالجة الرسومات الثلاثية الأبعاد لسرعة كبيرة من المعالج كي تكون سرعة المعالجة مرضية وذلك لأن كل جسم من الأجسام التي تريد إظهارها على الشاشة تتكون من آلاف المثلثات الصغيرة جداً والتي تطلب إعادة حساب موقع كل مثلث من هذه المثلثات في كل مرة تريد تحريك هذا الجسم فيها .
وبما أن عدد هذه المثلثات كبير فيلزم عدد كبير من العمليات الحسابية ، وبما أن حجمها صغير فتتطلب القيام بعمليات حسابية دقيقة ( أي حسابات أرقام الفاصلة العائمة ) مما يجعل أهمية وحدة الفاصلة العائمة كبيرة في هذا المجال . وكلما كان المعالج أسرع كلما كانت الرسوم الثلاثية الأبعاد أسرع .
في أيامنا هذه زاد الاحتياج لقوة المعالجة الثلاثية الأبعاد بكثرة الألعاب الثلاثية الأبعاد ، ولم تعد قوة المعالجة لأي من المعالجات تكفي لهذه الألعاب ، لذا فوجود المسرعات الثلاثية الأبعاد على بطاقات الفيديو قد خفف العبء عن وحدة المعالجة المركزية كثيراً.
العوامل المؤثرة على سرعة المعالج
إن سرعة المعالج ليست هي العامل الوحيد الذي يقرر سرعة الحاسب بل المهم أيضاً سرعة حركة البيانات بين الأجزاء المختلفة في الحاسب وبخاصة من وإلى المعالج .
هناك الكثير من الطرق التي تستخدم لقياس سرعة المعالجات كما إن المعالجات المختلفة تتفاوت فيما بينها في المجالات المختلفة ، فقد يتفوق بعضها على الآخر في حسابات الفاصلة العائمة فيما يتفوق الآخر في أشياء أخرى وهكذا . وهناك عاملين أساسيين يتحكمان في أداء معالج ما :
تردد الساعة
معمارية المعالج
إن مقارنة معالجين بسرعة تردد الساعة لهما فقط يعتبر مقارنة خاطئة إذا كان المعالجين مختلفين في المعمارية ، يمكننا مثلاً أن نقول أن معالج بنتيوم 233 ميجاهيرتز أسرع من معالج بنتيوم 200 ولكن لا يمكنك أن تقول أنه أسرع من بنتيوم 200 ميجاهيرتزMMX لأن جزء من معمارية المعالج تختلف .
وفيما يلي نستعرض أهم الأشياء التي تجعل معالج يكون أسرع من معالج آخر ......
تردد المعالج
يقصد بتردد المعالج تردد الساعة التي يعمل عليها المعالج ، كلما كان تردد الساعة أعلى كلما أصبح بإمكان المعالج عمل أشياء أكبر في وقت أقل ، وتقاس سرعة المعالج بالميجاهيرتز، معالج سرعة تردده بـ 200 ميجاهيرتز فإنه قادر على عمل 200 مليون دورة في الثانية ، أما كم من العمليات الحسابية يتم في هذه الدورة فهذا راجع لبنية المعالج والجيل الذي ينتمي إليه
تسريع المعالج فوق السرعة الرسمية
ما هو تسريع المعالج :
عندما تركب معالج في جهازك فإن عليك أن تخبر الحاسب عن سرعة هذا المعالج وذلك بضبط بعض "القفازات" على اللوحة الأم بطريقة معينة ، وتضبط هذه القفازات سرعة ناقل النظام وعامل المضاعفة مما يحدد بالتالي تردد المعالج .
سؤال : هل يستطيع المهندسون في مصنع المعالجات أن يضمنوا عند تصنيع مجموعة من المعالجات إن تخرج كلها لتعمل عند تردد معين ؟
الجواب هو لا ، فإن المجموعة التي تخرج من المصنع تعمل بسرعات مختلفة - بسبب العديد من العوامل - لذا فإنهم لا يستطيعون التحكم بكمية المعالجات التي ينتجونها من سرعة معينة وينتج من ذلك نقص في معالجات سرعة معينة .
فمثلاً قد يحدث في مرحلة ما شح في معالجات سرعة معينة بما لا يتناسب مع حاجة السوق ، مثل أن يتم تصنيع معالجات 800 ميجاهيرتز فيما يتطلب السوق مثلاً معالجات 600 ميجاهيرتز (بسبب أسعارها الأقل ) فكيف تحل المشكلة ؟
يكون الحل بأن تبيع الشركة المعالجات ذات السرعة الأكبر على أساس أنها ذات سرعة أقل فما وجه الاستفادة من ذلك بالنسبة لك ؟
يمكنك تشغيل معالج كهذا على سرعة أكبر فمثلاً إذا كان لديك معالج 200 ميجاهيرتز ربما تنجح في أن تجعله يعمل بسرعة 233 ميجاهيرتز مثلاً وذلك بتغيير إما سرعة ناقل النظام أو معامل المضاعفة كما أشرت في البداية .
ولكن مهلاً قد لا ينطبق هذا الوضع على المعالج الذي اشتريته لذا فإن ليس كل معالج يمكنه أن يعمل على سرعة أكبر من تلك التي تظهر على علبته ، وذلك يعتمد على عوامل أخرى أيضاً ، فمثلاً معالجات إنتل الحديثة وخاصة بنتيوم الثالث فيها نوع من إغلاق التحكم بالتردد من المصنع بحيث أن المعالج لا يعمل إلا على التردد الذي صمم عليه وبذلك لا يمكن التحايل ورفع تردد المعالج فوق سرعته الأصلية
مشاكل رفع التردد :
الحرارة الزائدة مما يقصر من عمر المعالج ، وإذا رفع تردد الساعة كثيراً فوق التردد الرسمي قد يتطلب الأمر طرق خاصة لتبريد المعالج مثل استخدام الماء (مثل نظام تبريد محرك السيارة ) أو مراوح تبريد كبيرة جداً .
الذاكرة المخبئية المستوى الثاني قد لا تستطيع العمل بهذه السرعة الزائدة لذا فإن المعالج "سيليرون" هو من أفضل المعالجات في هذا المجال لعدم احتوائه على هذه الذاكرة .
ربما لا تستطيع الذاكرة العشوائية مجاراة ناقل النظام (في حالة ما تم زيادة تردد ناقل النظام ) حيث أن لكل نوع من الذاكرة العشوائية مدى محدد من السرعات التي يمكنه العمل عليها فالذاكرة العشوائية من نوع FPM يمكنها العمل حتى 66 ميجاهيرتز لناقل النظام بينما EDO تعمل حتى 75 ميجاهيرتز والذاكرة SD-RAM تعمل بترددات 100 أو 133 ميجاهيرتز حسب نوعها .
ربما لا تعمل بعض بطاقات التوسعة بشكل جيد أو لا تعمل أبداً بسبب سرعة ناقل النظام الكبيرة .
ربما تواجه بعض البرامج صعوبة في العمل : وندوز NT مثلاً لا يمكن تركيبه على جهاز مرفوع قوته ، إلا أنه يمكن التحايل على ذلك بتثبيت NT أولاً ثم رفع قوة المعالج .
ما هي المعالجات القابلة لرفع التردد :
شاعت عملية رفع تردد المعالج في معالجات بنتيوم وكذلك معالجات AMD من الجيل الرابع ، ومن بعدهم أصبحت معالجات بنتيوم MMX و بنتيوم الثاني أيضاً قابلة لرفع التردد .
بعض المعالجات مثل بنتيوم الثالث وبعض معالجات AMD القديمة لا تقبل رفع التردد لأن ترددها مثبت من المصنع على التردد الذي يجب أن تعمل عليه ، هذا لأن شركات صناعة المعالجات أبطلت إمكانية رفع التردد في هذه المعالجات لسياسات خاصة بها .
إن أفضل المعالجات القابلة لرفع التردد هي -كما ذكرت سابقاً - معالجات سيليرون ، هذا لأنها لا تحوي ذاكرة مخبئية مما يزيل المشاكل التي تنجم عن رفع التردد بالنسبة للذاكرة المخبئية ( لقد قرأت في بعض مواقع الوب عن معالجات سيليرون 300 تعمل بسرعة 500 بدون مشاكل ).
ثم هناك معالجات سيليرون A ، وهي معالجات سيليرون مع ذاكرة مخبئية مقدارها 128 كيلوبايت ، وهذه المعالجات أيضاً محمية ضد رفع التردد (مع أنك تستطيع زيادة سرعتها عن طريق رفع تردد ناقل النظام ) .