Microsoft Word - Summary

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

תרגול מס' 1

Microsoft Word - moed_A_sol.doc

הטכניון – מכון טכנולוגי לישראל

מבנה מחשבים ספרתיים

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

מבנה מחשבים ספרתיים

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

מבוא לאסמבלי

סדנת תכנות ב C/C++

Comp. Arch. Lecture 1

מבוא למדעי המחשב

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

פתרון מבחן במיקרו בקרים תשעו

מבוא למדעי המחשב

Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode]

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

שעור 6

Slide 1

מהוא לתכנות ב- JAVA מעבדה 3

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מצגת של PowerPoint

PowerPoint Presentation

PowerPoint Presentation

תרגול 1

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

Homework Dry 3

מבוא למדעי המחשב - חובלים

Microsoft PowerPoint - Lecture1

תכנות מונחה עצמים א' – תש"ע

בחן במערכות הפעלה

מבוא לתכנות ב- JAVA תרגול 7

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תוכן העניינים

מבוא למדעי המחשב - חובלים

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

מערכות הפעלה

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תוכן העניינים

Microsoft Word B

Slide 1

ex1-bash

פתרונות לדף מס' 5

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

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

PowerPoint Presentation

Microsoft PowerPoint - meli-iso.ppt

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

Microsoft PowerPoint - rec1.ppt

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

Slide 1

Slide 1

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

Tutorial 11

Microsoft Word - pitaron222Java_2007.doc

PowerPoint Presentation

<4D F736F F D20E8E9E9EEF8E9ED20E5EEE5F0E9ED20E1E1F7F >

מבוא לאנליזה נומרית na191 Assignment 2 solution - Finding Roots of Nonlinear Equations y cos(x) שאלה 1 היכן נחתכים הגרפים של? y x 3 1 ושל ממש פתרונות

Microsoft Word - SDAROT 806 PITRONOT.doc

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

מבוא למדעי המחשב

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

PowerPoint Presentation

מקביליות

Microsoft Word - Ass1Bgu2019b_java docx

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

מבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2

Microsoft PowerPoint - Navigation Contest - Route Ploting Toturial.ppt

תורת הקומפילציה

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

Slide 1

מבוא למדעי המחשב

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

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

מקביליות

מצגת של PowerPoint

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

PRESENTATION NAME

ייבוא וייצוא של קבצי אקסל וטקסט

Slide 1

מקביליות

Overview of new Office 365 plans for SMBs

מבוא למדעי המחשב

תמליל:

מבנה מחשבים סיכום מעגלים לוגיים מושגים בסיסיים: VDD/POWER זרם גבוה, "1"; VSS/GROUND זרם נמוך, "0". טרניזסטורים pmos nmos כאשר השער מקבל זרם גבוה, הטרנזיסטור מופעל ומעביר nmos זרם מהמקור למטרה. שער זה מעביר היטב זרם נמוך ("1") כאשר הוא סגור. pmos עובד בצורה הפוכה מnMOS, כלומר מופעל כאשר הזרם נמוך, ופתוח (כלומר לא מעביר מהמקור למטרה) כאשר הזרם גבוה. שער זה מעביר היטב זרם גבוה ("0") כאשר הוא סגור. ייצוג מספרים מעבר בין בסיסים: נניח ונתון מספר. המיוצג בבסיס r. היצוג העשרוני שלו הוא: + = מעבר ממספר בבסיס עשרוני לבסיס אחר: Xהוא מספר לפי בסיס עשרוני. רוצים למצוא את הייצוג של Xלפי בסיס r. נגדיר, = ואילו היא השארית של חישוב זה. באותו אופן ואילו = היא השארית של חישוב זה. כך ממשיכים עד שמקבלים 0 = עבור iכלשהו. בשיטה זו Xלפי בסיס rהוא:. מעבר משבר עשרוני לשבר בבסיס אחר: בדומה למקרה הקודם הפעם מוגדר כמספר השלם של החישוב, ואילו הוא השבר של החישוב, והאיבר הבא מחושב כך. לבסוף המספר שמתקבל הוא:. 0. חישוב מספר בינרי משלים תוצאת חיבור של מספר עם המשלים שלו נותנת תוצאה של 0. קיימות שני שיטות: משלים ל- 1 : כל "1" הופך ל-" 0 " וכל "0" הופך ל-" 1 ". משלים ל- 2 : תחילה מתבצע חישוב משלים ל- 1. לאחר מכן מחברים לתוצאה "1". כדי לגלות מה מייצג מספר שלילי, מחשבים את המשלים ל- 2 שלו. ניתן לבצע חיסור שני מספרים באמצעות משלים ל- 2. מחברים את המספר הראשון עם המשלים ל- 2 של המספר השני. (נתעלם מהקרי הנוצר מחיבור ה- MSBבשני המספרים). :Sign Extend נתון מספר בן 8 ביטים ורוצים להציג אותו באמצעות 16 ביטים. אז לוקחים את MSB (הספרה של הסימן) ומורחים אותה על כל הביטים החדשים (מצד שמאל לביטים הישנים). Overflows נשא (carry) מצביע על תופעה תקינה ומשמש לקביעת הסימן בפעולת חיבור. overflowמצביע על תופעה לא תקינה כתוצאה מחיבור של שני מספרים גדולים (או קטנים).כאשר ישנו מספר זוגי של,overflows אז תוצאת החישוב תקינה. אחרת התוצאה לא תקינה. דרך אחרת להסתכל על כך היא ש- overflow מתרחש כאשר מתקיים 1 = הוא ) הקרי האחרון). 1

אלגברה בוליאנית האופרטור "+" מבטא את,OR ואילו " " מבטא את.AND " ` " או " " מבטא.NOT משפטים יסודיים באלגברה בוליאנית: +0= 1= + =1 =0 +1=1 0=0 + = = = + = + = + + = + + = + = + + + = + + = = + + = + = + = + + = + = + + = + = + + + = + פונקציות בוליאניות כל פונקציה ניתן לבטא בשני שיטות שקולות לחלוטין כסכום מכפלות ( ), ומכפלת סכומים ( ). למשל: x y z f1 f2 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 2 f1= m2+ m5 = x ' yz ' + xy ' z f1 = ( 2,5) 0 1 1 0 1 3 f2 = M1 M 7 = ( x+ y+ z ') ( x ' + y ' + z ') f2 = ( 1,7) 1 0 0 0 1 4 1 0 1 1 1 5 1 1 0 0 1 6 1 1 1 0 0 7 הרחבה לצורה סטנדרטית נניח ונתונה לנו פונקציה (למשל (,, = + ורוצים להרחיבה לצורה הסטנדרטית (למשל כסכום מכפלות). לוקחים כל מכפלה שלא כוללת את כל המשתנים ומנפחים אותה. למשל = + = + מערכות שלמות כל פונקציה ניתן לבטא ע"י האופרטורים.AND,OR,NOT מערכת שלמה \ אוניברסלית היא קבוצה של אופטרטורים שניתן לממש בעזרתם (ע"י הפעלות חוזרות) כל פונקציה בוליאנית. דוגמאות למערכות שלמות:,,,,, 2

מפות קרנו פונקצייה בוליאנית. זוהי שיטה לפישוט גדולים ככל האפשר אשר מכסים רק "1" (או רק מנסים לסמן ריבועים "0") כדי לקבל פונקציה פשוטה ככל הניתן. אל ניתן להתייחס כאל "1" או "0", איך שנוח. מספור מפת הקרנו (מספר התא מייצג את השורה בטבלת האמת) : 0 4 12 8 1 5 13 9 3 7 15 11 2 6 14 10 צעדים למציאת מקבצים: הקף את התאים אשר מכילים אחדות מובדדות. אחד הניתן לשילוב במקבץ זיהוי תאים המכילים באופן יחיד. סימון זוג זה. בגודל 2 עם תא שכן מתעלמים מתאים שניתן לשלבם בזוג ביותר מאופן אחד. זיהוי תאים שניתן לשלבם ברביעייה עם שלושה תאים אחרים באופן יחיד. אם הם אינם מופיעים הרביעייה. מתעלמים בזוג שסומן כבר, נסמן ניתן לשלבם ברביעייה ביותר מתאים אשר מאופן אחד. חוזרים על התהליך עבור שמיניות. אם נותרו אחדות אשר לא כוסו, מכסים אותם באופן כלשהו זה עם זה או עם מקבצים שנמצאו בשלבים הקודמים תוך שימוש במספר מינימלי של מקבצים. לוגיקה צרופית ומחזיר את סכומן ואת חצי מחבר: מקבל 2 סיביות הנשא. מקבל 2 סיביות ונשא מהמחבר הקודם מחבר מלא: סכומם ואת הנשא. ומחזיר את מספר בינארי בין 0 ל 2. 1 מפענח: nכניסות המייצגות ערך i. 2 יציאות כאשר יציאה iהינה "1" אמ"מ בכניסה יש פלט קלט A1 A0 D3 D2 D1 D0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 2 מקודד: כניסות המייצגות מספרים אונאריים. nיציאות המייצגות מספר בינארי. קלט לא אונרי מביא לשגיאה או לא מוגדר. 3

קלט פלט D3 D2 D1 D0 A1 A0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 2 1 0 0 0 1 1 3 מקודד עדיפות: מוגדר כמקודד רגיל, אך בנוסף ליציאות הרגילות קיימת יציאת validdהמחזירה 0 אם הקלט לא תקין ו- 1 אחרת. 2 קווי :MUX כניסה, nקווי ברירה, 1 קו יציאה. היחידה בוררת קו כניסה אחד מבין כל קווי הכניסה (באמצעות אותו לקו היציאה. ניתן גם לברור בין קבוצות של קווים. קווי הברירה) ומכוונת ניתן לממש פונציה בעלת nnמשתנים באמצעות MUX כותבים את הפונקציה ככסכום מכפלות, מכניסים "1" הן משתני הפונקציה. למכפלה אשר מופיעה בסכום ו-" 0 " אחרת. כניסות הבורר לכניסה המתאימה Flip Flops אוגרים ומונים אוגר מורכב מאוסף תאי אחסון בינאריים אשר ממומשים ע"י.FF מספר התאים קובע את אורך האוגר. אוגר מקבילי: הקריאה והכתיבה נעשית בו זמנית לכל התאים. דוגמא למימוש אפשרי: 4

אוגר הזזה: באוגר זה ה- FFמחוברים באופן שפלט של אחד הוא הקלט של האחר. מונה: מורכב מאוסף של תאי איחסון בינאריים הממומשים ע"י.FF מונה סופר תמיד מודולו 2 כאשר nהוא מספר היציאות שלו. במונה סינכרוני כל ה- FFמתוזמנים ע"י אותו שעון, כל פולס של השעון מוסיף אחד למונה. MIPS הערה: כתובת קוד מקודדת במילים. כתובת זיכרון מקודדת בביטים. MIPS operands Name Example Comments $s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform 32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero alw ays equals 0. Register $at is $fp, $sp, $ra, $at reserved for the assembler to handle large constants. Memory[0], Accessed only by data transfer instructions. MIPS uses byte addresses, so 2 30 memory Memory[4],..., sequential w ords differ by 4. Memory holds data structures, such as arrays, words Memory[4294967292] and spilled registers, such as those saved on procedure calls. MIPS assembly language Category Instruction Example Meaning Comments add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Used to add constants load w ord lw $s1, 100($s2) $s1 = Memory[$s2 + 100]Word from memory to register store w ord sw $s1, 100($s2) Memory[$s2 + 100] = $s1 Word from register to memory Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s2 + 100]Byte from memory to register store byte sb $s1, 100($s2) Memory[$s2 + 100] = $s1 Byte from register to memory load upper immediate lui $s1, 100 $s1 = 100 * 2 16 Loads constant in upper 16 bits branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC + 4 + 100 branch on not equal bne $s1, $s2, 25 if ($s1!= $s2) go to Conditional PC + 4 + 100 branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0 set less than immediate slti $s1, $s2, 100 if ($s2 < 100) $s1 = 1; else $s1 = 0 Equal test; PC-relative branch Not equal test; PC-relative Compare less than; for beq, bne Compare less than constant jump j 2500 go to 10000 Jump to target address Uncondi- jump register jr $ra go to $ra For sw itch, procedure return tional jump jump and link jal 2500 $ra = PC + 4; go to 10000 For procedure call הקצאת מקום על המחסנית נניח ונרצה להשתמש בתוכנית ב 5 אוגרים. אז תחילה מקצים מקום במחסנית ע"י $sp,$sp,-20.addi לאחר מכן נותנים לכל אוגר כתובת: $s0,0($sp).sw $ra,16($sp), sw $s3,12($sp),, sw בסיום ריצת התוכנית נחזיר את המחסנית לקדמותה ע"י $sp,$sp, 20.addi 5

שימוש ב- jalו- jr בתוך תוכנית, אך בסיום השיגרה רוצים לחזור לתוכנית המקורית, בדיוק למקום כאשר רוצים לקרוא לשיגרה משתמשים בפקודות אלה. שממנו הפסקנו ע"י jal swap ונחזור לאותו מקום בדיוק ע"י הוספת הפקודה jrכפקודה $ra האחרונה למשל נעבור לשיגרה swap ב- swap. חשוב להקצות מקום במחסנית ל- jr $. גיבוי אוגרים בשיגרה: כאשר כותבים שיגרה באסמבלי, צריך לגבות את האוגרים שבהם נשתמש (כי ממשתמשים בהם בתוכנית שקראה לשיגרה), ובסוף ריצת השיגרה צריך לשחזר אותם. שלבי ביצוע הוראת מכונה: קרא הוראה מהזיכרון ע"פ הכתובת שמכיל ה- PC. FETCH 1. את הפקודה וקרא את האוגרים הנחוצים..2 DECODE פענח 3. EXECUTE בעזרת ה- ALUחשב את התוצאה, או כתובת רצויה. קריאה ממנו. 4. MEMORY השתמש בתוצאה לבצע במידת הצורך טעינה לזיכרון או 5. BACK WRITE ב בצע במידת הצורך טעינה לאוגר. קווי בקרה: ה- rdשל הפקודה. RegDst אם הפקודה היא r-typeאז ל- wsב- RegFileמגיע addיעביר 0, ואילו במקרה של שהפקודה היא l-typeאז wsמקבל את.rt דוגמא: במקרה של במקרה addiיעביר 1. שהפקודה הבאה תגיע כתוצאה מחליט האם PCיקבל כרגיל את הפקודה הבאה (PC+4) או Branch פעיל כאשר הפקודה הבאה הינה פעיל במקרה שנדרשת קפיצה ב- PCכמו ב- beq. לא מה- ALU. כמובן.PC+4.lw מאפשר קריאה מהזיכרון. פעיל במקרה של MemRead של.lw לא פעיל ב- r-type. MemtoReg מאפשר העברת מידע מהזיכרון לרגיסטר. פעיל במקרה הקו מכיל 2 ביטים. הוא מתחבר ל- ALUControl קו בקרה הקובע את הפעולה שה- ALUיבצע. ALUop את שדה ה- functמהפקודה. כתוצאה מכך יוצאים 3 ביטים המציינים ל- ALUאיזה פעולה אשר מקבל גם בהמשך) לבצע. (ראה טבלה.sw מאפשר כתיבה לזיכרון. פעיל במקרה של MemWrite ALUSrc קו בקרה הקובע האם ה- ALUיקבל ערך immediateאו ערך מרגיסטר. למשל במקרה של addערכו יהיה 0 ואילו במקרה של addiערכו יהיה 1. RegWrite מאפשר כתיבה לרגיסטר. ZERO זהו קו בקרה היוצא מה- ALU. שווה ל- 1 כאשר התוצאה ב- ALUשווה ל- 0. 1 אחרת. משתמשים בקו בקרה זה בפעולות ה- Branchכדי להחליט האם לבצע קפיצה ב- PCבמידה וההשוואה יצאה כמו שרצינו. הקובע האם לקפוץ לפקודה בכתובת מסויימת או שלהמשיך לכתובת הבאה כרגיל. JUMP קו ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 0 0 X X X X X X 010 0 1 X X X X X X 110 1 0 X X 0 0 0 0 010 1 0 X X 0 0 1 0 110 1 0 X X 0 1 0 0 000 1 0 X X 0 1 0 1 001 1 0 X X 1 0 1 0 111 Single Cycle Architecture 6

דגשים למימוש פקודות חדשות סקירת כל הפעולות והשלבים שהפקודה מבצעת. בדיקה האם הקווים הקיימים מספיקים למימוש הפעולה. אם לא, צריך להוסיף. קביעת ערכי קווי הבקרה ביחידות בקרה קיימות. הוספת MUXחדשים במידת הצורך והגדרת קווי הבקרה החדשים. עדכון פונקציות קווי הבקרה הקיימים. Pipelining :Hazards מצב שבו פקודה לא יכולה להתבצע בפעימת השעון הנוכחית. ישנם 3 סוגים שונים של :Hazards Hazard Structural החומרה לא תומכת בפעולה. Hazard Control פעולת branchאו פעולה אחרת ב- pipeineמעכבת את הפעולות הנמצאות ב- pipelineעד אשר ה- hazardחולף. Hazard Data הפעולה תלויה בתוצאת פעולה אחרת שעדיין נמצאת ב- pipeline וטרם סיימה את עבודתה. למשל מתבצעות שני הפקודות sub $2,$1,$3; and $12,$2,$5 אחת אחרי השניה. כאשר הפקודה הראשונה נמצאת בשלב החמישי,ערכו החדש של האוגר $2 טרם התעדכן ואילו הפקודה השניה מנסה לקרוא אותו כשהיא נמצאת בשלב השלישי. פתרונות אפשריים ל- DataHazards : מוסיפים 3 פעולות nop שלא עושות כלום אך מבזבזות,cp 3 כך שכל המידע מתעדכן לפני שהפעולה הבאה מתרחשת. זוהי שיטה מאוד לא יעילה ובזבזנית בזמן. כדי לחסוך nopאחד, נגרום ש- write data תחילה יבדוק האם הרגיסטר שה- read dataקורא ברגע זה הוא הרגיסטר שאותו אנחנו רוצים לשמור. במקרה כזה ילקח הרגיסטר המעודכן, ורק לאחר מכן הוא ישמר בזיכרון. יחידת :Forwarding יחידה זו בודקת האם הפקודות הנמצאות בשלב הרביעי והחמישי מתכוונות לכתוב למאגר הרגיסטרים והאם הרגיסטר שייכתב משמש כקלט ל- ALU מהפקודה בשלב השלישי. במקרה וכן, יחידה זו תעביר את הערך המעודן ל- ALU במקום הערך הישן. במקרה והתנאי מתקיים עבור השלב הרביעי והחמישי בו זמנית, אז ה- forwardingתעביר unit את המידע הנמצא בשלב הרביעי, מאחר והוא עדכני יותר. :lw של Hazardבמקרה הפתרונות שהוצעו קודם לכן לא עובדים במקרה של רצף הפקודות $4,$2,$5 lw $2,20($1); and מאחר ובשלב השלישי של הפקודה השניה קוראים רגיסטר שערכו טרם ניקרא מהזיכרון בפקודה הראשונה. הפתרון לא עובד מאחר ואנחנו לא יכולים לנחש האם נרצה לקרוא לרגיסטר כלשהו בזמן הקרוב. פתרון אפשרי לבעיה הוא הוספת (bubble) nop ע"י החומרה כאשר מתרחש מצב כמתואר לעיל. :Branch Hazard מתרחש כאשר יש לנו פקודת branchשנמצאת בשלב הרביעי ב- pipeline ומתקבלת תוצאה שאמורה להקפיץ את התוכנית לפקדוה אחרת, אך יש כבר מספר פקודות ב- pipelineשאנחנו לא רוצים שהן תתבצענה. שוב ניתן לפתור את הבעיה ע"י,nop 3 אך יש פיתרון יותר אלגנטי. אם זוהתה פעולת branchב- opcodeבשלב השני, נבצע את ההשואה הנחוצה ל- branchכבר בשלב זה, ובמקרה והתנאי יתקיים נשנה את ערך ה- PC. ונכניס nopאחד ל- pipeline. כמו כן נבצע flush (פעולה המוציאה את הפקודה שנמצאת בשלב הראשון מתוך ה- pipeline. פיתרון אפילו טוב יותר הוא :branch delay slot הפקודה הבאה מיד אחרי פקודת branchתמיד תתבצע, לא משנה אם נכנסו ל- branchאו לא. ניתן למצוא פקודה שלא תשפיע על זרימת התוכנית. 7

Cache לוקאליות בזמן: אם ניגשנו למידע כלשהו בזמן האחרון, אז יש סיכוי גדול שניגש אליו שוב. לוקאליות במרחב: אם ניגשנו למידע כלשהו, אז יש סבירות גבוה שניגש לשכנים שלו. כאשר ניגשים למקום ב- cacheמשווים את ערך הTAGשל המקום לערך ה- TAGשל הבלוק שרוצים לדלות מה-.miss במידה והערכים תואמים אזי אין.cache סוגי :Miss סיבה שלא נפסס כי אין דבר טעון ב- cache. אין למשל פניה ראשונה ל- cache. Compulsory Capacity ה - cacheלא יכול להכיל את כל הבלוקים בשל בעיית מקום. זיכרונות שונים ממופים לאותו מקום ב- cache. Conflict פעולה אחרת מטפלת ב- cache. Coherence :Direct Mapped Cache לכל בלוק יש מקום אחד בלבד ב- cacheשאליו הוא יכול להיות ממופה (כמה בלוקים יכולים להתמפות לאותו מקום ב- cache ). :N-way Associative Cache לכל בלוק ישNמקומות שאליהם הוא יכול להתמפות. במידה ומתרחש missאז ניתן לפנות לו מקום ע"י שיחרור תא אקראי RANDOM) או) זה שהשתמשו בו לאחרונה לפני הכי הרבה זמן.(LRU) כל בלוק יכול להתמפות לכל מקום ב- chache. :Fully Associative Cache 8