Проверка иерархии кеш-памяти в современных системах на кристалле из-за большого пространства состояний требует огромного количества сложных тестов. Это становится основной проблемой для функциональной верификации при проектировании систем на кристалле. В работе для охвата всего пространства состояний предложены графовая модель иерархии кеш-памяти, а также методика генерации формирования тестовых последовательностей на основе этой модели, вершины которой представляют собой множество состояний (теги, значения и т.д.) каждого уровня иерархии, а ребра - множество переходов между состояниями (инструкции для чтения, записи). Разработанная графовая модель описывает все состояния иерархии кеш-памяти. Каждое ребро в графе является отдельной проверочной последовательностью. В случае возникновения недетерминированных ситуаций, например при выборе канала (порта) для многоканальной кеш-памяти, не удастся разрешить их на уровне графовой модели, поскольку выбор канала зависит от многих факторов, включая доступ к памяти со стороны других устройств, которые не рассматриваются в рамках модели. Поэтому предложено создать для каждого из вариантов поведения отдельный экземпляр подграфа в графовой модели, т.е. отдельный подграф для каждого канала. При проверке иерархии многопортовой кеш-памяти разрабатываемого ядра с новой векторной архитектурой VLIW DSP с помощью описанной методики выявлено несколько архитектурных и функциональных ошибок. В дальнейшем эта методика может применяться для тестирования других процессорных ядер и их блоков.
1. Ajay M. Joshi, Lieven Eeckhout, Lizy K. John, Ciji IsenCiji Isen. Automated microprocessor stressmark generation // Conference: High Performance Computer Architecture, 2008. IEEE 14th International Symposium. 2008. – Р. 229–239.
2. Russinoff D.M. Formal verification of floating-point RTL at AMD using the ACL2. Springer International Publishing, Switzerland, 2019. 343 p.
3. Garashchenko A., Nikolaev A., Putrya F., Sardaryan S. System of combined specialized test generators for a new generation of VLIW DSP processors with Elcore50 architecture // Problems of Developing Promising Micro- and Nanoelectronic Systems. 2018. No.2. P. 9–15.
4. An approach to automatic test generation for verification of microprocessor cores / L. Gagarina,
A. Garashchenko, A. Shiryaev et al. // Young Researchers in Electrical and Electronic Engineering. 2018.
P. 1490–1491.
5. Kim Y., John L.K. Automated di/dt stressmark generation for microprocessor power delivery networks // IEEE ACM International Symposium on Low Power Electronics and Design. Fukuoka. 2011. P. 253–258.
DOI: 10.1109/ISLPED.2011.5993645
6. Alexandre Otto Strube, Dolores Rexachs, Emilio Luque. Software probes: a method for quickly characterizing applications performance on heterogeneous environments // Parallel Processing Workshops 2009. International Conference on. 2009. P. 262–269.
7. Principles of verifiable RTL design: a functional coding style supporting verification processes in Verilog Hardcover. Springer, 2001. 101 p.
8. Means of functional verification of microprocessors / A. Kamkin, A. Kotsynyak, S. Smolov et al. // Proc. of the Institute for System Programming of the Russian Academy of Sciences. 2014. Vol. 26. No. 1. P. 149–206.
9. Putrya F. The use of random program generators and random background effects in the functional verification of multicore systems on a chip // Computer-Aided Design of Discrete Systems. 2010. P. 234–241.
10. Shamsul Alam S. Performance analysis of LT codec architecture using different processor templates // International Journal of Information Technology and Computer Science. 2019. No. 8. P. 41–48.
11. Kamath A. Automatic verification of microprocessor designs using random simulation // Computer Science. 2012. P. 1–5.
12. Lagoon V. Constraint-Based Test Generation // 13th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (July 20–22, 2011, Odense, Denmark). 2011. P 1–2.
13. Litterick M., Harnisch M. Advanced UVM register modeling // DVCon 2014. San Jose, CA. P. 1–12.