الجزء الثاني (CPU) كيف تعمل وحدة المعالجة المركزية

كيف تعمل وحدة المعالجة المركزية (CPU) – الجزء الثاني

هذا الموضوع هو الجزء الثاني من سلسلة كيف يعمل الحاسب لذلك يفضل مراجعة الجزء الأولقبل البدء به،كل المناهج العالمية التي تدرس بنية الحاسب و كيفية عمل المكونات تتطلب بمعرفة جيدة لمنهاج يدعى النظم المنطقية

وهو ما سأقوم بشرحه حاليا ولو بشكل مبسط،الإشارة المستمرة و الإشارة المتقطعة ،في العالم من حولنا يوجد العديد من المتغيرات و تمتاز هذه المتغيرات باستمراريتها، أما معنى الاستمرارية فهو بساطة استمرارها مع الزمن، فالحرارة على سبيل المثال ممكن أن تتغير أو تبقى ثابتة مع الزمن و لكنها مستمرة معه كما يوضح الشكل التالي و الذي يعبر عن تغير درجات الحرارة خلال ال24 ساعة:

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

أما كلمة بشكل رقمي فيجب التفريق بين مصطلحي التشابهي و الرقمي. الإشارة التشابهية هي أي متحول فيزيائي موجود من حولنا “الحرارة، الرطوبة، الطول، التيار الكهربائي، السرعة …” حيث يكون له قيمة معينة خلال لحظة زمنية معينة
الإشارة الرقمية هي تحويل لإشارة تشابهية ما بحيث يمكن إدخالها إلى معالج رقمي لتتم معالجتها بعد أن يتم تقطيعها و تحويل قيمها إلى الشكل الرقمي
مثال بسيط يوضح فكرة الإشارة الرقمية و التشابهية

هذا الصورة تمثل و بشكل بسيط كيفية تحويل الإشارة الرقمية المخزنة في القرص المضغوط إلى إشارة تشابهية عن طريق محول تشابهي رقمي Digital to analog converter ثم تتم تهيئة الإشارة التشابهية عن طريق مضخم Amplifier و ثم تحول إلى إشارة صوتية عن طريق المجهر Speaker.توصيف الأعداد الثنائية فيزيائياً
لقد عرفنا أننا نقوم باستعمال الأعداد الثنائية في الحاسب و عرفنا أيضا أن هذه الأعداد الثنائية تعبر عن حالة مرور التيار الكهربائي في دارة معينة وهذا الكلام بشكل نظري أما عمليا يتم التعبير عن 0 و 1 من خلال مجال معين “وليس قيمة واحدة” و غالبا ما يتوسط هذا المجال منطقة غير معرفة .

في الحاسب الشخصي غالبا ما يمثل 1 بجهد كهربائي بين (5 و 3.3)فولت و ال0 بجهد كهربائي بين (2 و 0) فولت والمنطقة بين (3.3 و 2)فولت تعتبرمنطقة غير معرفة “لا يمكن معرفة القيمة التي سيفهمها الحاسب هل هي 1 أم 0”.نبضات الساعة Clock pluses:
في جميع الأنظمة الإلكترونية نحتاج إلى من يضبط إيقاع عملها وهذه هي مهمة الClock “هل تفكر بشيء يدعى OverClock!.

مهمة هذه النبضات أن تؤمّن التزامن بين أجزاء الحاسب كافة و غالبا ما يكون هناك تردد أساسي في الحاسب لنبضات الساعة و يتم الحصول على ترددات عمل أجزاء الحاسب الأخرى من خلال مضاعفته أو تجزيئه فعلى سبيل المثال الحاسب الذي أملكه فتردد مولد نبضات الساعة لدي بشكل إفتراضي هو 200Mhz
يتم الحصول على تردد المعالج منه عن طريق مضاعفته 14 مرة أي 14 * 200MHz = 2800MHz
يتم الحصول على تردد الذواكر منه عن طريق مضاعفته مرتان فقط أي 2 * 400MHz = 800MT/s
طبعا من المعروف أن تردد ذواكر ال DDR الحقيقي يكون نصف ما يذكر عليها “وهو التردد الفعلي”جبهات نبضات الساعة :
تتألف كل نبضة ساعة من جبهتين الأولى صاعدة من 0 إلى 1 و الثانية هابطة من 1 إلى 0 أي أن كل نبضة تحوي على جبهتين.

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

الأولى بشكل تسلسلي “الشكل الأول” وهو أن يتم نقل البايت الواحد على شكل قطار من النبضات (1 أو 0 حسب البايت المنقول) من طرف إلى أخر من خلال سلك نقل وحيد “على الأقل” و كمثال عليه منفذ الCOM  في الحاسب أو منفذ الUSB ، و تتميز هذه الطريقة بقلة عدد خطوط نقل الإشارة و ممانعتها الكبيرة للتشويش الخارجي لذلك تستخدم بكثرة في إتصال الحاسب مع العالم الخارجي و يعيبها أنها أبطأ من الطريقة الثانية،الثانية بشكل تفرعي حيث يتم استخدام عدد كبير من خطوط نقل البيانات و تساوي أقل عدد بتات يجب أن تنقل دفعة واحدة فمثلا 8 للبايت و 16 للكلمة الرقمية وهكذا و يتم نقل البايت “مثلا” دفعة واحدة و تتميز بسرعتها و لكنها تكون معرضة بشكل كبير للتشويش الداخلي “بين خطوط النقل بعضها ببعض” و التشويش الخارجي لذلك غالبا ما تستخدم لنقل البيانات بين أجزاء الحاسب الداخلية “بين المعالج و الذاكرة مثلا”الدارات الرقمية الأساسية ،سأقوم بذكر أهم الدارات الرقمية المتواجدة حاليا و التي تعد حجر الأساس للمعالج و سأتحدث عن وظيفتها فقط حاليا أما لاحقا سأقوم بشرح تكوينها الداخلي في مواضيع لاحقة إن إقتضى الأمر.

المقارن Comparator،يتضح من اسم هذه الدارة أنا تستقبل عددان ثنائيان بنفس الطول A & B “متساويان بعدد البتات” و تضع قيمة 1 منطقي على أحد مخارجها
التي هي A>B A
الجامع Adder،وهي دارة تقوم بجمع عددين ثنائيين بنفس الطول A & B و تضع قيمة الجمع على خرجها و تقبل أن يكون هناك حمل من عملية سابقة و من الممكن تعطي حمل لعملية لاحقة،أما عملية الطرح فهي تحول إلى عملية جمع وتنفذ على هذه الدارة أيضا كما سيتضح معنا لاحقا.المشفر Encoder و فاك الشيفرة Decoder،مهمة المشفر و فاك السفرة بعكس بعضهما البعض “طبعا واشح من الاسم” ،مهمة المشفر هي تحويل قيمة معينة من دخله إلى قيمة ثنائية تماثل هذه القيمة.كما في الصورة يستخدم المشفر لإعطاء العدد الثنائي المقابل للمفتاح الذي تم ضغطه من لوحة المفاتيح. مهمة فاك الشيفرة هي تحويل عدد ثنائي إلى شكل أخر “قيمة عشرية مثلا أو حرف ” حسب تسمية مخارجه و نوعها

توضح هذه الصورة فاك تشفير يسمى Binary to 7-Segment Decoder و مهمته تحويل رقم ثنائي بين 0 و 9 إلى صيغة معينة تسمح بإظهار الرقم على الشاشة سباعية القطع “غالبا ما نراها في لوحات المصاعد”.الناخب Multiplexer و الموزع  De-multiplexer
مهمة الناخب هي يصل أحد مداخله المتعددة إلى خرجه الوحيد اعتمادا على القيمة الموجودة على مداخل التحكم. مهمة الموزع هي مدخله الوحيد إلى أحد مخارجه المتعددة اعتمادا على القيمة الموجودة على مداخل التحكم.

يوضح هذا المثال كيفية استخدام الناخب و الموزع لنقل عدة بيانات على خط و حيد و هنا تبرز أهمية الساعة التي تتحكم بعمل كل منهما “ولو بشكل غير مباشر” فلو كان كل جزء يعمل بسرعة مختلفة عن الأخر لأصبح من المستحيل الفصل بين الإشارات المستقبلة،و تستخدم هذه الدارات بشكل كبير في أجزاء الربط بين المعالج و الذاكرة على سبيل المثالالعدادات Counters
تستخدم هذه الدارات لتشكيل قيم على خرجها “غالبا متتالية” مقابل كل نبضة ساعة تصلها

المسجلات Register
المسجلات تقسم إلى العديد من الأنواع حسب طريقة دخول البيانات إليها و خروجها و هي عبارة عن حجرات ذاكرية تحتفظ بقيمتها ما دامت مغذاه “غالبا” وهي
-مسجلات تسلسلية تسلسلية مع إزاحة إلى اليمين أو اليسار
2-مسجلات تفرعية تسلسلية
3-مسجلات تسلسلية تفرعية
4-مسجلات تفرعية تفرعية
5-مسجلات الإلتفات إلى اليمين أو اليسار
حيث يعبر نوع نقل البيانات الأول على طريقة إدخال القيمة للمسجل و تعبر نوع نقل البيانات الثاني عن طريقة إخراج الملفات من المسجل،و سنتعرف على استخدامات العديد منها لاحقا يكفي أن تعرف أن مسجلات الإلتفات تفيد كثيرا في عمليات الضرب و القسمة
هذه الصورة تمثل مسجل من النوع التسلسلي وكيفية إدخال المعلومات فيهنظرة أعمق إلى نظام العد الثنائي

سأقوم بإضافة بعض الأمثلة والمعلومات الإضافية عن النظام الثنائيالتحويل من الثنائي إلى العشري :
كما تحدثنا من قبل أن كل خانة من الأعداد الثنائية لها وزن يعبر عنه بالأساس 2 مرفوع إلى موقع الخانة،عند التحويل نقوم بضرب قيمة الخانة الثنائية (1 أو 0) بوزن الخانة كما يوضح المثال التالي:

نقوم بكتابة أوزان الخانات “السطر الأحمر”،نقوم بكتابة قيمة الأوزان بشكل رقم صحيح عوضا عن أس و أساس “ليست شرطا”،نتكب قيمة الخانة الثنائية حسب موقعها ثم نقوم بعملية الضرب،نجمع نواتج الضرب و نحصل بذلك على الرقم العشري المقابل للرقم الثنائيالتحويل من العشري إلى الثنائي:
هناك طريقتين واحدة طويلة و لكنها عامة “تصلح لأي نظام عد كان” و لن أشرحها هنا أما الثانية فهي البسيطة و القصيرة وهي المفضلة غالبا،تعتمد الطريقة على حفظ الأوزان الثنائية (1 2 4 8 16 32 64 128 256 512 1024 2048) حيث أن كل خانة هل ضعف سابقتها.

الأن لنأخذ مثلا الرقم 49:
نكتب الخانات الثنائية بحيث أن تكون أخر خانة أكبر من العدد المطلوب تحويله 1 2 4 8 16 32 64
نبحث عن أكبر خانة ثنائية بحيث تكون أصغر أو تساوي 49 فنجد أنها 32 ،نقوم بعملية الطرح 49-32 فيكون الناتج 17 نبحث عن أكبر خانة ثنائية بحيث تكون أصغر أو تساوي 17 فنجد أنها 16،نقوم بعملية الطرح 17-16 فيكون الناتج1 نبحث عن أكبر خانة ثنائية بحيث تكون أصغر أو تساوي 1 فنجد أنها 1،نقوم بعملية الطرح 1-1 فيكون الناتج 0 و عندها نتوقف،الأن نضع الرقم 1 أسفل كل خانة ثنائية تم استخدامها أي أسفل ال32 و 16 و 1 و أسفل بقية الخانات 0
1 2 4 8 16 32 64 ،1 0 0 0 1 1 0
و بهذا يكون تحويل 49 إلى ثنائي هو 110001العمليات الحسابية على الأعداد الثنائية
الجمع
نجمع كل خانة إلى الخانة المقابلة وفق الجدول التالي

حيث Sum هي ناتج الجمع و Carry هي الحمل للقيمة التالية “كما يحصل في عملية الجمع العشرية عندما يكون الناتج أكبر من 9″،مثال:

الطرح،تتم عملية الطرح كما الجدول التالي:

و من الممكن أن نحتاج إلى إستعارة 10b من الخانة الأكبر كما يوضح المثال التالي:

الضرب،القاعدة الأساسية في الضرب هي :

و عند ضرب عدد من الخانات نقوم بالعملية كما لو كنا نتعامل مع أعداد عشرية،مثال:

المتمم الأحادي و المتمم الثنائي،فكرة المتمم موجودة في جميع نظم العد وهي المتمم التي إذا جمعناها مع عدد الذي تم حسابه منه تعطنا قيمة معينة و هي إما عدد مؤلف من أخر رمز في نظام العد “المتمم الأحادي” أو المتمم الأحادي +1 و هو ما يسمى المتمم الثنائي.
ففي الأعداد العشرية يعطى المتمم الأحادي للعد 596 بالشكل التالي: 999-596=403 أما المتمم الثنائي يكون 404
أما في الأعداد الثنائية فالعملية أسهل “رغم أنها تتبع إلى نفس القاعدة” ،فالعدد 1101010 متممه الأحادي هو 0010101 و متممه الثنائي هو 0010110
إذ أننا نبدل كل 1 ب 0 و كل 0 ب 1 و ذلك للحصول هعلى المتمم الأحادي و عند جمع الرقم 1 نحصل على المتمم الثنائي من المتمم الأحادي،فائدة المتتمات تظهر عند عملية الطرح ففي الحاسب يتم التعامل مع جميع الأرقام على أنها متممات ثنائية.
على فرض أن لدينا بايت . سيستطيع هذا البايت أن يتسع الأرقام من 00000000 حتى 11111111 و قد تم الإتفاق على أن جميع الأعداد من من 00000000 إلى 01111111 هي أعداد موجبة و أن جميع الأعداد من 10000000 إلى 11111111 على أنها أعداد سالبة هذا يجعل البايت الواحد يتسع إلى أعداد من -128 إلى 127 ،و سبب ذلك أنه تم الإتفاق على جعل أخر بت في كل بايت يحتوي على قيمة سالبة “وهو خانة 128″وهذا المثال يوضح كيفية تحويل من متمم ثنائي إلى عدد عشري مؤشر
العمليات على المتمم الثنائي “ما يحدث فعلا داخل المعالج”،على إعتبار أن كل ما يتعرف عليه الحاسب من أرقام تتم الحسابات عليها على أنها متمم ثنائي فيجب أن نعرف أنه يتعامل مع الجمع و الطرح على أنهما عملية واحدة و الأمثلة التالية توضح ذلك
(الحالة 1) نلاحظ في حالة جمع عددين موجبين لا يوجد أي مشكلة “جمع تقليدي”
(الحالة 2) نلاحظ في الحالة الثانية حولت عملية الطرح إلى جمع بعد أن تمت كتابة الرقمين على أنهما متمم ثنائي و كان الناتج أيضا متمم ثنائي
(الحالة 3) نلاحظ في الحالة الثالثة كيف أصبحت عملية الجمع بين عددين سالبين عملية جمع تقليدية و كان الناتج بشكل متمم ثنائي و لكن هنا يجدر ذكر أنه في حال كان هناك طفحان يتم إهماله و الطفحان هو تخطي الناتج عدد الخانات المخصصة للعملية،في بعض الأحيان ممكن أن يحصل ما يسمى بتغير خانة الإشارة وهذا يحدث عندما نجمع عددين موجبين و يكون الناتج سالب أو جمع عديين سالبين و يكون الناتج موجب كما في الصورة

أمثلة إضافية توضح كيف تحول عملية الجمع و الطرح إلى جمع فقط عند التعامل مع المتمم الثنائي

الأن أي شخص درس أي لغة برمجة سيعترض و بقوة و سيقول لي “متحولات الInteger و التي تحوي على قيم صحيحة بطول 1Byte يمكن أن تتسع إلى أرقام من 0إلى 255 و على حسب ما ذكرت سأحتاج إلى 2Byte كي يتسع إلى 255” و سيكون الجواب هنا يأتي دور لغة البرمجة إذ أن المعالج بالنسبة له كل ما يدور حوله يعتبر أرقام فقط و لن يفرق بين عدد موجب أو عدد سالب و لكنه زود ببعض الادوات التي تساعده على التعامل مع أي شيء فالمعالج يحتوي على ما يسمى مسجل الحالة إذ أن هذا المسجل يحتوي يعلم البرنامج المنفذ عن حدوث حالة معينة في المعالج قد حدثت حتى يستطيع البرنامج فهم سبب الجواب الغريب و يخرجه للمستخدم بشكل صحيح ،عادة ما يكون طول هذا المسجل بايت و لكنه الأن ليس حديثنا ما يهمنا أن نعرفه أنه يحوي على ما يسمى Negative flag و Overflow Flag و الكل بت من هذا المسجل يسمى Flag
سأخذ الأن كما يسمى سيناريو و اسقطه على المعالج و نرى كيف يقوم البرنامج بفهم ما يحدث من خلال مسجل الحالة،لنفترض أني قمت بالعملية التالية01000000 (64+)،+ 01000001 (65+)
————-
10000001 (-127)الأن ما سيحدث هو في حال كان المتحول أثناء كتابة البرنامج معرف على أنه Integer فلن ينظر إلى الNegative flag و الذي يحدد إن كان الناتج سالب “تصبح قيمته 1 عندما يكون ناتج العملية سالب” و يتم التعامل مع الناتج على أنه عدد ثنائي عادي و ليس متمم ثنائي وهذه العمليات هي من إختصاص لغة البرمجة

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

اقرأ ايضا:

كيف تعمل وحدة المعالجة المركزية (CPU) – الجزء الأول

  1. الله يكرمك و يباركلك

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: