תהליך העיבוד

מתוך WikiBook

קפיצה אל: ניווט, חיפוש

image:process.gif

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

1. בעזרת ה ALU שלו (Arithmetic/logic unit), המעבד יכול לבצע חישובים מתמטיים כמו חיבור, חיסור, כפל וחילוק. המעבדים בימינו כוללים יחידות עיבוד מתקדמות שמסוגלות לבצע חישובים מורכבים יותר.

2. מעבד יכול לכתוב, לקרוא ולהזיז מידע ממקום למקום בזכרון.

3. מעבד יכול "להחליט" החלטות ולקפוץ לסט פקודות חדש המבוסס על ההחלטות הללו.

מעבדים כיום עושים עוד הרבה דברים אחרים, אבל אלו שלושת הפעולות הבסיסיות שכל מעבד ישן כחדש חייב לעשות.

על מנת שנבין איך מעבד עובד, חשוב להבין את הלוגיקה שעומדת מאחורי דרך פעולתו. המעבד מתפקד כ"מוח" החושב של המחשב כולו ונושא את החלק העיקרי של נטל העבודה. מתוקף תפקידו, המעבד הופך בעצם ל"תחנת רכבת" שהמידע עובר דרכה כל הזמן. המידע מגיע בצורת רצף פקודות מהתקני הקלט כגון: הזיכרון, המקלדת, הכוננים וכו' . אחרי שהוא מעבד את המידע, המעבד "פולט" (שולח) את המידע חזרה לזכרון ולהתקנים השונים. המעבד עובד כל הזמן באופן רצוף כאשר כל פעולה מתורגמת לשפה בינארית ועוברת דרכו. כל אחת מהפקודות הללו כוללת שלב ביצוע אחד (כל פעם יכול המעבד לעבד פקודה אחת ויחידה). היום המעבדים עובדים כל כך מהר ומבצעים מיליארדי פקודות בשניה, לכן לפעמים זה יכול להראות לנו כאילו הם מבצעים מספר פקודות סימולטינית. היום קיימות תוכנות שיתוף מסוימות המאפשרות עבודה מקבילה של מעבדים. דבר זה גורם לכך שמשימה שהוטלה דרך מחשב מסויים תעובד בעזרת מספר של מעבדים (כל מעבד מבצע פעולה אחת אבל במקביל לאחרים) ובעזרתם תתבצע פי כמה יותר מהר. עבודת המעבד עצמה מורכבת בעיקר מחישובים מתמטיים ותעבורת מידע. המעבד יודע לפרק כל פקודה עד הרמה הבסיסית ביותר שלה (חיבור, חיסור, כפל וחילוק). ההבדל העיקרי בין מעבדי ה- PC למעבדי ה-MAC הוא שלמעבדי PC יש בסיס רחב של פקודות בסיס אליהם הוא מפרק את המשימה ובכך הוא יודע לטפל בסוגים שונים של בעיות, לעומת מעבדי ה-MAC שיש להם מספר מצומצם יותר של פקודות בסיס אבל כל פקודה הוא מבצע בצורה כמעט מושלמת .דבר זה נותן למעבד ה-MAC יתרון בביצוע פקודות גרפיקה לעומת היתרון שיש ל-PC בפקודות אחרות.


[עריכה] רכיבי המעבד

נעבור על הרכיבים בקצרה ונבין איך פקודת מכונה יוצאת מהכורך אל הפועל.

Address Bus – תפקידו לשלוח כתובות לזיכרון (התקשורת יכולה להתבצע ברוחב פס של BIT 16 ,8 BIT או נכון להיום 32 Bit).

Data Bus – זהו פס שמורכב משני חלקים: חלק ששולח מידע וחלק שמקבל מידע ממקטעי זיכרון על פי הכתובות הנשלחות מה Address Bus (פס הכתובות מציין את הכתובת של התא אליו המידע ישלח או ילקח).

(Line RD/WR - (read/write – קווים אלו מתזמנים את הקריאה והכתיבה לזיכרון (מתי הזכרון רשאי לקרוא מתוך רכיב כלשהו ומתי הוא מורשה לכתוב לתוכו – לשנות מידע בו).

Clock Line – מקו זה נכנס פולס חשמלי שמתחיל את התהליך כל פעם מחדש, מיליוני פעמים בשניה.

Reset Line – מאפס את מונה התיכנות (program counter) לפני כל מחזור חדש של פעילות המעבד.

כעת נבין מעט את החלקים של המעבד:

ALU - זהו המעבד המתמטי. הוא יכול לבצע פעולות מתמטיות כמו שהוזכר על מספרים בגודל 32Bit בעזרת רכיב זה. כמו כן יש לו את האפשרות להשוות בין שני מספרים בעזרת ב-Test Register.

Test Register - רכיב זה מחזיק ערכים להשוואה עבור ה-ALU . כמו שאמרנו ה-ALU יכול להשוות בין מספרים, אם מספר אחד גדול מהשני הוא נשמר ברכיב ה-TEST עבור ה-Decoder instruction כדי שיחליט מה לעשות הלאה.

Register A/ B /C – הם ה"אוגרים", המאחסנים הזמניים של המידע בתוך המעבד שמופעלים ע"י פקודה.


Address Latch - רכיב זה הוא בדיוק כמו ה"אוגרים" רק שהוא לוקח חלק בהרכבת הכתובות לזכרון.

Program Counter - זהו גם מאחסן זמני שיכול להעלות ערך מתי שאומרים לו וגם להתאפס על פי פקודה מה- Reset Line.

State Buffer 3 - רכיב זה יכול להעביר דרכו 0 ו- 1 ואפילו לנתק לגמרי את יציאות הפלט שלו. משתמשים בו כדי לחבר כמה חוטים לפלט אחד וה 3 State – "יודע" לאיזה מהם להעביר את המידע. שמים רכיב כזה בכל מקום שבו מגיעים מספר רב של מקורות כמו ב-Data Bus. עקב העובדה שהוא מכיר 3 מצבים (0,1, ניתוק)ניתן לו שמו.

Instruction Decoder - בעזרת ה-Instruction Decoder כל הרכיבים האחרים מקבלים פקודות לביצוע. ה-Instruction Decoder יכול לחלק פקודות כמו לפקוד על האוגרים A B C לאכסן ערך שמגיע מה-Data Bus. אותו הדבר על ה-Program Counter או על ה-Address Register ועוד פקודות נוספות גם על שאר הרכיבים.

פרקי ספר הלימוד תמונה:cpu.gif