The unparalleled parallel
Freeform is part of our Symbiotic research programme, and is an architecture which demonstrates the extreme flexibility of the Symbiotic approach to computing. Its primary features include:
- Arbitrary, extensible, and transmutable instruction set.
- Arbitrary data handling — no fixed word lengths.
- Parallelism can be efficiently exploited regardless of its form of expression.
Instruction set
A microprocessor based upon Freeform will have a basic machine instruction set of only a handful of predefined operations, yet it can be arbitrarily reconfigured at run-time to support any number of instructions of any complexity, format, and grammar, including the expansion of features such as the number and type of registers, stacks, other storage, and any arithmetic and logical function. It has the unusual ability of simultaneously supporting binary compatibilities with any number of other microprocessors of any other architectures and running programs for any mix of them concurrently.
For software developers a useful aspect of this capability is to ease the transition of porting software from one architecture to another. Code written for one architecture can be run on a Freeform processor and ported piece-meal to another architecture with each piece (function, library, module, etc.) being testable at each stage.
Hardware developers can use this ability to quickly test out the effects of changes to a microprocessor architecture at higher speed than a software simulation and lower cost than a programmable-logic implementation.
Data handling
Unlike conventional microprocessors which can only efficiently handle data of a small number of sizes according to a fixed word-length, a Freeform-based processor can operate on data consisting of any number of bits with equal ease and simplicity, making it ideal for applications requiring very high precision arithmetic or variable-length data. The data can even dynamically change length from instruction to instruction without the programmer having to worry at all about allocating, deallocating, or shuffling memory around — the ability to handle arbitrarily-sized data is inherent in the architecture.
Form of expression
Parallelism can be expressed in many different ways, such as through recursion, tree structures, multithreading, and instruction-level parallelism amongst others. The Freeform architecture is such that it can efficiently exploit the parallelism in whichever way the programmer prefers to work.