פסיקות וחריגות Review Standard Components and Memories VHDL Pipeline (WH8) Datapath / controller (WH7) 2.1-2.6 MIPS Instructions (PH3.1-3.5, extra 3.6-3.11) Datapath ALU (PH4.5, extra 4.6-4.8) B5 5.1-5.4 5.4 Single Cycle Controller (PH5.3) Single Cycle Datapath (PH5.1-5.3) 5.5 Multi-Cycle Controller (PH5.4, extra 5.5) Multi-Cycle Datapath (PH5.4) Pipeline Controller (PH6.3) Pipeline Datapath (PH6.2) 3rd ed 5.5 Interrupts Communication (WH9) 1 חריגות ) (Exceptionsופסיקות )(Interrupts • חריגות ) (exceptionsהן אירועים הגורמים להפסקת ביצוע רצף הפקודות ולקפיצה לתוכנית אחרת • חריגות יזומות ע"י אחד משלושה גורמים: א .התוכנית עצמה ב .בעיות בביצוע התוכנית ג .גורם מחוץ למעבד • חריגות היזומות ע"י גורם מחוץ למעבד מכונות גם פסיקות )(interrupts • המושגים האלה אינם אוניברסליים ,ובכל מחשב נהוגות הגדרות אחרות – יש המכנים את כל שלושת הסוגים interrupts – שמות אחרים לסוגים שונים הם faults ,trapsועוד 2 תכן לוגי 044262הרצאת פסיקות תפקידי מערכת ההפעלה ) (Operating Systemבטיפול בחריגות • כמו בקריאה לשגרה ,גם בחריגה מבוצעת קפיצה ,אלא שהיעד נמצא במערכת ההפעלה • המעבר לתוכנית אחרת מחייב אחסון יותר פרמטרים מאשר בקריאה לשגרה • מערכת ההפעלה תפעל בהתאם לאירוע הגורם לתקלה בסיום הטיפול היא עשויה: – לחדש מיידית את ביצוע התוכנית בפקודה בה נגרמה החריגה – להעביר את התוכנית לסוף תור תוכניות הממתינות לחידוש הביצוע – להפסיק את ביצוע התוכנית ,ולעבור לתוכנית אחרת 3 תכן לוגי 044262הרצאת פסיקות מעברים בין תוכנת משתמש למערכת הפעלה - RFE ' RFE ' RFE Queue ' 4 RFE תכן לוגי 044262הרצאת פסיקות חריגות יזומות ע"י התוכנית עצמה • תוכנית נזקקת לעזרת מערכת ההפעלה – לצורך ביצוע פעולות "מיוחסות" ( )privilegedשאסור לתוכנית לבצע בעצמה (למשל קלט/פלט) – מדוע אסור? למשל כדי למנוע התנגשות בין מספר תוכניות שונות • התוכנית מבצעת פקודת קריאה למערכת ההפעלה – ( syscallב )MIPS -פקודה זו שומרת את סטטוס התוכנית ,וקופצת לשגרה במערכת ההפעלה • מערכת ההפעלה – תבצע את הפעולה המבוקשת – אח"כ תבצע פקודת חזרה ( rfeב)MIPS - – פקודה זו משחזרת את מצב התוכנית הקוראת ,וקופצת חזרה לתוכנית זו, לפקודה שאחרי הקריאה למערכת ההפעלה • חריגות מסוג זה צפויות ,והן מבוצעות כפקודה רגילה המבוצעת עד סופה 5 תכן לוגי 044262הרצאת פסיקות בעיות בביצוע פקודה הגורמות לחריגות • בעיות בפיענוח הפקודה: opcode -שאיננו בשימוש שלב האירוע במהלך ביצוע הפקודה ID • בעיות אריתמטיות: גלישה בALU - -חילוק באפס EX • בעיות בגישה לזיכרון: גישה לכתובת שאיננה בזיכרון הפיזי גישה לכתובת אסורה6 MEM, IF תכן לוגי 044262הרצאת פסיקות פסיקות – חריגות היזומות ע"י גורמים מחוץ למעבד • גורמים חיצוניים היוזמים פסיקות: ציוד היקפי המבקש "תשומת לב" המעבד שעון המבקש עדכון מונה -גלאי ירידת מתח המבקש לעצור את המחשב • בקשות פסיקה יכולות להופיע בכל פקודה ובכל שלב של ביצוע הפקודה. • פסיקות נענות (בדרך כלל) בסיום ביצוע פקודה – אלא אם הפקודה אינה יכולה להסתיים (בגלל תקלה) – במקרה של PIPELINEלא נכניס פקודות חדשות ,אך נסיים את אלה שב PIPE-ולא גורמות לתקלות 7 תכן לוגי 044262הרצאת פסיקות פסיקות נענות בסיום ביצוע פקודה Interrupt Masking " KERNEL MODE 8 RFE תכן לוגי 044262הרצאת פסיקות התחלת הטיפול בחריגה • כתובת הפקודה שבמהלכה ארעה החריגה נשמרת ברגיסטר מיוחד • ב MIPS-הרגיסטר ( 32סיביות) נקרא )Exception Program Counter (EPC • לפני שמירת PCיש להחסיר ( 4מדוע?) • מערכת ההפעלה עוברת לטפל בחריגה ,בהתאם לגורם שיזם את החריגה • קיימות שתי שיטות עיקריות להכוונת מערכת ההפעלה לטיפול המתאים 9 תכן לוגי 044262הרצאת פסיקות שיטה א' :קוד הגורם לחריגה (נהוגה ב)MIPS - • הגורם לחריגה טוען קוד לרגיסטר סטטוס מיוחד • ב MIPS-הרגיסטר ( 32סיביות) נקרא Cause register • מבוצעת קפיצה לכתובת קבועה במערכת ההפעלה • ב MIPS-כתובת זו היא 0x8000 0180 • מערכת ההפעלה קוראת את הקוד ברגיסטר הסטטוס, ולפי זה קופצת לשגרת טיפול מתאימה 10 תכן לוגי 044262הרצאת פסיקות שיטה ב'Vectored interrupt : • הכתובת במערכת ההפעלה אליה מבוצעת הקפיצה נקבעת (בחלקה) ע"י הגורם לחריגה ,ומצביעה על "ווקטור הפסיקה" • וקטור הפסיקה (בגודל קבוע ,למשל 32בתים) ,יכול לכלול מספר פקודות ,שאחת מהן יכולה להיות קפיצה לתוכנית שתמשיך בטיפול • בלוק במרחב הזיכרון של מערכת ההפעלה מיועד לאחסן את ווקטורי הפסיקה 11 תכן לוגי 044262הרצאת פסיקות חלופות הטיפול בחריגות שיטה ב' שיטה א' מרחב הזיכרון של מערכת ההפעלה מרחב הזיכרון של מערכת ההפעלה שגרת הטיפול בפסיקה שגרת הטיפול בפסיקה קפיצה לשגרת הטיפול בפסיקה וקטורי פסיקה 12 הקפיצה למערכת ההפעלה היא לכאן ברור סיבת החריגה 0x80000184 0x80000180 0x80000180 תכן לוגי 044262הרצאת פסיקות ) (תזכורתMIPS מימוש רב מחזורי של PCWriteCond PCSource PCWrite IorD Outputs ALUSrcB MemRead MemWrite Control ALUSrcA RegWrite MemtoReg IRWrite ALUOp Op [5– 0] RegDst 0 M 26 Instruction [25– 0] Shift left 2 Instruction [31-26] PC 0 M u x 1 Address Memory Instruction [25– 21] Read register 1 Instruction [20– 16] Read Read register 2 data 1 Registers Write Read register data 2 MemData Instruction [15– 0] Write data Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 B 0 M u x 1 16 Sign extend 32 Shift left 2 x 2 Zero ALU ALU result ALUOut 0 4 Write data 1 u Jump address [31-0] PC [31-28] 0 M u x 1 A 28 1 M u 2 x 3 ALU control Instruction [5– 0] P&H Fig. 5-28 הרצאת פסיקות044262 תכן לוגי 13 דיאגרמת מעברי מצבים של הבקר במימוש רב מחזורי של ( MIPSתזכורת) P&H Fig. 5-38 14 תכן לוגי 044262הרצאת פסיקות עם טיפול בחריגותMIPS מימוש רב מחזורי של CauseWrite PCWriteCond IntCause EPCWrite PCWrite PCSource IorD Outputs ALUSrcB MemRead MemWrite Control ALUSrcA RegWrite MemtoReg IRWrite ALUOp Op [5– 0] RegDst 0 M 26 Instruction [25– 0] Shift left 2 0 M u x 1 Address Memory Instruction [25– 21] Read register 1 Instruction [20– 16] Read Read register 2 data 1 Registers Write Read register data 2 MemData Instruction [15– 0] Write data Instruction register Instruction [15– 0] Memory data register 1 u x 2 8000 0180 Instruction [31-26] PC 28 Jump address [31-0] 0 M Instruction u x [15– 11] 1 B 0 M u x 1 Sign extend 32 Shift left 2 Zero ALU ALU result ALUOut EPC 0 4 Write data 16 0 M u x 1 A 3 PC [31-28] 1 M u 2 x 3 ALU control 0 0 1 1 M U X Cause Instruction [5– 0] P&H Fig. 5-39 הרצאת פסיקות044262 תכן לוגי 15 דיאגרמת מעברי מצבים של הבקר במימוש רב מחזורי של MIPSעם טיפול בחריגות P&H Fig. 5-40 16 תכן לוגי 044262הרצאת פסיקות ) (תזכורתMIPS מימוש מצונר של IF.Flush Hazard detection unit ID/EX M u x WB Control 0 M u x IF/ID 4 M WB EX M MEM/WB WB Shift left 2 Registers PC EX/MEM = M u x Instruction memory ALU Data memory M u x M u x Sign extend M u x Forwarding unit P&H Fig. 6-41 הרצאת פסיקות044262 תכן לוגי 17 MIPS במימוש מצונר שלALU טיפול בגלישות IF.Flush EX.Flush Hazard detection unit 8000 0180 ID.Flush ID/EX M u x 0 WB 0 Control 0 M u x 1 M U X EX/MEM M WB 0 EX IF/ID EPC 0 1 M U X MEM/WB M WB Cause 4 Shift left 2 Registers PC = M u x Instruction memory ALU M u x Data memory M u x Sign extend M u x Forwarding unit P&H Fig. 6-42 הרצאת פסיקות044262 תכן לוגי 18 סיכום • חריגה ) (exceptionפועלת בדומה לקריאה לשגרה ,אלא שהשגרה היא חלק ממערכת ההפעלה ,ולא מהתוכנית • חריגה יכולה להיות יזומה ע"י: .I התוכנית עצמה .IIבעיות בביצוע התוכנית .IIIגורמים מחוץ למעבד .חריגות כאלה נקראות פסיקות )(interrupts • חריגות היזומות ע"י התוכנית עצמה צפויות ,ומתבצעות כפקודה רגילה • חריגות הנובעות מבעיות בביצוע התוכנית יכולות להופיע בכל שלבי ביצוע פקודה • מערכת ההפעלה תחליט האם בסיום הטיפול לחזור לתוכנית במקום שעצרה ,או להפסיק את ביצועה 19 תכן לוגי 044262הרצאת פסיקות סיכום (המשך) • חריגות היזומות ע"י גורמים מחוץ למעבד (פסיקות) יכולות להופיע בכל שלב במהלך כל פקודה • פסיקות נענות בין סיום ביצוע פקודה אחת לבין תחילת ביצוע הפקודה הבאה • זיהוי הגורם לפסיקה יכול להיעשות ע"י טעינת קוד זיהוי לרגיסטר המיועד למטרה זו ,או ע"י בחירת כתובת בה מאוחסן ווקטור הפסיקה המתאים • שילוב הטיפול בחריגות בבקרת המעבד כך שמהירות הביצוע של הפקודות לא תיפגע הוא אתגר רציני 20 תכן לוגי 044262הרצאת פסיקות
© Copyright 2024