Fault Table Computation on GPUs

In this paper, we explore the implementation of fault table generation on a Graphics Processing Unit (GPU). A fault table is essential for fault diagnosis and fault detection in VLSI testing and debug. Generating a fault table requires extensive fault simulation, with no fault dropping, and is extremely expensive from a computational standpoint. Fault simulation is inherently parallelizable, and the large number of threads that a GPU can operate on in parallel can be employed to accelerate fault simulation, and thereby accelerate fault table generation. Our approach, called GFTABLE, employs a pattern parallel approach which utilizes both bit-parallelism and thread-level parallelism. Our implementation is a significantly modified version of FSIM, which is pattern parallel fault simulation approach for single core processors. Like FSIM, GFTABLE utilizes critical path tracing and the dominator concept to reduce runtime. Further modifications to FSIM allow us to maximally harness the GPU’s huge memory bandwidth and high computational power. Our approach does not store the circuit (or any part of the circuit) on the GPU. Efficient parallel reduction operations are implemented in our implementation of GFTABLE. We compare our performance to FSIM*, which is FSIM modified to generate a fault table on a single core processor. Our experiments indicate that GFTABLE, implemented on a single NVIDIA Quadro FX 5800 GPU card, can generate a fault table for 0.5 million test patterns on average 15.68× faster when compared with FSIM*. With the NVIDIA Tesla server, our approach would be potentially 89.57× faster.

[1]  Naga K. Govindaraju,et al.  GPGPU: general-purpose computation on graphics hardware , 2006, SC.

[2]  Minesh B. Amin,et al.  Workload Distribution in Fault Simulation , 1997, J. Electron. Test..

[3]  Premachandran R. Menon,et al.  A Logic Simulation Machine , 1982, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[4]  Debashis Bhattacharya,et al.  Pipelined fault simulation on parallel machines using the circuit flow graph , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[5]  John P. Hayes,et al.  Logic simulation on vector processors , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[6]  Daniel G. Saab,et al.  VLSI logic and fault simulation on general-purpose parallel computers , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[7]  Prithviraj Banerjee Parallel algorithms for VLSI computer-aided design , 1994 .

[8]  P. Agrawal,et al.  MARS: A Multiprocessor-Based Programmable Accelerator , 1987, IEEE Design & Test of Computers.

[9]  Srinivas Patil,et al.  Performance trade-offs in a parallel test generation/fault simulation environment , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[10]  John Owens,et al.  GPU architecture overview , 2007, SIGGRAPH Courses.

[11]  Daniel K. Beece,et al.  The IBM engineering verification engine , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[12]  Michael F. P. O'Boyle,et al.  DATE '08 Proceedings of the conference on Design, automation and test in Europe , 2008 .

[13]  T. Tanaka,et al.  A logic simulation engine for LSI verification , 1990 .

[14]  F. Ozguner,et al.  Logic fault simulation on a vector hypercube multiprocessor , 1989, C3P.

[15]  Kenneth R. Bowden,et al.  The Modern Fault Dictionary , 1985, ITC.

[16]  Füsun Özgüner,et al.  Vectorized fault simulation on the Cray X-MP supercomputer , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[17]  Kurt Antreich,et al.  Accelerated Fault Simulation and Fault Grading in Combinational Circuits , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[18]  Irith Pomeranz,et al.  A Same/Different Fault Dictionary: An Extended Pass/Fail Fault Dictionary with Improved Diagnostic Resolution , 2008, 2008 Design, Automation and Test in Europe.

[19]  P. R. Menon,et al.  Critical Path Tracing: An Alternative to Fault Simulation , 1984, IEEE Des. Test.

[20]  Vijay Pitchumani,et al.  Fault simulation on massively parallel SIMD machines algorithms, implementations and results , 1992, J. Electron. Test..

[21]  Minesh B. Amin,et al.  Data parallel fault simulation , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[22]  Janak H. Patel,et al.  A parallel algorithm for fault simulation based on PROOFS , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[23]  Irith Pomeranz,et al.  On achieving zero aliasing for modeled faults , 1992, [1992] Proceedings The European Conference on Design Automation.

[24]  Irith Pomeranz,et al.  On the generation of small dictionaries for fault location , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[25]  Gregory Francis Pfister,et al.  The Yorktown Simulation Engine: Introduction , 1982, DAC 1982.

[26]  Melvin A. Breuer,et al.  Digital systems testing and testable design , 1990 .

[27]  Sunil P. Khatri,et al.  Towards acceleration of fault simulation using Graphics Processing Units , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[28]  Dong Sam Ha,et al.  AN EFFICIENT, FORWARD FAULT SIMULATION ALGORITHM BASED ON THE PARALLEL PATTERN SINGLE FAULT PROPAGAT , 1991, 1991, Proceedings. International Test Conference.

[29]  Se June Hong,et al.  Cause-Effect Analysis for Multiple Fault Detection in Combinational Networks , 1971, IEEE Transactions on Computers.

[30]  Y. Kitamura Exact critical path tracing fault simulation on massively parallel processor AAP2 , 1989, 1989 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.