שפת מכונה – מבוא. נושאים היסטוריה גישה לזיכרון פקודות אריתמטיות. מבוסס על פרק 3 של Computer Systems – a programmers perspective / Bryant & O’hallrron. מעבדי IA32. IA32 הוא השם של 'שפת המכונה' של מחשבי אינטל. "שפת מכונה" = ISA – Instruction Set Architecture - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
שפת מכונה – מבוא
שפת מכונה – מבוא
נושאיםנושאים
היסטוריההיסטוריה
גישה לזיכרוןגישה לזיכרון
פקודות אריתמטיותפקודות אריתמטיות
של של 33מבוסס על פרק מבוסס על פרק Computer Systems – a programmers perspective / Bryant & O’hallrronComputer Systems – a programmers perspective / Bryant & O’hallrron
– 2 –
IA32מעבדי IA32מעבדי
IA32IA32.הוא השם של 'שפת המכונה' של מחשבי אינטל. הוא השם של 'שפת המכונה' של מחשבי אינטל
ISA – Instruction Set ArchitectureISA – Instruction Set Architecture"שפת מכונה" = "שפת מכונה" = אבל הוסיפו פקודות במשך הזמן8086 עם 1978התחיל ב ,
שפה מסוגComplex Instruction Set Computer (CISC) .פקודות רבות מאוד )מאות(, למרות שברובן לא משתמשים בפועל
קיימת גישה שלReduced Instruction Set Computer (RISC)
פחות פקודות --< מעבד קטן ומהיר יותר בפועל אינטל הצליחו להגיע לביצועים שווים ואף מהירים יותר(
.(RISKממחשבי
– 3 –
ProcessorsProcessors
Progress of proceessors
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
Model
# T
ran
sist
ors
)k(
Series1
2001
1978
– 4 –
x86היסטוריה של x86היסטוריה של NameName DateDate TransistorsTransistors
80868086 19781978 29K29K סיביות. הבסיס של 16מעבד IBM PC & DOS 1מוגבל ל MB זיכרון. ממילא DOS נתנה רק מרחב זיכרון של
640k
8028680286 19821982 134K134K הבסיס שלIBM PC-AT and Windows
386386 19851985 275K275K סיביות. הוסיפו 32הרחבה ל “flat addressing” כלומר, צורה(
אחידה לכתובות( מסוגל להריץ אתUnixLinux/gcc לא משתמשים בפונקציונאליות שנוצרה מאוחר יותר
ממעבד זה.
– 5 –
x86היסטוריה של x86היסטוריה של
NameName DateDate TransistorsTransistors
486486 19891989 1.9M1.9M
PentiumPentium 19931993 3.1M3.1M
PentiumProPentiumPro 19951995 6.5M6.5M הוסיפו פקודותconditional move שינויים רבים במיקרו-ארכיטקטורה
Pentium/MMXPentium/MMX 19971997 4.5M4.5M סיביות. 64הוסיפו קבוצת פקודות חדשה לטיפול בוקטורים באורך
. multimediaמיועד לתוכניות
– 6 –
x86היסטוריה של x86היסטוריה של
NameName DateDate TransistorsTransistors
Pentium IIIPentium III 19991999 8.2M8.2Mהוסיפו פקודות
streaming SIMD (Single Instruction, Multiple Data) .-floating או integersהכוונה לפעולות על וקטורים שלמים של
points כל .datum ה( data הוא בגודל )1,2 עליה עובדת הפקודה בתים. 4או
Pentium 4Pentium 4 20012001 42M42M144 פקודות חדשות ל streaming SIMD mode לצורך טיפול גם
בתים.8בגודל datumב
– 7 –
JלJאHן JלJאHן ? מJאHיין ו ? מJאHיין ו
מאיין הסיבוך? חלק גדול מהסיבוך של המעבדים מאיין הסיבוך? חלק גדול מהסיבוך של המעבדיםהמודרניים נובע מהצורך שלהם להיות 'תואמים המודרניים נובע מהצורך שלהם להיות 'תואמים
אחורנית'.אחורנית'. תוכנית שהודרה על מחשב ישן יותר או עם מהדר ישן יותר עדיין
רצה על המעבד החדש יותר.
?לאן הלאה?לאן הלאהמעבדים מרובי ליבה
– 8 –
תואמים...תואמים...
Advanced Micro Devices (AMD)Advanced Micro Devices (AMD) בדר"כ קצת מאחוריIntel.)הרבה יותר זולים )לפחות בארה"ב , כיום יש להם מעבדים שמתחרים עם אלה שלIntel.גם במהירות
– 9 –
IA64 שפה חדשה: IA64 שפה חדשה:
NameName DateDate TransistorsTransistors
ItaniumItanium 20012001 10M10M סיביות 64ארכיטקטורת שפה שונה לגמרי, עם התמקדות מוחלטת בביצועים )בניגוד לנוחות
אימפלמנטציה של מהדרים, למשל(:המהדר במקבילמכיל פקודות לביצוע אחד המאפיינים המרכזיים .
יכול להחליט ששתי פעולות אינן תלויות ולהכריז עליהן ככאלה עם .IA64פקודות
בניגוד לארכיטקטורת IA32 ששם הדבר נעשה באופן מוגבל וברמת החומרה.
יודע להריץ גם תוכניותIA32 (On-board “x86 engine”)
Itanium 2Itanium 2 20022002 221M221Mהאצה משמעותית בביצועים
– 10 –
text
text
binary
binary
Compiler (gcc -S)
Assembler (gcc or as)
Linker (gcc or ld)
C program (p1.c p2.c)
Asm program (p1.s p2.s)
Object program (p1.o p2.o)
Executable program (p)
Static libraries (.a)
לתוכנית ברת Cמתוכנית ב תזכורת:הרצה
לתוכנית ברת Cמתוכנית ב תזכורת:הרצה
נניח שהתוכנית נמצאת בקבציםp1.c p2.c נהדר עם :gcc -O p1.c p2.c -o p(-O אופטימיזציות בסיסיות ,-o בינארי בקובץ p)
– 11 –
מנקודת המבט של assembly...
מנקודת המבט של assembly...
PC
Registers
CPU Memory
Object CodeProgram Data
OS Data
Addresses
Data
Instructions
Stack
ConditionCodes
הזיכרון.מערך בתים עם כתובות ,תוכניותdata .מידע של מע"ה , מכיל מחסנית)stack( לצורך
תמיכה בתוכניות פרוצדורליות.
מצב המערכת:מצב המערכת:PCProgram Counter
הכתובת של הפקודה הבאהRegister file(!זה לא קובץ)
:(אוגרים) מידע שמשתמשים בו רגיסטריםלעתים קרובות / השתמשו בו לאחרונה.
Condition Codes סטטוס של פקודות אריתמטיות שבוצעו
לאחרונה. מיועד עבורconditional branching
– 12 –
Assemblyמאפיינים של Assemblyמאפיינים של datadataקבוצה מינימלית של סוגי קבוצה מינימלית של סוגי
בתים1,2,4שלמים בגודל .או ערכים, או כתובות
Floating point בתים.10 או 8, 4 בגודל )... ,אין מבני נתונים מורכבים יותר )מערכים, מבנים
.מיוצגים על ידי רצף של בתים בזיכרון
פעולות בסיסיות בלבדפעולות בסיסיות בלבדפעולה אריתמטית על רגיסטר או ערך בזיכרוןהעברת מידע בין זיכרון לרגיסטר פקודותcontrol
קפיצות מ ואל פרוצדורות קפיצות מותנות(conditional branches)