أجزاء المعالج الداخلية

البنية التحتية للمعالجات

تتألف المعالجات من عدد كبير جداً من الترانزسترات ، فما هو عمل هذه الترانزسترات ؟ ومما يتكون ؟

إن المعالج يقوم مبدأ عمله على التعامل مع البيانات على شكل بتات وبايتات (راجع الموضوع "البت والبايت ومساحات التخزين") ، فالمعالج لا يفهم إلا لغة البتات على شكل واحدات وأصفار ، بالنسبة لك فإن البتات قد تعني لك في نهاية المطاف صورة أو رسالة أو ...أو... أما بالنسبة للمعالج فهي واحدات وأصفار .. كل بت يعتبره شحنة ويتعامل معه على أنه شحنة ينقلها ويخزنها هكذا .

وإذا نظرنا نظرة متعمقة في داخل المعالج ونظرنا لما يعمله المعالج نجد أنه إما يقوم بالعمليات الحسابية كالجمع والطرح ..إلخ أو يقوم بالعمليات المنطقية كالمقارنة بين الأعداد ، وفي كل الأحوال على المعالج أن يتخذ - بمساعدة التعليمات - القرارات الصحيحة ويقود دفة العمل على هذا الأساس ، فكيف يتخذ الحاسب القرارات ؟

إن هذا هو عمل الترانزسترات ، ولا تحسب أن ترنزستر واحد يستطيع أن يقوم باتخاذ القرارت بل إن هذه الترانزسترات موزعة في شكل مجموعات داخل المعالج لتقوم كل مجموعة منها بنوعية معينة من الأعمال ، فمثلاً أحد المجموعات مخصصة للمقارنة بين الأرقام و أخرى لاتخاذ القرارات في حالة معينة وهكذا ، وفي كل مجموعة تختلف عدد وطريقة تجمع الترانزسترات مما يؤثر على وظيفتها ، ويستطيع الحاسب باستخدام هذه المجموعات المختلفة بشكل مدروس ومنظم أن يقوم بكل العمل الذي يطلب منه .

إن كل "مجموعة" من هذه المجموعات تسمى "بوابة منطقية" وتختلف البوابات المنطقية بحسب الوظيفة التي تؤديها وعدد الترانزسترات التي تحتويها.

وتصنيع المعالج ماهو إلا وضع هذه المجموعات وربطها ببعضها بالشكل المطلوب ، إن "المجموعات" إذا تجمع عدد كبير منها لأداء وظيفة معينة تصبح ما نسميه "الـ آي سي" أو 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 فإن لم يجدها جلبها من الذاكرة العشوائية. إن حجم هذه الذاكرة وسرعتها شئ مهم جداً ولها تأثير كبير على أداء المعالج ونستعرض هنا كلا العاملين .
--------------------------------------------------------------------------------
حجم الذاكرة المخبئية

كانت معالجات 386 بدون ذاكرة مخبئية على الإطلاق أما في المعالجات الأحدث فهناك أكثر من ذاكرة مخبئية واحدة و يسمى كل منهما مستوى من الذاكرة :
ذاكرة المستوى الأول .
ذاكرة المستوى الثاني .
يوجد في بعض معالجات شركة AMD ذاكرة من المستوى الثالث أيضاً ، وتوجد على اللوحة الأم.

المعالج بنتيوم الثالث وفيه الذاكرة المخبئية

ذاكرة المستوى الأول
ذاكرة المستوى الثاني
ذاكرة المستوى الثالث

رمزها
L1
L2
L3

موقعها
داخل المعالج
داخل المعالج أو على اللوحة الأم
على اللوحة الأم

سرعتها
أسرع الجميع
وسط
الأبطأ

حجمها
صغيرة
وسط
كبيرة

المعالجات التي تحتوي هذه الذاكرة
جميع معالجات الجيل الرابع وما بعده
معالجات الجيل الخامس وما بعده ماعدا معالجات سيليرون الأصلية
معالجات AMD الحديثة فقط


وتلاحظ أن ذاكرة المستوى الأول كميتها أقل من ذاكرة المستوى الثاني وهذا راجع لأن ذاكرة المستوى الأول غالية الثمن جداً لأنها سريعة جداً حيث أنها تعطي المعالج البيانات التي يطلبها تقريباً بدون تأخير.

ويوجد في كل نوع من المعالجات كمية تختلف من كل مستوى ، وكلما كانت الذاكرة المخبئية أكبر كلما كان ذلك أفضل لأنها تتمكن بذلك من جعل المعالج لا يدخل في حالة الانتظار وتسهل له الحصول على البيانات الذي يريدها بأسرع وقت ممكن.

كما تعرف أن المعالج يستقبل بيانات وتعليمات ، في بعض المعالجات تنقسم الذاكرة المخبئية لقسمين واحدة تتخصص للبيانات وتتخصص الأخرى للتعليمات أما في بعض المعالجات الأخرى فلا يوجد هذا التقسيم بل تستخدم الذاكرة المخبئية لكليهما في نفس الوقت ، لا يوجد فرق حقيقي بين هاتين الطريقتين بالنسبة للأداء .