מצגת של PowerPoint
Download
Report
Transcript מצגת של PowerPoint
מבוא למערכות מחשב ואסמבלי
מצגת 1
תכנית הלימודים ופרק המבוא
מטח אוגוסט 2005
1
תכנית הלימודים
• נושא זה עוסק בעקרונות פיתוח תוכניות בשפת סף ,ובהכרת
הקשר בין המבנה (ארכיטקטורה) של המעבד של המחשב
האישי לתוכנה.
• המטרות העיקריות של המקצוע הם:
–
–
–
–
להקנות לתלמיד היכרות עם הארכיטקטורה של המחשב האישי –
הכרת היחידות הבסיסיות במיקרומחשב והקשר ביניהם.
לאפשר היכרות והתנסות בפיתוח תוכניות בשפת סף.
להבין כיצד מתבצעת תוכנית בשפת סף במחשב.
להכיר את ההתפתחויות שחלו במחשבים מודרניים שנועדו לשפר
את זמן הריצה של תוכנות מחשב.
מטח אוגוסט 2005
2
ספר הלימוד:
פרק 1
1.1
1.2
1.3
1.4
פרק 2
2.1
2.2
2.3
2.4
2.5
2.6
המחשב הדיגיטלי
מבוא
מודל מופשט של מחשב
מבנה מחשב פשוט ואופן ביצוע ההוראות בשפת מכונה
הקשר בין יחידות המחשב
ייצוג מידע במחשב
מבוא
ייצוג מספרים שלמים
ייצוג מספרים ממשיים
ייצוג טקסט
ייצוג תמונה
יחידות זיכרון לאחסון מידע במחשב
מטח אוגוסט 2005
3
ספר הלימוד (המשך):
פרק 3
3.1
3.2
3.3
3.4
פעולות אריתמטיות על ייצוג בינארי במחשב
חיבור וחיסור מספרים בינאריים בלתי מכוונים
שיטות לייצוג מספרים בינאריים מכוונים
חיבור וחיסור מספרים בינאריים שלמים מכוונים
תחום הייצוג של מספרים בינאריים שלמים מכוונים ובלתי מכוונים
פרק 4שפת אסמבלי והמודל התכנותי של מעבד 8086
4.1מבוא
4.2המודל התכנותי של ה8086-
4.3ארגון הזיכרון במעבד 8086
4.4כתיבת תכנית בשפת אסמבלי
4.5הגדרת משתנים בשפת אסמבלי
נספח – תיאור תהליך הרצת התכנית
מטח אוגוסט 2005
4
ספר הלימוד (המשך):
פרק 5תכנות בסיסי בשפת אסמבלי
מבוא
5.1
הוראות להעברת נתונים
5.2
הוראות אריתמטיות – חיבור וחיסור
5.3
הוראות בקרה
5.4
הוראות כפל וחילוק
5.5
הוראות לוגיות
5.6
הוראות הזזה וסיבוב
5.7
פרק 6שיטות מיעון ,מערכים ורשומות
הצהרה על מערכים ורשומות
6.1
שיטות מיעון
6.2
מיעון מיידי Immediate addressing
6.3
מיעון אוגר Register addressing
6.4
מיעון ישיר Direct addressing mode
6.5
מיעון עקיף בעזרת אוגר Indirect Addressing Register
6.6
מיעון אינדקס )(Direct Indexed Mode
6.7
מיעון בסיסBase Relative Addressing
6.8
מיעון אינדקס-בסיס Based Indexed Addressing Modes
6.9
מטח אוגוסט 2005
5
ספר הלימוד (המשך):
פרק 7
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
מחסנית ,שגרות ומקרו
מבוא
כתיבת פרוצדורה וזימונה
המחסנית ומצביע המחסנית
העברת פרמטרים
מימוש משתנים מקומיים
העברת מערך כפרמטר לפרוצדורה
מימוש פונקציות
פונקציה רקורסיבית
מקרו
מטח אוגוסט 2005
6
ספר הלימוד (המשך):
פרק 8
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
עיבוד מחרוזות ובלוקים של נתונים
הגדרת מחרוזות בשפת אסמבלי
מבנה של הוראות מחרוזת
העתקת מחרוזות – ההוראה MOVS
חזרה על פעולת ההעתקה
כתיבת תווים במחרוזת – ההוראה (Store a String) STOS
קריאת תו ממחרוזת – ההוראה (Load a String) LODS
השוואת מחרוזות ההוראה (CoMPare String) CMPS
חיפוש תו במחרוזת הוראה (SCAn String) SCAS
טבלאות תרגום וההוראה XLAT
מטח אוגוסט 2005
7
ספר הלימוד (המשך):
פרק 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ארגון זיכרון
מטח אוגוסט 2005
8
פדגוגיה
• בעיות:
– מושגים רבים חדשים
– שילוב מהיר של התנסות
– סדר הלימוד:הצגת חומרה קודם?
• הצעות:
–
–
–
–
–
מבט-על מופשט והעמקה בצורה ספירילית
להציג פרק ( 3עיבוד על ייצוג בינארי יחד עם פרק )5
שימוש בסימולטור
קישור לידע קיים במדעי המחשב
התייחסות לתפישות של תלמידים על המחשב ואופן השימוש בו
מטח אוגוסט 2005
9
ספרות
הוצאת בי"ס לטכנולוגיה של או"פ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
10
2005 מטח אוגוסט
פרק ראשון מבוא
• מטרות
– הצגת מבט-על של מחשב ואופן ביצוע תכנית
– הצגת הסיבות ללימוד המקצוע
– הכרת המושגים הבאים :תכנה ,חומרה ,ארכיטקטורה ,ארגון,
מהדר/מפרש ,שפות נמוכות ושפות עיליות ,ארכיטקטורת פון
ניומן
• תכנים:
– ארכיקטורה וארגון של מחשב
– מחזור הבאה-ביצוע של הוראות ומבנה מחשב פשוט
– היסטוריה :התפתחות של מחשבים
מטח אוגוסט 2005
11
המחשב הדיגיטאלי
מחשב
• המחשב דיגיטאלי הוא מכונה המורכבת מרכיבים רבים
ובאמצעותו ,ניתן לפתור בעיות שונות שפתרונן מוגדר
כתכנה.
• חומרה ( :)hardwareאוסף הרכיבים של המחשב החל
מהתקנים היקפיים(חיצוניים) כמו מקלדת ,עכבר ... ,וכלה
ברכיבים הפנימיים כמו מעבד ,זיכרון ועוד.
– מורכב מאלפי מעגלים אלקטרוניים ורכיבים מכאניים
מטח אוגוסט 2005
12
המחשב הדיגיטאלי
• התכנה ( :)softwareהוא מונח המתייחס לאוסף של
תכניות מחשב המורכבות מהוראות ונתונים.
– סוגי תכנה:
• אוסף תכניות שמספקות פונקציות שרות כלליות למשתמש
במחשב ,כגון מערכת הפעלה ,מהדרים... ,
• יישומים מסוגים שונים -נועדו לביצוע משימות מוגדרות,
כגון :מעבד תמלילים ,תכנה לניהול ספרית וידאו ,משחק
מחשב וכדומה.
מטח אוגוסט 2005
13
חמרה ותכנה
מחשב
• הפרדה בין חמרה ותכנה
– הפרדה מאפשרת להתייחס למחשב כאל מכונה למטרות
כלליות ,בו ניתן להריץ מגוון של יישומים שונים על אותה
החמרה ,לדוגמה:
• ממעבדי תמלילים ,גיליונות אלקטרוניים ,מוזיקה ,מולטימדיה יישומי
תקשורת ועוד.
• התלות הדדית:
– התכנה מגדירה מה המחשב צריך לבצע או את אופן הפעולה
של החמרה ,ומכאן התכנה שולטת בחמרה.
– החמרה מגדירה איזה סוג תכנה תוכל לפעול עליה ,במלים
אחרות ,אלו הוראות ניתן יהיה לכתוב ואיך תפעל התכנית.
מטח אוגוסט 2005
14
היבטים שונים
רכיבים
אלקטרוניים
טכנולוגיה
יישומים
ממשק משתמש
GUI
משתמש
מחשב
מהנדס/ארכיטקט
מתכנת
שפות תכנות
מהדרים
מטח אוגוסט 2005
15
שפת המחשב
שפות נמוכות Low level language
• שפת מכונה )(Machine Language
– בשפה בינארית הוראה אוסף 0ו1 -
• שפה אסמבלי או שפת סף ()Assembly language
– בשפת סף במקום מספרים בינאריים יש קודים מנמוניים
(. )Mnemonic codes
– קוד מנמוני נכתב באותיות לטיניות ,והוא מורכב ממילה או
מקיצור של מילה המייצגת פעולה שיש לבצע.
– לדוגמהADD, CMP (CoMPare) :
– לכל הוראה בשפת סף יש הוראה בשפת מכונה
חסרון – תלות בחומרה ,חוסר ניידות
מטח אוגוסט 2005
16
שפת המחשב
שפות עיליות High level language
איך מתכנת "מתקשר" עם המחשב?
• שפות עיליות הן מופשטות
– הוראות בהן דומות לשפה טבעית והן מגדירות פעולות
בצורה לוגית בלי להתייחס לחמרת המחשב.
• לדוגמה ,כדי לכתוב הוראת קלט אנו משתמשים במילה
המציינת פעולת הקריאה ( )readורשימה של משתנים בהם
יאחסנו נתונים
• אנו לא מתייחסים כלל למקלדת ,למבנה ,לאופן הפעולה
והקישור למחשב
יתרון -אין תלות בחומרה ,ניידות
מטח אוגוסט 2005
17
מטח אוגוסט 2005
18
תיווך בין שפת המכונה לשפה עילית
קובץ exe
•תרגום משפה עילית לשפת מכונה :הידור או פירוש
•לכל סוג מחשב מהדר או מפרש מתאים
•להעביר תכנית ממחשב למחשב עם חמרה שונה -מהדרים שוב
מטח אוגוסט 2005
19
תפישה* חדשה ב JAVA -
* לא בקורס
מטח אוגוסט 2005
20
מודל מכונה וירטואלית
הנחות:
• תיאור מופשט (אבסטרקטי) מאפשר להבין את
המבנה ועקרונות של הפעולה של המחשב מבלי
לרדת לפרטים של אופן המימוש
• רמות הפשטה:
– תכנית נכתבת למכונה וירטואלית בשפה L1
– יש אפשרות לתרגם לתכנית בשפה L0
– L0מתבצעת על מכונה M
מטח אוגוסט 2005
21
תכנה
חמרה
מטח אוגוסט 2005
22
מודל השכבות
• רמה : 0
– שערים לוגיים ופעולות לוגיות
– מימוש רכיבים כמו אוגרים ,מונים ,מסכמים
– מבוסס על רכיבים אלקטרוניים
• רמה :1ארכיטקטורה של ארגון של המכונה
( )HAS -hardware system architecture
– מתאר באופן עקרוני כיצד המחשב פועל כדי לבצע את
הוראות המכונה.
– מהן היחידות העיקריות במחשב ומה הקשר ביניהם,
איזה מידע זורם בין היחידות השונות
מטח אוגוסט 2005
23
מודל השכבות
• רמה :2ארכיטקטורה של אוסף הוראות המכונה
( - Instruction Set Architectureובקיצור )ISA
–
–
–
–
מהן הפעולות שמחשב מסוגל לבצע ,למשל:
האם כפל היא אחת מפעולות של המחשב או שלביצוע
הכפל עלינו להשתמש בפעולות חיבור בלבד
מבנה של הוראה
סוגי נתונים בהם המחשב מטפל ואופן הגישה אליהם.
מטח אוגוסט 2005
24
מודל השכבות
• רמה – 3מערכת הפעלה )(operating system
– מערכת הפעלה היא תכנה המתווכת בין משתמש מחשב
(משתמש ביישום או מתכנת) לבין החמרה ומטפלת בהקצאת
משאבי המחשב ובביצוע פעולות הדרושות להרצת תכנית.
– מערכת הפעלה מרחיבה את ISAומספקת שירותים נוספים
• לדוגמה ,מערכת הפעלה מטפלת בהרצה של תכניות מספר תכניות
במקביל
• מערכת הפעלה מספקת שירותים שונים וביניהם טיפול בקבצים
השמורים על זיכרונות חיצוניים ,דיסק קשיח למשל ,ובאחזורם.
• רמה – 4שפת אסמבלי (מתורגמת לשפת מכונה)
• רמה – 5שפה עילית (מתורגמת לשפת מכונה)
בקורס זה אנו מתייחסים בהרחבה לרמות 1,2ו4 -
מטח אוגוסט 2005
25
ארכיטקטורה וארגון המחשב
ארכיטקטורה (:)Architecture
מאפיינים של מחשב מנקודת מבט של מתכנת:
פעולות שמחשב מסוגל לבצע ,למשל ,האם כפל היא אחת
מפעולות של המחשב או שלביצוע הכפל עלינו להשתמש
בפעולות חיבור בלבד;
מבנה של הוראה;
סוגי נתונים בהם המחשב מטפל ואופן הגישה אליהם.
מתייחס לשאלה “מה” המחשב יודע לעשות?
רמה – ISA 2אוסף הוראות המכונה ,רמה HSA - 1
מטח אוגוסט 2005
26
ארכיטקטורה וארגון המחשב
ארגון (:)Organization
מנקודת מבט של ארכיטקט/מהנדס ,מתאר באופן עקרוני כיצד
המחשב פועל כדי לבצע את הוראות:
• באילו רכיבי חומרה אנו משתמשים בהוראה,
• מהן היחידות העיקריות במחשב ומה הקשר ביניהם,
• איזה מידע זורם בין היחידות השונות.
• הגדרה לוגית של המעגלים הדרושים לביצוע הוראות המכונה,
למשל האם פעולת כפל תמומש בעזרת חומרה (מעגל אלקטרוני) או
בתכנה על ידי סדרה של פעולות חיבור.
רמה ,HSA 1רמה 0המכונה הדיגטאלית
מטח אוגוסט 2005
27
ארכיטקטורה וארגון המחשב
• במחשבים אישיים נשמר עקרון תאימות ):(Compatibility
תכניות שנכתבו למחשבים ישנים (שנות ה )80 -מורצים גם
במחשבים מודרניים:
– ISAשל מחשב מודרני כולל ISAשל מחשב ישן
– HASוהמימוש של מחשב ישן שונה מזה של מחשב מודרני
מטח אוגוסט 2005
28
למה ללמוד שפת סף/שפת מכונה?
• דרך טובה ללמוד את מבנה המחשב והקשר בין תכנה
לחמרה וכך לשפר את ההבנה והתכניות בשפות עיליות
– כשמריצים רקורסיה למה יש בעיה של זיכרון?
– למה מתקבלת תוצאה נכונה כשמחברים שני מספרים שלמים
גדולים?
– איך משפיעים מבני התכנות שבהם אנו משתמשים על זמן
ביצוע התכנית?
• כתיבת יישומים המתייחסים להתקני חמרה וחלקים
ממערכת ההפעלה
• יישומים של זמן אמת (כיום משתמשים גם בשפות עיליות
– שפת )C
• בכתיבת קומפיילרים צריך להכיר את ISA
מטח אוגוסט 2005
29
ארכיטקטורת פון ניומן
von Neumann architecture
• הארכיטקטורה של מחשב מושפעת מגורמים רבים כמו:
טכנולוגיה ,שפות תכנות ,יישומים ,היסטוריה של
התפתחות המחשבים וגם ההתפתחות הצפויה בתחום
המחשוב.
• רב המחשבים היום מבוססים על ארכיטקטורה פון ניומן
שפותחה לפני כשישים שנה
• פון ניומן וצוות של מדענים פתחו בשנת 1951מחשב
שנקרא EDVACהמבוסס על רעיון מהפכני
בארכיטקטורה שלו.
מטח אוגוסט 2005
30
ארכיטקטורת פון ניומן
von Neumann architecture
• עקרון התכנית המאוחסנת ( ( stored programלפיו תכנית
מאוחסנת כמספרים באותו זיכרון בו מאוחסנים הנתונים.
• מבנה סכמתי
• המעבד ( )Processorתפקידו לבצע את התכנית
• יחידת הזיכרון ( )Memoryבה מאוחסנים נתונים
והוראות
•· יחידת הקלט/פלט ) (I/O Devicesמשמשת לקליטת
נתונים מהמשתמש ולהצגת תוצאות של ביצוע התכנית
•· ערוצי תקשורת הנקראים פסים ( )busוהם מקשרים
בין יחידות שונות ומעבירים מידע מיחידה ליחידה.
מטח אוגוסט 2005
31
איך מתבצעת תכנית במחשב?
• כותבים תכנית ומתרגמים אותה לשפת מכונה
• בעזרת מערכת ההפעלה טוענים ומריצים
– ההרצה כוללת מספר פעולות שהן שקופות מבחינתנו
וביניהן :התכנית בשפת מכונה והנתונים של התכנית
נטענים לזיכרון
• תהליך ביצוע של הוראות התכנית:
לכל הוראה מתבצע מחזור הבאה-ביצוע הכולל
שני שלבים :
– שלב הבאה ( – )fetchקריאת ההוראה ופענוחה
– שלב ביצוע ( )executeההוראה
מטח אוגוסט 2005
32
ארכיטקטורה של "מחשב" פשוט
• כדי להבין את הארכיטקטורה ( ISAו )HAS -של מחשב:
– נתכנן “מחשב” פשוט בארכיטקטורת פון ניומן.
– נגדיר שפת מכונה בסיסית באמצעותה נכתוב תכניות
– ה"מחשב" הפשוט יוכל לבצע את מחזור הבאה-ביצוע של
תכנית המאוחסנת בזיכרון
מטרות פדגוגיות:
–
–
–
–
–
מבט-על
להבין את המבנה של הוראה בשפת מכונה
להבין איך מתבצעת הוראה
שימוש במודל פשוט יסייע להבין בהמשך את אופן פעולה של
מחשבים מתקדמים:
הרכיבים שמגדירים מצב
של
תיאור
המודל הפשוט יכיל
2005
אוגוסט
מטח
תכנית בתהליך ביצוע מחזור הבאה-ביצוע
33
ארכיטקטורה של "מחשב" פשוט
הזיכרון לאחסון הוראות ונתונים
• הזיכרון בנוי כמערך חד-ממדי המכיל 100תאים:
– לכל תא בזיכרון יש כתובת שהיא מספר בין 0ל.99 -
– בכל תא ניתן לאחסן מספר עשרוני (שלם וחיובי) בן 6
ספרות שהוא :הוראה ,נתון או כתובת של תא בזיכרון.
• המעבד יכול לפנות לכל תא בזיכרון על ידי ציון
כתובת התא ולבצע אחת משתי הפעולות הבאות
– א .קריאה של תוכן התא
– ב .כתיבה נתון (כתיבת הוראות מתבצעת בנפרד
מהרצת התכנית).
מטח אוגוסט 2005
34
ארכיטקטורה של "מחשב" פשוט
מבנה המעבד:
כדי לבצע מחזור הבאה-ביצוע המעבד כולל שתי יחידות עיקריות:
• יחידת בקרה המטפלת בשלב ההבאה (הכולל גם פענוח של הוראה)
• יחידת ביצוע המטפלת בביצוע החישובים
יחידת הבקרה
כדי לבצע את שלב ההבאה היא צריכה שני סוגים של מידע:
• כתובת של התא בה מאוחסנת ההוראה שעליה לבצע
• מילון כדי לדעת לפענח את ההוראה.
מטח אוגוסט 2005
35
ארכיטקטורה של "מחשב" פשוט
• אירגון יחידת הבקרה:
– אוגר ( )registerיחידת זיכרון:
• גודלה תא אחד
• יכול להכיל מספר בן 6ספרות (כמו תא בזיכרון)
• אין צורך בכתובת ואנו פונים אליו בשם שניתן לאוגר.
• שני אוגרים חשובים:
– אוגר IPמשמש לשמירה של הכתובת של ההוראה שעל המעבד
להביא מהזיכרון והוא נקרא מצביע להוראה ( Instruction
.)Pointer
– אוגר IRמשמש לשמירת ההוראה שהובאה מהזיכרון אל המעבד
והוא נקרא אוגר הוראות ) )Instruction Registerובו
משתמשים לצורך פענוח ההוראה.
•
רכיבים וספים שלא נתייחס אליהם :יחידה לחישוב כתובת ,יחידה לטיפול בפניה לפסים ,יחידה
לפענוח הוראות וכדומה
מטח אוגוסט 2005
36
ארכיטקטורה של "מחשב" פשוט
יחידת הביצוע
• יחידה אריתמטית לוגית ()ALU
– תפקידה לבצע את הוראות התכנית.
• הוראות בתכנית מגדירות פעולות שונות כמו:
העברת נתונים ממקום למקום ,פעולות
אריתמטיות ( חיבור ,חיסור ,כפל ,חילוק),
פעולות לוגיות כמו השוואה בין ערכים
מטח אוגוסט 2005
37
ארכיטקטורה של "מחשב" פשוט
• יחידות זיכרון בהן משתמש הALU -
– יחידות זיכרון לשמירת נתונים עליהם מתבצעות
הפעולות
• אילוץ חומרה :כל פעולה אריתמטית או לוגית
(חיבור/השוואה) שמבצעת היחידה האריתמטית לוגית,
מתבצעת על נתונים שנמצאים באוגרים אלו .במחשב שלנו יש
2אוגרים למטרות כליליות אותם נכנה כ DR1 :ו.DR2 -
– אוגר נוסף הנקרא אוגר דגלים (Flag Register) FR
• תפקידו לשמור תוצאות של ביצוע פעולות לוגיות
– לדוגמה ,בביצוע השוואה האם ?X = Yצריך לשמור מידע (אמת או
שקר)
מטח אוגוסט 2005
38
מבנה סכמתי של "מחשב" פשוט
זיכרון
מעבד
יחידת בקרה
כתובת
יחידת ביצוע
DR1
IR
DR2
IP
FR
0
1
2
3
4
5
6
7
8
9
10
99
מבנה סכמתי זה יאפשר לתאר מצב של מחשב לאחר ביצוע הוראה מסוימת
מטח אוגוסט 2005
39
הגדרת אוסף הוראות ה"מחשב" הפשוט ISA-
• הוראה בשפה עילית מכילה:
– פעולה הנקראת אופרטור ( )operatorשהיא מילה שמורה
– אופרנדים ( )operandעליהם מתבצעת הפעולה.
• לדוגמה את ההוראה :שים את הערך 8במשתנה A
ניתן לרשום בשפה עילית בצורה הבאה:
בשפת פסקל
בשפת C
;A: = 8
;A= 8
• הוראת ההשמה כוללת אופרטור '=' ושני אופרנדים :המשתנה Aוהקבוע .8
• ההוראות בשפה עילית מורכבות ויכולות להכיל מספר אופרטרים
ומספר אופרנדים.
– לדוגמה ההוראה (פסאודו-קוד) A=A+B+C : B :
כוללת שני אופרטרים '+' :ו ,'=' -ושלושה אופרנדים A, Bו.C-
בשפה עילית ישנן הוראות מורכבות עוד יותר כגון הוראת forאו ifהכוללת
תנאים לוגיים מורכבים ועוד.
מטח אוגוסט 2005
40
הגדרת אוסף הוראות ה"מחשב" הפשוט ISA-
• המבנה של הוראות במחשב שלנו הוא הרבה יותר
פשוט .כל הוראה צריכה לכלול רק:
– אופרטור אחד
– מספר האופרנדים משתנה בין 1ל.2 -
• למה? אילוץ חומרה :מבנה הוראות פשוט מאפשר
לבנות חמרה מתאימה המפענחת את ההוראה
בצורה חד משמעית.
מטח אוגוסט 2005
41
הגדרת אוסף הוראות ה"מחשב" הפשוט ISA-
• במחשב שלנו הוראה תהיה אחת משני המבנים הבאים
הבא:
• operator operand1
• operator operand1 operand2
• קיימים שלושה סוגים של אופרנדים:
– נתון
– אוגר (DR1או ) DR2
– תא זיכרון (משתנה בשפה עילית) .
• נניח כי כל ההוראה נשמרת בתא אחד בזיכרון (כלומר
המספר שמייצג את הוראה יהיה לכל היותר בן 6ספרות).
מטח אוגוסט 2005
42
שיקולים בהגדרת אוסף הוראות של מחשב -
ISA
• תכנון ISAהוא מורכב וכולל שיקולים רבים:
– אילו הוראות יכיל אוסף הוראות של המחשב הפשוט?
• קובע את כללי המשחק מנקודת מבט של מתכנת ,צריך לתת
תמיכה במימוש של שפות עיליות
• יותר פקודות יותר מעגלי פענוח ומעגלים למימוש
– איך מעבד ידע לפענח הוראה?
– איך מעבד יבדיל בין הוראה לנתון?
– הטכנולוגיה הקיימת:
• האם ניתן לממש פעולה במעגל? מחיר? זמן ביצוע?
מטח אוגוסט 2005
43
הגדרת אוסף הוראות ה"מחשב" הפשוט ISA-
נגדיר 5הוראות שיאפשרו לכתוב תכניות פשוטות
ולתאר את תהליך הביצוע שלהן:
.1
.2
.3
.4
.5
הוראת השמה
הוראת חיבור
הוראת השוואה
הוראת קפיצה בלתי מותנית
הוראת קפיצה מותנית
מטח אוגוסט 2005
44
הוראת ההשמה
א .מבנה לוגי של הוראת השמה הכוללת שני אופרנדים
אופרנד, 2אופרנדmov 1
משמעותה היא :אופרנד ← 2אופרנד1
• אילוצים:
– אופרנד 1חייב להיות אוגר משני האוגרים DR1, DR2
– אופרנד 2יכול להיות אחד משלוש האפשרויות :נתון ,אוגר או
תא בזיכרון.
החלטה זו היא אילוץ בו אנו חייבים להתחשב בכתיבת תכניות במחשב זה.
לדוגמה ,כדי להעתיק נתון מתא זיכרון אחד לתא אחר ,נצטרך להשתמש בשתי
הוראות השמה :הראשונה תעתיק נתון מתא זיכרון לאוגר ,והוראה שנייה
תעתיק
מטח אוגוסט 2005
45
קידוד הוראת השמה
• הוראה בשפת מכונה היא מספר ובמחשב שלנו הוא מספר
עשרוני עד 6ספרות
• צריך פענוח חד משמעי ולדעת להבחין בין סוגי ההשמה
השונים .לדוגמה בין:
MOV DR1, DR2
MOV DR1, 23
• צריכים לקבוע קוד מספרי ייחודי לכל פעולה ולכל אוגר כך
שפענוח של הוראה יהיה חד משמעי.
• אחת האפשרויות להבדיל בין הוראות השמה השונות היא :
לייצג כל הוראת השמה בקוד אחר.
ובהתאם במחשב שלנו יש חמש הוראות השמה המתוארות
בטבלה הבאה
מטח אוגוסט 2005
46
הוראת השמה בשפת מכונה של המחשב הפשוט
מספר מציין
קוד פעולה
תיאור מילולי של ההוראה
mov
01
השם קבוע באוגר
mov1 register, constant
השם אוגר באוגר
02 mov2 register1, register2
השם ערך תא זיכרון באוגר
mov3 register, memory
03
השם קבוע בתא זיכרון
mov4 memory, constant
04
05 mov5 memory, register
השם אוגר בתא זיכרון
גם לאוגרים נקבע קודים מספריים:
• קוד 01מציין את האוגר DR1
•קוד 02מציין את האוגר .DR2
הנתונים בהם המחשב יכול לטפל הם :שלמים בין 0ל 99 -בלבד!!
מטח אוגוסט 2005
47
הוראת השמה בשפת מכונה של המחשב הפשוט
• כיצד המעבד יבדיל בין קוד 01שהוא קוד ההוראה
mov1לקוד 01שהוא אוגר ?DR1
• תשובה :בהתאם למבנה הקבוע של ההוראה בה שני
אופרנדים:
xx yy zz
– xxמציין שתי ספרות של קוד פעולה
– yyמציין שתי ספרות של אופרנד1
– zzמציין שתי ספרות של אופרנד.2
• כך ההוראה המתחילה ב 01 -מתייחסת לקוד פעולה
) ,(mov1ואילו 01המופיע במיקום 3ו ) yy( 4 -או
במיקום 5ו (zz) 6-הוא האוגר .DR1
מטח אוגוסט 2005
48
הוראת השמה בשפת מכונה של המחשב
הפשוט
• דוגמאות:
ההוראה בשפת מכונה
תיאור ההוראה
השם את הערך 27באוגר DR1
השם ערך אוגר DR2באוגר DR1
mov1 DR1, 27
01 01 27
mov2 DR1, DR2
02 01 02
התייחסות למשתנים
משתנה הוא ייצוג לוגי של מקום אחסון בזיכרון .לכל משתנה יש כתובת
ותא בו מאוחסן הנתון.
לדוגמה ,כי לרשום הוראת ההשמה ,a=27כאשר למשתנה aמאוחסן בתא
שכתובתו 10
השם את הערך 27בכתובת 10בזיכרון
מטח אוגוסט 2005
mov4 a, 27
04 10 27
49
הוראת החיבור בשפת מכונה של המחשב
הפשוט
•
•
•
•
•
הוראת חיבור כוללת שני אופרנדים וניתנת לתיאור
בצורה הבאה:
אופרנד, 2אופרנדadd 1
סוגי אופרנדים מותרים:
אופרנד 1חייב להיות אוגר משני האוגרים DR1, DR2
אופרנד 2יכול להיות אחד משתי אפשרויות :נתון או
אוגר.
תוצאת החיבור מושמת תמיד באופרנד .1
מטח אוגוסט 2005
50
הוראת החיבור בשפת מכונה של המחשב
הפשוט
מספר מציין קוד פעולה
תיאור מילולי של ההוראה
חבר קבוע באוגר
add1 register, constant
06
חבר ערך שני אוגרים
add2 register1, register2
07
לדוגמה:
ההוראה בשפת מכונה
תיאור ההוראה
DR1? DR1 + 27
add1 DR1, 27
06 01 27
DR1? DR1 + DR2
add DR1, DR2
07 01 02
איך נחבר משתנה בזיכרון? DR1= DR1+a :
מטח אוגוסט 2005
51
תכנית לדוגמה:
Aו B -משתנים,לבצע את הפעולות
A = 23
B = 54
A=A+B
תרגום לשפת מכונה
תיאור הפעולה
הוראה בשפת מכונה
mov4 A, 23
04 10 23
mov4 B, 54
04 11 54
mov3 DR1, A
03 01 10
mov3 DR2, B
03 02 11
add2 DR1, DR2
07 01 02
mov5 A DR1
05 10 01
מטח אוגוסט 2005
52
טעינת תכנית לדוגמה לזיכרון
מעבד
יחידת בקרה
זיכרון
יחידת ביצוע
04 10 23
04 11 54
DR1
IR
03 02 11
DR2
00
03 01 10
IP
08 01 02
05 10 01
FR
טעינת תכנית לזיכרון :
•להוראות נקצה את הכתובות החל מ,0 -
•ובהתאם אוגר IPמאותחל לערך זה
?
?
0
1
2
3
4
5
6
7
8
9
10
11
99
•למשתנים נקצה את הכתובות:
כתובת 10למשתנה a
כתובת 11למשתנה b
מטח אוגוסט 2005
53
הרצה – ביצוע מחזור הבאה-ביצוע לכל הוראה
.1ביצוע הוראה ראשונה:
• שלב ראשון הוא שלב ההבאה והוא כולל מספר פעולות:
– קריאת ההוראה עליה מצביע :IP
המעבד קורא מהזיכרון את ההוראה הראשונה לביצוע
שכתובתה שמור ב IP -ומאחסן אותה באוגר IR
– קידום אוגר תכנית:
המעבד מקדם את האוגר IPב ,1 -כך שהוא מצביע על
ההוראה הבאה (השנייה בתכנית)
– פענוח ההוראה:
המעבד מפענח את ההוראה כדי לדעת מה עליו לבצע:
•
קורא שתי ספרות ראשונות ומפענח את סוג ההוראה ואת סוגי
האופרנדים במילון שלו
מטח אוגוסט 2005
54
פענוח הוראות מילון של הוראות
04 10 27
קוד ההוראה
04
מספר מציין
תיאור מילולי של ההוראה
קוד פעולה
מפענח
55
01
mov1 register, constant
02
mov2 register1, register2
03
mov3 register, memory
04
mov4 memory, constant
05
mov5 memory, register
06
add1 register, constant
07
add2 register1, register2
2005 מטח אוגוסט
מצב זיכרון ואוגרים לאחר סיום של ההבאה של ההוראה ראשונה
mov4 A, 23
מעבד
יחידת בקרה
זיכרון
יחידת ביצוע
04 10 23
04 11 54
DR1
04 10 23
IR
01
IP
03 01 10
03 02 11
DR2
08 01 02
05 10 01
FR
?
?
מטח אוגוסט 2005
0
1
2
3
4
5
6
7
8
9
10
11
56
שלב ביצוע של ההוראה הראשונה
mov4 A, 23
• המעבד כותב את הנתון 23בתא שכתובתו .10
מצב האוגרים והזיכרון בסיום ההוראה הוא:
מעבד
יחידת בקרה
זיכרון
יחידת ביצוע
DR1
04 10 23
IR
DR2
01
IP
FR
מטח אוגוסט 2005
0 04 10 23
1 04 11 54
2 03 01 10
3 03 02 11
4 08 01 02
5 05 10 01
6
7
8
9
10 23
? 11
57
סיום מחזור הבאה-ביצוע של ההוראה השנייה
mov4 B, 54
מעבד
יחידת בקרה
זיכרון
יחידת ביצוע
DR1
03 01 10
IR
DR2
02
IP
FR
מטח אוגוסט 2005
0 04 10 23
1 04 11 54
2 03 01 10
3 03 02 11
4 08 01 02
5 05 10 01
6
7
8
9
10 23
11 54
58
סיום מחזור הבאה-ביצוע של ההוראה השלישית
mov3 DR1, A
זיכרון
מעבד
יחידת ביצוע
יחידת בקרה
23
03 01 10
DR1
IR
DR2
IP 03
FR
מטח אוגוסט 2005
0 04 10 23
1 04 12 54
2 03 01 10
3 03 02 11
4 08 01 02
5 05 10 01
6
7
8
9
10 23
11 54
59
סיום מחזור הבאה-ביצוע של ההוראה הרביעית
MOV3 DR2, B
מעבד
יחידת בקרה
זיכרון
יחידת ביצוע
04 10 23
04 11 54
23
03 02 11
IR
04
IP
DR1
03 01 10
03 02 11
54
DR2
08 01 02
05 10 01
FR
00
23
54
מטח אוגוסט 2005
0
1
2
3
4
5
6
7
8
9
10
11
60
מחזור הבאה-ביצוע של ההוראה החמישית
ADD2 DR1, DR2
מעבד
יחידת בקרה
זיכרון
יחידת ביצוע
DR1 77
IR 08 01 02
54
05
DR2
IP
FR
וכך הלאה...
0 04 10 23
1 03 11 54
2 03 01 10
3 03 02 11
4 08 01 02
5 05 10 01
6 00
7
8
9
10 23
11 54
איך תכנית תסתיים?
מטח אוגוסט 2005
61
סיום תכנית
• שתי אפשרויות:
– להשתמש במונה של מספר הוראות בתכנית
– עוד חומרה (מונה) ,לא גמיש לשינויים
– להשתמש בהוראת סיום מיוחדת
• ההוראה סיים תכנית בלי אופרנדים:
00
מטח אוגוסט 2005
62
דוגמה שנייה לביצוע תכנית הכוללת
הוראת ביצוע מותנה
• תכניות רבות כוללות לא רק ביצוע הוראות באופן
סדרתי אלא גם ביצוע מותנה (הוראות תנאי)
ולולאות.
• לדוגמה ,ברצוננו לבצע את הוראת התנאי הבאה:
אם A = Bאזי
A=2
אחרת
B= 2
מטח אוגוסט 2005
63
עוד הוראות -הוראת השוואה
• ההוראה להשוואה כוללת שני אופרנדים וניתנת לתיאור בצורה
הבאה:
אופרנד , 2אופרנדcompare 1
בשפת מכונה של המחשב שלנו:
• אופרנד 1חייב להיות אוגר נתונים ( DR1או )DR2
• אילו אופרנד 2יכול להיות נתון או אוגר.
שתי הוראות השוואה שונות:
תיאור מילולי של ההוראה
האם אוגר= לנתון ?
האם אוגר =1לאוגר? 2
מספר המציין קוד פעולה
compare1 reg, const
compare1 reg1, reg2
מטח אוגוסט 2005
08
09
64
הוראת השוואה (המשך)
• תוצאה של פעולת השוואה היא אחת משני הערכים:
אמת או שקר.
• היחידה אריתמטית לוגית מבצעת את פעולת ההשוואה
ורושמת בהתאם לתוצאה את הערך 0לציון אמת או 1
לציון שקר באוגר הדגלים.
• תפקידו של אוגר הדגלים :לשמור תוצאות של פעולות
לוגיות ותכונות אחרות הנגרמות מפעולות חישוב
(לדוגמה האם התוצאה היא אפס? האם התוצאה
שלילית? וכדומה).
מטח אוגוסט 2005
65
הוראת קפיצה מותנת
• מאפשרת לעבור להוראה מסוימת בתכנית שאינה
בהכרח ההוראה עליה מצביע אוגר .IP
• בהוראה זו רק אופרנד אחד והוא נתון (בין 0ל)99 -
המציין כתובת של הוראה אליה נדלג.
jumptrue operand
קוד הוראה זו הוא10 :
פעולה זו דומה לפעולת ההוראה< then :תנאי> if
(ללא :)else
מטח אוגוסט 2005
66
הוראת קפיצה מותנת
אלגוריתם לביצוע ההוראה:
• אם ערך אוגר דגלים הוא 1אזי
– קפוץ בביצוע ההוראה הבאה להוראה שכתובתה נתון כאופרנד,
אחרת
– המשך כרגיל להוראה הבאה עליה מצביע IP
דוגמה ,ההוראה 10 03משמעותה :אם ערך אוגר הדגלים 1עבור לביצוע
הוראה שבכתובת ,03אחרת המשך לביצוע ההוראה העוקבת להוראה נוכחית
• כדי לקפוץ לכתובת שנתון כאופרנד ,המעבד צריך בזמן ביצוע
ההוראה לשנות את ערכו של IP
מטח אוגוסט 2005
67
ההוראה לקפיצה בלתי מותנת
בהוראה זו הקפיצה להוראה שכתובתה הוא האופרנד אינה
תלוי באוגר הדגלים ומתבצעת תמיד
jump operandקוד הוראה זו הוא11 :
אלגוריתם לביצוע ההוראה:
– קפוץ בביצוע ההוראה הבאה להוראה שכתובתה נתון כאופרנד,
מטח אוגוסט 2005
68
תרגום תכנית לשפת מכונה
אם A = Bאזי
A=2
אחרת
B= 2
מיקום הוראה
בזיכרון
הוראה בשפת מכונה
תיאור ההוראה
03 01 10
0
DR2 = B
03 02 11
1
האם ? DR1 = DR2
09 01 02
2
jumptrue 06
10 06
3
04 11 02
4
jump 07
11 07
5
A= 2
04 10 02
6
end
00
7
DR1 = A
B=2
מטח אוגוסט 2005
69
ביצוע תכנית לדוגמה 2
• לביצוע תכנית זו יש 2אפשרויות:
– מסלול אחד של ביצוע במקרה ו A -שווה לB -
– מסלול שני של ביצוע במקרה ש A -שונה מ.B -
• מצב התחלתי לאחר טעינת התכנית לזיכרון:
מעבד
יחידת בקרה
IR
זיכרון
יחידת ביצוע
03 01 10
03 02 11
03 02 11
DR1 10 01 02
09 01 02
10 06
04 11 02
00
IP
10 06
DR2
11 07
04 10 02
04 11 02
11 07
FR
00
מטח אוגוסט 2005
04 10 02
00
40
30
0
1
2
3
4
5
6
7
8
9
10
11
70
תיאור תהליך ביצוע התכנית במקרה ש A -שונה מB -
• במקרה כזה מתבצעות ההוראות הבאות:
DR1 = A
DR2 = B
האם ? DR1 = DR2אוגר הדגלים מתעדכן ל0 -
נכשל
jumptrue 06
B=2
jump 07
end
מטח אוגוסט 2005
71
ביצוע ההוראה jump 07
שלב ההבאה:
• קרא את ההוראה שבכתובת 05
• קדם IPלהוראה הבאהIP=6 ,
• פענח את ההוראה
שלב ביצוע:
• שנה ערך אוגר IPל07 -
מטח אוגוסט 2005
72
תיאור תהליך ביצוע התכנית במקרה ש A -שווה לB -
• במקרה כזה מתבצעות ההוראות הבאות:
DR1 = A
DR2 = B
האם ? DR1 = DR2אוגר הדגלים מתעדכן ל1 -
מצליח
jumptrue 06
A=2
end
הוראה jumptrue 06מתבצעת בדומה להוראה jump
מטח אוגוסט 2005
73
קשר בין יחידות המחשב
• נקודת מבט של ארכיטקטורה של החמרה HAS
• כיצד מתבצע הקשר בין היחידות השונות במחשב?
• במחשב ישנם שלושה סוגים של פסים (אוסף מוליכים
המקשרים בין יחידות שונות):
– פס הנתונים ( )Data busבו מועברים נתונים והוראות
– פס הכתובות ( )Address busבו מועברות כתובות של תאי
זיכרון
– פס הבקרה ( )Control busבו מועברת סוג הפעולה :קריאה או
כתיבה
מספר המוליכים בפס קובע את גודל המידע שיכול להיות מועבר
כשבכל פס מועבר 0או .1
מטח אוגוסט 2005
74
קשר בין יחידות המחשב
מטח אוגוסט 2005
75
מחזור קריאה מהזיכרון
מטח אוגוסט 2005
76
מחזור כתיבה בזיכרון
מטח אוגוסט 2005
77
סינכרון -שעון פנימי
את קצב העבודה של המעבד מכתיבת שעון פנימי ש:
•מסנכרן את פעולות המעבד ,הפסים ושאר היחידות והוא טריגר לביצוע
אירועים שונים
• אות שעון הוא אות ריבועי שעולה ל -ולאחר זמן מה יורד ל 1( 0 -ו0 -
מייצגים מתח)
•מחזור אחד :זמן של עליה ל 1 -וירידה ל0 -
•תדר הוא מספר מחזורים בשניה נמדד כיום במאות מיליוני מחזורים
בשנייה
one cycle
1
מטח אוגוסט 2005
0
78
שעון פנימי וקצב עבודה של מחשב
•
•
•
•
מחזור מכונה אחד מודד זמן ביצוע של פעולה אחת
פעולות מתבצעות מחוץ למעבד – מעבד פונה לזיכרון או להתקן קלט/פלט הן
פעולות יקרות כי היחידות החיצוניות איטיות
בקריאה/כתיבה מזיכרון/לזיכרון במעבד 4 8086פעולות = 4מחזורי מכונה:
הוצאת כתובת לפס כתובות ,קביעת אות בקרה ,מעבד ממתין לנתון ,העברת נתון
למעבד)
קריאה/כתיבה מיחידות קלט/פלט פעולה עוד יותר איטית (תלוי בהתקן)
• הערכת זמן ביצוע של הוראות:
– לכל הוראה בשפת מכונה ,מספק היצרן מספר מחזורי שעון לביצוע :יש
איטיות ויש מהירות יותר
– הערכה:
• הוראות ארוכות (תלוי במספר אופרנדים והסוג שלהם) יארכו יותר זמן
לקריאה.
• הוראות שביצוען לא דורש גישה לזיכרון(קלט/פלט) נוספת לזיכרון מעבר לזמן
קריאת ההוראה עצמה מהיר יותר
מטח אוגוסט 2005
79
שעון פנימי וקצב עבודה של מחשב
תדר הוא מספר מחזורים בשניה נמדד כיום
במאות מיליוני מחזורים בשנייה ,אז
מחשבים מהירים מאוד מה אכפת לנו
מזמן ביצוע הוראה בודדת?
תשובה אחת –
• התדר שמוצג הוא זמן של ביצוע פעולה
במעבד אבל ביצוע תוכנית יש פניה
ליחידות חיצוניות
• 501MHzלא אומר זה מספר ההוראות
שתתבצענה
מטח אוגוסט 2005
80
אבני דרך בהתפתחות של מחשבים
• התפתחויות בשלושה מישורים:
– בטכנולוגיה
– ארכיטקטורה
– תכנה
• פרה היסטוריה –
– מחשבים הם אנשים
– פיתוח מחשבונים – ביצוע משימות ייעודיות
• Pascalineשל פסקל ,מכונת צעדים של לייבניץ ,בבג' אבי
רעיון מכונה ליישומים כלליים ,המכונה של הולריית
מטח אוגוסט 2005
81
אבני דרך בהתפתחות של מחשבים
דור ראשון של מחשבים אלקטרוניים 1937-1953
• טכנולוגיה – שפופרות ריק
• ארכיטקטורה של פון ניומן ועקרון התכנית המאוחסנת
• תכנה :שפת מכונה ושפת אסמבלי
דור שני של מחשבים אלקטרוניים ()1954-1962
• טכנולוגיה – טרניזסטורים (מזעור ,מהירות ,חסכון באנרגיה)
• ארכיטקטורה :הוסיפו רכיבים שאפשרו גישה מהירה לאיברי
מערך ויחידת חומרה לחישובים בשיטת נקודה צפה.
• תכנה :שפות עיליות (פורטרן ,קובול)
מטח אוגוסט 2005
82
אבני דרך בהתפתחות של מחשבים
דור שלישי ()1963-1972
• טכנולוגיה – מעגלים מוכללים ) integrated circuits( IC
• ארכיטקטורה :פותחו טכניקות לתכנון מעבדים מורכבים
יותר מה שאפשר לפתח טכניקות של תכנות מקבילי
(הרצת מספר משימות על מעבד בודד).
• תכנה :שפת ,Cמערכת הפעלה UNIX
דור רביעי ()1972-1984
• טכנולוגיה – שיפור במעגלים מוכללים VLSI
• ארכיטקטורה :מחשב שלם על צ'יפ אחד >-הופעת מחשב
אישי
דקלרטיביות
• תכנה :פתוח שפות תכנות
מטח אוגוסט 2005
83
אבני דרך בהתפתחות של מחשבים
דור )1984-1990( 5
• טכנולוגיה – מזעור ,שפור בזכרונות (הקטנת זמן גישה ,
קבולת גדלה)
• ארכיטקטורה :עיבוד מבוזר -מעבדים משתפים פעולה כדי
לעבד תוכנית אחת
• תכנה :שפות מונחות עצמים ,פיתוח רשתות תקשורת
דור שישי מ 1990 -ואילך
טכנולוגיה – מזעור ,שפור בזכרונות (הקטנת זמן גישה ,קבולת
גדלה)
• ארכיטקטורה :עיבוד מבוזר ,מהירות עיבוד גדלה ,
מעבדים כפולי ליבה
מטח אוגוסט 2005
• תכנה :רשת האינטרנט ,JAVA ,יישומי מולטימדיה
84
אבני דרך בהתפתחות של מחשבים
חוק מור :גורדון מור העלה השערה ב ,1965-כי מספר הטרנזיסטורים לאינץ
מרובע במעגלים מוכללים יכפיל את עצמו כל שנה.
מה הגבול???
מטח אוגוסט 2005
85