كيف تعمل وحدة المعالجة المركزية بالفعل؟

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

  • قم بتجزئة المعلومات:

جميع أجهزة الكمبيوتر تعمل بنظام  الثنائي ” binary”. فهم لا يفهمون سوى كلمتين وهما : on و off ، ولإجراء الحسابات في الثنائي، فإنهم يستخدمون ما يسمى بالترانزستور والذي يسمح فقط بمرور التيار من خلاله إلى الصرف the drain وذلك إذا كان هناك تيار متصل بها عبر البوابة. وبشكل أساسي، يشكل هذا مفتاحًا ثنائيًا يعمل على قطع السلك بناءً على إشارة إدخال ثانية.

دليلك الشامل لتعلم البرمجة باحتراف

كما تستخدم أجهزة الكمبيوتر الحديثة مليارات الترانزستورات لإجراء العمليات الحسابية، ولكن في المستويات الأدنى، تحتاج فقط إلى عدد قليل من المكونات الأساسية، والمعروفة باسم البوابات gates.

  • البوابات المنطقية

تأخذ البوابات المنطقية مدخلين ثنائيين binary ، وتقوم بتنفيذ  إحدى العمليات عليها ، ثم تقوم بإرجاع المخرجات منها. فتقوم البوابة OR، على سبيل المثال، بإرجاع true إذا كان أي من المدخلات صحيحًا. كما تقوم البوابة AND بالتحقق مما إذا كانت المدخلات صحيحة، ويتحقق XOR فيما إذا كان أحد المدخلات صحيحة فقط، أما N-variants (NOR و NAND و XNOR) فهي إصدارات معكوسة من بواباتها الأساسية.

  • قم بممارسة بعض الرياضيات مع بوابات

يمكنك القيام بإضافة ثنائي binary الأساسية مع اثنين فقط من بوابات. حيث يُظهر هذا الرسم البياني أعلاه نصف أفعى، تم إنشاؤه باستخدام Logicly، وهو عبارة عن ملعب مجاني على الإنترنت للبوابات المنطقية. وسيتم تشغيل بوابة XOR هنا في حالة تشغيل أحد المدخلات فقط، ولكن ليس كليهما. كما سيتم تشغيل بوابة AND إذا كان كلا المدخلين قيد التشغيل، ولكن عليك بالبقاء في وضع إيقاف التشغيل إذا لم يكن هناك مدخلات. إذا كان كلاهما قيد التشغيل، فستظل XOR متوقفة عن التشغيل، وستتحول البوابة AND إلى الإجابة الصحيحة من بين اثنين:

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

كما تحتوي الإضافة الكاملة  The full adder على ثلاثة مدخلات – الرقمان المراد إضافتهما، و ” carry “. ويتم استخدام الحمل carry عندما يتجاوز الرقم النهائي ما يمكن تخزينه في واحد بايت. وسيتم ربط الأعداد الكاملة في سلسلة، ويتم تمرير الحمل  carry  من واحد إلى آخر. هذا بالإضافة إلى أنه ستتم إضافة الحمولة إلى نتيجة بوابة XOR في النصف الأول من الإضافة adder، وهناك بوابة OR إضافية للتعامل مع كلتا الحالتين عند الحاجة إلى ذلك.

وعندما يكون كل من المدخلات في وضع التشغيل، يتم تشغيل الحمل carry، وإرساله إلى المصنف الكامل التالي في السلسلة:

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

يمكن إجراء معظم العمليات الرياضية الأخرى مع إضافة؛ الضرب هو مجرد إضافة متكررة، ويمكن أن يتم الطرح مع بعض البايتس المنعكسة، كما أن القسمة هي مجرد تكرار الطرح. وعلى الرغم من أن جميع أجهزة الكمبيوتر الحديثة لديها حلول قائمة على الأجهزة لتسريع العمليات الأكثر تعقيدًا، فيمكنك إجراء ذلك تقنيًا باستخدام المصمّم الكامل أو الإضافة الكاملة the full adder.

  • ذاكرة الحاسوب

في الوقت الحالي، لا يعد جهاز الكمبيوتر لدينا سوى آلة حاسبة سيئة. هذا لأنه لا يتذكر أي شيء، أما عن مخرجاته المعروضة أعلاه فهي خلية ذاكرة، والتي يمكن أن تفعل كل ذلك. تحت غطاء محرك السيارة، فإنه يستخدم الكثير من بوابات NAND، وفي الواقع يمكن أن تكون مختلفة تماما اعتمادا على تقنية التخزين، ولكن وظيفتها هي نفسها.

كما يمكنك إعطائها بعض المدخلات، فعلى سبيل المثال  قم بتشغيل بت ” write”، وسيتم تخزين المدخلات داخل الخلية. فهذه ليست مجرد خلية ذاكرة، لأننا نحتاج أيضًا إلى طريقة لقراءة المعلومات منها. ويتم ذلك باستخدام أداة التمكين، وهي عبارة عن مجموعة من البوابات AND لكل بايت في الذاكرة، وكلها مرتبطة بإدخال آخر، وهو بايت “القراءة”. غالباً ما تسمى بتات الكتابة والقراءة “set” و “enable”.

هذه الحزمة الكاملة تكون مُختلفة في ما يُعرف بالسجل. وهذه السجلات متصلة بالحافلة the bus وهي عبارة عن حزمة من الأسلاك تعمل حول النظام بأكمله، وتكون متصلة بكل مكون. كما أن أجهزة الكمبيوتر الحديثة لديها حافلة أيضاً، على الرغم من أنها قد تكون لها حافلات متعددة لتحسين أداء المهام المتعددة.

كل سجل لا يزال لديه بايت الكتابة وبايت القراءة، ولكن في هذا الإعداد، فإن المدخلات والمخرجات هي الشيء نفسه. فهذا جيد بالفعل. فعلى سبيل المثال إذا أردت نسخ محتويات R1 إلى R2، فستقوم بتشغيل بايت للقراءة لـ R1، مما يؤدي إلى دفع محتويات R1 إلى الحافلة  the bus. وأثناء تشغيل بايت القراءة، يمكنك تشغيل بت الكتابة لـ R2، والذي سينسخ محتويات الناقل إلى R2.

ويتم استخدام السجلات أيضاً لجعل ذاكرة الوصول العشوائي RAM كذلك. كما أنه غالبًا ما يتم وضع ذاكرة الوصول العشوائي RAM  في شبكة، حيث يتم استخدام الأسلاك في اتجاهين:

تأخذ أجهزة فك التشفير مدخلات ثنائية binary أيضاً وتقوم بتشغيل الأسلاك المرقمة المقابلة. على سبيل المثال ، فيُعتبر رقم “11” هو 3 في ثنائي binary ، وهو أعلى رقم من 2 بايت، لذا يقوم مفكك التشفير بتشغيل أعلى سلك. حيث أنه في كل تقاطع، هناك سجل. وكل هذه الأشياء متصلة بالحافلة المركزية the central bus، ومدخل مركزي للقراءة والكتابة. وسوف يتم تشغيل كل من القراءة والكتابة فقط إذا كان السلكان اللذان يعبران عبر السجل قيد التشغيل أيضًا، مما يسمح لك على نحو فعال بتحديد السجل الذي تريد الكتابة منه وقراءته. ومرة أخرى، ذاكرة الوصول العشوائي الحديثة هي أكثر تعقيدا بكثير، ولكن هذا الإعداد لا يزال معمول به حتى الآن.

  • الساعة، والمحرك، وجهاز فك التشفير

من الجدير بالذكر أنه يتم استخدام التسجيلات في كل مكان، وهي الأداة الأساسية لنقل البيانات وتخزينها في وحدة المعالجة المركزية، وتُعد الساعة هي المكون الأول في قلب وحدة المعالجة المركزية (CPU)، ويتم قياسه باستخدام hertz أو دورات في الثانية cycles per second. فهذه هي السرعة التي تشاهدها إلى جانب وحدات المعالجة المركزية (CPUs)؛ كما أنه يمكن لشريحة 5 غيغا هرتز أن تؤدي 5 مليارات دورة في الثانية. فغالبًا ما تكون سرعة الساعة مقياسًا جيدًا جدًا لسرعة وحدة المعالجة المركزية.

تحتوي الساعة على ثلاث حالات مختلفة: وهي الساعة الأساسية وساعة التمكين والساعة المحددة. ويتم إطلاق مصطلح الساعة الأساسية على تشغيل on نصف cycle وإيقاف off  للنصف الآخر. كما يتم استخدام ساعة التمكين لتشغيل التسجيلات وسيتعين تشغيلها لفترة أطول للتأكد من تمكين البيانات. ويجب دائمًا تشغيل الساعة المحددة في نفس وقت تمكين الساعة ، وإلا سيتم كتابة بيانات غير صحيحة.

يتم توصيل الساعة بالمحرك، والتي سيتم احتسابها من خطوة واحدة إلى الحد الأقصى، وإعادة تعيينها مرة أخرى إلى واحدة عند الانتهاء. كما تتصل الساعة أيضًا بـبوابات AND لكل سجل تستطيع وحدة المعالجة المركزية الكتابة إليه:

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

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

زر الذهاب إلى الأعلى