שבבי סיליקון: תדר, טמפרטורה, מתח ומה שביניהם. - אוברקלוקינג וקירור - HWzone פורומים
עבור לתוכן
  • צור חשבון

שבבי סיליקון: תדר, טמפרטורה, מתח ומה שביניהם.


Animor

Recommended Posts

להלן הסבר (על קצה המזלג) על תדר, טמפרטורה ומתח בתעשיית ה-Semiconductor.

רקע: מה זה בעצם שבב (צ'יפ) סיליקון

=======================

באופן עקרוני, שבבי סיליקון יכולים להכיל 3 סוגים עיקריים של רכיבים:

1. חלק דיגיטלי: מעבדים, בקרים, מנועים ומאיצים ייעודיים (למשל: עיבוד תמונה, עיבוד קול, טיפול בפרוטוקולי תקשורת, הצפנה), מערכי רגיסטרים ועוד.

2. חלק אנלוגי: PLL (נעילת שעון, מכפלי שעון), מקלטי/משדרי RF, מגברי אות, אספקות, דיודות, פיוזים אלקרוניים ועוד.

3. זכרונות.

למה צריך את זה?

===========

למה בכלל לפתח חומרה? למה לא להסתפק במעבד גנרי, לכתוב עבורו קושחה (Firmware) ודרייבר, ולהריץ הכול דרכו?

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

אז איך בעצם מפתחים שבבים?

==================

זהו תהליך ארוך שקורה בשלבים. כל מהנדס אחראי כל חלק מסוים, ובסוף כל החלקים מתחברים זה לזה:

1. הגדרה: מה נדרש, כמה מחזורי שעון עומדים לרשותנו, אלו משאבים יש לנו.

2. תכנון: נבין איך לפתור תיאורטית את הבעיה ונתכנן מכונות מצבים המקושרות ביניהן, אשר מיישמות את הפיתרון מבחינה רעיונית.

3. כתיבת קוד בשפה עילית: מדובר בשפה המזכירה ב-Syntax שלה שפות תכנות, כמו למשל שפת C הנפוצה. אבל אל תטעו! תכנון צ'יפים שונה מאוד מכתיבת קוד תוכנה:

א. בחומרה הכול קורה במקביל, בניגוד לתוכנה, בה הדברים קורים סדרתית (אחד אחרי השני). אפילו אם כתבתם תוכנה בעלת Threads הפועלים במקביל, למעשה הם לא יהיו באמת מקביליים, אלא אם כן תשתמשו בכמה מעבדים. אנשי חומרה צריכים "לחשוב מקבילית", משום שכל שורת קוד תתוזמן בפועל עם שורות קוד אחרות.

ב. הכלים שעומדים ברשות מפתח חומרה בסיסיים מאוד. אין Object Oriented ודברים בסגנון זה, המוכרים לאנשי תוכנה. למרות שהמהנדס כותב בשפה עילית, עליו לדעת איך הדברים יתממשו על גבי הסיליקון (שערים לוגיים, Flip Flops) ולהבין מה אפשרי ומה לא, מה יעיל ומה לא.

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

ד. בחומרה אסור שיהיו באגים, משום שלא ניתן לתקנם ע"י Patch, כמו בתוכנה. תכנון חכם ישתול יתירויות, אשר תאפשרנה עקיפת באגים פוטנציאליים ע"י עדכוני קושחה (firmware) או דרייבר.

מה בפועל יש בתוך השבב?

===============

לאחר שמסתיימת כתיבת החומרה ובדיקתה כשפה עילית, עובר הלפיד למהנדסי ה-Backend. מהנדסים אלה אחראים על הפיכת התיאור בשפה העילית (מכונות המצבים, החיבוריות) לרשת של שערים לוגיים ואלמנטי זיכרון. זהו תהליך לא פשוט, שנעשה בכלי CAD יעודיים ונמשך לא מעט. יש צורך לטפל באופן פרטני באלמנטים רבים, כגון שעונים, reset, מעברים בין שעונים בתדירויות שונות וכדומה.

בסופו של תהליך זה, מתקבל Netlist המורכב משני סוגים עיקריים של לוגיקה:

1. לוגיקה קומבינטורית: שערים לוגיים, כגון AND, OR, וכו'.

2. לוגיקה סיקוונסיאלית: אלמנטים "זוכרים", כמו Flip Flops ו-Latches, אשר דוגמים ערך בכל (עליית) שעון ושומרים אותו אצלם עד (עליית) השעון הבא.

אלמנטי הזיכרון מוציאים ערכים, אשר עובר שערים לוגיים (כדי לבצע חישוב מסוים). מוצא השערים האלה נדגם באלמנט אחר. כאשר מדובר ב-Bus, הכול משוכפל. למשל, אם אנו מעוניינים לבצע חישוב מסוים על Bus של 128 ביטים, נצטרך 128 Flip Flops ומאות/אלפי שערים לוגיים.

שני סוגי הלוגיקה המתוארים בנויים מאבני בניין קטנות יותר, המכונות טרנזיזסטורים. טרנזיזסטורים הם "החוכמה" שבסיליקון. הם זעירים והם יודעים להעביר או לא להעביר מתח, על פי בקרה שהם מקבלים. בצ'יפ ממוצע יש עשרות/מאות אלפי אלמנטי , מאות אלפי/מליוני שערים לוגיים ומליוני טרנזיזסטורים. פרמטר עיקרי בבחירת הטכנלוגיה, הנו רוחב בסיס הטרנזיסטורים. אלה המספרים שאתם מכירים כ-45nm ,65nm, 90nm וכו'. לבחירה זו השפעה ישירה על גודל הצ'יפ, תדר, צריכת הספק ועוד. המגמה, כמובן, היא למזער את הצ'יפים עד כמה שניתן. בדרך כלל החברות הגדולות הן פורצות הדרך בהקטנת הטכנלוגיה, וכאשר היא מבשילה (כלומר, יש פחות סיכון לצ'יפים דפוקים), חברות קטנות יותר הולכות בעקבותיהן.

אז עכשיו אפשר ללכת לייצר את השבב? ממש לא!

השלב הבא הוא מיקום החלקים השונים שתוארו לעיל על גבי הצי'פ וחיבור כל האלמנטים המקושרים ביניהם (כולל וחלקים אנלוגיים). השלב הפיזי הזה מתבצע בתלת-מימד. טרנזיזסטורים יושבים ב"קומה" אחת, חיווטי המתכת הזעירים מתפרשים על גבי 7 ואף יותר "קומות".

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

אנליזות אלה, המחושבות לפי מגוון פרמטרים, תקבענה בסופו של דבר מה תדר העבודה של השבב. בעיקרון, בעולם ה-Semiconductor, מהנדסי ה-Backend מתכננים צ'יפים לפי Corners ובהתאם אליהם מתבצעות האנליזות. ישנם שלושה Corners ראשיים:

Worst Case, Typical Case, Best Case. לכל אחד מהם יש 3 מדדים.

איך כל זה קשור ל-OC?

=============

הקורנר שמעניין את כל מי שעושה OC הנו ה-Worst Case ו-3 המדדים שלו הנם:

1. Slow Process (זמני תגובה ארוכים של טרנזיסטורים, נגזר מטכנולוגיית הליטוגרפיה והאילוח).

2. מתח נמוך (בדר"כ 10% פחות מהטיפיקלי)

3. טמפרטורה גבוהה (בדרך כלל 125C).

כל אחד משלושת התנאים האלה גורם ל-delay גדול בהתפשטות הסיגנלים בלוגיקה קומבינטורית: Path שעובר בין שני Flip Flops, הכולל שערים לוגיים, adders, מוקסים וכו'. כל שער דוחף את השער שאחריו וצריך להתגבר על קיבולים, שמאטים את שינוי המתח. לשער שעובד במתח גבוה יותר קל יותר "להתגבר" על העומס המדובר, וחילוף הערך יהיה מהיר יותר. טמפרטורה גבוהה מאיטה גם היא את הזמנים האלה, כך שלצ'יפ שעובד בטמפרטורה נמוכה יותר, יש פוטנציאל לעבוד מהר יותר.

כל מסלול (Path) כזה חייב לעמוד בתדר. כלומר: סיגנל שיוצא מ-FF בפולס שעון מסוים צריך להידגם ב-FF הבא בפולס השעון העוקב. אם זמן התפשטות הסיגנל בין שני ה-FF גדול מזמן מחזור השעון, הרי שהמסלול אינו עומד בתדר וה-FF עלול לדגום ערך לא נכון, או אפילו להיכנס למצב Metastability.

כאשר יצרן צ'יפים מפרסם תדר עבודה, זה יהיה התדר הכי גבוה שהוא הגיע אליו באנליזת ה-Worst Case Corner.

אנליזת ה-Best Case יכולה לפעמים להיות אופטימית עד כדי תדר מהיר פי 2 מה-Worst Case! ה-Typical Case יהיה איפשהו ביניהם.

באנליזה של כל קורנר מוסיפים אי וודאות מסוימת שנקראת On-Chip Variation, או בקיצור OCV. משמעות ה-OCV היא הבדלים ברמת הייצור בסיליקון, שגורמים לכך שה-Delay עלול להשתנות לפי המיקום הפיזי בצ'יפ. ככל ששטח הצ'יפ גדול יותר, ה-OCV יהיה גדול יותר. ה-OCV משמש מעין שולי ביטחון ויכול להגיע ל-10% מהתדר.

לאחר ייצור הצ'יפ, הוא עובר בדיקות שונות, בין היתר בדיקות שאמורות לסנן צ'יפים שלא עומדים בתדר (או מקסימום למכור אותם בתדר נמוך יותר), בדיקות שאמורות לסנן צ'יפים בעלי זמן חיים קצר (חימום הצ'יפ ב-LOAD בתהליך שנקרא burn-in), בדיקות שאמורות לסנן צ'יפים בעלי פגמים בייצור וכו'.

לגבי ה-OC: כפי שאתם יודעים, תדר מגיע על חשבון טמפרטורה ומתח. אם מורידים טמפרטורה ומעלים מתח, אפשר להקטין זמני התפשטות ולאפשר לשעון לעבוד בתדר גבוה יותר. אבל, יש לזכור שתדר גבוה יותר משמעו גם switching או toggling מהיר יותר של הלוגיקה בסיליקון, דבר שיגביר את צריכת ההספק וכפועל יוצא את החום הנוצר.

אם הצ'יפ הספציפי שרכשתם יוצר כ-Best Case, הרי שהרווחתם - תוכלו להעלות משמעותית את התדר (שכאמור, חושב ל-Worst Case) גם מבלי להעלות את המתח או לקררו באופן דראסטי. כמו כן, אפשר להסתמך גם על מרווח הביטחון (ה-OCV), בהנחה שברוב הצ'יפים ה-OCV קטן מזה שהמתכננים לקחו בחשבון.

זהו. אשמח לתגובות, הערות והארות!

קישור לתוכן
שתף באתרים אחרים

קראתי את ההסבר שלך עוד בפורום כ. מסך, רק לא שמתי לב שפתחת פה גם.

ההסבר מאוד ממצה ועוזר להבין את התהליכים מאחורי הייצור (אני אלקטרונאי במקור אז חלק מהמושגים מוכרים לי) :xyxthumbs:

אני מאמין שזה יעלה לדרגת סטיקי ;)

קישור לתוכן
שתף באתרים אחרים

חלק מהאנשים התקשו לקרוא את המאמר הזה, ובצדק. רוב האנשים אינם מהנדסי חשמל וחסר להם ידע בסיסי.

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

אם אתם חושבים שזה יעניין אנשים בפורום אחר או במקום אחר, רשמו זאת ואני אשמח להעלות את זה גם שם.

אשמח לתגובות, הערות, ואף תיקונים, אם ישנם!

קישור לתוכן
שתף באתרים אחרים

בתור חובב חומרה ואוברקלוק מושבע, וסטודנט בנושא, נהניתי מאוד לקרוא את דברייך.

אשמח אם תמשיך לפרט על הנושא. אני גם ממליץ לשלב הסברים בהודעה הראשונה על כל מיני מושגים טכניים שכללת על מנת שהציבור הרחב יוכל להבין טוב יותר את תוכן ההודעה.

קישור לתוכן
שתף באתרים אחרים

אני אשמח להמשיך לתרום לאתר. אני רואה בזה תמורה לעזרה שקיבלתי כאן לא מזמן (ושבטח אני אקבל בעתיד).

הבעיה בכתיבת מאמר/הודעה כזו היא קהל היעד שאני מכוון אליו, והידע שלו. הבסיס שנדרש בשביל להבין לעומק הוא 4 שנים של הנדסת חשמל...

מעבר לכך, הדברים התחילו לחרוג מנושא הפורום (OC וקירור), כך שלא ידעתי כמה אנשים באמת רוצים שארחיב.

אני אשמח לפרט, במגבלות הידע שלי:

1. אלו מושגים טכניים מצריכים הבהרה, לדעתכם?

2. חשבתי להרחיב בשני תחומים:

א. בדיקות שבבים לאחר ייצור ו-Yeild (מה שמנדרין ביקש).

ב. אופי ההשפעה של טמפרטורה גבוהה על הסיליקון, אורך החיים של השבב וכו'.

יש עוד נושאים שמעניינים אתכם, או שאתם רוצים הרחבה לגביהם? למשל, משהו שעולה לי לראש עכשיו: איך שורת קוד חומרה הופכת להיות שערים לוגיים.

בקיצור, אשמח להכוונה במה להתמקד ומה מעניין את האנשים כאן.

קישור לתוכן
שתף באתרים אחרים

  • 3 שבועות מאוחר יותר...

תודה רבה על המאמר המצוין.

כמישהי שלומדת ועובדת בתחום (ואפילו לוקחת חלק בשרשרת הזאת :) ) לי היו ברורים המושגים, אבל באמת נראה לי שהמאמר קשה להבנה לרוב האנשים. אפשר למשל לשים כוכבית ליד מושגים טכניים (כמו שער לוגי ורכיבים אחרים שבנויים מהם - מוקסים למשל, Yield ועוד) ואז לשים הסבר קצר למטה, ואולי אפילו תמונה, במקרה של שערים לוגיים והתמונה התלת מימדית של השכבות על השבב. אפשר גם להוסיף הסבר קצר על התנגדויות וקיבולים בין החוטים.

חוצמזה, אני מאוד אשמח לקרוא מאמר על כל אחד מהנושאים שהצעת או כל נושא אחר שתחשוב לנכון לכתוב עליו.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...