Multi-core architecture satellite navigation SoC based on RISC-V vector processor, chip and receiver

By designing a multi-core architecture satellite navigation SoC based on RISC-V vector processor, using vector optimization and custom instructions, the problems of increased cost and power consumption in the existing technology are solved, and a high-performance and energy-efficient satellite navigation receiver design is realized.

CN120086182AActive Publication Date: 2025-06-03INST OF MICROELECTRONICS CHINESE ACAD OF SCI LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510559550.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-30
Publication Date
2025-06-03
Estimated Expiration
2045-04-30

AI Technical Summary

Technical Problem

The most direct way to improve performance when existing satellite navigation chips process multimode and multi-frequency signals is to use higher performance processors or integrate multiple processor cores, but this will lead to increased cost, area and power consumption.

Method used

Design a multi-core architecture satellite navigation SoC based on RISC-V vector processor, including the main processor and vector coprocessor, and uses RISC-V Vector Extension for vector optimization, supporting custom instructions to accelerate key operators in navigation applications.

Benefits of technology

It realizes the high-performance and energy-efficient design of satellite navigation receivers, improves the energy efficiency ratio when processing navigation receiver applications, reduces the code volume and storage capacity requirements, and enhances the adaptability and processing capabilities in complex navigation scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120086182A_ABST
    Figure CN120086182A_ABST
Patent Text Reader

Abstract

The invention relates to a multi-core architecture satellite navigation SoC based on an RISC-V vector processor, a chip and a receiver. Belongs to the field of satellite navigation and chip design. The SoC comprises an instruction memory for storing a navigation receiver program after rewriting a parallelism algorithm; the processor is used for acquiring and running a navigation receiver program from the instruction memory; the main processor is used for performing receiver control and processing and navigation control and processing functions and outputting a positioning result, and is used for assisting the main processor to execute a vector instruction when the main processor runs a navigation receiver program; and for the vector instruction needing to return the scalar value, the vector coprocessor feeds back an instruction execution result to the main processor, and for the other instructions, the vector coprocessor writes the instruction execution result into the data memory to be called by the main processor. According to the invention, through the coupling processing of the main processor and the vector coprocessor, the processing capability of multi-channel satellite navigation signals is enhanced, and the response speed of the system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the fields of satellite navigation and chip design, and in particular to a multi-core architecture satellite navigation SoC, chip and receiver based on a RISC-V vector processor. Background Art

[0002] With the development of technologies such as autonomous driving, precision agriculture, and mobile Internet of Things, people's demand for precise positioning information has become increasingly strong. Compared with low-cost satellite navigation receivers that only support single frequency, the advantage of satellite navigation receivers that support multi-mode and multi-frequency is that they can obtain more observation information and optimize the geometric structure of satellite observations, and their positioning accuracy, availability, and reliability are greatly improved.

[0003] The reception of multi-mode and multi-frequency satellite navigation signals places higher requirements on the performance of satellite navigation chip processors. If a higher-performance processor is used in the navigation chip, or multiple processor cores are integrated, it is the most direct way to improve performance, but it will inevitably increase costs, area, and power consumption. RISC-V is an instruction set architecture with modular and extensible characteristics. While having strong flexibility, it allows designers to add custom instructions to optimize specific reference scenarios. RISC-V Vector Extension is the vector instruction set extension of RISC-V. Existing research shows that it exhibits high performance and high energy efficiency advantages in parallel data processing, and can also maintain software cross-platform compatibility. Therefore, designing a satellite navigation processor around the RISC-V instruction set architecture and RISC-V Vector Extension can make full use of the modularity, flexibility, extensibility of RISC-V, and the high performance and high energy efficiency characteristics of RVV in parallel data operations to solve the above problems. Summary of the Invention

[0004] In view of the above analysis, the present invention aims to disclose a multi-core architecture satellite navigation SoC, chip and receiver based on a RISC-V vector processor, realizing high-performance and high-energy efficiency design of satellite navigation receivers.

[0005] On the one hand, the present invention discloses a multi-core architecture satellite navigation SoC based on a RISC-V vector processor, including: an instruction memory, a main processor, and a vector coprocessor; wherein, The instruction memory is used to store the navigation receiver program rewritten by using the vector instructions specified in RISC-V Vector Extension for algorithms with data parallelism; The main processor is connected to the instruction memory through a bus, and the vector coprocessor is connected to the main processor through a vector coprocessor interface; The main processor adopts the RISC-V architecture and is used to fetch and run the navigation receiver program from the instruction memory; it uses the read satellite baseband data to perform receiver control and processing as well as navigation control and processing functions, and outputs the positioning result. The vector coprocessor supports RISC-V Vector Extension and is used to assist the main processor in executing vector instructions when the main processor runs the navigation receiver program; for vector instructions that need to return scalar values, the vector coprocessor feeds back the instruction execution result to the main processor, and for the remaining instructions, it writes the instruction execution result into the data memory for the main processor to call.

[0006] Furthermore, the process of vectorizing an algorithm with data parallelism using the vector instructions specified in RISC-V Vector Extension includes: 1) Decompose the general C / C++ navigation receiver program to extract the code of the algorithm with data parallelism therein; 2) Rewrite the extracted code of the algorithm with data parallelism using the vector instructions specified in RISC-V Vector Extension through methods including inline assembly, RVV Intrinsic, and compiler auto-vectorization; 3) Rearrange the data elements called by the rewritten vector instructions to make them continuous in memory, and compile the navigation receiver software optimized by vectorization through toolchains that support RISC-V vector extension, including GCC and LLVM / Clang; 4) Download the compiled navigation processing receiver program into the instruction memory.

[0007] Furthermore, the SoC also includes a baseband coprocessor; the baseband coprocessor cooperates with the main processor to perform baseband signal processing. The baseband coprocessor receives the intermediate frequency signal from outside the SoC and, under the control of the navigation receiver program running in the main processor, preprocesses, captures, tracks, and loops the intermediate frequency signal to output baseband data including channel correlation values and receiver status. After the main processor reads the channel correlation values, receiver status and other data output by the baseband coprocessor, it is responsible for the receiver control and processing functions as well as the navigation control and processing functions in the navigation receiver program, and only independently processes the non-vector operation part therein; the vector operation part is processed with the assistance of the vector coprocessor, and finally outputs the positioning result through the peripheral interface.

[0008] Furthermore, the main processor internally includes a custom instruction processing unit, which is used to accelerate the operators that are frequently reused in the navigation receiver program, including the parallel code phase search and Doppler shift estimation by the baseband coprocessor during capture, which require frequent FFT operations. The custom instruction processing unit executes user-defined instructions including 8-point FFT instructions, which are not included in the RISC-V architecture specification. The main processor reads the custom instructions from the instruction memory, decodes them, and then sends them to the custom instruction processing unit for operation, accelerating the key operators that are heavily reused in the baseband signal processing process.

[0009] Furthermore, the vector coprocessor is connected to the main processor through a vector coprocessor interface; when the main processor runs the navigation receiver program optimized by vectorization, after the vector instructions are decoded twice in the main processor and the vector coprocessor respectively, the vector instructions are executed in the vector coprocessor. For vector instructions that need to return scalar values, the vector coprocessor feeds back the instruction execution results to the main processor. For the remaining instructions, the instruction execution results are written into the data memory for the main processor to call.

[0010] Furthermore, in the two decodings, The first decoding is a preliminary decoding operation performed in the main processor. After the main processor reads the vector instructions optimized by vectorization from the instruction memory, it performs a preliminary decoding operation; in the preliminary decoding operation, data hazard processing is performed, the instruction type and the required scalar operands are decoded, and it is judged whether the currently running instruction is a vector instruction; if so, the vector instruction execution request and the corresponding instruction decoding information are sent to the vector coprocessor. After completing the handshake operation with the vector coprocessor, the vector instruction is successfully dispatched to the vector coprocessor for execution. The second decoding is a further decoding operation performed in the vector coprocessor. The vector coprocessor receives the vector instruction execution request and the preliminary decoding information of the instruction from the main processor, and performs a further decoding operation on the instruction; in the further decoding operation, all the information of the instruction is decoded according to the RVV instruction set specification and dispatched to different hardware processing units according to the instruction type; the vector coprocessor also judges whether it is necessary to read data elements from the data memory according to the decoding result, and if so, accesses the data memory.

[0011] Furthermore, the main processor also includes a shared scoreboard structure internally; The scoreboard records the write-back status of the scalar registers and floating-point registers inside the main processor, and marks the access status of the main processor and the vector coprocessor to the memory. The scoreboard is visible to both the main processor and the vector coprocessor at the same time, playing a role in coordinating register calls, solving pipeline hazards, and ensuring a strict order of memory access.

[0012] Furthermore, a dual-bus structure is adopted, including a system bus and a dedicated data bus; The main processor, baseband coprocessor, instruction memory, data memory, and peripheral modules are interconnected through the system bus; The system bus includes a system bus interface and a low-speed expansion interface. Among them, The system bus interface is used for data interaction with the baseband coprocessor, main processor, data memory, and instruction memory mounted on the system bus; The low-speed expansion interface is used for data interaction with the peripheral modules mounted on the system bus; The vector coprocessor is interconnected with the data memory through the dedicated data bus; the dedicated data bus is used to transmit the requests of the vector coprocessor for reading and writing the data memory; Both the dedicated data bus and the data memory have configuration registers; the access bandwidth of the dedicated data bus and the data memory is configured through the configuration registers; enabling the vector coprocessor to send read / write control signals and data through the dedicated data bus to simultaneously access multiple data elements in the data memory; overcoming the memory wall problem faced when executing vector instructions.

[0013] On the other hand, the present invention also discloses a satellite navigation chip, which includes the multi-core architecture satellite navigation SoC based on the RISC-V vector processor as described above.

[0014] On the other hand, the present invention also discloses a satellite navigation receiver, which includes the satellite navigation chip as described above.

[0015] One of the following beneficial effects can be achieved by the present invention: The multi-core architecture satellite navigation SoC, chip, and receiver based on the RISC-V vector processor disclosed by the present invention; Compared with traditional SoC designs, the new SoC includes a main processor with the RISC-V architecture and a vector coprocessor that supports the RISC-V Vector Extension. It can run a navigation receiver program optimized for vectorization, support custom instructions to accelerate key operators with large-scale reuse in navigation applications, thus achieving high-performance and energy-efficient designs for satellite navigation receivers. The new architecture also includes a dedicated data bus with large bandwidth for the vector coprocessor that supports concurrent access to multiple data elements and the corresponding data memory, overcoming the memory access wall problem when executing vector instructions. While improving the energy efficiency ratio of the SoC when processing navigation receiver applications, it can reduce the code size and thus the demand for on-chip storage capacity of the SoC. Moreover, due to the generality of RVV, there are many application scenarios for vector optimization in navigation receiver software, which can be applied to multiple processing modules in navigation receiver software, significantly enhancing the adaptability and processing ability of the SoC in complex navigation scenarios. Description of the Drawings

[0016] The drawings are only for the purpose of showing specific embodiments and are not considered as limitations of the present invention. Throughout the drawings, the same reference signs denote the same components. Figure 1 Schematic diagram of a multi-core architecture satellite navigation SoC in an embodiment of the present invention; Figure 2 Schematic diagram of a multi-core architecture satellite navigation SoC with a dual-bus structure in an embodiment of the present invention. Detailed Embodiments

[0017] The following will specifically describe the preferred embodiments of the present invention in conjunction with the drawings, where the drawings form a part of this application and are used together with the embodiments of the present invention to explain the principles of the present invention.

[0018] Embodiment 1 An embodiment of the present invention discloses a multi-core architecture satellite navigation SoC based on a RISC-V vector processor, as Figure 1 shown, including: an instruction memory, a main processor, and a vector coprocessor; wherein, The instruction memory is used to store a navigation receiver program obtained by vectorizing an algorithm with data parallelism using vector instructions specified in the RISC-V Vector Extension (RVV); The main processor is connected to the instruction memory through a bus, and the vector coprocessor is connected to the main processor through a vector coprocessor interface; The main processor adopts the RISC-V architecture and is used to obtain and run the navigation receiver program from the instruction memory; using the read satellite baseband data, perform receiver control and processing as well as navigation control and processing functions, and output a positioning result; The vector coprocessor supports the RISC-V Vector Extension and is used to assist the main processor in executing vector instructions when the main processor runs the navigation receiver program. For vector instructions that need to return scalar values, the vector coprocessor feeds back the instruction execution results to the main processor. For the remaining instructions, the instruction execution results are written into the data memory for the main processor to call.

[0019] Specifically, the process of vectorizing and rewriting algorithms with data parallelism using the vector instructions specified in the RISC-V Vector Extension includes: 1) Decompose the general C / C++ navigation receiver program and extract the code of the algorithms with data parallelism therein; The algorithms with data parallelism include loop filtering used in multiple tracking channels in parallel and algorithms involving matrix operations; these algorithms with data parallelism are frequently used in the navigation receiver program; For example, the loop filtering algorithm; during the operation of the algorithm, the main processor performs digital signal processing on the correlation values of multiple tracking channels in the baseband data. Since loop filtering needs to perform almost exactly the same operations on the correlation values of multiple channels, it has data parallelism and is very suitable for acceleration by means of vector operations.

[0020] Another example is that algorithms such as the Newton iteration method and Kalman filtering used in PVT solution contain a large number of matrix operations. Matrix operations have parallelism and are also very suitable for acceleration by means of vector operations.

[0021] In this embodiment, by vectorizing and optimizing the algorithms frequently used in navigation applications and accelerating them by means of vector operations, the GNSS navigation processing efficiency can be greatly improved.

[0022] 2) Rewrite the code of the algorithms with data parallelism extracted by methods such as inline assembly, RVV Intrinsic, and compiler automatic vectorization using the vector instructions specified in the RISC-V Vector Extension; 3) Rearrange the data elements called by the rewritten vector instructions to make them continuous in memory, and compile the navigation receiver software after vectorization optimization through toolchains that support the RISC-V vector extension, including GCC and LLVM / Clang; 4) Download the compiled navigation processing receiver program to the instruction memory.

[0023] In a specific solution of this embodiment, the SoC also includes a baseband coprocessor; The baseband coprocessor cooperates with the main processor to perform baseband signal processing. The baseband coprocessor receives the intermediate frequency signal from outside the SoC, and under the control of the navigation receiver program running in the main processor, preprocesses, captures, tracks, and performs loop processing on the intermediate frequency signal, and outputs baseband data including channel correlation values and receiver status; After the main processor reads the data such as channel correlation values and receiver status output by the baseband coprocessor, it is responsible for the receiver control and processing functions and navigation control and processing functions in the navigation receiver program, and only independently processes the non-vector operation part thereof; the vector operation part is processed with the assistance of the vector coprocessor, and finally the positioning result is output through the peripheral interface.

[0024] Specifically, the main processor internally includes a custom instruction processing unit, which is used to accelerate the frequently reused operators in the navigation receiver program, including the FFT operations that need to be frequently performed in the parallel code phase search and Doppler frequency shift estimation during capture by the baseband coprocessor; The custom instruction processing unit executes user-defined instructions including 8-point FFT instructions. These custom instructions are not included in the RISC-V architecture specification. The main processor reads the custom instructions from the instruction memory, decodes them, and then sends them to the custom instruction processing unit for operation to accelerate the key operators that are heavily reused in the baseband signal processing process.

[0025] Specifically, the vector coprocessor is connected to the main processor through the vector coprocessor interface; when the main processor runs the navigation receiver program optimized by vectorization, after the vectorized instructions are decoded twice in the main processor and the vector coprocessor respectively, the vectorized instructions are executed in the vector coprocessor. For the vector instructions that need to return scalar values, the vector coprocessor feeds back the instruction execution results to the main processor. For the remaining instructions, the instruction execution results are written into the data memory for the main processor to call; During the two decodings, The first decoding is a preliminary decoding operation performed in the main processor. After the main processor reads the vectorized instructions optimized by vectorization from the instruction memory, it performs a preliminary decoding operation; during the preliminary decoding operation, data hazard processing is performed, the instruction type and the required scalar operands are decoded, and it is judged whether the currently running instruction is a vector instruction; if so, the vector instruction execution request and the corresponding instruction decoding information are sent to the vector coprocessor. After completing the handshake operation with the vector coprocessor, the vector instruction is successfully dispatched to the vector coprocessor for execution.

[0026] The second decoding is a further decoding operation performed in the vector coprocessor. The vector coprocessor receives a vector instruction execution request from the main processor and preliminary decoding information of the instruction, and performs a further decoding operation on the instruction. In the further decoding operation, all the information of the instruction is decoded according to the RVV instruction set specification and dispatched to different hardware processing units according to the instruction type. The vector coprocessor also determines whether it is necessary to read data elements from the data memory according to the decoding result, and if so, accesses the data memory.

[0027] Preferably, a shared scoreboard structure is also included inside the main processor; The scoreboard records the write-back status of scalar registers and floating-point registers inside the main processor, and marks the memory access status of the main processor and the vector coprocessor. The scoreboard is visible to both the main processor and the vector coprocessor, and plays a role in coordinating register calls to solve pipeline hazards and ensure a strict order of memory access.

[0028] Specifically, in the solution of this embodiment, a peripheral module is also included. The peripheral module includes any one interface or a combination of any several interfaces among USB interface, I2C interface, UART interface, SPI interface, and GPIO interface; The peripheral module is connected to the system bus and connected to the main processor through the system bus, and is used to output data including positioning results to an external positioning data usage device through the interface included in the peripheral module.

[0029] Preferably, in one solution of this embodiment, as Figure 2 shown, a dual-bus structure is adopted, including a system bus and a dedicated data bus; The main processor, baseband coprocessor, instruction memory, data memory, and peripheral module are interconnected through the system bus; The system bus includes a system bus interface and a low-speed expansion interface. Among them, The system bus interface is used for data interaction with the baseband coprocessor, main processor, data memory, and instruction memory mounted on the system bus; For example, the data memory is connected to the system bus through the system bus interface and can process read and write requests from the system bus; The low-speed expansion interface is used for data interaction with the peripheral module mounted on the system bus; The vector coprocessor is interconnected with the data memory through a dedicated data bus; the dedicated data bus is used to transmit requests for the vector coprocessor to read and write the data memory; The dedicated data bus and the data memory each have a configuration register; the access bandwidth of the dedicated data bus and the data memory is configured through the configuration register; the vector coprocessor sends read and write control signals and data through the dedicated data bus to simultaneously access multiple data elements in the data memory; the memory wall problem faced when executing vector instructions is overcome.

[0030] During the configuration process, when the vector coprocessor accesses the data memory, it sends the bus bit width required for this memory access through the dedicated data bus interface of the vector coprocessor, so that the value in the configuration register changes according to the real-time memory access requirements. If the data width accessed by the vector instruction does not need to occupy the full bus bandwidth, then the value in the configuration register is reduced, causing some bus bit widths to stop working, thereby reducing power consumption. Conversely, the value of the configuration register increases until all the bit widths of the bus are in the working state.

[0031] After a vector instruction is executed, the vector coprocessor feeds back the result to the main processor. After completing the handshake with the main processor, the instruction is considered to be completed and delivered, that is, the instruction ends its life cycle.

[0032] In summary, the multi-core architecture satellite navigation SoC based on the RISC-V vector processor of this embodiment; Compared with the traditional SoC design, the new SoC includes a main processor with the RISC-V architecture and a vector coprocessor that supports RISC-V Vector Extension. It can run a vectorized optimized navigation receiver program, support custom instructions to accelerate key operators with large-scale reuse in navigation applications, thereby realizing the high-performance and high-energy efficiency design of the satellite navigation receiver; the new architecture also includes a large-bandwidth dedicated data bus for the vector coprocessor that supports concurrent access to multiple data elements and the corresponding data memory, overcoming the memory access wall problem when executing vector instructions. While improving the energy efficiency ratio of the SoC when processing navigation receiver applications, it can reduce the code volume and thus reduce the demand for the on-chip storage capacity of the SoC; and due to the universality of RVV, there are many application scenarios for vector optimization in the navigation receiver software, which can be applied to multiple processing modules in the navigation receiver software, significantly enhancing the adaptability and processing ability of the SoC in complex navigation scenarios.

[0033] Embodiment 2 An embodiment of the present invention discloses a satellite navigation chip. The chip includes the multi-core architecture satellite navigation SoC based on the RISC-V vector processor as described in Embodiment 1. In the satellite navigation chip, it can run a vectorized optimized navigation receiver program, support custom instructions to accelerate key operators with large-scale reuse in navigation applications, and enhance the processing ability of multi-channel satellite navigation signals and improve the system response speed through the coupling and processing of the main processor and the vector coprocessor.

[0034] In this embodiment, the specific technical details and beneficial effects are the same as those disclosed in the first embodiment. For specific reference, they will not be elaborated here one by one.

[0035] Embodiment Three An embodiment of the present invention discloses a satellite navigation receiver, which includes the satellite navigation chip as described in the second embodiment; enabling the satellite navigation receiver to run a navigation receiver program optimized by vectorization, achieving high performance and high energy efficiency design of the satellite navigation receiver.

[0036] In this embodiment, the specific technical details and beneficial effects are the same as those disclosed in the first embodiment. For specific reference, they will not be elaborated here one by one.

[0037] As mentioned above, the above are only the preferred specific embodiments of the present invention, but the protection scope of the present invention is not limited thereto. Any changes or substitutions that can be easily thought of by those skilled in the art within the technical scope disclosed by the present invention should be covered within the protection scope of the present invention.

Claims

1. A multi-core satellite navigation SoC based on RISC-V vector processor, characterized in that: include: instruction memory, main processor and vector coprocessor; wherein, An instruction memory for storing a navigation receiver program that is vectorized and rewritten using vector instructions specified in RISC-V Vector Extension to implement an algorithm with data parallelism; The main processor is connected to the instruction memory via a bus, and the vector coprocessor is connected to the main processor via a vector coprocessor interface; The main processor adopts RISC-V architecture, which is used to obtain and run the navigation receiver program from the instruction memory; it uses the read satellite baseband data to perform receiver control and processing as well as navigation control and processing functions, and outputs positioning results; The vector coprocessor supports RISC-V Vector Extension, which is used to assist the main processor in executing vector instructions when the main processor runs the navigation receiver program. For vector instructions that need to return scalar values, the vector coprocessor feeds back the instruction execution results to the main processor. For other instructions, the instruction execution results are written into the data memory for the main processor to call.

2. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to claim 1, characterized in that: The process of vectorizing an algorithm with data parallelism using the vector instructions specified in RISC-V Vector Extension includes: Decompose the general C / C++ navigation receiver program to extract the code of the algorithm with data parallelism; The extracted data-parallel algorithm code is rewritten using vector instructions specified by RISC-V Vector Extension through methods including inline assembly, RVV Intrinsic, and compiler automatic vectorization; Rearrange the data elements called by the rewritten vector instructions to keep them continuous in memory, and compile the vectorized navigation receiver software through a tool chain that supports RISC-V vector extensions, including GCC, LLVM / Clang; Download the compiled navigation processing receiver program into the instruction memory.

3. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to claim 1, characterized in that: The SoC also includes a baseband coprocessor; The baseband coprocessor works with the main processor to process the baseband signal. The baseband coprocessor receives the intermediate frequency signal from outside the SoC, and under the control of the navigation receiver program running in the main processor, pre-processes, captures, tracks and loops the intermediate frequency signal to output baseband data including channel correlation values ​​and receiver status. After the main processor reads the status data output by the baseband coprocessor, including channel-related values ​​and receiver status data, it is responsible for the receiver control and processing functions and the navigation control and processing functions in the navigation receiver program, and only independently processes the non-vector operation part; the vector operation part is processed with the assistance of the vector coprocessor, and finally the positioning result is output through the peripheral interface.

4. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to claim 3 is characterized in that: The main processor contains a custom instruction processing unit to accelerate frequently reused operators in the navigation receiver program, including the baseband coprocessor's parallel code phase search during acquisition and the frequent FFT operations required for Doppler shift estimation; The custom instruction processing unit executes user-defined instructions including 8-point FFT instructions. These custom instructions are not included in the RISC-V architecture specification. The main processor reads the custom instructions from the instruction memory, and after decoding, sends them to the custom instruction processing unit for calculation, thereby accelerating the key operators that are reused in large quantities in the baseband signal processing process.

5. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to claim 1, characterized in that: The vector coprocessor is connected to the main processor through the vector coprocessor interface; when the main processor runs the navigation receiver program optimized by vectorization, the vectorized instruction is decoded twice in the main processor and the vector coprocessor respectively, and then executed in the vector coprocessor. For vector instructions that need to return a scalar value, the vector coprocessor feeds back the instruction execution result to the main processor. For other instructions, the instruction execution result is written into the data memory for the main processor to call.

6. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to claim 5, characterized in that: In the two decodings, The first decoding is a preliminary decoding operation performed in the main processor. After the main processor reads the vector instruction after vector optimization from the instruction memory, it performs a preliminary decoding operation. In the preliminary decoding operation, data hazard processing is performed to decode the instruction type and the required scalar operands to determine whether the currently running instruction is a vector instruction. If so, the vector instruction execution request and the corresponding instruction decoding information are sent to the vector coprocessor. After completing the handshake operation with the vector coprocessor, the vector instruction is successfully dispatched to the vector coprocessor for execution. The second decoding is a further decoding operation performed in the vector coprocessor. The vector coprocessor receives the vector instruction execution request and the preliminary decoding information of the instruction from the main processor, and performs further decoding operations on the instruction. In the further decoding operation, all the information of the instruction is decoded according to the RVV instruction set specification and dispatched to different hardware processing units according to the instruction type. The vector coprocessor will also determine whether it is necessary to read data elements from the data memory based on the decoding results, and access the data memory if necessary.

7. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to claim 6, characterized in that: A shared scoreboard structure is also included within the main processor; The scoreboard records the write-back status of the scalar registers and floating-point registers inside the main processor, and marks the access status of the main processor and the vector coprocessor to the memory. The scoreboard is visible to both the main processor and the vector coprocessor, and plays a role in coordinating register calls to resolve pipeline hazards and ensure the strict order of memory access.

8. The multi-core architecture satellite navigation SoC based on RISC-V vector processor according to any one of claims 1 to 7, characterized in that: Adopt dual bus structure, including system bus and dedicated data bus; The main processor, baseband coprocessor, instruction memory, data memory, and peripheral modules are interconnected through a system bus; The system bus includes a system bus interface and a low-speed expansion interface, among which: The system bus interface is used to exchange data with the baseband coprocessor, main processor, data memory, and instruction memory mounted on the system bus; The low-speed expansion interface is used to exchange data with the peripheral modules mounted on the system bus; The vector coprocessor is interconnected with the data memory via a dedicated data bus; the dedicated data bus is used to transmit requests from the vector coprocessor to read and write the data memory; The dedicated data bus and data memory each have a configuration register; the memory access bandwidth of the dedicated data bus and data memory is configured through the configuration register; the vector coprocessor is enabled to simultaneously access multiple data elements in the data memory by sending read and write control signals and data through the dedicated data bus; and the memory wall problem faced when executing vector instructions is overcome.

9. A satellite navigation chip, characterized in that: The chip includes a multi-core architecture satellite navigation SoC based on a RISC-V vector processor as described in any one of claims 1 to 8.

10. A satellite navigation receiver, characterized in that: The receiver includes the satellite navigation chip as claimed in claim 9.

Citation Information

Patent Citations

  • Multi-mode satellite signal acquisition method and SOC chip

    CN108761503A

  • Open type satellite navigation baseband signal processing method and device and receiver

    CN116482725A

  • Matrix and vector operation device based on RISC-V extension instruction

    CN119166218A

  • Satellite navigation baseband processing device optimized by coprocessor

    CN119535512A

  • Independent programmable operation sequence processor for vector processing

    US20070250681A1