A SIMD intrinsic correlator library for GNSS software receivers
- 111 Downloads
An open-source implementation of a code division multiple access software correlator library that leverages single instruction multiple data (SIMD) is presented. We initially discuss the key aspects involved in the correlation operation for software radio applications. Afterward, we present the state-of-the-art application programming interface that provides SIMD capable methods for each of the components in a correlation operation, including the first of its kind parallelized code and carrier generation using lookup tables and SIMD instructions. The library was developed using SIMD intrinsic instructions, which are a C-type nomenclature offering access to the assembly instructions originally designed for the SIMD extensions in the processor. This design paradigm presents an advantage in terms of readability and simplified code development to accommodate future modifications. Recorded data were used with a standalone global navigation satellite system software receiver where the methods hereby presented were tested and profiled to validate theoretical assumptions.
KeywordsGNSS correlation SIMD instructions Software radio
This material is based upon work partially supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE 1144083.
Compliance with ethical standards
Conflict of interest
The authors declare that they have no conflict of interest.
- Fernández-Prades C, Arribas J, Closas P (2016) Accelerating GNSS software receivers. In: Proceedings of the ION GNSS 2016, Institute of Navigation, Portland, Oregon, USA, 12–16 Sept, pp 44–61Google Scholar
- Fog A (2017) Instruction tables: lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs. Manual 4:2017Google Scholar
- Greene MA (1997) Pentium (R) processor with MMX/sup TM/technology performance. In: Proceedings of the IEEE COMPCON 97. https://doi.org/10.1109/CMPCON.1997.584726
- Matic V, Marinkovic-Nedelicki V, Tadic V (1998) Comparison of digital signal processing methods for sine wave signal generation. In: SBT/IEEE international telecommunications symposium. https://doi.org/10.1109/ITS.1998.713134
- Miralles D, Iwamoto J (2018) Accelerating software radios by means of SIMD Instructions. A case for the AVX2 and AVX512 extensions. In: Proceedings of the GNU radio conference, Henderson, Nevada, USA, 17–21 Sept, pp 1–7Google Scholar
- Pany T (2010) Navigation signal processing for GNSS software receivers. Artech House, NorwoodGoogle Scholar
- Psiaki M (2001) Block acquisition of weak GPS signals in a software receiver. In: Proceedings of the ION GPS 2001, Institute of Navigation, Salt Lake City, Utah, USA, 11–14 Sept, pp 2838–2850Google Scholar
- Rondeau T, McCarthy N, O’Shea T (2012) SIMD programming in GNU radio: maintainable and user-friendly algorithm optimization with VOLK. In: Proceedings of the WinnForum’s SDR Conference, Brussels, Belgium, 27–29 June, 101–110Google Scholar
- Rupp K (2018) Forty two years of microprocessor trend data. https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/. Accessed 1 Jan 2019
- Xu L, Zhang H, Guo W, Zhang D (2013) A new SIMD correlator algorithm for GNSS software receivers to process complex IF data. In: Proceedings of the China satellite navigation conference, Wuhan, China, 15–17 May, pp 565–573Google Scholar