מטח אוגוסט 20051 מבוא למערכות מחשב ואסמבלי מצגת 1 תכנית...

Preview:

Citation preview

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כדי להבין את הארכיטקטורה )•

נתכנן “מחשב” פשוט בארכיטקטורת פון ניומן.–נגדיר שפת מכונה בסיסית באמצעותה נכתוב תכניות–ה"מחשב" הפשוט יוכל לבצע את מחזור הבאה-ביצוע של –

תכנית המאוחסנת בזיכרון

מטרות פדגוגיות:מבט-על–להבין את המבנה של הוראה בשפת מכונה–להבין איך מתבצעת הוראה–שימוש במודל פשוט יסייע להבין בהמשך את אופן פעולה של –

מחשבים מתקדמים: המודל הפשוט יכיל תיאור של הרכיבים שמגדירים מצב –

תכנית בתהליך ביצוע מחזור הבאה-ביצוע

cet
מחשב זה מוגבל ביכולת החישוב שלו הוא לא מבצע את כל הפעולות של מחשב

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חוק מור: גורדון מור העלה השערה ב- מרובע במעגלים מוכללים יכפיל את עצמו כל שנה.

מה הגבול???

Recommended