Introduction

Download Report

Transcript Introduction

‫תכן לוגי ומבוא למחשבים‬
‫• מטרות הקורס‪:‬‬
‫– לימוד תכן מתקדם של מערכות ספרתיות‬
‫– לימוד תכן של מחשב פשוט (‪)MIPS‬‬
‫• מה לפני?‬
‫– מערכות ספרתיות‬
‫– מושגי יסוד בתכנות (שפת ‪)C‬‬
‫– מושגי יסוד בחשמל (רמת בחינת בגרות ומטה)‬
‫• הציון‪:‬‬
‫‪1‬‬
‫תרגילים ‪,25%‬‬
‫בחינה סופית ‪75%‬‬
‫‪October 2013‬‬
:‫ספרות‬
Ward & Halstead, Computation Structures, MIT Press
)‫כולל חומר על חלקו הראשון של הקורס (תכן לוגי כללי‬
Hennessy & Patterson, Computer Organization and Design:
The Hardware/Software Interface
)‫כולל חומר על חלקו השני (תכן מחשב פשוט‬
October 2013
2
‫נושאי הקורס‬
Review
Standard Components
Introduction
and Memories
VHDL
Pipeline (WH8)
Datapath / controller (WH7)
MIPS Instructions (PH3.1-3.5, extra 3.6-3.11)
Datapath ALU (PH4.5, extra 4.6-4.8)
Single Cycle Controller (PH5.3)
Single Cycle Datapath (PH5.1-5.3)
Multi-Cycle Controller (PH5.4, extra 5.5)
Multi-Cycle Datapath (PH5.4)
Pipeline Controller (PH6.3)
Pipeline Datapath (PH6.2)
Communication (WH9)
October 2013
3
‫חזרה‬
‫• תזכורת קצרה על החומר מקורס מערכות‬
‫ספרתיות‪:‬‬
‫– שערים‪ ,‬הפשטה ספרתית‪ ,‬מערכת צירופית והמשטר‬
‫הסטטי‬
‫– ‪Flip-Flop‬‬
‫– מערכות סדרתיות והמשטר הדינאמי‬
‫• חומר זה חיוני להבנת יתרת החומר בקורס‬
‫‪4‬‬
‫‪October 2013‬‬
‫עקרונות תכנון מערכות‬
‫• מודולריות‬
‫– לא לתכנן את כל המערכת בבת אחת‬
‫• מתכננים אבני בניה בסיסיות (מודולים)‬
‫• חיבור מודולים הוא מודול חדש‬
‫• ניתן להחליף מודול אחד בגרסה חדשה שלו מבלי לפגוע בשאר המערכת‬
‫– סטנדרטיזציה‬
‫• שימוש במספר קטן של מודולים "מקובלים"‬
‫• ידיעה מדויקת מראש מה מכיל וכיצד עובד כל מודול‬
‫– הפשטה‬
‫• פירוק בעיית התכן לרמות שונות‪ ,‬הסתרת פרטים‬
‫‪5‬‬
‫‪October 2013‬‬
‫הפשטה‬
‫• המטרה‪ :‬הקלה על התכנון וההבנה של מערכות מסובכות‬
‫• החלוקה המקובלת במחשבים‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫שפה גבוהה‬
‫שפת מכונה‬
‫הרמה הלוגית‪/‬ספרתית‬
‫אלקטרוניקה ‪ /‬הרמה האנלוגית‬
‫פיזיקה‬
‫• כל רמה מבוססת על הרמה שמתחתיה‪ .‬בכל רמה‬
‫מתעלמים מן הפרטים שברמה מתחתיה‪ .‬נשתדל לפתור‬
‫כל בעיה ברמת ההפשטה הגבוהה ביותר שאפשר‬
‫• הפשטה‪ :‬מעבר מרמה נמוכה לגבוהה‪ .‬מימוש‪ :‬מעבר‬
‫מרמה גבוהה לנמוכה‬
‫‪6‬‬
‫‪October 2013‬‬
‫• דוגמות‪:‬‬
‫– ייצוג ערך‪ :‬מתח ברמה חשמלית‪ ,‬סיבית ברמה‬
‫ספרתית‪ ,‬משתנה בשפת מכונה‬
‫– מקומו של מספר‪ :‬משתנה בשפת תכנות עלית‪ ,‬כתובת‬
‫זיכרון בשפת מכונה‪ .‬הכתובת היא "פרט מימוש "‬
‫ומוסתרת מהשפה העלית‪.‬‬
‫• מגבלות‪ :‬הפשטה מחייבת שמירה על כללים‬
‫מגבילים‬
‫– לא כל מתח מתאים לייצוג ערך לוגי‪ .‬לא בכל זמן‬
‫המתח אכן מייצג ערך לוגי (למשל לא בעת המעבר מ‪0-‬‬
‫ל‪)1-‬‬
‫‪7‬‬
‫‪October 2013‬‬
‫הפשטה ספרתית‬
‫• משתנה המיתוג הוא מתח חשמלי‪ ,‬שיכול‬
‫לקבל כל ערך בתחום רציף‬
‫)‪V (volts‬‬
‫• נחלק את התחום לקטעים‪:‬‬
‫– מתח שמייצג '‪ '1‬ביציאות רכיב‪ :‬גבוה מ‪VOH -‬‬
‫‪VOH‬‬
‫– מתח שמייצג '‪ '1‬בכניסות רכיב‪ :‬גבוה מ‪VIH -‬‬
‫– מתח שמייצג '‪ '0‬בכניסות רכיב‪ :‬נמוך מ‪VIL -‬‬
‫– מתח שמייצג '‪ '0‬ביציאות רכיב‪ :‬גבוה מ‪VOL -‬‬
‫‪VIH‬‬
‫שולי רעש‬
‫‪VIL‬‬
‫– התחום בין ‪ VIH‬ל‪" VIL -‬תחום אסור"‬
‫– שולי הרעש מתגברים על רעש המתווסף לאות‬
‫במעבר מרכיב אחד לשני‪.‬‬
‫‪8‬‬
‫‪VOL‬‬
‫‪October 2013‬‬
Operating Regions
Revisit transistor operating regions
Region
nMOS
pMOS
A
Cutoff
Linear
B
Saturation
Linear
C
Saturation
Saturation
D
Linear
Saturation
E
Linear
Cutoff
VDD
A
B
Vout
C
D
0
Vtn
VDD/2
E
VDD+Vtp
VDD
Vin
October 2013
9
Noise Margin
It determines the allowable noise at the input gate (0/1)
so the output (1/0) is not affected
Noise margin is closely related to input-output transfer
function
It is derived by driving two inverters connected in series
October 2013
10
October 2013
11
‫מדדי זמן ושיקולים נוספים ברכיבים צירופיים‬
‫• זמן זיהום המוצא‪tCD ,‬‬
‫• זמן התפשטות או שיהוי‪tPD ,‬‬
‫• זמן עליית האות ביציאה‪ ,trise ,‬וזמן ירידתו‪tfall ,‬‬
‫• בזמן שבו האות משתנה יתכן ויעבור ממצבו ההתחלתי‬
‫לסופי דרך ערכי ביניים‬
‫– ‪ ,Static hazard‬למשל ‪0-1-0‬‬
‫– ‪ ,Dynamic hazard‬למשל ‪0-1-0-1‬‬
‫‪12‬‬
‫‪October 2013‬‬
‫מערכת צירופית והמשטר הסטטי‬
‫• מחשבת פונקציית מיתוג של הכניסות‬
‫• אבני בנין‪:‬‬
‫– רכיבים צירופיים‪ :‬שערים (למשל מערכת שלמה) ‪ ,‬מערכות‬
‫צירופיות קטנות יותר‬
‫– "חוטים"‬
‫• חוקי הרכבה של אבני הבניין‪:‬‬
‫– אסור לחבר משוב (מסלול מעגלי)‬
‫– כל כניסת רכיב מוזנת מכניסת המערכת או מיציאת רכיב אחר‬
‫(אין כניסות צפות)‬
‫– אסור לחרוג ממגבלות ‪.fan-out‬‬
‫‪13‬‬
‫‪October 2013‬‬
‫• מערכת צירופית מקיימת משטר סטטי‪:‬‬
‫– אם הכניסות לרכיב ספרתי הן יציבות ותקפות (לכניסה)‪ ,‬אזי‬
‫לאחר זמן התייצבות גם היציאות תהיינה יציבות ותקפות‬
‫(ליציאה)‬
‫• המשטר הסטטי מאפשר‪:‬‬
‫– בנית מערכות ספרתיות אמינות מרכיבים אנלוגיים לא‬
‫מדויקים‬
‫– הפחתת הרעש בכל רכיב‪ ,‬מניעת הצטברותו בהתקדמות‬
‫החישוב על פני מספר רכיבים‬
‫– ייצור המוני וזול של רכיבים‬
‫‪14‬‬
‫‪October 2013‬‬
‫‪Flip-Flop‬‬
‫• נשתמש ב‪ positive edge triggered D flip-flop -‬ובקיצור‬
‫‪DFF‬‬
‫– אפיון לוגי‪ :‬היציאה ‪ Q‬לאחר עלית השעון שווה לכניסה ‪ D‬לפני‬
‫העלייה‪.‬‬
‫• אפיון תזמון‪ :‬אם הכניסה אינה משתנה במשך ‪ )SETUP( tS‬לפני‬
‫עליית השעון וכן במשך ‪ )HOLD( tH‬לאחר עלית השעון‪ ,‬אז‬
‫– היציאה הישנה תישאר תקפה במשך לפחות ‪ tcCQ‬לאחר עליית‬
‫השעון‬
‫– היציאה החדשה תהיה תקפה לכל המאוחר לאחר ‪ tpCQ‬לאחר‬
‫עליית השעון‬
‫‪15‬‬
‫‪October 2013‬‬
‫הגדרת ‪FSM‬‬
‫• מערכת העקיבה ממומשת ע"י מכונת מצבים‬
‫סופית )‪ .(Finite State-Machine, FSM‬המערכת‬
‫מוגדרת באמצעות מרכיביה הבאים (מכונת‬
‫‪:)Mealy‬‬
‫– קבוצה סופית של מצבים }‪ .S={s1,s2,…,sK‬אחד‬
‫מהם נקבע כמצב ההתחלתי‪ .‬ניתן לייצג ‪ K‬מצבים ע"י‬
‫)‪ k=log2(K‬משתני מצב בינאריים‪.‬‬
‫– קבוצה סופית של כניסות בינאריות }‪X={x1,x2,…,xL‬‬
‫– קבוצה סופית של יציאות בינאריות }‪Z={z1,z2,…,zM‬‬
‫‪16‬‬
‫‪October 2013‬‬
‫– פונקצית מעבר )‪ l(SXS‬המגדירה לכל צירוף של‬
‫מצב נוכחי ‪ si‬וערכי הכניסות ‪ x1,x2,…,xL‬את המצב‬
‫הבא *‪.si‬‬
‫– פונקצית יציאה )‪ WMEALY(SXZ‬המגדירה לכל‬
‫צירוף של מצב נוכחי ‪ si‬וערכי הכניסות ‪x1,x2,…,xL‬‬
‫את ערכי היציאות ‪.z1,z2,…,zM‬‬
‫– תזמוני כניסה ‪ tS, tH‬ותיזמוני יציאה ‪.tcC-Q, tpC-Q‬‬
‫• במכונת ‪ Moore‬פונקצית היציאה תלויה במצב‬
‫הנוכחי בלבד‪.WMOORE(SZ) :‬‬
‫‪17‬‬
‫‪October 2013‬‬
?Mealy ‫ או‬Moore– ‫מכונת מצבים‬
INPUTS
COMBINATIONAL
LOGIC
(OUT)
OUTPUTS
=F(PS, IN)
COMBINATIONAL
LOGIC
(NEXT STATE)
NEXT
STATE
PRESENT
STATE
MEALY
FSM
FLIP
FLOPS
INPUTS
COMBINATIONAL
LOGIC
(OUT)
OUTPUTS
=F(PS)
COMBINATIONAL
LOGIC
(NEXT STATE)
NEXT
STATE
PRESENT
STATE
MOORE
FSM
FLIP
FLOPS
October 2013
18
‫ זמן המחזור‬:‫תזמון במכונת מצבים‬
INPUTS
COMBINATIONAL
LOGIC
PRESENT
STATE
OUTPUTS
NEXT
STATE
TPD
FLIP
FLOPS
TpC-Q
TSETUP
CLOCK
October 2013
19
‫ לכניסות‬SETUP ‫ זמן‬:‫תזמון במכונת מצבים‬
INPUTS
OUTPUTS
COMBINATIONAL
LOGIC
NEXT
STATE
PRESENT
STATE
FLIP
FLOPS
TSETUP
CLOCK
October 2013
20
‫כללי התזמון למכונת מצבים‬
‫• בכדי להבטיח פעולה תקינה של מערכת עקיבה יש‬
‫להקפיד על‪:‬‬
‫– משך מחזור השעון ‪:T‬‬
‫‪T  tpC-Q+tpd(CL)+tS‬‬
‫– הכניסות למערכת הצירופית צריכות להיות תקפות בערכים‬
‫הנכונים במשך )‪ tS(input‬לפני עליית השעון‪:‬‬
‫‪tS(input)  tpd(CL)+tS‬‬
‫– ‪ tCD‬במערכת הצירופית צריך להיות ארוך מ‪ tH-‬של הזכרונות‪.‬‬
‫‪21‬‬
‫‪October 2013‬‬
‫תיקונים לכללי התזמון‬
‫• ‪CLOCK SKEW‬‬
‫– במכונה סינכרונית לא תמיד השעון מגיע בו זמנית לכל ה‪FF-‬‬
‫– צריך להאריך את מחזור השעון (להוריד תדר) על מנת לאפשר‬
‫זאת‬
‫– יתכן שצריך להוסיף השהיות ‪ tCD‬על מנת להבטיח קיום ‪ tH‬בכל‬
‫‪FF‬‬
‫• כניסות אסינכרוניות‬
‫– כניסות חיצוניות עלולות לא לקיים תנאי ‪SETUP, HOLD‬‬
‫– ‪ FF‬אחד או יותר עלולים להיכנס למצב על‪-‬יציב (‪)metastable‬‬
‫– יש לבנות מערכת חסינת על‪-‬יציבות‪.‬‬
‫‪22‬‬
‫‪October 2013‬‬
‫תיקונים לכללי התזמון‬
‫• המשטר הדינאמי מחייב את קיום התנאים הבאים‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫‪23‬‬
‫מעגל ספרתי מורכב מרכיבים צירופיים ורכיבי זיכרון‬
‫מתוזמנים בלבד‪.‬‬
‫מעגל ספרתי אינו מכיל לולאות של רכיבים צירופיים‪ .‬כל‬
‫לולאה חייבת להכיל לפחות רכיב זיכרון מתוזמן אחד‪.‬‬
‫מחזור השעון ארוך מספיק על מנת לספק את דרישות הזמן של‬
‫כל הרכיבים‪.‬‬
‫בכל הכניסות‪ ,‬הרמות הלוגיות תהיינה יציבות למשך זמן‬
‫מספיק‪.‬‬
‫‪October 2013‬‬