<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Automagic Musings &#187; Computing</title>
	<atom:link href="http://hewo.xedoloh.com/category/computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://hewo.xedoloh.com</link>
	<description>I know code fu.</description>
	<lastBuildDate>Sun, 16 Oct 2011 23:19:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Processor Basics</title>
		<link>http://hewo.xedoloh.com/2011/10/processor-basics/</link>
		<comments>http://hewo.xedoloh.com/2011/10/processor-basics/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 23:17:22 +0000</pubDate>
		<dc:creator>wbic16</dc:creator>
				<category><![CDATA[Computing]]></category>

		<guid isPermaLink="false">http://hewo.xedoloh.com/?p=88</guid>
		<description><![CDATA[I ran across a post today that begged for a couple of answers. The Question What I don&#8217;t understand is why there&#8217;s such reluctance towards making the die bigger. I understand the benefits of making the process smaller, but there &#8230; <a href="http://hewo.xedoloh.com/2011/10/processor-basics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I ran across a post today that begged for a couple of answers.</p>
<h1>The Question</h1>
<blockquote><p>What I don&#8217;t understand is why there&#8217;s such reluctance towards making the die bigger. I understand the benefits of making the process smaller, but there has to be a limit somewhere, and it would seem easier/more cost effective to just make the die bigger. Who&#8217;s idea was it to have this completely arbitrary general die size and attempt to always stuff more transistors onto it?</p>
<p>If you have a 5mm x 5mm die with 500 million 90nm transistors, you can either halve the process size to 45nm to get 1 billion transistors or you could just double the die size to 10mm x 10mm&#8230; Aside from heat and power consumption, why wouldn&#8217;t that work?</p></blockquote>
<h1>Answers</h1>
<p>Let&#8217;s start with the assumptions:</p>
<ol>
<li>Die Size is &#8220;completely arbitrary&#8221;: <strong>false</strong>.</li>
<li>It would be more cost-effective to make larger dies: <strong>false</strong>.</li>
<li>There is a reluctance to making the die bigger: <strong>false</strong>.</li>
<li>There has to be a limit to transistor feature size: <strong>true</strong>.</li>
<li>It would be easier to make larger dies for a given design: <strong>false</strong>.</li>
<li>Halving the process from 90 nm to 45 nm would double transistor count: <strong>false</strong>.</li>
<li>&#8220;Doubling&#8221; the die size from 5 mm x 5 mm to 10 mm x 10 mm would double the transistor count: <strong>false</strong>.</li>
<li>The poster understands the benefits of making the process smaller: <strong>false</strong>.</li>
<li>&#8220;Someone&#8221; decided to make die size consistent: <strong>true</strong>.</li>
</ol>
<p><img src="/wp-content/uploads/2011/10/processor_basics.png" title="Die size is not arbitrary!" /></p>
<h2>Die Size is Not Arbitrary</h2>
<p>Processors are manufactured by etching features into large wafers measuring approximately 100 nm to 300 mm in diameter.  Intel Samsung, and TSMC announced a <a href="http://arstechnica.com/hardware/news/2008/05/intel-samsung-tsmc-to-hold-hands-and-jump-to-new-wafer-size.ars">transition to 450 mm</a> wafers in 2008.  The equipment required to work with wafers dominates whether or not it is economically feasible to increase wafer size.  As we will see below, decreasing die size reduces waste and improves yield.  So manufacturers have significant pressure to reduce die size.</p>
<h3>Constraints on Wafer Size</h3>
<ol>
<li>Wafers are circular.</li>
<li>Standard wafer size as of 2011 is 300 mm in diameter</li>
<li>Wafer Area: 70,686 mm^2 (pi x (300/2 mm)^2)</li>
<li>Equipment for etching wafers is expensive (measured in billions of dollars).</li>
<li>Standardizing on wafer size allows manufacturers to control costs.</li>
</ol>
<h3>Constraints on Die Size</h3>
<ol>
<li>Processor dies are square.</li>
<li>Large dies waste more surface area for a given wafer.</li>
<li>1 Huge Die: A 300 mm wafer can fit a single large die of 45,000 mm.</li>
<li>The wafer has 70,685 mm^2 available area, so this results in a waste of <strong>36.3 percent</strong>.</li>
<li>A 16&#215;16 mm die has 256 mm^2 area.</li>
<li>We can fit 240 256-mm^2 dies onto a single 300 mm wafter (4&#215;4 + 4&#215;8 + 4&#215;12 + 12&#215;12).</li>
<li>240 Dies: Requires 61,440 mm^2, which results in a waste of <strong>13.1 percent</strong>.</li>
</ol>
<p><strong>Result:</strong> You can approximate a circle more effectively with smaller dies, resulting in fewer wasted materials.</p>
<p><img src="/wp-content/uploads/2011/10/240-die-wafer.png" title="240-die Wafer" /></p>
<h3>Yields</h3>
<ol>
<li>The analysis above assumes perfect manufacturing.  This is not realistic.</li>
<li>In the case of the single large die any imperfection will cause the entire chip to fail.</li>
<li>Define the probability of a surface defect as 0.01% per mm^2 etched (just for illustrative purposes).</li>
</ol>
<h3>Single-Die Wafer</h3>
<p>Continuing the example above, we etch 45,000 mm^2 to create our monolithic chip.  Unfortunately, our error rate in etching dooms us to failure.  On average we expect to find 4.5 errors per chip etched and any error results in a wasted chip.  This means our etching process will produce chips with a 100 percent failure rate.</p>
<ol>
<li>45,000 mm^2 x 0.0001 / mm^2 = 4.5 errors per wafer</li>
<li>1 bad die per wafer / 1 die per wafer = 100% failure rate</li>
</ol>
<h3>240-Die Wafer</h3>
<p>This scenario is much more realistic.  For a 256-mm^2 chip we observe an overall failure rate of 2.9% for the <em>same manufacturing hardware</em>.  Clearly smaller dies are much more economical.  The worst-cast scenario is when each error occurs in a separate die (multiple errors per die are actually better for our chip failure rate).  At most 7 dies will fail.</p>
<ol>
<li>61,440 mm^2 x 0.0001 / mm^2 = 6.1 errors per wafer</li>
<li>7 bad dies per wafer / 240 dies per wafer = 2.9% failure rate</li>
</ol>
<p><strong>Result:</strong> Smaller dies reduce the impact of etching defects, resulting in higher yields.</p>
<h2>Larger Dies Are Not More Economical</h2>
<p>For a given wafer size, decreasing die size improves both yield and cost.  Increasing die size reduces yield.  A manufacturing process with 99.99% reliability will fail to produce a working 45,000 mm^2 chip 100% of the time.  The same process will produce working 256-mm^2 chips 97.1% of the time.</p>
<h2>The industry has increased both die and wafer size</h2>
<ol>
<li>Die size has been increasing over time.</li>
<li>According to Wikipedia, the die size of the Intel 4004 chip was 12 mm^2.</li>
<li>The first Pentium was 294 mm^2.</li>
<li>Since then it seems Intel has tried to keep die size under 300 mm^2 as a cost-savings measure.</li>
<li>Intel and other manufacturers are currently transitioning to 450 mm wafers, but retooling is expensive.</li>
<li>The increase in die area between the Pentium and the 4004 was <strong>24-fold</strong>.</li>
<li>The increase in transistor count between the Pentium and the 4004 was <strong>1,347-fold</strong>.</li>
<li>Pentium transistor density: 3,100,000 transistors / 294 mm^2 = 10,544 transistors per mm^2</li>
<li>4004 transistor density: 2,300 transistors / 12 mm^2 = 192 transistors per mm^2</li>
<li>Increase in transistor density: 10544/192 = <strong>54.9-fold</strong></li>
</ol>
<p><strong>Result:</strong> Overall chip size measured in transistor count, physical size, and transistor density has been increasing since the introduction of the Intel 4004.</p>
<h2>The Limit to CMOS Feature Size is About 5 nm</h2>
<p><img src="/wp-content/uploads/2011/10/Intel-22nm_Transistor.jpg" title="Intel 22nm tri-gate transistors" /></p>
<ol>
<li>Individual atoms measure in picometers &#8211; about 100 to 500 &#8211; or 0.1 to 0.5 nm.</li>
<li>Individual transistors need at least 10 atoms to function.</li>
<li>10 x 0.5 nm = 5 nm is the minimum feature size for transistors to function</li>
<li>Further improvements require a new class of computation device (1+ transistors per atom instead of atoms per transistor)</li>
</ol>
<p><strong>Result:</strong> Without fundamental improvements in design, we will not be able to scale transistors smaller than 5 nm.</p>
<h1>Math Background on Chip Fabrication</h1>
<h2>Doubling in 2D</h2>
<p>Whenever we work in two dimensions we have to be careful by what we mean when we say &#8220;double&#8221;.  If you double the area of a square, you only increase the length of each side by a factor of about 1.414 (since 1.414 x 1.414 = 1.99396).  If instead we double the length of each side, then we are quadrupling the area!</p>
<h3>Doubling Die Dimensions</h3>
<ol>
<li>In the example above, we have a mythical CPU with 500e6 transistors packed into a 25 mm^2 area.</li>
<li>This results in a 20e6 / mm^2 transistor density.</li>
<li>&#8220;Doubling&#8221; the die size results in an area of 100 mm^2.</li>
<li>(20e6 / mm^2) * 100 mm^2 = 2e9</li>
<li>Packing transistors at the same density results in a CPU with <strong>2 billion</strong> transistors (4x the original).</li>
</ol>
<p><strong>Result:</strong> Doubling die dimensions quadruples transistor count and die area.</p>
<h3>Halving Feature Size</h3>
<ol>
<li>In the case of halving the feature size from 90 nm to 45 nm we see a similar effect.</li>
<li>Note that feature size is generally not transistor size &#8211; but it should be proportional given the same design.</li>
<li>90 nm x 90 nm = 8100 nm^2.</li>
<li>45 nm x 45 nm = 2025 mm^2.</li>
<li>Size difference between 90 nm and 45 nm transistors = 8100 / 2025 = 4.</li>
<li>90 nm CPU: 25 mm^2 / (8100 nm^2) = 3e9 elements maximum</li>
<li>45 nm CPU: 25 mm^2 / (2025 mm^2) = 1.2e10 elements maximum</li>
<li>The ratio of transistors to the limit imposed by feature size should match.</li>
<li>90 nm CPU: 500e6 / 3e9 = 0.1667 &#8211; this is our ratio</li>
<li>45 nm CPU @ 1 billion transistors: 1e9 / 1.2e10 = 0.0833 &#8211; this is <strong>not our ratio</strong>!</li>
<li>45 nm CPU @ 2 billion transistors: 2e9 / 1.2e10 = 0.1667 &#8211; matches!</li>
</ol>
<p><strong>Result:</strong> Halving feature size quadruples transistor count for a given die size.</p>
<h2>Sources</h2>
<ol>
<li>The Question Source: <a href="http://www.overclock.net/general-processor-discussions/802618-nanometer-processor-picometer-processor.html">http://www.overclock.net/general-processor-discussions/802618-nanometer-processor-picometer-processor.html</a></li>
<li>Intel Wafer: <a href="http://download.intel.com/pressroom/images/centrino/Wafer_V2.tif">http://download.intel.com/pressroom/images/centrino/Wafer_V2.tif</a></li>
<li>Intel Transistor Counts: <a href="http://www.intel.com/pressroom/kits/events/moores_law_40th/">http://www.intel.com/pressroom/kits/events/moores_law_40th/</a></li>
<li>Chart of Transistor Count: <a href="http://download.intel.com/pressroom/images/events/moores_law_40th/Transistor_Count_bar_chart.jpg">http://download.intel.com/pressroom/images/events/moores_law_40th/Transistor_Count_bar_chart.jpg</a></li>
<li>Wafer Size: <a href="http://arstechnica.com/hardware/news/2008/05/intel-samsung-tsmc-to-hold-hands-and-jump-to-new-wafer-size.ars">http://arstechnica.com/hardware/news/2008/05/intel-samsung-tsmc-to-hold-hands-and-jump-to-new-wafer-size.ars</a></li>
<li>Wikipedia Transistor Count: <a href="http://en.wikipedia.org/wiki/Transistor_count">http://en.wikipedia.org/wiki/Transistor_count</a></li>
<li>CMOS Scale Limit: <a href="http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F4531469%2F4539996%2F04540004.pdf%3Farnumber%3D4540004&#038;authDecision=-203">http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F4531469%2F4539996%2F04540004.pdf%3Farnumber%3D4540004&#038;authDecision=-203</a></li>
<li>Atom Length: <a href="http://hypertextbook.com/facts/MichaelPhillip.shtml">http://hypertextbook.com/facts/MichaelPhillip.shtml</a></li>
<li>10-Atom Transistor: <a href="http://discovermagazine.com/2009/jan/051">http://discovermagazine.com/2009/jan/051</a></li>
<li>Intel i7 Launch Materials: <a href="http://www.intel.com/pressroom/archive/releases/2008/20081117comp_sm.htm">http://www.intel.com/pressroom/archive/releases/2008/20081117comp_sm.htm</a></li>
<li>Core i7 Die Image: <a href="http://download.intel.com/pressroom/kits/corei7/images/Nehalem_Die_Shot_3.jpg">http://download.intel.com/pressroom/kits/corei7/images/Nehalem_Die_Shot_3.jpg</a></li>
<li>Transistor Image: <a href="http://www.intel.com/newsroom/kits/22nm/gallery/gallery.htm">http://www.intel.com/newsroom/kits/22nm/gallery/gallery.htm</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://hewo.xedoloh.com/2011/10/processor-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analogs and Parallels</title>
		<link>http://hewo.xedoloh.com/2008/01/analogs-and-parallels/</link>
		<comments>http://hewo.xedoloh.com/2008/01/analogs-and-parallels/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 09:32:06 +0000</pubDate>
		<dc:creator>wbic16</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[Chandler]]></category>
		<category><![CDATA[chat bot]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[CWEB]]></category>
		<category><![CDATA[everything-including-the-kitchen-sink]]></category>
		<category><![CDATA[Knuth]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[reality]]></category>
		<category><![CDATA[turing test]]></category>

		<guid isPermaLink="false">http://hewo.xedoloh.com/?p=16</guid>
		<description><![CDATA[I&#8217;ve been reading a book titled Dreaming in Code recently, which is a rather extensive case study of the development of an open-source project named Chandler. Many of the lessons and references to programming in general have hit home with &#8230; <a href="http://hewo.xedoloh.com/2008/01/analogs-and-parallels/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading a book titled <u>Dreaming in Code</u> recently, which is a rather extensive case study of the development of an open-source project named Chandler.  Many of the lessons and references to programming in general have hit home with my experience.  Things like the fact that many programmers would rather program than <em>eat or sleep</em>.  In fact it is 3:13 AM right now and I&#8217;ve been reading a bit about Knuth&#8217;s Literate Programming effort &#8211; something that I am sad to say that I don&#8217;t know nearly enough about.  Evidently the faculty at UNL doesn&#8217;t put much stock in his CWEB language.  Or at least not at the under-graduate level.  Either way, I&#8217;ve never written a program using it.</p>
<p>I often wonder what the distinction between mere random behavior and intelligence is.  Good ideas are usually born from the ashes of old ideas (formulas, conjectures, and theorems in the parlance of mathematics).  Two un-related ideas can be combined in a moment of ingenuity into something awesome.  I do not believe in pre-determination or true chance.  But of course, you would expect me to say that.</p>
<p>I started a post a while back (which I haven&#8217;t finished yet) named &#8220;Semantic Comments.&#8221;  When I happened to come across Knuth&#8217;s Literate Programming effort earlier this morning, I was struck by a sense of deja-vu but with a twist.  Knuth strives to define meaning in English &#8211; a language accessible only to humans.  I would prefer to define meaning in terms accessible to both humans and machines.  It bothers me that comments are seen as an after-thought &#8211; something that the computer shouldn&#8217;t have to deal with.  It just seems that we lack the precision to express our thoughts accurately.</p>
<p>I started this post with the desire to discuss the Turing Test and online chat bots.  Somehow in the last 50 years, despite rapid improvements in memory and processor speeds, a truly intelligent conversation with a machine still eludes us.  Some people, like Ray Kurzweil, would argue that we just haven&#8217;t reached a sufficient point of maturity in hardware to emulate human brains.  Why must we resort to emulation, however?  Are we not clever enough to figure out a solution without reverse-engineering ourselves?</p>
<p>Anyone who has spent more than 30 seconds with a modern chat bot will clearly notice a complete lack of depth.  Projects like A.L.I.C.E. can seem to be responsive and mildly entertaining, but there is a definite sense that you are talking to a brick wall.  My gut feeling is that people who write chat bots focus too much on the details.  The bot has to be able to remember your name, or parse a sentence like &#8220;I hate you&#8221; and respond with a quip.  Where do these requirements come from?  In their effort to write a &#8220;convincing&#8221; chat bot, these authors miss the point: creating an intelligent system that can <em>think</em> and <em>respond</em> to your actions.</p>
<p>If I write 2+2=4, most anyone with a basic education will understand what I mean.  Language is built upon successive levels of knowledge &#8211; all starting with interpretations of the real world.  We know what the word &#8220;Apple&#8221; means depending upon the context.  But constructing a chat bot is inherently out of context.  It would be as though someone stuck you in a dark room and translated Chinese to you one word at a time and gave you no access to the external world.</p>
<p>So rather than focus on the arcane methods of sentence parsing and learning models, perhaps what chat bots need is a good dose of reality.  Nothing less than a whole solution will suffice.  You can&#8217;t eat Chinese food with a toaster.</p>
]]></content:encoded>
			<wfw:commentRss>http://hewo.xedoloh.com/2008/01/analogs-and-parallels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

