HTG يوضح كيف تعمل وحدة المعالجة المركزية بالفعل؟
معظم الأشياء الموجودة في الحاسوب بسيطة نسبياً لفهمها: تعمل ذاكرة الوصول العشوائي ، والتخزين ، والأجهزة الطرفية ، والبرمجيات معاً لصنع وظيفة كمبيوتر. لكن قلب نظامك ، وحدة المعالجة المركزية ، يبدو مثل السحر حتى بالنسبة للعديد من الأشخاص التقنيين. هنا ، سنبذل قصارى جهدنا لكسرها.
معظم الأبحاث لهذا المقال مأخوذة من كتاب "لكن كيف تعرف؟" بقلم ج. كلارك سكوت. إنها قراءة رائعة ، تذهب إلى عمق أكبر بكثير من هذه المقالة ، وهي تستحق الثنائي على الأمازون.
ملاحظة واحدة قبل أن نبدأ: وحدات المعالجة المركزية الحديثة هي أوامر من حجم أكثر تعقيدا مما نحن الخطوط العريضة هنا. يكاد يكون من المستحيل على شخص واحد أن يفهم كل فارق بسيط من الرقاقة مع أكثر من مليار ترانزستور. ومع ذلك ، فإن المبادئ الأساسية لكيفية تلائمها معًا تبقى كما هي ، وسيتيح لك فهم الأساسيات فهمًا أفضل للأنظمة الحديثة.
بدء صغير
أجهزة الكمبيوتر تعمل في ثنائي. فهم لا يفهمون سوى حالتين: داخل وخارج. لإجراء الحسابات في ثنائي ، فإنها تستخدم ما يسمى الترانزستور. يسمح الترانزستور فقط بمرور التيار من خلاله إلى الصرف إذا كان هناك تيار عبر البوابة. وبشكل أساسي ، يشكل هذا مفتاحًا ثنائيًا يعمل على قطع السلك اعتمادًا على إشارة إدخال ثانية.
تستخدم أجهزة الكمبيوتر الحديثة مليارات الترانزستورات لإجراء العمليات الحسابية ، ولكن في المستويات الدنيا ، تحتاج فقط إلى عدد قليل من المكونات الأساسية ، المعروفة باسم البوابات.
بوابات المنطق، بوابات منطقية
كومة الترانزستورات قليلة بشكل صحيح ، ولديك ما يعرف باسم بوابة المنطق. تأخذ البوابات المنطقية مدخلين ثنائيين ، وتنفذ عملية عليها ، وترجع مخرجًا. تقوم البوابة OR ، على سبيل المثال ، بإرجاع true إذا كان أي من المدخلات صحيحًا. تقوم البوابة AND بالتحقق مما إذا كانت كلتا المدخلات صحيحة ، يتحقق XOR إذا كان أحد المدخلات صحيحًا فقط ، أما N-variants (NOR و NAND و XNOR) فهي إصدارات معكوسة من بواباتها الأساسية.
ممارسة الرياضيات مع بوابات
مع اثنين من بوابات يمكنك القيام بإضافة ثنائي الأساسية. يوضح هذا الرسم البياني أعلاه نصف الأقران ، تم إنشاؤه باستخدام Logicly ، وهو عبارة عن ملعب مجاني على الإنترنت للبوابات المنطقية. سيتم تشغيل بوابة XOR هنا في حالة تشغيل أحد المدخلات فقط ، ولكن ليس كليهما. سيتم تشغيل البوابة AND إذا كان كلا المدخلين قيد التشغيل ، ولكن ابق في وضع إيقاف التشغيل إذا لم يكن هناك إدخال. لذلك إذا كان كلاهما قيد التشغيل ، فستظل XOR متوقفة عن التشغيل ، وستتحول البوابة AND ، لتصل إلى الإجابة الصحيحة من اثنين:
هذا يعطينا إعدادًا بسيطًا مع ثلاثة نواتج مميزة: صفر ، واحد ، واثنان. ولكن لا يمكن لأحد بتخزين أي شيء أعلى من 1 ، وهذا الجهاز ليس مفيدا للغاية لأنه لا يحل سوى واحدة من أبسط المشاكل الرياضية الممكنة. ولكن هذه ليست سوى نصف أفعى ، وإذا قمت بتوصيل اثنين منهم بمدخلات أخرى ، فستحصل على مقدم كامل:
يحتوي المصور الكامل على ثلاثة مدخلات - الرقمان المراد إضافتهما ، و "حمل". يتم استخدام الحمل عندما يتجاوز الرقم النهائي ما يمكن تخزينه في بتة واحدة. سيتم ربط الأقران الكاملة في سلسلة ، ويتم تمرير الحمل من واحد إلى آخر. تتم إضافة الحمولة إلى نتيجة بوابة XOR في النصف الأول من الصفحة ، وهناك بوابة OR إضافية للتعامل مع كلتا الحالتين عندما يكون من الضروري أن يكون هناك.
عندما يكون كلا المدخلين في وضع التشغيل ، يتم تشغيل الحمل ، ويرسله إلى المصنف الكامل التالي في السلسلة:
وهذا حول معقدة كما يحصل بالإضافة. الانتقال إلى المزيد من البتات يعني بشكل أساسي مجرد المزيد من الإضافة الكاملة في سلسلة أطول.
يمكن إجراء معظم العمليات الرياضية الأخرى مع إضافة؛ الضرب هو مجرد تكرار مكرر ، يمكن أن يتم الطرح مع بعض انعكاس بت الهوى ، والتقسيم هو مجرد تكرار الطرح. وعلى الرغم من أن جميع أجهزة الكمبيوتر الحديثة لديها حلول قائمة على الأجهزة لتسريع العمليات الأكثر تعقيدًا ، يمكنك إجراء ذلك تقنيًا بالكامل باستخدام المصمّم الكامل.
الحافلة والذاكرة
في الوقت الحالي ، لا يعد جهاز الكمبيوتر لدينا سوى آلة حاسبة سيئة. هذا لأنه لا يستطيع تذكر أي شيء ، ولا يفعل أي شيء بمخرجاته. المعروضة أعلاه هي خلية ذاكرة ، والتي يمكن أن تفعل كل ذلك. تحت غطاء محرك السيارة ، فإنه يستخدم الكثير من بوابات NAND ، وفي الواقع يمكن أن يكون مختلفًا تمامًا وفقًا لتقنية التخزين ، ولكن وظيفته هي نفسها. يمكنك إعطائها بعض المدخلات ، قم بتشغيل بت "الكتابة" ، وسوف تقوم بتخزين المدخلات داخل الخلية. هذه ليست مجرد خلية ذاكرة ، لأننا نحتاج أيضًا إلى طريقة لقراءة المعلومات منها. يتم ذلك باستخدام أداة التمكين ، وهي عبارة عن مجموعة من البوابات AND لكل بت في الذاكرة ، وكلها مرتبطة بإدخال آخر ، بت "القراءة". غالباً ما تسمى بتات الكتابة والقراءة "set" و "enable" (تمكين).
هذه الحزمة كلها ملفوفة في ما يعرف باسم السجل. هذه السجلات متصلة بالحافلة ، وهي عبارة عن حزمة من الأسلاك تعمل حول النظام بأكمله ، ومتصلة بكل مكون. حتى أجهزة الكمبيوتر الحديثة لديها حافلة ، على الرغم من أنها قد يكون لها حافلات متعددة لتحسين أداء المهام المتعددة.
كل سجل لا يزال يحتوي على كتابة وقراءة بت ، ولكن في هذا الإعداد ، فإن المدخلات والمخرجات هي الشيء نفسه. هذا جيد بالفعل. فمثلا. إذا أردت نسخ محتويات R1 إلى R2 ، فستقوم بتشغيل بت للقراءة لـ R1 ، مما يؤدي إلى دفع محتويات R1 إلى الحافلة. أثناء تشغيل قراءة البت ، يمكنك تشغيل بت الكتابة لـ R2 ، والذي سينسخ محتويات الناقل إلى R2.
وتستخدم السجلات لجعل ذاكرة الوصول العشوائي كذلك. غالبًا ما يتم وضع ذاكرة الوصول العشوائي في شبكة ، حيث يتم استخدام الأسلاك في اتجاهين:
تأخذ أجهزة فك التشفير مدخلات ثنائية وتقوم بتشغيل الأسلاك المرقمة المقابلة. على سبيل المثال ، "11" هي 3 في ثنائي ، وهو أعلى رقم من 2 بت ، لذا يقوم مفكك التشفير بتشغيل أعلى سلك. في كل تقاطع ، هناك سجل. كل هذه الأشياء متصلة بالحافلة المركزية ، ومدخل مركزي للقراءة والكتابة. سوف يتم تشغيل كل من القراءة والكتابة فقط إذا كان السلكان اللذان يعبران عبر السجل قيد التشغيل أيضًا ، مما يسمح لك بفعالية بتحديد السجل الذي ترغب في كتابته وقراءته. مرة أخرى ، ذاكرة الوصول العشوائي الحديثة هي أكثر تعقيدا بكثير ، ولكن هذا الإعداد لا يزال يعمل.
الساعة ، السائر ، وفك
يتم استخدام التسجيلات في كل مكان وهي الأداة الأساسية لنقل البيانات وتخزينها في وحدة المعالجة المركزية. ما الذي يدفعهم إلى تحريك الأمور?
الساعة هي المكون الأول في قلب وحدة المعالجة المركزية (CPU) وسيتم إيقاف تشغيله وتشغيله في فترة زمنية محددة ، يتم قياسه باستخدام hertz ، أو دورات في الثانية. هذه هي السرعة التي تشاهدها إلى جانب وحدات المعالجة المركزية (CPUs) ؛ يمكن لشريحة 5 جيجا هرتز أن تؤدي 5 مليارات دورة في الثانية. غالبًا ما تكون سرعة الساعة مقياسًا جيدًا جدًا لسرعة وحدة المعالجة المركزية.
تحتوي الساعة على ثلاث حالات مختلفة: الساعة الأساسية وساعة التمكين والساعة المحددة. سوف تكون ساعة القاعدة أساسية لنصف دورة ، وإيقافها للنصف الآخر. يتم استخدام ساعة التمكين لتشغيل التسجيلات وسيتعين تشغيلها لفترة أطول للتأكد من تمكين البيانات. يجب دائمًا تشغيل الساعة المحددة في نفس وقت تمكين الساعة ، وإلا يمكن كتابة بيانات غير صحيحة.
يتم توصيل الساعة بالسائر ، والتي ستعتمد من خطوة واحدة إلى الحد الأقصى ، وإعادة تعيينها مرة أخرى إلى واحدة عند الانتهاء. تتصل الساعة أيضًا بـ AND بوابات لكل سجل يمكن أن تكتبه وحدة المعالجة المركزية إلى:
ترتبط هذه البوابات أيضًا بإخراج مكون آخر ، وحدة فك الترميز. يأخذ مفكك التشفير التعليمات مثل "SET R2 TO R1" ويفك تشفيرها إلى شيء يمكن أن تفهمه وحدة المعالجة المركزية. ولديها سجل داخلي خاص بها ، يسمى "سجل التعليمات" ، وهو المكان الذي يتم فيه تخزين العملية الحالية. كيف يعمل هذا بالضبط على النظام الذي تعمل عليه ، ولكن بمجرد فك ترميزه ، سيتم تشغيله على المجموعة الصحيحة وتمكين البتات للسجلات الصحيحة ، والتي ستطلق حسب الساعة.
يتم تخزين تعليمات البرنامج في ذاكرة الوصول العشوائي (أو ذاكرة التخزين المؤقت L1 على الأنظمة الحديثة ، أقرب إلى وحدة المعالجة المركزية). نظرًا لتخزين بيانات البرنامج في سجلات ، تمامًا مثل أي متغير آخر ، يمكن التلاعب بها على الطاير للقفز حول البرنامج. هذه هي الطريقة التي تحصل بها البرامج على هيكلها ، مع الحلقات وإذا كانت البيانات. يعين تعليمة قفزة الموقع الحالي في الذاكرة التي يقرأها مفكك تشفير التعليمات من موقع مختلف.
كيف يأتي كل ذلك معا
الآن ، اكتمل تبسيطنا الكلي في كيفية عمل وحدة المعالجة المركزية. الحافلة الرئيسية تمتد على النظام بأكمله وتصل إلى جميع السجلات. يتم تعبئة الأعداد الكاملة ، جنبا إلى جنب مع مجموعة من العمليات الأخرى ، في وحدة الحساب المنطقي ، أو ALU. وستكون لوحدة ALU هذه متصلة بالناقل ، وستكون لها أيضًا سجلات خاصة بها لتخزين الرقم الثاني الذي تعمل فيه.
لإجراء عملية حسابية ، يتم تحميل بيانات البرنامج من ذاكرة الوصول العشوائي للنظام إلى قسم التحكم. يقرأ قسم التحكم رقمين من ذاكرة الوصول العشوائي (RAM) ، ويقوم بتحميل أول رقم في سجل تعليمات وحدة التشغيل ALU ، ثم يقوم بتحميل الرقم الثاني في الحافلة. في هذه الأثناء ، يرسل ALU رمز تعليمات يخبره بما يجب القيام به. تقوم ALU بإجراء جميع العمليات الحسابية وتخزين النتائج في سجل مختلف ، والتي يمكن أن تقرأها وحدة المعالجة المركزية ثم متابعة العملية.
ائتمان الصورة: Rost9 / Shutterstock