To reinvent the processor (2019)
Reinvent? Without any <i>substantial</i> improvement?<p>A truly &quot;reinvented&quot; CPU would use a reconfigurable coarse grained data flow approach, directly available to the programmer, instead of &quot;yet another command stream based von Neumann machine&quot;, imho.<p>(Actually something that is in parts already at the heart of modern CPUs; only that nothing of that is available directly to the programmer, where it would be actually useful, which is utter nonsense of course; and that it&#x27;s not reconfigurable; the compiler can&#x27;t construct pipelines on the fly; not even the hardware build-in JIT, which can be found in every modern CPU, which tries to translate that misfortunate command stream into a data-flow graph inside the CPU as good as it can—of course after we deleted all information about that data-flow that we collected during compilation—can&#x27;t do that ;-). Makes sense? No? Doesn&#x27;t matter. Current CPUs work like that. Because we just &quot;can&#x27;t&quot; fix our software! Thank you, C&#x2F;C++).<p>Only switching from command-stream to data-flow could overcome the von Neumann bottleneck. Also only by such a switch asynchronous clockless designs would be feasible (which are the only way to overcome the power-wall in the long run).<p>&quot;Fun&quot; thing is that to some extend such data-flow hardware is available today. Because it&#x27;s the only kind of hardware that scales into dimensions where truly powerful AI applications are possible. Only that almost nobody thinks about how to make this kind of almost maximally efficient hardware applicable to <i>general purpose</i> computations. But that would be in fact trivially simple: Just rewrite the world in some new kind of data-flow language (which needs to get invented first, of course). Ah, and when we&#x27;re at it, don&#x27;t forget to use balanced ternary for your new kind of computer—as this is the most efficient and beautiful system for computing hardware.