• 沒有找到結果。

Random program evaluation

Chapter 4 Experiment Result

4.2 Result Statistics

4.2.3 Random program evaluation

The major objective of the random program evaluation to evaluate the quality of test program generated by our methodology. The processes are generating random test programs, doing fault simulation by our simulator and finally comparing the results. The random program is not totally random. Table 4-3 illustrates the format of the random

instructions in the second step. Second, we would randomly choose the instructions according to the MIPS32 instruction set reference. In this step, we would generate three different programs with successive one vector, two vectors and three vectors. The difference of these three types of program would be discussed afterwards. Third, we should store the result to the data memory for checking the fault effect.

Table 4-3 Random program format

The test programs would be simulated by our simulator with non-robust and robust mode separately. The fault coverage would be recorded per hundred instructions. Finally, we would draw the line graph for observing and analyzing the results.

Figure 4-6 Random program evaluation in robust 1-vector mode

Figure 4-7 Random program evaluation in robust 2-vector mode

Figure 4-8 Random program evaluation in robust 3-vector mode

Figure 4-9 Mean fault coverage of different vectors in robust mode

Figure 4-6, Figure 4-7 and Figure 4-8 are the results of random program fault coverage. Figure 4-9 is the mean fault coverage of the random program with different vectors. The marking line in these figures is the fault coverage of the test program

generated by our methodology. According to the marking line, the fault coverage of our test program could reach 24% with 603 instructions. However, the fault coverage of the random programs could locate in between 10% to 15% with around three times larger than the program size of our test program.

Figure 4-10 Random program evaluation in non-robust 1-vector mode

Figure 4-12 Random program evaluation in non-robust 3-vector mode

Figure 4-13 Mean fault coverage of different vectors in non-robust mode

Figure 4-10, Figure 4-11 and Figure 4-12 are the results of random program fault coverage. Figure 4-13 is the mean fault coverage of the random program with different vectors. The marking line in these figures is the fault coverage of the test program

generated by our methodology. According to the marking line, the fault coverage of our test program could reach 31% with 603 instructions. However, the fault coverage of the random programs could locate in between 15% to 20% with around three times larger than the program size of our test program.

Based on the results of fault coverage of random programs, we could say that our test program is more efficient and effective. The fault coverage of our test program could be two to eight times higher than the fault coverage of random programs in the same instruction length. Besides, the fault coverage threshold of the random test program is around half of our test program.

Compare the results of fault coverage in robust and non-robust mode, they have the similar tendency. The random program with less successive vectors might reach the fault coverage threshold earlier than the program with more successive vectors. The reason of this phenomenon would be discussed afterwards.

Figure 4-14 illustrates the distribution of the random test program with different successive vectors. The yellow row represents the process of operand preparation. The orange row represents the process of test vector execution. The blue row represents the process of result store. As we seen, in the same program length, the program with less successive vectors might execute the test vector and result store more times. That is to say, it might do the path activation and fault effect capture more times. As a result, is could reach the fault coverage threshold earlier than the program with more successive vectors. However, although the program with less successive vectors could reach the fault coverage threshold earlier, it might have the similar threshold than the other programs.

To sum up, the number of successive vectors could only affect the time to reach the fault coverage threshold, it could not have any influence on the threshold.

Chapter 5

Conclusion

In this thesis, a software-based self-test methodology targeting the aging defects is proposed. The methodology includes ATPG-aid test generation, pattern-to-instruction converter, testbench generator and fault simulator. The test patterns would be generated by the ATPG tool, then the pattern-to-instruction converter would convert the patterns into instructions and synthesize the test program. The testbench generator might generate the testbench for doing fault simulation. It provides three types of path activation monitoring: non-robust, robust and robust*. Finally, in order to evaluate the quality of our test program, we adopt the method of random program evaluation. In this process, we compare the results of fault coverage of the random program with multiple successive vectors in robust and non-robust mode.

The future work includes: functionally path classification and automatically constraint extraction. The process of functionally path classification is to remove the nonfunctional paths previously. It could not only avoid over-testing nonfunctional paths but also increase the fault coverage. As to the automatically constraint extraction, since the processors become more and more complex, manually constraint extraction would become more difficult and insufficient. The importance of automatically constraint extraction would not be overemphasized.

REFERENCE

[1] T. H. Li. (2017). A Flexible Hybrid Fault Simulator for Software-Based Self-Test (Unpublished master’s thesis). National Taiwan University, Taipei, Taiwan.

[2] L. T. Wang, Charles E. Stroud, Nur A. Touba, System-on-Chip Test Architectures:

Nanometer Design for Testability. United States: Morgan Kaufmann, 2008, ch.11.

[3] P. C. Maxwell, V. Johansen and I. Chiang, "Functional and Scan Tests: The Effectiveness of I/sub DDQ/ How Many Fault Coverages Do We Need?," Proceedings International Test Conference 1992, Baltimore, MD, 1992, pp.

168-177.

[4] D. Gizopoulos et al., "Systematic Software-Based Self-Test for Pipelined Processors," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 16, no. 11, pp. 1441-1453, Nov. 2008.

[5] A. Krstic, W. C. Lai, K. T. Cheng, L. Chen and S. Dey, "Embedded Software-Based Self-Test for Programmable Core-Based Designs," in IEEE Design & Test of Computers, vol. 19, no. 4, pp. 18-27, Jul/Aug 2002.

[6] L. Chen, S. Dey, P. Sanchez, K. Sekar and Y. Chen, "Embedded Hardware and Software Self-Testing Methodologies for Processor Cores," Proceedings 37th Design Automation Conference, 2000, pp. 625-630.

[7] A. Paschalis, D. Gizopoulos, N. Kranitis, M. Psarakis and Y. Zorian, "Deterministic Software-Based Self-Testing of Embedded Processor Cores," Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001, Munich, 2001, pp.

92-96.

[8] S. Almukhaizim, P. Petrov and A. Orailoglu, "Faults in Processor Control Subsystems: Testing Correctness and Performance Faults in the Data Prefetching

[9] W. C. Lai, A. Krstic and K. T. Cheng, "Test Program Synthesis for Path Delay Faults in Microprocessor Cores," Proceedings International Test Conference 2000 (IEEE Cat. No.00CH37159), Atlantic City, NJ, 2000, pp. 1080-1089.

[10] V. Singh, M. Inoue, K. K. Saluja and H. Fujiwara, "Software-Based Delay Fault Testing of Processor Cores," 2003 Test Symposium, 2003, pp. 68-71.

[11] C. H. P. Wen, L. C. Wang, K. T. Cheng, K. Yang, W. T. Liu and J. J. Chen, "On a Software-Based Self-Test Methodology and Its Application," 23rd IEEE VLSI Test Symposium (VTS'05), 2005, pp. 107-113.

[12] S. Gurumurthy, R. Vemu, J. A. Abraham and D. G. Saab, "Automatic Generation of Instructions to Robustly Test Delay Defects in Processors," 12th IEEE European Test Symposium (ETS'07), Freiburg, 2007, pp. 173-178.

[13] P. Bernardi, M. Grosso, E. Sanchez and M. Sonza Reorda, "On the Automatic Generation of Test Programs for Path-Delay Faults in Microprocessor Cores," 12th IEEE European Test Symposium (ETS'07), Freiburg, 2007, pp. 179-184.

[14] K. Christou, M. K. Michael, P. Bernardi, M. Grosso, E. Sanchez and M. S. Reorda,

"A Novel SBST Generation Technique for Path-Delay Faults in Microprocessors Exploiting Gate- and RT-Level Descriptions," 26th IEEE VLSI Test Symposium (vts 2008), San Diego, CA, 2008, pp. 389-394.

[15] F. Corno, E. Sanchez, M. S. Reorda and G. Squillero, "Automatic Test Program Generation: A Case Study," in IEEE Design & Test of Computers, vol. 21, no. 2, pp.

102-109, Mar-Apr 2004.

[16] D. Sabena, M. S. Reorda and L. Sterpone, "On the Automatic Generation of Optimized Software-Based Self-Test Programs for VLIW Processors," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 22, no. 4, pp. 813-823, April 2014.

[17] Y. Zhang, H. Li and X. Li, "Automatic Test Program Generation Using Executing-Trace-Based Constraint Extraction for Embedded Processors," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 21, no. 7, pp. 1220-1233, July

2013.

[18] J. Arlat et al., "Fault Injection for Dependability Validation: A Methodology and Some Applications," in IEEE Transactions on Software Engineering, vol. 16, no. 2, pp. 166-182, Feb 1990.

[19] U. Gunneflo, J. Karlsson and J. Torin, "Evaluation of Error Detection Schemes Using Fault Injection by Heavy-ion Radiation," 1989 The Nineteenth International Symposium on Fault-Tolerant Computing. Digest of Papers, Chicago, IL, USA,

1989, pp. 340-347.

[20] P. Kenterlis, N. Kranitis, A. Paschalis, D. Gizopoulos and M. Psarakis, "A Low-Cost SEU Fault Emulation Platform for SRAM-Based FPGAs," 12th IEEE International On-Line Testing Symposium (IOLTS'06), Lake Como, 2006, pp. 7-13.

[21] P. Civera, L. Macchiarulo, M. Rebaudengo, M. S. Reorda and M. Violante,

"Exploiting Circuit Emulation for Fast Hardness Evaluation," in IEEE Transactions on Nuclear Science, vol. 48, no. 6, pp. 2210-2216, Dec 2001.

[22] D. T. Stott, B. Floering, D. Burke, Z. Kalbarczpk and R. K. Iyer, "NFTAPE: A Framework for Assessing Dependability in Distributed Systems with Lightweight Fault Injectors," Proceedings IEEE International Computer Performance and Dependability Symposium. IPDS 2000, Chicago, IL, 2000, pp. 91-100.

[23] R. R. Some, W. S. Kim, G. Khanoyan, L. Callum, A. Agrawal and J. J. Beahan, "A Software-Implemented Fault Injection Methodology for Design and Validation of System Fault Tolerance," 2001 International Conference on Dependable Systems and Networks, Goteborg, Sweden, 2001, pp. 501-506.

[24] D. Ferraretto and G. Pravadelli, "Efficient Fault Injection in QEMU," 2015 16th Latin-American Test Symposium (LATS), Puerto Vallarta, 2015, pp. 1-6.

[25] K. K. Goswami, "DEPEND: A Simulation-Based Environment for System Level Dependability Analysis," in IEEE Transactions on Computers, vol. 46, no. 1, pp. 60-74, Jan 1997.

[26] P. Bernardi, M. Grosso, E. Sanchez and M. S. Reorda, "A Deterministic Methodology for Identifying Functionally Untestable Path-Delay Faults in Microprocessor Cores," 2008 Ninth International Workshop on Microprocessor Test and Verification, Austin, TX, 2008, pp. 103-108.

[27] D. Gizopoulos et al., "Systematic Software-Based Self-Test for Pipelined Processors," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 16, no. 11, pp. 1441-1453, Nov. 2008.

[28] A. Riefert, L. Ciganda, M. Sauer, P. Bernardi, M. S. Reorda and B. Becker, "An Effective Approach to Automatic Functional Processor Test Generation for Small-Delay Faults," 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE), Dresden, 2014, pp. 1-6.

[29] A. U. R. Shaheen, F. A. Hussin, N. H. Hamid and N. B. Z. Ali, "Automatic Generation of Test Instructions for Path Delay Faults Based-On Stuck-At Fault in Processor Cores Using Assignment Decision Diagram," 2014 5th International Conference on Intelligent and Advanced Systems (ICIAS), Kuala Lumpur, 2014, pp.

1-5.

[30] N. Hage, R. Gulve, M. Fujita and V. Singh, "On Testing of Superscalar Processors in Functional Mode for Delay Faults," 2017 30th International Conference on VLSI Design and 2017 16th International Conference on Embedded Systems (VLSID), Hyderabad, 2017, pp. 397-402.

[31] G. Ayers, A 32-bit MIPS processor which aims for conformance to the MIPS32 Release 1 ISA. (Old University of Utah XUM archieve), 2014, from https://github.com/grantae/mips32r1_xum

相關文件