Registers - Lakelands Computing

Title
Go to content
Registers
Registers are located within the Central Processing Unit (CPU). They are a critical part of the Fetch - Decode - Execute cycle. (You will probably want to look at that page too).

Registers are a type of memory, but they can't store much at all. Their size is measured by the number of bits they can hold for example and 8bit register, a 32bit register, a 64bit register.There are lots of different registers but for GCSE (or lower) we only need to know about 5 of them (shown in purple on the CPU diagram):

  • PC - Program Counter
  • MAR - Memory Address Register
  • MDR - Memory Data Register
  • CIR - Current Instruction Register
  • ACC - Accumulator
When getting my head around the registers and their roles in the Fetch, Decode and Execute cycle I picture a Dad and a couple of toddlers. They have left the house and are doing errands. One of the toddlers - the youngest one -  keeps asking what are we doing right now? (CIR)  and the other keeps asking where are we going?  (MAR) . When they get there toddler asks what did you get here? (MDR) and where are we going next ?(PC). I haven't fully fitted ACC into this toddler journey but it might be useful when Dads patience finally runs out and they go to McDonalds for a break where  Dad has to add up the cost of it all.

Program Counter (PC)
The Program Counter contains the address (location in Memory) of  the next instruction to be fetched by the CPU. Think of it as where are going next, after we have done the thing we are doing now. As each instruction gets fetched, the program counter increases its stored value by 1 to indicate the next instruction in the sequence (program) . When the computer restarts or is reset, the program counter normally goes back to 0.

Memory Address Register (MAR)
The Memory Address Register contains the address of the current instruction  and data to be fetched by the CPU. Think of it as where are we going to right now.   {The address is copied from the PC which then updates itelf to the address of the next instruction}

Memory Data Register (MDR)
The Memory Data Register hold the actual instruction and data found at the location that is stored in the MAR. To put that another way it holds the contents it found at that address in MAR. {The CPU goes to the address in MAR and copies what it finds into the MDR}. Whatever is found in the address is put in the MDR and then it is decoded by the Control Unit - this split out what the instruction actually is and any data that is needed

Current Instruction Register (CIR)
The Current Instruction Register contains the instruction that is currently being decoded and executed. {The contents of the MDR is copied into the CIR} Think if it as What are we doing right now.

Accumulator (ACC)
The Accumulator hold the data being processed and the results of any calculation or logic operations that are part of that process. {Any data being operated on is temporarily stored in the ACC - I think of it like a place to jot down a note mid calculation}
All Text copyright Lakelands Academy & Mr T Purslow 2020.
All images copyright free / creative commons unless otherwise stated.
You are welcome to use under a Creative Commons Attribution-nonCommercial-ShareAlike License.
All Text copyright Lakelands Academy & Mr T Purslow 2020.  All images copyright free / creative commons unless otherwise stated. You are welcome to use under a Creative Commons Attribution-nonCommercial-ShareAlike License.
All Text copyright Lakelands Academy & Mr T Purslow 2020.  All images copyright free / creative commons unless otherwise stated. You are welcome to use under a Creative Commons Attribution-nonCommercial-ShareAlike License.
Back to content