المدرب: في هذا الدرس،
سنغطي ميزات وحدة المعالجة المركزية.
يتضمن ذلك أشياء مثل تعدد العمليات،
والمعالجة المتعددة المتماثلة،
ونواة واحدة مقابل نواة متعددة، ودعم المحاكاة الافتراضية.
الآن، أول شيء سنغطيه
يُعرف باسم تعدد الخيوط، ويشار إليه أيضًا باسم SMT أو تعدد الخيوط
المتزامن أو خيوط المعالجة الفائقة، اعتمادًا على وحدة المعالجة
المركزية التي تشتريها.
يعد Hyper-threading مصطلحًا تستخدمه
شركة Intel لهذه العملية.
والمصطلح الأكثر عمومية هو SMT، أو مؤشرات
الترابط المتعددة المتزامنة.
الآن، عندما تتعامل مع الترابط،
هذا هو مفهوم دفق واحد من التعليمات التي يتم
إرسالها بواسطة تطبيق برمجي إلى المعالج.
الآن، تم تصميم معظم التطبيقات لتشغيل عملية واحدة في
سلسلة رسائل واحدة.
وهذا يعني أن هذا البرنامج يفعل كل
شيء بطريقة تسلسلية.
لذا، إذا أعطيتك تعليمات بخمسة
أشياء مختلفة للقيام بها، فسوف
تفعل هذه الأشياء بالترتيب، واحد،
اثنان، ثلاثة، أربعة، وخمسة.
وإذا استغرقت كل واحدة منها 10 دقائق،
فسيكون المجموع 50 دقيقة.
ولكن إذا كان بإمكاني السماح لك بإجراء تعدد العمليات والقيام
بتلك الأشياء خارج الترتيب أو
القيام بها في نفس الوقت، فيمكنك بعد ذلك القيام
بأكثر من شيء واحد في نفس الوقت عن طريق إرسال هذه الأشياء إلى سلاسل
رسائل مختلفة أو تدفقات مختلفة.
على سبيل المثال، لنفترض أنني أخبرتك
أنني أريدك أن تكتب شيئًا
ما بيدك اليمنى، وفي
الوقت نفسه، أردتك أن تنقر على المكتب بيدك
اليسرى.
يمكنك القيام بكلا الأمرين
في نفس الوقت، لأن لديك خيطين،
أو يدان للقيام بهذه الإجراءات.
هذه هي فكرة تعدد الخيوط.
وهكذا، فإن ما فعلته إنتل والشركات المصنعة
الأخرى هو تطوير طريقة للسماح للبرامج
بالتحدث إلى معالجاتها وتشغيل
عدة سلاسل متوازية في نفس الوقت داخل
هذا المعالج الفردي.
يسمح هذا بتشغيل هذه الخيوط من
خلال هذا المعالج وتقليل مقدار الوقت، ووقت الخمول،
الذي تجلس فيه وحدة المعالجة المركزية هناك
في انتظار الإجراء التالي.
من خلال القيام بذلك، يمكننا بشكل أساسي
محاولة زيادة قدرتنا والحصول
على المزيد من الأشياء من
خلال المعالج ومحاولة إنجاز المزيد من الأشياء
خلال نفس القدر من الوقت.
الآن، هذا رائع، ولكنه يعمل فقط إلى نقطة معينة،
ويجب أن يكون البرنامج قادرًا على استخدام
ذلك وفهم ذلك حتى يتمكن من إخبار النظام أنك
تريد استخدام عدة سلاسل رسائل في نفس الوقت.
هذا هو القيد الكبير عندما
تتعامل مع شيء مثل خيوط المعالجة المتعددة.
الآن، هناك طريقة أخرى لتجاوز
ذلك وهي ما يُعرف بإجراء المعالجة المتعددة المتماثلة، أو SMP.
الآن، SMP هي الطريقة التقليدية التي
تقوم بها محطات العمل والخوادم
بذلك، لأنها تحتوي بالفعل على معالجات متعددة.
الآن، للقيام بذلك، يجب أن يكون لديك
لوحة أم تحتوي على مقبسين للمعالج أو أربعة مقابس للمعالج، ثم
تقوم بتثبيت معالجين أو أربعة معالجات في
تلك اللوحة الأم.
عند القيام بذلك، يجب أن تكون جميع هذه المعالجات
من نفس النوع والسرعة حتى تتمكن
من العمل معًا.
ويجب أن يفهم نظام التشغيل الأساسي الخاص بك كيفية
استخدام أكثر من معالج واحد.
بشكل افتراضي، لم تفعل معظم أنظمة التشغيل ذلك.
ولذا، كان عليك أن يكون لديك نظام تشغيل قائم
على الخادم مثل Windows Server 2019، لتتمكن
من دعم معالجات متعددة.
ولهذا السبب، لم تكن SMP أو المعالجة المتعددة المتماثلة مفيدة
جدًا في أجهزة الكمبيوتر المكتبية والمحمولة.
وبدلاً من ذلك، اضطرت معظم أجهزة الكمبيوتر المكتبية والمحمولة
إلى الاعتماد بدلاً من ذلك على تقنية الخيوط الفائقة
بواسطة معالجات Intel أو تقنية الخيوط المتعددة المتزامنة،
أو SMT، إذا كنت تستخدم معالج AMD.
لذلك، عملت تقنية Hyper-threading وSMT بشكل جيد حقًا
لفترة طويلة، ولكن في النهاية ما زلنا نصل إلى الحد
الأقصى لعدد الأشياء التي أردنا معالجتها
ولا نمتلك سوى معالج واحد للقيام بذلك.
الآن، نظرًا لأن معظم أنظمة التشغيل لم
تكن تعرف كيفية التعامل مع المقابس
المتعددة أو المعالجات المتعددة على لوحة أم معينة،
فقد بدأ المصنعون في إنشاء ما يعرف بالحزمة
متعددة النواة.
الآن، عندما أشير إلى حزمة ما، فأنا
أتحدث عن وحدة المعالجة المركزية (CPU)، الشريحة المادية.
الآن، بدلاً من وجود حزمتين فعليتين
أو شريحتين فعليتين على مقبسين مختلفين
على اللوحة الأم، ما قررت
هذه الشركات المصنعة فعله هو إنشاء
حزمة واحدة تعمل كوحدة معالجة مركزية واحدة.
ولكن داخل تلك الحزمة، كان
هناك بالفعل وحدات معالجة مركزية متعددة أو معالجات متعددة.
هذا يعني أنه بالنسبة للوحة الأم، كانت
تبدو وكأنها وحدة معالجة مركزية مادية واحدة، ولكن بداخلها،
كان هناك العديد من النوى،
أو نوى وحدة المعالجة المركزية، بداخلها.
الآن، يسمح هذا لأي نظام تشغيل بالتحدث
إلى ذلك المعالج الفردي أو حزمة المعالج، ومن ثم يمكن
لحزمة المعالج نفسها بعد ذلك تقسيم
تلك التعليمات بين النوى الداخلية
المتعددة داخل وحدة المعالجة المركزية تلك.
فكر في الأمر بهذه الطريقة.
لديك منزل به أربع غرف نوم.
إذا أتى شخص ما إلى الباب الأمامي وقال، أحتاج
إلى سرير للنوم، فهو حقًا لا
يهتم بأي من هؤلاء الأربعة سيحصل عليه
طالما أن لديه سريرًا للنوم.
وهكذا، تدخل من الباب الأمامي،
وتأخذهم إلى غرفة واحدة وتريهم غرفة واحدة فقط.
هذا هو ما يفعله هذا المعالج متعدد النواة.
عندما يدخل أشخاص جدد من الباب، يأخذهم
إلى غرفة واحدة ويسمح لهم بالنوم هناك طوال
الليل، أو القيام بمعالجتهم، ثم يرسلهم مرة أخرى.
يتم التعامل مع كل ذلك من
قبل الشخص الموجود عند الباب الأمامي،
والذي، في هذه الحالة، هو تلك الحزمة متعددة النواة.
وبعد ذلك، يضعهم في الحجرة الفردية أو
المعالج الفرعي الفردي الذي يحتاجه للقيام بهذا العمل.
هذه هي فكرة الحزمة متعددة النواة.
لقد سمع معظمنا عن هذا من قبل، لأنه
من المحتمل أن يكون
لديك معالج متعدد النواة في نظامك.
من المحتمل أن يكون لديك معالج ثنائي النواة،
مما يعني أن لديك وحدتي CPU داخل شريحة واحدة، أو لديك
معالج رباعي، مما يعني أن لديك
أربعة معالجات داخل شريحة واحدة.
أو لديك معالج سداسي، مما يعني
أن لديك ستة مراكز داخل شريحة واحدة.
أو لديك معالج ثماني النواة،
مما يعني أن لديك ثمانية أنوية في شريحة واحدة.
على سبيل المثال، في وحدة المعالجة المركزية الخاصة بي، لدي معالج ثماني النواة
على جهاز الكمبيوتر المكتبي الخاص بي، وهو عبارة عن شريحة مادية واحدة،
ولكن بها ثمانية معالجات فرعية بداخلها.
وهكذا، يُعرف هذا بالمعالج ثماني
النواة، أو المعالج متعدد النواة.
الآن، بالإضافة إلى وجود النواة المتعددة
والترابط الفائق، يمكنك في الواقع
الجمع بين الاثنين بحيث
يكون كل من تلك المعالجات داخل الحزمة، على سبيل المثال،
في نظامي لدي ثماني النواة، والذي
يحتوي على ثمانية معالجات.
الآن، داخل هذه الحزمة الواحدة،
يوجد ثمانية معالجات، ويمكن
لكل معالج من هذه المعالجات الثمانية
أيضًا دعم خيوط المعالجة الفائقة.
هذا يعني أن لدي 16 سلسلة مع ثماني وحدات معالجة مركزية، مما
يمنحني قدرًا كبيرًا من القدرة على المعالجة
على هذا الجهاز بالذات.
حسنًا، لقد تحدثنا في هذه المرحلة عن ثلاثة من
الأشياء الأربعة التي أردنا تغطيتها في هذا الدرس.
لقد تحدثنا عن خيوط المعالجة المتعددة
وخيوط المعالجة المتعددة المتزامنة، والمعروفة باسم SMT.
لقد تحدثنا عن المعالجة المتعددة المتماثلة،
أو وجود وحدات معالجة مركزية متعددة في المقابس،
ثم تحدثنا عن فكرة المعالجات متعددة النواة، حيث يكون
لديك وحدة معالجة مركزية واحدة
تحتوي على معالجات متعددة بداخلها، سواء
كانت اثنين، أو أربعة، أو ستة، أو ثمانية منهم.
الآن، آخر شيء نحتاج للحديث عنه هو المحاكاة الافتراضية.
الآن، تعد المحاكاة الافتراضية إحدى الميزات الأخرى لوحدات المعالجة المركزية
(CPU)، ولكنها لا تتعلق حقًا بالميزات الثلاث
التي تحدثنا عنها للتو.
الثلاثة التي تحدثنا عنها للتو كانت
تدور حول كيفية الحصول على المزيد من الأداء من شريحة
واحدة أو شرائح متعددة.
لكن عندما نتحدث عن المحاكاة
الافتراضية، ما نتحدث عنه هو القدرة على
محاكاة وجود أجهزة غير موجودة بالفعل.
الآن، يتم تحقيق ذلك فعليًا
إما من خلال تقنية المحاكاة الافتراضية من
Intel، والمعروفة باسم VT أو المحاكاة الافتراضية
من AMD، والمعروفة باسم AMD-V.
الآن، يوفر كلاهما امتدادات المعالج لدعم المحاكاة
الافتراضية، والتي يشار إليها باسم المحاكاة
الافتراضية المدعومة بالأجهزة.
وربما يثير هذا
النقطة، ما هي المحاكاة الافتراضية؟
حسنًا، المحاكاة الافتراضية هي القدرة على جعل
الكمبيوتر يتظاهر بأنه يقوم بتشغيل عدة أجهزة كمبيوتر
أخرى بداخله.
الآن، ما يبدو عليه هذا هو أنه قد يكون لدي
جهاز كمبيوتر محمول واحد مثل جهاز MacBook الخاص بي.
وفي جهاز MacBook هذا، لدي نظام تشغيل واحد، وهو macOS.
الآن، إذا أردت تشغيل Windows أو Linux،
فسيتعين علي إعادة تهيئة جهازي وتثبيت
هذا البرنامج.
سيكون ذلك غير مريح حقًا.
لكن مع المحاكاة الافتراضية، لا يتوجب علي فعل ذلك.
بدلاً من ذلك، يمكنني تشغيل
برنامج مثل VMware أو Virtualbox أو Parallels، وداخل
هذا البرنامج، يمكنني إنشاء
كمبيوتر افتراضي.
أستطيع أن أقول له أنني أريد أن يكون لديه
معالج واحد أو معالجان أو أربعة معالجات.
ويمكنني أن أعرف مقدار الذاكرة التي أريدها
وحجم التخزين الذي أريده.
وسوف يقوم بإنشاء هذا الكمبيوتر
الافتراضي الموجود فقط في البرنامج.
الآن، عندما أقوم بتشغيل نظام التشغيل
الجديد، مثل Windows، داخله، قد أقول إن هذا معالج ثنائي النواة.
يحتوي على أربعة غيغابايت من ذاكرة الوصول العشوائي وقرص صلب بسعة 50 غيغابايت.
كل هذا موجود فقط في البرمجيات.
ولكن عندما أقوم بتثبيت Windows على هذا الجهاز الظاهري،
يعتقد Windows أنه جهاز كمبيوتر كامل الوظائف.
ويعتقد أنه يحتوي على معالجين كاملين، وذاكرة
كاملة تبلغ أربعة غيغابايت،
وقرص صلب بسعة 50 غيغابايت.
وهكذا، بالنسبة لنظام التشغيل
Windows، فإنه يعتقد أنه يحتوي على كل هذه الأجهزة المادية، وهذا
ما تتيح لنا المحاكاة الافتراضية القيام به.
فهو يتيح لنا جعل الكمبيوتر افتراضيًا
وتوفير أجهزة افتراضية والقدرة
على تشغيل أنظمة تشغيل متعددة
داخل مضيف فعلي واحد.
الآن، بالإضافة إلى VT وAMD-V، يوجد أيضًا مستوى
ثانٍ من دعم أجهزة المحاكاة
الافتراضية الذي يمكنك البحث عنه في بعض المعالجات
الحديثة.
في أنظمة Intel، يُعرف هذا باسم EPT، أو جدول
الصفحات الممتد.
وعندما تتعامل مع معالج AMD،
فإنهم يطلقون على هذا الفهرسة الافتراضية السريعة، أو RVI.
يعتبر كلاهما بمثابة ترجمة عنوان من المستوى
الثاني أو ميزات SLAT للمحاكاة الافتراضية للبرامج
والتي يتم بعد ذلك دعمها ودعمها بواسطة معالج
الجهاز للسماح بإدارة أفضل للذاكرة الافتراضية
ويمنحك أداءً متزايدًا عندما يتعلق الأمر باستخدام الذاكرة
داخل جهاز ظاهري.
سنتحدث كثيرًا عن المحاكاة الافتراضية
في الدروس الخاصة بهم، لكن في الوقت
الحالي، أريدك فقط أن تفهم
أن بعض وحدات المعالجة المركزية لديها القدرة على القيام
بذلك داخل مجموعة المعالجات
الخاصة بها، والمعالجات التي تتمتع بهذه
القدرة، مثل مثل تلك التي تدعم VT من Intel أو AMD-V من AMD، ستمنحك أداءً أفضل
عند إجراء المحاكاة الافتراضية
مقارنة بتلك التي لا تفعل ذلك.
لذا، إذا كنت ستقوم ببناء جهاز
وتريد استخدامه للمحاكاة الافتراضية،
مثل الخادم الذي سيقوم بتشغيل
الكثير من الخوادم الافتراضية الأخرى
عليه، فأنت تريد التأكد من أن المعالجات
التي تحددها تحتوي على إما VT أو AMD-V حتى يتمكنوا من دعم المحاكاة الافتراضية
المباشرة للأجهزة، لأن ذلك سيمنحك تجربة أفضل
وأداء أفضل بكثير مما لو كنت مضطرًا إلى إجراء المحاكاة الافتراضية
للبرامج بدلاً من ذلك.