במאמר זה תלמדו על ההבדל בין ISR ו קריאת פונקציה , אבל לפני שנדון בהבדלים, עליך לדעת בקצרה על שיחת ה-ISR והפונקציה.
bash לשרשור מחרוזות
מה זה ISR?
שגרת שירות פסיקה (ISR) היא שגרת תוכנה שחומרה מפעילה בתגובה להפרעה. ISR בוחן פסיקה, קובע כיצד לטפל בה, מבצע אותה ומחזיר ערך פסיקה לוגי. אם לא נדרש טיפול נוסף, ה-ISR מודיע לקרנל עם ערך החזרה. ISR חייב לפעול במהירות רבה כדי למנוע האטה בפעולת המכשיר ובפעולת כל ה-ISR בעדיפות נמוכה יותר.
למרות ש-ISR עשוי להעביר נתונים מאוגר CPU או יציאת חומרה למאגר זיכרון, בדרך כלל, הוא מסתמך על חוט פסיקה ייעודי (או משימה), הנקרא פתיל שירות פסיקה (IST), כדי לבצע את רוב העיבוד הנדרש. אם נדרש עיבוד נוסף, ה-ISR מחזיר ערך פסיקה לוגי לקרנל. לאחר מכן הוא ממפה מספר פסיקה פיזית לערך פסיקה לוגי.
מנגנון של טיפול בהפרעות
להלן מנגנון הטיפול בהפסקות בשלבים הבאים, כגון:
- פסיקה היא מצב שגורם למעבד להשעות את התוכנית הנוכחית ולהפעיל ISR. ISR היא תוכנית שנכתבה במיוחד כדי לטפל במצב שגרם להפסקה.
- לאחר טיפול בפסיקה, המעבד חוזר לתוכנית הראשית, בדיוק בהוראה הבאה שבה הוא עזב.
- בהעברת נתונים מונעת פסיקה, בכל פעם שהתקן הקלט/פלט מוכן להעברת הנתונים, הוא יפריע למעבד. ב-ISR, המעבד יבצע את העברת הנתונים.
- שיטה זו עדיפה על פני סקר מכיוון שה-CPU לא צריך לבזבז זמן בבדיקת מצב התקן הקלט/פלט. מקלדת היא דוגמה טובה לגישת קלט/פלט מונעת פסיקה.
- במקום לבדוק את המעבד, המקלדת צריכה להפריע למעבד כאשר מקש נלחץ. כך לא יתבזבז זמן בבדיקה חוזרת ונשנית של המקלדת כאשר המשתמש אינו מקליד כלל.
- התקן הקלט/פלט מבקש הפרעה על ידי שליחת ה- $overline{INTR}$ אות למעבד.
- בכל פעם שהמעבד מקבל $overline{INTR}$ אות, הוא משלים את ביצוע ההוראה הנוכחית ולאחר מכן מבצע את ISR. כאשר המעבד מוכן, הוא שולח אות אישור דרך ה- בזמן קַו.
- ISR מבוצע, וה-CPU חוזר לתוכנית הראשית.
- התקני קלט/פלט מכבים את $overline{INTR}$ אות לאחר ביצוע.
לדוגמה: בדוגמה למטה, העברת קלט/פלט על ידי קלט/פלט מונע פסיקה.
- אם התקן קלט/פלט שרוצה לבצע העברת נתונים עם המעבד חייב להפריע למעבד.
- פסיקה היא מצב שגורם למעבד לבצע שגרת שירות פסיקה.
- ב-ISR, המעבד יבצע העברת נתונים עם התקן ה-I/O.
בדוגמה זו, הפסק את הבקשה על ידי לחיצה על מקש המקלדת,
- במקום שהמעבד יבדוק אם מקש נלחץ, המקלדת קוטעת את המעבד בעת לחיצה על מקש.
- ב-ISR של המקלדת, שהוא חלק מתוכנת דרייבר המקלדת, המעבד יקרא את הנתונים מהמקלדת.
היתרונות של ISR
להלן היתרונות הבאים של ISR, כגון:
- אירועים אסינכרוניים של ISR יכולים להתרחש בכל עת במהלך הפעלת התוכנית.
- ISR שומר את המחשב האישי, מדגים ורושם בערימה, משבית את כל ההפסקות וטוען את הכתובת של ה-ISR.
- לא יכול להיות ל-ISR טיעונים שניתן להעביר אליו.
- ISR לא יכול להחזיר ערכים.
- ISR מאפשר את ההפסקות.
- באופן כללי, ISR קטן מכיוון שהוא לוקח זמן של תהליך אחר.
- לחלק מ-ISR יש מחסנית משלהם.
מהי Call Function?
קריאת פונקציה נקראת גם שיחת תת-שגרה. תת שגרה היא קבוצה של הוראות הדרושה שוב ושוב לתוכנית. זה חלק מתוכנית גדולה יותר שאחראית לביצוע משימה ספציפית. התוכנית הגדולה יותר עשויה להפעיל עומס עבודה כבד, ויתכן שתת-השגרה מבצעת רק משימה פשוטה, שגם היא בלתי תלויה בקידוד התוכנית שנותר.
פונקציה מקודדת בצורה כזו שניתן לקרוא לה מספר פעמים וממקומות שונים (אפילו מתוך פונקציות אחרות). כאשר פונקציה נקראת, המעבד עשוי להגיע למקום שבו נמצא הקוד של הפונקציה ולבצע את הוראות הפונקציה אחת אחת. לאחר השלמת הפונקציות, המעבד יחזור בדיוק למקום בו הפסיק וימשיך בביצוע החל מהפקודה הבאה.
יישר תמונת css
פונקציות הן כלי נהדר לשימוש חוזר בקוד. שפות תכנות מודרניות רבות תומכות בפונקציות. אוסף של פונקציות נקרא א סִפְרִיָה . ספריות משמשות לעתים קרובות כאמצעי לשיתוף ותוכנות מסחר. במקרים מסוימים, התוכנית כולה יכולה להיות רצף של תתי שגרות.
במקרה של מעבד 8086, תת שגרה מופעלת על ידי a שִׂיחָה הוראה, והחזרות בקרה על ידי א ימין הוראה. זה מקטין את גודל התוכנית.
ההבדל בין ISR ל- Function Call
יש לקרוא לפונקציה במפורש והיא חלק מאותו הקשר וחוט ביצוע כמו המתקשר שלה. ISR חומרה אינו נקרא במפורש אלא מופעל על ידי אירוע חיצוני כלשהו. ההקשר של השרשור הנוכחי נשמר אוטומטית כאשר נקראת פסיקה לפני החלפת ההקשר ל-ISR.
בתמורה, מתג ההקשר ההפוך מתרחש, משחזר את מצב המעבד לפני ההפרעה כך שהביצוע ממשיך מנקודת ההפרעה. להלן עוד כמה הבדלים בין ISR לקריאת פונקציה.
ISR | שיחת פונקציה |
---|---|
ההפרעה מופעלת בדרך כלל על ידי מיקרו-מעבד אות פנימי או חיצוני במקום ביצוע הוראות. ה-ISR מבוצע לאחר שמירת המצב הנוכחי של התוכנית בערימה. ISR מבצעת משימות שונות בהתאם למכשיר המופסק או להוראות שנכתבו על ידי מתכנת. | קריאת הפונקציה מופעלת על ידי ביצוע הוראות, המבצעות את המשימות הספציפיות ומקטינות את גודל התוכנית. |
החומרה קובעת את הכתובת של ה-ISR. כתובת ה-ISR כתובה בתוך טבלת וקטור הפסיקות, וכתובת ה-ISR עבור כל פסיקה קבועה. | הכתובת של תת-השגרה כתובה בתוך ההוראה, הכתובה בתוך קוד התוכנית הראשי. |
ISR משמש עבור כל המשימות למטרות כלליות. | קריאות פונקציה מתבצעות עבור משימות ספציפיות לתוכנית. |
כאשר מתרחשת הפסקה במהלך ביצוע תוכנית נוכחית, לכן, לאחר ביצוע ההוראה הנוכחית, המעבד מבצע ISR. לאחר ביצוע ה-ISR, על המעבד לחדש את התוכנית בדיוק כפי שהתרחשה לפני ההפרעה. לשם כך מאוחסנים תוכן המחשב, אוגרי µP וכמה תנאי סטטוס. האוסף של כל תנאי סיביות המצב במיקרו-מעבד נקרא PSW (מילת סטטוס תוכנית).
| כאן, רק מחשב מאוחסן על הערימה כדי לקבל את הכתובת של ההוראה הבאה בתוכנית הראשית. תת-השגרה חייבת לקבל גישה לנתונים מתת-השגרה המתקשרת ולהחזיר תוצאות לאותה תת-שגרה. לכן, פרמטרים של תת-שגרה וקישור נתונים מתבצעים. ניתן לעשות זאת באמצעות
|