Memory stores programs, as well as data. Thus, programs must go from memory to the CPU where it can be executed. Programs consist of many instructions which are the 0's and 1's that tell the CPU what to do. The format and semantics of the instructions are defined by the ISA (instruction set architecture).
The reason the instructons reside in memory is because CPUs typically hold very little memory. The more memory the CPU has, the slower it runs. Thus, memory and CPU are separate chips. CPUs usually run much faster than memory, thus memory is often the bottleneck when running code.
The purpose of this rather brief tutorial is to explain what steps are taken by the CPU to run a single instruction.
The instruction is fetched from (physical) memory, i.e. RAM.
Here are some details. The address of the instruction to be fetched is in a hidden register called PC (program counter). A hidden register is register that's not visible to the ISA programmer, but is on the CPU (and visible to the control unit of the CPU).
The instruction is copied from memory to IR, the instruction register, which is also another hidden register. The book calls this memory instruction memory, which refers to the instruction cache. They don't talk about cache to avoid introducing new terms that might confuse students. Think of cache as fast memory, for now, or just forget about instruction memory, and just assume it comes from RAM.
In order to figure out what the instruction should do, it needs to be decoded. Part of the decoding process fetches the input operands. For example, if you have an add instruction that adds the contents of register 1 and 2, and places the result in register, then the values of register 1 and 2 need to be fetched to perform the addition.
For an addi operation, you fetch one register, and you sign-extend an immediate value. Those two values are added. The CPU must know when it sees an add instruction to get two values from the registers, but when it sees an addi instruction, it must get the value from one register and a sign-extended immediate value. That's where the "decoding" comes from.
In the add example, addition is performed. This is carried out by a circuit called the ALU (arithmetic-logic unit).
For RISC machines such as MIPS, the only memory access occurs during load and store instructions. For other instructions, this step doesn't do anything. The memory being accessed is the data memory (which is really the data cache).
The result of the operation being performed in step 3 (ALU), is written to the appropriate register in the register file. A register file is hardware that stores all the registers.
Update the value of the PC. Normally, PC <- PC + 4. However, on branch and jump instructions, PC can be updated to other addresses.