פורסם 2015 בפברואר 1010 שנים זה מבלבל אותי העניין של ליבה פיזית ווירטואלית CORE THREADSיש מעבד למשל 3770 יש לו 4 ליבות ו 8 טרידס עכשיו כל מעבד בא עם THREADS אחד ו HT נותן 2 במקום אחדזאת אומרת מעבד למשל G2020 יש לו 2 ליבות פיזיות ועוד 2 טרידס זה לא אמור להיות כמו 4 ? וה 3770 מגיע עם 4 ועוד 8 טרידס בגלל ה HT זה לא אמור להיות 12 ? איך זה 8 ? למה סה"כ הליבות זה לפי הטרידס ? לא מחברים את הליבות הפיזיות + הטרידס ?
פורסם 2015 בפברואר 1010 שנים 1) למעבד G2020 יש רק 2 ליבות ואין לו ליבות מדומות.2) למה אתה שואל את זה כל כך הרבה פעמים? לא צריך להיות טרול.
פורסם 2015 בפברואר 1010 שנים מחבר רשום 2 פיזי 2 מדומה http://ark.intel.com/products/71070/Intel-Pentium-Processor-G2020-3M-Cache-2_90-GHzתסתכל בעצמך[TABLE=class: specs infoTable, width: 531][TR=class: tech][TD=class: lc]# of Cores[/TD][TD=class: rc]2[/TD][/TR][TR=class: tech odd][TD=class: lc]# of Threads[/TD][TD=class: rc]2[/TD][/TR][/TABLE]- - - תגובה אוחדה: - - -THREADS זה לא מדומה ?
פורסם 2015 בפברואר 1010 שנים THREADS זה לא מדומה ? המילה Threads היא תהליכונים, דובי אמנם כתב "מדומות" אבל גם משתמשים לפעמים במילה "נימים". בכל מקרה אם היה כתוב בThreads את המספר 4 אז זה אומר שהיה למעבד את טכנולוגיית הHyper-threading כמו במעבדי הi3/i7(בדרך כלל) וכתוב גם בחלק של הטכנולוגיות המתקדמות(Advanced Technologies) במה המעבד תומך ובמה לא וכמו שאפשר לראות הוא לא הינה הסבר על Hyper-threading שיכול לעזור(בתקווה שהשפה לא תהווה מכשול) נערך 2015 בפברואר 1010 שנים על-ידי rony2
פורסם 2015 בפברואר 1010 שנים דובי, אל תהיה קשוח עם הנער..בכל אופן נער, לכל ליבה חייב להיות לפחות thread אחד, שמזין אותה במידע שאיתו היא עובדת.אם יש לך שתי ליבות, המינימום (במעבדי אינטל) יהיה 2 threads/נימים/ליבות מדומות/קרקרים עגולים/פרות משה רבינובמעבדים שיש בהם HP או Hyper-Threading יש שני threads לכל ליבה אמיתית. כלומר, שני נימי תעבורה שיזינו את הליבה במידע כדי להגדיל יעילות.אז אם כתוב לך:2 ליבות 2 threads זה אומר אומר שלכל ליבה יש את המינימום - 1 thread.לא מחברים אותם ביחד.ב-core i7 3770 יש 4 ליבות עם 2 threads כל אחת, ולכן כתוב שיש 8 threads סה"כ.יש? נערך 2015 בפברואר 1010 שנים על-ידי gtrippleg
פורסם 2015 בפברואר 1010 שנים הנושא כאן הוא למעשה ליבות פיזיות לעומת ליבות לוגיות. ליבות פיזיות הן מספר יחידות העיבוד האמיתיות שמהן המעבד בנוי בצורה פיזית. כל ליבה פיזית מסוגלת להריץ תהליך או יישום באופן שאינו תלוי בשאר התהליכים - כל פעולות העיבוד הקשורות לתהליך, וכן כל ערכי האוגרים וזיכרון המטמון (L1 ו L2) הקשורים לתהליך נפרדים לגמרי מפעולות העיבוד, ערכי האוגרים וזיכרון המטמון השייכים לליבה אחרת. למעשה, הנקודה הראשונה בה ניתן להעביר מידע בין הליבות השונות הוא בזיכרון המטמון L3 והנקודה הבאה, אם אני לא טועה, היא בכלל בזיכרון הראשי (ה RAM), שהוא איטי הרבה יותר. בקישור הזה מצאתי תמונה של מעבד מסדרת Core i5-700: כאן אפשר לראות שלמעבד יש 4 יחידות או ליבות עיבוד פיזיות (החלקים שמסומנים ב Core). כאשר מופעל ה Hyper Threading (במעבדי אינטל בלבד), כל ליבה פיזית מתפקדת כ-2 ליבות לוגיות, כלומר הדבר מאפשר למעבד לעבוד עם 2 יישומים או תהליכים במקביל. כמובן שלא מדובר בעבודה במקביל לחלוטין כמו במקרה של עבודה ב-2 ליבות פיזיות שונות, אלא יותר באופטימיזציה של אופן הטיפול בקוד כך שכמה שיותר פקודות יעובדו בליבה בכל רגע נתון. תחשוב לדוגמא על פס ייצור עם 10 פועלים, שכל אחד מהם מבצע פעולה מסויימת על המוצר - בזמן שהמוצר מטופל ע"י פועל מסויים, שאר הפועלים לא עושים דבר, וזה לא יעיל. לכן אפשר לדאוג שבכל רגע נתון כל פועל יטפל במוצר אחר, וכך היעילות של פס הייצור תגדל (ברגע שפועל מספר 1 מסיים את העבודה שלו, הוא מעביר את המוצר לפועל 2 ואז לוקח מייד מוצר אחר ומתחיל לעבוד עליו). בסופו של דבר ה Hyper Threading הוא אופטימיזציה של ה pipeline (או "פס הייצור") שיש בכל ליבה, כך שהיעילות של כל ליבה פיזית גדלה והיא מסוגלת לטפל ב-2 תהליכים נפרדים ב"מקביל" (זה לא בדיוק במקביל כי בתחנה האחרונה בכל מחזור אתה מקבל "מוצר סופי" אחד בלבד ולא שני "מוצרים סופיים" כפי שהיית מקבל אילו עשית שימוש ב-2 פסי ייצור נפרדים). בנוסף יש להבין כי יש תקורה (overhead) כלשהי כאשר אתה מחליף בין תהליכים נפרדים באותה ליבה פיזית, כך שאתה לא יכול לקבל 100% שיפור בביצועים (תחשוב על זה כאילו כל פועל בפס הייצור צריך לבזבז זמן על החלפת כלים בהתאם לסוג המוצר עליו הוא עובד). שים לב שפה הסברתי (בערך) רק על ההבדלים בין עיבוד תהליך אחד בליבה לעומת 2 תהליכים באותה הליבה, ולא על הפעלת תהליך אחד על מספר ליבות (דבר שמאוד תלוי בקוד, שכן לא כל תהליך ניתן לחלק ליותר מליבה אחת - בדומה לאופן אכילת הגלידה בסרטון). לסיכום - אם במעבד יש X ליבות פיזיות, אז הוא מסוגל לטפל ב X תהליכים במקביל. אם באותו מעבד מופעל ה Hyper Threading, אז כל ליבה פיזית מוצגת כ-2 ליבות לוגיות, כך שאתה רואה 2X ליבות במערכת ההפעלה, דבר שמאפשר לשלוח 2X תהליכים לעיבוד במעבד. זה לא יעיל כמו מעבד עם 2X ליבות פיזיות, אבל בד"כ זה יהיה שיפור לעומת טיפול רק ב-X תהליכים במקביל. נערך 2015 בפברואר 1010 שנים על-ידי smalul
פורסם 2015 בפברואר 1010 שנים מחבר עכשיו עוד שאלה : למעבד 3770 יש L3 8MB זאת אומרת שכל ליבה מדומה מקבלת 1M או ? שה L3 קשור רק לליבות פיזיות ? משמע כל ליבה שווה 2M ?
פורסם 2015 בפברואר 1010 שנים זיכרון L3 הוא זיכרון המשותף לכל הליבות - אם למעבד מסויים יש 8MB של זיכרון מטמון מסוג L3, אז יש לו רק 8MB של זיכרון מטמון מסוג L3 וכל הליבות יכולות לגשת לאותם 8MB.בניגוד לכך, לכל ליבה פיזית יש זיכרון מטמון מסוג L1 ו L2 השייכים רק לה, כאשר המידע המצויין לגבי זיכרון מטמון כזה (אם בכלל מצויין מידע כזה) מתייחס לכמות הכוללת של זיכרון המטמון בכל המעבד ולא לזיכרון השייך לכל ליבה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.