מעבד
מתוך ויקיפדיה, האנציקלופדיה החופשית
- ערך זה עוסק בחלק המרכזי במחשב. אם התכוונתם למשמעויות אחרות של המושג, ראו מעבד (פירושונים).
מעבד, יחידת העיבוד המרכזית (CPU - Central Processing Unit), הוא החלק המרכזי במחשב, שמבצע את הפקודות המאוחסנות בזיכרון המחשב. פקודות אלה הן פקודות אלמנטריות ביותר, כשכל פקודה בנויה מרצף קצר של ביטים, שמשמעותו מובנת על ידי המעבד. רצף זה קרוי שפת מכונה. כל דגם של מעבד מתאפיין בסט הפקודות שלו.
המעבדים המודרניים (המכונים מיקרו-מעבדים) בנויים על גבי שבב אחד בודד. יכולותיו של המעבד כוללים קריאת מידע מהזיכרון או מהתקנים שונים, ביצוע פעולות מתמטיות ולוגיות על מידע זה וכתיבת תוצאות החישוב בחזרה לזיכרון או לחלופין שליחתו להתקנים חיצוניים. יכולת זו מאפשרת למעבד גמישות רבה מספיק כדי לשמש למגוון רחב ביותר של יישומים.
מבחינה מספרית, הרוב המכריע של המעבדים המיוצרים כיום, משמשים כיחידות בקרה של מוצרי צריכה דוגמת: צגים, מדפסות, מכוניות, מכונות כביסה טלפון סלולרי, וכן הלאה. המעבדים הללו מיועדים לשימושים ייעודיים, למשל - עיבוד אות ספרתי (DSP), מיקרו-בקר, עיבוד רשתות תקשורת (Network Processing), או מעבד גרפי. למעבדים אלו סט פקודות שונה הנותן עדיפות לפקודות שאותן מעבד זה מבצע. עם זאת, המעבדים בעלי החשיבות הרבה ביותר מבחינה טכנולוגית, בהם מתמקדים רוב מאמצי המחקר והפיתוח הם המעבדים המשמשים כיחידת עיבוד מרכזית במחשב.
תוכן עניינים |
[עריכה] רקע היסטורי
עד ראשית שנות השבעים היו מחשבים מורכבים ממספר רב של מעגלים מודפסים ותפסו נפח עצום, לעתים אפילו קומות שלמות. נקודת המפנה החשובה ביותר הייתה פיתוח המיקרו-מעבד, שהכיל את כל החומרה הדרושה על גבי שבב יחיד. כיום כל המעבדים הנמצאים בשימוש הם מיקרו-מעבדים.
המיקרו-מעבד הראשון היה ה־4004 שפותח בשנת 1971 על ידי חברת אינטל, שעסקה עד אז בפיתוח ויצור שבבי זיכרון. במקור פותח ה־4004 עבור מחשבי כיס של חברת Busicom היפנית. שבב זה היה הראשון שגישר על הפער שבין שבבים ייעודיים בעלי יכולת מוגבלת שנועדו לישום מסוים (לדוגמה מחשבי כיס) לבין יחידות עיבוד במחשבים שהיו קיימים אז, שהורכבו ממספר רב של מעגלים מודפסים שונים. יכולת החישוב של ה-4004 הייתה מוגבלת למדי והוא התבסס על פעולות של 4 סיביות בלבד, כך שלא היה מתאים לשימוש במחשב.
ה־8008 שפותח בשנת 1972 הרחיב את יכולת המעבד לעבודה על 8 סיביות, ובשנת 1974 פיתחה אינטל גרסה משוכללת יותר, ה־8080, ששימשה מאוחר יותר כיחידת עיבוד מרכזית במחשבים ביתיים.
במקביל ל-8080 פותחו גם מספר מעבדים מתחרים כגון Z80 של חברת זילוג (שהוקמה על ידי אחד המהנדסים שהיה אחראי על פיתוח ה־4004 באינטל), ה-6800 של חברת מוטורולה וה־6502 של חברת MOS Technology, שהיו כולם פופולריים במחשבים ביתיים בראשית שנות ה-80.
בשנת 1981 בחרה חברת IBM ב־8086 של אינטל, יורשו של ה־8080 שהרחיב את יכולת העיבוד ל-16 סיביות, בתור יחידת העיבוד המרכזית עבוד המחשב האישי שלה והפכה בכך את משפחת ה־x86 של אינטל למעבדים הפופולריים ביותר. מעט מאוחר יותר, בשנת 1984, בחרה חברת אפל במעבד מתחרה, ה־6800 של חברת מוטורולה עבור מחשבי המקינטוש, וכך סידרת המעבדים של מוטורולה הפכה לשנייה בתפוצתה אחרי המעבדים של אינטל, עד שהוחלפה בשנת 1991 במעבד ה־PowerPC שפותח במשותף על ידי מוטורולה, IBM ואפל.
[עריכה] פעולת ומבנה המעבד
כל מעבד מורכב ממספר יחידות המבצעות פעולות שונות. במעבדים מודרניים המבוססים על שיטת צינור עיבוד נתונים (Pipeline), כל אחת מיחידות אלו פועלת בנפרד.
לצורך ביצוע פקודה בודדת המעבדים משתמשים באחד מהסטים של הפעולות הבאות (תלוי במעבד):
אפשרות א':
- Fetch - חישוב כתובת הפקודה הבאה לביצוע, וקריאת הפקודה הבאה לביצוע מהזיכרון.
- Decode - פיענוח הפקודה, והבאת ערכי הרגיסטרים בהם הפקודה משתמשת
- Execute - ביצוע הפעולה האריתמטית/לוגית שהפקודה דורשת באמצעות הALU. במקרה שהפקודה היא פקודת חישוב, כאן מתבצע החישוב. במקרה והפקודה היא פעולת קריאה/כתיבה בזיכרון, כאן מחושבת הכתובת של הנתון בזיכרון. במקרה של פקודת הסתעפות (Branch/Jump), כאן מחושב קיום התנאי להסתעפות, ומתבצעת ההחלטה האם להסתעף, או לא.
- Memory - קריאה/כתיבה של נתון בזיכרון, במקרה של פקודת קריאה/כתיבה בזיכרון.
- Write Back - כתיבת תוצאת החישוב משלב הExecute או תוצאת הקריאה משלב הMemory אל רגיסטר היעד.
אפשרות ב':
- חישוב הכתובת בה נמצאת הפקודה הבאה
- קריאת הפקודה הבאה לביצוע מהזיכרון
- פיענוח הפקודה: בשלב זה המעבד מפענח מהי הפקודה שצריכה להתבצע, איזו יחידת ביצוע להפעיל ואילו משתנים מעורבים. במעבדים בעלי ארכיטקטורת CISC, פקודת אסמבלי בודדת עשויה להפוך בשלב הפיענוח למספר פקודות פנימיות של המעבד.
- חישוב: בשלב זה קוראים ערכים מהזיכרון במידה וצריך (במעבדים מסוימים הקריאה מהזיכרון נחשבת לשלב נפרד), ובהתאם לסוג הפעולה מופעלת יחידת החישוב המתאימה של המעבד לביצוע הפעולות האריתמטיות והלוגיות הרלוונטיות.
- כתיבה חזרה לזיכרון: הערך המחושב נכתב למקום למקום אחסון התוצאה.
[עריכה] יחידות המרכיבות את המעבד
יש לציין כי במיקרו-מעבד כל היחידות השונות יושבות על אותו השבב, והחלוקה ליחידות קיימת רק בשלב התכנון. החלוקה ושמות היחידות שונות במעט ממעבד אחד למשנהו, אבל מעבדים מודרניים מורכבים בדרך-כלל מהיחידות הבאות:
- אוגר (Register או "רגיסטר"): יחידה אחת של זיכרון פנימי מהיר ביותר הנמצא לרוב בתוך יחידת העיבוד המרכזית של מחשב אשר מאפשר אכסון ערכים, בדרך כלל זמנית, עבור פעולות בסיסיות שונות מסט הפקודות של המעבד (חיבור, כפל, וכו'). חלק מהאוגרים של המעבד מוקדשים למטלות ספציפיות, אחרים זמינים לשימושם הכללי של התוכנות המורצות.
- מטמון L0: זיכרון מהיר במיוחד, המשמש לאחסון פקודות המיועדות לביצוע. במקום לפנות בכל פעם לזיכרון הכללי, פעולה הדורשת זמן רב, מאחסנים במטמון L0 את אוסף הפקודות הבאות בתור לביצוע.
- מטמון L1: זיכרון מהיר המשמש לצורך זירוז העבודה עם הזיכרון הראשי לצורך כתיבת נתונים. זיכרון זה מאחסן את האזורים האחרונים בזיכרון בהם השתמשו לצורך כתיבה או קריאה. במעבד פנטיום 4 לדוגמה, גודל מטמון זה הוא 64 קילו-בייט.
- מטמון L2: זיכרון מעט איטי יותר מ-L1 אבל עדיין מהיר בהרבה מהזיכרון החיצוני. בעבר מטמון זה ישב בשבב נפרד מחוץ למעבד, אבל כאשר ניתן היה להכניס מספיק טרנזיסטורים בשבב אחד, הוכנס גם מטמון זה אל תוך המעבד. גודלו של מטמון L2 מגיע ל־2 מגה-בייט במעבדי פנטיום 4 חדשים.
- מטמון L3: זיכרון איטי מה־L2 אך גדול ממנו. זיכרון L3 קיים במעבדים מסוימים, אך רוב המעבדים לא כוללים זיכרון כזה.
- יחידת בקרה: יחידה האחראית על שלבי הקריאה והפיענוח של פקודות.
- יחידת ניבוי קפיצות: בשפת האסמבלי ישנן פקודות קפיצה המורות למעבד לעבור לביצוע פקודה בכתובת מסוימת שאינה בהכרח הכתובת הבאה בזיכרון. פקודות קפיצה אלו הן ברובן מותנות, כלומר: הקפיצה תבוצע רק אם תנאי מסוים יתקיים. כדי שניתן לקרוא ולפענח את הפקודה הבאה לפני שידוע אם התנאי אכן מתקיים או לא, המעבד מנסה לנחש האם הקפיצה תבוצע על סמך ניסיון העבר.
- יחידה אריתמטית-לוגית (ALU): יחידה זו מבצעת פעולות במספרים שלמים (חיבור, חיסור, הכפלה) ופעולות לוגיות שונות (כדוגמת שער לוגי NAND, NOR, NOT, וכדומה). היחידה נחשבת ללב המעבד, ויעילותה היא החשובה ביותר בביצועי המעבד כולו.
- יחידת נקודה צפה (FPU): יחידה זו מבצעת פעולות במספרים ממשיים. במעבדים ישנים (לדוגמה 80386), לא הייתה במעבד יחידה כזו והיה צורך בשבב חיצוני שיבצע את הפעולות במספרים ממשיים. כיום זהו חלק אינטגרלי מהמעבד עצמו.
- בקר אפיק נתונים: אפיק הנתונים (bus) הוא האמצעי המקשר בין המעבד לבין הזיכרון וההתקנים החיצוניים במחשב. לצורך סינכרון התקשורת באפיק הנתונים יש צורך בבקר (controller) שתפקידו לווסת ולפקח על התעבורה באפיק. בעבר גם יחידה זו הייתה בשבב נפרד וכיום זהו חלק מהמעבד עצמו. יחידה זו הייתה צואר הבקבוק של המעבד, בגלל שהקריאה והכתיבה לזיכרון היו נמוכים באופן משמעותי ממהירות המעבד עצמו, והוא היה צריך להמתין מחזורי שעון על מנת לבצע את הקריאה. עם ההתקדמות הועלתה מהירותו ובמעבדי פנטיום 4 החדישים היא עומדת על 1066 מגה-הרץ. שהיא כשליש ממהירות המעבד עצמו. תפקידו של זיכרון מטמון L2 הוא לגשר על הפער בין מהירות המעבד למהירות הערוץ.
[עריכה] מושגים בסיסיים במיקרו-מעבדים
- מהירות שעון או תדר עבודה: בכל מעבד ישנו שבב הפולט פולסים. פולסים אלו מווסתים את קצב פעולת המעבד. ככלל, ככל שמהירות השעון גבוהה יותר כך המעבד מהיר יותר, אם כי אין זה הפרמטר היחיד הקובע את מהירות המעבד. במחשב הIBM-PC הראשון היה מעבד 8086 הייתה מהירות שעון של 4.77MHz, כלומר 4.77 מיליון פולסים לשנייה. במעבדי פנטיום 4 הנמכרים בשנת 2004 מהירות שעון של עד 3.8GHz, כלומר 3.8 מיליארד פולסים לשנייה (אבל אין פקודה בודדת שמתבצעת בקצב הזה).
- צינור עיבוד נתונים (pipeline): שיטת תכנון מעבד בה מחולקת העבודה למספר שלבים המבוצעים במקביל. לדוגמה: בזמן שתוצאות הוראה אחת נכתבות לזיכרון, ההוראה הבאה מתבצעת, וההוראה הבאה אחריה כבר מפוענחת. מעבד ה-8086 לא היה בנוי בשיטת צינור עיבוד נתונים ולכן היה צריך לחכות שהוראה תתבצע עד תומה לפני שהמעבד התחיל לבצע את ההוראה הבאה. מסיבה זו במעבד זה לכל הוראה לקח משך זמן של 3-4 תקתוקי שעון כדי להתבצע. ככל שהעבודה מחולקת לחלקים קטנים יותר כך ניתן להפעיל את המעבד בתדר גבוה יותר, אלא שיש לכך מחיר: במעבד בעל צינור עבודה ארוך במיוחד, אם התבצעה טעות בשלב מוקדם (לדוגמה, יחידת הניבוי ביצעה ניחוש מוטעה לגבי הכתובת של ההוראה הבאה) יקח זמן רב יותר להתאושש מהטעות.
- סופר-סקלאר: מעבד המכיל מספר יחידות המסוגלות לבצע פעולות שונות השייכות לאותו שלב בצינור הביצוע במקביל. לדוגמה, מעבד עשוי להכיל יחידה אחת עבור פעולת החילוק ויחידה נפרדת עבור פעולת הכפל, וכך ניתן לבצע את פעולת הכפל של ההוראה הבאה לפני שפעולת החילוק הסתיימה.
- Out of order machine: מעבדים מודרניים סופר-סקלאריים מסוגלים לשנות את סדר ביצוע הפעולות כדי להפעיל כמה יחידות חישוב במקביל וליעל את קצב העבודה של המחשב. הרעיון הוא שכאשר פקודה מסוימת מחכה לתוצאות של חישובים שטרם הסתיימו, ניתן לבצע בינתיים את הפעולות הבאות אחריה, כל עוד פעולות אלו אינן תלויות בחישובים שטרם הסתיימו.
- פעולות למחזור שעון (instructions per cycle): מרכיב נוסף המשפיע על מהירות המעבד בנוסף למהירות השעון שלו הוא מספר הפעולות שהמעבד מסוגל לבצע בתקתוק שעון. מעבד ה-8086 לדוגמה היה מסוגל לבצע פעולה ב-4 תקתוקי שעון. מעבדים מודרניים כגון הפנטיום 4, האתלון של חברת AMD וה-PowerPC של IBM ומוטורולה מסוגלים לבצע יותר מאשר פעולה אחת בכל תקתוק של השעון.
- CISC לעומת RISC: המעבדים הראשונים תוכננו לפני המצאת צינור עיבוד הנתונים ולכן שפת הסף שלהם איפשרה ביצוע פעולות מורכבות יחסית שאינן יכולות להתחלק באופן יעיל לחלקים קטנים יותר. מעבדים אלו כונו מעבדי CISC (ר"ת של Complex Instruction Set Computer). עם המצאת השיטה של צינור עיבוד הנתונים, פותחו מעבדים חדשים עם שפה שהותאמה במיוחד לשיטה זו. שפת המכונה של מעבדים אלו הכילה פקודות פשוטות יותר אותן קל לחלק לשלבים, ולכן כונו RISC (ר"ת של Reduced Instruction Set Computer). אף על פי שמעבדי RISC נחשבו ליעילים יותר, מעבדי אינטל ותואמיהם (כולל המעבדים של AMD) המשיכו לעבוד בשיטת ה-CISC כדי לשמור על תאימות לשפת המכונה של המעבדים הקודמים. לעומתם, ה-PowerPC המשמש במחשבי המקינטוש הוא מעבד RISC. עם זאת, עם הזמן הצטמצם הפער בביצועים בין CISC ל-RISC, כאשר מעבדי CISC מודרניים כגון הפנטיום-4 והאתלון מתרגמים כל פקודה בשפת המכונה המורכבת שלהם לשפת RISC פנימית.
[עריכה] תהליך יצור המעבד
את המעבדים מייצרים בתהליך המכונה ליתוגרפיה, במהלכו נסרקת התבנית של המעגל באמצעות קרן לייזר באורך גל מסוים ומועתקת אל שכבה דקה של מוליך למחצה, כגון סיליקון. מפאת גודלם הזעיר של הרכיבים, כל גרגיר אבק קטנטן עלול לקלקל את הרכיב, ולכן מייצרים את המעבדים באזורים מיוחדים הנקראים חדרים נקיים, שבהם רמת החלקיקים באוויר נמוכה פי 1,000 מחדר ניתוח והטכנאים לבושים בחליפות מיוחדות המכונות בעגה Bunny-Suits. בתהליך זה מדפיסים מספר רב של מעבדים על פרוסת סיליקון, אותה חותכים למעבדים רבים בסיום התהליך. מעבדים איכותיים יותר, מקבלים את מהירות השעון המקסימלית ואילו מעבדים באיכות פחות טובה, מקבלים מהירות שעון נמוכה יותר. עובי ההדפסה של קוי המתאר של מוליכי המעבד קטנה משנה לשנה, על מנת שיהיה אפשר לחסוך בחשמל, להעלות את מהירות השעון של המעבד ולבנות מעבדים מורכבים יותר על ידי הגדלת מספר הרכיבים או לחילופין להגדיל את מספר המעבדים מפרוסה אחת, דבר המביא לרווחים גדולים יותר. באמצע 2004 רוחב תעלת הטרנזיסטורים של המעבד עמד במעבדי אינטל החדשים על 90nm (ננומטר). ביולי 2005 מעבדי אינטל מיוצרים בטכנולוגיה של עד 65nm, חברת AMD התחילה לעבור לטכנולוגיה זו בסוף 2006.
[עריכה] מעבד מרובה ליבות
-
ערך מורחב – מעבד מרובה ליבות
בעשור הראשון של המאה ה-21, לאחר שהתברר כי קיימת בעיה פיזיקלית להאיץ את מהירות המעבד, מעבר למה שהושג, התחילה מגמה ליצירת מספר ליבות על מעבד אחד. הדבר גרם להגדלת כוח המיחשוב ולחלוקת נטל המיחשוב למספר מוקדים במקביל. בתחילה נוצרו מעבדים עם שתי ליבות. ביוני 2005 הכריזה חברת AMD על מעבדי 64 ביט כפולי ליבה למחשבים שולחניים. באוקטובר 2005 הכריזה חברת אינטל על מעבדים דו-ליבתיים לשרתים. עם שיווק הפלייסטיישן 3 של חברת סוני בנובמבר 2006, חדרה מגמה זו לשוק קונסולות המשחקים, עם מעבד 8 ליבות של חברת י.ב.מ. שהותקן בקונסולה זו. בתחילת 2008 עברה מגמה זו גם למעבדים זעירים למחשבי כף יד וטלפונים סלולריים, כאשר אינטל הכריזה על מעבד "אטום". ברבע הראשון של שנת 2008 כבר ניתן לרכוש, מחשבים אישיים שמותקנים עליהם מעבדים עם ארבע ליבות.
[עריכה] חברות לייצור מעבדים
[עריכה] ראו גם