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