אינטל 4004
4004 הוא מעבד 4 ביט של אינטל. המעבד שיצא לשוק ב־1971 היה המעבד המסחרי הראשון של אינטל, והמעבד הראשון על מעגל משולב יחיד.
מידע כללי | |
---|---|
יצרן | אינטל |
השקה | 15 בנובמבר 1971 |
הבא | אינטל 4040 |
מידע טכני | |
טרנזיסטורים | 2,300 |
קצב שעון מרבי | 740-750 kHz |
ה־4004 היה המעבד הראשון שמומש על שבב סיליקון יחיד, זאת על ידי שימוש בטכנולוגיה חדשה של "שערי סיליקון", המאפשרת צפיפות ומהירות גבוהות יותר מהטכנולוגיות הקודמות. הגאומטריה היא 10μm (10 מיקרון - בערך עשירית מקוטר שערה של אדם), קצב השעון 740 קילוהרץ, 92,000 פקודות בשנייה, בקירוב.
רקע
עריכהמאז היו מכונות חישוב ומחשבים, הייתה שאיפה למיזעור. מאז המצאת המעגל המשולב על ידי רוברט נויס, (שמאוחר יותר ייסד את אינטל), מספר הרכיבים על שבב סיליקון יחיד עלה בצורה עקבית משנה לשנה, עד כדי שהעלייה הזו נוסחה כ"חוק" (ראו חוק מור). לקראת סוף שנות ה־60 של המאה ה־20 כבר יוצרו רכיבים עם אלפי טרנזיסטורים, כמו מוצר הדגל של אינטל, 1101, שבב זיכרון דינמי (DRAM) בקיבולת של 1K סיביות, כשכל תא זיכרון מורכב מ־3 טרנזיסטורים, כלומר קצת יותר מ־3,000 טרנזיסטורים על שבב יחיד. בעזרת מספר כזה של רכיבים כבר אפשר לממש מחשב - למשל, מחשב מ־1956, LGP-30 (אנ'), השתמש ב־113 שפופרות ו־1,450 דיודות בלבד. המהנדס טד הוף (Marcian Edward "Ted" Hoff, Jr. (אנ')), שעבד באינטל, חשב שהגיע הזמן לפתח מעבד על שבב יחיד.
ב־1969, פנתה יצרנית מכונות החישוב היפנית ביזיקום (Busicom), לשתי חברות שבבים אמריקאיות, אינטל ומוסטק (Mostek), כדי שיפתחו עבורה שבבי LSI (כלומר שבבים המכילים אלפי טרנזיסטורים) לשימוש בדור הבא של מכונות חישוב אלקטרוניות. חברת מוסטק אכן פיתחה שבב שמימש את כל הפונקציונליות של מחשבון, והיה הראשון בסדרה של מוצרי "מחשבון על שבב" (calculator-on-a-chip), של מוסטק וחברות אחרות (כמה שנים אחר כך גם אינטל הוציאה מוצר מחשבון על שבב).
אינטל, לעומת זאת, בהמלצת הוף, הציעה לביזיקום פתרון מסוג חדש: פיתוח מיקרו־מעבד כללי, בעזרתו תוכל ביזיקום לממש את הפונקציונליות של מכונת החישוב, ומאוחר יותר, כשיידרשו תכונות אחרות, תוכל לממש אותם בעזרת אותם הרכיבים, בעזרת שינוי בתוכנה.
בערך באותו הזמן פנתה חברה נוספת, יצרנית המסופים CTC לאינטל, כדי שתפתח עבורה מעבד על שבב יחיד, שיועד להחליף מעבד קיים, שמומש על מספר לוחות מודפסים שהכילו מספר רב של רכיבים. בפרויקט זה הלקוח הגיע עם סט פקודות מוגדר, כמו במעבד הקיים. פרויקט זה נקרא 8008, והושלם מאוחר יותר.
פיתוח
עריכההוף ומזור - תכנון ראשוני וסט פקודות
עריכהביזיקום הסכימה, והוף, בעזרת מהנדס נוסף, סטנלי מזור, עיבדו מפרט מפורט ותכנון ראשוני, כתחליף לתכנון המקורי איתו הגיעה ביזיקום. תכנון זה כלל את סט הפקודות של המעבד, ותכנון כללי ראשוני, כמו דיאגרמות בלוקים, בחירת המארז (16 פינים), הגדרת משפחת השבבים, השמת הפינים, וכן הלאה. מזור החל לכתוב קטעי קוד (snippets), שמבצעים משימות מסוימות של מכונת חישוב, כדי להדגים איך ניתן לבצע את הדרוש. תכנון זה קיבל את אישורה של חברת ביזיקום, שהתכנון המקורי שלה כלל שמונה או עשרה שבבים שונים, שחלקם עם 40 פינים (גורם בעל השפעה משמעותית על המחיר). ביזיקום החלה לפתח את מכונות החישוב עצמן, בהתבסס על תוכנית זו, בסתיו 1969.
פדריקו פג'ין
עריכהפדריקו פג'ין (Federico Faggin) הוא פיזיקאי ומהנדס איטלקי, שעבד בחברת אוליבטי (אנ'), שם בנה, בין השאר, מחשב מבוסס טרנזיסטורים כחלק מבדיקת היתכנות למחשב קטן וזול, פרויקט שלא הפך מוצר (פג'ין החל כעוזר למהנדס, אך עקב צירוף נסיבות שכלל עזיבת המהנדס שניהל את הפרויקט, ותאונה למהנדס אחר, קיבל פג'ין את האחריות לפרויקט והשלים אותו). אחרי השלמת תואר הדוקטור בפיזיקה, עבד פג'ין בחברת SGS־פיירצ'יילד (אנ'), חברה איטלקית בבעלות חלקית של חברת פיירצ'יילד סמיקונדקטור (Fairchild Semiconductor) האמריקאית (אחת מחברות המוליכים למחצה הראשונות, והראשונה שייצרה מעגלים משולבים. חברות רבות בעמק הסיליקון, ביניהן אינטל, AMD, סיגנטיקס, ועשרות חברות נוספות נוסדו על ידי יוצאי פיירצ'יילד). במסגרת זו הוצע לפג'ין לעבוד חצי שנה בחברת האם, במסגרת "חילופי מהנדסים", פג'ין הסכים, ובפברואר 1968 הגיע לקליפורניה, ולמעשה נשאר בארצות הברית מאז. בתום ששת החודשים, פיירצ'יילד מכרה את חלקה ב־SGS, והציעה לפג'ין להישאר כעובד פיירצ'יילד. יום העבודה הראשון של פג'ין כעובד מן השורה בפיירצ'יילד, היה היום בו הודיעו רוברט נויס וגורדון מור על עזיבתם את פיירצ'יילד (זמן קצר אחר כך הכריזו נויס ומור על הקמת אינטל). פג'ין התמחה בבניית רכיבים בטכנולוגיות MOS. ופיתח כמה תהליכים וטכנולוגיות. לקראת סוף 1969, פג'ין חש תסכול, בין השאר בגלל הקושי בפיירצ'יילד להעביר תהליך חדש מהמעבדה לייצור. פג'ין פנה למנהל שלו לשעבר, לס ואדאס (Leslie L. Vadász; שעזב את פיירצ'יילד והצטרף לנויס ומור באינטל), בבקשה לעבוד באינטל, ובמרץ 1970 הצטרף פג'ין לאינטל, ומיד קיבל את פרויקט ה־4004.
מסטושי שימה
עריכהמסטושי שימה ((אנ'), נולד ב־1943) הוא מהנדס יפני, שלמד כימיה אורגנית. ללא אפשרות תעסוקה בתחום, שימה הצטרף ליצרנית מכונות החישוב ביזיקום, בחטיבת המכונות האלקטרוניות. שימה הכיר את המפרט לעומק, ובמרץ 1970 נשלח לקליפורניה, כדי לבדוק את התקדמות הפרויקט. הוא נחת ביום העבודה השני של פג'ין באינטל, והופתע לגלות כמה מעט התקדמות נעשתה בפרויקט מאז אושר התכנון הראשוני. פג'ין מספר שאחרי שבוע בו שימה הפג'ין את אכזבתו וחוסר שביעות רצונו מהמצב, פג'ין אמר לו שהוא יכול להמשיך להתלונן, או לעזור לקיים את הפרויקט:
I told Shima that, basically, he could continue to bitch, or he could help me. And if he helped me, we could get there faster.
אמרתי לו, בעיקרון, שהוא יכול להמשיך לקטר, או שהוא יכול לעזור לי, ושאם הוא יעזור לי נוכל להתקדם מהר יותר.— [1]
שימה בחר להצטרף לפג'ין, ושניהם היוו גלעין הצוות שבנה את ה־4004.
לא שבב יחיד, אלא משפחה
עריכהכדי להשתמש במעבד ולהפיק ממנו תועלת, נחוצות עוד מספר פונקציות, והפרויקט הגדיר משפחה של ארבעה שבבים למערכת שלמה:
- 4001: זהו שבב שעיקר ייעודו לספק למערכת זיכרון לקריאה בלבד (ROM), בקיבולת של 256 בתים, ו־4 פינים של קלט/פלט. תוכן הזיכרון והשמת הפינים כקלט או פלט נקבע בזמן הייצור, לפי תוכן שהלקוח מספק. מערכת יכולה לכלול מספר שבבי 4001, עד קיבולת מרבית של 4KB[1].
- 4002: זיכרון RAM סטטי, 80 מילים של 4 סיביות, או 320 סיביות, ובנוסף, 4 סיביות פלט. גם כאן, ניתן להשתמש במספר שבבים[2].
- 4003: אוגר זיזה (Shift register) לביצוע פעולות קלט/פלט[3]
- 4004: המעבד עצמו
שבב הקלט/פלט הוא הפשוט ביותר, אחריו הזיכרון, לאחר מכן זיכרון קריאה־בלבד, ולבסוף המעבד עצמו, שהיה האתגר הגדול - עד אז איש מעולם לא בנה מעבד שלם על שבב יחיד.
תכנון לוגי, חשמלי, ושרטוט המסכות
עריכהב־1970 כבר היו מספר שבבים, של אינטל ושל יצרנים אחרים, עם אלפי טרנזיסטורים, אבל באינטל, השבבים הצפופים היו פשוטים יחסית מבחינת התכנון, אם כי לאו דווקא מבחינת הייצור: שבבי זיכרון בנויים ממספר רב של "תאים" זהים, ומסביבם מספר קטן יחסית של לוגיקה דיסקרטית לבקרה (ב־1970 פיתחה וייצרה אינטל משפחה של שבבי זיכרון דינמי של 1,024 סיביות, כשכל סיבית ממומשת בעזרת שלושה טרנזיסטורים - זיכרון דינמי עם טרנזיסטור בודד לתא הופיע מעט אחר כך). למעשה, לא הייתה באינטל מתודולוגיה לתכנון מעגל כה מורכב על שבב יחיד, ואינטל טרם בנתה שבב בטכנולוגיה החדשה שעליה ה־4004 היה מבוסס - "שערי סיליקון", שעשו שימוש בהמצאה של פג'ין מפיירצ'ילד, אותה כינה "מגע קבור" או "מגע מוטמן". פג'ין פיתח שיטה עבודה שונה מעט מהמקובל: בשיטה זו הצוות "דילג" על השלבים של תכנון בעזרת דיאגרמת בלוקים, שערים לוגיים, ולבסוף טרנזיסטורים, ושימה פנה היישר לשרטוט הטרנזיסטורים, כשהוא משרטט אותם בגודל אחיד. באופן זה, התכנון החשמלי נתן, לפחות בקווים כלליים, את המבנה הפיזי, והמעבר לשרטוט המסכות היה יחסית ברור, משום שהמיקום ניתן, לפחות בקווים כלליים, כבר בשרטוט החשמלי.
הצוות: פג'ין, שימה ואחרים
עריכהשימה הצטרף לפג'ין, ויחדיו החלו לקדם את הפרויקט. פג'ין היה מומחה בתהליכי ייצור סיליקון, והיה גם בעל ידע מעמיק בתכנון מערכות לוגיות, בין השאר בזכות הפרויקט לבניית מחשב באוליבטי. לשימה לא היה ידע בתכנון שבבים, ולעומת זאת, היה לו ניסיון בתכנון מעגלים לוגיים, והיכרות מעמיקה עם התכנון הקיים ומפרט, שנשלח לביזיקום בסתיו.
פיתוח שבב דורש מספר שלבים: יש לבצע את התכנון הלוגי, בדרך כלל בעזרת שערים, או יחידות בניין גדולות יותר, שבנויות כל אחת משערים. לאחר מכן יש להפוך את התכנון הלוגי למעגל חשמלי, המורכב מטרנזיסטורים, דיודות, ונגדים. בשלב הבא פורסים את התכנון הפיזי של הרכיבים על גבי הסיליקון, ומשרטטים מסיכות, שמגדירות את שלבי הייצור. את המסכות הללו מצלמים ומקטינים לגודל הדרוש, והן משמשות לייצר את המעגלים. מלבד שימה, לצוות נוסף שרטט, כדי לסייע בשלב השרטוט. כדי להעביר מהתכנון החשמלי לתכנון הפיזי, יש לדעת מה הפרמטרים של הטכנולוגיה בה עובדים, כלומר מה גודלו של כל תא, או "רכיב", על שבב הסיליקון, מה המרווח הנחוץ בין כל שני תאים, וכן הלאה.
השבב הראשון היה ה־4001, משום שהתכנון הלוגי שלו היה פשוט, ובאופן כזה השרטט היה יכול להתחיל לעבוד כמעט מיד. פג'ין תכנן את התכנון הלוגי ואז החשמלי של השבב, ובמקביל עבד עם שימה על התכנון הלוגי והחשמלי של ה־4004. תכנון ה־4001 ארך כשבועיים, ופג'ין עבר לשרטוט, תוך אימון השרטט שהצטרף לצוות. השבב הבא היה ה־4003, שעבר תהליך דומה, כשבינתיים שימה מתקדם עם ה־4004. את התכנון החשמלי של ה־4004 ביצע שימה לבדו, ובינתיים הצוות גדל: נוסף מהנדס צעיר, שבהדרכתו של פג'ין החל לעבוד על שבב הזיכרון, ה־4002, ונוספו שרטטים, כך שכשנשלם התכנון החשמלי והפיזי של ה־4004, עבדו על המסכות שלושה שרטטים. המונח "שרטוט" אינו מדויק, משום שבטכנולוגיית המעגלים המשולבים של 1970, ה"שרטוט" התבצע למעשה בחיתוך וקילוף רובילית' (Rubylith (אנ')), בעזרת עזרי שרטוט כמו הקואורדינטוגרף.
לאחר סיום התכנון החשמלי של ה־4004, אך לפני שתמה העבודה של שרטוט המסכות, שימה חזר ליפן. הוא בנה שם מעגלים זהים ל־4004 על גבי לוחות מודפסים, בעזרת לוגיקה דיסקרטית, והחל (או המשיך) לפתח ולבדוק את התוכנה של מכונות החישוב. כשהשבבים הראשונים הגיעו מהייצור, החל ב־4001, ואחריו ה־4002 וה־4003, דוגמאות נשלחו ליפן, ושולבו במעגלים של שימה, לבדיקה והוכחת הפעולה.
הסיליקון הראשון של ה־4004 הגיע מהייצור בתחילת ינואר 1971, אך במחזור הראשון נפלה טעות גסה אך קלה לתיקון: בתהליך הייצור דולג בטעות אחד השלבים החשובים. טעות זו תוקנה, ולקראת סוף החודש הגיעה לפג'ין ה"פרוסה" (Wafer) הראשונה של שבבי 4004 עובדים. השבב היה "חי", אך עדיין נותרו מספר טעויות ושגיאות. השגיאות תוקנו, ובפברואר 1971 כבר היו שבבים תקינים ועובדים בהתאם למפרט, והשבבים הראשונים נמסרו ללקוח במרץ 1971.
תיאור
עריכההשבב[4] מכיל כ־2,300 טרנזיסטורים, בטכנולוגיית pMOS עם שערי סיליקון (אנ'), עם מתח עבודה של 15 וולט, בקצב שעון 740 קילוהרץ. סט הפקודות מכיל 46 פקודות, עם מספר אופני מיעון. סט הפקודות כולל גם פקודה מיוחדת שמטרתה להקל על המתכנת לבצע התמרה בין מספרים עשרוניים ובינאריים, פעולה חשובה כשרוצים לממש בעזרת המעבד מכונת חישוב, בה הפלט והקלט עשרוניים. רוב הפקודות תופסות בית אחד ב־ROM, אבל כמה פקודות תופסות 2 בתים: השבב תומך בעד 4KB זיכרון קריאה־בלבד, (בספר המעבד נכתב "32,769 סיביות"), ו־640 בתים זיכרון גישה אקראית ("5,120 סיביות"). למעבד 16 אוגרים של 4 סיביות, או 8 אוגרים של 8 סיביות, כאשר חלק מהפקודות בסט הפקודות מתייחסות לזוג אוגרים כבית אחד, ויש פקודות שפונות לאוגר מסוים, כספרה הקסדצימלית אחת, לביצוע פעולות אריתמטיות. ומחסנית בעומק 4, עליה שומר המעבד את כתובת החזרה בקריאה לשגרה. באופן זה, ניתן לכתוב תוכנית עם קריאה לשגרות עד עומק 4, למעשה בלי להיזקק לזיכרון כלל - התוכנית עצמה יושבת בזיכרון הקריאה בלבד, וניתן לכתוב ולבצע תוכנית פשוטה, כולל ביצוע קלט ופלט, בעזרת האוגרים והמחסנית הפנימיים בלבד, ללא כל זיכרון חיצוני. שבב המעבד מבצע גם את הפונקציונליות של התזמון, ולא נחוץ רכיב נפרד לתזמון. ב־4004 אין כל תמיכה בפסיקות.
לשם השוואה, בשנת 2017, יוצרו התקני סיליקון מסחריים עם גאומטריה של 10 ננומטר, אלפית מהגאומטריה של ה־4004, 10 מיקרון. משמעות הדבר היא כי ב־2017 ניתן לבנות בערך מיליון טרנזיסטורים בגודל של טרנזיסטור אחד של ה־4004. כששבב הפנטיום הראשון הוצג, הוא היה בנוי מכ־3 מיליון טרנזיסטורים. אפשר לדמיין שבטכנולוגיה של 2017 אפשר לבנות את הפנטיום המקורי בגודל של שלושה מ־2300 הטרנזיסטורים ב־4004.
ראשוניות
עריכהבערך בזמן שאינטל התחילה את הפרויקט החלו פרויקטים נוספים, באינטל ובחברות אחרות, לייצר מעבד על שבב אחד. פרויקט שהחל באינטל, בערך בזמן שפרויקט ה־4004 החל היה למעבד עבור "מסוף חכם", כפי שנקרא אז, עבור חברת CTC. מעבד זה היה מתאים יותר ליישומים כלליים, ואינטל 8008, מעבד 8 ביט, הוא מימוש הפרויקט, בערך שנה אחר כך (אפריל 1972). הפרויקט של CTC נמסר לאינטל ולחברת טקסס אינסטרומנטס בערך באותו הזמן, (קיץ 1970), וחברת טקסס אינסטרומנטס למעשה הכריזה על המעבד שלה ב־1971, לפני שאינטל הכריזה על ה־4004 (אם כי אחרי שאינטל כבר סיפקה מעבדים מייצור סדרתי לביזיקום). בהיסטוריה של טקסס אינסטרומנטס רשום שהחברה המציאה את המיקרו מעבד, ובנתה את המיקרו מעבד הראשון. רוב הכותבים לא מקבלים את גרסת טקסס אינסטרומנטס, משום שלמעשה לא ברור אם יוצר אפילו מעבד אחד כזה, לפני או אחרי ההכרזה. טקסס אינסטרומנטס מעולם לא סיפקה אותו לשום לקוח, חברת טקסס אינסטרומנטס רשמה פטנט על המיקרו מעבד, ובשנים הבאות ניסתה להשתמש בפטנט זה כדי לתבוע בעלות על המצאת המיקרו־מעבד, תביעות שהסתיימו בהסדר מחוץ לבית הדין.
שימוש
עריכהאינטל החלה לספק לביזיקום שבבים במרץ 1971. ביזיקום ייצרה מספר דגמים של מכונות החישוב, ומכרה אותם תחת שמה, וגם דרך הסכמי OEM עם חברות אחרות, בעיקר חברת NCR. לפי ההסכם המקורי, לביזיקום הייתה בלעדיות על משפחת השבבים. המכירות של מכונת החישוב מבוססות 4004 לא עמדו בציפיות, הן בגלל מחיר השבבים, והן משום שמוסטק, החברה השנייה אליה פנתה ביזיקום, סיימה את הפיתוח קצת אחרי ה־4004, והתברר שמימוש מכונת חישוב על שבב יחיד מתאימה יותר ליישום הזה מאשר פתרון מבוסס מעבד, הדורש זיכרון RAM, ROM, ותוכנה. בסתיו 1971 נסע נויס למסע עסקים ביפן, ובין השאר נפגש עם ביזיקום. הוף ופג'ין יעצו לנויס להוזיל את מחיר הרכיבים מעבר למוסכם בחוזה, ולוותר על תשלום הפיתוח עליו התחייבה ביזיקום (לפי הוף, כ־$60,000), תמורת ויתור ביזיקום על סעיף הבלעדיות בחוזה. הושג הסכם שמאפשר לאינטל לשווק את המשפחה ללקוחות אחרים, בתנאי שהלקוח לא מייצר מכונות חישוב.
בנובמבר 1971 הכריזה אינטל על משפחת השבבים, בשם "אינטל MCS-4", והחלה לפתח מערך שיווק למיקרו מעבדים. ב־1972 הציעה אינטל ללקוחות מערכת פיתוח, בשם Intellec, במחיר כמה אלפי דולרים, ומספר לא ידוע (כנראה לא גדול) של מערכות כאלו נמכרו. מאוחר יותר, ב־1974 הופיעה גרסה משופרת של השבב בשם 4040 עם מספר פקודות נוספות בסט הפקודות. ב־1975 החלה חברת National Semiconductor לייצר את גרסה משלה ל־4004. אינטל המשיכה לייצר את משפחת MCS-4 עד 1986, 15 שנים אחרי תחילת הייצור.
יישומים
עריכהממשיכי הדרך
עריכהאחרי שה־4004 סופק ללקוח, פג'ין התבקש לקדם את הפרויקט של ה־8008, והפרויקט אכן הגיע לשלב הסיום שנה מאוחר יותר, ב־1972. הלקוח, CTC, כבר פיתח את המסוף בשימוש בלוגיקה דיסקרטית, ולא היה מעוניין בשבב. אינטל שיווקה את השבב, בהצלחה מוגבלת. אינטל החליטה לפתח מעבד 8 ביט עצמאי, שלא יהיה קשור בהסכם בלעדיות ללקוח מסוים. אחרי סיבוב אצל לקוחות בארצות הברית ובאירופה, החל פרויקט ה־8080, בהנהגת פג'ין, במחצית השנייה של 1972. מסטושי שימה עזב בינתיים את ביזיקום, והחל לעבוד בחברת ריקו, וזמן קצר אחרי תחילת פרויקט ה־8080, הצטרף לפג'ין באינטל, והיה חבר בצוות שפיתח את ה־8080, שבב שעשה היסטוריה, והניע את מהפכת המחשב האישי שהתחוללה בעשרים השנים הבאות וגם אחר כך, בהיותו המעבד של Altair 8800, ורבים מהמחשבים שהגיעו בעקבותיו.
פג'ין עזב את אינטל ב־1974, אחרי גמר פיתוח ה־8080, ופתח את חברת זילוג (Zilog), וזמן קצר אחר כך הצטרף אליו שימה. יחד עם מהנדסים נוספים פיתחו שניהם את השבב Z80 (Zilog Z80), שהיה פיתוח של ה־8080, עם תאימות־לאחור מלאה. ה־Z80 הוא אחד השבבים המוצלחים ומאריכי החיים בתולדות המעבדים - למעשה, שבבים תואמי Z80 עדיין מיוצרים ב־2017, ומשמשים ביישומים שונים.
קישורים חיצוניים
עריכה- ריאיון עם פדריקו פג'ין, שנערך על ידי המוזיאון להיסטוריית המחשוב (CHM)
- פנל עם הוף, מזור, פג'ין, פיני ושימה, מתארים את פיתוח ה־4004, שנערך על ידי המוזיאון להיסטוריית המחשוב (CHM)
- רן לוי, 4004 - המיקרו-מעבד ששינה את העולם, באתר "עושים היסטוריה" (שידור של הפודקאסט וטקסט מלא שלו)
הערות שוליים
עריכה- ^ דף השבב 4001, באתר CPU-Zone
- ^ דף השבב 4002, באתר CPU-Zone
- ^ דף השבב 4003, באתר CPU-Zone
- ^ התיאור מתייחס ל־4004.