<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Chip Insights]]></title><description><![CDATA[Semiconductor Industry Deep Dives]]></description><link>https://chipinsights.net</link><image><url>https://substackcdn.com/image/fetch/$s_!Z-fT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png</url><title>Chip Insights</title><link>https://chipinsights.net</link></image><generator>Substack</generator><lastBuildDate>Tue, 14 Jul 2026 03:55:34 GMT</lastBuildDate><atom:link href="https://chipinsights.net/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Bharath Suresh]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[chipinsights@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[chipinsights@substack.com]]></itunes:email><itunes:name><![CDATA[Bharath Suresh]]></itunes:name></itunes:owner><itunes:author><![CDATA[Bharath Suresh]]></itunes:author><googleplay:owner><![CDATA[chipinsights@substack.com]]></googleplay:owner><googleplay:email><![CDATA[chipinsights@substack.com]]></googleplay:email><googleplay:author><![CDATA[Bharath Suresh]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Search for the Perfect Microarchitecture]]></title><description><![CDATA[Understanding Area, Power, and Performance using TinyXPU]]></description><link>https://chipinsights.net/p/the-search-for-the-perfect-microarchitecture</link><guid isPermaLink="false">https://chipinsights.net/p/the-search-for-the-perfect-microarchitecture</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sun, 12 Jul 2026 21:57:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/234441d0-74b7-40e2-915d-0edd88f0c695_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>TinyXPU is back!</span></p><p><span>In our </span><a href="https://chipinsights.net/p/the-art-of-architectural-analysis"><span>last post</span></a><span>, Avik and I explored the tradeoffs between utilization, throughput, and latency. We first looked at these as abstract concepts, and then related them back to the systolic-array based </span><a href="https://github.com/avikde/tiny-xpu"><span>TinyXPU accelerator we are building</span></a><span>. This post follows a similar format, but shifts our focus deeper into the hardware side. (Or, as </span><a href="https://chipinsights.net/i/187337389/the-push-and-the-pull"><span>Harry would say</span></a><span>, this is where the real push begins.)</span></p><p><span>So far, we&#8217;ve been thinking primarily about architecture. We decided what TinyXPU should do, how data should move through the array, and how different architectural choices affect performance. This time, we&#8217;ll look at the three metrics that keep chip designers up at night: </span><strong><span>Power, Performance (Clock Frequency), and Area</span></strong><span>, commonly referred to as </span><strong><span>PPA</span></strong><span>. Before we dive into the metrics themselves, it&#8217;s worth understanding when this analysis is performed during the chip design process - because the stage at which a metric is measured determines what that number actually means.</span></p><div><hr></div><h1><span>Different stages of Microarchitectural Analysis</span></h1><p><span>There isn&#8217;t just one point where we analyze a design. As a chip moves from RTL to silicon, we repeatedly evaluate its microarchitectural characteristics. Each stage gives us a different level of accuracy, and each comes with its own tradeoff between accuracy and time left before the chip is manufactured.</span></p><ol><li><p><strong><span>Pre-Synthesis</span></strong></p></li></ol><p><span>At the pre-synthesis stage, the design exists only as RTL (Verilog/VHDL code), so PPA estimates are based on analytical models and designer intuition. They are quick to obtain, but fairly inaccurate. Recently, however, </span><a href="https://www.eetimes.com/next-gen-ai-eda-startups-have-potential-to-disrupt-design-automation/"><span>this has become a big focus of AI EDA companies</span></a><span>, with the promise of fast and accurate results.</span></p><ol start="2"><li><p><strong><span>Post-Synthesis</span></strong></p></li></ol><p><span>After synthesis, the RTL has been translated into a gate-level netlist built from standard cells (Logic gates, flip-flops, and other basic digital logic elements). This post-synthesis stage provides much more realistic estimates for area, timing, and power, while still allowing the design to be modified relatively quickly.</span></p><ol start="3"><li><p><strong><span>Post-Implementation</span></strong></p></li></ol><p><span>Implementation is the stage where the design has been placed and routed. (All standard cells are positioned exactly where they would be in the final chip.) Since the physical layout is now known, routing delays and parasitic effects are included, producing results that are much closer to what the final chip will achieve.</span></p><ol start="4"><li><p><strong><span>Post Tape-Out</span></strong></p></li></ol><p><span>Once the chip has been manufactured, measurements from real silicon provide the </span><strong><span>post-tape-out</span></strong><span> results. These are the ground truth, but they also arrive when changes are the most expensive. (Basically, a change = new chip.) Also, since we are no longer in the simulation world, we can only measure PPA at a very high granularity (i.e. One Area, Power, Frequency metric for the whole chip.)</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BC2A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BC2A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 424w, https://substackcdn.com/image/fetch/$s_!BC2A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 848w, https://substackcdn.com/image/fetch/$s_!BC2A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 1272w, https://substackcdn.com/image/fetch/$s_!BC2A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BC2A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png" width="1456" height="765" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:765,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BC2A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 424w, https://substackcdn.com/image/fetch/$s_!BC2A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 848w, https://substackcdn.com/image/fetch/$s_!BC2A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 1272w, https://substackcdn.com/image/fetch/$s_!BC2A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc985bb82-e2a9-417c-9163-20624ecefe7e_1731x909.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>Microarchitecture analysis is most common at the </span><strong><span>Post-Synthesis</span></strong><span> and </span><strong><span>Post-Implementation</span></strong><span> stage - they are sufficiently accurate, and also provide enough time to make changes to the design before the chip is manufactured. For this post, we&#8217;ll focus on </span><strong><span>post-synthesis</span></strong><span> results.</span></p><div><hr></div><h1>Tools and Setup</h1><p><span>The focus of this post is to explore microarchitecture concepts through the TinyXPU design - so details about the tools are intentionally brief. All the scripts used can be found in the </span><a href="https://github.com/avikde/tiny-xpu"><span>TinyXPU repo</span></a><span>.</span></p><p><span>Our goal was to use an entirely open-source ASIC flow for this analysis - starting with the PDK, for which we picked the Sky130 standard cell library. The RTL was first synthesized with Yosys, which generated the gate-level netlist and provided the area estimates. Then, OpenSTA was used to analyze the synthesized design, extracting both the critical path delay and vectorless power estimates. (The power analysis was available through the OpenSTA engine that ships as part of the </span><a href="https://deepwiki.com/The-OpenROAD-Project/OpenSTA/6-power-analysis"><span>OpenROAD project</span></a><span>.)</span></p><p><span>We ran a simple parameter sweep on the design, and parsed the generated logs to get important PPA metrics. Each TinyXPU configuration is defined by three design parameters.</span></p><p><span>The first is the PE array size </span><strong><span>(parameter ROWS/COLS)</span></strong><span>, which determines the number of Processing Elements (PEs) arranged in a square systolic array. (So ROWS == COLS) If you are curious about other shapes of systolic arrays, </span><a href="https://www.avikde.me/p/systolic-arrays-for-general-robotics"><span>check out this post from min{power}</span></a><span>.</span></p><p><span>The second parameter is the data width </span><strong><span>(parameter DATA_WIDTH)</span></strong><span>, which determines the precision of the input activations and weights. A larger data width allows the accelerator to represent larger numbers and improve numerical precision, but it comes at a cost, as we will see in this post.</span></p><p><span>Finally, we vary the accumulator width </span><strong><span>(parameter ACC_WIDTH)</span></strong><span>, which determines the precision of the partial sums as they propagate through the array. Since each PE performs a multiply-accumulate (MAC) operation every cycle, the accumulator is typically much wider than the inputs to avoid overflow during long accumulation chains.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-3XW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-3XW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 424w, https://substackcdn.com/image/fetch/$s_!-3XW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 848w, https://substackcdn.com/image/fetch/$s_!-3XW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 1272w, https://substackcdn.com/image/fetch/$s_!-3XW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-3XW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png" width="1122" height="1402" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1402,&quot;width&quot;:1122,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!-3XW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 424w, https://substackcdn.com/image/fetch/$s_!-3XW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 848w, https://substackcdn.com/image/fetch/$s_!-3XW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 1272w, https://substackcdn.com/image/fetch/$s_!-3XW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3256ad32-c80c-4fd0-a634-2d8cae691147_1122x1402.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1><br><span>The Cooking Analogy (Again!)</span></h1><p><span>We said the format is similar to the last post, so how can we continue without </span><a href="https://chipinsights.net/i/192536198/the-cooking-analogy"><span>the cooking analogy</span></a><span>? For the architecture discussion, the focus was: How do we boil eggs efficiently? We experimented with different strategies: boiling one egg at a time, boiling several together, or using multiple burners. Those were </span><strong><span>architectural decisions</span></strong><span>.</span></p><p><span>But when we are talking about microarchitecture, the focus changes to: </span><strong><span>Can we build a stove that delivers those results within practical constraints? </span></strong><span>Say we decided to use eight burners to boil more eggs in parallel - would a stove like that fit on the counter-top? And can the kitchen draw enough power to keep all those burners running?</span></p><blockquote><p>Such references are used sparingly throughout the post to simplify certain concepts, and are displayed as quotes going forward.</p></blockquote><div><hr></div><h1><span>Metric 1: Area</span></h1><h2><span>Quick Takes</span></h2><h3><span>What is it?</span></h3><p><span>Area measures how much space a design occupies on the chip. Larger designs require more transistors, wires, and space between them, which makes the area larger.</span></p><blockquote><p><span>In our cooking analogy, this is simply the size of the stove we need for the chosen &#8220;egg-boiling&#8221; strategy.</span></p></blockquote><h3>Why does it matter?</h3><p>Smaller chips are cheaper to manufacture, typically consume less power, and can fit in compact electronic equipment.</p><blockquote><p>A compact stove costs less and fits comfortably into a kitchen, while an oversized one may be impractical regardless of how many eggs it boils.</p></blockquote><h3>When does it not matter as much?</h3><p>Quite often these days.</p><p>Area is becoming a secondary concern in high-performance datacenter accelerators, where maximizing throughput is more important than minimizing die size and manufacturing costs. Also, you don&#8217;t need to stick your H100 GPU on a smartphone or smartglass, so a large area isn&#8217;t existential.</p><blockquote><p>In a commercial restaurant, dedicating more floor space to a larger stove may be worthwhile if it allows the kitchen to serve many more customers. </p></blockquote><div><hr></div><h2><span>TinyXPU Area Analysis</span></h2><p><span>Area is arguably the easiest PPA metric to build intuition for. Every additional piece of hardware occupies silicon, whether it is another Processing Element, larger multipliers, or bigger registers.</span></p><h3><span>Experiment 1: Area vs. PE Array Size</span></h3><p><span>Our first experiment varies the size of the systolic array while keeping the accumulator width fixed. Each colored line in the plot represents a different data width.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QBHK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QBHK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 424w, https://substackcdn.com/image/fetch/$s_!QBHK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 848w, https://substackcdn.com/image/fetch/$s_!QBHK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 1272w, https://substackcdn.com/image/fetch/$s_!QBHK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QBHK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png" width="1077" height="785" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:785,&quot;width&quot;:1077,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QBHK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 424w, https://substackcdn.com/image/fetch/$s_!QBHK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 848w, https://substackcdn.com/image/fetch/$s_!QBHK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 1272w, https://substackcdn.com/image/fetch/$s_!QBHK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eac261f-1faa-4141-ab5e-786ef9eecbfc_1077x785.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways:</span></strong><span> Two clear trends stand out. First, doubling the dimensions of the systolic array roughly quadruples the chip area because the number of Processing Elements also quadruples. Note that the area axis in this plot is logarithmic - so the actual area scales quadratically with the array size. Second, increasing the data width shifts the entire curve upward. Wider inputs require larger multipliers, adders, registers, and interconnect inside every PE, so even with the same array size, the silicon cost increases significantly.</span></p><blockquote><p><span>Returning to our cooking analogy, increasing the array size is like adding more burners to the stove, while increasing the data width is like replacing every burner with a larger, more powerful one. Both make the stove more capable, but also larger.</span></p></blockquote><div><hr></div><h3><span>Experiment 2: Area vs. Data Width</span></h3><p><span>Next, we keep the array size fixed (16x16) and vary the precision of the inputs and weights. The accumulator width is also unchanged. (32 bits)</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pO8Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pO8Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 424w, https://substackcdn.com/image/fetch/$s_!pO8Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 848w, https://substackcdn.com/image/fetch/$s_!pO8Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 1272w, https://substackcdn.com/image/fetch/$s_!pO8Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pO8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png" width="891" height="785" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:785,&quot;width&quot;:891,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pO8Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 424w, https://substackcdn.com/image/fetch/$s_!pO8Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 848w, https://substackcdn.com/image/fetch/$s_!pO8Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 1272w, https://substackcdn.com/image/fetch/$s_!pO8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b11e13d-9bd2-49bb-878b-ea489ac51449_891x785.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaway:</span></strong><span> Increasing the data width increases the complexity of every Processing Element. Wider multipliers, adders, and registers all consume additional silicon, so the effect is amplified across the entire array. Although doubling the data width doubles the number of bits, the area does not increase perfectly linearly. The main reason is that arithmetic units, particularly multipliers, become disproportionately larger as operand widths increase. (Interested readers can see the </span><a href="https://arxiv.org/html/2405.06758v1"><span>comparison between different multiplier architectures published elsewhere</span></a><span>.)</span></p><p><span>This is one reason why modern AI accelerators often prefer INT8 or even INT4 arithmetic whenever the algorithm can tolerate lower precision - in addition to reducing memory usage, they also reduce the silicon area for each processing element. (In other words, you can pack more processing elements within your chip.)</span></p><div><hr></div><h3><span>Experiment 3: Area vs. Accumulator Width</span></h3><p><span>Finally, we fix the array size (16x16) and data precision (8 bits) while varying the accumulator width.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eqm-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eqm-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 424w, https://substackcdn.com/image/fetch/$s_!eqm-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 848w, https://substackcdn.com/image/fetch/$s_!eqm-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 1272w, https://substackcdn.com/image/fetch/$s_!eqm-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eqm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png" width="891" height="785" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:785,&quot;width&quot;:891,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eqm-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 424w, https://substackcdn.com/image/fetch/$s_!eqm-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 848w, https://substackcdn.com/image/fetch/$s_!eqm-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 1272w, https://substackcdn.com/image/fetch/$s_!eqm-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb0ae231-cdfd-46dc-ad4c-ddb6d848de09_891x785.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaway:</span></strong><span> Unlike increasing the data width, increasing the accumulator width produces an almost linear increase in area. The reason is that the accumulator primarily affects the width of the adders and registers that propagate partial sums through the array, both of which scale approximately linearly with the number of bits. (Adders also don&#8217;t always scale linearly, but within the range we considered, it seems to stay linear.) To reduce area, the accumulator size should be limited to the numerical range that the workload requires.</span></p><blockquote><p><span>For an optimal stove area, make sure that the burners are as big as the pots - anything bigger results in wasted space.</span></p></blockquote><div><hr></div><h1><span>Metric 2: Clock Frequency</span></h1><h2><span>Quick Takes</span></h2><h3><span>What is it?</span></h3><p><span>Clock frequency is the maximum rate at which a design can reliably execute one clock cycle. It is determined by the longest delay through the hardware. See this Chip Insights post for details:</span></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;836680b8-74b3-4bd5-980b-da029b0ede28&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Confessions of a static timing analysis tool&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-21T15:11:11.670Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/confessions-of-a-static-timing-analysis&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:168864393,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:18,&quot;comment_count&quot;:3,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><blockquote><p><span>In our analogy, it is like how quickly the burners can heat the pot, or the rate of gas flow to the burners.</span></p></blockquote><h3><span>Why does it matter?</span></h3><p><span>A higher clock frequency allows the same hardware to perform more work per second, improving overall performance.</span></p><blockquote><p><span>Faster burners boil the eggs sooner.</span></p></blockquote><h3><span>When does it not matter as much?</span></h3><p><span>If the workload is limited by memory bandwidth, communication, or algorithmic dependencies, increasing the clock frequency may provide little benefit. Essentially, if </span><a href="https://chipinsights.net/i/192536198/concept-1-hardware-utilization"><span>utilization</span></a><span> is low, then increasing the frequency wouldn&#8217;t help much.</span></p><blockquote><p><span>If you don&#8217;t have sufficient eggs ready to be boiled in the first place, then even a faster burner won&#8217;t allow you to boil more eggs.</span></p></blockquote><div><hr></div><h2><span>TinyXPU Frequency Analysis</span></h2><p><span>Signals in a chip do not propagate instantaneously. As they pass through multiple logic gates between two flip-flops, each gate introduces a small delay. The longest of these paths, called the critical path, determines the maximum operating frequency of the design. (In other words, the clock period must be at least as long as the time it takes for the signals to propagate through this path.)</span></p><p><span>Timing analysis is typically performed by targeting a specific frequency (and clock period) and analysing the &#8220;slack&#8221;, which is the time available (positive slack), or the additional time (negative slack) needed to meet the timing requirements. If the slack is negative, the designer has two options: modify the design to ensure timing is met, or increase the clock period.</span></p><p><span>For this post, our goal is to simply analyze the clock frequency trends for different TinyXPU configurations. So we picked a clock period of 20ns for all our runs. This resulted in both positive and negative slacks across the runs, but instead of reporting the slack, we extracted the data arrival time of the critical path (the longest combinational path between two sequential elements) and used its reciprocal to estimate the maximum achievable clock frequency.</span></p><h3><span>Experiment 1: Frequency vs Accumulator Width</span></h3><p><span>Fix the data width to 8 bits, and sweep the accumulator width in the 8x8 PE array configuration.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B17f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B17f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!B17f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!B17f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!B17f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B17f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B17f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!B17f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!B17f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!B17f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3091026b-ff49-48eb-8f6a-967ad724d807_640x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways:</span></strong><span> Increasing the accumulator width has a clear impact on clock frequency. Since every multiply is followed by an accumulation, wider accumulators require wider adders on the critical path, increasing the delay through each Processing Element. Unlike the data-width experiment, this trend is almost perfectly linear. Doubling the accumulator width roughly doubles the adder delay, reducing the maximum operating frequency.</span></p><blockquote><p><span>The fastest way to boil your egg is to use a small pot on a small burner.</span></p></blockquote><div><hr></div><h3><span>Experiment 2: Frequency vs PE Array Size</span></h3><p><span>Here, we fix the data width to 8 bits, accumulator width to 32 bits, and vary the array size.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UKAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UKAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!UKAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!UKAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!UKAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UKAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UKAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!UKAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!UKAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!UKAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc80e18cd-182e-46bf-aae9-916faeaa5d00_640x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways:</span></strong><span> Perhaps the most surprising result is that increasing the array size has almost no impact on the maximum clock frequency. This is expected at the post-synthesis stage, where the critical path is contained almost entirely within a single Processing Element. (The long wires that would connect distant registers in a real chip have not yet been accounted for).</span></p><p><span>One interesting exception is the 4&#215;4 array, which achieves a noticeably lower maximum frequency than the larger configurations. At first glance, this seems counterintuitive, as the smallest design should be the fastest, right?</span></p><p><strong><span>We have a theory for why this is happening, but we&#8217;ll leave this as a fun exercise. Leave a comment if you can guess what&#8217;s causing this behavior.</span></strong></p><div><hr></div><h3><span>Experiment 3: Frequency vs Data Width</span></h3><p><span>In this plot, we measure the impact of changing data width by fixing accumulator width to 32 in a 16x16 PE array.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dWFc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dWFc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!dWFc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!dWFc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!dWFc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dWFc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dWFc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!dWFc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!dWFc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!dWFc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f0516-428a-45ca-85d9-6fda49c3fe4c_640x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways:</span></strong><span> Unlike area, the relationship between data width and maximum operating frequency is not monotonic. Although larger multipliers generally require more hardware, the synthesized critical path depends on the specific gate-level implementation chosen by the synthesis tool. Internally, the tool may restructure arithmetic logic, optimize the multiplier and accumulator differently, select alternate standard cells, or balance the surrounding combinational logic.</span></p><p><span>In our experiments, changing the operand width altered both the critical path and the logic structure generated by the optimizer. As a result, the 16-bit configuration achieved the highest operating frequency, outperforming both smaller and larger datapaths.</span></p><p><span>This was the most unexpected result in this study, but we are leaving it here to demonstrate how sensitive microarchitecture analysis could be to the underlying EDA tools and their quirks. We expect that a commercial EDA tool would be better optimized to handle 4 and 8 bit multipliers and result in a more uniform trend.</span></p><div><hr></div><h1><span>Metric 3: Power</span></h1><h2><span>Quick Takes</span></h2><h3><span>What is it?</span></h3><p><span>Power measures the rate at which a chip consumes electrical energy while operating. It includes both the energy spent performing computation and the energy consumed even when parts of the chip are idle. See this Chip Insights post for details about power analysis:</span></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;6f465a51-8953-4b1b-81c9-d8dd7101dd67&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Power essentials for a chip architect&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-06-07T02:37:32.387Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/power-essentials-for-a-chip-architect&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:165388326,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:35,&quot;comment_count&quot;:3,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><blockquote><p><span>In the kitchen, this is the gas required to keep the stove running.</span></p></blockquote><h3><span>Why does it matter?</span></h3><p><span>Power determines battery life in mobile devices, electricity costs in datacenters, and how much heat the cooling system must remove.</span></p><blockquote><p><span>If you use an extremely power-hungry stove, you will pay more in utility bills.</span></p></blockquote><h3><span>When does it not matter as much?</span></h3><p><span>It always matters, but may not be existential for new architectures (as they are still experimental and not widely deployed), and performance critical applications - as long as it stays </span><a href="https://chipinsights.net/i/165388326/peak-power"><span>below a certain threshold</span></a><span>.</span></p><blockquote><p><span>Say you are having people over for the weekend, and you need to boil a lot of eggs, you might not care how much gas the stove consumes.</span></p></blockquote><div><hr></div><h2><span>TinyXPU Power Analysis</span></h2><p><span>To estimate power consumption, each synthesized design was analyzed using OpenROAD&#8217;s built-in power analysis. For simplicity, instead of picking a specific workload, the analysis was performed in vectorless mode with a toggle rate of 0.5. This means that, on average, every signal is assumed to have a 50% probability of switching on each clock cycle, providing a rough estimate of dynamic activity across the design. </span>(we explain the limitation of this in an upcoming section.)</p><h3><span>Experiment 1: Power vs PE Array Size</span></h3><p><span>With input precision of 8 bits and accumulator width of 32 bits, we look at how power changes for different PE array configurations.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e55a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e55a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 424w, https://substackcdn.com/image/fetch/$s_!e55a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 848w, https://substackcdn.com/image/fetch/$s_!e55a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 1272w, https://substackcdn.com/image/fetch/$s_!e55a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e55a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png" width="1000" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e55a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 424w, https://substackcdn.com/image/fetch/$s_!e55a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 848w, https://substackcdn.com/image/fetch/$s_!e55a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 1272w, https://substackcdn.com/image/fetch/$s_!e55a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c78506c-6460-4c8e-958d-1df822df7e6a_1000x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways:</span></strong><span> Unlike clock frequency, power increases dramatically as the PE array grows. This is expected because every additional Processing Element introduces another multiplier, accumulator, registers, and routing logic that consume power whenever they switch. The increase is particularly steep because the total number of processing elements grows quadratically with the array dimension. (If you remember, we </span><a href="https://chipinsights.net/i/192536198/vertical-axis-peak-throughput"><span>did exactly this in our architectural analysis post to claim a higher throughput</span></a><span> - we are paying the cost now!)</span></p><blockquote><p><span>Imagine expanding from a stove with 16 burners to one with 64, then 256, and eventually 1024. Even if each burner consumes the same amount of energy, operating many more of them at once dramatically increases the total power required.</span></p></blockquote><div><hr></div><h3><span>Experiment 2: Power vs Data Width</span></h3><p><span>We vary data width in a 8x8 PE array with 32 bits accumulator width.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!stH-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!stH-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 424w, https://substackcdn.com/image/fetch/$s_!stH-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 848w, https://substackcdn.com/image/fetch/$s_!stH-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 1272w, https://substackcdn.com/image/fetch/$s_!stH-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!stH-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png" width="1000" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!stH-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 424w, https://substackcdn.com/image/fetch/$s_!stH-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 848w, https://substackcdn.com/image/fetch/$s_!stH-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 1272w, https://substackcdn.com/image/fetch/$s_!stH-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff01320e0-7fa7-4cb8-9676-8bb9a85f945e_1000x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways: </span></strong><span>Increasing the data width also raises the total power consumption, although for a different reason. Wider operands require larger multipliers, wider registers, and more combinational logic inside every Processing Element. These additional transistors contribute both more capacitance and more switching activity, increasing the energy consumed on every clock cycle.</span></p><p><span>Unlike the frequency experiment, which showed an irregular trend due to synthesis optimizations, the power results follow a much more intuitive pattern. Regardless of how the synthesis tool implements the arithmetic, wider datapaths require more hardware and therefore consume more power.</span></p><div><hr></div><h3><span>Experiment 3: Power vs Accumulator Width</span></h3><p><span>8 bits of data width, 8x8 PE array configuration.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xbJG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xbJG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 424w, https://substackcdn.com/image/fetch/$s_!xbJG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 848w, https://substackcdn.com/image/fetch/$s_!xbJG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 1272w, https://substackcdn.com/image/fetch/$s_!xbJG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xbJG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png" width="1000" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xbJG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 424w, https://substackcdn.com/image/fetch/$s_!xbJG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 848w, https://substackcdn.com/image/fetch/$s_!xbJG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 1272w, https://substackcdn.com/image/fetch/$s_!xbJG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440f3d94-86f9-4edf-9af7-af0635b3d1bb_1000x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><span>Takeaways:</span></strong><span> The accumulator width has a similarly predictable effect on power. Wider accumulators require larger adders, wider registers, and additional interconnect, all of which contribute to higher switching capacitance, and hence larger power consumption. As the accumulator width increases, every processing element becomes more expensive to operate, causing the total accelerator power to increase steadily.</span></p><blockquote><p><span>This is like replacing every burner with a larger commercial-grade burner. The stove now requires more energy to perform its job, even though the total number of burners remains unchanged.</span></p></blockquote><div><hr></div><h1><span>Analyzing All Metrics Together</span></h1><p><span>Up to this point, we have examined area, frequency, and power independently. In practice, however, hardware architects rarely optimize a single metric in isolation. Instead, they explore a design space, where every point represents a different implementation with its own trade-offs. This plot compares the estimated computational performance of each TinyXPU configuration against its total power consumption. Here, performance is estimated as the product of the number of Processing Elements (PEs) and the maximum operating frequency, and is normalized to the smallest design for easier comparison.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u3ty!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u3ty!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 424w, https://substackcdn.com/image/fetch/$s_!u3ty!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 848w, https://substackcdn.com/image/fetch/$s_!u3ty!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 1272w, https://substackcdn.com/image/fetch/$s_!u3ty!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u3ty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png" width="1456" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u3ty!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 424w, https://substackcdn.com/image/fetch/$s_!u3ty!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 848w, https://substackcdn.com/image/fetch/$s_!u3ty!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 1272w, https://substackcdn.com/image/fetch/$s_!u3ty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6efcf38-f676-4944-8c10-11198e4e7db2_2048x1527.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>The blue points (A and B) illustrate the concept of a dominated design. Point A corresponds to a 16&#215;16 PE array with an 8-bit data width and a 32-bit accumulator, while point B uses the same array size and accumulator width but increases the data width to 16 bits. Although B consumes significantly more power, it delivers only a modest increase in performance. Since A achieves nearly the same throughput while using less power, B is said to be dominated. More generally, a design is dominated if another configuration provides equal or better performance while consuming equal or less power. Dominated designs are generally discarded because there is always a better alternative.</span></p><p><span>The red points connected by the red line form the Pareto frontier, representing the set of configurations that are not dominated by any other configuration. Every point on this frontier represents a valid design choice, and moving along the frontier requires trading one metric for another.</span></p><p><span>The green points (C and D) on the Pareto frontier are interesting. Point C corresponds to a 16&#215;16 PE array with a 4-bit data width and a 16-bit accumulator, while D increases only the data width to 8 bits, keeping the array size and accumulator width unchanged. This change increases the normalized performance by only about 3%, but more than doubles the total power consumption. Although neither design dominates the other, the small performance increase comes at a significant energy cost along this part of the Pareto frontier.</span></p><p><span>Finally, notice that the Pareto frontier consists of discrete points rather than a smooth curve. Unlike software, hardware parameters such as array dimensions, data width, and accumulator width can only take on a finite number of valid values. We cannot build a 17-bit datapath or a 20&#215;20 systolic array simply because it would lie on a more favorable part of the curve. Instead, hardware architects evaluate a finite set of candidate designs and select the configuration that best balances performance, power, and area for their target application.</span></p><div><hr></div><h1><strong><span>Some Practical Considerations</span></strong></h1><p><span>While these results were meant to introduce microarchitectural analysis and highlight some high-level trends, they do not capture many physical effects that appear later in the design flow.</span></p><p><span>For area, the reported values represent the total area of the synthesized standard cells, not the final chip size after physical implementation. During placement, additional whitespace is introduced to satisfy routing, congestion, clock tree synthesis, and design rule constraints. Consequently, the final die area is typically larger than the synthesized cell area, especially for larger designs where routing becomes more challenging.</span></p><p><span>For timing, the analysis assumes ideal interconnects. Since the design has not yet been placed and routed, the delays introduced by long wires, clock distribution, and routing parasitics are largely absent. This explains why the maximum operating frequency remains almost independent of the PE array size in our experiments. After place-and-route, these interconnect delays would become a much larger contributor to the critical path, particularly as the array grows.</span></p><p><span>Finally, the power results should be interpreted as rough estimates rather than accurate measurements. The analysis is vectorless, meaning the EDA tools assume a fixed switching activity instead of using real workload traces. As a result, the reported dynamic power can differ significantly from what would be observed under actual operation. In practice, accurate power analysis requires realistic switching activity (SAIF or VCD files), along with extracted interconnect parasitics after place-and-route. Process-voltage-temperature (PVT) variations and clock tree synthesis also have a significant impact on the final power consumption.</span></p><div><hr></div><h1>Why does all this matter to an Algorithm Designer?</h1><p>If you&#8217;re an algorithm designer and you&#8217;ve made it this far, we hope this final message will make it all worth it.</p><p>Architectural ideas are often evaluated using simple models. If doubling the number of processing elements doubles throughput, or increasing the buffer size reduces memory traffic, the idea looks like a clear win. But once someone begins implementing that architecture, physical constraints start to appear.</p><p>A larger systolic array requires more wires connecting processing elements, which makes routing more difficult and can reduce the maximum clock frequency. Adding more parallel compute units increases throughput, but it also increases power consumption and can make the chip too large or too expensive to manufacture. Even something as simple as adding another pipeline stage may improve clock frequency while increasing latency. These tradeoffs are invisible at the architectural level, but they become impossible to ignore during microarchitectural design.</p><p>This doesn&#8217;t mean algorithm designers need to become microarchitects. But keeping one eye on these microarchitectural constraints can lead to better architectural decisions from the very beginning. An algorithm that is designed with area, clock frequency, and power in mind is far more likely to become an efficient hardware implementation. </p><p>That is the essence of hardware-software co-design that we aimed to provide through this series of posts. Here are the previous parts:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ea0fdb34-f2d4-44f7-89a2-13abc5d57a9b&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping algorithms to custom silicon - Part 1&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Research and commercialization of safe, efficient robotics. Adjunct Prof @ UPenn, Chief Science Officer @ Ghost Robotics.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0b85a25-ef27-433f-b83d-46a65f29535d_1909x1909.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-02-09T00:15:44.482Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f063e77-8634-49db-83c3-bab1a1dff047_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:187337389,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:33,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9d027ff6-8225-49de-88a4-ea130ea28f7b&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping Algorithms to Custom Silicon - Part 2&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Research and commercialization of safe, efficient robotics. Adjunct Prof @ UPenn, Chief Science Officer @ Ghost Robotics.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0b85a25-ef27-433f-b83d-46a65f29535d_1909x1909.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-15T18:42:10.275Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6954c585-f006-40f3-a68b-78a4b1a7e52d_1536x948.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon-efd&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191037416,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:13,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5bd97bd8-6cd0-4330-b850-4e9114b38a58&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Art of Architectural Analysis: Utilization, Throughput, Latency&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Research and commercialization of safe, efficient robotics. Adjunct Prof @ UPenn, Chief Science Officer @ Ghost Robotics.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0b85a25-ef27-433f-b83d-46a65f29535d_1909x1909.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-30T00:48:09.475Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ab5082a-13dd-4059-b346-316fd31def8f_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/the-art-of-architectural-analysis&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:192536198,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:16,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p><span>Subscribe to </span><a href="https://chipinsights.net/">Chip Insights</a><span> and </span><a href="https://www.avikde.me/">min{power}</a><span> for more and let us know if there is something else you would like us to explore.</span></p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Introducing Context Caching]]></title><description><![CDATA[A new video format on Chip Insights]]></description><link>https://chipinsights.net/p/introducing-context-caching</link><guid isPermaLink="false">https://chipinsights.net/p/introducing-context-caching</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 22 Jun 2026 04:31:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e5f85dd9-e589-441c-88c2-d54a3ddbe965_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Like a lot of you, I consume a lot of content related to semiconductors: research papers, industry news, company blogs, substacks, and social media posts - the list is endless.</p><p>But lately, I&#8217;ve gotten into this bad habit: I read something, I learn something new, and then I forget about it. I struggle to meaningfully retain information from whatever I consume. </p><p>That&#8217;s the motivation behind a new Chip Insights series I&#8217;m experimenting with: <strong>Context Caching</strong>.</p><p>The name comes from two worlds that I spend a lot of time thinking about. In AI, context determines what information is available to a model at any given moment. In computer architecture, caches keep the most useful data close at hand while less relevant information gets evicted.</p><p>Context Caching is my attempt to do the same thing for semiconductors. Every week, I read through semiconductor industry content and ask two questions:</p><ul><li><p>What idea deserves a place in my mental cache?</p></li><li><p>What idea is becoming less relevant and should be evicted?</p></li></ul><p>In this process, I hope to develop a mental model about the semiconductor industry (and hopefully provide some values to my viewers as well.)</p><p>I&#8217;m also using this as an opportunity to experiment with a new format: video.</p><p>Chip Insights started as a writing project, and long-form writing will continue to be the core of what I do. There&#8217;s no substitute for a detailed deep dive when you&#8217;re trying to understand an architecture, a technology trend, or a historical system.</p><p>But long-form writing, by its very nature, takes a lot of time for me to produce, and also has a significant barrier to entry for new readers. Sometimes an interesting observation, connection, or mental model can be communicated in a minute or two. Video feels like a more accessible format for those moments, and frankly, I&#8217;m curious to see if I enjoy creating it.</p><p>That&#8217;s really all I wanted to share in this post. Writing posts like this helps me convince myself about the &#8220;why&#8221; of doing something new, so thank you for being my audience in that process.</p><p>As I always say about my posts, this is very much an experiment, so I&#8217;d love your feedback about this new series. Here&#8217;s the link to the playlist:</p><div id="youtube2-QORgn8oUaxA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;QORgn8oUaxA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/QORgn8oUaxA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Powering the Machine]]></title><description><![CDATA[Tales of a Time Travelling Computer Architect]]></description><link>https://chipinsights.net/p/powering-the-machine</link><guid isPermaLink="false">https://chipinsights.net/p/powering-the-machine</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 08 Jun 2026 04:49:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d1c63d04-6e90-45eb-aa23-588fffe7b41b_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p></p><p>In a recent post (well not so recent anymore, sorry for the long break), I presented my case for why the story of ENIAC is relevant in the context of today&#8217;s AI datacenter buildout. Check it out if you already haven&#8217;t.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a5fe0225-7201-4c67-aa3a-cf2847c03746&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;ENIAC and the Workload Problem&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-09T05:31:06.672Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6f6da59c-dccd-4de4-9008-b5938c7293d2_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/eniac-and-the-workload-problem-part&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:190356256,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:12,&quot;comment_count&quot;:4,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I left the post with two questions I wanted to explore:</p><ol><li><p>Which compute infrastructure can last the longest before we need a clean reset?</p></li><li><p>How effectively can we map future workloads onto the infrastructure we are building today?</p></li></ol><p>At first glance, these questions seem to be about chips, algorithms, and software. But history suggests that the answer often lies elsewhere. Every major shift in computing eventually collides with the physical realities of the world around it. How is it powered? How is it cooled? Where is it housed? What infrastructure must exist before the machine can deliver any useful work?</p><p>That is why I want to begin this exploration not with computation itself, but with the infrastructure that enables it.</p><p>In the 1940s, the builders of ENIAC were not just inventing a new computer. They were discovering what it meant to power, cool, and operate a machine unlike anything that had existed before. Today, as AI companies race to build ever larger datacenters, similar questions are once again coming into focus. The answers, however, may be very different.</p><p>To understand why, I&#8217;d like to tell a story.</p><div><hr></div><p>Setup complete after rewiring. Preparing for Test #23 for the evaluation of errors in axially symmetric supersonic airflow.</p><p>As Homer Spence wrote down these words in the ENIAC service log book, he felt a sense of relief, with a slight dose of anxiety. He had just fixed another loose blob of solder on the ENIAC&#8217;s Accumulator 14 panel, and was one step closer to running the ENIAC without errors.</p><p>The irony of the situation always made Homer chuckle. The fate of the world&#8217;s most complex electronic device, what many considered an &#8220;artificial brain&#8221;, relied on such craft work. But this craft work had been going on for a week now, and Homer really hoped this was it.</p><p>He held up the control box and started ENIAC while an operator monitored the panels. The machine slowly came alive. Thousands of vacuum tubes began to glow with a familiar orange hue, and the room grew noticeably warmer. Homer smiled. After weeks of troubleshooting, the glow was reassuring. It meant the machine was alive.</p><p>Then something felt wrong.</p><p>The brightness kept increasing.</p><p>The room became hotter.</p><p>Homer was sweating profusely as if he was standing in front of a raging forest fire. As his hand reached for the stop button on the control box, his entire field of view turned white.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!otgP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!otgP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!otgP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!otgP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!otgP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!otgP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png" width="1402" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3288867,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/201097809?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!otgP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!otgP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!otgP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!otgP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d810bd3-32cf-424c-80fd-79b026f3869d_1402x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The next time Homer opened his eyes, the bright white light was replaced by complete darkness. As he looked around, the familiar contours calmed him down. He was laying on the sofa-bed he had placed in his office for all the late nights he spent at work. Maybe he was completely exhausted and blacked out during the last test, and someone helped him to his office.</p><p>Homer checked for burn wounds and was relieved to find none. The concern was not irrational. ENIAC consumed more than 150 kilowatts during normal operation, and everyone on the project knew what that could mean. A fire the previous year had damaged one of the panels after insulation around a power wire ignited. Ever since, discussions about transformers, fuses, and power distribution had become almost as common as discussions about computation itself.</p><p>It was late, and Homer decided to head home. But first, he wanted to check that everything was fine in the ENIAC room.</p><p>He grabbed his notebook and opened the office door.</p><p>Homer expected to see the familiar rows of ENIAC panels stretching across the room.</p><p>Instead, he froze.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j3-D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j3-D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!j3-D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!j3-D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!j3-D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j3-D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png" width="1402" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2458167,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/201097809?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j3-D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!j3-D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!j3-D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!j3-D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F619a3183-3702-46c8-8efd-54fdd4d89ded_1402x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A modern datacenter is an engineering marvel. The space itself is nothing to write home about. White walls, bright lights, and a constant hum from equipment hidden somewhere beyond sight. Yet Homer immediately sensed that this was not a building designed for people.</p><p>The room was filled with tall rectangular cabinets arranged in perfectly ordered rows. (Each of these rectangular containers, not too dissimilar to a refrigerator, is called a server rack.) They stood shoulder to shoulder, forming long corridors that stretched farther than Homer could see. At first glance, they reminded him of ENIAC&#8217;s panels. But where ENIAC&#8217;s cabinets exposed switches, cables, and glowing vacuum tubes, these appeared sealed and anonymous.</p><p>From a distance, the fronts of the cabinets looked alive. Hundreds of tiny lights blinked continuously, each following a rhythm known only to the machine. Homer found himself staring at them. They reminded him of the warm orange glow of vacuum tubes, except these lights were colder, sharper, and far more numerous. A closer look revealed multiple rows, each holding a small rectangular box. (Each of these is called a server.) A thick bunch of cables could also be seen leaving the top of each server rack and disappearing into vents in the ceiling.</p><p>Homer Spence had seen nothing like this before. The ENIAC room he expected to find on the other side of the door had vanished, replaced by what appeared to be an endless maze of cabinets, cables, and blinking lights. For a brief moment, he wondered whether he was still dreaming. As he stood frozen in the middle of the aisle, a voice interrupted his thoughts.</p><p>&#8220;Hi there. Can I help you?&#8221;</p><p>Homer turned to find a bespectacled man wearing a black leather jacket. Still trying to make sense of his surroundings, Homer skipped the pleasantries.</p><p>&#8220;Where am I?&#8221;</p><p>The man, now smiling like a proud father, responded.</p><p>&#8220;You&#8217;re standing in one of the world&#8217;s largest AI datacenters.&#8221;</p><p>Homer looked around once more.</p><p>&#8220;This entire building?&#8221;</p><p>The man laughed.</p><p>&#8220;No. This is just one hall.&#8221;</p><p>For the first time that night, Homer felt genuinely unsettled.</p><p>Back at the Moore School, ENIAC occupied a single room. Every panel, every accumulator, every cable was within walking distance. Here, the machine seemed to extend far beyond the limits of his vision.</p><p>The man continued.</p><p>&#8220;This facility has a power capacity of five gigawatts. When fully populated, it will contain more than five hundred thousand Rubin Ultra processors. Right now, we&#8217;re using it to train one of the largest artificial intelligence models ever built.&#8221;</p><p>Homer barely registered anything after &#8220;five gigawatts&#8221;. The number echoed in his head.</p><p>When ENIAC was being designed, supplying 150 kilowatts of power had proven to be a formidable challenge.</p><p>&#8220;How is this facility powered?&#8221; Homer asked.</p><p>&#8220;Powering this facility is no mean feat. We started with utility power from the grid - the same thing that&#8217;s used in homes around the world. But the local grid simply cannot support our capacity yet. So we had to improvise and build our own power plants right next to this datacenter. They are mostly turbines powered by natural gas, which is often how the central grid is powered anyway. But we plan to move to renewable sources like solar and wind, and are also exploring nuclear power as an option.&#8221;</p><p>The detailed answer surprised him. When ENIAC was being designed, power infrastructure was largely a means to an end. The objective was to build the computer. Everything else followed from that. Only later did the team discover how difficult it would be to supply 150 kilowatts reliably to a machine filled with nearly eighteen thousand vacuum tubes.</p><p>The challenge became apparent when the time came to procure the transformers. Different parts of ENIAC operated at different voltage levels, ultimately requiring twenty-eight separate transformer units. Securing them proved far more difficult than anyone anticipated. General Electric could not deliver one soon due to other military commitments, so they paid three times as much to have Maguire Industries expedite the process. Maguire only shipped 4 out of the 28 units promised, and the rushed timelines also meant that certain specifications about the insulation were ignored. Eventually, the order was fulfilled by J. J. Nothelfer Winding Laboratories and the testing could only begin after a long wait.</p><p>Even then, the challenges were not over. The reliability of ENIAC depended heavily on the quality of the incoming power. Voltage fluctuations from the utility grid affected both the accuracy and lifetime of the vacuum tubes, forcing the engineers to develop custom equipment to stabilize the supply. Years later, they would go even further, installing a dynamo coupled to a massive flywheel to smooth out power disturbances. Yet even this system remained connected to the city&#8217;s electrical grid. The objective was never to generate power independently. It was simply to make utility power good enough for computation.</p><p>Homer realized that the ENIAC team had treated power as a dependency of the computer. The engineers of the future (where he was now convinced he was) appeared to be doing the opposite.</p><p>As the conversation continued, Homer became increasingly bothered by something. Standing in the ENIAC room for extended periods was an uncomfortable ordeal. ENIAC&#8217;s vacuum tubes, not too dissimilar to incandescent light bulbs, produced enormous amounts of heat and quickly transformed the room into something resembling a tropical summer afternoon. Yet he was standing in a facility that consumed over 30,000 times more power, and the air felt no different than an office building.</p><p>Where was all the heat going?</p><p>&#8220;How do you keep this place cool?&#8221; Homer finally asked.</p><p>The man smiled and led him down one of the narrow aisles between the server racks. At first glance, the racks appeared quiet and uneventful. But as Homer looked more closely, he noticed thick pipes running overhead. Some disappeared directly into the racks, while others connected to even larger pipes that stretched across the building.</p><p>The man pointed toward them.</p><p>&#8220;Air is simply not efficient enough at these power levels,&#8221; he explained. &#8220;Traditional datacenters for cloud storage and web hosting typically operated at power densities of five to ten kilowatts per rack, where air cooling was sufficient. These racks contain many high-performance processors operating together and can exceed one hundred kilowatts per rack. At that point, liquid cooling becomes unavoidable.&#8221;</p><p>He paused before continuing.</p><p>&#8220;But that&#8217;s only part of the story.&#8221;</p><p>Homer listened carefully.</p><p>&#8220;Building this cooling system was enormously expensive. The pipes, pumps, heat exchangers, cooling towers, and control systems cost far more than the cooling equipment found in traditional datacenters. But once the infrastructure is in place, liquid cooling removes heat much more efficiently. Over the lifetime of the facility, the operating costs can be significantly lower.&#8221;</p><p>Homer was unfamiliar with this way of thinking. During the development of ENIAC, cooling was never approached this way. The machine was cooled by moving air through the room because it worked and because it was inexpensive. If the room became too warm, you opened a vent, added another fan, or simply endured the discomfort. Most of the cost was incurred only when the machine was operating - which was not very common due to various other limitations.</p><p>Here, the philosophy seemed reversed. The engineers had spent enormous sums of money even before a single calculation was performed. This facility had been designed around an expectation that workloads would run continuously. This would justify the initial costs.</p><div><hr></div><p>For several minutes, neither man spoke. Homer couldn&#8217;t help but be impressed by everything he heard. He had spent many nights with the ENIAC team worrying about the challenges of power delivery, cooling, and maintenance. This often slowed the progress of making ENIAC better at the computations it was built for.</p><p>By planning for power and cooling years in advance, these engineers were building computers that could scale far beyond anything imaginable in ENIAC&#8217;s era. But Homer couldn&#8217;t shake a lingering thought. Every transformer ordered for ENIAC had a purpose. Every vacuum tube installed would eventually perform a calculation. The luxury of building infrastructure years ahead of demand did not exist.</p><p>He turned to the man with the question that started everything.</p><p>&#8220;Where am I?&#8221;</p><div><hr></div><h1><strong>A few concrete takeaways</strong></h1><p>I have written this post in an experimental format - some of you may like it, others won&#8217;t. (I&#8217;m happy to hear from you in the comments either way.)</p><p>But I want to explicitly call out a few lessons that stood out for me:</p><h2><strong>1. Compute does not scale alone</strong></h2><p>Power and cooling are first-order design variables. It is becoming increasingly difficult to separate the computer architecture from the infrastructure. A specific architecture in the datacenter exists due to its supporting infrastructure, and vice-versa.</p><h2><strong>2. Infrastructure choices are really workload assumptions in disguise.</strong></h2><p>ENIAC&#8217;s infrastructure was built around a machine that spent much of its life idle, being debugged, rewired, or waiting for the next problem. Most of the cost was incurred when the machine was actually running.</p><p>Modern AI datacenters are built around the opposite assumption. Training workloads can keep hundreds of thousands of processors busy at near 100% utilization for weeks or months at a time - this has made it seem more rational to spend enormous amounts on power delivery and liquid cooling infrastructure upfront.</p><h2><strong>3. The bottleneck is shifting from execution to foresight.</strong></h2><p>ENIAC engineers had to solve engineering problems in real time. Modern datacenter builders increasingly have to solve prediction problems: how much power, cooling, and demand will exist years before workloads arrive.</p><div><hr></div><p>That concludes Part 2 of this series. If you like what I just said, follow along for upcoming posts in this series by subscribing below:</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h1>References</h1><p>My primary reference for this study is the book &#8220;ENIAC in Action&#8221; which goes into an impressive level of detail about many aspects of this computer.</p><p>Here are some other references I used for this post:</p><ul><li><p><a href="https://blogs.microsoft.com/blog/2025/09/18/inside-the-worlds-most-powerful-ai-datacenter/">Inside the world&#8217;s most powerful AI datacenter - The Official Microsoft Blog</a></p></li><li><p><a href="https://techcrunch.com/2025/07/14/mark-zuckerberg-says-meta-is-building-a-5gw-ai-data-center/?utm_source=chatgpt.com">Mark Zuckerberg says Meta is building a 5GW AI data center | TechCrunch</a></p></li><li><p><a href="https://newsletter.semianalysis.com/p/how-ai-labs-are-solving-the-power">(2) How AI Labs Are Solving the Power Crisis: The Onsite Gas Deep Dive</a></p></li><li><p><a href="https://www.mdpi.com/1996-1073/19/3/722">Power for AI Data Centers: Energy Demand, Grid Impacts, Challenges and Perspectives</a></p></li></ul><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Art of Architectural Analysis: Utilization, Throughput, Latency]]></title><description><![CDATA[Putting TinyXPU Under the Microscope]]></description><link>https://chipinsights.net/p/the-art-of-architectural-analysis</link><guid isPermaLink="false">https://chipinsights.net/p/the-art-of-architectural-analysis</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 30 Mar 2026 00:48:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9ab5082a-13dd-4059-b346-316fd31def8f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>In this post, we introduce the art of architectural analysis through three key concepts and use them to evaluate the <a href="https://github.com/avikde/tiny-xpu">TinyXPU architecture</a> - a systolic array based 2D matrix multiplication accelerator we designed to study the evolving trends in custom silicon. The ability to analyze architectures is becoming an increasingly valuable skill - especially in a world of rapidly growing custom architectures. So, whether you&#8217;re a software or hardware engineer, you will benefit from reading about these concepts.</p><p>If you are new here, this post is part of our ongoing series on custom accelerators. In the first part of this series, we motivated the need for a bridge between a software engineer (Alice) to a new architecture developed by a hardware engineer (Harry).</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0fb3b5a2-59a2-46ab-8a9f-2ec6faf33829&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping algorithms to custom silicon - Part 1&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-02-09T00:15:44.482Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f063e77-8634-49db-83c3-bab1a1dff047_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:187337389,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:26,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>In the second part, we introduced our <a href="https://github.com/avikde/tiny-xpu">TinyXPU project</a> - a practical demonstration of the hardware-software bridge.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;65cbb397-c80a-46e9-9cde-28b8681c5da9&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping Algorithms to Custom Silicon - Part 2&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-15T18:42:10.275Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6954c585-f006-40f3-a68b-78a4b1a7e52d_1536x948.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon-efd&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191037416,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:10,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>While we recommend reading the first two parts, it&#8217;s not a prerequisite as this post takes a slightly different direction. </p><p></p><h1>Why does Architectural Analysis matter?</h1><p>So far, we&#8217;ve focused on how Alice and Harry can work together more effectively. Using a framework like ONNX, we showed that Alice can now target many different architectures (and many different Harrys) with relative ease.</p><p>This naturally leads to the next question: <strong>How does Alice decide which Harry to choose?</strong></p><p>At first glance, the answer seems simple: <strong>Alice would pick the &#8220;best architecture&#8221; for her algorithm. </strong>But what does &#8220;best&#8221; actually mean?</p><p>From Alice&#8217;s perspective, it could mean:</p><ul><li><p>I want my algorithm to finish faster</p></li><li><p>I want to start seeing outputs as early as possible</p></li><li><p>I want it to fit within a smartwatch, a robot, or a datacenter</p></li></ul><p>From Harry&#8217;s perspective, the architecture might be &#8220;best&#8221; because:</p><ul><li><p>It reduces the number of arithmetic operations or data movement</p></li><li><p>It runs at a higher clock frequency than competitors</p></li><li><p>It occupies less chip area than other implementations</p></li></ul><p>Clearly, Alice and Harry are both trying to communicate. But they are speaking completely different languages. If Harry wants to convince Alice to use his architecture, and Alice wants to make the right choice, they need a shared vocabulary for analyzing architectures. This is where understanding concepts in architectural analysis becomes important.</p><div><hr></div><p></p><h1><strong>The Cooking Analogy</strong></h1><p>To build intuition for the ideas in this post, we&#8217;ll use a simple analogy: cooking.</p><p>More specifically:</p><ul><li><p><strong>The Algorithm:</strong> Boiling eggs</p></li><li><p><strong>The Hardware:</strong> A kitchen stove</p></li></ul><p>Boiling eggs is simple, but it can be done in many different ways.</p><p>You might cook eggs one at a time or in batches. You might prioritize getting the first egg ready as quickly as possible or finishing all of them as fast as you can.</p><p>Similarly, each stove is different. One might have more burners. Another might heat up faster. A third might support a larger pot but heats up slower.</p><p>This is not too different from the problem Alice and Harry are trying to solve.</p><blockquote><p>For clarity, all future references to this analogy are displayed as quotes.</p></blockquote><div><hr></div><p></p><h1><strong>Recap: The TinyXPU Terminology</strong></h1><p>We briefly introduced the parameters used in the <a href="https://github.com/avikde/tiny-xpu">TinyXPU project</a> and the matrix sizes in <a href="https://chipinsights.net/i/191037416/the-hardware-architecture">part 2 of our series of posts</a>. Here&#8217;s a quick recap of variables that will be used in the rest of the post.</p><ul><li><p>The Input Matrix X has M rows and K columns.</p></li><li><p>The Weight Matrix W has K rows and N columns.</p></li><li><p>The PEs are arranged as a 2D array with HW_ROWS rows and HW_COLS columns. In this post, we will only explore the 16*16 configuration.</p></li></ul><div><hr></div><p></p><h1>Concept 1: Hardware Utilization</h1><h2>Quick Takes</h2><h3>What is it?</h3><p>How much of the hardware is being used to produce useful output.</p><blockquote><p>In our cooking analogy, if your kitchen stove has 4 burners but you only use 3 simultaneously, the utilization is 75%.</p></blockquote><h3>Why does it matter?</h3><p>High utilization means more of the hardware is active at the same time. In general, this implies that more sub-operations (additions, multiplications, data movement) are happening in parallel.</p><blockquote><p>If more burners on your stove are on, it means more eggs are being boiled.</p></blockquote><h3>When does it not matter as much?</h3><p>In general-purpose architectures like CPUs and GPUs, the hardware is almost never fully utilized. In these systems, overall utilization matters less than the utilization of specific components (such as ALUs).</p><p>However, an accelerator is designed for a very specific purpose. It is therefore wasteful to build hardware that cannot be effectively utilized. In most accelerators, high utilization is close to a non-negotiable.</p><blockquote><p>Having low utilization is like using a 4-burner stove when you only need to boil one egg.</p></blockquote><div><hr></div><h2>PE Utilization in TinyXPU</h2><p>In TinyXPU, the size of the systolic array is fixed in hardware (16&#215;16 in our case), but the matrices we run on it are not. This mismatch is the primary reason utilization becomes an important metric.</p><p>The goal is simple: <strong>keep as many PEs busy as possible for as long as possible.</strong></p><blockquote><p>In our cooking analogy, this is equivalent to keeping all burners active. If you only have enough eggs for two burners, the remaining burners sit idle, even though the stove could do more work.</p></blockquote><h3>Where does underutilization come from?</h3><h4>1. When the workload is smaller than the array</h4><p>If the weight matrix is smaller than the systolic array, for example fewer than 16 rows or columns, some PEs will not map to useful computation. To maintain correctness, we typically pad the matrix with zeros. These PEs still perform MAC operations, but their outputs are discarded.</p><blockquote><p>This is like turning on burners with empty pots. Heat is being generated, but no eggs are being cooked.</p></blockquote><h4>2. When the workload is larger than the array</h4><p>If the matrix is larger than the array, we process it in tiles. While tiling allows us to handle arbitrarily large matrices, the last tile is often smaller than the array, leading again to underutilization. We will skip the details of tiling in this post, but this edge effect is quite common in practice.</p><h3>Startup overhead: why utilization is not 100%</h3><p>Even when the workload maps perfectly to the array, utilization is not immediately 100%. This is because not all cycles contribute to useful work. At the start of execution, the systolic array needs a few cycles before all PEs begin performing meaningful computations. Similarly, toward the end, some PEs become idle as the computation completes.</p><p>From a utilization perspective, these cycles are overhead. The hardware is active, but not all of it is doing useful work.</p><blockquote><p>Before you can boil eggs, you need to fill the pot and wait for the water to heat up. During this time, the stove is on, but no eggs are being cooked.</p></blockquote><p>Considering this overhead, we define utilization as:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{PE Utilization} = \\frac{M}{M + \\text{pipeline latency}} = \\frac{M}{M + HW\\_ROWS + N - 2}&quot;,&quot;id&quot;:&quot;QNRZVWRMGT&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p>This shows that utilization improves as the workload grows, because the fixed overhead is amortized over more useful work.</p><h3>PE Utilization vs Batch Size</h3><p>The impact of matrix sizes on PE utilization is shown in this plot:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GjWG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GjWG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 424w, https://substackcdn.com/image/fetch/$s_!GjWG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 848w, https://substackcdn.com/image/fetch/$s_!GjWG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 1272w, https://substackcdn.com/image/fetch/$s_!GjWG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GjWG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png" width="671" height="516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10588ab4-72f0-4055-a125-143a1e21b208_671x516.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:516,&quot;width&quot;:671,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/192536198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GjWG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 424w, https://substackcdn.com/image/fetch/$s_!GjWG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 848w, https://substackcdn.com/image/fetch/$s_!GjWG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 1272w, https://substackcdn.com/image/fetch/$s_!GjWG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10588ab4-72f0-4055-a125-143a1e21b208_671x516.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Key takeaways:</strong></p><ul><li><p>The 16&#215;16 case asymptotically approaches 100% utilization, as the pipeline overhead becomes negligible compared to useful work.</p></li><li><p>The other shapes (4&#215;16, 8&#215;8, 16&#215;4) all have 64 total weights, and therefore can only utilize 64 out of 256 PEs, which corresponds to a maximum of 25% utilization.</p></li><li><p>For small values of M, utilization is low across all configurations due to pipeline overhead.</p></li><li><p>As M increases, all curves improve, but they plateau at different levels depending on how well the workload matches the hardware.</p></li></ul><p>Utilization is a useful analytical metric. It tells us how much of the hardware is actively doing useful work and highlights inefficiencies due to pipeline overhead.</p><div><hr></div><h2>How architects use this metric in real chips</h2><p>In real chips, utilization is rarely exposed as a single number. Instead, architects infer it using performance counters, stall analysis, and activity factors across compute units. A classic example is <a href="https://arxiv.org/pdf/1704.04760">the TPU v1 paper</a>, where the authors show that achieving high utilization of the 256&#215;256 systolic array was critical to performance. They analyze how different workloads map to the array and highlight cases where underutilization leads to significant efficiency loss.</p><div><hr></div><p></p><h1>Concept 2: Throughput</h1><h2>Quick Takes</h2><h3>What is it?</h3><p>The number of useful operations completed per unit time.</p><blockquote><p>In our cooking analogy, this is the number of eggs you can boil per hour.</p></blockquote><h3>Why does it matter?</h3><p>Throughput directly determines how fast an algorithm completes. If more operations are finished per unit time, the total execution time is lower.</p><h3>When does it not matter as much?</h3><p>In many systems, overall throughput is limited by the slowest component. Even if one part of the system achieves very high throughput, it may not translate into end-to-end performance improvements.</p><p>Custom accelerators are typically designed to maximize throughput. However, understanding what limits that throughput is just as important.</p><div><hr></div><h2>From Throughput to the Roofline Model</h2><p>So far, we have treated throughput as a single number. In reality, it is constrained by two fundamental limits:</p><ul><li><p>How fast the hardware can compute</p></li><li><p>How fast data can be moved to and from the hardware</p></li></ul><p>The roofline model captures both of these limits in a single diagram, which is why it is a better representation of our throughput analysis.</p><blockquote><p>In our cooking analogy, the number of eggs you can boil per hour is not just determined by how many burners your stove has. It is also limited by how quickly you can bring water, eggs, and utensils to the stove. If you have many burners but can only carry a few eggs at a time, most burners will sit idle. On the other hand, if you can supply eggs very quickly but only have a small stove, the burners themselves become the bottleneck.</p></blockquote><div><hr></div><h2>TinyXPU Roofline Model</h2><h3>Vertical Axis: Peak Throughput</h3><p>For a systolic array, if the workload fully utilizes the array, the peak compute throughput is:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{Throughput}_{\\text{max}} = R \\times C&quot;,&quot;id&quot;:&quot;QTAXMYUDWS&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p>For our 16&#215;16 array, this gives a peak of <strong>256 MACs per cycle</strong>. However, if the weight matrix is smaller than the array, only K&#215;N PEs perform useful work. This represents the vertical axis of our roofline model.</p><h3>Horizontal Axis: Arithmetic intensity</h3><p>Arithmetic intensity is the number of MACs executed for each byte of data read from the memory. For our matrix multiplication example:</p><ul><li><p>Weights are loaded once: K&#215;N bytes (we ignore this as batch size is usually large)</p></li><li><p>Inputs contribute: M&#215;K bytes</p></li><li><p>Outputs contribute M&#215;N values, each 4 bytes (we assume output values are 32-bit integers)</p></li></ul><p>This gives:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{Total Bytes} = M \\times (K + 4N)&quot;,&quot;id&quot;:&quot;DHWBOGTGKK&quot;}" data-component-name="LatexBlockToDOM"></div><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{Total MACs} = M \\times K \\times N&quot;,&quot;id&quot;:&quot;GNRMRHNQLY&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p>So, the arithmetic intensity (AI) becomes:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{AI} = \\frac{K \\times N}{K + 4N}&quot;,&quot;id&quot;:&quot;HAXIYXLOKK&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><h3>Roofline Plot</h3><p>Based on the definitions above, the roofline plot for TinyXPU is shown here:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wyjK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wyjK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 424w, https://substackcdn.com/image/fetch/$s_!wyjK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 848w, https://substackcdn.com/image/fetch/$s_!wyjK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 1272w, https://substackcdn.com/image/fetch/$s_!wyjK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wyjK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png" width="680" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157445,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/192536198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wyjK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 424w, https://substackcdn.com/image/fetch/$s_!wyjK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 848w, https://substackcdn.com/image/fetch/$s_!wyjK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 1272w, https://substackcdn.com/image/fetch/$s_!wyjK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a22cf2f-cba0-4900-ad5d-ad0b021f7880_680x519.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each point on the plot represents a specific workload running on the hardware. The <strong>horizontal axis</strong> is arithmetic intensity and the peak throughput. The roofline plot also includes two lines which are important:</p><ul><li><p>The <strong>horizontal line</strong> represents the peak compute capability of the hardware</p></li><li><p>The <strong>sloped lines</strong> represent memory bandwidth limits</p></li></ul><p>Several insights emerge from this single diagram:</p><ul><li><p>If the weight matrix is smaller than the array, peak compute throughput cannot be reached due to underutilization (this aligns with our earlier analysis on PE utilization.)</p></li><li><p>Among shapes with the same number of weights, taller matrices perform better than wider ones. This happens for two reasons:</p><ul><li><p>Idle rows waste more hardware than idle columns</p></li><li><p>Output traffic scales with N, and outputs are larger in size</p></li></ul></li></ul><ul><li><p>The 4&#215;16 shape is more bandwidth-limited than 16&#215;4, since it produces more output data</p></li><li><p>Most configurations in this example are memory-bound unless bandwidth exceeds 64 bytes per cycle (which is <a href="https://www.avikde.me/p/cache-effects-in-object-oriented">rare in CPU L1 caches as seen from this post on min{power}</a>)</p></li></ul><p>Using a roofline plot, it becomes clear how throughput can be maximized:</p><ul><li><p>Move upward by increasing compute efficiency (Larger batch sizes)</p></li><li><p>Move right by increasing arithmetic intensity (Taller matrices)</p></li></ul><p>By being in the top right, we get the best throughput.</p><div><hr></div><h2>How architects use this metric in real chips</h2><p>The <a href="https://people.eecs.berkeley.edu/~kubitron/cs252/handouts/papers/RooflineVyNoYellow.pdf">roofline model</a> is one of the most widely used tools for reasoning about throughput limits. Modern accelerators frequently use roofline-style analysis. For example, NVIDIA presents roofline-inspired performance characterizations in its architecture whitepapers, (For example, <a href="https://images.nvidia.com/aem-dam/en-zz/Solutions/data-center/nvidia-ampere-architecture-whitepaper.pdf">NVIDIA A100 Architecture</a>) where compute throughput and memory bandwidth limits are analyzed together.</p><p>In fact, the roofline plot we obtained for TinyXPU is not too different from the plot shared in the <a href="https://arxiv.org/pdf/1704.04760">TPU v1 paper</a>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PVLb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PVLb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 424w, https://substackcdn.com/image/fetch/$s_!PVLb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 848w, https://substackcdn.com/image/fetch/$s_!PVLb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 1272w, https://substackcdn.com/image/fetch/$s_!PVLb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PVLb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png" width="1148" height="980" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:980,&quot;width&quot;:1148,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:457532,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/192536198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F062ab955-09e2-4f91-a17a-d23082fe0e20_1148x980.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PVLb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 424w, https://substackcdn.com/image/fetch/$s_!PVLb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 848w, https://substackcdn.com/image/fetch/$s_!PVLb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 1272w, https://substackcdn.com/image/fetch/$s_!PVLb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd53d46ac-b71f-48fc-8fb9-0002f8d61555_1148x980.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: center;">Source: <a href="https://arxiv.org/pdf/1704.04760">https://arxiv.org/pdf/1704.04760</a></p><div><hr></div><p></p><h1>Concept 3: Latency</h1><h2>Quick Takes</h2><h3>What is it?</h3><p>Latency is the time it takes to produce the first useful output after the first input is provided.</p><blockquote><p>In our cooking analogy, this is the time between turning on the stove and having the first boiled egg ready.</p></blockquote><h3>Why does it matter?</h3><p>Latency matters when partial results are useful before the entire computation is complete. For example, modern LLM-based systems stream outputs token by token. As soon as the first token is ready, it is displayed to the user. In such systems, latency directly impacts user experience.</p><h3>When does it not matter?</h3><p>Latency matters less when the full output is required before any further computation can proceed. For example, in a classification task such as predicting whether an image contains a cat or a dog, the final decision can only be made after all computations are complete. In such cases, throughput is often the more relevant metric.</p><div><hr></div><h2>Latency in TinyXPU</h2><p>To analyze latency, we first need to define what we mean by the &#8220;first output.&#8221; In matrix multiplication, we define the first output as the result corresponding to the <strong>first row of the input matrix X</strong>.</p><p>For readers familiar with LLMs, consider the computation of the query matrix:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{Q} = X \\times W_q&quot;,&quot;id&quot;:&quot;TARRPUEFVL&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p>Each row of X corresponds to the embedding of an input token. The first row of Q therefore corresponds to the first token. The time taken to produce this row is a key component of <strong>time to first token (TTFT)</strong>.</p><h3>Where does latency come from?</h3><p>Even if the input matrix X has many rows, the first result that emerges from the systolic array corresponds to the first row. This delay is caused by the time it takes for data to propagate through the array.</p><blockquote><p>In the cooking analogy, this is like the time it takes to heat the water and cook the first egg. Even if you plan to cook many eggs, the first one still takes the same amount of time.</p></blockquote><p>For a weight-stationary systolic array, the latency to first output is:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{Latency} = \\text{HW_ROWS} + \\text{N} - \\text{2}&quot;,&quot;id&quot;:&quot;QUMWTMEIKA&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p>Essentially, the latency only depends on the number of rows in the hardware array and the number of output columns. It is independent of the batch size M.</p><h2>Throughput vs Latency Tradeoff</h2><p>The plot below shows throughput on the vertical axis and latency on the horizontal axis for different matrix shapes. Each curve corresponds to a fixed number of rows K, while varying the number of columns N. The batch size (M) is fixed to 256. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bgk-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bgk-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 424w, https://substackcdn.com/image/fetch/$s_!bgk-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 848w, https://substackcdn.com/image/fetch/$s_!bgk-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 1272w, https://substackcdn.com/image/fetch/$s_!bgk-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bgk-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png" width="629" height="518" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:518,&quot;width&quot;:629,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108050,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/192536198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bgk-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 424w, https://substackcdn.com/image/fetch/$s_!bgk-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 848w, https://substackcdn.com/image/fetch/$s_!bgk-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 1272w, https://substackcdn.com/image/fetch/$s_!bgk-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2083951-dfeb-474c-b8b8-c3bac97adbba_629x518.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This plot clearly shows the inherent tradeoff between throughput and latency.</p><ul><li><p>Increasing N increases throughput, since more PEs are active</p></li><li><p>However, increasing N also increases latency</p></li></ul><p>This means designs with the same total compute capacity (total number of PEs) can have very different latency and throughput characteristics. If you want fast response to the first output, you prefer smaller matrices with lower latency. If you want higher overall throughput, you prefer larger matrices that utilize more of the hardware. </p><blockquote><p>In the cooking analogy, this is like choosing between boiling one egg quickly or boiling many eggs at once. Using a larger pot allows you to cook more eggs simultaneously, but it may take longer before the first one is ready.</p></blockquote><p>This throughput-latency tradeoffs starts to become even more interesting in accelerator designs with pipelined PEs to achieve higher clock frequencies, and full-system implementations with non-zero instruction and memory latencies - topics we will explore in future posts.</p><div><hr></div><h2>How architects use this metric in real chips</h2><p>Latency is typically modeled using a combination of analytical models and cycle-accurate simulations that capture pipeline depth and data movement delays. For example, Google discusses latency-sensitive inference in the <a href="https://edge.seas.harvard.edu/sites/g/files/omnuum6351/files/edge/files/mlperf_inference.pdf">MLPerf Inference Benchmark</a>, which includes metrics like time-to-first-token and tail latency.</p><div><hr></div><p></p><p>As you can see from the discussion, architectural analysis is as much art as it is science. It&#8217;s more like appreciating a painting than reading a book. An experienced art connoisseur can analyze a painting at a glance. But that ability comes from a shared understanding of color, brushwork, and design principles between the artist and the observer.</p><p>This post aims to build a mental model for architectural analysis, using our basic TinyXPU implementation as a concrete example. As we continue to expand TinyXPU by adding activation functions, mapping it to an FPGA, and <a href="https://www.avikde.me/p/systolic-arrays-for-general-robotics">exploring unorthodox systolic networks</a>, we&#8217;ll build on these ideas and introduce new ones along the way.</p><p>Subscribe to <a href="https://chipinsights.net/">Chip Insights</a> and <a href="https://www.avikde.me/">min{power}</a> to follow along as we do that.</p><div><hr></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Mapping Algorithms to Custom Silicon - Part 2]]></title><description><![CDATA[Running matrix multiplication on a TPU-style architecture]]></description><link>https://chipinsights.net/p/mapping-algorithms-to-custom-silicon-efd</link><guid isPermaLink="false">https://chipinsights.net/p/mapping-algorithms-to-custom-silicon-efd</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sun, 15 Mar 2026 18:42:10 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6954c585-f006-40f3-a68b-78a4b1a7e52d_1536x948.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>This post is the second in our series on custom hardware accelerators. In part 1, we introduced the hardware-software interface problem that has kept the two domains as separate islands and limited co-innovation. We also introduced two approaches to overcome this gap. If you haven&#8217;t done so already, check out that post here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;e4718d2e-cbd6-4479-b3c4-3ca0f5a168b1&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping algorithms to custom silicon - Part 1&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-02-09T00:15:44.482Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f063e77-8634-49db-83c3-bab1a1dff047_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:187337389,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:22,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>In this part, we present <a href="https://github.com/avikde/tiny-xpu">TinyXPU, an open-source, extensible project</a> we are building in conjunction with this series of posts. In this post, we focus on two pieces:</p><ul><li><p>The hardware architecture of TinyXPU</p></li><li><p>The software interface that allows it to run ONNX models</p></li></ul><p>The goal of this project is to show what the bridge between software and hardware looks like in practice, and is a stepping stone to the architectural analysis we have planned in upcoming posts.</p><div><hr></div><p></p><h1><strong>Why Matrix Multiplication</strong></h1><p>The first important decision is to pick the right algorithm to study. We picked Matrix Multiplication, primarily because of its widespread use in many of today&#8217;s most important software domains. Here are a few representative examples:</p><ul><li><p><a href="https://docs.pytorch.org/docs/stable/generated/torch.nn.Linear.html">Deep Learning</a>: Neural network layers compute weighted sums using matrix multiplications.</p></li><li><p><a href="https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms">Robotics</a>: BLAS, in particular the Level 3 GEMM routine, is used in many robotics libraries</p></li><li><p><a href="https://docs.vulkan.org/features/latest/features/proposals/VK_NV_cooperative_vector.html">Computer Graphics</a>: Shaders use matrix math for transformations; modern APIs like Vulkan have started exposing this directly.</p></li></ul><p>Matrix multiplication also stresses both compute throughput (number of arithmetic operations completed per second) and memory bandwidth (the number of bits read from memory per second). This helps us identify both compute and memory bottlenecks - a topic we will explore in future posts.</p><div><hr></div><p></p><h1><strong>Why build an accelerator from scratch</strong></h1><p>We are not the first to focus on matrix multiplication, and we certainly won&#8217;t be the last. As <a href="https://chipinsights.net/p/the-alphabet-soup-of-processors">mentioned in an earlier post</a>, there has been an explosion of &#8220;processing units&#8221; like TPUs and NPUs that, at their core, accelerate matrix multiplication. In fact, modern GPUs and even CPUs now support <a href="https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-scalable-matrix-extension-introduction">matrix multiplication extensions</a> and dedicated units to handle the operation efficiently. There are also a number of &#8220;tinyTPU&#8221; projects out there with an architecture very similar to the one we will be demonstrating. (Some examples are <a href="https://github.com/tiny-tpu-v2/tiny-tpu/tree/main">tiny-tpu-v2/tiny-tpu</a> and <a href="https://github.com/Alanma23/tinytinyTPU">Alanma23/tinytinyTPU</a>.) So before we go any further, we wanted to explain why we are doing this from scratch.</p><p>Our main motivation is that building from scratch allows us to understand (and hopefully explain) everything we are doing from first principles. As you will see, we are only starting with two simple SystemVerilog files. This way, we do not have to make any assumptions or shoot in the dark to understand architectural decisions. This also allows us the flexibility to scale or modify the architecture for future posts in this series.</p><p>It&#8217;s not just the hardware architecture that could be confusing. As we <a href="https://chipinsights.net/p/mapping-algorithms-to-custom-silicon">mentioned in Part 1, the software interface is messy and still evolving</a>. As this is the first implementation in our series, we wanted to keep a simple but still operational software interface. Setting up this interface is important to obtain performance metrics that will be used for architectural analysis in future posts in this series.</p><p>With that motivation, we can now look at the two parts of the TinyXPU project: the hardware architecture and the software interface.</p><div><hr></div><p></p><h1><strong>The Hardware Architecture</strong></h1><p>We built the first version of our matrix multiplication accelerator based on the weight stationary systolic array architecture: the same one at the heart of Google&#8217;s TPUs. While this post will not go into the details of this architecture, here&#8217;s a dedicated post that&#8217;s got you covered:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:190643644,&quot;url&quot;:&quot;https://www.avikde.me/p/systolic-arrays-for-general-robotics&quot;,&quot;publication_id&quot;:7287367,&quot;publication_name&quot;:&quot;min{power}&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z7FY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea21ccc-90aa-4750-861d-eb48a6144608_176x176.png&quot;,&quot;title&quot;:&quot;Systolic arrays for general robotics, AI, and scientific computing&quot;,&quot;truncated_body_text&quot;:null,&quot;date&quot;:&quot;2026-03-12T15:09:36.193Z&quot;,&quot;like_count&quot;:8,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;handle&quot;:&quot;avikde&quot;,&quot;previous_name&quot;:&quot;Avik De, PhD&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;profile_set_up_at&quot;:&quot;2025-09-01T11:05:25.762Z&quot;,&quot;reader_installed_at&quot;:&quot;2025-12-14T02:43:43.888Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:7436599,&quot;user_id&quot;:356074997,&quot;publication_id&quot;:7287367,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:7287367,&quot;name&quot;:&quot;min{power}&quot;,&quot;subdomain&quot;:&quot;minpower&quot;,&quot;custom_domain&quot;:&quot;www.avikde.me&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Explorations in computing and robotics focused on power-efficiency and safety -- personal posts by Avik De, robotics Ph.D. and founder&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ea21ccc-90aa-4750-861d-eb48a6144608_176x176.png&quot;,&quot;author_id&quot;:356074997,&quot;primary_user_id&quot;:356074997,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-12-16T12:24:04.343Z&quot;,&quot;email_from_name&quot;:&quot;Avik De from min{power}&quot;,&quot;copyright&quot;:&quot;Avik De&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[1063960],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://www.avikde.me/p/systolic-arrays-for-general-robotics?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!Z7FY!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea21ccc-90aa-4750-861d-eb48a6144608_176x176.png" loading="lazy"><span class="embedded-post-publication-name">min{power}</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Systolic arrays for general robotics, AI, and scientific computing</div></div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 months ago &#183; 8 likes &#183; Avik De</div></a></div><p></p><h2><strong>The Processing Element (PE)</strong></h2><p>The core block in TinyXPU is called a Processing Element (PE), a term that originated in <a href="https://ieeexplore.ieee.org/document/1653825">H. T. Kung&#8217;s seminal work in 1982</a>. Here&#8217;s the block diagram of our PE (the <a href="https://github.com/avikde/tiny-xpu/blob/main/src/pe.sv">SystemVerilog implementation can be found in pe.sv</a>):</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!--KK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!--KK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 424w, https://substackcdn.com/image/fetch/$s_!--KK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 848w, https://substackcdn.com/image/fetch/$s_!--KK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 1272w, https://substackcdn.com/image/fetch/$s_!--KK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!--KK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png" width="932" height="665" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:665,&quot;width&quot;:932,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45772,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/191037416?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!--KK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 424w, https://substackcdn.com/image/fetch/$s_!--KK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 848w, https://substackcdn.com/image/fetch/$s_!--KK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 1272w, https://substackcdn.com/image/fetch/$s_!--KK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f982c4-784f-4fc3-9985-b8965b84d9a1_932x665.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This PE block executes the following operation:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;c4bf8843-def5-4fe2-9882-25a1ff272038&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">acc_out = data_in * weight_in + acc_in</code></pre></div><p>However, this operation is executed in two phases:</p><ol><li><p>Weight Loading Phase: In this phase, the value of weight_in is stored in the register weight_r when weight_ld is set to 1.</p></li><li><p>Multiply Accumulate Phase: Here, the stored value weight_r is multiplied with data_in, and acc_in is added to get the final result. When en is set to 1, this result is sent as the output.</p></li></ol><p>The reason for having these two phases comes from its primary use case in neural networks, where we typically process multiple inputs (called &#8220;batches&#8221;) using the same weights - so loading the weights once prevents the need to continuously broadcast its value during the computation. This is called a "weight-stationary" architecture, indicating that the weights don't move through the array in the Multiply Accumulate Phase.</p><p>It&#8217;s also important to highlight that the Multiply Accumulate Phase has a latency of 1 cycle - which means that the output of the PE is ready one cycle after the inputs. This pipeline stage is needed to break the combinational logic path when two PEs are connected together, in order to achieve a high clock frequency. (If you are new to digital design, <a href="https://chipinsights.net/p/confessions-of-a-static-timing-analysis">this post on Static Timing Analysis</a> would help you understand why this matters.)</p><div><hr></div><p></p><h2><strong>Matrix Multiplication on a PE array</strong></h2><p>The functionality of a single PE can be achieved using the Arithmetic and Logic Unit (ALU) in most CPUs. So, to really understand the benefit of a PE array, let&#8217;s consider a PE array with 2 rows and 2 columns, and map a matrix operation on it. Specifically, we will be implementing this operation:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wwyr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wwyr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 424w, https://substackcdn.com/image/fetch/$s_!wwyr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 848w, https://substackcdn.com/image/fetch/$s_!wwyr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 1272w, https://substackcdn.com/image/fetch/$s_!wwyr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wwyr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png" width="693" height="150" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:150,&quot;width&quot;:693,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9271,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/191037416?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wwyr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 424w, https://substackcdn.com/image/fetch/$s_!wwyr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 848w, https://substackcdn.com/image/fetch/$s_!wwyr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 1272w, https://substackcdn.com/image/fetch/$s_!wwyr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7af4603d-5621-4381-92d2-3d90e89ea2a8_693x150.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Our PE array performs matrix multiplication by arranging PEs in a grid where data flows between neighboring elements. Each PE stores one weight value and performs a multiply-accumulate operation every cycle. As input values move across the array, partial sums are passed between PEs until the final output values emerge from the last column. We depict the cycle-by-cycle dataflow in this diagram:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ccvc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ccvc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 424w, https://substackcdn.com/image/fetch/$s_!ccvc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 848w, https://substackcdn.com/image/fetch/$s_!ccvc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 1272w, https://substackcdn.com/image/fetch/$s_!ccvc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ccvc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png" width="1191" height="622" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:622,&quot;width&quot;:1191,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61833,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/191037416?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ccvc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 424w, https://substackcdn.com/image/fetch/$s_!ccvc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 848w, https://substackcdn.com/image/fetch/$s_!ccvc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 1272w, https://substackcdn.com/image/fetch/$s_!ccvc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5520f78-99fd-46fa-86a8-e6e606ea175c_1191x622.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>In the first cycle, X11 is passed as input to PE with weight W11</p></li><li><p>In the second cycle, X11 moves on to the next PE. (with weight W12.) Simultaneously, X21 and X12 are passed to the first PE column. (with weights W11 and W21.)</p></li><li><p>In the third cycle, X21 and X12 move to the second PE column.( with weights W12 and W22.) Also, X22 is passed to PE with weight W21. In this cycle, we also have the first output value ready:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;87924e6d-eeaf-4775-9b72-cdbcc6d08e08&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Y11 = X11 &#215; W11 + X12 &#215; W21</code></pre></div><p>Note that the latency (time from first input to first output) is 2 cycles in this example. As the number of rows of the PE array increases, this latency also increases. After the first output, new outputs are ready in every adjacent cycle, as we will see.</p></li><li><p>In cycle 4, X22 moves to the second PE column. We also get output Y21 and Y12 from both the PE columns.</p></li><li><p>Finally, in cycle 5, the last output Y22 is ready in the second PE column.</p></li></ul><div><hr></div><p></p><h2><strong>What makes this an accelerator?</strong></h2><p>The biggest advantage of this PE architecture is that we read the operands only once from memory. In the above example:</p><ul><li><p>Weights W11, W12, W21, W22 are only read in the Weight Loading Phase and are then stored in the PEs</p></li><li><p>Although Inputs X11, X12, X21, X22 are used twice during the matrix multiplication, they are only read once (For example, after X11 is read in Cycle 1, it is just passed to the next PE in Cycle 2 - it does not have to be read again.)</p></li></ul><p>In a standard CPU, the intermediate values would need to be stored somewhere. It could be stored in a fast register for small matrices, but might need to spill to slower caches and main memory as the matrix size increases.</p><p>Our PE array avoids repeatedly fetching operands from memory because values propagate directly between neighboring PEs. This is what makes the PE array architecture great for matrix multiplication. (This statement assumes PE array size and matrix sizes are the same - the <a href="https://github.com/avikde/tiny-xpu/blob/main/src/array.sv">PE array SystemVerilog implementation</a> in TinyXPU is parametrized to support different number of rows and columns. In our upcoming posts, we will explore the impact of these different configurations on the performance of our chip.)</p><p>Finally, although our current implementation is just a PE array, we want to highlight that a real accelerator has other components in its microarchitecture which we are skipping here for the sake of simplicity:</p><ul><li><p>We need to define an <a href="https://chipinsights.net/p/the-isa-debate">Instruction Set Architecture (ISA)</a> and include an instruction decode unit</p></li><li><p>We need a Unified Buffer (typically SRAM) to hold the matrix data before streaming it into the PE array. (Typically, a DMA controller would stream data from CPU DRAM to the local SRAM.)</p></li></ul><p>As this project evolves, some of these components will be (and must be) included in the design.</p><div><hr></div><p></p><h1><strong>The Software Bridge</strong></h1><p>In the previous section, we described the hardware implementation of our TinyXPU Matrix Multiplier. Hopefully, you are convinced that the PE array is an improvement over using general-purpose CPUs for matrix multiplication. If you are a hardware engineer, many of your projects stop here with this question: how do you connect your hardware with the existing software ecosystem and actually run matrix multiplication on your chip? <a href="https://chipinsights.net/i/187337389/the-two-bridges">In part 1, we described two approaches to solve this problem</a> - Runtime-level and Compiler level integration. In this section, we will implement runtime-level integration using an ONNX Runtime Execution Provider.</p><p></p><h2><strong>The ONNX Runtime Flow</strong></h2><p>The flow used in our project is intentionally simple.</p><p>First, a small ONNX model containing a matrix multiplication operation is <a href="https://github.com/avikde/tiny-xpu/blob/main/scripts/matmul.py">generated using a Python script</a>. An ONNX model represents a computation as a graph, where each node corresponds to an operation such as matrix multiplication. In our implementation, the generated ONNX file includes a <a href="https://onnx.ai/onnx/operators/onnx__MatMulInteger.html">MatMulInteger operator</a>, as shown in this code snippet:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;cpp&quot;,&quot;nodeId&quot;:&quot;df923a2b-7cf7-4b78-88b5-a3fe3f3d7568&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-cpp">X = helper.make_tensor_value_info("X", TensorProto.INT8, [None, W_data.shape[0]])
Y = helper.make_tensor_value_info("Y", TensorProto.INT32, [None, W_data.shape[1]])
W_init = numpy_helper.from_array(W_data, name="W")
node = helper.make_node("MatMulInteger", inputs=["X", "W"], outputs=["Y"])
graph = helper.make_graph(
[node],
"MatMulInteger_4x4",
[X],
[Y],
initializer=[W_init],
)</code></pre></div><p>Next, a<a href="https://github.com/avikde/tiny-xpu/blob/main/scripts/run_matmul.py"> Python driver loads this model</a> using ONNX Runtime and registers the<a href="https://github.com/avikde/tiny-xpu/blob/main/onnx-plugin/src/tinyxpu_ep.cpp"> TinyXPU Execution Provider (EP)</a>, as shown in this code snippet:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;cpp&quot;,&quot;nodeId&quot;:&quot;3e606b32-be23-4437-8af7-8aabf0876b2c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-cpp">ort.register_execution_provider_library("SampleEP", path_to_dll)
session_options = ort.SessionOptions()
session_options.add_provider_for_devices(tinyxpu_devices, {})</code></pre></div><p>The goal of the EP is to inspect the ONNX model, looking for an eligible operation: in our case, it would be MatMulInteger. (See the <a href="https://github.com/avikde/tiny-xpu/blob/main/onnx-plugin/src/tinyxpu_ep.cpp">GetCapabilityImpl() method in the TinyXPU EP</a> for details.) The ONNX Runtime will call the function where we registered our ability to execute MatMulInteger when the session is instantiated.</p><p>When the runtime encounters the matrix multiplication operation, it dispatches that operation to the TinyXPU backend (via the <a href="https://github.com/avikde/tiny-xpu/blob/main/onnx-plugin/src/tinyxpu_ep.cpp">ComputeImpl() hook)</a> instead of executing it on the CPU (which is the default option when no match is found.) This way, we are able to connect the TinyXPU hardware directly to software without requiring a custom compiler - a major benefit of this approach.</p><div><hr></div><p></p><h2><strong>Practical Constraints</strong></h2><p>Much like the hardware implementation, our current ONNX interface has some constraints that we would like to highlight.</p><p>Firstly, instead of exporting a Pytorch/Tensorflow implementation into the ONNX format, we directly use <a href="https://github.com/avikde/tiny-xpu/blob/main/scripts/matmul.py">a Python script</a> to generate an ONNX model containing a single MatMulInteger operation. This keeps the software stack minimal while still exercising the same ONNX Runtime execution flow that would be used with real models. <a href="https://docs.pytorch.org/tutorials/beginner/onnx/export_simple_model_to_onnx_tutorial.html">Pytorch</a> and <a href="https://onnxruntime.ai/docs/tutorials/tf-get-started.html">Tensorflow</a> both support functions to export to ONNX, so this additional step is fairly trivial. In fact, ONNX is a common intermediate exchange format before going to many hardware APIs including TensorRT for NVIDIA embedded devices, Qualcomm Hexagon, and others.</p><p>As mentioned in the previous section, we do not yet have an FPGA or ASIC implementation of our design for this part. That&#8217;s where Verilator comes into the picture. The SystemVerilog implementation of the TinyXPU systolic array is compiled into a cycle-accurate C++ model using Verilator. The TinyXPU Execution Provider links directly against this generated C++ model. When ONNX Runtime dispatches a matrix multiplication operation (MatMulInteger) to TinyXPU, the Execution Provider performs three steps (See the <a href="https://github.com/avikde/tiny-xpu/blob/main/onnx-plugin/src/tinyxpu_ep.cpp">ComputeImpl() method in the TinyXPU EP</a> for details):</p><ol><li><p>Read input tensors from ONNX Runtime</p></li><li><p>Drive the Verilator simulation input signals and toggle the clock</p></li><li><p>Collect output signals from the simulation</p></li></ol><p>So, in our implementation, the ONNX runtime connects the software world with a cycle-accurate simulation of the hardware, as shown in this diagram below (The &#8220;real silicon&#8221; version of this diagram was included in <a href="https://chipinsights.net/i/187337389/1-runtime-level-integration">part 1</a>):</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TNuy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TNuy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 424w, https://substackcdn.com/image/fetch/$s_!TNuy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 848w, https://substackcdn.com/image/fetch/$s_!TNuy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 1272w, https://substackcdn.com/image/fetch/$s_!TNuy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TNuy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png" width="1018" height="747" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:747,&quot;width&quot;:1018,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85480,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/191037416?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TNuy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 424w, https://substackcdn.com/image/fetch/$s_!TNuy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 848w, https://substackcdn.com/image/fetch/$s_!TNuy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 1272w, https://substackcdn.com/image/fetch/$s_!TNuy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ad66433-7426-41ef-8ae3-92c3880dcf62_1018x747.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s important to mention that irrespective of whether we are running on a Verilator-generated simulation, custom hardware implemented on FPGAs or as an ASIC, or existing processors on an SoC like CPUs, GPUs, or NPUs - this implementation successfully abstracts the hardware away from the software - our stated goal from <a href="https://chipinsights.net/i/187337389/the-push-and-the-pull">Part 1</a>.</p><div><hr></div><p></p><p>Part 2 ends here. Although the current implementation is intentionally minimal, it already gives us a complete system: a software stack capable of dispatching matrix multiplication operations to a cycle-accurate simulation of our accelerator. This demonstrates how runtime-level integration works, and more importantly, provides a useful platform for experimentation.</p><p>In the next post, we use this framework to analyze the architecture in more detail, exploring how design parameters such as the size of the array compared to the workload and memory bandwidth affect throughput, latency and utilization. Check it out here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5e4908da-8b02-442d-acd8-d07f32e601c2&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Art of Architectural Analysis: Utilization, Throughput, Latency&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-30T00:48:09.476Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ab5082a-13dd-4059-b346-316fd31def8f_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/the-art-of-architectural-analysis&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:192536198,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The <a href="https://github.com/avikde/tiny-xpu">TinyXPU project</a> will also expand to support activation functions to run complete ONNX ML models that can be deployed on an FPGA. To get notified about all this and more, subscribe to both <a href="https://chipinsights.net/">Chip Insights</a> and <a href="https://www.avikde.me/">Min{power}</a>. And if you have some experience taking up similar projects, or have an interesting direction for us to explore, let us know in the comments.</p>]]></content:encoded></item><item><title><![CDATA[ENIAC and the Workload Problem]]></title><description><![CDATA[Why studying ENIAC Matters - Especially now.]]></description><link>https://chipinsights.net/p/eniac-and-the-workload-problem-part</link><guid isPermaLink="false">https://chipinsights.net/p/eniac-and-the-workload-problem-part</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 09 Mar 2026 05:31:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6f6da59c-dccd-4de4-9008-b5938c7293d2_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>This is the first post in a series aimed at understanding the ENIAC architecture and the lessons that remain relevant in today&#8217;s computing landscape. In this post, I introduce the ENIAC story and explain why it still matters.</p><div><hr></div><h1><strong>The First Workload Problem</strong></h1><p>On December 7, 1941, the attack on Pearl Harbor became a key moment in computing history. The US, having now entered World War II, commissioned the Army&#8217;s Ballistic Research Laboratory (BRL) with a project: To improve the accuracy of artillery strikes. This effort led to the creation of artillery firing tables: one of the first large computing workloads.</p><p>When I was in school, some of our mathematics and physics exams did not allow the use of calculators. Instead, when complex arithmetic problems were involved, we were allowed to bring in something called log tables: collections of precalculated values used to solve complex arithmetic problems in place of a calculator. (I never understood the point then, but maybe it was all for this moment.) An artillery firing table was essentially the Army version of a log table. Instead of telling you what 10.14 &#247; 2.38 equals, it turns complex ballistic calculations into simple lookups that a gun crew can use to quickly determine the correct elevation or angle before firing at a target.</p><p>Unlike arithmetic, which does not change with time, firing tables were different based on the gun type, barrel wear, and environmental conditions. To generate the data for each of these situations, ballistic trajectories had to be solved numerically. Human calculators could not produce these tables with the speed and accuracy the war demanded. BRL used a Differential Analyzer, the state-of-the-art computer of the time, to run these calculations. They brought down the computation time from 3 days to just 15 minutes per trajectory. This was still too slow, and the results were often inaccurate, requiring human verification. The most important computational workload of that time was still waiting for a faster machine.</p><p>In 1943, the Army approved a proposal from J. Presper Eckert and John Mauchly at the University of Pennsylvania to build a machine with a completely new architecture. This computer, called the Electronic Numerical Integrator and Computer (ENIAC), had one goal: calculate firing tables at an exponentially faster rate to help with the US&#8217;s World War II defense. On September 2, 1945, just two years after the ENIAC project was approved, Japan surrendered, and this officially marked the end of World War II. ENIAC served its purpose and has its place in history as one of the most influential computers.</p><p>Well&#8230; that&#8217;s not quite how the story goes. Sure, ENIAC was commissioned to calculate firing tables, and its architecture actually improved the speed of trajectory calculations, reducing the time taken from 15 minutes on the Differential Analyzer to about 30 seconds. ENIAC also made giant strides to improve the setup time and accuracy when running ballistic calculations. But one detail surprised me: ENIAC was announced complete in February 1946. <strong>This means ENIAC was never used to compute a single entry in the artillery firing tables used during World War II.</strong> From 1943 to 1945, ENIAC experienced major delays, and also went significantly over its initial budget. ENIAC also consumed on the order of 150-200 kW of power, and sometimes contributed to power outages in the Philadelphia area. When the war ended, ENIAC was just an expensive infrastructure investment whose primary workload was no longer important.</p><div><hr></div><h1><strong>Why ENIAC Still Matters</strong></h1><p>Despite a lack of demand for ballistic calculations, the ENIAC project continued after the war. In fact, this is where the ENIAC story really starts, and was my motivation to write this post.</p><p>ENIAC has lived through what I would call an &#8220;interesting architectural life.&#8221; It was rushed into existence to handle one specific workload. But that&#8217;s not why we remember ENIAC today. The ENIAC architecture is widely regarded as the first modern computing architecture. It was one of the first computers capable of running a program. ENIAC went on to effectively run weather models, nuclear simulations, and scientific computations. These workloads fell well outside the scope of military applications that it was designed for. At one point, the demand for ENIAC was so high, that renting ENIAC for two days cost as much as buying a new car.</p><p>This period of immense success also came with financial and political pressures on ENIAC to live up to the tag of a &#8220;general purpose computer.&#8221; That&#8217;s when the wheels started to come off, and the architectural deficiencies started to become evident. Eventually, it became clear that the ENIAC architecture could not be repurposed anymore to handle emerging workloads, and it had to be retired. The computing industry is less than 100 years old. It sounds like a lot of time, but it takes a long time for a new architecture to get adopted, and even longer for it to completely be abandoned. The ENIAC story is one of the few stories that has come full-circle, and has also been well documented. This presents a rare opportunity to analyze decisions that worked, and more importantly, decisions that failed.</p><p>There is another reason why ENIAC matters. Fundamentally, ENIAC looks nothing like modern computers. Many aspects of ENIAC are no longer directly relevant today, starting from the fact that ENIAC&#8217;s fundamental building block is a vacuum tube, not a transistor. However, since ENIAC essentially gave birth to modern computing, the ENIAC computer is simple enough (by today&#8217;s standards) that we can try to understand all aspects of the design. This includes the hardware architecture, software decisions, infrastructure challenges, supply chain issues, and interpersonal dynamics that were involved in the design. These details, in addition to making for a great story, are important to explain both the good and bad decisions that shaped ENIAC. In my opinion, attempting the same exercise with a modern computer, while more relevant, is almost impossible due to the sheer complexity involved.</p><p>This is why ENIAC is worth your time. But why now?</p><div><hr></div><h1><strong>The New Infrastructure Buildout</strong></h1><p>Studying ENIAC is not just an academic exercise. Today, we are racing to build advanced computers that fill warehouses. They consume gigawatts of power, cost tens of billions of dollars to build, and are optimized for a single dominant workload: large-scale LLM training. This is not very different from how ENIAC began.</p><p>There are a lot of debates happening around the world about whether this investment is justified. I don&#8217;t see a lot of value in these debates because I think we are well past that point - today this infrastructure buildout is now inevitable. But if there is one thing that the ENIAC story tells us, it is this: the workload won&#8217;t remain the same. When projects attracts large investment, especially from traditionally &#8220;non-tech&#8221; sources like sovereign funds, it is expected to outlive its first workload. Cities do not build large bridges merely to connect two houses on opposite sides of a river; these projects are funded to enable large-scale economic growth in multiple different ways.</p><p>Language models are the first dominant workload of today&#8217;s compute infrastructure, and they are expected to keep this it fully utilized in the near term. But I am certain we will see new workloads soon. It could be as simple as a different approach to advance AI. Or it could be something well beyond AI - astrophysics, quantum algorithms, genomics. Regardless of which buzzword you choose to believe in, two important questions emerge:</p><ol><li><p>Which compute infrastructure can last the longest before we need a clean reset?</p></li><li><p>How effectively can we map future workloads onto the infrastructure we are building today?</p></li></ol><p>By studying ENIAC, I hope to build a mental model to help answer these questions. <a href="https://www.youtube.com/watch?v=rsbT8MDHKFA">As Nvidia CEO Jensen Huang put it</a>, even if you are not the first one to catch the metaphorical apple that falls from the tree, this mental model can help you become the first person to pick up the apple from the ground.</p><div><hr></div><p>That concludes Part 1 of this series. If you like what I just said, follow along for upcoming posts in this series, starting with this:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;89489590-694a-42f3-9ba6-b3b78909b951&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Powering the Machine&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-08T04:49:51.244Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1c63d04-6e90-45eb-aa23-588fffe7b41b_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/powering-the-machine&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:201097809,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Sources:</strong></h3><p>My primary reference for this study is the book &#8220;ENIAC in Action&#8221; which goes into an impressive level of detail about many aspects of this computer.</p><p>If you know any other resources to help with this project, leave a comment!</p>]]></content:encoded></item><item><title><![CDATA[Mapping algorithms to custom silicon - Part 1]]></title><description><![CDATA[An introduction to the messy middle between software and microarchitecture]]></description><link>https://chipinsights.net/p/mapping-algorithms-to-custom-silicon</link><guid isPermaLink="false">https://chipinsights.net/p/mapping-algorithms-to-custom-silicon</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 09 Feb 2026 00:15:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8f063e77-8634-49db-83c3-bab1a1dff047_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>This is part of a series of posts on custom accelerators. Here&#8217;s a link to all parts:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;63e6dc50-4d42-4370-b56c-d906dfda1578&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping algorithms to custom silicon - Part 1&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-02-09T00:15:44.482Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f063e77-8634-49db-83c3-bab1a1dff047_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:187337389,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:30,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5297f738-bd24-4084-b85c-07c58309f0ae&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping Algorithms to Custom Silicon - Part 2&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-15T18:42:10.275Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6954c585-f006-40f3-a68b-78a4b1a7e52d_1536x948.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon-efd&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191037416,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:13,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;13230e35-4598-42d2-ac76-2bdac5ce82cc&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Art of Architectural Analysis: Utilization, Throughput, Latency&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-30T00:48:09.476Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ab5082a-13dd-4059-b346-316fd31def8f_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/the-art-of-architectural-analysis&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:192536198,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:12,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p></p><p>Unless you have been living under a large silicon wafer, you would have heard some version of &#8220;custom silicon is the future.&#8221;<a href="https://chipinsights.net/p/the-alphabet-soup-of-processors"> In an earlier post</a>, I attempted the classification of this exploding set of XPUs. While classification would help someone understand how to best match today&#8217;s chip with today&#8217;s algorithms, the real billion dollar question (literally) is: <strong>how can we ensure that tomorrow&#8217;s chips are best suited to run tomorrow&#8217;s algorithms.</strong></p><p>One of the biggest problems in hardware-software co-design is that hardware and software have always existed on separate islands. So, the right way to answer this question is by bringing the two a little closer. In that spirit, this post (and hopefully many more to come) is the result of my collaboration with<a href="https://www.avikde.me/"> Avik De</a>. Together in this post, we explore the &#8220;messy middle&#8221; between algorithms and silicon.</p><div><hr></div><h1>The push and the pull</h1><p>To make custom silicon work, it needs both a &#8220;push&#8221; and a &#8220;pull&#8221;. There is a &#8220;push&#8221; from the side of the hardware designer (who we will call Harry) to get more developers to use their chip, and a &#8220;pull&#8221; from the algorithm writer (who we will call Alice) to find the best platform on which to run their software.</p><p>The algorithm writer (Alice) wants to be able to frame their algorithm in a high-level language. This algorithm could be anything, ranging from the numerous advancements in<a href="https://vbml.substack.com/p/a-personal-map-of-ml-hardware-trade?r=5vzx85&amp;triedRedirect=true"> machine learning</a>, to algorithms from emerging domains like<a href="https://www.avikde.me/p/the-architecture-behind-end-to-end"> robotics</a>. Although Alice is confident about the value of her algorithm, she is unaware of the best hardware architecture to run it on. This is the &#8220;pull&#8221; - Alice needs to be able to find hardware to run her algorithm while staying within her software ecosystem of comfort.</p><p>Harry, on the other hand, has a great idea for a power-efficient way to compute matrix products by optimizing the operations, the instruction overhead, or the memory movement. He develops the design and synthesizes it on an FPGA. He knows it&#8217;s better than any other hardware architecture out there, but he has no idea how to get people to try it. This is the &#8220;push&#8221; - Harry wants to get his ideas out there, but needs to bridge it to Alice&#8217;s &#8220;pull.&#8221;</p><p>In theory, this looks like a match made in heaven - can&#8217;t Alice just take her algorithm and &#8220;run it&#8221; on Harry&#8217;s chip? Well, not quite, because of an idea that has been around as long as computing, but continues to be challenging.</p><div><hr></div><h1>An old analogy</h1><p>The idea that Alice should be able to &#8220;just run&#8221; her code on Harry&#8217;s hardware is not new. In fact, it is the idea that made general-purpose computing work. A CPU solves this problem using the idea of Code Abstraction.</p><p>Say Alice was mapping an algorithm to run on a general purpose CPU - she would simply write the language using a high-level language like C++ or Python, &#8220;compile&#8221; this code, and run it on an x86 or ARM CPU. The reason why this process is so simple is the emergence of the idea of an Instruction Set Architecture (ISA) - which in simple words is a contract to map high-level languages to certain general purpose hardware. (This post skips the details of ISA and compilers, but if you are interested, check-out<a href="https://chipinsights.net/p/the-isa-debate"> this older Chip Insights post</a>.)</p><p>The mapping between Alice&#8217;s algorithm and Harry&#8217;s hardware using a standard ISA can be understood using this diagram:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dixk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dixk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 424w, https://substackcdn.com/image/fetch/$s_!Dixk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 848w, https://substackcdn.com/image/fetch/$s_!Dixk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 1272w, https://substackcdn.com/image/fetch/$s_!Dixk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dixk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png" width="1048" height="1445" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1445,&quot;width&quot;:1048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:185671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/187337389?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Dixk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 424w, https://substackcdn.com/image/fetch/$s_!Dixk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 848w, https://substackcdn.com/image/fetch/$s_!Dixk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 1272w, https://substackcdn.com/image/fetch/$s_!Dixk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc292b170-a60e-4727-a1f1-4c2c71d6a5a9_1048x1445.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the key advantages of specifying an ISA is that it allows software developers to write code that can run on evolving hardware without needing to know the specifics. Say Alice compiled her algorithm using an x86 compiler like<a href="https://gcc.gnu.org/install/index.html"> GCC</a>, when the next generation of x86 CPU is released, she will have to do one of the following:</p><ul><li><p>In majority of the cases, as the hardware microarchitecture improves, the same binary can benefit from improvements without needing to be rebuilt.</p></li><li><p>Even if a major hardware improvements need to be accompanied by changes to instruction encoding or order (for example, <a href="https://en.wikipedia.org/wiki/Advanced_Vector_Extensions">Advanced Vector Extensions (AVX)</a>), it is managed by &#8220;the compiler&#8221; - Alice simply needs to recompile the same high-level language code with the latest version of the compiler in order to enjoy the benefits of the new and improved hardware.</p></li></ul><p>This separation worked spectacularly well, because:</p><ul><li><p>Hardware designers like Harry innovated on pipelines, caches, branch predictors, and out-of-order execution.</p></li><li><p>Software designers like Alice largely ignored those details and built software that lived for decades.</p></li><li><p>Compilers absorbed the complexity at the boundary.</p></li></ul><p>However, custom accelerators break this assumption.</p><div><hr></div><h1><strong>Why isn&#8217;t there a standard ISA for custom silicon?</strong></h1><p>In the early days of CPUs, every CPU provider had their own custom ISA, largely because hardware constraints and software ecosystems were still tightly coupled. Over time, a few winners emerged, leaving us with just 3-4 significant ISAs, each supported by mature compilers and software ecosystems. This convergence was possible because general-purpose programs share a common structure: scalar control flow, pointer-based memory access, and relatively uniform performance characteristics across workloads.</p><p>There is a common misconception that custom accelerators would evolve in the same way - that over time, a standard ISA would emerge, and every accelerator would support it. But this idea is fundamentally flawed. To truly understand why a standard ISA cannot exist for custom accelerators, let&#8217;s consider a thought experiment. Assume that Harry defines a standard ISA for his accelerators. Let&#8217;s try to think about how that ISA would look for an operation like matrix multiplication.</p><p>If Alice is using<a href="https://docs.pytorch.org/docs/stable/generated/torch.matmul.html"> PyTorch</a>, the operation would look something like this:</p><p><strong>result = torch.matmul(A, B)</strong></p><p>There are certain aspects of matrix A and matrix B that inform Harry how to execute this operation efficiently on his specific hardware. Crucially, these aspects influence not what computation is performed, but how it is scheduled and mapped onto hardware resources. For example, the shapes of A and B can be used to decide:</p><ul><li><p>Tiling strategy: How many chunks should the matrix multiplication be split into based on the available hardware resources</p></li><li><p>Buffering techniques: what data can be stored in the fast, on-chip SRAM, and what should be moved to DRAM.</p></li><li><p>Data layout: For the specific size of A and B, is column major better, or does a tiled layout reduce memory accesses?</p></li></ul><p>This is a short list that only considers the matrix shape - several other factors, like the data types, sparsity, etc. can be exploited to map this operation efficiently in hardware.</p><p>However, Harry needs to define a standard ISA that encompasses all these possibilities - the same ISA must work for a large square matrix with significant sparsity, as well as for matrices with just a single row or column. The compiler alone is of limited help here, because many of the most performance-critical decisions like tiling, buffering, and layout are instance-specific and cannot be encoded directly into an instruction set contract.</p><p>If Harry tries to account for all these possibilities within an ISA, he must either:</p><ul><li><p>Over-specify behavior, resulting in an unoptimized, CPU-style ISA and microarchitecture</p></li><li><p>Stick to a very low-level abstraction (resulting in bloated hardware - like one large matrix multiplier with huge amounts of memory.)</p></li></ul><p>In either case, a standard ISA would strip away the very benefits that customization is meant to provide. So where does that leave Harry and Alice?</p><div><hr></div><h1>The two bridges</h1><p>Since Harry can&#8217;t simply expose a standard AI ISA and call it a day, the question becomes: how does his hardware connect to Alice&#8217;s world at all?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9HXg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9HXg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 424w, https://substackcdn.com/image/fetch/$s_!9HXg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 848w, https://substackcdn.com/image/fetch/$s_!9HXg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 1272w, https://substackcdn.com/image/fetch/$s_!9HXg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9HXg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png" width="955" height="1176" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1176,&quot;width&quot;:955,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128835,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/187337389?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9HXg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 424w, https://substackcdn.com/image/fetch/$s_!9HXg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 848w, https://substackcdn.com/image/fetch/$s_!9HXg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 1272w, https://substackcdn.com/image/fetch/$s_!9HXg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55a2dde5-f726-4588-84da-9c8f8ccd400b_955x1176.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Today, there are two practical bridges between them.</p><h2><strong>1. Runtime-level integration</strong></h2><p>In the first approach, Alice expresses her model in a standardized, framework-agnostic format. A shared runtime is responsible for executing that model and deciding which parts run on which device. From Alice&#8217;s perspective, almost nothing changes. She writes PyTorch or TensorFlow code and exports a model. From Harry&#8217;s perspective, the integration surface is narrow and predefined: he implements support for a fixed menu of operations, and the runtime takes care of everything else.</p><p>A useful analogy here is a <strong>food court appliance</strong>. Alice places an order by pointing to items on a menu: &#8220;grill this,&#8221; &#8220;blend that,&#8221; &#8220;heat this up.&#8221; The food court manager (the runtime) decides which appliance handles which step. Harry builds a specialized appliance that performs certain actions very efficiently. If the order matches the appliance&#8217;s menu, the runtime sends the work to Harry&#8217;s hardware and it shines. If not, the runtime quietly routes those steps to a different device that knows how to handle them. (which is typically a CPU or a GPU.)</p><p>This is exactly how runtime-level integration works:</p><ul><li><p>The model is a graph of predefined operations</p></li><li><p>Each operation is stateless and self-contained</p></li><li><p>Control flow and orchestration live outside the accelerator</p></li></ul><p>A concrete example of this approach is ONNX Runtime Execution Providers, where hardware vendors accelerate supported operators while delegating unsupported parts of the model to a fallback device. This diagram explains how Alice&#8217;s software and Harry&#8217;s hardware can talk to each other using ONNX.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r7gO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r7gO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 424w, https://substackcdn.com/image/fetch/$s_!r7gO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 848w, https://substackcdn.com/image/fetch/$s_!r7gO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 1272w, https://substackcdn.com/image/fetch/$s_!r7gO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r7gO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png" width="1456" height="1068" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1068,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215405,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/187337389?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r7gO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 424w, https://substackcdn.com/image/fetch/$s_!r7gO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 848w, https://substackcdn.com/image/fetch/$s_!r7gO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 1272w, https://substackcdn.com/image/fetch/$s_!r7gO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febe16248-8b84-48c2-8d63-f2588269504c_1920x1409.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This model works well for inference workloads, where computation is a fixed graph of tensor operations. However, because execution and control flow remain outside the accelerator, it limits how much of the hardware structure (custom memory hierarchies, interconnect flow) can be exposed.</p><div><hr></div><h2><strong>2. Compiler-level integration</strong></h2><p>In the second approach, the bridge moves deeper into the stack. Instead of plugging into a runtime API, Harry integrates at the compiler level, where programs are transformed before execution. Alice still writes high-level code, but now the compiler is responsible for mapping that computation onto the hardware - deciding how loops are formed, how memory is reused, and how execution flows on the device.</p><p>The analogy here is a custom-built kitchen.</p><p>Instead of ordering from a menu, Alice hands over a recipe. Harry designs the kitchen itself: where ingredients are stored, how cooks move, which steps happen in parallel, and how decisions are made mid-cooking. The recipe is compiled into a precise plan tailored to that kitchen.</p><p>This may sound similar to targeting a standard ISA, but the distinction is critical. A standard ISA fixes the instruction set and execution model that all software must target, forcing hardware innovation to happen below that boundary. Compiler-level integration, in contrast, fixes only the meaning of the program. The compiler is free to reshape loops, memory usage, and control flow to match the hardware, without exposing a stable instruction set to the programmer. This allows each accelerator to express its architectural strengths without being constrained by a one-size-fits-all ISA.</p><p>This approach requires much more effort from Harry, because he must:</p><ul><li><p>define how programs are lowered,</p></li><li><p>expose memory and synchronization primitives,</p></li><li><p>and implement a runtime that can execute compiled programs.</p></li></ul><p>But in return, Harry can support:</p><ul><li><p>data-dependent control flow,</p></li><li><p>irregular or sparse computation,</p></li><li><p>custom memory layouts,</p></li><li><p>and long-lived, stateful programs.</p></li></ul><p>A representative example of this model is IREE, which provides a compiler, optimizer, and runtime along with a hardware abstraction layer. Instead of mapping individual operators, Harry defines how programs execute on his device. This turns the accelerator from a co-processor that executes individual operations into a programmable compute target that runs complete programs independently, as shown in this diagram.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cF7G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cF7G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 424w, https://substackcdn.com/image/fetch/$s_!cF7G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 848w, https://substackcdn.com/image/fetch/$s_!cF7G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 1272w, https://substackcdn.com/image/fetch/$s_!cF7G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cF7G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png" width="1456" height="1667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1667,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:263545,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.net/i/187337389?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cF7G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 424w, https://substackcdn.com/image/fetch/$s_!cF7G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 848w, https://substackcdn.com/image/fetch/$s_!cF7G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 1272w, https://substackcdn.com/image/fetch/$s_!cF7G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F121c7be0-c7d0-4aab-9834-00f602c19aac_1489x1705.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s worth emphasizing that IREE can ingest programs from multiple frontends, including ONNX, before lowering them through its compiler stack. The distinction between runtime-level and compiler-level integration is therefore not about which framework Alice starts from, but where hardware-specific decisions are made.</p><h1><strong>Conclusion</strong></h1><p>We&#8217;re entering a phase where meaningful gains in AI performance and efficiency are increasingly coming from custom silicon. But the success of that silicon depends less on raw compute and more on where it connects into the software stack.</p><p>This post was intentionally a high-level overview of that connection point. The space is complex, fast-moving, and still evolving, but at a distance, two broad patterns are already visible. Runtime-level integration offers a fast path to deployment by fitting new hardware into an existing execution model, while compiler-level integration demands more effort but unlocks far greater control over how computation actually runs. Neither approach is &#8220;better&#8221; in the abstract - each reflects a different tradeoff between ease of integration and expressive power.</p><p>In the next parts of this series, we&#8217;ll make these ideas concrete. On <a href="https://chipinsights.net/">Chip Insights</a>, we&#8217;ll walk through building a simple runtime-level backend, starting with a CPU implementation and then extending it toward custom hardware on an FPGA. In parallel, on <a href="https://www.avikde.me/">min{power}</a>, we&#8217;ll look at the problem from Alice&#8217;s side: how different classes of AI and robotics workloads place fundamentally different demands on hardware, and why those differences increasingly matter.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>You can find the next part of this series here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;24b1f30d-739a-4e74-b672-974586df1643&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mapping Algorithms to Custom Silicon - Part 2&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:356074997,&quot;name&quot;:&quot;Avik De&quot;,&quot;bio&quot;:&quot;Safe, efficient robotics &amp; AI -- Robotics Ph.D. and founder&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E5et!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30589b07-e0a0-4de5-8997-78db1ed3f65b_1290x1290.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://www.avikde.me/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://www.avikde.me&quot;,&quot;primaryPublicationName&quot;:&quot;min{power}&quot;,&quot;primaryPublicationId&quot;:7287367}],&quot;post_date&quot;:&quot;2026-03-15T18:42:10.275Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6954c585-f006-40f3-a68b-78a4b1a7e52d_1536x948.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.net/p/mapping-algorithms-to-custom-silicon-efd&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191037416,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[The Accidental Comeback of Verilog]]></title><description><![CDATA[How Generative AI is ending the HDL vs HLS debate]]></description><link>https://chipinsights.net/p/the-accidental-comeback-of-verilog</link><guid isPermaLink="false">https://chipinsights.net/p/the-accidental-comeback-of-verilog</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sat, 17 Jan 2026 05:00:49 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5ccf855a-c7b5-4efd-97be-7de3af76c146_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>In 2022, a graduate-level chip design course at UCLA gave me a glimpse of what felt like the future. Instead of writing RTL in Verilog, we were required to use a Python framework that generated synthesizable Verilog under the hood. I had already been using Verilog for a few years by this point, so this new workflow felt strange at first. But after a few weeks, something clicked. I started to enjoy it. So much so that I made my final project a head-to-head comparison: plain Verilog versus this Python-based approach across several types of RTL IP. The results seemed clear. Yes, the Verilog implementations had slightly better power, performance, and area (PPA) metrics. But the Python framework won on almost everything else that mattered to an RTL designer: it scaled better, made reuse trivial, and produced RTL that was far easier to read and reason about.</p><p>I walked away convinced that this was the direction chip design was headed. Higher-level frameworks would replace handwritten Verilog. That&#8217;s where I was ready to place my bets.</p><p>Lucky for me, I didn&#8217;t have the money to bet - because I was completely wrong.</p><div><hr></div><h2><strong>Verilog Is Fine. What Next?</strong></h2><p>If you have been reading Chip Insights long enough, you&#8217;ll know about <a href="https://chipinsights.net/p/evolution-of-hdls-part-1-the-birth">my two-part HDL saga</a> documenting the story of how Verilog became what it is today. I ended this story in the mid-2000s, when EDA companies started to push for the widespread adoption of SystemVerilog. From this point forward, the Verilog family (plain Verilog and SystemVerilog) emerged as clear winners in the HDL wars. However, there was a parallel storyline which I did not cover in that post.</p><p>The story of HDLs was closely related to the emergence of a new simulation technique called behavioral simulation - as designs got bigger, gate-level simulations became slow and unusable for routine functional checks. Cadence enabled behavioral simulation in Verilog through Verilog Compiled Simulation (VCS) - Verilog was first compiled into C, and this C program was then used to run simulations. Great story. The bedrock of modern logic simulation. But that&#8217;s not the point here. If you can convert an HDL like Verilog into a high-level language like C, why can&#8217;t we start with a high-level language directly?</p><p>In 1998, Forte Design Systems came up with a tool called Cynthesizer (a pretty clever name, I must add), which allowed a designer to build synthesizable logic using SystemC. In 2001, Sony became the first company to tape out a chip using this approach, which would later be known as High-Level Synthesis (HLS). As transistor scaling continued in the 2000s, design cost and complexity grew rapidly. Even the most modern HDL of the time, SystemVerilog, was inadequate for human productivity to catch up with Moore&#8217;s law. This made HLS a compelling candidate.</p><p>There are two primary reasons why HLS was so attractive. The first is obvious: high-level languages provide constructs that HDLs lack which would boost the productivity of chip designers. The second reason was even more compelling. HLS represented a fundamental &#8220;shift left&#8221; strategy to move hardware design earlier in the development cycle and closer to software design. In other words, anyone who can code should be able to design the hardware to run their code. Believers of HLS shared the same optimism that I did when I used Python for RTL design. In fact, in the mid 2000s, Professor Jason Cong built the xPilot HLS system in the same UCLA building. xPilot pioneered a lot of algorithmic innovations that made HLS more than just a convenience - the PPA metrics started to improve as well. xPilot became AutoESL Design Technologies, was acquired by Xilinx (now AMD) in 2011.</p><p>So far, this sounds more like a success story of HLS than what my title suggests. So what happened? HLS definitely proved to be useful in certain cases - like rapid prototyping and deployment on FPGAs. (The core technology of xPilot powers Vivado HLS, which is still used widely today.) However, HLS could never fully replace Verilog, because the promise of HLS was too good to be true. Even today, HLS-generated designs often consume more hardware resources and achieve significantly worse clock frequencies compared to handwritten RTL. More importantly, HLS never truly became what it promised. The fundamental mismatch between software-oriented C/C++ languages and hardware structures meant that HLS tools still can&#8217;t reliably produce synthesizable designs that integrate well with existing EDA tools which remain overwhelmingly Verilog-centric.</p><p>As a compromise, the idea of a Hardware Construction Language (HCL) was born. While HLS tools were intended to automatically infer the best microarchitecture from high-level algorithms, HCLs are high-level language extensions that allow designers to express hardware structure, while simultaneously leveraging powerful software constructs. Chisel, an extension of Scala, was developed at UC Berkeley in 2012 and is one of the most successful examples of an HCL. By the way, the Python framework I mentioned at the start of this post was also an HCL.</p><p>While HLS and HCLs were not perfect, they seemed like early versions of what the future of chip design would look like. HLS algorithmic innovations continue to improve PPA metrics, and a lot of new processor designs are built using frameworks like Chisel. All this while, the Verilog family has not made any major strides. If I had written this post a few years ago, this would be the end of the HDL story. But almost overnight, a new playbook has emerged.</p><div><hr></div><h2><strong>You Can Have Your Cake and Eat It Too</strong></h2><p>The original promise of HLS and HCLs was never about replacing Verilog for the sake of it. It was about building chips faster: by increasing designer productivity, reuse, and scalability. These benefits came with tradeoffs like worse PPA and painful EDA integration. As they say, there are no free lunches.</p><p>Generative AI changes this equation in a fundamental way.</p><p>With GenAI-assisted Verilog, you get many of the same benefits that HLS and HCLs aimed to provide, without abandoning the Verilog ecosystem. The productivity gains are the most obvious. Writing boilerplate RTL, parameterizing modules, refactoring interfaces, or instantiating complex microarchitectural patterns are all tasks that LLMs handle remarkably well. What once justified a higher-level language now often collapses into a single prompt. You still end up with Verilog, but you get there faster, with fewer errors, and with much less cognitive overhead.</p><p>More interestingly, GenAI quietly revives one of the most compelling arguments for HLS: the &#8220;shift left.&#8221; While this shift was long promised, HLS never reliably delivered on it. PPA was difficult to estimate accurately at the HLS abstraction, and those estimation errors were often more costly than starting from RTL in the first place.</p><p>Generative AI flips this dynamic entirely. Instead of postponing RTL, it accelerates its creation. High-level specifications, performance targets, and even informal design intent can now be translated directly into functional RTL models early in the design cycle. Hardware and software can evolve in parallel, not because RTL is avoided, but because it is cheap to generate, modify, and discard. In other words, GenAI enables a shift left, without a shift away from Verilog.</p><div><hr></div><h2><strong>Why Verilog Was Ready for This Moment</strong></h2><p>Verilog didn&#8217;t reinvent itself for the GenAI era. The GenAI era quietly reinvented itself around Verilog.</p><p>First, Verilog sits at the center of the EDA ecosystem. Decades of tool development have gone into taking Verilog as input and squeezing out the best possible PPA. Synthesis, place-and-route, timing closure, power analysis: these flows are deeply optimized for RTL written in Verilog and SystemVerilog. The switching costs are enormous.</p><p>Second, in the already limited chip design data available to train large language models, Verilog dominates. This creates a powerful flywheel effect. Verilog is used to train LLMs, which then generate more Verilog, further reinforcing its position as the language of digital design.</p><p>Today, we are seeing a combination of these two factors, in the form of closed-loop RTL design agents. Verilog code is both a cycle-accurate, and formally checkable artifact, which can be used to generate accurate reward signals to improve the AI. (I&#8217;m not going into details of these systems here, but all signs are pointing towards such RL environments becoming the future.) The implication of this is that GenAI won&#8217;t just lead to more Verilog, it will lead to better Verilog. Over time, this creates a compounding effect - Verilog will become the most optimized way to design chips, even if that Verilog is generated by an AI agent.</p><p>In the world I just described, HCLs and HLS tools seem irrelevant. If Verilog is cheap to generate, easy to iterate on, and continuously optimized by feedback, the incentive to move away from it fades. Verilog survived long enough to see the light at the end of the tunnel. Now, the future looks brighter than ever.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Computer Architecture Calendar]]></title><description><![CDATA[An annual ritual of hype, validation, and existential dread]]></description><link>https://chipinsights.net/p/the-computer-architecture-calendar</link><guid isPermaLink="false">https://chipinsights.net/p/the-computer-architecture-calendar</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sun, 04 Jan 2026 00:59:07 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a3d71bde-a121-4394-9098-668919bae0d9_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p><strong>Another disclaimer: The characters and events in this post are fictitious (but the conferences are real). Any resemblance to real people is purely coincidental (though statistically inevitable in my audience). For the record, I have not faithfully followed all of these conferences in the past. This post exists mainly because I&#8217;d like to start doing so this year and thought I might as well share ten conferences I think are useful. Unfortunately, I couldn&#8217;t resist making the whole thing a little funny, so here we go&#8230;</strong></p><div><hr></div><p></p><p>The protagonist of this story is someone I&#8217;m sure you have crossed paths with. They forget birthdays, miss tax deadlines, and couldn&#8217;t name a single band on tour - but they know exactly when and where every major computer architecture conference is held.</p><p>Their calendar isn&#8217;t divided into months. It&#8217;s divided into trade shows.</p><p>This is how a year in that person&#8217;s life looks.</p><div><hr></div><p></p><h2><strong>CES: Between hope and hype</strong></h2><p>Our protagonist loves speculation. Branch prediction, speculative execution, prefetching: all the performance gains they deliver are built on confidently guessing what will happen next. So there is no better way to start the year than CES in January. While CES isn&#8217;t always about chips, the recent AI accelerator mania has turned it into the perfect launchpad for the year. Bold claims, ambitious roadmaps, and just enough technical detail provide our protagonist with exactly the right mix of signals and buzzwords to carry them through the months ahead.</p><p><strong>Why it matters</strong></p><p>CES tells you what&#8217;s being productized and will therefore shape algorithms and architectures of the future.</p><p><strong>How to follow it efficiently</strong></p><p>Watch the keynotes. Skim the announcements. Pay attention to products that actually exist, not just the slides describing them.</p><p><strong>One thing to watch in 2026</strong></p><p>Has anyone built a useful, physical product where AI is solving a genuine problem.</p><div><hr></div><p></p><h2><strong>ISSCC: Let&#8217;s get real</strong></h2><p>By February, our protagonist&#8217;s speculation bubble goes through a silicon trial by fire. ISSCC is where we stop guessing and start measuring. Statements and projections from CES slides are replaced by die photos, power numbers, and phrases that begin with &#8220;fabricated in&#8230;&#8221;. Each one either validates past optimism or quietly resets expectations.</p><p><strong>Why it matters</strong></p><p>ISSCC is a good way to understand how performance and power scale between architectural simulations and real silicon.</p><p><strong>How to follow it efficiently</strong></p><p>Skim broadly to identify the most relevant designs. Then read one or two papers deeply to understand the true state of the art. Watch out for assumptions.</p><p><strong>One thing to watch in 2026</strong></p><p>How is Moore&#8217;s Law really progressing? Are improvements coming from architecture, process nodes, or both?</p><div><hr></div><p></p><h2><strong>GTC: Crowning the Starboy</strong></h2><p>March belongs to the Taylor Swift concert of today&#8217;s tech world. Our protagonist once followed GTC for innovations in parallel computing architectures. Now, it&#8217;s a coronation ceremony for Nvidia&#8217;s platform and its developers. Everyone listens to Jensen Huang carefully, because this is where the industry&#8217;s vocabulary for the next twelve months is minted.</p><p><strong>Why it matters</strong></p><p>GTC now defines the AI narrative and vocabulary that everyone else ends up adopting.</p><p><strong>How to follow it efficiently</strong></p><p>Watch the keynote. Then pick a handful of genuinely technical sessions. Ignore the excessive press coverage and stock-price astrology.</p><p><strong>One thing to watch in 2026</strong></p><p>What does Nvidia&#8217;s platform roadmap look like for inference&#8212;especially in a post Groq license world?</p><div><hr></div><p></p><h2><strong>Computex: Board yet?</strong></h2><p>Computex reminds our protagonist that chips do not exist in isolation. This is where architecture turns into motherboards, racks, cooling solutions, and deeply uncomfortable power budgets. It&#8217;s less about novelty and more about integration. More recently, it has also become the place where vendors launch their latest SoCs for, you guessed it, AI.</p><p><strong>Why it matters</strong></p><p>Computex shows what it actually takes to turn a good architecture into a usable product. It&#8217;s important to be aware of what&#8217;s happening outside the cores.</p><p><strong>How to follow it efficiently</strong></p><p>Get a high-level view of system architectures for the latest SoCs. Pay attention to reference designs and power, thermal, and memory numbers when they&#8217;re provided.</p><p><strong>One thing to watch in 2026</strong></p><p>Whether the industry finally agrees on what an &#8220;AI PC&#8221; is, and if any new players enter that space.</p><div><hr></div><p></p><h2><strong>ISCA: Sheer elegance</strong></h2><p>ISCA is where our protagonist feels intellectually nourished. The best ideas in computer architecture are here in their purest form. Some are brilliant. Some are fictional. A few will quietly influence designs a decade later. No product timelines, no market requirements. Just elegant computer architecture.</p><p><strong>Why it matters</strong></p><p>ISCA sharpens your architectural intuition by offering new ways to think about familiar problems.</p><p><strong>How to follow it efficiently</strong></p><p>Skim all abstracts. Then invest real time in a few papers that genuinely intrigue you. Ask whether ideas from one domain could transfer to another.</p><p><strong>One thing to watch in 2026</strong></p><p>How are CPU architectures evolving in the era of accelerated computing?</p><div><hr></div><p></p><h2><strong>DAC: Ship faster</strong></h2><p>All the old-school, hype-free academic computer architecture study leads our protagonist to wonder if AI is just a bubble. DAC arrives at exactly the right time, reassuring them with claims that AI-powered tools can reduce the time to ship a new chip from years to seconds. It also serves as a reminder of the less glamorous innards of chip design, like verification and physical design.</p><p><strong>Why it matters</strong></p><p>An architecture is only as good as its ability to be built, and more importantly, built on time. DAC shows how semiconductor tooling is evolving to close the gap between ideas and tape-out.</p><p><strong>How to follow it efficiently</strong></p><p>Skim panels to understand what&#8217;s new in tooling. Before getting excited, always check whether these tools actually work on industry-scale designs.</p><p><strong>One thing to watch in 2026</strong></p><p>If, and how AI-assisted design flows are being deployed in the industry.</p><div><hr></div><p></p><h2><strong>Hot Chips: Industry, minus the hype</strong></h2><p>As summer draws to a close, our protagonist finds themselves desperately searching for the truth. This leads them to Hot Chips, where architects speak slowly, precisely, and with slides that took their companies months to approve. Tradeoffs are admitted. Constraints are acknowledged. Reality is explained. Our protagonist trusts this conference more than almost any other.</p><p><strong>Why it matters</strong></p><p>Hot Chips is an industry conference that is unusually light on marketing. The goal is to simply explain what was shipped and why.</p><p><strong>How to follow it efficiently</strong></p><p>This is worth spending time on. Watch the talks. Read the slides carefully. Take notes.</p><p><strong>One thing to watch in 2026</strong></p><p>How many meaningfully different AI architectures do we really have?</p><div><hr></div><p></p><h2><strong>SEMICON Taiwan: Supply chain magic</strong></h2><p>By September, the story shifts to the heartland of semiconductor manufacturing. Here, our protagonist listens to conversations about yield, packaging, and process limits. The names of many exhibitors sound unfamiliar, but a closer look reveals them to be critical players in the semiconductor supply chain. It&#8217;s a reminder that architecture is important, but only a small part of a vastly more complex world.</p><p><strong>Why it matters</strong></p><p>Manufacturing constraints increasingly shape architectural decisions. They can&#8217;t be ignored.</p><p><strong>How to follow it efficiently</strong></p><p>Use this as a chance to understand the supply chain better. Process roadmap and packaging sessions are the most valuable.</p><p><strong>One thing to watch in 2026</strong></p><p>What&#8217;s new in the world of advanced packaging and 3D ICs that are actually ready for volume production.</p><div><hr></div><p></p><h2><strong>MICRO: Grounding ideas to reality</strong></h2><p>If ISCA feeds our protagonist&#8217;s love for elegant ideas, MICRO satisfies their need to see those ideas survive contact with reality. This is where high-level architectural concepts are dragged into the microarchitecture and explained cycle by cycle. MICRO isn&#8217;t for the casual computer architecture enthusiast. The diagrams are denser, the assumptions sharper, and the discussions expect real chip-design experience.</p><p><strong>Why it matters</strong></p><p>MICRO bridges the gap between architectural ideas and real implementations, exposing the costs, tradeoffs, and complexity that abstractions tend to hide.</p><p><strong>How to follow it efficiently</strong></p><p>Focus on papers that include detailed evaluations and realistic assumptions. Pay attention to how architectural ideas translate into microarchitectural blocks.</p><p><strong>One thing to watch in 2026</strong></p><p>Are there credible examples of AI influencing microarchitectural decisions better than a human designer can?</p><div><hr></div><p></p><h2><strong>IEDM: A glimpse of the future</strong></h2><p>The busy computer architecture calendar comes to a close at IEDM. Our protagonist listens to talks about devices, confidently thinking they won&#8217;t matter for years. Soon, a quiet fear sets in that, when these devices finally do matter, they might change everything. The thought sends a chill down their spine, and pushes them to search for notes from the one device physics class they took in undergrad.</p><p><strong>Why it matters</strong></p><p>IEDM defines what architectures may even be possible a decade from now. Following it is a form of long-term career insurance.</p><p><strong>How to follow it efficiently</strong></p><p>Don&#8217;t get stuck on the physics. Assume the devices work, then ask how they would reshape memory hierarchies, compute models, and system architectures.</p><p><strong>One thing to watch</strong></p><p>Which emerging technologies, like quantum, neuromorphic, and novel memories, are close to being deployed in real chip</p><div><hr></div><p></p><p>By the end of the year, our protagonist is carrying a heavy mental load: half-remembered acronyms, conflicting roadmaps, benchmark caveats, packaging buzzwords, and just enough existential dread to stay alert. They&#8217;ve learned when to believe, when to squint, and when to politely wait for silicon. And just as they start to feel like they&#8217;ve finally made sense of it all, the year resets. New nodes. New models. New claims. Same conferences. So, they clear their calendar, open a fresh notebook, and show up again, because <strong>as stressful and confusing as it sounds, somehow, it&#8217;s still fun.</strong></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Want to follow this year&#8217;s conferences with me?</strong></h3><p>I&#8217;ve created a shareable Google Calendar with all of these conference dates pre-filled, for anyone who wants their existential dread to be neatly scheduled. <strong>Subscribers will receive a link to this calendar - consider this a gentle nudge to subscribe if you haven&#8217;t already.</strong></p><p>If there are other conferences that every computer architect should mentally budget for, let me know in the comments. The calendar, like the study of computer architecture, is never truly complete.</p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[The Alphabet Soup of Processors]]></title><description><![CDATA[Not sure which will end first: Moore&#8217;s Law, or alphabets used to describe processors?]]></description><link>https://chipinsights.net/p/the-alphabet-soup-of-processors</link><guid isPermaLink="false">https://chipinsights.net/p/the-alphabet-soup-of-processors</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 15 Dec 2025 02:00:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!846s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!846s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!846s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!846s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!846s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!846s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!846s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2876327,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/181619479?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!846s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!846s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!846s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!846s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79c457f-cd01-46c5-afe3-9e0559195b76_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>CPU. GPU. TPU. NPU. DPU. IPU. LPU.</p><p>Every year, the alphabet soup gets richer. But I wonder if it&#8217;s adding any value? Over the last two years, GPUs were the unquestioned champions of the AI boom. Right now, TPUs are having a moment as the new architecture that is supposedly better for AI than GPUs. NPUs reliably show up during some product keynotes, often accompanied by &#8220;inference&#8221; or &#8220;low power.&#8221; Meanwhile, CPUs still have their audience of PC and smartphone enthusiasts.</p><p>At this point, the industry&#8217;s obsession with new &#8220;PUs&#8221; is starting to look uncomfortably familiar. <a href="https://chipinsights.substack.com/p/demystifying-the-semiconductor-process">We&#8217;ve seen this movie before - with process nodes</a>. Once upon a time, node names conveyed real, comparable information. Then they became branding. &#8220;7nm&#8221; stopped meaning 7nm. &#8220;3nm&#8221; stopped being smaller than someone else&#8217;s &#8220;5nm.&#8221; The label survived; the meaning didn&#8217;t. I think processor acronyms are heading down the same path. Pick a new letter. Add &#8220;accelerator,&#8221; &#8220;custom,&#8221; or &#8220;ASIC.&#8221; Publish a carefully chosen benchmark. Congrats, you have a new processing unit.</p><p>The problem isn&#8217;t that TPUs, NPUs, or GPUs aren&#8217;t important or innovative. The problem is that the acronym leaves out the essence of the architecture: what it&#8217;s actually optimized for, what tradeoffs it makes, and where its real value comes from. If you squint hard enough, almost anything can be called an accelerator. If you zoom out far enough, almost everything looks like a CPU. This does not sit well with me.</p><p>Continuing with <a href="https://chipinsights.substack.com/p/what-should-i-write-if-ai-can-write">the theme of my last post</a>, I don&#8217;t think the right question is &#8220;Is this a GPU or an NPU?&#8221; It&#8217;s whether we&#8217;re even using the right vocabulary to evaluate compute architectures at all. Instead of arguing over letters, we should be asking sharper questions - questions that force clarity instead of reinforcing branding. I think the following four questions are a far more informative way to classify chips.</p><div><hr></div><p></p><h2>Question 1. Host relationship: Is your product the boss, a helper, or just another block on the die?</h2><p><strong>Categories:</strong></p><ul><li><p><strong>Standalone:</strong> Boots an OS and owns the system.</p></li><li><p><strong>Co-processor:</strong> Lives behind PCIe or a fabric. Needs a host to schedule work, manage memory, and keep the lights on.</p></li><li><p><strong>Integrated IP:</strong> One of many blocks inside an SoC, visible to software only through drivers or libraries.</p></li></ul><p><strong>Why it matters:</strong></p><p>Host relationship determines who controls the system. Standalone processors shape the entire software stack and system architecture. Co-processors live and die by host integration and software orchestration. Integrated IP blocks rarely escape the platform they&#8217;re embedded in, no matter how impressive the pure-silicon performance is. Two chips with identical compute units can have wildly different impact depending on whether they&#8217;re in charge, or waiting for instructions.</p><div><hr></div><p></p><h2>Question 2. Domain coverage: How many different major software domains (at least a million developers) can this architecture serve effectively?</h2><p>To clarify, I consider the following as major software domains of today.</p><ul><li><p><strong>System software:</strong> OS kernels, language runtimes, compilers, CLI tools</p></li><li><p><strong>User Interfaces:</strong> desktop/mobile apps, browsers, light graphics</p></li><li><p><strong>Data processing:</strong> SQL databases, analytics, streaming</p></li><li><p><strong>Media &amp; graphics:</strong> Video encoding/decoding, 2D/3D graphics pipelines</p></li><li><p><strong>High Performance Computing:</strong> simulation, scientific computing, linear algebra</p></li><li><p><strong>ML/AI workloads:</strong> training and inference across model families</p></li></ul><p><strong>Categories:</strong></p><ul><li><p><strong>General purpose:</strong> The chip is competitive or better than the incumbent across 3 or more domains</p></li><li><p><strong>Domain specific:</strong> The chip excels only in 1-2 domains</p></li></ul><p><strong>Why it matters:</strong></p><p>Domain coverage is the difference between <em>platforms</em> and <em>point solutions</em>. General-purpose architectures benefit from massive software ecosystems, long lifetimes, and constant reuse. Domain-specific chips can deliver spectacular gains, but only as long as the workload stays stable. When you are looking at a domain-specific chip, the domain matters as much, if not more, that the silicon innovation. (<a href="https://chipinsights.substack.com/i/157692695/pick-the-right-domain">As Jensen Huang puts it, pick &#8220;Zero Billion Dollar&#8221; markets.&#8221;</a>)</p><div><hr></div><p></p><h2>Question 3. Execution paradigm: What architectural feature delivers throughput?</h2><p><strong>Categories:</strong></p><ul><li><p><strong>MIMD (Multiple Instruction, Multiple Data):</strong> Many independent cores, each running its own control flow. Classic multicore and many-core CPUs live here.</p></li><li><p><strong>SIMT (Single Instruction, Multiple Threads):</strong> Groups of lanes share an instruction stream with per-lane masking. This is the beating heart of modern GPUs.</p></li><li><p><strong>Custom:</strong> Fixed or semi-fixed dataflow architectures designed around specific computation patterns (e.g., systolic arrays, spatial fabrics).</p></li></ul><p><strong>Why it matters:</strong></p><p>Execution paradigm reveals what kind of parallelism the architecture is betting on. MIMD favors flexibility and irregular control flow. SIMT thrives on massive data parallelism. Custom paradigms trade generality for efficiency. Once you understand this axis, performance claims stop sounding magical and start looking like predictable outcomes of design choices.</p><div><hr></div><p></p><h2>Question 4. Programmability model: How does a programmer get work done from your chip?</h2><p><strong>Categories:</strong></p><ul><li><p><strong>Native ISA:</strong> General-purpose compilers (C/C++) target it directly.</p></li><li><p><strong>Kernel-compiled:</strong> You write kernels in a language extension like CUDA, OpenCL, HIP, or a domain-specific language.</p></li><li><p><strong>Graph-compiled:</strong> You describe computation as a graph (often via an ML framework like PyTorch or TensorFlow), and a compiler maps it to the hardware. In graph-compiled systems, the graph is the primary abstraction for the programmer, not the kernel. (Graph-compiled systems still use kernels underneath.)</p></li><li><p><strong>Bitstream configured:</strong> You configure the hardware fabric itself. For example, FPGA bitstreams or CGRA configurations.</p></li></ul><p><strong>Why it matters:</strong></p><p>Programmability determines who can use the hardware and how fast ecosystems form. Native ISAs scale with developer count. Kernel models reward specialists and expert programmers. Graph-based systems trade flexibility for convenience: they work extremely well when your problem fits the graph, and poorly when it doesn&#8217;t. Bitstream-based approaches offer ultimate hardware control, but at the cost of accessibility. Many promising architectures fail not because of silicon, but because the programming model never escapes a niche audience.</p><div><hr></div><p></p><p>Taken together, these questions offer a better way to think about modern compute architectures. Once you look at chips through these lenses, debates like GPU vs TPU vs NPU start to feel oddly shallow. Architectures stop being mysterious, and performance claims start to look like the predictable outcomes of very specific tradeoffs. For instance, below is a classification of several chips that are often loosely grouped under the label &#8220;accelerators.&#8221; This classification forces each architecture to reveal its position along concrete design axes: who controls the system, how broad the user base is, where throughput actually comes from, and how programmers interact with the hardware. Chips that are often lumped together as &#8220;accelerators&#8221; end up in very different places once you apply these questions, and those differences explain far more about real-world impact, adoption, and longevity than any three-letter acronym ever could.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_wyD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_wyD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 424w, https://substackcdn.com/image/fetch/$s_!_wyD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 848w, https://substackcdn.com/image/fetch/$s_!_wyD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 1272w, https://substackcdn.com/image/fetch/$s_!_wyD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_wyD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png" width="1456" height="291" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:291,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99797,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/181619479?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_wyD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 424w, https://substackcdn.com/image/fetch/$s_!_wyD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 848w, https://substackcdn.com/image/fetch/$s_!_wyD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 1272w, https://substackcdn.com/image/fetch/$s_!_wyD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3391fb-b979-41fa-87c4-a66355fbbda8_2037x407.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>If you haven&#8217;t subscribed yet, here&#8217;s a reason to: when you subscribe, you&#8217;ll receive the link to the full list with other categories and explanations.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>If you have read so far, I&#8217;m curious - what other questions would add value to chip architecture classification?</p><p></p>]]></content:encoded></item><item><title><![CDATA[What should I write if AI can write everything?]]></title><description><![CDATA[What next for Chip Insights]]></description><link>https://chipinsights.net/p/what-should-i-write-if-ai-can-write</link><guid isPermaLink="false">https://chipinsights.net/p/what-should-i-write-if-ai-can-write</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sun, 07 Dec 2025 07:17:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>It&#8217;s been more than two months since I wrote my last post. One of the reasons I took a pause was to deliberate over a question that just wasn&#8217;t leaving me: <strong>Does a technical newsletter like Chip Insights matter in a world where GenAI keeps getting better?</strong> To answer this, I need to first define what &#8220;matters&#8221; means. The reality is, this newsletter will only ever reach a small fraction of people who are interested in a very niche topic - so traditional content metrics like views or subscribers make no sense. The only true feedback for my work comes from this question: <strong>&#8220;Would I read this post if it was written by someone else.&#8221;</strong> With today&#8217;s AI tools, that question really becomes: <strong>&#8220;Is it easier to generate this post on an AI chatbot, that write it?&#8221;</strong></p><div><hr></div><h2><strong>Things we tell ourselves to feel better</strong></h2><p>One of the most common arguments in defense of humans is that &#8220;AI makes mistakes.&#8221; I don&#8217;t think this is a strong argument to hide behind. Sure, chatbots hallucinate and make mistakes, but so do humans - even the most decorated content creators. Like a lot of technologies we have seen in the past, I&#8217;m sure the errors will reduce over time, and AI answers could become a reliable source of information. In my opinion, content creators saying their content is better because it&#8217;s more accurate, are willing to challenge an ever-improving machine backed by trillions of research dollars. Personally, I think that&#8217;s a losing battle.</p><p>There is another defense of traditional content which never sat well with me. I&#8217;ve seen a lot of arguments about how consuming difficult technical content is &#8220;inherently noble&#8221;, and AI provides processed answers which are &#8220;cheats&#8221; and will shrink your brain. In my opinion, difficulty, by itself, should never be a virtue to strive for. Before humans discovered fire, digestion was hard, consuming a lot of energy. Cooking made food easier to process, freeing energy for other activities like thinking, building, and evolving. I&#8217;m quite sure AI-generated educational content will have a very similar positive effect.</p><p>So before dismissing AI, we should acknowledge the aspects that AI excels at.</p><div><hr></div><h2><strong>Is AI is coming for my posts?</strong></h2><p>Today&#8217;s AI is extraordinary at compressing information. It can digest long, messy documents and explain them in simpler terms. Interestingly, this is what most traditional content creation has centered around. (Including some of my posts, I&#8217;ll admit.) I think we are getting very close to the point where the returns from such content won&#8217;t justify the investment - it will be so much easier to generate such content on demand.</p><p>AI is also a fantastic tool to explore content related to a specific topic you are interested in. This has been my favorite use of AI: I can easily get a list of 5-10 sources I want to explore for my research on a topic, bypassing the SEO-engineered, often irrelevant links. In my experience of doing this, I have found that a few in-depth engaging sources, along with the AI summary on the topic, are sufficient for my research - I don&#8217;t want to jump multiple links where parts of the information are spread out.</p><p>Essentially, if the purpose of a piece of writing is simply to transfer information from one form to another, or one place to another, AI will inevitably outperform humans on speed, breadth, and efficiency.</p><div><hr></div><h2><strong>So where does that leave me?</strong></h2><p>The point of this exercise was not to say that AI will replace content creation entirely. The concept of generative AI fundamentally cannot displace certain types of content - which is specifically what I want to focus on.</p><p>My north star for content creation has been the Acquired podcast. For those who don&#8217;t know, the idea behind Acquired is to tell the story of a company, with all of its gory details, in episodes that sometimes last 4 hours. Today&#8217;s AI struggles with such analysis, and there are fundamental reasons why it might be this way for a long time. An LLM lacks a &#8220;mental model&#8221; - understanding of concepts like time, hierarchies and abstractions. Models also gravitate towards a median of possibilities. While this makes AI excellent at flattening complexity, maintaining engagement sometimes requires expanding complexity into a narrative form. The failure to do this is what makes AI sound &#8220;robotic.&#8221; While you can get away with a robotic tone if you have &#8220;explain the differences between a CPU and a GPU,&#8221; it&#8217;s important to keep the audience engaged if you want to &#8220;share a deep dive on the evolution of GPU architectures&#8221;.</p><p>Another problem with AI content is that it is user driven - the value of the answer depends on the question you are asking. AI might have all the answers, but AI isn&#8217;t curious. Good content, therefore, should prompt the audience to ask more questions - questions about bottlenecks, architectural shifts, industry narratives, or places where assumptions are beginning to bend. Questions like these generally emerge from judgment, from noticing patterns, and from wondering what others might be missing - something that AI cannot replicate.</p><p>This is what I&#8217;ve been thinking about during my break: <strong>that the real value of technical content isn&#8217;t in being a source of information, but in being a source of interpretation.</strong> I&#8217;m looking forward to returning to writing with these ideas in mind.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Letter to the subscribers - Year 1]]></title><description><![CDATA[Thoughts on a year writing Chip Insights]]></description><link>https://chipinsights.net/p/letter-to-the-subscribers-year-1</link><guid isPermaLink="false">https://chipinsights.net/p/letter-to-the-subscribers-year-1</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sat, 20 Sep 2025 14:49:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>This post is not about chips. It&#8217;s not even about AI like <a href="https://chipinsights.substack.com/p/2025-yc-ai-startup-school-round-up">that one post</a> was. This is about me.</p><p>As I&#8217;m writing this, it&#8217;s been a year since I wrote my first post on Chip Insights. So, I thought I&#8217;ll reflect a little and open up about my plans for the future.</p><div><hr></div><h1><strong>Why did I start Chip Insights?</strong></h1><p>Ideally, this should have been a part of my first post. But I did not have a good answer. Instead, I chose to write about Moore&#8217;s law:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;33a5703e-a188-453a-9b51-f3776c503a6c&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Moore&#8217;s Law and the Performance Promise&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-09-16T01:58:55.098Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/moores-law-and-the-performance-promise&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:148941455,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Turns out, Moore&#8217;s law was actually the perfect way to start, because, like the number of transistors in a chip, <strong>ideas compound exponentially</strong>. Every new post I have written here has made me an exponentially better thinker. So more than anything, Chip Insights is my training ground; the place where I take half-baked ideas and make them concrete. <strong>I learn more from Chip Insights than any of my readers.</strong></p><p>Well if that&#8217;s my reason, one could ask (and a lot of people have asked) why I post this content publicly. I have found that there is a huge difference in the way I think in private, versus when I need to present my ideas. The vulnerability associated with public content has pushed me to think more deeply than I would have in a private brainstorming session. For instance, I always thought I knew what CPU bitness was, but when I decided to write a post about it, I realized how complex that number truly is.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f98f3ca9-fc80-4734-aff9-42e80716f506&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;What does CPU bitness mean?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-12-21T17:29:37.606Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/what-does-cpu-bitness-mean&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:153459070,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>What do I offer?</strong></h1><p>I&#8217;m aware that in a post addressing my subscribers, the right way to answer the &#8220;why&#8221; question is to say something altruistic, something like &#8220;I want to pass on my learnings to students.&#8221; It&#8217;s nice when that happens, but I would be lying to myself if I said everything I do is towards that goal. However, I have two ways of thinking that one might consider altruistic.</p><p>First, I am convinced that the positioning of computer engineering as a career needs some work. There are a few attributes that computer engineering has acquired over time which does not sit well with me: slow-moving, hard, and risk-averse come to mind. A lot of very talented students are put-off by these attributes. The emergence of AI has made semiconductors cool again, and I want to use this opportunity to reframe how the industry is perceived. For example, not a lot of people know how fast-paced the EDA world was - a story I covered here.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3d3aeff8-5e0a-4680-bbbf-e8b8f7dcb1c7&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;EDA Deep Dive - Part 1: The History&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-11-16T18:31:42.506Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/eda-deep-dive-part-1-the-history&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:151751360,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>There&#8217;s another issue. Even if you like this industry and want to pursue your career here, there are too many roadblocks, which eventually kills potential talent. I am not in a position to bring about structural changes to the industry, but one thing I can do is to reduce some anxiety in the process of making it, which is what led to posts like this.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;01aefb57-a869-4601-82d3-c8cef313bba3&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Computer Engineering Game&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-03-22T03:59:31.903Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/the-computer-engineering-game&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:159596495,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:38,&quot;comment_count&quot;:3,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>How is Chip Insights different?</strong></h1><p>I have done some technical writing before Chip Insights - in school, at work, and also authoring research papers. But the advantage of a medium like this is the freedom it provides. I have used this freedom in three ways.</p><p>First, I was able to bypass the need to explain concepts from the ground up - as you would do in a typical college program. For example, the right way to understand power consumption in chip design is to first understand exactly how a transistor works. But I have always found this to be a bit restrictive - in the case of chip power, only engineers with visibility to the transistor level contribute ideas, and they are often quite similar. If a software engineer wants to understand what makes a chip power efficient, they would be scared off by all the complex transistor-level terminology and would make no progress. My post on power optimization was an attempt to see how much I could abstract out without being inaccurate - turns out, quite a lot.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;dde6bdcd-1088-4d96-98b4-3a1af9e1c2db&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Power essentials for a chip architect&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-06-07T02:37:32.387Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/power-essentials-for-a-chip-architect&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:165388326,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:31,&quot;comment_count&quot;:3,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Another theme in most of my technical post is the idea of analogies - comparing chip design concepts to something relatable - to make them stick in your mind a little longer. I know some people, especially the &#8220;academic&#8221; types, find analogies to be juvenile. But I have actually found that thinking in terms of analogies, and stretching them out as much as possible really strengthens your understanding of something. For example, I tried that with on-chip networks by comparing them to airline routes in this post.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9c116894-d32e-4590-ba8a-5765ecd9bd15&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Understanding on-chip networks&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-25T04:30:46.059Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!5OF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/understanding-on-chip-networks&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:171857530,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:14,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Finally, there is world building. I think this is the hardest to crack, because building interesting worlds isn&#8217;t easy - if it were, The Walt Disney Company wouldn&#8217;t be worth $200 billion. But if you can build a world that is compelling enough, then even reading about a pedestrian topic like Static Timing Analysis can be made fun, which is what I tried here.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;62675c5c-5f67-4809-86a5-18135fcfc0c0&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Confessions of a static timing analysis tool&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-21T15:11:11.670Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/confessions-of-a-static-timing-analysis&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:168864393,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:15,&quot;comment_count&quot;:3,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>How has my writing evolved?</strong></h1><p>I never realized this, but a lot of my early posts were based on topics which had very little scope for subjectivity - for example, this post about pipelining, which walks through how a traditional CPU pipeline has always looked like.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1429b67e-cf10-4e93-b106-7e6c96ee8d40&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;In-Order Instruction Pipelining in Processors&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-09-29T23:24:51.011Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/computer-architecture-101-series&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:149584645,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I think a part of me was unsure about how new ideas would be perceived - especially from someone who lacks authority. But as I went forward on this journey, I think my writing has become more assertive. I wrote a post on how AI will influence EDA, which was away from my comfort zone, because, well, nobody still knows the answer.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0b74d26e-9c47-47f2-8451-dc6dc4147e48&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;EDA Deep Dive - Part 3: The AI Era&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-01-11T17:29:32.777Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/eda-deep-dive-part-3-the-ai-era&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:154626822,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>A bolder version of this was my more recent post about full-stack chip design, and idea that <a href="https://news.ycombinator.com/item?id=44486541">irked a lot of readers on Hacker News</a>, but something that I believe is a well thought out analysis.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;54448de2-155e-4943-9e75-679b4652c485&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The era of full-stack chip designers&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-06T22:08:24.120Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/the-era-of-full-stack-chip-designers&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:167679014,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:14,&quot;comment_count&quot;:4,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I also expanded to cover aspects beyond technical knowledge, because I think the kind of person you are strongly influences the kind of engineer you would be, and we engineers are very bad at understanding this. I aim to do more of this, but one place where I see this mattering a lot is technical interviews, which prompted me to write this post.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8a4164e2-9f8e-43c8-bfc2-9d707f14be55&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The psychology of a technical interview&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-04T06:02:37.496Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/the-psychology-of-a-technical-interview&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:170059945,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:9,&quot;comment_count&quot;:1,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>How to predict the future?</strong></h1><p>With the great power of assertiveness comes a great responsibility - the responsibility of being right. (More often than not, at least.) So how can someone get better at that? The best way I know to predict the future is to learn from the past - that&#8217;s the only formula that seems to work. (When AI takes over, I&#8217;m pretty sure they&#8217;ll tell us the same thing.) Exploring semiconductor history has been one of the most rewarding experiences of this journey, and posts like this will continue to be a big part of Chip Insights.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;07d272d0-18ea-453e-9448-5664f44342ec&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Evolution of HDLs - Part 1: The birth of VHDL and Verilog&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-03-08T15:35:42.317Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/evolution-of-hdls-part-1-the-birth&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:158652416,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:14,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The other way to predict the future is to learn about great companies and their strategies. Patterns in business repeat themselves - success is about finding the right pattern. I captured my learnings from one of the most successful companies of our time in this post.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;53669d4e-024f-4534-8a53-054ed5ef8ab7&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to build a new chip architecture, ft. Nvidia&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-13T18:06:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/how-to-build-a-new-chip-architecture&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:157692695,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2850528,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>So, what&#8217;s the future of Chip Insights?</strong></h1><p>Posting an article (almost) every week for the last year has been a great experience - I learn a lot each time I do it, and hopefully could pass on some of my learnings in the process. But something that I have enjoyed even more than that has been the feeling that writing unlocks in me - every time I plan to write a new article, I want to reinvent myself and try something different. This feeling is powerful, and I have seen that it spreads across all aspects of my life - not just writing. But I am realizing that the best way to reinvent is not always to do it more often&#8230;</p><p>In chip design companies, a common practice used to innovate better is called the &#8220;tick-tock&#8221; model. Here, a &#8220;tick&#8221; project involves incremental improvements that can be completed quickly. But after a few ticks, companies pursue a &#8220;tock&#8221; project - a big structural change, usually dubbed as the next chip generation. In the last year, Chip Insights has seen a lot of ticks that I&#8217;ve highlighted in this post, but it&#8217;s time for a tock. There are few new ideas that I would like to pursue, which needs me to take a <strong>break from writing.</strong></p><div><hr></div><p>Whether this is the first post of mine you are reading, or you are that one subscriber who subscribed even before I wrote my first ever post, (that really happened, still don&#8217;t know why, but I&#8217;ll take it.) or maybe you came in somewhere along the way, <strong>thank you so much for showing that you care.</strong></p><p>I urge you to stay subscribed, because the love for writing hasn&#8217;t left me. (And it never will.) I&#8217;ll be back soon with Chip Insights 2.0, and it will be worth your wait. Until then, I bid adieu.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Understanding on-chip networks]]></title><description><![CDATA[How different components of your chip talk to each other]]></description><link>https://chipinsights.net/p/understanding-on-chip-networks</link><guid isPermaLink="false">https://chipinsights.net/p/understanding-on-chip-networks</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 25 Aug 2025 04:30:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5OF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>Most content in computer architecture courses, and also my newsletter, focus on how a computing chip &#8220;computes&#8221; - by exploring how the processor core, memory, I/O, and other parts of the chip work in isolation. But in reality, a large portion of time and energy consumed by computing chips is a result of the interactions between the different components of the chip. (called &#8220;nodes.&#8221;) For instance, moving data from memory and I/O to and from the processor core, or moving data between processor cores. For a long time, these have been assumed to be trivial. (and in reality, they were.) But with increasing number of cores and deeper memory hierarchies, efficiently moving data across a chip can make a huge difference to the overall chip performance. This post intends to introduce the concept to absolute beginners. (If you have been reading my newsletter long enough, you should sense an analogy coming&#8230;)</p><div><hr></div><h1>Welcome to your new venture - an airline company</h1><p>The logistics of airlines has always fascinated me - so that&#8217;s the vehicle (pun intended) we are going to use to understand on-chip networks. Imagine this: you read all my posts, became a semiconductor legend, made a lot of money, and have now purchased two Airbus A320 planes, and started a new airline company. Your first task is to decide which routes your airline should operate between, and the logistics behind making this happen. Turns out, designing an on-chip network is surprisingly similar&#8230;</p><p>Going forward in this post, you can consider the following terms to be analogous:</p><ul><li><p>An airport is similar to a node in the chip (could be a processor core, memory, or I/O component)</p></li><li><p>An airline route can be treated like a chip bus (bus here is not the transport kind, you can think of it as a collection of wires that can transfer high/low voltage.)</p></li></ul><div><hr></div><h2>Model 1: Point to point connection</h2><p>If you have two planes, what&#8217;s the simplest thing you can do? You can have two exclusive routes that can operate independently, and in parallel - say one route between Los Angeles (LAX) and San Francisco (SFO), and the other between LAX and New York. (JFK.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PmJW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PmJW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 424w, https://substackcdn.com/image/fetch/$s_!PmJW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 848w, https://substackcdn.com/image/fetch/$s_!PmJW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 1272w, https://substackcdn.com/image/fetch/$s_!PmJW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PmJW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png" width="636" height="588" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:588,&quot;width&quot;:636,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35013,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PmJW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 424w, https://substackcdn.com/image/fetch/$s_!PmJW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 848w, https://substackcdn.com/image/fetch/$s_!PmJW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 1272w, https://substackcdn.com/image/fetch/$s_!PmJW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F213ca0a0-cc64-4d54-9bb1-7167aa9e8b63_636x588.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Different nodes in a chip can also be connected in the same way - just have a bus connecting different components with each other, and transfer data through these buses. This is called a &#8220;bus-based architecture&#8221; and although it seems simple, it is one of the most commonly used networking architecture. (Remember, most airlines continue to operate all-year daily flights between two fixed locations - the logistics can&#8217;t be simpler than this.) However, this approach comes with it&#8217;s limitations, like:</p><p><strong>1. Poor scalability</strong></p><p>If you want to increase the number of nodes, you need to increase the number of buses. This makes placement and routing very challenging in the chip. (Do you really want to buy a new plane for each new destination you want to serve?)</p><p><strong>2. Limited Flexibility</strong></p><p>Having one bus assigned for each connection makes the design very inflexible: Say during execution, two nodes in your chip need to transfer more data than two other nodes, they both still have similar buses with the same bandwidth. It&#8217;s like operating an empty flight from LAX to JFK, even though the LAX-SFO route is overbooked!</p><p>As you might imagine, the flexibility problem isn&#8217;t too hard to solve - you own the airline, so you can be flexible with the routes. That&#8217;s the idea of arbitration.</p><div><hr></div><h2>Model 2: Arbitration</h2><p>Let&#8217;s say you want to add a new destination for your Airline to serve - Miami. (MIA.) However, unlike SFO and JFK, travel to Miami is seasonal, peaking during the holidays. In this case, instead of buying a new plane to serve this route, wouldn&#8217;t it make more sense to redirect your flights based on the demand? You can &#8220;arbitrate&#8221; by:</p><ul><li><p>Operating flights from LAX to SFO and JFK during the week</p></li><li><p>Changing one, or both of the routes to LAX-MIA during the weekends or major holidays</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2_DX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2_DX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 424w, https://substackcdn.com/image/fetch/$s_!2_DX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 848w, https://substackcdn.com/image/fetch/$s_!2_DX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 1272w, https://substackcdn.com/image/fetch/$s_!2_DX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2_DX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png" width="695" height="491" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:491,&quot;width&quot;:695,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24534,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2_DX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 424w, https://substackcdn.com/image/fetch/$s_!2_DX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 848w, https://substackcdn.com/image/fetch/$s_!2_DX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 1272w, https://substackcdn.com/image/fetch/$s_!2_DX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01ecce4e-0d7a-4684-b93c-577c339ed489_695x491.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This idea of arbitration can also be used in chips to connect more nodes without adding new buses - by sharing existing buses. Arbitration can be done in many different ways (called arbitration policies) each with it&#8217;s pros and cons. While I&#8217;m not going to cover all of them in detail, here are some examples:</p><ul><li><p><strong>Round robin arbitration:</strong> Every node gets a turn to use the bus, and then waits for all other nodes to be done before using the bus again.</p></li><li><p><strong>Daisy chain arbitration:</strong> All nodes can access the bus simultaneously, but there is a predefined priority order. (Something like this: If both SFO and MIA are in demand, always pick SFO)</p></li><li><p>Collision-based arbitration: These are more advanced, and rely on real time chip behavior. (For example: If there are no bookings for next week&#8217;s flights to JFX, cancel them and open bookings to MIA.)</p></li></ul><p>As you can guess, arbitration adds complexity to your chip. (In case of your airline company, you can think of this like hiring someone to manage the routes.) But in some cases, arbitration is a great way to reduce the number of buses in the chip - Say you have two cores connected to a memory, but your chip mostly runs tasks on one of the cores - then the bus between the two cores and the memory can be shared.) However, as your chip becomes complex, the shortcomings of arbitration become evident:</p><p><strong>1. Bandwidth is limited</strong></p><p>Remember, although we are able to serve three destinations now by arbitrating between two planes, we can still only serve two destinations at a time. Let&#8217;s say each flight can hold 150 passengers, the maximum number of unique passengers you can transport each day is 300 each way - which is the same as it would be if you operated as a point-to-point connection. In chip language, the maximum amount of data that can be moved from one node to another at a given time is called the bandwidth. Although arbitration will help manage multiple nodes, the bandwidth is still limited by the number of buses in a bus-based architecture.</p><p><strong>2. Single point of failure</strong></p><p>Arbitration has another issue. Say you have decided to fly one of your planes from LAX to SFO and back on a Friday, but from LAX to MIA on Saturday. (And the other plane is going to JFK both days.) However, thunderstorms hit SFO on Friday, grounding all flights. This means the flight won&#8217;t be back to LAX in time for the trip to MIA. So this flight becomes a single point of failure for two of your routes. While the weather does not affect electrons in your chip, failures of other types are possible - say you are using a round-robin arbiter, but one of your core runs into an infinite loop - that core does not release the bus and stops the entire chip from executing. That&#8217;s the risk with arbitration-based approaches.</p><div><hr></div><h2>Model 3: The crossbar, a.k.a hub and spoke model</h2><p>If you have ever flown in one of the major international airlines like Emirates or Qatar airways, you would have experienced a layover at one of their &#8220;hubs&#8221; like Dubai or Doha. These airlines operate based on a very popular airline routing model called the hub and spoke model. (Inspired from it&#8217;s resemblance to your bicycle wheel.) Now that you are a seasoned manager of an airline, let&#8217;s take inspiration from this model and add a fourth destination to our airline - Seattle. (SEA.) However this time, the flight schedules are adjusted in such a way that LAX becomes the hub:</p><ul><li><p>Two flights leave each morning from SFO and SEA, respectively, and land in LAX at 11 AM</p></li><li><p>The same two flights depart from LAX at 3 PM - one to JFK, and the other to MIA</p></li></ul><p>With this model, the airline can sell tickets for the following routes:</p><ul><li><p>SFO-LAX, SEA-LAX, LAX-JFX, LAX-MIA with no layover</p></li><li><p>SFO-JFK, SEA-JFK, SFO-MIA, SEA-MIA with a layover at LAX</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_iB-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_iB-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 424w, https://substackcdn.com/image/fetch/$s_!_iB-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 848w, https://substackcdn.com/image/fetch/$s_!_iB-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 1272w, https://substackcdn.com/image/fetch/$s_!_iB-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_iB-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png" width="611" height="452" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:452,&quot;width&quot;:611,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38392,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_iB-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 424w, https://substackcdn.com/image/fetch/$s_!_iB-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 848w, https://substackcdn.com/image/fetch/$s_!_iB-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 1272w, https://substackcdn.com/image/fetch/$s_!_iB-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bdee037-ee4e-4dc4-b495-e093ebf01990_611x452.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As you can see, LAX is the key to making this happen - it&#8217;s where the &#8220;crossover&#8221; of incoming and outgoing passengers happens. In chip networking, we use a similar arrangement called a crossbar. A crossbar is a collection of programmable switches which can decide which inputs need to be routed to which outputs. (Your airline&#8217;s staff in LAX will do this check at the boarding gate.) This allows multiple different nodes in the chip to communicate with each other without the need for direct connections between all the nodes.</p><p>Crossbars effectively address both the shortcomings that we saw with arbitration. First, they are able to ensure that all nodes can communicate with each other simultaneously. (The crossbar is assumed to have an ability to monitor these transactions and handle them correctly.) In our airplane example with a hub, we are theoretically able to transport 600 unique passengers in a day. (300 in the morning from SEA/SFO to LAX, and 300 later to JFK/MIA.) Also, the presence of a crossbar means that each failure is restricted to it&#8217;s own node - if one of the cores in the chip hit&#8217;s an infinite loop, the other cores can still talk to the other nodes through the crossbar.</p><p>At first glance, you might think that a crossbar arrangement is very similar to a point to point connection since both cases ensure all nodes can be connected simultaneously. But there&#8217;s a subtle difference here - using a crossbar, we are able to achieve the same bandwidth as point-to-point connection, but with fewer bus connections. If a chip has N nodes, (N &gt; 2.) then:</p><ul><li><p>Point-to-point connection would need (N-1)*(N-2) buses</p></li><li><p>Crossbar connection needs N buses</p></li></ul><p>This is the main advantage of a crossbar. However, in order to maintain the full bandwidth, crossbars usually need to store transactions and have complex control mechanisms, which makes the crossbar an additional piece of silicon taking up area and consuming power. Also, crossbars cannot scale indefinitely - each additional node adds some wire latency, and a very large number of nodes could make this intolerable. Remember, if you have 10 nodes in a crossbar, they all contribute to the wire latency - even if you only use a few nodes repeatedly. Transistor scaling also cannot be relied on - reduction in wire latency has not kept up with Moore&#8217;s law, which makes the future of crossbars very uncertain. Basically, as your airline business scales to multiple destinations, you need to hire a lot of staff, and reserve many boarding gates - even on days with low occupancy on your flights. Not ideal&#8230;</p><div><hr></div><p>All of the approaches discussed so far were sufficient for the pre-SoC era: with a small core count, and few memory and I/O nodes that needed networking. But as we entered the era of parallel compute with SoCs having more than a thousand cores, interconnects needed to get more sophisticated. A &#8220;Southwest Airlines&#8221; moment was needed&#8230;</p><div><hr></div><h2><strong>Model 4: The &#8220;Network&#8221;</strong></h2><p>In 1971, Southwest airlines launched their first flights in Texas - changing the aviation business model forever. Let&#8217;s learn from their approach and make our airlines more efficient.</p><p>Despite everything we discussed so far, the truth is, point-to-point non-stop flights are the most desirable options. So let&#8217;s go back to our <a href="https://chipinsights.substack.com/i/171857530/model-point-to-point-connection">first model</a>, and see if we can take it in a different &#8220;direction&#8221;. (Pun intended.) I mentioned that one of the issues with point to point connections is the flexibility - how can you best manage different bandwidth requirements on each route? We looked at <a href="https://chipinsights.substack.com/i/171857530/model-arbitration">arbitration in model 2</a>, but there is a more efficient approach - operate smaller flights. Smaller flights are cheaper to fly, and easier to sell-out, hence giving you more bang for buck on each route without the need to arbitrate.</p><p>The other limitation was the &#8220;buy a new flight for each new route&#8221; requirement that point-to-point connections require. Smaller flights will also partially address this issue, because you can afford to buy more flights. (and hence operate more routes simultaneously.) But as you expand your destinations, this might still become impractical - so we will remove this requirement from the model, making it pseudo-point-to-point. (i.e. not all connections can be point-to-point, as you will see.)</p><p>Let&#8217;s incorporate all this flexibility and build a network for our 5 destinations that looks like a ring. Much like the crossbar model, this topology connects all our destinations. (using as few as one flight!)</p><ul><li><p>Point-to-point connections: SEA-SFO, SFO-LAX, LAX-MIA, MIA-JFK, JFK-SEA</p></li><li><p>Pseudo point-to-point connections (with 1 stop): SEA-LAX, SFO-MIA, LAX-JFK, MIA-SEA, JFK-SFO</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yaej!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yaej!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 424w, https://substackcdn.com/image/fetch/$s_!yaej!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 848w, https://substackcdn.com/image/fetch/$s_!yaej!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 1272w, https://substackcdn.com/image/fetch/$s_!yaej!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yaej!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png" width="735" height="511" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:511,&quot;width&quot;:735,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133312,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yaej!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 424w, https://substackcdn.com/image/fetch/$s_!yaej!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 848w, https://substackcdn.com/image/fetch/$s_!yaej!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 1272w, https://substackcdn.com/image/fetch/$s_!yaej!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe146aa-f0a2-4722-87ab-16ea10107802_735x511.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Adding a destination to this model is trivial. Say you want to add a new destination, Dallas (DFW), in the same topology, you can add the node like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AKPr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AKPr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 424w, https://substackcdn.com/image/fetch/$s_!AKPr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 848w, https://substackcdn.com/image/fetch/$s_!AKPr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 1272w, https://substackcdn.com/image/fetch/$s_!AKPr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AKPr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png" width="735" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c76b2e02-d737-4873-b186-e2bea74fa577_735x508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:735,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:147349,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AKPr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 424w, https://substackcdn.com/image/fetch/$s_!AKPr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 848w, https://substackcdn.com/image/fetch/$s_!AKPr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 1272w, https://substackcdn.com/image/fetch/$s_!AKPr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76b2e02-d737-4873-b186-e2bea74fa577_735x508.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Unlike the crossbar architecture, which adds a strain (more staff, larger number of boarding gates, and so on.) on your &#8220;hub&#8221; for each new destination, this ring-style approach does not stress any single node. (Remember, in chip terms, this &#8220;stress&#8221; means wire latency.) However, you might already see a problem here - we have introduced connections with 2 stops which would never exist in a crossbar model. (For example, SFO-MIA.) If such 2-stop routes are undesirable, then a simple connection above can fix that - add a direct route between SFO and MIA.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MQHQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MQHQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 424w, https://substackcdn.com/image/fetch/$s_!MQHQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 848w, https://substackcdn.com/image/fetch/$s_!MQHQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 1272w, https://substackcdn.com/image/fetch/$s_!MQHQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MQHQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png" width="723" height="516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:516,&quot;width&quot;:723,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157878,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MQHQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 424w, https://substackcdn.com/image/fetch/$s_!MQHQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 848w, https://substackcdn.com/image/fetch/$s_!MQHQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 1272w, https://substackcdn.com/image/fetch/$s_!MQHQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3372318c-8806-455d-8859-d7ad3a03f7a2_723x516.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With just one new route, we are able to maintain access all our destinations with one stop or lower. Also, you can pick between one large flight, or multiple small flights - the network can be adjusted accordingly. This is the biggest advantage of the network model - it allows the flexibility to modify the topology based on your resources and latency requirements. Such networks exist in all modern chips, and they are called, simply, a Network on Chip, or NoC. We will look at them more formally in the next section.</p><div><hr></div><h1><strong>An overview of Network on Chip (NoC) architectures</strong></h1><p>In the previous section, I (hopefully) convinced you that an NoC architecture allows you to move data efficiently and provide maximum flexibility on chips with a large number of nodes. With great flexibility, comes great challenge - and in this section, I want to walk you through three architecture decisions that need to be made, and the trade-offs involved.</p><div><hr></div><h2><strong>1. What should my network look like?</strong></h2><p>As you saw from the airline analogy, changing which nodes are connected to each other makes a huge difference to the path that needs to be taken to go from one node to the other. In NoC language, each such connection is called a <strong>&#8220;Link.&#8221;</strong> By changing the number of links, and the nodes they connect, we get different <strong>&#8220;Topologies.&#8221;</strong> We use two key metrics to understand how good a topology is:</p><ul><li><p><strong>Path diversity:</strong> How many unique paths can you find between two nodes in your network (formally called &#8220;Bisectional Bandwidth,&#8221; which I think raises more questions than provides answers, so I won&#8217;t use that term.)</p></li><li><p><strong>Path distance:</strong> The maximum distance between any two nodes in the network. (Again, the formal term is &#8220;Diameter&#8221;; I&#8217;m not going to use that.)</p></li></ul><p>As you might expect, adding additional links would increase path diversity, and reduce the path distance. But each link adds hardware complexity. (More wires, and as we will see later, complex routers.) Here&#8217;s an example with three simple topologies that highlights this trade-off.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5OF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5OF0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 424w, https://substackcdn.com/image/fetch/$s_!5OF0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 848w, https://substackcdn.com/image/fetch/$s_!5OF0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 1272w, https://substackcdn.com/image/fetch/$s_!5OF0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5OF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png" width="1046" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:1046,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:193696,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5OF0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 424w, https://substackcdn.com/image/fetch/$s_!5OF0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 848w, https://substackcdn.com/image/fetch/$s_!5OF0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 1272w, https://substackcdn.com/image/fetch/$s_!5OF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1c9b0a9-88e1-4a1a-a08c-144fc6b6dc39_1046x751.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are more nuances in designing the best topology, but for now, all you need to take away from this section is: <strong>Pick a topology that provides sufficient path diversity with the smallest number of links, while also ensuring that your path distance isn&#8217;t too much.</strong></p><div><hr></div><h2><strong>2. How do I split up my data?</strong></h2><p>It might seem like ages ago, but if you remember from the start of this post, the purpose of on-chip networks is to move data from one point in a chip to another. Due to the complexity of NoC architectures, we have a dedicated unit in each node to manage the sending and receiving of this data - called a <strong>Router</strong>. So far in this post, we assumed that all the data that we need to send out is sent together. (As a single transaction.) But in reality, it&#8217;s not practical to do this - for instance, if you want to move 1 GB worth of data as a single transaction, you would need 8,589,934,592 wires (i.e. one for each bit.) in each link. Instead, it is broken down into multiple pieces. Here&#8217;s what they are called:</p><ul><li><p><strong>Message:</strong> The is the full data that you want to send from one node to another</p></li><li><p><strong>Packet:</strong> Each message is broken down into multiple packets. All bits in a packet must follow the same path (or route) to reach the destination node.</p></li><li><p><strong>Flit (Flow Control Digit):</strong> Each packet has multiple flits. A router always stores all bits in a flit together.</p></li><li><p><strong>Phit (Physical Digit):</strong> Although a router stores a Flit together, it does not have to be sent out as a single transaction. Each flit can be broken down into multiple Phits, and each Phit must be sent out in a single cycle.</p></li></ul><p>This figure highlights how a message is broken down and transmitted from a sender to a receiver node.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wDFD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wDFD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 424w, https://substackcdn.com/image/fetch/$s_!wDFD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 848w, https://substackcdn.com/image/fetch/$s_!wDFD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 1272w, https://substackcdn.com/image/fetch/$s_!wDFD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wDFD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png" width="1240" height="467" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:467,&quot;width&quot;:1240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209292,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171857530?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wDFD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 424w, https://substackcdn.com/image/fetch/$s_!wDFD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 848w, https://substackcdn.com/image/fetch/$s_!wDFD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 1272w, https://substackcdn.com/image/fetch/$s_!wDFD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdcd74a-8be3-499d-92bb-ed9b7c5485aa_1240x467.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>At this point, it might seem like we took a simple idea of moving data and added a lot of complexity to it. But each of these terms has an impact on the network performance.</p><ul><li><p>The size of the phit decides the number of bits transferred in each link. So the phit size decides the maximum bandwidth of our network. A higher phit size is desirable, but comes with challenges to place and route the large number of wires. (Remember our discussion about large vs small flights from earlier?)</p></li><li><p>Flit size is the hardest to optimize. Since the router must store all bits of a flit together, a very large flit size could increase the latency. (Since all phits of a flit must be sent out before the next flit can be routed.) However, if your flit size is too small, then you may have too many flits to send - which could worsen the network congestion. So this needs careful consideration.</p><ul><li><p>Think of it this way: To reach your a physical destination, would you rather take a train, which is infrequent, but fast, or drive your car, which you can do anytime, but carries with it a risk that you would be stuck in traffic?</p></li></ul></li><li><p>And finally, the packet size. A smaller packet size means more packets, which means more potential routes to take from the sender node to the receiver node. However, only a topology with sufficient path diversity can really benefit from this - if not, you are just adding to the congestion by having more packets.</p></li></ul><p>I know I&#8217;m doing injustice to this topic with my &#8220;hand-wavy&#8221; analysis, but the point I really wanted to convey is that the way you split your message has a big role in the eventual performance of your network.</p><div><hr></div><h2><strong>3. What path should I take to reach my destination?</strong></h2><p>Now that you know what your network looks like, and how your data is split, life&#8217;s great - you just need to send the data, right? Well, not quite. You also need to decide which route your packet will take to reach your destination. I&#8217;m not going to go into the details here, as this is an introductory post, but I&#8217;ll leave you with a few questions to think about:</p><ul><li><p>Do I need to know the full route to reach the receiver node even before my packet leaves the sender node? Or is it sufficient for me to just decide what&#8217;s the next best node?</p></li><li><p>The agreement was that each packet must follow the same path. But does that mean I should wait for all flits in my packet to arrive at each intermediate node? Or can I send out each flit independently on the same path?</p></li><li><p>What happens if two packets want to go to the same node? Which one should I prioritize?</p></li></ul><p>This topic deserves its own post. (Maybe someday, if your airline business fails, we could explore a job as a traffic controller - a great analogy to understand routing algorithms.)</p><div><hr></div><p>This is as far as we&#8217;ll go in this introduction to on-chip networks. In an era of parallel computing, moving data efficiently is as important, if not more important than the computation itself. My biggest learning from doing this research was that to build the best on-chip network architecture, the two extremes of the computing stack must come together:</p><ul><li><p>Algorithms will decide how your data is arranged</p></li><li><p>The state of semiconductor physics will decide how many wires is too many wires</p></li></ul><p>Irrespective of which side of the stack you are on, I hope this post inspires you to explore this topic further and build the best on-chip networks for the next generation of computers.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h1>References:</h1><ul><li><p><a href="https://liacs.leidenuniv.nl/~stefanovtp/courses/ES/papers/Ch15_NoC_Design.pdf">https://liacs.leidenuniv.nl/~stefanovtp/courses/ES/papers/Ch15_NoC_Design.pdf</a></p></li><li><p><a href="http://cva.stanford.edu/publications/2001/onchip_dac01.pdf">http://cva.stanford.edu/publications/2001/onchip_dac01.pdf</a></p></li><li><p><a href="https://srsarangi.github.io/files/advbook/Chapter_8-noc.pptx">https://srsarangi.github.io/files/advbook/Chapter_8-noc.pptx</a></p></li></ul><div><hr></div><p></p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The bad old days of debugging]]></title><description><![CDATA[The computer engineering version of &#8220;kids, back in our time&#8230;&#8221;]]></description><link>https://chipinsights.net/p/the-bad-old-days-of-debugging</link><guid isPermaLink="false">https://chipinsights.net/p/the-bad-old-days-of-debugging</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 18 Aug 2025 03:06:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TpLp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s) and are not investment advice.</strong></p><div><hr></div><p>I recently read &#8220;The soul of a new machine&#8221; by Tracy Kidder, a book about the design of a new computer called Eagle, undertaken during the 1970s by a small team within the company Data General. I have always liked this genre of books - it&#8217;s nice to read about people working together to build something special. I usually leave at the end feeling inspired. But at the end of this book, I felt something else: <strong>I felt grateful.</strong></p><p>If you have been an engineer long enough, you would relate to this set of events: You find a bug during testing. You spend hours (maybe days) staring at the screen trying to figure out what is causing that bug - a period of intense frustration for you. (and sometimes, the people around you.) You finally find the root cause for the bug, experience a (short-lived) feeling of pride, before the next bug hits you. That&#8217;s the debugging emotional rollercoaster in a nutshell: And computer engineers go through it on a regular basis.</p><p>Like a lot of others, when I&#8217;m stuck debugging the same bug for a very long time, I feel like I have the worst job in the world. But looking back at chip design in the 1970s gave me a sense of how much better we all have it today&#8230;</p><div><hr></div><h1><strong>Getting your hands dirty</strong></h1><p>In the era before HDLs and EDA tools, hardware engineering meant working on real hardware. The Eagle computer was not a monolithic piece of silicon like modern SoCs - it was a collection of integrated circuits, spread across 7 different &#8220;wire-wrapped boards&#8221; with wires in the back connecting different pins. As the author Tracy Kidder puts it, the boards looked like &#8220;<strong>thin plates, each with one side covered by a profusion of tiny wires. Small cables, flat like tapeworms, ran among the boards. Oh my, there were a lot of wires.&#8221;</strong> If those words don&#8217;t speak to you, here is a picture of one such board. (Source: <a href="https://commons.wikimedia.org/wiki/File:Vector_Slit-N-Wrap_system.jpg">Wikimedia Commons</a>)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TpLp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TpLp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 424w, https://substackcdn.com/image/fetch/$s_!TpLp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 848w, https://substackcdn.com/image/fetch/$s_!TpLp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!TpLp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TpLp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png" width="1456" height="974" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:974,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3522449,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/171238164?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TpLp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 424w, https://substackcdn.com/image/fetch/$s_!TpLp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 848w, https://substackcdn.com/image/fetch/$s_!TpLp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!TpLp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee77a33a-4cc4-4614-af1c-4b520a603f0c_1567x1048.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>While in modern debugging, finding the root cause for a bug is the harder problem, a setup like this made fixing the bug equally challenging. When a change was needed, existing wires had to be carefully unwrapped using hollow-tipped tools, and if you were successfully able to do that, you then had to wrap new wires with the same precision. In this process, no other wires should be disturbed - but it does happen often, and results in new bugs. As the hardware lead Ed Rasala puts it, this process feels like one is performing an open-heart surgery.</p><p>This need to add or remove connections is not always a one-time thing: sometimes, in order to isolate where the bug originates from, different blocks in the design need to be disconnected, and later connected back. The book talks about an example involving the Instruction Processor and its associated I-cache - the engineers needed to run multiple experiments, each with one of the two blocks disconnected. (needing them to perform the &#8220;open-heart surgery&#8221; multiple times.) In modern debugging, isolating two such blocks would be as simple as modifying a few lines of RTL code.</p><div><hr></div><h1><strong>Keeping the paper business alive</strong></h1><p>Today, when engineers say paperwork, we never actually work with paper. But in the world where Eagle was being designed, paper still had it&#8217;s place.</p><p>Part of the debugging process involved understanding how different blocks in the computer worked. This information was compiled into a two-hundred page physical document that was written by the architect Steve Wallach. This document was like the Eagle team&#8217;s Bible - in fact, it was divided into multiple chapters, and each chapter started with a famous quote. This all sounds great, until engineers had to search through them for a specific piece of information to help with their debug.</p><p>But this was not the worst part of paper. Debugging a wire-wrapped board is vastly different from the way we add signals to a waveform today - a device called Logic Analyzer was used to probe different pins, and a snapshot of the signal had to be noted down on paper. This was improved by automatically capturing some signals in the system console - but this still needed to be printed before the values could be analyzed. Remember, signals change many times each second - so a large number of values need to be printed. In describing the console prints for one of the debugs, the author writes: &#8220;<strong>Stretched out, the sheet would run across the room and back again several times. You could fit a fairly detailed description of American history from the Civil War to the present on it.&#8221;</strong> Analyzing this large data dump with no ability to search must have been a nightmare&#8230;</p><p>Once a fix for a bug has been found, all the console log papers can be cleared out - but the paperwork does not end there. In order to correctly make this fix in all the prototypes, the exact changes in connections had to be marked on a large diagram with the schematic of the computer. This was called an Engineering Change Order, or ECO. By looking at this ECO diagram, engineers working on different prototype had to modify the wiring in their prototype each morning before they started debugging other issues. Today, a change is only called ECO very late in the project, and is done on a software abstraction of wires called Netlist. Such ECOs are rare - not an everyday occurrence like in the Eagle project.</p><div><hr></div><h1><strong>You can&#8217;t spell &#8220;Hardware&#8221; without &#8220;Hard&#8221;</strong></h1><p>Once the Eagle project was finalized, new engineers had to be hired to the team. When I read the hiring philosophy in the team, I couldn&#8217;t help but think that the challenges of debugging highlighted earlier had a lot to do with it.</p><p>During the interviews, Carl Alsing, the microcode lead, always presented the project as a tough one that involved long hours - at times even calling it a &#8220;suicide mission.&#8221; Those long hours were a direct result of the debugging challenges of the time. The team also screened for &#8220;a lack of family life&#8221; - they believed that someone with a family could not deliver on the intense commitment of the debugging schedule. Higher grades were valued, but it was not because it signified superior skills or smartness - it was merely seen as another indicator of hard work. In fact, the Eagle team even had a rite of initiation for their new hires, where they made a commitment to <strong>"do whatever was necessary for success, including forsaking, if needed, family, hobbies, and friends.&#8221;</strong></p><p>While good old hard work still has it&#8217;s place in debugging today, the best engineers I have worked with rely more on a methodical approach that makes the most of tools available at their disposal. Today&#8217;s designers have the tools to prepare in advance for a majority of the debugs they might face - with faster and more accurate simulations, better logging capabilities, and approaches like formal verification. While Alsing and co. lacked these tools and had to push engineers to work 60-80 hour debugging workweeks, it is not a requirement to be successful at debugging anymore.</p><div><hr></div><h1><strong>So, I get my turn to debug at 4 AM?</strong></h1><p>Let&#8217;s say you had all the smarts and energy it takes to debug any issue that your chip throws. If you walked into the Westborough building to debug Eagle, chances are, you will be asked to come back later. That&#8217;s because, unlike today&#8217;s world of simulation, directly debugging a real chip means, well, you need a real chip. But there were only a limited number of these prototypes, which meant not everyone could debug the Eagle computer at the same time.</p><p>The Eagle team were on a tight timeline. In order to maximize debugging time, they had a debugging schedule that had to be strictly followed, which assigned each engineer specific times throughout the day (and night) for debugging. So, if inspiration strikes you while having dinner, you would still need to wait for your shift to test your theory.</p><p>Although shifts were never more than 8 hours, the nature of debugging meant that most engineers stayed longer. Since debugging is a very personal activity, it is often easier to push yourself to work longer hours, than explaining your finding to the next engineer. (Which btw, was also &#8220;paperwork.&#8221;) The book talks about many such stories - Jim Guyer, for instance, spent many nights alone in the lab to debug issues in the Instruction Processor. Ken Holberger noted that it was often dark when he got in, and dark when he left work - leading him to lose track of the day and time when he was home.</p><p>Remember, adding more prototypes is not a sustainable solution - if you had 100 different prototypes of the computer, then each ECO would need to be implemented on each of these 100 prototypes. There were diminishing returns to scale in 1970s debugging.</p><div><hr></div><h1><strong>Flakey and Bogeyman: The supervillains of the debugging world</strong></h1><p>In the story, "flakey" and "bogeyman" were terms used by the engineers working on Eagle to describe specific types of problems or fears encountered during the debugging of the Eagle computer. A flakey refers to a <strong>failure that occurs erratically and is often hard to diagnose</strong>. Some example of this include loose connections, stray voltages, or worst of all, an IC from another vendor is buggy. The main issue with a flakey is that it is hard to reproduce consistently. The first step in fixing something is getting it to break - and with a flakey, engineers needed to spend additional time reproducing the bug, before finding a way to fix it.</p><p>The experienced engineers in the Eagle team had seen a lot of flakeys in their life, and not all of them were caught before their computer was sold. This led to a fear that there will always be one bug that would go unnoticed, but cause their machine to stop working - they called this a bogeyman. The Eagle project lead Tom West defines it as <strong>"the infinite page fault you didn&#8217;t anticipate. The bogeyman is the space your mind can&#8217;t comprehend."</strong> The fear of the bogeyman was real - Ed Rasala talks about some nights where he would wake up worrying about a bug they are yet to find, feeling like <strong>&#8220;the bogeyman was in his bedroom.&#8221;</strong> Like I mentioned in <a href="https://chipinsights.substack.com/p/the-most-important-law-every-chip">another post</a>, bugs continue to be seen in chips even today. However, verification has been largely left-shifted now - by starting verification very early, and at different levels of abstraction, the chances of encountering such bugs reduces greatly.</p><div><hr></div><h1><strong>Long-term tiredness</strong></h1><p>Nobody likes to make mistakes. But the likelihood of not detecting a bug was much higher in the 1970s than it is today. This took it&#8217;s toll on the engineers involved.</p><p>Jim Veres, who helped design the Instruction Processor and its I-cache, felt annoyed by the fact that his component was blamed for a lot of bugs. Although he would often prove that the problem was elsewhere, he said that the constant blame placed a lot of pressure on him. He felt like the block he designed was a "part of him now," and he didn't like to see it picked on unfairly.</p><p>Jon Blau experienced <strong>"difficulty forming sentences,"</strong> his <strong>"mind&#8217;ll go blank,"</strong> and felt <strong>"pieces of your life get dribbled away"</strong> due to the internal pressure to hurry and finish his code. When he took over debugging the ALU, he was <strong>"terribly excited by it, then very frightened,"</strong> leading him to take a week off. Ed Rasala summed this up nicely, by calling it a &#8220;long-term tiredness.&#8221; He said that engineers on the debug schedule felt tired, but not in a traditional way that going home to their loved ones could fix. They were always thinking about the current issue they are debugging, while being concerned about the next bug they might hit. That&#8217;s what it was like to debug a computer in the 1970s.</p><div><hr></div><p>While debugging is still a challenge today, and tools can be better, reading &#8220;The soul of a new machine&#8221; gave me a new perspective on what we have today. It&#8217;s been about 50 years since this saga unfolded. Who knows, 50 years later, someone might write a sorry tale about the way we debug chips today&#8230;</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>By the way, this post only talks about a small part of this book that resonated with me. For a fuller analysis, I highly recommend this post by the Chip Letter.</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:157192680,&quot;url&quot;:&quot;https://thechipletter.substack.com/p/the-soul-of-an-old-machine&quot;,&quot;publication_id&quot;:1063960,&quot;publication_name&quot;:&quot;The Chip Letter&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!vwjY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffe682d7-ab93-463b-b714-8f98c0c072d2_1280x1280.png&quot;,&quot;title&quot;:&quot;The Soul of an Old Machine&quot;,&quot;truncated_body_text&quot;:&quot;\&quot;That fellow West is a good man in a storm.\&quot; &#8230; \&quot;He didn't sleep for four nights! Four whole nights.\&quot; And if that trip had been his idea of a vacation, where, the psychologist wanted to know, did he work?&quot;,&quot;date&quot;:&quot;2025-04-01T00:01:39.312Z&quot;,&quot;like_count&quot;:56,&quot;comment_count&quot;:36,&quot;bylines&quot;:[{&quot;id&quot;:102722254,&quot;name&quot;:&quot;Babbage&quot;,&quot;handle&quot;:&quot;thechipletter&quot;,&quot;previous_name&quot;:&quot;The Chip Letter&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82525b9c-ee3c-4996-916c-54267a4d354b_416x416.png&quot;,&quot;bio&quot;:&quot;Computer history and architecture&quot;,&quot;profile_set_up_at&quot;:&quot;2022-08-28T13:07:25.701Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-10-20T11:45:48.505Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:1012118,&quot;user_id&quot;:102722254,&quot;publication_id&quot;:1063960,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:1063960,&quot;name&quot;:&quot;The Chip Letter&quot;,&quot;subdomain&quot;:&quot;thechipletter&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Computer history and architecture&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffe682d7-ab93-463b-b714-8f98c0c072d2_1280x1280.png&quot;,&quot;author_id&quot;:102722254,&quot;primary_user_id&quot;:102722254,&quot;theme_var_background_pop&quot;:&quot;#FF6B00&quot;,&quot;created_at&quot;:&quot;2022-08-28T13:07:52.880Z&quot;,&quot;email_from_name&quot;:&quot;The Chip Letter&quot;,&quot;copyright&quot;:&quot;The Chip Letter&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://thechipletter.substack.com/p/the-soul-of-an-old-machine?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!vwjY!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffe682d7-ab93-463b-b714-8f98c0c072d2_1280x1280.png" loading="lazy"><span class="embedded-post-publication-name">The Chip Letter</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Soul of an Old Machine</div></div><div class="embedded-post-body">"That fellow West is a good man in a storm." &#8230; "He didn't sleep for four nights! Four whole nights." And if that trip had been his idea of a vacation, where, the psychologist wanted to know, did he work&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 56 likes &#183; 36 comments &#183; Babbage</div></a></div>]]></content:encoded></item><item><title><![CDATA[The psychology of a technical interview]]></title><description><![CDATA[The non-technical aspects that no one talks about]]></description><link>https://chipinsights.net/p/the-psychology-of-a-technical-interview</link><guid isPermaLink="false">https://chipinsights.net/p/the-psychology-of-a-technical-interview</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 04 Aug 2025 06:02:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s), and are not investment advice.</strong></p><div><hr></div><p>This post is a little different from what I usually write. I want to preface by saying that I&#8217;m not going to talk about the knowledge and skills needed to crack technical interviews - they are very important, but are also specific to the job role you are applying to, and the stage of your career. I compiled some resources for a few such roles in computer engineering in this post, if that&#8217;s what you are looking for:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;47dd83ec-ae43-42cd-bd0b-b8c799dbfca2&quot;,&quot;caption&quot;:&quot;Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s), and are not investment advice.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Hardware Engineering Interview Resources&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-02-25T16:20:05.886Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/hardware-engineering-interview-resources&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:157896671,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:17,&quot;comment_count&quot;:1,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>When I had finalized my plans to move to the US for graduate school, I started to proactively apply for internships. Even before I landed here, a recruiter from what was at that time my &#8220;dream company&#8221; reached out to me, and set up interviews pretty soon. It was perfect - I had the skills and experience for the role, and I had prepared quite well. At least I thought so&#8230;</p><p>It&#8217;s been about 3 years since that interview, but I still remember that day very clearly. I completely froze during the interview. It wasn&#8217;t the hardest interview I have given. It wasn&#8217;t even the least prepared I was. And yet, it was my worst interview. Looking back, it hasn&#8217;t made too much of a difference, I&#8217;m happy that things panned out the way they did for me. But I&#8217;ve always wondered what happened on that day. Was it me? Was it a poorly conducted interview?</p><p>Recently, I conducted a few mock interviews for my alma mater. In preparation, I spoke to some experienced interviewers, and also reviewed some accounts of good and bad interviews. Being on the other side gave me more perspective on what makes an interview good - both for the interviewer and interviewee. Surprisingly, it&#8217;s less about how knowledgeable each side is - certain behavioral aspects play a key role. This post is centered around these aspects of a technical interview.</p><div><hr></div><p></p><h1><strong>Who should read this?</strong></h1><p>I know that a lot of people reading this would be interviewees, not interviewers. As interviewees, we are conditioned to believe that the fate of an interview lies solely in our hands. I don&#8217;t think this is true - it&#8217;s just that interviewers aren&#8217;t evaluated to the same degree.</p><p>A lot of interviewers brag about the fact that most interviewees fail their round. I&#8217;ve found this to be quite amusing. Interviewers assume that their interviews are technically advanced and the quality of candidates is low, but that&#8217;s hardly ever the truth. If a lot of interviewees struggle to answer your questions, there is something wrong with your interviewing style.</p><p><strong>I know this post would reach a lot of interviewees, but I&#8217;m writing this in the hope that it also reaches some interviewers.</strong></p><div><hr></div><p></p><h1><strong>The six ingredients that make a good interview</strong></h1><h2><strong>1. Perfect your pitch</strong></h2><p>Very often, interviewees start their interview by introducing themselves. When I was interviewing, I think I handled this question quite poorly - I had a good number of projects on my resume, and I thought the best idea is to make them the stars. I went into the technicalities of my projects very quickly - after all, it was a technical interview. But from my experiences being on the other side, I realize how pointless this is. As an interviewee, you need to remember that no one cares as much about your projects as you do - so the minor technical details that you find fascinating are not going to impress anyone.</p><p>Some of the best candidates I interviewed approached this question very differently - they had a simple, but impressive pitch that spoke about themselves. Say you are someone with projects in computer architecture, and interned in a government funded lab, here&#8217;s one example each for a bad, and good pitch:</p><ul><li><p><strong>Bad pitch:</strong> Talk about the technical details in each of the projects (basically reading out your resume)</p></li><li><p><strong>Good pitch:</strong> Talk about the importance of computer architecture for the future of your country, and the role you want to play in that</p></li></ul><p>It doesn&#8217;t matter if you think your experiences are ordinary - every story is unique, and crafting a good story can completely change the tone of the rest of the interview.</p><p>Interviewees usually figure this out over time, but a lot of interviewers forget that they need to pitch too. I can&#8217;t tell you the number of times this does not happen. I don&#8217;t think it is enough for interviewers to ask an open ended question like &#8220;do you have anything you want to ask me.&#8221; Interviewers should start the interview by setting expectations - about the interview, the job, and the company. I would go one step further to carefully review the candidate&#8217;s resume and mention what aspects would be a great fit for the team.</p><p>I have given so many interviews where I have no clue what is expected of me if I join the team, and whether they even care if I join. A short pitch can make a candidate feel special. Taking a few minutes to do this can make the difference between good candidates joining your team, or passing up your offer. Remember that good candidates will always have options, and their decision won&#8217;t always be driven by the money offered. Hiring is the most important aspect of a team, and as an interviewer you have an opportunity to attract the best talent.</p><div><hr></div><p></p><h2><strong>2. Don&#8217;t experiment too much</strong></h2><p>When I was taking mock interviews, I experimented with the way I framed questions. (Part of me was already thinking about writing a post like this.) I realized that too much experimentation as an interviewer is not a good thing - it will result in an unfair evaluation. Me, and a lot of others I talk to, discuss how boring the interview format is, and how we would design a very interesting interview when we get the opportunity. But it&#8217;s important to understand why some interviews are the way they are: standardization is the best way to ensure fairness across candidates.</p><p>If I ask candidate A a standard textbook question, but I reframe the question to mimic a real life scenario when I interview candidate B - candidate B may have the more interesting interview experience, but the vagueness of the format will also make it unfair if they cannot answer the question correctly. So my suggestion is to avoid experimenting too much, unless you are sure you can replicate it across multiple candidates. It is important to remember this as an interviewee too. Answering technical questions is very different from the pitch I mentioned previously - here, uniqueness isn&#8217;t rewarded. Sometimes, I have tried to be too cheeky in interviews - using clever analogies, or out of the box terminology to answer basic questions. It has never ended well - in the worst case, I ended up confusing myself and the interviewer. In the best case, I answered one question right. (I don't think creativity gets any brownie points in technical interviews.)</p><p><strong>Whether you are an interviewer or an interviewee, follow the advice that Michael Scott gave to Dwight Schrute in &#8220;The Office&#8221;: Keep It Simple, Stupid.</strong></p><div><hr></div><p></p><h2><strong>3. The curse of &#8220;the know it all&#8221;</strong></h2><p>This is a problem I noticed while interviewing a lot of smart, knowledgeable, well-prepared candidates. When I asked a question, they made a lot of assumptions about what I might be asking, and went on multiple different tangents. Everything they said was technically correct - the only issue was, it was not what I asked. If I have to evaluate the candidate for the question, I would still have to say that the question wasn&#8217;t answered correctly. Therein lies the problem.</p><p>Sometimes, interview questions are vague - could be by design, or could be accidental. Even if you know what the answer might be, asking a couple of clarifying questions before jumping in with an answer is a good idea. This could even earn you brownie points - if you actually remind the interviewer of a point they forgot to mention, it is a great sign.</p><p>I think the problem of oversharing exists with interviewers too (unfortunately, it goes unchecked.) Some interviewers get into the habit of explaining why the interviewee is wrong (and why they are right.) I know a lot of interviewers who justify this, by saying they want to help the candidate do better in other interviews. I don&#8217;t buy this argument; as someone that has been explained to multiple times, I can confidently say that none of it has gone into my head in that moment. Interviews are too short and stressful to be conducive for learning. All you are doing as an interviewer is wasting valuable time that could be spent evaluating other skills of the candidate. If you really care about the candidate learning something, offer to help the candidate on a call or email after the interviews. (I would gladly take up this opportunity to learn, but no one has made that offer - some companies have a policy against this - but let&#8217;s not get into this.)</p><div><hr></div><p></p><h2><strong>4. Sweat the small stuff</strong></h2><p>Like a lot of interviews today, the mock interviews I took were remote too. Remote interviews introduce non-uniformity that is often ignored. This includes:</p><ul><li><p>A reliable Internet connection</p></li><li><p>Clear audio and video</p></li><li><p>The ability to write and draw something, and share it (preferably on the computer)</p></li></ul><p>I know not everyone has the privilege to invest in the best equipment, but even those who do, sometimes don&#8217;t pay enough attention to it. I had a lot of such &#8220;tech issues&#8221; happen that completely disrupt the flow of the interview. Even if they aren&#8217;t completely disruptive, your interviewer cannot evaluate you if they cannot hear you correctly, or cannot understand what you write or draw. You might think these are minor things that don&#8217;t affect the eventual interview outcome, but when I asked experienced interviewers, they told me about some interviews where the lack of audio and video clarity resulted in candidates being passed on.</p><p>Those who have watched the 2013 movie &#8220;The Internship&#8221; can relate to what I am saying - don&#8217;t take an interview in a loud public setting like Nick and Billy:</p><div id="youtube2-XYG6tAMWFIo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;XYG6tAMWFIo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/XYG6tAMWFIo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Interviewers are guilty of this too - more often than you think. I remember interviews where after a point, I had no choice but to ask the interviewer to change their headphone because their audio kept breaking. If you are using visuals or text to ask questions, ensure that they are clearly visible. And finally, my biggest pet peeve - please, please, please turn on your video during interviews. There&#8217;s nothing worse than answering technical questions from an icon on the screen with scratchy audio.</p><div><hr></div><p></p><h2><strong>5. Play the player, not the cards</strong></h2><p>There&#8217;s a saying about the best poker players - their strategy depends not on the cards they hold; it depends on the players they are up against. I think it would really help if interviewers and especially interviewees develop the ability to read the person they are talking to.</p><p>In my experience, there are three main types of technical interviewers:</p><ul><li><p><strong>The no-nonsense type:</strong> is only focused on your technical knowledge</p></li><li><p><strong>The curious type:</strong> like to hear about new and interesting projects and ideas</p></li><li><p><strong>The manager type:</strong> is concerned about whether you are a good fit for the teams needs</p></li></ul><p>If you can make an assessment of the type of interviewer you are talking to, you can shift the tone of the interview to match their expectations - give short but precise answers to the no-nonsense type; talk about interesting projects with the curious type; and show that you have the right skillset to the manager type. This isn&#8217;t the easiest skill to master, but will definitely help you leave a better impression.</p><p>This skill adds value for an interviewer too - especially if you want to lure a high quality candidate to join your team. Matching the energy of the person you are interviewing will definitely improve the quality of the interview, and provide better insights to make your decision.</p><div><hr></div><p></p><h2><strong>6. Don&#8217;t be a jerk</strong></h2><p>I&#8217;ve saved the most important point for last. Interviewers and interviewees think of the technical interview as some kind of battle of intellect. In the process, one, or both parties can be jerks.</p><p>Interviewers are more notorious for this. I have seen that some interviewers have a tendency to demonstrate their intellectual superiority - in the form of snarky comments, exasperation, and concerning expressions. It could even be something simpler - asking questions like &#8220;Are you sure this is right?&#8221; when the answer is actually right. (In a vulnerable, emotional state, most interviewees will say &#8220;no&#8221; to a question like this.) Actions like these in no way contribute to the evaluation of the technical skills of a candidate - they are merely shows of dominance. Since most interviews span multiple rounds, it is possible that a candidate had a bad interview with you, but is still offered the job, and is going to be your future teammate. Do you really want your first interaction to be like this?</p><p>If you are an interviewer, always remember that you are the support cast in the interview - it is not your stage to demonstrate anything. Your role is merely to conduct a fair evaluation to help your team hire the right candidate.</p><p>In defense of the interviewers, I must say that interviewees can be jerks too. I have heard cases where the interviewer being wrong (which can happen) triggers unpleasant disagreements in the midst of an interview. Even if you are sure you are right, I don&#8217;t think having a full blown argument is the right thing to do. Often, candidates are evaluated by the number of questions they answer correctly, so the time you spend arguing is time lost from another question. The better approach would be to table the conversation - you can say that there might be a misunderstanding, and that you would like to visit this question again at the end if time permits. I would not even mind a polite email after the interview with the clarification. (But &#8220;polite&#8221; is very important here - otherwise it could backfire.)</p><p>It&#8217;s important to remember that both interviewers and interviewees have the same end goal - to contribute towards the progress of technology. If you stay with this goal long enough, you will cross paths once again. And humans have a tendency to remember negative emotional experiences - a simple technical interview should not be one of those.</p><p><strong>So please smile, and have a pleasant technical interview experience.</strong></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Confessions of a static timing analysis tool]]></title><description><![CDATA[All about STA, from the horse's mouth]]></description><link>https://chipinsights.net/p/confessions-of-a-static-timing-analysis</link><guid isPermaLink="false">https://chipinsights.net/p/confessions-of-a-static-timing-analysis</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 21 Jul 2025 15:11:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s), and are not investment advice.</strong></p><div><hr></div><p>Hello there. If you are reading this, we have probably already interacted in the past. I was created a long time ago, inspired by a project management tool called Program Evaluation and Review Technique (PERT), that was used to identify the critical path and slack time in projects. I still carry some of these terms with me - from 1966 all the way till today. You may know me today by different names like Synopsys PrimeTime, or Cadence Tempus - does that ring a bell? No? It&#8217;s okay, I know I am not as popular as those pretentious synthesis tools that bully me around. But I play an important role in your life, and I&#8217;m here to tell you why&#8230;</p><div><hr></div><h1><strong>The harsh truth your synthesis tool didn&#8217;t tell you</strong></h1><p>As you may have guessed, what I do is called &#8220;Static Timing Analysis&#8221;. The cool kids call it STA, so let&#8217;s stick to that. You know how you use a modern hardware description language like Verilog to describe your digital design? Well those languages might make your life easy, but tools like me can&#8217;t comprehend all the fancy slang you use there. Am I supposed to know what &#8220;always @ posedge&#8221; means? No thank you. All I understand are the basics:</p><ul><li><p>What are the inputs and outputs (Called &#8220;<strong>IO&#8221;</strong>)</p></li><li><p>Simple logic components, like gates (AND, OR, etc.) and MUXes (Called <strong>&#8220;Cells&#8221;</strong>)</p></li><li><p>Storage elements like Flip-Flops, Latches (Called <strong>&#8220;Registers&#8221;</strong>) and SRAMs (Called <strong>&#8220;Memories&#8221;</strong>)</p></li><li><p>Connections between them (called <strong>&#8220;Nets&#8221;</strong>)</p></li></ul><p>So before you come asking for my help, you need to convert your fancy HDL design into something I understand called a &#8220;<strong>Netlist&#8221;</strong>. (A list of nets, get it?) That&#8217;s where the synthesis tools come in - they are just fancy translators who understand your HDL design, and break it down into the simple netlist that I understand. They don&#8217;t check whether it is even possible to have the connections you have described - they just want to please you by saying yes to everything you say. No wonder you like them so much.</p><p>But let me tell you the harsh truth - not everything you describe is realistic. You might think you are the god of chip design, but in my world, you must bow down to our god - Physics. What you are designing is not software - a chip is a physical entity that works by moving electrons. They&#8217;re much faster than anything you&#8217;ve ever seen, but they still take time to move from one place to another in the chip. Due to this fact, any logic you add in the chip will also add a delay. Your favorite synthesis tool conveniently left all this out.</p><p>Finding out exactly what this delay would be is challenging - remember, at this stage, I am doing this with no knowledge about how the chip is going to look at the very end. But even at this stage, I have something valuable that no one else has - estimated delays of different cells for the technology that the chip would be manufactured in. (In other words, a direct line to Dr. Morris Chang - ever heard of him?) I write down this information in a place called the <strong>&#8220;Cell Library&#8221;</strong> - I&#8217;m going to need to refer to this often once I get started with my work. But I still haven&#8217;t told you what my work is, have I? Before I do that, I will tell you why my job exists in the first place.</p><div><hr></div><h1><strong>Welcome to my synchronized world</strong></h1><p>Now that you know delays are a thing in the real world, let me introduce you to the idea of synchronization in digital design. Consider this design I once worked on, where there were 5 inputs - <strong>A</strong>, <strong>B</strong>, <strong>C</strong>, <strong>D</strong>, and <strong>E</strong>, used to get the final output <strong>O</strong>. When I saw the netlist, I noticed that this design includes an <strong>AND</strong> gate, two <strong>OR</strong> gates, and a <strong>MUX</strong>, connected like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ty4O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ty4O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 424w, https://substackcdn.com/image/fetch/$s_!ty4O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 848w, https://substackcdn.com/image/fetch/$s_!ty4O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 1272w, https://substackcdn.com/image/fetch/$s_!ty4O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ty4O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png" width="837" height="431" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:431,&quot;width&quot;:837,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35733,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168864393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ty4O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 424w, https://substackcdn.com/image/fetch/$s_!ty4O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 848w, https://substackcdn.com/image/fetch/$s_!ty4O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 1272w, https://substackcdn.com/image/fetch/$s_!ty4O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fd98dcd-9d7e-45cd-852c-9d57e12aa1a7_837x431.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As you can see, I have also added the delays of each cell by checking the cell library. (You&#8217;re welcome.) Assuming no input delays, the time taken to observe the correct output <strong>O</strong> can be obtained by adding all the delays in the path between an input and the output. However, there are multiple different paths from the input and output, each with a different delay:</p><ul><li><p>Path 1: Input <strong>A</strong>/<strong>B</strong> &#8594; <strong>U0</strong> &#8594; <strong>U1</strong> &#8594; <strong>U3</strong> &#8594; Output <strong>O</strong> (Delay = 6 ns)</p></li><li><p>Path 2: Input <strong>C</strong> &#8594; <strong>U1</strong> &#8594; <strong>U3</strong> &#8594; Output <strong>O</strong> (Delay = 4 ns)</p></li><li><p>Path 3: Input <strong>C/D</strong> &#8594; <strong>U2</strong> &#8594; <strong>U3</strong> &#8594; Output <strong>O</strong> (Delay = 4 ns)</p></li><li><p>Path 4: Input <strong>E</strong> &#8594; <strong>U3</strong> &#8594; Output <strong>O</strong> (Delay = 3 ns)</p></li></ul><p>The purpose of any digital design, is to find the output when the input changes. Since the delays are different, you don&#8217;t exactly know when the output is ready - it could be 3 ns, or 6 ns after the inputs are applied. This makes the design pretty much useless. How do we deal with this problem? In the above example, let&#8217;s say that the input can only change once every 10 ns, and the output is also sampled with the same frequency - then, irrespective of the path between input and output, we are guaranteed to get the correct output value. In other words, by restricting when inputs to a design can change, and outputs from a design are sampled, we can ensure correct execution across many different paths - an idea called synchronization.</p><p>In order to maintain synchronization, we need to ensure that the input remains unchanged. But we have no idea where these inputs are coming from, so each input may have it&#8217;s own delays. This means we need to have a way to store the values of the inputs periodically, and use these stored values to calculate the output. This is done using a storage element like a latch or flip-flop - the general term for this is a <strong>Register</strong>. Let&#8217;s add registers <strong>R0</strong> and <strong>R1</strong> at the input and output of our design, respectively.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!51TF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!51TF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 424w, https://substackcdn.com/image/fetch/$s_!51TF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 848w, https://substackcdn.com/image/fetch/$s_!51TF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 1272w, https://substackcdn.com/image/fetch/$s_!51TF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!51TF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png" width="886" height="521" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d61985bb-6352-4469-a41f-5ba596350bd6_886x521.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:521,&quot;width&quot;:886,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38901,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168864393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!51TF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 424w, https://substackcdn.com/image/fetch/$s_!51TF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 848w, https://substackcdn.com/image/fetch/$s_!51TF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 1272w, https://substackcdn.com/image/fetch/$s_!51TF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61985bb-6352-4469-a41f-5ba596350bd6_886x521.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each register also needs to know when to store the next input. (every 10 ns in our example.) To achieve this, we introduce a new input, and an STA tool&#8217;s best friend, the clock signal. (also known by the nickname <strong>clk</strong>.) The clock signal periodically changes from 0 to 1, and then back to 0 - each such transition is called a clock cycle. The time taken for the signal to complete this transition is called the <strong>Clock Period</strong>. In a typical register, the input to the register gets stored in the register when the clock signal goes from 0 to 1, called the positive clock edge. This allows us to store the inputs in the register <strong>R0</strong> during a positive clock edge, then complete the evaluation of the logic, and store the final output in register <strong>R1</strong> during the next positive clock edge.</p><p>Here&#8217;s a timing diagram to show how in the above example, input <strong>E</strong> and the intermediate output <strong>O&#8217;</strong> are only sampled at the positive clock edge, ensuring that the correct inputs and outputs are seen after every 10 ns. (Inputs <strong>A</strong>, <strong>B</strong>, <strong>C</strong> and <strong>D</strong> are not changing in this case.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r8Ns!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r8Ns!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 424w, https://substackcdn.com/image/fetch/$s_!r8Ns!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 848w, https://substackcdn.com/image/fetch/$s_!r8Ns!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 1272w, https://substackcdn.com/image/fetch/$s_!r8Ns!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r8Ns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png" width="882" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:882,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30653,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168864393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r8Ns!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 424w, https://substackcdn.com/image/fetch/$s_!r8Ns!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 848w, https://substackcdn.com/image/fetch/$s_!r8Ns!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 1272w, https://substackcdn.com/image/fetch/$s_!r8Ns!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa575638e-3bfa-4c43-80d6-11fb2f993dec_882x826.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As you can see, <strong>E&#8217;</strong> (output of register <strong>R0</strong>) and <strong>O</strong> (Output of register <strong>R1</strong>) do not change between clock cycles - this is important, because each of these signals can be used as part of other logic with the assumption that the data won&#8217;t change during the clock cycle - this is very important to make your designs larger without increasing the delays indefinitely. But this synchronization comes with strings attached, and my job is to ensure you abide by certain rules.</p><div><hr></div><h1><strong>We have needs too, feat. Registers</strong></h1><p>When I spoke about the role of registers in maintaining synchronization <a href="https://chipinsights.substack.com/i/168864393/welcome-to-my-synchronized-world">earlier</a>, I might have given you the impression that registers are a gift from the heavens to save all digital designs. Maybe you think registers should be the ones doing the talking here. Let me tell you something, these registers aren&#8217;t as generous as you think. While registers help solve the synchronization problem, they introduce new problems in the process.</p><p>Remember how I said a register stores data when it sees the positive clock edge - I left out some of the nuances here. There are some registers out there that decide to store data at the negative clock edge instead, but everything that I talk about applies to those registers too - so let&#8217;s generalize by calling it a <strong>clock event</strong>. For the input data to be stored correctly at a clock event, the register enforces some strict rules. (Thanks again to the physics gods.) In my world, we use specific terms to express these &#8220;needs.&#8221;</p><p>The first term is <strong>Setup Time</strong>, which is the minimum time for which the input data to a register must be stable <strong>before</strong> a clock event. I&#8217;m not going to tell you the complete origin story of setup time here, but just know this - if you change the input to a register too close to a clock event, the registers cannot guarantee that they checked the correct value. Think of it like this - you are supposed to turn in your assignment by 10 AM, but you decide to make some last minute updates at 11 AM - a register is like that strict professor who says: &#8220;Sorry, I cannot promise that your updates would be graded.&#8221; Ah, if only registers were a good sport&#8230;</p><p>Their needs don&#8217;t end here - in addition to setup time, registers also have something called <strong>Hold Time</strong> - the minimum time for which the input data should be held stable <strong>after</strong> the clock event. This might seem excessive to you - this sounds like a professor who not only wants the assignment submitted by 10 AM, but also wants you to show up to their office, wait for 30 minutes while they review your assignment, and leave only after that. Seems unfair? I get it, but registers rule my world, and they are pretty high maintenance. You have no choice but to abide by their rules.</p><p>If you think our nightmare ends there, I&#8217;m sorry to burst your bubble. Remember that these registers, like everything else in a chip, work by moving electrons around. That means just like the cells we discussed earlier, they have propagation delays too. Typically, there are two different delays, since the path taken by the clock signal and input data are different. Here&#8217;s what we call them:</p><ul><li><p><strong>Clk&#8594;Q Delay</strong>: The delay in output resulting from the clock input</p></li><li><p><strong>D &#8594; Q Delay</strong>: The delay in output resulting from the data input</p></li></ul><p>Lot of information, huh? Looks like somebody needs help tracking all this. That&#8217;s where I come in. My job is to ensure that all the delays are accounted for, and the registers can guarantee that your design works as expected. The first thing I do, is call up my dear friend Dr. Morris Chang (or one of his friends that is going to manufacture this chip.) and get the setup time, hold time, and propagation delays of the registers. Remember, I already know the propagation delays of the other cells. With all this information, I&#8217;m like a fortune teller that can predict the future of your chip - except that unlike your fortune teller, I&#8217;m always right.</p><div><hr></div><h1><strong>Show me the slack!</strong></h1><p>For me to check if your chip will work correctly, I need to ensure that your design meets all of the register&#8217;s needs. Let&#8217;s start by looking at setup time. Use the diagram below to follow along. To start with, I select a register, say <strong>R0</strong> from the design, and pick one of it&#8217;s inputs - let&#8217;s call it <strong>In</strong>. At a positive clock edge, <strong>R0</strong> stores the data from In. (When I do this analysis, I assume the input register, <strong>R0</strong> in this case, does not violate Setup Time. This analysis is done for all registers, so trust me, it will all work out in the end.) Due to the propagation delay in <strong>R0</strong>, the stored data <strong>In&#8217;</strong> is only seen after some delay. As I mentioned, a register can have two kinds of delays - but when I&#8217;m checking if setup time is met, I pick the larger of the two - because I want your chip to work under all circumstances. Once we get past <strong>R0</strong>, we see a familiar foe - the combinational delay which I <a href="https://chipinsights.substack.com/i/168864393/welcome-to-my-synchronized-world">spoke about in an earlier section</a>. Adding both these delays gives us the time it takes to get the correct data for <strong>Out&#8217;</strong> - the input to register <strong>R1</strong>. The register <strong>R1</strong> expects to store this data at the next positive clock edge - it&#8217;s schedule is decided by the clock period. But as I mentioned earlier, the register does not like last minute changes to it&#8217;s input - so our real deadline is actually a little earlier than the next positive edge - to ensure that the data is held stable longer than the setup time of R1. This requirement can be expressed using fancy math operators, and this is called the <strong>Setup Time Constraint</strong>. My job is to check whether this constraint is met:</p><ul><li><p>If YES, that means this path between In and Out &#8220;<strong>meets setup time</strong>&#8221;. The extra time you have before the setup time deadline is called P<strong>ositive Slack</strong>.</p></li><li><p>If NO, the path &#8220;<strong>violates setup time.</strong>&#8221; The amount by which your delays exceed the deadline is called N<strong>egative Slack</strong>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QjXR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QjXR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 424w, https://substackcdn.com/image/fetch/$s_!QjXR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 848w, https://substackcdn.com/image/fetch/$s_!QjXR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!QjXR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QjXR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png" width="1456" height="1664" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1664,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209853,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168864393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QjXR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 424w, https://substackcdn.com/image/fetch/$s_!QjXR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 848w, https://substackcdn.com/image/fetch/$s_!QjXR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!QjXR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc61043c5-d2c7-40d9-9c21-e89979844db6_1680x1920.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1><strong>Not so fast&#8230;</strong></h1><p>As I said earlier, registers also need data to be held for some time (called hold time) before it is safe for the input value to change. In the same scenario I described earlier for setup time, when the data from <strong>Out&#8217;</strong> is being stored in register <strong>R1</strong>, a new value of In is being stored in <strong>R0</strong>, and then passing through the combinational logic to replace the current value at <strong>Out&#8217;</strong>. If this happens too fast, then the value of <strong>Out&#8217;</strong> changes before the hold time of register <strong>R1</strong> has passed - which would result in a <strong>Hold Time Violation</strong>. This gives me another constraint to check for - called the <strong>Hold Time Constraint</strong>. (You can think of it like a speeding ticket.) Similar to the setup time check, my goal is to ensure that the chip works at all circumstances - so when I am looking for a hold time violation, I take the smaller of the two propagation delays of register <strong>R0</strong>. Remember, smaller delays are bad when it comes to hold time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9p5T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9p5T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 424w, https://substackcdn.com/image/fetch/$s_!9p5T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 848w, https://substackcdn.com/image/fetch/$s_!9p5T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!9p5T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9p5T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:187931,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168864393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9p5T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 424w, https://substackcdn.com/image/fetch/$s_!9p5T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 848w, https://substackcdn.com/image/fetch/$s_!9p5T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!9p5T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f438a4-9c80-44d8-8b55-5855a9a35ab9_1920x1920.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1><strong>Showing (off) my work</strong></h1><p>Now that you know what I do, let me show you how I would actually do it, using <a href="https://chipinsights.substack.com/i/168864393/welcome-to-my-synchronized-world">the example design I described earlier</a>. In this design, although there are just two registers, there are six different paths between inputs and outputs. (Four of them have unique combinational delays.) For each of these paths, I need to ensure that the setup and hold time constraints are met. Dr. Morris Chang was busy, so I made up some numbers for the register&#8217;s setup time , hold time , and propagation delays. With these numbers:</p><ul><li><p>Path 2 and 3 meet both setup and hold time conditions - they are good to go</p></li><li><p>Path 1 fails setup time - it takes 8 ns for data to reach <strong>O&#8217;</strong>, but <strong>R1</strong> expects it at 7 ns</p></li><li><p>Path 4 fails hold time - The path from <strong>E</strong> to <strong>O&#8217;</strong> is just 4 ns long, giving <strong>R1</strong> insufficient time to store the previous input</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T6_C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T6_C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 424w, https://substackcdn.com/image/fetch/$s_!T6_C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 848w, https://substackcdn.com/image/fetch/$s_!T6_C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 1272w, https://substackcdn.com/image/fetch/$s_!T6_C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T6_C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png" width="767" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:767,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168864393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T6_C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 424w, https://substackcdn.com/image/fetch/$s_!T6_C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 848w, https://substackcdn.com/image/fetch/$s_!T6_C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 1272w, https://substackcdn.com/image/fetch/$s_!T6_C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a52fd0-d3d3-41d8-82c3-f6e0edfe8ae2_767x731.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This analysis (i.e. Static Timing Analysis) clearly shows that this design does not pass timing. It also tells you exactly which paths are causing violations, and by how much. I have to repeat this analysis for every combination of input and output registers, and every possible path between the inputs and outputs. Even if one out of a million such paths has a setup or hold violation, I will find that for you, and prevent you from making a billion dollar mistake. That&#8217;s what makes me special&#8230;</p><div><hr></div><p>Still not convinced of my value in your life? That&#8217;s okay, I have some more experiences to share from the real world that might just convince you. So share this story, and stay tuned for future installments of this series.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[The most important law every chip designer should know about]]></title><description><![CDATA[It's not Moore's Law. It's not Huang's Law.]]></description><link>https://chipinsights.net/p/the-most-important-law-every-chip</link><guid isPermaLink="false">https://chipinsights.net/p/the-most-important-law-every-chip</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Mon, 14 Jul 2025 02:01:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s), and are not investment advice.</strong></p><div><hr></div><h1><strong>Story time</strong></h1><p>In 1989, a chip design team started work on one of the most ambitious PC processors of the time - one with a superscalar architecture, branch prediction, and a much faster floating point unit. Over the next two years, hundreds of engineers were involved in the design, simulation, and extensive verification, which culminated in a test chip. The testing continued - by running major operating systems with the most popular applications of the time - for an estimated 100 million clock cycles. After all the bugs were resolved in 1993, the final chip was shipped to all the biggest computer OEMs of the time - with a new brand name called &#8220;Pentium&#8221;. The chip was an instant hit - the reviews were positive, and as a result, Intel&#8217;s microprocessor sales doubled in 1993. The new floating point unit impressed - with a 10x improvement over the previous generation of Intel chips. It was another feather in Intel&#8217;s cap - extending their dominance in the PC processor market. It seemed like they had done everything right, and nothing could go wrong&#8230;</p><p>The Pentium chip had millions of users over the years, but one of them has a special place in history. Dr. Thomas Nicely and Intel couldn&#8217;t be further apart - he was a Mathematics professor at Lynchburg College in Virginia, away from the hustle and loud marketing that Silicon Valley was known for. About 18 months after the release of the Pentium processor, Dr. Nicely noticed something - the results from his research on twin prime numbers were slightly off. Like a typical academic would, instead of ignoring it as a &#8220;random error&#8221;, he started to dig deeper - which led him to the conclusion that the Pentium processor was making mistakes when running some floating point division operations. He posted his findings online, and this opened up a can of worms that would cost Intel dearly.</p><div><hr></div><h1><strong>Triaging the bug</strong></h1><p>Remember the long division method from high school? Microprocessors in the 1990s used a similar method to divide floating point numbers. Although it worked, this method was quite slow - making floating point division one of the slowest arithmetic operations in a microprocessor. To make this operation execute faster, Intel implemented a different approach called &#8220;Sweeney-Robertson-Tocher (SRT) method&#8221;. I&#8217;ll skip the details here, but for the purposes of this post, all you need to know is that in order to implement SRT in hardware, a lookup table was needed to provide the quotient digit based on different input combinations. It was in this lookup table that the now famous Pentium FDIV bug originated.</p><p>In order to implement this lookup table, the Pentium team used a Programmable Logic Array, or PLA. A PLA is a type of Read-Only Memory (ROM), but can be used to store structured data more efficiently in a smaller area - by representing the data as a logic function. In the 1990s, memory was still very expensive, which made PLAs an attractive alternative. The word &#8220;programmable&#8221; in PLA could be misleading in today&#8217;s context - programming a PLA means &#8220;fusing&#8221;, or allowing current to flow through certain transistors to get the desired logic. This was done permanently, before shipping the chip out to the customer. This transistor fuse mapping (i.e. which connections exist) is very important in deciding what the final output would be. For example, the figure below shows a 3 input, 2 row, 2 output PLA, where different programming (Blue and Green dots) result in different output logic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CXmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CXmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 424w, https://substackcdn.com/image/fetch/$s_!CXmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 848w, https://substackcdn.com/image/fetch/$s_!CXmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 1272w, https://substackcdn.com/image/fetch/$s_!CXmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CXmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png" width="1342" height="645" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c734101e-7404-4026-b58a-64ce32957391_1342x645.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:645,&quot;width&quot;:1342,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70401,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/168256756?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CXmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 424w, https://substackcdn.com/image/fetch/$s_!CXmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 848w, https://substackcdn.com/image/fetch/$s_!CXmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 1272w, https://substackcdn.com/image/fetch/$s_!CXmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc734101e-7404-4026-b58a-64ce32957391_1342x645.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To implement the SRT division method, the Pentium team used a 22 input, 120 row, 2 output PLA - which means there are 2880 potential transistors to fuse. (Of these, only 2048 values were used.) Unfortunately for Intel, 5 of these were programmed incorrectly. Whenever these incorrect values were picked up from the lookup table, the result of the floating point division was incorrect. This was the cause for the FDIV bug in Pentium.</p><div><hr></div><h1><strong>How did this bug go unnoticed?</strong></h1><p>Looking back, this sounds like a trivial issue that should have been caught much earlier in the testing process. But remember, we are talking about the best microprocessor company of the time - which begs the question - how did they miss this bug? There are a few theories floating around:</p><ul><li><p>Intel&#8217;s whitepaper claims this was a clerical error - the C script written by an engineer to load the final transistor mapping into the PLA had an error, which resulted in 5 entries not being loaded in the PLA. The values were tested before loading to the PLA, but the values in the PLA were not checked.</p></li><li><p>Robert Colwell, architect of the Pentium Pro, mentions in his book "The Pentium Chronicles&#8221; that this error was caused by a last minute request (actually, order) from management to shrink the size of the PLA, which made the engineers pursue an optimization that was not properly verified.</p></li><li><p>Some postmortem studies claim that the engineers misunderstood the SRT method, and applied the wrong rule for lowering thresholds - which means this was not an error in any step in the chip design process - the table was mathematically wrong in the first place</p></li><li><p><strong>Aliens manipulated the final chip layout in order to scale back human progress (I&#8217;m not kidding. Intel made a movie about this, called &#8220;<a href="https://www.youtube.com/watch?v=eI4HxFQROJE">Intel: The Journey Inside</a>&#8221; with this plot.)</strong></p></li></ul><p>Irrespective of the reason, it&#8217;s interesting that the bug went unnoticed for close to 2 years after the chip was released. (Although Intel claims they were aware of the problem in the summer of 1994, months before Dr. Nicely made it public.) This is because, the odds of hitting this bug were extremely low:</p><ul><li><p>The division must access the 5 incorrect values out of the 2048 in the PLA, a 0.24% chance</p></li><li><p>Intel claimed a typical user would encounter this problem once every 27,000 years. Another way of putting this was that an error would take place once for every 9 billion random divisions.</p></li><li><p>The error typically shows up in the 9th or 10th decimal digit (at worst, the 4th decimal digit.) There are very few applications that require such high precisions</p></li></ul><p>Although a lot of people claimed to have been impacted by this, Dr. Nicely was the only person who noticed the bug in regular use. (All other scenarios seem to be artificially designed to hit the bug.) When it comes to bugs, Intel won the lottery. (if winning the lottery means creating a bug that is being talked about 30 years later.)</p><div><hr></div><h1><strong>Consequences</strong></h1><p>Although the bug was clearly not great news for Intel. But in a way, they got lucky - the odds of this bug having any real impact was ridiculously low. (If we go by Intel&#8217;s numbers, the odds are lower than that of plane crashes.) Yet, Intel did not get away with this.</p><p>Intel&#8217;s early response was to shrug it off as an unlikely scenario, which led to a lot of flak. News about Dr. Nicely&#8217;s findings spread like wildfire, and even CNN ran a segment on the issue. IBM, who were simultaneously Intel&#8217;s biggest customer and competitor (with the Power PC) claimed that the issue was more common than Intel estimated. AMD ran <a href="https://bsky.app/profile/trevorkevorson.bsky.social/post/3lcnv6h65hc26">an advertisement</a> that said their chips &#8220;Can actually handle the rigors of complex calculations like division.&#8221; - a clear dig at Intel&#8217;s bug.</p><p>Ultimately, Intel had to <a href="https://static.righto.com/images/pentium-fdiv/apology.jpg">issue a public apology</a> and offered a free replacement to anyone with a Pentium processor that reached out to them. This was estimated to have costed Intel about $500 million - and a lot of damage to their reputation.</p><p>This is the impact that even a seemingly harmless chip design bug can have.</p><div><hr></div><h1><strong>The most important law in chip design&#8230;</strong></h1><p>This brings me to the title of this post, and the reason why I narrated the story of Intel&#8217;s famous FDIV bug. This is not just a story about Intel&#8217;s mistakes. Every major chip company in existence has had a similar story to this, and I&#8217;m sure every chip company in the future will. There is a lesson to learn from stories like this.</p><p>It is in the nature of chip design and computing that even the unlikeliest outcomes can occur, and should therefore be accounted for. Over the years, architectures have changed, workloads have changed, but this fact continues to remain true. <strong>Hence, the most important law in chip design is actually Murphy&#8217;s law: If something can go wrong, it will go wrong.</strong></p><p>We talk a lot about transistor nodes and chip performance, but it is important to remember that the first priority will always be: <strong>build a chip without bugs.</strong> Maintaining such a high standards at the scale of trillions of transistors, each a few nanometers wide, and switching more than a billion times per second, is what makes the chip design industry truly unique.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h1><strong>References</strong></h1><ul><li><p>Few facts about the Pentium processor</p><ul><li><p><a href="https://en.wikipedia.org/wiki/Pentium_(original)">https://en.wikipedia.org/wiki/Pentium_(original)</a></p></li><li><p><a href="https://www.tomshardware.com/picturestory/710-history-of-intel-cpus.html">https://www.tomshardware.com/picturestory/710-history-of-intel-cpus.html</a></p></li></ul></li><li><p>Dr. Thomas Nicely notes on his FDIV bug discovery</p><ul><li><p><a href="https://faculty.lynchburg.edu/~nicely/pentbug/pentbug.html">https://faculty.lynchburg.edu/~nicely/pentbug/pentbug.html</a></p></li></ul></li><li><p>About the SRT division method</p><ul><li><p><a href="https://www.osti.gov/biblio/4157138">https://www.osti.gov/biblio/4157138</a></p></li></ul></li><li><p>A great deep dive into the bug</p><ul><li><p><a href="https://www.righto.com/2024/12/this-die-photo-of-pentium-shows.html">https://www.righto.com/2024/12/this-die-photo-of-pentium-shows.html</a></p></li></ul></li><li><p>Explanations for the bug</p><ul><li><p><a href="https://web.archive.org/web/20060209005434/http://www.byte.com/art/9503/sec13/art1.htm">https://web.archive.org/web/20060209005434/http://www.byte.com/art/9503/sec13/art1.htm</a></p></li><li><p><a href="https://link.springer.com/chapter/10.1007/3-540-59293-8_189">https://link.springer.com/chapter/10.1007/3-540-59293-8_189</a></p></li><li><p><a href="https://ieeexplore.ieee.org/book/5989703">https://ieeexplore.ieee.org/book/5989703</a></p></li><li><p><a href="https://oldbytes.space/@kenshirriff/113606898880486330">https://oldbytes.space/@kenshirriff/113606898880486330</a></p></li></ul></li><li><p>Media coverage after the bug became mainstream</p><ul><li><p><a href="https://bsky.app/profile/did:plc:s23o544nudvw6hxeib2fjqse/post/3lcnv6h65hc26?ref_src=embed">AMD&#8217;s 1994 advertisement</a></p></li><li><p><a href="https://static.righto.com/images/pentium-fdiv/apology.jpg">https://static.righto.com/images/pentium-fdiv/apology.jpg</a></p></li></ul></li></ul><div><hr></div>]]></content:encoded></item><item><title><![CDATA[How to build a new chip architecture, ft. Nvidia]]></title><description><![CDATA[A case study in computer architecture]]></description><link>https://chipinsights.net/p/how-to-build-a-new-chip-architecture</link><guid isPermaLink="false">https://chipinsights.net/p/how-to-build-a-new-chip-architecture</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sun, 13 Jul 2025 18:06:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s), and are not investment advice. </strong></p><div><hr></div><p>Over the last year, I have spent many hours following stories about Nvidia and their meteoric rise. This post is an attempt to consolidate all those learnings. My goal is to look back at Nvidia&#8217;s history to try and generalize the principles behind making a new computing architecture succeed.</p><p>A few caveats before I get into the post:</p><ul><li><p>This is not a post about business strategy. There are many good resources covering that already. I have tried to stay away from generic advice like &#8220;to be successful, build the picks and shovels in a gold rush&#8221;.</p></li><li><p>This post is not forward looking - I&#8217;m not claiming that Nvidia has won and everyone should invest in their stock. It is simply a case study in computer architecture. In fact, a lot of my learnings come from the early days of Nvidia</p></li></ul><p>With that out of the way, let me share what I think is key to successfully build a new architecture.</p><div><hr></div><h1><strong>Pick the right domain</strong></h1><p>Architectural changes cannot happen overnight. So its very important to pick the right target domain. There are a few ideal characteristics:</p><ul><li><p><strong>It&#8217;s barely possible to execute applications with current architectures.</strong></p><p>This means at least one the following factors:</p><ul><li><p>It takes too long to run</p></li><li><p>It needs very expensive compute resources</p></li><li><p>It needs advanced programming skills that only few possess</p></li></ul><p>When Nvidia was founded in 1993, they picked computer graphics. For graphics to be realistic, it needs fast compute. In the 1990s, 3D graphics was only possible using either:</p><ul><li><p>Expensive workstations from companies like SGI</p></li><li><p>Advanced software rendering techniques in games like Doom</p></li></ul><p>These were both not accessible to the average consumer and developer. In addition, 1992 had two key developments that could enable graphics cards:</p><ul><li><p>The PCI bus protocol was adopted as a standard by all computer manufacturer. This means anyone could make a new chip, and attach it with any computer, and it could work</p></li><li><p>Microsoft released Windows 3.1, which was a big jump in operating systems graphics</p></li></ul><p>All this made computer graphics a great domain for Nvidia to try and disrupt.</p></li><li><p><strong>There are general patterns in the workloads that can be exploited</strong></p><p>I think the word &#8220;general&#8221; is key. Let me explain with the example of graphics.</p><p>Nvidia recognized, over time, that the key pattern in computer graphics is this: <strong>Computations on each pixel is independent of the other</strong>. No other pattern is as important. This led them towards a massively parallel architecture that is still programmable.</p><p>There were architectures inspired by other approaches too. For example, early graphics chips focused heavily on fixed-function accelerators. Here, the idea was to pick a specific part of the graphics pipeline (like Tessellation, Rasterization, Shading), and make your architecture optimal for these steps. In fact, Nvidia also had a fixed function approach for a long time.</p><p>There are two problem with going narrow with architecture decisions</p><ul><li><p>Algorithms in your domain can change. Your architecture may not optimally support those changes</p></li><li><p>Your architecture can never scale to other similar domains.</p></li></ul><p>If you cannot find a general pattern in your domain, it is a bad idea to build an architecture around this domain. Often, such niche domains get commoditized as part of a bigger architecture - this is what Intel did for audio cards, and even 3D graphics to an extent over the years. But Nvidia survived this because of their architecture was sufficiently general by that point.</p></li><li><p><strong>Solving for this domain should provide big opportunities</strong></p><p>This is what Nvidia calls a &#8220;zero billion dollar&#8221; market. Its hard to specify exactly which domains would fall in this category, but a good approach I suggest is to ask this question: <strong>&#8220;If you build it, and they come, what can they do?&#8221;</strong></p><p>When Nvidia first bet the company on computer graphics, their vision was: If graphics could be made accessible to everyone, it would be the greatest storytelling medium. This was around the time when Jurassic Park was released, and power of computer graphics was becoming evident.</p><p>I also found something else that was interesting in my research - <a href="https://www.nvidia.com/content/PDF/GTC/GTC2010_Catalog_Machine_Learning_&amp;_Artificial_Intelligence_2010_09_01.pdf">Nvidia had AI applications added to their GTC lineup as early as 2010</a>. Although AI was still in its nascent stages, they were thinking about potential applications like computer vision, speech recognition, and robotics - the promise of a world powered by AI was massive, prompting Nvidia to pursue that domain aggressively.</p><p>Establishing an architecture needs huge time investment - so it is very important that your target domain has huge potential.</p></li></ul><div><hr></div><h1><strong>Your architecture should fit your target workloads - not the other way around</strong></h1><p>If you want to build a standardized architecture, that means that other developers will be building software for your architecture. This presents a major challenge to architecture companies. Usually, when there is an change in algorithms or APIs that your architecture support, architecture companies are presented with two options:</p><ol><li><p>Build an translation layer through your drivers, or compiler, to support the new workloads on the same architecture</p></li><li><p>Modify your architecture to better suit the new workloads</p></li></ol><p>The first approach is often easier, and can be done on-the-fly (in the same chip generation). So this is the preferred method. However, a lot of chip companies ignore the second approach completely - if it works, why fix it? There are two stories from Nvidia about this which are interesting to study.</p><p>In 2003, Nvidia had established itself as the leader in computer graphics, and was preparing to launch its next chip, NV30. Around the same time, Microsoft had just released the new Direct3D 9 API. NV30 did not fully support Direct3D 9 - so they created software workarounds to support the new software features. This turned out to be a disaster - the NV30 received bad reviews, had heating problems. This was a major learning for Nvidia.</p><p>Over the next few years, as Nvidia&#8217;s programmable shaders started to gain popularity, many researchers started using them for scientific computing. During the early days, the same GeForce cards used for graphics were being repurposed for scientific computing through some cumbersome programming. Although this was better than anything available at the time, it was still not optimal - much of the GPU architecture was still optimized towards graphics applications.</p><p>This time though, Nvidia saw the trend early - instead of keeping the same chip architecture for graphics and scientific computing, they started to build chips that were specifically meant for non-graphics applications, by maximizing the number of parallel floating points computations supported. In 2016, they also introduced FP16 support on their GPUs - because most Deep Learning workloads used FP16. These factors went on to play a massive role in their dominance in the data-center - which is mostly comprised of AI workloads.</p><div><hr></div><h1><strong>Have a unified and backward compatible architecture.</strong></h1><p>Two basic rules of life are: 1) Change is inevitable. 2) Everybody resists change.</p><p>To build a standardized architecture, making it backward compatible is key. Having a unified architecture naturally creates a flywheel:</p><ul><li><p><strong>All the libraries developed over the years work on your architecture</strong></p></li><li><p><strong>Developers are incentivized to write more libraries for your architecture</strong></p></li></ul><p>Getting developers into a new architecture is key - that&#8217;s what Intel was able to do in PCs, ARM in mobile (PowerPC and DEC Alpha are examples where this did not happen). A unified architecture is very &#8220;developer friendly&#8221; - a community (ideally, open-source) starts to build around your architecture. This is exactly what Nvidia achieved with CUDA - since 2006, all Nvidia GPUs are CUDA compatible, giving CUDA developers an install base of about 500 million devices, with about 300 libraries and 600 AI models.</p><p>CUDA is Nvidia&#8217;s moat, and a lot had been said about this already. For the purposes on this post, I want to talk specifically about some of the challenges with maintaining backward compatibility:</p><ul><li><p><strong>Clunky hardware:</strong> To support legacy architecture features, often, additional hardware complexity needs to be maintained. This will result in poorer Power, Performance, Area (PPA) metrics over time</p></li><li><p><strong>Restricting Innovation:</strong> Very often, something new and better cannot be implemented in your architecture because it breaks some legacy constraints.</p></li><li><p><strong>Expensive Development:</strong> As the number of architectural features increases, it needs a bigger workforce, and more knowledge transfer - which costs time and money.</p></li></ul><p>I think over time, every architecture company gets hamstrung by their legacy architectural features - A case in point is Intel, and the x86 architecture (<a href="https://chipinsights.substack.com/p/the-isa-debate">I have a earlier post on ISAs with more details</a>). This makes maintaining backward compatibility one of the most challenging aspects of computer architecture.</p><p>So far, Nvidia has managed this well, primarily owing to these factors:</p><ul><li><p>Nvidia&#8217;s developers operate at a very high level of abstraction. CUDA by itself is a fairly high-level language (like C). Also, most developers build using CUDA libraries like CuBLAS and CuDNN, which are optimized for Nvidia&#8217;s architectures. This gives Nvidia more opportunities to improve their architecture while maintaining backward compatibility. In other words, they can maintain backward compatibility at the developer level, but break compatibility at the microarchitectural level - bridged using their driver and compiler. This differentiates them from Intel, who for the most part were dependent on Windows developers doing a good job at using their architecture.</p></li><li><p>Their architecture is still fairly general and simple - it is centered around parallel programming, and floating point computations. A lot of issues in Intel&#8217;s architecture stemmed from complexities added over the years - like variable length instructions and complex arithmetic.</p></li></ul><p>So far, Nvidia has navigated the backward compatibility challenge well - but their workloads are fairly new, so it will be interesting to see how this continues in the long run.</p><div><hr></div><h1><strong>Build infrastructure to move faster</strong></h1><p>The nature of workloads keep changing all the time. One of the most impressive aspects of Nvidia is their ability to pivot when an opportunity present itself. They started as a graphics card, pivoted to programmable graphics, and then expanded into high performance computing. Nvidia was able to grab opportunities better than anyone else, because they were able to make big architectural changes quickly.</p><p>From early days, Nvidia was a strong believer in simulation and automation. I think it stems from Jensen&#8217;s early days at LSI logic, the company that pioneered many EDA innovations. (<a href="https://chipinsights.substack.com/p/eda-deep-dive-part-1-the-history">I have covered many such stories in my EDA series</a>). During his time at LSI, Jensen worked on a new chip architecture called &#8220;sea-of-gates&#8221; - which was a very early version of an FPGA emulator. Emulation would go on to play a big role in the development of RIVA128 - widely regarded as the chip that saved Nvidia.</p><p>Traditionally, once the chip was designed, it was sent out to the fab, and a test chip was sent back. This test chip was used to run software, find bugs, and resolve them. There are multiple iterations of this, until all bugs are resolved. Then, a final, large order of chips gets &#8220;taped out&#8221;. This whole process usually took 2 years.</p><p>Nvidia first two chips - NV1 and NV2, were poorly received. Nvidia needed to make major architectural changes in a very short time - which forced them to adopt emulation. Using emulation, once the design is ready, it is loaded on to an &#8220;Emulator&#8221;, which is then used to test software on the chip prototype even before it was manufactured. To do this, Nvidia went to a failing company called Ikos, invested heavily in their emulators (each one cost $1 million!), and essentially bet the company on emulation. It was a cumbersome process, but it worked - RIVA128 made one of biggest leap in computer graphics, and made Nvidia the leaders in computer graphics.</p><p>Although the RIVA128 story was born out of desperation, moving fast then became a part of Nvidia&#8217;s culture. Nvidia continues to invest heavily on infrastructure to help them innovate faster than the competition. Nvidia also incorporated a feature called &#8220;virtualized objects&#8221; into their architecture. In simple words, this was a mini-OS baked into the hardware (called &#8220;Resource Manager&#8221;) that could be used to emulate certain late hardware features that could not make it in time for the chip production. Although it incurred a minor performance cost, Nvidia adopted this because they greatly valued the ability to move quickly.</p><p>Generally at Nvidia, this obsession with efficiency is referred to as the &#8220;speed of light&#8221; approach, which says: <strong>every project must be executed at the fastest possible rate, and all obstacles in the process should be removed.</strong> This is an underrated aspect of chip design that a lot of companies neglect, making them slower, and less receptive to new opportunities.</p><div><hr></div><h1><strong>Understand bottlenecks outside your core architecture</strong></h1><p>If building a computing platform is like building a car - the architecture is like the engine. Even if you have built the fastest engine, your car can&#8217;t go fast if you have weak tires, or there is bumper-to-bumper traffic on the road. Although your architecture is just one part of the computing stack, all the end user cares about is: <strong>how fast is my workload running</strong>. So its very important to analyze where the bottlenecks are, and work on managing them better.</p><p>One fundamental bottleneck every architect must think about is transistor scaling - i.e. how is Moore&#8217;s law progressing at the time your are building your architecture. (<a href="https://chipinsights.substack.com/p/moores-law-and-the-performance-promise">I covered Moore&#8217;s law in more detail in an earlier post</a>). Nvidia learnt this the hard way.</p><p>Nvidia&#8217;s first graphics card, the NV1, was designed to render 3D surfaces in 2D using quadrilaterals (4 vertices) instead of triangles (3 vertices). Nvidia&#8217;s had a good reason to do this - memory costs were very high, and using quadrilaterals would allow them to build their chip with a smaller memory, allowing them to price their graphics card competitively. However, what they didn&#8217;t see was that Moore&#8217;s law started to accelerate around the same time, making memory much cheaper. The software ecosystem at the time standardized on triangles, and their competitors were able to support this using larger memory at comparable prices. Despite having one of the best architecture, Nvidia could not remain competitive because they had a small memory.</p><p>Many years later, in the datacenter business, Nvidia knew that their architecture alone cannot push them to the top. Not a lot of people know this, but Nvidia was in the cloud business very early - in 2013, they released Nvidia Grid, an early version of their cloud gaming platform, known today as GeForce Now. There is another fact that is not well known - Nvidia had an LLM of their own, much before ChatGPT became popular. In 2019, they built an open-source LLM called Megatron.</p><p>Both these experiences taught Nvidia about all the components needed to make the best datacenter servers. As a result, Nvidia has expanded well beyond their GPU architecture in datacenters, to offer:</p><ul><li><p>Very high bandwidth memory using CoWoS 2.5D stacking (very important for LLMs)</p></li><li><p>Faster networking between cards through NVLink, enabled by their acquisition of Mellanox</p></li><li><p>A very efficient ARM-based CPU for the datacenter (in fact, they tried to acquire ARM)</p></li></ul><p>This gave them control of a bigger portion of the computing stack, and allowed them to optimize it further. Vertical integration as an architecture company also buys you time - even if Nvidia GPU architecture is not the best for a generation, the full solution they provide might still be better than anything on offer. Finally, a full solution is much easier for enterprises to deploy.</p><p>Although most architecture companies cannot start here, it&#8217;s very important to move towards that direction as your company evolves. This is how you can move from a <strong>great technology to a great product.</strong></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p><strong>References:</strong></p><ul><li><p>The Nvidia Way, a book about Nvidia&#8217;s story by Tae Kim</p></li></ul><ul><li><p>Nvidia episodes from Acquired</p><ul><li><p><a href="https://open.spotify.com/episode/6G85ReuFsSkqIuwwwEhJeG?si=5bb4da30ad614f88">Nvidia Part 1: The GPU Company (1993-2006)</a></p></li><li><p><a href="https://open.spotify.com/episode/75VXqCGAV1igZViPFO8LIE?si=dac01128910b4a0c">Nvidia Part 2: The Machine Learning Company (2006-2022)</a></p></li><li><p><a href="https://open.spotify.com/episode/0ax1sBKJ1ombOYGwWl0hEq?si=2b39d59a07214b4a">Nvidia Part 3: The Dawn of the AI Era (2022-2023)</a></p></li><li><p><a href="https://open.spotify.com/episode/6MmkzOxBUeA2Ur1fLDmQRk?si=86db2b72c33b4f3b">Nvidia CEO Jensen Huang</a></p></li></ul></li><li><p><a href="https://open.spotify.com/episode/47oFfRhzqQK2dgObjZsf4D?si=0dcbfa011cf24f6e">NVIDIA's Jensen Huang on AI Chip Design, Scaling Data Centers, and his 10-Year Bets</a></p></li><li><p><a href="https://open.spotify.com/episode/0pt8FAP3UKdZhgKHfAWPdC?si=84ca54dc24694a86">Ep17. Welcome Jensen Huang | BG2 w/ Bill Gurley &amp; Brad Gerstner</a></p></li><li><p><a href="https://www.youtube.com/watch?v=7ARBJQn6QkM&amp;t=2732s">NVIDIA CEO Jensen Huang's Vision for the Future</a></p></li></ul><div><hr></div>]]></content:encoded></item><item><title><![CDATA[The era of full-stack chip designers]]></title><description><![CDATA[What are chip design teams going to look like in the future?]]></description><link>https://chipinsights.net/p/the-era-of-full-stack-chip-designers</link><guid isPermaLink="false">https://chipinsights.net/p/the-era-of-full-stack-chip-designers</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Sun, 06 Jul 2025 22:08:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><strong>Disclaimer: Opinions shared in this, and all my posts are mine, and mine alone. They do not reflect the views of my employer(s), and are not investment advice.</strong></p><div><hr></div><p>A few years back, when I was talking to a student that was interested in both the front-end and back-end stages in chip design, I made a cheeky remark that they should become a &#8220;Full Stack Chip Designer&#8221;. (I can&#8217;t remember who I was talking to, but if you are reading this, this post is dedicated to you!) It was a term I took from software engineering - a full stack engineer is someone that has the skillsets to work on both the front-end and back-end aspects of a software application. When I said &#8220;full-stack&#8221; in the chip design context, I just meant it as a joke - there are very few people that actively work on all the steps in the RTL-to-GDS chip design flow, especially when designing complex, real-world chips. I must admit I have never done full stack software engineering, but from what I gather, the skills are more transferrable between front-end and back-end software design, compared to chip design. But with AI in the picture, something tells me we might be heading towards the era of full-stack chip designers.</p><div><hr></div><h2><strong>What I mean by &#8220;Full-Stack Chip Designer&#8221;</strong></h2><p>I briefly introduced the idea earlier, but let me be more specific here. The typical digital chip design process can be divided into two broad categories:</p><ul><li><p><strong>Front-End</strong>, which involves designing microarchitecture specifications and describing the logic using Hardware Description Languages (HDLs) like Verilog. (the resulting &#8220;code&#8221; is called Register Transfer Language, or RTL.)</p></li><li><p><strong>Back-End</strong>, which involves taking the RTL, and converting it into a layout (called GDS) that a foundry can use to manufacture the chip. This is a multi-step process that uses EDA tools from companies like Cadence and Synopsys.</p></li></ul><p>Typically, teams managing these two aspects work in isolation to each other - the front-end team finalizes the RTL, then hands it off to the back-end team to generate the GDS. There are a few &#8220;leads&#8221; involved in the back-and-forth between the teams, but their role is to pass feedback to each other&#8217;s teams. The leads have a good understanding of both front-end and back-ends, but typically do not directly work on implementing in either. On the contrary, when I refer to a full-stack chip designer, I mean an individual (or a small team) that can take a design idea through from front-end to back-end - fully implementing all the steps in the process.</p><div><hr></div><h2><strong>Why is Full-Stack Chip Design hard?</strong></h2><p>There are a lot of smart people in chip design - so if I could think of this idea, you can be sure that a lot of people have thought of it. In fact, a lot of early chip designers were truly full-stack - they worked on all the steps themselves. I can even say that if you have ever taped-out a chip for a project at your university, you are technically a full stack chip designer too. So it&#8217;s clearly not an impossible problem to solve - it is just very hard to solve at the scale of today&#8217;s commercial chips with billions of transistors. There are two main reasons for this:</p><h3><strong>1. Back-end tools aren&#8217;t intuitive; Neither are HDLs</strong></h3><p>I think this is a well documented problem. (I have also talked about it in <a href="https://chipinsights.substack.com/p/eda-deep-dive-part-1-the-history">one of my earlier posts</a>.) Due to a large design space, EDA tools are complex to use, and produce reports filled with convoluted terminology. As a result, it is not straightforward for a front-end designer to dive into back-end tools. To make matters worse, bugs in the back-end design process are very hard to spot, and if left unattended, could result in a chip that does not function (a chip re-spin is a billion dollar affair, so no one wants that.)</p><p>I also think writing good RTL is an art that takes time to master - unlike high level languages, HDLs are less intuitive, which makes it harder for back-end experts to pick up. All this has meant that back-end designers spend all their time training to be experts in the tools they are working with, while front-end engineers prefer to do what they do best.</p><h3><strong>2. Front-end and Back-end design happens at different granularities</strong></h3><p>This aspect is more nuanced and is not seen in small chips or university projects. When working on industry-scale chips, front-end and back-end designers have different priorities. Front-end designers start by becoming experts on a small part of the design. In order to make this happen, all other parts of the design need to be treated like black-boxes. However, for back-end design to be effective, it needs to happen at a bigger granularity - if a chip has two blocks, but the back-end is handled for each block separately, the interactions between the blocks (signals routed across, how often they access hard macros, and so on) would not be captured well - which would result in a low-quality layout. Hence, the goals of a back-end designer are quite different - it is to gain a basic understanding of all parts of the design, by sacrificing depth in a single part.</p><p>Essentially, when it comes to understand the chip, a front-end designer should be a specialist, while a back-end designer should be a generalist. Getting an individual (or team) to do both is a challenge.</p><div><hr></div><h2><strong>What do you gain by being a Full-Stack Chip Designer?</strong></h2><p>Short answer: Time. </p><p>Although front-end and back-end work in isolation, they are working towards the same goal - to build a better chip. However, there is a long feedback loop between the two stages: Typically, once the RTL is delivered by the front-end teams, back-end teams find ways to optimize the layout which need changes in the front-end. The front-end team now needs to distil out the feedback, figure out if the request is even feasible, and if so, implement the change. This takes weeks, or sometimes even months. Projects have multiple iterations like this, which either massively increases chip design timelines, or results in a sub-par chip getting shipped.</p><p>Bringing both front-end and back-end into the same umbrella can massively shrink this timeline, by:</p><ul><li><p>Making the iteration time faster (&#8221;I know exactly what needs to change for a better layout, and whether that&#8217;s possible to do in the RTL&#8221;)</p></li><li><p>Reducing the number of iterations (&#8221;When I write RTL, I also know how it is going to impact the layout&#8221;)</p></li></ul><p>This time saving is crucial - since the semiconductor industry is highly cyclical, when the chip you build is hot, quickly coming up with better versions is key to dominate your industry.</p><div><hr></div><h2><strong>How can AI help to make this possible?</strong></h2><p>I spoke about the potential of AI in chip design EDA in an earlier post - I think reading this would add value to this discussion:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4a9ece92-16af-4220-a91b-9bded73eedf0&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;EDA Deep Dive - Part 3: The AI Era&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:178190448,&quot;name&quot;:&quot;Bharath Suresh&quot;,&quot;bio&quot;:&quot;Engineer and Writer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23b7c14a-5bd1-4a78-9ac8-c5d6eda62bfc_2048x2048.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-01-11T17:29:32.777Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://chipinsights.substack.com/p/eda-deep-dive-part-3-the-ai-era&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:154626822,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Chip Insights&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Z-fT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74222e4c-9d04-46aa-82ba-7d82759b48b9_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>In addition to the points mentioned there, I want to specifically talk about the two ways I feel AI can make full-stack chip design a reality:</p><h3><strong>1. Using AI for Knowledge Transfer</strong></h3><p>If you look at both the reasons why full-stack is hard in chip design, they boil down to the same thing - knowledge transfer is hard. I think AI, even in it&#8217;s current form, can solve this problem to a good extent.</p><p>For instance, it is possible to develop and maintain a database with all the scripts, best practices, and terminologies associated with back-end tools - effectively allowing an expert in front-end design to move ahead with back-end flows. Similarly, if LLM based RTL generation can be solved effectively, that allows a back-end designer to also manage front-end changes.</p><p>I also think LLMs are going to play a big role in documentation and teaching - if basic questions about all parts of a design could be answered immediately, then you can have a specialist in one part of the design expand into being a generalist when needed.</p><h3><strong>2. Automation is coming</strong></h3><p>Although I didn&#8217;t mention it so far, having different front-end and back-end teams is also important to maintain realistic working hours - from the conversations I have had, chip designers work more hours than software engineers, especially close to deadlines. So in the current state, even if an individual can manage both front-end and back-end, it&#8217;s not practical to have them work on both. This is where I feel AI&#8217;s big productivity promise is going to play a role.</p><p>I think an agentic RTL-to-GDS flow is coming soon, which would automate a lot of mundane tasks that chip designers must do today. I think this would greatly help with the workload problem, and make the idea of a full stack chip designer practical.</p><div><hr></div><h2><strong>Why economic incentives might make this inevitable?</strong></h2><p>So far, I talked about going &#8220;full-stack&#8221; like an opportunity - if someone wants to do both front-end and back-end, they might be able to do it in the near future and build better chips. This is actually how it works in software engineering today - some developers become full-stack, but others choose to stay with one. But can chip design afford to offer this flexibility?</p><p>I can imagine a future where becoming a full-stack chip designer may not just be an option - it could become the norm. To understand why I feel this way, let&#8217;s look at the economics of chip design. At a high level, chip design companies spend money on the following:</p><ul><li><p>Payroll for chip designers</p></li><li><p>Cost to manufacture wafers</p></li><li><p>EDA tool licenses</p></li></ul><p>With the way things are headed today, manufacturing costs are increasing sharply - each new node is becoming more challenging to implement, and as a result, more expensive. So this is going to start eating into the profit margins of most chip design companies.</p><p>The next factor is EDA licenses. There are many AI-first EDA startups coming up today, but they still don&#8217;t have access to the Process Design Kit (PDK) from chip manufacturers. (If you don&#8217;t know what a PDK is, think of it as a secret recipe that a manufacturer like TSMC provides to EDA vendors like Cadence and Synopsys in order to correctly map chip designs to a layout that can be manufactured.) As long as PDKs remain under tight control, the legacy EDA vendors cannot be replaced. This leaves two possible outcomes:</p><ul><li><p>AI EDA tools add a new agentic layer in chip design</p></li><li><p>Legacy EDA vendors do all the AI themselves and become more dominant</p></li></ul><p>Either way, I see the cost related to EDA going up. (Not to mention, a lot of chip design companies also need to upgrade compute to handle the new AI workflow.) So to maintain their profit margins, chip design companies might raise their prices - but that may not be sustainable unless they have a very strong moat.</p><p>This leads us to the point I&#8217;m trying to make - companies need to innovate, and improve productivity with smaller teams. <strong>What better way to do this, than with full stack chip designers?</strong> (By the way, when I say smaller teams, I don&#8217;t necessarily think jobs are going away - on the contrary, I expect shorter design timelines, and a large variety of chips customized for different use cases.)</p><div><hr></div><h2><strong>Some other definitions of full-stack</strong></h2><p>I took front-end and back-end design as an example here since the analogy fits nicely with the software engineering world. But chip design actually has many more steps, and could see consolidation at other levels too. Here are a few I could think of:</p><ul><li><p>RTL Design and Functional Verification (software engineering has largely consolidated Programming and Verification)</p></li><li><p>Different aspects of Verification (like Functional, Power, Performance, and so on)</p></li><li><p>Architecture Simulation and RTL Design (through High-Level-Synthesis)</p></li></ul><p>If you can think of some other aspects in chip design that can be consolidated, I&#8217;d love to hear as a comment below :)</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[2025 YC AI Startup School - Round up]]></title><description><![CDATA[Hear from the most influential figures in AI]]></description><link>https://chipinsights.net/p/2025-yc-ai-startup-school-round-up</link><guid isPermaLink="false">https://chipinsights.net/p/2025-yc-ai-startup-school-round-up</guid><dc:creator><![CDATA[Bharath Suresh]]></dc:creator><pubDate>Tue, 17 Jun 2025 07:10:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W0lg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you have been reading this substack, you&#8217;ll know that this post is different from the others here:</p><ul><li><p>It&#8217;s not specifically about chips</p></li><li><p>It&#8217;s from the present (Not the 1960s like <a href="https://chipinsights.substack.com/p/evolution-of-hdls-part-1-the-birth">one of my posts</a>)</p></li></ul><p>But AI is at the center of tech today, and plays a big role in the semiconductor industry too. I got an opportunity to attend YC&#8217;s AI startup school, and here are some learnings from the speakers.</p><div><hr></div><p>Here&#8217;s the list for you to quickly navigate through:</p><ul><li><p><a href="https://chipinsights.substack.com/i/166131675/opening-remarks-from-gary-tan-president-and-ceo-at-y-combinator">Garry Tan</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/sam-altman-ceo-at-openai">Sam Altman</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/elon-musk-who-needs-no-introduction">Elon Musk</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/satya-nadella-ceo-at-microsoft">Satya Nadella</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/aravind-srinivas-ceo-and-co-founder-of-perplexity-ai">Aravind Srinivas</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/fei-fei-li-stanford-researcher-the-godmother-of-ai-created-imagenet">Fei Fei Li</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/andrej-karpathy-former-director-of-ai-tesla">Andrej Karpathy</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/andrew-ng-one-of-the-greatest-ai-educators">Andrew Ng</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/john-jumper-distinguished-scientist-at-google-deepmind-and-nobel-prize-winner">John Jumper</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/chelsea-finn-assistant-professor-at-stanford-co-founder-of-physical-intelligence">Chelsea Finn</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/jared-kaplan-co-founder-and-cso-at-anthropic">Jared Kaplan</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/varun-mohan-ceo-and-co-founder-of-windsurf">Varun Mohan</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/francois-chollet-ceo-and-co-founder-of-ndea-also-the-creator-of-keras">Francois Chollet</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/suhail-doshi-serial-entrepreneur-mixpanel-mighty-computing-and-playground-ai">Suhail Doshi</a></p></li><li><p><a href="https://chipinsights.substack.com/i/166131675/jordan-fisher-ceo-at-standard-ai">Jordan Fisher</a></p></li></ul><div><hr></div><p></p><h4><strong>Opening remarks from Garry Tan, President and CEO at Y Combinator</strong></h4><ul><li><p>This is a great time for the technology industry: Intelligence can be accessed using an API</p></li><li><p>It is also a time for great agency: every industry is changing</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W0lg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W0lg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W0lg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W0lg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W0lg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W0lg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:328437,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W0lg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W0lg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W0lg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W0lg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe161f284-2423-410f-87c7-1943ccea809d_2048x1536.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Sam Altman, CEO at OpenAI</strong></h4><ul><li><p>OpenAI wasn&#8217;t built to be big - things that become big usually don&#8217;t start that way</p></li><li><p>Today, there is a product overhang in AI: which means models are progressing faster than applications using them</p></li><li><p>Vision for GPT-5 and beyond: Multimodal (image, code, video) input and output + much better memory functions</p></li><li><p>In knowledge work, there is a pattern: Work few hours, wait for feedback, and repeat. This kind of work is perfect for AI agents</p></li><li><p>Open AI&#8217;s hardware product vision: A better interface than the smartphone to interact in the real world</p><ul><li><p>We have only had 2 big computer interface revolutions so far: Mouse, and Touch. The 3rd will come with AI</p></li></ul></li><li><p>If the current trend continues, the creation of GPT will be seen by future generations like the invention of the transistor</p></li><li><p>His hiring philosophy is simple: Hire smart, driven people with track record of getting things done</p><ul><li><p>In the next 10 years, small teams with big agency will be the most successful</p></li></ul></li><li><p>His two personal interests in the 2010s were AI and Energy. Today, they are interlinked - we are converting energy to intelligence.</p></li><li><p>Favorite startup advice: Be contrarian, but right (from Peter Theil)</p><ul><li><p>It&#8217;s very hard to do - When GPT1 came out, Elon Musk said it had 0% chance of success.</p></li><li><p>You just got to keep going, it&#8217;s going to be tough</p></li></ul></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wwx9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wwx9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Wwx9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Wwx9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Wwx9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wwx9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:413013,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Wwx9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Wwx9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Wwx9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Wwx9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2954f5d2-662a-47ff-8585-81242afe8b5a_1600x1200.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Elon Musk, who needs no introduction</strong></h4><ul><li><p>He never sets out to build something great - just wants to build something useful</p><ul><li><p>When the internet was happening, he just wanted to be a part of it. Applied to get a job at Netscape, but couldn&#8217;t get it. So he started something on his own.</p></li></ul></li><li><p>2008 was his toughest year - Spacex&#8217;s 3rd launch failed, and Tesla was running out of money. At that time, everyone said Elon was an internet guy who shouldn&#8217;t try real engineering</p></li><li><p>It&#8217;s important to build truth seeking environments in companies - you cannot fool math and physics</p></li><li><p>&#8220;Don&#8217;t inspire to glory, inspire to work&#8221;</p></li><li><p>To build a new AI model, you just need access to three things:</p><ul><li><p>Compute</p></li><li><p>Unique data</p></li><li><p>Talented people</p></li></ul></li><li><p>Intelligence is very rare - it is possible that we are the only species to possess intelligence. That makes it even more important that we are multi-planetary.</p></li><li><p>He predicts that in the next 100 years, there will be more humanoid robots than the human population</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2hfb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2hfb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 424w, https://substackcdn.com/image/fetch/$s_!2hfb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 848w, https://substackcdn.com/image/fetch/$s_!2hfb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!2hfb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2hfb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png" width="703" height="1002" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1002,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:932550,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2hfb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 424w, https://substackcdn.com/image/fetch/$s_!2hfb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 848w, https://substackcdn.com/image/fetch/$s_!2hfb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!2hfb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82ea7403-c923-4787-9c1f-a13ccb7d1cb2_703x1002.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Satya Nadella, CEO at Microsoft</strong></h4><ul><li><p>The ultimate measure of AI shouldn&#8217;t be intelligence or AGI - it should be the amount of economic growth that AI can drive</p><ul><li><p>He doesn&#8217;t believe in anthropomorphizing AI (i.e. giving it human traits) - AI is just a tool</p></li></ul></li><li><p>Be open minded that the last big algorithm breakthrough in AI is not done - LLMs are not the end, fundamental AI research still matters</p></li><li><p>AI isn&#8217;t going to take away software engineering jobs - instead, the traditional SWE role would change to something like <a href="https://blog.palantir.com/a-day-in-the-life-of-a-palantir-forward-deployed-software-engineer-45ef2de257b1">&#8220;Forward Deployed Software Engineer&#8221; (FDSE)</a>, a role pioneered by Palantir</p><ul><li><p>In the past, typist (someone that uses the typewriter) was a job - now everyone does it. Software engineering will become like that too</p></li></ul></li><li><p>The most important factors in AI deployment are going to be: Privacy (for individuals), Security (for organizations), and Sovereignty (for countries)</p></li><li><p>Microsoft&#8217;s breakthrough in Quantum computing is massive - they have finally solved for a stable Q-bit</p><ul><li><p>Today, AI is helping make Quantum computing better. In the future, Quantum computing will enable better AI</p></li></ul></li><li><p>Access to copilot has been the best intervention ever in the field of education, making it the one domain that Satya is watching out for</p></li><li><p>One lesson he learnt in his career: Do every job like it&#8217;s the greatest job you ever had - don&#8217;t wait for your next promotion</p></li><li><p>His favorite question while hiring: Describe how you managed a project that was going nowhere - a good answer would highlight three key skills:</p><ul><li><p>Can you solve a problem you are faced with</p></li><li><p>Can you bring clarity to an uncertain situation</p></li><li><p>Can you enable a team to work together</p></li></ul></li><li><p>Advice to anyone building products: Build something that makes you feel empowered</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZH7V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZH7V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZH7V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZH7V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZH7V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZH7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg" width="1456" height="1202" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1202,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:398649,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZH7V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZH7V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZH7V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZH7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e34ceaf-cb7b-481a-a4b3-fd557bbd1ed2_1536x1268.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Aravind Srinivas, CEO and Co-Founder of Perplexity AI</strong></h4><ul><li><p>Perplexity&#8217;s next big bet is the browser - agents are going to be like the different open tabs you have right now</p><ul><li><p>They have partnerships with a lot of websites to make this work</p></li></ul></li><li><p>Triaging and fixing bugs is an important skill, even as a CEO</p></li><li><p>You can&#8217;t strategize your way to success - any smart idea will get copied. You just have to work incredibly hard</p></li><li><p>Competition is a great thing, because it tells you that something is worth doing</p></li><li><p>He started perplexity without a clear idea of what to do - founders are advised against this, but it is important to just start something</p></li><li><p>Competing with ChatGPT is hard; competing with Google is easy</p></li><li><p>AI apps have not figured out how to have network effects yet</p></li><li><p>Perplexity&#8217;s profit margins will never be as high as Google - no company will have such profit margins anymore</p></li><li><p>Whenever he feels like failing, he goes to <a href="https://www.youtube.com/watch?v=8P8UKBAOfGo">Elon Musk&#8217;s video about failure</a></p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U81M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U81M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 424w, https://substackcdn.com/image/fetch/$s_!U81M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 848w, https://substackcdn.com/image/fetch/$s_!U81M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!U81M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U81M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg" width="1456" height="1244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1244,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354515,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U81M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 424w, https://substackcdn.com/image/fetch/$s_!U81M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 848w, https://substackcdn.com/image/fetch/$s_!U81M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!U81M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d1758c-5535-49c8-8438-1414232a0a9f_1536x1312.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Fei Fei Li, Stanford Researcher, the godmother of AI (created Imagenet)</strong></h4><ul><li><p>She started with a simple goal: How to make machines see. The lack of data to solve this led to the Imagenet dataset.</p></li><li><p>Alexnet was a big AI breakthrough, but it was also a big hardware breakthrough - it was the first time two GPUs were put together to run a workload</p></li><li><p>A lot of her research draws inspiration from the evolution of the human brain - her new venture World Labs aims to solve the problem of Spatial Intelligence</p><ul><li><p>Language is purely generative - it does not come from nature. So language alone cannot approximate the world, and get us to AGI</p></li></ul></li><li><p>She pursued her early research with newer professors in the field - taking such risks matters</p></li><li><p>Graduate school is a place where you can be purely driven by curiosity. But if you are running a startup, you won&#8217;t have that freedom</p></li><li><p>She was an immigrant at spent her 20s running a laundromat. Her advice to anyone feeling like a minority: <strong>Develop an ability not to over-index on it. Gradient-Descent your way to success.</strong></p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a36O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a36O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 424w, https://substackcdn.com/image/fetch/$s_!a36O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 848w, https://substackcdn.com/image/fetch/$s_!a36O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 1272w, https://substackcdn.com/image/fetch/$s_!a36O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a36O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png" width="703" height="843" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:843,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:796793,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a36O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 424w, https://substackcdn.com/image/fetch/$s_!a36O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 848w, https://substackcdn.com/image/fetch/$s_!a36O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 1272w, https://substackcdn.com/image/fetch/$s_!a36O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb9b392-ccc0-4207-9881-319ca2c29196_703x843.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Andrej Karpathy, Former Director of AI, Tesla</strong></h4><ul><li><p>This is the third big shift in software - today&#8217;s engineer should be fluent in all three</p><ul><li><p>SW 1.0: Code (to program computers)</p></li><li><p>SW 2.0: Weights (to program neural networks)</p></li><li><p>SW 3.0: Prompts (to program LLMs)</p></li></ul></li><li><p>LLM Analogy 1: It is like a utility (ex. electricity)</p><ul><li><p>Building the grid is like training, but instead of serving electricity, it serves intelligence</p></li><li><p>Your access is metered (cost per token)</p></li><li><p>There are few big providers to switch between</p></li><li><p>When an LLM goes down, it feels like a power outage</p></li></ul></li><li><p>LLM Analogy 2: It is like a fab</p><ul><li><p>The capex to train is huge</p></li><li><p>Each model has it&#8217;s own secret recipe (like TSMC/Intel do)</p></li><li><p>Some users go fabless (use general purpose Nvidia GPUs); others manufacture in-house (like Google TPUs)</p></li></ul></li><li><p>LLM Analogy 3: It is like an OS</p><ul><li><p>There are closed and open ecosystems (like Windows vs Linux)</p></li><li><p>Different applications can be built on top of them</p></li><li><p>Easy to pirate (Once trained, cloning an LLM models is like stealing a CD for Windows)</p></li></ul></li><li><p>LLM Analogy 4: They mimic human psychology</p><ul><li><p>Hallucinations</p></li><li><p>Jagged intelligence</p></li><li><p>Anterograde amnesia</p></li></ul></li><li><p>Unlike most breakthroughs in computing, which started with defense or government contracts, (HDLs too, as <a href="https://chipinsights.substack.com/p/evolution-of-hdls-part-1-the-birth">I covered in one of my posts</a>.) LLMs started with consumers - which is something very new for the computing industry</p></li><li><p>AI will support different levels of autonomy</p><ul><li><p>Augmentation (like code/image generators)</p></li><li><p>Partial autonomy apps - like Github copilot/Cursor (coding), Perplexity (search)</p></li><li><p>Full autonomy - we are not there yet</p></li></ul></li><li><p>All software is going to at least be partially autonomous: So build interfaces for LLMs, not humans</p><ul><li><p>For example, product documentation should have markdown in addition to plain text/images - LLMs can access them more easily</p></li><li><p>Operator is a great way to control a computer - but it is too expensive to use for everything - so in the near future, we need better LLM interfaces</p></li></ul></li><li><p>Karpathy first rode a fully autonomous car in 2013. Yet, we still don&#8217;t have full self driving. That&#8217;s because there is always a big gap between demo and product</p><ul><li><p>Don&#8217;t think of it as the year of Agents, think of it as the decade of Agents</p></li></ul></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FJx-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FJx-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FJx-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FJx-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FJx-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FJx-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg" width="1326" height="1045" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1045,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188321,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166495196?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!FJx-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FJx-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FJx-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FJx-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3468ce7-289c-486f-9f9c-373547bc86cb_1326x1045.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Andrew Ng, one of the greatest AI educators</strong></h4><ul><li><p>Execution speed is one of the strongest predictor of a startup&#8217;s success</p></li><li><p>Today, the biggest opportunity in AI is at the application level - not at the model, cloud or chip level</p><ul><li><p>Specifically, a new agentic orchestration layer is forming - every application would need this</p></li></ul></li><li><p>Vague ideas are always seen as right, but are always wrong. With concrete ideas, you get clear feedback about right or wrong.</p></li><li><p>The ratio of product managers to engineers will change in the near future</p><ul><li><p>Today, on average, we have 4 engineers per product manager</p></li><li><p>In the future, there would be 2 product managers for each engineer</p></li><li><p>So as an engineer today, it is important to have better product instinct</p></li></ul></li><li><p>Think of building AI products like building a structure with Legos</p><ul><li><p>The more blocks (i.e. underlying libraries, models, and so on) that you have, the better your outcome would be</p></li></ul></li><li><p>AI will push the speed of building products by 10x, so moats will not exist anymore. Brands will be more defensible in the future.</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SbzI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SbzI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SbzI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SbzI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SbzI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SbzI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg" width="1456" height="1453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1453,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:436968,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!SbzI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SbzI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SbzI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SbzI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F083b4cea-d105-46c9-ab5f-3216f25505b9_1536x1533.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>John Jumper, Distinguished Scientist at Google DeepMind, and Nobel Prize winner</strong></h4><ul><li><p>Why AlphaGo won?</p><ul><li><p>They had the same public data as everyone</p></li><li><p>They used a 128 core TPU to run experiments (which is underwhelming compared to today&#8217;s LLMs)</p></li><li><p>It was all about ideas from the team - that made the difference</p></li></ul></li><li><p>Trust is built through word of mouth - put your work out there and get feedback</p></li><li><p>To publish papers in academia, you need ideas that work and are also beautiful. In industry, you just need a working idea</p></li><li><p>To build a low cost AI product: think about how you can reduce the cost of failed ideas</p></li><li><p>Narrow AI systems will win out eventually (this is different from what Jared Kaplan said)</p></li><li><p>It&#8217;s easy to come up with dogma - instead, be ruthless and empirical</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KpNK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KpNK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KpNK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KpNK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KpNK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KpNK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg" width="1456" height="1011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1011,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89916,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166495196?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KpNK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KpNK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KpNK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KpNK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617a2a52-c155-4358-a046-6af29d2b56be_1536x1067.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Chelsea Finn, Assistant Professor at Stanford, Co-Founder of Physical Intelligence</strong></h4><ul><li><p>In traditional robotics, a robot is trained to function in very specific environments. But the goal of her new company is different - Build a robot to do anything</p></li><li><p>For LLMs, scale is the most important - more data + GPUs usually means better models. But to build robots, we need the right kind of data - with sufficient diversity</p></li><li><p>In her talk, she walked us through the steps they followed to train a laundry folding robot</p><ul><li><p>But none of the steps followed were specific to laundry folding - they just involved a gradual increase in difficulty level - this can apply to any task</p></li></ul></li><li><p>The foundational models used to train such general robots is called a Vision Language Model (VLM). It works like this:</p><ul><li><p>The robot processes user input along with vision input from cameras</p></li><li><p>The VLM uses this data to generate language commands describing how the robot should respond</p></li><li><p>These language commands are used to control the robot</p></li></ul></li><li><p>To make their robots more robust and handle open ended prompts - the same VLMs were used to generate synthetic prompts, and these prompts were used to train the VLM</p></li><li><p>She believes general purpose robotics will be more successful than purpose built robots, since the foundational VLMs will keep getting better</p><ul><li><p>This was a lot like what Jared Kaplan from Anthropic mentioned in Day 1 about LLMs</p></li></ul></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!570e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!570e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 424w, https://substackcdn.com/image/fetch/$s_!570e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 848w, https://substackcdn.com/image/fetch/$s_!570e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!570e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!570e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg" width="1456" height="1236" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1236,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:190058,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!570e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 424w, https://substackcdn.com/image/fetch/$s_!570e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 848w, https://substackcdn.com/image/fetch/$s_!570e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!570e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee897158-450a-4e32-b828-d06535f38183_1536x1304.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Jared Kaplan, Co-Founder and CSO at Anthropic</strong></h4><ul><li><p>The time taken for a human to do the same task and AI can do is doubling every 7 months - this is like Moore&#8217;s law.</p></li><li><p>Scaling laws will continue to grow - if teams find that scaling laws are failing, it means their training methodology is flawed.</p></li><li><p>To prepare for an AI future:</p><ul><li><p>Start building technology that doesn&#8217;t work now - by the time you are done, AI would have caught up (similar to chip designers using Moore&#8217;s law)</p></li><li><p>Use AI to integrate AI - this is the only way to keep up</p></li></ul></li><li><p>There are two types of tasks</p><ul><li><p>Tasks that can be done with 70-80% accuracy - AI already excels at these</p></li><li><p>Tasks that need 100% accuracy - this will be solved by future AI</p></li></ul></li><li><p>The real value of AI will come in knowledge tasks that needs us to put information from different sources together - like Biology</p></li><li><p>When integrating AI into existing businesses, one needs to think carefully about the bigger picture - for example, when the electric motor was invented, it was not used to make the steam engine better - instead, an electric engine was redesigned.</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8bEy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8bEy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8bEy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8bEy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8bEy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8bEy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg" width="1456" height="1516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1516,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:364291,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166495196?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!8bEy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8bEy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8bEy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8bEy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2339402e-e64e-447f-b0c5-6c67fd0a05cd_1536x1599.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Varun Mohan, CEO and Co-Founder of Windsurf</strong></h4><p>Personally, I loved this talk - Varun walked in with no slides, and simply had a candid conversation with the audience.</p><ul><li><p>His first company was Exafunction - which build GPU virtualization software</p><ul><li><p>It was quite successful and was used by a lot of autonomous vehicle companies</p></li><li><p>Their USP was to abstract away underlying hardware architectures - but with Nvidia gaining dominance, they felt this application wasn&#8217;t valuable. So they pivoted</p></li></ul></li><li><p>They came up with Codium, a Github co-pilot alternative. Later, this became Windsurf, an agentic IDE.</p></li><li><p>His advice to founders: Be irrationally optimistic, but uncompromisingly realistic</p></li><li><p>To stay ahead of the curve, build products where 50% of the ideas don&#8217;t work today - by the time you finish, AI would have caught up and everything will work</p></li><li><p>The reason startups win over big companies is: startups are desperate, if they fail, the company dies</p></li><li><p>Strategic moats and switching costs are dying - don&#8217;t go by traditional VC advice</p></li><li><p>There are a lot of companies in the world that are still technology starved - this is your opportunity</p></li><li><p>When asked how he manages the stresses of being a founder, he said: &#8220;I don&#8217;t manage it. There is no way to escape it. If you fail, just get up and keep going.&#8221;</p></li></ul><div><hr></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y1WY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y1WY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Y1WY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Y1WY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Y1WY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y1WY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg" width="766" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:624,&quot;width&quot;:766,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186144,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chipinsights.substack.com/i/166131675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y1WY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Y1WY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Y1WY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Y1WY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f9f404-df06-4b2f-81d1-6e526be6eea4_766x624.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Francois Chollet, CEO and Co-Founder of Ndea (also the creator of Keras)</strong></h4><ul><li><p>If we have tasks that humans do that AI cannot - that means we do not have AGI</p></li><li><p>Scaling laws will not get us to AGI (Contrary to what to Sam Altman and Jared Kaplan said, actually)</p></li><li><p>There are two types of data abstraction</p><ul><li><p>1. Value centric - abstraction in the continuous domain</p></li><li><p>2. Program centric - abstraction in the discrete domain</p></li><li><p>Today&#8217;s AI like transformers work well in the continuous domain. But for AGI, we need AI that can handle both domains</p></li></ul></li></ul><div><hr></div><p></p><h4><strong>Suhail Doshi, serial entrepreneur (Mixpanel, Mighty Computing, and Playground AI)</strong></h4><ul><li><p>AI will have a second movers advantage - be confident if you want to build consumer AI applications even today</p></li><li><p>The world will soon enter mass amateurization: what an expert can do today, will be done by AI soon. With agents, these tasks can be done continuously for years</p></li><li><p>Don&#8217;t just focus on AI applications that give immediate feedback - like Chatbots. Consumers are ready to wait for hours if they get value out of AI</p></li><li><p>To identify opportunities, think about &#8220;what-ifs&#8221; in the future. For example:</p><ul><li><p>What if nobody drives a car</p></li><li><p>What if everyone has a personal robot</p></li><li><p>What if we can never say what&#8217;s real</p></li></ul></li><li><p>Recommended reading: <a href="https://andrewchen.com/the-next-feature-fallacy-the-fallacy-that-the-next-new-feature-will-suddenly-make-people-use-your-product/">https://andrewchen.com/the-next-feature-fallacy-the-fallacy-that-the-next-new-feature-will-suddenly-make-people-use-your-product/</a></p></li></ul><div><hr></div><p></p><h4><strong>Jordan Fisher, CEO at Standard AI</strong></h4><ul><li><p>Everyone says focus is important. But if you are running your own company, you need to focus on a lot of different things. It&#8217;s not easy.</p></li><li><p>If you are building something today, build it assuming AGI is coming in 2 years</p></li><li><p>There will be a big difference between products built as &#8220;AI first&#8221;, vs existing products that retrofit AI</p></li><li><p>There are many open questions about the AI-centric world we are entering</p><ul><li><p>Will software become a commodity? Do you only need product managers?</p></li><li><p>What&#8217;s the point of downloading an app if you can generate an app on demand?</p></li><li><p>How can users ensure an AI agent is right if everything happens under the hood?</p></li></ul></li><li><p>Some companies will have an advantage in the AI era</p><ul><li><p>Companies with data and data creation opportunities (Meta, Reddit)</p></li><li><p>Companies with secret recipes (like TSMC, ASML)</p></li></ul></li></ul><div><hr></div><p>I hope you found my notes to be useful, especially if you were not able to make it to the event. Many of these talks were also recorded, and I urge readers to check them out here: <a href="https://events.ycombinator.com/ai-sus">https://events.ycombinator.com/ai-sus</a></p><p>As usual, please share this post with someone that it might benefit. And subscribe to stay tuned for upcoming posts.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chipinsights.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Chip Insights! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item></channel></rss>