Presentation is loading. Please wait.

Presentation is loading. Please wait.

תרגול 6 בקר ומסלול נתונים חלק שני

Similar presentations


Presentation on theme: "תרגול 6 בקר ומסלול נתונים חלק שני"— Presentation transcript:

1 תרגול 6 בקר ומסלול נתונים חלק שני
234262 תרגול 6 בקר ומסלול נתונים חלק שני Ben lee Volk

2 חישוב מחלק משותף מקסימלי (האלגוריתם של אוקלידס)
קלט: שני מספרים טבעיים, a ו-b ברוחב N ביטים. פלט: המחלק המשותף המקסימלי שלהם. ציוד: מחסר בעל שלוש אותות בקרה, gr, eq, lt gr=1 אם ורק אם X>Y eq=1 אם ורק אם X=Y lt=1 אם ורק אם X<Y שני רגיסטרים A ו-B ברוחב N נתב אוניברסלי N N eq X Y gr X-Y lt N

3 GCD (Euclid's algorithm)
– © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT GCD (Euclid's algorithm) Do { if (a > b) a = a - b; if (a < b) b = b - a; } while ( a != b)

4 חישוב מחלק משותף מקסימלי (האלגוריתם של אוקלידס)
במצב ההתחלתי, המספרים a ו-b נמצאים ברגיסטרים A ו-B. התוצאה תתקבל ברגיסטר A. תוכנית הפעולה של מסלול הנתונים: Cycle 1: If (A<B) B←B-A. If (A<B) go to 1. If (A=B) go to 3. Cycle 2 : If (B<A) A←A-B If (B<A) go to 2. If (A=B) go to 3. Else, go to 1. Cycle 3: End. בחישוב משתתפים הערכים המקוריים של הרגיסטרים, כולל כל תנאי ה-IF. 4

5 חישוב מחלק משותף מקסימלי (האלגוריתם של אוקלידס)
תרשים הזרימה של מסלול הנתונים: A<B A>B B>A If (A<B) B←B-A If (B<A) A←A-B B<A A=B A=B End 5

6 חישוב מחלק משותף מקסימלי (האלגוריתם של אוקלידס)
ה-DP: eq X Y gr lt A B LoadB LoadA M2 M1 X-Y סדר הכניסות בבוררים: 6

7 חישוב מחלק משותף מקסימלי (האלגוריתם של אוקלידס)
דיאגרמת המצבים של הבקר lt gr gr M1 = 0 M2 = 1 If (gr) LoadB M1 = 1 M2 = 0 If (gr) LoadA lt eq eq 7

8 חישוב מחלק משותף מקסימלי (האלגוריתם של אוקלידס)
gr דיאגרמת המצבים של הבקר lt gr M1 = 0 M2 = 1 If (gr) LoadB M1 = 1 M2 = 0 M1 = 1 M2 = 0 If (gr) LoadA M1 = 0 M2 = 1 lt eq eq 8

9 אופן פעולה 3 נתון חלק מ-DP וחלק מדיאגרמת מצבים של הבקר.
M5 = 0 LoadB X Y zero A B LoadB M5 ADDER LoadA נניח שהשהייה של המחבר היא 2 מחזורי שעון. 9

10 אופן פעולה 3 בעייה 1: לא ידוע מהיכן מגיעים האותות הנוספים לבורר M5, ומתי הם תקפים. הפתרון: נדרוש שכל הבוררים במערכת יהיו בוררים אדישים. 10

11 אופן פעולה 3 בעייה 2: כל אותות הכניסה של המחבר חייבים להיות תקפים לאורך שני מחזורי שעון, ולכן גם אות הבקרה של הבורר M5 חייב להיות תקף במשך שני מחזורי שעון, אפילו בקטע A שבין שני המחזורים. זוהי בעייה כללית: אותות בקרה של בוררים או אותות הוראה ליחידות חישוביות שההשהייה שלהן ארוכה ממחזור השעון נדרשים לעיתים להיות תקפים במשך מספר מחזורים. נאמר שאותות בקרה כאלו הם אותות בקרה ארוכים. 11

12 אופן פעולה 3 – פתרון בעייה 2
ספחת (Hazard) של שער או FF משמעותה עודף מעברים בפלט. ספחת סטטית נספחת לפלט האמור להיות יציב. ספחת סטטית ב-FF פירושה שבקטע A הפלט מבצע מספר מעברים וחוזר לערכו המקורי. נאמר ש FF-הוא חסר ספחות סטטיות אם במקרה זה ה-FF יציב גם בקטע A. מעתה נניח שכל FF הוא חסר ספחות סטטיות, אלא אם צויין במפורש אחרת. 12

13 אופן פעולה 3 – פתרון בעייה 2
הפתרון לבעייה 2: אותות הבקרה הארוכים יאוחסנו (בלי קידוד) וישודרו ישירות מרגיסטר המצב שבבקר. 13

14 אופן פעולה 3 – פתרון בעייה 2
Register State אותות סטטוס N.S Comb. Logic Output Comb. Logic אותות בקרה ארוכים ואותות בקרה נוספים אותות בקרה ארוכים Register State אותות סטטוס N.S Comb. Logic Output Comb. Logic אותות בקרה נוספים 14

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

16 אופן פעולה 3 – פתרון בעייה 3
הפתרון מבוסס על רכיב הנקרא מחסום, שמטרתו לחסום, בתנאים מסוימים, מעבר של זיהום לתוך הבקר. לרכיב שתי כניסות ויציאה אחת כדלקמן: כאשר ENABLE=1, הרכיב מעביר את IN ל – OUT. כאשר ENABLE=0, הרכיב משדר ערך לוגי קבוע על OUT, למשל את הערך 0. ENABLE IN OUT את המחסום ניתן לממש ע"י בורר אדיש (איך?)

17 אופן פעולה 3 – פתרון בעייה 3
חיבור הרכיב לאות הסטטוס ZERO של ה-ALU ומתן אותות בקרה מתאימים מהבקר ל-Enable, יבטיחו שהזיהום לא ייכנס לבקר. M5 = 0 Enable LoadB A B LoadA LoadB ENABLE M5 X Y ADDER zero מוסכמת סימון: בדומה לאותות Load של רגיסטרים מותנים, נסמן אותות Enable של מחסומים בדיאגרמת המצבים רק כאשר ערכם שווה ל-1.


Download ppt "תרגול 6 בקר ומסלול נתונים חלק שני"

Similar presentations


Ads by Google