רקע כללי:
כפי שרואים בפרק 9: מעבד חד-מחזורי מקצה לכל פעולה במעבד גודל קבוע – 5 יחידות שעון (כגודלה של הפעולה הארוכה ביותר – Load).
כדי לשפר ביצועים, מחשבים רבים משתמשים במעבד הרב-מחזורי שדרך פעולתו תוסבר בפרק הנ"ל.
הרעיון הכללי העומד בבסיסו של המעבד הרב-מחזורי הוא ניסיון להבין את זרימת הפקודות שהמעבד מבצע וניסיון למצוא מכנה משותף ביניהן, על מנת שנוכל למזג אותן יחד.
הפעולות שהמעבד מבצע הן Fetch, Decode, Execute, Memory, Write Back.
בטבלה המובאת להלן רואים שעבור פקודות שונות (סוגים שונים של פקודות) המעבד מבצע את אותן הפעולות. ע"י שימוש במידע זה בנו מעבד, אשר יודע לנהל את התקדמות הפעולות בצורה נכונה וכך מקצים זמן פעולה מדויק לכל פקודה. הכוונה היא שבמקום להקצות 5 יחידות שעון לכל פעולה, נקצה את מספר יחידות השעון המדויק לכל פקודה:
Action for branches |
Action for memory reference instructions |
Action for Rtype instructions |
Step name |
[IR = Memory[PC ;PC = PC + 4 |
Instruction fetch | ||
[[A = Register[IR[25-21 [[B = Registers[IR[20-16 (Target = PC + (sign-extend (IR[15-0]) << 2 |
Instruction decode/ register fetch | ||
if (A == B) then PC = Target |
ALUResult = A + sign-extend [(IR[(15-0 |
ALUResult = A op B |
Execution, ,address computation or branch completion |
|
memory-data = Memory[ALUResult] or Memory ALUResult] = B] |
[[Reg[IR[15-11= ALUResult |
Memory access or R-type Completion |
|
Reg[IR[20-16]] = memory-data |
|
Write-back |
אנו רואים על פי הטבלה את מספר יחידות השעון שלהן אנו נזקקים כאשר אנו מקבלים כל סוג של פקודה:
- פקודת R-Type לוקחת 4 יחידות שעון.
- פקודת Load לוקחת 5 יחידות שעון.
- פקודת Store לוקחת 4 יחידות שעון.
- פקודת Branch לוקחת 3 יחידות שעון.
- פקודת Jump לוקחת 3 יחידות שעון.
חסרונות המעבד הם:
יש צורך לשמור את תוצאת ה- ALU לאחר החישוב כדי שנוכל להשתמש במידע זה מאוחר יותר. כדי לעשות זאת נצטרך רכיב זיכרון (Target).
יש צורך בשימוש באוגר נוסף (Instruction Register) ששומר את ערכי הפקודה לביצוע לאורך כל זמן ביצוע הפעולה. בפעולות מסוימות יש צורך לגשת לאוגר זה ולמשוך את המידע ששמור בו.
השימוש בעוד חומרה דורש זמן עיבוד (למעשה זמן כתיבה לאוגר) גדול יותר.
יתרונו של המעבד הוא שיפור זמן ביצוע הפעולות, מכיוון שכל פעולה לוקחת בדיוק את הזמן הנחוץ לה. היתרון הנ"ל הוא משמעותי ביותר ומאפשר ריצת תוכנית בזמן מהיר יותר מאשר במעבד חד-מחזורי.
בשקפים הבאים נסביר צעד אחר צעד על רכיבי המעבד וצורת עבודתו.
שקף 2 יסקור את רכיבי המעבד.
בשקף 9 יוסברו קווי הבקרה של המעבד, ואופן שליטתם על הרכיבים במעבד.
שקף 12 יכיל הסברים לגבי דרך ביצוע פעולה מסוג R-type במעבד. בשקף יוסברו התנהלותם של הערכים בקווי הבקרה בכל רגע נתון ויפורטו כל התהליכים המרכזיים. שקפים 13-16 יכילו הסברים דומים לגבי שאר הפעולות במעבד: Load, Store, Branch, Jump.