Gateless Majority Logic

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
While composing a difficult email to Japan, fishing long lost secrets of Takahasi's non-quantum DGate:
I was drawing lame pictures again to make up for my complete illiteracy in both Japango and Engrish.
But none of that is my current point, only the story of how I've gone from confused to completely nuts...

I stumbled upon something that only relays (and maybe mosfets) can do. Instant Pass Through Carry.
Check it out: The coil performs XOR, and nothing thereafter needs to move for Carry to ripple through.

Once all carries are known. Wait one invert of delay, and all sums can also be known. The number of
bits doesn't matter. Carry look-ahead in this case would be pointless, ripple may be as quick or better.

RelayAdder.png


If you are hurried for SUMs and don't want to wait one extra cycle on relay inversion.
You could use inverting transformers instead. No moving parts, and the speed of wire.

Transformers can't invert DC. If you chose to use transformers, would have to rely on
opposing AC phases. Two signals of similar phase won't activate, but opposites would.
Wether AC or DC driven, a relay's coil is activated by the same logic function as XOR.

Doesn't matter which end of a XOR coil might also feed the normally closed contact.
Normally closed proves both coil inputs to be in the same AC or DC state anyhow.
If X Y are the same, they also rule the Majority. If X Y differed, the switch would be
pointing at Z instead, for a tie breaker. Carry shares the same logic as Majority Vote.
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
I've been informed by Harry Porter that I've independently reinvented
Konrad Zuse's Full Adder. It had a similar instant ripple, but omits the
inverter. Instead using the "Swap with Evil Twin" method of inversion.
Revisit post #13 if that theory is no longer fresh in mind.

Zuse'sAdder.png


Sixteen contact points seems a bit much though. Assuming a relay
could serve for both inversion and reinforcement, I've used only eight
contacts and the same count of coils.

In my scheme, one step of inverter delay exists between instant ripple
and sums. Konrad's assumed inverter to setup the evil twin carry input
must be somewhere off-page. One step of delay before instant ripple.

Both schemes have fanout issues. Comparing worst cases: My carry
may have to drive N DPDT's configred as buffers/inverters. Konrad's
notcarry may have to drive N sums. If each sum drives a fan of one,
its a wash. If each sum has to drive a larger fanout, then my scheme
guarantees fresh drive per sum.

If transformers act as inverters, sums require one less mechanical step.
But driving N transformers plus N or more sum loads strains carry fanout.
Doubtful that AC (required for transformers) could drive coils faster than
DC. Dead time around zero crossings can't be helping. Reactance and
audible noise become problems if drive current alternates too quicky.

My idea to abuse AC phase logic to save moving parts in a relay adder
might have been shortsighted and wearing the wrong goggles. Every
problem now has to be solved by Parametons. Like Pythagorus with
his damn triangles. Or a sasquach who just re-discovered the wheel.

Apparently Zuse is pronounced Tsusza, and Harry Porter ain't Potter.
Other sources maintain this adder was first used in Konrad's Z3.
I just want the story behind that smudge.

http://web.cecs.pdx.edu/~harry/Relay/
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Evolved to improve fanout. Worst prior case, one contact could have been asked to drive every sum's loads.
The non-inverting case deserved buffering as well. Yes, that added two contact points. Now a pair of DPDT.

TwinDPDT.png


Still only half as many contact points as Konrad's. Perhaps his sixteen contact adder could do other nifty things?

Recall post #37, where several nifty things SPDT, DPDT, and DGates could do were detailed. DGate isn't quite
the same animal. Cause oscillators must ring up and latch a phase, instant ripple for DGate doesn't seem likely.
In DGate's favor: you get amplification at every relay-like gate, synchronus pipeline, and free optional inversion.
How logics that share the same simple truth table could be so different...

Aside from adding with a negated number, I can't yet imagine an instant ripple circuit for borrow. Maybe later...
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Subtraction with instant ripple wasn't impossible after all.
Had to abandon my circuit from Post #37 and start over.

TwinDPDT Subtract.png


Post #43 proved a better starting point. Swap NC for NO
for the top half of DPDT1 only. Not sure how complex it
is from here to make an ALU that does several things?

You might already have noticed SUM=DIFFERENCE.
Only challenge was that CARRY differs from BORROW.
For subtraction, X holds a different sign than Y and Z.

Perhaps we can aproximate the same circuit quantum
style, with reversible Feynman gates? But driving a
large fanout might make true reversibility impractical.
If I replace a signal with a freshly amplified copy, does
that count as killing off the original? I think it does...

Another DPDT to configure function could easily swap
two lines, simultaneous with XOR(X,Y) coils setting up.
So as not to waste any extra time. But what of other
functions? Not worried about AND OR. Worried about
shift right, since it must ripple in the opposite direction.

In my MRAM cheatsheet lookup table ALU (not of this
thread), I had a function that could mirror flip bit order.
01234567=76543210. Allows a leftward unidirectional
ripple (X+X equals X shifted 1 bit left) solve problems
that need rotate or shift to the right. I'm sure relays can
perform the same trick.

As with swapping NO for NC when subtracting, pass-
through substitution jitsu shouldn't eat any extra cycle.
One clack at the most, probably none. We know early,
from the instruction, what function rewiring is needed.
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
NASA wants to crowdsource ideas for a clockwork Venus rover with no electronics.
Seems to be a broken assumption that reliable digital electronics ends at 120C.

Those fools just need parametrons and an alternator to spin up three clock groups
of AC exciting currents. Gas filled thyratrons might serve as diodes. And relaxation
oscillators, if you rather excite with those. Reduce parametron DC bias requirement
with some alnico permanant bias.

https://en.wikipedia.org/wiki/Thyratron
https://en.wikipedia.org/wiki/Alnico

Why I have to sign up for spam to submit an idea? Let them figure themselves.
Contest prize is for a mechanics sensor. Nothing for suggesting the whole idea
of abandoning electronics is dumb.

Others have already pointed out relays. Wetted reed relays might be reliable.
Not saying mercury, but whatever melts on Venus, low temp solder perhaps?

Review Post #15 of this thread. Parametric amplifiers can be used for radio.
Vacuum tube technology might also be worth revisiting for radio purposes.
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Did you know that DC had a phase? I didn't. "Phase current", go figure...

While reading Josephson Junctions, the lighbulb in my head just started a dim glow.
Some equations that confused weren't always talking AC, but sometimes DC phase.
Like counting individual cars as waves on the road rather than a steady rate of flow.

All current paths in a superconductor are required to wave integer full circles of 360
degrees (or 2pi radians) before DC can loop the same path again. Because there
are many paths to simultaneously solve, that locks a whole brick into one uniform
state regardless of its size. Maybe also what a condensate means? I'm not sure.

Lets shape that brick into a loop. At some point on the loop we paint a finish line.
With a hot chick waving a checkered flag, or maybe its just a Josephson tunnel
Junction. She's flagging each car in the Cooper pair HOV lane as-if a wave had
passed, but we know its cars... And each car is a 2pi phase shift in the wave
function of the race. More phase shift, more cars pass per lap, more DC PHASE
CURRENT. For quantum purposes, more conveniently expressed in Radians
than Amps...

And count of flux lines in the loop are the same integer count as waves of phase
current going around the loop. Least thats my current state of misunderstanding...
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Still noodling on relays. Not serious to build anything of them.
So many ways to stretch the functions of this primitive device.
Instant Ripple, Coil XOR, Majority Logic, Multiplexing.

8RelayALU1.png


Hopefully I remembered to buffer all possible results.
Each re-driven by fresh local constants at some point.

Only lightly loaded instant ripple should omit buffers.
No more than one coil load on ripple per ALU slice.
Here, SPDT3 was a necessary load for arithmetic.
Not in direct path of ripple.

7RelayALU2.png


Now much harder to explain the way AND/NOR/OR/NAND were derived, but managed to rid a relay..

-edit- occoured to me much later that SPDT1 just before the result could be shared between bit slices.
ALU slices are driven by the same function lines. Replace SPDT1 w 4PDT, needs 1/4 relay per slice.

FunctionB DPDT could also upgrade to 4PDT and share between slices. 1/2 relay used per slice.
Mentioned before, DPDT1 and DPDT2 could also gang together as 4PDT to save another relay.

All savings bring the relay count down to 4.25 relay per bit, assuming 4PDT aren't priced stOOpid.
Saw Qty10 for $15 free ship on aliexpress before it started demanding my login to browse further.
Not to buy or donkeycart, login is now required just to search. Maybe they are under denial attack
or something? Those also seem to have an LED in parallel with coil, but only works one direction.
Wonder if LEDs could be upgraded to Red/Green type that light a different color per direction?

Domestic resellers of Chinese of DPDT ask around $1.20 each. Might require 6.5 DPDT per bit.
SPDT are right at a dollar, perhaps not worth mixing in. Domestic 4PDT $7.50ea, forget those.

Yeah, 4.25 relays per slice, after linking four slices and exploiting share. Qty9 4P2T + Qty8 1P2T.
Nothing new in this picture (I did draw it out), except too wide to fit screen. Pointless to upload...

Relay I'm looking at now is Omron MY4NJ, and socket PYF14A that snaps on a DIN rail.
Together $1.89, not including the rail. https://www.aliexpress.com/item/32859061939.html
Another code to search for same relay HH54P.

Bare relay, without socket, 90 cents. https://www.aliexpress.com/item/33026209849.html
Nevermind 90 cents. Soon as you + + + up to Qty4, shipping jumps from free to $3.37

30cent PCB DPDT's with no extras. https://www.aliexpress.com/item/32698886122.html
Maybe hot melt glue them to a 2x4 dead bug style? Found some like this already in the
trash. Some had to bang on the table to unstick, you know the drill. There's a popsicle
stick here about the right size to line up seven. Where's my damn glue gun gone to???
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Now down to 3.5 relays per bitslice when optimized for sharing.
Across a byte, all those floating poles eventually do get used.
Just noticed, QPDT3b is driven by shared functions and constants only.
If one SPDT per byte might do there. Two QPDT per byte could be saved.
3.375 relays per slice. Marked that up and noted a function routing error.
Something weird must have happened in the desphaghettification ritual.
3'375RelayALUwZero.png

Managed to throw in Zero detection at no extra cost, and gained NXOR.
But streamlined out a very important ROR function, which begs some replacement.
Can patch this weakness with lookup table in memory, or 8 way MUX +2.25 relays per slice.
You might count an 8 way MUX as only +2 relays (w QPDT sharing), +.25 for amplification.
Thinking: Circle L R 1 or 2 places, Nibswap, Reversal<>lasreveR, RRwCarry, SRArithmetic
A nice round 16 functions...

Wonder what any of this relay gated nonsense might still have to do with the original topic?
Let us consider how the Boolean functions are derived...
RelayMajority3.png

Keep in mind that inverting the output is the same as inverting all three inputs.
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Hopefully no mistakes this time...
16FnALU.png

Zero flag is 1 when True and all results are Zero. Thats the way its normally done, right?
Prolly cause a Zero flag thats Zero when Zero made too much sense.
https://en.wikipedia.org/wiki/Zero_flag

The shifters are a small pyramid of mux that might connect any eight arbitrary inputs.
Choose your favorite Shifts, Constants, Registers, Front Panel Switches, whatever...
64 arbitrary input bits, if you think of the whole ALU bytewide.
I could still map arbitrary shift patterns to MRAM instead.
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
So, counting the small number of working relays I have at my desk, the prototype is not gonna have hardwired shift.
There wouldn't be another slice to shift with anyhow. Back to the ALU only version, dumbed down to use all identical
DPDT, with previously mentioned FnB wiring error fixed.
HotMeltALU.png

Relays, check...
Soldering iron, check...
Wire and solder, check...
Glue gun, check...
Popsicle stick, check...
Dipswitch, check...

12V lamps I don't have, but can patch those in later...
Hopefully the contacts survive a few dry fires till I put
some lamps, transorbs, or MOVs across the coils.
These discarded relays are known to stick anyhow.

-edit-
Corrected </FnAND> from an output arrow to I/O.
Cause other slices won't have don't need relay 6.
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Hardly seems possible, but dropped another relay.
HotMeltALU2.png

Same relay count as before bytewide. But one less if only building a single bit demo.
By rearranging functions to place AND/NAND at 00x, was able to replace DPDT6b
with spare DPDT4b on the B function rail. Relay DPDT6 has now disappeared.

Which sucks, cause I already got six glued down...
Good! Glue strong but not that strong, popped right off no damage.
 

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Screwed royally. Dipswitches are SPST. Inputs need to be driven SPDT.
Open circuit is not a valid logic condition in every case I need to drive.
Not suitable for X,Y,Z,FnA, or FnC. Only the FnB input wouldn't mind.
Don't have right switches to fix, don't have enough relays to fake it.

Auto parts might be open/essential? Try there.

-edit-

Back from Autozone and Oreileys. Both had switches and relays.
Unfortunately, none available in quantity >2 or reasonable price.
Light bulbs were also rediculous, without sockets, or both.

So I stopped by my storage on the way back. Nobody was there,
but my card and key still seem to work. Excavated four DIN rails
and some octal relay sockets, but no relays. The big foam tile of
relays I once had or imagined, can't find any trace of it now...

Did find enough double throw switches to get this done, but all
different styles are gonna be a pain to mount even with glue.
I was also sure I had LEDs, but couldn't locate those either...
 
Last edited:

KD5ZXG

Limp Gawd
Joined
Mar 24, 2017
Messages
501
Look what I just found! 1Bit ALU just gained a front panel.
FrontPanel.jpg

BackPanel.jpg

Wrong kind of switch and one too few, but somewhere to hide the popsicle stick and 12V supply.
 
Top