POST Power On Self Test
POST • POSTהינה בדיקת מערכות עצמית המבוצעת בעת הדלקת המחשב ,בטרם נטענת מערכת ההפעלה. • בדיקה זו נעשית על רכיבי החומרה השונים על מנת לוודא כי המערכת ומרכיביה תקינים ומוכנים לעבודה. • בדיקה זו נעשית בין היתר על המקלדת ,על הכוננים ,ועל רכיבי הזיכרון.
Booting up • כאשר אנו מדליקים את המחשב ,מתחיל תהליך האתחול ( )boot sequenceע"י קריאה לתוכנית ה.BIOS start-up- • .BIOS :Basic Input/Output Services ה BIOS-מכיל קוד firmwareאשר מטרתו העיקרית היא להכין את המחשב כך שקוד softwareיוכל להיטען ולרוץ בהמשך. • הפעולה הראשונה שמבצע ה BIOS-הוא קריאה לתהליך ה.POST-
• אם בתהליך בדיקות ה ,POST-כל רכיבי החומרה נמצאו ואובחנו כתקינים ,יושמע beepקצר, ותהליך ה boot-ימשיך כסדרו. • אם רכיבים מסוימים לא נמצאו או אובחנו כלא תקינים ,ה BIOS-יפרסם הודעת שגיאה מתאימה ע"י הדפסתה על המסך או\ו ע"י סדרת beepים ספציפית המצביעה על סוג הבעיה. • ברוב המוחלט של המקרים ,בעיה שנתגלתה בבדיקות ה POST-תיחשב כבעיה פטאלית ,ותגרום להפסקת תהליך ה.boot-
Original IBM POST error codes 1 short beep
Normal POST - system is OK
2 short beeps
POST error - error code shown on screen
No beep
Power supply or system board problem
Continuous beep
Power supply, system board, or keyboard problem Power supply, system board problem or keyboard System board problem
Repeating short beeps 1 long, 1 short beep 1 long, 2 short beeps 1 long, 3 short beeps 3 long beeps
Display adapter problem )MDA, CGA( Enhanced Graphics adapter )EGA( 3270 keyboard card
AMI BIOS beep codes 1 short
DRAM refresh failure
2 short
Parity circuit failure
3 short
Base 64K RAM failure
4 short
System timer failure
5 short
Process failure
6 short
Keyboard controller Gate A20 error
7 short
Virtual mode exception error
8 short
Display memory Read/Write test failure
9 short
ROM BIOS checksum failure
10 short
CMOS shutdown Read/Write error
11 short
Cache Memory error
1 long, 3 short 1 long, 8 short
Conventional/Extended memory failure Display/Retrace test failed
Common Tests in a POST sequence • • • • • • •
CPU and Register Test. Interrupt and Exception Test. EEPROM Checksum Test. RAM March Test. DMA Controller Test. Device Tests. Loop Back Test.
CPU and Register Test • • •
•
אחת מן הבדיקות הראשונות של ה.POST- בדיקת הפעולות הפנימיות של ה.CPU- בדיקה זו מבוצעת ע"י ביצוע פעולות מעבד שונות ,והשוואת התוצאה של כל פעולה לתוצאה הצפויה אשר ידועה מראש. למשל – הכנסת ערך מסוים לרגיסטר ,ביצוע שני הזזות שמאלה ,ובדיקת הערך שהתקבל.
• בנוסף ,כל הרגיסטרים של המעבד עוברים בדיקה.
Interrupt and Exception Test • בדיקה המתבצעת ע"י יצירת תנאים עבור interruptו ,exception-ואז המתנה עד להגעת ה interrupt-הצפוי. • למשל: – חלוקה באפס ווידוא כי המתודה האחראית לטיפול ב -exceptionזה נקראה. – אפשור interruptה ,timer-הפעלת ,timer ווידוא כי כאשר ה -timerפקע ,הinterrupt-- handlerהמתאים החל לפעול.
EEPROM Checksum Test • כאשר צורבים\מתכנתים רכיבי ,PROMמשאירים את שני הבייטים האחרונים לשמירת ה- .checksum • בבדיקה זו ,מחושב ה checksum-של הרכיב (ע"י ביצוע bit xoring-16של מידע הרכיב, ללא שני הבייטים האחרונים) ,והתוצאה מושווית עם הערך המצוי בשני הבייטים האחרונים. • בבדיקות מסוג זה ניתן לבדוק את אמינות קוד ה- BIOSעצמו (אשר בין היתר מבצע את ה.)POST-
RAM March Test • בדיקת integrityשל כתיבה וקריאה מהזיכרון. • זוהי הבדיקה הפשוטה ביותר המסוגלת למצוא את רוב התקלות הפונקציונאליות ,ולכן בדיקה זו עדיפה על בדיקות אחרות בביצוע ה.POST- • אלגוריתמים אחריםzero-one, check board -)O)n : O)nlog2– )n • בדיקה מלאה למציאת כל ה behavioral faults-לוקחת ( O)3n2nפעולות.
An example of March Test {↑)w0(; ↑)r0,w1(; ↓)r1,w0,r0(} • For i=0 to n-1 – Write 0 in cell Ci
• For i=0 to n-1 – Read cell Ci and check its content )0 expected( – Write 0 in cell Ci
• For i=n-1 to 0 – Read cell Ci and check its content )1 expected( – Write 0 in cell Ci – Read cell Ci and check its content )0
An example of March Test }({↑)w0(; ↑)r0,w1(; ↓)r1,w0,r0 • • • •
זמן ריצה – )O)6nפעולות. כל ה SAFs-מתגלים. כל ה AFs-מתגלים. כל ה TFs-מתגלים.
March test summary Name
Ref.
algorithm
MATS
[NAI79]
{ )w0(; )r0,w1(;)r1(}
MATS+
[ABA83]
{)w0(;⇑)r0,w1(; ⇓)r1,w0(}
MATS++
[VAN91]
{)w0(;⇑)r0,w1(;⇓)r1,w0,r0(}
March X
[VAN91]
{)w0(;⇑)r0,w1(;⇓)r1,w0(;)r0(}
March C-
[MAR82]
{)w0(;⇑)r0,w1(;⇑)r1,w0(;⇓)r0,w1(;⇓)r1,w0(;)r0(}
March A
[SUK81]
{)w0(;⇑)r0,w1,w0,w1(;⇑)r1,w0,w1(;⇓)r1,w0,w1,w0(;⇓)r0,w1,w0(}
March Y
[VAN91]
{)w0(;⇑)r0,w1,r1(;⇓)r1,w0,r0(;)r0(}
March B
[SUK81]
{)w0(;⇑)r0,w1,r1,w0,r0,w1(;⇑)r1,w0,w1(;⇓)r1,w0,w1,w0(; ⇓)r0,w1,w0(}
March GS
[VAN93]
{)w0(;⇑)r0,w1,r1,w0,w1(;⇑)r1,w0,r0,w1(;⇓)r1,w0,w1,w0(; ⇓)r0,w1,r1,w0(;Del;)r0,w1,r1(;Del;)r1,w0,r0(}
March M
[MIK96]
{)w0(;⇑)r0,w1,r1,w0(;)r0(;⇑)r0,w1(;)r1(;⇑)r1,w0,r0,w1,(;)r1(;⇓)r1,w0(}
March LR
[VAN96]
{)w0(;⇓)r0,w1(;⇑)r1,w0,r0,w1(;⇑)r1,w0(;⇑)r0,w1,r1,w0,(;⇑)r0(}
March U
[VAN97]
{)w0(;⇑)r0,w1,w0,w1,r1(;⇑)r1,w0,w1,w0,r0(;⇓)r0,w1,w0,w1,r1(;⇓ )r1,w0,w1,w0,r0; ⇓ )r0(}
March LA
[VAN99]
{)w0(;⇑)r0,w1,r1,w0(;⇑)r0,w1(; ⇓ )r1,w0,r0,w1(; ⇓ )r1,w0(}
March SR
[VAN00]
{⇓ )w0(;⇑)r0,w1,r1,w0(;⇑)r0,r0(; (;⇑)w1(,⇓ )r1,w0,r0,w1(; ⇓ )r1,r1(}
March SS
[HAM02]
{)w0(;⇑)r0,r0,w0,r0,w1(;⇑)r1,r1,w1,r1,w0(;⇓)r0,r0,w0,r0,w1(;⇓ )r1,r1,w1,r1,w0; )r0(}
March test Fault Coverage (example) Fault Coverage
Algorith m MATS MATS+ MATS+ + March X March C-
S A F Al l Al l Al l Al l Al l
AF
TF
CFin
C Fid
CFdy n
SCF
Linked faults
Operation count
Some
4.n
All
5.n
All
All
All
All
All
All
All
All
6.n 6.n
All
All
All
10.n
March A
Al l
All
All
All
All linked CFids, some CFins linked with CFids
15.n
March Y
Al l
All
All
All
All TFs linked with CFins
8.n
All
All linked CFids, all TFs linked with CFids or CFins, some CFins linked with CFids
17.n
March B
Al l
All
All
DMA Controller Test • ה )DMA )Direct Memory Access-נחוץ לביצוע קריאה וכתיבה מהזיכרון או מרכיבים היקפיים שונים ללא שימוש ב.CPU- • בבדיקה זו מבצעים מספר פעולות – DMA העברות מידע בין רכיבים היקפיים שונים, ובדיקה שהמידע עבר באופן תקין.
Device Tests • התקנים היקפיים שונים כגון המקלדת והכוננים, נבדקים גם כן במהלך הבדיקה העצמית. • לכל התקן ישנה בדיקה ספציפית המתאימה לו בלבד. • יצרנים רבים\ vendorsמספקים להתקן שלהם מצב בדיקה כך שניתן יהיה לגרום להתקן לבצע בדיקה עצמית בסיסית ולקבל משוב על תקינות ההתקן בסוף הבדיקה.
Loop Back Test • בבדיקה זו מחברים את המוצא של ההתקן הנבדק לכניסה של התקו זה ,שולחים החוצה מידע כלשהו ,ומצפים לקבל את המידע הנשלח בכניסה שלו.