ProcessorCI: Integração Contínua para processadores RISC-V em FPGAs
Resumo
Este artigo apresenta uma infraestrutura automatizada para a verificação de processadores RISC-V, utilizando técnicas de integração contínua combinadas com FPGAs de múltiplos fornecedores, como Altera/Intel, Xilinx/AMD, Gowin e Lattice. Foi projetado um ambiente robusto e escalável que facilite a detecção precoce de falhas em diversas implementações de processadores RISC-V, garantindo a conformidade com as especificações da ISA. Resultados preliminares demonstram a eficácia da abordagem, destacando a capacidade da metodologia em identificar rapidamente erros e coletar dados essenciais para a seleção e verificação de processadores.Referências
Armstrong, A., Bauereiss, T., Campbell, B., Reid, A., Gray, K. E., Norton, R. M., Mundkur, P., Wassell, M., French, J., Pulte, C., Flur, S., Stark, I., Krishnaswami, N., and Sewell, P. (2019). ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPS. Proc. ACM Program. Lang., 3(POPL).
Bertran, R., Buyuktosunoglu, A., Gupta, M. S., Gonzalez, M., and Bose, P. (2012). Systematic Energy Characterization of CMP/SMT Processor Systems via Automated Micro-Benchmarks. In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, pages 199–211.
Bruns, N., Herdt, V., and Drechsler, R. (2023). Processor Verification using Symbolic Execution: A RISC-V Case-Study. In 2023 Design, Automation Test in Europe Conference Exhibition (DATE), pages 1–6.
Cui, E., Li, T., and Wei, Q. (2023). RISC-V Instruction Set Architecture Extensions: A Survey. IEEE Access, 11:24696–24711.
Hennessy, J. L. and Patterson, D. A. (2019). A new golden age for computer architecture. Commun. ACM, 62(2):48–60.
Herdt, V., Große, D., Jentzsch, E., and Drechsler, R. (2020). Efficient Cross-Level Testing for Processor Verification: A RISC-V Case-Study. In 2020 Forum for Specification and Design Languages (FDL), pages 1–7.
Joannou, A., Rugg, P., Woodruff, J., Fuchs, F. A., van der Maas, M., Naylor, M., Roe, M., Watson, R. N. M., Neumann, P. G., and Moore, S. W. (2024). Randomized Testing of RISC-V CPUs Using Direct Instruction Injection. IEEE Design Test, 41(1):40–49.
Jones, R. B., Dill, D. L., and Burch, J. R. (1995). Efficient validity checking for processor verification. In Proceedings of the 1995 IEEE/ACM International Conference on Computer-Aided Design, ICCAD ’95, page 2–6, USA. IEEE Computer Society.
Orenes-Vera, M., Martonosi, M., and Wentzlaff, D. (2023). From RTL to SVA: LLM-assisted generation of Formal Verification Testbenches.
Rülling, W. (2003). Circuit Verification, pages 210–218. Springer US, Boston, MA.
Sawada, J. (2000). Processor Verification with Precise Exceptions and Speculative Execution.
Schubert, K.-D., Abrar, S. S., Averill, D., Bauman, E., Brown, A. C., Cash, R., Chatterjee, D., Gullickson, J., Nelson, M., Pasnik, K. A., and Sugavanam, K. (2018). Addressing verification challenges of heterogeneous systems based on IBM POWER9. IBM Journal of Research and Development, 62(4/5):11:1–11:12.
Thomas, F., Hetterich, L., Zhang, R., Weber, D., Gerlach, L., and Schwarz, M. (2024). RISCVuzz: Discovering Architectural CPU Vulnerabilities via Differential Hardware Fuzzing. [link].
Waterman, A., Lee, Y., Patterson, D. A., and Asanović, K. (2014). The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.0. Technical Report UCB/EECS-2014-54, EECS Department, University of California, Berkeley.
Bertran, R., Buyuktosunoglu, A., Gupta, M. S., Gonzalez, M., and Bose, P. (2012). Systematic Energy Characterization of CMP/SMT Processor Systems via Automated Micro-Benchmarks. In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, pages 199–211.
Bruns, N., Herdt, V., and Drechsler, R. (2023). Processor Verification using Symbolic Execution: A RISC-V Case-Study. In 2023 Design, Automation Test in Europe Conference Exhibition (DATE), pages 1–6.
Cui, E., Li, T., and Wei, Q. (2023). RISC-V Instruction Set Architecture Extensions: A Survey. IEEE Access, 11:24696–24711.
Hennessy, J. L. and Patterson, D. A. (2019). A new golden age for computer architecture. Commun. ACM, 62(2):48–60.
Herdt, V., Große, D., Jentzsch, E., and Drechsler, R. (2020). Efficient Cross-Level Testing for Processor Verification: A RISC-V Case-Study. In 2020 Forum for Specification and Design Languages (FDL), pages 1–7.
Joannou, A., Rugg, P., Woodruff, J., Fuchs, F. A., van der Maas, M., Naylor, M., Roe, M., Watson, R. N. M., Neumann, P. G., and Moore, S. W. (2024). Randomized Testing of RISC-V CPUs Using Direct Instruction Injection. IEEE Design Test, 41(1):40–49.
Jones, R. B., Dill, D. L., and Burch, J. R. (1995). Efficient validity checking for processor verification. In Proceedings of the 1995 IEEE/ACM International Conference on Computer-Aided Design, ICCAD ’95, page 2–6, USA. IEEE Computer Society.
Orenes-Vera, M., Martonosi, M., and Wentzlaff, D. (2023). From RTL to SVA: LLM-assisted generation of Formal Verification Testbenches.
Rülling, W. (2003). Circuit Verification, pages 210–218. Springer US, Boston, MA.
Sawada, J. (2000). Processor Verification with Precise Exceptions and Speculative Execution.
Schubert, K.-D., Abrar, S. S., Averill, D., Bauman, E., Brown, A. C., Cash, R., Chatterjee, D., Gullickson, J., Nelson, M., Pasnik, K. A., and Sugavanam, K. (2018). Addressing verification challenges of heterogeneous systems based on IBM POWER9. IBM Journal of Research and Development, 62(4/5):11:1–11:12.
Thomas, F., Hetterich, L., Zhang, R., Weber, D., Gerlach, L., and Schwarz, M. (2024). RISCVuzz: Discovering Architectural CPU Vulnerabilities via Differential Hardware Fuzzing. [link].
Waterman, A., Lee, Y., Patterson, D. A., and Asanović, K. (2014). The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.0. Technical Report UCB/EECS-2014-54, EECS Department, University of California, Berkeley.
Publicado
23/10/2024
Como Citar
AVELAR, Julio N.; LAGO, Victor P.; MALAGUTI, Ângelo R. P.; AZEVEDO, Rodolfo.
ProcessorCI: Integração Contínua para processadores RISC-V em FPGAs. In: WORKSHOP DE INICIAÇÃO CIENTÍFICA - SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 25. , 2024, São Carlos/SP.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2024
.
p. 1-8.
DOI: https://doi.org/10.5753/sscad_estendido.2024.244745.