Week 2

February 1, 2024

For this second week, I have built the RAM module for my computer. This also includes the MAR and MDR.

RAM

RAM stands for Random Access Memory and is the short term place of storage for currently running programs on a computer. My RAM modules stores 16 bytes of data. I plan on expanding this in the future once I have finished this first building of the computer.

blank

MAR

MAR stands for memory address register. It controls the address that the RAM reads from. In this case it also controls whether we are in manual (programming) mode or in automatic (running) mode, which can be done by using the push switch on the left. In programming mode, there is a dip switch to change between different memory locations. In automatic mode, it works similar to one of the registers from last week, where it takes an input from the bus on which address to load, stores that address (unless changed) and then sends that address signal to the RAM module.

blank

MDR

MDR stands for memory data register. It controls the data which gets read from and put into the RAM. It uses the same manual and auto from the MAR in order to change modes. In automatic mode, there is again a DIP switch to set values to be put into ram and then push button to confirm and enter these values. In manual mode, it reads in data from the bus when given the signal to and then puts this data into the RAM. In both modes, it outputs the data to the bus when told to.

blank

Instruction Register

Additionally, this week I also built the instruction register as I forgot to build it last week. It functions exactly the same as the registers from last week, just inverted on the breadboard for easier access to the bus. It also has some different coloured LEDs representing a RAM location and an instruction number. This will be used much later on when we get to programming the computer.

blank

Video

Here’s a video showcasing how the different functionalities work. (without the bus since I haven’t built that yet)

Conclusion

In conclusion, this week I have spent a few hours building the RAM, MAR, MDR and Instruction Register. Next week, I will be building the program counter.

Leave a Reply

Your email address will not be published. Required fields are marked *