University of Cincinnati
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSITY OF CINCINNATI November 20 , 20 02 I, Vikram Arora , hereby submit this as part of the requirements for the degree of: Master of Science in: Computer Engineering It is entitled: “An Efficient Built-In Self-Diagnostic Method for Non-Traditional Faults of Embedded Memory Arrays” Approved by: Dr. Wen-Ben Jone Dr. Ranga Vemuri Dr. Harold Carter An Efficient Built-In Self-Diagnostic Method for Non-Traditional Faults of Embedded Memory Arrays A thesis submitted to the Division of Research and Advanced Studies of the University of Cincinnati in partial fulfillment of the requirements for the degree of Master of Science in the Department of Electrical and Computer Engineering and Computer Science of the College of Engineering November 2002 by Vikram Arora B.E.(E.E.), University of Madras, India, June 2000 Thesis Advisor and Committee Chair: Dr. Wen-Ben Jone To my dearest parents Abstract With improvements in VLSI technology, more and more components are fabricated onto a single chip. The importance of system on chip (SoC) is growing rapidly in this era. It is estimated that the percentage of chip area occupied by embedded memory arrays on a SoC will rise to as high as 94% in the next decade. Even worse, memory arrays are more vulnerable to fabrication defects due to the higher packing density of transistors. If some cells of the embedded memory arrays on a SoC are defective, it is not economical to throw the chip away. The solution to this problem lies in designing an intelligent piece of built-in hardware which tests, diagnoses, and repairs the faulty cells of embedded memory arrays. In this thesis, we propose a built-in self-diagnostic march-based algorithm which iden- tifies memory cells as faulty based on a recently introduced non-traditional fault model. This algorithm is developed based on the DiagRSMarch algorithm which is a diagnosis algorithm for embedded memory arrays for identifying traditional faults in memories. A minimal set of additional operations is added to DiagRSMarch for identifying the non-traditional faults without affecting the diagnostic coverage of the traditional faults. The embedded memory arrays are accessed using the bi-directional serial interfacing architecture which minimizes the routing overhead introduced by the diagnosis hardware. Using the concepts of serial in- terfacing technique, parallel testing and redundant-tolerant operations, the diagnosis process is accomplished efficiently at-speed with minimal hardware overhead. An implementation of the diagnosis algorithm is achieved in the form of a built- in self-diagnosis (BISD) controller with the memory arrays and their associated interfaces. The BISD Controller interacts closely with the built-in self-repair logic via suitable control signals. Ideally, we expect to have a single controller performing built-in self-test, built-in self-diagnosis and built-in self-repair after the SoC chips are fabricated or during power-on for the SoC chips used for a system. This thesis is a step in meeting this goal. Acknowledgements I wish to express my sincere thanks to my advisor, Dr. Wen-Ben Jone, for the guidance and constructive criticism that he provided throughout my work. He was always ready to provide his guidance and help in solving problems, even during weekends. This work would never have taken this form without his encouragement and expertise. Thank you Dr. Jone, for all that you have done for us. I would like to thank the members of my thesis committee, Dr. Ranga Vemuri and Dr. Harold Carter, for spending their invaluable time reviewing this work. Special thanks are also due to my close friends, Siddesh, Sudeep, Manu, Subramanian, Amit, and others, for the wonderful time I have had in their company. I would always cherish those moments. I would like to thank my lab-mates, Swaroop, Xingguo and my friends Siddesh, Sudeep and Vinod for their help and encouragement during this work. I would like to thank the Almighty for all He has done for me, and pray that He always guides me in the right direction. Last, but not the least, I would like to express my gratitude to my parents and my brother who have helped mould me into what I am today. Contents 1 Introduction 1 2 Background 6 2.1 Introduction . 6 2.2 Serial Interfacing Technique and SMarch Algorithm . 8 2.3 Redundant Operations and RSMarch Algorithm . 11 2.4 Serial Fault Masking and Bi-Directional Serial Interface . 16 2.5 Parallel Diagnosis and DiagRSMarch Algorithm . 20 2.6 Fault Coverage Analysis . 28 3 Non-Traditional Fault Model 29 3.1 Traditional Fault Model . 29 3.2 Fault Notation . 30 3.3 Non-Traditional Fault Model . 32 3.4 Inter and Intra word Coupling Faults . 37 3.4.1 Intra-word Incorrect Read Coupling Fault (CFir) . 37 3.4.2 Intra-word Read Destructive Coupling Fault (CFrd) . 38 3.4.3 Intra-word Disturb Coupling Fault (CFds) . 38 i 3.4.4 Intra-word Read CFds . 39 3.4.5 Intra-word Write CFds . 40 3.4.6 Summary of All Faults with Fault Notation . 42 4 Analysis of Intra-word Coupling Faults 46 4.1 Intra-Word Coupling Faults . 46 4.2 Methodology for Analysis of Intra-Word Coupling Faults . 48 4.3 Analysis of Intra-word Incorrect Read Coupling Faults (CFir) . 49 4.4 Analysis of Intra-word Disturb Coupling Faults (CFds) . 60 4.4.1 Write Disturb Coupling Faults (write CFds) . 60 4.4.2 Read Disturb Coupling Faults (read CFds) . 70 5 Modification of DiagRSMarch Algorithm for Non-traditional Faults 84 5.1 Need for Modification of the Algorithm . 84 5.1.1 Single-Cell DRDF and Intra-word Read CFds . 85 5.2 Additional Operations for DiagRSMarch Algorithm . 88 5.2.1 Double-read Operations . 88 5.2.2 Placement of Double-Read Operations in DiagRSMarch Algorithm . 90 5.3 Detection and Diagnosis of DRDF-type Faults . 92 5.4 Choosing Optimized Number of Additional Operations for DiagRSMarch . 96 5.5 Modified DiagRSMarch Algorithm . 102 5.6 Modified DiagRSMarch Algorithm based on Fault Distribution . 103 6 Fault Coverage Analysis of Non-traditional Fault Models 105 ii 6.1 Approach . 106 6.2 Single-cell Read Sensitive Faults . 106 6.2.1 Deceptive Read Destructive Faults . 109 6.3 Inter-word coupling Faults . 112 6.3.1 Inter-word Incorrect Read Coupling Faults . 113 6.3.2 Inter-word Disturb Coupling Faults . 117 6.4 Intra-word Coupling Faults . 119 6.5 Redundant Operations of DiagRSMarch . 125 7 Implementation of the BISD Controller and Memory Interface 130 7.1 Introduction . 130 7.2 DiagRSMarch Algorithm Implementation . 132 7.3 Control Engine Block . 134 7.3.1 Counter Block . 134 7.3.2 Finite State Machine . 139 7.3.3 Test Pattern Generator . 148 7.4 Bi-directional Serial Interface and Memory . 149 7.5 Output Response Analyzer . 153 7.5.1 Comparator Block . 154 7.6 Complete Controller Block . 158 7.7 Testing and Verification . 159 8 Conclusions and Future Work 164 iii List of Figures 2.1 Serial Interfacing Technique . 10 2.2 SMarch Algorithm . 10 2.3 RSMarch Algorithm . 13 2.4 Testing of multiple buffers using Redundant Operations . 14 2.5 Serial Fault Masking for SAF . 16 2.6 Bi-directional Serial Interface Architecture . 19 2.7 Parallel Diagnosis Scheme . 21 2.8 DiagRSMarch Algorithm . 22 4.1 State Diagram of memory word for CFir < 0r0; 0r0=0=1 > (c1 < c2) . 51 4.2 State Diagram of memory word for CFir < 0r0; 0r0=0=1 > (c1 > c2) . 52 4.3 State diagram of memory word for CFir < 0r0; 1r1=1=0 > (c1 < c2) . 53 4.4 State diagram of memory word for CFir < 0r0; 1r1=1=0 > (c1 > c2) . 55 4.5 State diagram of memory word for CFir < 1r1; 0r0=0=1 > (c1 < c2) . 56 4.6 State diagram of memory word for CFir < 1r1; 0r0=0=1 > (c1 > c2) . 57 4.7 State diagram of memory word for CFir < 1r1; 1r1=1=0 > (c1 < c2) . 59 4.8 State diagram of memory word for CFir < 1r1; 1r1=1=0 > (c1 > c2) . 59 4.9 State diagram of memory word for CFds < xw0; yw0=1=− > (c1 < c2) . 62 iv 4.10 State diagram of memory word for CFds < xw0; yw0=1=− > (c1 > c2) . 62 4.11 State diagram of memory word for CFds < xw0; yw1=0=− > (c1 < c2) . 63 4.12 State diagram of memory word for CFds < xw0; yw1=0=− > (c1 > c2) . 65 4.13 State diagram of memory word for CFds < xw1; yw0=1=− > (c1 < c2) . 66 4.14 State diagram of memory word for CFds < xw1; yw0=1=− > (c1 > c2) . 67 4.15 State diagram of memory word for CFds < xw1; yw1=0=− > (c1 < c2) . 68 4.16 State diagram of memory word for CFds < xw1; yw1=0=− > (c1 > c2) . 69 4.17 State diagram of memory word for CFds < 0r0; 0r0=1=0 > (c1 < c2) . 74 4.18 Double read operation analysis for CFds < 0r0; 0r0=1=0 > (c1 < c2) . 75 4.19 State diagram of memory word for CFds < 0r0; 0r0=1=0 > (c1 > c2) . 76 4.20 State diagram of memory word for CFds < 0r0; 1r1=0=1 > (c1 < c2) . 77 4.21 State diagram of memory word for CFds < 0r0; 1r1=0=1 > (c1 > c2) . 78 4.22 State diagram of memory word for CFds < 1r1; 0r0=1=0 > (c1 < c2) . 79 4.23 State diagram of memory word for CFds < 1r1; 0r0=1=0 > (c1 > c2) . 81 4.24 State diagram of memory word for CFds < 1r1; 1r1=0=1 > (c1 < c2) . 82 4.25 State diagram of memory word for CFds < 1r1; 1r1=0=1 > (c1 > c2) .