<story><title>Zen 5&apos;s 2-ahead branch predictor: how a 30 year old idea allows for new tricks</title><url>https://chipsandcheese.com/2024/07/26/zen-5s-2-ahead-branch-predictor-unit-how-30-year-old-idea-allows-for-new-tricks/</url></story><parent_chain><item><author>IvanAchlaqullah</author><text>It&amp;#x27;s always interesting to see decades old papers, sometimes published with little to no fanfares, suddenly becomes &amp;quot;state of the art&amp;quot; because hardware have become powerful enough.&lt;p&gt;For example Z-buffers[1]. It&amp;#x27;s used by 3d video games. When it&amp;#x27;s first published on paper, it&amp;#x27;s not even the main topic of the paper, just some side notes because it requires expensive amount of memory to run.&lt;p&gt;Turn out megabytes is quite cheap few decades latter, and every realtime 3d renderer ended up using it.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Z-buffering&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Z-buffering&lt;/a&gt;</text></item></parent_chain><comment><author>abainbridge</author><text>Another example is Low Density Parity Check Codes [1]. Discovered in 1962 by Robert Gallager but abandoned and forgotten about for decades due to being computationally impractical. It looks like there was a 38 year gap in the literature until rediscovered by David MacKay [2].&lt;p&gt;The first mainstream use was in 2003. It is now used in WiFi, Ethernet and 5G.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Low-density_parity-check_code&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Low-density_parity-check_code&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;scholar.google.com&amp;#x2F;scholar?q=%22low+density+parity+check+codes%22&amp;amp;hl=en&amp;amp;as_sdt=0%2C5&amp;amp;as_ylo=1960&amp;amp;as_yhi=1999&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;scholar.google.com&amp;#x2F;scholar?q=%22low+density+parity+c...&lt;/a&gt;</text></comment>
<story><title>Zen 5&apos;s 2-ahead branch predictor: how a 30 year old idea allows for new tricks</title><url>https://chipsandcheese.com/2024/07/26/zen-5s-2-ahead-branch-predictor-unit-how-30-year-old-idea-allows-for-new-tricks/</url></story><parent_chain><item><author>IvanAchlaqullah</author><text>It&amp;#x27;s always interesting to see decades old papers, sometimes published with little to no fanfares, suddenly becomes &amp;quot;state of the art&amp;quot; because hardware have become powerful enough.&lt;p&gt;For example Z-buffers[1]. It&amp;#x27;s used by 3d video games. When it&amp;#x27;s first published on paper, it&amp;#x27;s not even the main topic of the paper, just some side notes because it requires expensive amount of memory to run.&lt;p&gt;Turn out megabytes is quite cheap few decades latter, and every realtime 3d renderer ended up using it.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Z-buffering&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Z-buffering&lt;/a&gt;</text></item></parent_chain><comment><author>The_Colonel</author><text>&amp;gt; suddenly becomes &amp;quot;state of the art&amp;quot; because hardware have become powerful enough.&lt;p&gt;I&amp;#x27;d rather say that we were capable of such a design for several decades, but only now the set of trade-offs currently in-place made this attractive. Single core performance was stifled in the last 2 decades by prioritizing horizontal scaling (more cores), thus the complexity &amp;#x2F; die area of each individual core became a concern. I imagine if this trend did not take place for some reason, and the CPU designers primarily pursued single core performance, we&amp;#x27;d see implementation much sooner.&lt;p&gt;Regarding the Z-buffer, I kind of get that this would appear as a side note, it&amp;#x27;s a simple concept. Perhaps even better example is ray tracing - the concept is even quite obvious to people without 3D graphics background, but it was just impractical (for real-time rendering) in terms of performance until recently. What I find interesting is that we haven&amp;#x27;t found a simpler approach to approximate true to life rendering and need to fallback on this old, sort of naive (and expensive) solution.</text></comment>