scw@cepu.UUCP (10/24/84)
This is extracted from a notice dated 8-Aug-1984, from the DEC Microcomponents Group. DEC has discovered a problem with ~9% of the data chips on the DCJ11-AC/KDJ11-AA boards. The problem only affects chips with date codes prior to and including 8419 (1984, 19th week). If you don't have an 11/73 just drop the rest of this (unless you're interested). The problem is a sensitivity to specific integer data values in additon or subtraction simultaneously with cache miss or dma transfer. A similar problem occurs with Double Floating point operations, but only with DMA activity. The problem is most pronounced under worst case voltage (high) and temperature (high) conditions. If you have a doubtful date code (<= 8419) then you should run the tests at the end of this article under the worst case conditions. "... A ''hot line' has been established to answer any questions that may arise and to explain the return policy for affected devices. The hot line number is (617)-497-7765. ..." To identify your date code use the following diagram (Very rough aproximation). top of board (component side up) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ || || || || | || || || || | d4 d3 d2 d1 | | 60 31 | ---------------------------- | | ------ ------ | | | |ctrl| DCJ11-AC | |<-|--- data chip | |chip| |84xx|<-|--------Date code | ------ ------ | | ---------------------------- | 1 30 | === w9 | w8 === | === w7 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --- -| ----| | | | | | | | | ---------------- ---------------------- -----------------------------------cut here------------------------------------- Program 1 tests J11 integer data sensitivity. put in with ODT, starts at 1000 a halt at 1046 means that you have the problem. address value code 000004 .=4 000004 000006 .WORD 6 000006 000000 .WORD 0 000010 000012 .WORD 12 000012 000000 .WORD 0 000244 .=244 000244 000246 .WORD 246 ;FPP TRAP 000246 000000 .WORD 0 001000 .=1000 001000 BEGIN:: 001000 012706 MOV #1000,SP 001000 001004 106427 MTPS #340 ;INTERUPTS OFF 000340 001010 012737 MOV #415,@#177746 ;INHIBIT CACHE 000415 177746 001016 START: 001016 012700 MOV #-1,R0 ;SET UP R0 177777 001022 012701 MOV #33677,R1 ;FIRST OPERAND 033677 001026 012704 MOV #2000,R4 ;SECOND OPERAND 002000 001032 101$: 001032 010402 MOV R4,R2 ;INITALIZE 001034 060000 ADD R0,R0 ;FIRST ADD (NEVER FAILS) 001036 060102 ADD R1,R2 ;THIS MIGHT FAIL 001040 020227 CMP R2,#35677 ;DID IT? 035677 001044 001401 BEQ .+4 ;BIF OK 001046 000000 HALT ;USUALL FALURE R2 = 75677 001050 005200 INC R0 ;MAKE R0 EQUAL TO -1 AGAIN 001052 112737 MOVB #120,@#XBUF ;WRITE ASCII 'P' TO CONSOLE 000120 177566 001060 000764 BR 101$ ;AND AGAIN 001000 .END BEGIN ---------------------------test 2-------------------------------------------- for testing with rx02 (both integer and Fpp tests). Uses fill buf (needs no media in drive). load with ODT, starts at 1000. ; ; THERE ARE 3 HALTS ; 1122 J11 FAILURE (CALL DEC) ; 1166 J11 FAILURE (CALL DEC) ; 1212 RL FAILURE, TRY A DIFFERENT PACK ; address value code 000004 . = 4 000004 000006 .WORD 6 000006 000000 .WORD 0 000010 000012 .WORD 12 000012 000000 .WORD 0 000244 . = 244 000244 000246 .WORD 246 ;FPP TRAP 000246 000000 .WORD 0 001000 . = 1000 001000 BEGIN:: 001000 012706 MOV #1000,SP ;SET UP STACK 001000 001004 000237 SPL 7 ;INTERUPTS OFF 001006 000005 RESET 001010 012737 MOV #400,@#177746 ;ENABLE CACHE 000400 177746 001016 START: 001016 012703 MOV #RECANS,R3 ;ERROR BUFFER 002060 001022 012702 MOV #RESLT1,R2 ;UPPER WORD RESULT 002020 001026 012704 MOV #DATS1,R4 ;UPPER WORD DATA 002000 001032 004737 JSR PC,@#FLTADD ;DO FPP TEST (WORST CASE) 001070 001036 012704 MOV #DATS2,R4 ;UPPER WORD DATA 002030 001042 012702 MOV #RESLT2,R2 ;UPPER WORD RESULT 002050 001046 004737 JSR PC,@#FLTADD ;THE OTHER CASE 001070 001052 004737 JSR PC,@#LOWER ;INTEGER TEST 001126 001056 112737 MOVB #'P,@#XBUF ;PRINT END OF PASS MARKER 000120 177566 001064 000167 JMP START ;AND DO IT AGAIN 177726 001070 FLTADD: 001070 012705 MOV #500,R5 ;LOOPING COUNT 000500 001074 170127 LDFPS #7700 ;SET TO DOUBLE PRECISION 007700 001100 004737 JSR PC,@#RXSERV ;STARTUP DMA 001174 001104 101$: 001104 010401 MOV R4,R1 ;POINT TO TEST DATA 001106 172421 LDD (R1)+,AC0 ;FIRST OPERAND 001110 172021 ADDD (R1)+,AC0 ;TRY ERROR CAUSING OPERATION 001112 173412 CMPD (R2),AC0 ;TEST IT 001114 001402 BEQ 102$ 001116 174013 STD AC0,(R3) ;ERROR 001120 000000 HALT ;2060-2066 HAS BAD 001122 102$: 001122 077510 SOB R5,101$ ;LOOP 001124 000207 RTS PC ;AND GO BACK 001126 LOWER: 001126 012705 MOV #500,R5 ;LOOP COUNT 000500 001132 014100 MOV -(R1),R0 ;LOAD -1 TO R0 001134 012701 MOV #33677,R1 ;FIRST OPERAND 033677 001140 012704 MOV #2000,R4 ;SECOND OPERAND 002000 001144 004737 JSR PC,@#RXSERV 001174 001150 150$: 001150 010402 MOV R4,R2 ;INITALIZE 001152 060000 ADD R0,R0 ;FIRST ADD (NEVER FAILS) 001154 060102 ADD R1,R2 ;THIS MIGHT FAIL 001156 020227 CMP R2,#35677 ;DID IT? 035677 001162 001401 BEQ 152$ ;BIF OK 001164 000000 HALT ;USUALL FALURE R2 = 75677 001166 152$: 001166 005200 INC R0 ;MAKE R0 EQUAL TO -1 AGAIN 001170 077511 SOB R5,150$ ;AND AGAIN 001172 000207 RTS PC ;BYE ;********************************************************* ; LOAD 177(8) WORDS (DMA) FROM RXDATA ;********************************************************* 001174 RXSERV: 001174 105737 TSTB @#RXCSR ;CHECK FOR ERRORS 177170 001200 100004 BPL 5$ ;BIF OK 001202 013737 MOV @#RXDB,@#500 ;SAVE AT 500 177172 000500 001210 000000 HALT ;SORRY, TRY ANOTHER PACK 001212 032737 5$: BIT #40,@#RXCSR ;CONTROLER READY? 000040 177170 001220 001774 BEQ 5$ 001222 012737 MOV #401,@#RXCSR ;FILL BUFFER,(INTR OFF) 000401 177170 001230 105737 10$: TSTB @#RXCSR ;TR READY? 177170 001234 100375 BPL 10$ ;WAIT FOR IT 001236 012737 MOV #177,@#RXDB ;LOAD WC 000177 177172 001244 105737 20$: TSTB @#RXCSR ;TR READY? 177170 001250 100375 BPL 20$ ;WAIT FOR IT 001252 012737 MOV #RXDATA,@#RXDB ;SET XFER ADDRESS 004000 177172 001260 000207 RTS PC ;AND GOBACK 002000 .=2000 002000 DATS1: 002000 040267 .WORD 40267,-1,-1,-1 ;UPPER WORD 002002 177777 002004 177777 002006 177777 002010 040204 .WORD 40204,0,-1,-1 002012 000000 002014 177777 002016 177777 002020 RESLT1: ;EXPECTED RESULT 002020 040436 .WORD 40436,0,77777,-1 002022 000000 002024 077777 002026 177777 002030 DATS2: ;LOWER WORD 002030 040377 .WORD 40377,173777,-1,-1 002032 173777 002034 177777 002036 177777 002040 040200 .WORD 40200,2000,-1,-1 002042 002000 002044 177777 002046 177777 002050 RESLT2: ;EXPECTED RESULT 2 002050 040477 .WORD 40477,177000,77777,-1 002052 177000 002054 077777 002056 177777 002060 . = 2060 002060 RECANS: 002060 .BLKW 4 ;ERROR VALUE HERE 004000 . = 4000 004000 RXDATA: 004000 .BLKW 5000. ;DMA SPACE 001000 .END BEGIN ---------------------------test 3----------------------------------------- Same as test 2 but uses RL02/1 (needs a pack) to read from. load with ODT, starts at 1000. ; DON'T FORGET TO WRITE PROTECT THE PACK ; THERE ARE 3 HALTS ; 1136 J11 FAILURE (CALL DEC) ; 1202 J11 FAILURE (CALL DEC) ; 1220 RL FAILURE, TRY A DIFFERENT PACK ; address value code 000004 . = 4 000004 000006 .WORD 6 000006 000000 .WORD 0 000010 000012 .WORD 12 000012 000000 .WORD 0 000244 . = 244 000244 000246 .WORD 246 ;FPP TRAP 000246 000000 .WORD 0 001000 . = 1000 001000 BEGIN:: 001000 012706 MOV #1000,SP ;SET UP STACK 001000 001004 000237 SPL 7 ;INTERUPTS OFF 001006 000005 RESET 001010 012737 MOV #13,@#RLDA ;RESET RL 000013 174404 001016 012737 MOV #4,@#RLCSR ;DO IT 000004 174400 001024 012737 MOV #400,@#177746 ;ENABLE CACHE 000400 177746 001032 START: 001032 012703 MOV #RECANS,R3 ;ERROR BUFFER 002060 001036 012702 MOV #RESLT1,R2 ;UPPER WORD RESULT 002020 001042 012704 MOV #DATS1,R4 ;UPPER WORD DATA 002000 001046 004737 JSR PC,@#FLTADD ;DO FPP TEST (WORST CASE) 001104 001052 012704 MOV #DATS2,R4 ;UPPER WORD DATA 002030 001056 012702 MOV #RESLT2,R2 ;UPPER WORD RESULT 002050 001062 004737 JSR PC,@#FLTADD ;THE OTHER CASE 001104 001066 004737 JSR PC,@#LOWER ;INTEGER TEST 001142 001072 112737 MOVB #'P,@#XBUF ;PRINT END OF PASS MARKER 000120 177566 001100 000167 JMP START ;AND DO IT AGAIN 177726 001104 FLTADD: 001104 012705 MOV #500,R5 ;LOOPING COUNT 000500 001110 170127 LDFPS #7700 ;SET TO DOUBLE PRECISION 007700 001114 004737 JSR PC,@#RLSTRT ;STARTUP DMA 001210 001120 101$: 001120 010401 MOV R4,R1 ;POINT TO TEST DATA 001122 172421 LDD (R1)+,AC0 ;FIRST OPERAND 001124 172021 ADDD (R1)+,AC0 ;TRY ERROR CAUSING OPERATION 001126 173412 CMPD (R2),AC0 ;TEST IT 001130 001402 BEQ 102$ 001132 174013 STD AC0,(R3) ;ERROR 001134 000000 HALT ;2060-2066 HAS BAD 001136 102$: 001136 077510 SOB R5,101$ ;LOOP 001140 000207 RTS PC ;AND GO BACK 001142 LOWER: 001142 012705 MOV #500,R5 ;LOOP COUNT 000500 001146 014100 MOV -(R1),R0 ;LOAD -1 TO R0 001150 012701 MOV #33677,R1 ;FIRST OPERAND 033677 001154 012704 MOV #2000,R4 ;SECOND OPERAND 002000 001160 004737 JSR PC,@#RLSTRT 001210 001164 150$: 001164 010402 MOV R4,R2 ;INITALIZE 001166 060000 ADD R0,R0 ;FIRST ADD (NEVER FAILS) 001170 060102 ADD R1,R2 ;THIS MIGHT FAIL 001172 020227 CMP R2,#35677 ;DID IT? 035677 001176 001401 BEQ 152$ ;BIF OK 001200 000000 HALT ;USUALL FALURE R2 = 75677 001202 152$: 001202 005200 INC R0 ;MAKE R0 EQUAL TO -1 AGAIN 001204 077511 SOB R5,150$ ;AND AGAIN 001206 000207 RTS PC ;BYE ;********************************************************* ; READ 5000(10) WORDS INTO RLDATA ;********************************************************* 001210 RLSTRT: 001210 005737 TST @#RLCSR ;CHECK FOR ERRORS 174400 001214 100001 BPL 10$ ;BIF OK 001216 000000 HALT ;SORRY, TRY ANOTHER PACK 001220 012737 10$: MOV #13,@#RLDA 000013 174404 001226 012737 MOV #4,@#RLCSR ;RESET IT 000004 174400 001234 132737 11$: BITB #1,@#RLCSR ;READY? 000001 174400 001242 001774 BEQ 11$ ;WAIT FOR IT 001244 105737 12$: TSTB @#RLCSR 174400 001250 100375 BPL 12$ ;DONE SET? 001252 012737 MOV #RLDATA,@#RLBA ;SET XFER ADDRESS 004000 174402 001260 005037 CLR @#RLDA ;SET FOR ZERO 174404 001264 012737 MOV #-5000.,@#RLWC ;5000 WORDS 166170 174406 001272 012737 MOV #16,@#RLCSR ;READ IT 000016 174400 001300 000207 RTS PC ;AND GOBACK 002000 . = 2000 002000 DATS1: 002000 040267 .WORD 40267,-1,-1,-1 ;UPPER WORD 002002 177777 002004 177777 002006 177777 002010 040204 .WORD 40204,0,-1,-1 002012 000000 002014 177777 002016 177777 002020 RESLT1: ;EXPECTED RESULT 002020 040436 .WORD 40436,0,77777,-1 002022 000000 002024 077777 002026 177777 002030 DATS2: ;LOWER WORD 002030 040377 .WORD 40377,173777,-1,-1 002032 173777 002034 177777 002036 177777 002040 040200 .WORD 40200,2000,-1,-1 002042 002000 002044 177777 002046 177777 002050 RESLT2: ;EXPECTED RESULT 2 002050 040477 .WORD 40477,177000,77777,-1 002052 177000 002054 077777 002056 177777 002060 . = 2060 002060 RECANS: 002060 .BLKW 4 ;ERROR VALUE HERE 004000 . = 4000 004000 RLDATA: 004000 .BLKW 5000. ;DMA SPACE 001000 .END BEGIN -- Stephen C. Woods (VA Wadsworth Med Ctr./UCLA Dept. of Neurology) uucp: { {ihnp4, uiucdcs}!bradley, hao, trwrb, sdcrdcf}!cepu!scw ARPA: cepu!scw@ucla-cs location: N 34 3' 9.1" W 118 27' 4.3"
chas@idis.UUCP (11/16/84)
Does anyone know of a phone number at DEC I could call if I have a defective 11/73 (DDJ11-AC/KDJ11-AA board). I tried the phone number given in net.sources I.D. cepu.396, but the number is disconnected. I also talked to people at DEC but nobody even heard of the defect! This doesn't surprise me.