Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 1.99 KB

README.md

File metadata and controls

48 lines (40 loc) · 1.99 KB

μFork/FPGA soft-core processor

μFork logo

uFork is a novel microprocessor architecture featuring:

  • memory safety
  • capability security
  • automatic memory-management
  • fine-grained resource limits
  • instruction-level concurrency

Processes are strongly-isolated, with mutable state held privately. They share information via immutable asynchronous message-passing. Dynamic memory-management and garbage-collection are implemented at the machine-level. Quotas for all resources are enforced by the hardware. Instruction execution is interleaved among processes, so progress is made on all programs concurrently. The blog post "Memory Safety Simplifies Microprocessor Design" describes the high-level design, and the rationale behind it.

A software virtual-machine implementation was previously funded by NLnet, and demonstrated the viability of this design. The current project implements the design using FPGA hardware, fully supported by open-source tooling. We plan to produce a soft-core processor that can be integrated with the LiteX framework.

The initial target hardware is the Fomu, which features a Lattice iCE40 UP5K FPGA.

Project Support

Logo NLnet: abstract logo of four people seen from above

Logo NGI Zero: letterlogo shaped like a tag

This project was funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.