ארכיטקטורה Flashcards
למי רלוונטי ההיכרות עם חומרת המחשב
לכתיבת תוכנית או חלק ממנה בשפת סף
מפתחי קומפיילר
מפתחי תוכניות (אסמבלר)
מפתחי מנהלי התקנים (device drivers)
מפתחי מערכות (embedded)
?מערכת מחשב בנויה מ
חומרה + תוכנה
מה מרכיבי החומרה
מכלול היחידות האלקטרוניות והמכניות (Full Adder`s)
מה מרכיב יחידה אלקטורנית
שבבים (chips)
מעגלים- השבבים בעצמם מורכבים ממעגלים אלקטורנים
שערים- כפי שנלמד במערכות ספרתיות
טרנזיסטורים- השערים הבסיסיים ממומשים ע”י טרנסיסטורים
יחידות מכניות המרכיבות את המחשב הן
ספק כוח
מאווררים
מחברים- sata, usb, fc, rj45
מארזים, של מחשב של דיסק קשיח, כונן דיבידי וכו
מה הן תוכניות במחשב
.exe תוכניות
תוכניות להרצה וספריות אשר מותקנות על הדיסק הקשיח.
תוכניות אלו אינן כוללות תוכניות הכתובות בשפות תכנות עיליות או אסמבלר.
מהו תיאור סכמתי של מערכת מחשב
מחשב (חומרה) -> תוכניות מערכת הפעלה -> תוכניות אפליקציות + ספריות
איך נגדיר את החומרה והתוכנה במחשב במונחים תפעוליים פוליטים
בשביל תפקוד של מחשב צריך את הרשות המבצעת (המחשב והחומרה) והרשות המנחה (התוכנה), הפרדה ביניהן מאפשרת לנו את מגוון הפעולות הגדול שאפשר לבצע במחשב
איזה סוגי זיכרון יש ומה תפקידם
זיכרון ראשי ראם. זיכרון נדיף שאחראי להעתיק את התוכניות מהאחסון לריצה
זיכרון אחסון לא נדיף. שומר קבצים ותוכניות
מערכת ההפעלה
מה תפקידה
מה השירותים שמספקת
אחראית למשאבי המחשב מקנה משאבים לפעולות השונות
שירותים כגון הקצאת מקום
קלט פלט
במהלך התקנת מערכת ההפעלה מה קורה
רישום מידע בדיסק לצורך ניהולו
העתקת תוכנית הos loader לתחילת הדיסק
יצירת מערכת קבצים בדיסק
העתקת קבצים לדיסק כולל האקס קובץ למערכת ההפעלה ושל שאר תוכניות המערכת
מה המעבד יכול לבצע?
הוראות מכונה בלבד
הוראות מכונה שונות מהוראות האסמבלר
ושונות כמובן מהוראות שפה גבוה
איך בכל זאת מעבד מבצע תוכניות בשפה גבוה או הוראות אחרות
מתרגם משפת התכנות לשפת אסמבלר כלומר עושה קומפילציה
אחרת האסמבלר מתרגם את שפת האסמבלר לשפת מכונה (1 0)
מה ההבדל בין הוראות האסמבלר להוראות מכונה מבחינה בינארית
המעבד יודע לזהות את השפה הבינארית רק שהיא כתובה בשפת מכונה
אחרת השפה זרה לו ללא קשר לבינארית או לא
הצירופים הבינארים הם ההבדל מבחינה יכולת הקריאה של המעבד
למה מפתחי אסמבלר חייבים להכיר את הארכיטקטורה של אינטל
כי מי שפיתח את האסמבלר למעבדים ספציפיים חייב להכיר את רשימת ההוראות כדי לייצר הלכה למעשה הוראות אסמבלר ע״מ שהמערכת תפעל
הארכיטקטורה היא בעצם ממשק בין התוכנה לחומרה ובשביל שהחומרה תעבוד ותבצע את רצון המשתמש ע״י התוכנה צריך להכיר את הוראות האסמבלר
לאחר תרגום שפת אסמבלר ע״י הקומפילציה איפה ההוראות מכונה נשמרות ובאיזה סוג קובץ
נשמרות על הדיסק בקובץ מסוג exe
למה למפתחים חשוב לדעת את קבוצת ההוראות של כל מעבד מסוים
כל קבוצת הוראות שונה זו מזו בין המעבדים השונים
יש לקחת בחשבון הרבה שיקולים כגון חומרה קומפיילרים מערכות הפעלה ועוד
זה מחייב ידע טכני רחב
יכולות תכנון של מערכות מורכבות
ארכיטקטורה של מעבד
מה היא ארכיטקטורת המעבד
קבוצת ההוראות של המעבד היא החלק המרכזי בארכיטקטורה אך לא כולו
מה הוא תהליך ביצוע תוכנית מסוימת במחשב
מערכת ההפעלה אומרת למעבד לעזוב הכל ולבצע את התוכנית המבוקשת
המעבד מעתיק של עותק התוכנית מזיכרון האחסון לזיכרון הראשי ע״י הבאת הוראה לזיכרון
המעבד מפענח את ההוראה שמובאת אליו (המשך ביצוע ההוראות ידוע כבר בתוך רשימת ההוראות)
ההוראה מובאת ליחידת הבקרה
לאחר פענוח ההוראה יש ביצוע
אחסון תוצאות ההפעלה בזיכרון הראשי
מדוע מפתחי קומפיילרים למעבד מסוים חייבים להכיר את הארכיטקטורה של המעבד
תפקידו של המעבד בין היתר הוא לתרגם הוראות משתמש לשפת מכונה ע״מ לתקשר עם החומרה ולבצע פעולות במחשב
מפתחי קומפיילר חייבים להכיר את הארכיטקטורה של המעבד ברמה גבוה כדי לכתוב קוד שידע להפעילו
קוד זה הוא שורת הוראות למעבד שמתורגמים משפת תכנות גבוה
מתכנתי הקומפיילר חייבים להכיר את התחביר של הוראות האסמבלר, איך מציינים תוויות למשל, איך מפרידים בין אופרנדים, איך מציינים GPR, כמה מהם יש, שמותיהם, מה גודל הכתובת הלוגית, מהם טיפוסי הנתונים הנתמכים ע״י המעבד- מספרים שלמים עם או בלי סימן כמה ביטים למספר שלם מספרים ממשיים ועוד
כל הפרטים הללו הם חלק מהמכלול הגדול של ארכיטקטורת המעבד או ISA, כל הפרטים הללו מתועדים בפירוט רב במסמכי היעוד שכותבים מפתחי המעבד
מה הוא ההבדל בין שפת אסמבלר לתוכנית אסמבלר
תוכנית בשפת אסמבלר כתובה בשפת אסמבלר והיא בעצם תרגום של תוכנית בשפה גבוה או תוכנית שנכתבה ע״י מתכנת בשפה זו. היא מורכבת מהוראות בשפת האסמבלר אך לא תוכל להיקרא ע״י המעבד. תוכנית האסמבלר היא בעצם תרגום של אותה תוכנית בשפת האסמבלר ומטרתה להעביר את הוראות התוכנית שתורגמה בצורה שהמעבד יוכל לקרוא אותה ע״י הפיכתה לשפת מכונה.
האם תוכנית אסמבלר עבור מעבד מסוים תוכל להתאים גם למעבד אחר
לא, לכל מעבד יש קבוצת הוראות מכונה נפרדות ושלל מרכיבים המשתנים ממעבד למעבד. לכן חשוב למפתחי קומפיילרים לדעת היטב את הארכיטקטורה של כל מעבד ע״מ שידעו לתרגם בצורה נכונה את שפת האסמבלר להוראות מכונה ספציפיות שהמעבד הנתון יוכל לקרוא.
מה ההבדל בין הוראות אסמבלר של מעבד מסוים לבין הוראות המכונה שמתאימה לה
הוראת אסמבלר היא רצף של ביטים המייצגים תווים
הוראות מכונה היא סדרה של ביטים עם מבנה פנימי- הביטים מחולקים למקבצים כלומר שדות של אופקוד ואופרנדים
צירוף הביטים של שפת האסמבלר אינו מוכר למעבד כי אינו יודע לזהות אותם ולפעול בהתאם
מדוע מפתחי תוכנת אסמבלר עבור מעבד מסוים חייבים להכיר את שפת המכונה של המעבד
בכדי להמיר את תוכנית האסמבלר נדרש ידע של האופרנדים והפקודות למעבד
בכדי לכתוב תרגום באופן שיוכל להפעיל את חומרת המחשב ע״י המעבד יש לדעת ידע רחב בשני המרכיבים או שפות
הבאת דוגמאות למשאבים הנדרשים לתחילת ריצת תהליך מסוים במחשב ע״י מערכת ההפעלה והסביר בהקשר של כל משאב מדוע הוא נדרש לצורך תחילת הריצה
הבא אותן דוגמאות גם למשאבים הנדרשים תוך כדי ריצתו
הסבר מדוע מערכת ההפעלה מספקת שירותים לתהליכים תוך כדי ריצתם
הבא דוגמאות של שירותים שמערכת ההפעלה מספקת
לכל תהליך נדרש קודם כל זיכרון מרכזי ולכן התוכנית קודם כל צריכה להיות מועתקת מזיכרון האחסון לזיכרון הראשי
עם העתקת התוכנית לזיכרון הראשי מועתקת רשימת הוראות לאותו תהליך
תהליך זה יכול לכלול איזשהו מעבר של קלט ופלט לדוגמה ועמ לאפשר מעבר כזה יש לדאוג למשאבי תרגום בין השפות או אופרנדים מסוימים בכדי לקבל קלט או פלט נכון
תוך כדי הריצה יש צורך לאחסון בדיסק ופעולות מסוימות שהמעבד צריך לבצע ע״מ להריץ תוכנית במחשב
תהליך במחשב לרוב דינאמי, כלומר המשתמש רוצה לבצע פעולות בתהליך עצמו, פעולות אלה נדרשות לתרגום בכדי שהמעבד יוכל לבצען. סיפוק שירותים אלה מבטיח ניהול תקין של התוכנית וביצוע הפעולות הרצויות ע״י המשתמש. כמו כן פעולות אלו מקלים על המפתחים בפיתוח התוכנית שלהם. השירותים שמערכת הפעלה טיפוסית מספקת מצריכים ידע טכני נרחב ידע שגם low level
דוגמאות לשירותים הם מתן קלט פלט, תרגום שפת תכנות להוראות מכונה ע״מ לספק מקום או פעולות אחרות במחשב
פתיחה של קובץ, קריאה מקובץ, יצירת תהליך חדש, שליחת הודעה לתהליך אחר
מה המשמעות של ריבוי תוכניות ע״י מערכת ההפעלה בהקשר של תפקידה בניהול החומרה
וכיצד התמיכה בריבוי מתוכניות משפיעה על הביצועים
אלו יתרונות יש לcpu מולטיקור על פני סינגלקור
כאשר כמה תוכניות רצות בו זמנית, מערכת ההפעלה אחראית על תעדוף משאבי המחשב לפי צורך המשתמש
היא תחלק את זמן המעבד בין התהליכים ותקצה לכל תהליך איזור זיכרון פרטי בזיכרון הראשי
כאשר יהיו מספר תהליכים בזיכרון הראשי מערכת ההפעלה תהיה חייבת להבטיח הרצאה יעילה והוגנת בין התהליכים
כיוון שלמערכת ההפעלה אין משאבים אינסופיים להקצות, לדוגמה מקום בזיכרון הראשי או במעבד, ככל שריבוי המשימות יהיה גבוה כך מספר הפעולות שהמעבד יבצע יגדל ותוכנית אחת עלולה להתארך בשל העובדה שהיא מחכה לשחרור המעבד בזמן שהוא מוקצה לתוכנית אחרת. הזיכרון המוקצה יהיה נמוך ולכן הביצועים יהיו פחות טובים.
היתרונות של ליבות רבות יותר הן האפשרות לבצע תוכניות מסוימות ע״י המעבד בו זמנית ובכך לבטל את זמן ההמתנה לפינוי המעבד. כל ליבה מסוגלת לבצע פעולת מעבד בנפרד ולכן חלוקת המשאבים תהיה טובה יותר.
מה תפקידם של התקני הקלט במחשב , יש להתייחס לעובדה שלכפל המידע המחשב מיוצג בינארית
מה תפקידם של התקני הפלט
תקפיד התקן הקלט הוא לבצע דיגיטציה כלומר המרה של המידע כפי שהוא מגיע מהמשתמש מחוץ לעולם המעבד והזיכרון הראשי, כלומר כאשר מוקש תו במקלדת הוא מתקבל בתור קוד אסקי מתאים או אם מצלמה מצלמת תמונה מסוימת הוא מתקבל במחשב כאוסף של פריימים. בנוסף התפקיד כולל גם מעבר של מידע דיגיטלי מההתקן לזיכרון הראשי
התקני הפלט מבצעים פעולה הפוכה, לוקחים קוד אסקי מתאים ומציגים אותו בתור תו המוכר למשתמש או אוסף פריימים בתור תמונה וכמו כן לאפשר העברה מהזיכרון הראשי להתקן
האם המושג CPU והמושג מעבד הם מושגים נפרדים
מה הוא תפקידו של המעבד
עד להופעה של מעבד המולטי קור המושגים היו זהים לכל בהקשר של multicore CPU המושגים אינם זהים
לקבל שורת פעולות בשפת מכונה ולבצע אותן על החומרה. כלומר מבצע הלכה למעשה את רצון המשתמש על החומרה שבידו
כלומר הוא אינו מבצע דבר על דעת עצמו.
ממה חומרת המחשב מורכבת
יחידות אלקטרוניות:
שבבים
מעגלים- השבבים מורכבים ממעגלים אלקטרוניים
שערים לוגים- and not or nand
טרנזיסטורים- השערים הבסיסיים ממומשים באמצעות רכיבי טרנזיסטורים
יחידות מכניות:
ספק כוח
מאווררים
מחברים- USB RJ45 SATA
מארזים- מארזי מחשב או של דיסק קשיח כונן DVD וכו
עוד רכיבי חומרה כלליים
החומרה של מחשב טיפוסי כוללת עשרות רבות של יחידות שונות כשלכל אחת מהיחידות תפקיד מסוים. בין היחידות קיימת אינטראקציה כך שביחד כלל היחידות משמשות את ֶפונקציונליות המחשב.
מבחינה טכנית איך אחלק את קבוצות היחידות השונות שמרכיבות את המחשב
מעבדים
זיכרונות
התקני פלט קלט
ערוצי העברת מידע
מה יש בתוך מעבד
מעבד טיפוסי מורכב מ:
CU- Control unit- רכיב המעבד השולט על שאר ההתקנים בהתאם להוראות התכנות
ALU - arithmetic logic unit, מבצעת פעולות אריתמטיות במעגלים שונים (מעגל אחד יבצע חיבור, מעגל אחר יבצע כפל, חיבור מספרים ממששים ועוד)
GPR- general purpose register, למעשה אלמנט זיכרון לשמירת נתון (לא הוראה) כמו אוגר במאנו
זיכרון קאש בתוך המעבד- מאוחסן מידע בתוך המעבד שאליו זמן הגישה קצר בהרבה מהזיכרון הראשי. בתוכו נמצאים הוראות מכונה. השינוע במידע בין הראש לזיכרון הראשי מתבצע דרך החומרה.
שעון
מה יש בתוך ליבה
ליבה הנה פרוססור שמורכבת מ-
קווי דאטה, ALU, אוסף של מעגלים לפעולות אריתמטיות
אוסף של אוגרים, אוגרים לשימוש כללי ואוגרים לשימוש מיוחד. שימוש כללי אוגרים נתונים ושימוש מיוחד אומר שאי אפשר לשים בו נתון כלשהו אלא רק נתון מיוחד. לדוגמה אוגר הPC program counter המשמש לשמירת כתובת הוראת המכונה הבאה לביצוע או IR instruction register אוגר הוראה או PSW processor status word המצב הנוכחי של המעבד למשל פסיקות תוך כדי ריצה ועוד אוגרים אחרים
קווי דאטה פנימיים של הCPU המאפשרים תנועה בין הALU לאוגרים ועוד
יחידת בקרה
מה הוא בעצם multicore cpu
יחידת מיקרו מעבד המכיל כמה ליבות מעבד במעגל אחד אינטגרלי
ממה מורכבת מערכת הזכרונות במחשב
פרט על כל זיכרון
מערכת זיכרון במחשב מורכבת מגוון יחידות זיכרון
זיכרון ראשי:
אוגרים לשימוש כללי
זיכרון ראשי
זיכרונות קאש level 1 level 2 level 3
זיכרונות משניים :
דיסק קשיח
Sad
Cd rom
Disk on key
Magnetic tape
מה הוא המבנה הסמכתי של הזיכרון הראשי
זיכרון ראשי הוא אוסף של תאי זיכרון, לכל תא יש כתובת ייחודית שהיא מספר שלם לא שלילי. כל תא זיכרון בגודל שמונה ביטים
מה הוא הmemory control
כשאני ניגש לתא מידע יש מתווך בין המעבד לזיכרון שהוא בעצם השולט בזיכרון. הוא יודע איפה הזיכרון והוא יודע איפה לשמור או לשלוף את המידע.
המידע מועבר על ידי ערוצי הזיכרון הבאס
למה צריך הרבה אלמנטים של זיכרון
כי צריך להפריד בין התפקיד ליחידת הזיכרון שאותו מייעדים מתכנתי המחשב לבין טכנולוגיות המימוש
דוגמה של תפקידי הזיכרון הראשי לדוגמא לשמור את התוכניות שרצות
הזיכרון אחסון שומר מידע לאורך זמן.
כמה טכנולוגיות זיכרון יש ומה הן
מה ההבדלים בין סוגי זיכרון
יש ארבע טכנולוגיות
SRAM
Dram
Flash
Magnetic disk
לכל טכנולוגיה יש מאפיינים ייחודיים כמו למשל זיכרון נדיף או לא נדיף
ככל הדגישה לזיכרון תהיה מהירה יותר ככה הוא יעלה יותר
צריך לדעת להשתמש בסוגים אלה ע״מ ליצור מחשב עם יכולות טובות אבל גם לא במחיר יקר מדי
זיכרון נמדד ע״פ תפוקה וזמן גישה
מה הוא זמן גישה בנוגע לזיכרון
האם הוא סימטרי בין כתיבה לקריאה
הזמן הממוצע שעובר מהרגע שהמעבד פונה לזיכרון לצורך קריאה או כתיבה של יחידת מידע ועד הרגע שהפעולה מסתיימת
זמן זה אינו סימטרי בכל הזיכרונות
לדוגמה הפלאש קריאה מהירה יותר מכתיבה
מה הוא זיכרון הקאש
זיכרון הקאש נמצא בתוך מעבד או ליבה l1 l2
זיכרון זה הוא זיכרון מהיר מאוד ומשמש את המעבד לאחסון מידע בשביל להגביר יעילות
כשהמעבד מחפש מידע מסוים הוא קודם כל בודק אם הוא בקאש
מאפיין נוסף של הקאש בניגוד לאוגר לשימוש כללי שאפשר לשמור עליו הוראות ולא רק נתונים
מי שדואג להעברת המידע היא החומרה
חשוב לזכור שיש קאש l3 שהוא מתקשר לכל הליבות של המעבד
ממה מורכבת תוכנית בשפה גבוה
קובץ או קבצי מקור- כולל בתוכו קוד עצמי, קריאות לפונקציות ספרייה וקריאות מערכת
מה ההבדל בין תוכנית לספרייה
תוכנית המתכנת כותב ובה יש תוכנית ראשית main בניגוד לספרייה שהיא אוסף של פונקציות שנכתבו מבעד מועד ע״י מישהו אחר מכותב התכנית. לדוגמה ספריית זמן הריצה של סי בlibc או ספריה מתמטית וכו
בווינדוס קבצי ספרייה הם קבצי DLL
מה הן קריאות מערכת
מי יכול לממש פונקציות של מערכת ההפעלה
קריאות מערכת הן קריאות בתוך קובץ קוד המקור
קריאות אלו הינן קריאות לקבלת שירות ממערכת ההפעלה לדוגמה פתיחה או סגירה של קובץ יצירת תהליך חדש שליחת הודעה לתהליך אחר ועוד
מימוש פונקציות של מערכת ההפעלה יוכל להתבצע רק ע״י מערכת ההפעלה ולא כפונקציית ספרייה
תאר את תהליך שעובר על תוכנית בשפה גבוה מרגע סיום כתיבתה ריצתה במעבד אינטל
קובץ המקור או קבצי המקור ישמרו בקבצי c לדוגמה בתוכנית בשפת סי
הם יעברו לתוכנית ה preprocessor שעושה השמת טקסט לכל השורות שמתחילות בסולמית כאשר הקובץ עדיין בסיומי c לאחר מכן התוכנית עוברת קומפילציה בקומפיילר שמתרגם את התוכנית לשפת אסמבלר ושומר את התוכנית בסיומת asm ואז תוכנית האסמבלר המתרגמת את תוכנית בשפת האסמבלר לשפת מכונה בתוך קובץ שנקרא object module עם סיומת obj בתוך התרגום לדוגמה יש המרה של פונקציות ספרייה בשפת סי לצורה שתתקבל ע״י המכונה ואז הלינקר מקשר בין כל משתנה או קובץ לספרייה לשפת מכונה
השינוי בין מעבד אינטל לאחר יהיה בשפת האסמבלר המותאם למעבד הספציפי
מה הוא הinstruction cycle
לאחר השלב הראשון של יצירת התהליך והעתקו מזיכרון האחסון לזיכרון הראשי מתבצע השלב השני של ביצוע ההוראה. תהליך זה נקרא מחזור ביצוע ההוראה, מתחילת עבודתו של המעבד על עצירתו המוחלטת (ע״י ההוראה hlt) המעבד מבצע שוב ושוב סדרה של שלושה צעדים הנקראת מחזור ההוראה
שלבים אלה נקראים if instruction fetch, Id instruction decode, ie instruction execute. זיהוי והעברת השלבים נעשה ע״י יחידת הבקרה. אופן ביצוע ההוראה ע״י המעבד נעשה כברירת מחדל כלומר באופן סדרתי.
פרט על תהליך הIF
התהליך הראשון של המעבד בביצוע ההוראה הוא הבאת ההוראה. הוא קורא אותה מהזיכרון הראשי באמצעות הsystem bus שלב זה נקרא הבאת ההוראה
כתובת ההוראה שאותה הוא מביא מהram שמורה בpc program counter
ההוראה מועתקת מהראם לאוגר של המעבד
אוגר זה נקרא IR אוגר מיוחד
איך מתבטא שדרוג המעבדים לאורך הזמן
עם התקדמות היכולות הפיסיות לשיפור ביצועי מעבדים ניתן לחלק את השדרוג בשימוש במחשב לכמה היביטים
היבט ראשון יהיה שדרוג למשתמש האנושי והוא מכיל:
אפשרות להריץ יותר תהליכים בו זמנית
אפשרות להריץ תהליכים גדולים יותר
אפשרות להריץ תוכניות מסובכות יותר כאלו שלא היה ניתן לפתח עם מעבדים ישנים
הגנה על תוכניות ע״י שילוב של מנגנוני החומרה הנתמכים וממומשים בארכיטקטורה ומערכת ההפעלה
וירטואליזציה כלומר נניח שאתה רוצה לשנות את סביבת העבודה מווינדוס ללינוקס אני יכול לעשות זאת בתמיכת מעבדים מתקדמים יותר
היבט שני מתייחס לאפליקציות שרצות על המחשב
להן יהיה מרחב זיכרון גדול יותר
הגנה מפני אפליקציות אחרות שרצות בו זמנית
ביצועים טובים יותר עבור האפליקציה הבודדת
תקורה (אוברהד) קטנה יותר של מערכת ההפעלה
היבט שלישי יהיה למפתחי מערכת ההפעלה
מה ההבדלים בין מעבדים שונים המממשים את אותה ארכיטקטורה
- ישנה תוספת לקבוצת ההוראות של הדור הקודם
- בין הדורות השונים נשמרת תאימות לאחור
- ניתן להריץ תוכנית ששמורה בקובץ אקס ופותחה במחשב בו מותקן מעבד דור גם במחשב בו מותקן מעבד מדור חדש יותר
- מימוש משופר של הארכיטקטורה
מה משותף למעבדים המממשים אותה ארכיטקטורה
אותו מספר GPR
שמותיהם של GPR
גודלם בביטים
שיטת ניהול הזיכרון הראשי
מה אומר מבחינת ביצוע גודל קו מידע
גודל קו המידע נקבע ע״י מספר הביטים שהוא יוכל להכיל
ככל שמספר הביטים יהיה גדול יותר כך אוכל לשלוח יותר מידע דרכו
כל גודל של ביט יהיה שווה ערך למספר שלו בחזקת 2
מה הוא מבנה הוראות האסמבלר
להוראות אסמבלר יש מבנה אחיד המורכב מארבעה שדות
Label mnemonic operands comment
תפקיד השדות:
השדה הראשון לייבל ניתן להוסיף לשורות התכנית לפי ראות עיניו וצורכיו של המתכנת
התווית מציינת את כתובת ההוראה אליה מוצמדת התווית
כתובת בזיכרון הראשי
כתובת לוגית ביחס לתחילת התכנית
הכתובת הלוגית של ההוראה הראשונה בתכנית היא אפס
לאחר התווית ובצמוד אליה יש להוסיף את התו ׳ : ׳
שימוש נפוץ בתווית, בהוראות קפיצה, ומימוש הוראות תנאי ולולאות. לדוגמה, start: :
בזמן תרגום התכנית האסמבלר מתרגם כלומר מחליף את התווית בכתובות לוגיות מתאימות
מה הן הוראות בקרה
הוראות בקרה מתחלקות לשתי קבוצות
קפיצה לא מותנית, הוראת קפיצה שאינה מותנית ומתבצעת ללא התניה משמעותה היא קפוץ להוראה שכתובה ומצוינת ע״י התווית. בעקבות ביצוע ההוראה הכתובת השמורה באופן EIP מוחלפת בכתובת שמציינת התווית label
קפיצה מותנית, בדיקת תנאים מסוימים ע״י בדיקה בדגלי הif וביצוע בהתאמה
מה עומד מאחורי ארכיטקטורה של ארמ
כוח עיבוד נמוך בשביל צריכת חשמל נמוכה למערכות מוטמעות
דחיסות גבוהה של קוד בשביל זיכרון והגבלות פיסיות מוגבלות
יכול להשתמש איטי וזול
הפחתת גודל DIE להוזלת עלות יצרן ואכלוס יותר ציוד היקפי
בארכיטקטורת ARM מה המשמעות של המושג loadstore
המשמעות היא שכל הפעולות למעט פעולות העברת מידע מתבצעות על נתונים ששמורים באוגר
כלומר בשביל לעשות כל פעולה צריך לטעון את הנתון מהזיכרון הראשי לGPR והמשך הפעולות יצריך דריסה של הנתונים הקודמים.
למה חברים של אינטל היו רק 4 אוגרים לשימוש כללי
בגלל כמות הטרנזיסטורים שהיה ניתן למקם בפיסת הסיליקון
ללא קשר לטכנולוגיה גם ככל שיהיה מספר גדול יותר של אוגרים כך זמן גישה אליהם יהיה גדול יותר
מהם המרכיבים הכללים של מעבד ARM
Load/store architecture
A large array of uniform registers
Fixed length 32 bit instructions
3 address instructions
סכם את ההבדלים בין ארכיטקטורת המעבדים של אינטל וארמ
Intel-
Memory register architecture
Variable length instructions
2 address instructions
Many instructions
Complex instructions
Many supported addressing modes
ARM-
Register to register arch
Fixed length instructions
Small number of instructions
Simple instructions
Only few supported addressing modes
מה הם שלבי הפייפליין
Freaw
Fetch instruction from memory
Read registers and decode the instruction
Execute the operation or calculate address
Access an operand in data memory (if necessary)
Write the result into register (if necessary)
האם ארכיטקטורת ריסק פירושה בהכרח 32 ביט
לא , גודל הביטים עליו יוחלט בפיתוח הארכיטקטורה קשור למטרת השימוש במעבד. גודל הביטים בארכיטקטורת ריסק יכולה להשתנות כתלות בעיצוב רכיבי המעבד ומטרת היישום
16 יהיה בעל כוח עיבוד קטן יותר ומכוון לצורך חיסכוני בצריכת חשמל
32 הנפוץ ביותר מיועד למערכות מוטמעות וצרכני אלקטרוניקה
64 לצרכי עיבוד מידע גדול שדורש הרבה מקום בזיכרון
מה הקשר בין מספר הביטים של המעבד לכמות הזיכרון שאוכל לגשת אליו
מספר הזיכרון הנגיש יהיה כפונקציה של 2 בחזקת מספר הביטים שאוכל לגשת אליהם
מה הוא המיקרו ארכיטקטורה
uAarch design
קצב השעון
פייפליינינג
Branch prediction
מימוש מנגנונים שמאפשרים ביצוע בו זמנית של הוראות ,
מנגנוני ILP institution level parallelism
Superscalar
Out of order
Hyper threading
Multicore cpu
L3 cache
במה יתבטא מספר קווי הכתובת
קווי כתובת = 2 בחזקת הביטים = תאי זיכרון = גודל ביט הGPR