Skip to main content

DESIGNING A RELAY COMPUTER: Registers and The Data Bus

In the previous post I explained how to make single bit memory circuit using relays. In a computer however, we want to deal with larger numbers not just 0 and 1. So, we can have N 1 bit memory units side by side and consider them as a single N bit number. The more bits you have clubbed together the larger a number we can store. For ease of explaining lets just consider four 1 bit memory units together.
These four bits can together can also be called a "4 bit register". The right most bit with the lowest place value is called the LSB (Least Significant Bit) and the left most bit having the highest place value is called the MSB (Most Significant Bit).
Now, with this four bit memory unit we can save any number from 0 to 15 i.e., from 0000 to 1111.
A memory register is of no use if it does not have DATA lines for us to read from or write to, so lets add them first...

In order to read and write to the register we also require read and write control lines. This is how they work:
When the Read line is pulled HIGH (connected to 12V), the register saves the data available on the Data lines.
When the Write line is pulled HIGH (connected to 12V), the Data in the register is available on the Data lines.Now, we can try and connect multiple register Data lines together via a set of conductors...This set of conductors connecting multiple registers together are called the 'Bus'. Since, they connect the Data lines hence, its called the 'Data Bus'. What is great about this configuration is that the Data Bus allows us to copy data from one register to another. For example, if you want to transfer data from register 'A' to register 'B' just switch ON 'A' register's write and 'B' register's read line. In this way A with write to the bus and B will read from the bus and hence, the data gets copied from A to B.Using the concept of the Data Bus we can connect any number of circuits together.In this post I have only explain the system at a theoretical level and not the internal circuitry. The detailed circuits will be shared in future posts. till then....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...