Before you keep reading...
Runestone Academy can only continue if we get support from individuals like you. As a student you are well aware of the high cost of textbooks. Our mission is to provide great books to you for free, but we ask that you consider a $10 donation, more if you can or less if $10 is a burden.
Before you keep reading...
Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.
6.6. The Machine Cycle¶
When software is installed onto a computer (by downloading it from the Internet or installing it from a disk), the program and any associated files are stored in secondary memory. The program’s code is stored as a series of bits that represent machine instructions. The code remains there until the user chooses to execute the program in question, at which point sections of the code are loaded into the computer’s memory.
To actually run the code, the processor then needs to retrieve instructions one by one from memory so it can run them. This process consists of three stages: fetching the instruction, decoding the instruction, and executing the instruction - these three steps are known as the machine cycle. A processor spends all of its time in this cycle, endlessly retrieving the next instruction, decoding it, and running it.
In the fetch cycle, the control unit looks at the program counter register (PC) to get the memory address of the next instruction. It then requests this instruction from the main memory and places it in the instruction register (IR).
Here, the control unit checks the instruction that is now stored within the instruction register (IR). It looks at the instruction - which is just a sequence of 0s and 1s and decides what needs to be done. Does the instruction say to add two numbers? Does it say to load a value from memory? Where in memory? The control unit interprets the binary instruction to answer questions like these.
Now the control unit sends the signals that tell the ALU, memory, and other components signals to cause them to perform the correct work.
The video below demonstrates a simple program running on a computer. This imaginary computer shown uses special registers to hold memory address (MAR) and data that just came in from memory (MBR). It also uses registers called AL and BL to hold values temporarily. Don’t worry about the details of those other registers, focus on the fetch/decode/execute cycle and how the PC and IR are used.
Microprocessor Tutorial by Matthew Eastaugh