This Article 
 Bibliographic References 
 Add to: 
Software-Based Self-Test of Set-Associative Cache Memories
July 2011 (vol. 60 no. 7)
pp. 1030-1044
Stefano Di Carlo, Politecnico di Torino, Torino
Paolo Prinetto, Politecnico di Torino, Torino
Alessandro Savino, Politecnico di Torino, Torino
Embedded microprocessor cache memories suffer from limited observability and controllability creating problems during in-system tests. This paper presents a procedure to transform traditional march tests into software-based self-test programs for set-associative cache memories with LRU replacement. Among all the different cache blocks in a microprocessor, testing instruction caches represents a major challenge due to limitations in two areas: 1) test patterns which must be composed of valid instruction opcodes and 2) test result observability: the results can only be observed through the results of executed instructions. For these reasons, the proposed methodology will concentrate on the implementation of test programs for instruction caches. The main contribution of this work lies in the possibility of applying state-of-the-art memory test algorithms to embedded cache memories without introducing any hardware or performance overheads and guaranteeing the detection of typical faults arising in nanometer CMOS technologies.

[1] R. Stacpoole and T. Jamil, "Cache Memories," IEEE Potentials, vol. 19, no. 2, pp. 24-29, Apr./May 2000.
[2] L.J. Henessy and A.D. Patterson, Computer Architecture, third ed. Morgan Kaufmann Publishers, 2003.
[3] D. Bhandarkar and J. Ding, "Performance Characterization of the Pentium Pro Processor," Proc. Third Int'l Symp. High-Performance Computer Architecture, pp. 288-297, Feb. 1997.
[4] S. Manne, A. Klauser, and D. Grunwald, "Pipeline Gating: Speculation Control for Energy Reduction," Proc. 25th Ann. Int'l Symp. Computer Architecture (ISCA '98), pp. 132-141, June/July 1998.
[5] S. Mukhopadhyay, H. Mahmoodi-Meimand, and K. Roy, "Modeling and Estimation of Failure Probability Due to Parameter Variations in Nano-Scale Srams for Yield Enhancement," Proc. Symp. VLSI Circuits '04, pp. 64-67, June 2004.
[6] S. Hamdioui, Z. Al-Ars, A. van de Goor, and M. Rodgers, "Linked Faults in Random Access Memories: Concept, Fault Models, Test Algorithms, and Industrial Results," IEEE J. Technology Computer Aided Design, vol. 23, no. 5, pp. 737-757, May 2004.
[7] D. Gizopoulos, A. Paschalis, and Y. Zorian, Embedded Processor-Based Self-Test. Springer, 2004.
[8] A. Krstic, W.-C. Lai, K.-T. Cheng, L. Chen, and S. Dey, "Embedded Software-Based Self-Test for Programmable Core-Based Designs," IEEE Design and Test of Computers, vol. 19, no. 4, pp. 18-27, July/Aug. 2002.
[9] J. Sosnowski, "Software Based Self-Testing of Microprocessors," J. System Architecture, vol. 52, pp. 257-271, 2006.
[10] A. Apostolakis, D. Gizopoulos, M. Psarakis, and A. Paschalis, "Software-Based Self-Testing of Symmetric Shared-Memory Multiprocessors," IEEE Trans. Computers, vol. 58, no. 12, pp. 1682-1694, Dec. 2009.
[11] L. Chen, S. Ravi, A. Raghunathan, and S. Dey, "A Scalable Software-Based Self-Test Methodology for Programmable Processors," Proc. Design Automation Conf. (DAC '03), pp. 548-553, June 2003.
[12] N. Kranitis, A. Paschalis, D. Gizopoulos, and G. Xenoulis, "Software-Based Self-Testing of Embedded Processors," IEEE Trans. Computers, vol. 54, no. 4, pp. 461-475, Apr. 2005.
[13] A. Benso, A. Bosio, P. Prinetto, and A. Savino, "An On-Line Software-Based Self-Test Framework for Microprocessor Cores," Proc. Int'l Conf. Design and Test of Integrated Systems in Nanoscale Technology (DTIS '06), pp. 394-399, 2006.
[14] A.J. van de Goor, "Using March Tests to Test srams," IEEE Design and Test of Computers, vol. 10, no. 1, pp. 8-14, Mar. 2004.
[15] A. Gaisler, Leon3 Processor, http:/, 2010.
[16] W. Pei, W.-B. Jone, and Y. Hu, "Fault Modeling and Detection for Drowsy sram Caches," IEEE Trans. Computer-Aided Design of Integrated Circuits and Systems, vol. 26, no. 6, pp. 1084-1100, June 2007.
[17] S. Bhunia, H. Li, and K. Roy, "A High Performance iddq Testable Cache for Scaled cmos Technologies," Proc. 11th Asian Test Symp. (ATS '02), pp. 157-162, 2002.
[18] P.J. Tan, T. Le, K.-H. Ng, P. Mantri, and J. Westfall, "Testing of Ultrasparc t1 Microprocessor and Its Challenges," Proc. IEEE Int'l Test Conf. (ITC '06), pp. 1-10, 2006.
[19] A. Agarwal, B. Paul, H. Mahmoodi, A. Datta, and K. Roy, "A Process-Tolerant Cache Architecture for Improved Yield in Nanoscale Technologies," IEEE Trans. Very Large Scale Integration Systems, vol. 13, no. 1, pp. 27-38, Jan. 2005.
[20] S. Hamdioui, Z. Al-Ars, and A. van de Goor, "Testing Static and Dynamic Faults in Random Access Memories," Proc. 20th IEEE VLSI Test Symp. 2002. (VTS '02), 2002.
[21] R. Raina and R. Molyneaux, "Random Self-Test Method Applications on PowerPC Microprocessor Caches Microprocessor Caches," Proc. Eighth Great Lakes Symp. VLSI, pp. 222-229, Feb. 1998.
[22] T. Verhallen and A. van de Goor, "Functional Testing of Modern Microprocessors," Proc. Third European Conf. Design Automation, pp. 350-354, Mar. 1992.
[23] D. Bhavsar and J. Edmondson, "Test Strategy of the Alpha axp 21164 Microprocessor," Proc. IEEE Int'l Test Conf., 1994.
[24] J. Sosnowski, "In-System Testing of Cache Memories," Proc. Int'l Test Conf., pp. 384-393, Oct. 1995.
[25] J. Sosnowski, "Improving Software Based Self-Testing for Cache Memories," Proc. Second Int'l Design and Test Workshop '07, pp. 49-54, Dec. 2007.
[26] M. Tuna, O. Garcia, and M. Benabdenbi, "Software-Based Self-Test Strategies for Memory Caches of Risc Processor Cores," Proc. IEEE Latin Am. Workshop (LATW '07), 2007.
[27] W. Perez H, J. Medina, D. Ravotto, E. Sanchez, and M. Reorda, "Software-Based Self-Test Strategy for Data Cache Memories Embedded in socs," Proc. 11th IEEE Workshop Design and Diagnostics of Electronic Circuits and Systems (DDECS '08), pp. 1-6, 2008.
[28] W. Perez, J. Velasco, D. Ravotto, E. Sanchez, and M. Reorda, "A Hybrid Approach to the Test of Cache Memory Controllers Embedded in socs," Proc. 14th IEEE Int'l On-Line Testing Symp. (IOLTS '08), pp. 143-148, 2008.
[29] S. Al-Harbi and S. Gupta, "A Methodology for Transforming Memory Tests for In-System Testing of Direct Mapped Cache Tags," Proc. 16th IEEE VLSI Test Symp., pp. 394-400, Apr. 1998.
[30] S. Alpe, S. Di Carlo, P. Prinetto, and A. Savino, "Applying March Tests to k-Way Set-Associative Cache Memories," Proc. 13th European Test Symp. '08, pp. 77-83, May 2008.
[31] B. Jacob, S.W. NG, and D. Wang, Memory Systems: Cache, DREAM, Disk. Morgan Kaufmann Publishers, 2008.
[32] S. Di Carlo and P. Prinetto, "Models in Memory Testing," Models in Hardware Testing, pp. 157-185, Springer, 2010.
[33] A. Benso, A. Bosio, S. Di Carlo, G. Di Natale, and P. Prinetto, "March Test Generation Revealed," IEEE Trans. Computers, vol. 57, no. 12, pp. 1704-1713, Dec. 2008.
[34] A. van de Goor and I. Tlili, "A Systematic Method for Modifying March Tests for Bit-Oriented Memories into Tests for Word-Oriented Memories," IEEE Trans. Computers, vol. 52, no. 10, pp. 1320-1331, Oct. 2003.
[35] A. van de Goor and Y. Zorian, "Effective March Algorithms for Testing Single-Order Addressed Memories," Proc. Fourth European Conf. Design Automation with the European Event in ASIC Design, pp. 499-505, Feb. 1993.
[36] A.J. van de Goor, Testing Semiconductor Memories: Theory and Practice. John Wiley and Sons, Inc., Sept. 1991.
[37] A. van de Goer and G. Gaydadjiev, "March u: A Test for Unlinked Memory Faults," IEE Proc. Circuits, Devices and Systems, vol. 144, no. 3, pp. 155-160, June 1997.
[38] S. Hamdioui, A. van de Goor, and M. Rodgers, "March ss: A Test for All Static Simple Ram Faults," Proc. IEEE Int'l Workshop Memory Technology, Design and Testing (MTDT '02), pp. 95-100, 2002.
[39] M. Graphics, Modelsim—Advanced Simulation and Debugging, http:/, 2010.
[40] A. Benso, S. Di Carlo, G. Di Natale, and P. Prinetto, "Specification and Design of a New Memory Fault Simulator," Proc. 11th Asian Test Symp. 2002 (ATS '02), pp. 92-97, 2002.

Index Terms:
Memory testing, microprocessor testing, cache memories, software-based self-test.
Stefano Di Carlo, Paolo Prinetto, Alessandro Savino, "Software-Based Self-Test of Set-Associative Cache Memories," IEEE Transactions on Computers, vol. 60, no. 7, pp. 1030-1044, July 2011, doi:10.1109/TC.2010.166
Usage of this product signifies your acceptance of the Terms of Use.