אס ינ כרונ י ות מערכות עקי ב ה 13
Transcription
אס ינ כרונ י ות מערכות עקי ב ה 13
פרק - 13מערכות עקיבה אסינכרוניות במערכת עקיבה סינכרונית : יש שעון המחלק את פעילות המערכת לפאזות. בתחילת פאזה הכניסות למערכת מיוצבות בערכים מסוימים ,והכניסות מיוצבות מספיק זמן כך שהחלק הצירופי יחשב את ערכי היציאות בצורה נכונה : הפלט של המערכת ,והמצב הבא. 364 לכן ,מערכת אסינכרונית מאופיינת על ידי: .1אין שעון . .2הכניסות יכולות להשתנות בכל זמן שהוא. .3הערכים בכניסות מיוצגים על ידי "רמות" ) ( levelsכלומר ,על הימצאות כניסה ברמה מסוימת ) ' '0או ' , ( '1בשונה לדגימה ) ( pulseשמתקיימת במערכת סינכרונית כאשר ערך הכניסה נקבע להיות זה שנדגם בזמן עליית השעון . המבנה הכללי של מערכת אסינרונית דומה לזה של מערכת סנכרונית אך אין שעון ורכיבי ההשהייה משמשים כרכיבי זיכרון כפי שיתואר בהמשך . 365 מבנה מערכות עקיבה אסינכרוניות Z1 zM Combinational Logic Y1 D y1 - x1,x2,…,xLמשתני כניסה - z1,z2,…,zMמשתני יציאה Y2 D y2 - y1,y2,…,yKמשתני מצב Yk D yk רכיבי השהייה ) ( Delay 366 X1 XL הצירוף של רמות הכניסות x1,x2,…,xLורמות היציאות של רכיבי ההשהייה נקראים "מצב המערכת" . צירוף הרמות של הכניסות נקרא "מצב הכניסה" . input state צירוף הרמות של יציאות ההשהייה נקרא "המצב הפנימי" . internal state המערכת תימצא "במצב יציב" ) ( stable stateכאשר yi = Yiלכל .1≤i≤k כתגובה לשינוי באחד או יותר מקווי ה inputלמערכת ,המערכת הצירופית מחשבת ערכים חדשים למשתנים ) Y1,….YKאו לחלק מהם ( ,והמערכת נכנסת למצב "לא יציב" .כאשר המשתנים y1,y2,…,ykמקבלים את ערכם החדש ,המערכת נכנסת למצב היציב הבא. מכאן ,שמעבר ממצב יציב אחד לשני מתרחש רק לאחר שינוי בכניסות למערכת. מצב פעולה בסיסי ) : ( Fundamental mode לאחר שינוי בקו כניסה בודד ,אף שינוי נוסף לא יתרחש עד שהמערכת 367נכנסת למצב יציב. במערכת סינכרונית מסוג ) positive edge-triggeredרכיבי הזכרון מעבירים כניסות ליציאות עם עליית השעון ( אנו מניחים שהכניסה היא ' '1אם היא ''1 כאשר השעון עולה .הכניסה יכולה להיות יציבה ב ’1’-במשך nמחזורים ,ללא כל שינוי ,ואנחנו עדיין נניח שבכניסה היו nפעמים ‘ ’1בזה אחר זה ,כלומר שני ‘-’1ים רצופים לא צריכים להיות מופרדים על ידי ‘.’0 במערכת אסינרונית המבוססת על “פולסים” אנו מניחים ששני מעברים רצופים - עליה מ ’0’-ל ’1’-ואחר כך ירידה בחזרה ל ’0’-מייצגים כניסה יחידה של ‘, ’1 כלומר שני ‘ ’1רצופים צריכים להיות מופרדים על ידי ‘. ’0 הפרש הזמנים בין שני המאורעות הללו יכול להיות ארוך באופן שרירותי .במערכת זו אין משמעות לכניסה ‘. ’0 368 בנייה של מערכת עקיבה א-סינכרונית הפועלת ב : Fundamental mode .1בנייה של טבלאות זרימה Flow Table .2צמצום טבלאות . .3מימוש המערכת. 369 נדון לדוגמא במערכת אסינכרונית המייצרת ‘ ’1ביציאה על כל שני מעברים ל’1’- בכניסה .להלן שתי דיאגרמות מצבים של מכונות , Mealyסינכרונית ואסינכרונית : 0 /0 1 /0 S1 1 /0 S0 1 /1 Asynchronous FSM 0 /0 S1 S0 1 /1 Synchronous FSM מאחר שעלינו להמתין עד שהכניסה תרד ל ’0’-לפני שנוכל לבדוק אם היא עלתה שוב ל , ’1’-הדיאגרמה האסינכרונית הנ”ל בעצם איננה מתארת את פעולת המכונה במלואה .הדיאגרמה איננה מראה ירידה של הכניסה ל '. '0 370 לכל ‘ ’1אנו זקוקים בעצם לשני מצבים עוקבים : S1 x +/ 0 S0 x- / 0 x- / 0 S2 x+/1 S3 במקום ‘ ’1בכניסה סימנו מעברים ,כלומר הכניסה עלתה ) (x+או ירדה ). (x- מאחר שיש במקרה זה רק כניסה אחת ,יש רק אפשרות אחת למעבר מכל מצב. נעבור למכונת מצבים מסוג : Moore 371 S0 0 x+ S1 0 x- xS3 1 x+ S2 0 372 נממש את המכונה האסינכרונית באופן ישיר .נקצה מצבים לפי קוד Gray ונקבל את טבלת הזרימה הבאה : )NS (Y1Y0 z X=1 X=0 )PS(y1y0 0 01 00 S0=00 0 01 11 S1=01 0 10 11 S2=11 00 S3=10 1 373 10 הכניסות בטבלה מייצגות מצבים ,מעברים בין מצבים ואת ערך היציאה . מצב יציב הוא מצב שבו אין שינוי במערכת עד לשינוי של הכניסה .מצב כזה מסומן בעיגול .כל שורה מייצגת מצב יציב . כניסה שאינה מסומנת בעיגול מסמנת את המצב אליו המערכת עוברת .נשים לב גם שבהגדרת מצב יציב . y0y1=Y0Y1לכן ,יצוג המצב היציב בכל שורה מתאים בקידוד למצב ה . PS - המעברים בעת השינויים סומנו בחיצים ,וכאשר הטבלה כוללת סימונים אלו היא קרויה גם “טבלת זרימה " ) . ( Flow Tableנבחר במימוש ללא סיכונים ) ( Hazard Free Staticכלהלן ) ללא שינויים רגעיים בערך היציאה( : 374 x 1 1 0 1 1 1 x y0y1 00 01 11 10 Y0 ןמכאן: 1 0 00 1 1 1 1 01 11 10 Y1 Y1 = x’y0 + y1y0 + xy1 ’Y0 = x’y0 + y1’y0 + xy1 ’z = y1y0 ננסה לממש את המעגל ישירות ללא רכיבי השהייה ) זוהי איננה הדרך המומלצת ,ואנו מבצעים את התרגיל רק כדי להבין מדוע מימוש כזה מסוכן ! ( : 375 אין כאן רכיבי השהייה x x’y0 Y1 y1y0 xy1 x’y0 Y0 y1’y0 xy1’ z=y1y0’ x y1 y0 376 ה”מצב” מאוחסן במעגלים הסגורים ,המחליפים את רכיבי ההשהייה ) זכרון במערכות עקיבה סינכרוניות ( .נניח שהמערכת יציבה במצב S1=01והכניסה ) : x=1המערכת y1y0 x צריכה להישאר במצב . ( 01 Y1=0 0 0 A 0 שער איטי 0 Y0=1 z=0 377 X=1 slow B 1 C 1 y1=0 y0=1 X=1 y1=0 0 X=1 y1 y0 כאשר xירד ל ) ’0’-אירוע מס’ ( 1המערכת אמורה לעבור למצב . S2=11 השערים Bו C -ייצרו ‘ ’0והשער המסומן ’ ‘slowצריך לייצר ‘. ’1 נניח ששער זה הוא במקרה איטי במיוחד וחולף זמן רב עד שיציאתו תעלה ל . ’1’-בינתיים קורים האירועים הבאים: .2השער המסומן Aעולה ל’ 1’- Y1 .3עולה ל’ 1’- .4השערים המסומנים Bו C-יורדים ל’ 0’- Y0 .5יורד ל’ 0’- .6שער Aיורד ל’ 0’- Y1 .7יורד ל’ 0’- כעת שער SLOWכבר לא יצליח יותר לעלות ל ’1’-והמערכת תקועה במצב ‘. ‘S0 האירועים הללו מצוינים בטבלת הזרימה לפי סדרם : 378 NS (Y1Y0) PS(y1y0) X=0 7 S0=00 00 S1=01 11 S2=11 1111 5 S3=10 10 1 3 X=1 z 01 0 01 10 00 0 0 1 379 ברגע שקרה אירוע מספר , 5טבלת הזרימה מראה שהמעגל יעבור ) באירוע ( 7 למצב היציב 00ולא תגיע יותר למצב . 11אמנם ,זהו מקרה קיצוני ,אבל המסקנה חשובה: •במכונת מצבים סינכרונית ,אם אחד השערים איטי במיוחד ,מספיק שנאריך את מחזור השעון והמכונה תעבוד נכון )אם כי יותר לאט( . •במכונת מצבים אסינכרונית ,אם אחד השערים איטי במיוחד ,עלולה המכונה לפעול באופן שגוי . תופעה זו ,שבה אות אחד מגיע מהר יותר מאות שני ,קרויה “מרוץ" ) , ( raceואם כתוצאה מהמרוץ המכונה עלולה לשגות אזי זהו “מרוץ קריטי” .בכדי להימנע מן הבעיה ,הציע הפמן ) ( Huffmanכבר בשנת 1954שיש להאט את מסלול המשוב כך שיהיה איטי יותר ממסלול ההתפשטות קדימה בלוגיקה הצירופית : 380 DELAY x DELAY Y1 Y0 z X=1 y1 y0 381 יש להבטיח קיום שני תנאים עיקריים : ) (1ההשהיה ביחידות DELAYארוכה יותר מן ההשהייה במסלול הלוגיקה הצירופית. ) (2לאחר שנגרם שינוי בכניסה ,אסור שיהיה שינוי נוסף כל עוד המעגל לא התייצב לחלוטין במצבו היציב החדש . כאשר המערכת כוללת מכונת מצבים אסינכרונית בעלת השהייה הפועלת לפי כלל ) (1וכן כניסה המצייתת לכלל ) , (2אנו אומרים כי היא פועלת לפי “ דרך פעולה בסיסית " ) . ( Fundamental Modeדרך פעולה זו כוללת תנאי נוסף : ) (3אם יש יותר מכניסה אחת ,בכל פעם מותר רק לאחת הכניסות לשנות את ערכה . 382 תנאי ) (3הינו בעצם מסקנה מתנאי ) : (2לא ניתן במערכת פיזיקלית להבטיח ששתי כניסות תשנינה את ערכן תמיד בו זמנית בדיוק .לכן .יש להמתין להתייצבות המעגל לאחר כל שינוי בכניסה לפני שמותר לשנות כניסה נוספת . 383 ניתן לבנות מערכות Fundamental Modeהמקבלות כניסות בינאריות ,כלומר מאפשרות גם ערכי ‘ ’0וגם ערכי ‘ ’1בכניסה ,כלומר אינן מתבוננות על שינויי ערך אלא על הערכים עצמם . כמו כן ,אם נחליף את רכיבי ההשהיה במשוב פליפ-פלופים ) חסרי שעון ( ,נקבל לעיתים מערכות פשוטות יותר .נממש ,למשל ,את המערכת לעיל באמצעות פליפ-פלופים מסוג . SRכזכור ,פונקצית העירור של פליפ-פלופ SRהיא : 384 R S Q φ 0 0→0 0 1 0→1 1 0 1→0 0 φ 1→1 : SR נתרגם את טבלת המעברים לטבלת עירור עבור NS (Y1Y0) X=0 PS (y1y0) S1R1 S0R0 X=1 S1R1 S0R0 Z S0=00 0φ 0φ 0φ 10 0 S1=01 10 φ0 0φ φ0 0 S2=11 φ0 φ0 φ0 01 0 S3=10 01 0φ φ0 0φ 1 385 ומן הטבלה קל לראות ש : R0 = xy1 ’S0 = xy1 ’R1 = x’y0 S1 = x’y0 המכונה נראיית כעת כך : x y0 R0 S0 y1 S1 R1 כל עוד מתקיימים כללי Fundamental Modeאין במכונה זו מרוצים נראים לעין ) ייתכן שישנם מרוצים חבויים בתוך הפליפ-פלופים או אפילו בתוך השערים ,אבל כזכור אנחנו מניחים שכל הרכיבים תוכננו באופן זהיר כך שאין בהם כל חשש לתקלות ( .נשים לב שאם x = 0או , x =1אחד משני הפליפ-פלופים אינו צריך לשנות את ערך היציאה ולכן יש שינוי ערכים רק 386בפליפ-פלופ אחד ! מכונת ONE-HOT קיימת שיטה אחרת ,פשוטה יותר ,לתכנן מכונות מצבים ,המשמשת במיוחד למכונות אסינכרוניות .בשיטה זו משתמשים ב n-פליפ-פלופים למימוש מכונה בת nמצבים ,במקום ב . log n -באחד ,ורק באחד מן הפליפ-פלופים יש ‘ , ’1ובכל השאר יש ‘ . ’0המכונה הנ”ל תמומש כך : X ’X clear S3 S3 R3 387 ’X clear S2 X clear S0 R2 S1 set S1 R1 S0 S0 R0 אותו אות ש”מדליק” מצב חדש גם “מכבה” את המצב הקודם .המגבלה העיקרית של התכנון היא שבזמני המעבר יתכן ששני מצבים “דולקים” -החדש נדלק ואילו הקודם עדיין לא הספיק לכבות . אולם ,מקרה כזה איננו אמור לפגוע בנכונות המכונה .המצב ההתחלתי נקבע על ידי החיצים הקטנים מעל הפליפ-פלופים -חיצים אלו גורמים להדלקת S0ולכיבוי כל השאר . 388 :מצב התחלתי 0 X 0 0 set S0 R0 1 X’ 0 S0 1 clear S1 0 R1 S1 0 X 0 S0 0 R2 clear S2 1 X’ 0 0 clear S3 0 S3 R3 389 : x=1 עליית הכניסה 1 X 1→0 set S0 R0 1→0 0 X’ S0 0→1 clear S1 R1 1 X 0 S0 S1 1 0 R2 clear S2 0 X’ 0 0 clear S3 0 S3 R3 0 390 : x=0 ירידת הכניסה 0 X 0 0 set S0 R0 S0 1 X’ 0 1→0 clear S1 R1 1→0 0 X S1 1→0 0 clear S0 R2 1 X’ S2 clear S3 1 0 0 S3 R3 0 391 : x=1 עליית הכניסה 1 X 0 0 0 set S0 R0 0 X’ S0 clear S1 0 R1 0 S1 1 X 0 1→0 clear S0 R2 1→0 0 X’ S2 1→0 clear S3 S3 0 1 R3 0 392 : x=0 ירידת הכניסה 0 X set 0 S0 R0 0 1 X’ 0 S0 1 clear S1 R1 0 0 X 0 S0 S1 0 R2 0 1 X’ 0 clear S2 0 clear 1→0 S3 S3 R3 1→0 1→0 393 תזמון עצמי לעיתים אנו זקוקים לשני הערכים בכניסה ,כלומר ל ’0’-ול , ’1’-אך אין שום ידיעה מתי הכניסה תקפה .במקרים כאלה אפשר להשתמש באות בעל “ תזמון עצמי " ) , ( self-timedכלומר הכניסה מודיעה מתי היא תקפה .אחת השיטות בנויה על קוד טרנרי במקום קוד בינארי ) כלומר קוד בעל שלושה מצבים ( :האות הוא ‘ , ’1או ‘ , ’0או שאינו מוגדר )’ . (‘Uנסכים שהאות יכול להשתנות אך ורק לפי דיאגרמת המצבים הבאה : 1 394 U 0 : נסכים שכל מערכת שנבנה מתנהגת לפי ה”פרוטוקול” כלהלן,כמו כן Imput Undefined Output Undefined Input Defined Output Defined 395 ואז נוכל לבנות את דיאגרמת המצבים הבאה ששוב מציגה מכונה שצריכה להוציא ’ ‘1עבור כל שני ‘ ’1בכניסה: S1 0 1 U S7 0 396 0 U S3 U S0 U U 1 S2 1 0 U S4 0 נהוג לממש קוד טרנרי באמצעות זוג סיביות ) : ( Dual-Rail Code קוד טרנרי ''0 ''1 ''U קוד בלתי מוגדר 397 מימוש על ידי זוג סיביות 01 10 00 10 ואז נראית המכונה כך : 10 S1 S0 01 00 00 S7 01 01 00 01 00 S4 01 00 S3 00 10 S2 10 מכונה )אסינכרונית( כזו אנחנו כבר יודעים לתכנן… .שים לב בכל מעבר משתנה אך ורק סיבית יחידה בקלט ,סיבית יחידה במשתני המצב ,וסיבית יחידה בפלט. זהו אינו המצב בדרך כלל . 398 בנוסף ליתרונות שכבר מנינו ,נשים לב שמכונה אסינרונית חסכנית באנרגיה :אין בה שעון ש”רץ” כל הזמן ,בלי התחשבות בקצב המידע בקלט .כאשר אין שינוי בקלט ,המכונה אינה עושה כלום ) ואינה מבזבזת אנרגיה ( . ניתן לבנות גם שערים צירופיים במקביל שמייצרים אותות : Dual Rail A1 A0 Z1 Z0 B1 B0 Z= A and B לדוגמא: A0 AND (01,10) = 01 399 A1 A0 Z1 Z0 B1 B0 Z= A or B :לדוגמא OR(01,01) = 01 A1 A0 Z1 Z0 Z= not A :לדוגמא NOT(01) = 10 400 שקף ריק 401 שקף ריק 402 שקף ריק 403 שקף ריק 404 שקף ריק 405