עבור לתוכן

יש לי כמה שאלות בקשר לאופן פעולת המעבד

Featured Replies

פורסם

כל טרנזיסטור יכול לאכסן ערך בינארי אחד, או 0 או 1, בשפה רגילה ביט/סיביה.

(ביט/סיביה= זרם חשמלי דולק או כבוי, המתורגם לספרה בינארית [בינארי, שיטת ספירה על בסיס 2, או הספרה 0 או 1] ובעצם זוהי יחידת המידע הקטנה ביותר)

המעבדים של היום מחלקים את הביטים לפקודות, של בממוצע עד כ-32 ביט ברצף, ואותו רצף הוא הפקודה שמעובדת.

מדד ההרץ-הרץ הינו בעולם המחשוב מספר פעולות בשנייה, או במעבד מס' פעימות בשנייה.

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

את המעבדים המהירים של כיום מודדים בGHz, ומהירות מעבד ממוצע של כיום היא כ-2.8 GHZ לדוגמה. כך שמעבד כזה פועם כ-2800000000 פעמים בשנייה, ובכל פעימה הוא מעבד מידע ומעביר אותו לשאר המחשב כאמור. כלומר, כל שנייה המעבד מבצע 2.8 מיליארד פעולות (קבלה/עיבוד/העברה). עם מדד ההרצים או כיום הג'יגה-הרצים מודדים כיום את מהירות השעון של המעבד.

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

אני רוצה לדעת האם זה נכון או לא נכון, ואם זה לא נכון תקנו אותי בתודה GBKING

פורסם

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

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

בשביל זה יש למעבדים קאש שעוזרים להם לקבל את המידע בצורה רציפה יותר אבל בכל זאת יש השהיות.

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

פורסם
  • מחבר

גם פה יש לי הסבר שהייתי רוצה לדעת אם הוא נכון או לא נכון-ואם טעיתי תקנו אותי בבקשה:

המעבדים של היום כאמור, מכילים מיליונים של טרנזיסטורים עליהם, וכל טרנזיסטור מכיל ביט. את המעבדים לא מודדים רק לפי מהירות השעון, אלא גם ע"י מספר הביטים שהמעבד יכול לעבד בפעולה אחת. המעבדים של ימינו יכולים לעבד בממוצע 32 ביט בפקודה אחת. כל שנייה לפי מדד מהירות השעון, המעבד יכול לעבד יותר ממיליון פקודות כאלה, לדוגמא, מעבד P4 עם מהירות שעון של כ-1.3 גהצ ועיבוד פקודות של 32 ביט וכ-42000000 טרנזיסטורים עליו, יכול לעבד כ-1312500 פקודות בשנייה, ניתן להסביר זאת בעזרת תרגיל פשוט:

42,000,000:32=1,312,500

ענו לי נכון או לא ותקנו אם לא, בתודה רבהההההההההההה GBKING

פורסם

אין שום קשר למספר הטרנזיסטורים.

התיאוריה היא פשוט תדר*מספר פקודות למחזור=מספר פעולות לשניה

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

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

P4 במהירות של 1.3GHZ (שזה 1,300,000,000 מחזורים בשניה) יכול לבצע עד 1,300,000,000 פקודות בשניה ואין לזה שום קשר עם מספר הטרנזיסטורים שלו.

לפי החישוב שלך שני מעבדי P4 עם 42 מיליון טרנזיסטורים שהאחד פועל ב 1.3GHZ והשני פועל ב 5GHZ מפיקים אותם ביצועים.

פורסם

המעבדים מורכבים בצורה של Pipeline.

עיקרון הפעולה של ה-Pipeline היא חלקה של המעבד למספר שלבים (בסביבות ה-20-40) כאשר בכל פעימת שעון מתבצע

1. נכנסת פעולה חדשה לשלב הראשון

2. מה שהיה קודם בשלב הראשון עובד לשלב השני

3. מה שהיה קודם בשלב השני עובד לשלישי

וכו...

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

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

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

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים