ggm
3 months ago
this is classic computing wheel of life stuff (Bell, Mudge, MacNamara wrote that up in the 70s)
* first you do it in the cpu * then you do it in a dedicated card off the bus * then you find the FPGA or whatever too slow, so you make the card have it's own CPU * then you wind up recursing over the problem, implementing some logic in a special area of the cpu, to optimise its bus to the other bus to ...
I expect to come back in 10years and find there is a chiplet which took the rpi core, and implements a shrunk version which can be reprogrammed, into the chiplet on the offload card, so we can program terabit network drivers with a general purpose CPU model.
kragen
3 months ago
Yeah, this is the Wheel of Reincarnation, but wasn't it Sutherland who wrote that up? And Myer? And in 01968? https://www2.cs.arizona.edu/~cscheid/reading/myer-sutherland...
ggm
3 months ago
Maybe it was. Bell/mudge/macnamara was the textbook I recalled it from 1979 vintage. I can believe 68 is the original.
bri3d
3 months ago
Video codecs are a really good example of this too. We went from slow and unreliable video decoding in the CPU, to fully offboard / unsupervised decoders (remember the 90s MPEG-2/DVD players that would just blit onto a green part of the screen, where your computer never actually saw the data off the disc?), to CPU/firmware supervised custom hardware (Apple's decoder, for example, uses firmware on a Cortex to lower decoding commands into an IR which runs on custom execution units). With RISC-V making it cheap to add custom instructions, I wouldn't be surprised to see video decoding move to on-chip RISC-V cores with custom instruction set extensions.
TZubiri
3 months ago
I understood some of these words
Twirrim
3 months ago
We start out doing things in the CPU, create dedicated hardware for it externally, then slowly but surely bring it closer and closer to the CPU until we end up integrating the specialist capabilities into it. Often these capabilities enable other workloads to be done in the CPU, that we then build dedicated hardware for and the cycle continues.
An easy example is the 8087 maths coprocessor, from the early 80s. They were floating point accelerators, a separate chip you could plug into your motherboard, until eventually it was integrated into the CPU (386 and 486 processors had SX and DX variants, DX had the coprocessor integrated)