Beyond that, there's been research in the past that envisions using a FPGA fabric as an execution unit within the CPU itself: https://www.microsoft.com/en-us/research/project/emips/ Intel hasn't pursued such a thing but that doesn't mean AMD couldn't.
Have you ever thought of building your own processor or maybe just defining your own machine instructions? With eMIPS now you can.
Microcode strikes me as the natural way to define arbitrary instructions.
Basically, I want it to implement what are essentially custom CPU instructions.
Rather than implementing your full algorithm on a big FPGA over a PCIe link, you should be able to implement just the few custom specialized instructions that regular CPU is missing, while still utilizing the regular CPU resources.
Hide the registers or set a flag if the FPGA is not configured for it.
Moreover, put another configuration flag to FPGA part so that it either shows up a device or works as a set of registers.
It's easier said than done but, it's not impossible.
The other thing to note is that this only covers using the FPGA for compute. While that's the obvious use-case for an "FPGA in CPU" concept, in the real world, IO is a pretty important part of many non-cryptocurrency FPGA applications, whether you're just counting edges on some input like an encoder, providing a highly time-sensitive output signal, such as for an SDR, or implementing some custom serial protocol.
The thing is, I don't think AMD is going to have much of an advantage. Back when AMD64 was becoming a thing, a long time ago, there was a lot of excitement around HyperTransport (HTX), around an inter-processor bus that people could make interesting accelerators out of & connect fpgas with. It never... really went anywhere. It's still supposedly quite prevalent as the basis for AMD's modern Infinity Fabric, but AMD seems to have no interest, no energy to make Infinity Fabric or HyperTransport interesting to the world, anything beyond an implementation detail.
If AMD does want to start integrating FPGAs, they either need to go back 17 years & start pushing Infinity Fabric / HyperTransport, or they need some other plan to make the fpga useful. Perhaps CXL or CCIX or GenZ or just like they do now gobs of pcie is enough, is how an fpga can mesh with core complexes & peripherals, but wow AMD would be in a much better place to start integrating FPGAs if HTX has kept up steam.
[1] https://www.anandtech.com/show/12773/intel-shows-xeon-scalab...
There's SoC devices that have a soft processor on it that runs a linux kernel and can communicate with the FPGA.
My impression was that you tended to define pretty static blocks of functionality (you know, hash calculators for your bitcoin mining or whatever), and then just communicate to those from the OS using interrupts and a shared memory interface like any other peripheral.
How would you envision an "FPGA on board the CPU" differing from this? Would it still be a separate thing the way GPU is today, or would you see it more as like a new set of CPU instructions which enable little blobs of HDL to be somehow passed in and invoked, kind of like how a shader works today on GPUs?