كيف تعمل وحدة المعالجة المركزية
االمنتظر رسول
--------------------------------------------------------------------------------
بالرغم من اشتعال
المنافسة لزيادة سرعة وحدة المعالجة المركزية؛ فإنه يجب الانتباه إلى أن أداء الوحدة لا يتحدد فقط بتضخم سرعتها من ميجا إلى جيجا ومضاعفاتهما، بل ينبغي أن يعرف الجميع أن:
* المعالج (CPU) يؤدي ثلاث مهام أساسية: فهو يقرأ البيانات، ويعالجها، وغالبًا ما يخزنها بالذاكرة.
* هناك عوامل أخرى غير السرعة مثل التصميم… لها أهمية كبيرة في تحديد أداء رقاقة وحدة المعالجة المركزية.
* الغرض الذي من أجله سوف تستخدم الجهاز، والبرامج التي سوف يتم تشغيلها عليه، من المحددات التي ينبغي أن تؤخذ في الاعتبار عند تحديد نوع وسرعة رقاقة وحدة المعالجة المركزية التي تريدها بجهازك.
تركيب وحدة المعالجة المركزية:
تتألف وحدة المعالجة المركزية من ملايين الترانزستورات الميكروسكوبية التي حفرت كيماويًّا أو طبعت بطريقة "photolithography" على رقاقة مصقولة من السيليكون في حجم أظفر الإبهام، هذه الترانزستورات تختزن الشحنات الكهربية التي توافق إما صفرًا أو واحدًا (binary language)، وهي اللغة التي تتواصل بها مكونات الكمبيوتر وتفهمها، مما يمكنها من إجراء عمليات الحساب والمنطق، بمساعدة ساعة كوارتز.
عمليات وحدة المعالجة المركزية:
تختزن المعلومات الخاصة بعمليات وحدة المعالجة المركزية في الذاكرة على شكل bytes، وهذه المعلومات إما أن تكون تعليمات أو بيانات، والبيانات عبارة عن حرف أو عدد أو لون مثلاً، بينما التعليمات هي التي توجه وحدة المعالجة المركزية إلى ما يجب فعله مع البيانات من جمع وطرح ونقل على سبيل المثال.
ولأداء عملية بسيطة على أي بيانات، تحتاج وحدة المعالجة المركزية إلى أربعة عناصر وهي: التعليمة، ومؤشر التعليمة، ومسجل، ووحدة الحساب والمنطق.
مؤشر التعليمة (instruction pointer)، وهو الذي يدل وحدة المعالجة المركزية على مكان التعليمة بالذاكرة والتي تكون الوحدة بصدد تنفيذها.
مسجل (register)، وهو مكان للتخزين المؤقت في وحدة المعالجة المركزية، حيث تختزن عليه مؤقتًا البيانات التي تنتظر معالجتها بواسطة تعليمة ما، أو البيانات التي تم معالجتها بالفعل، مثل ناتج جمع رقمين.
وحدة الحساب والمنطق (arithmetic – logic unit / ALU)، وهي الآلة الحاسبة بوحدة المعالجة المركزية، والتي تقوم بإجراء العمليات الحسابية والمنطقية التي أملتها تعليمة ما على وحدة المعالجة المركزية.
وبالإضافة إلى ما سبق من أجزاء أساسية للمعالج، هناك أيضًا أجزاء أخرى تحتاجها للقيام بوظائفها، وهي:
جالب التعليمة (instruction fetch)، وهي التي تقوم بإحضار التعليمة من الذاكرة RAM أو أي مكان لتخزين التعليمات على وحدة المعالجة المركزية CPU.
مترجم التعليمة (instruction decoder)، وهو الذي يأخذ التعليمة من جالب التعليمة ويترجمها (يفك شفرتها) بحيث تفهمها وحدة المعالجة المركزية، وهو أيضًا الذي يحدد بعد ذلك ما يجب اتخاذه من خطوات لتنفيذ تلك التعليمة.
وحدة التحكم (control unit)، وهي التي تدير وتنسق كل العمليات على الرقاقة، فبأمرها ونهيها تأتمر وتنتهي المكونات السالف ذكرها بالأوامر والنواهي الخاصة بالعمليات، فليس لوحدة الحساب والمنطق أن تجري عملية ما دون أن تأمرها وحدة التحكم، وكذلك يشرع جالب التعليمات فقط في إحضار تعليمة ما بعد أن تأذن له وحدة التحكم حتى لو انتظرت تلك التعليمة التنفيذ لفترة طويلة، وما ينبغي لمترجم التعليمة في ترجمة تعليمة ما وفك شفرتها بعد إحضارها دون أمر منها.
رحلـة تعليمة:
يوجه مؤشر التعليمة (instruction pointer) جالب التعليمة (instruction fetch) إلى البقعة المخزن عليها التعليمة في الذاكرة؛ ليقوم جالب التعليمة بجلب تلك التعليمة إلى مترجم التعليمة (instruction decoder)، حيث يختبر التعليمة ويفك شفرتها، ويحدد الخطوات اللازمة لتنفيذ تلك التعليمة (التعليمة قد تتألف من العديد من الخطوات اللازمة لتنفيذها في ترتيب معين).
تقوم وحدة الحساب والمنطق (ALU) بعد ذلك بما عليها من جمع وطرح أو معالجة للبيانات، عند ذلك تقوم وحدة التحكم بإصدار توجيهات إلى جالب التعليمة؛ لكي يقوم بجلب التعليمة التالية في الترتيب للتعليمة التي تم تنفيذها، وتستمر هذه العملية تعليمة بعد تعليمة في دأب مدهش؛ لتظهر نتائج تلك التعليمات على الشاشة مثلاً، بمعنى أن برنامجًا كمعالج الكلمات مثل MS Word عبارة عن سلسلة تعليمات وبيانات، حيث يكون النص هو البيانات التي ستنفذ عليها تعليمة ما ولتكن ضبط هوامش النص، ولضمان أن يتم كل شيء في الوقت المرسوم له؛ فإن هذه الأجزاء تحتاج لضابط إيقاع، وهو ما تقوم به الساعة، هذه الساعة تقوم بتنظيم إيقاع تنفيذ كل تعليمة من التعليمات في وحدة المعالجة المركزية عن طريق نبضات تقاس بالملايين في الثانية الواحدة أو ميجا هيرتز، وهو الاستخدام الشائع لقياس سرعة وحدة المعالجة المركزية. يعني ذلك أن وحدة معالجة سرعتها 700 – MHz أسرع من وحدة معالجة سرعتها 600 – MHz مع ثبات كل الظروف والمتغيرات، وهو شيء غير ثابت في حقيقة الحال، إذ يوجد من المتغيرات ما يجعل هذه الأرقام ذات دلالة أقل من حيث السرعة.
تحسين وحدة المعالجة المركزية:
تحتاج وحدة المعالجة المركزية إلى القليل من المكونات للقيام بوظائفها، ولكن التصميم الأساسي قد تغير عبر السنوات الماضية؛ مما أثر على الأداء بشكل عام، ودائمًا ما كان الهدف من ذلك التجويد في كل مرة هو المعالجة الأسرع للبيانات.
فبينما استمر البحث حول الطرق التي تجعل سرعة وحدة المعالجة المركزية أكبر، لاحظ مصنعو الرقائق أن وحدة المعالجة المركزية تتعطل في الوقت الذي يستغرق لجلب تعليمة ما أو بيانات من ذاكرة النظام. ولتقليل الفاقد من ذلك الوقت، تم إضافة مكان للتخزين يعرف بالكاش (cache) بالوحدة نفسها، حيث أمكن به تخزين البيانات والتعليمات فيه مؤقتًا على وحدة المعالجة المركزية نفسها، مما خفض من عدد الرحلات إلى الذاكرة.
تعاظمت فكرة الـ (cache)؛ ليضع مصنعو الأنظمة – بين أول كاش في وحدة المعالجة المركزية وبين ذاكرة النظام RAM، ذاكرة ذات سرعة أكبر وأعلى، أسموها (level 2 cache or L2 cache)، مما يعني أن مسافة وعدد الرحلات إلى الذاكرة أصبح أقل وأقل. هذه الـ (cache) الثانوية، سرعان ما تم دمجها مع وحدة المعالجة المركزية نفسها؛ حتى تصبح مكانًا إضافيًّا لتخزين التعليمات والبيانات مع ما سببته من زيادة سرعة الوحدة.
وحدات حساب ومنطق ووحدات نقاط متحركة أكثر:
ولتحسين أداء الحساب، وضع مصنعو الرقائق وحدة حساب ومنطق إضافية، مما يعني نظريًّا القدرة على إجراء ضِعْف ما يجري من عمليات في نفس الوقت، والعديد من وحدات الحساب والمنطق في وحدة معالجة مركزية واحدة يعني إنهاء المهمات بسرعات أكبر كما لو أن عددًا يقوم بتنظيف أرضية حجرة بدلاً من واحد فقط.
وبالإضافة للعديد من وحدات وحدة المعالجة المركزية بدلاً من وحدة واحدة بالجهاز، دمجت شركة Intel وحدة لمعاجلة النقطة المتحركة (FPU / floating point unit) في وحدة المعالجة المركزية. هذه الوحدة تعالج حسابات الأرقام المتناهية الكبر والمتناهية الصغر، بينما تصبح وحدة الحساب والمنطق حرة لتعالج شيئًا آخر.
عظَّم سرعة الأداء مرة أخرى كل من شركتي (Advanced Micro Devices / AMD & Intel) عن طريق تنفيذ التعليمات تقريبًا بالتوازي زمنيًّا مع بعضهم البعض (آنيًّا)، إذ يحتاج تنفيذ تعليمة ما لعدد من الخطوات المنفصلة من جلب وترجمة على سبيل المثال، وفي الأصل ينبغي على وحدة المعالجة المركزية الانتهاء من تنفيذ تلك التعليمة في دورة كاملة قبل أن تشرع في تنفيذ التعليمة التي تليها، أما وقد تم إيجاد أكثر من خط معالجة – إن جاز التعبير – فإن دوائر منفصلة تقوم بهذه الخطوات المنفصلة. هذا يحرر الترانزيستورات التي تعالج تعليمة ما لتصبح مستعدة لاستقبال وتنفيذ ومعالجة تعليمة أخرى بعدما انتقلت التعليمة السابقة منها إلى غيرها، فيما يشبه حركة أكثر من شخص على سلم واحد، فبينما يرفع أحدهم رجله لينقلها إلى الدرجة التالية ، تصبح نفس الدرجة خالية لرجل آخر، وهكذا.
إضافات أخرى حسَّنت كثيرًا من الأداء مثل "التنبؤ الفرعي" (branch prediction)، حيث يمكن تخمين أي خطوة فرعية قد يأخذها البرنامج. و"التنفيذ الحدسي" (speculative execution)، بمعنى تنفيذ ما تم التنبؤ به، كذلك القدرة على تنفيذ سلسلة تعليمات كاملة من البرنامج خارج ترتيبها وتسلسلها المعتاد بالبرنامج لتكون جاهزة التنفيذ وقت طلبها، وهو ما يسمى بـ "إتمام خارج التسلسل" أو (out-of-order completion).
كل تلكم التحسينات التي طرأت على وحدة المعالجة المركزية زادت من سرعتها، وجعلت السرعة تقاس بالجيجا هيرتز 1GHz. والعجيب في الأمر أن الاختبارات التي أجريت كشفت عن أن الطفرات التي طرأت على السرعة كانت طفيفة المردود، خاصة على البرامج المكتبية، والتي تعتمد بشدة على سرعة القرص الصلب وسرعة الذاكرة في النظام RAM، ولعل في هذا إجابة شافية - ولو بعض الشيء - عمّا يتم داخل وحدة المعالجة المركزية، إذ يعول الكثير عندما يشرع في شراء جهاز على الأرقام الكبيرة، دون النظر إلى مدى حاجته لتلك الأرقام، وهل هذه الأرقام الضخمة تعبر – حقيقة - عن سرعة مطلقة ؟! بمعنى، هل – فعلاً – "الجهاز" الذي تبلغ سرعة معالجه 3.2 جيجاهيرتز مثلاً أسرع بالفعل من "جهاز" سرعة وحدة المعالجة المركزية به 3.0 جيجا هيرتز؟ أم أن هناك متغيرات أخرى تتحدد من خلالها سرعة الجهاز وأداؤه ؟.
وحدة المعالجة المركزية في الحاسب الشخصي:
سوق وحدات وحدة المعالجة المركزية للحواسب الشخصية تسوده شركتان بصفة أساسية، هما(: Intel,
www.intel.com) و Advanced Micro Devices. (
www.amd.com). فمثلاً يتساوى تقريبًا من حيث الأداء والتصميم، وحدة المعالجة المركزية PIII من Intel، وكذلك معالج Athlon من AMD، وكلاهما به من التحسينات ما يجعله يسرع من الألعاب ثلاثية الأبعاد، وكذلك برامج التصميمات الهندسية (CADs).
الأجهزة المحمولة لا تحتمل المعالجات الأسرع، إذ إن تصميم الجهاز الشخصي المكتبي يسمح له بتهوية جيدة، مما يمكنه من التخلص من الحرارة الناتجة من وحدة المعالجة المركزية، بينما تقل قدرة الجهاز المحمول عنه في تسريب تلك الحرارة، مما يستلزم إدراج معالجات ذات سرعات أقل نسبيًّا، وكذلك أقل في استهلاك الطاقة عمَّا هو في الجهاز الشخصي المكتبي؛ لذا فأسرع جهاز شخصي محمول حتى الآن به معالج ذو سرعة 700MHz.
نظرة على المستقبل:
دائمًا ما يحاول مصنعو وحدة المعالجة المركزية إدخال تحسينات على الأداء، فمؤخرًا انتقلنا إلى عملية تصنيع أخرى – تأخذ تسميتها من المسافة البينية بين المسجل وآخر - تُدْعى "عملية الـ 0.25 ميكرون" إلى أخرى جديدة تسمى "عملية الـ 0.18 ميكرون"، مما يعني مسافات بينية أقل بين الترانزيستورات، وسرعات أعلى وحرارة أقل. كما بدأ بالفعل استبدال الوصلات الألومنيوم المستخدمة في التوصيل بين الترانزيستورات بوصلات أخرى من النحاس ذي الخصائص الكهربية الأعلى والذي يوصل الكهرباء أفضل من الألومنيوم.