Jinn the Trinary Processor
The full article was originally published by Come from Beyond on Medium. Read the full article here.
Jinn is a general-purpose processor operating on trits. Its architecture imitates the brain of vertebrate animals thus avoiding many pitfalls concealed in the von Neumann architecture with the von Neumann bottleneck being the most notable one. Those familiar with FPGAs or artificial neural networks will easily see the rationale behind design choices put into the Jinn architecture, the others should skim over the famous “Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs” by John Backus.
Each merger has three inputs and outputs the value which arrives the first (if it’s not NULL). Each LUT has three inputs and outputs the value according to its internal truth table which can be set to any configuration of 0, 1, -1 and NULL values. Each latch has one input and constantly outputs the stored value which changes only when a non-NULL value arrives to its input, the latches can be deactivated on an individual basis to allow the LUTs pass their outputs directly to other cells.
Such arrangement allows to efficiently exploit asynchronous nature of the Jinn Computation Model. Note that the bus is used to configure the cells, to feed them with data sent by the supervisor and to receive data sent to the supervisor, the input/output values are transferred between cells in a neighbor-to-neighbor manner.
Jinn processor consists of cells connected to the supervisor via the fractal bus. The supervisor realizes the Environment-Entity-Effect protocol (EEE) used in Qubic. EEE is what makes Jinn a general-purpose processor. The topic of EEE is very sophisticated, it won’t be expanded in this article.
We have become familiar with the basics of the Jinn architecture and seen that it’s very simple. But this simplicity leads to very powerful solutions of computable tasks, this will be demonstrated with Aigarth.