Instruction cycle

[1] The program counter (PC) is a register that holds the memory address of the next instruction to be executed.[2] Also, during a CPU halt, the PC holds the instruction being executed, until an external interrupt or a reset signal is received.For example, in RISC-V architecture, funct3 and funct7 opcodes exist to distinguish whether an instruction is a logical or arithmetic operation.The first instruction 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 whereas for ARM architecture CPUs, it is 0x00000000.)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.
This is a simple diagram illustrating the individual stages of the fetch-decode-execute cycle. Legend:
central processing unitboot-upProgram counterMemory address registerMemory data registerCurrent instruction registerControl unitArithmetic logic unitconcurrentlyparallelinstruction pipelineCPU haltfloating-point unitopcodesRISC-V architectureinterruptsIntel IA-32ARM architectureread-only memorybootingoperating systemcontrol busdata busbinary decodersaddressing modesTime sliceClassic RISC pipelineComplex instruction set computerCycles per instructionBranch predictorInstruction set architectureProcessor technologiesModelsAbstract machineStored-program computerFinite-state machinewith datapathHierarchicalDeterministic finite automatonQueue automatonCellular automatonQuantum cellular automatonTuring machineAlternating Turing machineUniversalPost–TuringQuantumNondeterministic Turing machineProbabilistic Turing machineHypercomputationZeno machineStack machineRegister machinesCounterPointerRandom-accessRandom-access stored programArchitectureMicroarchitectureVon NeumannHarvardmodifiedDataflowTransport-triggeredCellularEndiannessMemory accessLoad–storeRegister/memoryCache hierarchyMemory hierarchyVirtual memorySecondary storageHeterogeneousFabricMultiprocessingCognitiveNeuromorphicInstruction setarchitecturesOrthogonal instruction setApplication-specificVISC architectureQuantum computingComparisonMotorola 68000 seriesPDP-11Stanford MIPSMIPS-XPowerPCPower ISAClipper architectureSuperHDEC AlphaETRAX CRISUnicoreItaniumOpenRISCRISC-VMicroBlazez/ArchitectureOthersInstruction pipeliningPipeline stallOperand forwardingHazardsData dependencyStructuralControlFalse sharingOut-of-orderScoreboardingTomasulo's algorithmReservation stationRe-order bufferRegister renamingWide-issueSpeculativeBranch predictionMemory dependence predictionParallelismBit-serialInstructionPipeliningScalarSuperscalarThreadProcessVectorMemoryDistributedMultithreadingTemporalSimultaneousHyperthreadingSimultaneous and heterogenousPreemptiveCooperativeFlynn's taxonomyArray processing (SIMT)ProcessorperformanceTransistor countInstructions per cycleInstructions per secondFloating-point operations per secondTransactions per secondSynaptic updates per secondPerformance per wattCache performance metricsComputer performance by orders of magnitudeGraphics processing unitBarrelStreamTile processorCoprocessorMulti-chip moduleSystem in a packagePackage on a packageEmbedded systemMicroprocessorMicrocontrollerMobileUltra-low-voltageSoft microprocessorSystem on a chipMultiprocessorCypress PSoCNetwork on a chipHardwareacceleratorsAI acceleratorImage processorVision processing unitPhysics processing unitDigital signal processorTensor Processing UnitSecure cryptoprocessorNetwork processorBaseband processorWord size12-bit15-bit16-bit24-bit32-bit48-bit64-bit128-bit256-bit512-bitbit slicingSingle-coreMulti-coreManycoreHeterogeneous architectureCPU cacheScratchpad memoryData cacheInstruction cachereplacement policiescoherenceClock rateClock signalFunctionalunitsAddress generation unitMemory management unitLoad–store unitTranslation lookaside bufferBranch target predictorIntegrated memory controllerInstruction decoderCombinationalSequentialLogic gateRegistersProcessor registerStatus registerStack registerRegister fileMemory bufferHardwired control unitInstruction unitData bufferWrite bufferMicrocodeDatapathMultiplexerDemultiplexerMultiplierBinary decoderAddress decoderSum-addressed decoderBarrel shifterCircuitryIntegrated circuitMixed-signalPower managementBooleanDigitalAnalogPowermanagementDynamic frequency scalingDynamic voltage scalingClock gatingHistory of general-purpose CPUsMicroprocessor chronologyProcessor designDigital electronicsHardware security moduleSemiconductor device fabricationTick–tock modelPin grid arrayChip carrier