Advanced Imaging – January 1998

Neo-Core Recognizes A New Way of Processing Data
By Sheldon Liebman

In order for a computer to store, retrieve or process data, it must be given a sequence of events. This sequence is the basis for everything that happens in a single processor computing system. Even when a parallel processing system is used, data is still accessed sequentially. The difference is that multiple sequences of operations are happening at the same time. The other standard form of computing many of us are familiar with, the neural network, also relies on sequential computing. The rules are defined, the inputs provided, and the outputs calculated by processing the data according to the rules.

A few years ago, a new company was formed that hopes to change the way computers relate to information. That company is Neo-Core (Colorado Springs, CO) and the technology they are using is called Associative Processing. The founders of Neo-Core have experience in the traditional methods of processing information, but they believe that associative processing is the key to faster, more powerful data analysis for many applications. For the past year, they’ve been moving this technology away from pure research and toward creating a viable commercial product.

The product they are developing requires a CPU and memory just like a standard computer. In this case, however, the CPU is replaced by a custom ASIC that acts as an "Associative CPU." Normally, the memory used in a device like this would be Content Addressable Memory (CAM). By design, CAM is an associative memory architecture. However, CAM is very specialized and expensive, so Neo-Core created an "Associative Memory Controller" that combines a RISC processor with standard RAM. This solution is not only more cost effective than using CAM, but it also allows the product to have significantly more memory on board.

In order to showcase the technology and provide something that can be used to test applications, the company has teamed with UTMC Microelectronic Systems Inc. (Colorado Springs, CO) to create a PCI bus board that contains the ASIC, RISC processor and RAM. In this demo version, the RISC processor runs at 66 MHz and the board can be configured with up to 256 MegaBytes (MB) of RAM. Driver and development software is also provided to allow applications to be developed without having to understand everything about how associative processing works. This demo version has obviously been a success; multiple commercial versions of the product are currently under development.

An Icon’s Worth A Thousand Words
Trying to explain associative processing is difficult to do. It’s all based on the concept of icons and the very specialized architecture mentioned above. The result is a system that actually processes data in much the same way as the human brain.

According to Chris Brandin, Neo-Core’s Chief Technology Officer, the brain is a giant associative processor that doesn’t use all the data that is presented to it. Instead, the brain relies on symbolic representations of the data, or icons. "If you had to assimilate all the data you are given," explains Brandin, "you’d wake up in the morning and have to go to bed by the time you got one shoe tied. Everything we process in our minds is highly symbolized." For example, when you look out the window at the sky, you can see the sun and the clouds, but you don’t have to analyze every detail of the image to see that it’s the sun and some clouds. When you look at yourself in the mirror, you don’t have to recognize every hair on your head or every pore in your skin to realize that you are looking at yourself. This happens automatically in the brain. The brain iconizes everything we see during our lifetime so that it can be recognized in the future.

In an associative processing environment, data must also be iconized. Neo-Core uses icons that are 64-bit representations of the original data and contain the logical properties of that data. For example, let’s look at the name "Albert Einstein." We can turn this into three icons representing "Albert," "Einstein" and the combination "Albert Einstein." Because the icons have the logical properties of the original data, this means that if we "add" the "Albert" and "Einstein" icons together, we will get a result that is exactly the same as the "Albert Einstein" icon. And, all three icons are the same size, even though the original data is of different sizes.

This is one of the keys to the Neo-Core engine. Because all the icons are the same size, the storage, processing and retrieval of the icons is simplified. In other types of environments the data is of an arbitrary size, which complicates the processing.

Got a Match?
The next key to the system is the ability to search through a database of icons to determine if and how many matches exist. The Associative Memory Controller allows this process to happen very quickly. "Our current board design can perform 5-10 million associations per second," states Brandin. "In one application we are working on, the system will perform 200 million associations per second." Simple arithmetic means that each association takes 5 nanoseconds in the second example. This is orders of magnitude faster than traditional computer systems.

Understanding the power of this concept can be shown in another example. Let’s assume we have 100 people in a room and each one has a piece of paper. On 5 of those papers is the letter "X." We don’t know how many X’s there are or who has them. With sequential computing, we need to perform 100 comparisons in order to find the answer. Each person is asked if his or her paper has an "X" and each time there is a match we increment a counter. With parallel processing, we might use 100 people to each ask one person if they have an "X" and have each processor access the counter to increment the number of matches. This will be very fast, but requires a lot of resources.

With associative processing, one person looks out over the room and says "If you have an ‘X,’ raise your hand." In the next cycle, the hands are raised. In the next, the matches are counted. This process uses very few resources, is extremely fast and yields the same correct result.

I/O, I/O It’s Off to Work We Go
Another key for Neo-Core is the I/O speed of the system. Analyzing data with Neo-Core is basically a three-step process. Step one, described above, is to iconize the original data. Step two is to load the data onto the Neo-Core engine. Step three is to compare this data to an input icon to see if there is a match. If a match exists, any one of a number of things can happen. But the process requires the data to move in and out of the system very quickly.

"We use a PowerPC chip as our RISC processor because it has a very nice I/O profile," comments Brandin. "You can write, read and write again in 3 cycles. Most RISC processors can’t do that and if you aren’t careful, you end up doing 3 cycles every time you send something through the ASIC." As mentioned above, the demo board utilizes a 66 MHz version of the PowerPC chip and can contain up to 256 MB of RAM. These are not limits on the technology, but represent choices that were made in designing the demo product. Commercial versions are being designed with faster processors and with more memory.

The processing of icons is also very efficient and adds to the power of the Neo-Core architecture. For example, says Brandin, "the system can change details in an icon without having to reprocess the original data. If you want to do a sliding window search in a traditional system, every time you move the window you have to reprocess the original data. We just say to take something off the beginning and put it at the end, and it can happen in 2 machine cycles."

Recognizing the Possibilities
Associative processing can be useful in a lot of applications, but it seems especially suited for imaging applications that use pattern recognition. Although Neo-Core isn’t at liberty to discuss exactly whom they’re speaking with, Brandin admits "there are a number of pattern recognition people that are interested in this technology."

Parts placement systems can utilize the technology to instantaneously determine whether the placement is correct. Vision systems can compare an image to many variations on the same theme. Fingerprint or signature verification systems can also be implemented very efficiently with this technology since the data can be perturbed very easily.

In all these cases and more, Neo-Core is looking for strategic partners who can adapt the basic technology to their needs. The company is not interested in going after any of these markets directly and they don’t think their current demo board makes sense for a real product. "As it is, the board is over-engineered," admits Brandin. "By the time anyone delivers a product, they’ll want a custom version that only has the features they want." In some cases, this will be a board that’s built with UTMC. In other cases, companies will want to build their own boards or will integrate the technology into something else they already have.

However the companies decide to do it, we’re getting closer to the time when associative processing will be commercially available in a number of application areas. Given the power required to use sequential processing for imaging, we may see an amazing leap in the things we’ll be able to do with our systems. That’s what usually happens when you can use more brain and less brawn.

Back to Recent L&S Marketing Articles