The μCAPP is an abstract processor, based on concepts from Caxton C. Foster's 1976 book "Content Addressable Parallel Processors" (ISBN 0-442-22433-8).
Providing a .uc file to ucapp will assemble then file, clear the CAPP, load the assembled file into the CAPP, reset the instruction pointer, and execute the program.
$ go run ./cmd/ucapp -c examples/io/hello_world.uc
Hello World!
μCAPP is an unusual system from the modern view - memory is not addressable by
index (ie, mem_array[N] has value X), but by content (ie, return all memory elements where value is similar to X).
However, even in modern systems, a content addressable memory can be found in specific applications - for example, the TCAM memories used by network routers to look up policies based on IP or MAC addresses.
But professor Foster expanded on that concept, and designed computer architectures where the content addressable memory was not simply a fast-lookup peripheral, but the actual main memory of the system and a unique bit-mask vector processor.
He later worked on the design of the Goodyear STARAN system (1977) - developed for the US Air Force for air traffic control situations.
μCAPP looks to imagine a retro-history where STARAN technology was made readily avaible to the interested researcher - as the Intel 8080 and MOS Technology 6502 brought conventional linear memory array processors to the hobbyists of the time.
The μCAPP is composed of the following components:
- Content Addressable Parallel Processor (main memory)
- Microprocessor
- Instruction pointer
- Six 32-bit registers
- ALU
- Conditional execution flags
- Stack
- I/O channels
See capp/README.md
See cpu/README.md
See sio/README.md