Skip to main content

DESIGNING A RELAY COMPUTER: The Idea

JUST A RANT....
While learning about things in school, I believe, we have developed this habit of learning things for the sake of learning them i.e. learning without context. This, I believe, causes one of the two things,
we either feel that we do not have the intellect to understand how something works,
or we feel we know all that can be known.

Everything ever taught is so vague that its almost useless. take for example what we are taught about computers:
we know a CPU (Central Processing Unit) has 3 parts;
ALU (Arithmetic and Logic Unit), CU (Control Unit) and memory. Yet all we know about them is their full forms and a one line description of their role in a computer.
We know that computers understand machine language and that machine language is a bunch of 1's and 0's but no one really explains how does that happen.
So, for most people a computer is just a magical black box. They command it to do stuff and that box does it.

Let's talk computers:

For almost a year now I have had this project in mind, to design and build a working computer. when I say building a computer i don't mean getting a motherboard buying the latest multi-core processor. when i say a computer, i mean designing an actual processor with hardware that has its own machine language. and try and write programs for it.The inspiration of this project came to me after I spent my summer break studying Ben Eater's "8-bit Breadboard Computer".

This was the first time I actually felt that I kind of understood how computers worked and how they executed programs to the extent that i felt i could make one too!....

If u look at computer history you realize that there are different ways to make digital computers.
you could in theory make:
mechanical computers,
electro-mechanical i.e. relay computers,
vacuum tube computers,
computers with discrete transistors,
computers with digital logic chips,
or program FPGAs.
Regardless of how you make the computer the fundamentals of digital computation remain the same.

The aim of this project is not to make a computer that is better than our modern computers. The aim is to make a machine that makes it easy for people to not only understand how computers work but also appreciate the astounding brilliance of the concept of digital computation itself.

In the upcoming blogs I will be discussing in detail about this computer I am working on. So, stick around maybe???

Got any queries??? 
E-Mail me at: shashwath.sundar@gmail.com

Comments

Popular posts from this blog

DESIGNING A RELAY COMPUTER: Relays

In the previous posts I highlighted the various concepts that are fundamental to designing a computer. Now I think its time to mention the ways of practically applying these concepts to design a computer. The first thing I should highlight is that I will not be using transistors, I'll be using relays. This is due to the fact that its easier to understand how a relay works than to understand how a transistor works. Also, this seems to be the easiest way to understand how computers actually work since we are using mechanical switches instead of solid state switches (transistors). What is a Relay?? Relays are basically electrically controlled switches. Inside a relay is an electromagnet. when the electromagnet is powered, it attracts a metal strip that in turn operates a switch. Most widely available relays are SPDT relays or Single Pole Double Throw relays. In these relays the switch has 3 terminals- Common terminal , NO i.e. normally open terminal and NC i.e. normally ...

Making a URISC Processor: The Idea

So a while back I saw this video on Youtube by "Gary Explains" talking about a "One Instruction Set Computer". For those who do not know, a computer processor does a fixed set of things or follows a fixed set of instructions. Usually modern processors have hundreds of instructions. In the OISC or URISC (Ultimate Reduced Instruction Set Computer) processor the idea is to have one universal instruction that the processor executes that allows the programmer to write any program. The first time I heard of this idea I fell off my chair with excitement (Literally). My mind was really blown by the fact that you could write any program with just one instruction. So after going through what "Gary" on Youtube had to offer... I sat down and tried to come up with a design of this hypothetical processor that executes only one instruction. In the video Gary talked about a processor that executed an instruction called 'SUBLEQ' which simply means, SUB tract and th...

Making a URISC Processor: Micro-Instruction Encoding

 In the last post I described the micro-instructions that are to be executed to execute the SUBNEG instruction. Given below is the table I had posted previously: I realized later that it still might not be entirely clear as to how this was working so I have made a GIF of the same to better explain how the "Subtraction" instruction is executed. Pretty cool huh?.... no??? okay 😢 In The GIF it is assumed that the following data is stored in the RAM: Address    Byte #0000           #32  [B(l)] #0001         #00  [B(h)] #0002         #33  [A(l)] #0003       #00  [A(h)] #0004       #20  [C(l)] #0005       #01  [C(h)] #0032         #07 [Data] #0033       #09 [Data] The next thing we need to do is try to optimize this process. In the above GIF you may or may...