بسم الله ما شاء الله
فعلا موضوع ممتاز...جزاك الله عنة خير.
و لكن عندى استفسار بخصوص Microcode set هل هى تعليمات MMX و SEE و EM64T
ام ماذا؟؟
بسم الله ما شاء الله
فعلا موضوع ممتاز...جزاك الله عنة خير.
و لكن عندى استفسار بخصوص Microcode set هل هى تعليمات MMX و SEE و EM64T
ام ماذا؟؟
حفظك الله لنا أخي محمد ... وزادك فضلا وعلما ... بارك الله فيك .
ما شاء الله أخي مقال يبدو انه ممتع فعلا ويحوي قدرا كبيرا من المعلومات لي عودة لقراءته .
ماشاء الله أخوي محمد شرح رائع الله يعطيك العافية
[CENTER]Jiraiya-OUT[/CENTER]
بارك الله فيك ..... مقال متميز ورائع
شكرا دكتور محمد على التوضيح....بارك الله فيك
موضوع ممتاز يا حميدو
وانا حقيقي فهمت جزئية المعمارية والتعليمات بطريقة اول مرة اعرفها
طيب معني كده أن risc ليها تعليمات برمجية وال cisc ليها تعليمات عتاد صح كده ؟
ايه علاقة التردد بالحكاية ديه ؟ هل ليه علاقة ولا ملهوش ؟
كلا من RISC و CISC يستخدم تعلميات عتادية ، وأكرر التعليمات العتادية هي طريقة توصيل أجزاء المعالج ببعضها ، اذن فمن البديهي أن يحتوي اي معالج علي تعلميات عتادية ، مهما اختلفت معماريته .
لكن الفارق يظهر في نسبة التعليمات العتادية الي البرمجية ، ففي معمارية CISC ، فان التعليمات العتادية يكون لها اليد العليا ، ب90% أو أكثر من مجموع تعليمات المعالج ، والباقي هو تعليمات برمجية (أي بيانات في ذاكرة) .
أما في معمارية RISC ، فان التعليمات العتادية تتواجد بنصف نسبة التعليمات البرمجية ، وتتواجد أيضا بصورة أبسط من تعليمات CISC (اي أن الوصلات بين أجزاء المعالج تكون في أبسط صورة لها) .
علاقة التردد بالقصة هي علاقة جوهرية ، فتعليمات CISC معقدة (وصلات معقدة بها الكثير من الوقفات والتحويلات)، ومعقدة تعني أن خطواتها كثيرة ، والخطوات الكثيرة تأخذ ترددات متعددة ، مما يسبب تأخيرا في تنفيذ العملية .
أما تعليمات RISC فهي بسيطة جدا ، فهي لا تزيد عن خطوة واحدة بأي حال من الأحوال (لبساطة الوصلات) ،وهذا يعني أنها لا تأخذ أكثر من تردد وحيد للمعالج ، لذا فهي أسرع في التنفيذ ، ولكن لأن تعلمياتها بسيطة وصغيرة فهي تحتاج الي دعم تعلميات برمجي ، ليؤدي الغرض .
وقف الخلق ينظرون جميعا كيف أبنى قواعد المجد وحدى
وبناة الأهرام فى سالف الدهر كفونى الكلام عند التحدى
أنا تاج العلاء فى مفرق الشرق و دراته فرائد عقدى
أى شئ فى الغرب قد بهر الناس جمالاِّ ولم يكن منه عندى
شكرا دكتور محمد على الرد
تحياتى.
أبــدع فـي مــواضيـعــك , وأحســن فـي ردودك , وقــدم كــل مــا لــديــك , ولا يغــرك فهمــك
ولا يهينــك جهــلك , ولا تنتظــر شكــر أحـــد , بــل اشكــر الله على هذه النعمــة
ولله الحمــد والشكــر
https://folding.extremeoverclocking....c-m.d&t=155660
السلام عليكم
كالعادة دكتور حميدو رائع بكل ماتعنية الكلمة
والف شكر للإضافات الرائعة..
أسلوب يشد الانتباه و تبسيط للمعنى و توصيله بأقصر الطرق رغم أن ما مكتوب ليس قصة فيسهل سردها بل هي معلومات علمية تقنية تفصلية ... بكل صدق أنت موهبة نادرة جدا دكتور حميدو
بارك الله لك في علمك و زاده و نفعك به
و إن شاء الله لي عودة للقراءة عندما يتوفر لدي الوقت الكافي و الذهن الصافي
شرح مميز أخ حميدوا خصوصاً بالنسبة لمعمارية ARM..ولا ينقصك عن التخصص الاكاديمي الا الشي البسيط .
الواقع فقد درست سابقاً كيفية قرآت المعالج للعمليات الحسابية وهي تقريباً كما قلت فعمليات الحسابية(*/+-) يقرأها المعالج قبل الارقام أو المتغيرات القيم الحسابية وطبعاً الأقواس تقراء قبل أي شيء (لا اذكر ترتيب العملية بالكامل الآن) .
ملاحظة الوحدة المسؤولة عن فك شفرة التعليمات تسمى Micro Code Units والهذف منها كان في السابق تسهيل البرمجة خصوصاً بالنسبة للمترجمات Compilers
{وَالَّذِينَ جَاؤُوا مِن بَعْدِهِمْ يَقُولُونَ رَبَّنَا اغْفِرْ لَنَا وَلِإِخْوَانِنَا الَّذِينَ سَبَقُونَا بِالْإِيمَانِ وَلَا تَجْعَلْ فِي قُلُوبِنَا غِلًّا لِّلَّذِينَ آمَنُوا رَبَّنَا إِنَّكَ رَؤُوفٌ رَّحِيمٌ } الحشر آية(10).
هذا صحيح أخي سالم ، خصوصا أن المترجمات عانت في السابق من عدم توافر المهارات اللازمة لكتابتها ، فلم تكن بالنضوج الكافي ، والوضع الآن أفضل بكثير .
صحيح تماما ، والمعالجات الحالية من Intel و AMD ، تستعمل طاقم التعليمات المخفضّ RISC في معظم أجزائها ما عدا الـ Micro Code ، وذلك لتسهيل تنفيذ أسلوب خطوط البيانات Pipeline ، الأسلوب الذي يعد المنقذ الوحيد للبطء الناتج عن استخدام طاقم التعليمات المعقد CISC .
وقف الخلق ينظرون جميعا كيف أبنى قواعد المجد وحدى
وبناة الأهرام فى سالف الدهر كفونى الكلام عند التحدى
أنا تاج العلاء فى مفرق الشرق و دراته فرائد عقدى
أى شئ فى الغرب قد بهر الناس جمالاِّ ولم يكن منه عندى
يمكننا التفكير في الموضوع من زاوية مبسطة جديدة :
1-تعليمات المعالج العتادية هي أمر الزامي لا بد من وجوده .
2-تعليمات المعالج العتادية هي مجرد الوصلات بين أجزاء المعالج المختلفة (مسجلات، وحدات تنفيذ، ذواكر) ، والتي تحدد ترتيب عمله .
3-طاقم التعلميات المعقد CISC يعني وصلات كثيرة بين أجزاء المعالج ، والوصلات الكثيرة تعني أنها تربط أجزاء متعددة ، فيكون فيها وقفات علي العديد من أجزاء المعالج ، بالاضافة الي اعادة التوصيل مع أجزاء معينة .. ولذلك أطلق عليها اسم المعقدة .
4-طاقم التعليمات المخفض RISC يعني استخدام عدد أقل من التوصيلات بين أجزاء المعالج المختلفة ، والوصلات يكون فيها عدد أقل من الوقفات ، ولا نحتاج فيها الي اعدة التوصيل مع أجزاء معينة .. لذلك سميت بالمخفضة .
5-استخدام طاقم التعليمات المخفض Microcode ، يعني أن التعلميات المعقدة سوف تكون محصورة في وحدة التحكم فقط ، بينما تصبح أجزاء المعالج المختلفة بدون تعقيد ، وبدون تعقيد يعني أن بها عدد أقل من الوصلات ، وعدد أقل من الوقفات عي أجزاء مختلفة ، أي أنها تستخدم طاقم التعليمات المخفض RISC بدون أن تشعر !
وبهذا يسقط أول الحواجز التي كانت تميز RISC عن CISC ، ثم ننتقل الي ثاني الحواجز :
5-الوصلات في CISC هي وصلات معقدة -كما قلنا- ، أي أن التعليمات معقدة ، ولأنها كذلك فهي تصلح لتنفيذ العمليات المعقدة بكفاءة ، وتصلج لتنفيذ العمليات البسيطة كذلك (بغض النظر عن مسألة التاخير).
علي الناحية الأخري ، فالوصلات في RISC وصلات بسيطة ، مما يعني أن التعليمات بسيطة جدا ، مما يعني أيضا أن العمليات التي تنفذها هي عمليات بسيطة !
ماذا عن العمليات المعقدة اذن ؟ .. يتم تنفيذ تلك العمليات عن طريق دمج عدد معين من التعلميات البسيطة ، أي يتم تقسيم العملية المعقدة الي عدد من العمليات البسيطة ، وهذا يعني أنني أحتاج الي تعليمات أكثر ، وفي الواقع فانني أحتاج الي عدد أكبر من التعلميات ، لدرجة أنه أكبر من عدد تعليمات CISC
6-احتياج RISC الي عدد أكبر من التعليمات قد يهدد وجودها كمعمارية تحافظ علي البساطة .. لذلك وجب تصميم كل تلك التعليمات الكثيرة مع المحافظة علي البساطة قدر الامكان ، واذا تعذّر ذلك ، فان التعقيد يذهب الي البرامج.
وبذلك يمكنك أخي أن تري ، أنه في الفترة الأخيرة ، أصبحت الحواجز بين CISC و RISC ، حواجز ضبابية ، أقل وضوحا عن السابق ، فكلا منهما يستعمل طاقم التعلميات المخفض بطريقة ما ، والاختلاف أن CISC اختارت وضع تعليمات عتادية معقدة محصورة في جزء واحد ، بينما اختارت RISC وضع التعقيد علي البرامج !
من ناحية التعلميات الأساسية ، تحتفظ المعالجات المزودجة من ARM ، بنفس طاقم التعليمات المخفض ، والتغيير الوحيدة هو اضافة معالج مماثل جديد ، أي دمج معالجين في بعضهما .
من ناحية طريقة التنفيذ ، فهي مطابقة لـمعمارية X86 ، فمعمارية X86 حاليا ، تتبع أسلوب SuperScalar ، أو الترتيب الفائق ، وذلك يعني أن الأنوية تتشارك في ناقل أمامي واحد ، فمعالج Core2Q عبارة عن أريعة أنوية مشتركين في ناقل أمامي واحد ، ولا يمكن الوصول لأي معالج فيهم الا عن طريق هذا الناقل ، مع وجود وحدة تقسيم وتوزيع عتادية ، تتولي توزيع المهام علي الأربع أنوية ، ويتكرر الوضع مع Core i7 و Core i5 ، والآن ARM .
لاحظ أن معمارية بطاقات ATI الرسومية ، تتبع نفس الطريقة ، فكل معالج تظليل فيها عبارة عن خمسة أنوية ، تشترك في ناقل واحد ، أي أنها SuperScalar ، لكنها تختلف في كونها توزّع الحمل علي الأنوية عن طريق برنامج القيادة ، هذا بالنسبة لمعالج تظليل واحد ، لكن بالنسبة لمعالجات التظليل الأخري وبفرض أن البطاقة تحوي 320 معالج تظليل ، فان الحمل يتوزع عليهم باستخدام وحدة توزيع عتادية ، يقتصر عملها علي توزيع البيانات علي المعالجات الكبيرة فقط ، أما الأنوية ، فالتوزيع يتم باستخدام برنامج القيادة كما قلنا .
وقف الخلق ينظرون جميعا كيف أبنى قواعد المجد وحدى
وبناة الأهرام فى سالف الدهر كفونى الكلام عند التحدى
أنا تاج العلاء فى مفرق الشرق و دراته فرائد عقدى
أى شئ فى الغرب قد بهر الناس جمالاِّ ولم يكن منه عندى
طيب ممكن اعرف كام عملية ممكن تنفذها معالجات x86 cisc في التردد الواحد ؟
انا فاهم ان المعالج بينفذ عملية في كل تردد علي معمارية rsic ، او عملية علي اكثر من تردد في معمارية cisc
لكن معالج زي core 2quad مثلا اللي هو خليط من cisc و risc زي ما حضرتك قلت بينفذ كام عملية في التردد الواحد ؟
المفضلات