Week 2
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.
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.
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.
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.
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.