Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

מבוא למערכות מחשב ואסמבלי

Ähnliche Präsentationen


Präsentation zum Thema: "מבוא למערכות מחשב ואסמבלי"—  Präsentation transkript:

1 מבוא למערכות מחשב ואסמבלי
מצגת 1 תכנית הלימודים ופרק המבוא

2 תכנית הלימודים נושא זה עוסק בעקרונות פיתוח תוכניות בשפת סף, ובהכרת הקשר בין המבנה (ארכיטקטורה) של המעבד של המחשב האישי לתוכנה. המטרות העיקריות של המקצוע הם: להקנות לתלמיד היכרות עם הארכיטקטורה של המחשב האישי – הכרת היחידות הבסיסיות במיקרומחשב והקשר ביניהם. לאפשר היכרות והתנסות בפיתוח תוכניות בשפת סף. להבין כיצד מתבצעת תוכנית בשפת סף במחשב. להכיר את ההתפתחויות שחלו במחשבים מודרניים שנועדו לשפר את זמן הריצה של תוכנות מחשב. מטח אוגוסט 2005

3 ספר הלימוד: פרק 1 המחשב הדיגיטלי 1.1 מבוא 1.2 מודל מופשט של מחשב
פרק 1 המחשב הדיגיטלי 1.1 מבוא 1.2 מודל מופשט של מחשב 1.3 מבנה מחשב פשוט ואופן ביצוע ההוראות בשפת מכונה 1.4 הקשר בין יחידות המחשב פרק 2 ייצוג מידע במחשב 2.1 מבוא 2.2 ייצוג מספרים שלמים 2.3 ייצוג מספרים ממשיים 2.4 ייצוג טקסט 2.5 ייצוג תמונה 2.6 יחידות זיכרון לאחסון מידע במחשב מטח אוגוסט 2005

4 ספר הלימוד (המשך): פרק 3 פעולות אריתמטיות על ייצוג בינארי במחשב
פרק 3 פעולות אריתמטיות על ייצוג בינארי במחשב 3.1 חיבור וחיסור מספרים בינאריים בלתי מכוונים 3.2 שיטות לייצוג מספרים בינאריים מכוונים 3.3 חיבור וחיסור מספרים בינאריים שלמים מכוונים 3.4 תחום הייצוג של מספרים בינאריים שלמים מכוונים ובלתי מכוונים פרק 4 שפת אסמבלי והמודל התכנותי של מעבד 8086 4.1 מבוא 4.2 המודל התכנותי של ה-8086 4.3 ארגון הזיכרון במעבד 8086 4.4 כתיבת תכנית בשפת אסמבלי 4.5 הגדרת משתנים בשפת אסמבלי נספח – תיאור תהליך הרצת התכנית

5 ספר הלימוד (המשך): פרק 5 תכנות בסיסי בשפת אסמבלי 5.1 מבוא
פרק 5 תכנות בסיסי בשפת אסמבלי 5.1 מבוא 5.2 הוראות להעברת נתונים 5.3 הוראות אריתמטיות – חיבור וחיסור 5.4 הוראות בקרה 5.5 הוראות כפל וחילוק 5.6 הוראות לוגיות 5.7 הוראות הזזה וסיבוב פרק 6 שיטות מיעון, מערכים ורשומות 6.1 הצהרה על מערכים ורשומות 6.2 שיטות מיעון 6.3 מיעון מיידי Immediate addressing 6.4 מיעון אוגר Register addressing 6.5 מיעון ישיר Direct addressing mode 6.6 מיעון עקיף בעזרת אוגר Indirect Addressing Register 6.7 מיעון אינדקס (Direct Indexed Mode) 6.8 מיעון בסיסBase Relative Addressing 6.9 מיעון אינדקס-בסיס Based Indexed Addressing Modes מטח אוגוסט 2005

6 ספר הלימוד (המשך): פרק 7 מחסנית, שגרות ומקרו 7.1 מבוא
פרק 7 מחסנית, שגרות ומקרו 7.1 מבוא 7.2 כתיבת פרוצדורה וזימונה 7.3 המחסנית ומצביע המחסנית 7.4 העברת פרמטרים 7.5 מימוש משתנים מקומיים 7.6 העברת מערך כפרמטר לפרוצדורה 7.7 מימוש פונקציות 7.8 פונקציה רקורסיבית 7.9 מקרו

7 ספר הלימוד (המשך): פרק 8 עיבוד מחרוזות ובלוקים של נתונים
פרק 8 עיבוד מחרוזות ובלוקים של נתונים 8.1 הגדרת מחרוזות בשפת אסמבלי 8.2 מבנה של הוראות מחרוזת 8.3 העתקת מחרוזות – ההוראה MOVS 8.4 חזרה על פעולת ההעתקה 8.5 כתיבת תווים במחרוזת – ההוראה (Store a String) STOS 8.6 קריאת תו ממחרוזת – ההוראה LODS (Load a String) 8.7 השוואת מחרוזות ההוראה CMPS (CoMPare String) 8.8 חיפוש תו במחרוזת הוראה SCAS (SCAn String) 8.9 טבלאות תרגום וההוראה XLAT מטח אוגוסט 2005

8 ספר הלימוד (המשך): פרק 9 פסיקות וקלט-פלט 9.1 מבוא
פרק 9 פסיקות וקלט-פלט 9.1 מבוא 9.2 שימוש בשגרת השירות של DOS 9.3 מנגנון ביצוע פסיקות במעבד 8086 9.4 קריאה ושינוי של פסיקה 9.5 הוראות IN ו- OUT פרק 10 ארכיטקטורה של מעבדים מתקדמים 10.1 ההשפעה של ההתפתחות הטכנולוגית על מבנה מעבדים מתקדמים 10.2 מבנה האוגרים במעבדים מתקדמים 10.3 ארכיטקטורת "צינור הוראות" (pipelining) 10.4 ארגון זיכרון

9 פדגוגיה בעיות: הצעות: מושגים רבים חדשים שילוב מהיר של התנסות
סדר הלימוד:הצגת חומרה קודם? הצעות: מבט-על מופשט והעמקה בצורה ספירילית להציג פרק 3 (עיבוד על ייצוג בינארי יחד עם פרק 5) שימוש בסימולטור קישור לידע קיים במדעי המחשב התייחסות לתפישות של תלמידים על המחשב ואופן השימוש בו מטח אוגוסט 2005

10 ספרות שפת סף 8086/88 הוצאת בי"ס לטכנולוגיה של או"פ
ארגון המחשב ותכנותו – הוצאת או"פ משפחת המיקרופרוססרים 8086/88, ג'ון אופנבק, תרגום לעברית של או"פ Computer Organization and Assembly Language Programming, Thorne M. The 80x86 Family, Design, Programming and Interfacing, Uffenbeck J. Structured Computer Organization, by Andrew Tanenbaum מטח אוגוסט 2005

11 פרק ראשון מבוא מטרות תכנים: הצגת מבט-על של מחשב ואופן ביצוע תכנית
הצגת הסיבות ללימוד המקצוע הכרת המושגים הבאים: תכנה, חומרה, ארכיטקטורה, ארגון, מהדר/מפרש, שפות נמוכות ושפות עיליות, ארכיטקטורת פון ניומן תכנים: ארכיקטורה וארגון של מחשב מחזור הבאה-ביצוע של הוראות ומבנה מחשב פשוט היסטוריה: התפתחות של מחשבים מטח אוגוסט 2005

12 המחשב הדיגיטאלי מחשב המחשב דיגיטאלי הוא מכונה המורכבת מרכיבים רבים ובאמצעותו, ניתן לפתור בעיות שונות שפתרונן מוגדר כתכנה. חומרה (hardware): אוסף הרכיבים של המחשב החל מהתקנים היקפיים(חיצוניים) כמו מקלדת, עכבר, ... וכלה ברכיבים הפנימיים כמו מעבד, זיכרון ועוד. מורכב מאלפי מעגלים אלקטרוניים ורכיבים מכאניים

13 המחשב הדיגיטאלי התכנה (software): הוא מונח המתייחס לאוסף של תכניות מחשב המורכבות מהוראות ונתונים. סוגי תכנה: אוסף תכניות שמספקות פונקציות שרות כלליות למשתמש במחשב, כגון מערכת הפעלה, מהדרים, ... יישומים מסוגים שונים - נועדו לביצוע משימות מוגדרות, כגון: מעבד תמלילים, תכנה לניהול ספרית וידאו, משחק מחשב וכדומה. מטח אוגוסט 2005

14 חמרה ותכנה הפרדה בין חמרה ותכנה התלות הדדית: מחשב
הפרדה מאפשרת להתייחס למחשב כאל מכונה למטרות כלליות, בו ניתן להריץ מגוון של יישומים שונים על אותה החמרה, לדוגמה: ממעבדי תמלילים, גיליונות אלקטרוניים, מוזיקה, מולטימדיה יישומי תקשורת ועוד. התלות הדדית: התכנה מגדירה מה המחשב צריך לבצע או את אופן הפעולה של החמרה, ומכאן התכנה שולטת בחמרה. החמרה מגדירה איזה סוג תכנה תוכל לפעול עליה, במלים אחרות, אלו הוראות ניתן יהיה לכתוב ואיך תפעל התכנית.

15 היבטים שונים משתמש מחשב מהנדס/ארכיטקט מתכנת שפות תכנות מהדרים יישומים
ממשק משתמש GUI מהנדס/ארכיטקט רכיבים אלקטרוניים טכנולוגיה מחשב מתכנת שפות תכנות מהדרים מטח אוגוסט 2005

16 שפת המחשב שפות נמוכותLow level language
שפת מכונה (Machine Language) בשפה בינארית הוראה אוסף 0 ו- 1 שפה אסמבלי או שפת סף (Assembly language) בשפת סף במקום מספרים בינאריים יש קודים מנמוניים (Mnemonic codes) . קוד מנמוני נכתב באותיות לטיניות, והוא מורכב ממילה או מקיצור של מילה המייצגת פעולה שיש לבצע. לדוגמה: ADD, CMP (CoMPare) לכל הוראה בשפת סף יש הוראה בשפת מכונה חסרון – תלות בחומרה , חוסר ניידות

17 שפת המחשב שפות עיליות High level language
איך מתכנת "מתקשר" עם המחשב? שפות עיליות הן מופשטות הוראות בהן דומות לשפה טבעית והן מגדירות פעולות בצורה לוגית בלי להתייחס לחמרת המחשב. לדוגמה, כדי לכתוב הוראת קלט אנו משתמשים במילה המציינת פעולת הקריאה (read) ורשימה של משתנים בהם יאחסנו נתונים אנו לא מתייחסים כלל למקלדת, למבנה, לאופן הפעולה והקישור למחשב יתרון - אין תלות בחומרה , ניידות מטח אוגוסט 2005

18

19 תיווך בין שפת המכונה לשפה עילית
קובץ exe תרגום משפה עילית לשפת מכונה: הידור או פירוש לכל סוג מחשב מהדר או מפרש מתאים להעביר תכנית ממחשב למחשב עם חמרה שונה - מהדרים שוב מטח אוגוסט 2005

20 תפישה* חדשה ב - JAVA * לא בקורס מטח אוגוסט 2005

21 מודל מכונה וירטואלית הנחות:
תיאור מופשט (אבסטרקטי) מאפשר להבין את המבנה ועקרונות של הפעולה של המחשב מבלי לרדת לפרטים של אופן המימוש רמות הפשטה: תכנית נכתבת למכונה וירטואלית בשפה L1 יש אפשרות לתרגם לתכנית בשפה L0 L0 מתבצעת על מכונה M מטח אוגוסט 2005

22 תכנה חמרה מטח אוגוסט 2005

23 מודל השכבות רמה 0 : רמה 1: ארכיטקטורה של ארגון של המכונה
שערים לוגיים ופעולות לוגיות מימוש רכיבים כמו אוגרים, מונים, מסכמים מבוסס על רכיבים אלקטרוניים רמה 1: ארכיטקטורה של ארגון של המכונה ( hardware system architecture- HAS) מתאר באופן עקרוני כיצד המחשב פועל כדי לבצע את הוראות המכונה. מהן היחידות העיקריות במחשב ומה הקשר ביניהם, איזה מידע זורם בין היחידות השונות

24 מודל השכבות רמה 2: ארכיטקטורה של אוסף הוראות המכונה
רמה 2: ארכיטקטורה של אוסף הוראות המכונה (Instruction Set Architecture - ובקיצור ISA) מהן הפעולות שמחשב מסוגל לבצע, למשל: האם כפל היא אחת מפעולות של המחשב או שלביצוע הכפל עלינו להשתמש בפעולות חיבור בלבד מבנה של הוראה סוגי נתונים בהם המחשב מטפל ואופן הגישה אליהם.

25 בקורס זה אנו מתייחסים בהרחבה לרמות 1,2 ו- 4
מודל השכבות רמה 3 – מערכת הפעלה (operating system) מערכת הפעלה היא תכנה המתווכת בין משתמש מחשב (משתמש ביישום או מתכנת) לבין החמרה ומטפלת בהקצאת משאבי המחשב ובביצוע פעולות הדרושות להרצת תכנית. מערכת הפעלה מרחיבה את ISA ומספקת שירותים נוספים לדוגמה, מערכת הפעלה מטפלת בהרצה של תכניות מספר תכניות במקביל מערכת הפעלה מספקת שירותים שונים וביניהם טיפול בקבצים השמורים על זיכרונות חיצוניים, דיסק קשיח למשל, ובאחזורם. רמה 4 – שפת אסמבלי (מתורגמת לשפת מכונה) רמה 5 – שפה עילית (מתורגמת לשפת מכונה) בקורס זה אנו מתייחסים בהרחבה לרמות 1,2 ו- 4 מטח אוגוסט 2005

26 ארכיטקטורה וארגון המחשב
ארכיטקטורה (Architecture): מאפיינים של מחשב מנקודת מבט של מתכנת: פעולות שמחשב מסוגל לבצע, למשל, האם כפל היא אחת מפעולות של המחשב או שלביצוע הכפל עלינו להשתמש בפעולות חיבור בלבד; מבנה של הוראה; סוגי נתונים בהם המחשב מטפל ואופן הגישה אליהם. מתייחס לשאלה “מה” המחשב יודע לעשות? רמה 2 ISA – אוסף הוראות המכונה, רמה 1 - HSA מטח אוגוסט 2005

27 ארכיטקטורה וארגון המחשב
ארגון (Organization): מנקודת מבט של ארכיטקט/מהנדס, מתאר באופן עקרוני כיצד המחשב פועל כדי לבצע את הוראות: באילו רכיבי חומרה אנו משתמשים בהוראה, מהן היחידות העיקריות במחשב ומה הקשר ביניהם, איזה מידע זורם בין היחידות השונות. הגדרה לוגית של המעגלים הדרושים לביצוע הוראות המכונה, למשל האם פעולת כפל תמומש בעזרת חומרה (מעגל אלקטרוני) או בתכנה על ידי סדרה של פעולות חיבור. רמה 1 HSA, רמה 0 המכונה הדיגטאלית

28 ארכיטקטורה וארגון המחשב
במחשבים אישיים נשמר עקרון תאימות (Compatibility): תכניות שנכתבו למחשבים ישנים (שנות ה- 80) מורצים גם במחשבים מודרניים: ISA של מחשב מודרני כולל ISA של מחשב ישן HAS והמימוש של מחשב ישן שונה מזה של מחשב מודרני

29 למה ללמוד שפת סף/שפת מכונה?
דרך טובה ללמוד את מבנה המחשב והקשר בין תכנה לחמרה וכך לשפר את ההבנה והתכניות בשפות עיליות כשמריצים רקורסיה למה יש בעיה של זיכרון? למה מתקבלת תוצאה נכונה כשמחברים שני מספרים שלמים גדולים? איך משפיעים מבני התכנות שבהם אנו משתמשים על זמן ביצוע התכנית? כתיבת יישומים המתייחסים להתקני חמרה וחלקים ממערכת ההפעלה יישומים של זמן אמת (כיום משתמשים גם בשפות עיליות – שפת C) בכתיבת קומפיילרים צריך להכיר את ISA מטח אוגוסט 2005

30 ארכיטקטורת פון ניומן von Neumann architecture
הארכיטקטורה של מחשב מושפעת מגורמים רבים כמו: טכנולוגיה, שפות תכנות, יישומים, היסטוריה של התפתחות המחשבים וגם ההתפתחות הצפויה בתחום המחשוב. רב המחשבים היום מבוססים על ארכיטקטורה פון ניומן שפותחה לפני כשישים שנה פון ניומן וצוות של מדענים פתחו בשנת 1951 מחשב שנקרא EDVAC המבוסס על רעיון מהפכני בארכיטקטורה שלו.

31 ארכיטקטורת פון ניומן von Neumann architecture
עקרון התכנית המאוחסנת (stored program ( לפיו תכנית מאוחסנת כמספרים באותו זיכרון בו מאוחסנים הנתונים.   מבנה סכמתי המעבד (Processor) תפקידו לבצע את התכנית יחידת הזיכרון (Memory) בה מאוחסנים נתונים והוראות · יחידת הקלט/פלט (I/O Devices) משמשת לקליטת נתונים מהמשתמש ולהצגת תוצאות של ביצוע התכנית ·   ערוצי תקשורת הנקראים פסים (bus) והם מקשרים בין יחידות שונות ומעבירים מידע מיחידה ליחידה. מטח אוגוסט 2005

32 איך מתבצעת תכנית במחשב? כותבים תכנית ומתרגמים אותה לשפת מכונה
בעזרת מערכת ההפעלה טוענים ומריצים ההרצה כוללת מספר פעולות שהן שקופות מבחינתנו וביניהן: התכנית בשפת מכונה והנתונים של התכנית נטענים לזיכרון תהליך ביצוע של הוראות התכנית: לכל הוראה מתבצע מחזור הבאה-ביצוע הכולל שני שלבים :   שלב הבאה (fetch) – קריאת ההוראה ופענוחה   שלב ביצוע (execute) ההוראה מטח אוגוסט 2005

33 ארכיטקטורה של "מחשב" פשוט
ארכיטקטורה של "מחשב" פשוט כדי להבין את הארכיטקטורה (ISA ו- HAS) של מחשב: נתכנן “מחשב” פשוט בארכיטקטורת פון ניומן. נגדיר שפת מכונה בסיסית באמצעותה נכתוב תכניות ה"מחשב" הפשוט יוכל לבצע את מחזור הבאה-ביצוע של תכנית המאוחסנת בזיכרון מטרות פדגוגיות: מבט-על להבין את המבנה של הוראה בשפת מכונה להבין איך מתבצעת הוראה שימוש במודל פשוט יסייע להבין בהמשך את אופן פעולה של מחשבים מתקדמים: המודל הפשוט יכיל תיאור של הרכיבים שמגדירים מצב תכנית בתהליך ביצוע מחזור הבאה-ביצוע מטח אוגוסט 2005

34 ארכיטקטורה של "מחשב" פשוט
ארכיטקטורה של "מחשב" פשוט הזיכרון לאחסון הוראות ונתונים הזיכרון בנוי כמערך חד-ממדי המכיל 100 תאים: לכל תא בזיכרון יש כתובת שהיא מספר בין 0 ל- 99. בכל תא ניתן לאחסן מספר עשרוני (שלם וחיובי) בן 6 ספרות שהוא: הוראה, נתון או כתובת של תא בזיכרון. המעבד יכול לפנות לכל תא בזיכרון על ידי ציון כתובת התא ולבצע אחת משתי הפעולות הבאות א. קריאה של תוכן התא ב. כתיבה נתון (כתיבת הוראות מתבצעת בנפרד מהרצת התכנית). מטח אוגוסט 2005

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

36 ארכיטקטורה של "מחשב" פשוט
ארכיטקטורה של "מחשב" פשוט אירגון יחידת הבקרה: אוגר (register) יחידת זיכרון: גודלה תא אחד יכול להכיל מספר בן 6 ספרות (כמו תא בזיכרון) אין צורך בכתובת ואנו פונים אליו בשם שניתן לאוגר. שני אוגרים חשובים: אוגר IP משמש לשמירה של הכתובת של ההוראה שעל המעבד להביא מהזיכרון והוא נקרא מצביע להוראה (Instruction Pointer). אוגר IR משמש לשמירת ההוראה שהובאה מהזיכרון אל המעבד והוא נקרא אוגר הוראות) Instruction Register) ובו משתמשים לצורך פענוח ההוראה. רכיבים וספים שלא נתייחס אליהם: יחידה לחישוב כתובת, יחידה לטיפול בפניה לפסים, יחידה לפענוח הוראות וכדומה

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

38 ארכיטקטורה של "מחשב" פשוט
ארכיטקטורה של "מחשב" פשוט יחידות זיכרון בהן משתמש ה- ALU יחידות זיכרון לשמירת נתונים עליהם מתבצעות הפעולות אילוץ חומרה: כל פעולה אריתמטית או לוגית (חיבור/השוואה) שמבצעת היחידה האריתמטית לוגית, מתבצעת על נתונים שנמצאים באוגרים אלו. במחשב שלנו יש 2 אוגרים למטרות כליליות אותם נכנה כ: DR1 ו- DR2. אוגר נוסף הנקרא אוגר דגלים FR (Flag Register) תפקידו לשמור תוצאות של ביצוע פעולות לוגיות לדוגמה, בביצוע השוואה האם X = Y? צריך לשמור מידע (אמת או שקר)

39 מבנה סכמתי של "מחשב" פשוט מבנה סכמתי זה יאפשר לתאר מצב של מחשב לאחר ביצוע הוראה מסוימת מטח אוגוסט 2005

40 הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA
הוראה בשפה עילית מכילה: פעולה הנקראת אופרטור (operator) שהיא מילה שמורה אופרנדים (operand) עליהם מתבצעת הפעולה. לדוגמה את ההוראה: שים את הערך 8 במשתנה A ניתן לרשום בשפה עילית בצורה הבאה: בשפת C בשפת פסקל A: = 8; A= 8; הוראת ההשמה כוללת אופרטור '=' ושני אופרנדים: המשתנה A והקבוע 8. ההוראות בשפה עילית מורכבות ויכולות להכיל מספר אופרטרים ומספר אופרנדים. לדוגמה ההוראה (פסאודו-קוד) : B : A=A+B+C כוללת שני אופרטרים: '+' ו- '=', ושלושה אופרנדים A, B ו-C. בשפה עילית ישנן הוראות מורכבות עוד יותר כגון הוראת for או if הכוללת תנאים לוגיים מורכבים ועוד.

41 הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA
המבנה של הוראות במחשב שלנו הוא הרבה יותר פשוט. כל הוראה צריכה לכלול רק: אופרטור אחד מספר האופרנדים משתנה בין 1 ל- 2. למה? אילוץ חומרה: מבנה הוראות פשוט מאפשר לבנות חמרה מתאימה המפענחת את ההוראה בצורה חד משמעית.

42 הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA
במחשב שלנו הוראה תהיה אחת משני המבנים הבאים הבא: operator operand1 operator operand1 operand2  קיימים שלושה סוגים של אופרנדים: נתון אוגר (DR1או DR2 ) תא זיכרון (משתנה בשפה עילית) . נניח כי כל ההוראה נשמרת בתא אחד בזיכרון (כלומר המספר שמייצג את הוראה יהיה לכל היותר בן 6 ספרות).

43 שיקולים בהגדרת אוסף הוראות של מחשב -ISA
אילו הוראות יכיל אוסף הוראות של המחשב הפשוט? קובע את כללי המשחק מנקודת מבט של מתכנת, צריך לתת תמיכה במימוש של שפות עיליות יותר פקודות  יותר מעגלי פענוח ומעגלים למימוש איך מעבד ידע לפענח הוראה? איך מעבד יבדיל בין הוראה לנתון? הטכנולוגיה הקיימת: האם ניתן לממש פעולה במעגל? מחיר? זמן ביצוע? מטח אוגוסט 2005

44 הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA
נגדיר 5 הוראות שיאפשרו לכתוב תכניות פשוטות ולתאר את תהליך הביצוע שלהן: הוראת השמה הוראת חיבור הוראת השוואה הוראת קפיצה בלתי מותנית הוראת קפיצה מותנית

45 הוראת ההשמה א. מבנה לוגי של הוראת השמה הכוללת שני אופרנדים
א.   מבנה לוגי של הוראת השמה הכוללת שני אופרנדים משמעותה היא: אופרנד2 ← אופרנד1 אילוצים: אופרנד1 חייב להיות אוגר משני האוגרים DR1, DR2 אופרנד2 יכול להיות אחד משלוש האפשרויות: נתון, אוגר או תא בזיכרון. החלטה זו היא אילוץ בו אנו חייבים להתחשב בכתיבת תכניות במחשב זה. לדוגמה, כדי להעתיק נתון מתא זיכרון אחד לתא אחר, נצטרך להשתמש בשתי הוראות השמה: הראשונה תעתיק נתון מתא זיכרון לאוגר , והוראה שנייה תעתיק אופרנד2 ,אופרנדmov 1

46 קידוד הוראת השמה הוראה בשפת מכונה היא מספר ובמחשב שלנו הוא מספר עשרוני עד 6 ספרות צריך פענוח חד משמעי ולדעת להבחין בין סוגי ההשמה השונים. לדוגמה בין: MOV DR1, DR2 MOV DR1, 23 צריכים לקבוע קוד מספרי ייחודי לכל פעולה ולכל אוגר כך שפענוח של הוראה יהיה חד משמעי. אחת האפשרויות להבדיל בין הוראות השמה השונות היא : לייצג כל הוראת השמה בקוד אחר. ובהתאם במחשב שלנו יש חמש הוראות השמה המתוארות בטבלה הבאה

47 הוראת השמה בשפת מכונה של המחשב הפשוט
גם לאוגרים נקבע קודים מספריים: קוד 01 מציין את האוגר DR1 קוד 02 מציין את האוגר DR2. הנתונים בהם המחשב יכול לטפל הם: שלמים בין 0 ל- 99 בלבד!!

48 הוראת השמה בשפת מכונה של המחשב הפשוט
כיצד המעבד יבדיל בין קוד 01 שהוא קוד ההוראה mov1 לקוד 01 שהוא אוגר 1DR? תשובה: בהתאם למבנה הקבוע של ההוראה בה שני אופרנדים: xx yy zz xx מציין שתי ספרות של קוד פעולה yy מציין שתי ספרות של אופרנד1 zz מציין שתי ספרות של אופרנד2. כך ההוראה המתחילה ב- 01 מתייחסת לקוד פעולה (mov1), ואילו 01 המופיע במיקום 3 ו- 4 (yy ) או במיקום 5 ו -6 (zz) הוא האוגר 1DR.

49 הוראת השמה בשפת מכונה של המחשב הפשוט
דוגמאות: התייחסות למשתנים משתנה הוא ייצוג לוגי של מקום אחסון בזיכרון. לכל משתנה יש כתובת ותא בו מאוחסן הנתון. לדוגמה, כי לרשום הוראת ההשמה a=27, כאשר למשתנה a מאוחסן בתא שכתובתו 10 מטח אוגוסט 2005

50 הוראת החיבור בשפת מכונה של המחשב הפשוט
הוראת חיבור כוללת שני אופרנדים וניתנת לתיאור בצורה הבאה: אופרנד2 ,אופרנד1 add סוגי אופרנדים מותרים: אופרנד1 חייב להיות אוגר משני האוגרים DR1, DR2 אופרנד2 יכול להיות אחד משתי אפשרויות: נתון או אוגר. תוצאת החיבור מושמת תמיד באופרנד 1.  

51 הוראת החיבור בשפת מכונה של המחשב הפשוט
לדוגמה: איך נחבר משתנה בזיכרון: DR1= DR1+a ?

52 תכנית לדוגמה: A ו- B משתנים,לבצע את הפעולות A = 23 B = 54 A = A + B
תרגום לשפת מכונה

53 טעינת תכנית לדוגמה לזיכרון
טעינת תכנית לזיכרון : להוראות נקצה את הכתובות החל מ- 0, ובהתאם אוגר IP מאותחל לערך זה למשתנים נקצה את הכתובות: כתובת 10 למשתנה a כתובת 11 למשתנה b מטח אוגוסט 2005

54 הרצה – ביצוע מחזור הבאה-ביצוע לכל הוראה
ביצוע הוראה ראשונה: שלב ראשון הוא שלב ההבאה והוא כולל מספר פעולות: קריאת ההוראה עליה מצביע IP: המעבד קורא מהזיכרון את ההוראה הראשונה לביצוע שכתובתה שמור ב- IP ומאחסן אותה באוגר IR קידום אוגר תכנית: המעבד מקדם את האוגר IP ב- 1, כך שהוא מצביע על ההוראה הבאה (השנייה בתכנית) פענוח ההוראה: המעבד מפענח את ההוראה כדי לדעת מה עליו לבצע: קורא שתי ספרות ראשונות ומפענח את סוג ההוראה ואת סוגי האופרנדים במילון שלו

55 פענוח הוראות מילון של הוראות
קוד ההוראה 04 מפענח מטח אוגוסט 2005

56 מצב זיכרון ואוגרים לאחר סיום של ההבאה של ההוראה ראשונה mov4 A, 23
מטח אוגוסט 2005

57 שלב ביצוע של ההוראה הראשונה mov4 A, 23
המעבד כותב את הנתון 23 בתא שכתובתו 10. מצב האוגרים והזיכרון בסיום ההוראה הוא: מטח אוגוסט 2005

58 סיום מחזור הבאה-ביצוע של ההוראה השנייה mov4 B, 54
מטח אוגוסט 2005

59 סיום מחזור הבאה-ביצוע של ההוראה השלישית mov3 DR1, A
מטח אוגוסט 2005

60 סיום מחזור הבאה-ביצוע של ההוראה הרביעית MOV3 DR2, B
מטח אוגוסט 2005

61 מחזור הבאה-ביצוע של ההוראה החמישית ADD2 DR1, DR2
וכך הלאה... איך תכנית תסתיים? מטח אוגוסט 2005

62 סיום תכנית שתי אפשרויות: ההוראה סיים תכנית בלי אופרנדים: 00
להשתמש במונה של מספר הוראות בתכנית עוד חומרה (מונה), לא גמיש לשינויים להשתמש בהוראת סיום מיוחדת ההוראה סיים תכנית בלי אופרנדים: 00 מטח אוגוסט 2005

63 דוגמה שנייה לביצוע תכנית הכוללת הוראת ביצוע מותנה
דוגמה שנייה לביצוע תכנית הכוללת הוראת ביצוע מותנה תכניות רבות כוללות לא רק ביצוע הוראות באופן סדרתי אלא גם ביצוע מותנה (הוראות תנאי) ולולאות. לדוגמה, ברצוננו לבצע את הוראת התנאי הבאה: אם A = B אזי A = 2 אחרת B = 2 מטח אוגוסט 2005

64 עוד הוראות - הוראת השוואה
ההוראה להשוואה כוללת שני אופרנדים וניתנת לתיאור בצורה הבאה: אופרנד2 , אופרנד1 compare בשפת מכונה של המחשב שלנו: אופרנד1 חייב להיות אוגר נתונים (DR1 או DR2) אילו אופרנד2 יכול להיות נתון או אוגר. שתי הוראות השוואה שונות: מטח אוגוסט 2005

65 הוראת השוואה (המשך) תוצאה של פעולת השוואה היא אחת משני הערכים: אמת או שקר. היחידה אריתמטית לוגית מבצעת את פעולת ההשוואה ורושמת בהתאם לתוצאה את הערך 0 לציון אמת או 1 לציון שקר באוגר הדגלים. תפקידו של אוגר הדגלים: לשמור תוצאות של פעולות לוגיות ותכונות אחרות הנגרמות מפעולות חישוב (לדוגמה האם התוצאה היא אפס? האם התוצאה שלילית? וכדומה). מטח אוגוסט 2005

66 הוראת קפיצה מותנת מאפשרת לעבור להוראה מסוימת בתכנית שאינה בהכרח ההוראה עליה מצביע אוגר IP. בהוראה זו רק אופרנד אחד והוא נתון (בין 0 ל- 99) המציין כתובת של הוראה אליה נדלג. jumptrue operand קוד הוראה זו הוא: 10 פעולה זו דומה לפעולת ההוראה: then <תנאי> if (ללא else): מטח אוגוסט 2005

67 הוראת קפיצה מותנת אלגוריתם לביצוע ההוראה: אם ערך אוגר דגלים הוא 1 אזי
קפוץ בביצוע ההוראה הבאה להוראה שכתובתה נתון כאופרנד, אחרת המשך כרגיל להוראה הבאה עליה מצביע IP דוגמה, ההוראה משמעותה: אם ערך אוגר הדגלים 1 עבור לביצוע הוראה שבכתובת 03, אחרת המשך לביצוע ההוראה העוקבת להוראה נוכחית כדי לקפוץ לכתובת שנתון כאופרנד, המעבד צריך בזמן ביצוע ההוראה לשנות את ערכו של IP מטח אוגוסט 2005

68 ההוראה לקפיצה בלתי מותנת
בהוראה זו הקפיצה להוראה שכתובתה הוא האופרנד אינה תלוי באוגר הדגלים ומתבצעת תמיד jump operand קוד הוראה זו הוא: 11 אלגוריתם לביצוע ההוראה: קפוץ בביצוע ההוראה הבאה להוראה שכתובתה נתון כאופרנד, מטח אוגוסט 2005

69 תרגום תכנית לשפת מכונה אם A = B אזי A = 2 אחרת B = 2 מטח אוגוסט 2005

70 ביצוע תכנית לדוגמה 2 לביצוע תכנית זו יש 2 אפשרויות:
מסלול אחד של ביצוע במקרה ו- A שווה ל- B מסלול שני של ביצוע במקרה ש- A שונה מ- B. מצב התחלתי לאחר טעינת התכנית לזיכרון: מטח אוגוסט 2005

71 תיאור תהליך ביצוע התכנית במקרה ש- A שונה מ- B
במקרה כזה מתבצעות ההוראות הבאות: DR1 = A DR2 = B האם DR1 = DR2 ? אוגר הדגלים מתעדכן ל- 0 jumptrue 06 נכשל B = 2 jump 07 end מטח אוגוסט 2005

72 ביצוע ההוראה jump 07 שלב ההבאה: קרא את ההוראה שבכתובת 05
קדם IP להוראה הבאה, IP=6 פענח את ההוראה שלב ביצוע: שנה ערך אוגר IP ל- 07 מטח אוגוסט 2005

73 תיאור תהליך ביצוע התכנית במקרה ש- A שווה ל- B
במקרה כזה מתבצעות ההוראות הבאות: DR1 = A DR2 = B האם DR1 = DR2 ? אוגר הדגלים מתעדכן ל- 1 jumptrue 06 מצליח A = 2 end הוראה jumptrue 06 מתבצעת בדומה להוראה jump מטח אוגוסט 2005

74 קשר בין יחידות המחשב נקודת מבט של ארכיטקטורה של החמרה HAS
כיצד מתבצע הקשר בין היחידות השונות במחשב? במחשב ישנם שלושה סוגים של פסים (אוסף מוליכים המקשרים בין יחידות שונות): פס הנתונים (Data bus) בו מועברים נתונים והוראות פס הכתובות (Address bus) בו מועברות כתובות של תאי זיכרון פס הבקרה (Control bus) בו מועברת סוג הפעולה: קריאה או כתיבה מספר המוליכים בפס קובע את גודל המידע שיכול להיות מועבר כשבכל פס מועבר 0 או 1. מטח אוגוסט 2005

75 קשר בין יחידות המחשב מטח אוגוסט 2005

76 מחזור קריאה מהזיכרון מטח אוגוסט 2005

77 מחזור כתיבה בזיכרון מטח אוגוסט 2005

78 סינכרון - שעון פנימי את קצב העבודה של המעבד מכתיבת שעון פנימי ש:
מסנכרן את פעולות המעבד, הפסים ושאר היחידות והוא טריגר לביצוע אירועים שונים אות שעון הוא אות ריבועי שעולה ל- ולאחר זמן מה יורד ל- 0 (1 ו- 0 מייצגים מתח) מחזור אחד : זמן של עליה ל- 1 וירידה ל- 0 תדר הוא מספר מחזורים בשניה נמדד כיום במאות מיליוני מחזורים בשנייה מטח אוגוסט 2005

79 שעון פנימי וקצב עבודה של מחשב
מחזור מכונה אחד מודד זמן ביצוע של פעולה אחת פעולות מתבצעות מחוץ למעבד – מעבד פונה לזיכרון או להתקן קלט/פלט הן פעולות יקרות כי היחידות החיצוניות איטיות בקריאה/כתיבה מזיכרון/לזיכרון במעבד פעולות = 4 מחזורי מכונה: הוצאת כתובת לפס כתובות, קביעת אות בקרה, מעבד ממתין לנתון, העברת נתון למעבד) קריאה/כתיבה מיחידות קלט/פלט פעולה עוד יותר איטית (תלוי בהתקן) הערכת זמן ביצוע של הוראות: לכל הוראה בשפת מכונה, מספק היצרן מספר מחזורי שעון לביצוע: יש איטיות ויש מהירות יותר הערכה: הוראות ארוכות (תלוי במספר אופרנדים והסוג שלהם) יארכו יותר זמן לקריאה. הוראות שביצוען לא דורש גישה לזיכרון(קלט/פלט) נוספת לזיכרון מעבר לזמן קריאת ההוראה עצמה מהיר יותר מטח אוגוסט 2005

80 שעון פנימי וקצב עבודה של מחשב
תדר הוא מספר מחזורים בשניה נמדד כיום במאות מיליוני מחזורים בשנייה, אז מחשבים מהירים מאוד מה אכפת לנו מזמן ביצוע הוראה בודדת? תשובה אחת – התדר שמוצג הוא זמן של ביצוע פעולה במעבד אבל ביצוע תוכנית יש פניה ליחידות חיצוניות 501MHz לא אומר זה מספר ההוראות שתתבצענה מטח אוגוסט 2005

81 אבני דרך בהתפתחות של מחשבים
התפתחויות בשלושה מישורים: בטכנולוגיה ארכיטקטורה תכנה פרה היסטוריה – מחשבים הם אנשים פיתוח מחשבונים – ביצוע משימות ייעודיות Pascaline של פסקל, מכונת צעדים של לייבניץ, בבג' אבי רעיון מכונה ליישומים כלליים, המכונה של הולריית מטח אוגוסט 2005

82 אבני דרך בהתפתחות של מחשבים
דור ראשון של מחשבים אלקטרוניים טכנולוגיה – שפופרות ריק ארכיטקטורה של פון ניומן ועקרון התכנית המאוחסנת תכנה: שפת מכונה ושפת אסמבלי דור שני של מחשבים אלקטרוניים ( ) טכנולוגיה – טרניזסטורים (מזעור, מהירות, חסכון באנרגיה) ארכיטקטורה: הוסיפו רכיבים שאפשרו גישה מהירה לאיברי מערך ויחידת חומרה לחישובים בשיטת נקודה צפה. תכנה: שפות עיליות (פורטרן, קובול) מטח אוגוסט 2005

83 אבני דרך בהתפתחות של מחשבים
דור שלישי ( ) טכנולוגיה – מעגלים מוכללים IC (integrated circuits ) ארכיטקטורה : פותחו טכניקות לתכנון מעבדים מורכבים יותר מה שאפשר לפתח טכניקות של תכנות מקבילי (הרצת מספר משימות על מעבד בודד). תכנה: שפת C, מערכת הפעלה UNIX דור רביעי ( ) טכנולוגיה – שיפור במעגלים מוכללים VLSI ארכיטקטורה : מחשב שלם על צ'יפ אחד -> הופעת מחשב אישי תכנה: פתוח שפות תכנות דקלרטיביות מטח אוגוסט 2005

84 אבני דרך בהתפתחות של מחשבים
דור 5 ( ) טכנולוגיה – מזעור, שפור בזכרונות (הקטנת זמן גישה , קבולת גדלה) ארכיטקטורה : עיבוד מבוזר - מעבדים משתפים פעולה כדי לעבד תוכנית אחת תכנה: שפות מונחות עצמים, פיתוח רשתות תקשורת דור שישי מ ואילך ארכיטקטורה : עיבוד מבוזר, מהירות עיבוד גדלה , מעבדים כפולי ליבה תכנה: רשת האינטרנט, JAVA, יישומי מולטימדיה מטח אוגוסט 2005

85 אבני דרך בהתפתחות של מחשבים
חוק מור: גורדון מור העלה השערה ב-1965, כי מספר הטרנזיסטורים לאינץ מרובע במעגלים מוכללים יכפיל את עצמו כל שנה. מה הגבול??? מטח אוגוסט 2005


Herunterladen ppt "מבוא למערכות מחשב ואסמבלי"

Ähnliche Präsentationen


Google-Anzeigen