How to stream data from embedded system to PC fast?
OK, after the first couple of lines you've, correctly, ruled out microcontrollers. So, you've ruled out microcontrollers!
What you need is something that, as you've noticed, &quot;speaks&quot; a fast interconnect on one side, and multiple SPI buses on the other.
The only way I see that happening is an FPGA.
Attaching FPGAs to Gigabit ethernet is pretty standard, and it's very likely that whatever FPGA you pick, its manufacturer has a ethernet MAC block ready to use that you &quot;just&quot; have to connect to your SPI controllers that you implement inside  the FPGA, and write a bit of state machine to actually stream the data (many designs even implement a small CPU like a picoRV32 in the FPGA itself to control the streaming/framing). All you then need to do is attach a PHY, and an ethernet jack that contains the magnetics. Many FPGAs come with Evalboards that carry exactly that. An ECP5 might be a cheap entry here.
You're under the wrong impression that the FPGA would bring an SGMII interface by itself - no, the whole points of FPGAs is that you can configure their logic such that you build such an interface.
If you want to go the USB route, there's also (less common) USB2 controller blocks for FPGAs, and I know of at least one free&amp;open source USB3 controller in development (Luna by Kate Temkin). However, the usual route would be attaching your FPGA to a specialized USB controller IC thing; Cypress' FX2 and FX3 are the &quot;classics&quot; here.