Anonim

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

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

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

קצת היסטוריה

לפני שנבנו מעבדים עם ליבות מרובות, אנשים וחברות כמו אינטל ו- AMD ניסו לבנות מחשבים עם מעבדים מרובים. משמעות הדבר הייתה שצריך לוח אם עם יותר משקע מעבד אחד. לא זו בלבד שהדבר היה יקר יותר, בגלל החומרה הפיזית הדרושה לשקע מעבד אחר, אלא שהוא גם הגביר את החביון בגלל התקשורת המוגברת שנחוצה להתקיים בין שני המעבדים. לוח האם היה צריך לפצל נתונים בין שני מיקומים נפרדים לחלוטין במחשב ולא פשוט לשלוח את כל זה למעבד. מרחק פיזי פירושו למעשה שתהליך איטי יותר. הצבת תהליכים אלה על שבב אחד עם ליבות מרובות לא רק פירושה שיש פחות מרחק לנסוע, אלא זה גם אומר שגרעינים שונים יכולים לחלוק משאבים לביצוע משימות כבדות במיוחד. לדוגמה, שבבי ה- Pentium II ו- Pentium III של אינטל יושמו שניהם בגרסאות עם שני מעבדים בלוח אם אחד.

לאחר זמן מה, המעבדים היו צריכים להיות חזקים יותר, כך שיצרני המחשבים הגיעו למושג ההיפר-הברגה. הרעיון עצמו הגיע מאינטל, והוא הועלה לראשונה בשנת 2002 על מעבדי שרת ה- Xeon של החברה, ובהמשך על מעבדי שולחן העבודה Pentium 4 שלה. ההיפר-הברגה משמשת כיום גם במעבדים, והיא אפילו ההבדל העיקרי בין שבבי i5 של אינטל לשבבי i7. בעיקרון זה מנצל את העובדה שלעתים קרובות יש משאבים שאינם בשימוש במעבד, במיוחד כאשר משימות אינן דורשות כוח עיבוד רב, שניתן להשתמש בהן לתוכניות אחרות. מעבד המשתמש בהיפר-הברגה בעצם מציג את עצמו למערכת הפעלה כאילו יש לו שתי ליבות. כמובן, אין לה באמת שתי ליבות, עם זאת, לשתי תוכניות המשתמשות במחצית מכוח העיבוד הזמין או פחות, יתכנו באותה מידה שתי ליבות בגלל העובדה שביחד הן יכולות לנצל את כל הכוח ש למעבד להציע. עם זאת, ההיפר-הברגה תהיה מעט איטית יותר ממעבד עם שתי ליבות כאשר אין מספיק כוח עיבוד לחלוק בין שתי התוכניות המשתמשות בליבה.

אתה יכול למצוא סרטון תובנה המסביר כאן הסבר קצר ומפורט יותר על היפר-הברגה.

רב-מעבדים

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

אז מדוע חברות פיתחו מעבדים עם ליבות מרובות? ובכן, הצורך במעבדים מהירים יותר הופך ליותר ויותר ברור, אולם ההתפתחויות במעבדי ליבה בודדים האטו. משנות השמונים ועד שנות האלפיים הצליחו המהנדסים להגדיל את מהירות העיבוד מכמה מגה-הרץ למספר גיגה-הרץ. חברות כמו אינטל ו- AMD עשו זאת על ידי כיווץ גודל הטרנזיסטורים, שאיפשר טרנזיסטורים נוספים באותה כמות שטח, ובכך שיפרו את הביצועים.

בגלל העובדה כי מהירות שעון המעבד קשורה מאוד לכמה טרנזיסטורים שיכולים להתאים לשבב, כאשר טכנולוגיית התכווצות הטרנזיסטור החלה להאט, ההתפתחות במהירויות המעבד המוגברות גם החלה להאט. אמנם זה לא כאשר חברות ידעו לראשונה על מעבדים מרובי ליבות, אך זה כשהחלו להתנסות במעבדים מרובי ליבות למטרות מסחריות. בעוד שמעבדים רב-ליבתיים פותחו לראשונה באמצע שנות השמונים, הם תוכננו לתאגידים גדולים ולא ממש נבדקו עד שהטכנולוגיה בעלת הליבה החלה להאט. המעבד הרב-ליבתי הראשון פותח על ידי רוקוול אינטרנשיונל, והיה גרסה של השבב 6501 עם שני מעבדים 6502 על שבב אחד (פרטים נוספים זמינים כאן בערך זה בוויקיפדיה).

מה עושה מעבד רב ליבות?

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

השימוש במספר ליבות אינו מוגבל רק למספר תוכניות. לדוגמה, Google Chrome הופך כל דף חדש לתהליך אחר, כלומר הוא יכול לנצל מספר ליבות בבת אחת. עם זאת, יש תוכנות שנקראות חד-הליכי, מה שאומר שהם לא נכתבו בכדי שיוכלו להשתמש בליבות מרובות וככאלה לא יכולים לעשות זאת. כאן נכנס שוב לשחק היפר-הברגה ומאפשר ל- Chrome לשלוח דפים מרובים לשני "ליבות לוגיות" בליבה אחת ממש.

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

מערכות הפעלה עצמן עושות דברים דומים בתהליכים משלהן - זה לא רק מוגבל ליישומים. תהליכי מערכת הפעלה הם דברים שמערכת ההפעלה עושה תמיד ברקע, מבלי שהמשתמש בהכרח ידע זאת. בגלל העובדה שתהליכים אלה מתרחשים תמיד, היכולת להבריג יתר ו / או ליבות מרובות יכולה להועיל מאוד, מכיוון שהיא משחררת את המעבד כדי לעבוד על דברים אחרים כמו מה שקורה באפליקציות.

איך מעבדים מרובי ליבות עובדים?

ראשית, לוח האם ומערכת ההפעלה צריכים לזהות את המעבד ושיש מספר ליבות. למחשבים ישנים בלבד היה ליבה אחת, כך שמערכת הפעלה ישנה אולי לא תעבוד טוב יותר אם משתמש ינסה להתקין אותה במחשב חדש יותר עם ליבות מרובות. Windows 95, למשל, אינו תומך בהיפר-הברגה או בליבות מרובות. כל מערכות ההפעלה האחרונות תומכות במעבדים מרובי ליבות, כולל כאלה כמו חלונות 7, 8, ה- 10 החדש שפורסם ומערכת ההפעלה X של Apple 10.10.

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

מעבד רב ליבות

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

מעבד יחיד ליבה

אם מעבד לא יכול למצוא את מה שהוא מחפש במטמון L2, הוא ממשיך לאורך הקו ל- L3, ואם למעבד יש אותו, L4. לאחר מכן הוא ייראה בזיכרון הראשי, או RAM של מחשב.

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

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

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

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

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

הכל על מעבדים רב ליבתיים: מה הם, איך הם עובדים ואיפה הם הגיעו