Abstract
This paper introduces a computer architecture, where part of the instruction set architecture (ISA) is implemented on small highly-integrated field-programmable gate arrays (FPGAs). Small FPGAs inside a general-purpose processor (CPU) can be used effectively to implement custom or standardised instructions. Our proposed architecture directly address related challenges for high-end CPUs, where such highly-integrated FPGAs would have the highest impact, such as on main memory bandwidth. This also enables software-transparent context-switching. The simulation-based evaluation of a dynamically reconfigurable core shows promising results approaching the performance of an equivalent core with all enabled instructions. Finally, the feasibility of adopting the proposed architecture in today’s CPUs is studied through the prototyping of fast-reconfigurable FPGAs and profiling the miss behaviour of opcodes.
The first author is now with Huawei Technologies R &D (UK) Limited.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Source code available: https://github.com/pphilippos/fpga-ext-arch.
References
RISC-V “V” Vector Extension, Version 0.9 (2020)
RISC-V “B” Bitmanip Extension, Version 0.94-draft (2021)
Waterman, A., Asanovic, K.: The RISC-V instruction set manual, volume I: Unprivileged ISA, version 20191214-draft. RISC-V Foundation, Technical report (2020)
Achronix Semiconductor Corp.: Speedcore architecture. https://www.achronix.com/speedcore-architecture. Accessed 10 Apr 2022
Ahmed, S.Z.: eFPGAs: Architectural explorations, system integration & a visionary industrial survey of programmable technologies. Ph.D. dissertation, Université Montpellier II-Sciences et Techniques du Languedoc (2011)
Akshintala, A., Jain, B., Tsai, C.-C., Ferdman, M., Porter, D.E.: X86-64 instruction usage among C/C++ applications. In: Proceedings of the 12th ACM International Conference on Systems and Storage, pp. 68–79 (2019)
Alonso, G., Istvan, Z., Kara, K., Owaida, M., Sidler, D.: doppioDB 1.0: machine learning inside a relational engine. IEEE Data Eng. Bull. 42(2), 19–31 (2019)
Barry, R.: FreeRTOS reference manual: API functions and configuration options. Real Time Engineers Limited (2009)
Bauer, L., Shafique, M., Henkel, J.: RISPP: a run-time adaptive reconfigurable embedded processor. In: 2009 International Conference on Field Programmable Logic and Applications, pp. 725–726. IEEE (2009)
Bordawekar, R., Bondhugula, U., Rao, R.: Can cpus match GPUs on performance with productivity?: experiences with optimizing a flop-intensive application on CPUs and GPU. IBM Research Report, RC25033, Technical report (2010)
Cebrian, J.M., Natvig, L., Jahre, M.: Scalability analysis of AVX-512 extensions. J. Supercomput. 76(3), 2082–2097 (2020)
Chang, Y.-J.: Exploiting frequent opcode locality for power efficient instruction cache. In: Proceedings of the 18th ACM Great Lakes Symposium on VLSI, pp. 399–402 (2008)
Clark, N., Blome, J., Chu, M., Mahlke, S., Biles, S., Flautner, K.: An architecture framework for transparent instruction set customization in embedded processors. In: 32nd International Symposium on Computer Architecture (ISCA 2005), pp. 272–283. IEEE (2005)
Gottschlag, M., Schmidt, T., Bellosa, F.: AVX overhead profiling: How much does your fast code slow you down? In: Proceedings of the 11th ACM SIGOPS Asia-Pacific Workshop on Systems, Series APSys 2020, pp. 59–66. ACM (2020)
Grosbach, J.H., Conner, J.M., Catherwood, M.: Modified harvard architecture processor having program memory space mapped to data memory space. US Patent 6,728,856, 27 April 2004
Hauser, J.R., Wawrzynek, J.: Garp: a MIPS processor with a reconfigurable coprocessor. In: Proceedings of the 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No. 97TB100186), pp. 12–21. IEEE (1997)
Intel (R), Intel (R): Intel intrinsics guide. https://software.intel.com/sites/landingpage/IntrinsicsGuide/
Koch, D., Dao, N., Healy, B., Yu, J., Attwood, A.: FABulous: an embedded FPGA framework. In: The 2021 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, pp. 45–56 (2021)
Luk, C.-K., et al.: Pin: building customized program analysis tools with dynamic instrumentation. ACM Sigplan Not. 40(6), 190–200 (2005)
Ordaz, J.R.G., Koch, D.: A soft dual-processor system with a partially run-time reconfigurable shared 128-bit SIMD engine. In: 29th International Conference on Application-specific Systems, Architectures and Processors (ASAP), pp. 1–8. IEEE (2018)
Papaphilippou, P., Luk, W.: Accelerating database systems using FPGAs: a survey. In: 2018 28th International Conference on Field Programmable Logic and Applications (FPL), pp. 125–130. IEEE (2018)
Papaphilippou, P., Kelly Paul, H.J., Luk, W.: Simodense: a RISC-V softcore optimised for exploring custom SIMD instructions. In: 2021 31st International Conference on Field-Programmable Logic and Applications (FPL), pp. 391–397 (2021)
Patterson, D., Bennett, J., Dabbelt, P., Garlati, C., Madhusudan, G., Mudge, T.: Embench: a modern embedded benchmark suite (2020)
Shah, D., Hung, E., Wolf, C., Bazanski, S., Gisselquist, D., Milanovic, M.: Yosys+nextpnr: an open source framework from verilog to bitstream for commercial FPGAs. In: IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM) (2019)
Suggs, D., Subramony, M., Bouvier, D.: The AMD “Zen 2’’ processor. IEEE Micro 40(2), 45–52 (2020)
Wang, Y.E., Wei, G.-Y., Brooks, D.: Benchmarking TPU, GPU, and CPU platforms for deep learning. arXiv preprint arXiv:1907.10701 (2019)
Wirthlin, M.J., Hutchings, B.L.: DISC: the dynamic instruction set computer. In: Field Programmable Gate Arrays (FPGAs) for Fast Board Development and Reconfigurable Computing, vol. 2607, pp. 92–103. SPIE (1995)
Wolf, C.: PicoRV32-a size-optimized RISC-V CPU (2019)
Xilinx Inc.: Vivado Design Suite User Guide, Partial Reconfiguration - UG909 (v2018.1) (2018)
Ye, Z.A., Moshovos, A., Hauck, S., Banerjee, P.: CHIMAERA: a high-performance architecture with a tightly-coupled reconfigurable functional unit. ACM SIGARCH Comput. Archit. News 28(2), 225–235 (2000)
Acknowledgement
We would like to thank Anuj Vaishnav for his feedback on an earlier version. The second author mainly contributed with the Sect. 5.1.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Papaphilippou, P., Shah, M. (2022). FPGA-Extended General Purpose Computer Architecture. In: Gan, L., Wang, Y., Xue, W., Chau, T. (eds) Applied Reconfigurable Computing. Architectures, Tools, and Applications. ARC 2022. Lecture Notes in Computer Science, vol 13569. Springer, Cham. https://doi.org/10.1007/978-3-031-19983-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-031-19983-7_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-19982-0
Online ISBN: 978-3-031-19983-7
eBook Packages: Computer ScienceComputer Science (R0)