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

מעבדים מרובי ליבות היו זמינים ב מחשבים אישיים מאז תחילת שנות ה-2000. עיצובים מרובי ליבות טיפלו בבעיה של פגיעה של מעבדים בתקרת הפיזי שלהם מגבלות מבחינת מהירויות השעון שלהם וכמה ביעילות ניתן לקרר אותם ועדיין לשמור עליהם דיוק. על ידי מעבר לליבות נוספות בשבב מעבד בודד, היצרנים נמנעו מבעיות במהירויות השעון על ידי הכפלה יעילה של כמות הנתונים שניתן לטפל בה מעבד.
כשהם שוחררו במקור, היצרנים הציעו רק שתי ליבות במעבד יחיד, אבל כעת יש אפשרויות לארבע, שש ואפילו 10 או יותר. בנוסף להוספת ליבות, טכנולוגיות ריבוי השחלות סימולטניות - כמו Hyper-Threading של אינטל - יכולות להכפיל את הליבות הווירטואליות מערכת הפעלה רואה.
תהליכים וחוטים
א תהליך היא משימה ספציפית, כמו תוכנית, הפועלת על מחשב. תהליך מורכב מחוט אחד או יותר.
א פְּתִיל הוא פשוט זרם יחיד של נתונים מתוכנית העוברת דרך המעבד במחשב. כל יישום יוצר שרשור אחד או רבים משלו, תלוי איך הוא פועל. ללא ריבוי משימות, מעבד ליבה אחת יכול להתמודד רק עם חוט בודד בכל פעם, כך שהמערכת עוברת במהירות בין השרשורים כדי לעבד את הנתונים באופן שנראה במקביל.
היתרון של ריבוי ליבות הוא שהמערכת יכולה להתמודד עם יותר מחוט אחד בו זמנית. כל ליבה יכולה להתמודד עם זרם נתונים נפרד. ארכיטקטורה זו מגדילה מאוד את הביצועים של מערכת שמפעילה יישומים במקביל. מכיוון ששרתים נוטים להפעיל יישומים רבים במקביל בזמן נתון, הטכנולוגיה פותחה במקור עבור לקוחות ארגוניים - אך ככל שהמחשבים האישיים נעשו מורכבים יותר והריבוי משימות גדל, גם הם הרוויחו מכך ליבות נוספות.
עם זאת, כל תהליך נשלט על ידי חוט ראשוני שיכול לתפוס רק ליבה אחת. לפיכך, המהירות היחסית של תוכנית כמו משחק או מעבד וידאו מוגבלת מאוד ליכולת הליבה שהחוט הראשי צורך. השרשור הראשי יכול להאציל חוטים משניים לליבות אחרות - אבל משחק לא הופך להיות מהיר פי שניים כאשר אתה מכפיל את הליבות. לפיכך, זה לא יוצא דופן שמשחק יגיע למקסימום ליבה אחת (השרשור הראשי) אך רואה רק ניצול חלקי של ליבות אחרות עבור חוטים משניים. שום כמות של הכפלת ליבה לא עוקפת את העובדה שהליבה הראשית היא מגבילת קצב עבורך אפליקציה, ואפליקציות שרגישות לארכיטקטורה זו יתפקדו טוב יותר מאפליקציות אלו אינם.
תלות בתוכנה
בעוד שהרעיון של מעבדים מרובים ליבות נשמע מושך, יש אזהרה גדולה לטכנולוגיה זו. כדי ליהנות מהיתרונות האמיתיים של המעבדים המרובים, התוכנה הפועלת על המחשב חייבת להיכתב כך שתתמוך בריבוי הליכי שרשור. ללא התוכנה התומכת בתכונה כזו, השרשורים יופעלו בעיקר דרך ליבה בודדת ובכך ידרדר את היעילות הכוללת של המחשב. אחרי הכל, אם הוא יכול לפעול רק על ליבה בודדת במעבד מרובע ליבות, ייתכן שלמעשה יהיה מהיר יותר להפעיל אותו על מעבד כפול ליבה עם מהירויות שעון בסיס גבוהות יותר.
כל מערכות ההפעלה העיקריות הנוכחיות תומכות ביכולת ריבוי השחלות. אבל ריבוי ההליכים חייב להיכתב גם בתוכנת היישום. התמיכה ב-multithreading בתוכנות צרכניות השתפרה עם השנים אך עבור רבים פשוטים תוכניות, תמיכה בריבוי השחלות עדיין לא מיושמת עקב מורכבות התוכנה לִבנוֹת. לדוגמה, סביר להניח שתוכנית דואר או דפדפן אינטרנט יראו יתרונות עצומים לריבוי שרשורים כמו תוכנית גרפיקה או עריכת וידאו, שבה המחשב מעבד חישובים מורכבים.
דוגמה טובה להסביר את הנטייה הזו היא להסתכל על משחק מחשב טיפוסי. רוב המשחקים דורשים צורה כלשהי של מנוע רינדור כדי להציג את מה שקורה במשחק. בנוסף, סוג של בינה מלאכותית שולטת באירועים ובדמויות במשחק. עם ליבה אחת, שתי המשימות מבוצעות על ידי מעבר ביניהן. גישה זו אינה יעילה. אם המערכת כללה מעבדים מרובים, הרינדור וה-AI יכולים לפעול כל אחד על ליבה נפרדת - מצב אידיאלי עבור מעבד מרובה ליבות.
האם 8 > 4 > 2?
מעבר לשתי ליבות מציג יתרונות מעורבים, בהתחשב בכך שהתשובה עבור כל קונה מחשב נתון תלויה בתוכנה שבה הוא או היא משתמשים בדרך כלל. לדוגמה, משחקים קלאסיים רבים עדיין מציעים הבדל קטן בביצועים בין שתיים לארבע ליבות. אפילו משחקים מודרניים - שלכאורה חלקם דורשים או תומכים בשמונה ליבות - עשויים שלא לבצע ביצועים טובים יותר ממכונה בעלת שש ליבות עם מהירות שעון בסיס גבוהה יותר, בהתחשב בכך שהיעילות של החוט הראשי שולטת ביעילות של ריבוי הליכי ביצועים.
מצד שני, תוכנית קידוד וידאו הממירת קוד וידאו תראה יתרונות עצומים כמו ניתן להעביר עיבוד מסגרת בודד לליבות שונות ולאחר מכן לאסוף לזרם יחיד על ידי ה- תוֹכנָה. לפיכך קיום שמונה ליבות יהיה מועיל אפילו יותר מאשר ארבע. למעשה, החוט הראשי אינו זקוק למשאבים עשירים יחסית; במקום זאת, הוא יכול להעביר את העבודה הקשה לשרשורי בת שממקסמים את ליבות המעבד.
מהירויות שעון

במונחים כלליים, מהירות שעון גבוהה יותר פירושה מעבד מהיר יותר. מהירויות השעון הופכות מעורפלות יותר כאשר לוקחים בחשבון מהירויות ביחס לליבות מרובות מכיוון שהמעבדים מחמכים נתונים מרובים חוטים הודות לליבות הנוספות, אך כל אחת מהליבות הללו תפעל במהירויות נמוכות יותר בגלל ההגבלות התרמיות.
לדוגמה, מעבד כפול ליבה עשוי לתמוך במהירויות שעון בסיסיות של 3.5 גיגה-הרץ עבור כל מעבד בעוד שמעבד ארבע ליבות עשוי פועל רק על 3.0 GHz. רק בהסתכלות על ליבה בודדת על כל אחד מהם, המעבד דו-הליבה מהיר ב-14 אחוזים מאשר על המעבד ארבע ליבות. לפיכך, אם יש לך תוכנית שהיא רק חוט יחיד, המעבד דו-הליבה למעשה יעיל יותר. אז שוב, אם התוכנה שלך יכולה להשתמש בכל ארבעת המעבדים, אז המעבד ארבע הליבות יהיה למעשה מהיר יותר בכ-70 אחוז מהמעבד הכפול הזה.
מסקנות
לרוב, מעבד ספירת ליבות גבוה יותר הוא בדרך כלל טוב יותר אם שלך תוֹכנָה ומקרי שימוש טיפוסיים תומכים בכך. לרוב, מעבד כפול ליבה או ארבע ליבות יהיה די והותר כוח עבור משתמש מחשב בסיסי. רוב הצרכנים לא יראו שום יתרונות מוחשיים ממעבר מארבע ליבות מעבד מכיוון שכל כך מעט תוכנות לא מתמחות מנצלות זאת. מקרה השימוש הטוב ביותר עבור מעבדים בעלי ספירת ליבות גבוהה מתייחס למכונות המבצעות משימות מורכבות כגון עריכת וידאו שולחנית, צורות מסוימות של משחקים מתקדמים או תוכניות מדע ומתמטיקה מסובכות.
בדוק את המחשבות שלנו לגבי כמה מהיר של מחשב אני צריך? כדי לקבל מושג טוב יותר איזה סוג מעבד מתאים בצורה הטובה ביותר לצרכי המחשוב שלך.