sense when you think about it. Larry then acted appalled and frightened that I had never heard of Heinlein, and then threatened to fire me if I didn't complete a book of his per month until I had read them all. "Consider this a reading assignment for your job, Steven. Sooner or later it'll become clear why I want you to read any and all science fiction you can get your hands on. Start with Heinlein," Larry told me. At any rate, we finally made some headway on the Quantum Connected CPUs (or QCCPUs as we had begun to call them). I had remembered something from a class on Computational RAM and Intelligent Parallel Processing that gave me a hint. There have been a few companies to attempt to create RAM chips that had miniature processors at each RAM block of mem ory. The processors would conduct the computation or data crunching in place at each memory location on the RAM chip itself rather than on a separate large processor chip. The problem is that the data must be massively parallel and so must the problem for such chips to be useful. As a solution to the massive parallel problem these companies had then tried to add some artificial intelligence to each of the processors within the RAM to help break the problem down into more separate and parallel parts. If you just wanted to add a simple sequence of numbers together, this type of computer gained you some speed. The artificial intelligence would teach itself to break up the numbers into sections that would make use of having multiple memory slots and multiple processors like the following example:
RAM1 RAM2 RAM3 1+2= 3 3+4= 7 5+6= 11 1 CPU clock cycle 3+7= 10 2 CPU clock cycles 10 + 11= 21 3 CPU clock cycles.
The sequential calculation without breaking the problem up and with only one RAM slot and one processor would look like:
RAM1 1+2 = 3 1 CPU clock cycle 3+3 = 6 2 CPU clock cycles 6+4 = 10 3 CPU clock cycles 10+5 = 15 4 CPU clock cycles 15+6 = 21 5 CPU clock cycles which is two clock cycles longer. So you see where the AIs on the chip and the multiple processors might help. The typical AI for problems like this were genetic algorithms and fuzzy logic. Sometimes people used neural networks to do the problem devolving and re-evolving, but I had a different idea. I decided to put a team of Agents on the job. With the advent of the Framework and even before, Agents had become the industry standard approach for controlling large problems without necessarily placing the user in the loop. Of course, the best Agents could talk to the user through some interface or other. If you are not certain what I am talking about when I say an Agent, then you haven't been paying attention to computer stuff for about thirty years. That favorite search engine you use on the Web utilizes Agents. The Agents crawl around from one website to another making decisions on if this website has your information parameters in it and to what level of confidence. Now these are simple agents. Real Agents are actually persistent pieces of software that are completely dedicated to a specific purpose. One of the early real Agents, that I recall anyway, was called the SodaBot Agent and was invented by a guy at MIT's AI Lab. I believe that guy's name was Michael Coen or something like that. Well, he was developing his SodaBot code to be a program that could engage in negotiations and dialog with a system, and coordinate the transfer and exchange of information between systems. A perfect science fiction example of this is Agent Smith from The Matrix . Agent Smith was simply a bit of software code whose total purpose was to look for anomalies and stop them no matter what. He had enough intelligence to carry out his function and he could definitely engage in "negotiations" and "exchange" information (or gunfire, which in The Matrix was just information packets). Well, I decided to create my own bunch of little Agent Smiths and SodaBots . I had built smaller agent-type programs before but never a