1 / 30

מרכיבי מסלול הנתונים

D. a. t. a. R. e. g. i. s. t. e. r. #. A. d. d. r. e. s. s. P. C. I. n. s. t. r. u. c. t. i. o. n. R. e. g. i. s. t. e. r. s. A. L. U. A. d. d. r. e. s. s. R. e. g. i. s. t. e. r. #. I. n. s. t. r. u. c. t. i. o. n. D. a. t.

calum
Download Presentation

מרכיבי מסלול הנתונים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. D a t a R e g i s t e r # A d d r e s s P C I n s t r u c t i o n R e g i s t e r s A L U A d d r e s s R e g i s t e r # I n s t r u c t i o n D a t a m e m o r y m e m o r y R e g i s t e r # D a t a מרכיבי מסלול הנתונים • זיכרון פקודות (Read Only, חוץ מזמן טעינת תכנית חדשה) • זיכרון נתונים (Read / Write) • רגיסטרים • Program counter (PC) • ALU December 2013

  2. R e g i s t e r n u m b e r W r i t e E enable 0 R e g i s t e r 0 1 D n-to-1 log n R e g i s t e r E selector to-n n u m b e r d e c o d e r R e g i s t e r 1 D n – 2 n – 1 E R e g i s t e r n – 2 n-to-1 D selector E R e g i s t e r n – 1 R e g i s t e r D d a t a R e g i s t e r n u m b e r A General Register File כתובת רגיסטר לכתיבה כתובת רגיסטר לקריאה תוכן לכתיבה כתובת רגיסטר לקריאה תוכן נקרא December 2013

  3. R e g i s t e r R e g i s t e r Register Files (Read Ports) R e a d r e g i s t e r n u m b e r 1 R e g i s t e r 0 R e g i s t e r 1 M u R e a d d a t a 1 x n-2 n-1 R e a d r e g i s t e r n u m b e r 2 M u R e a d d a t a 2 x December 2013

  4. Register Files (Write Port) W r i t e E 0 R e g i s t e r 0 1 D n - t o - 1 E R e g i s t e r n u m b e r d e c o d e r R e g i s t e r 1 D n-2 n-1 E R e g i s t e r n-2 D E R e g i s t e r n-1 D R e g i s t e r d a t a December 2013

  5. MIPS Register File December 2013

  6. ביצוע פקודות בשלבים • מסלול הנתונים ממומש כמכונת מצבים • ביצוע פקודה  מחזור שעון אחד • אבל במהלך הביצוע לא הכול קורה בו זמנית. ניתן להבחין בשלבים שונים הקורים זה אחר זה • נבחן כל שלב בנפרד. • מאוחר יותר נשנה את המכונה כך שכל שלב יתבצע במחזור שעון נפרד • במכונה שבה כל פקודה מתבצעת במספר מחזורי שעון • במכונה עם pipeline December 2013

  7. Instruction memory PC op rs rt rd shamt funct שני השלבים הראשונים זהים לכל הפקודות • FETCH – הבאת הפקודה שה-PC מצביע עליה מזיכרון הפקודות • DECODE– פענוח הפקודה ו-READ – קריאת 0,1 או 2 רגיסטרים, בהתאם לפקודה. December 2013

  8. A d d 4 R e a d P C a d d r e s s I n s t r u c t i o n I n s t r u c t i o n m e m o r y הבאת פקודה והגדלת ה-PC ב-4 December 2013

  9. Op=0 Rs=10 Rt=11 Rd=9 Shamt=0 Funct=32 פענוח הפקודה • פענוח פקודה מסוג R-type: add $t1, $t2, $t3 פעולת ה ALUהינה תוצאה של Op ו Func A L U c o n t r o l 5 3 R e a d r e g i s t e r 1 R e a d d a t a 1 5 R e g i s t e r R e a d Z e r o r e g i s t e r 2 n u m b e r s R e g i s t e r s D a t a A L U A L U 5 W r i t e r e s u l t r e g i s t e r R e a d d a t a 2 W r i t e D a t a d a t a R e g W r i t e a . R e g i s t e r s b . A L U December 2013

  10. base Reg temp Reg offset Op=35 Rs=9 Rt=8 Address offset=100 תמיכה ב-load, store במסלול הנתונים • דוגמה: lw $t0, 100($t1) A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 M e m W r i t e R e a d d a t a 1 R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n A L U R e g i s t e r s A L U R e a d W r i t e r e s u l t A d d r e s s d a t a r e g i s t e r R e a d d a t a 2 W r i t e D a t a d a t a m e m o r y W r i t e R e g W r i t e d a t a 1 6 3 2 S i g n M e m R e a d e x t e n d December 2013

  11. words bytes P C + 4 f r o m i n s t r u c t i o n d a t a p a t h A d d S u m B r a n c h t a r g e t S h i f t l e f t 2 A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 I n s t r u c t i o n R e a d d a t a 1 R e a d r e g i s t e r 2 T o b r a n c h R e g i s t e r s A L U Z e r o c o n t r o l l o g i c W r i t e r e g i s t e r R e a d d a t a 2 W r i t e Op=4 Rs=8 Rt=9 Address offset=25 d a t a R e g W r i t e 1 6 3 2 S i g n e x t e n d תמיכה בקפיצה מותנית • דוגמה: beq $t0, $t1, 100 • ננצל שוב את העובדה שכתובות של פקודות מסתיימות ב-'00' multiply by 4 December 2013

  12. A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 M e m W r i t e R e a d d a t a 1 M e m t o R e g R e a d A L U S r c Z e r o r e g i s t e r 2 I n s t r u c t i o n R e g i s t e r s A L U R e a d A L U R e a d W r i t e d a t a 2 A d d r e s s r e s u l t d a t a r e g i s t e r M M u u W r i t e x D a t a x d a t a m e m o r y W r i t e R e g W r i t e d a t a 1 6 3 2 S i g n M e m R e a d e x t e n d שילוב חלקי מסלול הנתונים • החלקים התומכים ב- add/sub וב- lw/swמשולבים בעזרת בוררים (mux): December 2013

  13. next instruction P C S r c M A d d u x A L U A d d 4 r e s u l t S h i f t l e f t 2 R e g i s t e r s A L U o p e r a t i o n 3 R e a d M e m W r i t e A L U S r c R e a d r e g i s t e r 1 P C R e a d a d d r e s s R e a d M e m t o R e g d a t a 1 Z e r o r e g i s t e r 2 I n s t r u c t i o n A L U A L U R e a d W r i t e R e a d A d d r e s s r e s u l t M d a t a r e g i s t e r d a t a 2 M u I n s t r u c t i o n u x W r i t e m e m o r y D a t a x d a t a m e m o r y W r i t e R e g W r i t e d a t a 3 2 1 6 S i g n M e m R e a d e x t e n d שילוב התמיכה בקפיצות מותנות sequential December 2013

  14. P C S r c 0 M A d d u x A L U 1 4 A d d r e s u l t S h i f t R e g W r i t e l e f t 2 I n s t r u c t i o n [ 2 5 – 2 1 ] R e a d r e g i s t e r 1 R e a d M e m W r i t e R e a d P C d a t a 1 I n s t r u c t i o n [ 2 0 – 1 6 ] a d d r e s s R e a d M e m t o R e g A L U S r c r e g i s t e r 2 Z e r o I n s t r u c t i o n R e a d 0 A L U A L U [ 3 1 – 0 ] 0 R e a d W r i t e d a t a 2 1 A d d r e s s r e s u l t M r e g i s t e r M d a t a u M I n s t r u c t i o n u I n s t r u c t i o n [ 1 5 – 1 1 ] x W r i t e u x m e m o r y R e g i s t e r s x 1 d a t a 1 D a t a 0 W r i t e m e m o r y R e g D s t d a t a 1 6 3 2 S i g n I n s t r u c t i o n [ 1 5 – 0 ] e x t e n d A L U M e m R e a d c o n t r o l I n s t r u c t i o n [ 5 – 0 ] A L U O p בקרת ALU ובחירת rd / rt כיעד לכתיבה R-type lw / sw December 2013

  15. Op Op Rs Rs Rt Rt Address offset Rd Shamt Funct בקרת ALU • בוחרים מה יעשה ה-ALU כתלות בערכי השדות OP, FUNCT מן הפקודה R-type I-type December 2013

  16. 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] קווי הבקרה לבוררים ו-ALU December 2013

  17. הבקר הראשי • הבקר הראשי משתמש רק בערכי השדה OP לקביעת כל הבוררים December 2013

  18. I n p u t s O p 5 O p 4 O p 3 O p 2 O p 1 O p 0 O u t p u t s R - f o r m a t I w s w b e q R e g D s t A L U S r c M e m t o R e g R e g W r i t e M e m R e a d M e m W r i t e B r a n c h A L U O p 1 A L U O p O מימוש הבקר הראשי 0 35 43 4 December 2013

  19. ביצוע פקודת R-type(1/4) December 2013

  20. ביצוע פקודת R-type(2/4) December 2013

  21. ביצוע פקודת R-type(3/4) December 2013

  22. ביצוע פקודת R-type(4/4) December 2013

  23. word byte הוספת פקודת J • דוגמה: j 10000 • בכתובת אין מספיק סיביות (רק 26—דרושות 32). נשלים ע"י שרשור הסיביות: • 4 סיביות עליונות: PC+4 [31…28] • 26 סיביות מהפקודה • 2 סיביות '00' (ע"י הזזה שמאלה בשני מקומות) Op=2 Jump target address=2500 December 2013

  24. J u m p a d d r e s s [ 3 1 – 0 ] I n s t r u c t i o n [ 2 5 – 0 ] S h i f t l e f t 2 2 6 2 8 0 1 M M P C + 4 [ 3 1 – 2 8 ] u u x x A L U A d d 1 0 r e s u l t A d d S h i f t R e g D s t l e f t 2 J u m p 4 B r a n c h M e m R e a d I n s t r u c t i o n [ 3 1 – 2 6 ] M e m t o R e g C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 – 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 – 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e M d a t a 2 A d d r e s s r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 – 1 1 ] W r i t e x 1 D a t a x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 – 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 – 0 ] הוספת הטיפול ב-JUMP December 2013

  25. PCout INSTR. MEMout CONTROLout REG1,2out ALUout DATA MEMout Only for lw  tSU REG DATAin PCin מהלך ביצוע פקודה במימוש מחזור יחיד December 2013

  26. מתי מגיע השעון ? J u m p a d d r e s s [ 3 1 – 0 ] I n s t r u c t i o n [ 2 5 – 0 ] S h i f t l e f t 2 2 8 2 6 0 1 M M P C + 4 [ 3 1 – 2 8 ] u u x x A L U A d d 1 0 r e s u l t A d d S h i f t R e g D s t l e f t 2 J u m p 4 B r a n c h M e m R e a d I n s t r u c t i o n [ 3 1 – 2 6 ] M e m t o R e g C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 – 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 – 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e M d a t a 2 A d d r e s s r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 – 1 1 ] t W r i t e x 1 D a t a x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 – 0 ] S i g n t+1 e x t e n d A L U c o n t r o l t+1 I n s t r u c t i o n [ 5 – 0 ] December 2013

  27. ביצועי מחשב בעל מחזור שעון יחיד • מחשב בעל מחזור שעון יחיד הוא פשוט לתכנון • אבל זמן המחזור תלוי בזמן הביצוע של פקודה האיטית ביותר... • אילו פקודות מהירות ואילו איטיות? • נבדוק את זמני ההשהיה של היחידות במחשב: • זיכרונות: 2 ns • ALU ומחברים: 2 ns • רגיסטרים: 1 ns • בוררים: 0 ns (באופן מעשי זה יותר) • חוטים: 0 ns (באופן מעשי זה יותר) December 2013

  28. מסלולים קריטיים במחשב December 2013

  29. שיפור הביצועים • המסלול הקריטי בדוגמה 8ns קובע את זמן המחזור • תדר השעון המרבי: 1/8ns = 125 MHz • ניתן להפוך את המחשב ל-pipeline • ילמד בהמשך הסמסטר • שיטה אחרת אפשרית הינה תכנון מסלול נתונים של מספר מחזורי שעון • מה ניתן להרוויח ע"י מספר מחזורי שעון בפקודה? December 2013

  30. פקודות load, store לוקחות זמן רב, ואחרות פחות • אולי כדאי לכתוב תכניות שמכילות פחות פקודות איטיות ויותר פקודות מהירות? • בתכניות רבות יש התפלגות פקודות טיפוסית: • 24% Loads, 12% Stores, 44% ALU, 18% Branches, 2% Jumps • הזמן הממוצע של ביצוע פקודה: 8×24% + 7×12% + 6×44% + 5×18% + 2×2% = 6.3ns • שיפור הביצועים פוטנציאלי: 8ns / 6.3ns = 1.27 December 2013

More Related