ucapp

package module
v0.0.0-...-68e8ff9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2026 License: MIT Imports: 1 Imported by: 0

README

μCAPP - (micro) Content Adressable Parallel Processor

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).

Getting Started

Running a ucapp program.

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!

Historical Perspective

μ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.

Architecture

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
CLI Interface

See cmd/ucapp/README.md

CAPP Details

See capp/README.md

Microprocessor

See cpu/README.md

Serial I/O Peripherals

See sio/README.md

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
ucapp command
Package cpu implements the microprocessor and assembler for the μCAPP system.
Package cpu implements the microprocessor and assembler for the μCAPP system.
Package io provides I/O channel implementations for the μCAPP emulator.
Package io provides I/O channel implementations for the μCAPP emulator.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL