مشاهدة النسخة كاملة : سؤال: كيف اعرف سرعة تنفيذ الـ Instructions في الـ CPU
السلام عليكم
يا جاعة هذا السؤال قد يبدو صعبا وقد لا يجيب عليه الا من لديه معلومات حول عمارة المعالجات
وهو:
من المعلوم ان لكل معالج Clock و Multypier وعندما نضرب العددين مع بعض نحصل على سرعة الجهاز
ومن المعلوم لديكم وانتم أدرى بهذا مني.. أن كل Machine instruction لها وقت معين للتنفيذ مثلا الانستركشن ADD قد تأخذ 1 cycle بينما الانستركشن MUL قد تاخذ اكثر من ذلك ربما ( 3cycles)
سؤالي هو:
كيف اعرف سرعة تنفيذ هذه الـ Instructions وغيرها في معالج جهازي
وهل ممكن الحصول عليها من موقع انتل؟؟
وكم عدد الـ Machine instructions في معالجات انتل سنترينو؟؟
أهلا أخي csc :)
بخصوص مسألة الـ clock والـ Multiplier فالأمر يختلف مع معالجات K8 ولكنها متشابهة، حيث أن الـ Clock الذي أشرت إليه يكون هو نفسه التردد الخام لناقل HTT وهو إما يكون 200MHz ( ليكون الأداء الفعلي للناقل 1600MHz ) أو أن يكون 250MHz ( ليكون الأداء الفعلي للناقل 2000MHz )
مثلاً معالج +AMD Sempron 2600 ومعالج AMD Opteron 240 يستخدمان ناقل HTT بتردد خام 200MHz ومعامل ضرب 8 فيكون ترددهما 200×8 = 1600MHz...
---------------------------
بخصوص عدد الدورات اللازمة لإتمام التعليمة فلا أعلم عنها تحديداً بناءاً على كل تعليمة ADD أو غيرها ولكن هناك بعض المعلومات تبين التالي باستخدام معامل IPC ( معامل Instructions Per Clock أو التعليمات في الدورة ) كالتالي
معالج AMD Athlon لديه 12IPC
معالج Pentium 3 لديه 10IPC
معالج Pentium 4 لديه 9IPC
معالج Transmeta لديه 4IPC
سأحاول الحصول على المعلومات المطلوبة عزيزي :)
khaled_ahmed
06-03-2005, 23:57
معلوماتك رهيبة جدا أخوي ( الخلف ) .. ما شاء الله عليك
اخي الخلف:اشكرك على ما قدمته وعندي سؤال ثاني ان شاء الله اني ما اكون ثقلت عليك فيه:
وهو:
كم عدد مراحل الـ Pipeline في معالجات انتل (زيون_سنترينو_ بنتيوم هايبر ثريدنج)
................
ولدي ايضا ستفسار بخصوص ردك
ذكرت في ردك معامل الـIPC فهل تعني المتوسط؟؟ لأنه من المعلوم الـ instructions تتفاوت بشكل كبير في وقت تنفيذها..فمثلا بعض الانستركشنز مثل OR-NOT-XOR-AND-ADD عادة ما تكون سريعة جدا
اما البعض الاخر وخصوصا المتعلقة بالعمليات الحسابية الخاصة بالــ Floating point فغالبا ما تاخذ وقتا اطول ولا ننسى ايضا بعض الانستركشنز المتعلقة بالذاكرة مثل load-stor قد يطول تنفيذها ايضا
وشكرا مرة ثانية
ambition
12-03-2005, 11:12
واو .. أسئلة خطيرة و مهمة جداً
بانتظار الخبراء للإجابة فقد تحمست كثيراً لمعرفة هذه المعلومات
:)
ambition
23-03-2005, 15:25
للرفع ..
ياريت المختصين يساعدونا .. أو يخبرونا وين ممكن نحصل على هالمعلومات الدقيقة
:)
السلام عليكم :
"كيف اعرف سرعة تنفيذ هذه الـ Instructions وغيرها في معالج جهازي"
في نظامي Unix و Linux يمكنك استخدام الأمر time لمعرفة سرعة تنفيذ أمر معين.
( أرجو أن يكون جوابي مطابقاً للسؤال )
السلام عليكم :
لدي تعليق بسيط ...
دلالة IPC على سرعة المعالج قد تكون مضللة ، فقد يكون -مثلاً- لدينا معالجان "أ" و "ب" ،
"أ" = 10 IPC
"ب"= 11 IPC
مع ذلك نجد أن "أ" أسرع من "ب" !
كيف ذلك ؟
إذا كان "أ" يستخدم تعليمات مركبة (معقدة) فسيكون أسرع.
مثال:
هذا الأمر:
XCHG AX,BX
يكافئ:
MOV DX,AX
MOV AX,BX
MOV BX,DX
بذلك يتضح أن تعليمة واحدة قد تعادل ثلاث ، وبالتالي إذا كان المعالج "أ" يحتوي التعليمة الأولى ، بينما "ب" لا يحتويها ، فسنجد أن "أ" سينفذها خلال دورة واحدة بينما "ب" سيستغرق ثلاث دورات.
أرجو ألا أكون قد خرجت عن الموضوع :)
وسلامتكم ....
السلام عليكم :)
أشكرك جزيلاً أخي خطاب على إضافتك الرائعة...
بخصوص معامل IPC فهو يعطي فكرة عامة عن الأداء وليس كمقياس دقيق جداً...
وبخصوص طريقة حساب الـ IPC هي هي متوسط أم لا.. فأعتقد أنه أمر متوسط نظراً لاختلاف أزمان تنفيذ الأوامر نفسها... فقد نستطيع تنفيذ 20 تعليمة معينة في نفس الوقت الذي ننفذ فيه تعليمتين أخريتين...
والطريقة التي يتم فيها تنفيذ التعليمات يختلف أيضاً كما بين الأخ خطاب وهنا تأتي شطارة مهندسي المعالجات بالوصول للتركيبة المثالية للتنفيذ...
بخصوص طول خطوط المعالجة في معالجات Intel
معالجات Pentium 4 وتوابعها بدأت بـ 20 خط معالجة ثم قفزت إلى 31 خط مع نواة Prescott... يتبعها كل من معالجات Celeron و Xeon فهي أساساً نسخ أخرى من نفس المعالج تصمم بطرق متباينة تبعا لحاجة السوق... فمثلاً نواة Noconda الخاصة بمعالجات Xeon هي نسخة أخرى من نواة Prescott ولكن مع تفعيل ميزات تعدد المعالجات وإضافة تغييرات أكثر...
هذا عدا معالجات Pentium M ( المستخدمة في منظومة سنترينو ) فهي تستخدم 15 خط معالجة...
للمقارنة معالجات Pentium 3 يستخدم 9 خطوط معالجة ومعالجات Athlon و Athlon XP تستخدم 10 خطوط بينما جميع معالجات K8 ( مثل Athlon 64 ) تستخدم 12 خط معالجة..
الاخوة خلف-خطاب: اشكركم على المعلومات القيمة .......افتدونا كثير الله يعافيكم...
قد يستغرب البعض ما سبب السؤال عن مثل هذه الامور والتي قد تبدوا عديمة الفائدة...حيث اغلب الناس يستخدمون عالجات انتل؟؟؟؟؟
ولكن هناك اناس بالفعل مهتمون بمعرفة هذه المعلومات ...وهم فئة يجهلهم الكثير الكثير من الناس..
واعني بهم مبرمجي المترجمات او ما يسمى بـ COMPILERS وهي البرامج التي تقوم بتحويل اللغات عالية المستوى مثل ++C الى لغات اقل مستوى واقرب الى فهم الجهاز مثل لغة الاسمبلي...
فمثلا خذ هذا المثال البسيط جدا بلغة ّ++C :
;X=X*2
وهنا نريد ان نضرب قيمة المتغير X بالعدد 2 ونخزن القيمة في نفس المتغير..
عند تحويل هذا الكود الى لغة الاسمبلي فيمكننا ان نحصل على كودين برمجيين مختلفين الاول: (على اساس ان المتغير x مخزن في الريجستر BX)
MOV AX,2
MUL BX
MOV BX,AX
والثاني :
SHL BX,1
هل لاحظتم الفرق؟؟؟ انه شاسع بكل المقاييس حيث الكود الاول يحتوي على 3 تعليمات بينما الثاني على تعليمة واحدة فقط بالاضافه الى انها من اسرع الـINSTRUCTIONS تنفيذا في المعالج وهي اختصار لـ SHIFT وتعني الازاحة(تحريك كل بت الى اليسار وحذف الاخير من اليسار واضافة صفر مكان البت الاول وهي طريقة مختصرة لضرب ي عدد بـ 2 او مضاعفاتها الاسية 4و8و16و.....)
بينما الكود الاول يحتوي 3 اINSTRUCTIONS وجميعهم من العيار الثقيل..حيث التعليمة الاولى والاخير تتعلقان بالـ MEMOREY REFERENCE وهذه النوعية من التعليمات تحتاج الى وقت وحتى السطر الثاني حيث عملية الضرب وهي تاخذ وقتا طويلا حسب علمي
امل ان يكون الجميع قد استفاد
وشكرا
مشكور اخى ولو انى صادتى دوره فى راسى بقيت اطيح ونا مركز وما فهمت شى ههههههههه لو تكتب لنا مقاله مشروحه نستفيد منك وشكرا
الأخ Jasim
كنت اتوقع عدم فهم البعض للموضوع والسبب كما ذكرت انه يتعلق بمجال متعمق جدا...
عموما سأكتب ان شاء الله موضوعا (بعد فترة لا اعلمها) وسأحاول ان اشرح فيه كل ما يتعلق بهذا الموضوع الممتع..
والشكر لك ولبقية الأعضاء
تسلم اخوى وحنى فى الانتظار
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved, TranZ by Almuhajir