Two Views of the Post PC World - Automata Processor and TOMI Celeste, Part 2: App Development
Design engineers and programmers who read Part I generally had two reactions:
- All this computing power is going to be awesome!
- Good God, what's a non-deterministic finite state machine? I'll have to go back to school.
The first reaction is accurate. The second not so much.
System design fundamentals can be traced to the beginning of the industrial revolution, and good design technique has been well understood for at least 100 years. The tools to implement designs change every decade or so, but the basics remain the same.
Developing with Micron’s Automata Processor
Micron's Automata Processor can technically be described as a non-Von Neumann nondeterministic finite state machine engine. In plain language that means it doesn't have a program counter and doesn't store instructions and data in a unified memory.
Figure 1. Micron Automata Processor System
Micron has not released much information on development tools for Automata Processor yet, but we can make some educated guesses on what they will include.
State Machine Simulator
One way to view the Automata Processor is as a programmable state machine where each state can have multiple successor states. Many hardware engineers and some software engineers are comfortable designing the circles and arrows of state machines.
Simple designs of up to several hundred states can be implemented and debugged using graphical interface tools similar to Susan Rodger's state machine simulator, JFLAP. JFLAP is a free download and widely used for both development and as a learning tool.
According to a review in the Association for Computing Machinery Inroads magazine:
"The tool uses state of the art graphics and is one of the easiest to use. The tool is undoubtedly the most widely used tool for simulation of automata developed to date."
Figure 2. JFLAP State Machine Tool
Many engineers are comfortable designing state machines, but for many more they are a black art like programming in assembly language.
At its simplest level, Automata Processor is a Pattern-Recognition Processor as shown in Figure 1 Micron Automata Processor System from Tom Pawlowski’s Micron patent. The pattern to be analyzed might be the letters that constitute words in a dictionary. It could also be a string of bytes that correspond to malware signatures being sent over a network.
Implementing a dictionary search requires hundreds of thousands of states, so manually defining each state using a graphical tool is impractical. Fortunately there is a simpler method using a "regular expression" language.