شهادة A plus الفصل 3 : وحدة المعالج المركزية (CPU) #4

sparrow
0

 


 

الفصل : 3

الجزء : 4

العنوان : وحدة المعالج المركزية ( CPU )





تكنولوجيا


على الرغم من أن المعالجات الميكروية الحديثة لا تزال تؤدي نفس الوظيفة التي كان يؤديها المعالج 8088 القديم - معالجة الأرقام - إلا أنها تقوم بذلك بكفاءة أكبر. قام المهندسون بتعديل وتعزيز وتحسين المعالجات بعدة طرق. يتناول هذا القسم ثمانية ميزات:


• مضاعفات الساعة (Clock multipliers)

• معالجة 64 بت (64-bit processing)

• دعم الافتراضية (Virtualization support)

• التنفيذ المتوازي (Parallel execution)

• معالجة متعددة النواة (Multicore processing)

• وحدة تحكم الذاكرة المدمجة (Integrated memory controller - IMC)

• وحدة معالجة الرسومات المدمجة (Integrated graphics processing unit - GPU)

• الأمان (Security)


مضاعفات الساعة ( Clock multipliers )


تعمل جميع وحدات المعالجة المركزية الحديثة بمضاعف لسرعة ساعة النظام. على سبيل المثال، تعمل حافلة النظام في جهاز Ryzen 7 بسرعة 100 ميجاهرتز. تصل مضاعفة الساعة إلى ×32 في حالة

الحمولة الكاملة ( full load ) لدعم السرعة القصوى للمعالج التي تبلغ 3.2 جيجاهرتز. في الأصل، كانت وحدات المعالجة المركزية تعمل بسرعة الحافلة، ولكن سرعان ما أدرك المهندسون أن المعالج هو الشيء الوحيد الذي يقوم بأي عمل معظم الوقت. إذا تمكن المهندسون من زيادة سرعة العمليات الداخلية للمعالج دون أي شيء آخر، فإنهم يمكنهم تسريع عملية الحوسبة بأكملها. يُظهر الشكل 1 برنامجًا رائعًا يسمى CPU-Z والذي يعرض تفاصيل معالج الوحدة المركزية الخاص بي. يجب ملاحظة أنني لا أقوم بفعل أي شيء في الوقت الحالي، لذا قام المعالج بخفض مضاعفة الساعة إلى ×15.5 وسرعة نواة المعالج هي 1546 ميجاهرتز فقط.

الشكل 1


تخيل السيناريو التالي: تجد نفسك مُطرَحًا في مكتب مليء بأجهزة الكمبيوتر غير المألوفة. لا توجد أية وثائق حول هذه الأنظمة على الإطلاق، لذا يُطلب منك من قِبَل رئيسك أن تبدأ في البحث واكتشاف أكبر قدر ممكن من المعلومات حول كل جهاز في أسرع وقت ممكن. جرّب هذا! قم بتنزيل نسخة من برنامج CPU-Z المجاني والشهير جدًا من موقع www.cpuid.com. يقدم لك برنامج CPU-Z كل معلومة قد تحتاجها عن وحدة المعالجة المركزية (CPU). قم بنسخ البرنامج على قرص صلب محمول ثم أدخله في مجموعة متنوعة من الحواسيب المختلفة. (طبعًا، اطلب الإذن قبل ذلك!) ما هي أنواع المعالجات التي تجدها في أجهزة الكمبيوتر المجاورة؟ وما الذي يمكنك معرفته حول القدرات المختلفة لهذه المعالجات؟



في الأنظمة القديمة التي تستخدم تقنية (Clock Multiplier)، كان يتعين ضبط سرعة الساعة ومضاعف السرعة يدويًا باستخدام مفاتيح التبديل المزدوجة في حزمة DIP (Dual In-Line Package) أو عبر وصلات قابلة للتحويل (Jumpers) على لوحة الأم (انظر الشكل 2 ). وفي الوقت الحاضر، يقوم المعالجات الحديثة بتقديم تقارير للوحة الأم من خلال وظيفة تُسمى CPUID (معرف المعالج)، ويتم ضبط سرعة الساعة ومضاعف السرعة تلقائيًا. (يمكنك تجاوز هذا الإعداد التلقائي يدويًا على العديد من لوحات الأم. راجع قسم "“Overclocking " في وقت لاحق من هذا الفصل لمزيد من التفاصيل).

الشكل 2



المعالجة ب 64 بت


عبر الأجيال المتعاقبة من المعالجات الحاسوبية، قام المهندسون بتطوير العديد من الميزات الفيزيائية لوحدات المعالجة المركزية. زادت تدريجياً قابلية EDB في الحجم، حيث ازدادت عرضها من 8 بت إلى 16 بت، ثم 32 بت، وأخيرًا 64 بت. كما شهدت address bus نفس الزيادة، حيث ازداد عرضها من 20 بت إلى 24 بت، ثم 32 بت (حيث استمرت لمدة عقد).


تغيرت أيضًا الميزات التقنية. فقد قام المهندسون بإضافة وتحسين السجلات (Registers)، مثل تلك التي تحمل أسماء فريدة مثل

multimedia extensions (MMX)

Streaming SIMD Extensions (SSE)

وبدأ تحول عظيم منذ عدة سنوات وما زال يستمر: الانتقال إلى تقنية المعالجة بواجهة 64 بت.


معظم وحدات المعالجة المركزية الحديثة تدعم المعالجة بواجهة 64 بت، مما يعني أنها يمكنها تشغيل أنظمة تشغيل 64 بت متوافقة، مثل Windows 10، وتطبيقات بتعليمات 64 بت. كما تدعم أيضًا المعالجة بواجهة 32 بت لأنظمة التشغيل بتعليمات 32 بت، مثل بعض توزيعات لينكس، وتطبيقات بتعليمات 32 بت. تحدث أيضًا ترقية للسجلات العامة لتصبح بواجهة 64 بت. والفائدة الأساسية من الانتقال إلى التقنية بواجهة 64 بت هي قدرة الأنظمة الحديثة على دعم ذاكرة أكبر من 4 غيغابايت المدعومة في المعالجة بواجهة 32 بت.


مع وجود address bus بواجهة 64 بت، يمكن للمعالجات تخصيص عناوين لـ 2^64 بايت من الذاكرة، أو بالتحديد 18,446,744,073,709,551,616 بايت من الذاكرة، وهو رقم ضخم جدًا. هذا الرقم الكبير يجعل الغيغابايت والتيرابايت غير مناسبين، ولذلك انتقلنا الآن إلى وحدة الإكسابايت (2 ^ 60)، ويرمز لها بالرمز "EB". فبواجهة عناوين بواجهة 64 بت يمكن تخصيص ذاكرة تصل إلى 16 إكسابايت.


من الناحية العملية، يعزز الحوسبة بواجهة 64 بت أداء البرامج التي تعمل مع ملفات كبيرة، مثل تطبيقات تحرير الفيديو. ستلاحظ تحسيناً كبيرًا عند الانتقال من 4 غيغابايت إلى 8 غيغابايت أو 16 غيغابايت من الذاكرة مع مثل هذه التطبيقات.




ملاحظة:

الفائدة الأساسية لحوسبة 64 بت هي دعم المزيد من 4 غيغابايت من الذاكرة ، الحد الأقصى مع معالجة 32 بت.


في البداية، المعالجات القديمة من نوع x86 يمكن تجميعها سوية لأنها استخدمت نوعًا معينًا من مجموعة التعليمات والتي تعتمد على بنية المعالجات الأولى من شركة إنتل. مثلاً، معالج Intel Core 2 Duo يمكنه تشغيل برنامج مصمم لمعالج 80386 القديم الذي كان شائعًا في أوائل التسعينات.


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


الإصدار القديم الذي يستخدم تقنية 32 بت كان يتم التسويق له بواسطة "x86"، وليس "x32". لذا الآن لدينا "x86" للأشياء القديمة التي تستخدم تقنية 32 بت و "x64" للأشياء الجديدة التي تستخدم تقنية 64 بت. وهذا الأمر قد يبدو مربكًا، لكن هل فهمت الفرق؟


ولكن لتعقيد الأمور، المعالجات بتقنية 64 بت يمكنها بسهولة التعامل مع برامج تعمل بتقنية 32 بت، وبالتالي تعتبر أيضًا معالجات x86. ومن المعتاد دمج المصطلحين ووصف المعالجات الحالية بتقنية 64 بت بأنها "معالجات x86-64".

.


دعم المحاكاة الافتراضية (Virtualization Support)


قامت إنتل وAMD ببناء دعم مدمج لتشغيل أكثر من نظام تشغيل في نفس الوقت، وهذه العملية تُسمى الافتراضية. الافتراضية أمر رائع جدًا وسيتم شرحها بالتفصيل في فصل قادم من الشهادة (الفصل 22)، لذا سأتجاوز التفاصيل هنا. القضية الأساسية من وجهة نظر وحدة المعالجة المركزية هي أن الافتراضية كانت تعمل بالكامل عبر البرامج. كان على المبرمجين كتابة الكثير من الشفرة لتمكين وحدة المعالجة المركزية - التي تم تصميمها لتشغيل نظام تشغيل واحد في وقت واحد - لتشغيل أكثر من نظام تشغيل في نفس الوقت. فكر في المسائل المعقدة المتعلقة بذلك. كيف يتم تخصيص الذاكرة، على سبيل المثال، أو كيف يعرف وحدة المعالجة المركزية أي نظام تشغيل يجب تحديثه عند كتابة شيء ما أو النقر على أيقونة؟ مع الدعم المبني على الأجهزة للافتراضية، قامت وحدات المعالجة المركزية بتخفيف العبء عن المبرمجين وجعل الافتراضية أسهل بكثير.



التنفيذ الموازي (Parallel Execution)


المعالجات الحديثة قادرة على معالجة عدة أوامر وأجزاء من الأوامر في وقت واحد، وهذا ما يعرف بالتنفيذ المتوازي. في اجهزة المعالجة الأولى، كان يجب تنفيذ كل شيء بتسلسل صارم وخطي. تحقق القدرة على التنفيذ المتوازي في المعالجات من خلال استخدام مواسير متعددة (multiple pipelines )، وذاكرة مخصصة (dedicated cache )، وقدرة على التعامل مع خيوط أو برامج متعددة في نفس الوقت (multiple threads ). لفهم القفزة الكبيرة في الكفاءة التي تحققت من خلال التنفيذ المتوازي، يلزم فهم مراحل المعالجة.


1 -ال Pipelining (تقسيم التنفيذ) او انابيب :

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

1. الاستلام (Fetch ) : الحصول على البيانات من الحافلة البيانات.

2. التفكيك (Decode) : معرفة نوع الأمر الذي يجب تنفيذه.

3. التنفيذ (Execute): القيام بالحسابات.

4. الكتابة (Write ): إرسال البيانات مرة أخرى إلى الحافلة البيانات.


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

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

الشكل 3






ال Pipelining تبقي كل مرحلة من مراحل المعالج مشغولة في كل دورة من دورات الساعة، مما يجعل وحدة المعالجة المركزية تعمل بكفاءة أعلى دون زيادة سرعة الساعة. يجب أن يحتوي أي وحدة معالجة مركزية على أربع مراحل على الأقل: استرجاع، فك التشفير، التنفيذ، والكتابة - نظام Pipelining يتكون من أربع مراحل. ومع ذلك، فإن التطورات في الcaching (انظر "“Cache " فيما يلي) زادت من عدد المراحل على مر السنين. تحتوي أنابيب الوحدة المعالجة المركزية الحالية على عدد أكبر من المراحل، تصل إلى 20 في بعض الحالات.


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


يتكون داخل وحدة المعالجة المركزية من عدة أجزاء للتعامل مع أنواع مختلفة من العمليات التي يحتاجها الكمبيوتر الشخصي الخاص بك. على سبيل المثال، تعمل وحدة المنطق الحسابي the arithmetic logic unit (ALU) (أو الوحدة الصحيحة (integer unit) ) على معالجة العمليات الحسابية الصحيحة: الرياضيات الأساسية للأعداد التي لا تحتوي على علامة عشرية. ومثال مثالي على الرياضيات الصحيحة هو 2 + 3 = 5. تنفق وحدة المعالجة المركزية النموذجية معظم وقتها في أداء العمليات الحسابية الصحيحة. تحتوي وحدات المعالجة المركزية أيضًا على دوائر خاصة للتعامل مع الأرقام المعقدة، وتسمى وحدة العد العائم floating point unit (FPU). في النموذج الأحادي للأنابيب، يعمل فقط وحدة ALU أو وحدة FPU في أي مرحلة تنفيذ. وعلاوة على ذلك، غالبًا ما تستغرق عمليات الحساب ذات ال FPU العديد من دورات الساعة للانتهاء، مما يجبر وحدة المعالجة المركزية على توقيف الأنابيب حتى تنتهي وحدة FPU من تنفيذ الأمر المعقد (انظر الشكل 4 ). توفر وحدات المعالجة المركزية الحالية أنابيب متعددة للحفاظ على استمرارية التنفيذ (انظر الشكل 5 ).

الشكل 4


الشكل 5


2- ال Cache :

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


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


وحدات المعالجة المركزية اللي بتستخدم خاصية الـpipelining بتعمل شغل جيد جداً طالما الـpipelines ممتلئة بالتعليمات. بس لأن سرعة الـCPU أسرع من الذاكرة العشوائية (RAM) اللي بتوفرلها للتعليمات ، دايماً هتحصل توقفات في الـpipelines - بتسمى wait states - عشان الـRAM مش بتقدر تواكب سرعة الـCPU. عشان تقلل الـwait states، وحدات المعالجة المركزية بتيجي معاها ذاكرة عشوائية سريعة جداً اسمها static RAM (SRAM). الـSRAM دي بتحمل أكبر عدد ممكن من التعليمات وبتحتفظ بنسخ من التعليمات والبيانات اللي تم تنفيذها بالفعل في حالة احتاجت الـCPU تعمل عليهم تاني. الـSRAM اللي بتستخدم بالطريقة دي بتسمى cache ( انظر الى الشكل 6 )

الشكل 6



كانت ذاكرة الSRAM cache داخل وحدات المعالجة المركزية الأولية صغيرة جدًا، حوالي 16 كيلوبايت فقط، ولكنها ساعدت على تحسين الأداء بشكل كبير. في الواقع، ساعدت إلى حد كبير حتى أن العديد من مصنعي اللوحات الأم بدأوا في إضافة ذاكرة caches مباشرة إلى اللوحات الأم. كانت هذه الذواكر أكبر بكثير، عادة حوالي 128 إلى 512 كيلوبايت. عندما يبحث المعالج المركزي عن سطر من الشفرة، يتوجه أولاً إلى الذاكرة الcache . إذا لم يتواجد الشفرة هناك، يتوجه المعالج المركزي إلى الذاكرة المؤقتة على اللوحة الأم. يسمى الذاكرة الL1 cache لأنها هي التي يحاول المعالج المركزي استخدامها أولاً. وتسمى الذاكرة الcache على اللوحة الأم L2 cache، وليس لأنها على اللوحة الأم، ولكن لأنها الذاكرة المؤقتة الثانية التي يتحقق المعالج المركزي من وجود الشفرة فيها. في النهاية ، أخذ المهندسون مفهوم ذاكرة الcache إلى أبعد من ذلك ، وأضافوا ذاكرة الcache ال L2 إلى حزمة وحدة المعالجة المركزية. تتضمن العديد من وحدات المعالجة المركزية الحديثة ثلاث ذاكرات cache مثل : L1 و L2 و L3 مخبأة (انظر الشكل7 )

الشكل 7


كانت L2 cache على المعالجات الأولى التي تضمنت L2 مضمنة في حزمة المعالج تعمل بسرعة أبطأ من ذاكرة L1. حيث إن ذاكرة L1 كانت في المعالج وبالتالي تعمل بسرعة المعالج. أما ذاكرة L2 فتوصل إليها المعالج عبر مجموعة صغيرة من الأسلاك على حزمة المعالج. وكانت أول ذواكر L2 تعمل بنصف سرعة المعالج.


وأدت إضافة ذاكرة L2 على الشريحة إلى ظهور بعض المصطلحات الجديدة لوصف الاتصالات بين المعالج المركزي وMCC والذاكرة العشوائية RAM وذاكرة L2. حيث تم دمج حافلة العناوين وحافلة البيانات الخارجية (التي تربط المعالج المركزي وMCC والذاكرة العشوائية) في مصطلح واحد يُسمى الحافلة الأمامية (Frontside Bus)، وأما الاتصال بين المعالج المركزي وذاكرة L2 فأصبح يُعرف باسم الحافلة الخلفية (Backside Bus) (انظر الشكل 8 ). (لا تنطبق هذه المصطلحات جيدًا على الحواسيب الحديثة، لذلك تم إهمالها. انظر قسم "متحكم الذاكرة المتكامل" في وقت لاحق من هذا الفصل.)

الشكل 8



ملاحظة:

لمواكبة المعالجات الأسرع، بدأت شركات تصنيع اللوحات الأم في مضاعفة سرعة حافلة الأمامية وحتى تصل إلى الضعف أو الربع. ويشار إليها في بعض الأحيان بمصطلحات مثل Double-Pumped و Quad-Pumped Frontside Buses.


تعدد الخيوط (Multithreading) :


في ذروة أيام الحوسبة باستخدام وحدة معالجة مركزية واحدة بنوعية 32 بت، قامت إنتل بإصدار وحدة معالجة مركزية تسمى Pentium 4 التي أدخلت مفهوم التوازي إلى مستوى جديد باستخدام تقنية الـ Hyper-Threading. تمكّن Hyper-Threading وحدة المعالجة المركزية Pentium 4 من تشغيل عدة مواضيع (Threads) في نفس الوقت، وهذا ما يُعرف عمومًا بتقنية معالجة متعددة الخيوط (Simultaneous Multithreading)، مما يجعل المعالج الواحد يبدو وكأنه اثنين من وحدات المعالجة المركزية على رقاقة واحدة، ولكن مع وجود شرط معين.


ببساطة، Hyper-Threading تسمح للمعالج بتنفيذ مهام متعددة في نفس الوقت، وهذا يزيد من كفاءة استخدام وحدة المعالجة المركزية في معالجة المهام المتعددة. إنها تُعزز من أداء الكمبيوتر عند التعامل مع تطبيقات متعددة أو مهام متعددة في نفس اللحظة.


ومع ذلك، كان هناك شرط مهم، حيث أن الأداء ليس دائمًا يتضاعف تمامًا، حيث يعتمد على طبيعة التطبيقات والمهام. بعض التطبيقات تستفيد بشكل كبير من Hyper-Threading وتحقق زيادة في الأداء، بينما يمكن أن تكون لبعض التطبيقات أداء أقل فائدة من هذه التقنية.


ي ُظهر الشكل 9 نافذة إدارة المهام في حاسوب قديم يعمل بنظام Windows XP ومعالج Pentium 4 مدعوم بتقنية Hyper-Threading. وتلاحظ كيف تم تقسيم مربع المعالج إلى مجموعتين - فالنظام يعتقد أن هذا المعالج الواحد هو عبارة عن معالجين.

الشكل 9


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


■ النهاية 


نكون هنا انتهينا تماما من الجزء 4 من الفصل 3 من شهادة A plus المقدمة من CompTIA نتقدم الأن ولكن المشوار طويل وممتع جدا جدا لذلك احرص على قرائة كل فصل سريعا


و لا بد وانت تقرا ان تكون مركز جيدا لكل معلومة ومعك ورقة وقلم , لانك بالتاكيد ستحتاجها 


واذا واجهتك اي مشكلة في الفهم او ما شابه , يمكنك على الفور الذهاب الى المجتمع الخاص بنا في Telegram للمناقشة والتواصل معنا من هنا  


او اذا واجهتك مشكلة في الموقع او تريد اجابة سريعة يمكنك الذهاب الى اخر صفحة في الموقع ستجد صفحة اتصل بنا موجودة يمكنك ارسالة لنا مشكلتك , وسيتم الرد عليها بسرعة جدا ان شاء الله 


ويمكنك الأنضمام الى المجتمع Hidden Lock بالكامل مع جميع قنواته للأستفادة في اخر الأخبار في عالم التقنية وايضا الكتب بالمجان والكورسات والمقالات من خلال الرابط التالي لمجموعة القنوات من     هنا 



يمكنك ايضا متابعتنا في منصات X او Twitter سابقا , لمشاهدة الاخبار والمقالات السريعة والمهمة من    هنا 


وفقط كان معكم sparrow مقدم هذه الشهادة من فريق Hidden Lock









إرسال تعليق

0تعليقات

إرسال تعليق (0)

#buttons=(موافق!) #days=(20)

يستخدم موقعنا ملفات تعريف الارتباط لتحسين تجربتك. تاكد الان
Ok, Go it!