מבוסס על שקפים מאת יאן ציטרין

Slides:



Advertisements
מצגות קשורות
הערכות מילוליות קורס מנב"ס בתוכניות להכשרת מנהלים ומורים במוסדות להשכלה גבוהה, תשס"ה. © כל הזכויות שמורות למשרד החינוך התרבות והספורט.
Advertisements

מערכות סדרתיות (מערכות עקיבה)
הכרת תוכנת בקרים. כניסה לתוכנה תתבצע בשלבים הבאים: 1
אוגרים ומונים – Registers & Counters
אוגרים ומונים – Registers & Counters
תכנות בשפת C תרגול 11 - קבצים.
פרסום וקידום מכירות בכל שלב במחזור חיי המוצר, משתנה מדיניות התקשורת השיווקית שלו. פרט את מטרת התקשורת השיווקית בשלושה שלבים במחזור חיי מוצר כלשהו שתבחר.
הרצאה 02 סוגי משתנים קרן כליף.
נושא השקופית מס' השקופית
תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS
מבוא לתכנות ב-JAVA מעבדה 1
Trends in Periodic Table Properties
תרגול 11 מלכודות בניית ה-Debugger
נערך ע"י אריק הוד, הגימנסיה העברית הרצליה
OOO Execution of Memory Operations
כל הזכויות שמורות לגבריאל אנקרי © 2017
Jump tables, review questions
מבוא למדעי המחשב הרצאה מספר 12: רקורסיה
תכנות בשפת C תרגול 11 רשימות מקושרות מבנים
פעולות אריתמטיות קרן כליף.
Computer Programming תרגול 1 Summer 2016
תירגול 11: מיונים וחיפוש בינארי
תוכנה 1 בשפת Java שיעור מספר 13: "אל תסתכל בקנקן"
נערך ע"י אריק הוד הגימנסיה העברית הרצליה
Entity Relationship Diagram – ERD
תירגול 3: לולאות, קלט, וטיפוסים
שם ביה"ס, רשות: מקיף ה' אשדוד שם המורה: פולינה צ'יגרינסקי שם המדריכה:
OOO Execution of Memory Operations
Engineering Programming A
תרגול 6: פונקציות, סוגי משתנים, top-down design
תירגול 2: מבוא לתיכנות ב-C
רובוטיקה תרגול שימוש בלולאות
מוטיבציה והשוואה בין מבני נתונים שלמדנו
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
מבוסס על שקפים מאת יאן ציטרין
זיכרון מטמון 1 מבנה מחשבים ספרתיים
זיכרון מטמון 2 מבנה מחשבים ספרתיים
תורת הקומפילציה תרגול 9: תרגום לקוד ביניים
יישומון הר לעמק 2019 הוראות הפעלה.
מבוא לתכנות למערכות מידע
מבנה מחשבים ספרתיים זכרון וירטואלי מבוסס על תרגול של מורן גביש
Computer Architecture and System Programming Laboratory
אלגוריתמי מיון רקורסיביים
Microsoft Learning Network Manager
כל הזכויות שמורות לגבריאל אנקרי © 2017
Branch Prediction בעריכת אורן קצנגולד Updated by Franck Sala.
Branch Prediction Oren Katzengold, Franck Sala, Elad Shtiegmann.
תרגול 13 : חזרה נכתב על-ידי לימור ליבוביץ נערך ע"י ישראל גוטר
CLI vs GUI.
מבוסס על גירסת הדמו של המשחק הרישמי -
Solving Simultaneous Linear Equations Using GPU
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
שימוש בעצם ממחלקה אחרת כמאפיין במחלקה הנוכחית
מבוא לתכנות ב- JAVA מעבדה 4
מבוא למדעי המחשב סמסטר ב' – 2008 מרצה: יעל סיגל מתרגל: ענבל בודובסקי.
Introduction to Programming in C
מצביעים Pointers – המשך...
סיפור על ארבעה נרות.
שבוע לאומי לגלישה בטוחה איגוד האינטרנט הישראלי
הצג את עצמך, את עמותת תפוח ואת נושא הפעילות.
Tutorial #10 MIPS commands
מעבדה 2- עיצוב (עבור חלק ג)
תרגול מס' 2: Data and Control Hazards
OOO Execution of Memory Operations
מבנה מחשבים ספרתיים תרגול מס' 4: זכרון מטמון 2.
עקרונות תכנות מונחה עצמים תרגול 9:C++ - תרגילים
מחפשים את המטמון אנרגיה גרעינית וקרינה גרעינית
תמליל מצגת:

מבוסס על שקפים מאת יאן ציטרין תרגול 10 פסיקות מבוסס על שקפים מאת יאן ציטרין

בעיות של קלט / פלט סינכרוני המהירות של ה-CPU גדולה בהרבה מהמהירות של ההתקנים החיצוניים TPB TKB b_w: tstb @#tks bpl b_w ה-CPU מחכה עד שהתו יהיה מוכן בחוצץ. b_w: tstb @#tps bpl b_w ה-CPU מחכה לסיום ההדפסה הקודמת. © את"ם - תרגול מס' 11

הפתרון: שימוש במנגנון פסיקות פסיקה : אירוע חיצוני שגורם למעבד בתנאים מסוימים להפסיק לבצע את קטע הקוד הנוכחי ולעבור לביצוע של שיגרה מיוחדת הנקראת שיגרת שרות הפסיקה. דוגמה לאירוע כזה: הקשת תו על המקלדת. יתרונות: התוכנית יכולה לבצע פקודות אחרות, שלא תלויות בקלט שהיא מחכה לו. התוכנית יכולה להגיב בקלות לסוגים שונים של אירועים. (בניגוד לשיטה הסינכרונית שבה בדיקה של מספר אירועים יותר מסורבלת). © את"ם - תרגול מס' 11

התקנים חיצוניים כל התקן חיצוני יכול ליזום פסיקה: מילת Buffer מילת Status התקן TKB = 177562 TKS = 177560 מקלדת TPB = 177566 TPS = 177564 מדפסת אין (חסר משמעות) LCS = 177546 שעון כל התקן חיצוני יכול ליזום פסיקה: המקלדת: התו שהקליד המשתמש הועבר ל-TKB והביט Done עלה מ-0 ל-1 המדפסת: התו שנשלח ל-TPB הודפס והביט Ready עלה מ-0 ל-1 השעון: יוזם פסיקה כל פרק זמן מוגדר (sec ) LCS = Line Clock Status © את"ם - תרגול מס' 11

Interrupt Enable TKS TPS LCS הביט מספר 6 נקרא Interrupt Enable (IE) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 TKS TPS LCS הביט מספר 6 נקרא Interrupt Enable (IE) IE אומר למערכת האם ההתקן יכול להפסיק את פעולתו של ה-CPU, כלומר הדלקת הביט הזה הנה תנאי הכרחי לפסיקה © את"ם - תרגול מס' 11

האם צריכים להיות הבדלים בין מנגנון הקפיצה לשגרת פסיקה לבין מנגנון הקפיצה לשגרה רגילה? ההבדל נובע מעיתוי הקפיצה: בשגרה רגילה - הקפיצה יזומה ע"י התוכנית (סינכרונית). בשגרת פסיקה – הקפיצה אינה תלויה במצב התוכנית (אסינכרונית). רמז: מה ההבדל בין הפקודות בקטעי הקוד הבאים: mov r1, r2 bic #70, r2 add r1, r2 inc r1 cmp r1, r2 beq label1 mov r1, r2 sxt r1 © את"ם - תרגול מס' 11

האם צריכים להיות הבדלים בין מנגנון הקפיצה לשגרת פסיקה לבין מנגנון הקפיצה לשגרה רגילה? ההבדל נובע מעיתוי הקפיצה: בשגרה רגילה - הקפיצה יזומה ע"י התוכנית (סינכרונית) בשגרת פסיקה – הקפיצה אינה תלויה במצב התוכנית (אסינכרונית). תשובה: יש לשמור את הPSW לפני הקפיצה לשגרת הפסיקה, ולשחזר אותו כאשר חוזרים משגרת הפסיקה. (כמו כן, אין שימוש ברגיסטר קישור – כתובת החזרה נשמרת על המחסנית). בסוף השקף, לדבר על מתי נרצה שתתקבל פסיקה? האם תמיד נרצה שהתכנית שלנו תפסיק בעקבות פסיקה? )מנגנון עדיפויות). © את"ם - תרגול מס' 11

עדיפות חומרה לכל התקן חיצוני מוגדרת עדיפות חומרה. זהו מספר מ-0 עד-7 שנקבע ע"י יצרן החומרה ולא ניתן לשינוי (Hardcoded). משמעות של עדיפות החומרה: האם ביצוע של התוכנית הנוכחית יכול להפסיק בעקבות פסיקה שיוזם ההתקן, כלומר באיזו מידה חשוב למערכת לטפל בבקשתו של ההתקן. עדיפות חומרה התקן 4 מקלדת מדפסת 6 שעון © את"ם - תרגול מס' 11

עדיפות תוכנה המשמעות: מה החשיבות של הקוד שרץ כרגע שמורה בביטים 5-7 בPSW (הערכים יכולים להיות 0-7). עדיפות התוכנה של התוכנית הראשית הנה 0, אם לא נקבע אחרת. T N Z V C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 עדיפות תוכנה © את"ם - תרגול מס' 11

וקטור הפסיקה איך המערכת יודעת איפה נמצאת שגרת שרות של פסיקה מסוימת? התשובה: לכל פסיקה מוגדר וקטור הפסיקה – זוג מילים בזיכרון : כתובת של שגרת שרות הפסיקה PSW מילת המצב של המעבד המתכנת אחראי על אתחול וקטור הפסיקה © את"ם - תרגול מס' 11

וקטור הפסיקה - המשך מדוע מספקים ערך חדש עבור PSW בווקטור הפסיקה? וקטור פסיקה עדיפות חומרה התקן (60,62) 4 מקלדת (64,66) מדפסת (100, 102) 6 שעון מדוע מספקים ערך חדש עבור PSW בווקטור הפסיקה? לקבוע את עדיפות התוכנה בזמן ביצוע שגרת הפסיקה בד"כ קובעים את עדיפות התוכנה של שגרת שרות הפסיקה של התקן כלשהו, בהתאם לעדיפות החומרה שלו. © את"ם - תרגול מס' 11

תנאים להתרחשות הפסיקה IE במילת הסטטוס של ההתקן דלוק. Done/Ready עולה מ-0 ל-1. עדיפות החומרה של ההתקן גדולה ממש מעדיפות התוכנה שרצה כרגע. אם עדיפות החומרה לא מספיקה אז הפסיקה נדחית וממתינה לתורה ל-CPU יש "בקר פסיקות" שמנהל תור פסיקות לפי עדיפויותיהן. בתור נשמרת לכל היותר פסיקה אחת מכל התקן. כלומר אם בתור יש כבר פסיקה מהמקלדת, מתעלמים מכל פסיקה מהמקלדת עד שלא נטפל בפסיקה הראשונה. © את"ם - תרגול מס' 11

האינטרקציה בין המעבד לבין ההתקנים CPU INT Priority Interrupt Vector Address במידה והתקבלה פסיקה במהלך הביצוע של הפקודה האחרונה ה-CPU מפסיק לבצע את הקוד הנוכחי ועובר לשגרת שרות הפסיקה. לאחר ביצוע כל פקודה אומרים ל-CPU האם התרחשה פסיקה, אם כן מהי עדיפותה ומהו וקטור הפסיקה © את"ם - תרגול מס' 11

קפיצה לשגרת שרות הפסיקה (1) push (PSW) (2) push (PC) (3) )PC(  @# (4) )PSW(  @#+2 כל הפעולות הללו מתבצעות אוטומטית במחזור פקודה אחד  (3) (2)  + 2 pc (4) psw (1) המחסנית וקטור הפסיקה © את"ם - תרגול מס' 11

חזרה משגרת שרות הפסיקה  (1) pop (PC) rti (2) pop (PSW) (1) pc psw (2) המחסנית © את"ם - תרגול מס' 11

PSW ופסיקות - סיכום מדוע טוענים את ערך הPSW מווקטור הפסיקה בקפיצה לשגרת הפסיקה? כדי לקבוע את עדיפות התוכנה בזמן ביצוע שגרת הפסיקה. מדוע שומרים את הPSW הקודם ומשחזרים אותו בעת החזרה משגרת הפסיקה? כדי לא לפגוע בערכי הדגלים בקוד שהתבצע בזמן הפסיקה. כדי לשחזר את עדיפות התוכנה המקורית. © את"ם - תרגול מס' 11

הרעיון: בשגרה רגילה לדמות את שגרת השרות של פסיקה שינוי של עדיפות תוכנה בעיה: לא ניתן לגשת ל-PSW כדי לשנות את עדיפות התוכנה הרעיון: בשגרה רגילה לדמות את שגרת השרות של פסיקה … jsr pc, ch_prio ; at this point the programmer … ; wants to change the priority 1. ch_prio: mov (sp), -(sp) ; PSW simulating 2. mov #new_prio, 2(sp) ;define priority 3. rti ; return from the “interrupt ; routine” PC PC (1) (2) במצב הזה ה-rti "משחזר" גם את PC וגם את PSW PC PC PSW © את"ם - תרגול מס' 11

דוגמה מהמבחן 1. tks = 177560 2. tkb = 177562 3. tps = 177564 דוגמה מהמבחן 1. tks = 177560 2. tkb = 177562 3. tps = 177564 4. tpb = 177566 5. lcs = 177546 6. main: mov #inp, @#60 7. mov #200, @#62 8. mov #outp, @#64 9. mov #200, @#66 10. mov #clock, @#100 11. mov #300, @#102 12. mov #100, @#tps 13. mov #101, @#tks 14. w: wait 15. br w 16. hlt: halt Interrupt Vector Initialization IE  1, RE  1 © את"ם - תרגול מס' 11

דוגמה מהמבחן (המשך) 19. bic #177600, r0 20. cmpb #’$, r0 21. beq seton דוגמה מהמבחן (המשך) 17. inp: mov r0, -(sp) 18. movb @#tkb, r0 19. bic #177600, r0 20. cmpb #’$, r0 21. beq seton 22. bic #170, r0 23. asl alarm 24. asl alarm 25. asl alarm 26. add r0, alarm 27. mov (sp)+, r0 28. inc @#tks 29. rti 30. seton: mov (sp)+, r0 31. mov #100, @#lcs 32. rti r0 contains ascii of the typed character if r0 = ‘$ goto seton alarm = alarm*8 + r0 ; RE  1 ; IE(Clock)  1 © את"ם - תרגול מס' 11

דוגמה מהמבחן (המשך) ; IE(Printer)  0 35. clock: dec alarm 36. bne ret דוגמה מהמבחן (המשך) 33. outp: clr @#tps 34. rti 35. clock: dec alarm 36. bne ret 37. clr @#lcs 38. b_w: tstb @#tps 39. bpl b_w 40. movb #’*, @#tpb 41. ret: rti 42. alarm: .word 0 ; IE(Printer)  0 ; Every clock tick the alarm ; decreases by 1 ; When it reaches 0 the clock stops ; and prints * © את"ם - תרגול מס' 11

19. bic #177600, r0 1. tks = 177560 2. tkb = 177562 20. cmpb #’$, r0 17. inp: mov r0, -(sp) 18. movb @#tkb, r0 19. bic #177600, r0 20. cmpb #’$, r0 21. beq seton 22. bic #170, r0 23. asl alarm 24. asl alarm 25. asl alarm 26. add r0, alarm 27. mov (sp)+, r0 28. inc @#tks 29. rti 30. seton: mov (sp)+, r0 31. mov #100, @#lcs 32. rti 1. tks = 177560 2. tkb = 177562 3. tps = 177564 4. tpb = 177566 5. lcs = 177546 6. main: mov #inp, @#60 7. mov #200, @#62 8. mov #outp, @#64 9. mov #200, @#66 10. mov #clock, @#100 11. mov #300, @#102 12. mov #100, @#tps 13. mov #101, @#tks 14. w: wait 15. br w 16. hlt: halt שקף למקרן – מסכם את שלושת השקפים הקודמים © את"ם - תרגול מס' 11 21