עמוד:371

בדוגמה שראינו בחלק א של איור , 10 . 15 ההוראה JNZ צריכה להתבצע אחרי שמסתיימת ההשוואה של CX ל ^ ס . כמו-כן צריכה להתקבל החלטה מה תהיה הפעולה העוקבת להוראת הקפיצה המותנית , והחלטה זו יכולה להתקבל רק אחרי שתסתיים הוראת הקפיצה המותנית . כדי לפתור את הבעיה , מוסיפים מחזורי השהיה , כמתואר באיור 10 . 15 ב . בזמן ביצוע ההוראה JNZ הוספנו 2 מחזורי השהיה , כדי שחישוב התנאי יבוצע לאחר שביצוע ההשוואה הסתיים . כמן-כן הוספנו שלושה מחזורי השהיה במהלך ביצוע ההוראה , ADD כדי שההוראה הבאה לאחר ביצוע ההוראה JNZ תתבצע כאשר יעד הקפיצה כבר ידוע . הוספה של מחזורי השהיה מאריכה את ביצוע התכנית ב5- יחידות זמן . הביצוע של 3 הוראות , ללא השהיה , אורך 6 יחידות זמן , ואילו ביצוע הכולל 5 מחזורי השהיה , נמשך 11 יחידות זמן - כמעט פי . 2 במעבדים מודרניים משתדלים למנוע איבוד זמן , ומשתמשים בשיטות מגוונות כדי לפתור את הבעיה של . control hazard בין שאר השיטות נוקטים בשיטת ניבוי הסתעפות . ( branch prediction ) לפי שיטה זו , המעבד מנסה לנבא מה תהיה התוצאה של בדיקת התנאי , ובהתאם הוא מנסה לחזות מהי ההוראה אליה יצטרך "לקפוץ . " ניבוי זה נעשה על סמך קריטריונים רבים ומגוונים . בפנטיום , למשל , כאשר יש צורך לבחור בין הוראות , הקפיצה תתבצע להוראה הנמצאת בכתובת היותר נמוכה בתור ההוראות , או להוראה שבוצעה בעבר . כאשר מסתיים הביצוע של ההוראה שקובעת לאן צריך המעבד לקפוץ ( שלב / W המעבד בודק את נכונות הנבואה כדי לבטל או לאשר את הקפיצה . לדוגמה , נתבונן בקטע התכנית הבא ו inc bx jnz next dec ex next : add ax , ex mov ax , 0 mov ex , 100 איור 10 . 15 ב

מטח : המרכז לטכנולוגיה חינוכית


לצפייה מיטבית ורציפה בכותר