عندما نريد شراء جهاز حاسوب جديد فإن المعالج هو من أهم القطع التي نهتم بشراء أجودها وأفضلها ، وعندما نسأل أي شخص عن نوعية حاسبه فأنه سوف يلجأ الى ذكر نوع المعالج ، لكن ما هو المعالج ؟ من ماذا يتكون ؟ ما هي وظيفته ؟ سوف أتطرق الى ذلك بالتفصيل.
* المعالج : هو العقل المدبر للحاسوب ، يستقبل الاوامر ويعالجها ويعطينا نتائجها على شكل معلومات نستفيد منها ، من الناحية العتادية هو قطعة مربعة الشكل وخفيفة الوزن يخرج من أسفلها عدد من الابر (pins) التي تسمح للمعالج بالاتصال مع مقبس المعالج على اللوحة الام وذلك لتبادل البيانات بينه وبين اللوحة الأم ، يتكون في الاصل من ملايين الترانزستورات المجموعة في شريحة صغيرة جدا من السليكون ، وهذه الشريحة تثبت من قبل المصنّع للمعالج على غلاف المعالج (القطعة المربعة ) او داخلها وذلك لايصالها بالابر التي تكون أسفل غلاف المعالج.
يتكون المعالج من عدد من الوحدات الرئيسية هي :
1- وحدة التحكم والسيطرة (cu=control unit) :وهي الوحدة المسؤولة عن التحكم بمسير البيانات داخل المعالج وتنسيق تبادلها بين أجزاء المعالج الداخلية ، طبعا هذه الوحدة هي المتحكمة في عمل المعالج ، لذلك فهي ضرورية الوجود في كل معالج ، كما أنها جزء لا يتجزأ من المعالج ولا يمكن تطويرها.
2- وحدة الاتصال بالناقل (bus interface unit) : وهي الوحدة التي تتحكم في نقل البيانات بين المعالج والاعضاء الاخرى المكونة للحاسوب ، وخاصة الذاكرة العشوائية ، أي أنها تنظم مسير البيانات بين المعالج والأجزاء الأخرى للحاسب.
3- وحدة الحساب والمنطق (alu=arithmetic and logic unit) :
وتقسم الى قسمين :
أ - وحدة الأعداد الصحيحة : تقوم بمعالجة العمليات الحسابية التي تتكون من أعداد صحيحة لا تحتوي على فاصلة عشرية ، تستخدم هذه العمليات في التطبيقات الثنائية الابعاد مثل word ,powerpoint ومعظم البرامج التي نستخدمها ، أي أن هذه الوحدة تستخدم من قبل التطبيقات الثنائية الابعاد ، لذلك هي مهمة جدا لان معظم البرامج التي نستخدمها تعتمد على هذه الوحدة.
ب - وحدة الفاصلة العائمة (fpu=floating point unit) : تقوم بمعالجة العمليات الحسابية التي تحوي فاصلة عشرية ، تستخدم هذه الوحدة من قبل البرامج التي تعتمد على هذا النوع من العمليات الحسابية مثل الالعاب الثلاثية الابعاد وبرامج التصميم الهندسي مثل autocad ، أصبحت هذه الوحدة مهمة جدا في أيامنا هذه نظرا لان الالعاب الحديثة تعتمد في سرعتها على هذه الوحدة .
حديثا قامت الشركات المصنعة لبطاقات الشاشة بوضع مسرع يقوم بتخفيف الاعتماد على وحدة الفاصلة العائمة من قبل الالعاب الحديثة.
4- المسجلات : ذواكر صغيرة جدا وسريعة جدا ، توجد داخل المعالج وذلك لحفظ الارقام المراد معالجتها من قبل وحدة الحساب و المنطق ، حيث أنه لا يتم تنفيذ أي عملية في المعالج الا بحفظ معطياتها في المسجلات لحين تنفيذها. طبعا المسجلات ذواكر مؤقتة (ram) ، من النوع الستاتيكي (sram=static ram) ، وهذا هو السر في كونها سريعة جدا ، حيث أنها لا تحتاج الى معدل انعاش ( الانعاش هو اعادة تقوية الاشارة الكهربائية "التي هي البيانات" ، والا فإن الذاكرة ستفقد محتوياتها ، وهذه العملية تبطىء الذاكرة).
*طريقة عمل المعالج : المعالج حتى ينفذ الاوامر فانه يتبع خطوات لتنفيذ الاوامر ، هذه الخطوات هي :
1- يقوم المعالج بجلب الاوامر المراد تنفيذها والمخزنة في الذاكرة العشوائية ، تسمى هذه العملية fetch.
2- بعد أن جلب المعالج الاوامر فانه يقوم بتحديد البيانات اللازمة لتنفيذ هذه الاوامر وتسمى هذه العملية decode ، ثم يقوم المعالج بجلب البيانات المطلوبة.
3- يقوم المعالج بتنفيذ الاوامر execute ومن ثم ارسال نتائجها الى الذاكرة العشوائية.
طبعا سرعة المعالج لها أثر كبير في سرعة الحصول على نتائج التعليمات ، وتقاس سرعة المعالج بالميجاهيرتز (mhz=mega hertz) ، والمعالج له سرعتين :
أ - السرعة الداخلية (internal clock) : وهي سرعة تبادل البيانات داخل المعالج ، (أي عدد النبضات التي تستطيع أن تصدرها أي وحدة داخل المعالج) ، مثلا اذا كان هناك معالج سرعته الداخلية 500 ميغاهيرتز ذلك يعني أن جميع وحداته الداخلية ترددها (أي سرعتها) 500 ميغاهيرتز والتي تساوي 500000000 نبضة في الثانية الواحدة ، طبعا كلما زاد تردد المعالج الداخلي زادت كمية الاوامر التي المتبادلة داخل المعالج وبالتالي تنفيذ عمليات أكثر في الثانية الواحدة ، وذلك بالطبع سيزيد من سرعة الحاسب بشكل عام.
ب - السرعة الخارجية (external clock) : والتي تسمى system bus وهي سرعة تبادل البيانات بين المعالج وبين الساوث بردج ، فمثلا المعالج بينتيوم 3 سرعته الخارجية 133 ميغاهيرتز ذلك يعني انه يسري بينه وبين الساوث بردج 133000000 نبضة في الثانية على كل بت من الناقل ، دعني أشرح ذلك بطريقة أوضح ، الناقل بين المعالج و الساوث بردج يتكون من عدد من الخطوط النحاسية الدقيقة جدا (في جميع المعالجات الحديثة عددها 64) يسمى كل واحد منها "بت" ، وكل نبضة تسري في البت الواحد في الثانية الواحدة قادرة على نقل بت واحد من البيانات ، لذلك عندما نقول أن التردد الخارجي لمعالج = 133 ميغاهيرتز ذلك يعني أنه تسري 133000000 نبضة في كل بت في الثانية الواحدة ، فلو افترضنا أن عدد البتات = 64 فان كمية البيانات التي تسري بين المعالج والساوث بردج في الثانية= (133000000 * 64) / 8 = 1064000000 بايت وتساوي 1.064 جيجابايت في الثانية . الغرض من ذلك بيان أهمية السرعة الخارجية ، فكلما ازدادت زادت كمية الاوامر والبيانات التي تصل الى المعالج وبالتالي زادت من من فاعلية السرعة الداخلية للمعالج ، فلو أن معالج سرعته الداخلية سريعة جدا لكن السرعة الخارجية بطيئة فاننا لن نستطيع الاستفادة من السرعة الداخلية للمعالج بشكل كامل ، لأن كمية الاوامر والبيانات التي تصل الى المعالج أصلا قليلة والمعالج يستطيع تنفيذ أضعاف هذه الكمية .
طبعا سرعة المعالج الداخلية والخارجية ليست كل شىء ، لأنه كلما تقدم الزمن يضاف على المعالج بعض الميزات التي تزيد من سرعة المعالج دون الحاجة الى زيادة السرعة للمعالج ، بعض هذه الميزات :
1- التدرج الفائق (superscalar) : وهي كون المعالج يحوي أكثر من خط لتنفيذ العمليات ، فمثلا اذا وصل الى معالج يحتوي على خط معالجة واحد عمليتين في نفس الوقت سوف يقوم خط المعالجة بتنفيذ الاولى ثم بعد الانتهاء منها يقوم بتنفيذ الثانية ، لكن اذا وصلت هاتان العمليتان الى معالج يحوي خطي معالجة فاءن كل تعليمة يتم تنفيذها في خط معالجة في نفس الوقت وبذلك نحصل على النتائج بشكل أسرع.
2- تقسيم خطوط المعالجة الى مراحل (pipelining) : أي أن خط المعالجة يتم تقسيمه الى مراحل ، كل مرحلة تقوم بتفيذ جزء من العملية الى اتمام التنفيذ ، اليك المثال التالي للتوضيح : لنفرض أن هنالك معمل لصناعة الطاولات الخشبية ، وأن الطاولة تحتاج ال 4 خطوات لاتمامها ، وأن كل خطوة تتطلب 10 دقائق ، فلو أن هناك هناك عامل واحد في المعمل فانه سوف يستغرق 40 دقيقة لاتمام الطاولة ، ثم يبدأ بصنع طاولة أخرى ، أي أننا نحصل على طاولة واحدة من المعمل كل 40 دقيقة ، ولو افترضنا أن معمل اخر يقوم بصنع الطاولات نفسها لكن هذا المعمل يحتوي عل 4 عمال ، كل عامل يقوم بتنفيذ خطوة واحدة في صنع الطاولة ثم يعطيها للعامل الذي يليه ثم يستلم طاولة أخرى وبعد تنفيذ خطوة واحدة فيها بعد 10 دقائق يمررها الى زميله وهكذا ، ذلك يعني أنه كل 10 دقائق سوف نحصل على طاولة جديدة أي 4 طاولات كل 40 دقيقة بخلاف طاولة واحدة كل 40 دقيقة في المعمل الأول. يمكن تشبيه ذلك بما يحصل في المعالج ، حيث أن العامل هو المرحلة في خط المعالجة والطاولة هي التعليمة المراد تنفيذها .
طبعا هناك الكثير من الميزات التي أضيفت للمعالجات لكن تلك أهمها.
* طرق اتصال المعالج باللوحة الام : المعالج في الاصل شريحة صغيرة جدا "مساحتها بضعة مليمترات مربعة" من السليكون ، هذه الشريحة يتم تثبيتها على أحد نوعين من الاغلفة :
1- يتم تثبيتها على غلاف بلاستيكي مربع الشكل "وأحيانا تثبت داخله" ، يحوي هذا الغلاف في أسفله على ابر pins ، طبعا يتم وصل شريحة السليكون بهذه الابر التي تتصل من الاسفل بمقبس المعالج ، يسمى هذا النوع من المعالجات socket processor.
2- يتم تثبيت هذه الشريحة على لوح الكتروني طويل يشبه الكروت المختلفة ويتصل هذا اللوح بشق مخصص على اللوحة الام ويسمى هذا النوع من المعالجات slot processor.
حديثا المعالجات جميعا من النوع socket ولا يوجد slot .
قبل أن أنهي هذا الموضوع أحب أن ألمح الى أن هناك ذاكرة داخل المعالج تسمى الكاش ميموري cache memory ، هذه الذاكرة وظيفتها تقليل اعتماد المعالج على الذاكرة العشوائية لانها بطيئة ولا تناسب سرعة المعالج ، لذلك فان الكاش ميموري تخزن البيانات المستخدمة بشكل متكرر من قبل المعالج وهي التي تزود المعالج بها عندما يطلبها لانها سريعة جدا تناسب سرعة المعالج (بالمناسبة هي من نوع sram) .
وفي النهاية أذكر أن كل معالج يختلف في بنائه الداخلي عن الاخر ، وكلما صدر معالج جديد فانه سوف يحتوي على بعض الوحدات الثانوية التي تزيد من أداؤه ، فلو أحضرنا معالجين الاول بينتيوم3 والاخر بينتيوم 4 (والاثنان تقوم بصنعهما شركة انتل INTEL التي تشكل هي وشركة AMD أكبر شركتين في تصنيع المعالجات )وكان تردد كل منهما 1400 فان البينتيوم 4 سوف يعمل بأداء أعلى من البينتيوم3 بسبب اختلاف البنية الداخلية لكل منهما ، لذلك يجب الحذر من هذه المسألة عند شراء حاسب جديد
* المعالج : هو العقل المدبر للحاسوب ، يستقبل الاوامر ويعالجها ويعطينا نتائجها على شكل معلومات نستفيد منها ، من الناحية العتادية هو قطعة مربعة الشكل وخفيفة الوزن يخرج من أسفلها عدد من الابر (pins) التي تسمح للمعالج بالاتصال مع مقبس المعالج على اللوحة الام وذلك لتبادل البيانات بينه وبين اللوحة الأم ، يتكون في الاصل من ملايين الترانزستورات المجموعة في شريحة صغيرة جدا من السليكون ، وهذه الشريحة تثبت من قبل المصنّع للمعالج على غلاف المعالج (القطعة المربعة ) او داخلها وذلك لايصالها بالابر التي تكون أسفل غلاف المعالج.
يتكون المعالج من عدد من الوحدات الرئيسية هي :
1- وحدة التحكم والسيطرة (cu=control unit) :وهي الوحدة المسؤولة عن التحكم بمسير البيانات داخل المعالج وتنسيق تبادلها بين أجزاء المعالج الداخلية ، طبعا هذه الوحدة هي المتحكمة في عمل المعالج ، لذلك فهي ضرورية الوجود في كل معالج ، كما أنها جزء لا يتجزأ من المعالج ولا يمكن تطويرها.
2- وحدة الاتصال بالناقل (bus interface unit) : وهي الوحدة التي تتحكم في نقل البيانات بين المعالج والاعضاء الاخرى المكونة للحاسوب ، وخاصة الذاكرة العشوائية ، أي أنها تنظم مسير البيانات بين المعالج والأجزاء الأخرى للحاسب.
3- وحدة الحساب والمنطق (alu=arithmetic and logic unit) :
وتقسم الى قسمين :
أ - وحدة الأعداد الصحيحة : تقوم بمعالجة العمليات الحسابية التي تتكون من أعداد صحيحة لا تحتوي على فاصلة عشرية ، تستخدم هذه العمليات في التطبيقات الثنائية الابعاد مثل word ,powerpoint ومعظم البرامج التي نستخدمها ، أي أن هذه الوحدة تستخدم من قبل التطبيقات الثنائية الابعاد ، لذلك هي مهمة جدا لان معظم البرامج التي نستخدمها تعتمد على هذه الوحدة.
ب - وحدة الفاصلة العائمة (fpu=floating point unit) : تقوم بمعالجة العمليات الحسابية التي تحوي فاصلة عشرية ، تستخدم هذه الوحدة من قبل البرامج التي تعتمد على هذا النوع من العمليات الحسابية مثل الالعاب الثلاثية الابعاد وبرامج التصميم الهندسي مثل autocad ، أصبحت هذه الوحدة مهمة جدا في أيامنا هذه نظرا لان الالعاب الحديثة تعتمد في سرعتها على هذه الوحدة .
حديثا قامت الشركات المصنعة لبطاقات الشاشة بوضع مسرع يقوم بتخفيف الاعتماد على وحدة الفاصلة العائمة من قبل الالعاب الحديثة.
4- المسجلات : ذواكر صغيرة جدا وسريعة جدا ، توجد داخل المعالج وذلك لحفظ الارقام المراد معالجتها من قبل وحدة الحساب و المنطق ، حيث أنه لا يتم تنفيذ أي عملية في المعالج الا بحفظ معطياتها في المسجلات لحين تنفيذها. طبعا المسجلات ذواكر مؤقتة (ram) ، من النوع الستاتيكي (sram=static ram) ، وهذا هو السر في كونها سريعة جدا ، حيث أنها لا تحتاج الى معدل انعاش ( الانعاش هو اعادة تقوية الاشارة الكهربائية "التي هي البيانات" ، والا فإن الذاكرة ستفقد محتوياتها ، وهذه العملية تبطىء الذاكرة).
*طريقة عمل المعالج : المعالج حتى ينفذ الاوامر فانه يتبع خطوات لتنفيذ الاوامر ، هذه الخطوات هي :
1- يقوم المعالج بجلب الاوامر المراد تنفيذها والمخزنة في الذاكرة العشوائية ، تسمى هذه العملية fetch.
2- بعد أن جلب المعالج الاوامر فانه يقوم بتحديد البيانات اللازمة لتنفيذ هذه الاوامر وتسمى هذه العملية decode ، ثم يقوم المعالج بجلب البيانات المطلوبة.
3- يقوم المعالج بتنفيذ الاوامر execute ومن ثم ارسال نتائجها الى الذاكرة العشوائية.
طبعا سرعة المعالج لها أثر كبير في سرعة الحصول على نتائج التعليمات ، وتقاس سرعة المعالج بالميجاهيرتز (mhz=mega hertz) ، والمعالج له سرعتين :
أ - السرعة الداخلية (internal clock) : وهي سرعة تبادل البيانات داخل المعالج ، (أي عدد النبضات التي تستطيع أن تصدرها أي وحدة داخل المعالج) ، مثلا اذا كان هناك معالج سرعته الداخلية 500 ميغاهيرتز ذلك يعني أن جميع وحداته الداخلية ترددها (أي سرعتها) 500 ميغاهيرتز والتي تساوي 500000000 نبضة في الثانية الواحدة ، طبعا كلما زاد تردد المعالج الداخلي زادت كمية الاوامر التي المتبادلة داخل المعالج وبالتالي تنفيذ عمليات أكثر في الثانية الواحدة ، وذلك بالطبع سيزيد من سرعة الحاسب بشكل عام.
ب - السرعة الخارجية (external clock) : والتي تسمى system bus وهي سرعة تبادل البيانات بين المعالج وبين الساوث بردج ، فمثلا المعالج بينتيوم 3 سرعته الخارجية 133 ميغاهيرتز ذلك يعني انه يسري بينه وبين الساوث بردج 133000000 نبضة في الثانية على كل بت من الناقل ، دعني أشرح ذلك بطريقة أوضح ، الناقل بين المعالج و الساوث بردج يتكون من عدد من الخطوط النحاسية الدقيقة جدا (في جميع المعالجات الحديثة عددها 64) يسمى كل واحد منها "بت" ، وكل نبضة تسري في البت الواحد في الثانية الواحدة قادرة على نقل بت واحد من البيانات ، لذلك عندما نقول أن التردد الخارجي لمعالج = 133 ميغاهيرتز ذلك يعني أنه تسري 133000000 نبضة في كل بت في الثانية الواحدة ، فلو افترضنا أن عدد البتات = 64 فان كمية البيانات التي تسري بين المعالج والساوث بردج في الثانية= (133000000 * 64) / 8 = 1064000000 بايت وتساوي 1.064 جيجابايت في الثانية . الغرض من ذلك بيان أهمية السرعة الخارجية ، فكلما ازدادت زادت كمية الاوامر والبيانات التي تصل الى المعالج وبالتالي زادت من من فاعلية السرعة الداخلية للمعالج ، فلو أن معالج سرعته الداخلية سريعة جدا لكن السرعة الخارجية بطيئة فاننا لن نستطيع الاستفادة من السرعة الداخلية للمعالج بشكل كامل ، لأن كمية الاوامر والبيانات التي تصل الى المعالج أصلا قليلة والمعالج يستطيع تنفيذ أضعاف هذه الكمية .
طبعا سرعة المعالج الداخلية والخارجية ليست كل شىء ، لأنه كلما تقدم الزمن يضاف على المعالج بعض الميزات التي تزيد من سرعة المعالج دون الحاجة الى زيادة السرعة للمعالج ، بعض هذه الميزات :
1- التدرج الفائق (superscalar) : وهي كون المعالج يحوي أكثر من خط لتنفيذ العمليات ، فمثلا اذا وصل الى معالج يحتوي على خط معالجة واحد عمليتين في نفس الوقت سوف يقوم خط المعالجة بتنفيذ الاولى ثم بعد الانتهاء منها يقوم بتنفيذ الثانية ، لكن اذا وصلت هاتان العمليتان الى معالج يحوي خطي معالجة فاءن كل تعليمة يتم تنفيذها في خط معالجة في نفس الوقت وبذلك نحصل على النتائج بشكل أسرع.
2- تقسيم خطوط المعالجة الى مراحل (pipelining) : أي أن خط المعالجة يتم تقسيمه الى مراحل ، كل مرحلة تقوم بتفيذ جزء من العملية الى اتمام التنفيذ ، اليك المثال التالي للتوضيح : لنفرض أن هنالك معمل لصناعة الطاولات الخشبية ، وأن الطاولة تحتاج ال 4 خطوات لاتمامها ، وأن كل خطوة تتطلب 10 دقائق ، فلو أن هناك هناك عامل واحد في المعمل فانه سوف يستغرق 40 دقيقة لاتمام الطاولة ، ثم يبدأ بصنع طاولة أخرى ، أي أننا نحصل على طاولة واحدة من المعمل كل 40 دقيقة ، ولو افترضنا أن معمل اخر يقوم بصنع الطاولات نفسها لكن هذا المعمل يحتوي عل 4 عمال ، كل عامل يقوم بتنفيذ خطوة واحدة في صنع الطاولة ثم يعطيها للعامل الذي يليه ثم يستلم طاولة أخرى وبعد تنفيذ خطوة واحدة فيها بعد 10 دقائق يمررها الى زميله وهكذا ، ذلك يعني أنه كل 10 دقائق سوف نحصل على طاولة جديدة أي 4 طاولات كل 40 دقيقة بخلاف طاولة واحدة كل 40 دقيقة في المعمل الأول. يمكن تشبيه ذلك بما يحصل في المعالج ، حيث أن العامل هو المرحلة في خط المعالجة والطاولة هي التعليمة المراد تنفيذها .
طبعا هناك الكثير من الميزات التي أضيفت للمعالجات لكن تلك أهمها.
* طرق اتصال المعالج باللوحة الام : المعالج في الاصل شريحة صغيرة جدا "مساحتها بضعة مليمترات مربعة" من السليكون ، هذه الشريحة يتم تثبيتها على أحد نوعين من الاغلفة :
1- يتم تثبيتها على غلاف بلاستيكي مربع الشكل "وأحيانا تثبت داخله" ، يحوي هذا الغلاف في أسفله على ابر pins ، طبعا يتم وصل شريحة السليكون بهذه الابر التي تتصل من الاسفل بمقبس المعالج ، يسمى هذا النوع من المعالجات socket processor.
2- يتم تثبيت هذه الشريحة على لوح الكتروني طويل يشبه الكروت المختلفة ويتصل هذا اللوح بشق مخصص على اللوحة الام ويسمى هذا النوع من المعالجات slot processor.
حديثا المعالجات جميعا من النوع socket ولا يوجد slot .
قبل أن أنهي هذا الموضوع أحب أن ألمح الى أن هناك ذاكرة داخل المعالج تسمى الكاش ميموري cache memory ، هذه الذاكرة وظيفتها تقليل اعتماد المعالج على الذاكرة العشوائية لانها بطيئة ولا تناسب سرعة المعالج ، لذلك فان الكاش ميموري تخزن البيانات المستخدمة بشكل متكرر من قبل المعالج وهي التي تزود المعالج بها عندما يطلبها لانها سريعة جدا تناسب سرعة المعالج (بالمناسبة هي من نوع sram) .
وفي النهاية أذكر أن كل معالج يختلف في بنائه الداخلي عن الاخر ، وكلما صدر معالج جديد فانه سوف يحتوي على بعض الوحدات الثانوية التي تزيد من أداؤه ، فلو أحضرنا معالجين الاول بينتيوم3 والاخر بينتيوم 4 (والاثنان تقوم بصنعهما شركة انتل INTEL التي تشكل هي وشركة AMD أكبر شركتين في تصنيع المعالجات )وكان تردد كل منهما 1400 فان البينتيوم 4 سوف يعمل بأداء أعلى من البينتيوم3 بسبب اختلاف البنية الداخلية لكل منهما ، لذلك يجب الحذر من هذه المسألة عند شراء حاسب جديد