My feeling is that processor development essentially came to a halt because the fruits of Moore's law were being used to design an ever "better" core that looked for all the world like a single core sequential machine. Was compiler technology holding back the hardware?
I think the best way forward is to tightly integrate simple rigidly multi-threaded processors (where the stages of the pipeline ARE the threads - barrel processing) into the memory itself. Screw all the caching, interconnect, branch prediction, etc. - what has is done for us lately?
> Screw all the caching, interconnect, branch prediction, etc. - what has is done for us lately?
What have the Romans ever done for us?
- caching: better performance; performance critical code is mostly memory constrained (your CPU is waiting for stuff), so huge caches are huuuge. I think "cache-friendly" code is one of the most important features in code for modern HW.
- branch prediction: again, performance; low-level code is filled with branches that check for mostly unlikely, but nevertheless critical events; if I am correct modern designs go many miles to achieve a high prediction-score
However I agree with you that a different approach might be a good idea that is maybe more useful for modern languages.
> [...] is to tightly integrate simple rigidly multi-threaded processors [...]
AFAIK this has been tried, but the "integrating" or connecting is far from trivial. I've read about a newish design called the Mill (it was on HN some years ago) and it sounded really interesting. Actually, I have to check how far they progressed, last time it was still not production ready and in simulation stage.
I think the best way forward is to tightly integrate simple rigidly multi-threaded processors (where the stages of the pipeline ARE the threads - barrel processing) into the memory itself. Screw all the caching, interconnect, branch prediction, etc. - what has is done for us lately?