المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سؤال: كيف اعرف سرعة تنفيذ الـ Instructions في الـ CPU



csc
06-03-2005, 16:56
السلام عليكم
يا جاعة هذا السؤال قد يبدو صعبا وقد لا يجيب عليه الا من لديه معلومات حول عمارة المعالجات
وهو:
من المعلوم ان لكل معالج Clock و Multypier وعندما نضرب العددين مع بعض نحصل على سرعة الجهاز
ومن المعلوم لديكم وانتم أدرى بهذا مني.. أن كل Machine instruction لها وقت معين للتنفيذ مثلا الانستركشن ADD قد تأخذ 1 cycle بينما الانستركشن MUL قد تاخذ اكثر من ذلك ربما ( 3cycles)
سؤالي هو:
كيف اعرف سرعة تنفيذ هذه الـ Instructions وغيرها في معالج جهازي
وهل ممكن الحصول عليها من موقع انتل؟؟
وكم عدد الـ Machine instructions في معالجات انتل سنترينو؟؟

الخلف
06-03-2005, 17:43
أهلا أخي 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
معلوماتك رهيبة جدا أخوي ( الخلف ) .. ما شاء الله عليك

csc
10-03-2005, 18:25
اخي الخلف:اشكرك على ما قدمته وعندي سؤال ثاني ان شاء الله اني ما اكون ثقلت عليك فيه:
وهو:
كم عدد مراحل الـ Pipeline في معالجات انتل (زيون_سنترينو_ بنتيوم هايبر ثريدنج)
................
ولدي ايضا ستفسار بخصوص ردك
ذكرت في ردك معامل الـIPC فهل تعني المتوسط؟؟ لأنه من المعلوم الـ instructions تتفاوت بشكل كبير في وقت تنفيذها..فمثلا بعض الانستركشنز مثل OR-NOT-XOR-AND-ADD عادة ما تكون سريعة جدا
اما البعض الاخر وخصوصا المتعلقة بالعمليات الحسابية الخاصة بالــ Floating point فغالبا ما تاخذ وقتا اطول ولا ننسى ايضا بعض الانستركشنز المتعلقة بالذاكرة مثل load-stor قد يطول تنفيذها ايضا
وشكرا مرة ثانية

ambition
12-03-2005, 11:12
واو .. أسئلة خطيرة و مهمة جداً

بانتظار الخبراء للإجابة فقد تحمست كثيراً لمعرفة هذه المعلومات

:)

ambition
23-03-2005, 15:25
للرفع ..

ياريت المختصين يساعدونا .. أو يخبرونا وين ممكن نحصل على هالمعلومات الدقيقة

:)

Khattab
25-03-2005, 00:00
السلام عليكم :

"كيف اعرف سرعة تنفيذ هذه الـ Instructions وغيرها في معالج جهازي"

في نظامي Unix و Linux يمكنك استخدام الأمر time لمعرفة سرعة تنفيذ أمر معين.


( أرجو أن يكون جوابي مطابقاً للسؤال )

Khattab
25-03-2005, 00:17
السلام عليكم :

لدي تعليق بسيط ...

دلالة IPC على سرعة المعالج قد تكون مضللة ، فقد يكون -مثلاً- لدينا معالجان "أ" و "ب" ،
"أ" = 10 IPC
"ب"= 11 IPC
مع ذلك نجد أن "أ" أسرع من "ب" !
كيف ذلك ؟

إذا كان "أ" يستخدم تعليمات مركبة (معقدة) فسيكون أسرع.

مثال:

هذا الأمر:
XCHG AX,BX

يكافئ:
MOV DX,AX
MOV AX,BX
MOV BX,DX

بذلك يتضح أن تعليمة واحدة قد تعادل ثلاث ، وبالتالي إذا كان المعالج "أ" يحتوي التعليمة الأولى ، بينما "ب" لا يحتويها ، فسنجد أن "أ" سينفذها خلال دورة واحدة بينما "ب" سيستغرق ثلاث دورات.

أرجو ألا أكون قد خرجت عن الموضوع :)

وسلامتكم ....

الخلف
25-03-2005, 11:35
السلام عليكم :)

أشكرك جزيلاً أخي خطاب على إضافتك الرائعة...

بخصوص معامل 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 خط معالجة..

csc
01-04-2005, 00:53
الاخوة خلف-خطاب: اشكركم على المعلومات القيمة .......افتدونا كثير الله يعافيكم...


قد يستغرب البعض ما سبب السؤال عن مثل هذه الامور والتي قد تبدوا عديمة الفائدة...حيث اغلب الناس يستخدمون عالجات انتل؟؟؟؟؟
ولكن هناك اناس بالفعل مهتمون بمعرفة هذه المعلومات ...وهم فئة يجهلهم الكثير الكثير من الناس..
واعني بهم مبرمجي المترجمات او ما يسمى بـ 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
01-04-2005, 20:32
مشكور اخى ولو انى صادتى دوره فى راسى بقيت اطيح ونا مركز وما فهمت شى ههههههههه لو تكتب لنا مقاله مشروحه نستفيد منك وشكرا

csc
05-04-2005, 22:42
الأخ Jasim
كنت اتوقع عدم فهم البعض للموضوع والسبب كما ذكرت انه يتعلق بمجال متعمق جدا...

عموما سأكتب ان شاء الله موضوعا (بعد فترة لا اعلمها) وسأحاول ان اشرح فيه كل ما يتعلق بهذا الموضوع الممتع..

والشكر لك ولبقية الأعضاء

jasim
05-04-2005, 22:51
تسلم اخوى وحنى فى الانتظار