There are numerous potential applications for the Cell Matrix architecture, but they fall into a few broad categories.
Digital Logic Platform
It's certainly possible to use the Cell Matrix simply as a platform for implementing digital circuits, i.e. in the way an FPGA is used. While the current place and route tools for the Cell Matrix are a bit rudimentary, there's no reason a higher-performance toolchain can't be developed. Ongoing work at PSU has explored different aspects of automated circuit layout and routing on this architecture. However, given the relative expense of implementing a single cell (1000+ transistors for a 4-sided cell with a standard cMOS layout) and the novelty of this architecture, there's little reason to use a Cell Matrix vs. an FPGA for a standard digital circuit.
Nonetheless, simple applications have been developed (mostly as a proof of concept), including arithmetic circuits (adders, multipliers), small memories, small state machines, and a floating point unit.
A more compelling reason to use a Cell Matrix for a “standard” digital circuit is when other aspects of the circuit are non-standard. For example:
Another application area is dynamic circuitry, where circuits change over time (e.g., just-in-time circuit synthesis). Operating system concepts such as paging and virtual memory can be re-cast in the hardware domain, and the Cell Matrix provides an ideal platform for experiments in these areas.
The Cell Matrix has been used for implementing genetic algorithms as well as neural networks, taking advantage of its dynamic behavior to allow for run-time modification of the network.
Cell Matrix cells can also be used to implement Cell Matrix cells ("Super Self-Duality"), thereby allowing runtime customization of the basic cell structure without requiring actual hardware redefinition.
Another area of application of the Cell Matrix is in the area of smart structures. One example is the design of Smart Transistors: a basic switching element endowed with additional structures to support fault testing and mitigation, parallel synthesis, automatic routing and other exotic features, constituting a “supercell.”
Smart Connections are routing pathways constructed from cells, setup in a way that allows re-routing of connections on-the-fly, based on whatever criteria is relevant to the system (e.g., monitoring traffic flow and creating higher-bandwidth pathways as needed).
Smart Matter is based on the idea of a physical substrate, usable as a building material, endowed with a growable Cell Matrix computing layer. Circuits on the matrix can be used for local, low-level control of the properties of this substrate. For example, physical connections can be made or broken between these building blocks, based on I/O signals from the cells of the matrix. This micro-scale control can be used to affect macro-scale properties of the assembled material, such as rigidity, plasticity, and so on. Here is a video discussing this concept in more detail, including some simulations of its application to evolvable matter.
It's easy to conceive of how the Cell Matrix can be used to the benefit of manufacturing processes, including the manufacture of the Cell Matrix itself. Because cells can be used to build and change wiring pathways, and to perform I/O operations along these pathways, a layer of cells can be used to interrogate the behavior of an underlying circuit. This could be advantageous, for example, in the development of a new fabrication process, by allowing post-manufacture tests to be designed and run, in order to test sections of the underlying substrate.
One key issue, of course, in designing a test system is the possibility that the test system itself could be compromised. This is where the self-configurability of the Cell Matrix plays a critical role: the matrix can be used to analyze itself, so that only defect-free regions of the matrix are used to construct and extend the testing system. This work discusses the concept in more detail.
Another example of this technique is in the fabrication of a 3D Cell Matrix using self-assembly of individual cells. With undirected self-assembly, its not possible to know the orientation of the cubic blocks. However, by testing the system as it is being assembled, the system itself can self-analyze, detect and thus compensate for any misorientations that occur as the system is being self-assembled. This process is described in detail here.