The world's first probabilistic processor. On silicon.
Every computer since 1837 has assumed it knows the answer. Ruru knows it doesn't.
A hardware processor where distributions are the data type and Bayesian inference is a machine instruction. Synthesised to SkyWater SKY130 130nm standard cells using an EDA synthesiser I made that I've had sitting on my hard drive.
| Gates | 2,237 |
| Area | 11,844 µm² |
| Timing | Met at 100 MHz |
| Registers | 16 probabilistic (tag + mean + variance) |
| Novel instructions | PFUSE (sensor fusion), POBS (Bayesian update) |
| Prior art | None. This doesn't exist anywhere else. |
A GPS reading is not "I am here." It is "I am probably here, within this radius." A sensor reading is not "the temperature is 22." It is "the temperature is probably 22 ± 0.3."
Currently, computing with uncertainty requires Monte Carlo simulation (slow) or probabilistic programming languages compiled to sampling algorithms on deterministic hardware (elegant but slow). Both are abstractions layered on top of hardware that fundamentally cannot represent uncertainty.
Ruru removes the abstraction. Distributions are the primitive data type. Bayesian inference is arithmetic.
PFUSE — Sensor fusion in one clock cycle. Given two independent measurements of the same quantity, compute the optimal combined estimate. The fused result always has lower variance than either input. Information accumulates. Uncertainty decreases. This is why sensor fusion works, and it's now a single instruction.
POBS — Bayesian update. Condition a prior distribution on an observed value. This IS the Kalman filter update equation, implemented as a machine instruction. Kalman filters are library code on every other architecture. On Ruru, they're arithmetic.
PCMP — Probabilistic comparison. Not "is A greater than B?" but "what is the probability that A is greater than B?" Because when your data is uncertain, your comparisons should be too.
PGAUSS pr0, 3.42, 0.04 ; P-wave arrival time, station 1
PGAUSS pr1, 5.17, 0.06 ; P-wave arrival time, station 2
PGAUSS pr2, 7.83, 0.05 ; P-wave arrival time, station 3
PFUSE pr3, pr0, pr1 ; fuse stations 1+2
PFUSE pr3, pr3, pr2 ; fuse with station 3
PMEAN r0, pr3 ; expected arrival time
PVAR r1, pr3 ; how certain are we?
Three seismic readings. Three clock cycles to fuse them. One instruction to ask how certain we are.
Babbage (1837) → Setun (1958) → Burroughs B5000 (1961) → Ruru (2026)
Deterministic Ternary Tagged architecture Probabilistic
Named after the morepork (Ninox novaeseelandiae), New Zealand's only surviving native owl. In Māori tradition, the ruru is a watchful guardian — a bird of the night that tells you whether trouble is on its way. Ruru the processor does the same: it computes under uncertainty and tells you the probability.
When the ruru calls, it is a good sign. When it yelps, trouble is on its way. Ruru the processor tells you which one it is — and the probability that it's right.
I get to name cool things after birds because I like birds and now that BarraCUDA is popping off I can name things what I like. The morepork is a good bird. It sits in the dark, watches carefully, and tells you what's coming. That's what a probabilistic processor does.
The real morepork is endangered. If you like this project, consider donating to Forest & Bird, New Zealand's leading conservation organisation. They're the reason the takahē still exists and the ruru still calls.
Synthesised using Takahe, an open-source SystemVerilog/VHDL synthesiser. Placed via OpenROAD.
Apache 2.0.