<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7258635</id><updated>2011-10-23T06:55:24.696-07:00</updated><title type='text'>BitGrid - brilliant, or waste of time??</title><subtitle type='html'>Wherein Mike Warot describes a novel approach to computing which follows George Gilders &lt;a href="http://www.wired.com/wired/archive/1.04/gilder_pr.html"&gt;call to waste transistors&lt;/a&gt;.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7258635.post-6896231208532533949</id><published>2010-10-28T08:23:00.000-07:00</published><updated>2010-10-28T08:23:42.735-07:00</updated><title type='text'>Applications - image processing,  survey plane</title><content type='html'>One of the long term issues with having a technology, which should be much more powerful than existing hardware is finding an appropriate use scenario for it. &amp;nbsp;Today one&amp;nbsp;occurred&amp;nbsp;to me on my commute.&lt;br /&gt;&lt;br /&gt;I've been doing a lot of experimenting with synthetic focus imagery. Having recently written a tool to help me do image matching, I've begun to appreciate why Hugin gets so bogged down generating and matching control points. The cross correlation of 2d image sets is a huge resource hog. Fortunately, the bitgrid &amp;nbsp;should be quite capable of handling it, because the computations are data local, with the only global data being the source material which loads once per frame, and the output maximum coordinates, again once per frame.&lt;br /&gt;&lt;br /&gt;I imagine a remote control glider with a pair (latter an array) of cameras feeding into a system which correlates the images to generate altitude data. It should be possible once this 2d triangulation is done, with hints from the navigation system, to then generate a 3d image of the area below, with altitude information at least as accurate as the pixel resolution allows.&lt;br /&gt;&lt;br /&gt;If the plane is slow and stable enough to allow multiple overlapping images of the same area, it should be possible to derive super-resolution images using Richardson-Lucy deconvolution.&lt;br /&gt;&lt;br /&gt;It all hinges on the question of power consumption of a single bitgrid cell. Something I don't know, but an experienced IC designer should be able to figure out on his lunch break.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-6896231208532533949?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/6896231208532533949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=6896231208532533949' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/6896231208532533949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/6896231208532533949'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/10/applications-image-processing-survey.html' title='Applications - image processing,  survey plane'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-4153593089780765783</id><published>2010-08-14T06:05:00.000-07:00</published><updated>2010-08-14T06:28:13.062-07:00</updated><title type='text'>Spreadsheet iteration and other linguistic hits</title><content type='html'>I continue to search for ideas that are close to the BitGrid, and I've come across Amir Hersch's mention of the need for a "spreadsheet iterator" in &lt;a href="http://fpgacomputing.blogspot.com/2008/12/more-versus-faster.html"&gt;his blog post&lt;/a&gt;&amp;nbsp;titled "More versus Faster"... the BitGrid would be a good spreadsheet iterator.&lt;br /&gt;&lt;br /&gt;I'm still trying to figure out the cost/benefit ratio of getting rid of all routing in an a real world FPGA device. As an abstraction tool, it's totally cool and cost effective, as there are no static or dynamic power costs in a thought experiment. 8)&lt;br /&gt;&lt;br /&gt;As an intermediate stage of compiling a design, there are time costs in translations, but they &lt;i&gt;might be worth it&lt;/i&gt;&amp;nbsp;when it comes to the ability to move elements of a system design orthogonal to other design decisions.&lt;br /&gt;&lt;br /&gt;Time and persistent effort to get the questions answered will tell. I'm glad I'm still asking questions and pursuing the goal of getting a BitGrid chip built&lt;br /&gt;&lt;br /&gt;Oh... another linguistic hit &amp;nbsp;"hardware spreadsheet" as mentioned &lt;a href="http://fpgacomputing.blogspot.com/2008/09/parallel-programming-is-easy-making.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-4153593089780765783?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/4153593089780765783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=4153593089780765783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/4153593089780765783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/4153593089780765783'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/08/spreadsheet-iteration.html' title='Spreadsheet iteration and other linguistic hits'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-8028508894526211493</id><published>2010-07-27T06:38:00.000-07:00</published><updated>2010-07-27T06:41:14.244-07:00</updated><title type='text'>Reconfigurable Systolic Array</title><content type='html'>I've been searching, and searching, and searching for anything that matches the Bitgrid in architecture... and I've found nothing... today's Google search is &lt;a href="http://www.google.com/search?q=reconfigurable+systolic+array"&gt;reconfigurable systolic array&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I get a lot of results, mostly academic (which means they are behind a paywall, and thus worthless). It does give me a better way to describe the bitgrid, though.&lt;br /&gt;&lt;br /&gt;The bitgrid is a fine grained homogeneous 2d reconfigurable systolic array and/or mesh. It will be verified as to utility by simulation. I hope to popularize it with blogs, social media, and making a game out of it.&lt;br /&gt;&lt;br /&gt;It is my belief that the flexibility of the LUT based approach more than makes up for the lack of dedicated routing and compute blocks. &amp;nbsp;Any inactive elements of the circuit are unclocked, and thus should be at very low power.&lt;br /&gt;&lt;br /&gt;I'm not sure if I'm going to be a good fit for the &lt;a href="http://www.google.com/search?q=omnipresent+high+performance+computing"&gt;OHPC project&lt;/a&gt; or not, I've got until August 6 to write a proposal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-8028508894526211493?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/8028508894526211493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=8028508894526211493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/8028508894526211493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/8028508894526211493'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/07/reconfigurable-systolic-array.html' title='Reconfigurable Systolic Array'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-392524079701862576</id><published>2010-07-09T20:10:00.000-07:00</published><updated>2010-07-09T20:10:22.557-07:00</updated><title type='text'>Prior art - non found... and I've got a headache</title><content type='html'>Every single article I checked trying to find a pure LUT based FPGA had some sort of routing fabric in it.&lt;br /&gt;&lt;br /&gt;I can't find anything that is close to the bitgrid.&lt;br /&gt;&lt;br /&gt;I'm going to try to relax, and wait for the Excedrin to kick in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-392524079701862576?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/392524079701862576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=392524079701862576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/392524079701862576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/392524079701862576'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/07/prior-art-non-found-and-ive-got.html' title='Prior art - non found... and I&apos;ve got a headache'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-5013861364171242893</id><published>2010-07-06T14:48:00.000-07:00</published><updated>2010-07-06T14:48:51.031-07:00</updated><title type='text'>Learning about chip design</title><content type='html'>I really need to find out how much power a BitGrid cell will consume, in order to find out how well it could realistically deliver on the Exascale challenge. This is forcing me to learn all about VLSI design. Thanks to &lt;a href="http://cmosedu.com/"&gt;CMOSedu&lt;/a&gt;, I'm getting up to speed on &lt;a href="http://www.staticfreesoft.com/"&gt;Electric&lt;/a&gt; and &lt;a href="http://www.linear.com/designtools/software/ltspice.jsp"&gt;LTspice&lt;/a&gt; right now. I hope to learn enough to have an answer within an order of&amp;nbsp;magnitude&amp;nbsp;this week. &amp;nbsp;I'm hoping I can get it in the range of 1 pJoule/operation/cell for a naive design. This would allow a 1000x1000 chip to operate at 1 watt at 1 Ghz. &amp;nbsp; I expect static power to be very low.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've got a month until the first DARPA deadline for submissions...&lt;br /&gt;&lt;br /&gt;wish me luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-5013861364171242893?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/5013861364171242893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=5013861364171242893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/5013861364171242893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/5013861364171242893'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/07/learning-about-chip-design.html' title='Learning about chip design'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-1092540118793712344</id><published>2010-07-04T10:53:00.000-07:00</published><updated>2010-07-04T10:54:22.763-07:00</updated><title type='text'>What's required for Exascale</title><content type='html'>I've been watching the google results for the key word "Exascale"... and found this at the bottom of &lt;a href="http://www.genomeweb.com/blog/emergence-exascale"&gt;this article about bioinformatics&lt;/a&gt;. (Emphasis mine)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;And in another opinion piece over at International Science Grid This Week, Irving Wladawsky-Berger, a 37-year IBM veteran, lays out some of the big challenges on the way to achieving exascale computing. Whereas the evolution from terascale to petascale went smoothly using tens to hundreds of thousands of processors from the PC and Unix markets, they will not get us to exascale, writes Wladawsky-Berger. &lt;b&gt;Exascale will require some other kind of major transition in chip architecture, not to mention a completely new programming paradigm&lt;/b&gt;.&amp;nbsp;&lt;/blockquote&gt;&lt;div&gt;Well... that is precisely describes the Bitgrid, or will, once I get the thing built.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-1092540118793712344?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/1092540118793712344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=1092540118793712344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/1092540118793712344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/1092540118793712344'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/07/whats-required-for-exascal.html' title='What&apos;s required for Exascale'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-2735840872593196852</id><published>2010-07-01T13:36:00.000-07:00</published><updated>2010-07-01T13:36:15.171-07:00</updated><title type='text'>SimGrid - Up and running</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_flymo3RHqhY/TCz5xrqlXCI/AAAAAAAAAEI/oVOLlsH5lCU/s1600/SimGrid_Screenshot_20100701.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="384" src="http://2.bp.blogspot.com/_flymo3RHqhY/TCz5xrqlXCI/AAAAAAAAAEI/oVOLlsH5lCU/s640/SimGrid_Screenshot_20100701.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I managed to get a Grid Simulation working.... here is a screenshot of it. I named it SimGrid, and it works in conjunction with Sim01 as a programming tool. First you work out your entry on Sim01 for a single cell, then paste the hex code into the appropriate cell in the Grid. The code to generate it can scale to arbitrary dimensions, limited by the screen and Windows resource handles.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;In this simulation, every cell is loaded with the code required to pass each bit through the cell, and have it emerge on the opposite side. Its a fairly easy way to check for logic flaws in the simulator. Here we see a bit from the left side propagating all the way across to the right.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I feel that it's reasonable to estimate I can emulate an arbitrary grid of these, even as many as 1000x1000 without problem. The problem now is to find a problem domain that is appropriate for the architecture to use as a baseline for performance evaluations. I need to make sure it's going to be quick enough once cast into silicon to have any commercial value. I'm hoping it will be fast enough for the Exaflop realm, but I have to real way to tell at this point in time.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I'm starting to dig around for silicon simulation resources, as well as a place to do fabrication of this as an ASIC should I find funding.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I feel like Tesla probably felt when he got the idea of polyphase power straight in his head.... BitGrid has enormous potential, but now is the time for a lot of blood sweat and tears to make it come into being.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-2735840872593196852?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/2735840872593196852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=2735840872593196852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/2735840872593196852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/2735840872593196852'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/07/simgrid-up-and-running.html' title='SimGrid - Up and running'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_flymo3RHqhY/TCz5xrqlXCI/AAAAAAAAAEI/oVOLlsH5lCU/s72-c/SimGrid_Screenshot_20100701.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-4053816223225591781</id><published>2010-06-30T09:21:00.000-07:00</published><updated>2010-06-30T09:21:58.704-07:00</updated><title type='text'>Unrolling programs instead of loops</title><content type='html'>&lt;div style="color: #111111; font-family: sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A programming trick that used to work was to unroll loops, to prevent the pipeline penalties that occur when you branch. It worked well for a while. The bitgrid is based on the idea of unrolling the whole friggin program. Instead of making a list with less branches... why not distribute each and every instruction of a program out into a physical processing instance?&lt;/div&gt;&lt;div style="color: #111111; font-family: sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;To make it feasible in hardware, use the simplest computing grid feasible, a grid cells (each cell having 4 inputs (one bit from each neighbor), 4 outputs (one bit TO each neighbor) and a 16 entry look up table), each of which is a pitiful unit of computation by itself.... in a grid size to fit the application at hand, they can execute all of the instructions necessary to compute a result simultaneously.&lt;/div&gt;&lt;div style="color: #111111; font-family: sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Communication isn't shared, because every input and output only has 1 place to go or come from. It only has to go to the next cell... so there are no long communication lines to worry about. Each cell can function as a router and logic element at the same time.&lt;/div&gt;&lt;div style="color: #111111; font-family: sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Programming is a matter of setting the values in the lookup tables, which could be made of static RAM cells.&lt;/div&gt;&lt;div style="color: #111111; font-family: sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-4053816223225591781?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/4053816223225591781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=4053816223225591781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/4053816223225591781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/4053816223225591781'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/06/unrolling-programs-instead-of-loops.html' title='Unrolling programs instead of loops'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-6716891713643269485</id><published>2010-06-28T09:32:00.000-07:00</published><updated>2010-06-28T09:32:55.847-07:00</updated><title type='text'>Introducing Sim02</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_flymo3RHqhY/TCjNVsLI0EI/AAAAAAAAAEA/DvCtxqy7JoE/s1600/Sim02_ScreenShot_201006281124.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="332" src="http://1.bp.blogspot.com/_flymo3RHqhY/TCjNVsLI0EI/AAAAAAAAAEA/DvCtxqy7JoE/s640/Sim02_ScreenShot_201006281124.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now that Sim01 is capable of demonstrating how a single cell works in terms of bits, it's time to start building a grid simulator. This is my first effort at it. Using Sim01 to figure out the hex codes (a new feature I added to support this)... I was able to determine the proper codes to do a pass through... and make that the default for this 2 cell array. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Here you see an input from the West side of the array propagated all the way through to the east side. Simultaneously an input from the North of Cell 01 (right cell) is propagated to the bottom.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It's all prototype code, but it is functional. I intend to scale this up to a simulator capable of simulating an arbitrary size grid. Then I'll add some input and output functionality to allow the processing of real data with a simulated bitgrid.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-6716891713643269485?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/6716891713643269485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=6716891713643269485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/6716891713643269485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/6716891713643269485'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/06/introducing-sim02.html' title='Introducing Sim02'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_flymo3RHqhY/TCjNVsLI0EI/AAAAAAAAAEA/DvCtxqy7JoE/s72-c/Sim02_ScreenShot_201006281124.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-8274399625528723350</id><published>2010-06-24T14:47:00.000-07:00</published><updated>2010-06-24T14:47:32.337-07:00</updated><title type='text'>Introducing Bitgrid-Sim version 0.03</title><content type='html'>I've created a basic simulator for 1 cell of a bitgrid. The simulator currently is a Windows only application, but it's should be fairly easy to port to Linux should it be required later. Here's the first public screen shot:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_flymo3RHqhY/TCPQy6xOK2I/AAAAAAAAAD4/VMtZ-Rv4hwg/s1600/BitGrid003_ScreenShot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="379" src="http://3.bp.blogspot.com/_flymo3RHqhY/TCPQy6xOK2I/AAAAAAAAAD4/VMtZ-Rv4hwg/s640/BitGrid003_ScreenShot.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The simulation shown is a pass through.... in this configuration the bitgrid cell acts as an expensive set of wires, passing signals straight through. It's useful for filler between active cells.&lt;br /&gt;&lt;br /&gt;In this simulator you can edit the program (showing in the 4 areas of check boxes) and simulate inputs The checkboxes corresponding to the current set of inputs are highlighted red as a programming aid. You can save your work as well.&lt;br /&gt;&lt;br /&gt;Users can load a few examples, or create there own. &amp;nbsp;In addition to creating a Google Code &lt;a href="http://code.google.com/p/bitgrid-sim/"&gt;project site&lt;/a&gt; for it, I've also packaged up the Source, Executable and Examples and made it &lt;a href="http://bitgrid-sim.googlecode.com/files/BitGrid003.zip"&gt;available as a zip file&lt;/a&gt;. It's small, and you just unzip it, and it should be ready to use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-8274399625528723350?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/8274399625528723350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=8274399625528723350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/8274399625528723350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/8274399625528723350'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/06/introducing-bitgrid-sim-version-003.html' title='Introducing Bitgrid-Sim version 0.03'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_flymo3RHqhY/TCPQy6xOK2I/AAAAAAAAAD4/VMtZ-Rv4hwg/s72-c/BitGrid003_ScreenShot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-7466312528541081743</id><published>2010-06-23T22:36:00.000-07:00</published><updated>2010-06-23T22:36:19.553-07:00</updated><title type='text'>Beyond the Petaflop - How Bitgrid could meet DARPA's needs ahead of schedule.</title><content type='html'>I found&lt;a href="http://www.networkworld.com/community/node/62808"&gt; this story&lt;/a&gt; about a new DARPA request for proposals &lt;a href="http://digg.com/hardware/Beyond_the_petaflop_DARPA_wants_quintillion_speed_computers"&gt;via Digg&lt;/a&gt;. The challenge is to build a computer system which can process 10^18 floating point operations per second. Here's the back of the envelope calculation I posted in&amp;nbsp;response:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think it could be done in 3 years if it didn't have to fit in one rack, it could have already been done, had there not been such a heavy emphasis on the Von Neuman architecture for the past 40 years.&lt;br /&gt;&lt;br /&gt;Imagine a bit slice processor....with perhaps 1000 transistors. Put those in the same die in a 1000x1000 grid, this would require &amp;nbsp; &amp;nbsp;10^9 transistors. You could clock them at the nice sane clock speed of 1 ghz. That would fit in a die the same size as a current generation cpu. &amp;nbsp;That's 10^6 slices times 10^9 cycles/second, or 10^15 bit computes per second, on a practical size die, with current technology.&lt;br /&gt;&lt;br /&gt;Even if you lost 99.9% of the compute efficiency in shuffling bits around to do a floating point operation, you could still do 10^12 Floating point operations per second, on a prototype chip... today.&lt;br /&gt;&lt;br /&gt;The chip would be easy to test, because all of the bit slices would be identical, so the testing of each part could be done in parallel... perhaps 1 second to test time per die. (Testing is a big part of cost when it comes to chips) &amp;nbsp; The chip would cost somewhere around $10 each.&lt;br /&gt;&lt;br /&gt;If you allow me to continue with my estimate of 10^12 flops per chip, and it were possible to build a grid of 1000x1000 of them... that takes you to the magic 10^18 Flops that DARPA wants, for a cost of about $10,000,000.&lt;br /&gt;&lt;br /&gt;10^18 operations per second, with 10^15 transistors, clocked at 1Ghz. &amp;nbsp;Feasible... yes... but it does require you to give up sequential programming, and think in terms of graph flow.&lt;br /&gt;&lt;br /&gt;It's called bitgrid, I thought of it around 1981.... and I've written some of this up at &amp;nbsp;http://bitgrid.blogspot.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-7466312528541081743?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/7466312528541081743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=7466312528541081743' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/7466312528541081743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/7466312528541081743'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/06/beyond-petaflop-how-bitgrid-could-meet.html' title='Beyond the Petaflop - How Bitgrid could meet DARPA&apos;s needs ahead of schedule.'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-4120352928884045710</id><published>2010-04-07T21:40:00.000-07:00</published><updated>2010-04-07T21:43:20.493-07:00</updated><title type='text'>Enabling technology on its way from HP</title><content type='html'>HP has continued to make progress on their Memristors, and this&lt;a href="http://www.nytimes.com/2010/04/08/science/08chips.html?hpw"&gt; latest advance&lt;/a&gt; which allows them to be put into large arrays would be perfect to use as the latch / demultiplexor components of the bitgrid cell. It would be amazing to have a bitgrid with 1000x1000 bits operating at 1 Ghz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-4120352928884045710?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/4120352928884045710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=4120352928884045710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/4120352928884045710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/4120352928884045710'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2010/04/enabling-technology-on-its-way-from-hp.html' title='Enabling technology on its way from HP'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-9196124618961234272</id><published>2008-07-31T12:13:00.000-07:00</published><updated>2008-07-31T12:18:30.791-07:00</updated><title type='text'>HRSA - Close, but no cigar</title><content type='html'>I came across &lt;a href="http://brass.cs.berkeley.edu/documents/hsra_poster_fpga99.ppt"&gt;this PowerPoint&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; about   HRSA: High-Speed,&lt;br /&gt;Hierarchical Synchronous Reconfigurable Array    which is part of the     BRASS Project   University of California at Berkeley via a &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=systolic+array+bit+LUT"&gt;google search&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;They figured out that long interconnects are a problem when you're trying to get speed out of a logic array, but don't seem to be willing to give up the big complex interconnection logic.&lt;br /&gt;&lt;br /&gt;I'd call this a step closer to the bit grid, but definitely not a hit.&lt;br /&gt;&lt;div shape="_x0000_s2050" class="O"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:133;"&gt;&lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-9196124618961234272?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/9196124618961234272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=9196124618961234272' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/9196124618961234272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/9196124618961234272'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2008/07/hrsa-close-but-no-cigar.html' title='HRSA - Close, but no cigar'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-1497125156015468875</id><published>2008-07-29T11:19:00.000-07:00</published><updated>2008-07-29T11:25:06.515-07:00</updated><title type='text'>Instruction Systolic Array</title><content type='html'>The BitGrid is based on the idea of data flowing through a grid of instructions. The logical inverse of this situation is to have the data remain in place, while instructions to modify it flow past it... this is the &lt;a href="http://www.iti.fh-flensburg.de/lang/papers/isa/index.htm"&gt;Instruction Systolic Array&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea is intriguing because it offers a way to get the benefits of the systolic array without having to have all of the bandwidth necessary to update all of the cells at once. The web site is well thought out and informative as well. I like the &lt;a href="http://www.iti.fh-flensburg.de/lang/papers/isa/isa2.htm"&gt;illustration of the matrix multiply&lt;/a&gt; using their concept.&lt;br /&gt;&lt;br /&gt;There are a lot of architectures that got skipped along the way to our current crop of FPGA and other programmable logic circuits. I think that the systolic array warrants further consideration as well as the BitGrid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-1497125156015468875?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/1497125156015468875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=1497125156015468875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/1497125156015468875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/1497125156015468875'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2008/07/instruction-systolic-array.html' title='Instruction Systolic Array'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-5844789191140888350</id><published>2008-07-18T22:10:00.001-07:00</published><updated>2008-07-21T06:45:20.841-07:00</updated><title type='text'>BitGrid - A minimalist systolic array</title><content type='html'>Sometimes the key to everything is to find the right words... the right words to explain a concept, the right words to feed into a search engine. I've learned some new words to explain the BitGrid, and they help tie it into the history of computing a bit better, and give context. The two words are&lt;br /&gt;&lt;a href="http://www.google.com/search?q=systolic+array"&gt;&lt;blockquote&gt;systolic array&lt;/blockquote&gt;&lt;/a&gt;&lt;br /&gt;The bitgrid as I imagined it way back in the 1980s is a systolic array. It takes information, and processes pieces of it simultaneously. It's an extension of the then-common idea of a bit-slice processor, which was used to create &lt;span style="font-style: italic;"&gt;really fast&lt;/span&gt; custom processors before the microprocessor really took off.&lt;br /&gt;&lt;br /&gt;The BitGrid is a minimalist bidirectional systolic array. According to the &lt;a href="http://en.wikipedia.org/wiki/Systolic_array"&gt;wikipedia entry&lt;/a&gt; on the subject, the pros and cons of systolic arrays are:&lt;br /&gt;&lt;p&gt;Pros&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Faster&lt;/li&gt;&lt;li&gt;Scalable&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Cons&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Expensive&lt;/li&gt;&lt;li&gt;They are a highly specialized for particular applications.&lt;/li&gt;&lt;li&gt;Difficult to build&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The fact that I want to process 4 bits at a time means that each cell is almost trivial, a 4bit wide 4address line EEPROM table, for a total of 64 bits of information. This makes it cheap and easy to design and build, pretty much wiping out the Cons in the table above. I don't have a way to get silicon, &lt;span style="font-style: italic;"&gt;yet&lt;/span&gt; but I expect it should be the matter of getting a cell and it's addressing logic right, then replicating a big grid of these onto a single chip.&lt;br /&gt;&lt;br /&gt;I've figured out that a &lt;span style="font-weight: bold;"&gt;n bit&lt;/span&gt; multiplier requires n*(n-1) cells. A divider takes the same number of cells. Adding and subtracting n bits requires n cells.&lt;br /&gt;&lt;br /&gt;It's amazing how little of this can be found via a straightforward Google search, unless you know exactly which &lt;span style="font-style: italic;"&gt;magic words&lt;/span&gt; to use. Semantic web searches will add value, should they ever actually get here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/search?q=systolic+array"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-5844789191140888350?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/5844789191140888350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=5844789191140888350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/5844789191140888350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/5844789191140888350'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2008/07/bitgrid-minimalist-systolic-array.html' title='BitGrid - A minimalist systolic array'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-116092862576578691</id><published>2006-10-15T09:01:00.000-07:00</published><updated>2006-10-15T09:27:37.520-07:00</updated><title type='text'>Logisim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/331/438/1600/Idealized%20Cell.0.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/331/438/400/Idealized%20Cell.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Earlier this week I found&lt;a href="http://ozark.hendrix.edu/%7Eburch/"&gt;Carl Burch&lt;/a&gt;'s wonderful &lt;a href="http://ozark.hendrix.edu/%7Eburch/logisim/"&gt;Logisim&lt;/a&gt; which does digital logic simulation. It took a few hours of tweaking, and one flash of insight (below)... but here is what a single BitGrid cell looks like in an idealized format.&lt;br /&gt;&lt;br /&gt;The cell consists of a single 16x4 RAM cell (4 bits address, 4 bits data). I used a ROM in the simulation to allow it to persist across saves, and simplify the layout.&lt;br /&gt;&lt;br /&gt;There are any number of ways you could wire this thing up... the flash of insight I had was that I wanted it to be very simple to turn a cell into a simple pass-through repeater. I figured that if addresses 0-F were programmed with contents 0-F, and it just worked that way... it would be easiest to understand. This leads naturally to the layout you see pictured here.&lt;br /&gt;&lt;br /&gt;If you want to see for yourself, here is &lt;a href="http://warot.com/bitgrid/bitgrid.xml"&gt;the Logisim Circuit file&lt;/a&gt;. (You'll have to save it, then rename it to *.circ for Logisim due to limitations of my web host at 1and1.com)&lt;br /&gt;&lt;br /&gt;I welcome comments and suggestions.&lt;br /&gt; --Mike--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-116092862576578691?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/116092862576578691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=116092862576578691' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/116092862576578691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/116092862576578691'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2006/10/logisim.html' title='Logisim'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-114079435719664213</id><published>2006-02-24T07:16:00.000-08:00</published><updated>2006-02-24T07:19:17.213-08:00</updated><title type='text'>Signs of life</title><content type='html'>I ran into Joshua, who might be able to help me get a chip made! He's been through chip design, and is a EE at heart. I laid out what I wanted to do, answering questions along the way... and there were no obvious huge stumbling blocks with what I want to do.&lt;br /&gt;&lt;br /&gt;It's not dead yet! 8)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-114079435719664213?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/114079435719664213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=114079435719664213' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/114079435719664213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/114079435719664213'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2006/02/signs-of-life.html' title='Signs of life'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-111110057992854443</id><published>2005-03-17T14:52:00.000-08:00</published><updated>2005-03-17T15:02:59.930-08:00</updated><title type='text'>BitGrid in 25 words or less</title><content type='html'>Get bit from each neighbor&lt;br /&gt;concatenated 4 bit number becomes index&lt;br /&gt;One lookup table per neighbor&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-111110057992854443?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/111110057992854443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=111110057992854443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111110057992854443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111110057992854443'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/bitgrid-in-25-words-or-less.html' title='BitGrid in 25 words or less'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-111103306852396249</id><published>2005-03-16T20:16:00.000-08:00</published><updated>2005-03-16T20:17:48.820-08:00</updated><title type='text'>Bitgrid pro and con - AKA the Thesis</title><content type='html'>&lt;h3&gt;If the &lt;i&gt;Bitgrid&lt;/i&gt; is such a great idea, why haven’t I heard of it before?&lt;/h3&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;One word answer: “Efficiency”&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;My review of the current literature, aided by my trusty pal Google has shown that the past 25 years of programmable/custom logic design is focused on serving one God, efficiency. All of the designs I’ve seen (admittedly a small subset because I’m not a professional circuit engineer) optimize on some or all of these common goals:&lt;/p&gt;   &lt;ul style="margin-top: 0in;" type="disc"&gt; &lt;li class="MsoNormal" style=""&gt;Speed&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Power&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Size&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Circuit      complexity&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Unit      cost&lt;/li&gt; &lt;/ul&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;They do this for a very good set of reasons. You want the lowest power dissipation because it makes it easier to feed and clean up after. You want the fastest speed because that is the driving factor for using hardware instead of software. You want the smallest design size so that you use less die area, and have less chance of a losing a chip to a defect. The circuit complexity goal drives a huge investment in design tools to automate design tasks as much as possible.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;The things that are often traded away for these goals in a chip design are:&lt;/p&gt;   &lt;ul style="margin-top: 0in;" type="disc"&gt; &lt;li class="MsoNormal" style=""&gt;Flexibility&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Fault      tolerance&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Engineering      costs&lt;/li&gt; &lt;/ul&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;The primary reason for going with hardware in the first place is usually speed. If speed is not an issue, then it is usually a good idea to do a given task in software. Software is infinitely malleable, and far easier to patch and update.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Fault tolerance is usually excluded from designs of custom chips because it is difficult to achieve, and is better addressed by testing and quality control measures. Only when a given feature of a design is homogenous such as in RAM or ROM, is the option to include spares included in a design.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Engineering costs are usually considered last in a mass produced chip, but they are never trivial. The processes are optimized to automate as much of the design work as possible away from human engineers, but there are always going to be complexity limitations imposed by the heterogeneity of the elements in a given Programmable Logic / Custom ASIC design.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;When viewed from the perspective of the design community I’ve observed, it becomes obvious why nobody has built a bitgrid yet… it’s inefficient as hell by their criteria. An insider would never seriously consider a bitgrid design.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;That, gentle reader, is why you haven’t heard of the bitgrid before.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;h3&gt;Reasons to consider the bitgrid&lt;/h3&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;One word answer: “Efficiency”&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Only in this case, a different set of parameters to optimize on:&lt;/p&gt;   &lt;ul style="margin-top: 0in;" type="disc"&gt; &lt;li class="MsoNormal" style=""&gt;Flexibility&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Fault      tolerance&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Testing      time&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;End      users&lt;/li&gt; &lt;/ul&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;The bitgrid is based on a single basic component, with a known, easily comprehended design, in an orthogonal grid. The homogenous nature of the grid makes it trivial to relocate a given portion of an application program. &lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;It can route around a bad cell, if one is found. Each and every cell is a programmable wire at minimum utilization. As long as extensive faults are not present, and slack is available, it should be feasible to route around bad cells in almost any design.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Because it’s possible to test the RAM that stores the programming along with the bitgrid cells one at a time, it should be very easy to quickly and confidently test a chip with a minimum of testing equipment complexity.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Because of the simple nature of the bitgrid, a set of graphical tools for design and debugging can be built and will be applicable to any implementation of the chip. The parameters of the IO pins and array size are the main constraints to give to the tools. There are no design heterogeneity obstacles to complicate tool development.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;There are, of course some bit trade offs made, including:&lt;/p&gt;   &lt;ul style="margin-top: 0in;" type="disc"&gt; &lt;li class="MsoNormal" style=""&gt;Speed&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Latency&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Power&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Die      Size&lt;/li&gt; &lt;/ul&gt;   &lt;ul style="margin-top: 0in;" type="disc"&gt; &lt;li class="MsoNormal" style=""&gt;Unit      cost&lt;/li&gt; &lt;/ul&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Compared to an ASIC, a bitgrid will always be slower, use more power, consume a larger die space and cost more per unit. A given bit will have to traverse at least 4 gates per cell, just to emulate a wire. The end user, will be compelled to expend some time optimizing their programming to fit in the smallest available bitgrid device applicable, of course.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Summary&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;I’m confident that as Moore’s law continues to drive down transistor prices, the bitgrid will become seen as a viable computing architecture for select applications, and may possibly mature into general use over time. The closest analogy I can evoke at this time is to the debates that were made with the introduction of high-level computer languages. It occurred when the cost of computation was driven below the cost of the programmers. I believe this transition is on its way for silicon.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;I believe the best way to predict the future is to invent it. I hope you like my invention.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;  &lt;/span&gt;--Mike—&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;March 16, 2005&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-111103306852396249?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/111103306852396249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=111103306852396249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111103306852396249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111103306852396249'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/bitgrid-pro-and-con-aka-thesis.html' title='Bitgrid pro and con - AKA the Thesis'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-111055651821649114</id><published>2005-03-11T07:37:00.000-08:00</published><updated>2005-03-11T08:11:57.806-08:00</updated><title type='text'>Why we need a Free Hardware Foundation</title><content type='html'>We have the Free Software Foundation as a result of Richard Stallmans irritation with closed source software. I propose a parallel organization to help promote and propagate open source, Free hardware. I want to be able to license the bitgrid under the equivalent of the GPL. I'm certain that there are others with ideas that they want to share in the same way.&lt;br /&gt;&lt;br /&gt;Specifically, if my bitgrid idea actually pans out, I'd like to let anyone use it in a design according to an equivalent of the GPL for hardware. They would then be bound to do the same for their designs, so that improvements can get worked into the technology, and we all benefit.&lt;br /&gt;&lt;br /&gt;The main threat I want to hold off is that of submarine patents. If we can build an open database of ideas which can be shared by all, it could be a very powerful tool. I'm not a lawyer, so I don't know if patent or copyright law would be the best place to try to build a GPL equivalent, but I'm sure its time to figure it out.&lt;br /&gt;&lt;br /&gt;[update]&lt;br /&gt;An analogy made in &lt;a href="http://features.linuxtoday.com/news_story.php3?ltsn=1999-06-22-005-05-NW-LF&amp;reply=008&amp;amp;quote=1"&gt;this post&lt;/a&gt; by Eric Ste-Marie in 1999:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;On the other hand, the day that we can have a processor definition from the internet, download that definition in a "processor makng machine", add whatever material is needed, press a button, wait 5 minutes and "DING!" your processor is ready; well this day, maybe free hardware foundation will become popular and worth the effort. Until that time it will be a hobbyist thing and won't have any impact on the computer world compared to Free software.&lt;/blockquote&gt;&lt;br /&gt;Perhaps the bitgrid could fill that role by being virtual hardware?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-111055651821649114?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/111055651821649114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=111055651821649114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111055651821649114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111055651821649114'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/why-we-need-free-hardware-foundation.html' title='Why we need a Free Hardware Foundation'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-111051710065224627</id><published>2005-03-10T20:03:00.000-08:00</published><updated>2005-03-10T21:47:19.283-08:00</updated><title type='text'>The bitgrid story</title><content type='html'>&lt;span style="font-size:130%;"&gt;The Von Neuman architecture - Our current standard&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;It all started with the realization that most of the transistors in a modern computer are just sitting idle 99% of the time. Everyone focuses on the CPU, with a single instruction stream being read and executed at a blinding speed. Everything optimizes the CPU, thus RAM is designed to be able to read a cell quickly, when needed, but is idle otherwise. This has advantages, including until very recently, the lack of heatsink requirements for memory chips. The laptop I write this entry on has 512 megabytes of RAM, which means there are 4 Billion transistors which are just sitting there, waiting for their turn in the computing process. Meanwhile most of the 30 million or so transistors in the CPU are also dedicated to the "cache", which is a faster RAM, also present to help optimise the flow of data to and from the CPU.&lt;br /&gt;&lt;br /&gt;At the heart of everything in the CPU, there are registers (another form of RAM), and the ALU (Arithmetic Logic Unit), Execution pipeline, instruction decoders, and assorted hardware. There are also specialized hardware optimizations such as "speculative execution" which literally computes advances the program along both forks in the instruction flow, until well after it is known which one is the proper path, in order to know the correct answer that much faster.&lt;br /&gt;&lt;br /&gt;I can't emphasize enough how everything is optimized to get data to the CPU, through the CPU, and back out from the CPU. Its all about getting flow through the core as quickly as possible. The problem is that the core can only get so fast... because it always has to wait to talk to RAM.&lt;br /&gt;&lt;br /&gt;The next logical step has been known for a very long time (before 1970?), parallel processing. I'm surpised its taken as long as it has for the dual core chips to show up. I expected them back in the early 1990s. They will help performance, and push things along because there will be multiple tasks happening while the CPU waits for the next set of data. Its not optimal though, because the programming tools and operating systems all are still optimized for the single instruction flow, but this shift has been long anticipated, and much research has been done, so there are appreciable benefits to this "multi-core" approach. (Intel calls it Hyperthreading when done by certain Pentium 4 chips)&lt;br /&gt;&lt;br /&gt;This is the future path most computing hardware will take. The model is mature, and universally understood. It entails a known set of trade-offs which I have summarized above.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;The Bit Grid&lt;/span&gt;&lt;br /&gt;Bitgrid is a radically different architecture. I see the first uses as a coprocessor, for doing a fixed task at very high speed. Tasks which might otherwise be dedicated to a custom hardware processor, such as signal processing, graphics, compression, etc. I've always figured it would make a really good radar signal processor, or text search engine.&lt;br /&gt;&lt;br /&gt;The concept is pretty simple, but the implications are radical. The basic computing element in a BitGrid is a cell, which has 4 neighbors, &lt;span style="font-style: italic;"&gt;up, left, down, right&lt;/span&gt;. For each of these neigbors, there is an input, and output, and a program. So, in summary a cell has&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;4 single bit inputs, one from each neighbor&lt;/li&gt;   &lt;li&gt;4 single bit outputs, one to each neighbor&lt;/li&gt;   &lt;li&gt;4 programs, one for each output (16 bits each)&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; The flow is simple:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;combine the 4 inputs from the neigbors into a nibble - &lt;span style="font-style: italic;"&gt;n&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;select bit &lt;span style="font-style: italic;"&gt;n&lt;/span&gt; from each "program"    i.e.   up(&lt;span style="font-style: italic;"&gt;n&lt;/span&gt;), left(&lt;span style="font-style: italic;"&gt;n&lt;/span&gt;), down(&lt;span style="font-style: italic;"&gt;n&lt;/span&gt;), right(&lt;span style="font-style: italic;"&gt;n&lt;/span&gt;)&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;output that bit to each neighbor&lt;/li&gt; &lt;/ul&gt; The key is that once the programs are loaded, the bitgrid because a hardware virtualization of the logic embedded in the program. A very &lt;span style="font-style: italic;"&gt;fast&lt;/span&gt; virtualization. All parts of the design run at the same time, there is no program counter, no need to optimize around a specific set of registers, etc. All of the cells can be in used if the programmer is efficient. (I've put this model into a spreadsheet that works well - though it was interesting getting around the circular reference restrictions once I tried to make a grid of cells)&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;Interesting properties of the bitgrid.&lt;br /&gt;&lt;/span&gt;Fault tollerance - A bitgrid chip doesn't need to be perfect. If a cell is bad, but doesn't lie near an edge, it can be routed around. Software to do this routing would eventually find it way into the normal set of tools associated with bitchip deployment. This should greatly reduce the cost of the chips, should they ever be manufactured in bulk.&lt;br /&gt;&lt;br /&gt;Program transformation - A program for a bitgrid could be automatically rotated, compartmentize, and routed to best fit a given chipset. As above, I expect this software to be a basic part of any bitgrid deployment.&lt;br /&gt;&lt;br /&gt;Duplexing - When I decided on a 4 in, 4 program, 4 out architecture, it seemed a reasonable choice. When modeling the circuit for a 8 bit programmable 2s complement generator, it became apparent that data flow in more than one direction across a chip was quite useful. I had the mode bit going down, with the carry bit going up the same column. In non-trivial applications, this could help boost the efficiency of utilization of the cells.&lt;br /&gt;&lt;br /&gt;Inertia as default - When programming a grid, I've chosen a set of defaults for my tools that implement what appears to be inertia. Once a bit is in motion across the grid, it defaults to travel in that direction, without collision. The physics parallels are intriguing.&lt;br /&gt;&lt;br /&gt;Interface as RAM - It would be quite desireable to make the bitgrid appear to be a RAM chip externally. The "program" store could appear as a conigous block of static RAM to the host processor. The IO pins for each cell could be similarly mapped. Thus the first top 8 input bits would just be written to at address 0, for example. The output bits would be a read from the same address. Interfacing to a host becomes trivial.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;My story&lt;br /&gt;&lt;/span&gt;As I've stated before, the bitgrid idea goes way back with me, to the my brief stint as an Engineering student (Rose-Hulman, 1981-1982). I had read about, and studied a bit about bit slice processors, and came up with the idea of building a vast array of them. I wrote page upon page of different ideas, and tweaks to the idea, but then I let it all drop. (A bad habit I'm working to change)&lt;br /&gt;&lt;br /&gt;I've talked with friends about it from time to time, but figured I'd never be able to do it because I don't have the resources or skills to get a chip built. Let alone the whole patenting process...&lt;br /&gt;&lt;br /&gt;I've hit middle age, and am figuring out just what my life goals are. 43 things was a nice catalyst, and one of my entries was about the bit grid. (Another is a refactoring compiler, which will be discussed elsewhere). At this point my goals for the bitgrid are:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Have at least one other person truely "get" the idea, so I have a collaborator&lt;/li&gt;   &lt;li&gt;Actually get a good technical discussion going about the merits of this architecture&lt;/li&gt;   &lt;li&gt;Determine the true value of the concept, where its niche in the world of computing is&lt;/li&gt; &lt;/ul&gt; Assuming that I'm not crazy, then we move on to longer term goals:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Build some software emulation programs to test out ideas&lt;/li&gt;   &lt;li&gt;Write some code to solve a non-trivial computing problem (for some reason FFTs keep coming to mind)&lt;/li&gt;   &lt;li&gt;Figure out just how fast and cheap the chips would be&lt;/li&gt;   &lt;li&gt;Get chips made (I don't care who does this, as long as it stays open source)&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Debug said chip designs&lt;/li&gt;   &lt;li&gt;Get &lt;span style="font-style: italic;"&gt;good&lt;/span&gt; chips made&lt;/li&gt;   &lt;li&gt;Find real customers, get feedback, loop&lt;/li&gt; &lt;/ul&gt; Right now... I'm just trying to find others who think the idea has merit, and want to sheppard it along. I thank Doc Searls for his encouragement, and I thank &lt;span style="font-weight: bold;"&gt;you&lt;/span&gt; for your time and consideration.&lt;br /&gt;&lt;br /&gt;--Mike-&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-111051710065224627?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/111051710065224627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=111051710065224627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111051710065224627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111051710065224627'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/bitgrid-story.html' title='The bitgrid story'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-111043396438428406</id><published>2005-03-09T21:48:00.000-08:00</published><updated>2005-03-09T21:52:44.386-08:00</updated><title type='text'>The bitgrid future</title><content type='html'>As I stated over at &lt;a href="http://pluralsight.com/blogs/hsutter/archive/2004/12/17/3957.aspx"&gt;Herb Sutter's blog entry about concurrency&lt;/a&gt;, I think the future of computing will include the bitgrid, in some form. The Von Neuman architecture has its definite efficiencies, but the fact that a given RAM cell just sits there waiting almost 100% of the time, seems to me to be the ultimate in waste.&lt;br /&gt;&lt;br /&gt;I look forward to the future, its going to be a wild ride getting there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-111043396438428406?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/111043396438428406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=111043396438428406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111043396438428406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111043396438428406'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/bitgrid-future.html' title='The bitgrid future'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-111017053296244265</id><published>2005-03-06T20:30:00.000-08:00</published><updated>2005-03-06T20:42:12.963-08:00</updated><title type='text'>Distilling a vision into something coherent is tough!</title><content type='html'>I've been working on my spreadsheets demos of the bitgrid concept. My latest efforts are &lt;a href="http://basicsoftware.com/bitgrid"&gt;online&lt;/a&gt;. Today's effort &lt;a href="http://basicsoftware.com/bitgrid/BitGrid-Learning01.xls"&gt;BitGrid-Learning01.xls&lt;/a&gt; is as small as I can make it (35k). I've also exported an &lt;a href="http://basicsoftware.com/bitgrid/BitGrid-Learning01.htm"&gt;HTML version&lt;/a&gt;, so you can get a sense of it, at least.&lt;br /&gt;&lt;br /&gt;You see, each cell has 4 neighbors, above, left, below, right, each contributing one bit. This results in 16 possible values. I convert this to a 16 bit mask, which is a simple shift operation in assembler, and 2^x in a spreadsheet. I can then AND this with the 4 programs (one for each output), and simply output a 1 if the result is nonzero, otherwise 0.&lt;br /&gt;&lt;br /&gt;In effect, the 4 bits are address, and the &lt;span style="font-weight: bold;"&gt;program&lt;/span&gt; for a cell is the input to a 16:1 data selector going to the appropriate output.&lt;br /&gt;&lt;br /&gt;I'm hoping that the simplest possible example, made visible, can help transfer the concept to the reader. Its a lot more work than I thought, but very rewarding.&lt;br /&gt;&lt;br /&gt;Thanks for your time.&lt;br /&gt;&lt;br /&gt;  --Mike--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-111017053296244265?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/111017053296244265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=111017053296244265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111017053296244265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/111017053296244265'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/distilling-vision-into-something.html' title='Distilling a vision into something coherent is tough!'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-110991446858902301</id><published>2005-03-03T21:21:00.000-08:00</published><updated>2005-03-03T21:34:28.590-08:00</updated><title type='text'>BitGrid emulation available</title><content type='html'>Earlier this week I had a flash of insight and decided to make a bitgrid emulator in a spreadsheet, and it worked. I was able to test out a few architectures, and learned that my gut feelings on the subject were on track. I've settled on a 4 input, 4 output cell, with each of the outputs being the result of a 16 bit table.&lt;br /&gt;&lt;br /&gt;I've written friends, and solicited some opinions. I've put the emulator files online at &lt;a href="http://basicsoftware.com/bitgrid"&gt;http://basicsoftware.com/bitgrid/&lt;/a&gt; Basically, they are fancy Microsoft Excel spreadsheets with some really nasty built in circular references from hell, but the do work. &lt;span style="font-style: italic;"&gt;Please download the latest one, and play with it, see how this stuff works. Please let me know how I can make them more comprehesive and useful.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've coded up an 8x8 cell grid, and demonstrated how to do 2 bit full addition, RS and D latches, and a 2s complement circuit.  I'm amazed at just how much can be done with only 1 of the 8 columns of cells. It'll be interesting to see how tightly I can pack functionality into it.&lt;br /&gt;&lt;br /&gt;Eventually, I want to build an FFT inside the grid, to see just how many cells it takes.&lt;br /&gt;&lt;br /&gt;I'm also going to try to make a reasonable tutorial on programming this puppy. It's tedious at best, because it's all based on 16 bit numbers, which never seem to be in a easy to deal with order. I'm going to have to make some tools to simply the task.&lt;br /&gt;&lt;br /&gt;I'm now at the point where the idea has a form, and I have to have enough faith in it to keep working on it. I've tended to abandon things at this point, so I'm really looking hard for some positive feedback on this one.&lt;br /&gt;&lt;br /&gt;Thanks for your time&lt;br /&gt; --Mike--&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-110991446858902301?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/110991446858902301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=110991446858902301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/110991446858902301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/110991446858902301'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/bitgrid-emulation-available.html' title='BitGrid emulation available'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-110981570739509154</id><published>2005-03-02T18:06:00.000-08:00</published><updated>2005-03-02T18:08:27.396-08:00</updated><title type='text'>Preventing Patents?</title><content type='html'>It occurs to me that I have a good idea, but I really doubt my ability to successfully extract the almightly dollar from it, so I want to prevent others from patenting it?&lt;br /&gt;&lt;br /&gt;What is the best way to release an invention to the public domain, to make sure others CAN'T patent it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-110981570739509154?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/110981570739509154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=110981570739509154' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/110981570739509154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/110981570739509154'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2005/03/preventing-patents.html' title='Preventing Patents?'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-108943505202958578</id><published>2004-07-09T21:41:00.000-07:00</published><updated>2004-07-09T21:50:52.030-07:00</updated><title type='text'>Finding a market</title><content type='html'>I had a break at the recent SuperComm in Chicago, where I was taking pictures for work. I talked to one of the publishers on an embedded systems magazine. Like everyone I talked to about the BitGrid idea, he had his own idea of what was missing... he said I needed a market, or as we would say at work, a Target Audience... he's right.&lt;P&gt;&lt;br /&gt;I have an idea which could be used to build really cheap computing engines, or really huge supercomputers... but the flexibility makes targeting an audience a problem. I think right now I remain the only target. &lt;br /&gt;&lt;br /&gt;Jonathan Schwarts talks about &lt;a href="http://blogs.sun.com/roller/page/jonathan/20040708#big_data_small_computer_big"&gt;Big data, small compute&lt;/a&gt; and the different scales of computing. I see this as a cheap way to do a very fast bit of computing on a big dataset. Piping a 5Gigabyte database from RAM through a 64 bit interface could happen in 1 second, with a somewhat aggressive 700 Mhz clock. I'm going to have to figure out what he's really talking about in terms of compute tasks to see if it's a good fit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-108943505202958578?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/108943505202958578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=108943505202958578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108943505202958578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108943505202958578'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2004/07/finding-market.html' title='Finding a market'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-108697686897759674</id><published>2004-06-11T10:36:00.000-07:00</published><updated>2004-06-11T11:01:08.976-07:00</updated><title type='text'>The fine line between Genius and Insanity</title><content type='html'>I've figured out why nobody has come up with a true bitgrid yet... &lt;br /&gt;&lt;br /&gt;The idea is &lt;b&gt;insane&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Everyone worries themselves sick trying to reduce either transistor count, power consumption, or signal delays. It's &lt;i&gt;just plain nuts&lt;/i&gt; to put a signal through 100,000 extra gates, if you really don't need to. So, nobody would ever come up with the bitgrid.&lt;br /&gt;&lt;br /&gt;I, on the other hand, saw the benefit of having a homogeneous grid with no restrictions on routing, which lead to the bitgrid concept. I was &lt;i&gt;totally ignorant&lt;/i&gt; of the importance of keeping the transistor counts low, reducing the power consuption, and maximizing the efficiency of layout of a chip. Thus, I was &lt;i&gt;too ignorant to know better&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;22 years have come and gone, and I'm dipping into the well to pull the concept back out. I've got a lot of life lessons learned, and have decided to get this thing built. I started doing the research, and reducing my ignorance of the subject. The realization last night of the truely awful state of the bitgrid concept was frightening. I thought I had just wasted a bit of time, and took a fair self-esteem hit.&lt;br /&gt;&lt;br /&gt;This morning, I now see the bigger picture, and I'm comforted by it. I don't have to worry about competition, prior art, etc. I've learned quite a bit from this experience.&lt;br /&gt;&lt;br /&gt;Now, all I have to do is figure out if it really genius to pass a signal through 100,000 transistors instead of a wire, to get the flexibility of a bitgrid. It'll take time and effort, but I'm going to make it happen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-108697686897759674?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/108697686897759674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=108697686897759674' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108697686897759674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108697686897759674'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2004/06/fine-line-between-genius-and-insanity.html' title='The fine line between Genius and Insanity'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-108680626158061923</id><published>2004-06-09T11:24:00.000-07:00</published><updated>2004-06-09T11:37:41.580-07:00</updated><title type='text'>Custom Silicon</title><content type='html'>Thanks to &lt;a href="http://wmf.editthispage.com/"&gt;Wes Felter&lt;/a&gt; and &lt;a href="http://doc.weblogs.com/"&gt;Doc Searls&lt;/a&gt; for the pointers to &lt;a href="http://www.mosis.com/"&gt;MOSIS&lt;/a&gt; and &lt;a href="http://www.chipexpress.com/"&gt;ChipX&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've learned that I've got a lot to learn. The investment to get a design cast is going to be at least $1500 for the raw manufacturing of the smallest die size available. I haven't even begun to consider the design tools, and the time to learn them. It's a formidable task, but one that I'm sure I can do, eventually.&lt;br /&gt;&lt;br /&gt;Since that end of the process is such a big investment in terms of time, effort, and % of my life, I'm going to focus more on the big picture, and emulate the heck out of my concepts first. Software simulation is the number one priority.&lt;br /&gt;&lt;br /&gt;Meanwhile, on the social network side, I'm going to see options are available to do a GPL type license with a patent. I'm expecting to dump at least $10,000 and 1000 hours into this project at a bare minimum, so I want everyone to get some return on my investment. (I'm not  really a money motivated person)&lt;br /&gt;&lt;br /&gt;So, now the focus moves to a software simulation that I can share with others, work out concepts, and get some virtual benchmarks against. I'm going to assume perfect hardware for the moment, because it's easiest to write. 8)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-108680626158061923?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/108680626158061923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=108680626158061923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108680626158061923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108680626158061923'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2004/06/custom-silicon.html' title='Custom Silicon'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7258635.post-108680532253546061</id><published>2004-06-09T11:18:00.000-07:00</published><updated>2004-06-09T11:22:02.536-07:00</updated><title type='text'>Join Me</title><content type='html'>I'm trying to change computing as we know it, in a small way. I've got an idea for a chip design, which I intend to see cast into silicon. I need all the help I can get. I want to make samples, test them, and GPL the idea (as well doing something like a GPL Patent).&lt;br /&gt;&lt;br /&gt;It's going to be a lot of work, but it should be a very rewarding ride.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7258635-108680532253546061?l=bitgrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitgrid.blogspot.com/feeds/108680532253546061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7258635&amp;postID=108680532253546061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108680532253546061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7258635/posts/default/108680532253546061'/><link rel='alternate' type='text/html' href='http://bitgrid.blogspot.com/2004/06/join-me.html' title='Join Me'/><author><name>Mike Warot</name><uri>http://www.blogger.com/profile/12975818268596648269</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_flymo3RHqhY/S6bj-IF4WqI/AAAAAAAAACM/wFkZT6g5aqU/S220/me_square.jpg'/></author><thr:total>0</thr:total></entry></feed>
