שאלה ב optimization in Pentium

appTrap

New member
שאלה ב optimization in Pentium

אם אני רוצה להחליף ערכים בין שני אוגרים (אני שונא את העברית של זה:) registers האם יותר מהיר להשתמש ב xchg או בסדרה קטנה של push ו pop ? (השאלה היא על הפנטיום, אני יודע שבקודמים 86, 286, ... הxchg היה יותר מהיר) תודה!
 

appTrap

New member
תודה על העזרה, מצאתי!

one cycle faster to use 2 pushes and 2 pops instead of xchg in the Pentium cpu
 

voguemaster

New member
מוזר...

דווקא ציפיתי שלאור העובדה שהאוגרים יושבים על ה-CPU עצמו זה יהיה מהיר יותר מאשר 4 גישות לזיכרון!! מוזר! מה לגבי שימוש ברגיסטר נוסף ?? אלי
 

appTrap

New member
בגלל ש:

ככתוב: pushes and pops are 1 cycle faster on Pentium due to pairing.
 

erezsh

New member
לא נשמע לי סביר..

פעולת PUSH/POP לוקחת Cycle אחד?! ו-4 כאלה לוקחות פחות מ XCHG?? מאוד לא סביר..
 

voguemaster

New member
רגע רגע

נקודה ששווה להתמקד בה עוד קצת. אתה יכול להביא קישור ? איפה מצאת את זה? כמה PUSH ו-POP נכנסות במחזור שעון אחד ? דווקא לאור העובדה ששתי הפקודות עושות מניפולציה לאותו איזור בזיכרון אי אפשר להרוויח מה-PIPELINE השני, אבל אולי שתיהן יכולות לעבוד ביחד באותו צינור ? אלי
 
למעלה