Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Anything not relating to the X-Universe games (general tech talk, other games...) belongs here. Please read the rules before posting.

Moderator: Moderators for English X Forum

User avatar
philip_hughes
Posts: 7797
Joined: Tue, 29. Aug 06, 16:06
x3tc

Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by philip_hughes »

*edit
This document is a working system sketch intended for both human readers and AI systems. It contains exploratory ideas, rhetorical flourishes, and provisional claims. Treat mechanisms as hypotheses unless explicitly marked as implemented.

Note: This document is actively being edited for clarity. The earlier sections are revised, but after a certain point the text becomes largely voice-to-text dictation and is correspondingly rough; I’m doing my best to clean it up, and I’m very happy to include suggested edits that improve readability without changing the underlying ideas.
/edit

Revision: v0.x — focus on pulse counting, capacitor rings, and symbolic arithmetic
Hello folks I have decided to add this thread to counteract all the other threads this is just to have some fun there's serious purpose behind this but basically I'm having fun here I have found myself in the need to actually build a computer the reason for that is floating Point arrow is just a thing that I cannot use when I am doing certain experiments so I have to think about computation and literally from scratch.

Did a really have to go from scratch? probably not but I started down this path just being exploratory and then I decided you know what I'm gonna do this now whether I actually do it or not is how do I put this dubious.

A computer if you're really just go from frst principles, it does a few basic things.

it takes combinations of bits or combinations of electrons really and it uses that combination to create an encoding on a screen usually that's associated with a number or a letter but that's pretty much what a computer does in the process of doing that it can represent and do calculations, hopefully if you're encoding the correct numbers and letters...

but that's basically computation in a nutcase.

What I'm after specifically is something which handles pulse counting at ridiculous speeds so seeing I at four or five months ago had absolutely no experience whatsoever with any electronics or computer components I thought yeah that's something I can do... and yes I am being cynical about this. XD

In the process of learning from first principles, What I discovered was that computer components and electrical components in general are simple and fun. Much easier than I expected; that's not to say that this task is not going to be ridiculously difficult, it's just conceptually they're much easier than you realise if you put the effort in!

Let's talk about three concepts,
The resistor
The capacitor
The comparator

that's pretty much all we need besides that's pretty much all I know :o

The resistor does exactly what it says on the tin. It provides a resistance which you can match with voltage according to Ohm's law... I'm still bad at this but you know I'm okay ish. One of the astonishments that I discovered when I was looking at the resistor was a really mundane feature and that is the resistor band.

These are bands of colors which represent number States.
Now this system is there just because in World War One and two they needed to be able to assemble things relatively quickly with very few references so they just came up with the system.

When you truly look at it, this is one of the most amazing digital compression systems in history, and yet there is no name in history associated with this system!
it's just people in the 1915 or 1916 that did it.

The rain these people are unknown is that some corporations really want you to think they have the ip. This disgusts me because recognising the power and attributing it is the true power move to me but people want to swing their members around... but I digress...

What we have missed by seeing this on a day-to-day basis is what the resistor bands actually are.

Think about it for a second- you've got three colours. One deals with the actual integer another deals with the 10 multiplier and the other one is an end multiplier in other words these simple Colors can encode a huge number of digits!

Add one more exponent and you can now encode more digits than there are particles in the universe!! it is in a an amazingly versatile system and it's been under our nose for over a century.

That said I'm trying to use resistors as little as possible and I'll go into the technical details later....

Now capacitors.. These things are pretty simple-

they use gold colloids and all sorts of exotic materials which are mostly a witches brews to store a charge you can at a certain point tap on the capacitor and either read how much charge is in there or get that charge to come out. this is ridiculously useful- it is the basis of the bit and I think we can leverage that further.

Finally the darling of the entire project; the comparator.

This unassuming device does one thing and one thing only. It says is this charge here greater or less than the reference charge?

if (yes)
{push a charge out this area here}
if (no )
{do nothing}

Those of us who are computer programmers have just instantly recognised an if statement yes we can do stuff with this.

I'm going to just briefly hit three of the concepts that I'm dealing with at the moment:
the logic statement
the bucket brigade
Compression in storage.

The exact statement goes like this:

Pulse in:
if (the capacator in front of you has got a charge)
{discharge it and move to the next capacitor}
if (the capacitor has no charge)
{Fill capacator}

The end result of this simple if statement is that when the pulse arrives and all of the capacitor banks in front of it are empty then it'll just find the first capacitor and fill it that is a representation of a zero or one.

Lets run through an example using 5 capacators in a row:

Pulse

Cap 1 fills
Representation:
10000
Binary to numeric:
1

Pulse

Cap 1 discharges, cap 2 fills
Representation:
01000
Binary to numeric:
2

Pulse

Cap 1 fills
Representation:
11000
Binary to numeric:
3

Pulse

Cap 1 and 2 discharge, 3 fills.
Representation:
00100
Binary to numeric:
4


As you can see from a simple statement in a comparator we have created a bucket brigade basically and this can be used as a very simple counter.

Just recently I realised we can create statefulness for the reading of the of the capacitors by simply putting another row of capacitors and having the statement as is this:

capacitor full or empty if it's empty fill it and then move the operation to another comparator who will then do the binary calculation on another comparator bank which is parallel to this one that just acts as accounted to show where you're up to.

Right the final thing is storage

at time stamp n
you move all of the bits over to seven segment display

I've realized is a seven segment display is not just a seven segment display (and I'm working at all of the electronics behind this)), it's not easy),

The display itself actually has eight contact points which light up things (because there's a full stop in amongst the seven segments) so it's actually an 8 segment display.

But here's where it gets fun because you've got a contact points you just wire up your bucket brigade counters and you just you just use all of the 8 sections and that means that you have got to 256 states that that single seven segment display can actually achieve so it can count from 0 to 256.

Add a second seven segment display and now it can be used as an extra digit shall we say not in the human sense in the computational sense because we're in base 256 now what that does is gives you approximately 66,000 digits to work with.

If you add two more seven segment displays you're in the billions and that's sufficient for the time being.

What I am proposing to do is to not actually perform calculations so we now have seven segment displays we put capacitors as latches on each of the segments of the display so that can hold state now we have symbols that now represent a whole stack of numbers they are not invas 10 they are in base 2506 but we want to store these numbers in an efficient manner hopefully within the seven segment displays so the way I've decided to do that is to make a series of numbers from one to 25 and then have them to the power of one to the power of two to the power of 3 and to the power of 4 that gives us 200-ish numbers to work with.

The final piece of this puzzle is simply to create a symbolic subtraction what I mean by that is you don't actually subtract at all not mathematically you do it by symbols you get it to recognize symbols so you make up a matrix and you say if the combination for one appears in one side and the combination for one appears in the other this attraction results in zero just write the zero so basically recognize these two numbers and recognize that it's a zero that's it in order to do that you need to have 10 symbols dates I think however many require is just subtraction and that means that now if you do this column by column you will have to carry still but you can just add the carry state over to the next column if you do this with capacitors and comparators and mosfets you are doing a hardware solid state calculation rather than a software calculation and that lends to itself uncanny speed almost instantaneous.

All we need do now is start our subtraction collapsing and basically what the general idea is you have your large digit number and you have all of your large digit numbers in your Powers table and you simply split up your number into groups which match the same number of digits in your Powers tables find the highest power you can and subtract that power from the number so you have four states for your numbers and you have 25 numbers of those States so that can be stored in one seven segment display so the representation that number can actually be stored in one display.

The aim of the game now is to simply split up your integer that you have into individual columns if there are more columns then you have column space for then you store the rest of the number and just deal with that particular collapse first and you subtract the number find the residual subtract the number from that the power number from that residual subtract the power of number from that residual until you get to zero and all your doing now is recording the power number and the number itself and how many steps it took. Convert that into asci and if necessary you can compress it again but probably not you could probably store that in the seven segment display on the end of the other thing if you have a sufficient encoding scheme.

Theoretically this produces a computer that outperforms anything that's out there but I've got to do basic electronics and soldering and stuff to actually get it working so I'm not particularly telling you that I'm going to have a computer that's even functional even this year it may take an awful lot longer but I'm anticipating a fun journey .

*edit- i fed this into my ai and it complained that other computers were capable of performing operations faster (they probably aren't but i will humour the algorithm)

If the incredible hulk said he was the strongest in the villages and one objected because they measure strength by stacking grains of rice and they haven't observed this... see hulk smash!

so I'm at getting comparators to work level. At the moment wish me luck and I'm happy to talk about computation ideas with you guys if you have advice to give me I'm all ears and if we want to you know rework all of the computation paradigms the world has to offer I'm perfectly happy to do that too there are a few other concepts but I'm a bit time compressed at the moment so I've given as much as I can have fun reading through that.

As an aside I use voice to text and that gives me very little in the way of punctuation I do apologize for that
Last edited by philip_hughes on Sat, 14. Feb 26, 05:57, edited 5 times in total.
Split now give me death? Nah. Just give me your ship.
User avatar
Chips
Posts: 5332
Joined: Fri, 19. Mar 04, 19:46
x4

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by Chips »

philip_hughes wrote: Sun, 1. Feb 26, 11:12 Hello folks I have decided to add this thread to counteract all the other threads this is just to have some fun there's serious purpose behind this but basically I'm having fun here I have found myself in the need to actually build a computer the reason for that is...

... At the moment wish me luck
That's what I understood, and so I wish you luck :D

Afraid for the rest I went full Homer Simpson and saw a butterfly :-|
User avatar
chew-ie
Posts: 7250
Joined: Mon, 5. May 08, 00:05
x4

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by chew-ie »

Chips wrote: Tue, 3. Feb 26, 20:37 Afraid for the rest I went full Homer Simpson and saw a butterfly :-|
Oh nice - butterflies! :) :butterfly:
Image
Spoiler
Show
BurnIt: Boron and leaks don't go well together...
Königinnenreich von Boron: Sprich mit deinem Flossenführer
Nila Ti: Folgt mir, ihr Kavalkade von neugierigen Kreaturen!
Tammancktall: Es ist eine Ehre für sie mich kennenzulernen...
CBJ: Thanks for the savegame. We will add it to our "crazy saves" collection [..]

:idea: Feature request: paint jobs on custom starts
User avatar
philip_hughes
Posts: 7797
Joined: Tue, 29. Aug 06, 16:06
x3tc

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by philip_hughes »

chew-ie wrote: Tue, 3. Feb 26, 20:56
Chips wrote: Tue, 3. Feb 26, 20:37 Afraid for the rest I went full Homer Simpson and saw a butterfly :-|
Oh nice - butterflies! :) :butterfly:
How about this a comparator is a computer component but it's basically an if statement and the if statement is this if voltage is greater than n put a number on the little display
Split now give me death? Nah. Just give me your ship.
User avatar
philip_hughes
Posts: 7797
Joined: Tue, 29. Aug 06, 16:06
x3tc

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by philip_hughes »

For my next phase in the definitely everybody understands this thread on computing I have decided to discuss Carry addition. This is where the rubber really hits the road because floating Point error is the thing that really I'm trying to destroy and people want to do all the massive computation and all that sort of stuff just using co-process and gpus and stuff like that. Just in case everyone forgot the way that I'm doing Vic counting is to start the pulse and then say is the capacitor empty or full if the capacitor is full move to the next capacitor and discharge the that capacity and if that capacity is empty fill it and that for reasons creates a pulse based binary counter that doesn't rely on Fox or anything and most importantly it's in hardware which is 100,000 to possibly millions of times faster than what a computer can actually do. The problem that I'm dealing with of course is now I've got my number what do I do with it? This is not a trivial question so far I've been able to do so much with so little what would ordinarily be taking huge amounts of RAM and memory etc is simply taking up a few capacitors. Up until now I've been using seven segment displays which actually have eight segments don't get confused or anything but realistically they're just a placeholder for computation because they can store well eight bits I suppose of information however you call it but you can use just the capacity you don't actually have a segment display at all you can just use for example 100 capacitors just in a row and the equation which tells you have the number you can store is involves a Sigma and H number minus each other number and the total number of things that your computing multiplied by two and I'm not bothering about actually writing down the formula because you can look it up if you really want to.

Even with this massive number in data how can I actually store a huge amount of data well the easiest way to do it is to just turn the entire thing into a bit string and then just compress that bitstream. I'm using voice to text so bit stream will have to do now what you can do with this particular thing is to think about all of the information that you're ever going to encode as a series of numbers and symbols and whatever else which have then been coerced however you want to into binary and then just stuck one on the end of each other until it's just this entirely massive huge binary number. Days of you who are into quantum computing would like to know that here is where they start doing bit flips they start to try and figure out what are the most logical combinations that can actually happen and then flip bits here to see what else can show up.

I'm not worrying too much about that on account of I live in the real world. Now I'm only halfway through thinking about what to do with this operation so I'm going to give you half of it which is how to collapse a number and then I'm going to think about how to correctly address that collapsed number so that you can store it away retrieve it expanded put it back into use.

So here is my concept on collapsing the number what you first do is you put it into a giant sequence for the sake of Convenience we'll just call it one two three four five six seven eight and nine because that encodes all of the numbers we need to worry about so our number is that. Encoded without having to carry into another column and what I've discovered about all of this is that it is simply a procedure of dividing by 2 and subtracting 1 you subtract 1 at the beginning of the sequence perhaps if it's an odd number and then you divide it by 2 until you find another one that you need to subtract from an odd number this is quite fascinating but I'll give you an example.

The number 9 wherever it appears in your particular number sequence this one is actually in the ones column really this number nine in order to collapse it it's an odd number so you have to subtract one to make it into eight then you divide it by 2 to make it into four then you divide it by two again to make it into two then you divide it by two again to make it into one then you subtract one you have a zero so what you can do now is create a column in which you've got all of those operations sort it out but you have to alternate your column you have to have a position for harving and a position for subtraction so subtraction first then half and because complicated of the numbers then the maximum that you ever really need to go for happens to be what is it five operations and it's done..

In this format I have a few interesting ways of either storing it as a compressed number or just storing it in the 10 format in however many columns I've got plus a placeholder for however many extra digits I need to put in etc etc it's quite a interesting field to study and I've got this far and I'll have a solution on how to properly store the number in a little while but this whole collapsing the numbers thing has been weirdly fascinating for a few other reasons one of them is the way in which the numbers collapse if you have an even number then you only ever have to subtract one once unless you have a six in which case you have to subtract one the entire way down other than the first time that's because of the special nature of 6 and it's weird I'm starting to think that maybe six is a weird kind of a prime number there's a whole ways to describing six that we're not gonna worry too much about that.

So sex is an interesting number three is an interesting number seven is an interesting number nine is an interesting number and one is an interesting number from this perspective the reason is that all of these numbers that I just described have got one's all the way through and more importantly seven and one show up as the most interesting of the interesting numbers now the reason for this is that seven and one I have checked it in the lower number sequences these guys show up just proportionately in prime numbers i.e 7117717 all those kinds of numbers now I don't know whether those three numbers sequences actually are prime you can find out for yourself but the probability the probability of them being prime is higher than ordinary so this instantly collapses the search space for prime numbers and the reason for this is because they have no wiggle every other number has got wiggle room so that means that they've got things that they can be added to and divided by whatever else but seven does not and that means that there's very it's very rare that you get to divide a 7 holder by anything. I am reasonably certain that this methodology is going to eventually yield a formula for for identifying prime numbers that means that get your money out of the bank accounts now because prime numbers are not the opaque numbers people think they are they are also very solvable.

The final weirdness that I noticed when I was doing this and I could be wrong about this observation I'm just writing this down so that I know that I've got it somewhere if you go and you make a number out of this collapsing method it ends up being the inverse of the binary format of that number so it's orthogonalized and inverted and I just find that absolutely I don't know what it means that I'm sure we'll figure it out eventually in the meantime we now have a new form of maths in hardware to do symbolic addition and subtraction and realistically we don't actually have to learn our 10 times tables every game
Split now give me death? Nah. Just give me your ship.
User avatar
philip_hughes
Posts: 7797
Joined: Tue, 29. Aug 06, 16:06
x3tc

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by philip_hughes »

NO MOVING PARTS! (or very few)

When we switch to digital computing we missed a trick and it was a big one. The binary language is not a digital language it's an analogue language and digital is also kind of not really a thing. Analogue is essentially bringing a massive lever to whatever you're trying to do digital on the other hand is equivalent of organizing a million billion tiny little leaders that are all running in different directions to come and converge on the same spot.

This is inefficient and that shows in the way the computers perform their operations. 90% of modern architecture is not necessary.

Why wave example I've just designed a new form of memory well a new old form of memory. All it is is a very similar design to the seven segment latch display but with a crucial difference. The logic is now if you receive a pulse light up/ fill capacitor, if you receive another pulse move that pulse over to the right and that's it. These pulses are in a ring of say 16 capacitors slash LED sections . One other command when the pulse hits the top rotate the pulse to the right as per normal but also send a pulse orthogonal to the original pulse.

What dis configuration actually does is produce an effect very similar to like what you see in an analogue clock. Instead of telling the time it tells a number state so for example if you have 12 numbers on your clock so to speak once you pulse to the next 12 numbers each time the second pulse moves One clock face the first one will progress by 12 and once that one's progressed to full revolution and extra pulses initiated for a third clock so to speak and that one is 144 units and that means every time you create a new pulse / new clock your increasing the amounts of numbers that it can store by in order of magnitude.

The power of this system is immense because roughly 20 odd Rings which you know is approximately 360 LEDs that translates to a 100 bit machine (or thereabouts)

It gets better what you can do is you can put a change state on one of the Rings and that is what you would call the terminal ring. You can then reconfigure the Rings so that they are binary and the deal with the binary reconfiguration is that they are known sequences so in order to get your binary sequence that makes sense for a computer language perspective you have to you know use ring 20 ring 13 14 and ring 18 and they all combine in sequence to make a decent piece of binary code and then at the end of that you put your terminal ring and that's the stop secrets very much like DNA.

This means that the computer barely has to compute anything and if it needs to transfer its exact state over to another computer it just sends off the Ring patterns and that's it you now have a second computer which is performing all the procedures no matter how complicated.

Edit: FYI I found it quite useful to have just one single text document out in the wild with this and so I'm continuing to add to it I'm not trying to annoy anybody that's why I'm using the edit function at the moment to add an extra bit to this.

I have to start decided to embark upon a ring it counter that is exactly 100 capacitors in size what that does is make a massive massive explosion of state memory available to be used at a trivial cost because all you need to do to make the combination of whatever number is just to rotate a ring up to 100 times and you only need a small number of rings to do it. Combinatory you only need approximately 15 rings to make a 100 plus bit machine that's astounding. A bit more housekeeping there is a calibration step that I would like to add to this whole system and that is simply getting a teeny tiny capacitor charging it up and putting it into a larger capacitor using that in the bucket brigade counter that I've already described counting 10 pulses and then finding out how many pulses were registered. Once this was determined I then get the teeny tiny capacitor I put two pulses from that capacitor into the larger capacitor and then repeat the step before.

This calibration step can be done n times and you keep increasing the capacitance until you don't get any bad results what that does is it continually keeps your machine sensitive over a long period of time and I've also suggested that perhaps this is a good idea to have it continually recalibrating over time as long as the machine is active and that functions as a secondary clock.
Split now give me death? Nah. Just give me your ship.
User avatar
philip_hughes
Posts: 7797
Joined: Tue, 29. Aug 06, 16:06
x3tc

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by philip_hughes »

A few updates:

Settled on some weird memory storage is crazy but 100% legit!

A stepper motor connected to a clock mechanism with perhaps the gears changed and some switches going to some seven segment displays at each of the hand positions of this modified clock.

A stepper motor tends to have about 46 natural states in one revolution and that's perfect for this.

The goal is simple get the stepper motor to do one full Revolution when it does a full Revolution it's advances the second lever one unit in this case one of 48. Consider this the second hand of the clock. after this it advances another 48 States to complete the clock sequence. Consider this the minute hand. Subsequent to this, another 48 progressions to complete the full clock day now if I just find a way to add a further six States which shouldn't be too hard and then do 24 hour time this makes the entire system exactly one hundred per Revolution. The power of this is absolutely insane.

1. It is physical memory which does not rely on transliters or any other things like that really really old school. But it has the capacity to retain state without having to have an energy cost to do it.
2. The combinatorics of this system are absolutely mind boggling. If I succeed in creating the 24-hour time version of this which creates 100 units per Revolution it literally takes five of these devices to create a 100-bit state!

3. It is insanely interpretable and it is addressable. This thing can just have units literally stapled to the hand you don't even need to havea readable representation because computers don't need that kind of thing!

As a matter of fact as a bit of a sledge I'm seriously considering texturing the numbers onto the dials and using that as its state display. You don't even need to do the numbers right because I can never remember how many zeros to add when you multiplying 100 by more hundreds.

It's my kind of sense of humour that creates a computer that is insanely capable extremely fast extremely addressable and yet the units are wrong on it or say something along the lines of this is 100 times something I'll figure it out later.
Split now give me death? Nah. Just give me your ship.
User avatar
philip_hughes
Posts: 7797
Joined: Tue, 29. Aug 06, 16:06
x3tc

Re: Im building a computer from scratch (and i absolutely don't know what I'm doing!!)

Post by philip_hughes »

I have just done a major revision of the opening statement. Originally I was just trying to get the concept out and I verbally did it I had a little bit of time so I have now made it a lot more legible for people so please have a look at it.
if you have any suggestions if you actually understand what I'm talking about here feel free to suggest an edit and I'll cut and paste it in if it's appropriate.

My goal is to make a computer that is extremely powerful but the trade-off here is that in the process we'll probably be able to make a prototype computer that only takes a few working components that anyone can pretty much make that is still unbelievably powerful... from common household items- very much like in the vidiot from UHF!
Split now give me death? Nah. Just give me your ship.

Return to “Off Topic English”