fbpx
Wikipedia

Instruction cycle

The instruction cycle (also known as the fetch–decode–execute cycle, or simply the fetch-execute cycle) is the cycle that the central processing unit (CPU) follows from boot-up until the computer has shut down in order to process instructions. It is composed of three main stages: the fetch stage, the decode stage, and the execute stage.

This is a simple diagram illustrating the individual stages of the fetch-decode-execute cycle. Legend:

In simpler CPUs, the instruction cycle is executed sequentially, each instruction being processed before the next one is started. In most modern CPUs, the instruction cycles are instead executed concurrently, and often in parallel, through an instruction pipeline: the next instruction starts being processed before the previous instruction has finished, which is possible because the cycle is broken up into separate steps.[1]

Role of components edit

The program counter (PC) is a special register that holds the memory address of the next instruction to be executed. During the fetch stage, the address stored in the PC is copied into the memory address register (MAR) and then the PC is incremented in order to "point" to the memory address of the next instruction to be executed. The CPU then takes the instruction at the memory address described by the MAR and copies it into the memory data register (MDR). The MDR also acts as a two-way register that holds data fetched from memory or data waiting to be stored in memory (it is also known as the memory buffer register (MBR) because of this). Eventually, the instruction in the MDR is copied into the current instruction register (CIR) which acts as a temporary holding ground for the instruction that has just been fetched from memory.

During the decode stage, the control unit (CU) will decode the instruction in the CIR. The CU then sends signals to other components within the CPU, such as the arithmetic logic unit (ALU) and the floating point unit (FPU). The ALU performs arithmetic operations such as addition and subtraction and also multiplication via repeated addition and division via repeated subtraction.[dubious ] It also performs logic operations such as AND, OR, NOT, and binary shifts as well. The FPU is reserved for performing floating-point operations.

Summary of stages edit

Each computer's CPU can have different cycles based on different instruction sets, but will be similar to the following cycle:

  1. Fetch stage: The next instruction is fetched from the memory address that is currently stored in the program counter and stored into the instruction register. At the end of the fetch operation, the PC points to the next instruction that will be read at the next cycle.
  2. Decode stage: During this stage, the encoded instruction presented in the instruction register is interpreted by the decoder.
    • Read the effective address: In the case of a memory instruction (direct or indirect), the execution phase will be during the next clock pulse. If the instruction has an indirect address, the effective address is read from main memory, and any required data is fetched from main memory to be processed and then placed into data registers (clock pulse: T3). If the instruction is direct, nothing is done during this clock pulse. If this is an I/O instruction or a register instruction, the operation is performed during the clock pulse.
  3. Execute stage: The control unit of the CPU passes the decoded information as a sequence of control signals to the relevant functional units of the CPU to perform the actions required by the instruction, such as reading values from registers, passing them to the ALU to perform mathematical or logic functions on them, and writing the result back to a register. If the ALU is involved, it sends a condition signal back to the CU. The result generated by the operation is stored in the main memory or sent to an output device. Based on the feedback from the ALU, the PC may be updated to a different address from which the next instruction will be fetched.
  4. Repeat cycle

In addition, on most processors interrupts can occur. This will cause the CPU to jump to an interrupt service routine, execute that and then return. In some cases an instruction can be interrupted in the middle, the instruction will have no effect, but will be re-executed after return from the interrupt.

Initiation edit

The cycle begins as soon as power is applied to the system, with an initial PC value that is predefined by the system's architecture (for instance, in Intel IA-32 CPUs, the predefined PC value is 0xfffffff0). Typically, this address points to a set of instructions in read-only memory (ROM), which begins the process of loading (or booting) the operating system.[2]

Fetch stage edit

The fetch step is the same for each instruction:

  1. The CPU sends the contents of the PC to the MAR and sends a read command on the control bus
  2. In response to the read command (with address equal to PC), the memory returns the data stored at the memory location indicated by the PC on the data bus
  3. The CPU copies the data from the data bus into its MDR (also known as MBR; see Role of components section above)
  4. A fraction of a second later, the CPU copies the data from the MDR to the instruction register for instruction decoding
  5. The PC is incremented so that it points to the next instruction. This step prepares the CPU for the next cycle.

The control unit fetches the instruction's address from the memory unit.

Decode stage edit

The decoding process allows the processor to determine what instruction is to be performed so that the CPU can tell how many operands it needs to fetch in order to perform the instruction. The opcode fetched from the memory is decoded for the next steps and moved to the appropriate registers. The decoding is typically performed by binary decoders in the CPU's control unit.

Reading the effective address edit

This step evaluates which type of operation is to be performed. If it is a memory operation, the computer checks whether it's a direct or indirect memory operation:

  • Direct memory operation – Nothing is done.
  • Indirect memory operation – The effective address is read from memory.

If it is an I/O or register instruction, the computer checks its type and executes the instruction.

Execute stage edit

The CPU sends the decoded instruction as a set of control signals to the corresponding computer components. If the instruction involves arithmetic or logic, the ALU is utilized. This is the only stage of the instruction cycle that is useful from the perspective of the end-user. Everything else is overhead required to make the execute step happen.

See also edit

References edit

  1. ^ Crystal Chen, Greg Novick and Kirk Shimano (2000). "Pipelining". Retrieved 2019-06-26.
  2. ^ Bosky Agarwal (2004). (PDF). Archived from the original (PDF) on June 11, 2009. Retrieved 2012-10-14.

instruction, cycle, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sources, news, newspapers, books, scholar, jstor, october. This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Instruction cycle news newspapers books scholar JSTOR October 2009 Learn how and when to remove this template message The instruction cycle also known as the fetch decode execute cycle or simply the fetch execute cycle is the cycle that the central processing unit CPU follows from boot up until the computer has shut down in order to process instructions It is composed of three main stages the fetch stage the decode stage and the execute stage This is a simple diagram illustrating the individual stages of the fetch decode execute cycle Legend PC Program counterMAR Memory address registerMDR Memory data registerCIR Current instruction registerCU Control unitALU Arithmetic logic unitIn simpler CPUs the instruction cycle is executed sequentially each instruction being processed before the next one is started In most modern CPUs the instruction cycles are instead executed concurrently and often in parallel through an instruction pipeline the next instruction starts being processed before the previous instruction has finished which is possible because the cycle is broken up into separate steps 1 Contents 1 Role of components 2 Summary of stages 3 Initiation 4 Fetch stage 5 Decode stage 5 1 Reading the effective address 6 Execute stage 7 See also 8 ReferencesRole of components editThe program counter PC is a special register that holds the memory address of the next instruction to be executed During the fetch stage the address stored in the PC is copied into the memory address register MAR and then the PC is incremented in order to point to the memory address of the next instruction to be executed The CPU then takes the instruction at the memory address described by the MAR and copies it into the memory data register MDR The MDR also acts as a two way register that holds data fetched from memory or data waiting to be stored in memory it is also known as the memory buffer register MBR because of this Eventually the instruction in the MDR is copied into the current instruction register CIR which acts as a temporary holding ground for the instruction that has just been fetched from memory During the decode stage the control unit CU will decode the instruction in the CIR The CU then sends signals to other components within the CPU such as the arithmetic logic unit ALU and the floating point unit FPU The ALU performs arithmetic operations such as addition and subtraction and also multiplication via repeated addition and division via repeated subtraction dubious discuss It also performs logic operations such as AND OR NOT and binary shifts as well The FPU is reserved for performing floating point operations Summary of stages editEach computer s CPU can have different cycles based on different instruction sets but will be similar to the following cycle Fetch stage The next instruction is fetched from the memory address that is currently stored in the program counter and stored into the instruction register At the end of the fetch operation the PC points to the next instruction that will be read at the next cycle Decode stage During this stage the encoded instruction presented in the instruction register is interpreted by the decoder Read the effective address In the case of a memory instruction direct or indirect the execution phase will be during the next clock pulse If the instruction has an indirect address the effective address is read from main memory and any required data is fetched from main memory to be processed and then placed into data registers clock pulse T3 If the instruction is direct nothing is done during this clock pulse If this is an I O instruction or a register instruction the operation is performed during the clock pulse Execute stage The control unit of the CPU passes the decoded information as a sequence of control signals to the relevant functional units of the CPU to perform the actions required by the instruction such as reading values from registers passing them to the ALU to perform mathematical or logic functions on them and writing the result back to a register If the ALU is involved it sends a condition signal back to the CU The result generated by the operation is stored in the main memory or sent to an output device Based on the feedback from the ALU the PC may be updated to a different address from which the next instruction will be fetched Repeat cycleIn addition on most processors interrupts can occur This will cause the CPU to jump to an interrupt service routine execute that and then return In some cases an instruction can be interrupted in the middle the instruction will have no effect but will be re executed after return from the interrupt Initiation editThe cycle begins as soon as power is applied to the system with an initial PC value that is predefined by the system s architecture for instance in Intel IA 32 CPUs the predefined PC value is 0xfffffff0 Typically this address points to a set of instructions in read only memory ROM which begins the process of loading or booting the operating system 2 Fetch stage editThe fetch step is the same for each instruction The CPU sends the contents of the PC to the MAR and sends a read command on the control bus In response to the read command with address equal to PC the memory returns the data stored at the memory location indicated by the PC on the data bus The CPU copies the data from the data bus into its MDR also known as MBR see Role of components section above A fraction of a second later the CPU copies the data from the MDR to the instruction register for instruction decoding The PC is incremented so that it points to the next instruction This step prepares the CPU for the next cycle The control unit fetches the instruction s address from the memory unit Decode stage editThe decoding process allows the processor to determine what instruction is to be performed so that the CPU can tell how many operands it needs to fetch in order to perform the instruction The opcode fetched from the memory is decoded for the next steps and moved to the appropriate registers The decoding is typically performed by binary decoders in the CPU s control unit Reading the effective address edit This step evaluates which type of operation is to be performed If it is a memory operation the computer checks whether it s a direct or indirect memory operation Direct memory operation Nothing is done Indirect memory operation The effective address is read from memory If it is an I O or register instruction the computer checks its type and executes the instruction Execute stage editThis section may need to be rewritten to comply with Wikipedia s quality standards You can help The talk page may contain suggestions June 2019 The CPU sends the decoded instruction as a set of control signals to the corresponding computer components If the instruction involves arithmetic or logic the ALU is utilized This is the only stage of the instruction cycle that is useful from the perspective of the end user Everything else is overhead required to make the execute step happen See also editTime slice unit of operating system scheduling Classic RISC pipeline Cycles per instructionReferences edit Crystal Chen Greg Novick and Kirk Shimano 2000 Pipelining Retrieved 2019 06 26 Bosky Agarwal 2004 Instruction Fetch Execute Cycle PDF Archived from the original PDF on June 11 2009 Retrieved 2012 10 14 Retrieved from https en wikipedia org w index php title Instruction cycle amp oldid 1179831924, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.